diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/CHECKPOINT-CHECKS.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/CHECKPOINT-CHECKS.json new file mode 100644 index 000000000..3ce45f43c --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/CHECKPOINT-CHECKS.json @@ -0,0 +1,200 @@ +{ + "backlog_issue": 913, + "base_commit": "de6fe29324ade8a0826c18f7829786086dd590da", + "branch_v10": "Separate review accepts one-affine-J obstruction; no nonlinear prior adopted", + "checker_groups": 60, + "controller_v10": "Separate native review accepts affine J/Kplus/Kminus witness for two-sign phase code; previous-Y/current-XR scope explicit", + "controller_v10_reviewed_author_commit": "bf1bc9fb067e38417d8968e26a691debf7d3eb5f", + "current_handoff": "CURRENT-HANDOFF.md", + "fresh_initial_shared_seed_bits": 6, + "full_replay": { + "also_verified": "SHA256SUMS, reviewed input hashes and Python compilation of every file", + "command": "python3 -I -B replay.py", + "commit": "57dede93cf2e10281e99262ce508321f09fa15af", + "comparison": "each group's standard output byte-identical to its recorded output in both modes", + "environment": { + "cxx": "g++ 13.3.0", + "python": "3.13.16" + }, + "exit_status": 0, + "group_labels": [ + "continuation/checks", + "continuation/symbolic", + "parallel_v3/aux_routing/checks", + "parallel_v3/history_control/checks", + "parallel_v3/direct_reset/checks", + "parallel_v3/new_geometry/checks", + "parallel_v3/review/checks", + "parallel_v3/review/sidecar_check", + "parallel_v3/review/gadgets_check", + "parallel_v3/review/contract_check", + "parallel_v3/review/geometry_check", + "parallel_v3/review/herald_check", + "parallel_v3/integration/tagged_contract", + "junction_v4/checks", + "junction_v4/review/checks", + "six_source_v5/period/checks", + "six_source_v5/checks", + "six_source_v5/review/checks", + "outward_v6/checks", + "outward_v6/correction_checks", + "outward_v6/review/checks", + "reset_v7/probe", + "reset_v7/review/checks", + "reset_v8/probe", + "reset_v8/review/checks", + "history_v9/checks", + "history_v9/review/checks", + "reset_v9/checks", + "reset_v9/review/checks", + "reset_v9/review/history_corollary", + "branch_v10/checks", + "branch_v10/review/checks", + "herald_v10/checks", + "herald_v10/review/checks", + "layout_v10/checks", + "layout_v10/review/checks", + "branch_v10/local-controller/checks", + "branch_v10/local-controller/checks --symmetric", + "branch_v10/local-controller/review/checks", + "phase_joint_v10/checks", + "phase_joint_v10/review/checks", + "native_v11/checks", + "native_v11/review/checks", + "transport_audit_v1/checks", + "transport_audit_v1/review/checks", + "history_v11/checks", + "history_v11/review/checks", + "native_pool_v11/checks", + "native_pool_v11/review/checks", + "native_x_v12/checks", + "native_x_v12/review/checks", + "native_seed_v12/checks", + "native_seed_v12/review/checks", + "native_gate_v13/checks", + "native_gate_v13/review/checks", + "native_route_v13/checks", + "native_route_v13/review/checks", + "native_decode_v14/checks", + "native_decode_v14/review/round1/review_checks .", + "native_vread_v15/checks" + ], + "groups": 60, + "groups_failed": 0, + "groups_passed": 60, + "modes": [ + "normal", + "-O" + ] + }, + "herald_v10": "Separate review accepts synchronized remote G/z with unchanged P and explicit original-time source formula", + "herald_v10_reviewed_author_commit": "25220128c3c7991e4c22c917af56b68c02ab8051", + "history_v11_reviewed_author": "c326546f228a1769856fded2268b76d976a171d3", + "history_v9": "Separate review accepts conditional entire old-noise record/endpoint theorem at R+8; independent geometry extends to R+9 under 189 post-R fair bits", + "history_v9_review": "history_v9/review/REPORT.md", + "history_v9_reviewed_author_commit": "96e7b6249eedc221a364b79d996a080f0b850438", + "joint_masked_sign_corollary": "reset_v9/review/COROLLARY.md; additional deduction assessed separately at integration; conditional initial a independence and bank prior explicit", + "junction_review": "junction_v4/review/REPORT.md", + "junction_review_retained_input_hashes_verified": 5, + "junction_v4": "Independent review ACCEPTS unchanged-junction obstruction and six-source initial geometry; proposed output subsequently evaluated in six_source_v5", + "latest_groups": [ + "native_gate_v13/checks", + "native_gate_v13/review/checks", + "native_route_v13/checks", + "native_route_v13/review/checks", + "native_decode_v14/checks", + "native_decode_v14/review/round1/review_checks", + "native_vread_v15/checks" + ], + "layout_v10": "Separate review accepts source-direction/order-three family obstruction, not general impossibility", + "manifest_files_verified": 429, + "native_decode_v14_author": "7f843073d9245635d5b2bbeb0cfdc9f42dc7db0a", + "native_decode_v14_plan": "36213be6354ef15442b4f3040ecdb511fd0b5641", + "native_decode_v14_review": "native_decode_v14/review/", + "native_decode_v14_scope": "All254 fixed q10 readouts x2^36 jointly affine E/N laws on the retained table:78 readouts,7464 laws; q10.A=s under1456 laws; no law with E=000; B and D jointly carry s in every q10.A law (B alone is s-free in 8, per the separate review); q10 is a private cell under Native A, not a permitted read; the separate review finds q10.A = x XOR f(k) for each affine f under an f-dependent law. No native consuming stage, Y operand, acceptance flag or history law.", + "native_failure": "11/16", + "native_gate_v13_review_commit": "b21d9a6c79da158db7798a0ea382c0f716137ca9", + "native_gate_v13_review_portability_fix": "Forward default-author-path correction only; mathematical engine and retained result unchanged. Standalone and published normal/-O outputs agree.", + "native_gate_v13_reviewed_author": "8ae927163c0fa340b312d634fc352df73753314f", + "native_gate_v13_scope": "Seven small original-time families; actual nonlinear old-sign/pool product,525 passive terminal pointers and local prefixes fail; no actual-L no-go.", + "native_pool_abstract_acceptance": "5/16 conditional on old preparation success; native predicate not implemented", + "native_pool_full_law_branches": [ + "25/256 oldsuccess/abstractsuccess", + "55/256 oldsuccess/abstractfailure", + "11/16 oldterminalfailure" + ], + "native_pool_reviewed_author": "6e9a3ec567a1f3472bad3ed23c48b8111d2f0515", + "native_route_v13_review_commit": "0a1600b7f2a320831b63602b589b4e74b54d9cd8", + "native_route_v13_reviewed_author": "753fe4f69392ca940754489468e8c8235f6aa583", + "native_route_v13_scope": "Added original-time lower source E;32 compatible raw X pairs,16 affineE candidates,zero jointly affineE/N common raw binary codes; fixed redundant readouts decided in native_decode_v14.", + "native_seed_v12_reviewed_author": "1c91d3158e13eaa69c7fd1710932c9995d0288d7", + "native_success": "5/16", + "native_v11_reviewed_author": "7ec3f8234a148cadb58ebc6c8212b3b0233acabe", + "native_v12_resource_variants": { + "A": "Retains uniform F8/F10 and adds independent affine F9; no new blank shell", + "B": "Replaces optional F10 with original-time q10 readiness and one boundary source" + }, + "native_vread_v15_head": "ca7d06de349e83cbfa253cbd4887b7708a0705cc", + "native_vread_v15_mutants": { + "command": "python3 -I -B native_vread_v15/mutants/make_mutants.py | cmp - native_vread_v15/mutants/OUTPUT.txt", + "commit": "57dede93cf2e10281e99262ce508321f09fa15af", + "exit_status": 0, + "result": "byte-identical; caught 32 of 32 mutants" + }, + "native_vread_v15_plan": "ead2c38842222786c68551484b708c19f29c83ab", + "native_vread_v15_review": "native_vread_v15/review/", + "native_vread_v15_scope": "Hybrid test case, neither contract adopted: one native tick from q10 into the whole-V read at L+2 in the native_route_v13 geometry: NEGATIVE_FOR_CONSTRUCTION; the -x and +y current-slice keys are free and unseen by permitted records and V is a permutation of each, so no fixed readout of V equals s for every complement value; independence under a uniform free key; the -y key reaches port 0 (recovery not computed); conditional on the declared inventory being complete; no OI-wide no-go.", + "native_x_v12_new_initial_mask_bits": 3, + "native_x_v12_reviewed_author": "f24a57a7c23cc1818c04265cec7604f8bc2f410d", + "native_x_v12_total_local_resource_bits": 9, + "nested_manifests_verified": 50, + "normal_optimized_recorded_outputs": "byte-identical", + "off_repository_inputs": "OI_combined_handoff_2026-10-24_v1 and OI_native_Y_continuation_handoff_v1 are cited as provenance and are not in the repository; parallel_v3 SOURCE-GEOMETRY.json and herald.json are retained data whose generator is not in the repository (README.md).", + "outward_review_input_hashes_verified": 8, + "outward_v6": "Author depth1\u201312 census PASS; q7 raw qY.D transfer independently accepted; uncorrected q7 retains u and is not a full clean code; q2.A-only transfer fails", + "outward_v6_correction": "Independent actual-scale review ACCEPTS clean native00y construction and source/readiness compatibility; general late-input socket, full joint-record certification and native reset OPEN", + "outward_v6_review": "outward_v6/review/REPORT.md", + "parallel_obligations": "EQUIVALENCE-OBLIGATIONS.md", + "phase_joint_v10": "Separate integration review accepts conditional calibrated post-Y selected-phase law, all failures, and restricted whole-port terminal X/R records; reusable instrument OPEN", + "phase_joint_v10_reviewed_author_commit": "9b334367864c39e969072d9fbd46b0c049584963", + "programme_synthesis_provenance": { + "commit": "2d555f17c23bea31d32b3f5eb4c49d245b413a76", + "later_draft_not_used_as_baseline": "fd18205b47649ff4bd43857b908f6f646941e89f", + "location": "#885 (closed without merge), preserved branch research/missing-component-20261020", + "role": "provenance only" + }, + "public_history_extension": "H=L+Delta,1<=Delta<=L; B=6P+18*68+189+24Delta; supplied8portinitialbank", + "python": "3.12 declared; full replay under 3.13.16", + "related_pull_requests": { + "911": "architecture and finite approximation; results not established here", + "912": "complete-record composition; results not established here" + }, + "replay_commands": { + "all_groups": "python3 -I -B replay.py", + "latest_groups": "python3 -I -B replay.py --latest", + "working_directory": "this directory, as written; from elsewhere give the path to replay.py, which locates this directory from its own path" + }, + "requirements": [ + "Python 3 standard library", + "C++17 compiler g++" + ], + "reset_v7": "Separate-author internal review ACCEPTS exact actual interface and one-source/one-tick obstruction; both new groups pass packaged normal/-O replay", + "reset_v7_review": "reset_v7/review/REPORT.md", + "reset_v7_review_input_hashes_verified": 9, + "reset_v7_reviewed_author_commit": "f7058d59ea2136601a679a7fdd7b7573b1e4bfa7", + "reset_v8": "Separate-author review ACCEPTS native-family two-source route and arbitrary late-q7 socket exclusion; calibrated reset and joint public-history law OPEN", + "reset_v8_review": "reset_v8/review/REPORT.md", + "reset_v8_reviewed_author_commit": "e46d30fdd2c237b70ee7569f0044f2486f07f8ce", + "reset_v9": "Separate review accepts native-family masked route q9=(0,y XOR a,y XOR a), with actual dirty boundary; simultaneous calibrated reset OPEN", + "reset_v9_review": "reset_v9/review/REPORT.md", + "reset_v9_reviewed_author_commit": "328b74b88eaeddc798bf4693af78a571bf429787", + "retained_seed_count_context": "fresh_initial_shared_seed_bits=6 is the retained post-Y sampler prior; the new local masked resource uses the separately counted F8/F10 six bits plus F9 three bits.", + "reviewed_input_hashes_verified": 18, + "scientific_scope": "Native nonlinear small-family products, actual-scale second-front affine raw-code obstruction, fixed single-field q10.A sign delivery and the one-tick whole-V read (negative for its construction); native gate compilation, delayed storage/history and reusable closure open.", + "sensitive_data_scan": "PASS", + "shared_contract": "shared_v12/INTERFACE-CONTRACT.md", + "six_source_review": "six_source_v5/review/REPORT.md", + "six_source_review_input_hashes_verified": 15, + "six_source_v5": "Independent actual-scale review ACCEPTS endpoint-specific clean-transfer failure; full joint-history law and integrated reset OPEN", + "transport_audit_reviewed_author": "a3e8b7a201aae9f7ac6babf93173188f87ed8bb8" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/CURRENT-HANDOFF.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/CURRENT-HANDOFF.md new file mode 100644 index 000000000..bfcfb83f7 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/CURRENT-HANDOFF.md @@ -0,0 +1,163 @@ +# Native instruments: results and the open native connection + +This directory retains the actual masked phase of the native-Y construction +and adds scoped native tests: a small-family nonlinear product, an +actual-scale second-front route, fixed q10 readouts and a one-tick whole-V +read. No physical premise, access rule, operational map, native gate +availability or full equivalence is adopted. The wider open gates are listed +in [#913](https://github.com/amaybaum/incompleteness/issues/913). + +The programme synthesis these tests start from is commit +`2d555f17c23bea31d32b3f5eb4c49d245b413a76` of #885, on that pull request's +preserved branch `research/missing-component-20261020`; the later draft +`fd18205b47649ff4bd43857b908f6f646941e89f` on the same branch is not used as a +baseline. Both ids are provenance. The separate-agent internal reviews here do +not discharge that programme's retained-evidence or transport-review gates. + +## Retained actual phase + +Keep T=185, P=12*840^185, S=P+185, R=S+68 and L=R+9=P+262 and the +unchanged torus. Native A, author +`f24a57a7c23cc1818c04265cec7604f8bc2f410d`, retains initial independent +triples F8/F10 and adds F9 at (-(L+2),S,77). At phase L+2, current +q9=V and its six previous neighbors give a fixed local inverse of oldP: + + oldP=V XOR H(XOR six previous neighbors), + s=V.B XOR XOR six previous-neighbor D bits. + +The previous Q8/Q10 cells still contain the actual six-bit pool. Conditional +on the other initial variables, (Q8,Q10,M) and (Q8,Q10,V) are uniform on 512 +values. A single whole-V read is harmless within the retained contract. +The inverse is a coordinate map, not an available observer read or native +unmasking gate. Continuous q9 access and later joint histories remain open. + +The intended acceptance is A=[K>2,(n>>1)&1,n&1) +def code(t):return 4*t[0]+2*t[1]+t[2] +def main(): + raw=(p/'reset_v9/result.json').read_bytes();d=json.loads(raw) + manifest=(p/'reset_v9/SHA256SUMS').read_text().splitlines() + digest=next(line.split()[0] for line in manifest if line.split()[1]=='result.json') + need(hashlib.sha256(raw).hexdigest()==digest,'source table checksum') + t=d['q9_tables']['native'];table={};k=0 + for x,u,q,j in product((0,1),(0,1),(0,1),range(8)):table[x,u,q,j]=t[k];k+=1 + need(all(table[x,u,0,j]==table[x,u,1,j] for x,u,j in product((0,1),(0,1),range(8))),'native diagnostic p absent') + out=lambda x,u,j:table[x,u,0,j] + need(all(len({out(x,u,j) for j in range(8)})==8 for x,u in product((0,1),repeat=2)),'J output permutations') + common={} + for j0,j1 in product(range(8),repeat=2): + pair0=tuple(out(y,0,j0) for y in (0,1));pair1=tuple(out(y^1,1,j1) for y in (0,1)) + if pair0==pair1:common[j0,j1]=pair0 + groups={delta:[] for delta in range(8)} + for (j0,j1),pair in common.items():groups[j0^j1].append({'J0':j0,'J1':j1,'codes':pair}) + affine_valid3=[];affine_valid4=[];common_affine=0;maximum=0 + for c,cu,ca,cb in product(range(8),repeat=4): + vals={};valid=True + for aa,bb in product((0,1),repeat=2): + j0=c^(ca if aa else 0)^(cb if bb else 0);j1=j0^cu + if (j0,j1) not in common:valid=False;break + vals[aa,bb]=common[j0,j1] + if not valid:continue + common_affine+=1 + count=min(len({vals[ab][y] for ab in ((0,0),(1,0),(1,1))}) for y in (0,1));maximum=max(maximum,count) + if count==3:affine_valid3.append([c,cu,ca,cb]) + if all(len({v[y] for v in vals.values()})==4 for y in (0,1)):affine_valid4.append([c,cu,ca,cb]) + # Stronger accepted-only family: failure mask01 unconstrained. + accepted_only=[] + for c,cu,ca,cb in product(range(8),repeat=4): + vals=[] + for aa,bb in ((0,0),(1,0),(1,1)): + j0=c^(ca if aa else 0)^(cb if bb else 0) + if (j0,j0^cu) not in common:break + vals.append(common[j0,j0^cu]) + if len(vals)==3 and all(len({v[y] for v in vals})==3 for y in (0,1)):accepted_only.append([c,cu,ca,cb]) + truth={};cases=[] + for u,aa,bb in product((0,1),repeat=3): + matches=[j for j in range(8) if all(out(y^u,u,j)==code((0,y^aa,y^bb)) for y in (0,1))] + need(len(matches)==1,'unique two-sign control table');truth[u,aa,bb]=matches[0] + cases.append({'u':u,'a':aa,'b':bb,'J':bits(matches[0])}) + anf=[] + for field in range(3): + cs=[bits(truth[i&1,(i>>1)&1,(i>>2)&1])[field] for i in range(8)] + for bit in range(3): + for i in range(8): + if i&(1<1,'nonaffine target detected') + # Existing one-mask route must be accepted by the same source table. + for x,u,aa in product((0,1),repeat=3):need(out(x,u,code((u^aa,aa,u^aa)))==code((0,x^u^aa,x^u^aa)),'one-mask positive control') + need(len(common)==8 and maximum==2,'common-code capacity') + need(not affine_valid3 and not affine_valid4 and not accepted_only,'affine three-mask exclusion') + # Exact shallow branch source ownership. These are distances, not dynamics. + targets={'A':(-1,S,76),'B':(0,S-1,76),'C':(0,S,77)} + sources={'A':(-S-78,S,76),'B':(0,-78,76),'C':(0,S,S+154)} + D=lambda a,b:sum(abs(x-y) for x,y in zip(a,b)) + cross={a:{b:D(src,t)-N for b,t in targets.items()} for a,src in sources.items()} + need(all(cross[a][b]==(0 if a==b else 2) for a,b in product(targets,repeat=2)),'separate control cones') + centers=[((0,T,0),T),((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,0,-8*T),T),((0,S,0),S),((T,P,0),S),((-T,P,0),S),((4*T,P,0),S),((0,S,68),R),((0,S,-68),R),((0,S,70),R+2),((0,S,71),R+3),((12*R,0,0),R),((-12*R,0,0),R),((0,S,75),R+7),((0,S,76),R+8),((0,S,77),N)] + margins={a:min(D(src,c)-r for c,r in centers) for a,src in sources.items()} + # C is the existing source and exactly on the q9 boundary; A/B are outside. + need(all(v>=0 for v in margins.values()),'no source pins in old ready interiors') + positive_x=(S+78,S,76);positive_margin=D(positive_x,(4*T,P,0))-S + need(positive_margin<0,'positive-x ready-conflict control') + older={'origin':(0,0,0),'W':(0,-76,76),'selector_R':(-T,P+S,0),'selector_R_bank1':(-T,P+S+1,0),'selector_R_bank2':(-T,P+S+2,0)} + arrivals={name:{a:D(src,t)-N for a,t in targets.items()} for name,src in older.items()} + need(arrivals['selector_R']['A']==-2 and arrivals['selector_R_bank1']['A']==-1 and arrivals['selector_R_bank2']['A']==0,'side-branch coupled frontier obligation') + need(arrivals['origin']['B']==-2 and arrivals['W']['B']==-2,'backward-y lag obligation') + result={'schema':'oi.simultaneous-branch.control-v10','source_result_sha256':digest,'affine_sources_examined':4096,'common_affine_sources':common_affine,'max_distinct_accepted_mask_codes':maximum,'affine_three_mask_solutions':affine_valid3,'affine_four_mask_solutions':affine_valid4,'accepted_only_affine_solutions':accepted_only,'common_code_groups_by_u_coefficient':groups,'nonlinear_required_J':cases,'J_anf_monomial_bitmasks_u_a_b':anf,'J_boolean_degree':degree,'geometry':{'cross_arrival_minus_N':cross,'minimum_old_ready_margins':margins,'positive_x_conflict_margin':positive_margin,'older_source_arrival_minus_N':arrivals},'verdict':{'affine_single_source_three_masks':'excluded','nonlinear_two_slice_truth_table':'exists_not_natively_supplied','same_tick_spatial_branches':'not_constructed','full_reset':'not_constructed'}} + print(json.dumps(result,indent=2,sort_keys=True)) +if __name__=='__main__':main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/PROBE-PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/PROBE-PLAN.md new file mode 100644 index 000000000..b6e9d5466 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/PROBE-PLAN.md @@ -0,0 +1,29 @@ +# Fixed 64-case native seed-controller probe + +Before computation, fix the actual reset_v9 q9 geometry and all Q,C,G,W. +Let fresh candidate bits be a,b and delta=a XOR b. At the original initial +time prepare J at (0,S,S+154) with payload + + (u XOR a,a,u XOR a) XOR delta*C, + +and K at (1,S,S+153) with payload delta*V. C,V each range over eight constant +triples: exactly64 candidates. These initial sourcefields are affine in the +apparatus bits; they never contain unknown x or the later y. K and J are on +the same original q9 ready boundary. All inherited sources and public banks +are preserved. No late state is reset or spliced. + +Evaluate the joint Q/C/G/J/K upper strip with signed x (K breaks x reflection) +and the unchanged coupled W lower front, then the complete q9 diamond. Check +all x,u,mY,mR,a,b assignments. Success target is whole raw +q9=(0,y XOR a,y XOR b) for masks00,10,11, with y=x XOR u; separately record +whether01 also works. This is a two-slice phase candidate because previous +q8 carries y, not a same-current-slice public Y port. If no candidate meets +the target, report only this finite affine-source family as excluded. + +Controls before verdict: source/ready/bank geometry; K/J exclusion from +q8 throughR+8; exact actual upper-strip period budget18; independent small +coordinate native recursion of the complete upper cluster; K=0 agreement +with the retained axis-only evaluator where C=0; q7/q8 preservation; all +selector masks; normal/-O replay. All source cross-interactions must be kept. +Potential q8 interventions are checked only after a positive native witness. +No nonlinear initial prior, reset claim, premise or calibration is adopted. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/PROVENANCE.json new file mode 100644 index 000000000..d139a1215 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/PROVENANCE.json @@ -0,0 +1,11 @@ +{ + "files": { + "parallel_v3/history_control/SOURCE-GEOMETRY.json": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d", + "reset_v7/inherited_correction_model.py": "81fb9162229409e42d4383274c91988b94c8727dc70d9398cc1ca1ac51a38ee4", + "reset_v7/inherited_model.py": "dfb056bfe91372b44787d962e63d83ae7109802b38034b661e1c3275a63e146b", + "reset_v7/probe.py": "1b00605540c71e499a6a7b3b4f59f965f140e2620c287b4321c74c2cd2554b72", + "reset_v8/probe.py": "7557844c8934ebaec2dfb1472208317c3e7141ad94be2def15a18174c454110a", + "reset_v9/checks.py": "55659ae57662ba687dba49fabf9766b0583d72f5bd441999edb0342162ac9685" + }, + "source_commit": "3f440c59660d7255aa8a727ff8b5de8289004f80" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/REPORT.md new file mode 100644 index 000000000..8c23da73c --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/REPORT.md @@ -0,0 +1,127 @@ +# Native affine-source controller for the two-sign phase code + +Research checkpoint. The fixed symmetric 512 family contains two pointwise +native witnesses. No nonlinear initial seed prior is needed for this local +controller. Separate-author review is pending. + +## Physical source specification and result + +Use the same original-time depth-nine preparation as reset_v9 and preserve +all its original sources and public banks. Keep W=111, Q,C,G unchanged. +Let delta=a XOR b, with a,b initially specified apparatus bits. Prepare + +| Source | Original-time position | Triple | +| --- | --- | --- | +| J | (0,S,S+154) | (u XOR b,a,u XOR a) | +| Kplus | (1,S,S+153) | (delta,0,delta) | +| Kminus | (-1,S,S+153) | (delta,delta,delta) | + +All field values are affine functions of u,a,b. None contains unknown x or +a copy of the later y. The two K payloads can also be swapped. +For every native x,u,mY,mR and masks (a,b)=00,10,11, the unchanged rule gives + + q8 at R+8 = (0,y,0), + q9 at R+9 = (0,y XOR a,y XOR b), y=x XOR u. + +Thus one physical two-slice phase contains a fixed raw encoding of the +three signs Y,X,R: previous q8.B is Y, current q9.B is X and current q9.D +is R. The complete designated cells are `(0,Y,0)` and `(0,X,R)`, common +across old input/seed/mask histories at fixed signs. This is not three +same-current-slice public readout ports, and no previous-slice access rule +is adopted. The remaining apparatus fields are not declared erased. + +The native interaction of initially affine sources supplies the nonlinear +seed processing missing from the single-J truth table. It is not obtained +by computing that table externally and inserting a nonlinear J at time zero, +nor by splicing a desired triple into a later native slice. + +## Finite search and exact calculation + +The first fixed 64 family used one Kplus. None met the whole accepted-mask +target; the best candidates missed 8 of 48 accepted input/history rows. Some +introduced selector-mask dependence, which is retained in the results. +The sole subsequent extension added Kminus with an independent constant +triple coefficient: exactly 512 candidates C,Vplus,Vminus. The initial +source formula was fixed beforehand: + + J=(u XOR a,a,u XOR a) XOR delta*C, + Kplus=delta*Vplus, Kminus=delta*Vminus. + +Exactly two candidates pass every accepted row: (C,Vplus,Vminus)=(4,5,7) +and (4,7,5), using code4A+2B+D. Neither gives the prescribed raw output on +failure pattern01. Every mask and failed pattern remains in the retained +32,768-row output table, encoded by one hexadecimal digit per triple. + +The K sources break x reflection, so the upper evaluator keeps signed x +and only uses the surviving y reflection. It evolves Q,C,G,J,Kplus,Kminus +as one coupled cluster. Its strip budget is 18; the retained triangular-strip +period argument gives 12*840^18, exactly dividing actual P. The proof does +not depend on x reflection: same-layer transverse states update in parallel, +each by an eight-state permutation driven by lower layers. The unchanged +lower W/origin front uses reset_v9's exact two-layer reduction. Upper and +lower sources cannot interact before R; all final collisions are then +evolved together in the full native diamond. + +The controls pass before verdicts: + +- 4,730,880 scalar-lane comparisons of the signed upper strip with direct + native recursion at bounded coordinates; +- 9,240 comparisons with the independently retained axis-only evaluator; +- preservation of all 4,096 single-K rows inside the symmetric family; +- pointwise preservation of native q7 and q8; +- the equal-mask positive control a=b, where both K sources vanish; +- 32,768 complete input/history/seed rows, including all selector masks. + +The controls are bit-packed exact integer computations. The large scalar +counts describe covered lanes, not millions of separate long simulations. +The written period theorem justifies the astronomical time reduction; +small-coordinate checks validate the new evaluator rather than replace it. + +## Geometry and retained physical failures + +J,Kplus,Kminus all have distance N=R+9 from q9. Each K is distance N+1 +from q8, so cannot alter its R+8 read. Their current initial positions are +outside every inspected earlier ready ball and match none of the 1,479 +retained source positions. Their x coordinates ±1 differ from all six +old public-bank rays' fixed x coordinates 0,±T,4T. They occupy boundary +exceptions in the existing q9 preparation, not new zero pins on the bank. +Distances to each lower signal source and W are at least 2R, preserving the +pre-R separation required by the lower/upper initialization. + +Pattern01 is never a target-success mask. Its actual q9 fields for these +witnesses are `(u,y,x(1 XOR u))`; they retain old information. They are +explicitly recorded, not overwritten by a chosen quantum failure state. +A terminal no-offered-carrier convention, a herald law, or further access to +these fields must be supplied by the complete instrument contract. + +## Interventions and remaining limits + +The construction is still a native-family phase code. Replacing only q8.B +by arbitrary p while keeping its real preceding state produces 24 mismatches +among 48 accepted rows for each p, for each witness. For example x=0,u=1, +a=b=0,p=0 gives q9=111 instead of 000. The actual native q8 value is preserved +and used by the update, but q8 alone is not an arbitrary reusable input socket. +The surrounding history correlations remain part of the native interface. + +This checkpoint supplies local simultaneous phase information. It does not +supply the calibrated mask sampler/herald, fair z, a joint public/failure +law, same-tick Y access, arbitrary next-stage closure, full target coverage +or OI–QM equivalence. Freshness of a,b relative to previous informative +records is an explicit resource obligation. No premise or access change is +adopted. + +## Replay + +From this directory in the retained tree: + +```sh +python3 checks.py > /tmp/oi-controller-single.json +cmp /tmp/oi-controller-single.json single-result.json +python3 checks.py --symmetric > /tmp/oi-controller-symmetric.json +cmp /tmp/oi-controller-symmetric.json symmetric-result.json +``` + +Both commands also pass with `-O`, byte-identically. The symmetric run checks +its single-K subset against retained `single-result.json`. PROVENANCE.json +pins all inherited inputs; SHA256SUMS covers this checkpoint. No special +workflow, F/E designation, merge or external certification was performed. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/SHA256SUMS new file mode 100644 index 000000000..34da2b7c8 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/SHA256SUMS @@ -0,0 +1,7 @@ +22f947aaa9cb2adc7059fe86b6456b104ffb07493edfad8ef41aafde9c1012e5 PROBE-PLAN.md +f01be09647d270b4edd5df562d3e72be902479bf9c112001a71d45e2f9b96981 SYMMETRIC-PLAN.md +cc462e97b4307fe44c359ece726408c0bf7f5a99285a3e6fa3ae905f089f6dd9 PROVENANCE.json +cdc9600cb467e54184b811166c71d9a73e8b5d89d4b813d516100eb27eff19db REPORT.md +bb3929c0b7065f60c4a64438dd1878c2f35755625854f6091104cfd5aee3f428 checks.py +0b65602ff9870282e226cef3f64d5a97b99e3582d38273cb0ee3f316bd1dff5b single-result.json +d8e7c1f5841192165beefb3fe35b069cc14cc93f2faa2bd68619aa7748b3db2f symmetric-result.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/SYMMETRIC-PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/SYMMETRIC-PLAN.md new file mode 100644 index 000000000..d6a95da17 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/SYMMETRIC-PLAN.md @@ -0,0 +1,19 @@ +# One symmetric extension after the 64-case family + +The 64-case single-K family produced no accepted-three-mask witness. Keep +its retained result. The sole next finite sweep adds Kminus at +(-1,S,S+153), with payload (a XOR b)*Vminus; Kplus is the prior K. +C,Vplus,Vminus range independently over the eight constant triples: +exactly512 candidates, with identical budget18, actual initial preparation, +q9 deadline and acceptance target. All initial sourcefields remain affine. + +Check all old x,u,selector masks and fresh a,b, including failure pattern01. +Demand the whole q9=(0,y XOR a,y XOR b) on00,10,11. Preserve the single-K +family as Vminus=000 and compare its entire retained table. Use signed-x +upper dynamics, not pulse superposition or an imposed reflection symmetry. +The reflected source must pass old-ready/bank checks independently. + +This is the final local family expansion in this checkpoint. If it fails, +record the bounded wall and require a different geometry/controller +architecture rather than expanding the enumeration again. Total local +computation budget is under one minute; stop and retain WIP if exceeded. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/checks.py new file mode 100644 index 000000000..95b460cf9 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/checks.py @@ -0,0 +1,146 @@ +"""Signed transverse native upper strip for the fixed64 affine controller family.""" +import argparse,importlib.util,sys,json,hashlib +from pathlib import Path +from itertools import product +from functools import lru_cache +ap=argparse.ArgumentParser();ap.add_argument('--source-root',type=Path,default=Path(__file__).resolve().parent.parent.parent) +ap.add_argument('--symmetric',action='store_true') +args=ap.parse_args();root=args.source_root.resolve() +spec=importlib.util.spec_from_file_location('v9',root/'reset_v9/checks.py');v=importlib.util.module_from_spec(spec);saved_argv=sys.argv;sys.argv=[str(root/'reset_v9/checks.py'),'--source-root',str(root)];spec.loader.exec_module(v);sys.argv=saved_argv +m=v.m;X=m.X;H=m.H;ZERO=m.ZERO;need=v.need;TR=v.TR +MINUS=TR if args.symmetric else ((0,0,0),) +UR=tuple((u,a,b,c,k,km) for u,a,b in product((0,1),repeat=3) for c,k,km in product(TR,TR,MINUS));UF=(1<t or (t-x-y-n)%2:return ZERO + if t==0:return SOURCES.get((x,y,n),ZERO) + ns=[direct(t-1,x-1,y,n),direct(t-1,x+1,y,n),direct(t-1,x,abs(y-1),n),direct(t-1,x,y+1,n),direct(t-1,x,y,n-1),direct(t-1,x,y,n+1)] + return X(direct(t-2,x,y,n),H(X(*ns))) +@lru_cache(None) +def strip(): + L=18;values={} + def get(ell,x,y,n): + y=abs(y) + if ell<0 or abs(x)+y>ell or (ell-abs(x)-y)%2 or ell+abs(x)+y>L:return ZERO + return values[ell,x,y][n] + for ell in range(L+1): + for x in range(-ell,ell+1): + for y in range(ell-abs(x)+1): + if (ell-abs(x)-y)%2 or ell+abs(x)+y>L:continue + arr=[direct(ell,x,y,0)];values[ell,x,y]=arr + for n in range(1,m.BASE+(L-ell)//2+1): + side=X(*(get(ell-1,x+dx,y+dy,n) for dx,dy in ((-1,0),(1,0),(0,-1),(0,1)))) + arr.append(X(get(ell-2,x,y,n),H(X(arr[n-1],get(ell-2,x,y,n+1),side)))) + return values +ROWS=tuple((x,u,my,mr,a,b,c,k,km) for x,u,my,mr,a,b in product((0,1),repeat=6) for c,k,km in product(TR,TR,MINUS)) +FULL=(1<>i)&1 for w in q) +def code(q):return 4*q[0]+2*q[1]+q[2] +@lru_cache(None) +def expand(q): + return tuple(sum(((w>>URINDEX[u,a,b,c,k,km])&1)<ell or (ell-abs(x)-y)%2:return ZERO + need(ell+abs(x)+y<=18,'signed upper budget') + return expand(strip()[ell,x,y][n-m.P]) +CONTROLS=[((0,-m.S,-m.d),XM),((0,m.S,-m.d),MY^MR),((m.T,m.P,-m.d),MY),((-m.T,m.P,-m.d),MR)] +def base(t,p): + out=upper(t,p) + for pos,bits in CONTROLS: + ds=tuple(abs(a-b) for a,b in zip(pos,p)) + if sum(ds)<=t: + need(sum(ds)==t,'lower first front') + if m.odd(ds):out=X(out,m.hp((0,bits,0),t)) + if t==m.R-1 and p in v.RAYS: + j,level=v.RAYS[p] + expected=m.hp((0,XM,0),t) if m.odd((0,m.S+p[1],m.d+p[2])) else ZERO + need(out==expected,'lower origin-only entry') + out=tuple(sum(v.raypair(x,j)[level][f]<=len(arr):continue + for u,a,b in product((0,1),repeat=3): + i=URINDEX[u,a,b,(0,0,0),(0,0,0),(0,0,0)];j=code((u^a,a,u^a)) + need(lane(arr[n],i)==v.lane(v.strip4()[key][n],8*u+j),'K0 C0 baseline strip');baseline_count+=1 + D=lambda a,b:sum(abs(x-y) for x,y in zip(a,b));q9=(0,m.S,77);N=m.R+9;kpos=(1,m.S,m.S+153);jpos=(0,m.S,m.S+154) + need(D(kpos,q9)==D(jpos,q9)==N,'new source first arrival') + need(D(kpos,(0,m.S,76))==N+1,'K excluded from q8 read') + centers=[((0,m.T,0),m.T),((m.T,0,0),m.T),((-m.T,0,0),m.T),((4*m.T,0,0),m.T),((0,0,-8*m.T),m.T),((0,m.S,0),m.S),((m.T,m.P,0),m.S),((-m.T,m.P,0),m.S),((4*m.T,m.P,0),m.S),((0,m.S,68),m.R),((0,m.S,-68),m.R),((0,m.S,70),m.R+2),((0,m.S,71),m.R+3),((12*m.R,0,0),m.R),((-12*m.R,0,0),m.R),((0,m.S,75),m.R+7),((0,m.S,76),m.R+8)] + need(all(D(kpos,c)>t for c,t in centers),'K outside prior ready balls') + geo=json.loads((root/'parallel_v3/history_control/SOURCE-GEOMETRY.json').read_text()) + need(all(tuple(e['position'])!=kpos for e in geo['sources']),'K no inherited source overwrite') + # All six declared public-bank rays have x in {0,+T,-T,4T}; K.x=1. + need(kpos[0] not in (0,m.T,-m.T,4*m.T),'K not a public-bank position') + kmpos=(-1,m.S,m.S+153) + need(D(kmpos,q9)==N and all(D(kmpos,c)>t for c,t in centers),'Kminus old-ready geometry') + need(kmpos[0] not in (0,m.T,-m.T,4*m.T) and all(tuple(e['position'])!=kmpos for e in geo['sources']),'Kminus bank/source exclusion') + lower=[(0,0,0),(0,2*m.S,0),(m.T,m.P+m.S,0),(-m.T,m.P+m.S,0),(0,-76,76)] + need(all(D(z,src)>=2*m.R for z in lower for src in (kpos,kmpos,jpos)),'no premature upper/lower coupling') + out=compute();rowindex={r:i for i,r in enumerate(ROWS)};records=[];passing=[];passing_all=[];raw=[];k_effect=0 + for c,k,km in product(TR,TR,MINUS): + bad=[];badaccepted=[];mask_dependence=0 + for x,u,my,mr,a,b in product((0,1),repeat=6): + got=lane(out,rowindex[x,u,my,mr,a,b,c,k,km]);want=(0,x^u^a,x^u^b) + if got!=want: + bad.append([x,u,my,mr,a,b,code(got),code(want)]) + if (a,b)!=(0,1):badaccepted.append(bad[-1]) + if got!=lane(out,rowindex[x,u,0,0,a,b,c,k,km]):mask_dependence+=1 + if a==b:need(got==(0,x^u^a,x^u^a),'equal-mask positive control') + if got!=lane(out,rowindex[x,u,my,mr,a,b,c,(0,0,0),(0,0,0)]):k_effect+=1 + records.append({'C':code(c),'V':code(k),'Vminus':code(km),'selector_mask_dependence_rows':mask_dependence,'accepted_mismatch_rows':len(badaccepted),'all_mismatch_rows':len(bad),'first_accepted_counterexample':badaccepted[0] if badaccepted else None}) + if not badaccepted:passing.append([code(c),code(k),code(km)]) + if not bad:passing_all.append([code(c),code(k),code(km)]) + for row in ROWS:raw.append(code(lane(out,rowindex[row]))) + need(k_effect>0,'additional source has nonvacuous physical effect') + if args.symmetric: + single=json.loads((Path(__file__).resolve().parent/'single-result.json').read_text()) + subset=''.join(format(code(lane(out,i)),'x') for i,row in enumerate(ROWS) if row[-1]==(0,0,0)) + need(subset==single['q9_table_hex'],'all single-K rows preserved') + interventions=[];failure_rows=[] + if passing: + for ccode,kcode,kmcode in passing: + c,k,km=TR[ccode],TR[kcode],TR[kmcode] + for x,u,my,mr in product((0,1),repeat=4):failure_rows.append({'candidate':[ccode,kcode,kmcode],'x':x,'u':u,'mY':my,'mR':mr,'a':0,'b':1,'raw':lane(out,rowindex[x,u,my,mr,0,1,c,k,km])}) + for pp in (0,1): + changed=compute(pp) + for ccode,kcode,kmcode in passing: + c,k,km=TR[ccode],TR[kcode],TR[kmcode];bad=[] + for x,u,my,mr,a,b in product((0,1),repeat=6): + if (a,b)==(0,1):continue + got=lane(changed,rowindex[x,u,my,mr,a,b,c,k,km]);want=(0,pp^a,pp^b) + if got!=want:bad.append([x,u,my,mr,a,b,code(got),code(want)]) + interventions.append({'candidate':[ccode,kcode,kmcode],'p':pp,'mismatch_rows':len(bad),'first_counterexample':bad[0] if bad else None}) + result={'q8_interventions':interventions,'failure_pattern01_raw':failure_rows,'schema':'oi.branch.native-controller.v10','symmetric':args.symmetric,'candidate_count':len(TR)*len(TR)*len(MINUS),'checks':{'signed_upper_direct_scalar':direct_count,'axis_baseline_scalar':baseline_count,'full_diagnostic_rows':len(ROWS),'K_effect_rows':k_effect,'K_old_ready_exclusion':True,'K_bank_coordinate_exclusion':True},'candidate_row_fields':['C','V','Vminus','accepted_mismatch_rows','all_mismatch_rows','selector_mask_dependence_rows','first_accepted_counterexample'],'candidate_results':[[z[f] for f in ['C','V','Vminus','accepted_mismatch_rows','all_mismatch_rows','selector_mask_dependence_rows','first_accepted_counterexample']] for z in records],'accepted_three_mask_witnesses':passing,'all_four_mask_witnesses':passing_all,'table_order':'x,u,mY,mR,a,b,Ccode,Vpluscode,Vminuscode; all selector masks retained','q9_table_hex':''.join(format(z,'x') for z in raw),'verdict':{'fixed512_affine_family' if args.symmetric else 'fixed64_affine_family':'exists' if passing else 'excluded','full_reset':'not_constructed','two_slice_access':'not_adopted'}} + print(json.dumps(result,sort_keys=True,separators=(',',':'))) +if __name__=='__main__':main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/review/INPUT-HASHES.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/review/INPUT-HASHES.json new file mode 100644 index 000000000..e5f1d6c40 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/review/INPUT-HASHES.json @@ -0,0 +1,10 @@ +{ + "PROBE-PLAN.md": "22f947aaa9cb2adc7059fe86b6456b104ffb07493edfad8ef41aafde9c1012e5", + "SYMMETRIC-PLAN.md": "f01be09647d270b4edd5df562d3e72be902479bf9c112001a71d45e2f9b96981", + "PROVENANCE.json": "cc462e97b4307fe44c359ece726408c0bf7f5a99285a3e6fa3ae905f089f6dd9", + "REPORT.md": "cdc9600cb467e54184b811166c71d9a73e8b5d89d4b813d516100eb27eff19db", + "checks.py": "bb3929c0b7065f60c4a64438dd1878c2f35755625854f6091104cfd5aee3f428", + "single-result.json": "0b65602ff9870282e226cef3f64d5a97b99e3582d38273cb0ee3f316bd1dff5b", + "symmetric-result.json": "d8e7c1f5841192165beefb3fe35b069cc14cc93f2faa2bd68619aa7748b3db2f", + "SHA256SUMS": "62d8038a1b6063647f513192c051d39e46fabc5dba760f79a2f7e99a51424219" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/review/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/review/REPORT.md new file mode 100644 index 000000000..bcebbeba2 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/review/REPORT.md @@ -0,0 +1,132 @@ +# Separate review of the affine local phase-code controller + +**Verdict: accept the native affine witness within its stated scope, with +no blocking findings.** + +Reviewed author commit: +`bf1bc9fb067e38417d8968e26a691debf7d3eb5f`, subtree +`branch_v10/local-controller/`. All eight published file blobs were fetched +at that immutable SHA and match the local bytes used here. +`INPUT-HASHES.json` retains their SHA-256 hashes. + +This reviewer did not author the local-controller report or evaluator. +`checks.py` independently implements integer-coded scalar native recursion, +the signed upper strip, the coupled W lower front and the complete late +collision diamond. It imports no author or predecessor evaluator. Its reuse +of the native rule and actual coordinate formulas is explicit. This is +internal separate-author review, not external peer review or a kernel proof. + +## Independently reproduced result + +For C=100, Vplus=101, Vminus=111, the original-time controls are + + J=(u XOR b,a,u XOR a), + Kplus=(a XOR b,0,a XOR b), + Kminus=(a XOR b,a XOR b,a XOR b). + +All 64 x,u,mY,mR,a,b assignments were evolved independently. In all 48 rows +with (a,b)=00,10,11, previous q8 at R+8 is (0,y,0), and current q9 at R+9 is +(0,y XOR a,y XOR b), with y=x XOR u. The complete triples agree with the +author's retained output table. The earlier qY and q7 endpoints also survive +inside the scalar calculation. + +The rejected pattern01 has the independently reproduced raw triple +(u,y,x(1 XOR u)). Across (x,u)=00,01,10,11 these are 000,110,011,100, +respectively, for every selector mask. All sixteen such rows are retained. +They are not replaced by a chosen quantum failure state. + +Swapping the K payloads gives the second witness: reflection in the signed +x coordinate exchanges Kplus/Kminus and the old mY/mR control labels, while +leaving the axial q8/q9 output sites fixed. The first witness was checked +for every mY,mR assignment, so this symmetry establishes the swapped case +within the same actual causal diamond. The independent scalar evolution is +reported for the primary witness, not falsely counted twice. + +The review also recalculates the decision rule on all 512 candidates in the +published 32,768-row table. Exactly (4,5,7) and (4,7,5) pass the accepted-mask +test. This independently checks exhaustive verdict extraction; it is not a +second native evolution of every rejected candidate. The primary existence +claim rests on the separately evolved witness above. + +## Dynamics, periods and initial geometry + +The signed upper evaluator is required: Kplus and Kminus break the prior +x-reflection reduction. The reviewed construction correctly retains signed x +and only the surviving y reflection. Its initial Q,C,G,J,Kplus,Kminus fields +are evolved together; no independent-pulse superposition is used. + +The review compares 9,240 scalar entries with direct native recursion across +the actual eight u,a,b configurations. The strip budget remains 18. In the +triangular recurrence, other transverse sites enter at lower lag; each +same-lag site's axial evolution is an eight-state permutation driven by +those lower lags. The product of parallel same-lag permutations still has +exponent dividing 840. Hence the inherited sufficient period 12*840^18 +applies without x reflection, and divides actual P exactly. The lower W +entry is computed separately by first-front spatial recursion, including +the interaction of W with the physical origin input. The final diamond +keeps all six neighbors and the old local term. + +All three added/controller source positions are at distance R+9 from q9 +and R+10 from q8. The reviewer checks their exclusion from all seventeen +earlier ready balls, their distinction from all 1,479 inherited source +positions, and separation from the four lower controls and W by at least +2R. This gives 51 ready-ball and 4,437 source-position comparisons. They are +current-boundary exceptions in the original-time depth-nine preparation; +no late-time pin or unknown-input copy is introduced. + +A Boolean-coefficient check verifies that every initial source component +has degree at most one in u,a,b. The complete controller encoding has rank +three in those variables; it retains two fresh dimensions conditional on +the old seed u. Unknown x does not occur in the source-definition arguments. +This verifies the absence of a nonlinear initial seed prior. It does not +physically derive the stipulated independent a,b resource. + +## Countercontrols and six-seed assembly check + +Replacing only q8.B by a forced p while retaining the actual past gives +exactly 24 mismatches among the 48 accepted-mask rows for each p=0 and p=1. +The reviewer reproduces both counts. This is a concrete obstruction to +using q8 alone as an arbitrary late-input socket; it is compatible with the +positive correlated native-family result. + +As a limited finite assembly check, combine the scalar local output with the +specified predicate K /tmp/oi-controller-review.json +cmp /tmp/oi-controller-review.json result.json +python3 -O checks.py > /tmp/oi-controller-review-O.json +cmp /tmp/oi-controller-review-O.json result.json +``` + +Normal and optimized outputs are byte-identical. The checker reads the +hash-pinned author files and retained source geometry but imports none of +their evaluation code. `SHA256SUMS` covers this review's source and result. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/review/SHA256SUMS new file mode 100644 index 000000000..1939f6476 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/review/SHA256SUMS @@ -0,0 +1,4 @@ +19a778fabbaaeccbb843772726e749e4a5532db640d49e85ffeb67c0bec16203 REPORT.md +b71ddd45988edac2baa51d9e968037a93abca0c3ab83f55cc50d5c060763b907 INPUT-HASHES.json +c0b408ac893fa2048394ca7f9f055d6762ece5d3a68284e6d6668bdde213e4ba checks.py +3df782daba86029525ce7179181576af82f22d6432279a7692ff525c30e2dd98 result.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/review/checks.py new file mode 100644 index 000000000..0c8dcef50 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/local-controller/review/checks.py @@ -0,0 +1,201 @@ +"""Independent scalar signed-cluster/diamond check of the affine witness.""" +from pathlib import Path +from functools import lru_cache +from itertools import product +from collections import Counter +from fractions import Fraction +import argparse,hashlib,json +H=(0,2,4,7,1,3,5,6) +T=185;P=12*840**185;S=T+P;R=S+68;N=R+9 + +def need(b,s): + if not b:raise RuntimeError(s) +def pack(v):return 4*v[0]+2*v[1]+v[2] +def unpack(v):return(v>>2,(v>>1)&1,v&1) +def hp(v,n): + for _ in range(n%12):v=H[v] + return v +def dist(a,b):return sum(abs(x-y)for x,y in zip(a,b)) +def odd(ds): + v=0 + for d in ds: + if v&d:return False + v|=d + return True + +@lru_cache(None) +def lower(t,y,z,x): + if t<0 or min(abs(y)+abs(z),abs(y+76)+abs(z-76))>t:return 0 + if t==0:return 2*x if(y,z)==(0,0)else 7 if(y,z)==(-76,76)else 0 + need(t==min(abs(y)+abs(z),abs(y+76)+abs(z-76)),'independent W grid remains first-front') + return H[lower(t-1,y-1,z,x)^lower(t-1,y+1,z,x)^lower(t-1,y,z-1,x)^lower(t-1,y,z+1,x)] + +def sources(u,a,b): + delta=a^b + return {(0,0,0):4*u+1,(0,0,-14):5*u,(0,0,-16):3+2*u, + (0,0,-18):pack((u^b,a,u^a)),(1,0,-17):5*delta,(-1,0,-17):7*delta} + +@lru_cache(None) +def direct(t,x,y,n,u,a,b): + src=sources(u,a,b) + if t<0 or min(abs(x-i)+abs(y-j)+abs(n-k)for i,j,k in src)>t or(t-x-y-n)%2:return 0 + if t==0:return src.get((x,y,n),0) + inp=direct(t-1,x-1,y,n,u,a,b)^direct(t-1,x+1,y,n,u,a,b) + inp^=direct(t-1,x,abs(y-1),n,u,a,b)^direct(t-1,x,y+1,n,u,a,b) + inp^=direct(t-1,x,y,n-1,u,a,b)^direct(t-1,x,y,n+1,u,a,b) + return direct(t-2,x,y,n,u,a,b)^H[inp] + +@lru_cache(None) +def strip(u,a,b): + rows={} + def get(e,x,y,n): + y=abs(y) + if e<0 or abs(x)+y>e or(e-abs(x)-y)%2 or e+abs(x)+y>18:return 0 + return rows[e,x,y,n] + for e in range(19): + for x in range(-e,e+1): + for y in range(e-abs(x)+1): + if(e-abs(x)-y)%2 or e+abs(x)+y>18:continue + rows[e,x,y,0]=direct(e,x,y,0,u,a,b) + for n in range(1,254+(18-e)//2): + inp=get(e,x,y,n-1)^get(e-2,x,y,n+1) + for dx,dy in((-1,0),(1,0),(0,-1),(0,1)):inp^=get(e-1,x+dx,y+dy,n) + rows[e,x,y,n]=get(e-2,x,y,n)^H[inp] + return rows + +def ball(r): + for x in range(-r,r+1): + for y in range(-r+abs(x),r-abs(x)+1): + for z in range(-r+abs(x)+abs(y),r-abs(x)-abs(y)+1):yield(x,y,9+z) + +@lru_cache(None) +def diamond(x,u,my,mr,a,b,forced=-1): + upper=strip(u,a,b) + def init(t,pos): + xx,yy=pos[0],abs(pos[1]);n=R-pos[2];e=t-n + value=upper[e,xx,yy,n-P] if e>=abs(xx)+yy and(e-abs(xx)-yy)%2==0 else 0 + for source,bit in[((0,-S,-68),x),((0,S,-68),my^mr),((T,P,-68),my),((-T,P,-68),mr)]: + ds=[abs(a-b)for a,b in zip(pos,source)] + if sum(ds)<=t: + need(sum(ds)==t,'lower source at exact first arrival') + if odd(ds):value^=hp(2*bit,t) + if t==R-1 and pos in((0,-9,8),(0,-10,9)): + y,z=T+pos[1],68+pos[2] + need(value==(hp(2*x,t)if odd((S+pos[1],z))else 0),'W entry has no upper contribution') + value=lower(y+z,y,z,x) + return value + old={v:init(R-2,v)for v in ball(9)};now={v:init(R-1,v)for v in ball(10)};q8=None + for tau in range(10): + nxt={} + for v in ball(9-tau): + ns=0 + for axis in range(3): + for sign in(-1,1): + w=list(v);w[axis]+=sign;ns^=now[tuple(w)] + nxt[v]=old[v]^H[ns] + if tau==0:need(nxt[0,0,0]==pack((x,1,x^u)),'qY preserved') + if tau==7:need(nxt[0,0,7]==x^u,'q7 preserved') + if tau==8: + q8=nxt[0,0,8];need(q8==2*(x^u),'previous q8 preserved') + if forced>=0:nxt[0,0,8]=2*forced + old,now=now,nxt + return now[0,0,9],q8 + +def main(): + ap=argparse.ArgumentParser();ap.add_argument('--author',type=Path,default=Path(__file__).resolve().parent.parent);ap.add_argument('--source-root',type=Path);args=ap.parse_args();author=args.author + source_root=args.source_root or author.parent.parent + expected_hashes=json.loads((Path(__file__).resolve().parent/'INPUT-HASHES.json').read_text()) + need(all(hashlib.sha256((author/name).read_bytes()).hexdigest()==digest + for name,digest in expected_hashes.items()),'reviewed immutable author bytes') + evidence=json.loads((author/'symmetric-result.json').read_text());data=evidence['q9_table_hex'] + counted=0;accepted=0;fail=Counter();interventions=[] + for x,u,my,mr,a,b in product((0,1),repeat=6): + out,q8=diamond(x,u,my,mr,a,b) + index=((((((x*2+u)*2+my)*2+mr)*2+a)*2+b)*8+4)*64+5*8+7 + need(out==int(data[index],16),'independent scalar versus published witness') + if(a,b)!=(0,1):need(out==pack((0,x^u^a,x^u^b)),'accepted native phase-code witness');accepted+=1 + else:fail[x,u,out]+=1 + counted+=1 + for p in(0,1): + bad=0 + for x,u,my,mr,a,b in product((0,1),repeat=6): + if(a,b)==(0,1):continue + out,_=diamond(x,u,my,mr,a,b,p) + bad+=out!=pack((0,p^a,p^b)) + expected=next(r for r in evidence['q8_interventions']if r['candidate']==[4,5,7]and r['p']==p) + need(bad==expected['mismatch_rows']==24,'late intervention obstruction');interventions.append(bad) + # Independently compare the signed strip with direct native recursion at all + # low-n coordinates for the actual eight u,a,b configurations, no family search. + comparisons=0 + for u,a,b in product((0,1),repeat=3): + for (e,x,y,n),value in strip(u,a,b).items(): + if n<3:need(value==direct(n+e,x,y,n,u,a,b),'signed strip direct control');comparisons+=1 + need(P%(12*840**18)==0,'actual signed-strip sufficient period') + q9=(0,S,77);q8=(0,S,76) + geometry_path=source_root/'parallel_v3/history_control/SOURCE-GEOMETRY.json' + raw_geometry=geometry_path.read_bytes() + need(hashlib.sha256(raw_geometry).hexdigest()=='2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d','inherited geometry hash') + old_sources=json.loads(raw_geometry)['sources'];need(len(old_sources)==1479,'inherited source count') + centers=[((0,T,0),T),((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,0,-8*T),T), + ((0,S,0),S),((T,P,0),S),((-T,P,0),S),((4*T,P,0),S), + ((0,S,68),R),((0,S,-68),R),((0,S,70),R+2),((0,S,71),R+3), + ((12*R,0,0),R),((-12*R,0,0),R),((0,S,75),R+7),(q8,R+8)] + for pos in[(0,S,S+154),(1,S,S+153),(-1,S,S+153)]: + need(dist(pos,q9)==N and dist(pos,q8)==N+1,'source boundary and earlier read exclusion') + need(all(tuple(item['position'])!=pos for item in old_sources),'no inherited source overwrite') + need(all(dist(pos,center)>radius for center,radius in centers),'all earlier ready balls excluded') + need(all(dist(pos,low)>=2*R for low in[(0,0,0),(0,2*S,0),(T,P+S,0),(-T,P+S,0),(0,-76,76)]),'upper/lower separation before R') + # Every physical controller field is affine in old u and two new bits. + rows=[] + for coord in sources(0,0,0): + values=[sources(u,a,b)[coord]for u,a,b in product((0,1),repeat=3)] + for field in range(3): + coef=[v>>field&1 for v in values] + for k in range(3): + for n in range(8): + if n&(1< replay.json +python3 -O checks.py > replay-O.json +cmp result.json replay.json +cmp result.json replay-O.json +sha256sum -c SHA256SUMS +``` + +`--source-root PATH` optionally names the containing checkpoint directory; +the sole physical input remains the pinned sibling reset_v9/result.json. +The checker needs only Python's standard library. #885, frozen records, +physical premises and acceptance criteria are unchanged. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/review/SHA256SUMS new file mode 100644 index 000000000..f3e14b0a7 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/review/SHA256SUMS @@ -0,0 +1,4 @@ +cadf1d9f0628afb77bbb5f13cf0f5e66604d1ec35557ff63d9392e415e8510d1 REPORT.md +02e30307605696297390178a244cb1097822dd58769877c82f778f0e78756059 INPUT-HASHES.json +db2071a582ed1de06d44ac1f2b1b0edaf074946954f4b0093e4b8f10b78a3049 checks.py +49a22eec5fca3935fe1a3e126f64d40a40248a7d3e317637dc1f8a4d92d6687e result.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/review/checks.py new file mode 100644 index 000000000..1b667f32c --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/review/checks.py @@ -0,0 +1,110 @@ +#!/usr/bin/env python3 +"""Independent coefficient-wise affine census of the retained native q9 table.""" +import argparse +from collections import Counter +import hashlib +from itertools import product +import json +from pathlib import Path + +EXPECTED='4bddbbeec267c831f31d8d578e9768e18f64c1319388bf9512563cae35aa6ac4' + +def need(test,label): + if not test: raise RuntimeError(label) + +def run(root): + raw=(root/'reset_v9/result.json').read_bytes() + need(hashlib.sha256(raw).hexdigest()==EXPECTED,'pinned source input') + rows=json.loads(raw)['q9_tables']['native'] + def out(x,u,p,j): return rows[32*x+16*u+8*p+j] + need(len(rows)==64,'table length') + for x,u in product((0,1),repeat=2): + need(all(out(x,u,0,j)==out(x,u,1,j) for j in range(8)),'native intervention ignored') + need(len({out(x,u,0,j) for j in range(8)})==8,'each J map bijective') + masks=((0,0),(0,1),(1,0),(1,1)); accepted=((0,0),(1,0),(1,1)) + # Each component has an independent four-bit coefficient vector for 1,u,a,b. + def value(coeff,u,a,b): + monomials=1+2*u+4*a+8*b + return ((coeff&monomials).bit_count()%2) + counts=Counter(); max_accepted=0; max_global=0; two_sign_solutions=0 + for coeffs in product(range(16),repeat=3): + family={} + for a,b in masks: + outputs=[] + for u in (0,1): + j=4*value(coeffs[0],u,a,b)+2*value(coeffs[1],u,a,b)+value(coeffs[2],u,a,b) + outputs.append(tuple(out(y^u,u,0,j) for y in (0,1))) + family[a,b]=outputs[0] if outputs[0]==outputs[1] else None + accepted_valid=all(family[m] is not None for m in accepted) + if accepted_valid: + counts['accepted_only_common']+=1 + capacity=min(len({family[m][y] for m in accepted}) for y in (0,1)) + max_accepted=max(max_accepted,capacity) + two_sign_solutions += capacity==3 + if all(family[m] is not None for m in masks): + counts['all_masks_common']+=1 + max_global=max(max_global,min(len({family[m][y] for m in masks}) for y in (0,1))) + need(counts['all_masks_common']==32 and max_accepted==2 and max_global==2 and two_sign_solutions==0, + 'affine census') + truth=[]; quadratic_success=0; failure_extensions=[] + for u,a,b in product((0,1),repeat=3): + target=lambda y:2*(y^a)+(y^b) + candidates=[j for j in range(8) if all(out(y^u,u,0,j)==target(y) for y in (0,1))] + need(len(candidates)==1,'unique two-sign J') + cubic=((u+u*a+b+u*a*b)%2,(a+u*a+b+u*b+a*b)%2,(u+u*b+a*b+u*a*b)%2) + need(candidates[0]==4*cubic[0]+2*cubic[1]+cubic[2],'reported cubic ANF') + quadratic=((u+b+u*(a+b))%2,(a+u*(a+b))%2,(u+b)%2) + if (a,b) in accepted: + need(quadratic==cubic,'degree-two success extension') + quadratic_success+=1 + else: + failure_extensions.append({'u':u,'cubic':list(cubic),'quadratic':list(quadratic)}) + truth.append({'u':u,'a':a,'b':b,'J':candidates[0]}) + # Unique multilinear degree from parity over subcubes, independent of the author's transform. + degree=0; anf=[] + for field_bit in (2,1,0): + terms=[] + for subset in range(8): + parity=0 + for u,a,b in product((0,1),repeat=3): + point=u+2*a+4*b + if point&~subset==0: + j=next(row['J'] for row in truth if (row['u'],row['a'],row['b'])==(u,a,b)) + parity ^= (j>>field_bit)&1 + if parity: + terms.append(subset); degree=max(degree,subset.bit_count()) + anf.append(terms) + need(degree==3,'exact algebraic degree') + for x,u,a in product((0,1),repeat=3): + j=5*(u^a)+2*a + need(out(x,u,0,j)==3*(x^u^a),'one-mask positive control') + groups=Counter() + for j0,j1 in product(range(8),repeat=2): + if all(out(y,0,0,j0)==out(y^1,1,0,j1) for y in (0,1)): + groups[j0^j1]+=1 + need(sorted(groups.values())==[2,2,2,2],'fixed-u-coefficient group bound') + T=185; P=12*840**185; S=T+P; N=S+77 + dist=lambda x,y:sum(abs(a-b) for a,b in zip(x,y)) + targets=[(-1,S,76),(0,S-1,76),(0,S,77)] + sources=[(-S-78,S,76),(0,-78,76),(0,S,S+154)] + slacks=[[dist(s,t)-N for t in targets] for s in sources] + need(slacks==[[0,2,2],[2,0,2],[2,2,0]],'fork own/cross arrival') + need(dist((S+78,S,76),(4*T,P,0))-S==-401,'positive-x ready conflict') + need([dist((-T,P+S+i,0),targets[0])-N for i in range(3)]==[-2,-1,0], + 'old R source and frontier enter A') + need(dist((0,0,0),targets[1])-N==dist((0,-76,76),targets[1])-N==-2, + 'origin/W enter B early') + return {'schema':'oi-branch-v10-independent-review-v1','verdict':'PASS', + 'source_sha256':EXPECTED,'affine_functions':4096,'common_counts':dict(counts), + 'accepted_only_max_codes':max_accepted,'all_mask_max_codes':max_global, + 'three_accepted_mask_solutions':two_sign_solutions,'unique_J':truth, + 'anf_bitmasks_u_a_b':anf,'degree':degree,'quadratic_success_inputs':quadratic_success, + 'unspecified_physical_failure_extensions':failure_extensions, + 'u_coefficient_group_sizes':dict(groups),'spatial_arrival_slacks':slacks, + 'scope':'finite table deduction; nonlinear prior, previous-field access and spatial fork not supplied'} + +if __name__=='__main__': + parser=argparse.ArgumentParser() + parser.add_argument('--source-root',type=Path,default=Path(__file__).resolve().parents[2]) + args=parser.parse_args() + print(json.dumps(run(args.source_root),indent=2,sort_keys=True)) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/review/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/review/result.json new file mode 100644 index 000000000..28ac17c95 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/branch_v10/review/result.json @@ -0,0 +1,138 @@ +{ + "accepted_only_max_codes": 2, + "affine_functions": 4096, + "all_mask_max_codes": 2, + "anf_bitmasks_u_a_b": [ + [ + 1, + 3, + 4, + 7 + ], + [ + 2, + 3, + 4, + 5, + 6 + ], + [ + 1, + 5, + 6, + 7 + ] + ], + "common_counts": { + "accepted_only_common": 32, + "all_masks_common": 32 + }, + "degree": 3, + "quadratic_success_inputs": 6, + "schema": "oi-branch-v10-independent-review-v1", + "scope": "finite table deduction; nonlinear prior, previous-field access and spatial fork not supplied", + "source_sha256": "4bddbbeec267c831f31d8d578e9768e18f64c1319388bf9512563cae35aa6ac4", + "spatial_arrival_slacks": [ + [ + 0, + 2, + 2 + ], + [ + 2, + 0, + 2 + ], + [ + 2, + 2, + 0 + ] + ], + "three_accepted_mask_solutions": 0, + "u_coefficient_group_sizes": { + "0": 2, + "3": 2, + "5": 2, + "6": 2 + }, + "unique_J": [ + { + "J": 0, + "a": 0, + "b": 0, + "u": 0 + }, + { + "J": 6, + "a": 0, + "b": 1, + "u": 0 + }, + { + "J": 2, + "a": 1, + "b": 0, + "u": 0 + }, + { + "J": 7, + "a": 1, + "b": 1, + "u": 0 + }, + { + "J": 5, + "a": 0, + "b": 0, + "u": 1 + }, + { + "J": 0, + "a": 0, + "b": 1, + "u": 1 + }, + { + "J": 1, + "a": 1, + "b": 0, + "u": 1 + }, + { + "J": 2, + "a": 1, + "b": 1, + "u": 1 + } + ], + "unspecified_physical_failure_extensions": [ + { + "cubic": [ + 1, + 1, + 0 + ], + "quadratic": [ + 1, + 0, + 1 + ], + "u": 0 + }, + { + "cubic": [ + 0, + 0, + 0 + ], + "quadratic": [ + 1, + 1, + 0 + ], + "u": 1 + } + ], + "verdict": "PASS" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/PROVENANCE.json new file mode 100644 index 000000000..4ca7a3c11 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/PROVENANCE.json @@ -0,0 +1,8 @@ +{ + "source_handoff": "OI_native_Y_continuation_handoff_v1(1).zip", + "source_handoff_sha256": "977e8e33683e1b06b47e6cfd78071cbccf72d95b03724f2684a77f1242af736e", + "core_sha256": "b16155925700321abdb6f59260bc510e8e6c1d039f30c9eadc0c4320de89c941", + "repository_actions": [], + "independent_review": "not performed; transport-proof review open", + "baseline_replay": "all ten new handoff checkers normal/-O matched recorded outputs" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/REPORT.md new file mode 100644 index 000000000..8fd3cb25f --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/REPORT.md @@ -0,0 +1,184 @@ +# Native-Y continuation: reversible interface and a boundary-control obstruction + +24 October 2026. Research continuation of OI Research Work. Repository read-only; +no commits, pushes, comments, dispatches, premise adoptions, or certification claims. +The transport-proof review remains open. These are author results, not an +independent review or Lean certificate. + +## Result + +The accepted incoming code is `(A,B,D)=(y,y,1 XOR xy)`, where x is the earlier +public X outcome and y the actual arriving Y operand. There is a particularly +simple total reversible four-bit normalization. Moreover, the auxiliary bit +need not accumulate garbage if x and y are retained as accessible controls. +This resolves the logical information accounting, not native implementation. + +A separate exact calculation rules out a concrete attempted native shortcut: +adding initially prepared B-field pulses on two specified sections of the +receiver's first-arrival boundary. Even with all twenty relevant slice entries +freely controllable, the full output cannot depend on y alone. On y=1 it obeys +`B XOR D=x` for every setting. A larger routing stage or a different collision +geometry is required to obtain the requested clean socket through this route. + +## 1. Total reversible interfaces + +With an initially clean auxiliary bit E, define + + F(A,B,D,E) = (E, A XOR B, A, 1 XOR D). + +This is a permutation on all sixteen inputs, with inverse + + F^-1(a,b,d,e) = (d, b XOR d, 1 XOR e, a). + +On the native domain: + +| x | y | Incoming triple | Clean triple | Retained E | +|---|---|---|---|---| +| 0 | 0 | 001 | 000 | 0 | +| 0 | 1 | 111 | 001 | 0 | +| 1 | 0 | 001 | 000 | 0 | +| 1 | 1 | 110 | 001 | 1 | + +Thus the retained bit is exactly x AND y. The two x histories with y=0 were +already indistinguishable in this three-bit input; F makes no claim to recover x. +The construction is affine: one XOR, one NOT and a wire permutation suffice as +abstract circuit operations. No claim is made that these are freely available +operations of the native lattice. + +If the earlier public x is available as a retained physical control, no new +clean bit is logically required. Define instead + + G(x,A,B,D) = (x, B XOR A, D XOR 1 XOR xA, A). + G^-1(x,a,b,d) = (x, d, a XOR d, b XOR 1 XOR xd). + +Then `G(x,y,y,1 XOR xy)=(x,0,0,y)`. G is also a total permutation. Equivalently, +after F one can uncompute E by `E <- E XOR xy`, while preserving x and y. +That operation is reversible on the full domain and returns E to zero on +native inputs. There is no necessary growing garbage register for this logical +normalization alone. The actual stochastic reset has its own retained-state +and fresh-resource obligations; this does not eliminate those. + +Crucially, an earlier public record is not automatically a native control +available at the required site and time. We have not constructed persistence +or transport of x, a lattice implementation of G, or a new permission to +preload the unknown x into the apparatus. The original clean-ancilla counting +obstruction remains correct when x is unavailable and no other state is retained. + +## 2. The attempted native boundary repair + +Keep the actual parameters and update unchanged: + + T=185, P=12*840^185, S=T+P, d=68, R=S+d, + U_(t+1)(v)=U_(t-1)(v) XOR H(XOR of six neighbours), + H(A,B,D)=(B,D,A XOR BD). + +Coordinates in this section are relative to qY. The receiver is q2=(0,0,2) +at tick R+2. Consider extra initial B-field sources at `(a,b,z)` with z=1 or 2 +and `|a|+|b|+|z-2|=R+2`. No other initial sources or slices are changed in the +local model. Their distance to qY is R+2z>R and to the original upper pulse +at `(0,0,R)` is 2R. They cannot affect the original qY endpoint at R, or +interact with that pulse before R. All lower first-arrival fields have the +same rotating field phase, so their contributions before the collision are +linear path-parity sums. + +In the shrinking backward cone used by the retained proof, these sources +cannot alter the R-2 slice: its radius is two, while four steps of radial +progress would be needed. On the R-1 slice their only possible changes are +B-field entries at: + +- z=1, |a|+|b|=2: eight entries; +- z=2, |a|+|b|=3: twelve entries. + +The analysis allows all twenty changes independently. This is a relaxation: +it proves a negative result even before imposing full-apparatus compatibility. +The retained source witnesses also realize each entry individually in this +local cone by exact no-carry parity, but no successful apparatus modification +or global readiness/prior compatibility is claimed or adopted. + +Let k be the XOR of the four axial changes at `(0,+/-2,1)` and `(+/-2,0,1)`. +Let l be the XOR of all twelve changes on z=2. The other four diagonal z=1 +changes cancel. Three ordinary native updates give exactly + + A = y, + B = y XOR uk XOR l, + D = 1 XOR xy XOR u(1 XOR x)k XOR yl, + y = x XOR u. + +The old selector masks cancel for every assignment. Thus the twenty controls +reduce to two effective parities for this endpoint. On y=1, u=1 XOR x, and + + A=1, B XOR D=x. + +The x=0 and x=1 outputs therefore have disjoint full-cell codes for every +setting. This excludes every Y-only full-triple encoding in this family, +including `(0,0,y)` and `(1,y,1)`. The invariant even survives history-dependent +choices of k and l; treating those as implementable is not needed for the +negative result. Randomizing these controls does not create a clean full triple. + +This is not a general no-go for the lattice, ancillas, extra time, other source +fields or positions, native history-controlled routing, or the complete Y +instrument. Nor is retaining x itself a privacy failure: x is already public. +The obstruction concerns the requested clean interface, not excess secret +information at the terminal read. + +## 3. Verification and provenance + +The source handoff was read in full for the native-Y result and its synthesis; +the relevant earlier localized-reset and Y-adapter reports were also read. +All ten retained handoff checkers replayed normally and with Python -O, with +byte-identical recorded outputs. This does not close the wider transport-proof +review or rerun every earlier baseline test. + +New checks: + +- Both interface maps and their inverses on all sixteen states, all four native + histories, and the conditional auxiliary-bit recycling identity. +- Twenty explicit source witnesses and their exact first-arrival parity, the + complete relaxed shell support, separation from the upper pulse, and + inability to affect qY at R. +- 16,777,216 bit-parallel native input/control cases, including every old + selector-mask assignment, agree with the displayed full-triple formula. +- 33,554,432 diagnostic cases replace the incoming qY D operand by p and retain + A=p. These replacements are tests only, never native operations. +- A separate Boolean-polynomial implementation of the three updates derives + the same formula and the invariant symbolically. It shares the previously + reviewed upper-pulse recurrence, so is not an independent transport proof. +- Wrong finite-phase extrapolation, discarded-garbage and missing-history-AND + controls are rejected. All new checks remain active with Python -O. + +The copied `core.py` is byte-for-byte from the accepted native-Y handoff. Hashes +are in PROVENANCE.json and SHA256SUMS. `patterns.json` records the actual +large-integer source witnesses; no large-torus tick simulation is claimed. +The boundary family and its reduced formula were found exploratorily, not +under an externally frozen preregistration. No subagents or independent +reviewers were used in this continuation. + +## 4. Remaining construction + +The next native obligation is to implement a history-controlled or larger +routing stage, using initially specified resources, without silently cleaning +neighbouring fields. G is a precise logical target if native x persistence and +transport can be supplied. F is the alternative with one clean bit and explicit +retained public information. A fixed reversible circuit alone does not satisfy +that obligation. + +The native 5:3:2 Y reset, fresh conditional resources, enlarged joint observation +window, complete outgoing-carrier law, X→Y→X and X→Y→R diagnostics, and all failure +branches remain open. The early prefix `(1,u,0)` remains informative and still +requires the existing supplied delayed-access convention. No native clock, +shutter or access closure has been constructed. Exact reconstruction and the +separate finite-precision OI programme retain their distinct status. + +## Replay + +From the extracted bundle root: + + python3 continuation/checks.py + python3 -O continuation/checks.py + python3 continuation/symbolic.py + python3 -O continuation/symbolic.py + +The symbolic script writes its derived polynomial JSON in the extracted folder. +All computation uses the Python standard library and no network. Compare the +printed output with the retained .out files. The original handoff is identified +by hash but need not be downloaded to replay these new local checks. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/SHA256SUMS new file mode 100644 index 000000000..3f217e680 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/SHA256SUMS @@ -0,0 +1,12 @@ +d069573516587d7cf93662fcbadc077ccb9ec2b116982225aa5330f9e0f418e7 REPORT.md +b16155925700321abdb6f59260bc510e8e6c1d039f30c9eadc0c4320de89c941 core.py +f2ead0346c31ecff3d05f097f7aacd83cb371c427489a5f2941e77a89de32c6a model.py +d5a84d11d33ea8fcbbca12ba726636cb4adc01b9148d5aa7a9aee4f00f587fab checks.py +fd5a9b6ac57c3ccb12979d3afad3114ef844def604103b00e25c7591a328adf0 symbolic.py +af72ee6e6b1f020d5234a4663308df8ae3cd9b5245b929850ab3322013f91a82 patterns.json +517efb5acb0328f18a759cb98b798bbe6879ab5eba8358c446f3920606942bea symbolic-results.json +fec559795b3758800ae6644e905d86ea70cb3b40ba5a3dd6731eddd86c1f1a3e checks.out +fec559795b3758800ae6644e905d86ea70cb3b40ba5a3dd6731eddd86c1f1a3e checks-O.out +0c7b5e39c81fcf0a9a22c53fecd375cf960e7b70bda5a9d7843fcbb19ba597ea symbolic.out +0c7b5e39c81fcf0a9a22c53fecd375cf960e7b70bda5a9d7843fcbb19ba597ea symbolic-O.out +654d3d639f0757f3dcbeab8716cc97114ad1d363283845cce1fa5e8e9d66f51d PROVENANCE.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/checks-O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/checks-O.out new file mode 100644 index 000000000..c1ca6aed6 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/checks-O.out @@ -0,0 +1,7 @@ +I1: both four-bit maps and explicit inverses checked on all16 states; all4 native rows; reversible workspace recycling: PASS +G1:20 exact source/parity witnesses; complete relaxed plane-shell controls; no full-apparatus compatibility claim: PASS +N1:16,777,216 input/control lanes agree with exact formula; all old mask assignments: PASS +N2: on y=1, A=1 and B XOR D=x for every control setting: PASS +N3:33,554,432 diagnostic lanes retain A=p; no mid-run interventions in native claim: PASS +C1:wrong-phase, discarded-garbage, and missing-control counterchecks detected: PASS +SCOPE: exact local algebra and scoped boundary-control obstruction; native reset and transport-proof review remain open. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/checks.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/checks.out new file mode 100644 index 000000000..c1ca6aed6 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/checks.out @@ -0,0 +1,7 @@ +I1: both four-bit maps and explicit inverses checked on all16 states; all4 native rows; reversible workspace recycling: PASS +G1:20 exact source/parity witnesses; complete relaxed plane-shell controls; no full-apparatus compatibility claim: PASS +N1:16,777,216 input/control lanes agree with exact formula; all old mask assignments: PASS +N2: on y=1, A=1 and B XOR D=x for every control setting: PASS +N3:33,554,432 diagnostic lanes retain A=p; no mid-run interventions in native claim: PASS +C1:wrong-phase, discarded-garbage, and missing-control counterchecks detected: PASS +SCOPE: exact local algebra and scoped boundary-control obstruction; native reset and transport-proof review remain open. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/checks.py new file mode 100644 index 000000000..da270595c --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/checks.py @@ -0,0 +1,72 @@ +from model import * +from fractions import Fraction + +def need(ok,msg): + if not ok:raise RuntimeError(msg) + +# Exact reversible interfaces, on their entire domains. +def affine(v): + a,b,d,e=v;return e,a^b,a,1^d + +def affine_inverse(v): + a,b,d,e=v;return d,b^d,1^e,a + +def history(v): + x,a,b,d=v;return x,b^a,d^1^(x&a),a + +def history_inverse(v): + x,a,b,d=v;return x,d,a^d,b^1^(x&d) +for fn,inv in ((affine,affine_inverse),(history,history_inverse)): + domain=list(product((0,1),repeat=4)) + need(len({fn(v) for v in domain})==16,'full permutation') + need(all(inv(fn(v))==v for v in domain),'explicit inverse') +for x,y in product((0,1),repeat=2): + need(affine((y,y,1^(x&y),0))==(0,0,y,x&y),'clean-ancilla interface') + need(history((x,y,y,1^(x&y)))==(x,0,0,y),'history-controlled interface') + # Clean retained workspace can be recycled if x,y remain accessible. + a,b,d,e=affine((y,y,1^(x&y),0)) + need(e^(x&d)==0,'conditional uncomputation') +print('I1: both four-bit maps and explicit inverses checked on all16 states; all4 native rows; reversible workspace recycling: PASS') + +# The 20 free pre-collision entries are the two relevant shell sections. +expected={(R-1,(a,b,z)) for z,r in ((1,2),(2,3)) for a in range(-r,r+1) for b in range(-r,r+1) if abs(a)+abs(b)==r} +observed=set() +for pat,(loc,rawpat) in zip(basis,D['examples']): + need(pat==int(rawpat,16) and pat.bit_count()==1,'single-entry witnesses') + slot=slots[pat.bit_length()-1];observed.add(slot) + need(sum(abs(a-b) for a,b in zip(loc,end))==R+2,'source endpoint boundary') + need(sum(abs(a-b) for a,b in zip(loc,(0,0,R)))>=2*R,'no early upper collision') + need(sum(abs(a) for a in loc)>R,'source cannot affect qY at R') + actual=0 + for i,(t,v) in enumerate(slots): + ds=tuple(abs(a-b) for a,b in zip(v,loc)) + if sum(ds)==t and odd(ds):actual|=1<500000:raise RuntimeError('orbit limit') + return tuple(states),seen[v],len(states)-seen[v] + +def state(q,n): + states,start,period=orbit(q) + if n>=len(states):n=start+(n-start)%period + return states[n] + +def upper(q,t,pos): + a,b,n=map(abs,pos);a,b=sorted((a,b),reverse=True) + lag=t-a-b-n + if lag<0 or lag%2:return ZERO + f,z,l,j,g=state(q,n)[1:] + if (a,b,lag)==(0,0,0):return hp(q,n) + if (a,b,lag)==(1,0,0):return z + if (a,b,lag)==(2,0,0):return l + if (a,b,lag)==(1,1,0):return ZERO + if (a,b,lag)==(0,0,2):return f + if (a,b,lag)==(1,0,2):return j + if (a,b,lag)==(0,0,4):return g + raise RuntimeError(('uncovered pulse displacement',a,b,n,lag)) + +def odd(parts): + seen=0 + for p in parts: + if seen&p:return 0 + seen|=p + return 1 + +def ball(r,center): + for a in range(-r,r+1): + for b in range(-r+abs(a),r-abs(a)+1): + for c in range(-r+abs(a)+abs(b),r-abs(a)-abs(b)+1): + yield center[0]+a,center[1]+b,center[2]+c + +def native_second(T,P,d,x,my,mr,u,p=None): + S=T+P;R=S+d;q=(u,0,1);end=(0,0,2) + # Coordinates relative qY. Every lower source is on end's R+2 boundary. + controls=[((0,-S,-d),x),((0,S,-d),my^mr),((T,P,-d),my),((-T,P,-d),mr)] + def base(t,v): + val=upper(q,t,(v[0],v[1],R-v[2])) + for loc,bit in controls: + dist=tuple(abs(a-b) for a,b in zip(v,loc)) + if sum(dist)<=t: + if sum(dist)!=t:raise RuntimeError('lower source already behind front') + if odd(dist):val=X(val,hp((0,bit,0),t)) + return val + old={v:base(R-2,v) for v in ball(2,end)} + now={v:base(R-1,v) for v in ball(3,end)} + records={} + for tick in range(R,R+3): + nxt={} + for v in ball(R+2-tick,end): + neighbours=[] + for axis in range(3): + for sign in (-1,1): + w=list(v);w[axis]+=sign;neighbours.append(now[tuple(w)]) + nxt[v]=X(old[v],H(X(*neighbours))) + if tick==R and p is not None:nxt[(0,0,0)]=(x,1,p) + records[tick-R]=dict(nxt) + old,now=now,nxt + return now[end],records diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/model.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/model.py new file mode 100644 index 000000000..a50a36633 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/model.py @@ -0,0 +1,44 @@ +from core import * +from pathlib import Path +import json +D=json.loads(Path('continuation/patterns.json').read_text());basis=[int(v,16) for v in D['basis']] +T=185;P=12*840**T;S=T+P;d=68;R=S+d;end=(0,0,2) +N=1<>j&1:w^=var + perturb[slot]=w + +def bx(*vs):return tuple(__import__('functools').reduce(int.__xor__,(v[i] for v in vs),0) for i in range(3)) +def bh(v):a,b,c=v;return b,c,a^(b&c) +def calc(x,u,my=0,mr=0,p=None): + controls=[((0,-S,-d),x),((0,S,-d),my^mr),((T,P,-d),my),((-T,P,-d),mr)] + def base(t,v): + val=upper((u,0,1),t,(v[0],v[1],R-v[2])) + for loc,bit in controls: + ds=tuple(abs(a-b) for a,b in zip(v,loc)) + if sum(ds)==t and odd(ds):val=X(val,hp((0,bit,0),t)) + out=[ALL*b for b in val] + for i,b in enumerate(hp((0,1,0),t)): + if b:out[i]^=perturb[t,v] + return tuple(out) + old={v:base(R-2,v) for v in ball(2,end)};now={v:base(R-1,v) for v in ball(3,end)} + for tick in range(R,R+3): + nxt={} + for v in ball(R+2-tick,end): + ns=[] + for axis in range(3): + for sign in (-1,1): + w=list(v);w[axis]+=sign;ns.append(now[tuple(w)]) + nxt[v]=bx(old[v],bh(bx(*ns))) + if tick==R and p is not None:nxt[(0,0,0)]=tuple(ALL*b for b in (x,1,p)) + old,now=now,nxt + return now[end] diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/pattern_probe.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/pattern_probe.py new file mode 100644 index 000000000..32d7de030 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/pattern_probe.py @@ -0,0 +1,28 @@ +from core import * +T=185;P=12*840**T;S=T+P;d=68;R=S+d +end=(0,0,2) +slots=[(R-2,v) for v in ball(2,end)]+[(R-1,v) for v in ball(3,end)] +def pattern(loc): + out=0 + for i,(t,v) in enumerate(slots): + ds=tuple(abs(a-b) for a,b in zip(v,loc)) + if sum(ds)==t and odd(ds):out|=1<>i)&1) for i,v in enumerate(ports)] + def base(t,v): + val=upper((u,0,1),t,(v[0],v[1],R-v[2])) + for loc,bit in controls: + ds=tuple(abs(a-b) for a,b in zip(v,loc)) + if sum(ds)<=t: + if sum(ds)!=t:raise RuntimeError('late lower front') + if odd(ds):val=X(val,hp((0,bit,0),t)) + return val + old={v:base(R-2,v) for v in ball(2,end)} + now={v:base(R-1,v) for v in ball(3,end)} + records={} + for tick in range(R,R+3): + nxt={} + for v in ball(R+2-tick,end): + ns=[] + for axis in range(3): + for sign in (-1,1): + w=list(v);w[axis]+=sign;ns.append(now[tuple(w)]) + nxt[v]=X(old[v],H(X(*ns))) + if tick==R and p is not None:nxt[(0,0,0)]=(x,1,p) + records[tick-R]=dict(nxt) + old,now=now,nxt + return now[end],records +for mask in range(16): + vals=[calc(x,u,0,0,mask)[0] for x,u in product((0,1),repeat=2)] + print(mask, vals) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/search-results.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/search-results.json new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/search-results.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/search.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/search.py new file mode 100644 index 000000000..cd496caad --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/continuation/search.py @@ -0,0 +1,84 @@ +from core import * +from pathlib import Path +import json +D=json.loads(Path('continuation/patterns.json').read_text());basis=[int(v,16) for v in D['basis']] +T=185;P=12*840**T;S=T+P;d=68;R=S+d;end=(0,0,2) +N=1<>j&1:w^=var + perturb[slot]=w + +def bx(*vs):return tuple(__import__('functools').reduce(int.__xor__,(v[i] for v in vs),0) for i in range(3)) +def bh(v):a,b,c=v;return b,c,a^(b&c) +def calc(x,u,my=0,mr=0,p=None): + controls=[((0,-S,-d),x),((0,S,-d),my^mr),((T,P,-d),my),((-T,P,-d),mr)] + def base(t,v): + val=upper((u,0,1),t,(v[0],v[1],R-v[2])) + for loc,bit in controls: + ds=tuple(abs(a-b) for a,b in zip(v,loc)) + if sum(ds)==t and odd(ds):val=X(val,hp((0,bit,0),t)) + out=[ALL*b for b in val] + for i,b in enumerate(hp((0,1,0),t)): + if b:out[i]^=perturb[t,v] + return tuple(out) + old={v:base(R-2,v) for v in ball(2,end)};now={v:base(R-1,v) for v in ball(3,end)} + for tick in range(R,R+3): + nxt={} + for v in ball(R+2-tick,end): + ns=[] + for axis in range(3): + for sign in (-1,1): + w=list(v);w[axis]+=sign;ns.append(now[tuple(w)]) + nxt[v]=bx(old[v],bh(bx(*ns))) + if tick==R and p is not None:nxt[(0,0,0)]=tuple(ALL*b for b in (x,1,p)) + old,now=now,nxt + return now[end] +outs={(x,u):calc(x,u) for x,u in product((0,1),repeat=2)} +found=[] +for field in range(3): + other=[j for j in range(3) if j!=field] + for constants in product((0,1),repeat=2): + good=ALL + for (x,u),out in outs.items(): + expected=[None]*3;expected[field]=x^u + for j,b in zip(other,constants):expected[j]=b + for a,b in zip(out,expected):good &= a if b else ALL^a + if good: + idx=(good&-good).bit_length()-1 + found.append({'field':field,'constants':constants,'count':good.bit_count(),'first':idx}) +print(json.dumps(found)) +Path('continuation/search-results.json').write_text(json.dumps(found,indent=2)) +for y in (0,1): + a=outs[0,y];b=outs[1,1^y];diff=bx(a,b) + print('public x dependence at y',y, [v.bit_count() for v in diff], 'any', (diff[0]|diff[1]|diff[2]).bit_count()) +# Any nonconstant y-only whole triple, with no fixed choice of encoding. +valid=ALL +for y in (0,1): + diff=bx(outs[0,y],outs[1,1^y]);valid&=ALL^(diff[0]|diff[1]|diff[2]) +print('whole output independent of earlier x given y',valid.bit_count()) +diff=bx(outs[0,1],outs[1,0]) +print('y1 difference B XOR D always1',diff[1]^diff[2]==ALL) +# Algebraic normal forms in twenty independent slice controls. +def anf(v): + a=bytearray((v>>i)&1 for i in range(N)) + for j in range(len(basis)): + step=1<>slot&1: + for i,c in enumerate(hp((0,1,0),t)): + if c:out[i]=plus(out[i],var(j+2)) + return tuple(out) +old={v:base(R-2,v) for v in ball(2,end)};now={v:base(R-1,v) for v in ball(3,end)} +for tick in range(R,R+3): + nxt={} + for v in ball(R+2-tick,end): + ns=[] + for axis in range(3): + for sign in (-1,1): + w=list(v);w[axis]+=sign;ns.append(now[tuple(w)]) + nxt[v]=vx(old[v],h(vx(*ns))) + old,now=now,nxt +out=now[end] +def sub(poly,assignment): + ans=Z + for m in poly: + good=True + for i,b in assignment.items(): + if m>>i&1: + if not b:good=False;break + m^=1<>i&1) for m in sorted(poly)) or '0' +delta=tuple(plus(sub(p,{0:0,1:1}),sub(p,{0:1,1:0})) for p in out) +print('Output A:',show(out[0]));print('Delta on y=1:',[show(p) for p in delta]) +if out[0]!=plus(x,u):raise RuntimeError('A changed') +if delta[0]!=Z or plus(delta[1],delta[2])!=O:raise RuntimeError('invariant failed') +for i,p in enumerate(out):print('Output',i,show(p)) +Path('continuation/symbolic-results.json').write_text(json.dumps({'outputs':[sorted(p) for p in out],'delta':[sorted(p) for p in delta]},indent=2)) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/PLAN.md new file mode 100644 index 000000000..f781d4cdc --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/PLAN.md @@ -0,0 +1,29 @@ +# Synchronized remote Y herald and fair-z construction + +Base #910: 3f440c59660d7255aa8a727ff8b5de8289004f80. Research only. +Use the unchanged P and local target deadline L=R+9. Test the retained +2,684-step predicate word with symbolic identity padding, not a claim that +P supports a 2,700-layer transport period. All source values must be affine +in five original-time fresh seed bits, with an independent sixth bit z. + +Decision rule fixed before computation: +1. Verify the five-bit predicate word on all 32 seeds, the six-step identity + on every register state, and the exact integer padding schedule at L. +2. Give all original-time source coordinates and affine values by an explicit + finite indexed formula. Verify the native first-arrival wing recurrence + on one bounded realization, including its final input, rather than only + evaluating the abstract register program. +3. Place new remote herald and z receivers away from all old cones and banks. + Check geometry with the actual parameters and a stated no-wrap torus. + They must have blank raw prefixes and the intended complete terminal + triples; no fresh cells may be inserted during the run. +4. Enumerate all 64 new seed assignments, retaining failure, and require + success count 5:3:2 for (a,b)=00,10,11 and fair z jointly with (a,b). + A shared-z source and a wrong final phase must be rejected. +5. Publish a conditional synchronized source construction only if the controls + pass. It does not supply the local three simultaneous carrier outputs, + prove their native connection, derive calibrated probabilities or source + independent resources physically. Report any actual synchronization gap. + +Cost: one bounded native-wing replay of about 2,700 steps plus small register, +rank, geometry and rational-law checks; no period enumeration or large search. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/PROVENANCE.json new file mode 100644 index 000000000..4d061eac8 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/PROVENANCE.json @@ -0,0 +1,28 @@ +{ + "upstream_commit": "3f440c59660d7255aa8a727ff8b5de8289004f80", + "dependency": "../parallel_v3/direct_reset/herald.json", + "dependency_sha256": "406befa2c8d1f663856a78ca6cb632e9c61d1233b02a9d532c7cb43d6261ce64", + "base_predicate_steps": [ + 0, + 2683 + ], + "identity_steps": [ + 2684, + 2689 + ], + "seed_order": [ + "a", + "b", + "k0", + "k1", + "k2" + ], + "preserved_parameters": [ + "T=185", + "P=12*840^185", + "S=T+P", + "R=S+68" + ], + "target_deadline": "R+9", + "scope": "Explicit finite initial-source schedule; no giant support materialization or long-time simulation" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/REPORT.md new file mode 100644 index 000000000..5a68a7266 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/REPORT.md @@ -0,0 +1,181 @@ +# Initial-source Y herald and fair z synchronized at R+9 + +Research checkpoint based on #910 at +`3f440c59660d7255aa8a727ff8b5de8289004f80`. The construction gives two remote +native outputs at the unchanged local deadline L=R+9: a herald with raw triple +(0,G,0), and an independent fair-z cell with raw triple (0,0,z). All sources +and ready regions are prepared at the original initial time. The 5:3:2 +calibration is supplied, not derived from OI. + +This closes the remote synchronization subproblem. It does not build the +three simultaneous local post-Y sign outputs or certify a joint reusable +carrier. Those local geometric and interface obligations remain separate. + +## Seed law and target predicate + +Use five initially independent fair bits a,b,k0,k1,k2, with +K=k0+2k1+4k2, and one additional independent fair bit z. They are independent +of the incoming system and old apparatus variables under the candidate's +supplied preparation. Copies used by the local masks and remote compiler are +correlations of these same seeds, not independently redrawn resources. + +The native predicate is G=1 iff K=47L. They therefore +consume no old source or bank coordinate. Conversely old sources cannot +reach either new receiver by L. The new herald hemisphere lies at x>=48L; +it cannot reach any local or old receiver by its designated time. The z +source is separated in the opposite direction. The two new current cones +are disjoint since their centers are 96L apart. + +Use a no-wrap torus large enough for this enlarged initial apparatus, for +example side 256L+64T+1. All relevant signed x coordinates have magnitude +at most 49L and their pairwise differences are smaller than half this side; +the y,z ranges are smaller. This is an explicit resource enlargement for the +candidate and does not alter P or the previously checked local causal cones. +No new physical premise or change of availability is adopted by this report. + +Through L, the only new public port needed is c_G. Its full prefix is blank +and its final whole triple is (0,G,0), so it needs no additional public-noise +frontier before or at L. The z port remains private until the intended +terminal access. Later readout times would need a new history/boundary audit. + +The existing seven-port chronological-bijection argument tolerates arbitrary +complementary background and still applies because its reserved bank remains +free. Its whole noise word is therefore independent of the new seed bank +under the stated initial independence. The new herald refines that law by +the explicitly computed G, without leaking extra fields or suppressing +failures. This argument does not certify simultaneous local carrier outputs +that have not yet been constructed. + +## Controls and replay + +The bounded test checks all 32 predicate assignments, all eight identity-word +register states, the exact giant integer schedule, affine rank, and actual +geometry bounds. It then independently constructs a 2,698-step native-wing +realization using two identity blocks and replays every wing recurrence on +32 packed seed cases: 86,336 input comparisons. This is a direct source-to- +spine check, not merely evaluation of the abstract word. The general source +identity above justifies the actual m; the bounded realization is not claimed +to simulate L steps. + +Both wrong-phase controls are rejected: omitting the extra zero H puts the +herald in the wrong field, and putting z in the wrong initial field gives the +wrong whole raw z output. A shared z=a source keeps z marginally fair on +success but changes its joint law with (a,b) by TV=1/2; this negative control +is also detected. All 64 new seed assignments are enumerated with successful +and failed plane/z counts retained. + +From this directory in the retained tree, run `python3 checks.py` and +`python3 -O checks.py`; both outputs equal `result.json`. The only non-stdlib +input is the hash-pinned retained herald JSON. No new Lean certificate, +full-equivalence claim, dispatch, F/E designation or merge is asserted. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/SHA256SUMS new file mode 100644 index 000000000..53763f331 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/SHA256SUMS @@ -0,0 +1,5 @@ +a958f0478b5a07330d97629bbb2218e1e8bf738b4515a8e6409718dd501001c9 PLAN.md +03180f4fd0eed30064a0e25873719c8c93ce57a876fecaba3c51374da50ae5b4 REPORT.md +34f823482000348f5c9474668f28f144926920993f9cf49e0a8c8e9a9ffaf415 checks.py +5d3ff768ce973383c3d8262d69ea88bdba2747e15f6a66b805dc5d01570373af result.json +5f88305e575e07748db41252e3ca366af68f1452bb8b801e06ae200417677c2e PROVENANCE.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/checks.py new file mode 100644 index 000000000..efb0e5d89 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/checks.py @@ -0,0 +1,128 @@ +"""Synchronized initial-source Y herald and z; no giant execution or search.""" +from pathlib import Path +from itertools import product +from collections import Counter +from fractions import Fraction as F +import argparse,hashlib,json +H=(0,2,4,7,1,3,5,6) +T=185;P=12*840**185;S=P+T;R=S+68;L=R+9 +SOURCE_HASH='406befa2c8d1f663856a78ca6cb632e9c61d1233b02a9d532c7cb43d6261ce64' +def need(ok,label): + if not ok:raise RuntimeError(label) +def h(v):a,b,c=v;return b,c,a^(b&c) +def val(mask,seed):return (mask&1)^(((mask>>1)&seed).bit_count()%2) +def affine_word(step): + c,terms=step;out=[(c>>(2-k))&1 for k in range(3)] + for j,co in terms: + for k in range(3): + if co>>(2-k)&1:out[k]^=1<<(j+1) + return tuple(out) +def gate(step,seed,state): + v=affine_word(step);code=sum(val(v[k],seed)<<(2-k)for k in range(3)) + return H[state^code] +def rank(rows): + basis={} + for x in rows: + while x: + k=x.bit_length()-1 + if k in basis:x^=basis[k] + else:basis[k]=x;break + return len(basis) +def control(t,prefix,identity,repetitions): + if t>1)&1;k=seed>>2 + accepted=int(k<{(0,0):5,(1,0):3,(1,1):2,(0,1):0}[a,b]) + state=0 + for step in prefix:state=gate(step,seed,state) + need(state==4*accepted,'compiled predicate exact truth') + expected.append(accepted);counts[a,b]+=accepted + need(counts=={(0,0):5,(0,1):0,(1,0):3,(1,1):2},'accepted plane counts') + repetitions=(P-2424)//6 + need(repetitions>=0 and 6*repetitions==P-2424,'actual integer padding count') + need(2684+6*repetitions+2==L,'native deadline includes both final H steps') + need(L%3==1,'fair z source phase') + preamble=[profile(t,w,prefix,identity,0)for t in range(2684)for w in range(3)] + need(rank([m>>1 for m in preamble])==5,'five independent affine source dimensions') + small_rep=2;small_L=2684+6*small_rep+2 + rows=[[source_mask(q,w,prefix,identity,small_rep)for q in range(small_L)]for w in range(3)] + rows=[list(reversed(row))for row in rows] + packed=lambda mask:sum(val(mask,s)<13*R and 48*L-13*R>L,'old source and bank separation') + need(96*L>2*L and 97*L=48*L,'herald outward hemisphere') + need(sum(abs(a-b)for a,b in zip(zsource,zport))==L,'z source boundary') + result={'schema':'oi.remote-y-herald.v10','verdict':'PASS_CONDITIONAL_SYNCHRONIZED_SOURCES','base_word_length':2684,'identity_word':[s[0]for s in identity], + 'schedule':{'deadline':'R+9 = P+262','identity_repetitions':'(P-2424)/6','extra_zero_H_steps':2,'raw_herald':'(0,G,0)','raw_z':'(0,0,z)'}, + 'controls':{'predicate_assignments':32,'identity_register_states':8,'affine_seed_rank':5,'rank_with_z':6,'bounded_native_deadline':small_L,'native_wing_input_comparisons':injection_checks,'shared_z_joint_TV':str(tv),'phase_negatives_detected':2,'geometry':'actual symbolic all-index envelope'}, + 'accepted_counts':{''.join(map(str,k)):v for k,v in sorted(counts.items())},'joint_accepted_counts':{''.join(map(str,k)):v for k,v in sorted(accepted.items())}, + 'joint_rejected_counts':{''.join(map(str,k)):v for k,v in sorted(rejected.items())}, + 'success_probability':'5/16','failure_probability':'11/16','scope':'Initial-source remote herald and fair-z synchronized to existing local R+9; local simultaneous carrier outputs not constructed.'} + print(json.dumps(result,sort_keys=True,separators=(',',':'))) +if __name__=='__main__':main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/result.json new file mode 100644 index 000000000..bd6e0e69b --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/result.json @@ -0,0 +1 @@ +{"accepted_counts":{"00":5,"01":0,"10":3,"11":2},"base_word_length":2684,"controls":{"affine_seed_rank":5,"bounded_native_deadline":2698,"geometry":"actual symbolic all-index envelope","identity_register_states":8,"native_wing_input_comparisons":86336,"phase_negatives_detected":2,"predicate_assignments":32,"rank_with_z":6,"shared_z_joint_TV":"1/2"},"failure_probability":"11/16","identity_word":[2,3,3,3,3,7],"joint_accepted_counts":{"000":5,"001":5,"100":3,"101":3,"110":2,"111":2},"joint_rejected_counts":{"000":3,"001":3,"010":8,"011":8,"100":5,"101":5,"110":6,"111":6},"schedule":{"deadline":"R+9 = P+262","extra_zero_H_steps":2,"identity_repetitions":"(P-2424)/6","raw_herald":"(0,G,0)","raw_z":"(0,0,z)"},"schema":"oi.remote-y-herald.v10","scope":"Initial-source remote herald and fair-z synchronized to existing local R+9; local simultaneous carrier outputs not constructed.","success_probability":"5/16","verdict":"PASS_CONDITIONAL_SYNCHRONIZED_SOURCES"} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/review/INPUT-HASHES.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/review/INPUT-HASHES.json new file mode 100644 index 000000000..c77e5dddf --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/review/INPUT-HASHES.json @@ -0,0 +1,11 @@ +{ + "author_sha256": { + "PLAN.md": "a958f0478b5a07330d97629bbb2218e1e8bf738b4515a8e6409718dd501001c9", + "PROVENANCE.json": "5f88305e575e07748db41252e3ca366af68f1452bb8b801e06ae200417677c2e", + "REPORT.md": "03180f4fd0eed30064a0e25873719c8c93ce57a876fecaba3c51374da50ae5b4", + "SHA256SUMS": "610d84caefb796ec796314fa4745e8260dab88f0baad1d9a45b77aef96cc3df5", + "checks.py": "34f823482000348f5c9474668f28f144926920993f9cf49e0a8c8e9a9ffaf415", + "result.json": "5d3ff768ce973383c3d8262d69ea88bdba2747e15f6a66b805dc5d01570373af" + }, + "reviewed_commit": "25220128c3c7991e4c22c917af56b68c02ab8051" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/review/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/review/REPORT.md new file mode 100644 index 000000000..16fba85e1 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/review/REPORT.md @@ -0,0 +1,113 @@ +# Separate-author review of the synchronized remote Y herald + +Author checkpoint: `25220128c3c7991e4c22c917af56b68c02ab8051`, under +`verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/`. +Verdict: **accept the conditional remote-herald and fair-z construction; +no blocking findings**. This internal separate-agent review certifies no +local three-sign controller, complete carrier or reusable interface. + +## Inputs and independent execution + +The immutable published report, checker, provenance, result and checksum +blobs match the local review inputs. The manifest verifies and both author +replays match result.json exactly. The retained upstream herald JSON also +matches its published blob `e48fb2f99382336489537c5ae7d0ada4a2e04972` and the +claimed SHA-256 `406befa2c8d1f663856a78ca6cb632e9c61d1233b02a9d532c7cb43d6261ce64`. +The review checker imports no author code or predecessor compiler. + +An independent evaluation of the first 2,684 retained steps gives (G,0,0) +on every one of the 32 seeds, with acceptance counts 5,0,3,2 in order +00,01,10,11. The constant word (2,3,3,3,3,7) is identity on all eight register +states. The five-dimensional affine coefficient span is verified. The +source transform has unit diagonal, so retaining all transformed rows also +retains those seed dimensions; z supplies the sixth independent dimension. + +With actual P=12*840^185, m=(P-2424)/6 is a nonnegative integer and +2684+6m+2=P+262=R+9 exactly. Both final H applications are necessary for +the stated herald phase. Since L=1 mod3, a pure-A z source gives the raw +triple (0,0,z). Omitting one final H or choosing the wrong initial z field +fails the complete-triple check. No P change or inferred 2,700-layer period +is used. + +## Arbitrary-length source formula + +The three wing sources have coordinates (L-1-q,+/-[q+1],0) and +(L-1-q,0,q+1), translated by the remote center, for every 0<=q=47L, with centers +/-48L, and have separation 96L>2L. The +new source hemisphere is x>=48L, while the z source is on the opposite +boundary. Thus neither new ready pins nor source values consume an old +frontier coordinate or change an old informative deadline; old sources +cannot reach the new receivers through L. The source formulas' endpoint +bounds establish these inequalities for every indexed source, not merely +sampled rows. + +All relevant x coordinates are in [-49L,49L]; y,z magnitudes have a smaller +bound. The chosen side 256L+64T+1 exceeds twice every relevant coordinate +difference. The integer geometry checks therefore support a single no-wrap +lift throughout all involved cones. This enlarges the finite resource +geometry while leaving P and the old local dynamics unchanged. + +The remote herald port reveals only a blank prefix and (0,G,0) at L. +The private z port has a blank prefix and remains inaccessible until the +specified terminal access. The old seven-stream triangular proof still +applies because its bank is free and remote additions are in its complement. +Its complete noise word is independent of the new seed bank before either +herald branch. On the stated independent seed prior, the new G leaves +(a,b) weights 5:3:2 and z independent fair jointly with them. + +Independent enumeration retains all 64 new seed assignments: 20 successes +and 44 failures. Rejected counts are 3,8,5,6 for each fixed z. Sharing z=a +retains a fair z marginal but changes the joint successful law by TV=1/2, +and the checker rejects it. Conditioning on G intentionally changes the +(a,b) law; the result does not assert that used a or b remains an independent +fair bit after heralding. + +A later joint construction must use the same a,b in the local masks and +remote source encoding, verify those local copies' geometry, and establish +the complete physical carrier law. Those correlations are not extra fresh +resources. This review assumes no unreviewed local-controller formula and +proves no post-failure carrier, later-time public history, unrestricted +access policy, native preparation of fair resources or full equivalence. + +## Replay + +From this retained review directory run `python3 checks.py` and +`python3 -O checks.py`; both match result.json. They use the existing +hash-pinned `parallel_v3/direct_reset/herald.json`, with an optional +`--herald path` for sparse checkouts. Normal and optimized outputs match +byte-for-byte; all controls use explicit exceptions. INPUT-HASHES.json pins +the author inputs and SHA256SUMS covers the review artifacts. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/review/SHA256SUMS new file mode 100644 index 000000000..c38ff54f2 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/review/SHA256SUMS @@ -0,0 +1,4 @@ +93dc767aa008d42813a32b929943442ef298cb586201f3471de0240b62d93d1b REPORT.md +3919ddee43feb2cb1192651a947f0151e287355761a977c5828f085494e80be0 INPUT-HASHES.json +7070ef68d4aa67c181506a601e08ce3c144cd4e3f1c395c2ff38fa327239d8a3 checks.py +d8e779cc2b57b49b286589c475190b8b1a5ea46c1aaf3635126fa618ea6717a3 result.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/review/checks.py new file mode 100644 index 000000000..6786f7a13 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/review/checks.py @@ -0,0 +1,144 @@ +#!/usr/bin/env python3 +"""Independent remote-herald review; no author imports.""" +from pathlib import Path +from functools import lru_cache +from itertools import product +from collections import Counter +from fractions import Fraction as F +from math import comb +import argparse,hashlib,json + +HASH='406befa2c8d1f663856a78ca6cb632e9c61d1233b02a9d532c7cb43d6261ce64' +BITS=list(product((0,1),repeat=3));FULL=(1<<32)-1 + +def need(ok,msg): + if not ok:raise RuntimeError(msg) + +def H(q):a,b,c=q;return b,c,a^(b&c) +def xor(*values):return tuple(__import__('functools').reduce(int.__xor__,(v[k] for v in values),0) for k in range(3)) +def val(mask,seed):return (mask&1)^((mask>>1 & seed).bit_count()%2) +def packed(mask):return sum(val(mask,s)<>(2-k))&1 for k in range(3)] + for bit,word in terms: + for k in range(3):out[k]^=((word>>(2-k))&1)<<(bit+1) + return tuple(out) + +def source_rows(program): + n=len(program);size=1<<(n-1).bit_length();rows=[] + # Binary zeta transform in-place, independently of author's submask loop. + for wing in range(3): + row=[program[t][(wing-t)%3] for t in range(n)]+[0]*(size-n) + bit=1 + while bitt:return(0,0,0) + neighbors=[field(t-1,tuple(a+b for a,b in zip(p,step))) for step in steps] + return xor(field(t-2,p),H(xor(*neighbors))) + need(all(field(t,(0,0,0))==(0,0,0) for t in range(n)),'whole raw blank prefix') + return field(n,(0,0,0)) + +def main(path): + raw=path.read_bytes();need(hashlib.sha256(raw).hexdigest()==HASH,'source provenance') + data=json.loads(raw);prefix=data['program'][:2684];identity=[2,3,3,3,3,7] + need([s[0] for s in data['program'][2684:2690]]==identity,'retained identity sequence') + for s in BITS: + q=s + for code in identity:q=H(xor(q,tuple((code>>(2-k))&1 for k in range(3)))) + need(q==s,'identity word on every state') + truth=[];planes=Counter() + for seed in range(32): + q=(0,0,0) + for code,terms in prefix: + for bit,term in terms: + if seed>>bit&1:code^=term + q=H(xor(q,tuple((code>>(2-k))&1 for k in range(3)))) + a=seed&1;b=(seed>>1)&1;K=seed>>2;g=int(K<{(0,0):5,(0,1):0,(1,0):3,(1,1):2}[a,b]) + need(q==(g,0,0),'actual predicate word truth table');truth.append(g);planes[a,b]+=g + P=12*840**185;R=P+253;L=R+9;m=(P-2424)//6;side=256*L+64*185+1 + need(m>=0 and 6*m==P-2424 and 2684+6*m+2==L,'unchanged-P exact schedule') + need(L%3==1,'fair z phase') + need(47*L>13*R and 96*L>2*L,'full source/ready/bank separation') + need(196*L>1) for v in span} + need(len(span)==32,'five-dimensional affine seed embedding') + rows=source_rows(program);q=(0,0,0);comparisons=0 + for t,target in enumerate(program): + injection=[0,0,0] + for w in range(3): + injection[(w-t)%3]=packed(rows[w][0]) + rows[w]=[a^b for a,b in zip(rows[w],rows[w][1:])] + need(tuple(injection)==tuple(packed(a) for a in target),'full native wing injection') + q=H(xor(q,tuple(injection)));comparisons+=32 + bits=sum(g<0,'omitting terminal source row detected') + for z in (0,1): + q=(z,0,0) + for _ in range(L%12):q=H(q) + need(q==(0,0,z),'native fair-z triple') + if z: + bad=(0,0,z) + for _ in range(L%12):bad=H(bad) + need(bad!=q,'wrong initial z field negative') + accepted=Counter();rejected=Counter() + for seed,z in product(range(32),(0,1)): + a=seed&1;b=(seed>>1)&1 + (accepted if truth[seed] else rejected)[a,b,z]+=1 + need(sum(accepted.values())==20 and sum(rejected.values())==44,'all64 branches retained') + for a,b in product((0,1),repeat=2): + need(accepted[a,b,0]==accepted[a,b,1]==planes[a,b],'joint z fairness after herald') + need(rejected[a,b,0]==rejected[a,b,1]==8-planes[a,b],'failure z branches retained') + ideal={k:F(v,20) for k,v in accepted.items()};shared=Counter() + for s in range(32): + if truth[s]:a=s&1;b=s>>1&1;shared[a,b,a]+=1 + distance=sum(abs(ideal.get(k,0)-F(shared.get(k,0),10)) for k in ideal.keys()|shared.keys())/2 + need(distance==F(1,2),'shared-z joint negative') + need(H((bits,0,0))!=(0,bits,0),'missing zero step phase negative') + return {'schema':'synchronized-herald-review-v1','predicate_assignments':32, + 'identity_states':8,'affine_seed_rank':5,'full_wing_steps':2686,'full_wing_seed_comparisons':comparisons, + 'small_3D_seed_cases':direct,'terminal_source_omission_mutants_detected':terminal_mutants, + 'accepted_plane_counts':[planes[k] for k in [(0,0),(0,1),(1,0),(1,1)]], + 'success':'5/16','failure':'11/16','shared_z_joint_TV':str(distance), + 'controls_passed':True,'verdict':'PASS_CONDITIONAL_REMOTE_HERALD_AND_Z'} + +if __name__=='__main__': + ap=argparse.ArgumentParser();ap.add_argument('--herald',type=Path,default=Path(__file__).resolve().parents[2]/'parallel_v3/direct_reset/herald.json');a=ap.parse_args() + print(json.dumps(main(a.herald),sort_keys=True,indent=2)) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/review/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/review/result.json new file mode 100644 index 000000000..32d1f31ef --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/herald_v10/review/result.json @@ -0,0 +1,21 @@ +{ + "accepted_plane_counts": [ + 5, + 0, + 3, + 2 + ], + "affine_seed_rank": 5, + "controls_passed": true, + "failure": "11/16", + "full_wing_seed_comparisons": 85952, + "full_wing_steps": 2686, + "identity_states": 8, + "predicate_assignments": 32, + "schema": "synchronized-herald-review-v1", + "shared_z_joint_TV": "1/2", + "small_3D_seed_cases": 96, + "success": "5/16", + "terminal_source_omission_mutants_detected": 3, + "verdict": "PASS_CONDITIONAL_REMOTE_HERALD_AND_Z" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/PLAN.md new file mode 100644 index 000000000..39b15845e --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/PLAN.md @@ -0,0 +1,45 @@ +# Public records after the calibrated phase deadline + +Research plan fixed before the extension calculation, 24 October 2026. +Source: #910 at `71d291297d0a662cbb9377ab48eef7aa4b839e77`. +The existing seven-port conditional bank proof ends at L=R+9. + +## Productivity test + +Give explicit original-time independent frontier coordinates for the old +seven public ports and the new remote herald through a later horizon, or +exhibit the precise overlap/cycle preventing that extension. A new outgoing +carrier is not assumed independent of the bank. No future instrument source +is certified before its coordinates are specified. + +## Fixed candidate + +Keep T=185, P=12*840^185, S=T+P, R=S+68, L=R+9 and the enlarged torus +side 256L+64T+1. For an integer 1<=Delta<=L set H=L+Delta. Retain all +existing old-bank sources and extend their same axial families to H. +At the new public herald cG=(48L,0,0), whose informative deadline is L, +reserve the initially uniform independent triple cG+(t,0,0) for L5 and 3->5, consistent with +the displayed ordering. The new herald adds no same-time cross-edge. + +Solving equality of the affine rays in all coordinates checks all 28 family +pairs for distinctness. The two collinear herald rays lie in disjoint x +intervals. The old collinear y rays remain on disjoint sides of their ports. +For different axes, the unique possible intersection parameters must both +lie in their reserved intervals, which the check excludes. + +All 192 family/ready-cone pairs are excluded by the same exact minimization. +The 24 enclosing current ready balls include all eight informative ports, +the original selected-read sources, original outgoing endpoint and remote z, +all outward local phases through q9, and the new private z receiver. The +previous ready balls are smaller at the same original centers, so exclusion +from these current balls also protects them. The local source exceptions +origin, W, Q, C, G, J, Kplus and Kminus are separately checked. The large +herald and old source programs lie in their respective ready balls; their +potentially enormous source lists need not be materialized to exclude them. + +The bank is outside the original-time dependence cones of previous q8 at +L-1, current q9 at L, current remote z and new informative G at L. Thus the +entire retained selected phase and the informative branch record through L +are bank-complement functions. This is not a claim about their enlarged +future dependence cones. Source/ready/target coordinate spans remain less +than half the specified torus side, and 2H is less than the side, preserving +the integer distances and unique own-port axial shortest paths. + +## Chronological inversion and conditioning on the past + +Fix every initial variable except the bank; call that fixed complement C. +Order input/output blocks by increasing t and then increasing i. No later +input reaches an earlier output. Same-tick cross-influence respects this +ordering, so all other influencing bank inputs are already earlier. + +Along a bank triple's unique length-t axial path to its own output, only +the preceding axial vertex can depend on that triple at each first-arrival +step. The other five neighbors and the local previous slice are too early +to depend on it. For fixed earlier inputs and C the step therefore acts as + + v -> alpha XOR H(v XOR beta), + +where alpha and beta may contain arbitrary dirty background. H permutes all +eight triples, so the step and its composition are permutations. Starting +with the first output, invert these diagonal permutations sequentially. This +gives a bijection from the whole independent bank to the entire noise word. + +Consequently, for each admissible C=c and each complete raw noise word n, + + Pr(N_H=n | C=c) = 2^(-B_H). + +Write N_H=(N_L,N_tail), where N_L is the old seven-stream word through L. +Uniformity of the whole word gives product uniformity of these coordinates. +For any compatible informative record D and any nonzero-probability past, + + Pr(N_tail=w | C=c, D, N_L=n) = 2^(-24Delta). + +Here D is a function of C and includes the informative old/new heralds and +allowed selected-phase records. This formula explicitly conditions on the +already exposed old noise; it does not call the entire word fresh after +part of it has been observed. Averaging over c preserves the tail law. +Earlier terminal failures remain in D and never restart an offered carrier. + +The future raw-noise factor can therefore be adjoined to any retained +selected-phase/branch law without changing that law. It cannot be adjoined +independently to a future carrier that already uses the same bank. Its +joint law with every newly read response-relevant field must be established. + +## Bounded controls, scope and replay + +The self-contained checker imports no predecessor engine. Direct nonlinear +six-neighbor recursion retains the previous local slice in two dense +backgrounds and evaluates four chronological bank blocks: a same-time old +two-port cross-arrival and two consecutive future-herald blocks. All 8,192 +assignments give full bijections, with 1,170 conditional diagonal permutation +checks. The future-herald source preserves the whole earlier herald prefix. + +Pinned or duplicated source triples reduce support from 4,096 to 512 and +are detected. An extra read of a reserved private bank triple gives a joint +support of 8 with its later output, where independence would require 64. +That control demonstrates why changing access changes the history theorem. +These short native controls validate the local mechanism; the all-index +argument and exact astronomical geometry carry the actual stated window. + +Run `python3 checks.py` and `python3 -O checks.py` from this directory; both +must equal `result.json` byte for byte. The proof depends on the stated +finite-speed/first-front native rule, explicit bank prior and retained +access convention. New instrument sources, new public ports, exposed private +fields, changed readiness or horizons beyond 2L need new audits. A reusable +native reset, access closure, calibrated probability selection, A1 coverage +and general A2 bounds remain open. No formal certification is claimed. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/SHA256SUMS new file mode 100644 index 000000000..da759d903 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/SHA256SUMS @@ -0,0 +1,5 @@ +b2ea3d59a086c1c1668364af6c9d108d77a694fbfe2277fc9f2e98cef50b276b PLAN.md +9b81df98c026282edd8134579b67e7877a3c22057ec35261529017368938e5d2 PROVENANCE.json +413c9595a6def923ba62e1c0d34c12c0516997fe1c928e5438abaf6a990fdb81 REPORT.md +44deef75316b4f9c4d2d8c66a1496f004e49a09a895bcbed8c90e6878c90b495 checks.py +5d72e859c7faa0f40b2f5a000d148e7a4bcae93d1c1e28269edabafd7d09865f result.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/checks.py new file mode 100644 index 000000000..56ee663e4 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/checks.py @@ -0,0 +1,219 @@ +"""Eight-port finite-horizon frontier audit; Python standard library only.""" +from functools import lru_cache +from itertools import product +import hashlib +import json + + +def require(ok, label): + if not ok: + raise RuntimeError(label) + + +def dist(a, b): + return sum(abs(x-y) for x, y in zip(a, b)) + + +def add(a, b): + return tuple(x+y for x, y in zip(a, b)) + + +def geometry(): + T = 185 + P = 12*840**185 + S = T+P + d = 68 + R = S+d + L = R+9 + H = 2*L + torus = 256*L+64*T+1 + ports = [(0,T,0), (0,0,-8*T), (T,P,0), (-T,P,0), + (4*T,P,0), (0,S,0), (12*R,0,0), (48*L,0,0)] + deadlines = [T,T,S,S,S,S,R,L] + axes = [1,2,1,1,1,1,0,0] + signs = [-1,-1,1,1,1,1,-1,1] + + def frontier(i, t): + a = list(ports[i]) + a[axes[i]] += signs[i]*t + return tuple(a) + + ready = [(p,a) for p,a in zip(ports,deadlines)] + ready += [((T,0,0),T), ((-T,0,0),T), ((4*T,0,0),T)] + ready += [((0,S,-68),R), ((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)] + ready += [((-48*L,0,0),L)] + # All these are original-time source exceptions or enclosing ready balls. + local_pins = [(0,0,0), (0,-76,76), (0,S,S+136), + (0,S,S+150), (0,S,S+152), (0,S,S+154), + (1,S,S+153), (-1,S,S+153)] + selected = [((0,S,76),L-1), ((0,S,77),L), + ((-48*L,0,0),L), ((48*L,0,0),L)] + + def points(i, center): + lo, hi = deadlines[i]+1, H + root = (center[axes[i]]-ports[i][axes[i]])*signs[i] + return {lo,hi} | ({root} if lo <= root <= hi else set()) + + edges = set() + chronological = 0 + for i in range(8): + for j,p in enumerate(ports): + vals = [dist(frontier(i,t),p)-t for t in points(i,p)] + require(min(vals) >= 0, 'bank arrives at another port too early') + if i != j and min(vals) == 0: + edges.add((i,j)) + require(i < j, 'same-time cycle or reverse edge') + chronological += len(vals) + for center,radius in ready: + require(min(dist(frontier(i,t),center)-radius for t in points(i,center)) > 0, + 'bank overwrites declared ready cone') + for center,radius in selected: + require(min(dist(frontier(i,t),center)-radius for t in points(i,center)) > 0, + 'selected deadline phase depends on bank') + for pin in local_pins: + require(min(dist(frontier(i,t),pin) for t in points(i,pin)) > 0, + 'bank aliases named initial source') + for t in (deadlines[i]+1,H): + require(dist(frontier(i,t),ports[i]) == t, 'own axial first front') + require(edges == {(2,5),(3,5)}, 'complete equal-time edge set') + + # Solve possible intersections of the affine integer rays exactly. + distinct = 0 + for i in range(8): + for j in range(i+1,8): + ai,aj = axes[i],axes[j] + if ai == aj: + if any(ports[i][k] != ports[j][k] for k in range(3) if k != ai): + distinct += 1 + continue + ri = sorted((frontier(i,deadlines[i]+1)[ai],frontier(i,H)[ai])) + rj = sorted((frontier(j,deadlines[j]+1)[ai],frontier(j,H)[ai])) + require(ri[1] < rj[0] or rj[1] < ri[0], 'collinear banks overlap') + else: + if any(ports[i][k] != ports[j][k] for k in range(3) if k not in (ai,aj)): + distinct += 1 + continue + ti = (ports[j][ai]-ports[i][ai])*signs[i] + tj = (ports[i][aj]-ports[j][aj])*signs[j] + require(not (deadlines[i] < ti <= H and deadlines[j] < tj <= H), + 'crossing bank rays overlap') + distinct += 1 + + # Bound every relevant source/ready/target coordinate. Coordinate-wise + # differences below half the torus side preserve the integer distances. + endpoints = [frontier(i,t) for i in range(8) for t in (deadlines[i]+1,H)] + extrema = endpoints + local_pins + ports + for center,radius in ready: + for axis in range(3): + for sign in (-1,1): + p = list(center) + p[axis] += sign*radius + extrema.append(tuple(p)) + spans = [max(p[k] for p in extrema)-min(p[k] for p in extrema) for k in range(3)] + require(all(2*span < torus for span in spans), 'torus coordinate wrap') + require(2*H < torus, 'nonunique axial shortest path') + + triples_L = sum(L-a for a in deadlines[:7]) + require(3*triples_L == 6*P+18*d+189, 'retained bit count') + triples_H = sum(H-a for a in deadlines) + require(3*(triples_H-triples_L) == 24*L, 'eight-port extension count') + return {'horizon':'H=L+Delta, 1<=Delta<=L; maximal interval checked at H=2L', + 'port_families':8, 'ready_cones':len(ready), + 'ready_family_pairs':8*len(ready), 'selected_phase_family_pairs':32, + 'pairwise_distinct_family_pairs':distinct, + 'piecewise_chronology_cases':chronological, + 'same_tick_edges':[list(x) for x in sorted(edges)], + 'total_bits':'6*P+18*d+189+24*Delta', + 'additional_bits_per_tick':24, + 'torus_coordinate_span_bounds_pass':True} + + +TRIPLES = tuple(product((0,1),repeat=3)) +STEPS = ((1,0,0),(-1,0,0),(0,1,0),(0,-1,0),(0,0,1),(0,0,-1)) + + +def native(frontiers, assignments, outputs, background): + full = (1 << len(assignments))-1 + packed = {p:tuple(sum(row[j][k] << lane for lane,row in enumerate(assignments)) + for k in range(3)) for j,p in enumerate(frontiers)} + + @lru_cache(None) + def field(t,p): + if t in (-1,0): + if t == 0 and p in packed: + return packed[p] + b = hashlib.sha256(repr((background,t,p)).encode()).digest()[0] + return tuple(full if (b >> k)&1 else 0 for k in range(3)) + acc = [0,0,0] + for step in STEPS: + v = field(t-1,add(p,step)) + for k in range(3): + acc[k] ^= v[k] + old = field(t-2,p) + a,b,c = acc + h = (b,c,a^(b&c)) + return tuple(old[k]^h[k] for k in range(3)) + + words = [field(t,p) for t,p in outputs] + return [tuple(tuple((v[k] >> lane)&1 for k in range(3)) for v in words) + for lane in range(len(assignments))] + + +def controls(): + p2,p5,g = (1,2,0),(0,3,0),(48,0,0) + frontiers = [(1,7,0),(0,8,0),(53,0,0),(54,0,0)] + outputs = [(5,p2),(5,p5),(5,g),(6,g)] + assignments = list(product(TRIPLES,repeat=4)) + full_words = 0 + diagonal_checks = 0 + for background in (17,41): + out = native(frontiers,assignments,outputs,background) + require(len(set(out)) == 8**4, 'whole chronological native block is not bijective') + full_words += len(out) + # Conditional own-block permutations and no later-source dependence. + for k in range(4): + buckets = {} + for row,word in zip(assignments,out): + prefix = row[:k] + buckets.setdefault(prefix,{}).setdefault(row[k],set()).add(word[k]) + for choices in buckets.values(): + require(all(len(v) == 1 for v in choices.values()), 'later source affects earlier output') + require(len({next(iter(v)) for v in choices.values()}) == 8, + 'diagonal map not a permutation') + diagonal_checks += 1 + # The next herald-noise source cannot change its earlier public record. + prefix = native(frontiers,assignments,[(t,g) for t in range(5)],background) + require(len(set(prefix)) == 1, 'frontier corrupts earlier herald prefix') + + pinned_rows = [(a,b,c,TRIPLES[0]) for a,b,c in product(TRIPLES,repeat=3)] + shared_rows = [(a,b,c,c) for a,b,c in product(TRIPLES,repeat=3)] + pinned = native(frontiers,pinned_rows,outputs,17) + shared = native(frontiers,shared_rows,outputs,17) + require(len(set(pinned)) == 512, 'pinned source countercontrol') + require(len(set(shared)) == 512, 'shared source countercontrol') + # Reading an initially private new bank triple is an access change. Its + # later raw record is a permutation, hence cannot remain independent of it. + own = native([frontiers[2]],[(x,) for x in TRIPLES],[(5,g)],17) + require(len(set(own)) == 8, 'extra-read deterministic response') + require(len({(x,o[0]) for x,o in zip(TRIPLES,own)}) == 8, + 'extra-read dependence support') + return {'complete_native_assignments':full_words, + 'conditional_diagonal_permutations':diagonal_checks, + 'herald_prefix_backgrounds':2, + 'pinned_support':len(set(pinned)), 'shared_support':len(set(shared)), + 'required_uniform_support':4096, + 'extra_private_bank_read_joint_support':8, + 'independent_extra_read_support_would_be':64} + + +def main(): + result = {'schema':'oi.native-y.history-v11.v1', 'geometry':geometry(), + 'native_controls':controls(), + 'verdict':'PASS_CONDITIONAL_EIGHT_PORT_HISTORY_EXTENSION', + 'scope':'Specified raw streams and initial bank complement only; no future full-boundary independence or native reusable instrument.'} + print(json.dumps(result,sort_keys=True,separators=(',',':'))) + + +if __name__ == '__main__': + main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/result.json new file mode 100644 index 000000000..56fb32404 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/result.json @@ -0,0 +1 @@ +{"geometry":{"additional_bits_per_tick":24,"horizon":"H=L+Delta, 1<=Delta<=L; maximal interval checked at H=2L","pairwise_distinct_family_pairs":28,"piecewise_chronology_cases":128,"port_families":8,"ready_cones":24,"ready_family_pairs":192,"same_tick_edges":[[2,5],[3,5]],"selected_phase_family_pairs":32,"torus_coordinate_span_bounds_pass":true,"total_bits":"6*P+18*d+189+24*Delta"},"native_controls":{"complete_native_assignments":8192,"conditional_diagonal_permutations":1170,"extra_private_bank_read_joint_support":8,"herald_prefix_backgrounds":2,"independent_extra_read_support_would_be":64,"pinned_support":512,"required_uniform_support":4096,"shared_support":512},"schema":"oi.native-y.history-v11.v1","scope":"Specified raw streams and initial bank complement only; no future full-boundary independence or native reusable instrument.","verdict":"PASS_CONDITIONAL_EIGHT_PORT_HISTORY_EXTENSION"} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/review/INPUT-HASHES.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/review/INPUT-HASHES.json new file mode 100644 index 000000000..e44cd1086 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/review/INPUT-HASHES.json @@ -0,0 +1,15 @@ +{ + "author_files": { + "PLAN.md": "b2ea3d59a086c1c1668364af6c9d108d77a694fbfe2277fc9f2e98cef50b276b", + "PROVENANCE.json": "9b81df98c026282edd8134579b67e7877a3c22057ec35261529017368938e5d2", + "REPORT.md": "413c9595a6def923ba62e1c0d34c12c0516997fe1c928e5438abaf6a990fdb81", + "SHA256SUMS": "04965f9034b9345230fe4267167f9ac1595f1d1ed891663bbee4f022003751b4", + "checks.py": "44deef75316b4f9c4d2d8c66a1496f004e49a09a895bcbed8c90e6878c90b495", + "result.json": "5d72e859c7faa0f40b2f5a000d148e7a4bcae93d1c1e28269edabafd7d09865f" + }, + "author_revision": "c326546f228a1769856fded2268b76d976a171d3", + "retained_source_revision": "71d291297d0a662cbb9377ab48eef7aa4b839e77", + "source_files": { + "parallel_v3/history_control/SOURCE-GEOMETRY.json": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d" + } +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/review/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/review/REPORT.md new file mode 100644 index 000000000..97f5ecb7d --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/review/REPORT.md @@ -0,0 +1,123 @@ +# Separate-author review of the eight-port history extension + +Author checkpoint: `c326546f228a1769856fded2268b76d976a171d3`, +`history_v11/` on #910. **Accept the stated conditional finite-horizon +theorem; no blocking findings.** This is an internal separate-agent review. +It establishes no native reusable instrument or future whole-boundary +independence and is not an external review or formal certificate. + +## Exact geometry reconstructed independently + +All eight source rays are axial, at own distance t, with intervals +`a_i < t <= H`, H=2L for the maximal declared window. The new herald ray +points outward in +x from 48L; its first reserved triple is strictly beyond +the original radius-L herald source/ready region. + +The reviewer checker imports no author code. It uses two closed-form +minimizations instead of the author's breakpoint enumerator: + +- For another receiver, `distance(f_i(t),p_j)-t` has the form + `constant+abs(t-root)-t`. It is monotone nonincreasing, so its exact + minimum is its value at H. All 64 ordered family/receiver pairs pass. +- For a ready or selected-phase center, the distance has one varying + absolute-value term. Its exact minimum is obtained by clamping the axial + root to the integer interval. All 192 ready exclusions and 32 selected + phase exclusions are strict. + +The only equal-time cross-edges are 2->5 and 3->5. Both follow the proposed +same-time ordering. No new edge is introduced by the outward herald ray. +Since no source reaches another receiver before its assigned t, later +source blocks cannot affect earlier output blocks. These results hold +through 2L and consequently on every smaller declared interval. + +Distinctness is independently proved using complete coordinate intervals +of the rays: their minimum Manhattan distance is the sum of interval gaps. +All 28 family pairs have strictly positive separation. This covers all +indices, rather than sampled triples or one shared-tick slice. + +All 1,479 retained finite source entries are inside the declared enclosing +ready balls; the eight named local source exceptions are also covered. +Exclusion from these balls therefore excludes aliases with those sources. +The enormous remote programs are enclosed by their own included balls and +need not be materialized. The previous ready balls are smaller than the +current balls at the same centers. The stated integer torus lift is valid: +all coordinate spans are below half the side, and own axial lengths are +also below half the side. No wrapped short path changes these distances. + +## Whole-history permutation and conditioning + +For fixed initial-bank complement C, order the independent bank triples +and their corresponding raw outputs chronologically, with the stated +topological order at equal times. Along each triple's unique axial path, +the other five neighbors and the previous local term are too early to +depend on it. Each step is H composed with XOR translations. Each diagonal +output is therefore a permutation of its own triple, conditional on C +and all earlier bank inputs. Successive inversion gives a bijection of +the complete bank to the complete noise word. + +The initial triple law is explicitly supplied as independent uniform +conditional on C and readiness. Thus the full noise word is uniform +independent of C. Its old portion N_L and future portion N_tail are also +independent uniform coordinates, conditional on C. Informative flags and +permitted selected-phase records D are functions of C by the separate +cone exclusions. For each admissible history and nonzero conditioning +event, the future tail remains uniform given C,D,N_L. Averaging over the +posterior of C preserves that law. This is stronger than marginal or +per-port freshness and does not require treating the already observed +N_L as fresh afterward. + +No earlier failed offered-carrier branch is restarted. Used old seeds +need not become fair or independent after heralding. The current prepared +selected phase at L is a complement function, but a future carrier or its +neighborhood can depend on the same bank. The author correctly declines +to append an independent noise factor to such a future state without a +new joint-law calculation. Exposing a private bank coordinate or adding +another public port similarly changes the contract. + +## Resources and independent native controls + +The old seven-stream bank contains + + 7L - (2T+4S+R) = 2P+6d+63 + +triples. Extending the seven streams and adding the eighth gives eight +triples per extra tick. Therefore the complete bit count is exactly + + 6P+18d+189+24Delta, 1<=Delta<=L. + +All resources are at the original initial time. This is an explicit finite +resource extension, with a supplied independent prior, access convention +and clock. It provides no unlimited privacy for one fixed finite apparatus +or physical derivation of that prior. + +The new independent scalar native controls evaluate 256 worlds in two +nonzero backgrounds. They exhaust a same-time old two-port block and two +consecutive future-herald blocks. The two test clusters have disjoint +causal cones and cannot affect each other; their 64-by-64 product therefore +proves the complete 4,096-output four-block map in each background, covering +8,192 assignments by exact factorization. This is a separate scalar engine, +not the author's packed computation. It checks 36 diagonal conditions and +128 unchanged past-prefix assignments. + +Pinning or sharing one future source reduces the global four-block support +to 512. Reading a previously private source together with its later output +has support 8 instead of the 64 required by independence. These controls +demonstrate the resource and access hypotheses. A cyclic same-time layout +can also fail joint invertibility despite individually bijective responses, +as the separately retained transport audit shows; the present eight-ray +layout passes the required acyclic check. + +## Replay and retained scope + +Run `python3 checks.py` and `python3 -O checks.py`, with optional +`--source-root` and `--author-root` arguments for sparse checkouts. Both +outputs equal result.json byte for byte. INPUT-HASHES.json pins the six +author files and retained finite source geometry. All checks use explicit +exceptions; SHA256SUMS covers the five review files. + +The all-index finite-window result follows from the exact geometric +minimizations and triangular inversion proof. The short native controls +exercise those mechanisms and are not simulations of the astronomical +window. The inherited informative instrument/calibration law, a new native +reset, access closure, general A1 coverage and A2 error guarantees remain +separate obligations. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/review/SHA256SUMS new file mode 100644 index 000000000..8c3091c24 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/review/SHA256SUMS @@ -0,0 +1,4 @@ +dba6f7bde248b5c5b3a0472c7455afd828a61d265ee93577d4355fc8e246ea59 REPORT.md +0516522a85b4d626f5e8b238cc24352cc191b6bbeaecda7655b762466e7cc3e2 checks.py +abf8e110a06d20eb5de7ea9871304530a06b0a0847d096e421f2cfbd2f3dac61 result.json +cfc5c123fdd10859bd7870341f2831a02cae315e65f8020ca851e37ca2082653 INPUT-HASHES.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/review/checks.py new file mode 100644 index 000000000..0a6a82254 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/review/checks.py @@ -0,0 +1,224 @@ +"""Separate scalar native and closed-form geometry checks; no author imports.""" +import argparse +from functools import lru_cache +import hashlib +from itertools import product +import json +from pathlib import Path + + +def need(ok, message): + if not ok: + raise RuntimeError(message) + + +def distance(a,b): + return sum(abs(x-y) for x,y in zip(a,b)) + + +def clamp(v,lo,hi): + return max(lo,min(hi,v)) + + +def gap(a,b): + return max(0,a[0]-b[1],b[0]-a[1]) + + +def geometric_proof(source_root): + T=185 + P=12*840**185 + S=P+T + R=S+68 + L=R+9 + H=2*L + torus=256*L+64*T+1 + ports=[(0,T,0),(0,0,-8*T),(T,P,0),(-T,P,0),(4*T,P,0), + (0,S,0),(12*R,0,0),(48*L,0,0)] + deadlines=[T,T,S,S,S,S,R,L] + axes=[1,2,1,1,1,1,0,0] + signs=[-1,-1,1,1,1,1,-1,1] + ready=list(zip(ports,deadlines)) + ready += [((T,0,0),T),((-T,0,0),T),((4*T,0,0),T), + ((0,S,-68),R),((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)] + ready += [((-48*L,0,0),L)] + selected=[((0,S,76),L-1),((0,S,77),L), + ((48*L,0,0),L),((-48*L,0,0),L)] + pins=[(0,0,0),(0,-76,76),(0,S,S+136),(0,S,S+150), + (0,S,S+152),(0,S,S+154),(1,S,S+153),(-1,S,S+153)] + + def source(i,t): + return tuple(v+(signs[i]*t if k==axes[i] else 0) + for k,v in enumerate(ports[i])) + + def closest_distance(i,target): + # All three-coordinate absolute-value terms except one are constant. + # The unique movable coordinate is closest at the clamped axial root. + root=signs[i]*(target[axes[i]]-ports[i][axes[i]]) + t=clamp(root,deadlines[i]+1,H) + return distance(source(i,t),target) + + edges=set() + chronology=ready_count=selected_count=0 + for i in range(8): + need(distance(source(i,H),ports[i])==H,'own unique-axis distance') + for j,target in enumerate(ports): + # |t-r|-t is monotone nonincreasing, so the exact minimum + # of distance(source(i,t),target)-t occurs at H. + slack=distance(source(i,H),target)-H + need(slack>=0,'cross-port source arrives early') + if i!=j and slack==0: + edges.add((i,j)) + chronology+=1 + for target,radius in ready: + need(closest_distance(i,target)>radius,'bank consumes current readiness') + ready_count+=1 + for target,tick in selected: + need(closest_distance(i,target)>tick,'selected phase depends on bank') + selected_count+=1 + for pin in pins: + need(closest_distance(i,pin)>0,'bank aliases named local source') + need(edges=={(2,5),(3,5)},'exact same-time edge set') + need(all(i0, + 'distinct source-family segments intersect') + pair_count+=1 + + old_sources=json.loads((source_root/'parallel_v3/history_control/SOURCE-GEOMETRY.json').read_text())['sources'] + covered=0 + for row in old_sources: + target=tuple(row['position']) + need(any(distance(target,c)<=r for c,r in ready),'uncovered inherited source') + covered+=1 + need(all(any(distance(pin,c)<=r for c,r in ready) for pin in pins), + 'uncovered local source') + need(covered==1479,'source inventory size') + # Whole remote programs are inside their explicitly included ready balls; + # the first rows are not materialized at enormous L. + extremes=[source(i,t) for i in range(8) for t in (deadlines[i]+1,H)] + extremes+=pins + for c,r in ready: + extremes.extend(tuple(v+(s*r if k==axis else 0) for k,v in enumerate(c)) + for axis in range(3) for s in (-1,1)) + spans=[max(q[k] for q in extremes)-min(q[k] for q in extremes) for k in range(3)] + need(all(2*w>2)&1,(s>>1)&1,s&1 + return get(t-2,p)^((b<<2)|(d<<1)|(a^(b&d))) + return get + + +def scalar_controls(): + old_points=[(1,0,0),(0,1,0)] + old_sources=[(1,3,0),(0,4,0)] + g=(20,0,0) + g_sources=[(23,0,0),(24,0,0)] + # Cross-cluster sources cannot reach any opposite output, so the global + # four-block source map is exactly the product of these two native maps. + need(all(distance(s,g)>4 for s in old_sources),'old bank reaches remote test') + need(all(distance(s,p)>3 for s in g_sources for p in old_points), + 'new bank reaches old test') + need(all(distance(p,g)>7 for p in old_points),'small test cones intersect') + scalar_worlds=own_maps=global_worlds=prefixes=0 + for seed in (3,8): + old_table={} + future_table={} + for a,b in product(range(8),repeat=2): + old=native_evaluator(dict(zip(old_sources,(a,b))),seed) + old_table[a,b]=tuple(old(3,p) for p in old_points) + future=native_evaluator(dict(zip(g_sources,(a,b))),seed) + future_table[a,b]=(future(3,g),future(4,g)) + before=tuple(future(t,g) for t in range(3)) + if not prefixes: + reference=before + if a==b==0: + reference=before + need(before==reference,'future bank changes past prefix') + prefixes+=1 + scalar_worlds+=2 + for table in (old_table,future_table): + need(len(set(table.values()))==64,'native two-block map not bijective') + for a in range(8): + need(len({table[a,b][0] for b in range(8)})==1,'later bank source affects first output') + need(len({table[a,b][1] for b in range(8)})==8,'second diagonal is singular') + own_maps+=1 + need(len({table[a,0][0] for a in range(8)})==8,'first diagonal is singular') + own_maps+=1 + global_worlds+=len(set(old_table.values()))*len(set(future_table.values())) + # Shared and pinned late resources collapse the four-block support. + need(len({future_table[a,a] for a in range(8)})==8,'shared resource support') + need(len({future_table[a,0] for a in range(8)})==8,'pinned resource support') + need(len({(a,future_table[a,0][0]) for a in range(8)})==8,'extra-source read support') + return {'direct_scalar_native_worlds':scalar_worlds, + 'factorized_four_block_worlds_proved':global_worlds, + 'conditional_diagonal_checks':own_maps,'prefix_assignments':prefixes, + 'four_block_uniform_support':4096,'pinned_four_block_support':512, + 'shared_four_block_support':512,'extra_read_joint_support':8, + 'independent_extra_read_support':64} + + +def find_source(here): + for root in (here.parent,here.parent.parent,here.parent/'checkpoint_v10'): + if (root/'parallel_v3').exists(): + return root + raise RuntimeError('specify --source-root') + + +def main(): + here=Path(__file__).resolve().parent + parser=argparse.ArgumentParser() + parser.add_argument('--source-root',type=Path) + parser.add_argument('--author-root',type=Path) + args=parser.parse_args() + source=args.source_root or find_source(here) + author=args.author_root or (here.parent if (here.parent/'PROVENANCE.json').exists() + else here.parent/'history_v11') + inputs=json.loads((here/'INPUT-HASHES.json').read_text()) + for root,entries in [(author,inputs['author_files']),(source,inputs['source_files'])]: + for name,expected in entries.items(): + need(hashlib.sha256((root/name).read_bytes()).hexdigest()==expected,'hash '+name) + result={'schema':'oi.history-v11.review.v1','author_revision':inputs['author_revision'], + 'verdict':'ACCEPT_CONDITIONAL_EIGHT_PORT_EXTENSION', + 'geometry':geometric_proof(source),'native_controls':scalar_controls(), + 'tail_conditioning':'uniform given complement, informative history and earlier noise', + 'future_full_physical_boundary_independence':False} + print(json.dumps(result,sort_keys=True,indent=2)) + + +if __name__=='__main__': + main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/review/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/review/result.json new file mode 100644 index 000000000..391375c81 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v11/review/result.json @@ -0,0 +1,39 @@ +{ + "author_revision": "c326546f228a1769856fded2268b76d976a171d3", + "future_full_physical_boundary_independence": false, + "geometry": { + "chronological_minima": 64, + "clamped_ready_distance_proof": true, + "covered_inherited_sources": 1479, + "distinct_family_pairs": 28, + "future_bits_per_tick": 24, + "monotone_cross_distance_proof": true, + "ready_exclusions": 192, + "same_time_edges": [ + [ + 2, + 5 + ], + [ + 3, + 5 + ] + ], + "selected_phase_exclusions": 32, + "window": "L < t <= L+Delta, 1<=Delta<=L" + }, + "native_controls": { + "conditional_diagonal_checks": 36, + "direct_scalar_native_worlds": 256, + "extra_read_joint_support": 8, + "factorized_four_block_worlds_proved": 8192, + "four_block_uniform_support": 4096, + "independent_extra_read_support": 64, + "pinned_four_block_support": 512, + "prefix_assignments": 128, + "shared_four_block_support": 512 + }, + "schema": "oi.history-v11.review.v1", + "tail_conditioning": "uniform given complement, informative history and earlier noise", + "verdict": "ACCEPT_CONDITIONAL_EIGHT_PORT_EXTENSION" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/PLAN.md new file mode 100644 index 000000000..96c8cbacb --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/PLAN.md @@ -0,0 +1,29 @@ +# Seven-port history audit for the workspace-assisted Y route + +Research only. Start from #910 at f264dff4; no new physical premise or +availability is adopted. The target is the exact native W=111 route of +reset_v8, with G=011/101 conditioned on the existing seed u. + +Decision rule before computation: + +1. Recover and state every allowed old public port and initial frontier block + through L=R+8, including the remote herald. Check actual-parameter distances + and all-index affine inequalities. Require distinct independent uniform + blocks disjoint from added source pins and every added ready region. +2. Prove the chronological permutation argument with arbitrary fixed + W-dependent background. Do not infer independence from uniform marginals. +3. State exactly which terminal variables are functions of the bank complement. + Establish joint independence only for those variables and the whole noise + record. Preserve informative deadlines, both heralds, failures, and the + originally assumed access restriction. Do not claim that a complete + reusable outgoing boundary is independent merely because q8 is. +4. Check permutations with direct native recursion in bounded dense backgrounds, + with source and output represented independently of a reference formula. + Check same-tick two-port triangular blocks by exhaustive pair enumeration. + A shared source and a source pinned by readiness must be detected as failures. +5. Publish PASS only when these controls pass. If the actual geometry pins or + reuses a required block, exhibit that native incompatibility instead. + +A positive result is a conditional record/endpoint theorem. It does not +re-prove the predecessor transport endpoint law, build a Y sampler/reset, +source fair resources, add permitted ports, or certify full equivalence. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/PROVENANCE.json new file mode 100644 index 000000000..36b001f11 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/PROVENANCE.json @@ -0,0 +1,15 @@ +{ + "upstream_head": "f264dff4eacae84959b4a4419be204fb8c31c9e3", + "repository_prefix": "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024", + "upstream_results": [ + "reset_v8/REPORT.md", + "reset_v8/review/REPORT.md" + ], + "source_excerpts_sha256": "36e3f7b3b56d983ed2f8b077f6b9ec9a93d1a06b5384db1d87e1b029d2c66e9e", + "runtime_dependencies": "Python 3 standard library only; no imported predecessor code or scratch data.", + "replay_commands": [ + "python3 checks.py", + "python3 -O checks.py" + ], + "result": "results.json" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/REPORT.md new file mode 100644 index 000000000..348b40f32 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/REPORT.md @@ -0,0 +1,196 @@ +# Conditional public-history law for the workspace-assisted Y route + +Research checkpoint based on #910 at +`f264dff4eacae84959b4a4419be204fb8c31c9e3`. This is a written conditional +theorem with exact bounded controls, not a new native reset or a Lean +certificate. The initial readiness, independent frontier prior, access +restriction and clock remain the supplied assumptions of the candidate. + +## Result + +The W source can change later old-port backgrounds without invalidating the +chronological frontier argument. With the explicitly retained independent +bank below, the complete old public noise word through R+8 is jointly +uniform, independent of all bank-complement variables, including the input, +old apparatus seeds, informative deadline outputs, and the clean q8 endpoint. +The result holds before conditioning on either success or failure, and hence +on every nonzero-probability informative-record branch. + +This resolves the W-background question for the seven old public ports and +the stated endpoint. It does not establish independence of an entire outgoing +two-slice neighborhood, close a reusable interface, or construct the required +5:3:2 post-Y reset. The distinction matters because the next native operation +reads a neighborhood and an old local slice, rather than only q8. + +## Fixed dynamics, ports and bank + +The native update is + + U_(t+1)(v) = U_(t-1)(v) XOR H(XOR_(w~v) U_t(w)), + H(A,B,D) = (B,D,A XOR B D). + +H permutes the eight triples. Keep T=185, P=12*840^185, S=T+P, +d=68, R=S+d and L=R+8. The seven public ports and first informative deadlines +are, in same-tick order: + +| i | Port p_i | Deadline a_i | +| --- | --- | --- | +| 0 | (0,T,0) | T | +| 1 | (0,0,-8T) | T | +| 2 | (T,P,0) | S | +| 3 | (-T,P,0) | S | +| 4 | (4T,P,0) | S | +| 5 | (0,S,0) | S | +| 6 | (12R,0,0) | R | + +Use the inherited torus side 64R+64T+1. Since L<=2R, it is sufficiently +large that all the causal distances and axial paths used here have no +wrap-around shortcut; the proof uses the corresponding integer coordinates. + +Their full raw triples are exposed at every tick through L under the fixed +access convention. Their prefixes before a_i are the inherited blanks; +at a_i the original informative records are retained, including both heralds +and every failure combination. For each integer a_i2S. +The remote herald ray has x>=11R-8, separate from old-port families and the +herald's x>=12R source program. None equals W, Q, C or G. The other encoded +sources lie in their inherited ready cones, which all bank coordinates avoid. +The checker tests every family/cone inequality on each exact piecewise-affine +segment, not just on an arbitrary sample of the enormous interval. + +Useful exact q8 slacks are + + distance(f_i(t),q8)-L = t-a_i, i=0,2,3,5, + distance(f_1(t),q8)-L = t+8T, + distance(f_4(t),q8)-L = t+2T-P, + distance(f_6(t),q8)-L = 12R-t. + +All are strictly positive over their stated intervals. Thus neither the +added current pins nor the previous pins consume any bank coordinate, and +q8 at L depends only on the complement. The same check covers the inherited +ready cones and the earlier outward ready balls. + +W's distance to every old public port exceeds its informative deadline, +so the inherited blank prefixes and deadline records are unchanged. W can +arrive later during a noise stream; that changes its background, which the +following proof explicitly allows. The Q/C/G sources are also excluded from +the earlier informative-record cones by their already checked source geometry. +The argument does not require their later backgrounds to remain unchanged. + +## Joint chronological permutation proof + +Let C denote every initial variable except the reserved bank, including any +correlations among old seeds, source payloads, input and readiness. Fix C. +Order bank/output blocks by increasing t and then by increasing port index. +No later block can reach an earlier output. At an equal time, the only cross +edges have the direction already given above. + +Consider one block f_i(t). Its path of length t to p_i is the unique straight +axial path. At each step along it, only the immediately preceding path vertex +can depend on this block: any other neighbor has insufficient time for the +required displacement, and the old-local slice is two ticks too early. +Consequently that step is an XOR translation, followed by H, followed by an +XOR translation, as a function of the new triple. Each is a permutation. +This statement permits arbitrary fixed dense background, including all +W-dependent changes and all previously conditioned frontier variables. + +Each diagonal output block is therefore a permutation of its own input +triple for every fixed earlier block and C. Chronological inversion recovers +one bank triple at a time from the raw output word. The whole bank-to-noise +map is bijective. If N is the concatenation of all post-deadline raw noise +triples, then for every admissible C=c, + + Pr(N=n | C=c) = 8^(-(2P+6d+56)). + +The informative deadline record D, both flags, and q8 at L are functions of C. +Averaging the last identity over any chosen complement distribution gives +joint independence of N and those variables; conditioning on a nonzero-mass +value of D or either flag preserves it. No failures are removed, and no +assumption of separate marginal independence replaces this joint argument. +If a designated clean Y endpoint is additionally read, that endpoint is also +a function of C; the same conditional statement applies to that record. + +This proof establishes the noise refinement directly from the native local +rule and geometry. The predecessor's informative deadline/transport law is +still inherited; this calculation does not independently reconstruct its +astronomical transport endpoint or the calibrated input distribution. + +## What follows for resources, and what does not + +Existing u is an already-used seed. Heralding and the Y outcome can bias or +reveal it. The conclusion is only that adding N causes no further posterior +update beyond the informative record D: + + Pr(C in A | D,N) = Pr(C in A | D) + +for measurable events A and positive conditioning events. It does not say +that u is a fresh fair resource after measurement. + +For a prospective resource A that is initially independent of the old +variables and informative record, remains free under readiness, and is part +of the bank complement, N cannot destroy that independence. Such a resource +retains its stipulated law conditional on D,N and prior heralds. Its actual +coordinates, independence and non-use by D must still be verified for the +next sampler; this report supplies no unspecified fresh resource. + +The proof's endpoint exclusion does not cover a whole subsequent boundary. +For example M1=(0,-1,0) is an old bank coordinate, with its first own-port +record at T+1, and its distance to q7=(0,S,75) equals L. Thus geometric +exclusion of old bank information already fails for that neighbor's current +slice at L. This is not an actual dependence witness: the isolated M1 +first-front multinomial coefficient cancels since (S+1) AND 75 is nonzero. +A coupled-boundary calculation is required. Full boundary independence is +neither asserted nor inferred from the q8 law. + +## Exact controls and replay + +`checks.py` is self-contained and uses Python integer arithmetic. It checks +actual astronomical-parameter geometry by complete piecewise-affine +breakpoint analysis, including all ready-cone exclusions and the exact edge +set. Independent direct evaluation of the nonlinear native update verifies +all eight possible new triples in 28 dense-background axial cases. It also +enumerates 64 assignments in each of two same-tick two-port blocks, retaining +the real forward cross-arrival and checking a whole-block bijection. + +The same two-port computation detects both negative controls: pinning one +reserved triple (a readiness overlap) and assigning the same triple to both +positions (a shared resource). Each has at most eight attainable output +pairs instead of 64. These countercontrols demonstrate why the independent, +unpinned bank hypothesis cannot be omitted. + +Run `python3 checks.py` and `python3 -O checks.py`; both outputs must equal +`results.json` byte for byte. `SHA256SUMS` covers the delivered files. The +small retained source excerpts identify the original access/bank formula; +no external file or earlier scratchpad is needed to replay these controls. +The short-distance recursion tests the local proof mechanism, while the +all-index written proof and exact actual geometry establish the stated +conditional extension. No finite test is represented as a simulation of +all L native ticks. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/SHA256SUMS new file mode 100644 index 000000000..336eb9f56 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/SHA256SUMS @@ -0,0 +1,6 @@ +30a4f02535637725469f1a4ee7018740dd7bfd71dfc3b54ff09785006cf65f47 PLAN.md +2125314d49e14abdac8b62ddbaa1f89f1c0ec693dd14744fca4b79a0b38c6997 REPORT.md +81523abb92ca61ff8e9be02a6fd3a5a23b9712fc8966f5892b8b70dc24b71e3d checks.py +7e8611be276c8945bd0f4ab992e5cc7bff3ef0ec5c69093a5f3e0327b1beb57a results.json +36e3f7b3b56d983ed2f8b077f6b9ec9a93d1a06b5384db1d87e1b029d2c66e9e SOURCE-EXCERPTS.json +9611ea662987b71066eedfa4371af497e9aa7a8a29f9d74c3c1cc5766502ce76 PROVENANCE.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/SOURCE-EXCERPTS.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/SOURCE-EXCERPTS.json new file mode 100644 index 000000000..493b3e26b --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/SOURCE-EXCERPTS.json @@ -0,0 +1,36 @@ +{ + "schema": "oi.source-excerpts.v1", + "scope": "Source provenance only; complete target theorem and native controls are restated in REPORT.md and checks.py. These excerpts do not certify the original transport endpoint.", + "sources": [ + { + "archive": "OI_combined_handoff_2026-10-24_v1", + "path": "workspace/oi_native_selector_v1/REPORT.md", + "source_sha256": "9c2a5dcc50c2d83a48616b9756e7b04bea1812ccafd75d1fff497ee151bed1cc", + "lines": [ + 184, + 215 + ], + "excerpt": "The public ports in the actual composed apparatus are the fixed original X and\nH ports, plus the four new Q ports. Assume only those specified raw records are\naccessible, with the setting known as the chosen protocol parameter. The\noriginal reset readiness, access restriction and clock convention remain\nassumptions. A native readiness detector or clock is not silently included.\n\nFix any additional finite horizon B. Enlarge the torus sufficiently to prevent\nwrap-around; for example side 16(S+B+10T)+1 suffices. Prepare independent uniform\ncurrent triples at\n\n M_j=(0,-j,0), N_j=(0,0,-9T-j), 1<=j<=P+B,\n F_(i,k)=Q_i+(S+k)e_y, 1<=k<=B, i=X,Y,R,Z.\n\nThese coordinates are outside the ready cones and distinct from the control\npulses and source encodings. They are independent of the masks and lower seeds.\nNo fresh coordinates are inserted during the run.\n\nM_j and N_j first reach the original X and H ports respectively at T+j. The\nF_(i,k) block first reaches its own Q_i at S+k. It cannot reach any public port\nearlier than that time. At equal time there are just two cross-edges among\nthese new ports: F_Y can affect Q_X, and F_R can affect Q_X. Order the four\nports Y,R,Z,X to make those edges triangular.\n\nAll other cross-arrivals occur later. In particular, old-frontier arrivals at\nnew ports and new-frontier arrivals at original ports have positive delays\nwhen P>0. The old X/H cross-delays are 7T and 9T. At a given global tick an\nordering old-X,H,Y,R,Z,X works for the streams that have begun.\n\nFor each newly arriving extreme axial triple, the path to its own port is\nunique. Conditional on earlier blocks and the complementary initial fields,\nthat output is a composition of H permutations and XOR translations in that\nnew triple. It is therefore a permutation. Chronological triangularity gives\n" + }, + { + "archive": "OI_combined_handoff_2026-10-24_v1", + "path": "workspace/oi_native_x_instrument_v1/REPORT.md", + "source_sha256": "97005ac530b84710642b85c07c8e5778ab985d528d7aa4597b04c5fc1a3ad736", + "lines": [ + 221, + 245 + ], + "excerpt": "## 5. Complete public record, joint independence, and failures\n\nKeep the predecessor's six designated public ports through tick R and add the\nnew herald port, including its whole raw prefix. The outgoing q_Y,q_R,q_Z ports\nremain private until a specified terminal read. No internal seed, key, or old\ncarrier register is added to the observer's access class.\n\nNeither new pulse can reach an old public port by R; its nearest such arrival\nis at S+2d=R+d. The remote herald/Z sources are farther still. The reserved old\nand selector public-frontier triples remain outside every new private ready\ncone and outside the remote cones. Thus their conditional independence survives\nthe extra readiness constraints.\n\nThe preceding chronological-bijection proof consequently gives the same joint\nuniform law for all old public noise records: probability factor 2^(-6P-18d),\nindependent of the old and new seeds, input, selected deadline record, and new\nprivate outputs. At the selector deadline the three unselected ciphertexts are\nindependent fair bits conditional on x and the hidden carrier. They are also\nindependent of the six new reset seeds.\n\nConditioning on G changes the distribution of u,v exactly as specified above;\nit does not create a correlation with those old public records. This proves\nthe joint factorization in section 1. It is stronger than separately correct\npublic and carrier marginals.\n\n" + }, + { + "archive": "OI_combined_handoff_2026-10-24_v1", + "path": "workspace/oi_parallel_20261024/information/REPORT.md", + "source_sha256": "dee08c1198fc58ab3a4d4e3d6f507149e3ca701c7ab8e6a152e15287b271699d", + "lines": [ + 90, + 112 + ], + "excerpt": "Let T,P,S=T+P,d,R=S+d be the actual native-X parameters, with d=68 and\nT=185, and retain the actual initial preparation and ready cones. Let qG be\nthe new herald position (12R,0,0). Fix B with 1 <= B <= R before preparation.\nRetain the original six public positions in this order:\n\n p0=(0,T,0), p1=(0,0,-8T),\n p2=(T,P,0), p3=(-T,P,0), p4=(4T,P,0), p5=(0,S,0).\n\nAt initial tick zero supply independent uniform triples at the following new\ncoordinates for each t=R+1,...,R+B:\n\n f0(t)=(0,T-t,0),\n f1(t)=(0,0,-8T-t),\n fi(t)=pi+t e_y, i=2,3,4,5,\n f6(t)=(12R-t,0,0).\n\nAll these blocks are independent of the original apparatus, seed correlations,\nprior frontier bank, and input. They replace only previously unconstrained\ninitial coordinates. No additional cold pins or mid-run preparation are used.\nUse a sufficiently large torus; the previous choice 64R+64T+1 suffices for\nthis extension through 2R.\n\n**Claim.** Under the same reversible native update, the complete raw records\n" + } + ] +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/checks.py new file mode 100644 index 000000000..4c7fed2a1 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/checks.py @@ -0,0 +1,167 @@ +"""Exact geometry and independent native frontier controls; standard library.""" +from functools import lru_cache +from itertools import product +from pathlib import Path +import hashlib,json + + +def require(ok,label): + if not ok: raise RuntimeError(label) + + +def distance(a,b): return sum(abs(x-y) for x,y in zip(a,b)) + + +def h(v): + a,b,c=v + return b,c,a^(b&c) + + +def xor(*args): + out=[0,0,0] + for v in args: + for j in range(3): out[j]^=v[j] + return tuple(out) + + +def geometry(): + T=185;P=12*840**185;S=T+P;d=68;R=S+d;L=R+8 + ports=[(0,T,0),(0,0,-8*T),(T,P,0),(-T,P,0),(4*T,P,0),(0,S,0),(12*R,0,0)] + deadlines=[T,T,S,S,S,S,R] + q8=(0,S,76);W=(0,-76,76) + pins=[W,(0,S,S+136),(0,S,S+150),(0,S,S+152)] + def block(i,t): + if i==0:return (0,T-t,0) + if i==1:return (0,0,-8*T-t) + if i==6:return (12*R-t,0,0) + q=ports[i];return(q[0],q[1]+t,0) + # Piecewise-affine distances are checked at every absolute-value breakpoint. + # Cross-distance to port j uses only the varying coordinate of this ray. + directions=[(0,-1,0),(0,0,-1),(0,1,0),(0,1,0),(0,1,0),(0,1,0),(-1,0,0)] + same_edges=set();count=0;endpoint_min=[];deadline_w=[] + for i,(p,e,start) in enumerate(zip(ports,directions,deadlines)): + a=next(j for j in range(3) if e[j]) + points={start+1,L} + for q in ports+[q8]+pins: + root=(q[a]-p[a])*e[a] + points.update(t for t in (root-1,root,root+1) if start+1<=t<=L) + mins=[] + for t in sorted(points): + f=block(i,t) + require(distance(f,p)==t,'own axial distance') + require(all(f!=pin for pin in pins),'source overwrite') + for j,q in enumerate(ports): + dd=distance(f,q) + require(dd>=t,'no earlier arrival at any port') + if i!=j and dd==t: + require(i0,'frontier outside q8 current and previous ready balls') + mins.append(gap);count+=1 + endpoint_min.append(str(min(mins))) + deadline_w.append(str(distance(W,p)-start)) + require(distance(W,p)>start,'W preserves informative deadlines') + require(same_edges=={(2,5),(3,5)},'actual same-tick edge set') + # Pairwise ray-coordinate identity: solve all coordinates exactly for t,s. + # Same-axis parallel rays can coincide only when their perpendicular origins agree. + for i in range(7): + for j in range(i+1,7): + ei,ej=directions[i],directions[j];pi,pj=ports[i],ports[j] + ai=next(k for k in range(3) if ei[k]);aj=next(k for k in range(3) if ej[k]) + if ai==aj: + if any(pi[k]!=pj[k] for k in range(3) if k!=ai):continue + a=sorted((pi[ai]+ei[ai]*(deadlines[i]+1),pi[ai]+ei[ai]*L)) + b=sorted((pj[ai]+ej[ai]*(deadlines[j]+1),pj[ai]+ej[ai]*L)) + require(a[1]radius,'all ready cones excluded') + exclusions+=1 + require(distance((0,-1,0),(0,S,75))==L,'neighbor exclusion does not hold automatically') + # A zero isolated first-front coefficient is not an actual coupled-background witness. + require(((S+1)&75)!=0,'isolated M1/q7 multinomial cancellation') + return {'piecewise_affine_breakpoint_cases':count,'ready_cone_family_pairs':exclusions, + 'same_tick_edges':[list(x) for x in sorted(same_edges)], + 'q8_minimum_slacks_by_port':endpoint_min,'W_deadline_slacks_by_port':deadline_w, + 'extra_post_R_bits':7*8*3,'complete_noise_bits_formula':'6*P + 18*d + 168', + 'new_ready_current_radius':'R+8','new_ready_previous_radius':'R+7', + 'neighbor_bank_exclusion':'fails at distance test; no actual dependence asserted'} + + +STEPS=((1,0,0),(-1,0,0),(0,1,0),(0,-1,0),(0,0,1),(0,0,-1)) +TRIPLES=tuple(product((0,1),repeat=3)) + + +def native_records(ports,time,frontiers,assignments,background): + """Direct nonlinear wave recursion, bit-packed independent assignments.""" + full=(1<>k)&1 else 0 for k in range(3)) + incoming=xor(*(field(t-1,tuple(a+b for a,b in zip(p,step))) for step in STEPS)) + return xor(field(t-2,p),h(incoming)) + out=[field(time,p) for p in ports] + return [tuple(tuple((v[k]>>lane)&1 for k in range(3)) for v in out) for lane in range(len(assignments))] + + +def native_controls(): + # Actual algebra and dimension, but deliberately short distance controls. + # They validate the mechanism; they do not substitute for actual geometry. + ports=[(0,1,0),(0,0,-8),(1,2,0),(-1,2,0),(4,2,0),(0,3,0),(48,0,0)] + cases=0 + for t in (5,6): + fronts=[(0,1-t,0),(0,0,-8-t)]+[(p[0],p[1]+t,0) for p in ports[2:6]]+[(48-t,0,0)] + for p,f in zip(ports,fronts): + for background in (13,29): + out=native_records([p],t,[f],[(v,) for v in TRIPLES],background) + require(len(set(out))==8,'direct whole-triple axial permutation');cases+=1 + # Same-tick native triangular block, including a real forward cross-arrival. + p=[ports[2],ports[5]];t=5;f=[(1,7,0),(0,8,0)] + assignments=list(product(TRIPLES,repeat=2));pairs=0 + for background in (13,29): + out=native_records(p,t,f,assignments,background) + require(len(set(out))==64,'whole two-port block bijective') + for i in range(8):require(len({out[8*i+j][0] for j in range(8)})==1,'no reverse dependency') + require(all(len({out[8*i+j][1] for j in range(8)})==8 for i in range(8)),'second diagonal permutation') + pairs+=64 + pinned=native_records(p,t,f,[(a,TRIPLES[0]) for a in TRIPLES],background) + shared=native_records(p,t,f,[(a,a) for a in TRIPLES],background) + require(len(set(pinned))<64,'readiness-overlap negative control detected') + require(len(set(shared))<64,'shared-bank negative control detected') + # Conditioning on a complement variable cannot change the uniform record + # for any of these tested backgrounds; each produces every 6-bit word once. + return {'single_frontier_permutation_cases':cases,'native_pair_assignments':pairs, + 'shared_source_negative_cases':2,'pinned_source_negative_cases':2, + 'conditional_uniformity_backgrounds':2} + + +def main(): + g=geometry();c=native_controls() + result={'schema':'oi.native-y.history-v9.v1','geometry':g,'native_controls':c, + 'verdict':'PASS_CONDITIONAL_HISTORY_ENDPOINT', + 'scope':'Seven old raw records; supplied independent bank; q8 endpoint and bank-complement seeds. No reusable full-boundary claim.'} + print(json.dumps(result,sort_keys=True,separators=(',',':'))) + + +if __name__=='__main__':main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/results.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/results.json new file mode 100644 index 000000000..853ffaaad --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/results.json @@ -0,0 +1 @@ +{"geometry":{"W_deadline_slacks_by_port":["152","1447","152","152","707","152","1294916762120724555353249375311396454560555846038674029866832287120995530744936481177053818521275113866625646869666289213568845046949380071975127931436336024392454370485649418914160416171749004591528821238500842169589935931414629810613950688111356496264862776198294248007468391951174605933808469653336550898201040096504030128777433292470412931404513512574156800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002935"],"complete_noise_bits_formula":"6*P + 18*d + 168","extra_post_R_bits":168,"neighbor_bank_exclusion":"fails at distance test; no actual dependence asserted","new_ready_current_radius":"R+8","new_ready_previous_radius":"R+7","piecewise_affine_breakpoint_cases":17,"q8_minimum_slacks_by_port":["1","1666","1","1","556","1","1294916762120724555353249375311396454560555846038674029866832287120995530744936481177053818521275113866625646869666289213568845046949380071975127931436336024392454370485649418914160416171749004591528821238500842169589935931414629810613950688111356496264862776198294248007468391951174605933808469653336550898201040096504030128777433292470412931404513512574156800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002775"],"ready_cone_family_pairs":147,"same_tick_edges":[[2,5],[3,5]]},"native_controls":{"conditional_uniformity_backgrounds":2,"native_pair_assignments":128,"pinned_source_negative_cases":2,"shared_source_negative_cases":2,"single_frontier_permutation_cases":28},"schema":"oi.native-y.history-v9.v1","scope":"Seven old raw records; supplied independent bank; q8 endpoint and bank-complement seeds. No reusable full-boundary claim.","verdict":"PASS_CONDITIONAL_HISTORY_ENDPOINT"} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/review/INPUT-HASHES.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/review/INPUT-HASHES.json new file mode 100644 index 000000000..5cbae0987 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/review/INPUT-HASHES.json @@ -0,0 +1,12 @@ +{ + "author_sha256": { + "PLAN.md": "30a4f02535637725469f1a4ee7018740dd7bfd71dfc3b54ff09785006cf65f47", + "PROVENANCE.json": "9611ea662987b71066eedfa4371af497e9aa7a8a29f9d74c3c1cc5766502ce76", + "REPORT.md": "2125314d49e14abdac8b62ddbaa1f89f1c0ec693dd14744fca4b79a0b38c6997", + "SHA256SUMS": "8c46053fa076dd775278889f319ddd09d762b3c7c00e0504835cf77cfbfb4dfe", + "SOURCE-EXCERPTS.json": "36e3f7b3b56d983ed2f8b077f6b9ec9a93d1a06b5384db1d87e1b029d2c66e9e", + "checks.py": "81523abb92ca61ff8e9be02a6fd3a5a23b9712fc8966f5892b8b70dc24b71e3d", + "results.json": "7e8611be276c8945bd0f4ab992e5cc7bff3ef0ec5c69093a5f3e0327b1beb57a" + }, + "reviewed_commit": "96e7b6249eedc221a364b79d996a080f0b850438" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/review/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/review/REPORT.md new file mode 100644 index 000000000..a7ccb66e0 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/review/REPORT.md @@ -0,0 +1,135 @@ +# Separate-author review: conditional seven-port history theorem + +Reviewed author checkpoint: `96e7b6249eedc221a364b79d996a080f0b850438`, +`verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/`. +Verdict: **accept within stated conditional scope, no blocking findings**. +The reviewer did not author the history theorem or its checker. This is +internal separate-agent review, not owner adoption, external review or a +Lean certificate. The independent q9 corollary below is separately labelled; +it is not retroactively part of the reviewed R+8 author claim. + +## Exact inputs and replay + +The published REPORT.md, checks.py, SOURCE-EXCERPTS.json, PROVENANCE.json, +results.json and SHA256SUMS blobs were retrieved at the immutable author +checkpoint and matched the local inputs. The manifest verifies, and the +normal and optimized author replays are byte-identical to results.json. +`INPUT-HASHES.json` records the reviewed author files. + +All three retained source excerpts match their original full-file SHA-256 +values and exact cited line spans: the selector's frontier construction, +the native-X public-history section and the seven-port horizon extension. +They support the inherited access/bank formula. The review does not turn +those excerpts into a new proof of the predecessor's transport endpoints. + +## Geometry and proof audit + +The port/deadline list, seven frontier rays and all current readiness balls +are consistent with the inherited construction and new W/Q/C/G sources. +The independent checker imports no author module. It treats each frontier +family as a complete integer ray segment and splits every L1 distance into +its affine pieces. Checking segment endpoints therefore covers every index +in the astronomical interval; it is not a sampling argument. + +At L=R+8 it verifies all 49 ray/port distance relations, 147 cone-family +exclusions, pairwise disjoint complete ray segments and absence of source +pins in the bank. It independently verifies every reported q8 slack formula. +The only equal-time cross-edges are 2 to 5 and 3 to 5. All named added pins +are beyond the original informative deadlines. Ready-cone exclusion also +keeps every bank variable from the old blank prefixes and informative +outputs; the weaker no-earlier-than-own-t arrival alone would not establish +that last property. + +There are two streams of length P+d+8, four of length d+8 and one of length +8. Thus the total is 2P+6d+56 triples, or 6P+18d+168 bits. No flag, deadline +outcome or failure combination is dropped from the informative record. + +The torus claim has an explicit bound: L<=2R, and all relevant initial banks, +named sources and full causal/ready balls lie in the common lift +[-14R,14R]^3. Every coordinate difference is therefore at most 28R, strictly +less than half of 64R+64T+1. A shorter periodic-coordinate displacement cannot +replace any claimed distance or axial path. The checker verifies these +bounds using integers at the actual parameters. + +The diagonal-permutation proof is valid in arbitrary background. An axial +source at distance t has one length-t path to its own output. At each step, +the old-local slice and the other five neighbor terms are outside that new +source's light cone. They are fixed functions of the other inputs. H and XOR +translations are permutations, so the source-to-output diagonal block is +bijective. The absence of reverse chronological/equal-time dependencies +makes the full finite bank-to-noise map triangular and invertible. Background +changes induced by W, earlier frontier blocks or correlated complement +variables do not alter this argument. + +Conditional on any admissible complement C, the initially independent +uniform bank hence gives every complete noise word the same probability. +The informative records D and q8 are functions of C because their complete +initial cones exclude the bank. The claimed joint independence of noise from +(C,D,q8), and its persistence after conditioning on nonzero-probability +informative success/failure branches, follows. No independence assumption +between old seeds or between D and those seeds is used. + +## Independent native controls + +The independent native recurrence uses both time slices and all six spatial +neighbors with dense fixed background. It enumerates three chronological +frontier triples: two outputs at time three, with a real forward same-tick +cross-arrival, followed by a third output at time four. In each of three +backgrounds all 512 assignments produce all 512 output words exactly once. +It also checks bijective prefixes and absence of dependence on future blocks. +The total is 1,536 native assignments. Pinning one reserved block or sharing +two blocks reduces the attainable output count to 64, rejecting both missing- +resource hypotheses. Normal and optimized independent replays are identical. + +These short native controls test the local mechanism, not all L time steps. +The arbitrary-horizon assertion rests on the written axial/triangular proof +and the independently verified actual geometry. + +## Limits retained + +The conclusion does not make the used seed u fresh. It says that observing +noise adds no posterior information beyond D; D itself can bias or determine +u. A new resource needs its own initial-law, free-coordinate and non-use +checks. The complete current/previous outgoing neighborhood is not excluded +from the bank by the endpoint result. The example neighboring q7 cone touches +an old bank coordinate, while its isolated first-front coefficient cancels; +this is correctly described as failure of geometric exclusion, not a proved +coupled dependence witness. Native reset, physical closure and probability +selection remain open. + +## Additional reviewer-side q9 corollary + +Requested after the R+8 author checkpoint; not part of its original result. +Set L'=R+9, target q9=(0,S,77), add J=(0,S,S+154), and extend the same seven +independent frontier streams through L'. Retain W/Q/C/G and the readiness +balls through q9, preserving source exceptions. The same exact inequalities +hold with seven extra triples: the bank has 2P+6d+63 triples, or +6P+18d+189 bits. The independent checker reports 49 ray/port comparisons, +154 cone-family exclusions and the unchanged two equal-time cross-edges. +It verifies that J is not a bank coordinate, is beyond every old informative +deadline and cannot change earlier q8: its distance to q8 is R+10, exceeding +q8's deadline R+8. The same no-wrap bound applies. + +The identical chronological proof therefore makes the complete seven-port +noise word through L' jointly uniform and independent of its complement, +including q9 and any new seed encoded only in J. If that seed a is initially +independent of the old variables, its coordinate is free apart from its +specified source encoding, and the stated new pins do not constrain it, then +conditioning on these noise records causes no additional bias. The checked +source distances show that J does not affect the old informative deadlines +or earlier q8, so conditioning on those records does not introduce a new +dependence on a. This conditional corollary applies before any subsequent +herald involving a; such a herald must be treated explicitly. + +This corollary asserts neither a particular q9 endpoint formula nor a +multi-cell carrier, full outgoing-boundary independence, a calibrated 5:3:2 +sampler or reusable reset. Those need separate native calculations. The +addition of a supplied independent bank is stated openly, not derived as a +physical resource or adopted as a new premise. + +## Reproduction + +From this review directory run `python3 checks.py` and `python3 -O checks.py`; +both must match `results.json`. The independent script is self-contained. +The result distinguishes the reviewed R+8 geometry from the additional q9 +geometry. `SHA256SUMS` covers the review, input hashes, checker and result. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/review/SHA256SUMS new file mode 100644 index 000000000..8a7b55903 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/review/SHA256SUMS @@ -0,0 +1,4 @@ +3536c837ff1a21a9858d085cb7d69094654c2c5d3d01a4180d50bc2fbe18e54e REPORT.md +a915545d6a05944924ecd5979d3e1a8a98980396c47911f712a1d2525ae0c221 INPUT-HASHES.json +60432bb78b8f6c2379eeab7984f251649ec0cd1fb6e12c0670e4f93a6d36d7fe checks.py +a5da0d763a1765c905c1ec74786b6faae6659321d4e0a246328eaaa3398cb8c2 results.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/review/checks.py new file mode 100644 index 000000000..da6fedaba --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/review/checks.py @@ -0,0 +1,120 @@ +#!/usr/bin/env python3 +"""Independent native-history controls; no author-module imports.""" +from functools import lru_cache +from itertools import product +import json + +def need(ok,why): + if not ok:raise RuntimeError(why) + +def manhattan(a,b):return sum(abs(x-y) for x,y in zip(a,b)) + +def geometry(K=8): + T=185;P=12*840**T;S=P+T;d=68;R=S+d;L=R+K;side=64*R+64*T+1 + ps=[(0,T,0),(0,0,-8*T),(T,P,0),(-T,P,0),(4*T,P,0),(0,S,0),(12*R,0,0)] + starts=[T,T,S,S,S,S,R] + dirs=[(0,-1,0),(0,0,-1),(0,1,0),(0,1,0),(0,1,0),(0,1,0),(-1,0,0)] + def f(i,t):return tuple(a+t*b for a,b in zip(ps[i],dirs[i])) + q8=(0,S,68+K); pins=[(0,-76,76),(0,S,S+136),(0,S,S+150),(0,S,S+152)] + if K==9:pins.append((0,S,S+154)) + need(K in (8,9),'bounded audited horizons') + cones=list(zip(ps,starts))+[((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,S,-68),R),((-12*R,0,0),R)]+[((0,S,68+k),R+k) for k in range(K+1)] + # Each one-dimensional ray is a full integer segment. Bounding boxes are + # sufficient and exact for intersections of these axis-aligned segments. + boxes=[] + for i in range(7): + ends=[f(i,starts[i]+1),f(i,L)] + boxes.append([(min(p[k] for p in ends),max(p[k] for p in ends)) for k in range(3)]) + for i in range(7): + for j in range(i):need(any(a[1]R+8,'new J cannot change earlier q8') + equal=set();cross=0;excluded=0 + # Construct all integer affine segments, then certify each endpoint pair. + def segments(i,target): + lo=starts[i]+1;hi=L + cut={lo,hi} + for k,e in enumerate(dirs[i]): + if e: + t=(target[k]-ps[i][k])*e + if lo<=t<=hi:cut.add(t) + ordered=sorted(cut) + return list(zip(ordered,ordered[1:])) or [(lo,lo)] + for i in range(7): + for j,target in enumerate(ps): + for lo,hi in segments(i,target): + vals=[manhattan(f(i,t),target)-t for t in (lo,hi)] + need(min(vals)>=0,'future bank cannot reach earlier record') + if i!=j and 0 in vals:equal.add((i,j)) + cross+=1 + for target,radius in cones: + for lo,hi in segments(i,target): + need(min(manhattan(f(i,t),target)-radius for t in (lo,hi))>0,'initial bank outside complete ready cone') + excluded+=1 + for pin in pins: + need(manhattan(pin,ps[i])>starts[i],'all named added pins preserve informative deadlines') + for lo,hi in segments(i,q8): + for t in (lo,hi): + expected=[t-T,t+8*T,t-S,t-S,t+2*T-P,t-S,12*R-t][i] + need(manhattan(f(i,t),q8)-L==expected and expected>0,'stated endpoint slack formula') + need(equal=={(2,5),(3,5)},'same-tick edges') + # Every relevant center, source and bank point lies in [-14R,14R]^3; + # so every coordinate difference is below half the torus circumference. + need(L<=2*R and 56*R A is a genuine same-tick edge. The third record is + # B at time four, so this block also checks chronological conditioning. + sites=[(1,2,0),(0,3,0),(1,3,0)] + observations=[(3,(1,-1,0)),(3,(0,0,0)),(4,(1,-1,0))] + data={p:tuple(sum(row[i][k]<>k&1 else 0 for k in range(3)) + a,b,c=xor(field(t-1,tuple(p[k]+e[k] for k in range(3))) for e in steps) + return xor([field(t-2,p),(b,c,a^(b&c))]) + raw=[field(t,p) for t,p in observations] + outputs=[tuple(tuple((v[k]>>i)&1 for k in range(3)) for v in raw) for i in range(n)] + need(len(set(outputs))==512,'complete three-record native bijection') + for prefixlen in (1,2,3): + groups={} + for assignment,output in zip(assignments,outputs): + groups.setdefault(assignment[:prefixlen],set()).add(output[:prefixlen]) + need(all(len(out)==1 for out in groups.values()),'future inputs cannot affect past outputs') + need(len({next(iter(out)) for out in groups.values()})==8**prefixlen,'prefix map bijective') + shared=[out for row,out in zip(assignments,outputs) if row[0]==row[1]] + pinned=[out for row,out in zip(assignments,outputs) if row[1]==(0,0,0)] + need(len(set(shared))==64 and len(set(pinned))==64,'shared or pinned resource fails uniform 512-word law') + checked+=512 + return {'native_assignments':checked,'backgrounds':3,'chronological_blocks':3, + 'distinct_full_words_per_background':512,'shared_or_pinned_words':64} + +if __name__=='__main__': + print(json.dumps({'schema':'history-v9-independent-review-v1','geometry':geometry(), + 'additional_q9_geometry':geometry(9),'native_controls':native(),'controls_passed':True,'verdict':'PASS_CONDITIONAL_HISTORY_PROOF'},sort_keys=True,indent=2)) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/review/results.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/review/results.json new file mode 100644 index 000000000..0e0c8081e --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/history_v9/review/results.json @@ -0,0 +1,48 @@ +{ + "additional_q9_geometry": { + "affine_cross_segments": 49, + "bank_bits": "6P+18d+189", + "bank_triples": "2P+6d+63", + "post_R_horizon": 9, + "ready_cone_family_pairs": 154, + "same_tick_edges": [ + [ + 2, + 5 + ], + [ + 3, + 5 + ] + ], + "torus_lift_bound": "28R < side/2" + }, + "controls_passed": true, + "geometry": { + "affine_cross_segments": 49, + "bank_bits": "6P+18d+168", + "bank_triples": "2P+6d+56", + "post_R_horizon": 8, + "ready_cone_family_pairs": 147, + "same_tick_edges": [ + [ + 2, + 5 + ], + [ + 3, + 5 + ] + ], + "torus_lift_bound": "28R < side/2" + }, + "native_controls": { + "backgrounds": 3, + "chronological_blocks": 3, + "distinct_full_words_per_background": 512, + "native_assignments": 1536, + "shared_or_pinned_words": 64 + }, + "schema": "history-v9-independent-review-v1", + "verdict": "PASS_CONDITIONAL_HISTORY_PROOF" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/REPORT.md new file mode 100644 index 000000000..021998f1c --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/REPORT.md @@ -0,0 +1,228 @@ +# The sidecar junction meets an unprepared causal boundary + +Status: author-checked research result; independent review pending. +24 October 2026. Continuation of draft PR #910, initial checkpoint +`3fcaa271e689209dd74272c14a924c8f7fe44998`. + +## Decision and scope + +The unchanged site `s=qY+(0,-1,2)` at tick `N=R+3` is not a deterministic +raw-Y transfer or clean Y code for all allowed initial complements. An +unconstrained initial triple reaches it along a unique axial first-arrival +path. Conditional on every other initial coordinate, its map to the whole +terminal triple is a permutation of all eight values. + +This is a result about the proposed untouched junction. It neither excludes +a redesigned apparatus with additional compatible initial preparation nor +establishes a joint record law. No physical premise or acceptance rule changes. +The productivity test is whether the calculation constrains the actual +junction beyond the known warning that some neighbors were uncomputed. +The explicit free coordinate and the incompatible blanket preparation meet +that test: NEW for this junction, using the inherited first-arrival principle. + +## 1. A free coordinate in the actual apparatus + +Use the existing parameters `T=185`, `P=12*840^T`, `S=T+P`, `d=68`, +`R=S+d`. Coordinates in this section are absolute. Then + + s = (0,S-1,d+2), N=R+3, + f = s-N e_y = (0,-d-4,d+2) = (0,-72,70). + +Let `M=U_0(f)`. The distance from f to s is exactly N, with a single +shortest path, along +y. The initial triple M is outside every prepared +current ball in the retained apparatus, even if the optional q3 extension +is included. The previous balls are smaller and add no current constraint. + +| Initial current ready region | Distance minus its radius | +| --- | --- | +| Original X,Y,R receivers, radius T | 142 | +| Relocated original Z, radius T | 3T+142 | +| Relocated original herald, radius T | 7T+142 | +| Transported X,Y,R receivers, radius S | 142 | +| Transported Z, radius S | 3T+142 | +| qY collision, radius R | 6 | +| qR collision, radius R | 142 | +| q2 extension, radius R+2 | 2 | +| Optional q3 extension, radius R+3 | 2 | +| Remote herald and Z, radius R | 11R+142 | + +The original five centers are `(0,T,0)`, `(T,0,0)`, `(-T,0,0)`, +`(4T,0,0)`, `(0,0,-8T)`. The first four are also translated by P e_y +for transport. The collision centers are `(0,S,+/-d)`, the optional +outward centers are `(0,S,d+2)` and `(0,S,d+3)`, and the remote centers +are `(+/-12R,0,0)`. This inventory is the retained native-X/selector/outward +construction; no optional mirror-memory correlations are added. + +The exact 1,479-entry source table contains no entry at f. Neither the +selector controls nor the reset pulses occupy f. Remote herald sources +have x>=12R, and the remote Z source has x=-12R. Thus M is an ordinary +unpinned complement coordinate, not an affine seed copy. Under the +inherited independent-uniform-complement prior it is a uniform triple, +independent of the input and apparatus seeds. + +Moreover, `dist(f,qY)=R+6`, `dist(f,q2)=R+4`, and `dist(f,q3)=R+5`. +Varying M changes neither the established Y operand nor q2 through R+2, +nor the optional q3 result through R+3. It also cannot change the sidecar +through R+2. The original large-torus no-wrap condition is retained. + +## 2. The complete update, with every background term retained + +Write `v_k=f+k e_y` and `V_k=U_k(v_k)` along the unique ray. For k>=1, +the full six-neighbor, second-order native rule is exactly + + V_0=M, + V_k = a_k XOR H(V_(k-1) XOR b_k), + a_k = U_(k-2)(v_k), + b_k = XOR of U_(k-1) on the five neighbors other than v_(k-1). + +The old term a_k cannot depend on M: its site is at distance k and its +time is k-2. Each of the other five neighbors is at distance k+1 and +time k-1. Thus every a_k and b_k is fixed when the other initial +coordinates are fixed. They include *all* lower-source behind-front +contributions, unknown old-input terms, and other free complement fields +where those can arrive. None is set to zero or approximated by a +first-arrival-only lower formula. + +For any fixed triples a,b, `z -> a XOR H(z XOR b)` is a permutation, +since `H(A,B,D)=(B,D,A XOR BD)` has inverse +`H^-1(A,B,D)=(D XOR AB,A,B)`. Composition gives an exact permutation +`Pi_C` depending on the fixed complement C, such that + + U_N(s)=Pi_C(M). + +This proves the dependence and the law without evaluating an astronomical +background-dependent permutation or simulating N ticks. It is not an +explicit polynomial table for the five other neighbors. + +At the final update, put `(a,b,c)=XOR_{w~s} U_(R+2)(w)`. The accepted +old slice is `U_(R+1)(s)=(0,1 XOR y,x)`, so the exact terminal identity is + + U_(R+3)(s) = (b, 1 XOR y XOR c, x XOR a XOR b*c). + +Only the -y neighbor can contain M at this time: its distance from f is +N-1; the other five distances are N+1. Hence that last neighbor XOR, +and then the final triple, range over all eight values. In particular no +raw field, its complement, or nonconstant local decoder can be guaranteed +to equal y or a separately inserted diagnostic p across all complements. +The diagnostic intervention at qY is itself outside M's causal influence, +so it does not invalidate this argument. + +## 3. Probability and history boundary + +Under the specified independent uniform M, for each fixed assignment C, + + Pr(U_N(s)=w | C)=1/8 for every raw triple w. + +This marginal remains uniform when conditioning on the initial input, +seeds, earlier Y outcome, and remote herald, since those are independent +of M. Retaining all M values therefore gives four zeros and four ones +for every raw output field at fixed actual operand. Discarding the +unwanted values would introduce a new event whose full law needs proof. + +This does **not** prove uniformity conditional on the complete public +history: M may reach an old public port earlier. For example its distance +to the original X port is T+142, less than R. Distance permits that +dependence; it does not establish an actual leak or a joint masking law. +A history-aware decoder or later native processing is not ruled out. + +## 4. Why a blanket cold extension is incompatible + +One might add current `B_(R+3)(s)` and previous `B_(R+2)(s)` as blank +regions. Their interiors or boundaries contain: + +| Coordinate | Role | Distance to s | +| --- | --- | --- | +| Current (0,-1,0) | old independent frontier M1 | R+2 | +| Current (0,-2,0) | old independent frontier M2 | R+3 | +| Previous (0,0,0) | unknown old input triple | R+1 | + +These coordinates cannot be set to zero while claiming the same initial +resources. This obstruction applies to a blanket-zero prescription, not +every possible extension. It also does not say every captured variable +actually affects this particular endpoint. + +Inside the unwrapped causal cone there are two decoupled spacetime parities: +`sum(v)+t mod 2` is +the same for the old local term and all six contributing neighbors. +The inherited torus has odd side length, so this is a local no-wrap +argument, not a global bipartition of the periodic lattice. +The target parity is even. Current M1 and the previous unknown input +are in the odd sector; a preparation restricted to the active sector +need not touch them. Current M2 is even and remains a protected exception. +All current M_j with j>=3 are outside this target cone. + +### A compatible initial prescription, with an uncomputed law + +The initial geometry admits the following conditional extension. In the +current ball B_N(s), pin newly unprepared even-parity coordinates to zero, +preserving the existing sources and M2. In the previous ball B_(N-1)(s), +pin newly unprepared odd-parity coordinates to zero. Leave the opposite +sector unchanged. This is a new *initial* apparatus prescription, not a +late modification or a statement about the original unextended apparatus. + +The protected frontier families have exact distance slacks relative to N: + +| Initial current family, positive index | Distance to s minus N | +| --- | --- | +| M_j=(0,-j,0) | j-2 | +| N_j=(0,0,-9T-j) | 9T+j-2 | +| F_(X,k), F_(Y,k), F_(R,k)=Q_i+(S+k)e_y | k | +| F_(Z,k)=Q_Z+(S+k)e_y | 3T+k | + +Thus M1 is in the untouched sector, M2 is an explicit untouched exception, +and the rest lie outside. The remote banks are outside by their inherited +x separation. All 1,479 old source coordinates are checked; only the origin +lies inside. The Z selector and opposite reset pulse are also outside. +The unknown previous origin remains in the untouched sector. No input- +dependent pin or new seed is required for this geometric prescription. + +The exact active-sector computation consequently reduces to **six current +sources**, with a zero previous active sector: + +| Absolute coordinate | Preserved initial triple | +| --- | --- | +| (0,0,0) | (0,x,0) | +| (0,2S,0) | (0,mY XOR mR,0) | +| (T,P+S,0) | (0,mY,0) | +| (-T,P+S,0) | (0,mR,0) | +| (0,S,S+2d) | (u,0,1) | +| (0,-2,0) | M2, an independent uniform triple | + +This is a finite-speed reduction of the proposed prepared cone, not an +evaluation of its output. The origin is two steps behind its first-arrival +front at the target; M2 and the three selector controls are on the boundary. +Interactions therefore cannot be replaced by a sum of isolated pulses. + +In particular M2's *isolated* first-arrival contribution cancels: the +displacement is `(0,S+1,70)` and `(S+1)&70=2`, so the shortest-path count +is even. That does not prove cancellation in the populated nonlinear cone. +Keeping this as a countercontrol prevents treating causal inclusion alone +as proof of influence, just as it prevents deleting M2 without calculation. + +The next focused task is the exact six-source native output and the +diagnostic operand test under this initial prescription. Any favorable +result must also prove the joint old-record/carrier law: preserving the +frontier variables alone does not preserve their independence from a new +carrier that may use M2. Pinning only f does not implement this extension; +the whole newly specified active portion of the cone is part of its cost. + +## Checks + +Run `python3 junction_v4/checks.py` from this checkpoint root (or use an +absolute script path), and repeat with `-O`. The script uses no inherited +dynamics module and checks: + +* actual giant-integer geometry, all 15 ready balls and the 1,479 sources; +* all 64 fixed-offset maps on all eight triples; +* 144 independent full 3-D causal-recursion cases with dense current and + previous backgrounds, all eight pivot values, six directions, lengths + 1..8 and three backgrounds; +* a countercontrol distinguishing the full equation from H^N(M), and + a two-path cancellation showing distance alone is insufficient; +* the terminal sidecar identity, captured-resource/parity inventory, complete + reserved-bank inequalities, and isolated-M2 cancellation countercontrol. + +Normal and optimized output is byte-identical. These finite controls +exercise the analytic unique-path argument; they do not replace its +all-N proof. No joint-history certification, native reset, Lean proof, +or general obstruction to OI is claimed. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/checks-O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/checks-O.out new file mode 100644 index 000000000..1b48ff3d4 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/checks-O.out @@ -0,0 +1,7 @@ +J1: actual giant-integer geometry; pivot outside all15 ready balls and1479 original sources: PASS +J2: full native update has64 bijective offset maps; only one final neighbor carries the fresh pivot: PASS +J3: 144 direct 3-D dense-background first-arrival cases, all8 pivot values; omitted-background countercontrol: PASS +J4: exact sidecar-plus-six-neighbor identity; nonaxial distance-only claim rejected: PASS +J5: blanket ready extension captures old M1/M2 and unknown previous input; active-parity extension still captures M2: PASS +J6: proposed initial active-sector cone preserves all reserved banks with M2 exception; isolated M2 front cancels, interaction law remains open: PASS +SCOPE: the unchanged proposed junction has no deterministic raw operand or clean code for all allowed backgrounds. Uniform terminal marginal is not a joint-history law. A redesigned prepared junction remains open. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/checks.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/checks.out new file mode 100644 index 000000000..1b48ff3d4 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/checks.out @@ -0,0 +1,7 @@ +J1: actual giant-integer geometry; pivot outside all15 ready balls and1479 original sources: PASS +J2: full native update has64 bijective offset maps; only one final neighbor carries the fresh pivot: PASS +J3: 144 direct 3-D dense-background first-arrival cases, all8 pivot values; omitted-background countercontrol: PASS +J4: exact sidecar-plus-six-neighbor identity; nonaxial distance-only claim rejected: PASS +J5: blanket ready extension captures old M1/M2 and unknown previous input; active-parity extension still captures M2: PASS +J6: proposed initial active-sector cone preserves all reserved banks with M2 exception; isolated M2 front cancels, interaction law remains open: PASS +SCOPE: the unchanged proposed junction has no deterministic raw operand or clean code for all allowed backgrounds. Uniform terminal marginal is not a joint-history law. A redesigned prepared junction remains open. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/checks.py new file mode 100644 index 000000000..2666e8077 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/checks.py @@ -0,0 +1,166 @@ +"""Exact geometry and independent finite controls for the unprepared junction. +Standard library; no imports from the inherited dynamics or no-carry model. +""" +from pathlib import Path +from functools import lru_cache +from itertools import product +import json + +ROOT = Path(__file__).resolve().parents[1] +T = 185 +P = 12 * 840 ** T +S = T + P +D = 68 +R = S + D +N = R + 3 +s = (0, S - 1, D + 2) +f = (0, -D - 4, D + 2) +STEPS = tuple(tuple(sign if j == axis else 0 for j in range(3)) + for axis in range(3) for sign in (-1, 1)) + +def need(ok, message): + if not ok: + raise RuntimeError(message) + +def add(v, w): + return tuple(a + b for a, b in zip(v, w)) + +def dist(v, w): + return sum(abs(a - b) for a, b in zip(v, w)) + +def h(v): + a, b, d = v + return b, d, a ^ (b & d) + +def xor(*values): + result = [0, 0, 0] + for value in values: + for j in range(3): + result[j] ^= value[j] + return tuple(result) + +states = tuple(product((0, 1), repeat=3)) +need(add(f, (0, N, 0)) == s, 'unique positive-y axial path') +need(dist(f, s) == N, 'terminal first-arrival time') +q_y = (0, S, D) +q2 = (0, S, D + 2) +q3 = (0, S, D + 3) +need(dist(f, q_y) == R + 6, 'qY exclusion') +need(dist(f, q2) == R + 4, 'q2 exclusion') +need(dist(f, q3) == R + 5, 'optional q3 extension exclusion') +ports = [(0, T, 0), (T, 0, 0), (-T, 0, 0), (4*T, 0, 0), (0, 0, -8*T)] +balls = [('original-' + str(i), q, T) for i, q in enumerate(ports)] +balls += [('transport-' + str(i), add(q, (0, P, 0)), S) + for i, q in enumerate(ports[:4])] +balls += [('Y-collision', q_y, R), ('R-collision', (0, S, -D), R), + ('q2', q2, R+2), ('q3-optional', q3, R+3), + ('remote-herald', (12*R, 0, 0), R), ('remote-Z', (-12*R, 0, 0), R)] +need(len(balls) == 15, 'ready ball inventory') +for name, center, radius in balls: + need(dist(f, center) > radius, 'free pivot was pinned by ' + name) +need(min(dist(f, q)-radius for _, q, radius in balls) == 2, 'minimum slack') +geometry = json.loads((ROOT / 'parallel_v3/history_control/SOURCE-GEOMETRY.json').read_text()) +need(len(geometry['sources']) == 1479, 'source count') +need(all(tuple(src['position']) != f for src in geometry['sources']), 'old source exception') +controls = [(0, 2*S, 0), (T, P+S, 0), (-T, P+S, 0), (4*T, P+S, 0), + (0, S, S+2*D), (0, S, -S-2*D)] +need(f not in controls and f[0] < 12*R, 'new source exceptions') +print('J1: actual giant-integer geometry; pivot outside all15 ready balls and1479 original sources: PASS') + +# At the final update only the -y neighbor can already depend on this pivot. +for e in STEPS: + need(dist(f, add(s, e)) == (N-1 if e == (0, -1, 0) else N+1), 'last-neighbor distances') +need(dist(f, s) > N-2, 'old slice independent of pivot') +# An arbitrary full background supplies offsets a,b. No field is dropped. +for a, b in product(states, repeat=2): + images = [xor(a, h(xor(m, b))) for m in states] + need(len(set(images)) == 8, 'translated H must be a permutation') +print('J2: full native update has64 bijective offset maps; only one final neighbor carries the fresh pivot: PASS') + +# Eight initial values of the pivot are evolved simultaneously in bit lanes. +ALL = 255 +PIVOT = (240, 204, 170) +def scalar(v, lane): + return tuple((field >> lane) & 1 for field in v) + +def background(t, v, seed): + a, b, c = v + value = ((a*17+b*31+c*43+seed*59+t*71) ^ + ((a*a+3*b*b+5*c*c+7*seed+11*t) << 2)) & 7 + return tuple(ALL if value & (1 << (2-j)) else 0 for j in range(3)) + +def dynamics(seed): + @lru_cache(None) + def at(t, v): + if t == 0 and v == (0, 0, 0): + return PIVOT + if t in (-1, 0): + return background(t, v, seed) + return xor(at(t-2, v), h(xor(*(at(t-1, add(v, e)) for e in STEPS)))) + return at + +comparisons = 0 +nontrivial_offsets = 0 +for seed in range(3): + at = dynamics(seed) + for direction in STEPS: + simple = PIVOT + for k in range(1, 9): + v = tuple(k*a for a in direction) + old = at(k-2, v) + others = xor(*(at(k-1, add(v, e)) for e in STEPS + if e != tuple(-a for a in direction))) + need(all(field in (0, ALL) for field in old + others), 'off-path term depends on pivot') + prior = at(k-1, tuple((k-1)*a for a in direction)) + actual = at(k, v) + need(actual == xor(old, h(xor(prior, others))), 'complete recurrence') + need(len({scalar(actual, lane) for lane in range(8)}) == 8, 'direct dense-background permutation') + simple = h(simple) + nontrivial_offsets += actual != simple + comparisons += 1 +need(nontrivial_offsets > 0, 'controls failed to distinguish omitted-background formula') +print('J3: %d direct 3-D dense-background first-arrival cases, all8 pivot values; omitted-background countercontrol: PASS' % comparisons) + +# Distance alone is insufficient: two shortest paths cancel for an isolated pulse. +@lru_cache(None) +def isolated(t, v): + if t < 0 or sum(map(abs, v)) > t: + return (0, 0, 0) + if t == 0: + return PIVOT if v == (0, 0, 0) else (0, 0, 0) + return xor(isolated(t-2, v), h(xor(*(isolated(t-1, add(v, e)) for e in STEPS)))) +need(isolated(2, (1, 1, 0)) == (0, 0, 0), 'nonaxial countercontrol') +for x, y, a, b, d in product((0, 1), repeat=5): + got = xor((0, 1^y, x), h((a, b, d))) + need(got == (b, 1^y^d, x^a^(b&d)), 'sidecar junction identity') +print('J4: exact sidecar-plus-six-neighbor identity; nonaxial distance-only claim rejected: PASS') + +# A blanket new cold ball conflicts with prior resources. +need(dist((0, -1, 0), s) == R+2, 'M1 captured') +need(dist((0, -2, 0), s) == R+3, 'M2 captured') +need(dist((0, 0, 0), s) == R+1, 'unknown old input captured by previous ball') +need((sum(s)+N) % 2 == 0, 'junction current-source parity') +need(sum((0, -2, 0)) % 2 == 0, 'M2 remains in active parity') +need(sum((0, -1, 0)) % 2 == 1, 'M1 opposite current parity') +need((sum((0, 0, 0))-1) % 2 == 1, 'old unknown opposite phase parity') +need(dist((0, -3, 0), s) == R+4, 'all further Mj outside') +print('J5: blanket ready extension captures old M1/M2 and unknown previous input; active-parity extension still captures M2: PASS') + +# Proposed initial active-sector extension: six current-source exceptions. +# The formulas below also give the inequalities for every positive index. +for j in (1, 2, 3, D, P, R): + need(dist((0, -j, 0), s)-N == j-2, 'old Mj slack') + need(dist((0, 0, -9*T-j), s)-N == 9*T+j-2, 'old Nj slack') +for k in (1, 2, 3, D, P, R): + for i, q in enumerate(ports[:4]): + frontier = add(q, (0, P+S+k, 0)) + need(dist(frontier, s)-N == k+(3*T if i == 3 else 0), 'selector frontier slack') +inside = [src for src in geometry['sources'] if dist(tuple(src['position']), s) <= N] +need(len(inside) == 1 and inside[0]['position'] == [0, 0, 0], 'only old origin source inside') +need(dist(controls[0], s) == N and dist(controls[1], s) == N and dist(controls[2], s) == N, 'three selector exceptions on boundary') +need(dist(controls[3], s) == N+3*T, 'Z selector outside') +need(dist(controls[4], s) == N-4 and dist(controls[5], s) == N+2*D, 'upper/lower pulse distances') +need((S+1) & (D+2) == 2, 'isolated M2 no-carry obstruction') +need(64*R+64*T+1 > 2*N+1, 'local cone embeds in inherited odd torus') +print('J6: proposed initial active-sector cone preserves all reserved banks with M2 exception; isolated M2 front cancels, interaction law remains open: PASS') +print('SCOPE: the unchanged proposed junction has no deterministic raw operand or clean code for all allowed backgrounds. Uniform terminal marginal is not a joint-history law. A redesigned prepared junction remains open.') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/INPUT-HASHES.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/INPUT-HASHES.json new file mode 100644 index 000000000..26e7e890f --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/INPUT-HASHES.json @@ -0,0 +1,12 @@ +{ + "repo_checkpoint/payload/junction_v4/REPORT.md": "5cce7c933e25cdf493c3d08871de732a6a217189becff82d5ff6642e2b5c0b08", + "repo_checkpoint/payload/junction_v4/checks.py": "588a248c8d00cb23bf90de23dd440401d99f329e75348a7e27ade85bccf21d44", + "repo_checkpoint/payload/parallel_v3/history_control/SOURCE-GEOMETRY.json": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d", + "repo_checkpoint/payload/parallel_v3/history_control/REPORT.md": "aad8d9adf833784f6f32f74528df0eeb1dd71424bfb95a073a2521dec57719ea", + "repo_checkpoint/payload/parallel_v3/new_geometry/REPORT.md": "61483ff9fc4b8b57ddfa7e851db9f27cc46b179518849e8d921ce6c5dc8a3ffb", + "baseline/OI_combined_handoff_2026-10-24_v1/workspace/oi_native_transfer_v1/REPORT.md": "11f66eb63492b1b563b3f83c51929fa1d2104f91a88b6a6bbb0216bdde3bfcf0", + "baseline/OI_combined_handoff_2026-10-24_v1/workspace/oi_native_selector_v1/REPORT.md": "9c2a5dcc50c2d83a48616b9756e7b04bea1812ccafd75d1fff497ee151bed1cc", + "baseline/OI_combined_handoff_2026-10-24_v1/workspace/oi_native_x_instrument_v1/REPORT.md": "97005ac530b84710642b85c07c8e5778ab985d528d7aa4597b04c5fc1a3ad736", + "baseline/OI_combined_handoff_2026-10-24_v1/workspace/oi_read_reset_boundary_v1/REPORT.md": "e50b51f0a1e54956065328241654159ce737c37f631026d6bb0f46dcc0b36234", + "handoff/unpacked/OI_native_Y_continuation_handoff_v1/oi_next_cycle_20261024/native_y/REPORT.md": "352b89bb5ade5c8caa3328b0e60529e982ba33ddab90d3ac67dc329fd800c72c" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/REPORT.md new file mode 100644 index 000000000..86c5fbbf8 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/REPORT.md @@ -0,0 +1,220 @@ +# Independent review: unchanged junction and proposed active-sector extension + +24 October 2026. Repository and author files read-only. Review files are confined +to `junction_review_v4/`. No publication, commit, premise adoption, or native-round +certification was performed by this reviewer. + +## Verdict + +**ACCEPT within the stated scope** the unchanged-junction obstruction and its +conditional uniform marginal. The claimed free pivot is outside the inherited +prepared current regions and source/correlation exceptions. Its unique axial +first-arrival dependence is an exact permutation for arbitrary fixed background. + +**ACCEPT as an initial geometric prescription only** the added parity-restricted +extension preserving M2. It leaves all named protected banks and source exceptions +intact and reduces this target's active sector to the six listed current sources +and a zero previous active sector. Its output, operand diagnostics, and complete +joint public-record/carrier law remain **UNEVALUATED**. This acceptance is not a +native reset, a successful repaired junction, or closure of the broad transport +review. + +One issue was found and corrected during review: the inherited torus has odd +side length and is not globally bipartite. The current report correctly restricts +the spacetime-parity argument to the unwrapped no-wrap causal cone. The correction +does not alter the M2 capture conclusion. + +## Reviewed bytes and checkpoint + +The parent identified the reviewed extended checkpoint as +`4f2407732611f9d6c0838a64de8f2226d65eb8e5`. This review binds to these exact local +file bytes; no remote GitHub operation was performed: + +| Author file | SHA-256 | +|---|---| +| `junction_v4/REPORT.md` | `5cce7c933e25cdf493c3d08871de732a6a217189becff82d5ff6642e2b5c0b08` | +| `junction_v4/checks.py` | `588a248c8d00cb23bf90de23dd440401d99f329e75348a7e27ade85bccf21d44` | + +The author normal and `-O` executions match each other and the retained author +outputs. `INPUT-HASHES.json` records the source inventory and other documents +read. The retained 1,479-entry geometry is byte-identical to the accepted native-Y +handoff geometry. Hashes identify inputs and do not by themselves certify every +historical theorem in those inputs. + +## 1. Initial-state inventory and free pivot + +I checked the inventory against these retained sources: + +- Native transfer report, sections 4–5: relocated original X/Y/R/Z/H geometry; + the four translated current radius-S cones and previous radius-(S-1) cones; + H's retained original cones; the unconstrained complement and M/N banks. +- Native selector report, sections 2–5: four current control payloads at + `Q_i+S e_y`, mask correlations, and the four F frontier families. +- Read/reset boundary report, section 3: perpendicular relay cones, retaining + previous readiness/source exceptions. +- Native-X report, collision, remote herald/Z and record sections: the two + radius-R collision cones, two remote radius-R cones, source support, supplied + seed independence, and the enlarged reserved banks. +- Native-Y and v3 geometry reports: the q2 and optional q3 outward ready cones. + The v3 sidecar report explicitly adds no initial region or mirror correlation. + +This confirms the report's fifteen listed current regions. Some are redundant +subsets of later cones, but retaining them in the inventory is harmless. For +`f=(0,-72,70)` their exact slacks are respectively 142 on the original/translated +X,Y,R regions; 3T+142 on the original/translated Z regions; 7T+142 on the relocated +old H region; 6 and 142 on the two collisions; 2 on q2 and optional q3; and +11R+142 on the two remote regions. No current pin contains f. Previous-slice +pins do not constrain a different current coordinate in this specified prior. + +No old source table entry occupies f. The selector controls have z=0, the two +reset pulses have y=S, and remote herald/Z source blocks have x separated by +at least 12R. The M/N/F frontier families do not occupy f. The prior source +correlations are confined to the declared affine source copies and masks; no +mirror-memory constraint was carried into this apparatus. I found no inherited +correlation tying this free complement coordinate to another initial field. + +This distinction matters: absence of a pin alone would not establish independent +uniformity under an arbitrary correlated prior. The deterministic obstruction +uses the allowed independently variable complement coordinate; the stated +probability result additionally uses the explicitly chosen independent-uniform +complement prior. Future extra correlations or initial preparations would need +a fresh analysis. The transfer report permits the uniform independent complement; +it does not force that choice for every conceivable realization. + +As a robustness check, even the generic perpendicular relay centered at +`(0,S,d0)` with radius S+d0 excludes f for every d0>=0: its slack is +142-2d0 for d0<=70 and 2 for d0>=70. Thus retaining any of the earlier generic +positive-z relay cones would not secretly pin f; negative-z relays have slack +142. The original unrelocated Z/H centers, if retained redundantly, also exclude +f. None of this substitutes for the explicit inherited inventory above. + +## 2. Unique-ray dynamics + +Here `s=(0,S-1,70)` and `N=R+3`, so `s=f+N e_y`. With the inherited torus side +`64R+64T+1`, N is less than half the side length. The shortest route is the single +positive-y axial ray, not a tied periodic route. + +At its k-th vertex, the old local term has distance k from f and time k-2; +the five non-predecessor neighbors have distance k+1 and time k-1. Their values +cannot depend on the initial M=U_0(f), whatever their background values are. +The full second-order equation is therefore exactly + + V_k=a_k XOR H(V_(k-1) XOR b_k). + +Every fixed-offset map is bijective on the eight triples. Composing them proves +that U_N(s) is a permutation of M for every fixed complementary phase. This +argument retains all five side neighbors, the old slice, old input, and behind- +front background contributions. It does not apply a linear-superposition rule +inside the nonlinear collision region. + +The source f cannot affect qY at R, q2 through R+2, q3 through R+3, or the earlier +sidecar through R+2. Holding the actual operand or a diagnostic replacement p +fixed is therefore consistent with varying all eight M values. An unrestricted +local terminal code or nonconstant local decoder cannot then be guaranteed to +equal that fixed operand across the allowed complements. History-aware decoding, +later processing, and redesigned initial preparation are not excluded. + +## 3. Probability and history + +If M is independently uniform, each fixed complement gives an exactly uniform +terminal triple. Conditioning on the original input, seeds, established Y +operand, or remote herald is safe because those are functions of the complement +and independent of M. + +The report correctly stops short of conditioning on the entire observed history. +M may be causally relevant to an earlier public port. Conversely, that causal +possibility alone is not proof of a leak, since earlier public words have their +own masks. The older public-history factorization theorem does not automatically +supply a joint theorem for a new output using old random coordinates. + +The independent checker includes a native counterexample to the general faulty +inference: with an isolated uniform initial triple, an earlier axial read and a +later axial read both have uniform marginals but their joint support has only +eight pairs, rather than the sixty-four of an independent product. This is a +logic control, not a claim that those two reads are the actual old protocol. + +## 4. Blanket preparation, parity, and M2 + +The proposed full current/previous cone captures current M1 at distance N-1, +current M2 at distance N, and the old previous input at distance N-2. A blanket +zero prescription would change declared resources and input values. + +The exact local no-wrap spacetime invariant is `sum(v)+t mod 2`. The target has +even parity. Current M1 and the previous origin input belong to the inactive +sector, while current M2 is active. Thus an active-sector prescription can avoid +M1 and the old previous input but must explicitly retain M2. Current M_j for +j>=3 are outside the cone. + +The odd-torus qualification is essential: an edge connecting canonical spatial +coordinates L-1 and 0 on an odd torus preserves spatial parity rather than +flipping it. The unwrapped cone avoids such winding dependence and has a +consistent local lift. Preparation must use this local lift's parity, as in the +corrected report, rather than assert a global two-sector periodic model. + +Capturing M2 does not establish that its actual output contribution is nonzero. +For the isolated pulse its displacement is `(0,S+1,70)`, with +`(S+1)&70=2`, so its shortest-path multiplicity is even. The checker confirms +this cancellation control. Nonlinear interactions with the other retained +sources can invalidate isolated-superposition reasoning; neither deleting M2 +nor treating it as a guaranteed fresh bijective terminal mask is justified. + +## 5. Added initial active-sector prescription + +The new subsection is compatible with the stated inherited resources: + +- In the target's current cone, newly unprepared spatial-even coordinates can + be pinned to zero while preserving all existing sources and M2. +- In its previous cone, newly unprepared spatial-odd coordinates can be pinned + to zero. The old unknown previous origin is spatial-even and is untouched. +- The opposite sector remains unchanged. + +The bank slacks follow directly from their coordinate formulas, for their +specified finite no-wrap index ranges: M_j has slack j-2, N_j has +9T+j-2, the X/Y/R selector frontiers have k, and the Z selector frontier has +3T+k. Remote banks are outside by x separation. Thus only M2 is an active +captured protected frontier. I independently checked all 1,479 old source +entries: only the origin lies in the new current cone, with precisely the B-field +unknown x coefficient. The three relevant selector controls are on its boundary, +the upper pulse is four steps inside, and the Z selector and opposite pulse are +outside. + +Consequently the active target dependency is exactly the six listed current +sources: origin x; three selector controls; upper pulse; and M2. They are all +spatial-even. The active previous sector is zero. This is a finite-speed and +resource-compatibility reduction, not an evaluation of the six-source nonlinear +solution. The unknown origin is two steps behind first arrival at the target, +so a naive sum of isolated-pulse contributions is not valid. + +The new initial constraints preserve the protected variables' initial laws under +the product-complement prior. They do not establish that a new carrier depending +on M2 is independent of the earlier public record, which already uses M2. The +report correctly preserves that obligation. No input-dependent pin, fresh +mid-run resource, or adopted acceptance-rule relaxation is hidden in this +geometric statement. + +## Reproduction + +Run, from any working directory: + + python3 /path/to/junction_review_v4/checks.py + python3 -O /path/to/junction_review_v4/checks.py + +The reviewer checker imports no author dynamics and uses only the standard +library. It verifies the retained geometry SHA-256 and normally reuses +`../../parallel_v3/history_control/SOURCE-GEOMETRY.json` relative to its own +folder. A sibling `SOURCE-GEOMETRY.json` is supported only as an isolated-review +fallback. The public package does not need another copy. It writes nothing and +makes no network calls. It checks: + +- the independent region/source/bank inventory and exact giant-integer slacks; +- all 64 translated H permutations and the general ray dependency distances; +- 126 direct 3-D dense-background cases, each containing all eight pivot values; +- native marginal/history and multi-path cancellation controls; +- the corrected local parity inventory and isolated M2 cancellation; +- the six-source extension inventory and all named bank formulas. + +Normal/-O reviewer outputs match. Author normal/-O outputs also match and +reproduce the retained author output bytes. `INPUT-HASHES.json` and `SHA256SUMS` +record the reviewed inputs and this review's files. These checks support the +analytic arguments; no N-tick simulation, six-source endpoint calculation, +full-history certification, Lean proof, or integrated native reset is claimed. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/SHA256SUMS new file mode 100644 index 000000000..911d62ea6 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/SHA256SUMS @@ -0,0 +1,7 @@ +a88a58d1eb40573f8e0c412b94b9110a32be0d54287cb932dfacb14771ff6b56 INPUT-HASHES.json +6a8c17fa3ca85c5ed34f2c0d076fb7f18fdc686404e0360a40dbd178eaaa08d8 REPORT.md +d6079cc49f2250a003c598a09c7863434fb46600088ae38512767037ad6d9b8d author-normal.out +d6079cc49f2250a003c598a09c7863434fb46600088ae38512767037ad6d9b8d author-optimized.out +9d9c0397bdbd23ccb80c57b9fb48550e51cb128a196d04e0ce5768d6198bcee0 checks.py +602d5940fd8723ebdd2cf5d364e84853f52cb8ce7f634ba8239ecead83a2054b review-normal.out +602d5940fd8723ebdd2cf5d364e84853f52cb8ce7f634ba8239ecead83a2054b review-optimized.out diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/author-normal.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/author-normal.out new file mode 100644 index 000000000..1b48ff3d4 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/author-normal.out @@ -0,0 +1,7 @@ +J1: actual giant-integer geometry; pivot outside all15 ready balls and1479 original sources: PASS +J2: full native update has64 bijective offset maps; only one final neighbor carries the fresh pivot: PASS +J3: 144 direct 3-D dense-background first-arrival cases, all8 pivot values; omitted-background countercontrol: PASS +J4: exact sidecar-plus-six-neighbor identity; nonaxial distance-only claim rejected: PASS +J5: blanket ready extension captures old M1/M2 and unknown previous input; active-parity extension still captures M2: PASS +J6: proposed initial active-sector cone preserves all reserved banks with M2 exception; isolated M2 front cancels, interaction law remains open: PASS +SCOPE: the unchanged proposed junction has no deterministic raw operand or clean code for all allowed backgrounds. Uniform terminal marginal is not a joint-history law. A redesigned prepared junction remains open. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/author-optimized.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/author-optimized.out new file mode 100644 index 000000000..1b48ff3d4 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/author-optimized.out @@ -0,0 +1,7 @@ +J1: actual giant-integer geometry; pivot outside all15 ready balls and1479 original sources: PASS +J2: full native update has64 bijective offset maps; only one final neighbor carries the fresh pivot: PASS +J3: 144 direct 3-D dense-background first-arrival cases, all8 pivot values; omitted-background countercontrol: PASS +J4: exact sidecar-plus-six-neighbor identity; nonaxial distance-only claim rejected: PASS +J5: blanket ready extension captures old M1/M2 and unknown previous input; active-parity extension still captures M2: PASS +J6: proposed initial active-sector cone preserves all reserved banks with M2 exception; isolated M2 front cancels, interaction law remains open: PASS +SCOPE: the unchanged proposed junction has no deterministic raw operand or clean code for all allowed backgrounds. Uniform terminal marginal is not a joint-history law. A redesigned prepared junction remains open. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/checks.py new file mode 100644 index 000000000..2169b256a --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/checks.py @@ -0,0 +1,151 @@ +"""Independent review: free junction pivot, exact native propagation and parity. +No author code imports; source table is retained data only. No writes or network. +""" +from pathlib import Path +from functools import lru_cache +from itertools import product +import json +import hashlib + +def need(value,label): + if not value:raise RuntimeError(label) +T=185;P=12*840**T;S=T+P;d=68;R=S+d;N=R+3 +pivot=(0,-72,70);target=(0,S-1,70) +def length(p,q):return sum(abs(a-b) for a,b in zip(p,q)) +def plus(p,q):return tuple(a+b for a,b in zip(p,q)) +axes=((1,0,0),(-1,0,0),(0,1,0),(0,-1,0),(0,0,1),(0,0,-1)) + +# Inventory independently transcribed from the transfer/selector/X/outward reports. +original={'X':(0,T,0),'Y':(T,0,0),'R':(-T,0,0),'Z':(4*T,0,0),'H':(0,0,-8*T)} +regions=[('old-'+key,c,T) for key,c in original.items()] +regions += [('relay-'+key,plus(c,(0,P,0)),S) for key,c in original.items() if key!='H'] +regions += [('collision+', (0,S,d),R),('collision-',(0,S,-d),R), + ('out2',(0,S,d+2),R+2),('out3',(0,S,d+3),R+3), + ('herald',(12*R,0,0),R),('privateZ',(-12*R,0,0),R)] +slacks={name:length(pivot,c)-r for name,c,r in regions} +need(len(slacks)==15,'15 inventoried regions') +for name in ('old-X','old-Y','old-R','relay-X','relay-Y','relay-R'):need(slacks[name]==142,'original/relay slack') +need(slacks['old-Z']==slacks['relay-Z']==3*T+142,'Z slack') +need(slacks['old-H']==7*T+142,'oldH slack') +need((slacks['collision+'],slacks['collision-'],slacks['out2'],slacks['out3'])==(6,142,2,2),'collision/outward slack') +need(slacks['herald']==slacks['privateZ']==11*R+142,'remote slack') +need(all(v>0 for v in slacks.values()),'free pivot') +# Even every generic perpendicular relay d0 >=0 would leave this pivot outside. +for d0 in (0,1,6,68,70,71,184,185,R): + need(length(pivot,(0,S,d0))-(S+d0)==(142-2*d0 if d0<=70 else 2),'generic +relay slack') + need(length(pivot,(0,S,-d0))-(S+d0)==142,'generic -relay slack') +geometry_path=(Path(__file__).resolve().parent/'../../parallel_v3/history_control/SOURCE-GEOMETRY.json').resolve() +if not geometry_path.is_file():geometry_path=Path(__file__).with_name('SOURCE-GEOMETRY.json') +geometry_bytes=geometry_path.read_bytes() +need(hashlib.sha256(geometry_bytes).hexdigest()=='2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d','retained source geometry digest') +geometry=json.loads(geometry_bytes) +need(len(geometry['sources'])==1479,'source count') +need(all(tuple(v['position'])!=pivot for v in geometry['sources']),'not an original affine source') +# All old/selector banks have z=0 or negative z; remote banks are x-separated. +need(pivot[2]>0 and pivot[1]!=0,'not in Mj/Nj/Fik banks') +controls=[(0,2*S,0),(T,P+S,0),(-T,P+S,0),(4*T,P+S,0),(0,S,S+2*d),(0,S,-S-2*d)] +need(pivot not in controls,'not a control or pulse') +need(length(pivot,target)==N and plus(pivot,(0,N,0))==target,'unique positive-y ray') +L=64*R+64*T+1 +need(L>2*N and L%2==1,'odd torus with no competing short winding ray') +for centre,deadline in (((0,S,d),R),((0,S,d+2),R+2),((0,S,d+3),R+3),(target,R+2)): + need(length(pivot,centre)>deadline,'accepted earlier endpoint unaffected') +print('V1: independent ready/source/bank inventory; all15 exact slacks; pivot free even with q3 extension; no-wrap axial path: PASS') + +# Literal permutation table: integer encoding A=bit0, B=bit1, D=bit2. +H=(0,4,1,5,2,6,7,3) +for a,b in product(range(8),repeat=2): + need(len({a^H[m^b] for m in range(8)})==8,'all offset maps invertible') +# General ray geometry for every k follows from one affine coordinate identity; +# instantiate endpoints, near endpoint, and both huge indices. +for k in (1,2,3,T,R,N): + v=plus(pivot,(0,k,0)) + need(length(pivot,v)>k-2,'old term outside pivot cone') + for e in axes: + need(length(pivot,plus(v,e))==(k-1 if e==(0,-1,0) else k+1),'only predecessor can depend on pivot') +print('V2: all64 translated H maps bijective; complete ray old/five-neighbor independence distances: PASS') + +# Independent dense-background native recursion with eight scalar-state lanes. +def dense(seed): + def background(t,v): + a,b,c=v;n=(a*131+b*593+c*1297+t*2017+seed*7919) + return ((n*n+17*n+23*seed)^(n>>2))&7 + @lru_cache(None) + def evolve(t,v): + if t==0 and v==(0,0,0):return tuple(range(8)) + if t in (-1,0):return (background(t,v),)*8 + neighbours=[evolve(t-1,plus(v,e)) for e in axes] + old=evolve(t-2,v) + out=[] + for lane in range(8): + z=0 + for n in neighbours:z ^= n[lane] + out.append(old[lane]^H[z]) + return tuple(out) + return evolve +cases=0;changed=0 +for seed in (2,7,19): + at=dense(seed) + for e in axes: + bare=tuple(range(8)) + for k in range(1,8): + pos=tuple(k*a for a in e);old=at(k-2,pos) + others=[at(k-1,plus(pos,w)) for w in axes if w!=tuple(-a for a in e)] + need(len(set(old))==1 and all(len(set(v))==1 for v in others),'offsets independent of pivot') + value=at(k,pos);need(set(value)==set(range(8)),'native dense-background permutation') + bare=tuple(H[v] for v in bare);changed += value!=bare;cases+=1 +need(changed>0,'offset-free shortcut must fail') +print('V3: %d independent dense3D native ray cases,all8 pivots; background offsets matter: PASS'%cases) + +# A native counterexample to inferring full-history law from a uniform marginal. +@lru_cache(None) +def clean(t,v): + if t<0 or sum(map(abs,v))>t:return (0,)*8 + if t==0:return tuple(range(8)) if v==(0,0,0) else (0,)*8 + old=clean(t-2,v);ns=[clean(t-1,plus(v,e)) for e in axes] + out=[] + for lane in range(8): + z=0 + for w in ns:z^=w[lane] + out.append(old[lane]^H[z]) + return tuple(out) +record=clean(1,(0,1,0));terminal=clean(2,(0,2,0)) +need(len(set(record))==len(set(terminal))==8,'both marginally uniform') +need(len(set(zip(record,terminal)))==8,'joint not uniform product64') +need(clean(2,(1,1,0))==(0,)*8,'two shortest paths cancel') +print('V4: native marginal-vs-history and multiple-path cancellation countercontrols: PASS') + +# Local no-wrap parity only: odd periodic lattices have wrap edges violating it. +def parity(v,t):return (sum(v)+t)%2 +need(parity(target,N)==0,'active target parity') +for p,t,expected in (((0,-1,0),0,1),((0,-2,0),0,0),((0,0,0),-1,1)): + need(parity(p,t)==expected,'resource parity') +need(length((0,-1,0),target)==N-1 and length((0,-2,0),target)==N,'old current frontier capture') +need(length((0,0,0),target)==N-2,'old previous input capture') +for j in (3,4,N):need(length((0,-j,0),target)==N+j-2>N,'later Mj outside') +need(((L-1)+0)%2==0 and (0+1)%2==1,'odd wrap edge violates global spacetime sector') +# Capturing M2 does not imply a nonzero isolated pulse arrival. +parts=(S+1,70) +need((parts[0]&parts[1])==2,'M2 two-coordinate path parity overlap') +need(sum(q.bit_count() for q in parts)>sum(parts).bit_count(),'isolated M2 shortest-path count even') +print('V5: active local parity excludes M1/old previous input but retains M2; global odd-torus qualification necessary; isolated M2 arrival cancels: PASS') + +# New initial prescription: active current spatial-even and previous spatial-odd. +inside=[row for row in geometry['sources'] if length(tuple(row['position']),target)<=N] +need(len(inside)==1 and inside[0]['position']==[0,0,0] and inside[0]['field']==1 and inside[0]['mask']==64,'only original x-B source remains') +exceptions=[(0,0,0),(0,2*S,0),(T,P+S,0),(-T,P+S,0),(0,S,S+2*d),(0,-2,0)] +need(len(set(exceptions))==6 and all(parity(v,0)==0 for v in exceptions),'six distinct active current exceptions') +need([length(v,target)-N for v in exceptions]==[-2,0,0,0,-4,0],'exact six-source distances') +need(length((4*T,P+S,0),target)==N+3*T,'Z selector outside') +need(length((0,S,-S-2*d),target)==N+2*d,'opposite pulse outside') +for j in (1,2,3,70,T,P,R): + need(length((0,-j,0),target)-N==j-2,'Mj slack identity') + need(length((0,0,-9*T-j),target)-N==9*T+j-2,'Nj slack identity') + for key,c in original.items(): + if key=='H':continue + f=plus(c,(0,P+S+j,0)) + need(length(f,target)-N==j+(3*T if key=='Z' else 0),'Fik slack identity') +need(12*R>N,'all remote source/bank x separation') +need(parity((0,0,0),-1)==1,'previous unknown input inactive') +print('V6: new initial active-sector prescription preserves source exceptions and all named banks; exactly6 current sources and zero active previous sector: PASS') +print('VERDICT: ACCEPT unchanged-junction obstruction and compatible initial geometry only; extended output, joint-history law, and integrated reset remain OPEN.') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/review-normal.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/review-normal.out new file mode 100644 index 000000000..9da639d04 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/review-normal.out @@ -0,0 +1,7 @@ +V1: independent ready/source/bank inventory; all15 exact slacks; pivot free even with q3 extension; no-wrap axial path: PASS +V2: all64 translated H maps bijective; complete ray old/five-neighbor independence distances: PASS +V3: 126 independent dense3D native ray cases,all8 pivots; background offsets matter: PASS +V4: native marginal-vs-history and multiple-path cancellation countercontrols: PASS +V5: active local parity excludes M1/old previous input but retains M2; global odd-torus qualification necessary; isolated M2 arrival cancels: PASS +V6: new initial active-sector prescription preserves source exceptions and all named banks; exactly6 current sources and zero active previous sector: PASS +VERDICT: ACCEPT unchanged-junction obstruction and compatible initial geometry only; extended output, joint-history law, and integrated reset remain OPEN. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/review-optimized.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/review-optimized.out new file mode 100644 index 000000000..9da639d04 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/junction_v4/review/review-optimized.out @@ -0,0 +1,7 @@ +V1: independent ready/source/bank inventory; all15 exact slacks; pivot free even with q3 extension; no-wrap axial path: PASS +V2: all64 translated H maps bijective; complete ray old/five-neighbor independence distances: PASS +V3: 126 independent dense3D native ray cases,all8 pivots; background offsets matter: PASS +V4: native marginal-vs-history and multiple-path cancellation countercontrols: PASS +V5: active local parity excludes M1/old previous input but retains M2; global odd-torus qualification necessary; isolated M2 arrival cancels: PASS +V6: new initial active-sector prescription preserves source exceptions and all named banks; exactly6 current sources and zero active previous sector: PASS +VERDICT: ACCEPT unchanged-junction obstruction and compatible initial geometry only; extended output, joint-history law, and integrated reset remain OPEN. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/PLAN.md new file mode 100644 index 000000000..4e48b78e2 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/PLAN.md @@ -0,0 +1,43 @@ +# Alternative simultaneous first-front fanout + +Decision rule before the new probe: choose k=9,r=k+1 and three endpoints +p_delta=(r,S-delta,68+k+delta-r), delta=r+1,r+2,r+3, at L=R+k. +Check every inherited source and frontier family against their initial +current/previous dependency cones. Retain only a family with the original +unknown x source and W on the first front and every other prior source +strictly excluded. Analyze their full coupled first-front recurrence, never +linear superposition. For a finite transverse strip, prove a sufficient +period dividing the actual P before reducing its longitudinal coordinate. + +If its two x outputs differ, construct one independent seed-only boundary +pulse at p_delta+L e_x. Derive its two payloads for u XOR mask so the entire +output is a fixed two-code encoding of x XOR u XOR mask. Test all x,u and +fresh masks jointly; verify that pulses cannot reach each other's outputs or +old informative endpoints by their deadlines and do not consume frontier +coordinates. Require full triple output, blank receiver prefixes, and no +initial copy of unknown x. + +Control the first-front recurrence against direct native dynamics at bounded +coordinates, including arbitrary old input triples and the W/origin collision. +A positive family is native-family recomputation from original x plus u, not +an arbitrary late-q8 operand socket. Test and state that distinction explicitly. +A herald, Z carrier and full whole-history law remain separate obligations +until integrated. No premise, access or acceptance rule is changed. + +The initial three-endpoint probe gave indistinguishable x outputs at delta11 +and delta12, and distinct outputs at delta13. Before further computation, +extend only delta to 11..24 with r=10 and L=R+9 fixed. This is a finite +14-endpoint census, not an open-ended search. Its largest strip has176 triples; +the sufficient period384*840^176 divides P. Keep the original failures in the +result. Select three distinct surviving endpoints only if the full inherited +source, frontier and mutual-pulse geometry checks pass. + +Geometry correction before accepting any positive construction: the +x seed +source reaches the old selector-Z port before its informative deadline. +Reject that source direction. For the -x direction, the source meets the +origin/W front at x=0 and then has eleven coupled updates; replacing this +by a last-tick pulse is invalid. Enumerate all eight payloads under that exact +axis recurrence. Seek two-cycles of the x0/x1 relative permutation. If none +exist, record its full cycle structure and test the stronger law-level +obstruction for arbitrary correlated seed-only payload distributions. +No further endpoints beyond the fourteen fixed above are added in this probe. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/REPORT.md new file mode 100644 index 000000000..b732a2b1d --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/REPORT.md @@ -0,0 +1,179 @@ +# Alternative remote fanout: source-direction and odd-cycle obstructions + +Research result, not a new reset. A bounded alternative to the late-q8 fork +tries to reconstruct y=x XOR u from the original unknown x wave and apparatus +seed u at several remote outputs simultaneously. The apparent positive seed +direction violates an old informative-record cone. The safe opposite direction +has an exact order-three obstruction to a common full raw output law for y. +These results close only the fourteen-endpoint family stated below. + +## Candidate and original-source geometry + +Keep T=185, P=12*840^185, S=T+P, R=S+68 and the existing W=111 source at +(0,-76,76). Set L=R+9. The examined endpoints are + + p_delta = (10,S-delta,67+delta), delta=11,...,24. + +They lie on the time-L first fronts of the original input source (0,x,0) +at the origin and W. Each proposed current ready ball has radius L and each +previous ready ball radius L-1, retaining the sources. The unknown previous +input at the origin lies outside every previous ready ball. No unknown x +is copied or preloaded into the new apparatus. + +All 1,479 retained original source entries were checked against all fourteen +endpoints. Only the original input origin is at distance at most L, at equality; +every other original source lies strictly outside. All four selector-mask +sources, the original positive/negative upper pulses, C, G and the later J +source also lie outside. Old remote herald/Z programs are separated by their +x coordinates. This is the actual retained source geometry, not an isolated +origin surrogate. The seven full frontier families through L are outside +every new current ready ball, by exact affine-distance bounds. Existing +source exceptions remain preserved and no reserved frontier bit is pinned. + +The fixed native rule is H(A,B,D)=(B,D,A XOR BD), with the old-local XOR term. +On a first front the old-local slice and positive-direction neighbors have +not yet arrived. The origin and W waves nevertheless interact with each +other, so their separate pulses cannot be superposed. + +## Exact coupled strip and the enormous time + +Write F(r,j,k) for the native field at (r,j,76+k), time r+j+76+k, with only +the origin/W sources in its dependency cone. For j>=0, r,k>=0, + + F(r,j,k) = H(F(r-1,j,k) XOR F(r,j-1,k) XOR F(r,j,k-1)). + +The r=-1 term is zero. The k=-1 boundary is the origin-only first front: +H^(r+j+75)(0,x,0) times the binary multinomial parity for (r,j,75). +The j=-1 initial boundary is the W-only first front: +H^(r+75+k)(111) times the parity for (r,75,k). +These parity rules mean pairwise-disjoint binary digits, not real-valued +superposition. Every nonlinear collision in the finite strip is retained. + +The relevant strip is 0<=r<=10, 0<=k<=15: 176 triple variables. Its external +forcing has period 384=lcm(128,12). Each one-step strip update is triangular +in increasing r+k, with a permutation of eight values on each diagonal. +The same holds for a 384-step block. Inductively, a triangular permutation +on N eight-valued coordinates has order dividing 840^N: after the lower +coordinates repeat, at most a factor lcm(1,...,8)=840 restores the next one. +Hence 384*840^176 is a sufficient sequence period. The actual P is divisible +by this integer, checked exactly, so j=P+185-delta reduces to 185-delta. +This is a written exact periodicity argument, not an extrapolation from a +smaller substitute P. It makes no minimal-period assertion. + +Without an additional masking source, only delta13,17,21 distinguish x: + +| delta | Full output for x=0 | Full output for x=1 | +| --- | --- | --- | +| 13 | 000 | 101 | +| 17 | 000 | 111 | +| 21 | 000 | 101 | + +All eleven other endpoints give 000 for both inputs. This by itself cannot +produce y=x XOR u, nor any fresh post-Y distribution. + +## Why the tempting positive direction is invalid + +A source at B_plus=p_delta+L e_x would first interact with the origin/W front +at the final tick. Its two seed-dependent payloads can algebraically translate +the distinguishable input pair into a fixed XOR code. However, its distance +to the old selector-Z public port (4T,P,0) is S-401, so it can arrive **401 +ticks before the informative deadline S**. It conflicts with that earlier +ready/record cone. The isolated final-collision formula is consequently not +an accepted native extension of the existing apparatus. No positive result +from this invalid geometry is retained as a construction. + +## The safe direction and its actual collision + +Instead put B_minus=p_delta-L e_x. These sources are outside every old +informative deadline cone and cannot change earlier q8. They do not coincide +with the old bank: their x coordinate is below -T, whereas the old ray x +coordinates are 0, +/-T, 4T or positive near 12R. Different delta sources +are at distance L+2|delta_i-delta_j| from each other's endpoints and so do +not couple to the other new outputs by L. + +This direction is not a final-tick collision. It meets the origin/W front at +x=0, time L-10, and then undergoes eleven coupled native updates. For a seed +payload b, its exact axis recurrence is + + C_-1 = H^(L-11)(b), + C_s = H(C_(s-1) XOR F(s,j-1,k) XOR F(s,j,k-1)), s=0,...,10, + +with j=S-delta and k=delta-9. The off-axis terms cannot yet depend on b, +because b has a unique straight first-arrival path. Its full output is C_10. +For each fixed x this is a permutation A_x of the eight possible payloads. + +All sixteen payload/input cases are evaluated at every endpoint. For the +relative permutation A_0^-1 A_1, every cycle has length one or three. At the +three informative endpoints the cycle type is 3+3+1+1; at the other eleven +it is the identity. None has a two-cycle. Thus no two apparatus payloads, +selected by u XOR mask, give two distinct common full-triple codes for +x XOR u XOR mask. A checker positive control with a genuine XOR translation +finds all four expected code pairs, so the absence is not a vacuous search. + +## Stronger full-law obstruction in this family + +The result also excludes repairing these endpoints by randomly mixing +payloads, correlating their seeds, or adding a herald depending only on those +apparatus seeds and u. Let A_x be the simultaneous response permutation on +all selected endpoint payloads. Cross-exclusion makes it the product of the +individual A_x maps, so T=A_0^-1 A_1 has T^3=id. Let nu_0,nu_1 be arbitrary +accepted payload laws for u=0,1, independent of unknown x. Allow arbitrary +correlation among the payloads; a seed-only herald just changes these laws. + +For full raw output laws to depend only on y=x XOR u, the four histories +would require + + A_0 nu_0 = A_1 nu_1 = mu_0, + A_1 nu_0 = A_0 nu_1 = mu_1. + +Applying A_0^-1 gives nu_0=T nu_1 and nu_1=T nu_0, hence T^2 nu_0=nu_0. +Since T^3=id, this implies T nu_0=nu_0 and therefore mu_0=mu_1. The two Y +outcomes cannot be distinguished by any fixed decoder of the entire offered +output. A separate independent Z sample cannot cure this, since it adds an +identity factor. The statement concerns full raw laws, not only one decoded +marginal. An input-coupled herald, other sources, endpoints or dynamics are +outside this result; no general reset impossibility is claimed. + +## Actual-q8 operand boundary + +Every examined endpoint is farther than one lattice step from q8 at R+8. +Changing only q8's observed Y component at that time therefore cannot affect +these outputs at L=R+9. This avenue deliberately reconstructs the native +relation x XOR u from the original source and would fail a demanded late-q8 +operand intervention even if its other problems were removed. It must not be +presented as a reusable q8 socket. The unchanged target or its acceptance +rule is not relaxed by considering this alternative. + +## Evidence and next wall + +`PLAN.md` records the initial three-endpoint family, the finite extension to +fourteen after its failures, and the source-direction correction. The final +checker reports 20,706 inherited-source comparisons, 98 full frontier-family +exclusions, every payload table/cycle and exact P divisibility. Its separate +direct six-neighbor native recursion checks 3,072 scalar cases at bounded +coordinates, including all W values, all new payloads and arbitrary previous +input triples. It matches the coupled recurrence and detects 768 failures of +the false last-tick-collision shortcut. Blank prefixes are checked there; +actual-parameter blank prefixes follow from the proved first-arrival cones. +Normal and optimized replays match `results.json` byte-for-byte. + +The next construction must change this explicit remote family, use a genuinely +input-coupled mechanism, or continue with the actual q8/q9 two-slice interface. +This result does not constrain those alternatives. No calibrated reset, +new herald, native full-carrier output, target extension or premise is adopted. + +## Provenance and replay + +The existing source census is +`parallel_v3/history_control/SOURCE-GEOMETRY.json` under the #910 native-Y +continuation namespace, SHA-256 +`2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d`. +The checker verifies that hash and imports no previous evaluator. The original +input/selector/upper/W source coordinates are the retained native geometry; +the remote source programs are excluded by their entire coordinate ranges. + +From the retained `layout_v10` directory run `python3 checks.py` and +`python3 -O checks.py`; both must match `results.json`. An explicit +`--geometry path` can point at the same hash-pinned census in a sparse copy. +This is exact finite computation plus written geometry/group arguments, +not Lean certification, a dispatch attestation or a full-equivalence result. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/SHA256SUMS new file mode 100644 index 000000000..bc783d1f4 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/SHA256SUMS @@ -0,0 +1,4 @@ +b7c4426cba1b9e9e8c4d9cb2217a3bd0f6f0f63eab539b61020c76358d711d11 PLAN.md +168a02da3a040f8d9725ed81a602d44f25d057cc51fd85cab025e10c49b7c5ab REPORT.md +46d229aab89e0d2166329df4bdf3bfbcfdfa4e484b4567f6788ed47566932396 checks.py +364b976b7a57cebd42081b7b269e380930abe33264fade4658f6222e345a9f83 results.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/checks.py new file mode 100644 index 000000000..b22f35474 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/checks.py @@ -0,0 +1,164 @@ +#!/usr/bin/env python3 +"""Exact bounded alternate-front probe. No native baseline code imported.""" +import argparse,hashlib,json +from pathlib import Path +from functools import lru_cache +from itertools import product + +ZERO=(0,0,0);BITS=tuple(product((0,1),repeat=3)) +T=185;P=12*840**T;S=T+P;R=S+68;L=R+9 + +def need(ok,msg): + if not ok:raise RuntimeError(msg) + +def H(q):a,b,c=q;return b,c,a^(b&c) +def hp(q,n): + for _ in range(n%12):q=H(q) + return q + +def xor(*vs):return tuple(__import__('functools').reduce(int.__xor__,(v[k] for v in vs),0) for k in range(3)) +def odd(*coords): + taken=0 + for q in coords: + if taken&q:return False + taken|=q + return True + +def dist(a,b):return sum(abs(x-y) for x,y in zip(a,b)) + +def front(x,W,m,rmax,kmax,jmax): + old={(r,k):hp(W,r+m-1+k) if odd(r,m-1,k) else ZERO for r in range(rmax+1) for k in range(kmax+1)} + result={-1:old} + for j in range(jmax+1): + now={} + for r in range(rmax+1): + for k in range(kmax+1): + down=now[r,k-1] if k else hp((0,x,0),r+j+m-1) if odd(r,j,m-1) else ZERO + now[r,k]=H(xor(old[r,k],now.get((r-1,k),ZERO),down)) + old=now;result[j]=now + return result + +def driven(F,x,W,m,r,j,k,deadline,payload): + state=hp(payload,deadline-r-1) + for a in range(r+1): + down=F[j][a,k-1] if k else hp((0,x,0),a+j+m-1) if odd(a,j,m-1) else ZERO + state=H(xor(state,F[j-1][a,k],down)) + return state + +def cycles(perm): + unseen=set(range(len(perm)));out=[] + while unseen: + start=min(unseen);path=[];v=start + while v in unseen:unseen.remove(v);path.append(v);v=perm[v] + need(v==start,'permutation cycle closure');out.append(path) + return out + +def geometry(path): + raw=path.read_bytes() + need(hashlib.sha256(raw).hexdigest()=='2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d','inherited source geometry digest') + source=json.loads(raw);sources=source['sources'] + need(len(sources)==1479,'retained source census') + ps=[(0,T,0),(0,0,-8*T),(T,P,0),(-T,P,0),(4*T,P,0),(0,S,0),(12*R,0,0)] + deadlines=[T,T,S,S,S,S,R] + rays=[(0,-1,0),(0,0,-1),(0,1,0),(0,1,0),(0,1,0),(0,1,0),(-1,0,0)] + added=[(0,2*S,0),(T,S+P,0),(-T,S+P,0),(4*T,S+P,0), + (0,S,S+136),(0,S,-S-136),(0,S,S+150),(0,S,S+152),(0,S,S+154)] + targets=[(10,S-delta,67+delta) for delta in range(11,25)] + minus=[(q[0]-L,q[1],q[2]) for q in targets] + count=0;bankchecks=0 + for q,B in zip(targets,minus): + need(dist(q,(0,0,0))==dist(q,(0,-76,76))==L,'two actual first fronts') + need(B[0]<-T,'minus source x excludes every old bank ray') + for row in sources: + d=dist(q,row['position']) + need(d==L if row['owner']=='input' else d>L,'all inherited source exclusions') + count+=1 + need(all(dist(q,p)>L for p in added),'all later control/source exclusions') + need(all(dist(B,p)>a for p,a in zip(ps,deadlines)),'minus-x preserves public deadlines') + need(dist(B,(0,S,76))>R+8,'minus-x preserves q8') + for p,a,e in zip(ps,deadlines,rays): + axis=next(i for i,b in enumerate(e) if b) + ts={a+1,L};critical=(q[axis]-p[axis])*e[axis] + if a+1<=critical<=L:ts.add(critical) + for t in ts: + f=tuple(c+t*b for c,b in zip(p,e)) + need(dist(f,q)>L,'whole frontier family outside new ready cone') + need(f!=B,'new source does not overwrite bank') + bankchecks+=1 + # Entire new current cone is below x=~L while the old remote programs + # lie at x>=12R or x<=-12R. The inherited source list covers the rest. + need(12*R-q[0]>L and q[0]+12*R>L,'old remote programs excluded') + for other,Bother in zip(targets,minus): + if other!=q:need(dist(Bother,q)>L,'simultaneous mask paths do not cross') + q=targets[2];Bplus=(q[0]+L,q[1],q[2]) + slack=dist(Bplus,ps[4])-S + need(slack==-401,'positive-x source violates old Z informative cone') + need(all(dist(q,(0,S,76))>1 for q in targets),'late-q8 substitution cannot reach endpoints') + return {'source_sha256':hashlib.sha256(raw).hexdigest(),'original_source_tests':count, + 'frontier_family_exclusions':bankchecks,'plus_x_old_Z_deadline_slack':slack, + 'minus_x_source_geometry':'PASS','q8_operand_socket':'EXCLUDED_BY_LIGHT_CONE'} + +def native_controls(): + # Exact direct recurrence on1024 packed assignments includes arbitrary W, + # arbitrary previous-origin triple and all8 new source payloads. + rows=list(product((0,1),BITS,BITS,BITS));full=(1<t and dist(p,(0,0,0))>t+1:return ZERO + ns=[] + for axis in range(3): + for direction in (-1,1): + w=list(p);w[axis]+=direction;ns.append(field(t-1,tuple(w))) + return xor(field(t-2,p),H(xor(*ns))) + got=field(D,end) + need(field(D-1,end)==ZERO,'blank native prefix') + Fs={(x,w):front(x,w,m,r,k,j) for x,w in product((0,1),BITS)} + for lane,(x,w,b,previous) in enumerate(rows): + want=driven(Fs[x,w],x,w,m,r,j,k,D,b) + actual=tuple((z>>lane)&1 for z in got) + need(actual==want,'independent native recurrence vs coupled axis model');checks+=1 + # A late-pulse surrogate neglects genuine earlier intersections. + isolated=H(xor(hp(Fs[x,w][j][r,k],11),hp(b,D-1))) + nonlinear+=actual!=isolated + need(nonlinear>0,'isolated late-collision shortcut rejected') + return {'direct_scalar_comparisons':checks,'late_collision_shortcut_mismatches':nonlinear} + +def census(): + N=11*16 + need(P%(384*840**N)==0,'actual P divisible by proved triangular period') + for r,j in product(range(11),range(384)): + need(odd(r,j,75)==odd(r,j+384,75),'forcing parity period') + need((r+j+75)%12==(r+j+384+75)%12,'forcing H phase') + F=[front(x,(1,1,1),76,10,15,174) for x in (0,1)] + result=[] + for delta in range(11,25): + j=185-delta;k=delta-9 + maps=[[driven(F[x],x,(1,1,1),76,10,j,k,L,b) for b in BITS] for x in (0,1)] + need(all(len(set(t))==8 for t in maps),'each native payload map a permutation') + perm=[maps[0].index(q) for q in maps[1]] + c=cycles(perm) + need(all(len(v) in (1,3) for v in c),'relative permutation has odd order dividing3') + pairs=[(a,b) for a in range(8) for b in range(a+1,8) if maps[0][a]==maps[1][b] and maps[1][a]==maps[0][b] and maps[0][a]!=maps[1][a]] + need(not pairs,'no common full-triple XOR code') + result.append({'delta':delta,'uncontrolled_x_outputs':[F[x][j][10,k] for x in (0,1)], + 'payload_maps':maps,'relative_cycles':c,'common_XOR_pairs':pairs}) + # Positive countercontrol: the same pair predicate accepts true XOR maps. + a=list(BITS);b=[xor(v,(0,0,1)) for v in BITS] + positive=[(i,j) for i in range(8) for j in range(i+1,8) if a[i]==b[j] and b[i]==a[j] and a[i]!=b[i]] + need(len(positive)==4,'XOR-code search positive control') + return result + +if __name__=='__main__': + ap=argparse.ArgumentParser();ap.add_argument('--geometry',type=Path,default=Path(__file__).resolve().parent.parent/'parallel_v3/history_control/SOURCE-GEOMETRY.json');args=ap.parse_args() + g=geometry(args.geometry);c=native_controls();rows=census() + print(json.dumps({'schema':'oi-alternate-front-v10-v1','geometry':g,'native_controls':c,'census':rows, + 'period_cells':176,'period_divisor':'384*840^176','controls_passed':True, + 'verdict':'PLUS_X_GEOMETRY_REJECTED; MINUS_X_FULL_LAW_XOR_ENCODING_EXCLUDED_IN14_ENDPOINT_FAMILY'},indent=2,sort_keys=True)) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/results.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/results.json new file mode 100644 index 000000000..05d22d885 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/results.json @@ -0,0 +1,1789 @@ +{ + "census": [ + { + "common_XOR_pairs": [], + "delta": 11, + "payload_maps": [ + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ], + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ] + ], + "relative_cycles": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ] + ], + "uncontrolled_x_outputs": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ] + }, + { + "common_XOR_pairs": [], + "delta": 12, + "payload_maps": [ + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ], + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ] + ], + "relative_cycles": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ] + ], + "uncontrolled_x_outputs": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ] + }, + { + "common_XOR_pairs": [], + "delta": 13, + "payload_maps": [ + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 1, + 1 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 0, + 1 + ] + ], + [ + [ + 1, + 0, + 1 + ], + [ + 0, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ] + ] + ], + "relative_cycles": [ + [ + 0, + 7, + 3 + ], + [ + 1, + 4, + 2 + ], + [ + 5 + ], + [ + 6 + ] + ], + "uncontrolled_x_outputs": [ + [ + 0, + 0, + 0 + ], + [ + 1, + 0, + 1 + ] + ] + }, + { + "common_XOR_pairs": [], + "delta": 14, + "payload_maps": [ + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ], + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ] + ], + "relative_cycles": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ] + ], + "uncontrolled_x_outputs": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ] + }, + { + "common_XOR_pairs": [], + "delta": 15, + "payload_maps": [ + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ], + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ] + ], + "relative_cycles": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ] + ], + "uncontrolled_x_outputs": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ] + }, + { + "common_XOR_pairs": [], + "delta": 16, + "payload_maps": [ + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ], + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ] + ], + "relative_cycles": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ] + ], + "uncontrolled_x_outputs": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ] + }, + { + "common_XOR_pairs": [], + "delta": 17, + "payload_maps": [ + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 1, + 1 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 0, + 1 + ] + ], + [ + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 1 + ], + [ + 0, + 0, + 1 + ], + [ + 0, + 0, + 0 + ] + ] + ], + "relative_cycles": [ + [ + 0, + 5, + 7 + ], + [ + 1, + 2, + 6 + ], + [ + 3 + ], + [ + 4 + ] + ], + "uncontrolled_x_outputs": [ + [ + 0, + 0, + 0 + ], + [ + 1, + 1, + 1 + ] + ] + }, + { + "common_XOR_pairs": [], + "delta": 18, + "payload_maps": [ + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ], + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ] + ], + "relative_cycles": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ] + ], + "uncontrolled_x_outputs": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ] + }, + { + "common_XOR_pairs": [], + "delta": 19, + "payload_maps": [ + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ], + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ] + ], + "relative_cycles": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ] + ], + "uncontrolled_x_outputs": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ] + }, + { + "common_XOR_pairs": [], + "delta": 20, + "payload_maps": [ + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ], + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ] + ], + "relative_cycles": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ] + ], + "uncontrolled_x_outputs": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ] + }, + { + "common_XOR_pairs": [], + "delta": 21, + "payload_maps": [ + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 1, + 1 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 0, + 1 + ] + ], + [ + [ + 1, + 0, + 1 + ], + [ + 0, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ] + ] + ], + "relative_cycles": [ + [ + 0, + 7, + 3 + ], + [ + 1, + 4, + 2 + ], + [ + 5 + ], + [ + 6 + ] + ], + "uncontrolled_x_outputs": [ + [ + 0, + 0, + 0 + ], + [ + 1, + 0, + 1 + ] + ] + }, + { + "common_XOR_pairs": [], + "delta": 22, + "payload_maps": [ + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ], + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ] + ], + "relative_cycles": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ] + ], + "uncontrolled_x_outputs": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ] + }, + { + "common_XOR_pairs": [], + "delta": 23, + "payload_maps": [ + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ], + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ] + ], + "relative_cycles": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ] + ], + "uncontrolled_x_outputs": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ] + }, + { + "common_XOR_pairs": [], + "delta": 24, + "payload_maps": [ + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ], + [ + [ + 0, + 0, + 0 + ], + [ + 0, + 1, + 0 + ], + [ + 1, + 0, + 0 + ], + [ + 1, + 1, + 0 + ], + [ + 0, + 0, + 1 + ], + [ + 1, + 1, + 1 + ], + [ + 0, + 1, + 1 + ], + [ + 1, + 0, + 1 + ] + ] + ], + "relative_cycles": [ + [ + 0 + ], + [ + 1 + ], + [ + 2 + ], + [ + 3 + ], + [ + 4 + ], + [ + 5 + ], + [ + 6 + ], + [ + 7 + ] + ], + "uncontrolled_x_outputs": [ + [ + 0, + 0, + 0 + ], + [ + 0, + 0, + 0 + ] + ] + } + ], + "controls_passed": true, + "geometry": { + "frontier_family_exclusions": 98, + "minus_x_source_geometry": "PASS", + "original_source_tests": 20706, + "plus_x_old_Z_deadline_slack": -401, + "q8_operand_socket": "EXCLUDED_BY_LIGHT_CONE", + "source_sha256": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d" + }, + "native_controls": { + "direct_scalar_comparisons": 3072, + "late_collision_shortcut_mismatches": 768 + }, + "period_cells": 176, + "period_divisor": "384*840^176", + "schema": "oi-alternate-front-v10-v1", + "verdict": "PLUS_X_GEOMETRY_REJECTED; MINUS_X_FULL_LAW_XOR_ENCODING_EXCLUDED_IN14_ENDPOINT_FAMILY" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/review/INPUT-HASHES.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/review/INPUT-HASHES.json new file mode 100644 index 000000000..956853ead --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/review/INPUT-HASHES.json @@ -0,0 +1,29 @@ +{ + "author_commit": "8dc85bce24569a2ee80e8150d2aa7e05ac24f540", + "files": { + "../parallel_v3/history_control/SOURCE-GEOMETRY.json": { + "git_blob": "cbdfa58866ca1661c159246af175dd36eb99d6de", + "sha256": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d" + }, + "PLAN.md": { + "git_blob": "4e48b78e2445714f199804f56a5d79ec1dd0c7a9", + "sha256": "b7c4426cba1b9e9e8c4d9cb2217a3bd0f6f0f63eab539b61020c76358d711d11" + }, + "REPORT.md": { + "git_blob": "b732a2b1db3d6e6be3a8bd7f26cc153d88acb53d", + "sha256": "168a02da3a040f8d9725ed81a602d44f25d057cc51fd85cab025e10c49b7c5ab" + }, + "SHA256SUMS": { + "git_blob": "bc783d1f4da6832e60cecde00b54954510cf7aed", + "sha256": "eb6d09128c89b9e78a7f65ffbb526baa7f3d4035b03e4863ff0e59ff7810eb96" + }, + "checks.py": { + "git_blob": "b22f354749cc1d306b0deaecc727137b177444ab", + "sha256": "46d229aab89e0d2166329df4bdf3bfbcfdfa4e484b4567f6788ed47566932396" + }, + "results.json": { + "git_blob": "05d22d8858548d249c373c6d362e7619ee1da5b5", + "sha256": "364b976b7a57cebd42081b7b269e380930abe33264fade4658f6222e345a9f83" + } + } +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/review/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/review/REPORT.md new file mode 100644 index 000000000..eafec976a --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/review/REPORT.md @@ -0,0 +1,120 @@ +# Separate-author review of the alternative remote fanout + +**Verdict: accept within the stated fourteen-endpoint family; no blocking findings.** + +Reviewed author revision: `8dc85bce24569a2ee80e8150d2aa7e05ac24f540`, +`layout_v10/` on #910. The reviewer did not author the candidate or checker. +This is internal separate-agent review, not owner adoption, external +validation, a Lean theorem or a general reset impossibility. + +## Provenance and replay + +The five author files were fetched at the immutable revision and their Git +blob identities matched the local review inputs. The source geometry is the +retained 1,479-entry census; its pinned SHA-256 is +`2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d`. +The author manifest verifies. Normal and optimized author runs reproduce +results.json byte for byte. INPUT-HASHES.json records the reviewed inputs. + +The new reviewer checker imports no author evaluator. It encodes triples as +integers, computes the coupled strip by memoized scalar spatial recursion, +and uses exact binomial coefficients for shortest-path parity instead of +the author's binary no-carry implementation. The published result is read +only as a pinned comparison expectation, not as the physical evaluator. + +## Geometry and period argument + +All 20,706 inherited-source/endpoint comparisons and all 98 complete frontier +family exclusions pass independently. Each ray's exact nearest point on its +finite index interval is checked, so this is not finite sampling of a large +ray. Origin and W meet every endpoint on their first fronts; other named +selector/upper sources are excluded. Negative-x payload sources preserve +old informative deadlines, do not reach q8 before its read, and cannot +coincide with old bank coordinates. Their pairwise endpoint exclusions +justify independent response maps for simultaneous outputs through L. + +The positive-x source has distance S-401 to the old selector-Z port for every +endpoint in the family. It therefore cannot be accepted as a harmless new +boundary source under the existing ready/informative-record contract. The +report rejects it rather than counting its isolated collision law as a +native construction. + +The 11-by-16 strip has 176 triple coordinates. At each j step, a coordinate +depends on its own preceding value and already-updated lower r/k coordinates. +The lower-coordinate dependence is triangular; H and XOR translations make +each diagonal action bijective. The boundary forcing is 384-periodic. +A 384-step block retains this triangular permutation form. Inducting over +the coordinates, restoring lower coordinates leaves a permutation of eight +values on the next coordinate; 840 is a sufficient common exponent for +that permutation. Thus 840^176 bounds the block order, and +384*840^176 is a valid sufficient sequence period. Exact integer arithmetic +confirms divisibility by actual P. This proof retains all coupled origin/W +terms; it does not superpose isolated waves or infer giant-scale behavior +from a reduced P. + +## Coupled seed response and cycle result + +The negative-x payload first meets the input front at x=0, not at the final +receiver x=10. Its single first-arrival path gives eleven coupled updates. +At each update the two off-axis input/W terms cannot yet depend on that +payload. The reviewer reconstructs all sixteen payload/input outputs for +all fourteen endpoints: 224 scalar entries agree with the author. +Both payload maps are permutations at every endpoint. Their relative +permutation has cube equal to identity. At delta13,17,21 its cycle type is +3+3+1+1; at the other eleven it is the identity. The reported uncontrolled +input pairs also agree. + +A separate six-neighbor, two-slice scalar recurrence checks 64 bounded cases +with both x values, both zero/nonzero W choices, all eight payloads, and two +old-origin triples. All match the coupled formula and have blank receiver +prefixes. Sixteen cases disagree with a false final-tick collision shortcut, +so the control detects the omitted interaction. The two-cycle search accepts +the four genuine XOR-translation pairs as a positive control. + +## Full-law deduction and its exact scope + +The stronger proof is valid under its explicit four-history condition: +accepted payload laws nu_0,nu_1 depend on apparatus seeds and old u, but not +on unknown x, and the full raw accepted output law must be common at fixed +y=x XOR u. Correlations between endpoint payloads are allowed. A seed-only +herald can be absorbed into these laws, including unnormalized accepted +measures if success weights are part of the contract. + +Cross-exclusion makes the simultaneous response a product of the endpoint +permutations. Its relative permutation T satisfies T^3=id. The four-history +equalities imply nu_0=T nu_1 and nu_1=T nu_0, hence T^2 nu_0=nu_0. Since +T=(T^2)^2, nu_0 is also T-invariant; the two desired output measures are +identical. This uses no independence among payloads and survives adding an +independent untouched Z factor. It excludes two distinguishable full raw +output laws in this family under that contract. + +It does not exclude an input-coupled herald, a different endpoint/controller, +or a different coarse-grained or pooled-history acceptance criterion. A +postselection rule that discards one u history is not a repair satisfying +the four-history common-law equations with nonzero signal. These qualifications +are consistent with the report's stated equations and scope. No target or +acceptance rule is changed here. + +The endpoints are outside q8's one-tick light cone. They consequently cannot +respond to an isolated late-q8 operand intervention. The report presents +this as an alternative native-family recomputation, never as a reusable +q8 socket. No new readiness, seed law, full carrier, herald, calibrated +reset or broader equivalence is adopted. + +## Replay + +From `layout_v10/review/` in the retained tree: + +```sh +python3 checks.py > replay.json +python3 -O checks.py > replay-O.json +cmp results.json replay.json +cmp results.json replay-O.json +sha256sum -c SHA256SUMS +``` + +The reviewer normal and optimized runs are byte-identical with verdict PASS. +The script needs only Python's standard library, the pinned source geometry, +and the pinned author result. `--source-root PATH` can name their containing +checkpoint in a sparse copy. The previous full native suite is not rerun. +#885, frozen records, premises and interface criteria are unchanged. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/review/SHA256SUMS new file mode 100644 index 000000000..415a428bc --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/review/SHA256SUMS @@ -0,0 +1,4 @@ +d1dba1b0f041ea1e49b7b4f4a7512f029f2950e78e597c4c9d7d7a3f4ffa8676 REPORT.md +a7da50e720fbdf56fc29e4575f8f0aa0729b52a51cec58eb751103c2d34d0489 INPUT-HASHES.json +34e5595614a1156dfd58faaff5ff80b75d93b9372d01f3e9c4282f2d1aa8c173 checks.py +6e8943911267dd21cf387e6f7c184dbbad7097002fb6ad1ed2c6dfa2b47ecc87 results.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/review/checks.py new file mode 100644 index 000000000..4ac4ab432 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/layout_v10/review/checks.py @@ -0,0 +1,138 @@ +#!/usr/bin/env python3 +"""Independent integer-coded coupled-front, cycle and geometry review.""" +from collections import Counter +from functools import lru_cache +import argparse +import hashlib +from itertools import product +import json +from math import comb +from pathlib import Path + +T=185; P=12*840**185; S=T+P; R=S+68; L=R+9 +GEOMETRY_SHA='2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d' + +def need(ok,label): + if not ok: raise RuntimeError(label) +def h(v): return ((v&3)<<1)|(((v>>2)&1)^((v>>1)&v&1)) +def iterate(v,n): + for _ in range(n%12): v=h(v) + return v +def encode(v): return 4*v[0]+2*v[1]+v[2] +def distance(a,b): return sum(abs(x-y) for x,y in zip(a,b)) + +@lru_cache(None) +def parity(a,b,c): return (comb(a+b+c,a)*comb(b+c,b))%2 + +def front(x,w,m): + @lru_cache(None) + def f(r,j,k): + if r<0: return 0 + if j<0: return iterate(w,r+m-1+k) if parity(r,m-1,k) else 0 + if k<0: return iterate(2*x,r+j+m-1) if parity(r,j,m-1) else 0 + return h(f(r-1,j,k)^f(r,j-1,k)^f(r,j,k-1)) + return f + +def response(f,r,j,k,deadline,payload): + value=iterate(payload,deadline-r-1) + for s in range(r+1): value=h(value^f(s,j-1,k)^f(s,j,k-1)) + return value + +def direct(x,w,payload,old,m,r,j,k): + end=(r,j,m+k); deadline=sum(end) + sources={(0,0,0):2*x,(0,-m,m):w,(r-deadline,j,m+k):payload} + @lru_cache(None) + def at(t,p): + if t==-1: return old if p==(0,0,0) else 0 + if t==0: return sources.get(p,0) + if all(distance(p,s)>t for s in sources) and distance(p,(0,0,0))>t+1: return 0 + incoming=0 + for a in range(3): + for step in (-1,1): + q=list(p);q[a]+=step;incoming^=at(t-1,tuple(q)) + return at(t-2,p)^h(incoming) + need(all(at(t,end)==0 for t in range(deadline)),'direct blank prefix') + return at(deadline,end) + +def run(root): + raw=(root/'parallel_v3/history_control/SOURCE-GEOMETRY.json').read_bytes() + need(hashlib.sha256(raw).hexdigest()==GEOMETRY_SHA,'source geometry hash') + sources=json.loads(raw)['sources'];need(len(sources)==1479,'source census') + expected_raw=(root/'layout_v10/results.json').read_bytes() + need(hashlib.sha256(expected_raw).hexdigest()=='364b976b7a57cebd42081b7b269e380930abe33264fade4658f6222e345a9f83', + 'reviewed author expectation hash') + author=json.loads(expected_raw) + need(all(iterate(v,12)==v for v in range(8)),'local order bound') + need(P%(384*840**176)==0,'actual period divides P') + # Force parity is checked with multinomial coefficients, not bit tests. + for r,j in product(range(11),range(384)): + need(parity(r,j,75)==parity(r,j+384,75),'forcing period') + ports=[((0,T,0),T,(0,-1,0)),((0,0,-8*T),T,(0,0,-1)), + ((T,P,0),S,(0,1,0)),((-T,P,0),S,(0,1,0)), + ((4*T,P,0),S,(0,1,0)),((0,S,0),S,(0,1,0)),((12*R,0,0),R,(-1,0,0))] + additions=[(0,2*S,0),(T,S+P,0),(-T,S+P,0),(4*T,S+P,0), + (0,S,S+136),(0,S,-S-136),(0,S,S+150),(0,S,S+152),(0,S,S+154)] + endpoints=[(10,S-d,67+d) for d in range(11,25)] + pulses=[(q[0]-L,q[1],q[2]) for q in endpoints] + compared=0; ray_tests=0 + for q,pulse in zip(endpoints,pulses): + need(distance(q,(0,0,0))==distance(q,(0,-76,76))==L,'two physical fronts') + for source in sources: + d=distance(q,source['position']) + need(d==L if source['owner']=='input' else d>L,'all original source distances') + compared+=1 + need(all(distance(q,s)>L for s in additions),'later sources excluded') + for port,deadline,direction in ports: + axis=next(i for i,v in enumerate(direction) if v) + closest=max(deadline+1,min(L,(q[axis]-port[axis])*direction[axis])) + point=tuple(p+closest*v for p,v in zip(port,direction)) + need(distance(point,q)>L,'entire frontier outside cone') + need(distance(pulse,port)>deadline,'mask source preserves old deadline') + ray_tests+=1 + need(distance(pulse,(0,S,76))>R+8,'earlier q8 untouched') + need(pulse[0]<-T,'pulse cannot coincide with old bank') + need(distance((q[0]+L,q[1],q[2]),(4*T,P,0))==S-401,'positive-x conflict') + need(distance(q,(0,S,76))>1,'no late-q8 operand') + need(all(distance(p,q)>L for p in pulses if p!=pulse),'all pulse cross-exclusions') + fs=[front(x,7,76) for x in (0,1)] + rows=[] + for d in range(11,25): + j=185-d;k=d-9 + maps=[[response(fs[x],10,j,k,L,b) for b in range(8)] for x in (0,1)] + need(all(sorted(a)==list(range(8)) for a in maps),'native payload permutations') + relative=[maps[0].index(v) for v in maps[1]] + need(all(relative[relative[relative[i]]]==i for i in range(8)),'relative cube identity') + counts=Counter();seen=set() + for i in range(8): + if i in seen: continue + cur=i;length=0 + while cur not in seen:seen.add(cur);length+=1;cur=relative[cur] + counts[length]+=1 + expected=author['census'][d-11] + need(maps==[[encode(v) for v in a] for a in expected['payload_maps']],'all author payload rows') + need([fs[x](10,j,k) for x in (0,1)]==[encode(v) for v in expected['uncontrolled_x_outputs']], + 'uncontrolled fronts') + # Invariance under T^2 entails invariance under T because T=(T^2)^2. + square=[relative[relative[i]] for i in range(8)] + need(all(square[square[i]]==relative[i] for i in range(8)),'odd-order law implication') + rows.append({'delta':d,'cycle_length_counts':dict(counts),'payload_maps':maps}) + scalar_cases=0; shortcut_mismatches=0 + for x,w,b,old in product((0,1),(0,7),range(8),(0,7)): + m,r,j,k=2,1,2,1; deadline=r+j+m+k + f=front(x,w,m); result=direct(x,w,b,old,m,r,j,k) + need(result==response(f,r,j,k,deadline,b),'independent bounded six-neighbor recursion') + scalar_cases+=1 + shortcut=h(iterate(f(r,j,k),11)^iterate(b,deadline-1)) + shortcut_mismatches+=shortcut!=result + need(shortcut_mismatches>0,'reject final-tick surrogate') + xor_perm=[i^1 for i in range(8)] + need(sum(1 for i in range(8) if i> 3, w & 7)] + return q + + +def features(chosen): + """Feature vector of each context as an int over the chosen features.""" + out = [] + for k in CONTEXTS: + full = (1,) + k + out.append(sum(full[f] << i for i, f in enumerate(chosen))) + return tuple(out) + + +def readout_sets(q, d): + """G_j: the (E,N) pairs whose raw outputs read back s=0 and s=1.""" + g = [] + for j in range(len(CONTEXTS)): + mask = 0 + for w in range(64): + if not (d >> q[0][j][w]) & 1 and (d >> q[1][j][w]) & 1: + mask |= 1 << w + g.append(mask) + return g + + +def pair_sets(q, o0, o1): + return [sum(1 << w for w in range(64) if q[0][j][w] == o0 and q[1][j][w] == o1) + for j in range(len(CONTEXTS))] + + +def distinct_sets(q): + return [sum(1 << w for w in range(64) if q[0][j][w] != q[1][j][w]) + for j in range(len(CONTEXTS))] + + +# ---------------------------------------------------------------- solver A +# Six source fields (E.A,E.B,E.D,N.A,N.B,N.D) = bits 5..0 of w. Each field is +# affine: field value at context j is parity(coefficient & feature_j). The +# coefficient of each field ranges over all 2^m values; a bit set over those +# values is intersected context by context. + +FIELD = tuple(tuple(sum(1 << w for w in range(64) if ((w >> (5 - i)) & 1) == b) + for b in (0, 1)) for i in range(6)) + + +class SolverA: + """Fields are eliminated `group` at a time over bit sets of coefficient tuples.""" + + def __init__(self, feats, order=(0, 1, 2, 3, 4, 5), group=1): + self.feats = feats + self.order = order + self.group = group + size = 1 << max(1, max(f.bit_length() for f in feats)) + self.size = size + tuples = size ** group + self.all = (1 << tuples) - 1 + nv = 1 << group + self.val = [] + maskv = [[0] * nv for _ in feats] + for t in range(tuples): + parts = [(t // size ** i) % size for i in range(group)] + row = [] + for j, f in enumerate(feats): + v = 0 + for c in parts: + v = 2 * v + ((c & f).bit_count() & 1) + row.append(v) + maskv[j][v] |= 1 << t + self.val.append(row) + self.allow = [[0] * (1 << nv) for _ in feats] + for j in range(len(feats)): + for sub in range(1 << nv): + for v in range(nv): + if sub >> v & 1: + self.allow[j][sub] |= maskv[j][v] + self.full = (1 << nv) - 1 + self.levels = [order[i:i + group] for i in range(0, 6, group)] + self.levelmask = [] + for fields in self.levels: + masks = [] + for v in range(nv): + m = 0 + for w in range(64): + if all(((w >> (5 - f)) & 1) == ((v >> (group - 1 - i)) & 1) + for i, f in enumerate(fields)): + m |= 1 << w + masks.append(m) + self.levelmask.append(tuple(masks)) + + def run(self, g, collect=0, stop_first=False): + """Count all laws; with group=1, prefix3 counts laws consistent on the first three fields.""" + self.count = 0 + self.prefix3 = 0 + self.found = [] + self.stop = stop_first + if all(g): + self._go(0, list(g), [], collect) + return self.count + + def _decode(self, t): + return [(t // self.size ** i) % self.size for i in range(self.group)] + + def _canonical(self, coeffs): + out = [0] * 6 + for f, c in zip(self.order, coeffs): + out[f] = c + return tuple(out) + + def _go(self, level, r, coeffs, collect): + possible = self.all + masks = self.levelmask[level] + full = self.full + allow = self.allow + if self.group == 2: + m0, m1, m2, m3 = masks + for j, rj in enumerate(r): + sub = ((rj & m0 and 1) | (rj & m1 and 2) | (rj & m2 and 4) | (rj & m3 and 8)) + if sub != 15: + possible &= allow[j][sub] + if not possible: + return + else: + for j, rj in enumerate(r): + sub = 0 + for v, m in enumerate(masks): + if rj & m: + sub |= 1 << v + if sub != full: + possible &= allow[j][sub] + if not possible: + return + if self.group == 1 and level == 2: + self.prefix3 += possible.bit_count() + if level == len(self.levels) - 1: + self.count += possible.bit_count() + while possible and len(self.found) < collect: + bit = possible & -possible + self.found.append(self._canonical(coeffs + self._decode(bit.bit_length() - 1))) + possible ^= bit + return + while possible: + bit = possible & -possible + t = bit.bit_length() - 1 + possible ^= bit + row = self.val[t] + self._go(level + 1, [rj & masks[row[j]] for j, rj in enumerate(r)], + coeffs + self._decode(t), collect) + if self.stop and self.count: + return + + +def evaluate(coeffs, feat): + """Source value w=8*E+N of the affine law with field coefficients coeffs.""" + w = 0 + for c in coeffs: + w = 2 * w + ((c & feat).bit_count() & 1) + return w + + +# ---------------------------------------------------------------- solver B +# An affine law is a linear map C from feature space to six-bit values. Fix a +# basis of the context features; C is determined by its values there, and +# every other context's value is the XOR of the basis values in its expansion. + +def reduce(v, rows): + e = 0 + for rv, pivot, re in rows: + if (v >> pivot) & 1: + v ^= rv + e ^= re + return v, e + + +def add_row(rows, v, e): + rows.append((v, v.bit_length() - 1, e)) + rows.sort(key=lambda t: -t[1]) + + +class SolverB: + def __init__(self, feats): + self.feats = feats + width = max(f.bit_length() for f in feats) + # Greedy basis: each new basis context maximizes the number of + # contexts already determined by the basis chosen so far. + basis, rows = [], [] + while True: + best = None + for j, f in enumerate(feats): + v, e = reduce(f, rows) + if not v: + continue + trial = list(rows) + add_row(trial, v, e) + covered = sum(1 for h in feats if not reduce(h, trial)[0]) + if best is None or covered > best[0]: + best = (covered, j) + if best is None: + break + j = best[1] + v, e = reduce(feats[j], rows) + add_row(rows, v, e ^ (1 << len(basis))) + basis.append(j) + self.basis = basis + self.free = 6 * (width - len(basis)) + self.checks = [[] for _ in basis] + for j, f in enumerate(feats): + if j in basis: + continue + v, e = reduce(f, rows) + if v: + raise RuntimeError('basis does not span the context features') + self.checks[e.bit_length() - 1].append((j, e)) + self.width = width + + def run(self, g, collect=0, stop_first=False): + self.leaves = 0 + self.found = [] + self.stop = stop_first + self._go(0, [], g, collect) + return self.leaves << self.free + + def _go(self, d, values, g, collect): + if d == len(self.basis): + self.leaves += 1 + if len(self.found) < collect: + self.found.append(tuple(values)) + return + mask = g[self.basis[d]] + while mask: + bit = mask & -mask + mask ^= bit + vals = values + [bit.bit_length() - 1] + ok = True + for j, e in self.checks[d]: + w = 0 + for t in range(d + 1): + if (e >> t) & 1: + w ^= vals[t] + if not (g[j] >> w) & 1: + ok = False + break + if ok: + self._go(d + 1, vals, g, collect) + if self.stop and self.leaves: + return + + +# ---------------------------------------------------------------- brute force + +def brute_force(q, chosen): + """All 64^m column choices; returns per-readout counts and diagnostic count.""" + feats = features(chosen) + m = len(chosen) + zo = Counter() + distinct = 0 + for cols in product(range(64), repeat=m): + zmask = omask = 0 + dist = True + for j, f in enumerate(feats): + w = 0 + for t in range(m): + if (f >> t) & 1: + w ^= cols[t] + a0, a1 = q[0][j][w], q[1][j][w] + zmask |= 1 << a0 + omask |= 1 << a1 + dist = dist and a0 != a1 + distinct += dist + if not zmask & omask: + zo[zmask, omask] += 1 + counts = Counter() + for (zmask, omask), mult in zo.items(): + for d in READOUTS: + if not d & zmask and omask & ~d == 0: + counts[d] += mult + return [counts[d] for d in READOUTS], distinct + + +PLANTED_READOUT = 0b11110000 # reads 1 exactly on raw codes with A=1 + + +def plant(table, coeffs, feats): + """Synthetic table: the law coeffs gives raw 2 (reads 0) and 5 (reads 1).""" + synth = list(table) + for j, k in enumerate(CONTEXTS): + w = evaluate(coeffs, feats[j]) + for s, code in ((0, 2), (1, 5)): + synth[row_index(s ^ k[0] ^ k[3], k, w >> 3, w & 7)] = code + return synth + + +def anf_degree(d): + """Algebraic degree of the readout as a Boolean function of (A,B,D).""" + f = [(d >> c) & 1 for c in range(8)] + for i in range(3): + for c in range(8): + if c >> i & 1: + f[c] ^= f[c ^ (1 << i)] + return max((c.bit_count() for c in range(8) if f[c]), default=0) + + +def affine_readouts(every, table, feats): + """Post-hoc: readouts of algebraic degree one (a raw field or a parity of fields).""" + out = [] + by = {} + for d, c in every: + by.setdefault(d, []).append(c) + for d in sorted(by): + if anf_degree(d) != 1: + continue + sols = by[d] + best = None + for c in sols: + used = 0 + for x in c: + used |= x >> 1 + names_used = [FEATURE_NAMES[i + 1] for i in range(5) if used >> i & 1] + if best is None or len(names_used) < len(best[0]): + best = (names_used, c) + # Linear part of the readout over the raw fields A,B,D (constant dropped). + linear = [f for f, bit in (('A', 4), ('B', 2), ('D', 1)) if ((d >> bit) & 1) != (d & 1)] + residual_sign_free = 0 + if len(linear) == 1: + keep = 7 ^ {'A': 4, 'B': 2, 'D': 1}[linear[0]] + for c in sols: + ok = True + for j, k in enumerate(CONTEXTS): + w = evaluate(c, feats[j]) + r = [table[row_index(s ^ k[0] ^ k[3], k, w >> 3, w & 7)] & keep for s in (0, 1)] + ok = ok and r[0] == r[1] + residual_sign_free += ok + out.append({'readout_bits': d, 'raw_fields_xored': linear, 'complemented': bool(d & 1), + 'solutions': len(sols), 'E_constant': sum(all(x <= 1 for x in c[:3]) for c in sols), + 'fewest_seeds': best[0], + 'fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND': list(best[1]), + 'single_field_laws_with_sign_free_other_fields': + residual_sign_free if len(linear) == 1 else None}) + return out + + +def fresh_bit_pairs(every, table, feats, d1=0b11110000, d0=0b00001111): + """Post-hoc: law pairs for q10.A and its complement that differ only in + constant coefficients, so one independent initial bit c on those + constants would give q10.A = s XOR c. Also checks whether the whole + triple then hides s given the known seeds (equal multisets over c).""" + by = {} + for d, c in every: + by.setdefault(d, []).append(c) + zero = {} + for c in by.get(d0, []): + zero.setdefault(tuple(x >> 1 for x in c), []).append(c) + pairs = [(a, b) for a in by.get(d1, []) for b in zero.get(tuple(x >> 1 for x in a), [])] + deltas = Counter(tuple((x ^ y) & 1 for x, y in zip(a, b)) for a, b in pairs) + hidden = Counter() + for a, b in pairs: + good = 0 + for j, k in enumerate(CONTEXTS): + wa, wb = evaluate(a, feats[j]), evaluate(b, feats[j]) + m = [sorted(table[row_index(s ^ k[0] ^ k[3], k, w >> 3, w & 7)] for w in (wa, wb)) + for s in (0, 1)] + good += m[0] == m[1] + hidden[good] += 1 + return {'pairs': len(pairs), + 'constant_coefficient_deltas_EA_EB_ED_NA_NB_ND': sorted([list(k), v] for k, v in deltas.items()), + 'contexts_with_whole_triple_sign_hidden_counts': sorted([k, v] for k, v in hidden.items()), + 'pairs_hiding_sign_in_all_contexts': hidden[len(CONTEXTS)]} + + +def solution_structure(every, table, feats): + """Post-hoc description of all solutions; it does not enter the verdict.""" + e_zero = e_const = n_const = both_const = 0 + support = Counter() + raw_used = Counter() + min_raw = None + for d, c in every: + ec, nc = c[:3], c[3:] + e_zero += all(x == 0 for x in ec) + ek = all(x <= 1 for x in ec) + nk = all(x <= 1 for x in nc) + e_const += ek + n_const += nk + both_const += ek and nk + used = 0 + for x in c: + used |= x >> 1 + support[tuple(FEATURE_NAMES[i + 1] for i in range(5) if used >> i & 1)] += 1 + codes = set() + for j, k in enumerate(CONTEXTS): + w = evaluate(c, feats[j]) + for s in (0, 1): + codes.add((s, table[row_index(s ^ k[0] ^ k[3], k, w >> 3, w & 7)])) + size = len(codes) + raw_used[size] += 1 + if min_raw is None or size < min_raw[0]: + min_raw = (size, d, c) + return {'solutions': len(every), 'E_identically_000': e_zero, 'E_constant': e_const, + 'N_constant': n_const, 'E_and_N_constant': both_const, + 'seed_support_counts': sorted([list(k), v] for k, v in support.items()), + 'distinct_sign_raw_pairs_used_counts': sorted([k, v] for k, v in raw_used.items()), + 'fewest_sign_raw_pairs': {'count': min_raw[0], 'readout_bits': min_raw[1], + 'field_coefficients_EA_EB_ED_NA_NB_ND': list(min_raw[2])} + if min_raw else None} + + +# ---------------------------------------------------------------- main + +def main(): + route_bytes = (ROUTE / 'result.json').read_bytes() + need(sha(route_bytes) == PIN_ROUTE_RESULT, 'route result pin') + route = json.loads(route_bytes) + review_bytes = (ROUTE / 'review/result.json').read_bytes() + need(sha(review_bytes) == PIN_REVIEW_RESULT, 'route review result pin') + review = json.loads(review_bytes) + table_hex = route['q10_table_hex'] + need(len(table_hex) == 4096, 'table length') + need(route['table_sha256'] == PIN_TABLE, 'author table digest field') + need(sha(table_hex.encode()) == PIN_TABLE, 'recomputed table digest') + need(review['independent_native_table']['sha256'] == PIN_TABLE, 'review table digest') + need(review['all_controls_passed'] is True, 'review controls recorded green') + table = [int(ch, 16) for ch in table_hex] + q = kernel_from_table(table) + + full = tuple(range(6)) + feats = features(full) + sa_e = SolverA(feats) # E fields first: raw-pair reproduction + sa = SolverA(feats, group=2) # primary: two fields per level + sb = SolverB(feats) + need(len(sb.basis) == 6 and sb.free == 0, 'context features have full affine rank') + + def basis_values(coeffs, solver, fs): + return tuple(evaluate(coeffs, fs[j]) for j in solver.basis) + + # Control 2: planted positive control on a synthetic table. + planted_coeffs = (37, 12, 55, 41, 22, 7) + synth = plant(table, planted_coeffs, feats) + gs = readout_sets(kernel_from_table(synth), PLANTED_READOUT) + count_a = sa.run(gs, collect=1 << 20) + found_a = set(sa.found) + count_b = sb.run(gs, collect=1 << 20) + need(count_a == count_b and count_a >= 1, 'planted counts agree and are positive') + need(len(found_a) == count_a, 'planted enumeration complete') + need(planted_coeffs in found_a, 'solver A recovers planted law') + need({basis_values(c, sb, feats) for c in found_a} == set(sb.found), 'planted solution sets agree') + planted = {'readout_bits': PLANTED_READOUT, 'field_coefficients': list(planted_coeffs), + 'solutions': count_a} + + # Control 3: brute force under restricted features, on the real table and, + # so that nonzero readout counts are compared, on a planted synthetic table. + brute = [] + for label, base, chosen, plant_coeffs in (('real', table, (0, 1), None), + ('real', table, (0, 1, 4), None), + ('planted', table, (0, 1, 4), (5, 3, 6, 1, 7, 2))): + rf = features(chosen) + tab = plant(base, plant_coeffs, rf) if plant_coeffs else base + qq = kernel_from_table(tab) + bf_counts, bf_distinct = brute_force(qq, chosen) + ra, rb = SolverA(rf, group=2), SolverB(rf) + need(len(rb.basis) == len(chosen), 'restricted rank') + ca = [ra.run(readout_sets(qq, d)) for d in READOUTS] + cb = [rb.run(readout_sets(qq, d)) for d in READOUTS] + need(ca == bf_counts and cb == bf_counts, 'brute force per-readout counts %s %s' % (label, chosen)) + dg = distinct_sets(qq) + need(ra.run(dg) == bf_distinct and rb.run(dg) == bf_distinct, + 'brute force diagnostic %s %s' % (label, chosen)) + if plant_coeffs: + need(sum(bf_counts) > 0, 'planted brute force is nonvacuous') + brute.append({'table': label, 'features': [FEATURE_NAMES[f] for f in chosen], + 'maps': 64 ** len(chosen), + 'readouts_with_solutions': sum(1 for c in bf_counts if c), + 'total_readout_solutions': sum(bf_counts), 'known_seed_readout_maps': bf_distinct}) + + # Control 4: singleton partial readouts reproduce the retained raw-pair decision. + author = {tuple(p['raw_pair']): p for p in route['controller']['per_pair_affine_results']} + need(len(author) == 32, 'author pair list') + e_total = joint_total = 0 + for o0, o1 in product(range(8), repeat=2): + if o0 == o1: + continue + joint = sa_e.run(pair_sets(q, o0, o1)) + ref = author.get((o0, o1)) + need(sa_e.prefix3 == (ref['affine_E_maps_after_constraints'] if ref else 0), + 'E prefix count %d%d' % (o0, o1)) + need(joint == (ref['joint_affine_E_N_maps'] if ref else 0), 'joint raw-pair count %d%d' % (o0, o1)) + need(sa.run(pair_sets(q, o0, o1)) == joint and sb.run(pair_sets(q, o0, o1)) == joint, + 'raw-pair joint count agreement %d%d' % (o0, o1)) + e_total += sa_e.prefix3 + joint_total += joint + need(e_total == 16 and joint_total == 0, 'retained raw-pair totals') + + # Control 5: sign-erased countercontrol. + erased = [q[0], q[0]] + need(all(sa.run(readout_sets(erased, d)) == 0 for d in READOUTS), 'erased readouts A') + need(all(sb.run(readout_sets(erased, d)) == 0 for d in READOUTS), 'erased readouts B') + need(sa.run(distinct_sets(erased), stop_first=True) == 0, 'erased diagnostic A') + need(sb.run(distinct_sets(erased), stop_first=True) == 0, 'erased diagnostic B') + + # Primary decision and control 6: complete solution sets must agree, and + # every solution is checked directly against the native table. + per_readout = [] + witnesses = [] + every = [] + for d in READOUTS: + g = readout_sets(q, d) + ca = sa.run(g, collect=1 << 20) + sols = sorted(sa.found) + cb = sb.run(g, collect=1 << 20) + need(ca == cb == len(sols), 'solver count agreement readout %d' % d) + need({basis_values(c, sb, feats) for c in sols} == set(sb.found), + 'solver solution-set agreement readout %d' % d) + for c in sols: + for j, k in enumerate(CONTEXTS): + w = evaluate(c, feats[j]) + for s in (0, 1): + need((d >> table[row_index(s ^ k[0] ^ k[3], k, w >> 3, w & 7)]) & 1 == s, + 'solution direct table check') + every.append((d, c)) + per_readout.append(ca) + if ca: + witnesses.append({'readout_bits': d, 'solutions': ca, 'ones': d.bit_count(), + 'anf_degree': anf_degree(d), + 'first_field_coefficients_EA_EB_ED_NA_NB_ND': list(sols[0])}) + + dg = distinct_sets(q) + diag_a = sa.run(dg, collect=1, stop_first=True) + diag_wit = sa.found[0] if sa.found else None + diag_b = sb.run(dg, stop_first=True) + need(bool(diag_a) == bool(diag_b), 'solver agreement diagnostic') + diagnostic = {'exists': bool(diag_a)} + if diag_a: + rows = [] + for j, k in enumerate(CONTEXTS): + w = evaluate(diag_wit, feats[j]) + r = [table[row_index(s ^ k[0] ^ k[3], k, w >> 3, w & 7)] for s in (0, 1)] + need(r[0] != r[1], 'diagnostic witness direct table check') + rows.append(r) + diagnostic['field_coefficients_EA_EB_ED_NA_NB_ND'] = list(diag_wit) + diagnostic['raw_codes_s0_s1_per_context'] = rows + diagnostic['distinct_raw_pairs_used'] = len({tuple(r) for r in rows}) + + structure = solution_structure(every, table, feats) + linear_readouts = affine_readouts(every, table, feats) + fresh_pairs = fresh_bit_pairs(every, table, feats) + positive = witnesses + verdict = ('fixed redundant q10 readout with jointly affine E,N exists in this geometry' + if positive else + 'no fixed q10 readout, redundant or not, decodes s under jointly affine E,N in this geometry') + result = { + 'schema': 'oi.native-redundant-q10-readout.v14', + 'plan_base': PIN_PLAN_BASE, + 'inputs': {'native_route_v13/result.json': PIN_ROUTE_RESULT, + 'native_route_v13/review/result.json': PIN_REVIEW_RESULT, + 'q10_table_sha256': PIN_TABLE, 'review_table_sha256_agrees': True}, + 'contexts_u_mY_mR_a_b': [list(k) for k in CONTEXTS], + 'feature_order': list(FEATURE_NAMES), + 'source_field_order': 'w=8*Ecode+Ncode; fields EA,EB,ED,NA,NB,ND are bits 5..0 of w', + 'readout_encoding': 'bit c of readout_bits is the readout of raw code c=4A+2B+D', + 'controls': { + 'input_pins': 5, + 'solution_sets_compared_and_table_checked': 'all readouts, both solvers', + 'planted_positive': planted, + 'restricted_brute_force': brute, + 'raw_pair_reproduction': {'ordered_pairs': 56, 'affine_E_prefixes': e_total, + 'joint_maps': joint_total}, + 'sign_erased_countercontrol': 'zero for all 254 readouts and the diagnostic, both solvers', + 'solver_agreement_readouts': len(READOUTS), + }, + 'affine_maps_per_readout': 2 ** 36, + 'readout_solution_counts': per_readout, + 'readouts_with_solutions': len(positive), + 'total_readout_solutions': sum(per_readout), + 'positive_readouts': positive, + 'post_hoc_solution_structure': structure, + 'post_hoc_degree_one_readouts': linear_readouts, + 'post_hoc_fresh_bit_on_q10A': fresh_pairs, + 'known_seed_readout_diagnostic': diagnostic, + 'verdict': { + 'fixed_q10_readout': verdict, + 'single_raw_field_readouts': ['q10.%s%s under %d jointly affine laws' % ( + r['raw_fields_xored'][0], ' complemented' if r['complemented'] else '', r['solutions']) + for r in linear_readouts if len(r['raw_fields_xored']) == 1] or 'none', + 'second_front_required': ('every solution has nonzero E' if not structure['E_identically_000'] + else 'some solution has E identically 000'), + 'known_seed_dependent_readout': ('exists (not a fixed-readout delivery)' if diag_a + else 'none under jointly affine E,N'), + 'downstream_native_gate_on_readout_classes': 'not tested', + 'acceptance_predicate': 'not constructed', + 'other_layouts_fresh_seed_multicell_readouts': 'not tested', + }, + } + print(json.dumps(result, sort_keys=True, separators=(',', ':'))) + + +if __name__ == '__main__': + main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/result.json new file mode 100644 index 000000000..893b1fd58 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/result.json @@ -0,0 +1 @@ +{"affine_maps_per_readout":68719476736,"contexts_u_mY_mR_a_b":[[0,0,0,0,0],[0,0,0,1,0],[0,0,0,1,1],[0,0,1,0,0],[0,0,1,1,0],[0,0,1,1,1],[0,1,0,0,0],[0,1,0,1,0],[0,1,0,1,1],[0,1,1,0,0],[0,1,1,1,0],[0,1,1,1,1],[1,0,0,0,0],[1,0,0,1,0],[1,0,0,1,1],[1,0,1,0,0],[1,0,1,1,0],[1,0,1,1,1],[1,1,0,0,0],[1,1,0,1,0],[1,1,0,1,1],[1,1,1,0,0],[1,1,1,1,0],[1,1,1,1,1]],"controls":{"input_pins":5,"planted_positive":{"field_coefficients":[37,12,55,41,22,7],"readout_bits":240,"solutions":1489},"raw_pair_reproduction":{"affine_E_prefixes":16,"joint_maps":0,"ordered_pairs":56},"restricted_brute_force":[{"features":["1","u"],"known_seed_readout_maps":2560,"maps":4096,"readouts_with_solutions":0,"table":"real","total_readout_solutions":0},{"features":["1","u","a"],"known_seed_readout_maps":143360,"maps":262144,"readouts_with_solutions":0,"table":"real","total_readout_solutions":0},{"features":["1","u","a"],"known_seed_readout_maps":149568,"maps":262144,"readouts_with_solutions":64,"table":"planted","total_readout_solutions":818}],"sign_erased_countercontrol":"zero for all 254 readouts and the diagnostic, both solvers","solution_sets_compared_and_table_checked":"all readouts, both solvers","solver_agreement_readouts":254},"feature_order":["1","u","mY","mR","a","b"],"inputs":{"native_route_v13/result.json":"762b9799db7448c4eecf2c994c8c68ff94e1be83a7f6884b4a36385505df5a02","native_route_v13/review/result.json":"73780def8505d68d1967936116a88a49d471eb32aeb83d528ff3cd41025ae6e4","q10_table_sha256":"b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc","review_table_sha256_agrees":true},"known_seed_readout_diagnostic":{"distinct_raw_pairs_used":6,"exists":true,"field_coefficients_EA_EB_ED_NA_NB_ND":[0,0,1,0,0,0],"raw_codes_s0_s1_per_context":[[5,4],[6,7],[2,1],[5,4],[5,4],[2,1],[5,4],[6,7],[2,1],[5,4],[5,4],[2,1],[1,0],[2,3],[1,0],[1,0],[1,0],[1,0],[1,0],[5,4],[1,0],[1,0],[7,6],[1,0]]},"plan_base":"94a4e6ccf18845af6c2d37cd797da1082f575d65","positive_readouts":[{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,5,7,7,6],"ones":3,"readout_bits":7,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[5,6,5,21,23,7],"ones":3,"readout_bits":11,"solutions":8},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,0,4,7,5],"ones":4,"readout_bits":15,"solutions":912},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,41,51,19,11,17],"ones":3,"readout_bits":25,"solutions":36},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,2,8,19,24],"ones":4,"readout_bits":27,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,9,17,33,56,56],"ones":3,"readout_bits":28,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,9,3,58,10,56],"ones":4,"readout_bits":29,"solutions":48},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,8,48,49,41,56],"ones":3,"readout_bits":37,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,18,9,25],"ones":3,"readout_bits":38,"solutions":56},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,32,19,8,8,17],"ones":4,"readout_bits":39,"solutions":12},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,42,3,19,41,43],"ones":3,"readout_bits":44,"solutions":4},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,3,8,24,26],"ones":4,"readout_bits":46,"solutions":32},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[16,5,5,22,7,18],"ones":5,"readout_bits":47,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,43,3,51,59,58],"ones":3,"readout_bits":52,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,56,24,41,57,34],"ones":4,"readout_bits":54,"solutions":28},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,26,26,42],"ones":3,"readout_bits":56,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[2,19,3,35,1,10],"ones":4,"readout_bits":57,"solutions":8},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,32,32,1,8],"ones":4,"readout_bits":60,"solutions":384},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[3,1,3,0,50,9],"ones":5,"readout_bits":62,"solutions":20},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[3,2,1,11,17,56],"ones":3,"readout_bits":67,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,10,3,3,27,26],"ones":3,"readout_bits":73,"solutions":28},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,3,25,40],"ones":4,"readout_bits":75,"solutions":40},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,8,48,56,19,27],"ones":4,"readout_bits":77,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,32,19,58,56,32],"ones":3,"readout_bits":81,"solutions":20},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,9,57,59,59],"ones":3,"readout_bits":88,"solutions":80},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[16,0,8,0,25,33],"ones":4,"readout_bits":89,"solutions":896},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[2,19,16,11,9,11],"ones":4,"readout_bits":90,"solutions":24},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,9,43,51,19],"ones":5,"readout_bits":91,"solutions":64},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,2,24,40,40,35],"ones":4,"readout_bits":92,"solutions":28},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,11,59,34,34],"ones":5,"readout_bits":93,"solutions":64},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[18,13,18,12,16,30],"ones":3,"readout_bits":98,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[18,19,0,34,8,58],"ones":4,"readout_bits":99,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,32,33,18,9,48],"ones":4,"readout_bits":102,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[32,13,44,19,63,46],"ones":3,"readout_bits":104,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,0,1,17,50,12],"ones":4,"readout_bits":106,"solutions":464},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[12,14,3,50,46,63],"ones":5,"readout_bits":107,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[4,7,4,21,23,7],"ones":3,"readout_bits":112,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[18,13,18,12,16,30],"ones":4,"readout_bits":114,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,3,9,27,9],"ones":4,"readout_bits":120,"solutions":64},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,9,9,27,32,59],"ones":5,"readout_bits":121,"solutions":44},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,34,0,25,59,48],"ones":5,"readout_bits":124,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,33,3,59,33,9],"ones":3,"readout_bits":131,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,51,11,2,42,48],"ones":3,"readout_bits":134,"solutions":68},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,51,49,19,8],"ones":4,"readout_bits":135,"solutions":64},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,2,26,57,1,51],"ones":3,"readout_bits":138,"solutions":4},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,42,34,34,35,11],"ones":4,"readout_bits":142,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,32,33,19,19,12],"ones":4,"readout_bits":149,"solutions":464},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[17,11,27,43,49,49],"ones":3,"readout_bits":152,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,32,2,50,43,32],"ones":4,"readout_bits":153,"solutions":4},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,0,1,8,16,25],"ones":4,"readout_bits":154,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,10,11,11,9],"ones":3,"readout_bits":162,"solutions":52},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,1,33,16,9,40],"ones":4,"readout_bits":163,"solutions":24},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,41,16,40,34,33],"ones":3,"readout_bits":164,"solutions":48},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,43,34,49,24,27],"ones":4,"readout_bits":165,"solutions":16},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[16,0,8,3,24,11],"ones":4,"readout_bits":166,"solutions":896},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,11,3,2,49,56],"ones":5,"readout_bits":167,"solutions":20},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,42,27,10,8,2],"ones":4,"readout_bits":172,"solutions":24},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,16,16,25],"ones":5,"readout_bits":174,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,0,51,25,10,0],"ones":4,"readout_bits":178,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,1,34,23,5],"ones":4,"readout_bits":180,"solutions":20},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,26,16,17,27,11],"ones":5,"readout_bits":182,"solutions":40},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,34,11,26,58,32],"ones":5,"readout_bits":188,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,26,3,19,57,24],"ones":3,"readout_bits":194,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,34,32,2,8],"ones":4,"readout_bits":195,"solutions":424},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[3,1,35,10,3,57],"ones":5,"readout_bits":199,"solutions":12},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,41,9,11,25,34],"ones":4,"readout_bits":201,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,33,3,8,48,50],"ones":5,"readout_bits":203,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,5,6,55,49],"ones":3,"readout_bits":208,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,51,50,57],"ones":4,"readout_bits":209,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,18,32,2,9],"ones":5,"readout_bits":211,"solutions":12},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,11,19,35,40,57],"ones":4,"readout_bits":216,"solutions":12},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,9,11,59,2,0],"ones":5,"readout_bits":217,"solutions":60},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,5,52,53,49],"ones":3,"readout_bits":224,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,9,49,56],"ones":4,"readout_bits":226,"solutions":20},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,10,2,19,1,10],"ones":4,"readout_bits":228,"solutions":12},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,35,48,3,27],"ones":5,"readout_bits":230,"solutions":36},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[51,11,43,58,9,59],"ones":6,"readout_bits":231,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,3,0,4,7,5],"ones":4,"readout_bits":240,"solutions":1456}],"post_hoc_degree_one_readouts":[{"E_constant":16,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,4,1,4,1,5],"fewest_seeds":["mY"],"raw_fields_xored":["A"],"readout_bits":15,"single_field_laws_with_sign_free_other_fields":0,"solutions":912},{"E_constant":0,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,3,3,0,2,8],"fewest_seeds":["u","mR"],"raw_fields_xored":["A","B"],"readout_bits":60,"single_field_laws_with_sign_free_other_fields":null,"solutions":384},{"E_constant":0,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[2,19,16,11,9,11],"fewest_seeds":["u","mR","a"],"raw_fields_xored":["A","D"],"readout_bits":90,"single_field_laws_with_sign_free_other_fields":null,"solutions":24},{"E_constant":0,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[8,32,33,18,9,48],"fewest_seeds":["u","mR","a","b"],"raw_fields_xored":["B","D"],"readout_bits":102,"single_field_laws_with_sign_free_other_fields":null,"solutions":8},{"E_constant":0,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[11,32,2,50,43,32],"fewest_seeds":["u","mR","a","b"],"raw_fields_xored":["B","D"],"readout_bits":153,"single_field_laws_with_sign_free_other_fields":null,"solutions":4},{"E_constant":0,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[8,43,34,49,24,27],"fewest_seeds":["u","mR","a","b"],"raw_fields_xored":["A","D"],"readout_bits":165,"single_field_laws_with_sign_free_other_fields":null,"solutions":16},{"E_constant":0,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,1,3,0,1,8],"fewest_seeds":["u","mR"],"raw_fields_xored":["A","B"],"readout_bits":195,"single_field_laws_with_sign_free_other_fields":null,"solutions":424},{"E_constant":8,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,1,4,1,5],"fewest_seeds":["mY"],"raw_fields_xored":["A"],"readout_bits":240,"single_field_laws_with_sign_free_other_fields":0,"solutions":1456}],"post_hoc_fresh_bit_on_q10A":{"constant_coefficient_deltas_EA_EB_ED_NA_NB_ND":[[[0,1,0,0,0,0],256],[[1,1,1,0,0,0],256]],"contexts_with_whole_triple_sign_hidden_counts":[[0,256],[4,256]],"pairs":512,"pairs_hiding_sign_in_all_contexts":0},"post_hoc_solution_structure":{"E_and_N_constant":0,"E_constant":40,"E_identically_000":0,"N_constant":0,"distinct_sign_raw_pairs_used_counts":[[6,16],[7,680],[8,6768]],"fewest_sign_raw_pairs":{"count":6,"field_coefficients_EA_EB_ED_NA_NB_ND":[18,2,16,9,3,26],"readout_bits":28},"seed_support_counts":[[["mR","a"],4],[["mR","a","b"],118],[["mR","b"],2],[["mY"],4],[["mY","a"],8],[["mY","a","b"],50],[["mY","b"],6],[["mY","mR","a","b"],8],[["u","mR"],7],[["u","mR","a"],223],[["u","mR","a","b"],3653],[["u","mR","b"],65],[["u","mY"],94],[["u","mY","a"],246],[["u","mY","a","b"],1548],[["u","mY","b"],220],[["u","mY","mR"],16],[["u","mY","mR","a"],104],[["u","mY","mR","a","b"],1040],[["u","mY","mR","b"],48]],"solutions":7464},"readout_encoding":"bit c of readout_bits is the readout of raw code c=4A+2B+D","readout_solution_counts":[0,0,0,0,0,0,8,0,0,0,8,0,0,0,912,0,0,0,0,0,0,0,0,0,36,0,8,24,48,0,0,0,0,0,0,0,4,56,12,0,0,0,0,4,0,32,16,0,0,0,0,24,0,28,0,8,8,0,0,384,0,20,0,0,0,0,4,0,0,0,0,0,28,0,40,0,4,0,0,0,20,0,0,0,0,0,0,80,896,24,64,28,64,0,0,0,0,8,4,0,0,8,0,8,0,464,8,0,0,0,0,8,0,8,0,0,0,0,0,64,44,0,0,16,0,0,0,0,0,0,8,0,0,68,64,0,0,4,0,0,0,8,0,0,0,0,0,0,464,0,0,4,4,16,0,0,0,0,0,0,0,52,24,48,16,896,20,0,0,0,0,24,0,24,0,0,0,24,0,20,0,40,0,0,0,0,0,8,0,0,0,0,0,4,424,0,0,0,12,0,4,0,8,0,0,0,0,8,16,0,12,0,0,0,0,12,60,0,0,0,0,0,0,8,0,20,0,12,0,36,4,0,0,0,0,0,0,0,0,1456,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"readouts_with_solutions":78,"schema":"oi.native-redundant-q10-readout.v14","source_field_order":"w=8*Ecode+Ncode; fields EA,EB,ED,NA,NB,ND are bits 5..0 of w","total_readout_solutions":7464,"verdict":{"acceptance_predicate":"not constructed","downstream_native_gate_on_readout_classes":"not tested","fixed_q10_readout":"fixed redundant q10 readout with jointly affine E,N exists in this geometry","known_seed_dependent_readout":"exists (not a fixed-readout delivery)","other_layouts_fresh_seed_multicell_readouts":"not tested","second_front_required":"every solution has nonzero E","single_raw_field_readouts":["q10.A complemented under 912 jointly affine laws","q10.A under 1456 jointly affine laws"]}} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/README.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/README.md new file mode 100644 index 000000000..54a84a1eb --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/README.md @@ -0,0 +1,25 @@ +# Separate review of native_decode_v14 + +- `round1/`: review of `7f843073d9…` (plan `36213be6…`, status text at + `cd9390a0…`). +- `round2/`: re-review of the text correction `96b92f39…`. +- `round3/`: re-check of the attribution fix `1c15797a…`. + +The reports name the reviewer's working directory `rev910b/`; read it as +`round1/`. Round 3's own re-check files were not kept; the checks it reports +(empty diffs of the evidence files, the v14 replay and the manifests at +`1c15797a`) run from that commit. + +`round1/out/` holds the outputs of the reviewer's scripts, the author +checker's normal and `-O` outputs (`author_*.out`, byte-identical to +`result.json`), and the mutant runs: `m*.out` is each mutant's standard +output, empty, and `m*.err` its standard error, ending in the control that +failed and the exit status. `round1/make_mutants.py` rebuilds the mutants. +`replay.py` runs `round1/review_checks.py` and compares it with +`round1/out/review_checks.out`. + +Redaction: line 21 of `round3/REPORT.md` named the reviewer's absolute +scratchpad path and reads "`rev910b/` in the reviewer's session scratchpad". +Original sha256 +`8e349b808f4e1bf67d81985262ec77d234148d3ccee40aa4cbd98576075ee6c4`, retained +copy sha256 `90bdb52893e027b06a9e755da2af6675570017ea1b7ff5033ae7bc06c9e5db1f`. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/SHA256SUMS new file mode 100644 index 000000000..15f8a22f7 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/SHA256SUMS @@ -0,0 +1,29 @@ +80eb35d3b6bc688212b60e15049b7fed2084c11d13b2e01ffd8961ba636e77bb README.md +22ba51adbdc9e4301799c2990b5886068d7b2ea92186159d467e45df79dc79d2 round1/REPORT.md +a77c2e2a36cbf119aacb6355a81277119b6a45d6446d3a11109b22ce36e69a56 round1/make_mutants.py +ba22a8f00a98af510394408d26cd9beb7a55eb8c92b85a6e118ccdb15ca780ce round1/native_table.py +3172e7d013c09cdcdf638a7ace68e0eff98bb3cd0411e8666b76a8226ad59034 round1/out/author_O.out +3172e7d013c09cdcdf638a7ace68e0eff98bb3cd0411e8666b76a8226ad59034 round1/out/author_normal.out +2f38e67a2c875412d926687f9731ecb94bd0e1ff282b95ce7d9227ee1084a363 round1/out/m1_contexts.err +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 round1/out/m1_contexts.out +b9dbeedf3e3c25d5b0a30b6ecc303a6d037a3127cde0d1ac4cea9e3cf05c156a round1/out/m2_sign_drop_u.err +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 round1/out/m2_sign_drop_u.out +d298a89b44c9c0e13b2b2fa7c5f085e5826b149455d5e840263b65c7bcfd8427 round1/out/m3_solverB_offbyone.err +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 round1/out/m3_solverB_offbyone.out +f92d8229e9138a5220c6d89afb2a88e7b2fa6903201413219daf8dbc18bb4d3f round1/out/m4_table_corrupt.err +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 round1/out/m4_table_corrupt.out +37c686edd3fdc6934ba58978bb16091327d0f7301e0a4d55f38e754f2e8dfb42 round1/out/m5_readout_drop_s0.err +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 round1/out/m5_readout_drop_s0.out +f1c5eb365b9e15c36d0c70305b9ebdf13dac0822c559e23f8a36fb635d9b5670 round1/out/q2_ticks.out +074604d3650e7fa11d86fe99ac10f860f4de5bcb72c2f5bcfcdd29c3af1249dd round1/out/q_extra.out +a7f28199d4dda1a166a4143d325cf1f47e5d0f415879db4378dbece79ca63234 round1/out/q_plant2.out +f216496809b553251c66521fed2d4d948892f7ef83d5f82fbc4d500355a37504 round1/out/review_checks.out +f216496809b553251c66521fed2d4d948892f7ef83d5f82fbc4d500355a37504 round1/out/review_checks_O.out +ce99a331ab96b07ae9e10100d1018040b813247a7f81c93f8fe08de5da7d227f round1/q2_ticks.py +d4307bd1360462fb95ba5c13812781b999f2e3a0f56152b47b42064bef43180e round1/q_extra.py +6e1b5176814af4b545c2e82259b1bee27485c4424979dc2c37156dc4531c610b round1/q_plant2.py +1335ac9f0385781821a13c9575ea2a6c2bba7747de08f212ab97f2c589df3e31 round1/review_checks.py +dcef3423bdf91e4774e81ac1f3d2bafdad8420ea62d448ef6736973a83faaaa9 round2/REPORT.md +3172e7d013c09cdcdf638a7ace68e0eff98bb3cd0411e8666b76a8226ad59034 round2/out/c_O.out +3172e7d013c09cdcdf638a7ace68e0eff98bb3cd0411e8666b76a8226ad59034 round2/out/c_normal.out +90bdb52893e027b06a9e755da2af6675570017ea1b7ff5033ae7bc06c9e5db1f round3/REPORT.md diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/REPORT.md new file mode 100644 index 000000000..bbac20121 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/REPORT.md @@ -0,0 +1,97 @@ +# rev910b: separate-engine review of native_decode_v14 (#910, local 36213be6/7f843073/cd9390a0) + +**Overall: BLOCK. The computation is accepted; the text needs edits.** The preregistered computation reproduces exactly from the native dynamics. No recomputation is needed. Findings 1–3 are false or overstated statements on status surfaces; fixing them is a text-only change. Per question: **Q1 derived, narrower than worded. Q2 insufficiently supported** (no permitted read). **Q3 insufficiently supported.** + +## What I regenerated and what I only read +- **Regenerated with my own engine** (`native_table.py`, which imports no author or review code). Field values are stored as A/B/D bit-planes. The upper cluster is computed by backward dependency closure plus a forward time sweep (383,207 nodes, 3,608 requests). The lower first front is a (y,z) dynamic programme. Upper and lower cones are checked to be disjoint on all 3,608 R-1/R-2 cells, and E enters only (0,-11,10) at R-1. The 11-tick diamond is run with all six neighbours and the old-local term. The table regenerates in 12 s. + - Digest **b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc**. This equals the retained v13 hex, and the E=000 rows equal Native B's 512-row table. + - q9 at L is independent of E and N. + - Exact minimal lower-front period: **1152**, which divides 384·840³ and P. The Lucas forcing formula is checked up to j=600. +- **Inherited, not re-derived:** + - the upper source positions and payloads (Q/C/G/J/K±/N) and the four pure-B selector sources; + - the 12·840²⁰ upper-strip period proof (I checked only that it divides P); + - the torus/no-wrap envelope and the bank/ready-region geometry. +- **Conventions confirmed:** + - rows are x,u,mY,mR,a,b,E,N; code = 4A+2B+D; + - s = x⊕u⊕a; + - the 24 contexts are those with (a,b)≠(0,1); + - v = 8E+N, with fields EA..ND as bits 5..0; + - a field coefficient has bit j for feature (1,u,mY,mR,a,b)[j]; + - bit c of a readout D is its value on code c. +- **Read, not regenerated:** the post-hoc fresh-bit pad pairs (512; 0/4 hidden contexts) and the 16/680/6768 raw-code multiplicities. + +## Values my engine computed +These come from a cube-splitting solver plus literal brute force, written independently of solvers A and B. +- **Readouts:** 78 of 254 have a solution, 7464 solutions in total; by ANF degree, 8 / 29 / 41. +- **Per-readout counts:** all 254 equal the author's `readout_solution_counts`. Every solution was checked directly on all 48 rows. +- **q10.A = s: 1456 laws.** The law [1,5,1,4,1,5] (E=(1,1⊕mY,1), N=(mY,1,1⊕mY)) is present. It is one of exactly two laws that use mY alone; the other is [1,5,5,4,5,1]. +- **Degree one:** A 1456, ¬A 912, A⊕B 384, ¬ 424, A⊕D 24, ¬ 16, B⊕D 8, ¬ 4. B, ¬B, D, ¬D, A⊕B⊕D and ¬(A⊕B⊕D) have 0. +- **E terms:** E≡000 0; E constant 40; N constant 0. With E forced to 000, every readout gives 0. +- **Controls, all matching the author where comparable:** + - planted full-rank law: 1489, law recovered (under both my coefficient convention and the author's); + - brute force (1,u): 0 / diagnostic 2560; (1,u,a): 0 / 143360; (1,mY,mR): 4 / 45568; (1,a,b): 0 / 150528; + - author's planted (1,u,a) table: 818 over 64 readouts, diagnostic 149568, reproduced exactly; + - raw pairs: 32 common pairs, 16 affine E maps, 0 joint laws; + - the constant witness E=001, N=000 separates s on all 24 contexts, using 6 distinct pairs. + +## The owner's three questions +**Q1, nontriviality: derived, but narrower than worded.** +- s is not available before the dynamics act. At every context the solution laws give identical sources for s=0 and s=1. +- Controls: + - constant sources: 0 laws for any readout; + - sign-erased table: 0 for every readout and for the diagnostic, which is the same as erasing x at fixed k; + - E,N affine in s alone: 0 laws; + - E,N affine in (seeds, s): 25,160 q10.A laws out of 2⁴², against 1456 without s. The s-free class is a much narrower contract. +- q10.A depends on x in 768 of the 1536 (k,E,N) cells. +- **However, s is not singled out.** For every one of the 64 affine seed functions f, some law makes q10.A = x⊕f(k); counts range from 512 to 2016. + - With f=0, q10.A = **x itself under 992 laws**, for example [1,4,1,4,0,16]: E=(1,mY,1), N=(mY,0,a), checked directly. + - So the table shows the unknown input x carried into q10.A, with an offset in the seeds that the source law selects. s is the case f=u⊕a. Nothing here distinguishes "reconstructs the earlier sign" from "exposes x relabelled by the source law". +- The sign-erased control is zero by construction for any solver that keeps the two signs apart. It is a sanity check, not a decisive countercontrol. + +**Q2, accessibility: insufficiently supported. No permitted read exists.** +- q10 first carries s at **L+1**. At L-1 and L my engine finds 0 rows depending on E or N, and 0 solutions over all 254 readouts. At L+1 the counts are 3584 rows and 7464 solutions. +- No rule on the branch permits reading q10 at any tick: + - CURRENT-HANDOFF.md:6-7 says no access rule is adopted. + - INTERFACE-CONTRACT.md:93-96 requires each proposal to list its public access; v13 and v14 list none. + - native_seed_v12/review/REPORT.md:105-106 says no new q10 public-prefix or flag law. +- The Native A contract permits a single whole-V (q9) read at L+2 (CURRENT-HANDOFF.md:30-32). The L+2 inverse also uses q9's previous neighbours, q10 at L+1 among them; that inverse is "a coordinate map, not an available observer read" (INTERFACE-CONTRACT.md:63-72). +- Under Native A, q10 at L+1 is the private Q10 pool cell. v13 replaces F10 by a pin and does not inherit that pool (EQUIVALENCE-OBLIGATIONS.md:57-58). +- The readout touches no register other than q10. But the result needs a new q10 access rule, plus v13's unadopted affine known-seed preparation contract. + +**Q3, reusability: insufficiently supported.** +- The checkpoint models no read interaction, no post-read evolution and no carrier or public-record law. Nothing about outgoing-carrier preservation follows. +- Across the 1456 q10.A laws: + - D depends on s on 4–16 contexts in every law; + - (B,D) depends on s on 12–24 contexts, and reveals s on all 24 contexts in 24 laws; + - **B is sign-free on every context in 8 laws.** Example [1,3,3,2,5,1]: E=(1,1⊕u,1⊕u), N=(u,1⊕mY,1). +- So reading A leaves an s-correlated residual given the seeds; this is a leak or disturbance hazard that was not tested. +- No surface claims a reusable interface or a quantum instrument; REPORT:122-126, PLAN:52-54 and HANDOFF:102-104 disclaim them. + +## Findings (file:line — issue — safe fix) +1. **REPORT.md:25 and CURRENT-HANDOFF.md:94: "All eight degree-one readouts succeed" is false.** There are 14 nonconstant degree-one readouts and 8 succeed. A⊕B⊕D and its complement fail, and REPORT:29-30 does not list them. checks.py `affine_readouts` lists only readouts that have solutions. Fix: "8 of the 14 degree-one readouts succeed", and list all six failures. +2. **CURRENT-HANDOFF.md:100-101 "the B and D fields depend on s in every q10.A law", and CHECKPOINT-CHECKS.json `native_decode_v14_scope` "B/D fields carry s in every q10.A law", overstate the result.** They are false for B: there are 8 counterexample laws. REPORT:61-62 is correct, because it reads the pair jointly. Fix: "(B,D) jointly, and D alone, depend on s on some context in every q10.A law; B alone is sign-free in 8 laws". +3. **The title and REPORT.md:32-34 ("carries s … into the outward port q10"), EQUIVALENCE-OBLIGATIONS.md:59-61 ("A fixed redundant readout succeeds") and HANDOFF:98-99 frame the result as delivery of the old sign through a port.** + - The winning readout is a single field, not a redundant one. + - Every target x⊕f(k) is equally decodable. + - q10 has no access rule. + - Fix: say "q10.A = x⊕f(k) for every affine seed function f under some law (s is f=u⊕a); q10 is a cell, not a permitted read". Add "review pending" at EQUIVALENCE:59. +4. **REPORT.md:52 "The second front is required", and the post-hoc E≡000 item placed inside result.json `verdict.second_front_required`.** Fix: restrict the wording to "no affine law with E≡000". Keep post-hoc items outside the verdict object in future groups. The result.json is not to be rewritten. +5. **EQUIVALENCE-OBLIGATIONS.md:4 ("Each has … a separate-agent internal review") and :33-34 (the plans are listed at 9e92ff42 only) are stale.** The v14 group is unreviewed, and its plan is at 36213be6. Fix: correct both lines forward. +6. **PLAN/REPORT control 5:** state that the sign-erased zero is guaranteed by construction. Add the constant-source and x⊕f relabelling countercontrols if a v14 revision is made. + +## Replay, integrity, mutation, voice +- **Author group replay:** the normal run and the `-O` run (68 s each) are both byte-identical to result.json, which is unchanged since 7f843073. +- **Manifests:** the top-level SHA256SUMS passes on 349 of 349 files; the v14 SHA256SUMS passes on 5 of 5. +- **PLAN.md** is unchanged after 36213be6, and its sha256 equals the provenance pin ac1f55b9…. +- **`94a4e6cc..cd9390a0`** changes, outside native_decode_v14/, only CHECKPOINT-CHECKS.json, CURRENT-HANDOFF.md, EQUIVALENCE-OBLIGATIONS.md, README.md, SHA256SUMS and replay.py. No earlier reviewed result file changed. +- **`replay.py --latest`:** run on a fresh export, it passes all five groups normally and with `-O`, plus the manifest (194 s). +- **Mutants of the author's checker, all caught:** + - contexts (1,0) excluded instead of (0,1): caught by control 4; + - kernel reads x=s⊕a: caught by control 2; + - solver B misses the current basis value: caught by control 2; + - table bits corrupted after the pin check: caught by control 4; + - readout ignores the s=0 condition: caught by control 3. +- **Post-hoc labelling:** REPORT:48-50 and PROVENANCE `post_plan_additions` are correct, apart from finding 4. +- **Voice:** no caps emphasis, revision-history phrasing or reader-instruction phrasing in the added lines. These files are verification records, so §A.32/§A.33 are applied as a style check. + +Files, all in rev910b/: `native_table.py`, `review_checks.py`, `q2_ticks.py`, `q_extra.py`, `q_plant2.py`, `make_mutants.py`, `out/`. The checker's normal and `-O` outputs are identical, sha256 f2164968…. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/make_mutants.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/make_mutants.py new file mode 100644 index 000000000..083346979 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/make_mutants.py @@ -0,0 +1,15 @@ +import sys +from pathlib import Path +base = Path(sys.argv[1]); src = (base/'native_decode_v14/checks.py').read_text() +muts = { + 'm1_contexts': ("if (k[3], k[4]) != (0, 1))", "if (k[3], k[4]) != (1, 0))"), + 'm2_sign_drop_u': ("x = s ^ k[0] ^ k[3]\n for w in range(64):\n q[s][j][w]", "x = s ^ k[3]\n for w in range(64):\n q[s][j][w]"), + 'm3_solverB_offbyone': (" for t in range(d + 1):\n if (e >> t) & 1:", " for t in range(d):\n if (e >> t) & 1:"), + 'm4_table_corrupt': ("table = [int(ch, 16) for ch in table_hex]", "table = [int(ch, 16) ^ (1 if i % 97 == 0 else 0) for i, ch in enumerate(table_hex)]"), + 'm5_readout_drop_s0': ("if not (d >> q[0][j][w]) & 1 and (d >> q[1][j][w]) & 1:", "if (d >> q[1][j][w]) & 1:"), +} +for name, (old, new) in muts.items(): + assert src.count(old) == 1, name + d = base/name; d.mkdir(exist_ok=True) + (d/'checks.py').write_text(src.replace(old, new)) + print(name) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/native_table.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/native_table.py new file mode 100644 index 000000000..5a96d61d6 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/native_table.py @@ -0,0 +1,339 @@ +"""Reviewer engine, part 1: regenerate the native_route_v13 q10 table. + +Written for the rev910b review. Imports no author or earlier-review code. +Field values are stored as three bit-planes (A, B, D), one Python int each, +one lane per assignment; the earlier review used interleaved 3-bit lanes and +memoised recursion, the author a strip evaluator. Here the upper cluster is +evaluated by an explicit backward dependency closure followed by a forward +sweep in time, the lower first front by a (y, z) dynamic programme. +Inherited (not re-derived): source positions/payloads of the upper cluster +and of the four first-front selector sources, and the two large-time period +reductions (upper strip 12*840^20, written proof reviewed in v13/review). +The lower-front period is re-measured exactly here (minimal cycle lengths). +""" +from itertools import product + +T = 185 +P = 12 * 840 ** 185 +S = P + T +R = S + 68 +L = R + 9 +NB = ((1, 0, 0), (-1, 0, 0), (0, 1, 0), (0, -1, 0), (0, 0, 1), (0, 0, -1)) + + +def need(ok, why): + if not ok: + raise SystemExit('CONTROL FAILED: ' + why) + + +def Hp(a, b, d): + # H(A,B,D) = (B, D, A xor B*D) on bit-planes + return b, d, a ^ (b & d) + + +def Hpow(v, k): + for _ in range(k % 12): + v = Hp(*v) + return v + + +def xor3(u, v): + return u[0] ^ v[0], u[1] ^ v[1], u[2] ^ v[2] + + +Z3 = (0, 0, 0) + + +def h_exponent_check(): + for q in range(8): + v = (q >> 2 & 1, q >> 1 & 1, q & 1) + w = v + for _ in range(12): + w = Hp(*w) + need(w == v, 'H^12 = id') + need(any(Hpow((q >> 2 & 1, q >> 1 & 1, q & 1), 6) != (q >> 2 & 1, q >> 1 & 1, q & 1) for q in range(8)), 'H^6 != id') + need(any(Hpow((q >> 2 & 1, q >> 1 & 1, q & 1), 4) != (q >> 2 & 1, q >> 1 & 1, q & 1) for q in range(8)), 'H^4 != id') + + +def planes(values): + """values: list of 3-bit codes 4A+2B+D, lane i -> planes.""" + a = b = d = 0 + for i, c in enumerate(values): + if c & 4: a |= 1 << i + if c & 2: b |= 1 << i + if c & 1: d |= 1 << i + return a, b, d + + +def code_at(v, i): + return ((v[0] >> i) & 1) << 2 | ((v[1] >> i) & 1) << 1 | ((v[2] >> i) & 1) + + +def manhattan(p, q): + return abs(p[0] - q[0]) + abs(p[1] - q[1]) + abs(p[2] - q[2]) + + +def native_closure(sources, requests): + """Exact native values at the requested (t, p) nodes by backward closure + + forward sweep. U_{t+1}(v) = U_{t-1}(v) xor H(xor_{w~v} U_t(w)), + U_0 = sources, U_{-1} = 0. Nodes outside every source cone are zero.""" + spos = list(sources) + + def live(t, p): + return t >= 0 and min(manhattan(p, q) for q in spos) <= t + + need_at = {} + frontier = {} + for t, p in requests: + if live(t, p): + frontier.setdefault(t, set()).add(p) + tmax = max(frontier) + for t in range(tmax, 0, -1): + cur = frontier.get(t, set()) + need_at[t] = cur + for p in cur: + if live(t - 2, p): + frontier.setdefault(t - 2, set()).add(p) + for d in NB: + q = (p[0] + d[0], p[1] + d[1], p[2] + d[2]) + if live(t - 1, q): + frontier.setdefault(t - 1, set()).add(q) + need_at[0] = frontier.get(0, set()) + val = {} + for p in need_at[0]: + val[0, p] = sources.get(p, Z3) + for t in range(1, tmax + 1): + for p in need_at.get(t, ()): + acc = Z3 + for d in NB: + q = (p[0] + d[0], p[1] + d[1], p[2] + d[2]) + w = val.get((t - 1, q)) + if w is not None: + acc = xor3(acc, w) + out = Hp(*acc) + w = val.get((t - 2, p)) + if w is not None: + out = xor3(out, w) + val[t, p] = out + nodes = len(val) + return {(t, p): val.get((t, p), Z3) for t, p in requests}, nodes + + +UPPER_LANES = [(u, a, b, n) for u in (0, 1) for a in (0, 1) for b in (0, 1) for n in range(8)] + + +def upper_sources(): + # Native B upper cluster in the reduced axial frame (x, y, n); N at n=-20. + def pl(f): + return planes([f(u, a, b, n) for u, a, b, n in UPPER_LANES]) + return { + (0, 0, 0): pl(lambda u, a, b, n: 4 * u + 1), # Q (u,0,1) + (0, 0, -14): pl(lambda u, a, b, n: 4 * u + u), # C (u,0,u) + (0, 0, -16): pl(lambda u, a, b, n: 4 * u + 2 * (1 ^ u) + 1), # G (u,1^u,1) + (0, 0, -18): pl(lambda u, a, b, n: 4 * (u ^ b) + 2 * a + (u ^ a)), # J + (1, 0, -17): pl(lambda u, a, b, n: 5 * (a ^ b)), # K+ + (-1, 0, -17): pl(lambda u, a, b, n: 7 * (a ^ b)), # K- + (0, 0, -20): pl(lambda u, a, b, n: n), # N + } + + +LOWER_LANES = [(x, e) for x in (0, 1) for e in range(8)] + + +def lower_front(gap_w=76, gap_e=78, ymax=176): + """F(y,z) on the first front x=0, t=y+z, from initial data on y+z=0: + O=(0,0,0) payload (0,x,0), W=(0,-gw,gw) payload 111, E=(0,-ge,ge) payload E. + F(y,z)=H(F(y-1,z) xor F(y,z-1)); returns dict over z in {gw,gw+1,ge}.""" + O = planes([2 * x for x, e in LOWER_LANES]) + Wv = planes([7 for _ in LOWER_LANES]) + Ev = planes([e for x, e in LOWER_LANES]) + init = {(0, 0): O, (-gap_w, gap_w): Wv, (-gap_e, gap_e): Ev} + F = {} + zmax = gap_e + for s_ in range(0, ymax + zmax + 1): # s_ = y + z + for z in range(0, zmax + 1): + y = s_ - z + if y < -gap_e or y > ymax: + continue + if s_ == 0: + F[y, z] = init.get((y, z), Z3) + else: + F[y, z] = Hp(*xor3(F.get((y - 1, z), Z3), F.get((y, z - 1), Z3))) + return F, O, Wv, Ev + + +def lower_period_check(): + """Exact minimal period of the joint (F(j,76),F(j,77),F(j,78)) sequence for j>=1 + per lane, forcing F(j,75) computed exactly from the O-only front.""" + F, O, Wv, Ev = lower_front(ymax=1) + # O-only first-front value at (j,75): binom(j+75,75) mod 2 * H^(j+75)(0,x,0) + # proof: single-source front values stay in {0, H^t v}; H(0)=0. + def forcing(j): + return Hpow(O, j + 75) if (j & 75) == 0 else Z3 + # verify the forcing formula on a direct O-only DP up to j=600 + Fo = {} + for s_ in range(0, 600 + 76): + for z in range(0, 76): + y = s_ - z + if y < 0 or y > 600: + continue + Fo[y, z] = O if s_ == 0 else Hp(*xor3(Fo.get((y - 1, z), Z3), Fo.get((y, z - 1), Z3))) + for j in range(0, 601): + need(Fo[j, 75] == forcing(j), 'O-only Lucas forcing formula') + start = (F[0, 76], F[0, 77], F[0, 78]) + periods = [] + for lane in range(16): + st = tuple(tuple((v >> lane) & 1 for v in lev) for lev in start) + def block(state): + f0, f1, f2 = state + for j in range(1, 385): + fj = forcing(j) + fl = tuple((v >> lane) & 1 for v in fj) + f0 = Hp(*xor3(f0, fl)) + f1 = Hp(*xor3(f1, f0)) + f2 = Hp(*xor3(f2, f1)) + return f0, f1, f2 + s0 = st + cyc = 0 + cur = s0 + while True: + cur = block(cur) + cyc += 1 + need(cyc <= 512, 'block map cycle bound') + if cur == s0: + break + periods.append(384 * cyc) + from math import lcm + per = 1 + for q in periods: + per = lcm(per, q) + need(P % per == 0, 'P divisible by exact lower period') + need((384 * 840 ** 3) % per == 0, 'exact lower period divides 384*840^3') + return per + + +def ball(c, r): + return [(c[0] + i, c[1] + j, c[2] + k) for i in range(-r, r + 1) for j in range(-r, r + 1) + for k in range(-r, r + 1) if abs(i) + abs(j) + abs(k) <= r] + + +ROWS = [(x, u, my, mr, a, b, e, n) for x, u, my, mr, a, b in product((0, 1), repeat=6) + for e in range(8) for n in range(8)] + + +def lucas3(ds): + acc = 0 + for q in ds: + if acc & q: + return False + acc |= q + return True + + +def q10_table(): + h_exponent_check() + need(P % (12 * 840 ** 20) == 0, 'upper strip period divides P') + # Upper requests in the reduced frame. + centre = (0, 0, 10) + balls = {-2: ball(centre, 10), -1: ball(centre, 11)} + req = [] + for dt, cells in balls.items(): + for p in cells: + req.append((253 + dt, (p[0], p[1], 253 - p[2]))) + up, nodes = native_closure(upper_sources(), req) + lf, O, Wv, Ev = lower_front() + lower_period = lower_period_check() + nrows = len(ROWS) + # expansion masks + umask = [0] * 64 + lmask = [0] * 16 + uidx = {r: i for i, r in enumerate(UPPER_LANES)} + for i, (x, u, my, mr, a, b, e, n) in enumerate(ROWS): + umask[uidx[u, a, b, n]] |= 1 << i + lmask[8 * x + e] |= 1 << i + + def expand(v, masks): + out = [] + for pl in v: + acc = 0 + j = 0 + while pl: + if pl & 1: + acc |= masks[j] + pl >>= 1 + j += 1 + out.append(acc) + return tuple(out) + + def rowplane(f): + m = 0 + for i, r in enumerate(ROWS): + if f(*r): + m |= 1 << i + return m + XM = rowplane(lambda x, u, my, mr, a, b, e, n: x) + MYM = rowplane(lambda x, u, my, mr, a, b, e, n: my) + MRM = rowplane(lambda x, u, my, mr, a, b, e, n: mr) + # first-front selector sources (local coords; absolute = (p0, S+p1, 68+p2)); all pure-B + signals = [((0, -S, -68), (0, XM, 0)), ((0, S, -68), (0, MYM ^ MRM, 0)), + ((T, P, -68), (0, MYM, 0)), ((-T, P, -68), (0, MRM, 0))] + lower_srcs_local = [(0, -S, -68), (0, -76 - S, 8), (0, -78 - S, 10)] # O, W, E in local coords + entries = {(0, -9, 8): (176, 76), (0, -10, 9): (175, 77), (0, -11, 10): (174, 78)} + upos = list(upper_sources()) + init = {} + sep_checked = 0 + for dt, cells in balls.items(): + t = R + dt + for p in cells: + rp = (p[0], p[1], 253 - p[2]) + ureach = min(manhattan(rp, q) for q in upos) <= 253 + dt + lreach = any(manhattan(p, q) <= t for q, _ in signals) or any(manhattan(p, q) <= t for q in lower_srcs_local) + need(not (ureach and lreach), 'upper/lower clusters overlap before R') + sep_checked += 1 + v = expand(up[253 + dt, rp], umask) + for q, bits in signals: + ds = tuple(abs(pi - qi) for pi, qi in zip(p, q)) + if sum(ds) <= t: + need(sum(ds) == t, 'selector only at first front') + if lucas3(ds): + v = xor3(v, Hpow(bits, t)) + if dt == -1 and p in entries: + j, z = entries[p] + need(v == (Hpow((0, XM, 0), t) if lucas3((0, S + p[1], 68 + p[2])) else Z3), 'entry: only O background') + v = expand(lf[j, z], lmask) + else: + # W/E reach no other cell of the two balls + for q in lower_srcs_local[1:]: + need(manhattan(p, q) > t, 'W/E reach outside entries') + init[dt, p] = v + # E entry exactly one cell + e_local = (0, -78 - S, 10) + hits = [(dt, p) for dt, cells in balls.items() for p in cells if manhattan(p, e_local) <= R + dt] + need(hits == [(-1, (0, -11, 10))], 'E enters only (0,-11,10) at R-1') + old = {p: init[-2, p] for p in balls[-2]} + now = {p: init[-1, p] for p in balls[-1]} + slices = {} + for tick in range(11): + nxt = {} + for p in ball(centre, 10 - tick): + acc = Z3 + for d in NB: + acc = xor3(acc, now[p[0] + d[0], p[1] + d[1], p[2] + d[2]]) + nxt[p] = xor3(old[p], Hp(*acc)) + slices[R + tick] = nxt + old, now = now, nxt + q10 = now[centre] + table = ''.join(format(code_at(q10, i), 'x') for i in range(nrows)) + q9 = slices[R + 9][(0, 0, 9)] + q9tab = ''.join(format(code_at(q9, i), 'x') for i in range(nrows)) + q10_ticks = {tick: ''.join(format(code_at(slices[R + tick][centre], i), 'x') for i in range(nrows)) for tick in range(11)} + q10_table.ticks = q10_ticks + return table, q9tab, {'upper_nodes': nodes, 'upper_requests': len(req), 'separation_cells': sep_checked, + 'lower_exact_period': lower_period} + + +if __name__ == '__main__': + import hashlib, time + t0 = time.time() + tab, q9tab, info = q10_table() + print(hashlib.sha256(tab.encode()).hexdigest(), info, round(time.time() - t0, 1)) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/author_O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/author_O.out new file mode 100644 index 000000000..893b1fd58 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/author_O.out @@ -0,0 +1 @@ +{"affine_maps_per_readout":68719476736,"contexts_u_mY_mR_a_b":[[0,0,0,0,0],[0,0,0,1,0],[0,0,0,1,1],[0,0,1,0,0],[0,0,1,1,0],[0,0,1,1,1],[0,1,0,0,0],[0,1,0,1,0],[0,1,0,1,1],[0,1,1,0,0],[0,1,1,1,0],[0,1,1,1,1],[1,0,0,0,0],[1,0,0,1,0],[1,0,0,1,1],[1,0,1,0,0],[1,0,1,1,0],[1,0,1,1,1],[1,1,0,0,0],[1,1,0,1,0],[1,1,0,1,1],[1,1,1,0,0],[1,1,1,1,0],[1,1,1,1,1]],"controls":{"input_pins":5,"planted_positive":{"field_coefficients":[37,12,55,41,22,7],"readout_bits":240,"solutions":1489},"raw_pair_reproduction":{"affine_E_prefixes":16,"joint_maps":0,"ordered_pairs":56},"restricted_brute_force":[{"features":["1","u"],"known_seed_readout_maps":2560,"maps":4096,"readouts_with_solutions":0,"table":"real","total_readout_solutions":0},{"features":["1","u","a"],"known_seed_readout_maps":143360,"maps":262144,"readouts_with_solutions":0,"table":"real","total_readout_solutions":0},{"features":["1","u","a"],"known_seed_readout_maps":149568,"maps":262144,"readouts_with_solutions":64,"table":"planted","total_readout_solutions":818}],"sign_erased_countercontrol":"zero for all 254 readouts and the diagnostic, both solvers","solution_sets_compared_and_table_checked":"all readouts, both solvers","solver_agreement_readouts":254},"feature_order":["1","u","mY","mR","a","b"],"inputs":{"native_route_v13/result.json":"762b9799db7448c4eecf2c994c8c68ff94e1be83a7f6884b4a36385505df5a02","native_route_v13/review/result.json":"73780def8505d68d1967936116a88a49d471eb32aeb83d528ff3cd41025ae6e4","q10_table_sha256":"b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc","review_table_sha256_agrees":true},"known_seed_readout_diagnostic":{"distinct_raw_pairs_used":6,"exists":true,"field_coefficients_EA_EB_ED_NA_NB_ND":[0,0,1,0,0,0],"raw_codes_s0_s1_per_context":[[5,4],[6,7],[2,1],[5,4],[5,4],[2,1],[5,4],[6,7],[2,1],[5,4],[5,4],[2,1],[1,0],[2,3],[1,0],[1,0],[1,0],[1,0],[1,0],[5,4],[1,0],[1,0],[7,6],[1,0]]},"plan_base":"94a4e6ccf18845af6c2d37cd797da1082f575d65","positive_readouts":[{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,5,7,7,6],"ones":3,"readout_bits":7,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[5,6,5,21,23,7],"ones":3,"readout_bits":11,"solutions":8},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,0,4,7,5],"ones":4,"readout_bits":15,"solutions":912},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,41,51,19,11,17],"ones":3,"readout_bits":25,"solutions":36},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,2,8,19,24],"ones":4,"readout_bits":27,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,9,17,33,56,56],"ones":3,"readout_bits":28,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,9,3,58,10,56],"ones":4,"readout_bits":29,"solutions":48},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,8,48,49,41,56],"ones":3,"readout_bits":37,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,18,9,25],"ones":3,"readout_bits":38,"solutions":56},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,32,19,8,8,17],"ones":4,"readout_bits":39,"solutions":12},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,42,3,19,41,43],"ones":3,"readout_bits":44,"solutions":4},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,3,8,24,26],"ones":4,"readout_bits":46,"solutions":32},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[16,5,5,22,7,18],"ones":5,"readout_bits":47,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,43,3,51,59,58],"ones":3,"readout_bits":52,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,56,24,41,57,34],"ones":4,"readout_bits":54,"solutions":28},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,26,26,42],"ones":3,"readout_bits":56,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[2,19,3,35,1,10],"ones":4,"readout_bits":57,"solutions":8},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,32,32,1,8],"ones":4,"readout_bits":60,"solutions":384},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[3,1,3,0,50,9],"ones":5,"readout_bits":62,"solutions":20},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[3,2,1,11,17,56],"ones":3,"readout_bits":67,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,10,3,3,27,26],"ones":3,"readout_bits":73,"solutions":28},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,3,25,40],"ones":4,"readout_bits":75,"solutions":40},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,8,48,56,19,27],"ones":4,"readout_bits":77,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,32,19,58,56,32],"ones":3,"readout_bits":81,"solutions":20},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,9,57,59,59],"ones":3,"readout_bits":88,"solutions":80},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[16,0,8,0,25,33],"ones":4,"readout_bits":89,"solutions":896},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[2,19,16,11,9,11],"ones":4,"readout_bits":90,"solutions":24},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,9,43,51,19],"ones":5,"readout_bits":91,"solutions":64},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,2,24,40,40,35],"ones":4,"readout_bits":92,"solutions":28},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,11,59,34,34],"ones":5,"readout_bits":93,"solutions":64},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[18,13,18,12,16,30],"ones":3,"readout_bits":98,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[18,19,0,34,8,58],"ones":4,"readout_bits":99,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,32,33,18,9,48],"ones":4,"readout_bits":102,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[32,13,44,19,63,46],"ones":3,"readout_bits":104,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,0,1,17,50,12],"ones":4,"readout_bits":106,"solutions":464},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[12,14,3,50,46,63],"ones":5,"readout_bits":107,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[4,7,4,21,23,7],"ones":3,"readout_bits":112,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[18,13,18,12,16,30],"ones":4,"readout_bits":114,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,3,9,27,9],"ones":4,"readout_bits":120,"solutions":64},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,9,9,27,32,59],"ones":5,"readout_bits":121,"solutions":44},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,34,0,25,59,48],"ones":5,"readout_bits":124,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,33,3,59,33,9],"ones":3,"readout_bits":131,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,51,11,2,42,48],"ones":3,"readout_bits":134,"solutions":68},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,51,49,19,8],"ones":4,"readout_bits":135,"solutions":64},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,2,26,57,1,51],"ones":3,"readout_bits":138,"solutions":4},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,42,34,34,35,11],"ones":4,"readout_bits":142,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,32,33,19,19,12],"ones":4,"readout_bits":149,"solutions":464},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[17,11,27,43,49,49],"ones":3,"readout_bits":152,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,32,2,50,43,32],"ones":4,"readout_bits":153,"solutions":4},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,0,1,8,16,25],"ones":4,"readout_bits":154,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,10,11,11,9],"ones":3,"readout_bits":162,"solutions":52},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,1,33,16,9,40],"ones":4,"readout_bits":163,"solutions":24},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,41,16,40,34,33],"ones":3,"readout_bits":164,"solutions":48},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,43,34,49,24,27],"ones":4,"readout_bits":165,"solutions":16},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[16,0,8,3,24,11],"ones":4,"readout_bits":166,"solutions":896},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,11,3,2,49,56],"ones":5,"readout_bits":167,"solutions":20},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,42,27,10,8,2],"ones":4,"readout_bits":172,"solutions":24},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,16,16,25],"ones":5,"readout_bits":174,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,0,51,25,10,0],"ones":4,"readout_bits":178,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,1,34,23,5],"ones":4,"readout_bits":180,"solutions":20},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,26,16,17,27,11],"ones":5,"readout_bits":182,"solutions":40},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,34,11,26,58,32],"ones":5,"readout_bits":188,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,26,3,19,57,24],"ones":3,"readout_bits":194,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,34,32,2,8],"ones":4,"readout_bits":195,"solutions":424},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[3,1,35,10,3,57],"ones":5,"readout_bits":199,"solutions":12},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,41,9,11,25,34],"ones":4,"readout_bits":201,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,33,3,8,48,50],"ones":5,"readout_bits":203,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,5,6,55,49],"ones":3,"readout_bits":208,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,51,50,57],"ones":4,"readout_bits":209,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,18,32,2,9],"ones":5,"readout_bits":211,"solutions":12},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,11,19,35,40,57],"ones":4,"readout_bits":216,"solutions":12},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,9,11,59,2,0],"ones":5,"readout_bits":217,"solutions":60},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,5,52,53,49],"ones":3,"readout_bits":224,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,9,49,56],"ones":4,"readout_bits":226,"solutions":20},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,10,2,19,1,10],"ones":4,"readout_bits":228,"solutions":12},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,35,48,3,27],"ones":5,"readout_bits":230,"solutions":36},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[51,11,43,58,9,59],"ones":6,"readout_bits":231,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,3,0,4,7,5],"ones":4,"readout_bits":240,"solutions":1456}],"post_hoc_degree_one_readouts":[{"E_constant":16,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,4,1,4,1,5],"fewest_seeds":["mY"],"raw_fields_xored":["A"],"readout_bits":15,"single_field_laws_with_sign_free_other_fields":0,"solutions":912},{"E_constant":0,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,3,3,0,2,8],"fewest_seeds":["u","mR"],"raw_fields_xored":["A","B"],"readout_bits":60,"single_field_laws_with_sign_free_other_fields":null,"solutions":384},{"E_constant":0,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[2,19,16,11,9,11],"fewest_seeds":["u","mR","a"],"raw_fields_xored":["A","D"],"readout_bits":90,"single_field_laws_with_sign_free_other_fields":null,"solutions":24},{"E_constant":0,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[8,32,33,18,9,48],"fewest_seeds":["u","mR","a","b"],"raw_fields_xored":["B","D"],"readout_bits":102,"single_field_laws_with_sign_free_other_fields":null,"solutions":8},{"E_constant":0,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[11,32,2,50,43,32],"fewest_seeds":["u","mR","a","b"],"raw_fields_xored":["B","D"],"readout_bits":153,"single_field_laws_with_sign_free_other_fields":null,"solutions":4},{"E_constant":0,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[8,43,34,49,24,27],"fewest_seeds":["u","mR","a","b"],"raw_fields_xored":["A","D"],"readout_bits":165,"single_field_laws_with_sign_free_other_fields":null,"solutions":16},{"E_constant":0,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,1,3,0,1,8],"fewest_seeds":["u","mR"],"raw_fields_xored":["A","B"],"readout_bits":195,"single_field_laws_with_sign_free_other_fields":null,"solutions":424},{"E_constant":8,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,1,4,1,5],"fewest_seeds":["mY"],"raw_fields_xored":["A"],"readout_bits":240,"single_field_laws_with_sign_free_other_fields":0,"solutions":1456}],"post_hoc_fresh_bit_on_q10A":{"constant_coefficient_deltas_EA_EB_ED_NA_NB_ND":[[[0,1,0,0,0,0],256],[[1,1,1,0,0,0],256]],"contexts_with_whole_triple_sign_hidden_counts":[[0,256],[4,256]],"pairs":512,"pairs_hiding_sign_in_all_contexts":0},"post_hoc_solution_structure":{"E_and_N_constant":0,"E_constant":40,"E_identically_000":0,"N_constant":0,"distinct_sign_raw_pairs_used_counts":[[6,16],[7,680],[8,6768]],"fewest_sign_raw_pairs":{"count":6,"field_coefficients_EA_EB_ED_NA_NB_ND":[18,2,16,9,3,26],"readout_bits":28},"seed_support_counts":[[["mR","a"],4],[["mR","a","b"],118],[["mR","b"],2],[["mY"],4],[["mY","a"],8],[["mY","a","b"],50],[["mY","b"],6],[["mY","mR","a","b"],8],[["u","mR"],7],[["u","mR","a"],223],[["u","mR","a","b"],3653],[["u","mR","b"],65],[["u","mY"],94],[["u","mY","a"],246],[["u","mY","a","b"],1548],[["u","mY","b"],220],[["u","mY","mR"],16],[["u","mY","mR","a"],104],[["u","mY","mR","a","b"],1040],[["u","mY","mR","b"],48]],"solutions":7464},"readout_encoding":"bit c of readout_bits is the readout of raw code c=4A+2B+D","readout_solution_counts":[0,0,0,0,0,0,8,0,0,0,8,0,0,0,912,0,0,0,0,0,0,0,0,0,36,0,8,24,48,0,0,0,0,0,0,0,4,56,12,0,0,0,0,4,0,32,16,0,0,0,0,24,0,28,0,8,8,0,0,384,0,20,0,0,0,0,4,0,0,0,0,0,28,0,40,0,4,0,0,0,20,0,0,0,0,0,0,80,896,24,64,28,64,0,0,0,0,8,4,0,0,8,0,8,0,464,8,0,0,0,0,8,0,8,0,0,0,0,0,64,44,0,0,16,0,0,0,0,0,0,8,0,0,68,64,0,0,4,0,0,0,8,0,0,0,0,0,0,464,0,0,4,4,16,0,0,0,0,0,0,0,52,24,48,16,896,20,0,0,0,0,24,0,24,0,0,0,24,0,20,0,40,0,0,0,0,0,8,0,0,0,0,0,4,424,0,0,0,12,0,4,0,8,0,0,0,0,8,16,0,12,0,0,0,0,12,60,0,0,0,0,0,0,8,0,20,0,12,0,36,4,0,0,0,0,0,0,0,0,1456,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"readouts_with_solutions":78,"schema":"oi.native-redundant-q10-readout.v14","source_field_order":"w=8*Ecode+Ncode; fields EA,EB,ED,NA,NB,ND are bits 5..0 of w","total_readout_solutions":7464,"verdict":{"acceptance_predicate":"not constructed","downstream_native_gate_on_readout_classes":"not tested","fixed_q10_readout":"fixed redundant q10 readout with jointly affine E,N exists in this geometry","known_seed_dependent_readout":"exists (not a fixed-readout delivery)","other_layouts_fresh_seed_multicell_readouts":"not tested","second_front_required":"every solution has nonzero E","single_raw_field_readouts":["q10.A complemented under 912 jointly affine laws","q10.A under 1456 jointly affine laws"]}} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/author_normal.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/author_normal.out new file mode 100644 index 000000000..893b1fd58 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/author_normal.out @@ -0,0 +1 @@ +{"affine_maps_per_readout":68719476736,"contexts_u_mY_mR_a_b":[[0,0,0,0,0],[0,0,0,1,0],[0,0,0,1,1],[0,0,1,0,0],[0,0,1,1,0],[0,0,1,1,1],[0,1,0,0,0],[0,1,0,1,0],[0,1,0,1,1],[0,1,1,0,0],[0,1,1,1,0],[0,1,1,1,1],[1,0,0,0,0],[1,0,0,1,0],[1,0,0,1,1],[1,0,1,0,0],[1,0,1,1,0],[1,0,1,1,1],[1,1,0,0,0],[1,1,0,1,0],[1,1,0,1,1],[1,1,1,0,0],[1,1,1,1,0],[1,1,1,1,1]],"controls":{"input_pins":5,"planted_positive":{"field_coefficients":[37,12,55,41,22,7],"readout_bits":240,"solutions":1489},"raw_pair_reproduction":{"affine_E_prefixes":16,"joint_maps":0,"ordered_pairs":56},"restricted_brute_force":[{"features":["1","u"],"known_seed_readout_maps":2560,"maps":4096,"readouts_with_solutions":0,"table":"real","total_readout_solutions":0},{"features":["1","u","a"],"known_seed_readout_maps":143360,"maps":262144,"readouts_with_solutions":0,"table":"real","total_readout_solutions":0},{"features":["1","u","a"],"known_seed_readout_maps":149568,"maps":262144,"readouts_with_solutions":64,"table":"planted","total_readout_solutions":818}],"sign_erased_countercontrol":"zero for all 254 readouts and the diagnostic, both solvers","solution_sets_compared_and_table_checked":"all readouts, both solvers","solver_agreement_readouts":254},"feature_order":["1","u","mY","mR","a","b"],"inputs":{"native_route_v13/result.json":"762b9799db7448c4eecf2c994c8c68ff94e1be83a7f6884b4a36385505df5a02","native_route_v13/review/result.json":"73780def8505d68d1967936116a88a49d471eb32aeb83d528ff3cd41025ae6e4","q10_table_sha256":"b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc","review_table_sha256_agrees":true},"known_seed_readout_diagnostic":{"distinct_raw_pairs_used":6,"exists":true,"field_coefficients_EA_EB_ED_NA_NB_ND":[0,0,1,0,0,0],"raw_codes_s0_s1_per_context":[[5,4],[6,7],[2,1],[5,4],[5,4],[2,1],[5,4],[6,7],[2,1],[5,4],[5,4],[2,1],[1,0],[2,3],[1,0],[1,0],[1,0],[1,0],[1,0],[5,4],[1,0],[1,0],[7,6],[1,0]]},"plan_base":"94a4e6ccf18845af6c2d37cd797da1082f575d65","positive_readouts":[{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,5,7,7,6],"ones":3,"readout_bits":7,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[5,6,5,21,23,7],"ones":3,"readout_bits":11,"solutions":8},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,0,4,7,5],"ones":4,"readout_bits":15,"solutions":912},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,41,51,19,11,17],"ones":3,"readout_bits":25,"solutions":36},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,2,8,19,24],"ones":4,"readout_bits":27,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,9,17,33,56,56],"ones":3,"readout_bits":28,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,9,3,58,10,56],"ones":4,"readout_bits":29,"solutions":48},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,8,48,49,41,56],"ones":3,"readout_bits":37,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,18,9,25],"ones":3,"readout_bits":38,"solutions":56},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,32,19,8,8,17],"ones":4,"readout_bits":39,"solutions":12},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,42,3,19,41,43],"ones":3,"readout_bits":44,"solutions":4},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,3,8,24,26],"ones":4,"readout_bits":46,"solutions":32},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[16,5,5,22,7,18],"ones":5,"readout_bits":47,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,43,3,51,59,58],"ones":3,"readout_bits":52,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,56,24,41,57,34],"ones":4,"readout_bits":54,"solutions":28},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,26,26,42],"ones":3,"readout_bits":56,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[2,19,3,35,1,10],"ones":4,"readout_bits":57,"solutions":8},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,32,32,1,8],"ones":4,"readout_bits":60,"solutions":384},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[3,1,3,0,50,9],"ones":5,"readout_bits":62,"solutions":20},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[3,2,1,11,17,56],"ones":3,"readout_bits":67,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,10,3,3,27,26],"ones":3,"readout_bits":73,"solutions":28},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,3,25,40],"ones":4,"readout_bits":75,"solutions":40},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,8,48,56,19,27],"ones":4,"readout_bits":77,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,32,19,58,56,32],"ones":3,"readout_bits":81,"solutions":20},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,9,57,59,59],"ones":3,"readout_bits":88,"solutions":80},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[16,0,8,0,25,33],"ones":4,"readout_bits":89,"solutions":896},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[2,19,16,11,9,11],"ones":4,"readout_bits":90,"solutions":24},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,9,43,51,19],"ones":5,"readout_bits":91,"solutions":64},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,2,24,40,40,35],"ones":4,"readout_bits":92,"solutions":28},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,11,59,34,34],"ones":5,"readout_bits":93,"solutions":64},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[18,13,18,12,16,30],"ones":3,"readout_bits":98,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[18,19,0,34,8,58],"ones":4,"readout_bits":99,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,32,33,18,9,48],"ones":4,"readout_bits":102,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[32,13,44,19,63,46],"ones":3,"readout_bits":104,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,0,1,17,50,12],"ones":4,"readout_bits":106,"solutions":464},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[12,14,3,50,46,63],"ones":5,"readout_bits":107,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[4,7,4,21,23,7],"ones":3,"readout_bits":112,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[18,13,18,12,16,30],"ones":4,"readout_bits":114,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,3,9,27,9],"ones":4,"readout_bits":120,"solutions":64},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,9,9,27,32,59],"ones":5,"readout_bits":121,"solutions":44},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,34,0,25,59,48],"ones":5,"readout_bits":124,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,33,3,59,33,9],"ones":3,"readout_bits":131,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,51,11,2,42,48],"ones":3,"readout_bits":134,"solutions":68},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,51,49,19,8],"ones":4,"readout_bits":135,"solutions":64},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,2,26,57,1,51],"ones":3,"readout_bits":138,"solutions":4},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,42,34,34,35,11],"ones":4,"readout_bits":142,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,32,33,19,19,12],"ones":4,"readout_bits":149,"solutions":464},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[17,11,27,43,49,49],"ones":3,"readout_bits":152,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,32,2,50,43,32],"ones":4,"readout_bits":153,"solutions":4},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,0,1,8,16,25],"ones":4,"readout_bits":154,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,10,11,11,9],"ones":3,"readout_bits":162,"solutions":52},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,1,33,16,9,40],"ones":4,"readout_bits":163,"solutions":24},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,41,16,40,34,33],"ones":3,"readout_bits":164,"solutions":48},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,43,34,49,24,27],"ones":4,"readout_bits":165,"solutions":16},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[16,0,8,3,24,11],"ones":4,"readout_bits":166,"solutions":896},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,11,3,2,49,56],"ones":5,"readout_bits":167,"solutions":20},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,42,27,10,8,2],"ones":4,"readout_bits":172,"solutions":24},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,16,16,25],"ones":5,"readout_bits":174,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,0,51,25,10,0],"ones":4,"readout_bits":178,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,1,34,23,5],"ones":4,"readout_bits":180,"solutions":20},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,26,16,17,27,11],"ones":5,"readout_bits":182,"solutions":40},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,34,11,26,58,32],"ones":5,"readout_bits":188,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,26,3,19,57,24],"ones":3,"readout_bits":194,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,34,32,2,8],"ones":4,"readout_bits":195,"solutions":424},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[3,1,35,10,3,57],"ones":5,"readout_bits":199,"solutions":12},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,41,9,11,25,34],"ones":4,"readout_bits":201,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,33,3,8,48,50],"ones":5,"readout_bits":203,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,5,6,55,49],"ones":3,"readout_bits":208,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,51,50,57],"ones":4,"readout_bits":209,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,18,32,2,9],"ones":5,"readout_bits":211,"solutions":12},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,11,19,35,40,57],"ones":4,"readout_bits":216,"solutions":12},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,9,11,59,2,0],"ones":5,"readout_bits":217,"solutions":60},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,5,52,53,49],"ones":3,"readout_bits":224,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,9,49,56],"ones":4,"readout_bits":226,"solutions":20},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,10,2,19,1,10],"ones":4,"readout_bits":228,"solutions":12},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,35,48,3,27],"ones":5,"readout_bits":230,"solutions":36},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[51,11,43,58,9,59],"ones":6,"readout_bits":231,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,3,0,4,7,5],"ones":4,"readout_bits":240,"solutions":1456}],"post_hoc_degree_one_readouts":[{"E_constant":16,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,4,1,4,1,5],"fewest_seeds":["mY"],"raw_fields_xored":["A"],"readout_bits":15,"single_field_laws_with_sign_free_other_fields":0,"solutions":912},{"E_constant":0,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,3,3,0,2,8],"fewest_seeds":["u","mR"],"raw_fields_xored":["A","B"],"readout_bits":60,"single_field_laws_with_sign_free_other_fields":null,"solutions":384},{"E_constant":0,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[2,19,16,11,9,11],"fewest_seeds":["u","mR","a"],"raw_fields_xored":["A","D"],"readout_bits":90,"single_field_laws_with_sign_free_other_fields":null,"solutions":24},{"E_constant":0,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[8,32,33,18,9,48],"fewest_seeds":["u","mR","a","b"],"raw_fields_xored":["B","D"],"readout_bits":102,"single_field_laws_with_sign_free_other_fields":null,"solutions":8},{"E_constant":0,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[11,32,2,50,43,32],"fewest_seeds":["u","mR","a","b"],"raw_fields_xored":["B","D"],"readout_bits":153,"single_field_laws_with_sign_free_other_fields":null,"solutions":4},{"E_constant":0,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[8,43,34,49,24,27],"fewest_seeds":["u","mR","a","b"],"raw_fields_xored":["A","D"],"readout_bits":165,"single_field_laws_with_sign_free_other_fields":null,"solutions":16},{"E_constant":0,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,1,3,0,1,8],"fewest_seeds":["u","mR"],"raw_fields_xored":["A","B"],"readout_bits":195,"single_field_laws_with_sign_free_other_fields":null,"solutions":424},{"E_constant":8,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,1,4,1,5],"fewest_seeds":["mY"],"raw_fields_xored":["A"],"readout_bits":240,"single_field_laws_with_sign_free_other_fields":0,"solutions":1456}],"post_hoc_fresh_bit_on_q10A":{"constant_coefficient_deltas_EA_EB_ED_NA_NB_ND":[[[0,1,0,0,0,0],256],[[1,1,1,0,0,0],256]],"contexts_with_whole_triple_sign_hidden_counts":[[0,256],[4,256]],"pairs":512,"pairs_hiding_sign_in_all_contexts":0},"post_hoc_solution_structure":{"E_and_N_constant":0,"E_constant":40,"E_identically_000":0,"N_constant":0,"distinct_sign_raw_pairs_used_counts":[[6,16],[7,680],[8,6768]],"fewest_sign_raw_pairs":{"count":6,"field_coefficients_EA_EB_ED_NA_NB_ND":[18,2,16,9,3,26],"readout_bits":28},"seed_support_counts":[[["mR","a"],4],[["mR","a","b"],118],[["mR","b"],2],[["mY"],4],[["mY","a"],8],[["mY","a","b"],50],[["mY","b"],6],[["mY","mR","a","b"],8],[["u","mR"],7],[["u","mR","a"],223],[["u","mR","a","b"],3653],[["u","mR","b"],65],[["u","mY"],94],[["u","mY","a"],246],[["u","mY","a","b"],1548],[["u","mY","b"],220],[["u","mY","mR"],16],[["u","mY","mR","a"],104],[["u","mY","mR","a","b"],1040],[["u","mY","mR","b"],48]],"solutions":7464},"readout_encoding":"bit c of readout_bits is the readout of raw code c=4A+2B+D","readout_solution_counts":[0,0,0,0,0,0,8,0,0,0,8,0,0,0,912,0,0,0,0,0,0,0,0,0,36,0,8,24,48,0,0,0,0,0,0,0,4,56,12,0,0,0,0,4,0,32,16,0,0,0,0,24,0,28,0,8,8,0,0,384,0,20,0,0,0,0,4,0,0,0,0,0,28,0,40,0,4,0,0,0,20,0,0,0,0,0,0,80,896,24,64,28,64,0,0,0,0,8,4,0,0,8,0,8,0,464,8,0,0,0,0,8,0,8,0,0,0,0,0,64,44,0,0,16,0,0,0,0,0,0,8,0,0,68,64,0,0,4,0,0,0,8,0,0,0,0,0,0,464,0,0,4,4,16,0,0,0,0,0,0,0,52,24,48,16,896,20,0,0,0,0,24,0,24,0,0,0,24,0,20,0,40,0,0,0,0,0,8,0,0,0,0,0,4,424,0,0,0,12,0,4,0,8,0,0,0,0,8,16,0,12,0,0,0,0,12,60,0,0,0,0,0,0,8,0,20,0,12,0,36,4,0,0,0,0,0,0,0,0,1456,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"readouts_with_solutions":78,"schema":"oi.native-redundant-q10-readout.v14","source_field_order":"w=8*Ecode+Ncode; fields EA,EB,ED,NA,NB,ND are bits 5..0 of w","total_readout_solutions":7464,"verdict":{"acceptance_predicate":"not constructed","downstream_native_gate_on_readout_classes":"not tested","fixed_q10_readout":"fixed redundant q10 readout with jointly affine E,N exists in this geometry","known_seed_dependent_readout":"exists (not a fixed-readout delivery)","other_layouts_fresh_seed_multicell_readouts":"not tested","second_front_required":"every solution has nonzero E","single_raw_field_readouts":["q10.A complemented under 912 jointly affine laws","q10.A under 1456 jointly affine laws"]}} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m1_contexts.err b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m1_contexts.err new file mode 100644 index 000000000..a15187350 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m1_contexts.err @@ -0,0 +1,13 @@ +Traceback (most recent call last): + File "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/m1_contexts/checks.py", line 644, in + main() + ~~~~^^ + File "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/m1_contexts/checks.py", line 531, in main + need(sa_e.prefix3 == (ref['affine_E_maps_after_constraints'] if ref else 0), + ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 'E prefix count %d%d' % (o0, o1)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/m1_contexts/checks.py", line 29, in need + raise RuntimeError('control failed: ' + label) +RuntimeError: control failed: E prefix count 05 +rc=1 diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m1_contexts.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m1_contexts.out new file mode 100644 index 000000000..e69de29bb diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m2_sign_drop_u.err b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m2_sign_drop_u.err new file mode 100644 index 000000000..635afcfa4 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m2_sign_drop_u.err @@ -0,0 +1,11 @@ +Traceback (most recent call last): + File "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/m2_sign_drop_u/checks.py", line 644, in + main() + ~~~~^^ + File "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/m2_sign_drop_u/checks.py", line 492, in main + need(planted_coeffs in found_a, 'solver A recovers planted law') + ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/m2_sign_drop_u/checks.py", line 29, in need + raise RuntimeError('control failed: ' + label) +RuntimeError: control failed: solver A recovers planted law +rc=1 diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m2_sign_drop_u.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m2_sign_drop_u.out new file mode 100644 index 000000000..e69de29bb diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m3_solverB_offbyone.err b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m3_solverB_offbyone.err new file mode 100644 index 000000000..713effb36 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m3_solverB_offbyone.err @@ -0,0 +1,11 @@ +Traceback (most recent call last): + File "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/m3_solverB_offbyone/checks.py", line 644, in + main() + ~~~~^^ + File "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/m3_solverB_offbyone/checks.py", line 490, in main + need(count_a == count_b and count_a >= 1, 'planted counts agree and are positive') + ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/m3_solverB_offbyone/checks.py", line 29, in need + raise RuntimeError('control failed: ' + label) +RuntimeError: control failed: planted counts agree and are positive +rc=1 diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m3_solverB_offbyone.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m3_solverB_offbyone.out new file mode 100644 index 000000000..e69de29bb diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m4_table_corrupt.err b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m4_table_corrupt.err new file mode 100644 index 000000000..6e6f1e7b9 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m4_table_corrupt.err @@ -0,0 +1,13 @@ +Traceback (most recent call last): + File "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/m4_table_corrupt/checks.py", line 644, in + main() + ~~~~^^ + File "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/m4_table_corrupt/checks.py", line 531, in main + need(sa_e.prefix3 == (ref['affine_E_maps_after_constraints'] if ref else 0), + ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + 'E prefix count %d%d' % (o0, o1)) + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/m4_table_corrupt/checks.py", line 29, in need + raise RuntimeError('control failed: ' + label) +RuntimeError: control failed: E prefix count 14 +rc=1 diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m4_table_corrupt.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m4_table_corrupt.out new file mode 100644 index 000000000..e69de29bb diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m5_readout_drop_s0.err b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m5_readout_drop_s0.err new file mode 100644 index 000000000..40a4f6818 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m5_readout_drop_s0.err @@ -0,0 +1,11 @@ +Traceback (most recent call last): + File "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/m5_readout_drop_s0/checks.py", line 644, in + main() + ~~~~^^ + File "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/m5_readout_drop_s0/checks.py", line 511, in main + need(ca == bf_counts and cb == bf_counts, 'brute force per-readout counts %s %s' % (label, chosen)) + ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + File "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/m5_readout_drop_s0/checks.py", line 29, in need + raise RuntimeError('control failed: ' + label) +RuntimeError: control failed: brute force per-readout counts real (0, 1) +rc=1 diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m5_readout_drop_s0.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/m5_readout_drop_s0.out new file mode 100644 index 000000000..e69de29bb diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/q2_ticks.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/q2_ticks.out new file mode 100644 index 000000000..51d8ef314 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/q2_ticks.out @@ -0,0 +1,14 @@ +{ + "R+8": { + "rows_depending_on_E_or_N": 0, + "fixed_readout_solutions_all_254": 0 + }, + "R+9 (=L)": { + "rows_depending_on_E_or_N": 0, + "fixed_readout_solutions_all_254": 0 + }, + "R+10 (=L+1)": { + "rows_depending_on_E_or_N": 3584, + "fixed_readout_solutions_all_254": 7464 + } +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/q_extra.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/q_extra.out new file mode 100644 index 000000000..72bec5842 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/q_extra.out @@ -0,0 +1,107 @@ +{ + "author_planted_as_columns": { + "1": 45, + "u": 11, + "mY": 59, + "mR": 20, + "a": 10, + "b": 44 + }, + "planted_count_mine": [ + 1489, + true + ], + "planted_count_author": [ + 1489, + true + ], + "qA_equals_x_laws": 992, + "qA_equals_x_fewest_seed_law_fields": [ + 1, + 4, + 1, + 4, + 0, + 16 + ], + "qA_equals_x_direct_ok": true, + "qA_laws_B_sign_free": [ + [ + 1, + 3, + 3, + 2, + 5, + 1 + ], + [ + 1, + 3, + 3, + 2, + 6, + 1 + ], + [ + 1, + 3, + 3, + 2, + 20, + 1 + ], + [ + 1, + 3, + 3, + 2, + 23, + 1 + ], + [ + 1, + 3, + 3, + 2, + 37, + 1 + ], + [ + 1, + 3, + 3, + 2, + 38, + 1 + ], + [ + 1, + 3, + 3, + 2, + 52, + 1 + ], + [ + 1, + 3, + 3, + 2, + 55, + 1 + ] + ], + "mY_law_contexts_B_dep": 12, + "mY_law_contexts_D_dep": 6, + "mY_law_E_N_codes_mY0_mY1": [ + [ + 7, + 3 + ], + [ + 5, + 6 + ] + ], + "mY_law_A_equals_s_on_rejected_contexts": 0 +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/q_plant2.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/q_plant2.out new file mode 100644 index 000000000..ad5a8c55f --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/q_plant2.out @@ -0,0 +1 @@ +{"total": 818, "readouts": 64, "diagnostic": 149568} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/review_checks.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/review_checks.out new file mode 100644 index 000000000..e2507907f --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/review_checks.out @@ -0,0 +1,250 @@ +{ + "Q1": { + "E_forced_000_any_readout": 0, + "constant_sources_qA": 0, + "constant_sources_total_solutions": 0, + "qA_depends_on_x_rows_of_1536": 768, + "qA_target_counts_x_xor_f": { + "000000": 992, + "000001": 1376, + "000010": 1376, + "000011": 992, + "000100": 512, + "000101": 512, + "000110": 512, + "000111": 512, + "001000": 2016, + "001001": 2016, + "001010": 2016, + "001011": 2016, + "001100": 512, + "001101": 512, + "001110": 512, + "001111": 512, + "010000": 912, + "010001": 1456, + "010010": 1456, + "010011": 912, + "010100": 512, + "010101": 512, + "010110": 512, + "010111": 512, + "011000": 2016, + "011001": 2016, + "011010": 2016, + "011011": 2016, + "011100": 512, + "011101": 512, + "011110": 512, + "011111": 512, + "100000": 1376, + "100001": 992, + "100010": 992, + "100011": 1376, + "100100": 512, + "100101": 512, + "100110": 512, + "100111": 512, + "101000": 2016, + "101001": 2016, + "101010": 2016, + "101011": 2016, + "101100": 512, + "101101": 512, + "101110": 512, + "101111": 512, + "110000": 1456, + "110001": 912, + "110010": 912, + "110011": 1456, + "110100": 512, + "110101": 512, + "110110": 512, + "110111": 512, + "111000": 2016, + "111001": 2016, + "111010": 2016, + "111011": 2016, + "111100": 512, + "111101": 512, + "111110": 512, + "111111": 512 + }, + "qA_targets_x_xor_affine_seed_fn_nonzero": 64, + "s_dependent_sources_qA_laws_of_2^42": 25160, + "s_only_sources_qA_laws": 0, + "sign_erased_diagnostic": 0, + "sign_erased_total": 0 + }, + "Q3": { + "laws": 1456, + "laws_BD_reveal_s_on_all_24_contexts": 24, + "laws_with_BD_sign_free_all_contexts": 0, + "laws_with_B_sign_free_all_contexts": 8, + "laws_with_D_sign_free_all_contexts": 0, + "min_max_contexts_BD_depend_on_s": [ + 12, + 24 + ], + "min_max_contexts_B_depends_on_s": [ + 0, + 24 + ], + "min_max_contexts_D_depends_on_s": [ + 4, + 16 + ] + }, + "author_per_readout_counts_equal": true, + "controls": { + "brute_force_label_features_total_readouts_diagnostic": [ + [ + "real", + [ + "1", + "u" + ], + 0, + 0, + 2560 + ], + [ + "real", + [ + "1", + "u", + "a" + ], + 0, + 0, + 143360 + ], + [ + "real", + [ + "1", + "mY", + "mR" + ], + 4, + 2, + 45568 + ], + [ + "real", + [ + "1", + "a", + "b" + ], + 0, + 0, + 150528 + ], + [ + "planted", + [ + "1", + "u", + "a" + ], + 804, + 64, + 146944 + ], + [ + "planted", + [ + "1", + "mY", + "b" + ], + 89, + 65, + 115968 + ] + ], + "planted_full_rank_qA_count": 1489, + "raw_pair": { + "affine_E_maps": 16, + "common_injective_pairs": 32, + "joint": 0 + } + }, + "degree_one_counts": { + "A": 1456, + "A^B": 384, + "A^B^D": 0, + "A^D": 24, + "B": 0, + "B^D": 8, + "D": 0, + "NOT A": 912, + "NOT A^B": 424, + "NOT A^B^D": 0, + "NOT A^D": 16, + "NOT B": 0, + "NOT B^D": 4, + "NOT D": 0 + }, + "degree_one_total": 14, + "diagnostic_const_E001_N000_distinct_pairs": 6, + "diagnostic_const_E001_N000_ok": true, + "diagnostic_count_full": 9827254272, + "mY_only_law_present": true, + "native_table": { + "E0_rows_match_native_B": 512, + "lower_exact_period": 1152, + "rows": 4096, + "separation_cells": 3608, + "sha256": "b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc", + "upper_nodes": 383207, + "upper_requests": 3608 + }, + "positive_by_degree": { + "1": 8, + "2": 29, + "3": 41 + }, + "qA_equals_s_laws": 1456, + "qA_seed_support_sizes": { + "1": 2, + "2": 54, + "3": 318, + "4": 938, + "5": 144 + }, + "qA_single_seed_laws": [ + [ + [ + "mY" + ], + [ + 1, + 5, + 1, + 4, + 1, + 5 + ] + ], + [ + [ + "mY" + ], + [ + 1, + 5, + 5, + 4, + 5, + 1 + ] + ] + ], + "readouts_with_solutions": 78, + "solutions_E_constant": 40, + "solutions_E_identically_000": 0, + "solutions_N_constant": 0, + "total_solutions": 7464 +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/review_checks_O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/review_checks_O.out new file mode 100644 index 000000000..e2507907f --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/out/review_checks_O.out @@ -0,0 +1,250 @@ +{ + "Q1": { + "E_forced_000_any_readout": 0, + "constant_sources_qA": 0, + "constant_sources_total_solutions": 0, + "qA_depends_on_x_rows_of_1536": 768, + "qA_target_counts_x_xor_f": { + "000000": 992, + "000001": 1376, + "000010": 1376, + "000011": 992, + "000100": 512, + "000101": 512, + "000110": 512, + "000111": 512, + "001000": 2016, + "001001": 2016, + "001010": 2016, + "001011": 2016, + "001100": 512, + "001101": 512, + "001110": 512, + "001111": 512, + "010000": 912, + "010001": 1456, + "010010": 1456, + "010011": 912, + "010100": 512, + "010101": 512, + "010110": 512, + "010111": 512, + "011000": 2016, + "011001": 2016, + "011010": 2016, + "011011": 2016, + "011100": 512, + "011101": 512, + "011110": 512, + "011111": 512, + "100000": 1376, + "100001": 992, + "100010": 992, + "100011": 1376, + "100100": 512, + "100101": 512, + "100110": 512, + "100111": 512, + "101000": 2016, + "101001": 2016, + "101010": 2016, + "101011": 2016, + "101100": 512, + "101101": 512, + "101110": 512, + "101111": 512, + "110000": 1456, + "110001": 912, + "110010": 912, + "110011": 1456, + "110100": 512, + "110101": 512, + "110110": 512, + "110111": 512, + "111000": 2016, + "111001": 2016, + "111010": 2016, + "111011": 2016, + "111100": 512, + "111101": 512, + "111110": 512, + "111111": 512 + }, + "qA_targets_x_xor_affine_seed_fn_nonzero": 64, + "s_dependent_sources_qA_laws_of_2^42": 25160, + "s_only_sources_qA_laws": 0, + "sign_erased_diagnostic": 0, + "sign_erased_total": 0 + }, + "Q3": { + "laws": 1456, + "laws_BD_reveal_s_on_all_24_contexts": 24, + "laws_with_BD_sign_free_all_contexts": 0, + "laws_with_B_sign_free_all_contexts": 8, + "laws_with_D_sign_free_all_contexts": 0, + "min_max_contexts_BD_depend_on_s": [ + 12, + 24 + ], + "min_max_contexts_B_depends_on_s": [ + 0, + 24 + ], + "min_max_contexts_D_depends_on_s": [ + 4, + 16 + ] + }, + "author_per_readout_counts_equal": true, + "controls": { + "brute_force_label_features_total_readouts_diagnostic": [ + [ + "real", + [ + "1", + "u" + ], + 0, + 0, + 2560 + ], + [ + "real", + [ + "1", + "u", + "a" + ], + 0, + 0, + 143360 + ], + [ + "real", + [ + "1", + "mY", + "mR" + ], + 4, + 2, + 45568 + ], + [ + "real", + [ + "1", + "a", + "b" + ], + 0, + 0, + 150528 + ], + [ + "planted", + [ + "1", + "u", + "a" + ], + 804, + 64, + 146944 + ], + [ + "planted", + [ + "1", + "mY", + "b" + ], + 89, + 65, + 115968 + ] + ], + "planted_full_rank_qA_count": 1489, + "raw_pair": { + "affine_E_maps": 16, + "common_injective_pairs": 32, + "joint": 0 + } + }, + "degree_one_counts": { + "A": 1456, + "A^B": 384, + "A^B^D": 0, + "A^D": 24, + "B": 0, + "B^D": 8, + "D": 0, + "NOT A": 912, + "NOT A^B": 424, + "NOT A^B^D": 0, + "NOT A^D": 16, + "NOT B": 0, + "NOT B^D": 4, + "NOT D": 0 + }, + "degree_one_total": 14, + "diagnostic_const_E001_N000_distinct_pairs": 6, + "diagnostic_const_E001_N000_ok": true, + "diagnostic_count_full": 9827254272, + "mY_only_law_present": true, + "native_table": { + "E0_rows_match_native_B": 512, + "lower_exact_period": 1152, + "rows": 4096, + "separation_cells": 3608, + "sha256": "b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc", + "upper_nodes": 383207, + "upper_requests": 3608 + }, + "positive_by_degree": { + "1": 8, + "2": 29, + "3": 41 + }, + "qA_equals_s_laws": 1456, + "qA_seed_support_sizes": { + "1": 2, + "2": 54, + "3": 318, + "4": 938, + "5": 144 + }, + "qA_single_seed_laws": [ + [ + [ + "mY" + ], + [ + 1, + 5, + 1, + 4, + 1, + 5 + ] + ], + [ + [ + "mY" + ], + [ + 1, + 5, + 5, + 4, + 5, + 1 + ] + ] + ], + "readouts_with_solutions": 78, + "solutions_E_constant": 40, + "solutions_E_identically_000": 0, + "solutions_N_constant": 0, + "total_solutions": 7464 +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/q2_ticks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/q2_ticks.py new file mode 100644 index 000000000..687df2822 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/q2_ticks.py @@ -0,0 +1,18 @@ +"""rev910b Q2: at which tick does the q10 cell first carry s under the v14 class?""" +import sys, json +from pathlib import Path +sys.path.insert(0, str(Path(__file__).resolve().parent)) +from native_table import q10_table, ROWS, R, L +from review_checks import kernel, readout_sets, solve, FEAT, CTX, idx +tab, _, _ = q10_table() +ticks = q10_table.ticks +assert ticks[10] == tab +out = {} +for tick in (8, 9, 10): + t = [int(c, 16) for c in ticks[tick]] + en_dep = sum(1 for i, r in enumerate(ROWS) if t[i] != t[idx(r[0], r[1:6], 0, 0)]) + K = kernel(t) + tot = sum(solve(readout_sets(K, D), set(FEAT))[0] for D in range(1, 255)) + out['R+%d%s' % (tick, ' (=L)' if tick == 9 else (' (=L+1)' if tick == 10 else ''))] = { + 'rows_depending_on_E_or_N': en_dep, 'fixed_readout_solutions_all_254': tot} +print(json.dumps(out, indent=1)) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/q_extra.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/q_extra.py new file mode 100644 index 000000000..89f2b1eeb --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/q_extra.py @@ -0,0 +1,51 @@ +"""rev910b extra: planted-law representation check, explicit counterexample laws.""" +import sys, json +from pathlib import Path +sys.path.insert(0, str(Path(__file__).resolve().parent)) +from native_table import q10_table +from review_checks import kernel, readout_sets, solve, FEAT, CTX, idx, law_value, field_coeffs +tab_hex, _, _ = q10_table(); tab = [int(c, 16) for c in tab_hex]; K = kernel(tab) +full = set(FEAT); QA = 0b11110000 +def cols_from_fields(fc): + return {FEAT[j]: sum(((fc[f] >> j) & 1) << (5 - f) for f in range(6)) for j in range(6)} +def plant(cols): + t = list(tab) + for k in CTX: + v = law_value(cols, k) + for s in (0, 1): + t[idx(s ^ k[0] ^ k[3], k, v >> 3, v & 7)] = 5 if s else 2 + return t +out = {} +mine = {'1': 37, 'u': 12, 'mY': 55, 'mR': 41, 'a': 22, 'b': 7} +auth = cols_from_fields((37, 12, 55, 41, 22, 7)) +out['author_planted_as_columns'] = auth +for name, cols in (('mine', mine), ('author', auth)): + c, sols = solve(readout_sets(kernel(plant(cols)), QA), full, collect=True) + out['planted_count_' + name] = [c, any(x == cols for x in sols)] +# laws where q10.A = x exactly (target f = 0) and fewest seeds +sets = {} +from review_checks import key_of +for k in CTX: + sets[key_of(k)] = sum(1 << v for v in range(64) if all(((QA >> tab[idx(x, k, v >> 3, v & 7)]) & 1) == x for x in (0, 1))) +c, sols = solve(sets, full, collect=True) +best = min(sols, key=lambda col: (sum(1 for n, x in col.items() if n != '1' and x), field_coeffs(col))) +out['qA_equals_x_laws'] = c +out['qA_equals_x_fewest_seed_law_fields'] = field_coeffs(best) +# direct check of that law: A = x on all 48 rows +out['qA_equals_x_direct_ok'] = all(((tab[idx(x, k, law_value(best, k) >> 3, law_value(best, k) & 7)] >> 2) & 1) == x for k in CTX for x in (0, 1)) +# B sign-free q10.A=s laws +c, sols = solve(readout_sets(K, QA), full, collect=True) +bfree = [] +for col in sols: + if all(((K[0][k][law_value(col, k)] >> 1) & 1) == ((K[1][k][law_value(col, k)] >> 1) & 1) for k in CTX): + bfree.append(field_coeffs(col)) +out['qA_laws_B_sign_free'] = sorted(bfree) +# mY-only law: q10 raw codes per context +law = next(col for col in sols if field_coeffs(col) == [1, 5, 1, 4, 1, 5]) +out['mY_law_contexts_B_dep'] = sum(((K[0][k][law_value(law, k)] >> 1) & 1) != ((K[1][k][law_value(law, k)] >> 1) & 1) for k in CTX) +out['mY_law_contexts_D_dep'] = sum((K[0][k][law_value(law, k)] & 1) != (K[1][k][law_value(law, k)] & 1) for k in CTX) +out['mY_law_E_N_codes_mY0_mY1'] = [[law_value(law, (0, my, 0, 0, 0)) >> 3, law_value(law, (0, my, 0, 0, 0)) & 7] for my in (0, 1)] +# rejected contexts (a,b)=(0,1): does the mY law also give A = s there? +rej = [k for k in __import__('itertools').product((0, 1), repeat=5) if (k[3], k[4]) == (0, 1)] +out['mY_law_A_equals_s_on_rejected_contexts'] = sum(all(((tab[idx(s ^ k[0] ^ k[3], k, law_value(law, k) >> 3, law_value(law, k) & 7)] >> 2) & 1) == s for s in (0, 1)) for k in rej) +print(json.dumps(out, indent=1)) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/q_plant2.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/q_plant2.py new file mode 100644 index 000000000..12cbe9da6 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/q_plant2.py @@ -0,0 +1,19 @@ +"""rev910b: reproduce author's planted restricted brute force (1,u,a), field coeffs (5,3,6,1,7,2).""" +import sys, json +from pathlib import Path +sys.path.insert(0, str(Path(__file__).resolve().parent)) +from native_table import q10_table +from review_checks import kernel, brute, solve, readout_sets, distinct_sets, CTX, idx, law_value +tab = [int(c, 16) for c in q10_table()[0]] +chosen = ('1', 'u', 'a'); fc = (5, 3, 6, 1, 7, 2) +cols = {n: sum(((fc[f] >> i) & 1) << (5 - f) for f in range(6)) for i, n in enumerate(chosen)} +t = list(tab) +for k in CTX: + v = law_value(cols, k) + for s in (0, 1): + t[idx(s ^ k[0] ^ k[3], k, v >> 3, v & 7)] = 5 if s else 2 +K = kernel(t) +bc, bd = brute(K, (0, 1, 4)) +mine = [solve(readout_sets(K, D), set(chosen))[0] for D in range(1, 255)] +assert mine == bc and solve(distinct_sets(K), set(chosen))[0] == bd +print(json.dumps({'total': sum(bc), 'readouts': sum(1 for x in bc if x), 'diagnostic': bd})) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/review_checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/review_checks.py new file mode 100644 index 000000000..f70249ff2 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round1/review_checks.py @@ -0,0 +1,378 @@ +"""rev910b: separate-engine review of native_decode_v14 (#910, author 7f843073). + +Imports no author or earlier-review code. Part 1 (native_table.py, this +directory) regenerates the 4096-row q10 table from the native rule. Part 2 +(here) decides fixed readouts with a cube-splitting solver: contexts that +differ only in a cube seed (u, mY, mR [, s]) are paired, the paired value +sets are intersected after translation by that seed's coefficient column, +and the three (a,b) patterns left at the end carry independent free values +g00=c0, g10=c0^c4, g11=c0^c4^c5. Controls: literal brute force over +restricted feature sets (real and planted tables), a planted full-rank law, +direct table checks of every solution, sign-erased table. + +Usage: python3 -I review_checks.py (writes JSON to stdout) +""" +import hashlib +import json +import random +import sys +from collections import Counter +from itertools import product +from pathlib import Path + +sys.path.insert(0, str(Path(__file__).resolve().parent)) +from native_table import q10_table, need, ROWS # reviewer's own engine + +FEAT = ('1', 'u', 'mY', 'mR', 'a', 'b') +CTX = [k for k in product((0, 1), repeat=5) if (k[3], k[4]) != (0, 1)] + + +def idx(x, k, e, n): + u, my, mr, a, b = k + r = (((((x * 2 + u) * 2 + my) * 2 + mr) * 2 + a) * 2 + b) + return (r * 8 + e) * 8 + n + + +def kernel(tab): + # K[s][k] = list over v=8e+n of raw code, x = s^u^a + return {s: {k: [tab[idx(s ^ k[0] ^ k[3], k, v >> 3, v & 7)] for v in range(64)] for k in CTX} for s in (0, 1)} + + +def xlate(m, c, width=6): + # {v : v^c in m} + for i in range(width): + if (c >> i) & 1: + sh = 1 << i + lo = 0 + for blk in range(0, 1 << width, 2 * sh): + lo |= ((1 << sh) - 1) << blk + m = ((m & lo) << sh) | ((m >> sh) & lo) + return m + + +def solve(sets, allowed, width=6, collect=False, cube=('u', 'mY', 'mR'), extra=None): + """sets: dict context-key -> mask over 2^width values. Context key is + (cube bits tuple, (a,b)). allowed: set of feature names with free + coefficients. Returns count (and the list of coefficient dicts).""" + V = 1 << width + out = [] + total = 0 + + def rec(cur, dims, path): + nonlocal total + if not dims: + G = {ab: cur[(tuple(0 for _ in cube), ab)] for ab in ((0, 0), (1, 0), (1, 1))} + fa, fb = 'a' in allowed, 'b' in allowed + c0_free = '1' in allowed + need(c0_free, 'constant always allowed') + if fa and fb: + cnt = bin(G[0, 0]).count('1') * bin(G[1, 0]).count('1') * bin(G[1, 1]).count('1') + elif fa: + cnt = bin(G[0, 0]).count('1') * bin(G[1, 0] & G[1, 1]).count('1') + elif fb: + cnt = bin(G[0, 0] & G[1, 0]).count('1') * bin(G[1, 1]).count('1') + else: + cnt = bin(G[0, 0] & G[1, 0] & G[1, 1]).count('1') + total += cnt + if collect and cnt: + for g00 in range(V): + if not (G[0, 0] >> g00) & 1: + continue + for g10 in (range(V) if fa else [g00]): + if not (G[1, 0] >> g10) & 1: + continue + for g11 in (range(V) if fb else [g10]): + if not (G[1, 1] >> g11) & 1: + continue + col = dict(path) + col['1'] = g00 + col['a'] = g10 ^ g00 + col['b'] = g11 ^ g10 + out.append(col) + return + j = dims[0] + pos = cube.index(j) + for c in (range(V) if j in allowed else [0]): + nxt = {} + ok = True + for key, m in cur.items(): + bits, ab = key + if bits[pos] == 1: + continue + b1 = bits[:pos] + (1,) + bits[pos + 1:] + mm = m & xlate(cur[(b1, ab)], c, width) + if not mm: + ok = False + break + nxt[key] = mm + if ok: + rec(nxt, dims[1:], path + ((j, c),)) + rec(sets, list(cube), ()) + return total, out + + +def key_of(k, s=None, cube=('u', 'mY', 'mR')): + u, my, mr, a, b = k + d = {'u': u, 'mY': my, 'mR': mr, 's': s} + return tuple(d[c] for c in cube), (a, b) + + +def readout_sets(K, D): + return {key_of(k): sum(1 << v for v in range(64) if not (D >> K[0][k][v]) & 1 and (D >> K[1][k][v]) & 1) for k in CTX} + + +def law_value(col, k, s=None): + u, my, mr, a, b = k + f = {'1': 1, 'u': u, 'mY': my, 'mR': mr, 'a': a, 'b': b, 's': s} + v = 0 + for name, c in col.items(): + if f[name]: + v ^= c + return v + + +def field_coeffs(col): + # per source field (EA,EB,ED,NA,NB,ND = bits 5..0 of v), bit j for feature FEAT[j] + return [sum(((col.get(fn, 0) >> (5 - f)) & 1) << j for j, fn in enumerate(FEAT)) for f in range(6)] + + +def anf_degree(D): + f = [(D >> c) & 1 for c in range(8)] + for i in range(3): + for c in range(8): + if (c >> i) & 1: + f[c] ^= f[c ^ (1 << i)] + return max((bin(c).count('1') for c in range(8) if f[c]), default=0) + + +def brute(K, chosen): + """Literal enumeration of all 64^m maps over chosen features.""" + names = [FEAT[i] for i in chosen] + # per context and v: 256-bit set of readouts D with D(T0)=0, D(T1)=1 + rmask = {} + for k in CTX: + for v in range(64): + o0, o1 = K[0][k][v], K[1][k][v] + rmask[k, v] = sum(1 << D for D in range(256) if not (D >> o0) & 1 and (D >> o1) & 1) + counts = Counter() + diag = 0 + feats = [] + for k in CTX: + u, my, mr, a, b = k + fv = {'1': 1, 'u': u, 'mY': my, 'mR': mr, 'a': a, 'b': b} + feats.append([fv[n] for n in names]) + for cols in product(range(64), repeat=len(chosen)): + acc = (1 << 256) - 1 + dist = True + for k, fv in zip(CTX, feats): + v = 0 + for c, f in zip(cols, fv): + if f: + v ^= c + acc &= rmask[k, v] + if dist and K[0][k][v] == K[1][k][v]: + dist = False + if not acc and not dist: + break + diag += dist + while acc: + lb = acc & -acc + counts[lb.bit_length() - 1] += 1 + acc ^= lb + return [counts[D] for D in range(1, 255)], diag + + +def distinct_sets(K): + return {key_of(k): sum(1 << v for v in range(64) if K[0][k][v] != K[1][k][v]) for k in CTX} + + +def main(): + root = Path(sys.argv[1]) + res = {} + tab_hex, q9_hex, info = q10_table() + digest = hashlib.sha256(tab_hex.encode()).hexdigest() + need(digest == 'b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc', 'regenerated table digest') + v13 = json.loads((root / 'native_route_v13/result.json').read_text()) + need(v13['q10_table_hex'] == tab_hex, 'regenerated table equals retained v13 hex') + old = json.loads((root / 'native_seed_v12/result.json').read_text())['q10_table_hex'] + need(''.join(tab_hex[i] for i, r in enumerate(ROWS) if r[6] == 0) == old, 'E=000 rows equal Native B table') + need(all(q9_hex[i] == q9_hex[idx(r[0], r[1:6], 0, 0)] for i, r in enumerate(ROWS)), 'q9 at L independent of E,N') + res['native_table'] = dict(info, sha256=digest, rows=len(tab_hex), E0_rows_match_native_B=512) + tab = [int(ch, 16) for ch in tab_hex] + K = kernel(tab) + full = set(FEAT) + # ---------------- primary: all readouts, full affine class + counts = {} + sols = {} + for D in range(1, 255): + c, out = solve(readout_sets(K, D), full, collect=True) + need(c == len(out), 'enumeration complete') + for col in out: # direct table check + for k in CTX: + v = law_value(col, k) + for s in (0, 1): + need((D >> K[s][k][v]) & 1 == s, 'direct table check') + counts[D] = c + sols[D] = out + pos = [D for D in counts if counts[D]] + res['readouts_with_solutions'] = len(pos) + res['total_solutions'] = sum(counts.values()) + deg = Counter(anf_degree(D) for D in pos) + res['positive_by_degree'] = dict(sorted(deg.items())) + res['degree_one_total'] = sum(1 for D in range(1, 255) if anf_degree(D) == 1) + names = {} + for D in range(1, 255): + if anf_degree(D) == 1: + lin = [f for f, bit in (('A', 4), ('B', 2), ('D', 1)) if ((D >> bit) & 1) != (D & 1)] + names[D] = ('NOT ' if D & 1 else '') + '^'.join(lin) + res['degree_one_counts'] = {names[D]: counts[D] for D in sorted(names)} + QA = 0b11110000 + need(counts[QA] == len(sols[QA]), 'qA enumeration') + res['qA_equals_s_laws'] = counts[QA] + target = [1, 5, 1, 4, 1, 5] + res['mY_only_law_present'] = any(field_coeffs(c) == target for c in sols[QA]) + # minimal seed support among qA laws + def support(col): + return sorted({n for n, c in col.items() if n != '1' and c}) + sup = Counter(len(support(c)) for c in sols[QA]) + res['qA_seed_support_sizes'] = dict(sorted(sup.items())) + res['qA_single_seed_laws'] = [[support(c), field_coeffs(c)] for c in sols[QA] if len(support(c)) <= 1] + # post-hoc author items + every = [(D, c) for D in pos for c in sols[D]] + res['solutions_E_identically_000'] = sum(1 for D, c in every if all(((x >> 3) & 7) == 0 for x in c.values())) + res['solutions_E_constant'] = sum(1 for D, c in every if all(((x >> 3) & 7) == 0 for n, x in c.items() if n != '1')) + res['solutions_N_constant'] = sum(1 for D, c in every if all((x & 7) == 0 for n, x in c.items() if n != '1')) + # ---------------- Q1 nontriviality controls + q1 = {} + const_counts = {D: solve(readout_sets(K, D), {'1'})[0] for D in range(1, 255)} + q1['constant_sources_total_solutions'] = sum(const_counts.values()) + q1['constant_sources_qA'] = const_counts[QA] + # sign-erased + Ke = {0: K[0], 1: K[0]} + q1['sign_erased_total'] = sum(solve(readout_sets(Ke, D), full)[0] for D in range(1, 255)) + q1['sign_erased_diagnostic'] = solve(distinct_sets(Ke), full)[0] + # sources depending on s directly: features (1,u,mY,mR,a,b,s), 48 (s,k) points + cube_s = ('u', 'mY', 'mR', 's') + def sdep_sets(D): + return {key_of(k, s, cube_s): sum(1 << v for v in range(64) if ((D >> K[s][k][v]) & 1) == s) + for k in CTX for s in (0, 1)} + c_sdep, _ = solve(sdep_sets(QA), full | {'s'}, cube=cube_s) + q1['s_dependent_sources_qA_laws_of_2^42'] = c_sdep + # s-only copy: E,N depend on s alone (no seeds) + c_sonly, _ = solve(sdep_sets(QA), {'1', 's'}, cube=cube_s) + q1['s_only_sources_qA_laws'] = c_sonly + # is s special? targets x ^ f(k) for all 64 affine f (incl. f=u^a, i.e. s) + tgt = {} + for fcoef in range(64): + def f(k): + fv = (1,) + k + return sum(fv[j] for j in range(6) if (fcoef >> j) & 1) & 1 + sets = {} + for k in CTX: + m = 0 + for v in range(64): + ok = True + for x in (0, 1): + if ((QA >> tab[idx(x, k, v >> 3, v & 7)]) & 1) != (x ^ f(k)): + ok = False + if ok: + m |= 1 << v + sets[key_of(k)] = m + tgt[fcoef] = solve(sets, full)[0] + need(tgt[0b010010] == counts[QA], 'target x^u^a reproduces qA count') + q1['qA_targets_x_xor_affine_seed_fn_nonzero'] = sum(1 for v in tgt.values() if v) + q1['qA_target_counts_x_xor_f'] = {format(fc, '06b')[::-1]: c for fc, c in tgt.items() if c} + # E=000 forced (Native B single-N class) + sets0 = readout_sets(K, QA) + q1['E_forced_000_any_readout'] = sum(solve({kk: m & 0xff for kk, m in readout_sets(K, D).items()}, full)[0] + for D in range(1, 255)) + # x-dependence of q10.A per (k, v) + xdep = sum(1 for k in CTX for v in range(64) if (K[0][k][v] >> 2) != (K[1][k][v] >> 2)) + q1['qA_depends_on_x_rows_of_1536'] = xdep + res['Q1'] = q1 + # ---------------- Q3: other fields under qA laws + q3 = Counter() + bd_ctx = [] + b_ctx = [] + d_ctx = [] + bd_reveal_all = 0 + for col in sols[QA]: + nb = nd = nbd = 0 + for k in CTX: + v = law_value(col, k) + o0, o1 = K[0][k][v], K[1][k][v] + nb += ((o0 >> 1) & 1) != ((o1 >> 1) & 1) + nd += (o0 & 1) != (o1 & 1) + nbd += (o0 & 3) != (o1 & 3) + b_ctx.append(nb); d_ctx.append(nd); bd_ctx.append(nbd) + bd_reveal_all += nbd == 24 + res['Q3'] = {'laws': len(sols[QA]), + 'min_max_contexts_BD_depend_on_s': [min(bd_ctx), max(bd_ctx)], + 'min_max_contexts_B_depends_on_s': [min(b_ctx), max(b_ctx)], + 'min_max_contexts_D_depends_on_s': [min(d_ctx), max(d_ctx)], + 'laws_with_B_sign_free_all_contexts': sum(1 for x in b_ctx if x == 0), + 'laws_with_D_sign_free_all_contexts': sum(1 for x in d_ctx if x == 0), + 'laws_with_BD_sign_free_all_contexts': sum(1 for x in bd_ctx if x == 0), + 'laws_BD_reveal_s_on_all_24_contexts': bd_reveal_all} + # ---------------- Q2 earliest tick: decode at q10 for t=L (E,N not yet arrived) is computed in native_table extension + # ---------------- controls: planted full-rank law + rnd = random.Random(910) + synth = list(tab) + plant = {'1': 37, 'u': 12, 'mY': 55, 'mR': 41, 'a': 22, 'b': 7} + for k in CTX: + v = law_value(plant, k) + for s in (0, 1): + synth[idx(s ^ k[0] ^ k[3], k, v >> 3, v & 7)] = 5 if s else 2 + Ks = kernel(synth) + cpl, outpl = solve(readout_sets(Ks, QA), full, collect=True) + need(any(c == plant for c in outpl), 'planted law recovered') + res['controls'] = {'planted_full_rank_qA_count': cpl} + # brute force, real and planted tables + bfs = [] + for label, chosen, pl in (('real', (0, 1), None), ('real', (0, 1, 4), None), ('real', (0, 2, 3), None), + ('real', (0, 4, 5), None), ('planted', (0, 1, 4), {'1': 5, 'u': 3, 'a': 6}), + ('planted', (0, 2, 5), {'1': 9, 'mY': 33, 'b': 17})): + allowed = {FEAT[i] for i in chosen} + tb = list(tab) + if pl: + for k in CTX: + v = law_value(pl, k) + for s in (0, 1): + tb[idx(s ^ k[0] ^ k[3], k, v >> 3, v & 7)] = 5 if s else 2 + Kb = kernel(tb) + bc, bd = brute(Kb, chosen) + mine = [solve(readout_sets(Kb, D), allowed)[0] for D in range(1, 255)] + md = solve(distinct_sets(Kb), allowed)[0] + need(bc == mine, 'brute force per-readout counts %s %s' % (label, chosen)) + need(bd == md, 'brute force diagnostic %s %s' % (label, chosen)) + if pl: + need(sum(bc) > 0, 'planted brute force nonvacuous') + bfs.append([label, [FEAT[i] for i in chosen], sum(bc), sum(1 for x in bc if x), bd]) + res['controls']['brute_force_label_features_total_readouts_diagnostic'] = bfs + # raw-pair reproduction: singleton readouts; E-only projection counts + e_total = joint_total = 0 + ncommon = 0 + for o0, o1 in product(range(8), repeat=2): + if o0 == o1: + continue + sets = {key_of(k): sum(1 << v for v in range(64) if K[0][k][v] == o0 and K[1][k][v] == o1) for k in CTX} + if all(sets.values()): + ncommon += 1 + joint_total += solve(sets, full)[0] + esets = {kk: sum(1 << e for e in range(8) if (m >> (8 * e)) & 0xff) for kk, m in sets.items()} + e_total += solve(esets, full, width=3)[0] + res['controls']['raw_pair'] = {'common_injective_pairs': ncommon, 'affine_E_maps': e_total, 'joint': joint_total} + need(ncommon == 32 and e_total == 16 and joint_total == 0, 'raw-pair reproduction') + # diagnostic (known-seed readout) and constant witness E=001,N=000 + res['diagnostic_count_full'] = solve(distinct_sets(K), full)[0] + res['diagnostic_const_E001_N000_ok'] = all(K[0][k][8] != K[1][k][8] for k in CTX) + res['diagnostic_const_E001_N000_distinct_pairs'] = len({(K[0][k][8], K[1][k][8]) for k in CTX}) + # author result comparison + auth = json.loads((root / 'native_decode_v14/result.json').read_text()) + need(auth['readout_solution_counts'] == [counts[D] for D in range(1, 255)], 'per-readout counts equal author') + res['author_per_readout_counts_equal'] = True + print(json.dumps(res, sort_keys=True, indent=1)) + + +if __name__ == '__main__': + main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round2/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round2/REPORT.md new file mode 100644 index 000000000..c8eee3b9b --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round2/REPORT.md @@ -0,0 +1,45 @@ +# rev910b re-review: #910 text correction 96b92f39 (on cd9390a0) + +**Verdict: BLOCK.** The evidence is byte-identical and the counts are right. The block is owner requirement 1: three status surfaces state review-only results without attributing them to the review. Fixing this is text-only. + +## Evidence (requirement 5): holds +- `git diff cd9390a0 96b92f39 -- '*checks.py' '*result.json' '*PLAN.md' '*PROVENANCE.json'` is empty, 0 bytes. +- Only six files changed: REPORT, HANDOFF, EQUIVALENCE, CHECKPOINT-CHECKS and the two SHA256SUMS. +- The v14 replay at 96b92f39 is byte-identical to result.json, both normally and with -O. +- The top-level SHA256SUMS verifies 349 of 349 files and the v14 SHA256SUMS 5 of 5. Their changed rows are exactly the changed files. + +## Counts (requirement 2): accurate +- From result.json `readout_solution_counts`: + - B, ¬B, D, ¬D, A⊕B⊕D and ¬(A⊕B⊕D) are all 0; + - the total is 7464 over 78 readouts; + - 8 of the 14 degree-one readouts succeed, with the stated counts. +- From my review's computation: + - 64 affine f, 512–2016 laws each; + - q10.A = x under 992 laws; + - B alone s-free in 8 laws; + - D alone depends on s on at least 4 contexts in every law. + +## Findings +1. **Blocking: attribution missing (requirement 1).** + - CURRENT-HANDOFF.md:105-106 says "(B alone is s-free in 8 laws)" inside the "Post hoc:" checker list. + - CHECKPOINT-CHECKS.json:54 says "(B alone is s-free in 8)" without attribution. + - EQUIVALENCE-OBLIGATIONS.md:64-65 says "more generally x XOR f(k) for each affine f … under a law depending on f" without attribution. + - Fix: add "(separate review)", as REPORT:39-40,73 and HANDOFF:100 already do. +2. **Non-blocking: inconsistent review status.** + - REPORT.md:12 says "Separate review of this checkpoint is pending", yet REPORT:39 and :73 cite "the independent review of this checkpoint". + - HANDOFF:110 has "corrected text", which is revision-history voice (§A.33). + - The cited computation is not retained on the branch. + - Fix: name it as the separate-agent internal review, not yet retained, and cite its path once it is retained. Change the HANDOFF line to "Separate review is pending." +3. **Minor.** + - REPORT.md:62 repeats itself: "No affine law with E identically 000. No solution has E identically 000." Drop the second sentence. + - EQUIVALENCE-OBLIGATIONS.md:66 is 104 characters long, which breaks the paragraph's line wrap. + +## Requirements that hold +- **Access (requirement 3).** Every surface calls q10 a private cell under Native A and not a permitted read: HANDOFF:103, REPORT:37,135-138, EQUIVALENCE:14,66 and CHECKPOINT-CHECKS. REPORT:139-142 states that no read, post-read law or carrier law is modelled. No surface introduces a new access rule or a reusable interface. +- **Quantifier scope (requirement 4).** + - REPORT:40-44 says "for each … there exist … the law depends on f, and no single law serves every f". + - HANDOFF:101-102 says "for each affine function f … some law gives". + - EQUIVALENCE:64-65 says "under a law depending on f", and CHECKPOINT-CHECKS says "f-dependent law". + - No sentence reads as a single law serving every f. +- **Status lines.** EQUIVALENCE:4-6 now excepts the unreviewed v14 group, and EQUIVALENCE:35-39 adds plan 36213be6, which predates 7f843073. Both are correct. +- **Voice.** No caps emphasis or reader instructions. Only the "corrected text" phrase in finding 2. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round2/out/c_O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round2/out/c_O.out new file mode 100644 index 000000000..893b1fd58 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round2/out/c_O.out @@ -0,0 +1 @@ +{"affine_maps_per_readout":68719476736,"contexts_u_mY_mR_a_b":[[0,0,0,0,0],[0,0,0,1,0],[0,0,0,1,1],[0,0,1,0,0],[0,0,1,1,0],[0,0,1,1,1],[0,1,0,0,0],[0,1,0,1,0],[0,1,0,1,1],[0,1,1,0,0],[0,1,1,1,0],[0,1,1,1,1],[1,0,0,0,0],[1,0,0,1,0],[1,0,0,1,1],[1,0,1,0,0],[1,0,1,1,0],[1,0,1,1,1],[1,1,0,0,0],[1,1,0,1,0],[1,1,0,1,1],[1,1,1,0,0],[1,1,1,1,0],[1,1,1,1,1]],"controls":{"input_pins":5,"planted_positive":{"field_coefficients":[37,12,55,41,22,7],"readout_bits":240,"solutions":1489},"raw_pair_reproduction":{"affine_E_prefixes":16,"joint_maps":0,"ordered_pairs":56},"restricted_brute_force":[{"features":["1","u"],"known_seed_readout_maps":2560,"maps":4096,"readouts_with_solutions":0,"table":"real","total_readout_solutions":0},{"features":["1","u","a"],"known_seed_readout_maps":143360,"maps":262144,"readouts_with_solutions":0,"table":"real","total_readout_solutions":0},{"features":["1","u","a"],"known_seed_readout_maps":149568,"maps":262144,"readouts_with_solutions":64,"table":"planted","total_readout_solutions":818}],"sign_erased_countercontrol":"zero for all 254 readouts and the diagnostic, both solvers","solution_sets_compared_and_table_checked":"all readouts, both solvers","solver_agreement_readouts":254},"feature_order":["1","u","mY","mR","a","b"],"inputs":{"native_route_v13/result.json":"762b9799db7448c4eecf2c994c8c68ff94e1be83a7f6884b4a36385505df5a02","native_route_v13/review/result.json":"73780def8505d68d1967936116a88a49d471eb32aeb83d528ff3cd41025ae6e4","q10_table_sha256":"b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc","review_table_sha256_agrees":true},"known_seed_readout_diagnostic":{"distinct_raw_pairs_used":6,"exists":true,"field_coefficients_EA_EB_ED_NA_NB_ND":[0,0,1,0,0,0],"raw_codes_s0_s1_per_context":[[5,4],[6,7],[2,1],[5,4],[5,4],[2,1],[5,4],[6,7],[2,1],[5,4],[5,4],[2,1],[1,0],[2,3],[1,0],[1,0],[1,0],[1,0],[1,0],[5,4],[1,0],[1,0],[7,6],[1,0]]},"plan_base":"94a4e6ccf18845af6c2d37cd797da1082f575d65","positive_readouts":[{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,5,7,7,6],"ones":3,"readout_bits":7,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[5,6,5,21,23,7],"ones":3,"readout_bits":11,"solutions":8},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,0,4,7,5],"ones":4,"readout_bits":15,"solutions":912},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,41,51,19,11,17],"ones":3,"readout_bits":25,"solutions":36},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,2,8,19,24],"ones":4,"readout_bits":27,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,9,17,33,56,56],"ones":3,"readout_bits":28,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,9,3,58,10,56],"ones":4,"readout_bits":29,"solutions":48},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,8,48,49,41,56],"ones":3,"readout_bits":37,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,18,9,25],"ones":3,"readout_bits":38,"solutions":56},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,32,19,8,8,17],"ones":4,"readout_bits":39,"solutions":12},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,42,3,19,41,43],"ones":3,"readout_bits":44,"solutions":4},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,3,8,24,26],"ones":4,"readout_bits":46,"solutions":32},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[16,5,5,22,7,18],"ones":5,"readout_bits":47,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,43,3,51,59,58],"ones":3,"readout_bits":52,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,56,24,41,57,34],"ones":4,"readout_bits":54,"solutions":28},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,26,26,42],"ones":3,"readout_bits":56,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[2,19,3,35,1,10],"ones":4,"readout_bits":57,"solutions":8},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,32,32,1,8],"ones":4,"readout_bits":60,"solutions":384},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[3,1,3,0,50,9],"ones":5,"readout_bits":62,"solutions":20},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[3,2,1,11,17,56],"ones":3,"readout_bits":67,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,10,3,3,27,26],"ones":3,"readout_bits":73,"solutions":28},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,3,25,40],"ones":4,"readout_bits":75,"solutions":40},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,8,48,56,19,27],"ones":4,"readout_bits":77,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,32,19,58,56,32],"ones":3,"readout_bits":81,"solutions":20},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,9,57,59,59],"ones":3,"readout_bits":88,"solutions":80},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[16,0,8,0,25,33],"ones":4,"readout_bits":89,"solutions":896},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[2,19,16,11,9,11],"ones":4,"readout_bits":90,"solutions":24},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,9,43,51,19],"ones":5,"readout_bits":91,"solutions":64},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,2,24,40,40,35],"ones":4,"readout_bits":92,"solutions":28},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,11,59,34,34],"ones":5,"readout_bits":93,"solutions":64},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[18,13,18,12,16,30],"ones":3,"readout_bits":98,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[18,19,0,34,8,58],"ones":4,"readout_bits":99,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,32,33,18,9,48],"ones":4,"readout_bits":102,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[32,13,44,19,63,46],"ones":3,"readout_bits":104,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,0,1,17,50,12],"ones":4,"readout_bits":106,"solutions":464},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[12,14,3,50,46,63],"ones":5,"readout_bits":107,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[4,7,4,21,23,7],"ones":3,"readout_bits":112,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[18,13,18,12,16,30],"ones":4,"readout_bits":114,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,3,9,27,9],"ones":4,"readout_bits":120,"solutions":64},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,9,9,27,32,59],"ones":5,"readout_bits":121,"solutions":44},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,34,0,25,59,48],"ones":5,"readout_bits":124,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,33,3,59,33,9],"ones":3,"readout_bits":131,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,51,11,2,42,48],"ones":3,"readout_bits":134,"solutions":68},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,51,49,19,8],"ones":4,"readout_bits":135,"solutions":64},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,2,26,57,1,51],"ones":3,"readout_bits":138,"solutions":4},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,42,34,34,35,11],"ones":4,"readout_bits":142,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,32,33,19,19,12],"ones":4,"readout_bits":149,"solutions":464},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[17,11,27,43,49,49],"ones":3,"readout_bits":152,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,32,2,50,43,32],"ones":4,"readout_bits":153,"solutions":4},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,0,1,8,16,25],"ones":4,"readout_bits":154,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,10,11,11,9],"ones":3,"readout_bits":162,"solutions":52},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,1,33,16,9,40],"ones":4,"readout_bits":163,"solutions":24},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,41,16,40,34,33],"ones":3,"readout_bits":164,"solutions":48},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,43,34,49,24,27],"ones":4,"readout_bits":165,"solutions":16},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[16,0,8,3,24,11],"ones":4,"readout_bits":166,"solutions":896},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,11,3,2,49,56],"ones":5,"readout_bits":167,"solutions":20},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,42,27,10,8,2],"ones":4,"readout_bits":172,"solutions":24},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,16,16,25],"ones":5,"readout_bits":174,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,0,51,25,10,0],"ones":4,"readout_bits":178,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,1,34,23,5],"ones":4,"readout_bits":180,"solutions":20},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,26,16,17,27,11],"ones":5,"readout_bits":182,"solutions":40},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,34,11,26,58,32],"ones":5,"readout_bits":188,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,26,3,19,57,24],"ones":3,"readout_bits":194,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,34,32,2,8],"ones":4,"readout_bits":195,"solutions":424},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[3,1,35,10,3,57],"ones":5,"readout_bits":199,"solutions":12},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,41,9,11,25,34],"ones":4,"readout_bits":201,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,33,3,8,48,50],"ones":5,"readout_bits":203,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,5,6,55,49],"ones":3,"readout_bits":208,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,51,50,57],"ones":4,"readout_bits":209,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,18,32,2,9],"ones":5,"readout_bits":211,"solutions":12},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,11,19,35,40,57],"ones":4,"readout_bits":216,"solutions":12},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,9,11,59,2,0],"ones":5,"readout_bits":217,"solutions":60},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,5,52,53,49],"ones":3,"readout_bits":224,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,9,49,56],"ones":4,"readout_bits":226,"solutions":20},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,10,2,19,1,10],"ones":4,"readout_bits":228,"solutions":12},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,35,48,3,27],"ones":5,"readout_bits":230,"solutions":36},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[51,11,43,58,9,59],"ones":6,"readout_bits":231,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,3,0,4,7,5],"ones":4,"readout_bits":240,"solutions":1456}],"post_hoc_degree_one_readouts":[{"E_constant":16,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,4,1,4,1,5],"fewest_seeds":["mY"],"raw_fields_xored":["A"],"readout_bits":15,"single_field_laws_with_sign_free_other_fields":0,"solutions":912},{"E_constant":0,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,3,3,0,2,8],"fewest_seeds":["u","mR"],"raw_fields_xored":["A","B"],"readout_bits":60,"single_field_laws_with_sign_free_other_fields":null,"solutions":384},{"E_constant":0,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[2,19,16,11,9,11],"fewest_seeds":["u","mR","a"],"raw_fields_xored":["A","D"],"readout_bits":90,"single_field_laws_with_sign_free_other_fields":null,"solutions":24},{"E_constant":0,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[8,32,33,18,9,48],"fewest_seeds":["u","mR","a","b"],"raw_fields_xored":["B","D"],"readout_bits":102,"single_field_laws_with_sign_free_other_fields":null,"solutions":8},{"E_constant":0,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[11,32,2,50,43,32],"fewest_seeds":["u","mR","a","b"],"raw_fields_xored":["B","D"],"readout_bits":153,"single_field_laws_with_sign_free_other_fields":null,"solutions":4},{"E_constant":0,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[8,43,34,49,24,27],"fewest_seeds":["u","mR","a","b"],"raw_fields_xored":["A","D"],"readout_bits":165,"single_field_laws_with_sign_free_other_fields":null,"solutions":16},{"E_constant":0,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,1,3,0,1,8],"fewest_seeds":["u","mR"],"raw_fields_xored":["A","B"],"readout_bits":195,"single_field_laws_with_sign_free_other_fields":null,"solutions":424},{"E_constant":8,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,1,4,1,5],"fewest_seeds":["mY"],"raw_fields_xored":["A"],"readout_bits":240,"single_field_laws_with_sign_free_other_fields":0,"solutions":1456}],"post_hoc_fresh_bit_on_q10A":{"constant_coefficient_deltas_EA_EB_ED_NA_NB_ND":[[[0,1,0,0,0,0],256],[[1,1,1,0,0,0],256]],"contexts_with_whole_triple_sign_hidden_counts":[[0,256],[4,256]],"pairs":512,"pairs_hiding_sign_in_all_contexts":0},"post_hoc_solution_structure":{"E_and_N_constant":0,"E_constant":40,"E_identically_000":0,"N_constant":0,"distinct_sign_raw_pairs_used_counts":[[6,16],[7,680],[8,6768]],"fewest_sign_raw_pairs":{"count":6,"field_coefficients_EA_EB_ED_NA_NB_ND":[18,2,16,9,3,26],"readout_bits":28},"seed_support_counts":[[["mR","a"],4],[["mR","a","b"],118],[["mR","b"],2],[["mY"],4],[["mY","a"],8],[["mY","a","b"],50],[["mY","b"],6],[["mY","mR","a","b"],8],[["u","mR"],7],[["u","mR","a"],223],[["u","mR","a","b"],3653],[["u","mR","b"],65],[["u","mY"],94],[["u","mY","a"],246],[["u","mY","a","b"],1548],[["u","mY","b"],220],[["u","mY","mR"],16],[["u","mY","mR","a"],104],[["u","mY","mR","a","b"],1040],[["u","mY","mR","b"],48]],"solutions":7464},"readout_encoding":"bit c of readout_bits is the readout of raw code c=4A+2B+D","readout_solution_counts":[0,0,0,0,0,0,8,0,0,0,8,0,0,0,912,0,0,0,0,0,0,0,0,0,36,0,8,24,48,0,0,0,0,0,0,0,4,56,12,0,0,0,0,4,0,32,16,0,0,0,0,24,0,28,0,8,8,0,0,384,0,20,0,0,0,0,4,0,0,0,0,0,28,0,40,0,4,0,0,0,20,0,0,0,0,0,0,80,896,24,64,28,64,0,0,0,0,8,4,0,0,8,0,8,0,464,8,0,0,0,0,8,0,8,0,0,0,0,0,64,44,0,0,16,0,0,0,0,0,0,8,0,0,68,64,0,0,4,0,0,0,8,0,0,0,0,0,0,464,0,0,4,4,16,0,0,0,0,0,0,0,52,24,48,16,896,20,0,0,0,0,24,0,24,0,0,0,24,0,20,0,40,0,0,0,0,0,8,0,0,0,0,0,4,424,0,0,0,12,0,4,0,8,0,0,0,0,8,16,0,12,0,0,0,0,12,60,0,0,0,0,0,0,8,0,20,0,12,0,36,4,0,0,0,0,0,0,0,0,1456,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"readouts_with_solutions":78,"schema":"oi.native-redundant-q10-readout.v14","source_field_order":"w=8*Ecode+Ncode; fields EA,EB,ED,NA,NB,ND are bits 5..0 of w","total_readout_solutions":7464,"verdict":{"acceptance_predicate":"not constructed","downstream_native_gate_on_readout_classes":"not tested","fixed_q10_readout":"fixed redundant q10 readout with jointly affine E,N exists in this geometry","known_seed_dependent_readout":"exists (not a fixed-readout delivery)","other_layouts_fresh_seed_multicell_readouts":"not tested","second_front_required":"every solution has nonzero E","single_raw_field_readouts":["q10.A complemented under 912 jointly affine laws","q10.A under 1456 jointly affine laws"]}} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round2/out/c_normal.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round2/out/c_normal.out new file mode 100644 index 000000000..893b1fd58 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round2/out/c_normal.out @@ -0,0 +1 @@ +{"affine_maps_per_readout":68719476736,"contexts_u_mY_mR_a_b":[[0,0,0,0,0],[0,0,0,1,0],[0,0,0,1,1],[0,0,1,0,0],[0,0,1,1,0],[0,0,1,1,1],[0,1,0,0,0],[0,1,0,1,0],[0,1,0,1,1],[0,1,1,0,0],[0,1,1,1,0],[0,1,1,1,1],[1,0,0,0,0],[1,0,0,1,0],[1,0,0,1,1],[1,0,1,0,0],[1,0,1,1,0],[1,0,1,1,1],[1,1,0,0,0],[1,1,0,1,0],[1,1,0,1,1],[1,1,1,0,0],[1,1,1,1,0],[1,1,1,1,1]],"controls":{"input_pins":5,"planted_positive":{"field_coefficients":[37,12,55,41,22,7],"readout_bits":240,"solutions":1489},"raw_pair_reproduction":{"affine_E_prefixes":16,"joint_maps":0,"ordered_pairs":56},"restricted_brute_force":[{"features":["1","u"],"known_seed_readout_maps":2560,"maps":4096,"readouts_with_solutions":0,"table":"real","total_readout_solutions":0},{"features":["1","u","a"],"known_seed_readout_maps":143360,"maps":262144,"readouts_with_solutions":0,"table":"real","total_readout_solutions":0},{"features":["1","u","a"],"known_seed_readout_maps":149568,"maps":262144,"readouts_with_solutions":64,"table":"planted","total_readout_solutions":818}],"sign_erased_countercontrol":"zero for all 254 readouts and the diagnostic, both solvers","solution_sets_compared_and_table_checked":"all readouts, both solvers","solver_agreement_readouts":254},"feature_order":["1","u","mY","mR","a","b"],"inputs":{"native_route_v13/result.json":"762b9799db7448c4eecf2c994c8c68ff94e1be83a7f6884b4a36385505df5a02","native_route_v13/review/result.json":"73780def8505d68d1967936116a88a49d471eb32aeb83d528ff3cd41025ae6e4","q10_table_sha256":"b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc","review_table_sha256_agrees":true},"known_seed_readout_diagnostic":{"distinct_raw_pairs_used":6,"exists":true,"field_coefficients_EA_EB_ED_NA_NB_ND":[0,0,1,0,0,0],"raw_codes_s0_s1_per_context":[[5,4],[6,7],[2,1],[5,4],[5,4],[2,1],[5,4],[6,7],[2,1],[5,4],[5,4],[2,1],[1,0],[2,3],[1,0],[1,0],[1,0],[1,0],[1,0],[5,4],[1,0],[1,0],[7,6],[1,0]]},"plan_base":"94a4e6ccf18845af6c2d37cd797da1082f575d65","positive_readouts":[{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,5,7,7,6],"ones":3,"readout_bits":7,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[5,6,5,21,23,7],"ones":3,"readout_bits":11,"solutions":8},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,0,4,7,5],"ones":4,"readout_bits":15,"solutions":912},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,41,51,19,11,17],"ones":3,"readout_bits":25,"solutions":36},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,2,8,19,24],"ones":4,"readout_bits":27,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,9,17,33,56,56],"ones":3,"readout_bits":28,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,9,3,58,10,56],"ones":4,"readout_bits":29,"solutions":48},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,8,48,49,41,56],"ones":3,"readout_bits":37,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,18,9,25],"ones":3,"readout_bits":38,"solutions":56},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,32,19,8,8,17],"ones":4,"readout_bits":39,"solutions":12},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,42,3,19,41,43],"ones":3,"readout_bits":44,"solutions":4},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,3,8,24,26],"ones":4,"readout_bits":46,"solutions":32},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[16,5,5,22,7,18],"ones":5,"readout_bits":47,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,43,3,51,59,58],"ones":3,"readout_bits":52,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,56,24,41,57,34],"ones":4,"readout_bits":54,"solutions":28},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,26,26,42],"ones":3,"readout_bits":56,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[2,19,3,35,1,10],"ones":4,"readout_bits":57,"solutions":8},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,32,32,1,8],"ones":4,"readout_bits":60,"solutions":384},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[3,1,3,0,50,9],"ones":5,"readout_bits":62,"solutions":20},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[3,2,1,11,17,56],"ones":3,"readout_bits":67,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,10,3,3,27,26],"ones":3,"readout_bits":73,"solutions":28},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,3,25,40],"ones":4,"readout_bits":75,"solutions":40},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,8,48,56,19,27],"ones":4,"readout_bits":77,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,32,19,58,56,32],"ones":3,"readout_bits":81,"solutions":20},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,9,57,59,59],"ones":3,"readout_bits":88,"solutions":80},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[16,0,8,0,25,33],"ones":4,"readout_bits":89,"solutions":896},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[2,19,16,11,9,11],"ones":4,"readout_bits":90,"solutions":24},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,9,43,51,19],"ones":5,"readout_bits":91,"solutions":64},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,2,24,40,40,35],"ones":4,"readout_bits":92,"solutions":28},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,11,59,34,34],"ones":5,"readout_bits":93,"solutions":64},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[18,13,18,12,16,30],"ones":3,"readout_bits":98,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[18,19,0,34,8,58],"ones":4,"readout_bits":99,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,32,33,18,9,48],"ones":4,"readout_bits":102,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[32,13,44,19,63,46],"ones":3,"readout_bits":104,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,0,1,17,50,12],"ones":4,"readout_bits":106,"solutions":464},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[12,14,3,50,46,63],"ones":5,"readout_bits":107,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[4,7,4,21,23,7],"ones":3,"readout_bits":112,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[18,13,18,12,16,30],"ones":4,"readout_bits":114,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,3,9,27,9],"ones":4,"readout_bits":120,"solutions":64},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,9,9,27,32,59],"ones":5,"readout_bits":121,"solutions":44},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,34,0,25,59,48],"ones":5,"readout_bits":124,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,33,3,59,33,9],"ones":3,"readout_bits":131,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,51,11,2,42,48],"ones":3,"readout_bits":134,"solutions":68},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,51,49,19,8],"ones":4,"readout_bits":135,"solutions":64},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,2,26,57,1,51],"ones":3,"readout_bits":138,"solutions":4},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,42,34,34,35,11],"ones":4,"readout_bits":142,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,32,33,19,19,12],"ones":4,"readout_bits":149,"solutions":464},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[17,11,27,43,49,49],"ones":3,"readout_bits":152,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,32,2,50,43,32],"ones":4,"readout_bits":153,"solutions":4},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,0,1,8,16,25],"ones":4,"readout_bits":154,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,0,10,11,11,9],"ones":3,"readout_bits":162,"solutions":52},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,1,33,16,9,40],"ones":4,"readout_bits":163,"solutions":24},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,41,16,40,34,33],"ones":3,"readout_bits":164,"solutions":48},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,43,34,49,24,27],"ones":4,"readout_bits":165,"solutions":16},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[16,0,8,3,24,11],"ones":4,"readout_bits":166,"solutions":896},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,11,3,2,49,56],"ones":5,"readout_bits":167,"solutions":20},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,42,27,10,8,2],"ones":4,"readout_bits":172,"solutions":24},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,16,16,25],"ones":5,"readout_bits":174,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,0,51,25,10,0],"ones":4,"readout_bits":178,"solutions":24},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,1,34,23,5],"ones":4,"readout_bits":180,"solutions":20},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,26,16,17,27,11],"ones":5,"readout_bits":182,"solutions":40},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,34,11,26,58,32],"ones":5,"readout_bits":188,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,26,3,19,57,24],"ones":3,"readout_bits":194,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,34,32,2,8],"ones":4,"readout_bits":195,"solutions":424},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[3,1,35,10,3,57],"ones":5,"readout_bits":199,"solutions":12},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[11,41,9,11,25,34],"ones":4,"readout_bits":201,"solutions":4},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[10,33,3,8,48,50],"ones":5,"readout_bits":203,"solutions":8},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,5,6,55,49],"ones":3,"readout_bits":208,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,51,50,57],"ones":4,"readout_bits":209,"solutions":16},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,2,18,32,2,9],"ones":5,"readout_bits":211,"solutions":12},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[8,11,19,35,40,57],"ones":4,"readout_bits":216,"solutions":12},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,9,11,59,2,0],"ones":5,"readout_bits":217,"solutions":60},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,5,52,53,49],"ones":3,"readout_bits":224,"solutions":8},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,3,9,49,56],"ones":4,"readout_bits":226,"solutions":20},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[9,10,2,19,1,10],"ones":4,"readout_bits":228,"solutions":12},{"anf_degree":3,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[1,8,35,48,3,27],"ones":5,"readout_bits":230,"solutions":36},{"anf_degree":2,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[51,11,43,58,9,59],"ones":6,"readout_bits":231,"solutions":4},{"anf_degree":1,"first_field_coefficients_EA_EB_ED_NA_NB_ND":[0,3,0,4,7,5],"ones":4,"readout_bits":240,"solutions":1456}],"post_hoc_degree_one_readouts":[{"E_constant":16,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,4,1,4,1,5],"fewest_seeds":["mY"],"raw_fields_xored":["A"],"readout_bits":15,"single_field_laws_with_sign_free_other_fields":0,"solutions":912},{"E_constant":0,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,3,3,0,2,8],"fewest_seeds":["u","mR"],"raw_fields_xored":["A","B"],"readout_bits":60,"single_field_laws_with_sign_free_other_fields":null,"solutions":384},{"E_constant":0,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[2,19,16,11,9,11],"fewest_seeds":["u","mR","a"],"raw_fields_xored":["A","D"],"readout_bits":90,"single_field_laws_with_sign_free_other_fields":null,"solutions":24},{"E_constant":0,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[8,32,33,18,9,48],"fewest_seeds":["u","mR","a","b"],"raw_fields_xored":["B","D"],"readout_bits":102,"single_field_laws_with_sign_free_other_fields":null,"solutions":8},{"E_constant":0,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[11,32,2,50,43,32],"fewest_seeds":["u","mR","a","b"],"raw_fields_xored":["B","D"],"readout_bits":153,"single_field_laws_with_sign_free_other_fields":null,"solutions":4},{"E_constant":0,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[8,43,34,49,24,27],"fewest_seeds":["u","mR","a","b"],"raw_fields_xored":["A","D"],"readout_bits":165,"single_field_laws_with_sign_free_other_fields":null,"solutions":16},{"E_constant":0,"complemented":true,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,1,3,0,1,8],"fewest_seeds":["u","mR"],"raw_fields_xored":["A","B"],"readout_bits":195,"single_field_laws_with_sign_free_other_fields":null,"solutions":424},{"E_constant":8,"complemented":false,"fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND":[1,5,1,4,1,5],"fewest_seeds":["mY"],"raw_fields_xored":["A"],"readout_bits":240,"single_field_laws_with_sign_free_other_fields":0,"solutions":1456}],"post_hoc_fresh_bit_on_q10A":{"constant_coefficient_deltas_EA_EB_ED_NA_NB_ND":[[[0,1,0,0,0,0],256],[[1,1,1,0,0,0],256]],"contexts_with_whole_triple_sign_hidden_counts":[[0,256],[4,256]],"pairs":512,"pairs_hiding_sign_in_all_contexts":0},"post_hoc_solution_structure":{"E_and_N_constant":0,"E_constant":40,"E_identically_000":0,"N_constant":0,"distinct_sign_raw_pairs_used_counts":[[6,16],[7,680],[8,6768]],"fewest_sign_raw_pairs":{"count":6,"field_coefficients_EA_EB_ED_NA_NB_ND":[18,2,16,9,3,26],"readout_bits":28},"seed_support_counts":[[["mR","a"],4],[["mR","a","b"],118],[["mR","b"],2],[["mY"],4],[["mY","a"],8],[["mY","a","b"],50],[["mY","b"],6],[["mY","mR","a","b"],8],[["u","mR"],7],[["u","mR","a"],223],[["u","mR","a","b"],3653],[["u","mR","b"],65],[["u","mY"],94],[["u","mY","a"],246],[["u","mY","a","b"],1548],[["u","mY","b"],220],[["u","mY","mR"],16],[["u","mY","mR","a"],104],[["u","mY","mR","a","b"],1040],[["u","mY","mR","b"],48]],"solutions":7464},"readout_encoding":"bit c of readout_bits is the readout of raw code c=4A+2B+D","readout_solution_counts":[0,0,0,0,0,0,8,0,0,0,8,0,0,0,912,0,0,0,0,0,0,0,0,0,36,0,8,24,48,0,0,0,0,0,0,0,4,56,12,0,0,0,0,4,0,32,16,0,0,0,0,24,0,28,0,8,8,0,0,384,0,20,0,0,0,0,4,0,0,0,0,0,28,0,40,0,4,0,0,0,20,0,0,0,0,0,0,80,896,24,64,28,64,0,0,0,0,8,4,0,0,8,0,8,0,464,8,0,0,0,0,8,0,8,0,0,0,0,0,64,44,0,0,16,0,0,0,0,0,0,8,0,0,68,64,0,0,4,0,0,0,8,0,0,0,0,0,0,464,0,0,4,4,16,0,0,0,0,0,0,0,52,24,48,16,896,20,0,0,0,0,24,0,24,0,0,0,24,0,20,0,40,0,0,0,0,0,8,0,0,0,0,0,4,424,0,0,0,12,0,4,0,8,0,0,0,0,8,16,0,12,0,0,0,0,12,60,0,0,0,0,0,0,8,0,20,0,12,0,36,4,0,0,0,0,0,0,0,0,1456,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"readouts_with_solutions":78,"schema":"oi.native-redundant-q10-readout.v14","source_field_order":"w=8*Ecode+Ncode; fields EA,EB,ED,NA,NB,ND are bits 5..0 of w","total_readout_solutions":7464,"verdict":{"acceptance_predicate":"not constructed","downstream_native_gate_on_readout_classes":"not tested","fixed_q10_readout":"fixed redundant q10 readout with jointly affine E,N exists in this geometry","known_seed_dependent_readout":"exists (not a fixed-readout delivery)","other_layouts_fresh_seed_multicell_readouts":"not tested","second_front_required":"every solution has nonzero E","single_raw_field_readouts":["q10.A complemented under 912 jointly affine laws","q10.A under 1456 jointly affine laws"]}} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round3/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round3/REPORT.md new file mode 100644 index 000000000..ca685216d --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_decode_v14/review/round3/REPORT.md @@ -0,0 +1,21 @@ +**Re-check of #910 attribution fix `1c15797a` (on `96b92f39`): ACCEPT.** + +- **Evidence is byte-identical.** + - `git diff cd9390a0 1c15797a` on `checks.py`, `result.json`, `PLAN.md` and `PROVENANCE.json` is empty. + - The v14 replay at `1c15797a`, normal and `-O`, is byte-identical to `result.json`. + - Top-level `SHA256SUMS` verifies 349/349 and the v14 one 5/5. + - Only the six intended files changed, and the clone is still untouched. +- **Attribution is complete.** Every statement that comes from my review is now credited to it: + - HANDOFF:100 (x XOR f) and :106 (B alone s-free in 8); + - CHECKPOINT-CHECKS:54, both items; + - EQUIVALENCE:64-65; + - REPORT:40-46, the x XOR f paragraph, which also covers "q10.A = x under 992 laws"; + - REPORT:73-75 (B alone in 8, D on at least four contexts). +- **Review status is consistent.** REPORT:12 says the review is not yet retained and that statements from it are marked. HANDOFF:109 now reads "Separate review is pending."; the "corrected text" phrase is gone. The duplicate sentence at REPORT:62 is dropped. +- **No new problems.** The delta adds no overclaim, no access rule and no quantifier slip. "For each f, some law depending on f" is unchanged on every surface. q10 is still a private cell under Native A and not a permitted read. +- **Non-blocking, cosmetic:** + - CHECKPOINT-CHECKS:54 still says "the independent review finds …", where the other surfaces now say "separate-agent review". Say "separate review" for consistency. + - Lines introduced or rewrapped by this delta break the 80-column wrap: REPORT:12 (100 chars) and :40 (145), HANDOFF:100 (94) and :106 (92). HANDOFF:165 (103) predates this delta. + - Once the separate review is retained on the branch, cite its path. + +My re-check files are in `rev910b/` in the reviewer's session scratchpad (`tree4/` is the exported copy of `1c15797a`). diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/PLAN.md new file mode 100644 index 000000000..cf3019fd0 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/PLAN.md @@ -0,0 +1,106 @@ +# Native short-window gate and complete-pointer audit + +24 October 2026. Research only; no observer access, physical premise, operational +map, F/E status or equivalence is adopted. #885 is read-only. Root publishes +this plan to #910 before execution. Native source snapshot is #910 at +`16b154cefe3acd40d5a60d507905709c3cfc19ca`, in particular Native A author +`f24a57a7c23cc1818c04265cec7604f8bc2f410d`. + +## Question and fixed bounded family + +Does a short continuation of the explicitly source-prepared native lattice +already supply a physical cell from which the intended acceptance decision +can be read? Which useful nonlinear old-input/apparatus interactions are +actually produced before such a pointer is available? + +Use the complete second-order six-neighbor rule + + U_(t+1)(v) = U_(t-1)(v) XOR H(XOR_(w~v) U_t(w)), + H(A,B,D) = (B,D,A XOR BD). + +This is a small original-time native control family, NOT a simulation or +substitute proof at the programme's enormous L. Fix n in {1,2,3}. Four +independent initially supplied current triples lie at + + f_old = (-(n-1),0,0), + f8 = (-n,0,-1), + f10 = (-n,0,+1), + f9 = (-n-1,0,0). + +Each of the four triples varies over all eight payloads. This gives 4096 +worlds per fixed n/background. f_old is the sole old-input source, not a +copy preloaded beside the pool. Both initial slices elsewhere are fixed +by one declared deterministic dirty-background formula. Background seeds +are {0,3}; in addition retain the n=1 all-zero-complement family for the +closed-form nonlinear interaction control. No late apparatus is inserted. +The old source reaches P=U_(n-1)(0), and the three fresh sources do not. +Pool fields are Q8=U_n(0,0,-1), Q10=U_n(0,0,+1). Their source map and the +full U_(n+1)(0) ciphertext law are positive controls inherited in form but +recomputed from actual native evolution. P is not silently assumed clean; +all eight old triples, including failure-like A components, remain present. + +Define actual s=P.B, Y=Q8.B, R=Q10.D, and +K=Q8.A+2 Q8.D+4 Q10.A. The fixed desired event is + + A = [K < threshold(Y XOR s,R XOR s)], + threshold(00,01,10,11)=(5,0,4,1). + +## Fixed pointer window and decision rule + +Read candidates are every physical current cell at an integer position in +the Manhattan ball of radius two about 0, at each deadline n+d with +1<=d<=3. The family is fixed now, not enlarged after an unfavorable result. +For every candidate retain its complete terminal triple, and also calculate +the complete same-site raw prefix from time n through its deadline. A +Boolean relabelling of the TERMINAL triple is considered only as a generous +comparison class; a prefix decoder does not count as a physical flag. + +For each fixed family and for the common pooled family, group the actual +worlds by terminal raw triple. Report both the entire old-P family and the +prepared-shape sector P.A=0, rather than allowing failure-like P.A=1 worlds +to decide the only relevant obstruction. A is exactly readable iff no nonempty raw +cell contains both A values. Otherwise compute the minimum pointwise flag +error as the sum, over raw values, of the smaller A count divided by total +world count. Exhaust all 256 Boolean functions of a raw triple as an +independent control. Record compact collision witnesses. If a terminal +readout succeeds, retain all extra raw fields and prefix cells and report +whether they carry additional input information. Success in this bounded +family is a candidate witness only; no claimed quantum instrument or native +huge-L implementation follows. Failure excludes only this precise family, +window, sites and readout class. + +## Native nonlinear interaction and algebra controls + +For the n=1 zero-complement family derive the exact polynomial of the +physical origin triple after two ticks in the twelve original payload bits. +Use both direct algebra and exhaustive Boolean Möbius inversion. Isolate +actual products involving old-input and fresh-apparatus bits; verify that +removing the native B*D term changes the physical fields on explicit worlds. +This is a native nonlinear coupling witness, not a synthesized acceptance +circuit. + +Separately compute the acceptance ANF in independent logical variables +(s,Q8,Q10), and substitute the seven-site inverse expression for s. Formal +polynomial degree is only a gate-complexity diagnostic. Source-reachable +relations can cancel it, so it will not decide the physical pointer verdict. + +## Required controls and deliverables + +- Independent scalar integer native recursion agrees with packed Boolean + evolution on fixed selected worlds, sites and deadlines. +- Old-source/three-fresh-source geometry, bijective old input, and triangular + pool/current-ciphertext laws are checked from original time. +- Exact threshold counts, logical ANF and truth-table reconstructions agree. +- The explicit native nonlinear polynomial agrees with every zero-complement + world; removing the nonlinear term and/or old-local term is detected. +- Raw-cell Bayes error agrees with all 256 Boolean readouts. A synthetic + pointer containing A passes the same collision/readout mechanism so an + all-fail result is not built into the checker. +- Full raw triples, actual prefixes, zero cells and both A outcomes remain. + No history/pool independence is inferred beyond computed bounded laws. + +Curated output: this PLAN.md, REPORT.md, checks.py, deterministic result.json, +PROVENANCE.json and SHA256SUMS. Normal and -O outputs must be byte-identical. +General/source-scale claims, exhaustive bounded checks, algebraic controls +and internal review remain separate evidence layers. Root handles all Git +publication. No merge, dispatch, branch deletion, force push or #885 write. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/PROVENANCE.json new file mode 100644 index 000000000..92c602067 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/PROVENANCE.json @@ -0,0 +1,47 @@ +{ + "comparison_ensemble": { + "additional_zero_family_n": 1, + "dirty_background_seeds": [ + 0, + 3 + ], + "fresh_apparatus_bits": 9, + "n": [ + 1, + 2, + 3 + ], + "old_input_bits": 3, + "pointer_radius": 2, + "post_pool_deadlines": [ + 1, + 2, + 3 + ], + "worlds_per_family": 4096 + }, + "guiding_pr": 910, + "plan_commit": "9e92ff42cdb254e0de23202409888c3f5034bf39", + "plan_sha256": "11b4c339e056782e2f57040f9e4ea11ae084c9053e9215e62e1c877495617262", + "prior_native_author": "f24a57a7c23cc1818c04265cec7604f8bc2f410d", + "publication_authority": "Root only; no merge, dispatch, force push, branch deletion or #885 write.", + "referenced_files": [ + { + "commit": "16b154cefe3acd40d5a60d507905709c3cfc19ca", + "path": "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/REPORT.md", + "role": "scientific context; no imported engine or runtime data", + "sha256": "18678f906f6492b13d27152db3f3595361df0414cc4fa8de2f48229fac4e2808" + }, + { + "commit": "16b154cefe3acd40d5a60d507905709c3cfc19ca", + "path": "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/shared_v12/INTERFACE-CONTRACT.md", + "role": "scientific context; no imported engine or runtime data", + "sha256": "1a0b34ebb0c7115dd5faae11d2ab20c25ecf8a6f091ea292eb184e4311be7633" + } + ], + "repository": "amaybaum/incompleteness", + "runtime_scientific_inputs": "None beyond independently encoded rule, fixed plan parameters and generated original-time worlds. No earlier engine imported.", + "schema": "native-gate-v13-provenance-1", + "scope": "Bounded original-time native control and exact native nonlinear polynomial, not actual enormous-L acceptance availability, adopted prior, public-access contract or full equivalence.", + "source_snapshot": "16b154cefe3acd40d5a60d507905709c3cfc19ca" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/REPORT.md new file mode 100644 index 000000000..5714537a1 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/REPORT.md @@ -0,0 +1,208 @@ +# Native nonlinear processing and the short physical-pointer window + +Research checkpoint, 24 October 2026. The preregistered bounded families +contain genuine native products of the old unknown sign with actual fresh +pool operands. They do not yet supply the intended acceptance flag: none +of the 525 tested whole-cell terminal pointers determines that flag, even +with arbitrary Boolean relabelling. This failure also holds on the +prepared-shape sector P.A=0, and for the complete same-site prefixes +examined here. + +These are seven explicit small original-time lattice families. They do not +simulate the enormous-L programme boundary and establish no no-go at that +boundary, for distributed circuits, later times, other source geometry or +OI generally. The positive polynomial below is a native masked nonlinear +coupling, not an isolated available logic gate or a quantum instrument. + +The plan was published on #910 at +`9e92ff42cdb254e0de23202409888c3f5034bf39` before execution. The inherited +Native A source report is author +`f24a57a7c23cc1818c04265cec7604f8bc2f410d`, included in the source +snapshot `16b154cefe3acd40d5a60d507905709c3cfc19ca`. + +## 1. The exact native family and the decision tested + +Use the complete cubic-lattice rule + + U_(t+1)(v) = U_(t-1)(v) XOR H(XOR_(w~v) U_t(w)), + H(A,B,D) = (B,D,A XOR BD). + +For n=1,2,3, place four triples in the initial current slice at + + f_old=(-(n-1),0,0), + f8=(-n,0,-1), f10=(-n,0,+1), f9=(-n-1,0,0). + +Each payload independently takes all eight values. The 4096 worlds are an +exhaustive equal-weight comparison ensemble, not an adopted physical prior +for the old carrier. The old-input source is the sole initial unknown-input +location. No extra copy of the unknown sign or nonlinear predicate is +preloaded. The other three triples are nine initially supplied apparatus +bits. The previous slice and all other initial current sites are fixed by + + background(seed,t,x,y,z) + = ((x*x+3*y*y+7*z+13*t+seed) + XOR (x*y+z*z+11*seed*t)) AND 7, + +for seed=0,3. A seventh family uses n=1 with both complementary slices zero. +All nonzero native paths, six neighbors and old-local terms are retained; +there is no late-time cold apparatus splice or truncation of the cone. + +The old physical field P=U_(n-1)(0) is a bijective function of f_old and +is independent of the three fresh payloads. At time n the three fresh +sources map bijectively to the actual fields (Q8,Q10,M) at (0,0,-1), +(0,0,+1),(-1,0,0), conditional on each old input. The source distances to +these targets, minus n, are (0,2,0),(2,0,0),(2,2,0). Their distance to 0 +is n+1, so they cannot change P. The actual pool/ciphertext map +(Q8,Q10,V), with V=U_(n+1)(0), is also bijective on 512 values for each old +input. All eight P values occur; P is not silently assumed clean. + +The tested event uses actual fields: + + s=P.B, Y=Q8.B, R=Q10.D, + K=Q8.A+2 Q8.D+4 Q10.A, + A=[K>2)&1,(x>>1)&1,x&1 + return (b<<2)|(d<<1)|(a^(b&d)) + + +def bg(seed,t,p): + if seed is None: + return 0 + x,y,z=p + return ((x*x+3*y*y+7*z+13*t+seed)^(x*y+z*z+11*seed*t))&7 + + +def source_positions(n): + return [(-(n-1),0,0),(-n,0,-1),(-n,0,1),(-n-1,0,0)] + + +def packed(n,seed,nonlinear=True,oldlocal=True): + points=source_positions(n) + initial={p:tuple(sum(((row[j]>>(2-k))&1)<>(2-k))&1 else 0 for k in range(3)) + acc=[0,0,0] + for step in STEPS: + q=tuple(x+y for x,y in zip(p,step)) + val=get(t-1,q) + for k in range(3): + acc[k]^=val[k] + a,b,d=acc + out=(b,d,a^(b&d) if nonlinear else a) + old=get(t-2,p) if oldlocal else (0,0,0) + return tuple(x^y for x,y in zip(old,out)) + @lru_cache(None) + def unpack(t,p): + vals=get(t,p) + return tuple(sum(((vals[k]>>i)&1)<<(2-k) for k in range(3)) for i in range(4096)) + return get,unpack + + +def scalar(n,seed,assignment,t,target): + initial=dict(zip(source_positions(n),assignment)) + @lru_cache(None) + def evaluate(time,p): + if time==0 and p in initial: + return initial[p] + if time in (-1,0): + return bg(seed,time,p) + acc=0 + for step in STEPS: + acc^=evaluate(time-1,tuple(x+y for x,y in zip(p,step))) + return evaluate(time-2,p)^h(acc) + return evaluate(t,target) + + +def event(s,q8,q10): + y=(q8>>1)&1 + r=q10&1 + k=((q8>>2)&1)+2*(q8&1)+4*((q10>>2)&1) + return int(k<((5,0),(4,1))[y^s][r^s]) + + +def anf(values,names): + coeff=list(values) + need(len(coeff)==1<>i)&1 for i in range(7)] + values.append(event(b[0],4*b[1]+2*b[2]+b[3],4*b[4]+2*b[5]+b[6])) + logical=anf(values,names) + physical_names=['vB','q8A','q8B','q8D','q10A','q10B','q10D','mD','xpD','ymD','ypD'] + physical=[] + for x in range(1<>i)&1 for i in range(len(physical_names))] + s=b[0]^b[3]^b[6]^b[7]^b[8]^b[9]^b[10] + physical.append(event(s,4*b[1]+2*b[2]+b[3],4*b[4]+2*b[5]+b[6])) + substituted=anf(physical,physical_names) + need(sum(values)==40,'logical threshold mass') + need(all(values[x]==values[x^(1<<5)] for x in range(128)),'unused Z enters flag') + + native_names=['pA','pB','pD','xA','xB','xD','yA','yB','yD','gA','gB','gD'] + _,native=packed(1,None) + actual=native(2,CENTER) + q8zero=native(1,(0,0,-1)) + q10zero=native(1,(0,0,1)) + mzero=native(1,(-1,0,0)) + logical_native_by_mask=[None]*4096 + _,linear=packed(1,None,nonlinear=False) + linear_values=linear(2,CENTER) + _,without_old=packed(1,None,oldlocal=False) + no_old_values=without_old(2,CENTER) + tables=[[] for _ in range(3)] + # Our source-row convention uses integer triples MSB first. ANF input + # convention uses names ordered by increasing subset bit. Relabel explicitly. + native_by_mask=[0]*4096 + nonlinear_count=oldlocal_count=0 + witnesses=[] + for lane,(p,x,y,g) in enumerate(ROWS): + pa,pb,pd=(p>>2)&1,(p>>1)&1,p&1 + xb,xd=(x>>1)&1,x&1 + yb,yd=(y>>1)&1,y&1 + ga,gb,gd=(g>>2)&1,(g>>1)&1,g&1 + interaction=ga^(pb&gd)^(pd&gb)^(xb&yd)^(yb&xd)^(gb&(xd^yd))^(gd&(xb^yb))^(gb&gd) + expected=((pa^gd)<<2)|((pb^interaction)<<1)|(pd^gb^(gd&interaction)) + need(actual[lane]==expected,'closed native nonlinear polynomial') + need(linear_values[lane]==(p^((gd<<2)|(ga<<1)|gb)),'linear-rule control') + nonlinear_count+=actual[lane]!=linear_values[lane] + oldlocal_count+=actual[lane]!=no_old_values[lane] + bits=[(v>>(2-k))&1 for v in (p,x,y,g) for k in range(3)] + mask=sum(bit<>(2-k))&1 for v in (p,q8zero[lane],q10zero[lane],mzero[lane]) for k in range(3)] + logical_mask=sum(bit<>(2-k))&1) + native_terms=[anf(v,native_names) for v in tables] + logical_native_names=['pA','s','r','q8A','q8B','q8D','q10A','q10B','q10D','mA','mB','mD'] + logical_native_terms=anf([v&1 for v in logical_native_by_mask],logical_native_names) + # Prepared old P=(0,s,1) is an actual affine original-time input sector. + # Substitute this restriction in the measured complete logical polynomial. + prepared_terms=set() + for term in logical_native_terms: + if term&1: + continue + reduced=term&~4 + if reduced in prepared_terms: + prepared_terms.remove(reduced) + else: + prepared_terms.add(reduced) + prepared_terms=sorted(prepared_terms) + s_products=[t for t in prepared_terms if t&2 and t&~2] + need(set(describe_terms(s_products,logical_native_names))=={'s*q8B','s*q10B','s*mB'},'old-X/pool products not isolated') + old_fresh_terms=sorted({term for terms in native_terms for term in terms + if term&7 and term&~7 and term.bit_count()>=2}) + need(old_fresh_terms,'no actual old/fresh nonlinear term isolated') + need(nonlinear_count>0 and oldlocal_count>0,'native countercontrol vacuous') + return {'logical_variables':names,'logical_A_ANF':describe_terms(logical,names), + 'logical_A_degree':max(t.bit_count() for t in logical), + 'logical_success_truth_rows':sum(values),'logical_total_truth_rows':128, + 'substituted_phase_variables':physical_names, + 'substituted_A_degree':max(t.bit_count() for t in substituted), + 'substituted_A_monomials':len(substituted), + 'substituted_truth_rows':len(physical), + 'native_two_tick_variables':native_names, + 'native_two_tick_ANF':dict(zip(['A','B','D'],[describe_terms(t,native_names) for t in native_terms])), + 'native_old_fresh_product_terms':describe_terms(old_fresh_terms,native_names), + 'native_logical_basis_variables':logical_native_names, + 'native_prepared_P_0_s_1_D_ANF':describe_terms(prepared_terms,logical_native_names), + 'native_prepared_X_pool_products':describe_terms(s_products,logical_native_names), + 'native_polynomial_worlds':4096,'nonlinear_term_removed_changed_worlds':nonlinear_count, + 'old_local_term_removed_changed_worlds':oldlocal_count, + 'nonlinear_mutant_witnesses':witnesses, + 'degree_scope':'formal diagnostics only; no actual huge-L exclusion inferred'} + + +def pointer_stats(raw,flags,indices,check_functions=True): + counts=[[0,0] for _ in range(8)] + lanes=[[None,None] for _ in range(8)] + for i in indices: + value,flag=raw[i],flags[i] + counts[value][flag]+=1 + if lanes[value][flag] is None: + lanes[value][flag]=i + errors=sum(min(c) for c in counts) + if check_functions: + exhaustive=min(sum(c[1-((f>>v)&1)] for v,c in enumerate(counts)) for f in range(256)) + need(errors==exhaustive,'Bayes error/readout exhaustion disagree') + witness=None + for value,(i,j) in enumerate(lanes): + if i is not None and j is not None: + witness={'raw':value,'A0_payloads':list(ROWS[i]),'A1_payloads':list(ROWS[j])} + break + need((errors==0)==(witness is None),'collision decision mismatch') + return errors,counts,witness + + +def family(n,seed): + get,unpack=packed(n,seed) + p=unpack(n-1,CENTER) + q8=unpack(n,(0,0,-1)) + q10=unpack(n,(0,0,1)) + m=unpack(n,(-1,0,0)) + v=unpack(n+1,CENTER) + source=source_positions(n) + distance=lambda a,b:sum(abs(x-y) for x,y in zip(a,b)) + need(len(set(source))==4,'source collision') + need(distance(source[0],CENTER)==n-1,'old axial source') + need(all(distance(f,CENTER)==n+1 for f in source[1:]),'fresh reaches old input too early') + qtargets=[(0,0,-1),(0,0,1),(-1,0,0)] + expected=[[0,2,0],[2,0,0],[2,2,0]] + need([[distance(f,t)-n for t in qtargets] for f in source[1:]]==expected,'fresh triangle geometry') + old_values=[] + for old_input in range(8): + indices=range(old_input*512,(old_input+1)*512) + need(len({p[i] for i in indices})==1,'old depends on fresh source') + old_values.append(p[old_input*512]) + need(len({(q8[i],q10[i],m[i]) for i in indices})==512,'fresh triangle loses bijectivity') + need(len({(q8[i],q10[i],v[i]) for i in indices})==512,'pool/ciphertext product fails') + need(len(set(old_values))==8,'old source not bijective') + flags=[event((p[i]>>1)&1,q8[i],q10[i]) for i in range(4096)] + need(sum(flags)==1280,'flag total mass') + valid=[i for i in range(4096) if not p[i]&4] + need(len(valid)==2048 and sum(flags[i] for i in valid)==640,'prepared-shape flag mass') + for i in range(4096): + total=0 + for step in STEPS: + total^=unpack(n,step)[i] + need(v[i]^h(total)==p[i],'native fixed inverse fails') + scalar_comparisons=0 + for i in (0,31,511,1279,2048,4095): + for t,target in ((n-1,CENTER),(n,(0,0,-1)),(n,(0,0,1)),(n+3,(1,-1,0))): + need(scalar(n,seed,ROWS[i],t,target)==unpack(t,target)[i],'scalar/packed native mismatch') + scalar_comparisons+=1 + details=[] + summary=[] + all_indices=range(4096) + for d in (1,2,3): + minimum={'all':4097,'prepared':2049} + best={'all':[],'prepared':[]} + exact={'all':[],'prepared':[]} + prefix_exact={'all':[],'prepared':[]} + witnesses={} + min_prefix={'all':4097,'prepared':2049} + raw_support=[] + prefix_support=[] + for pos in POSITIONS: + raw=unpack(n+d,pos) + prefix=[tuple(unpack(t,pos)[i] for t in range(n,n+d+1)) for i in range(4096)] + row={'position':list(pos),'delay':d,'raw_counts':None,'prepared_raw_counts':None} + for label,indices in (('all',all_indices),('prepared',valid)): + error,counts,witness=pointer_stats(raw,flags,indices) + if error>v)&1)] for v,c in enumerate(counts)) for f in range(256)) + need(err==independent,'pooled readout exhaustion') + errors.append((Fraction(err,total),list(pos))) + best=min(x[0] for x in errors) + pooled.append({'delay_after_pool':d,'minimum_common_terminal_error':str(best), + 'best_site_count':sum(e==best for e,p in errors), + 'best_site_examples':[p for e,p in errors if e==best][:2]}) + result={'schema':'native-short-window-gate-v13-1', + 'scope':'seven explicit small original-time families; no actual huge-L or universal native-gate claim', + 'algebra':algebra(),'families':results,'pooled_common_readout':pooled, + 'counts':{'families':7,'complete_native_worlds':7*4096,'pointer_sites_per_deadline':len(POSITIONS), + 'terminal_pointer_cases':7*3*len(POSITIONS), + 'readout_functions_checked_per_case_and_sector':256, + 'sectors':2,'scalar_independent_comparisons':7*24}, + 'all_controls_passed':True} + exact_count=sum(sum(d['exact_terminal_site_counts'].values()) for f in results for d in f['deadlines']) + prefix_count=sum(sum(d['exact_prefix_decoder_site_counts'].values()) for f in results for d in f['deadlines']) + result['measured_exact_terminal_cases_both_sectors']=exact_count + result['measured_exact_prefix_cases_both_sectors']=prefix_count + result['verdict']='NO_EXACT_SINGLE_CELL_FLAG_IN_FIXED_WINDOW' if exact_count==0 else 'BOUNDED_EXACT_READOUT_CANDIDATE_FOUND' + print(json.dumps(result,sort_keys=True,indent=2)) + + +if __name__=='__main__': + main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/result.json new file mode 100644 index 000000000..14f6dc09d --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/result.json @@ -0,0 +1,2327 @@ +{ + "algebra": { + "degree_scope": "formal diagnostics only; no actual huge-L exclusion inferred", + "logical_A_ANF": [ + "1", + "s*b0", + "s*b1", + "s*b0*b1", + "s*b2", + "s*b0*b2", + "s*b1*b2", + "s*b0*b1*b2", + "s*b3", + "b0*b3", + "b1*b3", + "b0*b1*b3", + "b2*b3", + "b0*b2*b3", + "b1*b2*b3", + "b0*b1*b2*b3", + "b5", + "s*b5", + "s*b0*b5", + "b1*b5", + "b0*b1*b5", + "s*b2*b5", + "s*b0*b2*b5", + "b1*b2*b5", + "b0*b1*b2*b5", + "b0*b3*b5", + "b2*b3*b5", + "b0*b2*b3*b5" + ], + "logical_A_degree": 4, + "logical_success_truth_rows": 40, + "logical_total_truth_rows": 128, + "logical_variables": [ + "s", + "b0", + "b1", + "b2", + "b3", + "b4", + "b5" + ], + "native_logical_basis_variables": [ + "pA", + "s", + "r", + "q8A", + "q8B", + "q8D", + "q10A", + "q10B", + "q10D", + "mA", + "mB", + "mD" + ], + "native_old_fresh_product_terms": [ + "pD*gB", + "pB*gD", + "pD*gB*gD" + ], + "native_polynomial_worlds": 4096, + "native_prepared_P_0_s_1_D_ANF": [ + "1", + "q8A", + "s*q8B", + "q8D", + "q8B*q8D", + "q10A", + "s*q10B", + "q8D*q10B", + "q10D", + "q8B*q10D", + "q10B*q10D", + "mA", + "s*mB", + "q8D*mB", + "q10D*mB", + "mD", + "q8B*mD", + "q10B*mD", + "mB*mD" + ], + "native_prepared_X_pool_products": [ + "s*q8B", + "s*q10B", + "s*mB" + ], + "native_two_tick_ANF": { + "A": [ + "pA", + "gD" + ], + "B": [ + "pB", + "xD*yB", + "xB*yD", + "gA", + "pD*gB", + "xD*gB", + "yD*gB", + "pB*gD", + "xB*gD", + "yB*gD", + "gB*gD" + ], + "D": [ + "pD", + "gB", + "pB*gD", + "xB*gD", + "yB*gD", + "xD*yB*gD", + "xB*yD*gD", + "gA*gD", + "gB*gD", + "pD*gB*gD", + "xD*gB*gD", + "yD*gB*gD" + ] + }, + "native_two_tick_variables": [ + "pA", + "pB", + "pD", + "xA", + "xB", + "xD", + "yA", + "yB", + "yD", + "gA", + "gB", + "gD" + ], + "nonlinear_mutant_witnesses": [ + { + "initial_payloads": [ + 0, + 0, + 0, + 3 + ], + "linear_mutant": 5, + "native": 6 + }, + { + "initial_payloads": [ + 0, + 0, + 0, + 5 + ], + "linear_mutant": 6, + "native": 7 + } + ], + "nonlinear_term_removed_changed_worlds": 2432, + "old_local_term_removed_changed_worlds": 3584, + "substituted_A_degree": 4, + "substituted_A_monomials": 72, + "substituted_phase_variables": [ + "vB", + "q8A", + "q8B", + "q8D", + "q10A", + "q10B", + "q10D", + "mD", + "xpD", + "ymD", + "ypD" + ], + "substituted_truth_rows": 2048 + }, + "all_controls_passed": true, + "counts": { + "complete_native_worlds": 28672, + "families": 7, + "pointer_sites_per_deadline": 25, + "readout_functions_checked_per_case_and_sector": 256, + "scalar_independent_comparisons": 168, + "sectors": 2, + "terminal_pointer_cases": 525 + }, + "families": [ + { + "background": 0, + "complete_pointer_tables_sha256": "3568ceb8a5aad6d7b340a60db0971facdcbc1bb7d826851e324e68c7daa270d1", + "deadlines": [ + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 0, + 4 + ], + "A1_payloads": [ + 0, + 0, + 6, + 7 + ], + "raw": 0 + }, + "prepared": { + "A0_payloads": [ + 1, + 0, + 0, + 0 + ], + "A1_payloads": [ + 1, + 0, + 7, + 0 + ], + "raw": 0 + } + }, + "best_terminal_site_counts": { + "all": 25, + "prepared": 2 + }, + "best_terminal_site_examples": { + "all": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "prepared": [ + [ + 0, + 0, + 2 + ], + [ + 1, + 0, + 1 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 1, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 1, + 8 + ], + "minimum_full_prefix_flag_error_all": "1/4", + "minimum_full_prefix_flag_error_prepared": "1/4", + "minimum_terminal_flag_error_all": "5/16", + "minimum_terminal_flag_error_prepared": "19/64", + "terminal_raw_support_range": [ + 1, + 8 + ] + }, + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 0, + 0 + ], + "A1_payloads": [ + 0, + 0, + 6, + 0 + ], + "raw": 4 + }, + "prepared": { + "A0_payloads": [ + 0, + 0, + 0, + 0 + ], + "A1_payloads": [ + 0, + 0, + 6, + 0 + ], + "raw": 4 + } + }, + "best_terminal_site_counts": { + "all": 25, + "prepared": 25 + }, + "best_terminal_site_examples": { + "all": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "prepared": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 2, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 1, + 64 + ], + "minimum_full_prefix_flag_error_all": "1/4", + "minimum_full_prefix_flag_error_prepared": "1/4", + "minimum_terminal_flag_error_all": "5/16", + "minimum_terminal_flag_error_prepared": "5/16", + "terminal_raw_support_range": [ + 1, + 8 + ] + }, + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 1, + 3 + ], + "A1_payloads": [ + 0, + 0, + 6, + 3 + ], + "raw": 0 + }, + "prepared": { + "A0_payloads": [ + 0, + 0, + 1, + 3 + ], + "A1_payloads": [ + 0, + 0, + 6, + 3 + ], + "raw": 0 + } + }, + "best_terminal_site_counts": { + "all": 25, + "prepared": 25 + }, + "best_terminal_site_examples": { + "all": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "prepared": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 3, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 4, + 64 + ], + "minimum_full_prefix_flag_error_all": "1/4", + "minimum_full_prefix_flag_error_prepared": "1/4", + "minimum_terminal_flag_error_all": "5/16", + "minimum_terminal_flag_error_prepared": "5/16", + "terminal_raw_support_range": [ + 1, + 8 + ] + } + ], + "initial_worlds": 4096, + "n": 1, + "old_source_image": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "prepared_shape_worlds": 2048, + "scalar_native_comparisons": 24, + "source_positions": [ + [ + 0, + 0, + 0 + ], + [ + -1, + 0, + -1 + ], + [ + -1, + 0, + 1 + ], + [ + -2, + 0, + 0 + ] + ], + "source_triangle_and_pool_ciphertext_bijections": 8 + }, + { + "background": 3, + "complete_pointer_tables_sha256": "606890abe15ae07f3cd7622ec4a4d42bcaaac30ff859524cf37788490e70cd6d", + "deadlines": [ + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 2, + 0 + ], + "A1_payloads": [ + 0, + 1, + 1, + 0 + ], + "raw": 0 + }, + "prepared": { + "A0_payloads": [ + 3, + 0, + 1, + 0 + ], + "A1_payloads": [ + 3, + 0, + 3, + 0 + ], + "raw": 0 + } + }, + "best_terminal_site_counts": { + "all": 25, + "prepared": 2 + }, + "best_terminal_site_examples": { + "all": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "prepared": [ + [ + 0, + 0, + 2 + ], + [ + 1, + 0, + 1 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 1, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 1, + 8 + ], + "minimum_full_prefix_flag_error_all": "1/4", + "minimum_full_prefix_flag_error_prepared": "1/4", + "minimum_terminal_flag_error_all": "5/16", + "minimum_terminal_flag_error_prepared": "19/64", + "terminal_raw_support_range": [ + 1, + 8 + ] + }, + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 0, + 0 + ], + "A1_payloads": [ + 0, + 0, + 1, + 0 + ], + "raw": 6 + }, + "prepared": { + "A0_payloads": [ + 0, + 0, + 0, + 0 + ], + "A1_payloads": [ + 0, + 0, + 1, + 0 + ], + "raw": 6 + } + }, + "best_terminal_site_counts": { + "all": 25, + "prepared": 25 + }, + "best_terminal_site_examples": { + "all": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "prepared": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 2, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 1, + 64 + ], + "minimum_full_prefix_flag_error_all": "1/4", + "minimum_full_prefix_flag_error_prepared": "1/4", + "minimum_terminal_flag_error_all": "5/16", + "minimum_terminal_flag_error_prepared": "5/16", + "terminal_raw_support_range": [ + 1, + 8 + ] + }, + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 0, + 4 + ], + "A1_payloads": [ + 0, + 0, + 4, + 7 + ], + "raw": 0 + }, + "prepared": { + "A0_payloads": [ + 0, + 0, + 0, + 4 + ], + "A1_payloads": [ + 0, + 0, + 4, + 7 + ], + "raw": 0 + } + }, + "best_terminal_site_counts": { + "all": 25, + "prepared": 25 + }, + "best_terminal_site_examples": { + "all": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "prepared": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 3, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 4, + 64 + ], + "minimum_full_prefix_flag_error_all": "1/4", + "minimum_full_prefix_flag_error_prepared": "1/4", + "minimum_terminal_flag_error_all": "5/16", + "minimum_terminal_flag_error_prepared": "5/16", + "terminal_raw_support_range": [ + 1, + 8 + ] + } + ], + "initial_worlds": 4096, + "n": 1, + "old_source_image": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "prepared_shape_worlds": 2048, + "scalar_native_comparisons": 24, + "source_positions": [ + [ + 0, + 0, + 0 + ], + [ + -1, + 0, + -1 + ], + [ + -1, + 0, + 1 + ], + [ + -2, + 0, + 0 + ] + ], + "source_triangle_and_pool_ciphertext_bijections": 8 + }, + { + "background": 0, + "complete_pointer_tables_sha256": "942b0a3abc7c5502cfa29a301b3caab1156281b44704e9004c99d2f56c0c0a01", + "deadlines": [ + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 1, + 0, + 4, + 0 + ], + "A1_payloads": [ + 0, + 0, + 4, + 0 + ], + "raw": 0 + }, + "prepared": { + "A0_payloads": [ + 3, + 0, + 4, + 0 + ], + "A1_payloads": [ + 2, + 0, + 4, + 0 + ], + "raw": 0 + } + }, + "best_terminal_site_counts": { + "all": 2, + "prepared": 2 + }, + "best_terminal_site_examples": { + "all": [ + [ + 0, + -1, + 1 + ], + [ + 0, + 1, + 1 + ] + ], + "prepared": [ + [ + 0, + -1, + 1 + ], + [ + 0, + 1, + 1 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 1, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 1, + 8 + ], + "minimum_full_prefix_flag_error_all": "5/32", + "minimum_full_prefix_flag_error_prepared": "5/32", + "minimum_terminal_flag_error_all": "5/32", + "minimum_terminal_flag_error_prepared": "5/32", + "terminal_raw_support_range": [ + 1, + 8 + ] + }, + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 1, + 1 + ], + "A1_payloads": [ + 0, + 0, + 4, + 0 + ], + "raw": 0 + }, + "prepared": { + "A0_payloads": [ + 2, + 0, + 3, + 4 + ], + "A1_payloads": [ + 2, + 0, + 4, + 3 + ], + "raw": 0 + } + }, + "best_terminal_site_counts": { + "all": 1, + "prepared": 1 + }, + "best_terminal_site_examples": { + "all": [ + [ + 0, + 0, + 1 + ] + ], + "prepared": [ + [ + 0, + 0, + 1 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 2, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 4, + 64 + ], + "minimum_full_prefix_flag_error_all": "5/32", + "minimum_full_prefix_flag_error_prepared": "5/32", + "minimum_terminal_flag_error_all": "159/512", + "minimum_terminal_flag_error_prepared": "39/128", + "terminal_raw_support_range": [ + 1, + 8 + ] + }, + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 0, + 5 + ], + "A1_payloads": [ + 0, + 0, + 6, + 0 + ], + "raw": 0 + }, + "prepared": { + "A0_payloads": [ + 2, + 0, + 0, + 3 + ], + "A1_payloads": [ + 2, + 0, + 6, + 2 + ], + "raw": 0 + } + }, + "best_terminal_site_counts": { + "all": 25, + "prepared": 25 + }, + "best_terminal_site_examples": { + "all": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "prepared": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 3, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 4, + 64 + ], + "minimum_full_prefix_flag_error_all": "293/2048", + "minimum_full_prefix_flag_error_prepared": "37/256", + "minimum_terminal_flag_error_all": "5/16", + "minimum_terminal_flag_error_prepared": "5/16", + "terminal_raw_support_range": [ + 1, + 8 + ] + } + ], + "initial_worlds": 4096, + "n": 2, + "old_source_image": [ + 5, + 6, + 0, + 2, + 4, + 7, + 1, + 3 + ], + "prepared_shape_worlds": 2048, + "scalar_native_comparisons": 24, + "source_positions": [ + [ + -1, + 0, + 0 + ], + [ + -2, + 0, + -1 + ], + [ + -2, + 0, + 1 + ], + [ + -3, + 0, + 0 + ] + ], + "source_triangle_and_pool_ciphertext_bijections": 8 + }, + { + "background": 3, + "complete_pointer_tables_sha256": "f98ecd45f163f7be73cd473550bffbf495c38fa61d9b8261bb3301e45d6eef83", + "deadlines": [ + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 0, + 0 + ], + "A1_payloads": [ + 0, + 1, + 0, + 0 + ], + "raw": 1 + }, + "prepared": { + "A0_payloads": [ + 2, + 0, + 5, + 0 + ], + "A1_payloads": [ + 2, + 7, + 5, + 0 + ], + "raw": 2 + } + }, + "best_terminal_site_counts": { + "all": 2, + "prepared": 2 + }, + "best_terminal_site_examples": { + "all": [ + [ + 0, + -1, + 1 + ], + [ + 0, + 1, + 1 + ] + ], + "prepared": [ + [ + 0, + -1, + 1 + ], + [ + 0, + 1, + 1 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 1, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 1, + 8 + ], + "minimum_full_prefix_flag_error_all": "1/4", + "minimum_full_prefix_flag_error_prepared": "3/16", + "minimum_terminal_flag_error_all": "1/4", + "minimum_terminal_flag_error_prepared": "3/16", + "terminal_raw_support_range": [ + 1, + 8 + ] + }, + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 1, + 1 + ], + "A1_payloads": [ + 0, + 1, + 2, + 3 + ], + "raw": 0 + }, + "prepared": { + "A0_payloads": [ + 2, + 0, + 1, + 6 + ], + "A1_payloads": [ + 2, + 3, + 2, + 2 + ], + "raw": 0 + } + }, + "best_terminal_site_counts": { + "all": 1, + "prepared": 1 + }, + "best_terminal_site_examples": { + "all": [ + [ + 0, + 0, + 1 + ] + ], + "prepared": [ + [ + 0, + 0, + 1 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 2, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 4, + 64 + ], + "minimum_full_prefix_flag_error_all": "15/64", + "minimum_full_prefix_flag_error_prepared": "3/16", + "minimum_terminal_flag_error_all": "39/128", + "minimum_terminal_flag_error_prepared": "143/512", + "terminal_raw_support_range": [ + 1, + 8 + ] + }, + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 0, + 2 + ], + "A1_payloads": [ + 0, + 0, + 2, + 1 + ], + "raw": 0 + }, + "prepared": { + "A0_payloads": [ + 2, + 0, + 0, + 0 + ], + "A1_payloads": [ + 2, + 0, + 2, + 7 + ], + "raw": 0 + } + }, + "best_terminal_site_counts": { + "all": 25, + "prepared": 25 + }, + "best_terminal_site_examples": { + "all": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "prepared": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 3, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 4, + 64 + ], + "minimum_full_prefix_flag_error_all": "59/256", + "minimum_full_prefix_flag_error_prepared": "91/512", + "minimum_terminal_flag_error_all": "5/16", + "minimum_terminal_flag_error_prepared": "5/16", + "terminal_raw_support_range": [ + 1, + 8 + ] + } + ], + "initial_worlds": 4096, + "n": 2, + "old_source_image": [ + 5, + 6, + 1, + 3, + 4, + 7, + 0, + 2 + ], + "prepared_shape_worlds": 2048, + "scalar_native_comparisons": 24, + "source_positions": [ + [ + -1, + 0, + 0 + ], + [ + -2, + 0, + -1 + ], + [ + -2, + 0, + 1 + ], + [ + -3, + 0, + 0 + ] + ], + "source_triangle_and_pool_ciphertext_bijections": 8 + }, + { + "background": 0, + "complete_pointer_tables_sha256": "b70828b92e8510b9c48667cd98b0685b44f6dd73c9ca01c84914da0f162f2b31", + "deadlines": [ + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 1, + 4 + ], + "A1_payloads": [ + 0, + 0, + 0, + 3 + ], + "raw": 0 + }, + "prepared": { + "A0_payloads": [ + 1, + 0, + 0, + 0 + ], + "A1_payloads": [ + 1, + 7, + 5, + 0 + ], + "raw": 0 + } + }, + "best_terminal_site_counts": { + "all": 25, + "prepared": 2 + }, + "best_terminal_site_examples": { + "all": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "prepared": [ + [ + 0, + -1, + 1 + ], + [ + 0, + 1, + 1 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 1, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 1, + 8 + ], + "minimum_full_prefix_flag_error_all": "1/4", + "minimum_full_prefix_flag_error_prepared": "1/4", + "minimum_terminal_flag_error_all": "5/16", + "minimum_terminal_flag_error_prepared": "9/32", + "terminal_raw_support_range": [ + 1, + 8 + ] + }, + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 1, + 0 + ], + "A1_payloads": [ + 0, + 0, + 0, + 0 + ], + "raw": 0 + }, + "prepared": { + "A0_payloads": [ + 1, + 0, + 0, + 0 + ], + "A1_payloads": [ + 1, + 0, + 1, + 0 + ], + "raw": 0 + } + }, + "best_terminal_site_counts": { + "all": 25, + "prepared": 25 + }, + "best_terminal_site_examples": { + "all": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "prepared": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 2, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 1, + 64 + ], + "minimum_full_prefix_flag_error_all": "1009/4096", + "minimum_full_prefix_flag_error_prepared": "31/128", + "minimum_terminal_flag_error_all": "5/16", + "minimum_terminal_flag_error_prepared": "5/16", + "terminal_raw_support_range": [ + 1, + 8 + ] + }, + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 2, + 3 + ], + "A1_payloads": [ + 0, + 0, + 0, + 1 + ], + "raw": 0 + }, + "prepared": { + "A0_payloads": [ + 1, + 0, + 0, + 2 + ], + "A1_payloads": [ + 1, + 0, + 1, + 7 + ], + "raw": 0 + } + }, + "best_terminal_site_counts": { + "all": 25, + "prepared": 25 + }, + "best_terminal_site_examples": { + "all": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "prepared": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 3, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 6, + 64 + ], + "minimum_full_prefix_flag_error_all": "1009/4096", + "minimum_full_prefix_flag_error_prepared": "31/128", + "minimum_terminal_flag_error_all": "5/16", + "minimum_terminal_flag_error_prepared": "5/16", + "terminal_raw_support_range": [ + 1, + 8 + ] + } + ], + "initial_worlds": 4096, + "n": 3, + "old_source_image": [ + 5, + 1, + 4, + 2, + 6, + 3, + 7, + 0 + ], + "prepared_shape_worlds": 2048, + "scalar_native_comparisons": 24, + "source_positions": [ + [ + -2, + 0, + 0 + ], + [ + -3, + 0, + -1 + ], + [ + -3, + 0, + 1 + ], + [ + -4, + 0, + 0 + ] + ], + "source_triangle_and_pool_ciphertext_bijections": 8 + }, + { + "background": 3, + "complete_pointer_tables_sha256": "6f26d75288f89175b82ff8b702ad120a6e53bddedf881c210483d1c24f50a2b4", + "deadlines": [ + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 3, + 0, + 1, + 0 + ], + "A1_payloads": [ + 3, + 1, + 3, + 0 + ], + "raw": 1 + }, + "prepared": { + "A0_payloads": [ + 0, + 0, + 3, + 0 + ], + "A1_payloads": [ + 0, + 0, + 2, + 0 + ], + "raw": 4 + } + }, + "best_terminal_site_counts": { + "all": 1, + "prepared": 1 + }, + "best_terminal_site_examples": { + "all": [ + [ + 0, + 0, + 2 + ] + ], + "prepared": [ + [ + 0, + 0, + 2 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 1, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 1, + 8 + ], + "minimum_full_prefix_flag_error_all": "1/4", + "minimum_full_prefix_flag_error_prepared": "1/4", + "minimum_terminal_flag_error_all": "19/64", + "minimum_terminal_flag_error_prepared": "9/32", + "terminal_raw_support_range": [ + 1, + 8 + ] + }, + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 0, + 0 + ], + "A1_payloads": [ + 0, + 0, + 2, + 0 + ], + "raw": 2 + }, + "prepared": { + "A0_payloads": [ + 0, + 0, + 0, + 0 + ], + "A1_payloads": [ + 0, + 0, + 2, + 0 + ], + "raw": 2 + } + }, + "best_terminal_site_counts": { + "all": 25, + "prepared": 25 + }, + "best_terminal_site_examples": { + "all": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "prepared": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 2, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 1, + 64 + ], + "minimum_full_prefix_flag_error_all": "503/2048", + "minimum_full_prefix_flag_error_prepared": "61/256", + "minimum_terminal_flag_error_all": "5/16", + "minimum_terminal_flag_error_prepared": "5/16", + "terminal_raw_support_range": [ + 1, + 8 + ] + }, + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 0, + 2 + ], + "A1_payloads": [ + 0, + 0, + 2, + 6 + ], + "raw": 0 + }, + "prepared": { + "A0_payloads": [ + 0, + 0, + 0, + 2 + ], + "A1_payloads": [ + 0, + 0, + 2, + 6 + ], + "raw": 0 + } + }, + "best_terminal_site_counts": { + "all": 25, + "prepared": 25 + }, + "best_terminal_site_examples": { + "all": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "prepared": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 3, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 6, + 64 + ], + "minimum_full_prefix_flag_error_all": "503/2048", + "minimum_full_prefix_flag_error_prepared": "61/256", + "minimum_terminal_flag_error_all": "5/16", + "minimum_terminal_flag_error_prepared": "5/16", + "terminal_raw_support_range": [ + 1, + 8 + ] + } + ], + "initial_worlds": 4096, + "n": 3, + "old_source_image": [ + 0, + 6, + 3, + 7, + 2, + 5, + 1, + 4 + ], + "prepared_shape_worlds": 2048, + "scalar_native_comparisons": 24, + "source_positions": [ + [ + -2, + 0, + 0 + ], + [ + -3, + 0, + -1 + ], + [ + -3, + 0, + 1 + ], + [ + -4, + 0, + 0 + ] + ], + "source_triangle_and_pool_ciphertext_bijections": 8 + }, + { + "background": "zero", + "complete_pointer_tables_sha256": "e193e2896011dd507c9acddb8cb89be98ea4d78c550ebae6f9d68502c1f139a5", + "deadlines": [ + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 3, + 0 + ], + "A1_payloads": [ + 0, + 0, + 0, + 0 + ], + "raw": 0 + }, + "prepared": { + "A0_payloads": [ + 0, + 0, + 3, + 0 + ], + "A1_payloads": [ + 0, + 0, + 0, + 0 + ], + "raw": 0 + } + }, + "best_terminal_site_counts": { + "all": 25, + "prepared": 2 + }, + "best_terminal_site_examples": { + "all": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "prepared": [ + [ + 0, + 0, + 2 + ], + [ + 1, + 0, + 1 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 1, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 1, + 8 + ], + "minimum_full_prefix_flag_error_all": "1/4", + "minimum_full_prefix_flag_error_prepared": "1/4", + "minimum_terminal_flag_error_all": "5/16", + "minimum_terminal_flag_error_prepared": "19/64", + "terminal_raw_support_range": [ + 1, + 8 + ] + }, + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 3, + 0 + ], + "A1_payloads": [ + 0, + 0, + 0, + 0 + ], + "raw": 0 + }, + "prepared": { + "A0_payloads": [ + 0, + 0, + 3, + 0 + ], + "A1_payloads": [ + 0, + 0, + 0, + 0 + ], + "raw": 0 + } + }, + "best_terminal_site_counts": { + "all": 25, + "prepared": 25 + }, + "best_terminal_site_examples": { + "all": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "prepared": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 2, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 1, + 64 + ], + "minimum_full_prefix_flag_error_all": "1/4", + "minimum_full_prefix_flag_error_prepared": "1/4", + "minimum_terminal_flag_error_all": "5/16", + "minimum_terminal_flag_error_prepared": "5/16", + "terminal_raw_support_range": [ + 1, + 8 + ] + }, + { + "best_terminal_collision_witnesses": { + "all": { + "A0_payloads": [ + 0, + 0, + 3, + 0 + ], + "A1_payloads": [ + 0, + 0, + 0, + 0 + ], + "raw": 0 + }, + "prepared": { + "A0_payloads": [ + 0, + 0, + 3, + 0 + ], + "A1_payloads": [ + 0, + 0, + 0, + 0 + ], + "raw": 0 + } + }, + "best_terminal_site_counts": { + "all": 25, + "prepared": 25 + }, + "best_terminal_site_examples": { + "all": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "prepared": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ] + }, + "candidate_sites": 25, + "delay_after_pool": 3, + "exact_prefix_decoder_site_counts": { + "all": 0, + "prepared": 0 + }, + "exact_terminal_site_counts": { + "all": 0, + "prepared": 0 + }, + "full_prefix_support_range": [ + 4, + 64 + ], + "minimum_full_prefix_flag_error_all": "1/4", + "minimum_full_prefix_flag_error_prepared": "1/4", + "minimum_terminal_flag_error_all": "5/16", + "minimum_terminal_flag_error_prepared": "5/16", + "terminal_raw_support_range": [ + 1, + 8 + ] + } + ], + "initial_worlds": 4096, + "n": 1, + "old_source_image": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "prepared_shape_worlds": 2048, + "scalar_native_comparisons": 24, + "source_positions": [ + [ + 0, + 0, + 0 + ], + [ + -1, + 0, + -1 + ], + [ + -1, + 0, + 1 + ], + [ + -2, + 0, + 0 + ] + ], + "source_triangle_and_pool_ciphertext_bijections": 8 + } + ], + "measured_exact_prefix_cases_both_sectors": 0, + "measured_exact_terminal_cases_both_sectors": 0, + "pooled_common_readout": [ + { + "best_site_count": 25, + "best_site_examples": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "delay_after_pool": 1, + "minimum_common_terminal_error": "5/16" + }, + { + "best_site_count": 25, + "best_site_examples": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "delay_after_pool": 2, + "minimum_common_terminal_error": "5/16" + }, + { + "best_site_count": 25, + "best_site_examples": [ + [ + -2, + 0, + 0 + ], + [ + -1, + -1, + 0 + ] + ], + "delay_after_pool": 3, + "minimum_common_terminal_error": "5/16" + } + ], + "schema": "native-short-window-gate-v13-1", + "scope": "seven explicit small original-time families; no actual huge-L or universal native-gate claim", + "verdict": "NO_EXACT_SINGLE_CELL_FLAG_IN_FIXED_WINDOW" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/review/INPUT-HASHES.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/review/INPUT-HASHES.json new file mode 100644 index 000000000..7dccf8cba --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/review/INPUT-HASHES.json @@ -0,0 +1,39 @@ +{ + "schema": "native-gate-v13-independent-review-inputs-1", + "repository": "amaybaum/incompleteness", + "author_commit": "8ae927163c0fa340b312d634fc352df73753314f", + "prefix": "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/", + "files": [ + { + "name": "PLAN.md", + "git_blob": "cf3019fd0759d3d41342c648b22f33d91e417879", + "bytes": 5686 + }, + { + "name": "PROVENANCE.json", + "git_blob": "92c602067a06df8da5d883862c209cdfa0d41b67", + "bytes": 1917 + }, + { + "name": "REPORT.md", + "git_blob": "5714537a158a9ab4492c3d7af95f7c820968aa04", + "bytes": 9687 + }, + { + "name": "SHA256SUMS", + "git_blob": "1f48cff181fc7448495c9e1942a0d9dbf3a4a7db", + "bytes": 386 + }, + { + "name": "checks.py", + "git_blob": "25c5d1d340095e9f1fb6fbef4783fe1a002a0184", + "bytes": 17045 + }, + { + "name": "result.json", + "git_blob": "14f6dc09d7a54a55528f7b21e302c356b38e8c1b", + "bytes": 50501 + } + ], + "review_level": "separate-agent internal; not external or formal certification" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/review/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/review/REPORT.md new file mode 100644 index 000000000..fb3899dd3 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/review/REPORT.md @@ -0,0 +1,130 @@ +# Separate review of the native short-window gate checkpoint + +**Verdict: ACCEPT WITHIN THE STATED SCOPE. No blockers found.** + +This separate-agent internal review pins author +`8ae927163c0fa340b312d634fc352df73753314f`, under +`verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/`. +All six published Git blobs equal the local curated author files, including +the plan, report, program, structured result, provenance and manifest. Exact +blob IDs and sizes are retained in INPUT-HASHES.json. The review does not +import the author's engine or modify the author files, Git refs, PRs or #885. + +The accepted positive result is actual native nonlinear old-sign/pool +coupling in the declared small original-time source family. The negative +result concerns passive single-cell acceptance readouts in seven explicit +families, 25 sites and a three-deadline window. It is not a no-go for the +programme's huge-L boundary, distributed circuits, different initialization, +later deadlines, alternative encodings or OI generally. No physical access +rule, implemented acceptance instrument or equivalence proof is established. + +## 1. Independent native reconstruction and input provenance + +The review uses a newly written iterative forward engine. It initializes both +slices of a shrinking Manhattan cone directly from the published background +formula and four original-time payload sources, rather than invoking the +author's recursive cached field evaluator. Each of the 4,096 payload worlds +is a separate bit in three integer Boolean columns. Evolution applies all +six neighbors, old-local fields and the native B*D product at every site. + +For the latest queried time n+3 and sites of radius at most two, the necessary +initial current slice lies inside radius n+5. The previous slice needs +radius n+4. The engine initializes exactly those cones, then shrinks its +computed spatial domain by one at every tick. Thus the spatial restriction +includes every incoming path of the infinite dirty background. It does not +set an unexamined outside neighbor to zero or cut away off-axis paths. + +All seven families are rebuilt: n=1,2,3 with background seeds 0 and 3, plus +the n=1 zero-complement family. They cover 28,672 complete worlds. The source +positions and finite-speed distances agree. For all 56 old-input sectors, +P is constant in the three apparatus payloads; the eight old source inputs +permute all P triples. Both (Q8,Q10,M) and (Q8,Q10,V) attain 512 distinct +triples per fixed old input. Additional direct controls verify that Q8 +ignores the other two fresh payloads, Q10 ignores the other two, and M +permutes its final source conditional on its predecessors. The fixed +seven-site inverse recovers the actual P on every world. + +These independent finite calculations validate the bounded source family. +They do not replace Native A's separately stated actual-L source theorem. +The old-input comparison ensemble is explicitly equal-weight over its eight +payloads; it is not adopted as a physical prior for an unknown carrier. + +## 2. Every terminal pointer and complete same-site prefix + +The review independently evaluates the acceptance predicate through its four +integer cases and counts every terminal triple and source-world label. It +checks all 525 terminal candidates and all 525 complete same-site prefixes, +separately on all P triples and on the prepared-shape P.A=0 sector. It retains +zero-count raw cells. For each terminal candidate and sector it exhausts all +256 Boolean readouts and compares the optimum with the grouped Bayes error. +Opposite-label raw collisions are checked directly; the published compact +payload witnesses are reproduced. + +The full terminal and prefix count tables regenerate exactly the published +fingerprint in every family. The minima, best sites, exact-readout counts, +raw and prefix support ranges and individual reported collision witnesses +all agree. Every terminal and every prefix has a collision in both sectors. +A synthetic whole triple containing the actual A bit passes the identical +classification mechanism, so the all-fail verdict is not built into it. + +The smallest prepared-sector terminal error is 5/32, in n=2, seed=0 at the +first deadline. The smallest prepared-sector complete-prefix error is +37/256, in the same family at the third deadline. The pooled common-terminal +readout minimum is 5/16 at all three deadlines. These are exact errors for +the fixed equal-weight native comparison ensembles. They are neither quantum +prediction errors nor universal approximation floors. Access to the prefixes +is not granted, and their public safety is not claimed. + +## 3. Native interaction algebra and mutants + +The zero-complement origin polynomial agrees with the fresh native evaluator +on all 4,096 original-payload worlds. A separate subset-inclusion Möbius +inversion reconstructs the A/B/D polynomials: respectively 2,11,12 monomials +of degrees 1,2,3. Its exact terms match the author output. Removing the native +B*D term changes 2,432 worlds; removing the old-local term changes 3,584. +These nonvacuous controls catch linearized propagation and a lost retained +state. The polynomial uses actual original-time source payloads. + +The actual measured world table also gives a bijective change of coordinates +to (P,Q8,Q10,M). On the attained original-input sector P=(0,s,1), direct +field evaluation independently confirms + + V.A = B XOR 1, + V.B = D, + V.D = 1 XOR E XOR D XOR B*D XOR s*B, + +where E,B,D are the respective XORs of Q8,Q10,M components. Möbius inversion +in these actual pool coordinates gives the same 19-term prepared D polynomial +and the three old-sign products s*Q8.B, s*Q10.B and s*M.B. Q8.B is the actual +prospective Y operand, rather than an arbitrarily substituted apparatus bit. + +The intended acceptance ANF independently has 28 terms and degree four in +the stated seven logical coordinates. Substituting the fixed two-slice sign +identity gives 72 terms and degree four in the stated eleven-coordinate +phase basis (one coordinate is unused). Full truth reconstruction checks +both transforms. Prepared-state causal relations can cancel formal degree; +neither the author nor this review uses those degrees to decide physical +pointer impossibility. A masked native product is also not an isolated +clean Toffoli gate or permission to read its masks. + +## 4. Evidence, replay and remaining work + +Run `python3 checks.py --author-root ` and compare stdout +with result.json; repeat with `python3 -O`. Both executions match the retained +structured result byte for byte. Every required condition is checked through +explicit exceptions before a successful verdict can be emitted. The checker +reads the pinned author result as reference data but imports no author code. +All six input blobs are revalidated on every replay. SHA256SUMS lists the +other four curated review artifacts. + +The default author path detects both the standalone sibling layout and the +published `native_gate_v13/review/` layout; `--author-root` remains available. +This forward portability correction leaves result.json and every mathematical +input and measured result unchanged. + +This is a separate internal review. It is not external or coordinator- +commissioned programme review, Lean/kernel certification, full-suite testing +or an exact-head CI attestation. The actual native acceptance gate, operand +storage through its latency, complete physical pointer/history law, access +closure and reusable output boundary remain open. No merge, dispatch, +F/E designation, premise adoption or full A1/A2 equivalence follows. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/review/SHA256SUMS new file mode 100644 index 000000000..8e17ec85f --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/review/SHA256SUMS @@ -0,0 +1,4 @@ +e2253e06abbeeae57853bfc83e96ca236810ff3ec897006f6143d344a2f6107c REPORT.md +f38d06ce7820b683574589f990634964418c9399fd0bebc7a4a538bb9fd3dee8 checks.py +44c4a33744c7d938f73c07867b32afc8a1bf7de5e9ca73bcba03991616ae9ede result.json +4df2bb5f4387ee71d23ed637824157645068865f2289ce5be7233fb2c2566c30 INPUT-HASHES.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/review/checks.py new file mode 100644 index 000000000..5a234b762 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/review/checks.py @@ -0,0 +1,348 @@ +#!/usr/bin/env python3 +"""Separate forward-cone engine for the pinned native short-window gate author.""" +from collections import Counter, defaultdict +from fractions import Fraction as F +from itertools import product +from pathlib import Path +import argparse +import hashlib +import json + +PAYLOADS=list(product(range(8),repeat=4)) +ONE=(1<<4096)-1 +ZERO=(0,0,0) +ORIGIN=(0,0,0) +Q8=(0,0,-1) +Q10=(0,0,1) +MASK=(-1,0,0) +DIRECTIONS=((0,0,1),(0,0,-1),(0,1,0),(0,-1,0),(1,0,0),(-1,0,0)) +SITES=sorted(p for p in product(range(-2,3),repeat=3) if sum(abs(z) for z in p)<=2) + +def require(x,msg): + if not x:raise RuntimeError(msg) + +def hash_json(value): + return hashlib.sha256(json.dumps(value,sort_keys=True,separators=(',',':')).encode()).hexdigest() + +def adj(p): + return [tuple(a+b for a,b in zip(p,d)) for d in DIRECTIONS] + +def sites(radius): + return [p for p in product(range(-radius,radius+1),repeat=3) + if sum(abs(z) for z in p)<=radius] + +def background(seed,t,p): + if seed is None:return 0 + x,y,z=p + u=x*x+3*y*y+7*z+13*t+seed + w=x*y+z*z+11*seed*t + return (u^w)%8 + +def value_planes(value): + return tuple(ONE*int(bool(value&(1<<(2-i)))) for i in range(3)) + +def values(planes): + # Decompose whole Boolean columns into byte buffers, rather than call the + # author's recursive field evaluator or reuse any author implementation. + columns=[x.to_bytes(512,'little') for x in planes] + return [sum(((columns[c][lane//8]>>(lane%8))&1)<<(2-c) for c in range(3)) + for lane in range(4096)] + +def forward(n,seed,nonlinear=True,oldlocal=True): + final=n+3 + sources=(-(n-1),0,0),(-n,0,-1),(-n,0,1),(-n-1,0,0) + radius=final+2 + current={p:value_planes(background(seed,0,p)) for p in sites(radius)} + previous={p:value_planes(background(seed,-1,p)) for p in sites(radius-1)} + for column,p in enumerate(sources): + current[p]=tuple(sum(((row[column]>>(2-c))&1)<>v)&1)==0 else pairs[v,0] for v in range(8))) + require(min(errors)==bayes,'readout enumeration/Bayes discrepancy') + mixed=[v for v in range(8) if pairs[v,0] and pairs[v,1]] + require((bayes>0)==bool(mixed),'collision equivalence') + witness=None + if mixed: + v=mixed[0] + i=next(i for i in chosen if raw[i]==v and flags[i]==0) + j=next(i for i in chosen if raw[i]==v and flags[i]==1) + witness={'raw':v,'A0_payloads':list(PAYLOADS[i]),'A1_payloads':list(PAYLOADS[j])} + require(PAYLOADS[i]!=PAYLOADS[j],'collision witness identical worlds') + return counts,bayes,witness + +def one_family(n,seed,reference): + field,sources=forward(n,seed) + p=field(n-1,ORIGIN) + left=field(n,Q8);right=field(n,Q10);mask=field(n,MASK);cipher=field(n+1,ORIGIN) + old_image=[] + for old in range(8): + indices=list(range(512*old,512*(old+1))) + require(len({p[i] for i in indices})==1,'old not independent of apparatus') + old_image.append(p[512*old]) + require(len({(left[i],right[i],mask[i]) for i in indices})==512,'joint source triangle') + require(len({(left[i],right[i],cipher[i]) for i in indices})==512,'pool/ciphertext product') + for a in range(8): + require(len({left[512*old+64*a+8*b+g] for b,g in product(range(8),repeat=2)})==1, + 'Q8 non-triangular dependence') + for b in range(8): + require(len({right[512*old+64*a+8*b+g] for a,g in product(range(8),repeat=2)})==1, + 'Q10 non-triangular dependence') + for a,b in product(range(8),repeat=2): + require(len({mask[512*old+64*a+8*b+g] for g in range(8)})==8,'M missing final permutation') + require(sum(decode_flag(p[i],left[i],right[i]) for i in indices)==160,'per-old acceptance mass') + require(len(set(old_image))==8,'old-image permutation') + require(old_image==reference['old_source_image'],'published old source image') + for i in range(4096): + total=0 + for q in adj(ORIGIN):total^=field(n,q)[i] + a,b,d=total//4,(total//2)%2,total%2 + inv=cipher[i]^(4*b+2*d+(a^(b*d))) + require(inv==p[i],'fixed phase inverse') + flags=[decode_flag(p[i],left[i],right[i]) for i in range(4096)] + sectors={'all':list(range(4096)),'prepared':[i for i in range(4096) if p[i]<4]} + require(len(sectors['prepared'])==2048 and sum(flags[i] for i in sectors['prepared'])==640, + 'prepared sector normalization') + dist=lambda a,b:sum(abs(x-y) for x,y in zip(a,b)) + require(dist(sources[0],ORIGIN)==n-1 and all(dist(q,ORIGIN)==n+1 for q in sources[1:]), + 'input/source arrival distances') + require([[dist(q,t)-n for t in (Q8,Q10,MASK)] for q in sources[1:]]==[[0,2,0],[2,0,0],[2,2,0]], + 'triangular source distances') + details=[] + measured=[] + candidate_count=0 + prefix_count=0 + all_pooled=[] + for delay in (1,2,3): + profiles=[] + for site in SITES: + raw=field(n+delay,site) + prefix=list(zip(*(field(t,site) for t in range(n,n+delay+1)))) + entry={'position':list(site),'delay':delay,'raw_counts':None,'prepared_raw_counts':None} + stats={} + for label,chosen in sectors.items(): + counts,error,witness=pointer_profile(raw,flags,chosen) + prefixes=Counter((prefix[i],flags[i]) for i in chosen) + trace_counts={k:[prefixes[k,0],prefixes[k,1]] for k,a in prefixes} + prefix_error=sum(min(c) for c in trace_counts.values()) + # Directly retain and verify an opposite-label prefix witness; + # no target verdict is baked into the collision mechanism. + mixed=[k for k,c in trace_counts.items() if min(c)>0] + require((prefix_error>0)==bool(mixed),'prefix collision test') + candidate_count+=1;prefix_count+=1 + entry['raw_counts' if label=='all' else 'prepared_raw_counts']=counts + entry[label+'_prefix_support']=len(trace_counts) + entry[label+'_prefix_Bayes_errors']=prefix_error + entry[label+'_prefix_counts_sha256']=hash_json(sorted((list(k),v) for k,v in trace_counts.items())) + stats[label]={'error':error,'prefix':prefix_error,'witness':witness} + details.append(entry) + profiles.append((site,stats)) + all_pooled.append((delay,site,entry['raw_counts'])) + ref=reference['deadlines'][delay-1] + row={'delay':delay} + for label,chosen in sectors.items(): + minimum=min(x[label]['error'] for site,x in profiles) + best=[site for site,x in profiles if x[label]['error']==minimum] + exact=sum(x[label]['error']==0 for site,x in profiles) + prefix_exact=sum(x[label]['prefix']==0 for site,x in profiles) + min_prefix=min(x[label]['prefix'] for site,x in profiles) + require(str(F(minimum,len(chosen)))==ref['minimum_terminal_flag_error_'+label], + 'terminal minimum differs from author') + require(str(F(min_prefix,len(chosen)))==ref['minimum_full_prefix_flag_error_'+label], + 'prefix minimum differs from author') + require(exact==ref['exact_terminal_site_counts'][label], 'exact terminal count differs') + require(prefix_exact==ref['exact_prefix_decoder_site_counts'][label], 'exact prefix count differs') + require(len(best)==ref['best_terminal_site_counts'][label] and + [list(z) for z in best[:2]]==ref['best_terminal_site_examples'][label], 'best pointer site differs') + witness=next(x[label]['witness'] for site,x in profiles if site==best[0]) + require(witness==ref['best_terminal_collision_witnesses'][label], 'collision witness differs') + row[label]={'minimum_terminal_error':str(F(minimum,len(chosen))), + 'minimum_prefix_error':str(F(min_prefix,len(chosen))), + 'exact_terminal':exact,'exact_prefix':prefix_exact} + relevant_rows=[item for item in details if item['delay']==delay] + terminal_support=[sum(bool(sum(c)) for c in item['raw_counts']) for item in relevant_rows] + prefix_support=[item['all_prefix_support'] for item in relevant_rows] + require([min(terminal_support),max(terminal_support)]==ref['terminal_raw_support_range'], + 'published terminal support range differs') + require([min(prefix_support),max(prefix_support)]==ref['full_prefix_support_range'], + 'published full prefix support range differs') + measured.append(row) + require(hash_json(details)==reference['complete_pointer_tables_sha256'],'full pointer/prefix count fingerprint') + for label,chosen in sectors.items(): + require(pointer_profile([f*4 for f in flags],flags,chosen)[1]==0, + 'synthetic true pointer rejected') + return {'n':n,'background':'zero' if seed is None else seed,'deadlines':measured, + 'complete_counts_sha256':hash_json(details),'old_source_image':old_image},all_pooled,field + +def mobius(table): + # Subset inclusion inversion via paired blocks, with reverse truth check. + output=list(table) + stride=1 + while stride>(2-k))&1 for z in (p,x,y,g) for k in range(3)] + pa,pb,pd,xa,xb,xd,ya,yb,yd,ga,gb,gd=bits + j=ga^(pb*gd)^(pd*gb)^(xb*yd)^(yb*xd)^(gb*(xd^yd))^(gd*(xb^yb))^(gb*gd) + formula=4*(pa^gd)+2*(pb^j)+(pd^gb^(gd*j)) + require(formula==v[lane],'original-payload native polynomial') + mask=sum(z<>(2-k))&1 + logical_bits=[(z>>(2-k))&1 for z in (p,q8[lane],q10[lane],m[lane]) for k in range(3)] + logical_mask=sum(z<>i)&1 for i in range(7)] + logical.append(decode_flag(2*b[0],4*b[1]+2*b[2]+b[3],4*b[4]+2*b[5]+b[6])) + terms=mobius(logical) + require(named(terms,reference['logical_variables'])==reference['logical_A_ANF'],'acceptance ANF differs') + phase=[] + for x in range(2048): + b=[(x>>i)&1 for i in range(11)] + s=b[0]^b[3]^b[6]^b[7]^b[8]^b[9]^b[10] + phase.append(decode_flag(2*s,4*b[1]+2*b[2]+b[3],4*b[4]+2*b[5]+b[6])) + phase_terms=mobius(phase) + require(max(t.bit_count() for t in terms)==4 and len(terms)==28,'logical degree/count') + require(max(t.bit_count() for t in phase_terms)==4 and len(phase_terms)==72,'phase degree/count') + require(nonlinear_count==reference['nonlinear_term_removed_changed_worlds'] and + oldlocal_count==reference['old_local_term_removed_changed_worlds'],'native mutant counts differ') + return {'original_payload_worlds':4096,'original_coordinate_ANF_term_counts':[len(z) for z in original_terms], + 'original_coordinate_ANF_degrees':[max(t.bit_count() for t in z) for z in original_terms], + 'logical_A_term_count':len(terms),'logical_A_degree':4, + 'substituted_phase_term_count':len(phase_terms),'substituted_phase_degree':4, + 'native_logical_prepared_D_terms':len(prepared), + 'native_old_X_pool_products':sorted(named(products,reference['native_logical_basis_variables'])), + 'nonlinear_removed_changed_worlds':nonlinear_count,'oldlocal_removed_changed_worlds':oldlocal_count} + +def main(): + here=Path(__file__).resolve().parent + default_author=here.parent if (here.parent/'PLAN.md').is_file() else here.parent/'native_gate_v13' + parser=argparse.ArgumentParser() + parser.add_argument('--author-root',type=Path,default=default_author) + args=parser.parse_args() + pins=json.loads((Path(__file__).with_name('INPUT-HASHES.json')).read_text()) + for row in pins['files']: + b=(args.author_root/row['name']).read_bytes() + sha=hashlib.sha1(b'blob '+str(len(b)).encode()+b'\0'+b).hexdigest() + require(sha==row['git_blob'] and len(b)==row['bytes'],'pinned Git input mismatch: '+row['name']) + author=json.loads((args.author_root/'result.json').read_text()) + review=[];pooled=defaultdict(Counter);zero_field=None + configs=[(n,s) for n in (1,2,3) for s in (0,3)]+[(1,None)] + for reference,(n,seed) in zip(author['families'],configs): + require(reference['n']==n and reference['background']==('zero' if seed is None else seed),'family ordering') + data,counts,field=one_family(n,seed,reference) + review.append(data) + for delay,site,matrix in counts: + for raw in range(8): + for flag in range(2):pooled[delay,site][raw,flag]+=matrix[raw][flag] + if seed is None:zero_field=field + pooled_summary=[] + for delay in (1,2,3): + all_errors=[] + for site in SITES: + c=pooled[delay,site] + bayes=sum(min(c[v,0],c[v,1]) for v in range(8)) + exhaust=min(sum(c[v,1-((f>>v)&1)] for v in range(8)) for f in range(256)) + require(bayes==exhaust,'pooled direct readout mismatch') + all_errors.append(F(bayes,7*4096)) + require(min(all_errors)==F(author['pooled_common_readout'][delay-1]['minimum_common_terminal_error']), + 'pooled minimum differs') + pooled_summary.append(str(min(all_errors))) + algebra=algebra_check(zero_field,author['algebra']) + report={'schema':'native-gate-v13-independent-review-1','author_commit':pins['author_commit'], + 'verdict':'ACCEPT_WITHIN_STATED_SCOPE','review_level':'separate-agent internal', + 'pinned_git_blobs_verified':len(pins['files']), + 'author_engine_imported':False,'engine':'independent iterative forward shrinking cones with4096-bit columns', + 'families':review,'all_source_worlds':7*4096, + 'terminal_pointer_cases':7*25*3,'full_prefix_cases':7*25*3, + 'old_P_sectors_per_case':2,'readout_functions_per_terminal_case_and_sector':256, + 'full_pointer_and_prefix_count_fingerprints_match':True, + 'source_triangle_old_input_sectors':56, + 'pooled_common_readout_minima':pooled_summary,'algebra':algebra, + 'huge_L_or_universal_no_go_claimed':False,'native_observer_access_adopted':False, + 'all_required_controls_pass':True} + print(json.dumps(report,sort_keys=True,indent=2)) + +if __name__=='__main__':main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/review/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/review/result.json new file mode 100644 index 000000000..f00c4d16a --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_gate_v13/review/result.json @@ -0,0 +1,485 @@ +{ + "algebra": { + "logical_A_degree": 4, + "logical_A_term_count": 28, + "native_logical_prepared_D_terms": 19, + "native_old_X_pool_products": [ + "s*mB", + "s*q10B", + "s*q8B" + ], + "nonlinear_removed_changed_worlds": 2432, + "oldlocal_removed_changed_worlds": 3584, + "original_coordinate_ANF_degrees": [ + 1, + 2, + 3 + ], + "original_coordinate_ANF_term_counts": [ + 2, + 11, + 12 + ], + "original_payload_worlds": 4096, + "substituted_phase_degree": 4, + "substituted_phase_term_count": 72 + }, + "all_required_controls_pass": true, + "all_source_worlds": 28672, + "author_commit": "8ae927163c0fa340b312d634fc352df73753314f", + "author_engine_imported": false, + "engine": "independent iterative forward shrinking cones with4096-bit columns", + "families": [ + { + "background": 0, + "complete_counts_sha256": "3568ceb8a5aad6d7b340a60db0971facdcbc1bb7d826851e324e68c7daa270d1", + "deadlines": [ + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "5/16" + }, + "delay": 1, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "19/64" + } + }, + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "5/16" + }, + "delay": 2, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "5/16" + } + }, + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "5/16" + }, + "delay": 3, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "5/16" + } + } + ], + "n": 1, + "old_source_image": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + { + "background": 3, + "complete_counts_sha256": "606890abe15ae07f3cd7622ec4a4d42bcaaac30ff859524cf37788490e70cd6d", + "deadlines": [ + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "5/16" + }, + "delay": 1, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "19/64" + } + }, + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "5/16" + }, + "delay": 2, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "5/16" + } + }, + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "5/16" + }, + "delay": 3, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "5/16" + } + } + ], + "n": 1, + "old_source_image": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + { + "background": 0, + "complete_counts_sha256": "942b0a3abc7c5502cfa29a301b3caab1156281b44704e9004c99d2f56c0c0a01", + "deadlines": [ + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "5/32", + "minimum_terminal_error": "5/32" + }, + "delay": 1, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "5/32", + "minimum_terminal_error": "5/32" + } + }, + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "5/32", + "minimum_terminal_error": "159/512" + }, + "delay": 2, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "5/32", + "minimum_terminal_error": "39/128" + } + }, + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "293/2048", + "minimum_terminal_error": "5/16" + }, + "delay": 3, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "37/256", + "minimum_terminal_error": "5/16" + } + } + ], + "n": 2, + "old_source_image": [ + 5, + 6, + 0, + 2, + 4, + 7, + 1, + 3 + ] + }, + { + "background": 3, + "complete_counts_sha256": "f98ecd45f163f7be73cd473550bffbf495c38fa61d9b8261bb3301e45d6eef83", + "deadlines": [ + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "1/4" + }, + "delay": 1, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "3/16", + "minimum_terminal_error": "3/16" + } + }, + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "15/64", + "minimum_terminal_error": "39/128" + }, + "delay": 2, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "3/16", + "minimum_terminal_error": "143/512" + } + }, + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "59/256", + "minimum_terminal_error": "5/16" + }, + "delay": 3, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "91/512", + "minimum_terminal_error": "5/16" + } + } + ], + "n": 2, + "old_source_image": [ + 5, + 6, + 1, + 3, + 4, + 7, + 0, + 2 + ] + }, + { + "background": 0, + "complete_counts_sha256": "b70828b92e8510b9c48667cd98b0685b44f6dd73c9ca01c84914da0f162f2b31", + "deadlines": [ + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "5/16" + }, + "delay": 1, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "9/32" + } + }, + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1009/4096", + "minimum_terminal_error": "5/16" + }, + "delay": 2, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "31/128", + "minimum_terminal_error": "5/16" + } + }, + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1009/4096", + "minimum_terminal_error": "5/16" + }, + "delay": 3, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "31/128", + "minimum_terminal_error": "5/16" + } + } + ], + "n": 3, + "old_source_image": [ + 5, + 1, + 4, + 2, + 6, + 3, + 7, + 0 + ] + }, + { + "background": 3, + "complete_counts_sha256": "6f26d75288f89175b82ff8b702ad120a6e53bddedf881c210483d1c24f50a2b4", + "deadlines": [ + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "19/64" + }, + "delay": 1, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "9/32" + } + }, + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "503/2048", + "minimum_terminal_error": "5/16" + }, + "delay": 2, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "61/256", + "minimum_terminal_error": "5/16" + } + }, + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "503/2048", + "minimum_terminal_error": "5/16" + }, + "delay": 3, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "61/256", + "minimum_terminal_error": "5/16" + } + } + ], + "n": 3, + "old_source_image": [ + 0, + 6, + 3, + 7, + 2, + 5, + 1, + 4 + ] + }, + { + "background": "zero", + "complete_counts_sha256": "e193e2896011dd507c9acddb8cb89be98ea4d78c550ebae6f9d68502c1f139a5", + "deadlines": [ + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "5/16" + }, + "delay": 1, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "19/64" + } + }, + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "5/16" + }, + "delay": 2, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "5/16" + } + }, + { + "all": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "5/16" + }, + "delay": 3, + "prepared": { + "exact_prefix": 0, + "exact_terminal": 0, + "minimum_prefix_error": "1/4", + "minimum_terminal_error": "5/16" + } + } + ], + "n": 1, + "old_source_image": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + } + ], + "full_pointer_and_prefix_count_fingerprints_match": true, + "full_prefix_cases": 525, + "huge_L_or_universal_no_go_claimed": false, + "native_observer_access_adopted": false, + "old_P_sectors_per_case": 2, + "pinned_git_blobs_verified": 6, + "pooled_common_readout_minima": [ + "5/16", + "5/16", + "5/16" + ], + "readout_functions_per_terminal_case_and_sector": 256, + "review_level": "separate-agent internal", + "schema": "native-gate-v13-independent-review-1", + "source_triangle_old_input_sectors": 56, + "terminal_pointer_cases": 525, + "verdict": "ACCEPT_WITHIN_STATED_SCOPE" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/PLAN.md new file mode 100644 index 000000000..670f8497b --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/PLAN.md @@ -0,0 +1,43 @@ +# Native local reservoir and abstract X-reset target + +Research only. This optional checkpoint preserves a constructive implication +of native_v11, without changing that frozen checkpoint. Native source revision: +`7ec3f8234a148cadb58ebc6c8212b3b0233acabe` on #910. The independently uniform +original-time current triples at f8 and f10 produce a joint uniform six-bit +pool at q8/q10 at L+1, conditional on every other initial variable. + +## Fixed calculation before execution + +Use q8=(b0,b1,b2), q10=(b3,b4,b5) at L+1. The previous q9 whole triple is +retained, and s=q9.B is the actual designated X result. Define + + Ynew=b1, Rnew=b5, Znew=b4, K=b0+2*b2+4*b3, + a=Ynew XOR s, b=Rnew XOR s. + +The sole abstract acceptance predicate is K +--native-author-root ` must equal result.json; repeat with `-O`. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/SHA256SUMS new file mode 100644 index 000000000..56894b9ef --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/SHA256SUMS @@ -0,0 +1,5 @@ +14659c25411543496e23e9c5800484b655edcef62bda2189a1d097c16602d7ad PLAN.md +2c9d74e687f19de6730617ea5e3522396714c75a74c7ad8ea07cd52442b2d6a0 REPORT.md +65c16c05988a504b1cdfbc126a393ac91213deed82c587ba1b8520f03818f385 checks.py +e7e16099b322a9b44ade9f296d9ec9ad1dec9dc2e5807e836ff479043dcfe9c9 result.json +db1e58dfa96793551a73b8685e1bfb969f311146e8364c205b65320d4234cc35 PROVENANCE.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/checks.py new file mode 100644 index 000000000..554e434c1 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/checks.py @@ -0,0 +1,259 @@ +"""Exact native-pool/abstract-X-predicate assembly; no author engine imports.""" +import argparse +from collections import Counter +from fractions import Fraction as F +from itertools import product +from pathlib import Path +import hashlib +import json + + +TR = tuple(product((0, 1), repeat=3)) +TABLE_H = (0, 2, 4, 7, 1, 3, 5, 6) +THRESHOLDS = {(0, 0): 5, (0, 1): 0, (1, 0): 4, (1, 1): 1} + + +def require(ok, message): + if not ok: + raise RuntimeError(message) + + +def tv(p, q): + return sum((abs(p.get(k, F())-q.get(k, F())) for k in p.keys() | q.keys()), F())/2 + + +def pool_fields(q8, q10): + return q8[1], q10[2], q10[1], q8[0]+2*q8[2]+4*q10[0] + + +def abstract_flag(s, q8, q10, thresholds=THRESHOLDS): + y, r, z, k = pool_fields(q8, q10) + return k < thresholds[y ^ s, r ^ s] + + +def mu_x(s): + return {(s, s ^ a, s ^ b, z): F(n, 20) + for (a, b), n in THRESHOLDS.items() if n + for z in (0, 1)} + + +def normalized_pool_law(s, thresholds=THRESHOLDS, stale=None, reused_r=None, shared_z=False): + count = Counter() + accepted = 0 + for q8, q10 in product(TR, repeat=2): + y, r, z, k = pool_fields(q8, q10) + if reused_r is not None: + r = reused_r + if shared_z: + z = y ^ s + selector = s if stale is None else stale + if k < thresholds[y ^ selector, r ^ selector]: + count[s, y, r, z] += 1 + accepted += 1 + return {j: F(n, accepted) for j, n in count.items()}, F(accepted, 64) + + +def pool_checks(): + laws = [] + all_raw_failures = 0 + for s in (0, 1): + got, rate = normalized_pool_law(s) + require(got == mu_x(s) and rate == F(5, 16), 'whole 12-state X target from pool') + # Exact full accepted physical phases are retained, not assigned a + # replacement output on failure. The private K fields remain workspace. + accepted_phases = [(q8, q10) for q8, q10 in product(TR, repeat=2) + if abstract_flag(s, q8, q10)] + failure_phases = [(q8, q10) for q8, q10 in product(TR, repeat=2) + if not abstract_flag(s, q8, q10)] + require(len(accepted_phases) == 20 and len(failure_phases) == 44, + 'all pool phases partitioned') + require(len(set(accepted_phases+failure_phases)) == 64, + 'all accepted/rejected raw cells retained') + all_raw_failures += len(failure_phases) + z_marginal = {z: sum(p for j, p in got.items() if j[3] == z) for z in (0, 1)} + require(z_marginal == {0: F(1, 2), 1: F(1, 2)}, 'Z fair') + require(all(got[s, y, r, 0] == got[s, y, r, 1] + for _, y, r, _ in got), 'Z jointly independent') + laws.append({'s': s, 'success_probability': str(rate), + 'failure_probability': '11/16', + 'target_cells': [{'j': j, 'probability': str(p)} for j, p in sorted(got.items())]}) + mutants = {} + swapped = {(0, 0): 5, (0, 1): 0, (1, 0): 1, (1, 1): 4} + bad01 = {(0, 0): 5, (0, 1): 1, (1, 0): 4, (1, 1): 1} + for s in (0, 1): + target = mu_x(s) + bad, rate = normalized_pool_law(s, thresholds=swapped) + require(rate == F(5, 16) and tv(bad, target) == F(3, 10), 'swapped4:1 rejected') + mutants['swapped_plane_weights_tv'] = str(tv(bad, target)) + bad, rate = normalized_pool_law(s, thresholds=bad01) + require(rate == F(11, 32) and any((j[1] ^ s, j[2] ^ s) == (0, 1) for j in bad), + 'forbidden plane and changed rate rejected') + mutants['forbidden01_success_probability'] = str(rate) + bad, rate = normalized_pool_law(s, stale=1 ^ s) + require(rate == F(5, 16) and tv(bad, target) == F(4, 5), 'stale old Y rejected') + mutants['stale_y_in_place_of_x_tv'] = str(tv(bad, target)) + bad, rate = normalized_pool_law(s, shared_z=True) + require(tv(bad, target) == F(1, 2), 'joint shared-Z defect') + require(sum(p for j, p in bad.items() if j[3] == 0) == F(1, 2), + 'shared-Z mutant still has fair marginal') + mutants['shared_z_joint_tv_with_fair_marginal'] = str(tv(bad, target)) + for r in (s, 1 ^ s): + bad, rate = normalized_pool_law(s, reused_r=r) + expected = F(1, 10) if r == s else F(9, 10) + require(tv(bad, target) == expected, 'used public R is not fresh') + mutants['used_r_equal_x_tv' if r == s else 'used_r_opposite_x_tv'] = str(expected) + return laws, mutants, all_raw_failures + + +def old_kernel(table, x, u, my, mr, a, b): + index = 0 + for value, size in zip((x, u, my, mr, a, b, 4, 5, 7), (2, 2, 2, 2, 2, 2, 8, 8, 8)): + index = index*size+value + return TR[int(table[index], 16)] + + +def old_native_flags(program): + flags = {} + for a, b, k in product((0, 1), (0, 1), range(8)): + seed = a+2*b+4*k + register = 0 + for constant, terms in program[:2684]: + control = constant + for bit, mask in terms: + if seed >> bit & 1: + control ^= mask + register = TABLE_H[register ^ control] + raw = TABLE_H[TABLE_H[register]] + require(raw in (0, 2), 'old native whole herald phase') + flags[a, b, k] = raw // 2 + require(bool(flags[a, b, k]) == (k < {(0, 0): 5, (0, 1): 0, + (1, 0): 3, (1, 1): 2}[a, b]), + 'old native word implements retained threshold') + return flags + + +def complete_assembly(root): + table = json.loads((root/'branch_v10/local-controller/symmetric-result.json').read_text())['q9_table_hex'] + require(len(table) == 32768, 'complete native old table') + word = json.loads((root/'parallel_v3/direct_reset/herald.json').read_text())['program'] + flags = old_native_flags(word) + worlds = blocks = raw_failure_phases = 0 + examples = [] + for x, u, my, mr in product((0, 1), repeat=4): + y = x ^ u + accepted = Counter() + failed = Counter() + old_terminal_failures = Counter() + old_record = Counter() + physical_all = Counter() + physical_accepted = Counter() + physical_rejected = Counter() + false_resurrections = 0 + for a, b, k, old_z in product((0, 1), (0, 1), range(8), (0, 1)): + old_raw = old_kernel(table, x, u, my, mr, a, b) + old_g = flags[a, b, k] + s = old_raw[1] + for q8, q10 in product(TR, repeat=2): + worlds += 1 + yn, rn, zn, kk = pool_fields(q8, q10) + new_g = abstract_flag(s, q8, q10) + offered = bool(old_g and new_g) + j = (s, yn, rn, zn) + # All physical branches retain actual previous q9, previous + # old Z and both fresh current whole cells. None is erased. + physical = (old_raw, (0, 0, old_z), (0, old_g, 0), q8, q10) + physical_all[physical] += 1 + if offered: + physical_accepted[physical] += 1 + else: + physical_rejected[physical] += 1 + if not old_g: + old_terminal_failures[old_raw] += 1 + false_resurrections += new_g + require(not offered, 'earlier failure cannot be resurrected') + else: + old_record[old_raw] += 1 + if new_g: + accepted[old_raw, j] += 1 + else: + failed[old_raw] += 1 + raw_failure_phases += 1 + denominator = 64*64 + require(sum(accepted.values()) == 400, 'joint old/new success count') + require(sum(failed.values()) == 880, 'new failure after valid old success') + require(sum(old_terminal_failures.values()) == 2816, 'all old failures retained') + require(sum(old_record.values()) == 1280, 'old success branch count') + require(sum(accepted.values())+sum(failed.values())+sum(old_terminal_failures.values()) + == denominator, 'all finite worlds retained') + require(physical_accepted+physical_rejected == physical_all and + sum(physical_rejected.values()) == 3696, + 'complete physical phase measures partition including old failures') + require(F(false_resurrections, denominator) == F(55, 256), + 'resurrection mutant has positive false-offer mass') + for raw, count in old_record.items(): + s = raw[1] + for j, probability in mu_x(s).items(): + require(F(accepted[raw, j], denominator) == F(count, denominator)*F(5, 16)*probability, + 'whole old raw record and outgoing carrier factor jointly') + require(F(failed[raw], denominator) == F(count, denominator)*F(11, 16), + 'failure law conditional on whole old raw record') + expected_old = {(0, y, y): F(1, 2), (0, 1 ^ y, y): F(3, 10), + (0, 1 ^ y, 1 ^ y): F(1, 5)} + require({raw: F(n, 1280) for raw, n in old_record.items()} == expected_old, + 'actual post-Y whole-port old record') + if my == mr == 0: + examples.append({'x': x, 'u': u, 'old_y': y, + 'accepted_worlds': sum(accepted.values()), + 'new_failure_after_old_success_worlds': sum(failed.values()), + 'old_terminal_failure_worlds': sum(old_terminal_failures.values()), + 'full_rejected_physical_measure_sha256': hashlib.sha256( + json.dumps(sorted(physical_rejected.items()), separators=(',', ':')).encode()).hexdigest()}) + blocks += 1 + return {'finite_worlds': worlds, 'old_input_history_blocks': blocks, + 'new_rejected_physical_worlds_after_old_success': raw_failure_phases, + 'joint_success_probability_per_block': '25/256', + 'new_failure_after_old_success_probability_per_block': '55/256', + 'old_terminal_failure_probability_per_block': '11/16', + 'whole_old_raw_record_factorization': True, + 'resurrection_mutant_false_offer_probability': '55/256', + 'examples': examples} + + +def main(): + ap = argparse.ArgumentParser() + default = Path(__file__).resolve().parent.parent + if not (default/'parallel_v3').exists(): + default = default/'checkpoint_v10' + ap.add_argument('--source-root', type=Path, default=default) + ap.add_argument('--native-author-root', type=Path, default=Path(__file__).resolve().parent.parent/'native_v11') + args = ap.parse_args() + here = Path(__file__).resolve().parent + pins = json.loads((here/'PROVENANCE.json').read_text()) + for name, digest in pins['native_pool_source_files'].items(): + require(hashlib.sha256((args.native_author_root/name).read_bytes()).hexdigest() == digest, + 'native first-front pool source '+name) + for name, digest in pins['old_instrument_files'].items(): + require(hashlib.sha256((args.source_root/name).read_bytes()).hexdigest() == digest, + 'old native instrument source '+name) + actual_pool = json.loads((args.native_author_root/'result.json').read_text()) + require(actual_pool['conditional_law']['next_q8_q10_joint_cell_probability'] == '1/64', + 'retained native pool law') + laws, mutants, rejected = pool_checks() + result = {'schema': 'oi.native-pool-abstract-X-target.v11', + 'native_source_revision': pins['native_source_revision'], + 'pool_bits': 6, 'abstract_thresholds_00_01_10_11': [5, 0, 4, 1], + 'conditional_X_target_laws': laws, + 'retained_pool_rejection_phases_both_X_signs': rejected, + 'joint_assembly': complete_assembly(args.source_root), + 'countercontrols': mutants, + 'verdict': {'native_resource': 'conditional six-bit fresh local pool', + 'abstract_X_predicate': 'full finite target law passes', + 'native_X_predicate': 'not_constructed', + 'old_X_delivery_to_native_gate': 'open', + 'delayed_full_public_history_joint_law': 'open', + 'reusable_native_instrument': 'not_constructed'}} + print(json.dumps(result, indent=2, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/result.json new file mode 100644 index 000000000..edb760ff2 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/result.json @@ -0,0 +1,200 @@ +{ + "abstract_thresholds_00_01_10_11": [ + 5, + 0, + 4, + 1 + ], + "conditional_X_target_laws": [ + { + "failure_probability": "11/16", + "s": 0, + "success_probability": "5/16", + "target_cells": [ + { + "j": [ + 0, + 0, + 0, + 0 + ], + "probability": "1/4" + }, + { + "j": [ + 0, + 0, + 0, + 1 + ], + "probability": "1/4" + }, + { + "j": [ + 0, + 1, + 0, + 0 + ], + "probability": "1/5" + }, + { + "j": [ + 0, + 1, + 0, + 1 + ], + "probability": "1/5" + }, + { + "j": [ + 0, + 1, + 1, + 0 + ], + "probability": "1/20" + }, + { + "j": [ + 0, + 1, + 1, + 1 + ], + "probability": "1/20" + } + ] + }, + { + "failure_probability": "11/16", + "s": 1, + "success_probability": "5/16", + "target_cells": [ + { + "j": [ + 1, + 0, + 0, + 0 + ], + "probability": "1/20" + }, + { + "j": [ + 1, + 0, + 0, + 1 + ], + "probability": "1/20" + }, + { + "j": [ + 1, + 0, + 1, + 0 + ], + "probability": "1/5" + }, + { + "j": [ + 1, + 0, + 1, + 1 + ], + "probability": "1/5" + }, + { + "j": [ + 1, + 1, + 1, + 0 + ], + "probability": "1/4" + }, + { + "j": [ + 1, + 1, + 1, + 1 + ], + "probability": "1/4" + } + ] + } + ], + "countercontrols": { + "forbidden01_success_probability": "11/32", + "shared_z_joint_tv_with_fair_marginal": "1/2", + "stale_y_in_place_of_x_tv": "4/5", + "swapped_plane_weights_tv": "3/10", + "used_r_equal_x_tv": "1/10", + "used_r_opposite_x_tv": "9/10" + }, + "joint_assembly": { + "examples": [ + { + "accepted_worlds": 400, + "full_rejected_physical_measure_sha256": "8a1a4548a19e0a8a2630f751366d698cac8e490a2f4efc561d14b13f0310e0fd", + "new_failure_after_old_success_worlds": 880, + "old_terminal_failure_worlds": 2816, + "old_y": 0, + "u": 0, + "x": 0 + }, + { + "accepted_worlds": 400, + "full_rejected_physical_measure_sha256": "041b958d542407f18977af5e2f893465ed7f7a9801045bb528a0ccbac6aa299d", + "new_failure_after_old_success_worlds": 880, + "old_terminal_failure_worlds": 2816, + "old_y": 1, + "u": 1, + "x": 0 + }, + { + "accepted_worlds": 400, + "full_rejected_physical_measure_sha256": "88131e29596f8766fc65b02cc1f4e12471e12acbbdfda152369faab61e4fb9ef", + "new_failure_after_old_success_worlds": 880, + "old_terminal_failure_worlds": 2816, + "old_y": 1, + "u": 0, + "x": 1 + }, + { + "accepted_worlds": 400, + "full_rejected_physical_measure_sha256": "1e6654a1ad819292e78f4ee29661b21616e790c778f583a56263889e59b18a17", + "new_failure_after_old_success_worlds": 880, + "old_terminal_failure_worlds": 2816, + "old_y": 0, + "u": 1, + "x": 1 + } + ], + "finite_worlds": 65536, + "joint_success_probability_per_block": "25/256", + "new_failure_after_old_success_probability_per_block": "55/256", + "new_rejected_physical_worlds_after_old_success": 14080, + "old_input_history_blocks": 16, + "old_terminal_failure_probability_per_block": "11/16", + "resurrection_mutant_false_offer_probability": "55/256", + "whole_old_raw_record_factorization": true + }, + "native_source_revision": "7ec3f8234a148cadb58ebc6c8212b3b0233acabe", + "pool_bits": 6, + "retained_pool_rejection_phases_both_X_signs": 88, + "schema": "oi.native-pool-abstract-X-target.v11", + "verdict": { + "abstract_X_predicate": "full finite target law passes", + "delayed_full_public_history_joint_law": "open", + "native_X_predicate": "not_constructed", + "native_resource": "conditional six-bit fresh local pool", + "old_X_delivery_to_native_gate": "open", + "reusable_native_instrument": "not_constructed" + } +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/review/INPUT-HASHES.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/review/INPUT-HASHES.json new file mode 100644 index 000000000..75ceb08a4 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/review/INPUT-HASHES.json @@ -0,0 +1,25 @@ +{ + "author_files": { + "PLAN.md": "14659c25411543496e23e9c5800484b655edcef62bda2189a1d097c16602d7ad", + "PROVENANCE.json": "db1e58dfa96793551a73b8685e1bfb969f311146e8364c205b65320d4234cc35", + "REPORT.md": "2c9d74e687f19de6730617ea5e3522396714c75a74c7ad8ea07cd52442b2d6a0", + "SHA256SUMS": "0d43e0dbf691d766516e874b5cdfe808a936b7d8cd630a6c4589c69d4597744e", + "checks.py": "65c16c05988a504b1cdfbc126a393ac91213deed82c587ba1b8520f03818f385", + "result.json": "e7e16099b322a9b44ade9f296d9ec9ad1dec9dc2e5807e836ff479043dcfe9c9" + }, + "author_revision": "6e9a3ec567a1f3472bad3ed23c48b8111d2f0515", + "native_files": { + "PLAN.md": "cc09f423c1807edb912cd22a02c5c4c30a7d426866043873369c9824a5df3aac", + "PROVENANCE.json": "ea76d8dbacc503fedba69083494c975187a4bf0c9fc9cd9d717454337bb63acf", + "REPORT.md": "eba6a93de9f784649da61f778eec6be4626df61f23c05fc71981c9ebace17deb", + "SHA256SUMS": "003cd7b35d3a8ee6e1fc109a9f5653942102ab3f2f02a346781174b2297179a6", + "checks.py": "262f70bf45a49d2e95e66082c65c5ca4f5335cbce71d126f713f4148e2c8ad1e", + "result.json": "de03b82b0c4b9c16f979c547c92a6946e401a05dc6b989bfb5436b3de879b5b9" + }, + "native_source_revision": "7ec3f8234a148cadb58ebc6c8212b3b0233acabe", + "retained_source_revision": "71d291297d0a662cbb9377ab48eef7aa4b839e77", + "source_files": { + "branch_v10/local-controller/symmetric-result.json": "d8e7c1f5841192165beefb3fe35b069cc14cc93f2faa2bd68619aa7748b3db2f", + "parallel_v3/direct_reset/herald.json": "406befa2c8d1f663856a78ca6cb632e9c61d1233b02a9d532c7cb43d6261ce64" + } +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/review/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/review/REPORT.md new file mode 100644 index 000000000..fa6af4074 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/review/REPORT.md @@ -0,0 +1,116 @@ +# Separate-author review of the native fresh pool and abstract X target + +Author checkpoint: `6e9a3ec567a1f3472bad3ed23c48b8111d2f0515`, +`native_pool_v11/` on #910. **Accept the native conditional resource and +the abstract full-law calculation within their stated scope; no blocking +findings.** The acceptance predicate remains abstract. This review does not +construct a native X instrument, native flag or reusable interface. + +## Physical resource and fixed phase map + +The native resource is inherited from `native_v11` at +`7ec3f8234a148cadb58ebc6c8212b3b0233acabe`, separately reviewed with the +wording correction applied. For every fixed complementary initial state, +the two negative-x witness triples map bijectively and independently to +the whole current q8/q10 pair at L+1. With the supplied independent uniform +initial triples, that pair is uniform over 64 values conditional on the +entire complement. The output permutations may depend on the complement; +their conditional uniformity is nevertheless exact. No fresh bit is +inserted at L+1. + +The new reviewer independently verifies the public-cone distance bounds: +the earliest specified public arrivals from the two sources are L+77 and +L+79. Hence the entire retained public past through L+1 is a complement +function. Conditioning on that past, old flags or actual previous q9 does +not bias the uniform pool. This statement does not extend automatically +through an unspecified computation delay or arbitrary new access. + +At L+1, previous q9.B is the actual designated old X bit s. The mapping + + Y=b1, R=b5, Z=b4, K=b0+2b2+4b3 + +uses each of the six pool bits once and is a bijection onto the 64 possible +Y/R/Z/K assignments. It is fixed across histories. Reading previous fields +or delivering s to another native gate remains an unconstructed operation. + +## Full target measure and independent assembly + +The reviewer specifies the target independently as six explicit cells: + +| Y,R | Probability for each Z value, with X=s | +| --- | ---: | +| s,s | 1/4 | +| 1-s,s | 1/5 | +| 1-s,1-s | 1/20 | + +The union over both signs is the full calibrated 12-state codebook. Direct +enumeration of the actual six-bit field map and predicate thresholds +5,0,4,1 gives exactly this measure, 20 accepted and 44 rejected pool phases +per sign, and independent fair Z jointly with Y/R. This verifies the +complete measure, not just its Bloch coordinates or one terminal outcome. + +The checker imports no author engine. It decodes all 64 relevant parent +source-table rows using an independently packed witness index and checks +the successful raw q9 formula. It also checks the physically failed 01 +mask explicitly: + + raw q9=(u,x XOR u,x*(1 XOR u)), + +including its nonzero A field. No replacement quantum failure state is +inserted. A separate arithmetic implementation of H evaluates the retained +2,684-step herald word and its final phase on all 32 seed rows, confirming +thresholds 5,0,3,2. Independent parent Z doubles this to 64 old seed cases. + +The complete old/pool assembly contains 65,536 worlds across 16 old +input/history rows. For each valid incoming offered-carrier history and +each whole old successful raw record h, the checker verifies every +outgoing carrier cell: + + Pr(h,A=1,j)=Pr(h)*(5/16)*mu_X,s(j), + Pr(h,A=0,offered=none)=Pr(h)*(11/16). + +The old raw record retains both s and r_old. The current raw pool and +actual previous q9, old Z and old herald are retained in the selected +physical failure measures. Accepted and rejected measures partition all +worlds, including old G=0. No discarded field is silently assigned a +quantum output. The computation is a finite selected-phase accounting; +the unlisted global workspace remains part of the native state. + +Per 4,096-world old history row, the respective branch counts are 400,880 +and 2,816. Their probabilities are 25/256,55/256 and 11/16. These numbers +are conditional on a valid incoming offered-carrier history. They do not +replace upstream failure probabilities or permit restarting a carrier +after an earlier terminal flag. + +## Controls and remaining native obligations + +All six specified negative-control families are detected independently: + +- Swapping 4:1 yields TV 3/10 at unchanged 5/16 acceptance. +- A forbidden 01 threshold introduces excluded code and rate 11/32. +- Stale Y in place of s gives TV 4/5. +- Reusing old public R gives TV 1/10 or 9/10. +- Shared Z preserves its fair marginal but gives joint TV 1/2. +- Offering after old G=0 produces false-offer mass 55/256. + +The conditional pool theorem and this reference predicate do not imply +that an observer can evaluate A, that the original sources may preload a +function of unknown s, or that a flag port can reveal only one selected +field. A native implementation must deliver actual s, consume the actual +pool, produce its whole raw public flag record, and preserve the joint +carrier/history law for its full computation duration. Extra metadata may +invalidate an otherwise correct scalar acceptance law. + +The author correctly leaves old-X delivery, native predicate and flag, +delayed public-history audit, fixed usable next phase, back-action/reuse, +access closure and broader A1/A2/composite questions open. The supplied +5:4:1 calibration is reproduced, not selected by this construction. + +## Replay and provenance + +Run `python3 checks.py` and `python3 -O checks.py`, optionally specifying +`--source-root`, `--author-root` and `--native-author-root`. Both outputs +match result.json byte for byte. INPUT-HASHES.json pins the six author +files, reviewed native resource files and two retained parent data files. +All verdict checks use explicit exceptions and exact integer/Fraction +arithmetic; SHA256SUMS covers the five review files. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/review/SHA256SUMS new file mode 100644 index 000000000..b75d12eb5 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/review/SHA256SUMS @@ -0,0 +1,4 @@ +e792a32e81bbca64d62796a4fcf86483dff8619b7fb58d0bc41338a991e750e2 REPORT.md +001a3936234073b415e88d3db3468ca1487484423c04aae0767de8fd6bb2495e checks.py +efe3583cb682a53be6e6f950b57d6e510392832ad89f36d213141acefd759b15 result.json +4809b864bbfb53e0facb4a48f9e86d863a8ed0276669bfbbbee0c32ee26a6f6e INPUT-HASHES.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/review/checks.py new file mode 100644 index 000000000..4e8a62730 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/review/checks.py @@ -0,0 +1,254 @@ +"""Independent finite assembly of the native-pool abstract-X target.""" +import argparse +from collections import Counter +from fractions import Fraction +import hashlib +from itertools import product +import json +from pathlib import Path + + +def need(ok, message): + if not ok: + raise RuntimeError(message) + + +def fields(word): + bits=tuple((word >> i)&1 for i in range(6)) + return (bits[1],bits[5],bits[4],bits[0]+2*bits[2]+4*bits[3]),(bits[:3],bits[3:]) + + +def reference(s): + # Explicit six-cell probability measure, independent of the sampler's + # threshold loop or moment calculations. + patterns=((s,s,5),(1^s,s,4),(1^s,1^s,1)) + return {(s,y,r,z):Fraction(weight,20) + for y,r,weight in patterns for z in range(2)} + + +def measure(s,variant='correct',reused_r=None): + counts=Counter() + threshold={(0,0):5,(0,1):0,(1,0):4,(1,1):1} + if variant=='swap': + threshold[1,0],threshold[1,1]=1,4 + if variant=='forbidden': + threshold[0,1]=1 + for word in range(64): + (y,r,z,k),raw=fields(word) + if reused_r is not None: + r=reused_r + if variant=='shared_z': + z=y^s + chosen=s^(variant=='stale') + if k>2)&1,(value>>1)&1,value&1 + return (b<<2)|(d<<1)|(a^(b&d)) + + +def reconstruct_parent(root): + words=json.loads((root/'parallel_v3/direct_reset/herald.json').read_text())['program'] + flags={} + for a,b,k in product(range(2),range(2),range(8)): + seed=a|(b<<1)|(k<<2) + state=0 + for constant,terms in words[:2684]: + force=constant + for bit,mask in terms: + if seed & (1<>1 + need(flags[a,b,k]==int(k<[[5,0],[3,2]][a][b]),'parent native predicate') + old=json.loads((root/'branch_v10/local-controller/symmetric-result.json').read_text()) + table=old['q9_table_hex'] + need(len(table)==32768,'parent source payload table length') + rows={} + for x,u,my,mr,a,b in product(range(2),repeat=6): + # Independent six-binary-selector packing, then fixed witness4,5,7. + row=(x<<5)|(u<<4)|(my<<3)|(mr<<2)|(a<<1)|b + code=int(table[(row<<9)|(4<<6)|(5<<3)|7],16) + raw=((code>>2)&1,(code>>1)&1,code&1) + y=x^u + expected=(u,y,x*(1^u)) if (a,b)==(0,1) else (0,y^a,y^b) + need(raw==expected,'native old success/failure raw table') + rows[x,u,my,mr,a,b]=raw + return flags,rows + + +def branch_assembly(root): + flags,rows=reconstruct_parent(root) + worlds=joint_equalities=old_failed_raw01=0 + rejected_phase_cells=0 + for x,u,my,mr in product(range(2),repeat=4): + record=Counter() + success=Counter() + rejected=Counter() + terminal=Counter() + all_physical=Counter() + offered_physical=Counter() + rejected_physical=Counter() + resurrected=0 + for a,b,k,z in product(range(2),range(2),range(8),range(2)): + old_g=flags[a,b,k] + raw=rows[x,u,my,mr,a,b] + s=raw[1] + for word in range(64): + (yn,rn,zn,selector),pool=fields(word) + new_flag=selector < [[5,0],[4,1]][yn^s][rn^s] + physical=(raw,(0,0,z),(0,old_g,0),pool) + all_physical[physical]+=1 + offered=old_g and new_flag + if offered: + success[raw,(s,yn,rn,zn)]+=1 + offered_physical[physical]+=1 + else: + rejected_physical[physical]+=1 + if old_g: + record[raw]+=1 + if not new_flag: + rejected[raw]+=1 + else: + terminal[raw]+=1 + resurrected+=int(new_flag) + if (a,b)==(0,1): + old_failed_raw01+=1 + need(raw==(u,x^u,x*(1^u)),'old G0 mask01 raw overwritten') + worlds+=1 + need(sum(success.values())==400,'combined success count') + need(sum(rejected.values())==880,'new failure count') + need(sum(terminal.values())==2816,'parent failure count') + need(Fraction(resurrected,4096)==Fraction(55,256),'resurrection countercontrol') + need(all_physical==offered_physical+rejected_physical,'selected phase partition') + need(sum(rejected_physical.values())==3696,'rejected phase mass') + rejected_phase_cells+=len(rejected_physical) + y=x^u + expected={(0,y,y):Fraction(1,2),(0,1^y,y):Fraction(3,10), + (0,1^y,1^y):Fraction(1,5)} + need({raw:Fraction(n,1280) for raw,n in record.items()}==expected,'old whole raw record') + for raw,count in record.items(): + for state,p in reference(raw[1]).items(): + need(Fraction(success[raw,state],4096)==Fraction(count,4096)*Fraction(5,16)*p, + 'joint old-record/outgoing-carrier factor') + joint_equalities+=1 + need(Fraction(rejected[raw],4096)==Fraction(count,4096)*Fraction(11,16), + 'joint old-record/failure factor') + return {'parent_source_table_rows':64,'parent_native_word_truth_rows':32, + 'parent_seed_assignments_including_z':64,'finite_worlds':worlds, + 'old_history_rows':16,'joint_success_cell_equalities':joint_equalities, + 'old_mask01_failed_physical_worlds':old_failed_raw01, + 'rejected_selected_phase_cells_sum':rejected_phase_cells, + 'branch_counts_per_4096':[400,880,2816], + 'branch_probabilities':['25/256','55/256','11/16'], + 'resurrection_false_offer_probability':'55/256'} + + +def find_source(here): + for root in (here.parent,here.parent.parent,here.parent/'checkpoint_v10'): + if (root/'parallel_v3').exists(): + return root + raise RuntimeError('specify --source-root') + + +def public_cut(): + T=185 + P=12*840**185 + S=P+T + R=S+68 + L=R+9 + ports=[(0,T,0),(0,0,-8*T),(T,P,0),(-T,P,0),(4*T,P,0), + (0,S,0),(12*R,0,0),(48*L,0,0)] + distances=[] + for z in (76,78): + source=(-(L+1),S,z) + slack=min(sum(abs(a-b) for a,b in zip(source,p)) for p in ports)-L + distances.append(slack) + need(slack>1,'witness source changes public past through L+1') + need(distances==[77,79],'exact public arrival lower bounds') + return distances + + +def main(): + here=Path(__file__).resolve().parent + parser=argparse.ArgumentParser() + parser.add_argument('--source-root',type=Path) + parser.add_argument('--author-root',type=Path) + parser.add_argument('--native-author-root',type=Path) + args=parser.parse_args() + source=args.source_root or find_source(here) + author=args.author_root or (here.parent if (here.parent/'PROVENANCE.json').exists() + else here.parent/'native_pool_v11') + native=args.native_author_root or (source/'native_v11' if (source/'native_v11').exists() + else here.parent/'native_v11') + pins=json.loads((here/'INPUT-HASHES.json').read_text()) + for folder,entries in [(author,pins['author_files']),(native,pins['native_files']), + (source,pins['source_files'])]: + for name,expected in entries.items(): + need(hashlib.sha256((folder/name).read_bytes()).hexdigest()==expected,'input hash '+name) + retained=json.loads((native/'result.json').read_text()) + need(retained['conditional_law']['next_q8_q10_joint_cell_probability']=='1/64', + 'native resource contract changed') + public_slacks=public_cut() + result={'schema':'oi.native-pool-v11.review.v1','author_revision':pins['author_revision'], + 'verdict':'ACCEPT_NATIVE_RESOURCE_AND_ABSTRACT_FULL_LAW', + 'sampler':sampler_checks(),'assembly':branch_assembly(source), + 'native_pool_conditional_prior':'independent fair original-time witness triples', + 'minimum_public_arrival_slacks_over_L':public_slacks, + 'public_past_cut':'L+1; source arrival lower bounds L+77 and L+79', + 'native_predicate_or_reusable_instrument_constructed':False} + print(json.dumps(result,indent=2,sort_keys=True)) + + +if __name__=='__main__': + main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/review/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/review/result.json new file mode 100644 index 000000000..d609e6bff --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_pool_v11/review/result.json @@ -0,0 +1,47 @@ +{ + "assembly": { + "branch_counts_per_4096": [ + 400, + 880, + 2816 + ], + "branch_probabilities": [ + "25/256", + "55/256", + "11/16" + ], + "finite_worlds": 65536, + "joint_success_cell_equalities": 288, + "old_history_rows": 16, + "old_mask01_failed_physical_worlds": 16384, + "parent_native_word_truth_rows": 32, + "parent_seed_assignments_including_z": 64, + "parent_source_table_rows": 64, + "rejected_selected_phase_cells_sum": 11392, + "resurrection_false_offer_probability": "55/256" + }, + "author_revision": "6e9a3ec567a1f3472bad3ed23c48b8111d2f0515", + "minimum_public_arrival_slacks_over_L": [ + 77, + 79 + ], + "native_pool_conditional_prior": "independent fair original-time witness triples", + "native_predicate_or_reusable_instrument_constructed": false, + "public_past_cut": "L+1; source arrival lower bounds L+77 and L+79", + "sampler": { + "accepted_raw_phases_each_sign": 20, + "codebook_cells": 12, + "forbidden_mask_rate": "11/32", + "negative_control_tvs": { + "reused_r_equal_s": "1/10", + "reused_r_opposite_s": "9/10", + "shared_z": "1/2", + "stale": "4/5", + "swap": "3/10" + }, + "pool_raw_phases_both_signs": 128, + "rejected_raw_phases_each_sign": 44 + }, + "schema": "oi.native-pool-v11.review.v1", + "verdict": "ACCEPT_NATIVE_RESOURCE_AND_ABSTRACT_FULL_LAW" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/PLAN.md new file mode 100644 index 000000000..3db4b21df --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/PLAN.md @@ -0,0 +1,86 @@ +# Native operand route v13: a second original-time front + +Research only, 24 October 2026. Base #910 is +`16b154cefe3acd40d5a60d507905709c3cfc19ca`. Existing Native B author +`1c91d3158e13eaa69c7fd1710932c9995d0288d7` supplies the q10-ready variant, +its signed upper strip, and its source/bank geometry. This does not change +the Native A resource contract or repeat Native B's single-N family. + +## Candidate and first question + +Keep q10=(0,S,78), deadline L+1=R+10, the original-time readiness extension +and old-source exceptions from Native B, and its axial source +N=(0,S,S+156). Add one current initial source + + E=(0,-78,78). + +Its raw triple is controlled only by known old apparatus seeds and optional +independent fresh seed c, never by unknown x or s. E first reaches q10 at +L+1, while its distance to q9 is L+2. Unlike N, E travels on the same lower +first front as the original unknown input and W, so it can change the +unknown-input coupling before q10 without changing old q9 at L. All source +payloads remain affine in their initial apparatus bits. No late ready state, +unknown-input copy, nonlinear acceptance prior or public-bank overwrite is +allowed. The optional uniform F10 factor remains replaced by the boundary +pin in this distinct Native B variant; F8 is not a presumed q10 pool bit. + +First compute the complete q10 raw-triple kernel on all x,u,mY,mR,a,b,E,N +values, retaining the old mask01 failures. Native B's E=000 subtable must +reproduce its retained 512-row kernel exactly. Check whether the new front +can restore a pointwise native X operand on every accepted old branch. + +## Fixed bounded decision rule + +For each known accepted context k=(u,mY,mR,a,b), enumerate all 64 (E,N) +ordered pairs of q10 outputs at s=0 and s=1, with s=x XOR u XOR a. Intersect +those pair sets across all 24 k, discarding equal-output pairs. An empty +intersection rejects a common raw binary X code for any seed-only two-front +controller in this geometry. If it is nonempty, test all affine E(k) maps +(three fields, each affine in constant,u,mY,mR,a,b: 2^18 maps). For a fixed +candidate raw pair and E(k), invert the unique own-N permutation to obtain +N(k), then test its exact affine consistency on the accepted context set. +Report all or compactly summarize the affine survivors and give one explicit +source map. A common raw code is a physical operand-delivery witness only; +it is not the acceptance predicate or a reusable quantum instrument. + +If affine source maps survive, test whether two survivors have identical +nonconstant E and N coefficients, so their constant differences can be +controlled by an additional independent initial c. This gives a jointly +affine E(k,c),N(k,c) source law; test whether its four (s,c) raw values are +injective or supply a nonvacuous c-dependent native mixer. This is the only +fresh-seed follow-up authorized by this plan. No broad controller search. + +## Native reduction and required controls + +The lower sources O=(0,0,0), W=(0,-76,76), E=(0,-78,78) all lie on y+z=0. +Their first front on x=0,t=y+z obeys the exact two-dimensional recurrence + + F(y,z)=H(F(y-1,z) XOR F(y,z-1)). + +Transverse, forward and old-local terms are excluded there by finite speed. +Compute its finite initial levels at y=0,z=76,77,78 together, rather than +superposing nonlinear source responses. For y>0 retain the old coupled +three-level recurrence with the original-origin forcing; prove its same +period bound384*840^3 before reducing actual P. The unchanged signed upper +strip includes N and is evolved jointly with the lower contribution in the +full shrinking q10 diamond after collision. All six neighbors and old-local +terms remain present in that diamond. + +Before verdict: check E against all1479 retained source coordinates, all +24 earlier ready regions, and every original public-bank ray through L+1. +E can affect late noise backgrounds, so preservation is of the existing +conditional chronological bank law, not pointwise equality of every public +history. Check that E cannot affect old informative records at their own +record deadlines. Check the lower first front against direct full native +recursion at bounded coordinates (including nonzero E); compare E=000 with +all old lower rows and the old full q10 table; independently check a smaller +full three-dimensional source world. Check all own-N permutations, old q9, +zero cells/failures and at least one falsifying omitted-source or omitted- +neighbor control. If geometry or recurrence controls fail, emit no route +verdict and record the unresolved premise. + +Run exact standard-library checks normally and with -O; both must be +byte-identical to result.json. Publish PLAN before substantive computation, +then REPORT/checker/result/provenance/manifest before separate internal +review. Root is the only Git writer. No #885 write, new physical premise or +access adoption, dispatch, F/E designation, merge or full-equivalence claim. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/PROVENANCE.json new file mode 100644 index 000000000..09278a866 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/PROVENANCE.json @@ -0,0 +1,13 @@ +{ + "adaptation_credit": "Signed upper strip, native collision evaluator and source/bank geometry adapted from Native B v12, author 1c91d3158e13eaa69c7fd1710932c9995d0288d7; new lower E first-front and affine-controller engine here.", + "inputs": { + "branch_v10/local-controller/symmetric-result.json": "d8e7c1f5841192165beefb3fe35b069cc14cc93f2faa2bd68619aa7748b3db2f", + "native_seed_v12/REPORT.md": "7fb515126a6835a2c10031b3000077d62fd8ac3af4af860dc40721cb47b39c52", + "native_seed_v12/checks.py": "236438fc59188deb6575bf29d1236de10130bd78576db0c5308f4604426fc3b3", + "native_seed_v12/result.json": "4628cc9f241b0ab71f62d96fbdb2e99f5c5991cce66725f9f86c82ddcb46a28d", + "parallel_v3/history_control/SOURCE-GEOMETRY.json": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d", + "six_source_v5/period/REPORT.md": "7743ee8fccb5e39df674bb7ada6fcd6ce45582b801d4d58d77af5162420cf360" + }, + "published_plan_revision": "9e92ff42cdb254e0de23202409888c3f5034bf39", + "source_revision": "16b154cefe3acd40d5a60d507905709c3cfc19ca" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/REPORT.md new file mode 100644 index 000000000..81e3746a9 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/REPORT.md @@ -0,0 +1,192 @@ +# A second native front restores X response but affine source compilation fails + +Research checkpoint, 24 October 2026. Plan published on #910 at +`9e92ff42cdb254e0de23202409888c3f5034bf39`; source head +`16b154cefe3acd40d5a60d507905709c3cfc19ca`. This is a changed original-time +source geometry, not a repetition of Native B's excluded one-source route. + +## Result and scope + +One additional initial source on the lower first front removes Native B's +strong single-port loss of unknown X. Across all24 accepted old apparatus +contexts,32 common injective q10 output pairs are now compatible with some +known-seed E,N controls. However, none can be selected by jointly affine +initial E,N payloads. Of the2^18 affine E maps considered for each compatible +pair, only16 survive the native response constraints in total, and every +one requires a nonaffine N map. + +This does not construct a clean native X operand under the allowed affine +source contract. It identifies a specific missing step: native computation +of a known-apparatus-seed control, or a different routing/encoding. It does +not exclude a redundant many-symbol decoder of q10, another source family, +distributed phase processing, Native A, or OI. An arbitrary redundant q10 +decoder was not tested. No physical acceptance predicate or reusable quantum +instrument is supplied. + +## Original-time geometry and retained phase + +Keep T=185, P=12*840^185, S=P+185, R=S+68, L=R+9=P+262 and the inherited +torus. Retain Native B's q10=(0,S,78), deadline L+1=R+10, original-time +current/previous ready cones, old source/bank exceptions and the upper axial +source N=(0,S,S+156). This variant replaces the optional uniform F10 factor +by a ready pin, as Native B did. It does not inherit Native A's six-bit +Q8/Q10 pool unchanged. F8 may remain outside the new ready cone but is not +an additional q10 input by this deadline. + +Add one current initial raw triple at + + E=(0,-78,78). + +The E payload may be affine in the known old seeds k=(u,mY,mR,a,b), with +no unknown x or s and no precomputed nonlinear predicate. The table first +allows all eight E values, then tests exactly that affine restriction. +No new independent fair bits are needed for this first test. A fresh-c +follow-up was conditional on affine survivors; there are none, so no such +follow-up is executed. + +E reaches q10 at distance L+1. Its distances to q9=(0,S,77) and earlier q8 +are L+2 and L+3. Thus q9 at L, including s=x XOR u XOR a, is untouched. The +old q9 table is reproduced on all4096 new raw-source rows, including old +mask01 failures. All1479 retained sources avoid the new pins; E and N match +none of them and avoid all24 earlier ready regions. All eight informative +public records are causally unchanged at their respective record deadlines. + +The old initial bank rays are neither overwritten nor pinned by the new +q10-ready extension. The exact piecewise-affine distance checks use their +interval endpoints and axial kink where present. E can change late noise +backgrounds before L; equality of every realized public-history string is +not asserted. The inherited chronological bank bijection preserves the old +conditional public-history law given the changed complement. That is a +source/history statement, not a claim that future gate carriers are jointly +independent of all bank variables. + +## Exact lower-front calculation + +The original unknown source O=(0,0,0), W=(0,-76,76), and E all lie on +y+z=0 with x=0. Their payloads are respectively (0,x,0),111 and E. At the +positive first front t=y+z, all four transverse/forward neighbors and the +old-local term are too late by finite speed. Hence the complete native rule +reduces there to + + F(y,z)=H(F(y-1,z) XOR F(y,z-1)), + H(A,B,D)=(B,D,A XOR BD). + +This is nonlinear coupled evolution of the actual three sources; their +independently evolved responses are never added. Initial data lie on the +y+z=0 diagonal. A finite two-dimensional recursion computes the y=0 values +at z=76,77,78 jointly, including all earlier W/E interactions. + +For j>=1 define F_ell(j)=F(j,76+ell). Below z=76, only the original O front +can arrive. Its known parity coefficient gives + + F_0(j)=H(F_0(j-1) XOR [j AND75=0] H^(j+75)(0,x,0)), + F_ell(j)=H(F_ell(j-1) XOR F_(ell-1)(j)), ell=1,2. + +The forcing period is lcm(128,12)=384. Over that block, the map on its own +triple is a permutation of eight values. Every such permutation has order +dividing840. Thus F0 has period dividing384*840; successively F1 and F2 +have periods dividing384*840^2 and384*840^3. This holds for each fixed E, +including its changed finite initial value. Actual P is divisible by that +last bound. No simulation of P ticks or observed-period extrapolation occurs. + +At the pre-collision slice R-1, E enters the full q10 diamond at exactly +local (0,-11,10), absolute (0,S-11,78), requiring F2(174) after the period +reduction. It reaches no required R-2 entry. The W/origin levels are the +same three coupled entries already used by Native B. The signed upper strip, +including N, retains its budget20 and period12*840^20, also dividing P. +These initial upper/lower fields then evolve together through the full +shrinking three-dimensional q10 diamond. All six neighbors and old-local +terms are retained after collision. + +Native B's signed upper evaluator and collision engine are adapted and +credited in PROVENANCE.json. The new E lower front, table expansion and +complete affine-source decision are implemented here. Separate internal +review must revalidate the new reduction and scope independently. + +## Native response and exact affine decision + +The full4096-row q10 table is stored in result.json in lexicographic order + + x,u,mY,mR,a,b,Ecode,Ncode, code=4A+2B+D. + +Its ASCII-hex SHA-256 is +`b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc`. +This table includes all raw triples and old failures; it is not a selected +moment calculation. The E=000 subtable reproduces all512 old q10 rows. +For every fixed old context and held other source, varying E or N permutes +all eight output triples. Omitting E changes3584 of4096 rows. The additional +front has therefore changed the physical unknown-input response, rather +than merely relabeling Native B's old table. + +For each accepted known context k, form every ordered pair +(q10 for s=0,E,N; q10 for s=1,E,N) with the same E,N. Their common injective +intersection now has32 pairs. It includes (000,101), among others; the +E=000-only intersection remains empty. This is native response compatibility +under known-seed controls, not permission to prepare those controls +nonlinearly at time0. + +An arbitrary affine E(k) has18 binary coefficients: three fields times six +features (1,u,mY,mR,a,b). The checker represents every64^3 coefficient triple. +Exact bit-set elimination rejects inconsistent E maps without an unbounded +search. For a retained E map and a desired first raw symbol, the own-N +permutation gives a unique N(k). Gaussian elimination then tests that entire +N law on all24 contexts for the same six affine features. Eight of the32 +raw pairs admit exactly two affine E maps each; the other24 admit none. +None of the16 resulting N laws is affine. + +One explicit rejection illustrates the missing computation. For the raw +pair (000,101), an allowed affine candidate is + + Ecode=5 XOR u, i.e. E=(1,0,1 XOR u). + +Holding mY=mR=b=0, the uniquely required N values are: + +| u | a | required N code | +|---|---|---| +|0|0|0| +|0|1|6| +|1|0|7| +|1|1|6| + +The four affine feature rows XOR to zero, but the four N triples XOR to111. +Every affine source must give zero on this relation. This is an explicit +known-seed interaction that cannot be silently inserted into the initial +prior. The checker retains analogous rejection witnesses for each pair +with affine E survivors. It does not claim a native implementation of any +nonlinear N law, nor that only one nonlinear gate would suffice. + +The failed decision concerns one common raw binary X code across accepted +old contexts in this fixed two-front geometry. It does not rule out a +weaker distribution-level quantum instrument, a redundant raw alphabet, +record-aware output decoding or a changed physical preparation contract. + +## Controls, replay and remaining gate + +All controls succeed before the route verdict is emitted: + +- 97152 signed-upper scalar comparisons against full native recursion; +- 144 lower scalar comparisons at the actual W/E gaps against independent + full six-neighbor native recursion; +- 640 scalar front comparisons against an independently advanced small + full three-dimensional sparse native world; +- exact upper/lower period divisibility, source/readiness/bank geometry, + all4096 old q9 rows, and the512-row E=0 old q10 subtable; +- 512 own-E and512 own-N permutation contexts, the3584-row omitted-E + countercontrol, and the retained old single-N failure; +- exact affine solver positive/negative controls and explicit nonaffine + required-N relation witnesses. + +Run `python3 checks.py --source-root ` and repeat +with `python3 -O`; both must reproduce result.json byte for byte. The default +source root accepts the canonical sibling checkpoint_v12 while developing, +or the retained native package root after publication. Source/proof bytes +are hash pinned in PROVENANCE.json. SHA256SUMS covers the five companion files; the package has six curated files. + +This is a bounded exact native source-family result with a written +large-time reduction, not a general OI no-go or a complete instrument. +The next constructive step is a physical known-seed control computation, +a different source layout, or distributed processing of the retained phase. +The correct acceptance event, complete new pointer/prefix law, reusable +outgoing boundary, access closure, A1/A2 reconstruction and composites remain +open. No new premise/access adoption, #885 write, F/E designation, dispatch +or merge is included. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/SHA256SUMS new file mode 100644 index 000000000..c648f87e4 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/SHA256SUMS @@ -0,0 +1,5 @@ +ff72e2f5b49c29164e8e69eb381ed62dac9fddeb0f561e425be51ccc8155d43d PLAN.md +f6e272d95fdc831e028cbc1f2027585130dd15dc7b11bbda5b8cc07dafbe669d REPORT.md +8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856 checks.py +762b9799db7448c4eecf2c994c8c68ff94e1be83a7f6884b4a36385505df5a02 result.json +7f6aefa2398acae84dca3fdb29c1c80ba826e1b1d2309d9f3ea0fa242aa0748b PROVENANCE.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/checks.py new file mode 100644 index 000000000..6528adf61 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/checks.py @@ -0,0 +1,568 @@ +"""Native two-front operand route; adapted credited signed-strip native evaluator.""" +import argparse +from collections import Counter +from functools import lru_cache +from itertools import product +from pathlib import Path +import hashlib +import json + + +T = 185 +P = 12*840**185 +S = P+T +R = S+68 +L = R+9 +BASE = T+68 +BUDGET = 20 +ZERO = (0, 0, 0) +TR = tuple(product((0, 1), repeat=3)) +UR = tuple((u, a, b, n) for u, a, b in product((0, 1), repeat=3) for n in range(8)) +ROWS = tuple((x, u, my, mr, a, b, e, n) + for x, u, my, mr, a, b in product((0, 1), repeat=6) + for e, n in product(range(8), repeat=2)) +UF = (1 << len(UR))-1 +FULL = (1 << len(ROWS))-1 +UINDEX = {r: i for i, r in enumerate(UR)} +RINDEX = {r: i for i, r in enumerate(ROWS)} +XM, UM, MY, MR = tuple(sum(r[j] << i for i, r in enumerate(ROWS)) for j in range(4)) + + +def need(ok, label): + if not ok: + raise RuntimeError(label) + + +def xx(*qs): + a = b = d = 0 + for q in qs: + a ^= q[0] + b ^= q[1] + d ^= q[2] + return a, b, d + + +def h(q): + a, b, d = q + return b, d, a ^ (b & d) + + +def hp(q, n): + for _ in range(n % 12): + q = h(q) + return q + + +def lane(q, i): + return tuple((w >> i) & 1 for w in q) + + +def code(q): + return 4*q[0]+2*q[1]+q[2] + + +def dist(p, q): + return sum(abs(x-y) for x, y in zip(p, q)) + + +def ball(radius, center): + for a in range(-radius, radius+1): + for b in range(-radius+abs(a), radius-abs(a)+1): + for d in range(-radius+abs(a)+abs(b), radius-abs(a)-abs(b)+1): + yield center[0]+a, center[1]+b, center[2]+d + + +def odd(parts): + total = 0 + for value in parts: + if total & value: + return False + total |= value + return True + + +def pack(function): + return tuple(sum(function(*r)[j] << i for i, r in enumerate(UR)) for j in range(3)) + + +SOURCES = { + (0, 0, 0): pack(lambda u, a, b, n: (u, 0, 1)), + (0, 0, -14): pack(lambda u, a, b, n: (u, 0, u)), + (0, 0, -16): pack(lambda u, a, b, n: (u, 1 ^ u, 1)), + (0, 0, -18): pack(lambda u, a, b, n: (u ^ b, a, u ^ a)), + (1, 0, -17): pack(lambda u, a, b, n: (a ^ b, 0, a ^ b)), + (-1, 0, -17): pack(lambda u, a, b, n: (a ^ b, a ^ b, a ^ b)), + (0, 0, -20): pack(lambda u, a, b, n: TR[n]), +} + + +@lru_cache(None) +def direct_upper(t, x, y, z): + if t < 0 or (t-x-y-z) % 2: + return ZERO + if min(abs(x-a)+abs(y-b)+abs(z-c) for a, b, c in SOURCES) > t: + return ZERO + if t == 0: + return SOURCES.get((x, y, z), ZERO) + ns = [direct_upper(t-1, x-1, y, z), direct_upper(t-1, x+1, y, z), + direct_upper(t-1, x, abs(y-1), z), direct_upper(t-1, x, y+1, z), + direct_upper(t-1, x, y, z-1), direct_upper(t-1, x, y, z+1)] + return xx(direct_upper(t-2, x, y, z), h(xx(*ns))) + + +@lru_cache(None) +def upper_strip(): + values = {} + + def get(ell, x, y, n): + y = abs(y) + if ell < 0 or abs(x)+y > ell or (ell-abs(x)-y) % 2 or ell+abs(x)+y > BUDGET: + return ZERO + return values[ell, x, y][n] + + for ell in range(BUDGET+1): + for x in range(-ell, ell+1): + for y in range(ell-abs(x)+1): + if (ell-abs(x)-y) % 2 or ell+abs(x)+y > BUDGET: + continue + arr = [direct_upper(ell, x, y, 0)] + values[ell, x, y] = arr + for n in range(1, BASE+(BUDGET-ell)//2+1): + transverse = xx(*(get(ell-1, x+dx, y+dy, n) + for dx, dy in ((-1, 0), (1, 0), (0, -1), (0, 1)))) + arr.append(xx(get(ell-2, x, y, n), + h(xx(arr[n-1], get(ell-2, x, y, n+1), transverse)))) + return values + + +@lru_cache(None) +def expand_upper(q): + return tuple(sum(((w >> UINDEX[u, a, b, n]) & 1) << i + for i, (x, u, my, mr, a, b, e, n) in enumerate(ROWS)) for w in q) + + +@lru_cache(None) +def upper(t, pos): + x, y, n = pos[0], abs(pos[1]), R-pos[2] + ell = t-n + if ell < 0 or abs(x)+y > ell or (ell-abs(x)-y) % 2: + return ZERO + need(ell+abs(x)+y <= BUDGET, 'signed upper strip coverage') + return expand_upper(upper_strip()[ell, x, y][n-P]) + + +LOWER_ROWS = tuple(product((0,1),range(8))) +LOWER_FULL = (1 << len(LOWER_ROWS))-1 +LOWER_O = tuple(sum((0,x,0)[j] << i for i,(x,e) in enumerate(LOWER_ROWS)) for j in range(3)) +LOWER_W = (LOWER_FULL,)*3 +LOWER_E = tuple(sum(TR[e][j] << i for i,(x,e) in enumerate(LOWER_ROWS)) for j in range(3)) + + +def front_initial(gap_w=76, gap_e=78): + # All initial sources lie on t=y+z=0. No superposition is used. + row = {0: LOWER_O, gap_w: LOWER_W, gap_e: LOWER_E} + initial = {} + for t in range(gap_e+1): + if t in (gap_w,gap_w+1,gap_e): + initial[t] = row.get(t,ZERO) + row = {z:h(xx(row.get(z,ZERO),row.get(z-1,ZERO))) + for z in range(gap_e+1)} + return tuple(initial[z] for z in (gap_w,gap_w+1,gap_e)) + + +@lru_cache(None) +def lower_levels(j): + levels = list(front_initial()) + for k in range(1,j+1): + forcing = hp(LOWER_O,k+75) if not(k & 75) else ZERO + levels[0] = h(xx(levels[0],forcing)) + for ell in (1,2): + levels[ell] = h(xx(levels[ell],levels[ell-1])) + return tuple(levels) + + +@lru_cache(None) +def direct_lower(t,x,y,z): + if t < 0 or (t-x-y-z)%2: + return ZERO + if min(abs(x)+abs(y)+abs(z), abs(x)+abs(y+76)+abs(z-76), + abs(x)+abs(y+78)+abs(z-78)) > t: + return ZERO + if t == 0: + return {(0,0,0):LOWER_O,(0,-76,76):LOWER_W,(0,-78,78):LOWER_E}.get((x,y,z),ZERO) + ns = [direct_lower(t-1,abs(x-1),y,z),direct_lower(t-1,x+1,y,z), + direct_lower(t-1,x,y-1,z),direct_lower(t-1,x,y+1,z), + direct_lower(t-1,x,y,z-1),direct_lower(t-1,x,y,z+1)] + return xx(direct_lower(t-2,x,y,z),h(xx(*ns))) + + +def expand_lower(q): + return tuple(sum(((w >> (8*x+e))&1) << i + for i,(x,u,my,mr,a,b,e,n) in enumerate(ROWS)) for w in q) + + +CONTROLS = [((0, -S, -68), XM), ((0, S, -68), MY ^ MR), + ((T, P, -68), MY), ((-T, P, -68), MR)] +ENTRIES = {(0, -9, 8): (176, 0), (0, -10, 9): (175, 1), (0, -11, 10): (174, 2)} + + +def base(t, pos): + out = upper(t, pos) + for source, bits in CONTROLS: + ds = tuple(abs(x-y) for x, y in zip(source, pos)) + if sum(ds) <= t: + need(sum(ds) == t, 'pre-R lower only at first front') + if odd(ds): + out = xx(out, hp((0, bits, 0), t)) + if t == R-1 and pos in ENTRIES: + j, ell = ENTRIES[pos] + expected = hp((0, XM, 0), t) if odd((0, S+pos[1], 68+pos[2])) else ZERO + need(out == expected, 'entry has only isolated original-origin background') + out = expand_lower(lower_levels(j)[ell]) + return out + + +def native_compute(): + end = (0, 0, 10) + old = {pos: base(R-2, pos) for pos in ball(10, end)} + now = {pos: base(R-1, pos) for pos in ball(11, end)} + records = {} + for tau in range(11): + nxt = {} + for pos in ball(10-tau, end): + neighbors = [now[tuple(pos[j]+(sign if j == axis else 0) for j in range(3))] + for axis in range(3) for sign in (-1, 1)] + nxt[pos] = xx(old[pos], h(xx(*neighbors))) + records[tau] = nxt + if tau == 0: + need(nxt[0, 0, 0] == (XM, FULL, XM ^ UM), 'original qY preserved') + if tau == 7: + need(nxt[0, 0, 7] == (0, 0, XM ^ UM), 'q7 preserved') + if tau == 8: + need(nxt[0, 0, 8] == (0, XM ^ UM, 0), 'q8 preserved') + old, now = now, nxt + return now[end], records + + + +def geometry(root): + target=(0,S,78) + epos=(0,-78,78) + npos=(0,S,S+156) + deadline=L+1 + need(dist(epos,target)==deadline and dist(npos,target)==deadline,'two native first arrivals') + need(dist(epos,(0,S,77))==L+2,'E does not reach old q9 by L') + need(dist(epos,(0,S,76))==L+3,'E does not reach earlier q8') + inventory=json.loads((root/'parallel_v3/history_control/SOURCE-GEOMETRY.json').read_text())['sources'] + need(len(inventory)==1479,'inherited source inventory') + need(all(dist(tuple(v['position']),target)>=deadline for v in inventory),'q10 ready cone preserves sources') + need(all(tuple(v['position']) not in (epos,npos) for v in inventory),'new sources overwrite no old source') + ports=[(0,T,0),(0,0,-8*T),(T,P,0),(-T,P,0),(4*T,P,0),(0,S,0),(12*R,0,0),(48*L,0,0)] + deadlines=[T,T,S,S,S,S,R,L] + ready=list(zip(ports,deadlines)) + ready += [((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,S,-68),R),((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)] + ready += [((-48*L,0,0),L)] + for source in (epos,npos): + need(all(dist(source,c)>r for c,r in ready),'new source avoids old ready pins') + need(all(dist(source,c)>r for c,r in zip(ports,deadlines)),'all informative records preserved at own deadlines') + directions=[(0,-1,0),(0,0,-1),(0,1,0),(0,1,0),(0,1,0),(0,1,0),(-1,0,0),(1,0,0)] + bank_cases=0 + for port,d,start in zip(ports,directions,deadlines): + axis=next(i for i in range(3) if d[i]) + times={start+1,deadline} + zero=(target[axis]-port[axis])*d[axis] + if start+1<=zero<=deadline: times.add(zero) + for t in times: + bank=tuple(v+t*w for v,w in zip(port,d)) + need(dist(bank,target)>deadline and bank not in(epos,npos),'old banks not overwritten or pinned') + bank_cases+=1 + for source in(epos,npos): + potential=(source[axis]-port[axis])*d[axis] + if start+1<=potential<=deadline: + bank=tuple(v+potential*w for v,w in zip(port,d)) + need(bank!=source,'new source not on entire old bank ray') + entries=[] + for time,radius in((R-2,10),(R-1,11)): + for pos in ball(radius,(0,0,10)): + absolute=(pos[0],S+pos[1],68+pos[2]) + if dist(epos,absolute)<=time: + entries.append([time-R,list(pos),dist(epos,absolute)-time]) + need(entries==[[-1,[0,-11,10],0]],'E enters exactly final coupled lower level') + return {'source_inventory_rows':len(inventory),'earlier_ready_exclusions':2*len(ready), + 'informative_record_deadline_exclusions':2*len(ports),'bank_breakpoint_cases':bank_cases, + 'new_E_lower_entry':entries,'F10_uniform_factor_replaced':True, + 'late_noise_background_pointwise_equal':'not claimed; conditional chronological bank theorem retained'} + + +CONTEXTS=tuple(k for k in product((0,1),repeat=5) if(k[3],k[4])!=(0,1)) +FEATURES=tuple(1+sum(v<<(j+1) for j,v in enumerate(k)) for k in CONTEXTS) +AFFINE_VALUES=tuple(tuple((c&f).bit_count()%2 for f in FEATURES) for c in range(64)) +ALL_COEFF=(1<<64)-1 +ONE_COEFF=tuple(sum(AFFINE_VALUES[c][j]<>i)&1)<<(2-j) for j,c in enumerate((ca,cb,cd))) for i in range(6)) + + +def evaluate_affine(coeff,k): + v=coeff[0] + for bit,c in zip(k,coeff[1:]): + if bit:v ^= c + return v + + +def fit_affine(values): + solutions=[] + for field in range(3): + pivots={} + for feature,value in zip(FEATURES,values): + mask=feature;rhs=(value>>(2-field))&1 + while mask: + pivot=mask.bit_length()-1 + if pivot in pivots: + old,oldrhs=pivots[pivot];mask^=old;rhs^=oldrhs + else: + pivots[pivot]=(mask,rhs);break + if not mask and rhs:return None + out=0 + for pivot in sorted(pivots): + mask,rhs=pivots[pivot] + if rhs^((mask&out).bit_count()%2):out|=1<>(2-field))&1;relation=1<>j)&1] + feature_xor=0;source_xor=0 + for j in indices:feature_xor^=FEATURES[j];source_xor^=values[j] + need(feature_xor==0 and((source_xor>>(2-field))&1),'explicit affine rejection relation') + return {'N_field':['A','B','D'][field], + 'contexts_u_mY_mR_a_b':[list(CONTEXTS[j]) for j in indices], + 'required_N_codes':[values[j] for j in indices], + 'feature_row_xor':feature_xor,'required_N_code_xor':source_xor} + raise RuntimeError('missing affine inconsistency witness') + +def kernel_value(out,s,k,e,n): + u,my,mr,a,b=k + return code(lane(out,RINDEX[s^u^a,u,my,mr,a,b,e,n])) + + +def controller_search(out): + known = [] + pair_sets=[] + intersections=[] + common=None + for k in CONTEXTS: + lookup={} + for e in range(8): + for n in range(8): + pair=tuple(kernel_value(out,s,k,e,n) for s in(0,1)) + if pair[0]!=pair[1]: lookup.setdefault(pair,[]).append((e,n)) + known.append(lookup) + pair_sets.append(set(lookup)) + common=set(lookup) if common is None else common&set(lookup) + intersections.append(len(common)) + # The credited old single-front limit remains a countercontrol at E=0. + old_common=None + for k in CONTEXTS: + old_pairs={tuple(kernel_value(out,s,k,0,n) for s in(0,1)) for n in range(8)} + old_pairs={p for p in old_pairs if p[0]!=p[1]} + old_common=old_pairs if old_common is None else old_common&old_pairs + need(not old_common,'old single-N exclusion retained') + survivors=[] + per_pair=[] + for pair in sorted(common): + allowed=[]; n_given=[] + for lookup in known: + ens=dict(lookup[pair]) + need(len(ens)==len(lookup[pair]),'own-N uniqueness for required first output') + allowed.append(sum(1<0,'omitting new E changes actual native output') + for context in product((0,1),repeat=6): + for e in range(8): + need(len({lane(out,RINDEX[*context,e,n]) for n in range(8)})==8,'own-N first-arrival permutation') + own_n+=1 + for n in range(8): + need(len({lane(out,RINDEX[*context,e,n]) for e in range(8)})==8,'own-E first-arrival permutation') + own_e+=1 + # Independent finite affine-solver controls, outside the native response data. + known=(9,23,50) + allowed=[1<<(4*AFFINE_VALUES[known[0]][j]+2*AFFINE_VALUES[known[1]][j]+AFFINE_VALUES[known[2]][j]) + for j in range(len(CONTEXTS))] + need(list(affine_E_candidates(allowed))==[known],'affine filter recovers unique prescribed map') + malformed=list(allowed);malformed[0]=1<<((malformed[0].bit_length()-1)^1) + need(not list(affine_E_candidates(malformed)),'affine filter rejects inconsistent constraint') + fit=source_coefficients(37,12,55) + need(fit_affine([evaluate_affine(fit,k) for k in CONTEXTS])==fit,'N affine fitting exact control') + c=controller_search(out) + table=''.join(format(code(lane(out,i)),'x') for i in range(len(ROWS))) + result={'schema':'oi.native-two-front-operand.v13','source_revision':prov['source_revision'], + 'table_order':'x,u,mY,mR,a,b,Ecode,Ncode lexicographic; code=4A+2B+D', + 'q10_table_hex':table,'table_sha256':hashlib.sha256(table.encode()).hexdigest(), + 'checks':{'upper_direct_scalar_lanes':upper_controls,'lower_direct_scalar_rows':lower_controls, + 'small_full3D_scalar_front_comparisons':sm,'q9_preserved_rows':old_rows, + 'old_E0_q10_rows':len(e0),'own_E_permutation_contexts':own_e, + 'own_N_permutation_contexts':own_n,'omitted_E_changed_rows':changed, + 'affine_solver_controls':3,'geometry':g}, + 'controller':c,'verdict':{'native_X_operand':c['verdict'],'physical_acceptance':'not constructed', + 'full_instrument':'not constructed','access_rule':'not adopted','arbitrary_redundant_q10_decoder':'not tested', + 'full_A1_A2_equivalence':'not established'}} + print(json.dumps(result,sort_keys=True,separators=(',',':'))) + + +if __name__=='__main__':main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/result.json new file mode 100644 index 000000000..f395335df --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/result.json @@ -0,0 +1 @@ +{"checks":{"affine_solver_controls":3,"geometry":{"F10_uniform_factor_replaced":true,"bank_breakpoint_cases":15,"earlier_ready_exclusions":48,"informative_record_deadline_exclusions":16,"late_noise_background_pointwise_equal":"not claimed; conditional chronological bank theorem retained","new_E_lower_entry":[[-1,[0,-11,10],0]],"source_inventory_rows":1479},"lower_direct_scalar_rows":144,"old_E0_q10_rows":512,"omitted_E_changed_rows":3584,"own_E_permutation_contexts":512,"own_N_permutation_contexts":512,"q9_preserved_rows":4096,"small_full3D_scalar_front_comparisons":640,"upper_direct_scalar_lanes":97152},"controller":{"accepted_context_count":24,"affine_E_coefficient_maps_represented_per_pair":262144,"common_pair_intersection_sizes":[40,40,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32],"common_raw_pairs":[[0,2],[0,5],[0,6],[0,7],[1,3],[1,4],[1,6],[1,7],[2,0],[2,4],[2,5],[2,6],[3,1],[3,4],[3,5],[3,7],[4,1],[4,2],[4,3],[4,7],[5,0],[5,2],[5,3],[5,6],[6,0],[6,1],[6,2],[6,5],[7,0],[7,1],[7,3],[7,4]],"fresh_c_witnesses":[],"old_E0_common_pairs":[],"per_pair_affine_results":[{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[0,2]},{"affine_E_maps_after_constraints":2,"first_N_rejection":{"E_coeff_constant_u_mY_mR_a_b":[5,1,0,0,0,0],"N_affine_inconsistency":{"N_field":"A","contexts_u_mY_mR_a_b":[[0,0,0,0,0],[0,0,0,1,0],[1,0,0,0,0],[1,0,0,1,0]],"feature_row_xor":0,"required_N_code_xor":7,"required_N_codes":[0,6,7,6]}},"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[0,5]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[0,6]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[0,7]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[1,3]},{"affine_E_maps_after_constraints":2,"first_N_rejection":{"E_coeff_constant_u_mY_mR_a_b":[5,1,0,0,0,0],"N_affine_inconsistency":{"N_field":"A","contexts_u_mY_mR_a_b":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"feature_row_xor":0,"required_N_code_xor":5,"required_N_codes":[5,7,5,2]}},"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[1,4]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[1,6]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[1,7]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[2,0]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[2,4]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[2,5]},{"affine_E_maps_after_constraints":2,"first_N_rejection":{"E_coeff_constant_u_mY_mR_a_b":[5,1,0,0,0,0],"N_affine_inconsistency":{"N_field":"A","contexts_u_mY_mR_a_b":[[0,0,0,1,0],[0,1,0,0,0],[1,0,0,0,0],[1,1,0,1,0]],"feature_row_xor":0,"required_N_code_xor":6,"required_N_codes":[5,6,5,0]}},"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[2,6]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[3,1]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[3,4]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[3,5]},{"affine_E_maps_after_constraints":2,"first_N_rejection":{"E_coeff_constant_u_mY_mR_a_b":[5,1,0,0,0,0],"N_affine_inconsistency":{"N_field":"A","contexts_u_mY_mR_a_b":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"feature_row_xor":0,"required_N_code_xor":5,"required_N_codes":[2,2,2,7]}},"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[3,7]},{"affine_E_maps_after_constraints":2,"first_N_rejection":{"E_coeff_constant_u_mY_mR_a_b":[5,1,0,0,0,0],"N_affine_inconsistency":{"N_field":"A","contexts_u_mY_mR_a_b":[[0,0,0,0,0],[0,0,0,1,1],[1,0,0,0,0],[1,0,0,1,1]],"feature_row_xor":0,"required_N_code_xor":7,"required_N_codes":[3,4,6,6]}},"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[4,1]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[4,2]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[4,3]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[4,7]},{"affine_E_maps_after_constraints":2,"first_N_rejection":{"E_coeff_constant_u_mY_mR_a_b":[5,1,0,0,0,0],"N_affine_inconsistency":{"N_field":"A","contexts_u_mY_mR_a_b":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"feature_row_xor":0,"required_N_code_xor":7,"required_N_codes":[4,4,4,3]}},"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[5,0]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[5,2]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[5,3]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[5,6]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[6,0]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[6,1]},{"affine_E_maps_after_constraints":2,"first_N_rejection":{"E_coeff_constant_u_mY_mR_a_b":[5,1,0,0,0,0],"N_affine_inconsistency":{"N_field":"A","contexts_u_mY_mR_a_b":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"feature_row_xor":0,"required_N_code_xor":7,"required_N_codes":[1,3,1,4]}},"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[6,2]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[6,5]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[7,0]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[7,1]},{"affine_E_maps_after_constraints":2,"first_N_rejection":{"E_coeff_constant_u_mY_mR_a_b":[5,1,0,0,0,0],"N_affine_inconsistency":{"N_field":"A","contexts_u_mY_mR_a_b":[[0,0,0,0,0],[0,0,0,1,0],[1,0,0,0,0],[1,0,0,1,0]],"feature_row_xor":0,"required_N_code_xor":4,"required_N_codes":[7,0,2,1]}},"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[7,3]},{"affine_E_maps_after_constraints":0,"first_N_rejection":null,"first_witness":null,"joint_affine_E_N_maps":0,"raw_pair":[7,4]}],"total_joint_affine_maps":0,"verdict":"no common raw binary X code from affine E,N in this geometry"},"q10_table_hex":"2517630452710463715236404360157217254036063451273406721560432751741302653147562020564731137465026502137456203147473120560265741313402567743652015604713265274310206317453172065402513476471560234210356716457023246753100754613261230745703216545301247635764201251763045271046371523640436015721725403606345127340672156043275156203147026574131374650220564731473120567413026565021374314756203172065447156023652743105604713202513476134025672063174574365201421035671645702324675310075461326123074570321654530124763576420125176304527104637152364043601572172540360634512734067215604327517413026531475620205647311374650265021374562031474731205602657413134025677436520156047132652743102063174531720654025134764715602342103567164570232467531007546132612307457032165453012476357642012517630452710463715236404360157217254036063451273406721560432751562031470265741313746502205647314731205674130265650213743147562031720654471560236527431056047132025134761340256720631745743652014210356716457023246753100754613261230745703216545301247635764201276043510452716363251704401725367234061515436072367152405106342740362751721504630463721536405127157263046304157251273640275140361236704521045367467235107540163257632401301542760327615464510723213564071207463564702153574203617561304203165724302475164653127027604351045271636325170440172536723406151543607236715240510634274036275172150463046372153640512715726304630415725127364027514036210453671236704564510723576324017540163203276154301542764672351021356407120746356470215357420361756130420316572430247516465312702760435104527163632517044017253672340615154360723671524051063427364051271572630463041572403627517215046304637215275140365127364075401632576324013015427612367045210453674672351064510723032761542135640712074635647021535742036175613042031657243024751646531270276043510452716363251704401725367234061515436072367152405106342736405127157263046304157240362751721504630463721527514036512736405763240175401632032761542104536712367045645107234672351030154276213564071207463564702153574203617561304203165724302475164653127006345127436015721725403671523640604327515271046334067215251763045620314713746502650213742056473102657413314756204731205674130265317206546527431020631745560471324715602374365201025134761340256742103567246753105301247607546132164570233576420161230745703216540634512743601572172540367152364060432751527104633406721525176304741302652056473147312056137465023147562002657413650213745620314713402567560471320251347665274310743652014715602320631745317206544210356724675310530124760754613216457023357642016123074570321654063451274360157217254036715236406043275152710463340672152517630456203147137465026502137420564731026574133147562047312056741302653172065465274310206317455604713247156023743652010251347613402567421035672467531053012476075461321645702335764201612307457032165406345127436015721725403671523640604327515271046334067215251763047413026520564731473120561374650231475620026574136502137456203147134025675604713202513476652743107436520147156023206317453172065442103567246753105301247607546132164570233576420161230745703216544017253615436072510634276325170436715240723406150452716327604351157263045127364004637215275140366304157236405127403627517215046375401632301542766451072346723510032761545763240121045367123670455742036103165724465312706470215330247516756130421207463521356407401725361543607251063427632517043671524072340615045271632760435115726304512736400463721527514036630415723640512740362751721504635763240103276154467235106451072330154276754016321236704521045367574203610316572446531270647021533024751675613042120746352135640740172536154360725106342763251704367152407234061504527163276043517215046327514036630415725127364004637215403627513640512715726304123670454672351003276154301542766451072321045367576324017540163257420361031657244653127064702153302475167561304212074635213564074017253615436072510634276325170436715240723406150452716327604351721504632751403663041572512736400463721540362751364051271572630421045367645107233015427603276154467235101236704575401632576324015742036103165724465312706470215330247516756130421207463521356407","schema":"oi.native-two-front-operand.v13","source_revision":"16b154cefe3acd40d5a60d507905709c3cfc19ca","table_order":"x,u,mY,mR,a,b,Ecode,Ncode lexicographic; code=4A+2B+D","table_sha256":"b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc","verdict":{"access_rule":"not adopted","arbitrary_redundant_q10_decoder":"not tested","full_A1_A2_equivalence":"not established","full_instrument":"not constructed","native_X_operand":"no common raw binary X code from affine E,N in this geometry","physical_acceptance":"not constructed"}} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/review/INPUT-HASHES.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/review/INPUT-HASHES.json new file mode 100644 index 000000000..cefafedf7 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/review/INPUT-HASHES.json @@ -0,0 +1,68 @@ +{ + "author_files": { + "PLAN.md": { + "bytes": 4907, + "git_blob": "3db4b21df1007216b971ab9855551a654f296009", + "sha256": "ff72e2f5b49c29164e8e69eb381ed62dac9fddeb0f561e425be51ccc8155d43d" + }, + "PROVENANCE.json": { + "bytes": 1052, + "git_blob": "09278a86673aeb04a2d7c9b446dfc73def8db3d9", + "sha256": "7f6aefa2398acae84dca3fdb29c1c80ba826e1b1d2309d9f3ea0fa242aa0748b" + }, + "REPORT.md": { + "bytes": 9871, + "git_blob": "81e3746a9545eb50117c6b4ada63dad684cdc9f0", + "sha256": "f6e272d95fdc831e028cbc1f2027585130dd15dc7b11bbda5b8cc07dafbe669d" + }, + "SHA256SUMS": { + "bytes": 386, + "git_blob": "c648f87e432187a312238a954317f7f961662a53", + "sha256": "9e8d2496dddf9f8a5e25bd60a80d469225a97540dff95cccddb3ba21e841c6bf" + }, + "checks.py": { + "bytes": 23704, + "git_blob": "6528adf61dbbe042f825fd3052970c45eed1e669", + "sha256": "8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856" + }, + "result.json": { + "bytes": 11764, + "git_blob": "f395335dfbb1bfd8b0cc40b0b90bc7e2531bad38", + "sha256": "762b9799db7448c4eecf2c994c8c68ff94e1be83a7f6884b4a36385505df5a02" + } + }, + "author_prefix": "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/", + "author_revision": "753fe4f69392ca940754489468e8c8235f6aa583", + "input_files": { + "branch_v10/local-controller/symmetric-result.json": { + "bytes": 53580, + "role": "reference/proof context; earlier engine read as bytes only and never imported", + "sha256": "d8e7c1f5841192165beefb3fe35b069cc14cc93f2faa2bd68619aa7748b3db2f" + }, + "native_seed_v12/REPORT.md": { + "bytes": 10063, + "role": "reference/proof context; earlier engine read as bytes only and never imported", + "sha256": "7fb515126a6835a2c10031b3000077d62fd8ac3af4af860dc40721cb47b39c52" + }, + "native_seed_v12/checks.py": { + "bytes": 23554, + "role": "reference/proof context; earlier engine read as bytes only and never imported", + "sha256": "236438fc59188deb6575bf29d1236de10130bd78576db0c5308f4604426fc3b3" + }, + "native_seed_v12/result.json": { + "bytes": 3597, + "role": "reference/proof context; earlier engine read as bytes only and never imported", + "sha256": "4628cc9f241b0ab71f62d96fbdb2e99f5c5991cce66725f9f86c82ddcb46a28d" + }, + "parallel_v3/history_control/SOURCE-GEOMETRY.json": { + "bytes": 197836, + "role": "reference/proof context; earlier engine read as bytes only and never imported", + "sha256": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d" + }, + "six_source_v5/period/REPORT.md": { + "bytes": 9883, + "role": "reference/proof context; earlier engine read as bytes only and never imported", + "sha256": "7743ee8fccb5e39df674bb7ada6fcd6ce45582b801d4d58d77af5162420cf360" + } + } +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/review/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/review/REPORT.md new file mode 100644 index 000000000..eb1de56aa --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/review/REPORT.md @@ -0,0 +1,153 @@ +# Independent review of the additional native lower front + +Verdict: **accept within the stated raw-binary-code/source-family scope**, +with no blocking findings. + +The reviewed author is #910 at +`753fe4f69392ca940754489468e8c8235f6aa583`, under +`native-y-continuation-20261024/native_route_v13/`. All six curated Git blob +identities match the local files reviewed. INPUT-HASHES.json pins those +files and the six inherited computational/proof references. The review +imports no author or earlier native engine. This is separate-agent internal +review, not external validation, kernel certification or a physical premise +adoption. + +## Independent native table + +A fresh evaluator stores each assignment as interleaved three-bit lanes. +For the upper cluster it uses direct full six-neighbor, second-order native +recursion at the period-reduced times 251 and 252. It retains signed x and +signed y without imposing either reflection, and has no strip recurrence. +The resulting 287,221 cached native nodes serve the 3,608 requests on the +two collision-initializing balls. The written period proof separately +justifies subtracting the enormous P; direct recursion at these reduced +times is not itself evidence for that shift. + +For the lower O/W/E cluster, an independent oriented two-dimensional grid +is advanced at the actual source gaps 76 and 78, through all needed y=0..176 +values on z=76,77,78. It includes the nonlinear meeting of the three sources +before y=0. Its 531 layer/query values agree with the three-level recurrence. +A full six-neighbor native recursion at nine independently chosen actual-gap +queries checks 144 scalar assignment values; a separate small-gap source +family at gaps three and five checks 960 scalar first-front values. No +independently evolved nonlinear source waves are added. + +The independently computed upper and lower values initialize both complete +slices of the shrinking q10 diamond. Thereafter all six neighbors and the +old local field are retained. The entire 4,096-row raw q10 table agrees, +including physical old-mask01 failures. Its ASCII hexadecimal digest is + + b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc. + +All 512 E=0 rows reproduce the retained Native B table. The qY, q7, q8 +and q9 values are preserved in all 4,096 rows; the full q9 comparison uses +the earlier retained table as a reference control only. The review checks +512 own-E and 512 own-N permutation contexts. Omitting E changes 3,584 raw +q10 rows, so the added source is not a dead resource. + +## Large-time and first-front argument + +O=(0,0,0), W=(0,-76,76) and E=(0,-78,78) all lie on x=0,y+z=0. +At a first-front point x=0,t=y+z, only the south and lower-z neighbors +can have been reached. The transverse, forward and old-local terms are +at least two ticks too early. Thus the native first-front rule is exactly + + F(y,z)=H(F(y-1,z) XOR F(y,z-1)). + +Below z=76 only O can arrive. The input into F0 from z=75 is selected by +Lucas parity [j AND75=0], with H phase j+75. Its forcing has period +lcm(128,12)=384. Over one complete forcing period, the own-state advance +is an eight-state permutation. Its order divides 840, giving the sufficient +period 384*840. F1 and F2 are successively forced by the preceding level, +so sufficient common periods are 384*840^2 and 384*840^3. The added E changes +the coupled initial value of the highest level; it does not change this +permutation argument. Actual P is divisible by the last bound. + +The unchanged upper strip is also valid with N. In axial coordinates +U_(n+ell)(x,y,n), old-local and forward dependencies belong to ell-2, +transverse dependencies to ell-1, and the only same-layer input is the +previous value of the same site. Its next value is H with fixed XOR +translations, conditional on lower layers. The signed budget +ell+|x|+|y|<=20 is closed. H has exponent 12, and an eight-state conditional +permutation has exponent dividing 840. Induction gives the sufficient +12*840^20 exponent without one extra factor per transverse site. P is +divisible by this bound as well. Neither proof infers a giant period from +an observed short orbit. + +At the R-1 initial slice, E reaches exactly local (0,-11,10), absolute +(0,S-11,78), in the required radius-11 ball. It reaches no point in the +R-2 radius-10 ball. This is the F2(174) entry. The three W/O entries +F0(176), F1(175), F2(174) are all independently reconstructed. The upper +and lower source clusters are causally separated before R; first-front +selector terms outside those coupled lower entries occupy the same rotating +one-field subspace, where their XOR treatment is linear. The full nonlinear +collision is then evaluated rather than superposed. + +## Geometry, records and history scope + +The new E and the retained N are both at distance L+1 from q10 and L+2 +from q9. They cannot change old q9 at time L. The new ready-ball change +retains all 1,479 old source exceptions; neither new source coincides with +one. Both sources lie outside all 24 earlier ready regions. The 16 +source/informative-deadline exclusions hold exactly. + +For every old public-bank ray, the review minimizes distance to q10 over +the complete integer time interval through L+1, by clamping the unique +varying-coordinate kink to the interval. Every ray stays outside the new +ready ball, with minimum slack one. Neither E nor N replaces a reserved +bank position. The retained torus envelope suffices for these cones. + +The author correctly states what this preserves. Late noise backgrounds +can change pointwise. The inherited chronological bank bijection supplies +the same conditional public-history law against the changed complement; +this review does not infer identical realized history strings or future +carrier/bank independence. Native A's optional uniform F10 resource is +replaced in this variant, so its unchanged six-bit pool theorem is not +claimed here. + +## Exhaustive affine-source decision + +The independently reconstructed table gives exactly 32 common injective +ordered q10 pairs across all 24 accepted known contexts. The E=0-only +intersection remains empty. Thus a second source genuinely removes the +old one-source raw-pair incompatibility; choosing compatible sources still +requires the stated initial-source restrictions. + +The review's affine solver differs from the author engine. It assigns one +bit to each of all 64^3 coefficient triples for E, creates full-map masks +for every context/output value, and intersects them against the native +constraints. N-affine membership is then decided by comparing each of its +three 24-bit truth vectors against the complete space of 64 affine truth +vectors; it uses no author Gaussian-elimination or affine-filter routine. +Positive and negative synthetic constraints check both stages. + +The results agree for every raw pair: eight pairs admit two affine E maps +each, the other 24 admit none. All 16 induced N tables are nonaffine. +The review finds its own four-context XOR dependency for every one and +checks all eight explicit witnesses printed in the author record against +the independent native table. For the example pair (000,101), the allowed +E=5 XOR u requires N=0,6,7,6 over (u,a)=00,01,10,11 with other seeds zero. +The affine feature rows XOR to zero, while the required N triples XOR to111. +That nonlinear seed dependence cannot be silently supplied in an affine +initial payload. + +These statements exclude a common two-symbol raw X code selected by affine +E,N in this source geometry. The author explicitly leaves an arbitrary +redundant many-symbol decoder untested. No impossibility of that weaker +encoding, native computation of the needed seed law, another geometry, +distributed processing or a distribution-level instrument follows. + +## Replay and verdict limits + +Run the review checker with: + + python3 checks.py --source-root /path/to/retained/native/root --author-root /path/to/native_route_v13 + python3 -O checks.py --source-root /path/to/retained/native/root --author-root /path/to/native_route_v13 + +Both outputs equal result.json byte for byte. The five curated review files +are this report, checks.py, result.json, INPUT-HASHES.json and SHA256SUMS. +The checker validates immutable input hashes before emitting its verdict. +The bounded computations and written all-L reductions are separate evidence +layers. There is no native accepted flag, complete new pointer-prefix law, +reusable instrument, access/map adoption, full A1/A2 equivalence, special +workflow launch, F/E designation, merge or #885 mutation. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/review/SHA256SUMS new file mode 100644 index 000000000..ffdf4d3e2 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/review/SHA256SUMS @@ -0,0 +1,4 @@ +3c156883c20f690ef1c5abe8e39c5383a2c58272ed65a6996b13aa57482f7065 REPORT.md +d17b5fd6ab727b235e496642fae595472992e9563bb3e2e9c6ce66eb4054c5cc checks.py +73780def8505d68d1967936116a88a49d471eb32aeb83d528ff3cd41025ae6e4 result.json +314eb74c00d131118df3072c355516c8e1f104f60ce114a8de7d9b98553e7943 INPUT-HASHES.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/review/checks.py new file mode 100644 index 000000000..0cdbb3495 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/review/checks.py @@ -0,0 +1,393 @@ +"""Independent packed-native review; imports no author engine.""" +import argparse +from collections import Counter +from functools import lru_cache +import hashlib +from itertools import combinations,product +import json +from pathlib import Path +import sys + +STEPS=tuple(tuple(sign if k==axis else 0 for k in range(3)) for axis in range(3) for sign in (-1,1)) +T=185 +P=12*840**185 +S=P+T +R=S+68 +L=R+9 + + +def need(ok,why): + if not ok: + raise RuntimeError(why) + + +def plus(a,b): + return tuple(x+y for x,y in zip(a,b)) + + +def md(a,b): + return sum(abs(x-y) for x,y in zip(a,b)) + + +def ball(c,r): + return [plus(c,p) for p in product(range(-r,r+1),repeat=3) if sum(map(abs,p))<=r] + + +class Packed: + def __init__(self,count): + self.count=count + self.dmask=sum(1<<(3*i) for i in range(count)) + self.bmask=self.dmask<<1 + self.amask=self.dmask<<2 + def H(self,q): + return ((q&self.bmask)<<1)^((q&self.dmask)<<1)^((q&self.amask)>>2)^(((q&self.bmask)>>1)&q&self.dmask) + def pow(self,q,k): + for _ in range(k%12):q=self.H(q) + return q + def from_codes(self,vals): + return sum(x<<(3*i) for i,x in enumerate(vals)) + def code(self,q,i): + return(q>>(3*i))&7 + def xor(self,vals): + ans=0 + for v in vals:ans^=v + return ans + + +def full_native(initial,engine): + positions=tuple(initial) + @lru_cache(None) + def value(t,p): + if t<0:return 0 + if min(md(p,q) for q in positions)>t:return 0 + if (t-sum(p))%2:return 0 + if t==0:return initial.get(p,0) + return value(t-2,p)^engine.H(engine.xor(value(t-1,plus(p,d)) for d in STEPS)) + return value + + +def upper_engine(): + rows=list(product((0,1),repeat=3)) + rows=[(*r,n) for r in rows for n in range(8)] + en=Packed(64) + source={(0,0,0):en.from_codes([4*u+1 for u,a,b,n in rows]), + (0,0,-14):en.from_codes([4*u+u for u,a,b,n in rows]), + (0,0,-16):en.from_codes([4*u+2*(1^u)+1 for u,a,b,n in rows]), + (0,0,-18):en.from_codes([4*(u^b)+2*a+(u^a) for u,a,b,n in rows]), + (1,0,-17):en.from_codes([5*(a^b) for u,a,b,n in rows]), + (-1,0,-17):en.from_codes([7*(a^b) for u,a,b,n in rows]), + (0,0,-20):en.from_codes([n for u,a,b,n in rows])} + raw=full_native(source,en) + return en,rows,raw + + +def lower_grid(): + # Independent full monotone two-dimensional grid; no three-level recurrence. + en=Packed(16) + rows=list(product((0,1),range(8))) + origins={0:en.from_codes([2*x for x,e in rows]),76:en.from_codes([7]*16),78:en.from_codes([e for x,e in rows])} + # Coordinates are (time,z), y=time-z. All sources start at time zero. + now={z:origins.get(z,0) for z in range(79)} + queried={} + for time in range(255): + for z in (76,77,78): + y=time-z + if 0<=y<=176:queried[y,z]=now[z] + now={z:en.H(now[z]^(now[z-1] if z else 0)) for z in range(79)} + return en,rows,queried + + +def geometry(root): + target=(0,S,78);e=(0,-78,78);n=(0,S,S+156);deadline=L+1 + inventory=json.loads((root/'parallel_v3/history_control/SOURCE-GEOMETRY.json').read_text())['sources'] + need(len(inventory)==1479,'inventory count') + need(all(md(tuple(r['position']),target)>=deadline for r in inventory),'new ready ball overwrites source') + need(all(tuple(r['position']) not in(e,n) for r in inventory),'new source coincidence') + ports=[(0,T,0),(0,0,-8*T),(T,P,0),(-T,P,0),(4*T,P,0),(0,S,0),(12*R,0,0),(48*L,0,0)] + times=[T,T,S,S,S,S,R,L] + ready=list(zip(ports,times))+[((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,S,-68),R),((-12*R,0,0),R)]+[((0,S,68+k),R+k) for k in range(10)]+[((-48*L,0,0),L)] + for source in(e,n): + need(md(source,target)==deadline,'new source first arrival') + need(md(source,(0,S,77))==L+2,'q9 causal protection') + for c,r in ready:need(md(source,c)>r,'source enters old ready cone') + for c,t in zip(ports,times):need(md(source,c)>t,'old informative record changed') + directions=[(0,-1,0),(0,0,-1),(0,1,0),(0,1,0),(0,1,0),(0,1,0),(-1,0,0),(1,0,0)] + bank_slacks=[] + for port,d,start in zip(ports,directions,times): + axis=next(k for k in range(3) if d[k]) + kink=(target[axis]-port[axis])*d[axis] + clamped=max(start+1,min(deadline,kink)) + candidates={start+1,deadline,clamped} + minimum=min(md(plus(port,tuple(t*x for x in d)),target) for t in candidates) + need(minimum>deadline,'bank intersects new ready pins') + bank_slacks.append(minimum-deadline) + for source in(e,n): + t=(source[axis]-port[axis])*d[axis] + if start+1<=t<=deadline: + need(plus(port,tuple(t*x for x in d))!=source,'new source on bank ray') + arrivals=[] + for dt,radius in((-2,10),(-1,11)): + for p in ball((0,0,10),radius): + absolute=(p[0],S+p[1],68+p[2]) + if md(e,absolute)<=R+dt:arrivals.append([dt,list(p),md(e,absolute)-(R+dt)]) + need(arrivals==[[-1,[0,-11,10],0]],'E diamond entry') + need(P%(12*840**20)==0 and P%(384*840**3)==0,'period divisibility') + need(256*L+64*T+1>2*(51*L+S+8*T+200),'no-wrap envelope') + return {'source_rows':1479,'ready_exclusions':2*len(ready),'informative_deadline_exclusions':16,'bank_rays':8,'minimum_bank_slack':min(bank_slacks),'E_entry':arrivals,'period_divisibility':True} + + +def reconstruction(): + ue,ur,upper=upper_engine() + le,lr,front=lower_grid() + allrows=list(product((0,1),repeat=6)) + allrows=[(*r,e,n) for r in allrows for e,n in product(range(8),repeat=2)] + en=Packed(4096) + upper_index={row:i for i,row in enumerate(ur)} + def expand_upper(v): + return en.from_codes([ue.code(v,upper_index[u,a,b,n]) for x,u,my,mr,a,b,e,n in allrows]) + def expand_lower(v): + return en.from_codes([le.code(v,8*x+e) for x,u,my,mr,a,b,e,n in allrows]) + signals=[((0,-S,-68),en.from_codes([2*x for x,u,my,mr,a,b,e,n in allrows])), + ((0,S,-68),en.from_codes([2*(my^mr) for x,u,my,mr,a,b,e,n in allrows])), + ((T,P,-68),en.from_codes([2*my for x,u,my,mr,a,b,e,n in allrows])), + ((-T,P,-68),en.from_codes([2*mr for x,u,my,mr,a,b,e,n in allrows]))] + def lucas(displacements): + acc=0 + for q in displacements: + if acc&q:return False + acc|=q + return True + entries={(0,-9,8):(176,76),(0,-10,9):(175,77),(0,-11,10):(174,78)} + upper_requests=set() + @lru_cache(None) + def base(dt,p): + time=R+dt + nsmall=253-p[2] + reduced_time=253+dt + upper_requests.add((reduced_time,p[0],p[1],nsmall)) + out=expand_upper(upper(reduced_time,(p[0],p[1],nsmall))) + for source,bits in signals: + displacements=tuple(abs(v-q) for v,q in zip(source,p)) + if sum(displacements)<=time: + need(sum(displacements)==time,'lower outside first-front region') + if lucas(displacements):out^=en.pow(bits,time) + if dt==-1 and p in entries: + j,z=entries[p] + original_signal=en.pow(signals[0][1],time) if lucas((0,S+p[1],68+p[2])) else 0 + need(out==original_signal,'coupled entry contains extra upper/selector term') + out=expand_lower(front[j,z]) + return out + old={p:base(-2,p) for p in ball((0,0,10),10)} + now={p:base(-1,p) for p in ball((0,0,10),11)} + records={} + for tick in range(11): + nxt={p:old[p]^en.H(en.xor(now[plus(p,d)] for d in STEPS)) for p in ball((0,0,10),10-tick)} + records[tick]=nxt + old,now=now,nxt + return en,allrows,now[(0,0,10)],records,front,upper,ue,upper_requests + + +def source_pins(here,author_root,source_root): + pins=json.loads((here/'INPUT-HASHES.json').read_text()) + for name,entry in pins['author_files'].items(): + data=(author_root/name).read_bytes() + need(hashlib.sha256(data).hexdigest()==entry['sha256'],'pinned author SHA256 '+name) + need(hashlib.sha1(b'blob '+str(len(data)).encode()+b'\0'+data).hexdigest()==entry['git_blob'],'pinned Git blob '+name) + for name,entry in pins['input_files'].items(): + need(hashlib.sha256((source_root/name).read_bytes()).hexdigest()==entry['sha256'],'pinned prior input '+name) + return {'pinned_author_git_blobs':len(pins['author_files']),'pinned_prior_inputs':len(pins['input_files'])} + + +def lower_controls(front): + en=Packed(16) + rows=list(product((0,1),range(8))) + initial={(0,0,0):en.from_codes([2*x for x,e in rows]),(0,-76,76):en.from_codes([7]*16),(0,-78,78):en.from_codes([e for x,e in rows])} + native=full_native(initial,en) + full_comparisons=0 + for j in (0,2,5): + for z in (76,77,78): + need(native(j+z,(0,j,z))==front[j,z],'independent actual-gap full native/lower grid') + full_comparisons+=16 + levels=[front[0,z] for z in (76,77,78)] + origin=initial[(0,0,0)] + layer_comparisons=3 + for j in range(1,177): + force=en.pow(origin,j+75) if not j&75 else 0 + levels[0]=en.H(levels[0]^force) + levels[1]=en.H(levels[1]^levels[0]) + levels[2]=en.H(levels[2]^levels[1]) + for ell,z in enumerate((76,77,78)): + need(levels[ell]==front[j,z],'coupled three-layer recurrence/full monotone grid') + layer_comparisons+=1 + small_initial={(0,0,0):initial[(0,0,0)],(0,-3,3):initial[(0,-76,76)],(0,-5,5):initial[(0,-78,78)]} + small_native=full_native(small_initial,en) + now={z:small_initial.get((0,-z,z),0) for z in range(6)} + small=0 + for time in range(10): + for z in range(6): + need(small_native(time,(0,time-z,z))==now[z],'small full3D source/front comparison') + small+=16 + now={z:en.H(now[z]^(now[z-1] if z else 0)) for z in range(6)} + return {'actual_gap_full_native_scalar_comparisons':full_comparisons, + 'coupled_layer_queries_checked':layer_comparisons,'small_gap_full3D_scalar_comparisons':small, + 'actual_gap_full_native_nodes':native.cache_info().currsize} + + +def affine_decision(en,rows,out,author): + index={r:i for i,r in enumerate(rows)} + contexts=[k for k in product((0,1),repeat=5) if k[3:]!=(0,1)] + features=[1+sum(b<<(j+1) for j,b in enumerate(k)) for k in contexts] + patterns=[sum(((c&f).bit_count()%2)<>field)&1)<>6)&63;cd=candidate>>12 + evalues=ecodes(ca,cb,cd) + nvalues=[opt[e] for opt,e in zip(options,evalues)] + is_affine=n_affine(nvalues) + both+=is_affine + coefficients=[4*((ca>>i)&1)+2*((cb>>i)&1)+((cd>>i)&1) for i in range(6)] + witness=None + if not is_affine: + for js in combinations(range(24),4): + f=0;v=0 + for j in js:f^=features[j];v^=nvalues[j] + if not f and v: + witness={'contexts':[list(contexts[j]) for j in js],'required_N':[nvalues[j] for j in js],'N_xor':v} + break + need(witness is not None,'nonaffine source lacks explicit dependency witness') + for_record.append({'E_coefficients':coefficients,'N_affine':is_affine,'dependency_witness':witness}) + expected=next(r for r in author['controller']['per_pair_affine_results'] if tuple(r['raw_pair'])==pair) + need(es==expected['affine_E_maps_after_constraints'] and both==expected['joint_affine_E_N_maps'],'affine decision differs') + for_record.sort(key=lambda r:r['E_coefficients']) + if for_record:witnesses.append({'raw_pair':list(pair),'survivors':for_record}) + total_e+=es;total_both+=both + per_pair.append([list(pair),es,both]) + # Verify every author's explicit rejection directly on independently computed native table. + stated=0 + for entry in author['controller']['per_pair_affine_results']: + rejection=entry['first_N_rejection'] + if rejection is None:continue + coeff=rejection['E_coeff_constant_u_mY_mR_a_b'];pair=tuple(entry['raw_pair']);proof=rejection['N_affine_inconsistency'] + f_xor=n_xor=0 + for k,n in zip(proof['contexts_u_mY_mR_a_b'],proof['required_N_codes']): + k=tuple(k);e=coeff[0] + for b,c in zip(k,coeff[1:]): + if b:e^=c + need((val(0,k,e,n),val(1,k,e,n))==pair,'reported required-N native witness') + f_xor^=features[contexts.index(k)];n_xor^=n + need(f_xor==0 and n_xor==proof['required_N_code_xor']!=0,'reported affine dependency witness') + stated+=1 + return {'accepted_contexts':24,'common_injective_pairs':len(common),'affine_E_maps_exhaustively_represented_per_pair':count, + 'affine_E_survivors':total_e,'joint_affine_E_N_survivors':total_both,'per_pair_counts':per_pair, + 'independent_N_dependency_witnesses':witnesses,'author_N_dependency_witnesses_checked':stated, + 'affine_solver_controls':4,'arbitrary_redundant_decoder':'not tested'} + + +def main(): + here=Path(__file__).resolve().parent + native_default=here.parent.parent if(here.parent.parent/'parallel_v3').exists() else here.parent/'checkpoint_v12' + author_default=here.parent if(here.parent/'PLAN.md').exists() else here.parent/'native_route_v13' + parser=argparse.ArgumentParser();parser.add_argument('--source-root',type=Path,default=native_default);parser.add_argument('--author-root',type=Path,default=author_default);args=parser.parse_args() + pins=source_pins(here,args.author_root,args.source_root) + geo=geometry(args.source_root) + en,rows,out,records,front,upper,ue,requests=reconstruction() + lower=lower_controls(front) + table=''.join(format(en.code(out,i),'x') for i in range(len(rows))) + author=json.loads((args.author_root/'result.json').read_text()) + need(table==author['q10_table_hex'],'independent complete q10 table differs') + old=json.loads((args.source_root/'native_seed_v12/result.json').read_text()) + old_table=''.join(format(en.code(out,i),'x') for i,row in enumerate(rows) if row[6]==0) + need(old_table==old['q10_table_hex'],'old E0 512-row reference') + q9=json.loads((args.source_root/'branch_v10/local-controller/symmetric-result.json').read_text())['q9_table_hex'] + q9_checked=0 + for i,(x,u,my,mr,a,b,e,n) in enumerate(rows): + reference_index=0 + for v,size in zip((x,u,my,mr,a,b,4,5,7),(2,2,2,2,2,2,8,8,8)):reference_index=size*reference_index+v + need(en.code(records[9][(0,0,9)],i)==int(q9[reference_index],16),'old full q9 raw table') + need(en.code(records[0][(0,0,0)],i)==4*x+2+(x^u),'qY preservation') + need(en.code(records[7][(0,0,7)],i)==x^u,'q7 preservation') + need(en.code(records[8][(0,0,8)],i)==2*(x^u),'q8 preservation') + q9_checked+=1 + index={r:i for i,r in enumerate(rows)} + permutations=0 + for context in product((0,1),repeat=6): + for held in range(8): + need(len({en.code(out,index[*context,e,held]) for e in range(8)})==8,'own-E permutation') + need(len({en.code(out,index[*context,held,n]) for n in range(8)})==8,'own-N permutation') + permutations+=2 + changed=sum(en.code(out,i)!=en.code(out,index[*row[:6],0,row[7]]) for i,row in enumerate(rows)) + need(changed==author['checks']['omitted_E_changed_rows']>0,'nonvacuous E deletion control') + affine=affine_decision(en,rows,out,author) + # H exponent and the full eight-symbol conditional gate maps used in period induction. + tiny=Packed(1) + for q in range(8): + v=q + for _ in range(12):v=tiny.H(v) + need(v==q,'H exponent by twelve actual native H applications') + for shift in range(8):need(len({tiny.H(q^shift) for q in range(8)})==8,'forced one-coordinate permutation') + result={'schema':'oi-native-route-v13-independent-review-1','reviewed_author':'753fe4f69392ca940754489468e8c8235f6aa583','pins':pins, + 'independent_native_table':{'rows':4096,'sha256':hashlib.sha256(table.encode()).hexdigest(),'upper_native_cached_nodes':upper.cache_info().currsize,'upper_reduced_requests':len(requests), + 'E0_old_rows_checked':512,'qY_q7_q8_q9_rows_each':q9_checked,'own_E_and_N_permutation_contexts':permutations,'omitted_E_changed_rows':changed}, + 'geometry':geo,'lower_controls':lower,'affine_decision':affine, + 'all_controls_passed':True,'verdict':'ACCEPT_WITHIN_STATED_SCOPE','blockers':[], + 'limits':['large-time proof reviewed separately from finite controls','no native flag, reusable instrument, access adoption or general no-go','redundant arbitrary decoder untested','separate-agent internal review, not external or kernel certification']} + print(json.dumps(result,sort_keys=True,separators=(',',':'))) + + +if __name__=='__main__': + sys.setrecursionlimit(2000) + main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/review/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/review/result.json new file mode 100644 index 000000000..5c3703f56 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_route_v13/review/result.json @@ -0,0 +1 @@ +{"affine_decision":{"accepted_contexts":24,"affine_E_maps_exhaustively_represented_per_pair":262144,"affine_E_survivors":16,"affine_solver_controls":4,"arbitrary_redundant_decoder":"not tested","author_N_dependency_witnesses_checked":8,"common_injective_pairs":32,"independent_N_dependency_witnesses":[{"raw_pair":[0,5],"survivors":[{"E_coefficients":[5,1,0,0,0,0],"N_affine":false,"dependency_witness":{"N_xor":3,"contexts":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"required_N":[0,6,0,5]}},{"E_coefficients":[7,3,0,0,0,0],"N_affine":false,"dependency_witness":{"N_xor":7,"contexts":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"required_N":[1,3,1,4]}}]},{"raw_pair":[1,4],"survivors":[{"E_coefficients":[5,1,0,0,0,0],"N_affine":false,"dependency_witness":{"N_xor":5,"contexts":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"required_N":[5,7,5,2]}},{"E_coefficients":[7,3,0,0,0,0],"N_affine":false,"dependency_witness":{"N_xor":1,"contexts":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"required_N":[7,0,7,1]}}]},{"raw_pair":[2,6],"survivors":[{"E_coefficients":[5,1,0,0,0,0],"N_affine":false,"dependency_witness":{"N_xor":3,"contexts":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"required_N":[6,5,6,6]}},{"E_coefficients":[7,3,0,0,0,0],"N_affine":false,"dependency_witness":{"N_xor":7,"contexts":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"required_N":[4,4,4,3]}}]},{"raw_pair":[3,7],"survivors":[{"E_coefficients":[5,1,0,0,0,0],"N_affine":false,"dependency_witness":{"N_xor":5,"contexts":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"required_N":[2,2,2,7]}},{"E_coefficients":[7,3,0,0,0,0],"N_affine":false,"dependency_witness":{"N_xor":1,"contexts":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"required_N":[3,1,3,0]}}]},{"raw_pair":[4,1],"survivors":[{"E_coefficients":[5,1,0,0,0,0],"N_affine":false,"dependency_witness":{"N_xor":1,"contexts":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"required_N":[3,1,3,0]}},{"E_coefficients":[7,3,0,0,0,0],"N_affine":false,"dependency_witness":{"N_xor":5,"contexts":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"required_N":[2,2,2,7]}}]},{"raw_pair":[5,0],"survivors":[{"E_coefficients":[5,1,0,0,0,0],"N_affine":false,"dependency_witness":{"N_xor":7,"contexts":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"required_N":[4,4,4,3]}},{"E_coefficients":[7,3,0,0,0,0],"N_affine":false,"dependency_witness":{"N_xor":3,"contexts":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"required_N":[6,5,6,6]}}]},{"raw_pair":[6,2],"survivors":[{"E_coefficients":[5,1,0,0,0,0],"N_affine":false,"dependency_witness":{"N_xor":7,"contexts":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"required_N":[1,3,1,4]}},{"E_coefficients":[7,3,0,0,0,0],"N_affine":false,"dependency_witness":{"N_xor":3,"contexts":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"required_N":[0,6,0,5]}}]},{"raw_pair":[7,3],"survivors":[{"E_coefficients":[5,1,0,0,0,0],"N_affine":false,"dependency_witness":{"N_xor":1,"contexts":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"required_N":[7,0,7,1]}},{"E_coefficients":[7,3,0,0,0,0],"N_affine":false,"dependency_witness":{"N_xor":5,"contexts":[[0,0,0,0,0],[0,0,0,1,0],[0,0,1,0,0],[0,0,1,1,0]],"required_N":[5,7,5,2]}}]}],"joint_affine_E_N_survivors":0,"per_pair_counts":[[[0,2],0,0],[[0,5],2,0],[[0,6],0,0],[[0,7],0,0],[[1,3],0,0],[[1,4],2,0],[[1,6],0,0],[[1,7],0,0],[[2,0],0,0],[[2,4],0,0],[[2,5],0,0],[[2,6],2,0],[[3,1],0,0],[[3,4],0,0],[[3,5],0,0],[[3,7],2,0],[[4,1],2,0],[[4,2],0,0],[[4,3],0,0],[[4,7],0,0],[[5,0],2,0],[[5,2],0,0],[[5,3],0,0],[[5,6],0,0],[[6,0],0,0],[[6,1],0,0],[[6,2],2,0],[[6,5],0,0],[[7,0],0,0],[[7,1],0,0],[[7,3],2,0],[[7,4],0,0]]},"all_controls_passed":true,"blockers":[],"geometry":{"E_entry":[[-1,[0,-11,10],0]],"bank_rays":8,"informative_deadline_exclusions":16,"minimum_bank_slack":1,"period_divisibility":true,"ready_exclusions":48,"source_rows":1479},"independent_native_table":{"E0_old_rows_checked":512,"omitted_E_changed_rows":3584,"own_E_and_N_permutation_contexts":1024,"qY_q7_q8_q9_rows_each":4096,"rows":4096,"sha256":"b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc","upper_native_cached_nodes":287221,"upper_reduced_requests":3608},"limits":["large-time proof reviewed separately from finite controls","no native flag, reusable instrument, access adoption or general no-go","redundant arbitrary decoder untested","separate-agent internal review, not external or kernel certification"],"lower_controls":{"actual_gap_full_native_nodes":3124,"actual_gap_full_native_scalar_comparisons":144,"coupled_layer_queries_checked":531,"small_gap_full3D_scalar_comparisons":960},"pins":{"pinned_author_git_blobs":6,"pinned_prior_inputs":6},"reviewed_author":"753fe4f69392ca940754489468e8c8235f6aa583","schema":"oi-native-route-v13-independent-review-1","verdict":"ACCEPT_WITHIN_STATED_SCOPE"} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/PLAN.md new file mode 100644 index 000000000..69ab8d65c --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/PLAN.md @@ -0,0 +1,92 @@ +# Native B: original-time seed injection at the next outward front + +Research only. #910 base `00e85e748cf8e5ada75f4e1a22aef87eb0a823a2`; +shared comparison at `1324d9a854da60d0274ba77fe80d08e7cf2b1ef1`. +Canonical inherited bytes are in `checkpoint_v11/`. Do not edit earlier modules. + +## Distinct physical route and resource contract + +Retain the actual affine-source post-Y controller and q9 at L=R+9, with +whole triple (0,s,r_old), where s=x XOR u XOR a and +r_old=s XOR(a XOR b) on accepted old masks00,10,11. The old apparatus knows +u,a,b but does not preload x or s. Instead of transporting an arbitrary +late pool into a cold gate, extend the original-time outward preparation to +q10=(0,S,78) at R+10=L+1 and add one axial initial source +N=(0,S,S+156). Its arrival at q10 is exactly R+10; it cannot affect q9 by L. + +This candidate replaces the optional uniform F10 factor by a specified +initial pin when F10 lies in the new prepared boundary. It does not claim +to preserve that optional reservoir. F8 is outside this new q10 cone and +may remain an independent factor. All retained sources and public banks +must remain exceptions to zero pins. The old prepared phase and public +history law must be preserved; pointwise later noise backgrounds need not +remain equal when its conditional bank bijection is used explicitly. + +## Fixed bounded family and decision rule + +Let delta=a XOR b and t=u XOR a. Let c be one fresh initially fair seed. +First test the64 affine source controls + + N=delta*C XOR c*V, C,V in F2^3. + +If that fails to produce a common full-triple output code for s,c on every +accepted actual old input/history, test only the preregistered512 extension + + N=t*B XOR delta*C XOR c*V, B,C,V in F2^3. + +All controls are affine in original known apparatus bits; none contains x, +s or nonlinear precomputed predicates. Compute the q10 response for all +eight N triples once, then exhaust these finite families by exact lookup. +First seek common injective whole-triple codes of s at each c, independent +of u,a,b and selector pads. Separately test clean s XOR c, a native mixer, +and the ability to encode s with a nonvacuous fresh-c effect. Keep every +failed old mask01 and every raw output. If neither family passes, report +only that single-source affine family as excluded, with decisive rows. + +Productivity test: an actual source-compatible next-stage code, or a new +explicit dependence/geometry obstruction. Another abstract sampler or an +isolated H(q9) computation does not meet it. No broad controller search. + +## Exact native reduction and controls + +The upper coupled Q/C/G/J/K/N cluster uses signed transverse coordinates, +budget20 and period bound12*840^20, which must divide actual P. The lower +origin/W first front now has three coupled z-levels. Re-derive its triangular +recurrence, including all source forcing and its initial levels; use the +bound384*840^3 only after proving it divides P. Both clusters feed the full +q10 collision diamond through all six neighbors and old local terms. + +Check these reductions against independent direct native recursion at small +coordinates, retain q7/q8/q9 exactly, check source/readiness/bank geometry, +and compare the zero-N q9 result with the frozen v10 witness. If a reduction +or geometry premise fails, stop the candidate verdict and record that gap. +All controls use exact arithmetic with explicit exceptions. Normal and -O +replays must be byte-identical. Separate-author review follows publication. + +Neither a common local code nor a no-go for this family settles the full +native predicate, full public/failure law, observer access, reuse, A1 or A2. +No new resource or access rule is adopted. Root alone publishes checkpoints; +no #885 writes, special dispatch, F/E designation or merge. + +## Bounded follow-up fixed after the first table, before its computation + +The first native table and64/512-family result are retained. A finite table +diagnostic shows that on accepted mask10 a held-N mR toggle flips q10.B. +To distinguish missing pad dependence from a stronger single-source limit, +for each known context k=(u,mY,mR,a,b), with accepted a,b, form all eight +ordered pairs (q10 for s=0,N; q10 for s=1,N) using the same N. Intersect +these pair sets across every k, discarding noninjective pairs. A seed-only +controller N(k,c), even nonlinear and pad-aware, needs a common pair for +each fixed c. An empty intersection excludes a common full-triple X code +for this fixed single-N physical geometry. It does not exclude a weaker +operational decoder, another port, or a multi-source controller. + +If pairs survive, the N value for each k is unique because the native +own-N response is a permutation. Solve the exact affine consistency system +N=constant XOR u*U XOR mY*MY XOR mR*MR XOR a*A XOR b*B on the accepted +domain. Report surviving affine source maps and their raw binary X codes. +If two maps differ by a context-independent triple, their difference can +also be driven by the new fresh c in a jointly affine source. This tests +only the existing512-row native table; no additional lattice search or +source geometry is introduced. Root publishes this addendum before the +new intersection/affine calculation. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/PROVENANCE.json new file mode 100644 index 000000000..1e681402c --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/PROVENANCE.json @@ -0,0 +1,15 @@ +{ + "evidence_scope": "Exact full native q10 kernel on specified original-time readiness/source family; finite single-N code/transfer obstruction. Unknown-input derivative and loss branch are mechanism identities extracted from the same fixed kernel.", + "inputs": { + "branch_v10/local-controller/REPORT.md": "cdc9600cb467e54184b811166c71d9a73e8b5d89d4b813d516100eb27eff19db", + "branch_v10/local-controller/symmetric-result.json": "d8e7c1f5841192165beefb3fe35b069cc14cc93f2faa2bd68619aa7748b3db2f", + "parallel_v3/history_control/SOURCE-GEOMETRY.json": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d", + "reset_v9/checks.py": "55659ae57662ba687dba49fabf9766b0583d72f5bd441999edb0342162ac9685", + "six_source_v5/period/REPORT.md": "7743ee8fccb5e39df674bb7ada6fcd6ce45582b801d4d58d77af5162420cf360" + }, + "published_first_plan_revision": "05397c79370f66c88f0bf8fdaedb09297ba358a9", + "published_pair_intersection_addendum_revision": "8dd2bc32ae30223db4238669b041ca4a259287e1", + "shared_contract_revision": "1324d9a854da60d0274ba77fe80d08e7cf2b1ef1", + "source_revision": "00e85e748cf8e5ada75f4e1a22aef87eb0a823a2", + "source_rule": "Native rule unchanged; optional uniform F10 factor replaced by original-time q10 ready pin; single new affine boundary source N." +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/REPORT.md new file mode 100644 index 000000000..bd71ca286 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/REPORT.md @@ -0,0 +1,214 @@ +# Native B: a single seeded outward port loses X on an accepted branch + +Research checkpoint on #910, base +`00e85e748cf8e5ada75f4e1a22aef87eb0a823a2`. The original source-family plan +was published before computation at +`05397c79370f66c88f0bf8fdaedb09297ba358a9`; the bounded pad-aware follow-up +was published before its computation at +`8dd2bc32ae30223db4238669b041ca4a259287e1`. Separate-author review pending. + +## Result + +This original-time source-compatible route does not transmit the actual +retained X sign into the single current q10 port. The native calculation +preserves the old q9 phase, brings a new affine source into q10, and keeps +the actual dirty six-neighbor and old-local contributions. Nevertheless, +on the accepted old branch u=0,a=b=1, the q10 triple is independent of +unknown x for every new source payload and every old selector-pad pair. + +Thus no controller N(k,c) depending only on known old apparatus seeds/pads +and independent new seeds can make q10 alone a pointwise encoding of +s=x XOR u XOR a on all retained accepted worlds. A redundant deterministic +decoder of q10 alone does not repair the loss. The actual previous q9 still +contains s; the full two-slice phase has not erased it. This is a failed +single-port adapter, not a no-go for distributed encodings, multi-source +native processing, quantum instrument laws or OI generally. + +## Physical candidate and changed initial resource + +Keep T=185, P=12*840^185, S=P+185, R=S+68 and L=R+9. The accepted old +q9 at (0,S,77), time L, is + + (0,s,r_old), s=x XOR u XOR a, r_old=s XOR(a XOR b), + +for old masks00,10,11. All original W/Q/C/G/J/K source payloads are retained. +Extend the original-time current ready region to B_(R+10)(q10), and the +previous one to B_(R+9)(q10), at q10=(0,S,78). Preserve the existing source +and bank exceptions. Add a current initial source at + + position N=(0,S,S+156). + +The same letter denotes its variable raw triple when no position is shown. +Its distance to q10 is R+10=L+1; distance to q9 is L+2. It arrives natively +at the new port and cannot change the old prepared q9 or its record at L. + +This candidate explicitly replaces the optional uniform F10 factor at +(-(L+1),S,78) by a specified boundary pin. F8=(-(L+1),S,76) is outside the +new ready cone and may remain independent. The canonical64-value Q8/Q10 +pool theorem is therefore not inherited unchanged. This is a candidate +resource contract, not adoption of a preparation rule. + +All1479 old compiled source positions are on or outside the new q10 +boundary. N matches none and is outside all24 earlier ready regions. +Every old/new public-bank ray through L+1 remains outside the new ready +pins. The smallest bank slack is one. N cannot reach any old/new designated +public port by L. The old informative phase is therefore preserved, and +the existing chronological bank bijection preserves the complete old +public-history law conditional on the changed complement. Pointwise noise +backgrounds need not be equal after adding initial zero constraints. No +late readiness, unknown-s copy or erased reserved bank is used. + +## Exact native kernel + +The retained q10 table has512 rows, ordered lexicographically as + + x,u,mY,mR,a,b,Ncode, code=4A+2B+D. + +Its hexadecimal form in result.json includes all eight N triples and all +old mask01 failures. The encoded-table SHA-256 is +`8bc1462854ce5fb80c18a48e8208037eb6bd613aa5babb28721e186aec3387f9`. +This is a compact encoding of complete native raw triples, not selected +moments. The entire old q9 table is unchanged in all512 rows. + +For every fixed old x,u,mY,mR,a,b, the N-to-q10 map is a permutation of all +eight triples, as expected for a unique axial first arrival. This useful +fresh-source response does not imply that the port also transmits s. + +The first64 affine controls were + + N=(a XOR b)*C XOR c*V. + +The only extended512 family was + + N=(u XOR a)*B XOR(a XOR b)*C XOR c*V. + +B,C,V each range over the eight constant triples. Both families contain +no common whole-triple code of s,c across all actual accepted old contexts. +Neither implements any of the registered clean, mixer or paired-sign +targets. Results retain counts, survivor lists and multiplicity histograms; +the full512-byte native table reconstructs the family exclusion. + +## Two independent adapter obstructions from that kernel + +### Used recording pad re-enters the next port + +On accepted old mask10, toggling mR always flips q10.B when x,u,mY,N are +held fixed. All64 paired checks pass. For example, with x=u=0,a=1,b=0,N=000: + +| mY,mR | q9 at L | q10 at L+1 | +| --- | --- | --- | +| 00 | 010 | 001 | +| 01 | 010 | 011 | +| 10 | 010 | 001 | +| 11 | 010 | 011 | + +Thus a control that ignores mR cannot give a common whole-triple output code. +This is selected-boundary noncongruence: equality of the complete earlier +public record between these pad variants is not established. Old informative +ciphertexts may differ. No operational inequivalence is inferred from this +pointwise witness. Overall144 of512 diagnostic rows, including80 accepted +rows, differ when pads are changed from00. + +### Even pad-aware seed-only N cannot make q10 retain s + +For each of the24 known contexts k=(u,mY,mR,a,b) with accepted old mask, +form the eight ordered raw pairs + + (q10 for s=0,N; q10 for s=1,N). + +A seed-only controller N(k,c), even nonlinear and pad-aware, would need a +common injective pair for every fixed c. Their intersection is empty; it +is already empty after the first three contexts. Consequently there is no +affine-realizability problem left to solve in this geometry. + +The reason is stronger than incompatible common raw labels. On the accepted +branch u=0,a=b=1, for every mY,mR the complete N-to-q10 table is + +| N code | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | +| q10 code for s=0 | 4 | 2 | 1 | 0 | 3 | 5 | 6 | 7 | +| q10 code for s=1 | 4 | 2 | 1 | 0 | 3 | 5 | 6 | 7 | + +All32 unknown-sign pairs agree. A decoder of that one triple cannot return +two different unknown signs from these identical inputs. Allowing N to +depend on more known pads, independent random seeds or a nonlinear known-seed +function does not help this branch; N still cannot depend on unknown s. +For a seed-only random controller its conditional q10 laws on the two s +values are identical as well. This does not exclude a distribution-level +instrument using other retained physical fields or records. + +A second exact identity, checked on192 accepted known-context/N pairs, is + + q10.A(s=0,N) XOR q10.A(s=1,N)=u. + +It exposes an old-history-dependent response to the actual unknown sign. +The new source moves through the port bijectively, while the unknown-input +coupling depends on the old native background. Applying H only to the clean +q9 triple would omit precisely this retained dependence. + +## Justification of the astronomical reduction + +### Upper coupled cluster + +Relative to upper Q, source offsets are Q at0, C at14, G at16, J at18, +Kplus/Kminus at signed transverse x=+/-1 and axial17, and N at20. All are +evolved together. Reflection survives only in transverse y. The closed +signed strip has budget20. At each layer its advance is a permutation of +its own triple forced only by lower layers; the same triangular argument +as the retained strip proof gives12*840^20. Actual P is divisible by it. +The evaluator retains signed x and does not add independently evolved +interacting upper sources. + +### Lower origin/W three-layer front + +Let F_ell(j) be the actual first-front value at (0,j,76+ell), time +j+76+ell, from origin (0,x,0) and W=111 at (0,-76,76). For ell=0, + + F_0(0)=H(H^75(0,x,0) XOR H^75(W)), + F_0(j)=H(F_0(j-1) XOR [j AND75=0] H^(j+75)(0,x,0)). + +For ell=1,2 the additional initial south-W term vanishes because75 ANDell +is nonzero. Thus F_ell(0)=H(F_(ell-1)(0)), and for j>=1, + + F_ell(j)=H(F_ell(j-1) XOR F_(ell-1)(j)). + +This is the full native first-front recurrence: x-transverse and forward +neighbors and the old-local term arrive too late. The forcing of F0 has +period lcm(128,12)=384. Over that block its own state undergoes an +eight-symbol permutation, so F0 has period dividing384*840. Successively +F1 and F2 have periods dividing384*840^2 and384*840^3. Actual P is divisible +by the latter, hence it can be removed from all three required queries. + +On the pre-collision slice R-1, W reaches exactly local points +(0,-9,8),(0,-10,9),(0,-11,10), requiring reduced queries +F0(176),F1(175),F2(174). It reaches none of the required R-2 slice. These +coupled values replace the isolated-origin contribution at those entries. +All subsequent upper/lower interactions are evolved together through the +full shrinking cubic q10 diamond. No old-local term or transverse neighbor +is discarded after the first collision. + +## Controls and replay + +Controls pass before the scoped verdict: + +- 97,152 scalar-lane signed-upper comparisons with direct native recursion; +- 54 direct origin/W three-layer scalar comparisons at the actual gap76; +- exact period divisibility and three-entry/no-old-entry geometry; +- all1479 retained source and24 earlier-ready-region exclusions; +- exact piecewise-affine checks of all eight bank rays through L+1; +- preservation of qY,q7,q8 and all512 actual q9 rows; +- all64 own-N eight-value permutations; +- the64 pad pairs,192 unknown-sign derivative pairs and32 lost-input pairs. + +Run `python3 checks.py --source-root ` and compare +stdout with result.json; repeat with `python3 -O`. Both executions pass +byte-identically with explicit exceptions. PROVENANCE.json pins the source +data and proof dependencies. Large-time conclusions rest on the written +period arguments, not a simulation of P ticks. + +The next viable route must retain actual s elsewhere in the physical phase, +use additional native processing/workspace, or demonstrate another accepted +boundary. The Native A distributed route is a separate candidate. No +physical premise/access adoption, native predicate or full reset, full +delayed-record law, arbitrary depth, A1 equivalence, A2 bound or composite +model is established here. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/SHA256SUMS new file mode 100644 index 000000000..a657caffc --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/SHA256SUMS @@ -0,0 +1,5 @@ +774adfccdfca3ea178fa1c46ad141d1b027849a7ad8e3c81e508cb9df2a9eb70 PLAN.md +7fb515126a6835a2c10031b3000077d62fd8ac3af4af860dc40721cb47b39c52 REPORT.md +236438fc59188deb6575bf29d1236de10130bd78576db0c5308f4604426fc3b3 checks.py +4628cc9f241b0ab71f62d96fbdb2e99f5c5991cce66725f9f86c82ddcb46a28d result.json +faa8276720fa2a7bdbf27017ad7924b622d36fa22c327788a8d5ac7849e52e06 PROVENANCE.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/checks.py new file mode 100644 index 000000000..001a34831 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/checks.py @@ -0,0 +1,546 @@ +"""Native B q10 source-compatible seed injection; exact bit-packed native rule.""" +import argparse +from collections import Counter +from functools import lru_cache +from itertools import product +from pathlib import Path +import hashlib +import json + + +T = 185 +P = 12*840**185 +S = P+T +R = S+68 +L = R+9 +BASE = T+68 +BUDGET = 20 +ZERO = (0, 0, 0) +TR = tuple(product((0, 1), repeat=3)) +UR = tuple((u, a, b, n) for u, a, b in product((0, 1), repeat=3) for n in range(8)) +ROWS = tuple((x, u, my, mr, a, b, n) + for x, u, my, mr, a, b in product((0, 1), repeat=6) for n in range(8)) +UF = (1 << len(UR))-1 +FULL = (1 << len(ROWS))-1 +UINDEX = {r: i for i, r in enumerate(UR)} +RINDEX = {r: i for i, r in enumerate(ROWS)} +XM, UM, MY, MR = tuple(sum(r[j] << i for i, r in enumerate(ROWS)) for j in range(4)) + + +def need(ok, label): + if not ok: + raise RuntimeError(label) + + +def xx(*qs): + a = b = d = 0 + for q in qs: + a ^= q[0] + b ^= q[1] + d ^= q[2] + return a, b, d + + +def h(q): + a, b, d = q + return b, d, a ^ (b & d) + + +def hp(q, n): + for _ in range(n % 12): + q = h(q) + return q + + +def lane(q, i): + return tuple((w >> i) & 1 for w in q) + + +def code(q): + return 4*q[0]+2*q[1]+q[2] + + +def dist(p, q): + return sum(abs(x-y) for x, y in zip(p, q)) + + +def ball(radius, center): + for a in range(-radius, radius+1): + for b in range(-radius+abs(a), radius-abs(a)+1): + for d in range(-radius+abs(a)+abs(b), radius-abs(a)-abs(b)+1): + yield center[0]+a, center[1]+b, center[2]+d + + +def odd(parts): + total = 0 + for value in parts: + if total & value: + return False + total |= value + return True + + +def pack(function): + return tuple(sum(function(*r)[j] << i for i, r in enumerate(UR)) for j in range(3)) + + +SOURCES = { + (0, 0, 0): pack(lambda u, a, b, n: (u, 0, 1)), + (0, 0, -14): pack(lambda u, a, b, n: (u, 0, u)), + (0, 0, -16): pack(lambda u, a, b, n: (u, 1 ^ u, 1)), + (0, 0, -18): pack(lambda u, a, b, n: (u ^ b, a, u ^ a)), + (1, 0, -17): pack(lambda u, a, b, n: (a ^ b, 0, a ^ b)), + (-1, 0, -17): pack(lambda u, a, b, n: (a ^ b, a ^ b, a ^ b)), + (0, 0, -20): pack(lambda u, a, b, n: TR[n]), +} + + +@lru_cache(None) +def direct_upper(t, x, y, z): + if t < 0 or (t-x-y-z) % 2: + return ZERO + if min(abs(x-a)+abs(y-b)+abs(z-c) for a, b, c in SOURCES) > t: + return ZERO + if t == 0: + return SOURCES.get((x, y, z), ZERO) + ns = [direct_upper(t-1, x-1, y, z), direct_upper(t-1, x+1, y, z), + direct_upper(t-1, x, abs(y-1), z), direct_upper(t-1, x, y+1, z), + direct_upper(t-1, x, y, z-1), direct_upper(t-1, x, y, z+1)] + return xx(direct_upper(t-2, x, y, z), h(xx(*ns))) + + +@lru_cache(None) +def upper_strip(): + values = {} + + def get(ell, x, y, n): + y = abs(y) + if ell < 0 or abs(x)+y > ell or (ell-abs(x)-y) % 2 or ell+abs(x)+y > BUDGET: + return ZERO + return values[ell, x, y][n] + + for ell in range(BUDGET+1): + for x in range(-ell, ell+1): + for y in range(ell-abs(x)+1): + if (ell-abs(x)-y) % 2 or ell+abs(x)+y > BUDGET: + continue + arr = [direct_upper(ell, x, y, 0)] + values[ell, x, y] = arr + for n in range(1, BASE+(BUDGET-ell)//2+1): + transverse = xx(*(get(ell-1, x+dx, y+dy, n) + for dx, dy in ((-1, 0), (1, 0), (0, -1), (0, 1)))) + arr.append(xx(get(ell-2, x, y, n), + h(xx(arr[n-1], get(ell-2, x, y, n+1), transverse)))) + return values + + +@lru_cache(None) +def expand_upper(q): + return tuple(sum(((w >> UINDEX[u, a, b, n]) & 1) << i + for i, (x, u, my, mr, a, b, n) in enumerate(ROWS)) for w in q) + + +@lru_cache(None) +def upper(t, pos): + x, y, n = pos[0], abs(pos[1]), R-pos[2] + ell = t-n + if ell < 0 or abs(x)+y > ell or (ell-abs(x)-y) % 2: + return ZERO + need(ell+abs(x)+y <= BUDGET, 'signed upper strip coverage') + return expand_upper(upper_strip()[ell, x, y][n-P]) + + +@lru_cache(None) +def lower_levels(j): + # Two lanes, x=0,1, with W=111 fixed. + origin = (0, 2, 0) + w = (3, 3, 3) + first = h(xx(hp(origin, 75), hp(w, 75))) + levels = [first] + for ell in (1, 2): + forcing = hp(w, 75+ell) if not (75 & ell) else ZERO + levels.append(h(xx(levels[-1], forcing))) + for k in range(1, j+1): + forcing = hp(origin, k+75) if not (k & 75) else ZERO + levels[0] = h(xx(levels[0], forcing)) + for ell in (1, 2): + levels[ell] = h(xx(levels[ell], levels[ell-1])) + return tuple(levels) + + +@lru_cache(None) +def direct_lower(t, x, y, z): + if t < 0 or (t-x-y-z) % 2: + return ZERO + if min(abs(x)+abs(y)+abs(z), abs(x)+abs(y+76)+abs(z-76)) > t: + return ZERO + if t == 0: + return (0, 2, 0) if (x, y, z) == (0, 0, 0) else (3, 3, 3) if (x, y, z) == (0, -76, 76) else ZERO + ns = [direct_lower(t-1, abs(x-1), y, z), direct_lower(t-1, x+1, y, z), + direct_lower(t-1, x, y-1, z), direct_lower(t-1, x, y+1, z), + direct_lower(t-1, x, y, z-1), direct_lower(t-1, x, y, z+1)] + return xx(direct_lower(t-2, x, y, z), h(xx(*ns))) + + +def expand_lower(q): + return tuple(sum(((w >> x) & 1) << i + for i, (x, u, my, mr, a, b, n) in enumerate(ROWS)) for w in q) + + +CONTROLS = [((0, -S, -68), XM), ((0, S, -68), MY ^ MR), + ((T, P, -68), MY), ((-T, P, -68), MR)] +ENTRIES = {(0, -9, 8): (176, 0), (0, -10, 9): (175, 1), (0, -11, 10): (174, 2)} + + +def base(t, pos): + out = upper(t, pos) + for source, bits in CONTROLS: + ds = tuple(abs(x-y) for x, y in zip(source, pos)) + if sum(ds) <= t: + need(sum(ds) == t, 'pre-R lower only at first front') + if odd(ds): + out = xx(out, hp((0, bits, 0), t)) + if t == R-1 and pos in ENTRIES: + j, ell = ENTRIES[pos] + expected = hp((0, XM, 0), t) if odd((0, S+pos[1], 68+pos[2])) else ZERO + need(out == expected, 'entry has only isolated original-origin background') + out = expand_lower(lower_levels(j)[ell]) + return out + + +def native_compute(): + end = (0, 0, 10) + old = {pos: base(R-2, pos) for pos in ball(10, end)} + now = {pos: base(R-1, pos) for pos in ball(11, end)} + records = {} + for tau in range(11): + nxt = {} + for pos in ball(10-tau, end): + neighbors = [now[tuple(pos[j]+(sign if j == axis else 0) for j in range(3))] + for axis in range(3) for sign in (-1, 1)] + nxt[pos] = xx(old[pos], h(xx(*neighbors))) + records[tau] = nxt + if tau == 0: + need(nxt[0, 0, 0] == (XM, FULL, XM ^ UM), 'original qY preserved') + if tau == 7: + need(nxt[0, 0, 7] == (0, 0, XM ^ UM), 'q7 preserved') + if tau == 8: + need(nxt[0, 0, 8] == (0, XM ^ UM, 0), 'q8 preserved') + old, now = now, nxt + return now[end], records + + +def controller_audit(out, extended): + family = [] + common = [] + joint = [] + targets = {key: [] for key in ('clean_A_xor_c', 'clean_B_xor_c', 'clean_D_xor_c', + 'clean_B_s', 'mixer', 'pair_BR')} + coefficients = product(range(8) if extended else (0,), range(8), range(8)) + for B, C, V in coefficients: + cells = {(s, c): set() for s, c in product((0, 1), repeat=2)} + row_values = [] + for x, u, my, mr, a, b, c in product((0, 1), repeat=7): + if (a, b) == (0, 1): + continue + s = x ^ u ^ a + n = ((B if u ^ a else 0) ^ (C if a ^ b else 0) ^ (V if c else 0)) + got = lane(out, RINDEX[x, u, my, mr, a, b, n]) + cells[s, c].add(got) + row_values.append((s, c, got)) + stable = all(len(v) == 1 for v in cells.values()) + injective_s = stable and all(cells[0, c] != cells[1, c] for c in (0, 1)) + fresh_effect = stable and any(cells[s, 0] != cells[s, 1] for s in (0, 1)) + joint_injective = stable and len(set(next(iter(v)) for v in cells.values())) == 4 + if injective_s: + witness = {'B': B, 'C': C, 'V': V, + 'codes_s0c0_s0c1_s1c0_s1c1': [code(next(iter(cells[s, c]))) + for s, c in product((0, 1), repeat=2)], + 'fresh_c_effect': fresh_effect, 'joint_injective': joint_injective} + common.append(witness) + if joint_injective: + joint.append(witness) + for name in targets: + def wanted(s, c): + return {'clean_A_xor_c': (s ^ c, 0, 0), 'clean_B_xor_c': (0, s ^ c, 0), + 'clean_D_xor_c': (0, 0, s ^ c), 'clean_B_s': (0, s, 0), + 'mixer': (c, s, c & s), 'pair_BR': (0, s, s ^ c)}[name] + if all(got == wanted(s, c) for s, c, got in row_values): + targets[name].append([B, C, V]) + family.append({'B': B, 'C': C, 'V': V, + 'max_code_multiplicity_at_fixed_s_c': max(map(len, cells.values())), + 'common_s_code': injective_s, 'joint_s_c_code': joint_injective}) + return {'candidate_count': len(family), 'common_s_codes': common, + 'joint_s_c_codes': joint, 'standard_targets': targets, + 'candidate_max_multiplicity_histogram': + dict(sorted(Counter(r['max_code_multiplicity_at_fixed_s_c'] for r in family).items()))} + + +def pad_obstruction(out): + count = 0 + for x, u, my, n in product((0, 1), (0, 1), (0, 1), range(8)): + lo = lane(out, RINDEX[x, u, my, 0, 1, 0, n]) + hi = lane(out, RINDEX[x, u, my, 1, 1, 0, n]) + need(lo[1] ^ hi[1] == 1, 'accepted mask10 always reintroduces selector mR in B') + count += 1 + return {'mR_toggle_pairs_mask10': count, + 'native_identity': 'q10.B(mR=1) XOR q10.B(mR=0)=1 when (a,b)=(1,0)', + 'example': {'x': 0, 'u': 0, 'a': 1, 'b': 0, 'Ncode': 0, + 'q9': [0, 1, 0], + 'q10_codes_for_pads_00_01_10_11': + [code(lane(out, RINDEX[0, 0, my, mr, 1, 0, 0])) + for my, mr in product((0, 1), repeat=2)]}, + 'whole_earlier_public_records_equal_between_pad_variants': 'not established'} + + +def affine_solution(contexts, values): + solutions = [] + for field in range(3): + pivots = {} + for k, value in zip(contexts, values): + mask = 1+sum(v << (i+1) for i, v in enumerate(k)) + rhs = (value >> (2-field)) & 1 + while mask: + pivot = mask.bit_length()-1 + if pivot in pivots: + prior, prior_rhs = pivots[pivot] + mask ^= prior + rhs ^= prior_rhs + else: + pivots[pivot] = (mask, rhs) + break + if not mask and rhs: + return None + solution = 0 + for pivot in sorted(pivots): + mask, rhs = pivots[pivot] + if rhs ^ ((mask & solution).bit_count() & 1): + solution |= 1 << pivot + need(all(((1+sum(v << (i+1) for i, v in enumerate(k))) & solution).bit_count() % 2 + == (value >> (2-field)) & 1 for k, value in zip(contexts, values)), + 'affine source solution on every accepted known context') + solutions.append(solution) + return [sum(((solutions[j] >> i) & 1) << (2-j) for j in range(3)) for i in range(6)] + + +def pad_aware_single_source(out): + contexts = [k for k in product((0, 1), repeat=5) if (k[3], k[4]) != (0, 1)] + maps = [] + common = None + sizes = [] + for u, my, mr, a, b in contexts: + pairs = {} + for n in range(8): + pair = tuple(code(lane(out, RINDEX[s ^ u ^ a, u, my, mr, a, b, n])) + for s in (0, 1)) + if pair[0] != pair[1]: + need(pair not in pairs, 'own-N permutation gives unique pair preimage') + pairs[pair] = n + maps.append(pairs) + common = set(pairs) if common is None else common & set(pairs) + sizes.append(len(common)) + survivors = [] + for pair in sorted(common): + required = [pairs[pair] for pairs in maps] + affine = affine_solution(contexts, required) + survivors.append({'raw_code_pair_s0_s1': pair, + 'source_N_codes_in_context_order': required, + 'affine_coefficients_constant_u_mY_mR_a_b': affine}) + fresh_pairs = [] + for i, one in enumerate(survivors): + for two in survivors[i+1:]: + a = one['affine_coefficients_constant_u_mY_mR_a_b'] + b = two['affine_coefficients_constant_u_mY_mR_a_b'] + if a is not None and b is not None and a[1:] == b[1:]: + fresh_pairs.append({'first_raw_pair': one['raw_code_pair_s0_s1'], + 'second_raw_pair': two['raw_code_pair_s0_s1'], + 'fresh_c_coefficient': a[0] ^ b[0]}) + incompatible = None + for i in range(len(maps)): + for j in range(i+1, len(maps)): + if not (set(maps[i]) & set(maps[j])): + incompatible = {'first_context_u_mY_mR_a_b': contexts[i], + 'second_context_u_mY_mR_a_b': contexts[j], + 'first_raw_pair_set': sorted(maps[i]), + 'second_raw_pair_set': sorted(maps[j])} + break + if incompatible is not None: + break + # Mechanism check on every held-N unknown-sign pair. This algebraic + # identity is extracted from the actual native table, not an isolated H. + derivative_count = 0 + for u, my, mr, a, b, n in product((0, 1), (0, 1), (0, 1), + (0, 1), (0, 1), range(8)): + if (a, b) == (0, 1): + continue + zero = lane(out, RINDEX[u ^ a, u, my, mr, a, b, n]) + one = lane(out, RINDEX[1 ^ u ^ a, u, my, mr, a, b, n]) + need(zero[0] ^ one[0] == u, 'q10 A unknown-sign derivative is exactly old seed u') + derivative_count += 1 + erased_pairs = 0 + branch_permutation = None + for my, mr in product((0, 1), repeat=2): + zero = [code(lane(out, RINDEX[1, 0, my, mr, 1, 1, n])) for n in range(8)] + one = [code(lane(out, RINDEX[0, 0, my, mr, 1, 1, n])) for n in range(8)] + need(zero == one, 'accepted u0 mask11 loses unknown sign at q10 for every N') + need(len(set(zero)) == 8, 'new source still transported bijectively on erased-input branch') + if branch_permutation is None: + branch_permutation = zero + need(zero == branch_permutation, 'erased-input branch also pad-independent') + erased_pairs += 8 + return {'context_order': 'u,mY,mR,a,b lexicographic; only accepted00,10,11', + 'known_seed_contexts': len(contexts), 'pair_intersection_sizes_after_context': sizes, + 'common_raw_pairs': survivors, 'affine_fresh_c_pairs': fresh_pairs, + 'two_context_incompatibility_witness': incompatible, + 'unknown_s_A_derivative_pairs': derivative_count, + 'derivative_identity': 'q10.A(s=0,N) XOR q10.A(s=1,N)=u for every accepted known context and held N', + 'pointwise_X_loss_branch': {'u': 0, 'a': 1, 'b': 1, + 'unknown_s_pairs_checked_all_pads_N': erased_pairs, + 'q10_codes_N0_to_N7_for_either_s': branch_permutation, + 'previous_q9_s_retained': True, + 'q10_only_deterministic_X_decoder': 'impossible on all accepted worlds'}, + 'verdict': 'common raw binary X code exists' if survivors + else 'no common raw binary X code for any pad-aware seed-only single N'} + + +def geometry(root): + target = (0, S, 78) + npos = (0, S, S+156) + deadline = R+10 + need(dist(npos, target) == deadline, 'new source native first arrival') + need(dist(npos, (0, S, 77)) == L+2, 'q9 not changed by new source') + need(dist(npos, (0, S, 76)) == L+3, 'earlier q8 not changed by new source') + geo = json.loads((root/'parallel_v3/history_control/SOURCE-GEOMETRY.json').read_text())['sources'] + need(len(geo) == 1479, 'old source inventory') + need(all(dist(tuple(v['position']), target) >= deadline for v in geo), + 'new ready extension retains old compiled source geometry') + need(all(tuple(v['position']) != npos for v in geo), 'new source overwrites no compiled coordinate') + ports = [(0, T, 0), (0, 0, -8*T), (T, P, 0), (-T, P, 0), + (4*T, P, 0), (0, S, 0), (12*R, 0, 0), (48*L, 0, 0)] + deadlines = [T, T, S, S, S, S, R, L] + ready = list(zip(ports, deadlines)) + ready += [((T, 0, 0), T), ((-T, 0, 0), T), ((4*T, 0, 0), T), + ((0, S, -68), R), ((-12*R, 0, 0), R)] + ready += [((0, S, 68+k), R+k) for k in range(10)] + ready += [((-48*L, 0, 0), L)] + need(all(dist(npos, center) > radius for center, radius in ready), + 'new N source outside all earlier ready prescriptions') + directions = [(0, -1, 0), (0, 0, -1), (0, 1, 0), (0, 1, 0), + (0, 1, 0), (0, 1, 0), (-1, 0, 0), (1, 0, 0)] + bank_pairs = 0 + min_slacks = [] + for p, d, start in zip(ports, directions, deadlines): + axis = next(j for j in range(3) if d[j]) + times = {start+1, deadline} + zero = (target[axis]-p[axis])*d[axis] + if start+1 <= zero <= deadline: + times.add(zero) + gaps = [] + for t in times: + source = tuple(v+t*w for v, w in zip(p, d)) + need(source != npos and dist(source, target) > deadline, + 'entire original-time public bank excluded from new q10 ready pins') + gaps.append(dist(source, target)-deadline) + bank_pairs += 1 + min_slacks.append(min(gaps)) + f8 = (-(L+1), S, 76) + f10 = (-(L+1), S, 78) + need(dist(f8, target) == deadline+2, 'optional F8 resource remains outside') + need(dist(f10, target) == deadline, 'optional F10 is replaced by boundary pin') + need(all(dist(npos, p) > L for p in ports), 'new N cannot affect old public history through L') + entries = [] + W = (0, -76, 76) + for time, radius in ((R-2, 10), (R-1, 11)): + for p in ball(radius, (0, 0, 10)): + absolute = (p[0], S+p[1], 68+p[2]) + if dist(W, absolute) <= time: + entries.append([time-R, list(p), dist(W, absolute)-time]) + expected = [[-1, [0, -11, 10], 0], [-1, [0, -10, 9], 0], [-1, [0, -9, 8], 0]] + need(entries == expected, 'exact three-layer lower W cone entries') + return {'source_inventory_rows': len(geo), 'prior_ready_regions_excluded_by_N': len(ready), + 'public_bank_breakpoint_cases': bank_pairs, + 'public_bank_minimum_positive_slack_P_coefficients': + [{'P_coefficient': x//P, 'constant': x%P} for x in min_slacks], + 'W_entries': entries, 'F8_preserved': True, 'F10_uniform_factor_replaced': True, + 'N_does_not_change_old_public_record_through_L': True} + + +def main(): + ap = argparse.ArgumentParser() + default = Path(__file__).resolve().parent.parent + if not (default/'parallel_v3').exists(): + default = default/'checkpoint_v11' + ap.add_argument('--source-root', type=Path, default=default) + args = ap.parse_args() + here = Path(__file__).resolve().parent + prov = json.loads((here/'PROVENANCE.json').read_text()) + for path, expected in prov['inputs'].items(): + need(hashlib.sha256((args.source_root/path).read_bytes()).hexdigest() == expected, + 'inherited bytes '+path) + need(P % (12*840**BUDGET) == 0, 'actual signed upper period') + need(P % (384*840**3) == 0, 'actual coupled three-layer lower period') + data = upper_strip() + upper_controls = 0 + for (ell, x, y), arr in data.items(): + for n in range(3): + need(arr[n] == direct_upper(n+ell, x, y, n), 'direct full native upper cluster') + upper_controls += len(UR) + lower_controls = 0 + for j in range(9): + for ell in range(3): + need(lower_levels(j)[ell] == direct_lower(j+76+ell, 0, j, 76+ell), + 'direct origin/W native three-layer first front') + lower_controls += 2 + g = geometry(args.source_root) + out, records = native_compute() + prior = json.loads((args.source_root/'branch_v10/local-controller/symmetric-result.json').read_text())['q9_table_hex'] + old_rows = 0 + for i, (x, u, my, mr, a, b, n) in enumerate(ROWS): + index = 0 + for value, size in zip((x, u, my, mr, a, b, 4, 5, 7), (2, 2, 2, 2, 2, 2, 8, 8, 8)): + index = size*index+value + need(lane(records[9][0, 0, 9], i) == TR[int(prior[index], 16)], + 'all actual old q9 rows unchanged by initial extension and N') + old_rows += 1 + # First-front permutation in the one new initial N triple, for each + # actual old unknown/input/pad context. This is not an isolated H(q9) test. + permutation_contexts = 0 + mask_dependence_rows = 0 + accepted_mask_dependence_rows = 0 + for row in product((0, 1), repeat=6): + image = {lane(out, RINDEX[*row, n]) for n in range(8)} + need(len(image) == 8, 'new axial source has nonvacuous full native response') + permutation_contexts += 1 + for i, (x, u, my, mr, a, b, n) in enumerate(ROWS): + if lane(out, i) != lane(out, RINDEX[x, u, 0, 0, a, b, n]): + mask_dependence_rows += 1 + if (a, b) != (0, 1): + accepted_mask_dependence_rows += 1 + first = controller_audit(out, False) + extended = controller_audit(out, True) if not first['joint_s_c_codes'] else None + pad = pad_obstruction(out) + aware = pad_aware_single_source(out) + result = {'schema': 'oi.native-outward-seed-controller.v12', + 'source_revision': prov['source_revision'], + 'checks': {'upper_direct_scalar_lanes': upper_controls, + 'lower_direct_scalar_rows': lower_controls, + 'q9_preserved_rows': old_rows, + 'new_source_permutation_contexts': permutation_contexts, + 'selector_pad_dependence_rows': mask_dependence_rows, + 'accepted_selector_pad_dependence_rows': accepted_mask_dependence_rows, + 'geometry': g}, + 'q10_table_order': 'x,u,mY,mR,a,b,Ncode lexicographic; code=4A+2B+D', + 'q10_table_hex': ''.join(format(code(lane(out, i)), 'x') for i in range(len(ROWS))), + 'family64': first, 'family512': extended, + 'pad_obstruction': pad, 'pad_aware_single_N': aware, + 'verdict': {'joint_s_c_native_code': 'exists' if first['joint_s_c_codes'] or + (extended and extended['joint_s_c_codes']) else 'excluded_in_fixed_affine_family', + 'native_predicate': 'not_constructed', + 'single_q10_pointwise_X_transfer': 'excluded for any seed-only N in this fixed geometry', + 'full_quantum_reset': 'not_constructed', + 'initial_resource_contract': 'outward-ready extension and optional F10 factor replaced'}} + print(json.dumps(result, sort_keys=True, separators=(',', ':'))) + + +if __name__ == '__main__': + main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/result.json new file mode 100644 index 000000000..1bb1f08b3 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/result.json @@ -0,0 +1 @@ +{"checks":{"accepted_selector_pad_dependence_rows":80,"geometry":{"F10_uniform_factor_replaced":true,"F8_preserved":true,"N_does_not_change_old_public_record_through_L":true,"W_entries":[[-1,[0,-11,10],0],[-1,[0,-10,9],0],[-1,[0,-9,8],0]],"prior_ready_regions_excluded_by_N":24,"public_bank_breakpoint_cases":15,"public_bank_minimum_positive_slack_P_coefficients":[{"P_coefficient":0,"constant":1},{"P_coefficient":0,"constant":1666},{"P_coefficient":0,"constant":1},{"P_coefficient":0,"constant":1},{"P_coefficient":0,"constant":556},{"P_coefficient":0,"constant":1},{"P_coefficient":11,"constant":2773},{"P_coefficient":49,"constant":12839}],"source_inventory_rows":1479},"lower_direct_scalar_rows":54,"new_source_permutation_contexts":64,"q9_preserved_rows":512,"selector_pad_dependence_rows":144,"upper_direct_scalar_lanes":97152},"family512":{"candidate_count":512,"candidate_max_multiplicity_histogram":{"5":3,"6":136,"7":327,"8":46},"common_s_codes":[],"joint_s_c_codes":[],"standard_targets":{"clean_A_xor_c":[],"clean_B_s":[],"clean_B_xor_c":[],"clean_D_xor_c":[],"mixer":[],"pair_BR":[]}},"family64":{"candidate_count":64,"candidate_max_multiplicity_histogram":{"6":21,"7":40,"8":3},"common_s_codes":[],"joint_s_c_codes":[],"standard_targets":{"clean_A_xor_c":[],"clean_B_s":[],"clean_B_xor_c":[],"clean_D_xor_c":[],"mixer":[],"pair_BR":[]}},"pad_aware_single_N":{"affine_fresh_c_pairs":[],"common_raw_pairs":[],"context_order":"u,mY,mR,a,b lexicographic; only accepted00,10,11","derivative_identity":"q10.A(s=0,N) XOR q10.A(s=1,N)=u for every accepted known context and held N","known_seed_contexts":24,"pair_intersection_sizes_after_context":[8,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],"pointwise_X_loss_branch":{"a":1,"b":1,"previous_q9_s_retained":true,"q10_codes_N0_to_N7_for_either_s":[4,2,1,0,3,5,6,7],"q10_only_deterministic_X_decoder":"impossible on all accepted worlds","u":0,"unknown_s_pairs_checked_all_pads_N":32},"two_context_incompatibility_witness":{"first_context_u_mY_mR_a_b":[0,0,0,0,0],"first_raw_pair_set":[[0,2],[1,3],[2,0],[3,1],[4,7],[5,6],[6,5],[7,4]],"second_context_u_mY_mR_a_b":[0,0,0,1,1],"second_raw_pair_set":[]},"unknown_s_A_derivative_pairs":192,"verdict":"no common raw binary X code for any pad-aware seed-only single N"},"pad_obstruction":{"example":{"Ncode":0,"a":1,"b":0,"q10_codes_for_pads_00_01_10_11":[1,3,1,3],"q9":[0,1,0],"u":0,"x":0},"mR_toggle_pairs_mask10":64,"native_identity":"q10.B(mR=1) XOR q10.B(mR=0)=1 when (a,b)=(1,0)","whole_earlier_public_records_equal_between_pad_variants":"not established"},"q10_table_hex":"25176304741302651340256742103567251763045620314731720654421035672517630474130265134025674210356725176304562031473172065442103567276043514036275112367045213564072760435140362751210453672135640727604351364051277540163221356407276043513640512757632401213564070634512756203147317206544210356706345127741302651340256742103567063451275620314731720654421035670634512774130265134025674210356740172536157263047540163257420361401725361572630457632401574203614017253672150463123670455742036140172536721504632104536757420361","q10_table_order":"x,u,mY,mR,a,b,Ncode lexicographic; code=4A+2B+D","schema":"oi.native-outward-seed-controller.v12","source_revision":"00e85e748cf8e5ada75f4e1a22aef87eb0a823a2","verdict":{"full_quantum_reset":"not_constructed","initial_resource_contract":"outward-ready extension and optional F10 factor replaced","joint_s_c_native_code":"excluded_in_fixed_affine_family","native_predicate":"not_constructed","single_q10_pointwise_X_transfer":"excluded for any seed-only N in this fixed geometry"}} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/review/INPUT-HASHES.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/review/INPUT-HASHES.json new file mode 100644 index 000000000..3fa320b97 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/review/INPUT-HASHES.json @@ -0,0 +1,25 @@ +{ + "all_six_remote_git_blob_identities_verified": true, + "author_commit": "1c91d3158e13eaa69c7fd1710932c9995d0288d7", + "author_normal_optimized_retained_replay_equal": true, + "author_sha256": { + "PLAN.md": "774adfccdfca3ea178fa1c46ad141d1b027849a7ad8e3c81e508cb9df2a9eb70", + "PROVENANCE.json": "faa8276720fa2a7bdbf27017ad7924b622d36fa22c327788a8d5ac7849e52e06", + "REPORT.md": "7fb515126a6835a2c10031b3000077d62fd8ac3af4af860dc40721cb47b39c52", + "SHA256SUMS": "cb60b755ca2aed4bdd2763271bcbbbd1f903c33de64eb5a079d0945120ea1142", + "checks.py": "236438fc59188deb6575bf29d1236de10130bd78576db0c5308f4604426fc3b3", + "result.json": "4628cc9f241b0ab71f62d96fbdb2e99f5c5991cce66725f9f86c82ddcb46a28d" + }, + "inherited_sha256": { + "branch_v10/local-controller/REPORT.md": "cdc9600cb467e54184b811166c71d9a73e8b5d89d4b813d516100eb27eff19db", + "branch_v10/local-controller/symmetric-result.json": "d8e7c1f5841192165beefb3fe35b069cc14cc93f2faa2bd68619aa7748b3db2f", + "parallel_v3/history_control/SOURCE-GEOMETRY.json": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d", + "reset_v9/checks.py": "55659ae57662ba687dba49fabf9766b0583d72f5bd441999edb0342162ac9685", + "six_source_v5/period/REPORT.md": "7743ee8fccb5e39df674bb7ada6fcd6ce45582b801d4d58d77af5162420cf360" + }, + "inherited_source_revision": "00e85e748cf8e5ada75f4e1a22aef87eb0a823a2", + "repository": "amaybaum/incompleteness", + "review_engine": "Independent interleaved3-bit native evaluator with signedx ANDy, separate2D monotone lower-front DP and explicit full scalar3D controls; no author imports", + "review_normal_optimized_equal": true, + "source_prefix": "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/review/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/review/REPORT.md new file mode 100644 index 000000000..f867fde84 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/review/REPORT.md @@ -0,0 +1,182 @@ +# Separate-author review of Native B's outward seeded port + +Verdict: **accept within the stated single-port/source-family scope**, with +no blocking findings. + +Author: #910 at `1c91d3158e13eaa69c7fd1710932c9995d0288d7`, under +`native_seed_v12/`. The five changed Git blobs at that commit and the +inherited PLAN blob were checked against the local reviewed files; all six +match. The author's normal and optimized commands reproduce its retained +result byte for byte. `INPUT-HASHES.json` pins those six files and the five +inherited source/proof inputs at the stated base. This is a separate-agent +internal review, not external validation or kernel certification. + +## Independent native reconstruction + +The review imports no author engine. Its checker uses a distinct interleaved +three-bit lane representation, rather than the author's three separate +bitplanes and expansion maps. It retains signed x and signed y throughout +the upper strip; neither spatial reflection is imposed in the evaluator. +Independent full six-neighbor recursion initializes that strip and checks +1,782 short-time packed values on 891 signed nodes. Each packed comparison +covers 64 distinct upper-source assignments; duplicated lower/pad lanes are +not counted as new independent assignments. Ten initial-strip witnesses +detect an incorrectly imposed x reflection. The unfolded y values do obey +the surviving reflection symmetry. + +For origin/W, a separate two-dimensional monotone first-front calculation +is run at the actual gap 76. Both initial sources lie on y+z=0; at the +leading time y+z, only the south and lower-z neighbors can have arrived. +The old-local term, x-transverse directions and forward directions are too +late by at least two ticks. Thus a grid initialized at origin and (-76,76) +computes the full coupled H front directly, without the author's three-layer +recurrence. It agrees with that recurrence on 531 layer/query cases through +j=176. A separate unreflected full three-dimensional native simulation at +small gap four checks 30 scalar first-front cases, including the old-local +term in that simulation. + +Those independently computed upper and lower values initialize both slices +of the complete shrinking q10 diamond. The late evaluator retains all six +neighbors and the previous local triple. All 512 q10 triples agree with the +author, including every mask01 physical row. The encoded-table digest is + + 8bc1462854ce5fb80c18a48e8208037eb6bd613aa5babb28721e186aec3387f9. + +The qY, q7, q8 and actual q9 values also agree in all 512 rows, including +all eight new-N values. The q9 comparison uses the retained earlier native +table, not a newly assumed clean-input formula. As in the source, the +inherited old-front/transport description is a dependency; this review does +not re-certify all earlier compiler applications or the full manuscript. + +## Period and geometric arguments + +The signed upper strip's budget is 20, with Q/C/G/J/K/N evolved together. +For a layer ell and transverse position, the next axial value is a +permutation of its own previous triple, forced only by lower layers. +The old-local and forward-z terms are in layer ell-2; transverse terms are +in ell-1. The budget ell+|x|+|y|<=20 is closed under these dependencies. +H has exponent 12. After a period of the lower forcing, each same-layer +triple undergoes an eight-element permutation whose order divides 840. +This gives the sufficient common exponent 12*840^20. The argument does not +multiply the exponent once per transverse site, since sites at the same +layer have no same-layer coupling. Actual P is divisible by this bound. + +The F0 forcing is the product of a 128-period Lucas-parity condition and +a 12-period H phase, hence has period 384. Its block map is an eight-state +permutation, giving the sufficient period 384*840. Successively forcing F1 +and F2 gives 384*840^2 and 384*840^3. Their initial conditions are correct: +the additional south-W forcing vanishes for ell=1,2 because 75 shares a bit +with both ell values. The checker verifies actual P divisibility by the +three-layer bound exactly. The large-time conclusion rests on these written +arguments, not enumeration of P ticks. + +An exact causal enumeration gives three W arrivals on the R-1 initializing +slice and none on R-2, at the positions printed by the author. The reduced +queries F0(176), F1(175), F2(174) are correct. A useful benign detail is that +the third entry is actually zero for both x values in this candidate; +its isolated-origin first-front value is also zero after Lucas parity. +Removing only that correction therefore changes no q10 rows. It cannot be +used as a nonvacuous omission control. Removing all coupled W corrections +instead changes 416 of the 512 q10 rows. The independent grid explicitly +checks the third entry rather than inferring it from that mutant. + +The source/readiness change is stated correctly. N is an original-time +current source at distance L+1 from q10, L+2 from q9 and L+3 from q8. +It lies outside all 24 earlier ready regions and overwrites no compiled +source. All 1,479 retained compiled positions lie on or outside the new +q10 boundary, with their exceptions retained. The new cone explicitly +replaces the optional F10 uniform factor; it preserves F8 outside the cone. +Consequently the older 64-value pool theorem cannot simply be reused. + +For each of the eight old public-bank rays, the reviewer minimizes its +Manhattan distance over the entire integer time interval by clamping the +single varying-coordinate zero to the interval. Every minimum is strictly +outside the new ready ball, with minimum slack one. This is an interval +argument, not a sample of an astronomical bank. N cannot reach an existing +public port by L. The upper/lower effective front centers remain separated +by at least 2R, and the retained torus is large enough for these source and +horizon envelopes. At the pre-collision boundary the old lower waves are +only at their first fronts; their pure-B inputs share the same H phase, +while the exceptional origin/W interaction is handled by the coupled grid. + +Blanking a larger initial region may change the pointwise background of +late public noise. It preserves the inherited chronological-bijection law +conditional on the changed complement because no reserved fair bank triple +is overwritten. The author makes this distinction correctly. No new whole +q10 public-prefix/flag law is established by these geometry checks. + +## Controller exclusions and the lost-input branch + +The independently reconstructed table gives a permutation of all eight q10 +values for every one of the 64 fixed old contexts when N varies. The new +source is genuinely transported; a negative result is not caused by a dead +new control or by replacing the native rule with H of q9 alone. + +Both declared affine source families were re-enumerated from the new table: +64 controls without the u XOR a term and 512 with it. Neither has a common +injective s code at each fresh c. The registered clean/mixer/paired targets +all require such an injective code and therefore have no survivor either. +This is a finite result for those specified original-time controls. + +The pad-aware extension is sound and its source limitation is explicit. +For each of the 24 known contexts (u,mY,mR,a,b) on accepted old masks, +form the eight held-N pairs of raw q10 values for s=0,1, omitting equal +pairs. A controller depending only on that context and new independent +seeds needs a common ordered pair for a common pointwise raw code. The +intersection sizes begin 8,8,0 and stay zero. The author consequently does +not need to claim an affine-realizability solution for a surviving pair. +An empty common-label intersection alone would not exclude every redundant +decoder; the stronger next observation does. + +On accepted u=0,a=b=1, all four pad choices give the same full N permutation + + [4,2,1,0,3,5,6,7] + +for both unknown signs. All 32 held-pad/N pairs were re-derived from the +independent native engine. Any N chosen from known context and independent +new resources has the same q10 law for both signs on this branch. Thus a +decoder of current q10 alone cannot recover both different s values, even +if redundant raw labels or nonlinear known-seed N functions are allowed. +The premise that N does not initially copy unknown x/s is essential. This +argument concerns a single seeded current-port adapter, not all possible +physical computation after the unknown sign arrives. + +The actual previous q9 triples remain different and retain s. The global +native state has not erased the unknown sign, so a distributed two-slice +code, another port or a later native gate is not excluded. In particular +this is not a full-boundary operational inequivalence or an OI-wide no-go. + +The other mechanistic identities also match: 192 accepted unknown-sign +pairs have q10.A(s=0) XOR q10.A(s=1)=u. On mask10, all 64 held-N mR-toggle +pairs flip q10.B. There are 144 pad-sensitive diagnostic rows, 80 on accepted +old masks. The example with identical selected q9=010 and q10 values +001,011,001,011 is correct. Those pad variants have not been shown to have +the same complete earlier public record; informative ciphertexts can differ. +The report correctly calls this selected-boundary response dependence. + +## Verification and verdict boundary + +Every review control passes with explicit exceptions retained under Python +optimization. Normal and optimized review executions are byte-identical. +The five curated review files are REPORT.md, checks.py, result.json, +INPUT-HASHES.json and SHA256SUMS. The checker accepts the retained native +source root and author root as explicit CLI arguments and has defaults for +both this workspace and its intended nested published location. + +The new physical q10 table, source modification, period arguments and +single-port controller exclusions are accepted within their stated scope. +The scope includes the exceptional mask01 raw rows but does not supply a +new joint quantum instrument/failure law: no native predicate, public flag, +reusable output interface or late whole-port access law is constructed. +The old joint public-bank theorem remains an inherited premise. No A1 +coverage, A2 protocol error guarantee, composite result, physical premise +adoption, F/E designation, dispatch, merge or #885 edit follows. + +Replay locally with: + + python3 checks.py --source-root /path/to/retained/native/root --author-root /path/to/native_seed_v12 + python3 -O checks.py --source-root /path/to/retained/native/root --author-root /path/to/native_seed_v12 + +Each output must match result.json exactly. Written universal/large-time +arguments were reviewed separately from the bounded computations. Neither +the finite controls nor this internal review are Lean or host attestations. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/review/SHA256SUMS new file mode 100644 index 000000000..0c9667616 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/review/SHA256SUMS @@ -0,0 +1,4 @@ +51a74e9c6d494c43d69aa1f8be53aed178e1ada2fe6c7a3e8ed0dc7cd678427f REPORT.md +76f2672a0a0b45004055d0222d78b68680885b40391eaa7be92cc8712dd6193e checks.py +a12bf77022e7c320d5a41f308fd3d99127f43a98d60476560eb85ce3c66931c3 result.json +5b142a106bf45f780a15cdcd3783d0dc9584d2299401b272457665fc3d94cb1f INPUT-HASHES.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/review/checks.py new file mode 100644 index 000000000..d20592086 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/review/checks.py @@ -0,0 +1,317 @@ +#!/usr/bin/env python3 +"""Independent signed native evaluator and monotone origin/W front review.""" +from collections import Counter +from fractions import Fraction +from functools import lru_cache +from itertools import product +from pathlib import Path +import argparse,hashlib,json + +ROWS=tuple(product((0,1),(0,1),(0,1),(0,1),(0,1),(0,1),range(8))) +INDEX={row:i for i,row in enumerate(ROWS)} +LOW=sum(1<<(3*i) for i in range(512)) +T=185; DELAY=12*840**185; S=DELAY+T; R=S+68; L=R+9; BASE=253; BUDGET=20 +HSCALAR=(0,2,4,7,1,3,5,6) + +def need(ok,message): + if not ok: raise RuntimeError(message) + +def pack(function): return sum(function(*row)<<(3*i) for i,row in enumerate(ROWS)) +def item(value,index): return value>>(3*index)&7 +def hb(value): + return ((value&(LOW<<1))<<1)|((value&LOW)<<1)|(((value>>2)&LOW)^(((value>>1)&LOW)&value&LOW)) +def hp(value,t): + for _ in range(t%12): value=hb(value) + return value +def xor(values): + out=0 + for v in values: out^=v + return out +def distance(a,b): return sum(abs(x-y) for x,y in zip(a,b)) +def adjacent(p): + for axis in range(3): + for sign in (-1,1): + q=list(p);q[axis]+=sign;yield tuple(q) +def ball(r,center): + for x in range(-r,r+1): + for y in range(-r+abs(x),r-abs(x)+1): + for z in range(-r+abs(x)+abs(y),r-abs(x)-abs(y)+1): + yield center[0]+x,center[1]+y,center[2]+z + +UPPER={ + (0,0,0):pack(lambda x,u,my,mr,a,b,n:4*u+1), + (0,0,-14):pack(lambda x,u,my,mr,a,b,n:5*u), + (0,0,-16):pack(lambda x,u,my,mr,a,b,n:4*u+2*(1^u)+1), + (0,0,-18):pack(lambda x,u,my,mr,a,b,n:4*(u^b)+2*a+(u^a)), + (1,0,-17):pack(lambda x,u,my,mr,a,b,n:5*(a^b)), + (-1,0,-17):pack(lambda x,u,my,mr,a,b,n:7*(a^b)), + (0,0,-20):pack(lambda x,u,my,mr,a,b,n:n), +} + +@lru_cache(None) +def short_upper(t,x,y,z): + if t<0 or (t-x-y-z)%2: return 0 + if min(distance((x,y,z),source) for source in UPPER)>t:return 0 + if t==0:return UPPER.get((x,y,z),0) + p=(x,y,z) + return short_upper(t-2,*p)^hb(xor(short_upper(t-1,*q) for q in adjacent(p))) + +def strip(): + data={} + def at(ell,x,y,n): + radius=abs(x)+abs(y) + if ell<0 or radius>ell or (ell-radius)%2 or ell+radius>BUDGET:return 0 + return data[ell,x,y][n] + for ell in range(BUDGET+1): + for x in range(-ell,ell+1): + for y in range(-ell+abs(x),ell-abs(x)+1): + if (ell-abs(x)-abs(y))%2 or ell+abs(x)+abs(y)>BUDGET:continue + values=[short_upper(ell,x,y,0)];data[ell,x,y]=values + for n in range(1,BASE+(BUDGET-ell)//2+1): + forced=at(ell-2,x,y,n+1)^at(ell-1,x-1,y,n)^at(ell-1,x+1,y,n)^at(ell-1,x,y-1,n)^at(ell-1,x,y+1,n) + values.append(at(ell-2,x,y,n)^hb(values[-1]^forced)) + checks=0 + for (ell,x,y),values in data.items(): + for n in (1,2): + need(values[n]==short_upper(n+ell,x,y,n),'signed full-x/full-y native strip') + checks+=1 + return data,checks + +ORIGIN=pack(lambda x,u,my,mr,a,b,n:2*x) +WVALUE=7*LOW + +def monotone_front(gap,last_y,max_ell,origin,wvalue,operation): + data={} + for y in range(-gap,last_y+1): + for z in range(gap+max_ell+1): + if y+z<0:continue + if y+z==0: + value=origin if (y,z)==(0,0) else wvalue if (y,z)==(-gap,gap) else 0 + else:value=operation(data.get((y-1,z),0)^data.get((y,z-1),0)) + data[y,z]=value + return data + +def lower_front(): + grid=monotone_front(76,176,2,ORIGIN,WVALUE,hb) + layers=[hb(hp(ORIGIN,75)^hp(WVALUE,75))] + layers.extend((hb(layers[0]),hb(hb(layers[0])))) + checks=0 + for j in range(177): + if j: + layers[0]=hb(layers[0]^(hp(ORIGIN,j+75) if j&75==0 else 0)) + layers[1]=hb(layers[1]^layers[0]);layers[2]=hb(layers[2]^layers[1]) + for ell in range(3): + need(layers[ell]==grid[j,76+ell],'actual-gap independent monotone lower front') + checks+=1 + scalar_controls=0 + for x in (0,1): + small=monotone_front(4,4,2,2*x,7,lambda v:HSCALAR[v]) + previous={};current={p:v for p,v in (((0,0,0),2*x),((0,-4,4),7)) if v} + histories=[current] + for time in range(1,11): + points=set(previous) + for p in current:points.update(adjacent(p)) + out={} + for p in points: + value=previous.get(p,0)^HSCALAR[xor(current.get(q,0) for q in adjacent(p))] + if value:out[p]=value + histories.append(out);previous,current=current,out + for j,ell in product(range(5),range(3)): + need(histories[j+4+ell].get((0,j,4+ell),0)==small[j,4+ell], + 'unreflected six-neighbor scalar lower-front control') + scalar_controls+=1 + return grid,checks,scalar_controls + +CONTROLS=((0,-S,-68),(0,S,-68),(T,DELAY,-68),(-T,DELAY,-68)) +PAYLOADS=(ORIGIN,pack(lambda x,u,my,mr,a,b,n:2*(my^mr)), + pack(lambda x,u,my,mr,a,b,n:2*my),pack(lambda x,u,my,mr,a,b,n:2*mr)) +ENTRIES={(0,-9,8):(176,0),(0,-10,9):(175,1),(0,-11,10):(174,2)} + +def native_kernel(data,lower,drop_layer=None): + def upper(time,p): + x,y,z=p;n=R-z;ell=time-n;rad=abs(x)+abs(y) + if ell<0 or rad>ell or (ell-rad)%2:return 0 + need(ell+rad<=BUDGET,'upper signed budget coverage') + return data[ell,x,y][n-DELAY] + def baseline(time,p): + up=upper(time,p);terms=[] + for source,payload in zip(CONTROLS,PAYLOADS): + delta=tuple(abs(a-b) for a,b in zip(source,p));term=0 + if sum(delta)<=time: + need(sum(delta)==time,'old lower wave only first front') + if not ((delta[0]&delta[1])|(delta[0]&delta[2])|(delta[1]&delta[2])): + term=hp(payload,time) + terms.append(term) + if time==R-1 and p in ENTRIES: + need(up==0 and not xor(terms[1:]),'W entry has no upper/selector background') + j,ell=ENTRIES[p] + if drop_layer=='all' or ell==drop_layer:return terms[0] + return lower[j,76+ell] + return up^xor(terms) + target=(0,0,10) + old={p:baseline(R-2,p) for p in ball(10,target)} + now={p:baseline(R-1,p) for p in ball(11,target)} + records={} + for offset in range(11): + new={p:old[p]^hb(xor(now[q] for q in adjacent(p))) for p in ball(10-offset,target)} + records[offset]=new;old,now=now,new + return tuple(item(now[target],i) for i in range(512)),records + +def geometry(source_root): + q=(0,S,78);source=(0,S,S+156);deadline=L+1 + need(distance(source,q)==deadline,'N current first arrival') + need(distance(source,(0,S,77))==L+2 and distance(source,(0,S,76))==L+3,'old q9/q8 preserved causally') + old_sources=json.loads((source_root/'parallel_v3/history_control/SOURCE-GEOMETRY.json').read_text())['sources'] + need(len(old_sources)==1479,'compiled source inventory') + need(all(distance(tuple(row['position']),q)>=deadline for row in old_sources),'new zero pins retain old source exceptions') + need(all(tuple(row['position'])!=source for row in old_sources),'new source does not overwrite compiled source') + ports=((0,T,0),(0,0,-8*T),(T,DELAY,0),(-T,DELAY,0),(4*T,DELAY,0),(0,S,0),(12*R,0,0),(48*L,0,0)) + times=(T,T,S,S,S,S,R,L) + ready=list(zip(ports,times))+[((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,S,-68),R),((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)]+[((-48*L,0,0),L)] + need(all(distance(source,c)>r for c,r in ready),'all previous ready prescriptions exclude N') + directions=((0,-1,0),(0,0,-1),(0,1,0),(0,1,0),(0,1,0),(0,1,0),(-1,0,0),(1,0,0)) + slacks=[] + for port,direction,start in zip(ports,directions,times): + axis=next(i for i,d in enumerate(direction) if d) + lo,hi=start+1,deadline + ideal=(q[axis]-port[axis])*direction[axis] + closest=max(lo,min(hi,ideal)) + point=tuple(port[i]+closest*direction[i] for i in range(3)) + slack=distance(point,q)-deadline + need(slack>0,'entire bank interval excludes new ready cone') + need(point!=source,'new source not a reserved bank coordinate') + slacks.append(slack) + need(min(slacks)==1,'bank boundary control') + need(distance((-(L+1),S,76),q)==deadline+2,'F8 factor preserved') + need(distance((-(L+1),S,78),q)==deadline,'F10 optional factor replaced') + need(min(distance(source,p) for p in ports)>L,'old public prefix N-causal exclusion') + entries=[] + for time,radius in ((R-2,10),(R-1,11)): + for p in ball(radius,(0,0,10)): + absolute=(p[0],S+p[1],68+p[2]) + if distance((0,-76,76),absolute)<=time:entries.append((time-R,p)) + need(set(entries)=={(-1,p) for p in ENTRIES},'exact three W-front entries and no old-slice entry') + upper_absolute=[(x,S+y,S+136-z) for x,y,z in UPPER] + lower_absolute=[(x,S+y,68+z) for x,y,z in CONTROLS]+[(0,-76,76)] + separation=min(distance(a,b) for a in upper_absolute for b in lower_absolute) + need(separation>=2*R,'upper/lower pre-collision separation') + half=(256*L+64*T)//2 + need(half>50*L+1,'retained remote/source horizon does not wrap') + return {'compiled_sources':1479,'earlier_ready_regions':len(ready),'bank_ray_intervals':8, + 'minimum_bank_slack':1,'W_front_entries':len(entries),'upper_lower_minimum_separation_minus_2R':separation-2*R} + +def audit_table(table): + def at(x,u,my,mr,a,b,n):return table[INDEX[x,u,my,mr,a,b,n]] + permutations=0 + for context in product((0,1),repeat=6): + need(sorted(at(*context,n) for n in range(8))==list(range(8)),'own N permutation') + permutations+=1 + padpairs=0 + for x,u,my,n in product((0,1),(0,1),(0,1),range(8)): + need((at(x,u,my,0,1,0,n)^at(x,u,my,1,1,0,n))&2==2,'old mR toggles current B') + padpairs+=1 + contexts=[k for k in product((0,1),repeat=5) if (k[3],k[4])!=(0,1)] + common=None;sizes=[];derivatives=0 + for u,my,mr,a,b in contexts: + pairs=set() + for n in range(8): + pair=(at(u^a,u,my,mr,a,b,n),at(1^u^a,u,my,mr,a,b,n)) + need((pair[0]>>2)^(pair[1]>>2)==u,'unknown sign derivative in A') + derivatives+=1 + if pair[0]!=pair[1]:pairs.add(pair) + common=pairs if common is None else common&pairs;sizes.append(len(common)) + need(not common and sizes[2]==0,'arbitrary known-context common-pair intersection') + lost=0 + for my,mr,n in product((0,1),(0,1),range(8)): + zero=at(1,0,my,mr,1,1,n);one=at(0,0,my,mr,1,1,n) + need(zero==one==(4,2,1,0,3,5,6,7)[n],'current-only accepted sign-loss branch') + lost+=1 + family_survivors=[] + for extended in (False,True): + survivors=[];count=0 + for B,C,V in product(range(8) if extended else (0,),range(8),range(8)): + codes={(s,c):set() for s,c in product((0,1),repeat=2)} + for u,my,mr,a,b in contexts: + for s,c in product((0,1),repeat=2): + n=(B if u^a else 0)^(C if a^b else 0)^(V if c else 0) + codes[s,c].add(at(s^u^a,u,my,mr,a,b,n)) + if all(len(v)==1 for v in codes.values()) and all(codes[0,c]!=codes[1,c] for c in (0,1)): + survivors.append((B,C,V)) + count+=1 + need(not survivors,'affine family survivor countercontrol') + family_survivors.append({'tested':count,'common_injective_s_codes':len(survivors)}) + pad_rows=sum(at(x,u,my,mr,a,b,n)!=at(x,u,0,0,a,b,n) for x,u,my,mr,a,b,n in ROWS) + accepted_pad_rows=sum(at(x,u,my,mr,a,b,n)!=at(x,u,0,0,a,b,n) + for x,u,my,mr,a,b,n in ROWS if (a,b)!=(0,1)) + need(pad_rows==144 and accepted_pad_rows==80,'retained pad dependency counts') + return {'own_N_permutation_contexts':permutations,'pad_flip_pairs':padpairs, + 'accepted_derivative_pairs':derivatives,'accepted_sign_loss_pairs':lost, + 'known_contexts':len(contexts),'pair_intersection_prefix_sizes':sizes, + 'affine_families':family_survivors,'pad_sensitive_rows':pad_rows, + 'accepted_pad_sensitive_rows':accepted_pad_rows} + +def main(): + here=Path(__file__).resolve().parent + default_source=next((p for p in here.parents if (p/'parallel_v3').is_dir()),here.parent/'checkpoint_v11') + default_author=here.parent if here.parent.name=='native_seed_v12' else here.parent/'native_seed_v12' + parser=argparse.ArgumentParser() + parser.add_argument('--source-root',type=Path,default=default_source) + parser.add_argument('--author-root',type=Path,default=default_author) + args=parser.parse_args() + pins=json.loads((here/'INPUT-HASHES.json').read_text()) + for name,digest in pins['author_sha256'].items(): + need(hashlib.sha256((args.author_root/name).read_bytes()).hexdigest()==digest,'pinned author '+name) + for name,digest in pins['inherited_sha256'].items(): + need(hashlib.sha256((args.source_root/name).read_bytes()).hexdigest()==digest,'pinned inherited '+name) + for value in range(8): + state=value + for _ in range(12):state=HSCALAR[state] + need(state==value,'native H exponent twelve') + packed=value*LOW + need(hb(packed)==HSCALAR[value]*LOW,'independent interleaved bit lanes') + need(DELAY%(12*840**20)==0,'actual upper period divisibility') + need(DELAY%(384*840**3)==0,'actual lower period divisibility') + geo=geometry(args.source_root) + data,upper_checks=strip() + need(all(values==data[ell,x,-y] for (ell,x,y),values in data.items()),'unfolded y reflection control') + broken_x=sum(values[0]!=data[ell,-x,y][0] for (ell,x,y),values in data.items()) + need(broken_x>0,'incorrect x reflection mutant is detectable') + lower,lower_checks,scalar_controls=lower_front() + table,records=native_kernel(data,lower) + retained=json.loads((args.author_root/'result.json').read_text()) + encoded=''.join(format(value,'x') for value in table) + need(encoded==retained['q10_table_hex'],'all512 independently derived native q10 rows') + source_table=json.loads((args.source_root/'branch_v10/local-controller/symmetric-result.json').read_text())['q9_table_hex'] + preserved=0 + for i,(x,u,my,mr,a,b,n) in enumerate(ROWS): + need(item(records[0][0,0,0],i)==4*x+2+(x^u),'old qY') + need(item(records[7][0,0,7],i)==x^u,'old q7') + need(item(records[8][0,0,8],i)==2*(x^u),'old q8') + index=0 + for value,size in zip((x,u,my,mr,a,b,4,5,7),(2,2,2,2,2,2,8,8,8)):index=index*size+value + need(item(records[9][0,0,9],i)==int(source_table[index],16),'old q9 including raw failures') + preserved+=1 + damaged,_=native_kernel(data,lower,drop_layer=2) + third_layer_mismatches=sum(a!=b for a,b in zip(table,damaged)) + need(third_layer_mismatches==0 and lower[174,78]==0,'third entry vanishes in this candidate') + no_w,_=native_kernel(data,lower,drop_layer='all') + all_w_mismatches=sum(a!=b for a,b in zip(table,no_w)) + need(all_w_mismatches>0,'coupled W background omission is nonvacuous') + facts=audit_table(table) + need(facts['pair_intersection_prefix_sizes']==retained['pad_aware_single_N']['pair_intersection_sizes_after_context'], + 'retained arbitrary known-seed intersection') + print(json.dumps({'schema':'oi-native-seed-v12-review-1','author_commit':'1c91d3158e13eaa69c7fd1710932c9995d0288d7', + 'verdict':'ACCEPT_WITHIN_SCOPE','blockers':[],'all_controls_pass':True, + 'signed_upper_nodes':len(data),'independent_upper_packed_native_checks':upper_checks, + 'upper_distinct_parameter_assignments_per_packed_check':64, + 'broken_x_reflection_witnesses':broken_x,'actual_gap76_lower_front_checks':lower_checks, + 'small_full_3D_lower_controls':scalar_controls,'independent_q10_rows':len(table), + 'q10_table_sha256':hashlib.sha256(encoded.encode()).hexdigest(), + 'old_qY_q7_q8_q9_preserved_rows':preserved,'third_lower_layer_omission_q10_mismatches':third_layer_mismatches, + 'all_coupled_W_entries_omission_q10_mismatches':all_w_mismatches, + 'geometry':geo,'table_obstructions':facts, + 'complete_public_history_equality_claimed':False,'native_instrument_or_full_boundary_no_go_claimed':False}, + indent=2,sort_keys=True)) + +if __name__=='__main__':main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/review/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/review/result.json new file mode 100644 index 000000000..208b39cf6 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_seed_v12/review/result.json @@ -0,0 +1,73 @@ +{ + "actual_gap76_lower_front_checks": 531, + "all_controls_pass": true, + "all_coupled_W_entries_omission_q10_mismatches": 416, + "author_commit": "1c91d3158e13eaa69c7fd1710932c9995d0288d7", + "blockers": [], + "broken_x_reflection_witnesses": 10, + "complete_public_history_equality_claimed": false, + "geometry": { + "W_front_entries": 3, + "bank_ray_intervals": 8, + "compiled_sources": 1479, + "earlier_ready_regions": 24, + "minimum_bank_slack": 1, + "upper_lower_minimum_separation_minus_2R": 0 + }, + "independent_q10_rows": 512, + "independent_upper_packed_native_checks": 1782, + "native_instrument_or_full_boundary_no_go_claimed": false, + "old_qY_q7_q8_q9_preserved_rows": 512, + "q10_table_sha256": "8bc1462854ce5fb80c18a48e8208037eb6bd613aa5babb28721e186aec3387f9", + "schema": "oi-native-seed-v12-review-1", + "signed_upper_nodes": 891, + "small_full_3D_lower_controls": 30, + "table_obstructions": { + "accepted_derivative_pairs": 192, + "accepted_pad_sensitive_rows": 80, + "accepted_sign_loss_pairs": 32, + "affine_families": [ + { + "common_injective_s_codes": 0, + "tested": 64 + }, + { + "common_injective_s_codes": 0, + "tested": 512 + } + ], + "known_contexts": 24, + "own_N_permutation_contexts": 64, + "pad_flip_pairs": 64, + "pad_sensitive_rows": 144, + "pair_intersection_prefix_sizes": [ + 8, + 8, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + }, + "third_lower_layer_omission_q10_mismatches": 0, + "upper_distinct_parameter_assignments_per_packed_check": 64, + "verdict": "ACCEPT_WITHIN_SCOPE" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/PLAN.md new file mode 100644 index 000000000..e952faaca --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/PLAN.md @@ -0,0 +1,43 @@ +# Actual-phase native continuation probe + +Research only. Source: #910 at +`71d291297d0a662cbb9377ab48eef7aa4b839e77`, canonical local snapshot +`checkpoint_v10/`. Preserve all previously reviewed modules. + +## Productivity test and fixed first probe + +A result is productive if it gives a native next-stage witness on the actual +prepared family, or exposes a specific missing physical boundary condition +that prevents the present preparation theorem from determining that stage. +Restating that the post-read decoder is nonpositive is insufficient. + +First audit the one-tick outward continuation q10=(0,S,78) at L+1 and the +one-tick return to q8=(0,S,76) at L+1. Identify the original-time dependence +cones, actual source readiness and possible first-arrival free sources. +Do not insert a cold state or treat an arbitrary q8 intervention as physical. +Retain every actual source and previous/current slice. + +If the retained readiness does not determine either next port, exhibit an +initial source outside every declared ready region, disjoint from old source +positions and public banks, which changes that next read while leaving the +entire retained public history and selected prepared phase through L +unchanged. Check the unique-first-front native dependence as a bijection +with exact eight-state controls in nonzero backgrounds. This is a boundary +contract result, not an obstruction to an explicitly extended original-time +apparatus. State the needed extra initial shell precisely. + +If readiness already determines the queried port, or after a clearly stated +original-time extension, inspect its exact dirty output and test whether +the retained X can be isolated without unknown-input preloading. Do not +broaden to a search campaign. Any proposed extension must first pass source +and public-bank geometry checks. Full success/failure and whole-port record +laws remain mandatory before calling a reusable instrument. + +Checks precede verdict: inherited source hashes; exact constants and phase +parity; ready/source/bank exclusions; arbitrary-background first-front +permutation controls; a control demonstrating the source arrives at the +stated first tick; normal and optimized byte-identical replay. + +No new physical premise, observer-access rule, F/E designation, merge, +dispatch or general equivalence conclusion is adopted. Root publishes +scoped forward checkpoints on the existing draft branch. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/PROVENANCE.json new file mode 100644 index 000000000..4ebdcdd34 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/PROVENANCE.json @@ -0,0 +1,12 @@ +{ + "inputs": { + "herald_v10/REPORT.md": "03180f4fd0eed30064a0e25873719c8c93ce57a876fecaba3c51374da50ae5b4", + "history_v9/REPORT.md": "2125314d49e14abdac8b62ddbaa1f89f1c0ec693dd14744fca4b79a0b38c6997", + "parallel_v3/history_control/REPORT.md": "aad8d9adf833784f6f32f74528df0eeb1dd71424bfb95a073a2521dec57719ea", + "parallel_v3/history_control/SOURCE-GEOMETRY.json": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d", + "phase_joint_v10/REPORT.md": "a4d4be43a9229166e57555daa637f3bf82b7407443746e4ff10515d2f017ba47", + "reset_v9/REPORT.md": "019f392c4b91f278248874e8d726894b19b10f55e540a8d10f82c11ce4cb2ecb" + }, + "source_commit": "71d291297d0a662cbb9377ab48eef7aa4b839e77", + "source_handoff_sha256": "cd33f48a0b9f722af2e39451309ca0383477a6847d1deb73adf59c6adec5832c" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/REPORT.md new file mode 100644 index 000000000..8689e03ac --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/REPORT.md @@ -0,0 +1,127 @@ +# One-tick native continuation requires an initial boundary contract + +Research result on #910's retained preparation at +`71d291297d0a662cbb9377ab48eef7aa4b839e77`. Separate-author review pending. +This probe finds a concrete missing boundary condition for naive one-tick +reuse. It does not construct a native X instrument or exclude a fuller one. + +## Result and scope + +Keep T=185, P=12*840^185, S=P+185, R=S+68 and L=R+9. The retained success +phase has previous q8=(0,Y,0) at (0,S,76) and current q9=(0,X,Rsign) at +(0,S,77), plus the remote Z and herald fields. Every old source, bank and +ready region is retained. Rsign denotes the carrier sign, distinct from the +time constant R. + +The selected phase and the complete permitted public record through L do +not determine the next current q8 or outward q10=(0,S,78) at L+1 when the +outside-ready initial complement is allowed to vary. Two actual +original-time current cells witness this: + +| Initial cell | Next target | Own arrival | Distance to q9 | Cross-target arrival | +| --- | --- | --- | --- | --- | +| f8=(-(L+1),S,76) | q8 | L+1 | L+2 | L+3 | +| f10=(-(L+1),S,78) | q10 | L+1 | L+2 | L+3 | + +Both cells are outside all 24 declared current ready regions, hence also +outside their smaller previous ready regions. Neither coincides with any +of the 1,479 inherited finite sources, the local W/Q/C/G/J/K sources, any +of the seven old public-bank rays, or the old/new remote source programs. +Every named ready-center and every old/new public receiver is at distance +strictly greater than L. Thus changing either initial triple changes no +permitted earlier public record, terminal flag, selected carrier field or +success/failure mass through L. This includes the new herald at +48L. + +For f8 and f10, the minimum distances to the old public ports are L+77 +and L+79, respectively, attained at ports 3 and 5. The slacks over L are +77 and 79. These are literal cone exclusions; no noise-bank +compensation is used to conceal an earlier record change. The no-wrap +torus already specified by herald_v10 remains sufficient. + +For each fixed choice of all other initial variables, varying the two +current triples gives **all 64 ordered pairs of next q8/q10 triples**, +while retaining the same earlier record and prepared selected phase. +If these two nuisance triples are independent uniform initial resources +conditional on the remaining initial state, the two next cells are jointly +uniform conditional on that remainder and the entire earlier record: + + Pr(U_(L+1)(q8)=v, U_(L+1)(q10)=w | remainder) = 1/64. + +They are consequently independent of the earlier X when that is conditioned +on, and neither current triple by itself supplies the required X-eigenstate +carrier. The previous q9 slice still retains X in the full second-order +phase; this result does not show that X has been erased or cannot be reused +with a more complete native interface. + +The outside-ready qualification matters. The source preparation specifies +ready balls and bank/source exceptions. The history proof fixes every +initial variable outside its bank as a complement and remains valid for any +complement distribution (history_v9/REPORT.md, “Joint chronological +permutation proof”). The earlier sidecar report explicitly distinguishes +the independent-fair nuisance complement from a modified zero complement. +If a narrower application fixes f8 and f10, for example by a globally sparse +zero prescription, this particular variation is unavailable. Its additional +initial constraint must be retained in the next-stage contract. No result +here contradicts a calculation on that narrower initial family. + +## Native proof in arbitrary background + +For a source f and target p at axial distance n=L+1, there is one shortest +native path. At step j on that path, the old local term is two ticks too +early to depend on the source triple. Among the six current predecessor +neighbors, only the immediately previous path vertex can depend on it; +the other five have distance j+1 from f but time j-1. The response therefore +has the form + + w -> old_j XOR H(w XOR other_j), + +where old_j and other_j are fixed after the other initial variables are +fixed. XOR translations and H are permutations on all eight triples. +Composition proves the exact eight-to-eight response at any finite n, +including n=L+1. It permits dense nonlinear backgrounds and does not use +isolated-pulse superposition or a large-period reduction. Since f8 cannot +reach q10 by L+1, and f10 cannot reach q8, the two response maps are separate. +Their product is the stated 64-to-64 bijection. The argument works for all +earlier success and failure branches because the new sources affect none +of their records before the cut. + +## Initial extension and retained bank + +A next-stage calculation must either retain these outside-ready degrees of +freedom in its full incoming measure, or specify additional original-time +preparation. To determine both queried cells it suffices to specify current +initial B_(L+1)(q8) union B_(L+1)(q10), and previous initial B_L(q8) union +B_L(q10), preserving existing source and bank exceptions. These cover the +old q9 balls. They are dependencies to specify, not a claim that the actual +next output becomes clean or independent after adding zero pins. + +A return-q8 blank extension must not overwrite M1=(0,-1,0), whose distance +to q8 is L, or M2=(0,-2,0), whose distance is L+1. Both are reserved old +noise-bank cells. M1 is in the opposite spacetime component; geometric +inclusion is not an actual influence witness, and no leak is claimed from +an isolated-front calculation. The outward q10 ball excludes M1 and M2, +at distances L+2 and L+3, respectively. This favors checking an explicitly +prepared outward continuation before attempting a return through the used +bank. It supplies no right to erase either bank or splice in late readiness. + +## Controls and replay + +The first positive-x candidate is rejected: (L+1,S,76) has distance L-478 +from old public port4, so it would alter the retained noise history. The +negative-x witnesses above pass all actual geometry checks. + +Independent scalar full-three-dimensional recursion checks the axial +response at distances1..6 in three different two-slice backgrounds, +including nonzero nonlinear backgrounds. All 18 families, 504 path/output +comparisons and 3,024 fixed-background comparisons pass. There are 88 +nonvacuum responses different from H^n, showing the controls do not silently +assume a blank path. The huge-time conclusion is the written unique-path +proof, not extrapolation from these small checks. Exact geometry checks +cover 2,958 source comparisons, 48 ready exclusions and the complete bank +ray intervals via coordinate inequalities. + +Run `python3 checks.py --source-root ` and compare its +stdout with result.json; repeat with `python3 -O`. Normal and optimized +outputs are byte-identical. PROVENANCE.json pins the immutable inherited +source records. No external validation, Lean certificate, native reset, +unrestricted depth, full A1 equivalence or A2 error guarantee is claimed. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/SHA256SUMS new file mode 100644 index 000000000..2c3405ce1 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/SHA256SUMS @@ -0,0 +1,5 @@ +cc09f423c1807edb912cd22a02c5c4c30a7d426866043873369c9824a5df3aac PLAN.md +eba6a93de9f784649da61f778eec6be4626df61f23c05fc71981c9ebace17deb REPORT.md +ea76d8dbacc503fedba69083494c975187a4bf0c9fc9cd9d717454337bb63acf PROVENANCE.json +262f70bf45a49d2e95e66082c65c5ca4f5335cbce71d126f713f4148e2c8ad1e checks.py +de03b82b0c4b9c16f979c547c92a6946e401a05dc6b989bfb5436b3de879b5b9 result.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/checks.py new file mode 100644 index 000000000..cc09066c0 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/checks.py @@ -0,0 +1,246 @@ +"""Native first-front continuation boundary audit; exact standard-library checks.""" +import argparse +from functools import lru_cache +from itertools import product +from pathlib import Path +import hashlib +import json + + +def require(ok, message): + if not ok: + raise RuntimeError(message) + + +def distance(p, q): + return sum(abs(x-y) for x, y in zip(p, q)) + + +def h(q): + a, b, d = q + return b, d, a ^ (b & d) + + +def xor(*qs): + out = [0, 0, 0] + for q in qs: + for i in range(3): + out[i] ^= q[i] + return tuple(out) + + +TRIPLES = tuple(product((0, 1), repeat=3)) +ZERO = (0, 0, 0) + + +def small_native_controls(): + """Full three-dimensional recursion, compared to a path permutation. + + Both initial slices have nonzero deterministic background. The source + current triple is the only varying variable. Its displacement is uniquely + axial, so every other input to the critical update is source-independent. + """ + cases = direct_rows = prefix_rows = nonlinear_rows = 0 + tables = [] + for n, seed in product(range(1, 7), range(3)): + source = (n, 0, 0) + + def initial(t, p): + if seed == 0: + return ZERO + a, b, c = p + # Deliberately nonlinear spatial patterns on both initial slices. + q = (a*a + 3*b + b*c + 7*c*c + 11*seed + 13*t) + return tuple(((q + (j+1)*(a*b + c + seed*t + j)) >> j) & 1 + for j in range(3)) + + @lru_cache(None) + def direct(t, p, code): + if t in (-1, 0): + return TRIPLES[code] if t == 0 and p == source else initial(t, p) + ns = [] + for axis in range(3): + for sign in (-1, 1): + q = list(p) + q[axis] += sign + ns.append(direct(t-1, tuple(q), code)) + return xor(direct(t-2, p, code), h(xor(*ns))) + + path = list(TRIPLES) + for j in range(1, n+1): + p = (n-j, 0, 0) + old = direct(j-2, p, 0) + others = [] + for axis in range(3): + for sign in (-1, 1): + if axis == 0 and sign == 1: + continue + q = list(p) + q[axis] += sign + others.append((j-1, tuple(q))) + fixed = xor(*(direct(t, q, 0) for t, q in others)) + # Independent direct native checks that the translated backgrounds + # are actually independent of the varying source at this first front. + for code in range(8): + require(direct(j-2, p, code) == old, 'old term source-independent') + require(all(direct(t, q, code) == direct(t, q, 0) + for t, q in others), 'five neighbors source-independent') + prefix_rows += 6 + path = [xor(old, h(xor(q, fixed))) for q in path] + require(len(set(path)) == 8, 'path step is a permutation') + for code in range(8): + require(path[code] == direct(j, p, code), 'path/full native equality') + direct_rows += 1 + actual = [direct(n, (0, 0, 0), code) for code in range(8)] + require(actual == path and len(set(actual)) == 8, 'complete terminal permutation') + for code in range(8): + q = TRIPLES[code] + for _ in range(n): + q = h(q) + if actual[code] != q: + nonlinear_rows += 1 + tables.append({'distance': n, 'background': seed, + 'output_codes': [TRIPLES.index(q) for q in actual]}) + cases += 1 + direct.cache_clear() + require(nonlinear_rows > 0, 'nonzero background changes the response') + # H itself is checked through the truth-table encoding, separately from + # the full direct recursion and its first-front factorization. + require([TRIPLES.index(h(q)) for q in TRIPLES] == [0, 2, 4, 7, 1, 3, 5, 6], + 'native H truth table') + return {'full_3d_world_families': cases, 'path_direct_rows': direct_rows, + 'fixed_background_comparisons': prefix_rows, + 'nonvacuum_response_differences': nonlinear_rows, + 'tables': tables} + + +def geometry(root): + T = 185 + P = 12 * 840**185 + S = T + P + R = S + 68 + L = R + 9 + q8, q9, q10 = (0, S, 76), (0, S, 77), (0, S, 78) + f8, f10 = (-(L+1), S, 76), (-(L+1), S, 78) + old_ports = [(0, T, 0), (0, 0, -8*T), (T, P, 0), (-T, P, 0), + (4*T, P, 0), (0, S, 0), (12*R, 0, 0)] + deadlines = [T, T, S, S, S, S, R] + cG, cZ = (48*L, 0, 0), (-48*L, 0, 0) + ready = list(zip(old_ports, deadlines)) + ready += [((T, 0, 0), T), ((-T, 0, 0), T), ((4*T, 0, 0), T)] + ready += [((0, S, -68), R), ((-12*R, 0, 0), R)] + ready += [((0, S, 68+k), R+k) for k in range(10)] + ready += [(cG, L), (cZ, L)] + current_sources = [(0, -76, 76), (0, S, S+136), (0, S, S+150), + (0, S, S+152), (0, S, S+154), + (1, S, S+153), (-1, S, S+153)] + gp = root/'parallel_v3/history_control/SOURCE-GEOMETRY.json' + geo = json.loads(gp.read_text()) + require(len(geo['sources']) == 1479, 'source geometry inventory') + rows = [] + for name, f, own, other in [('f8', f8, q8, q10), ('f10', f10, q10, q8)]: + require(distance(f, own) == L+1, 'first native next-port arrival') + require(distance(f, q9) == L+2, 'selected current phase unaffected') + require(distance(f, other) == L+3, 'two free sources have no cross effect') + require(all(distance(f, c) > radius for c, radius in ready), + 'outside every retained current/previous ready region') + require(all(distance(f, c) > L for c, radius in ready), + 'even all named ready-center records through L unaffected') + require(all(distance(f, p) > L for p in old_ports+[cG, cZ]), + 'whole observed old/new port history through L unaffected') + require(all(f != tuple(e['position']) for e in geo['sources']), + 'no inherited 1479 source overwritten') + require(f not in current_sources, 'no controller source overwritten') + # The six local bank rays have fixed x=0,+T,-T,4T. The old + # remote herald ray has x=12R-t>0 for every t<=L. + require(f[0] not in (0, T, -T, 4*T) and 12*R-L > 0, + 'all seven bank families excluded for their complete intervals') + # Inherited remote preparation/source blocks lie within radius R + # of +/-12R and new remote source/ready regions within L of +/-48L. + require(all(distance(f, c) > radius + for c, radius in [((12*R, 0, 0), R), ((-12*R, 0, 0), R), + (cG, L), (cZ, L)]), + 'old/new remote source-program regions excluded') + require((sum(f) - ((L+1)+sum(own))) % 2 == 0, + 'same native spacetime parity') + rows.append({'source': name, + 'source_formula': '(-(L+1),S,'+str(own[2])+')', + 'own_next_port_distance_minus_L': distance(f, own)-L, + 'q9_distance_minus_L': distance(f, q9)-L, + 'other_next_port_distance_minus_L': distance(f, other)-L, + 'public_port_distance_slacks_above_L': + [{'P_coefficient': (distance(f, p)-L)//P, + 'constant': (distance(f, p)-L)%P} + for p in old_ports+[cG, cZ]], + 'ready_region_count': len(ready)}) + # Negative control for careless axis selection: the corresponding +x + # source has reached the old port4 noise stream before the claimed cut. + plus8 = (L+1, S, 76) + require(distance(plus8, old_ports[4])-L == -478, + 'positive-x source fails complete-history exclusion') + # A return-side blank extension would consume an existing used bank. + # Geometry alone is not an influence proof: M1 is opposite parity and + # an isolated first-front cancellation can also occur for M2. + require(distance((0, -1, 0), q8)-L == 0, 'M1 in return shell') + require(distance((0, -2, 0), q8)-L == 1, 'M2 in return shell') + require(distance((0, -1, 0), q10)-L == 2 and + distance((0, -2, 0), q10)-L == 3, 'outward shell preserves both bank points') + # The torus used by the retained herald is larger than all differences + # relevant to these new sources and their complete <=L+1 light cones. + torus = 256*L+64*T+1 + require(2*(49*L+2*(L+1)+S+8*T+156) < torus, 'conservative no-wrap bound') + require(all(distance(f, p) > L for f in (f8, f10) + for p in (q8, q9, q10)), 'all three present ports unchanged') + return {'target_tick': 'L+1', 'sources': rows, + 'source_inventory_rows': 2*len(geo['sources']), + 'ready_exclusion_rows': 2*len(ready), + 'positive_x_countercontrol_port4_distance_minus_L': -478, + 'new_current_shell': 'B_(L+1)(q8) union B_(L+1)(q10)', + 'new_previous_shell': 'B_L(q8) union B_L(q10)', + 'return_shell_reserved_bank_exceptions': [ + {'bank_point': '(0,-1,0)', 'q8_distance_minus_L': 0}, + {'bank_point': '(0,-2,0)', 'q8_distance_minus_L': 1}], + 'old_current_pins_retained': True, + 'old_previous_pins_retained': True, + 'torus_unchanged': True} + + +def main(): + ap = argparse.ArgumentParser() + default_root = Path(__file__).resolve().parent.parent + if not (default_root/'parallel_v3').exists(): + default_root = default_root/'checkpoint_v10' + ap.add_argument('--source-root', type=Path, + default=default_root) + args = ap.parse_args() + here = Path(__file__).resolve().parent + prov = json.loads((here/'PROVENANCE.json').read_text()) + for path, expected in prov['inputs'].items(): + require(hashlib.sha256((args.source_root/path).read_bytes()).hexdigest() == expected, + 'source hash '+path) + native = small_native_controls() + geo = geometry(args.source_root) + # A pair of independent uniform initial triples through two separate + # permutations remains jointly uniform. This does not posit any late seed. + pair_outputs = {(a, b) for a, b in product(TRIPLES, repeat=2)} + require(len(pair_outputs) == 64, 'independent two-port support') + result = {'schema': 'oi.native-continuation-boundary.v11', + 'source_commit': prov['source_commit'], + 'checks': {'input_hashes': len(prov['inputs']), + 'native_first_front': native, 'geometry': geo, + 'two_free_triple_joint_support': len(pair_outputs)}, + 'conditional_law': { + 'assumption': 'f8,f10 current initial triples independently uniform conditional on all other initial variables', + 'conditioning': 'all other initial variables; prior full public history and selected phase through L are unaffected', + 'next_q8_q10_joint_cell_probability': '1/64', + 'all_success_failure_branches_preserved': True}, + 'verdict': {'selected_phase_autonomous_next_port_contract': 'fails for unrestricted outside-ready complement', + 'independent_fair_complement_next_q8_q10': 'jointly uniform', + 'globally_zero_outside_ready_complement': 'additional initial restriction; not tested as native reset', + 'native_reset': 'not_constructed', + 'general_reusable_instrument': 'not_excluded'}} + print(json.dumps(result, sort_keys=True, separators=(',', ':'))) + + +if __name__ == '__main__': + main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/result.json new file mode 100644 index 000000000..39c8d021e --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/result.json @@ -0,0 +1 @@ +{"checks":{"geometry":{"new_current_shell":"B_(L+1)(q8) union B_(L+1)(q10)","new_previous_shell":"B_L(q8) union B_L(q10)","old_current_pins_retained":true,"old_previous_pins_retained":true,"positive_x_countercontrol_port4_distance_minus_L":-478,"ready_exclusion_rows":48,"return_shell_reserved_bank_exceptions":[{"bank_point":"(0,-1,0)","q8_distance_minus_L":0},{"bank_point":"(0,-2,0)","q8_distance_minus_L":1}],"source_inventory_rows":2958,"sources":[{"other_next_port_distance_minus_L":3,"own_next_port_distance_minus_L":1,"public_port_distance_slacks_above_L":[{"P_coefficient":1,"constant":77},{"P_coefficient":1,"constant":1742},{"P_coefficient":0,"constant":447},{"P_coefficient":0,"constant":77},{"P_coefficient":0,"constant":1002},{"P_coefficient":0,"constant":77},{"P_coefficient":13,"constant":3298},{"P_coefficient":49,"constant":12838},{"P_coefficient":47,"constant":12312}],"q9_distance_minus_L":2,"ready_region_count":24,"source":"f8","source_formula":"(-(L+1),S,76)"},{"other_next_port_distance_minus_L":3,"own_next_port_distance_minus_L":1,"public_port_distance_slacks_above_L":[{"P_coefficient":1,"constant":79},{"P_coefficient":1,"constant":1744},{"P_coefficient":0,"constant":449},{"P_coefficient":0,"constant":79},{"P_coefficient":0,"constant":1004},{"P_coefficient":0,"constant":79},{"P_coefficient":13,"constant":3300},{"P_coefficient":49,"constant":12840},{"P_coefficient":47,"constant":12314}],"q9_distance_minus_L":2,"ready_region_count":24,"source":"f10","source_formula":"(-(L+1),S,78)"}],"target_tick":"L+1","torus_unchanged":true},"input_hashes":6,"native_first_front":{"fixed_background_comparisons":3024,"full_3d_world_families":18,"nonvacuum_response_differences":88,"path_direct_rows":504,"tables":[{"background":0,"distance":1,"output_codes":[0,2,4,7,1,3,5,6]},{"background":1,"distance":1,"output_codes":[4,6,1,2,5,7,0,3]},{"background":2,"distance":1,"output_codes":[0,3,5,7,1,2,4,6]},{"background":0,"distance":2,"output_codes":[0,4,1,6,2,7,3,5]},{"background":1,"distance":2,"output_codes":[4,3,7,2,6,0,5,1]},{"background":2,"distance":2,"output_codes":[5,3,7,2,6,1,4,0]},{"background":0,"distance":3,"output_codes":[0,1,2,5,4,6,7,3]},{"background":1,"distance":3,"output_codes":[1,2,6,0,5,4,3,7]},{"background":2,"distance":3,"output_codes":[7,2,3,0,1,6,4,5]},{"background":0,"distance":4,"output_codes":[0,2,4,3,1,5,6,7]},{"background":1,"distance":4,"output_codes":[1,7,0,2,4,5,6,3]},{"background":2,"distance":4,"output_codes":[3,1,7,5,2,6,4,0]},{"background":0,"distance":5,"output_codes":[0,4,1,7,2,3,5,6]},{"background":1,"distance":5,"output_codes":[7,3,2,1,5,4,6,0]},{"background":2,"distance":5,"output_codes":[3,2,5,0,4,1,6,7]},{"background":0,"distance":6,"output_codes":[0,1,2,6,4,7,3,5]},{"background":1,"distance":6,"output_codes":[5,7,6,4,1,3,2,0]},{"background":2,"distance":6,"output_codes":[6,1,7,0,3,2,5,4]}]},"two_free_triple_joint_support":64},"conditional_law":{"all_success_failure_branches_preserved":true,"assumption":"f8,f10 current initial triples independently uniform conditional on all other initial variables","conditioning":"all other initial variables; prior full public history and selected phase through L are unaffected","next_q8_q10_joint_cell_probability":"1/64"},"schema":"oi.native-continuation-boundary.v11","source_commit":"71d291297d0a662cbb9377ab48eef7aa4b839e77","verdict":{"general_reusable_instrument":"not_excluded","globally_zero_outside_ready_complement":"additional initial restriction; not tested as native reset","independent_fair_complement_next_q8_q10":"jointly uniform","native_reset":"not_constructed","selected_phase_autonomous_next_port_contract":"fails for unrestricted outside-ready complement"}} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/review/INPUT-HASHES.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/review/INPUT-HASHES.json new file mode 100644 index 000000000..a3a92ae6d --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/review/INPUT-HASHES.json @@ -0,0 +1,17 @@ +{ + "author_files": { + "PLAN.md": "cc09f423c1807edb912cd22a02c5c4c30a7d426866043873369c9824a5df3aac", + "PROVENANCE.json": "ea76d8dbacc503fedba69083494c975187a4bf0c9fc9cd9d717454337bb63acf", + "REPORT.md": "eba6a93de9f784649da61f778eec6be4626df61f23c05fc71981c9ebace17deb", + "SHA256SUMS": "003cd7b35d3a8ee6e1fc109a9f5653942102ab3f2f02a346781174b2297179a6", + "checks.py": "262f70bf45a49d2e95e66082c65c5ca4f5335cbce71d126f713f4148e2c8ad1e", + "result.json": "de03b82b0c4b9c16f979c547c92a6946e401a05dc6b989bfb5436b3de879b5b9" + }, + "author_revision": "7ec3f8234a148cadb58ebc6c8212b3b0233acabe", + "forward_change": "REPORT slack wording and SHA256SUMS only; checker, result and provenance unchanged", + "initial_review_revision": "a3e8b7a201aae9f7ac6babf93173188f87ed8bb8", + "source_files": { + "parallel_v3/history_control/SOURCE-GEOMETRY.json": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d" + }, + "source_revision": "71d291297d0a662cbb9377ab48eef7aa4b839e77" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/review/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/review/REPORT.md new file mode 100644 index 000000000..8043e5097 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/review/REPORT.md @@ -0,0 +1,91 @@ +# Separate-author review of the next-tick boundary obstruction + +Revised author checkpoint: `7ec3f8234a148cadb58ebc6c8212b3b0233acabe`, +`native_v11/` on #910. **Accept the scoped mathematical result.** The sole +wording correction found at initial revision `a3e8b7a201aae9f7ac6babf93173188f87ed8bb8` +is applied in this forward author revision; the construction, checker, +structured result and conditional law are unchanged. No outstanding blocker remains. This is separate-agent internal review, +not external validation or a native reusable-instrument construction. + +## Independent reconstruction + +The two proposed original-time current sites have negative x coordinate +`-(L+1)`, with the retained y=S and z=76 or 78. For their respective targets, +the own, q9 and cross-target distances are exactly L+1, L+2 and L+3. +Each can first affect its own target at L+1, while the earlier selected +two-slice phase and the whole specified public record through L remain fixed. + +The new checker imports no author engine. Independent exact integer geometry +verifies all 48 ready-ball exclusions, 18 old/new public-cone exclusions and +2,958 comparisons with the retained 1,479-source inventory. The free sites +avoid the seven old bank rays by their x coordinates over the complete +intervals. They also avoid the outward new-herald bank through 2L. Their +source locations are outside the old/new remote source balls, avoiding +enormous indexed program lists by whole-ball exclusion. The retained torus +is sufficiently large for the indicated integer lifts. + +The positive-x candidate fails the old port4 exclusion by 478 ticks, as the +author reports. Negative-x minimum public distance-minus-L slacks are 77 +and 79. Source/target spacetime parity agrees, so these are active first-front +variations rather than unused parity-sector changes. + +## Native dependence and the complete joint law + +At every step on a unique straight axial shortest path, the old-local term +and the other five neighbors are too early to depend on the source. For a +fixed complement, the own response is a composition of H with XOR +translations, hence a permutation on all eight triples in any dirty +background. The other source has cross-target distance two ticks longer; +neither own map depends on that source by the deadline. The product map +therefore has 64 distinct ordered outputs for every fixed complement. + +This proof establishes the astronomical-time response without a period +shortcut. The independent checker supplements it with 640 full 3D native +worlds across five distances and two nonzero two-slice backgrounds. Each +family has 64 joint outputs, with 160 conditional own-port permutation checks, +and all 640 earlier selected-phase rows are invariant. These checks evaluate +the two-source coupled lattice directly rather than replacing the joint +test by an abstract Cartesian product. + +Uniform independent initial witness triples consequently give the stated +conditional probability 1/64. The conclusion survives conditioning on every +earlier record and flag because those are unaffected complement functions. +It applies on success and failure, and does not erase the previous q9 state +or restart a failed offered carrier. The current queried pair alone loses +dependence on the prior X under this particular fair nuisance prior. + +The global-zero qualification is essential. A preparation fixing the two +witness sites does not permit this variation. The result excludes an +autonomous next-port contract based only on the selected phase for the wider +admissible complement family. It does not exclude a full physical-boundary +contract, a specified narrower initial measure, an extended original-time +apparatus or a different native reusable reset. + +## Return-shell exceptions and correction + +The current initial radius-(L+1) return ball contains reserved M1 and M2 at +distances L and L+1. The outward ball excludes them at L+2 and L+3. M1 is +in the opposite spacetime component for this queried return, so inclusion +does not imply influence. For isolated M2, the first-front Lucas coefficient +also vanishes: `(S+2) & 76` is nonzero. A coupled dirty-background claim +would still require a calculation. Neither bank point can simply be zeroed. + +The initial author report called L+77 and L+79 the tight public-port +"slacks". They are minimum distances. The slacks over the horizon L are 77 +and 79, as the author's structured geometry and this independent computation +agreed. The revised author now uses the correct minimum-distance wording. +Only REPORT.md and its manifest digest changed. The correction is accepted; +no blocking finding remains. + +The witness preserves the earlier public record only through L. Later old +port backgrounds can change. An independently supplied later noise bank can +mask those changes in distribution, but it does not make same-bank physical +records pointwise equal across the witness configurations. + +## Replay and provenance + +Run `python3 checks.py` and `python3 -O checks.py`, with optional +`--source-root` and `--author-root` for a sparse checkout. Both outputs match +result.json byte for byte; all checks use explicit exceptions. INPUT-HASHES.json +pins the six author files and retained geometry input. SHA256SUMS covers the +five review files. No author source is modified by this review. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/review/SHA256SUMS new file mode 100644 index 000000000..96feeb848 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/review/SHA256SUMS @@ -0,0 +1,4 @@ +3753d5ca7ea01a3f43585a66ec9ca1d9552adcc21c48dfc2e9efcf2b015a09cf REPORT.md +1cf2f098d8623da9b9c4e55ecb33d37287e5805088ac48966866af9c351da345 checks.py +56be950e5b386c0916375f18f6d5ba25fc33a4c96a2225af90e8c2326c24c80f result.json +20a1f48e176cd560ae0ad9ced7b14b3f3808d284236b321eddc6dbde9c53e665 INPUT-HASHES.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/review/checks.py new file mode 100644 index 000000000..af9561356 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/review/checks.py @@ -0,0 +1,168 @@ +"""Independent original-time boundary review; no author engine imports.""" +import argparse +from functools import lru_cache +import hashlib +from itertools import product +import json +from pathlib import Path + + +def need(ok, text): + if not ok: + raise RuntimeError(text) + + +def dist(a, b): + return sum(abs(x-y) for x,y in zip(a,b)) + + +def h(v): + a, b, d = (v >> 2) & 1, (v >> 1) & 1, v & 1 + return (b << 2) | (d << 1) | (a ^ (b & d)) + + +def raw_evaluator(sources, seed): + shifts = ((1,0,0),(-1,0,0),(0,1,0),(0,-1,0),(0,0,1),(0,0,-1)) + + @lru_cache(None) + def value(t, p): + if t == 0 and p in sources: + return sources[p] + if t in (0,-1): + x,y,z = p + return ((3*x*x+7*y+5*z*z+11*t+seed) ^ (x*y+9*z+seed*t)) & 7 + neighbors = 0 + for delta in shifts: + neighbors ^= value(t-1,tuple(a+b for a,b in zip(p,delta))) + return value(t-2,p) ^ h(neighbors) + return value + + +def native_pair(): + worlds = phase_rows = permutations = 0 + for n in range(1,6): + for seed in (0,5): + p,q = (0,0,0),(0,0,2) + f,g = (-n,0,0),(-n,0,2) + records = {} + pair_images = set() + for a,b in product(range(8),repeat=2): + run = raw_evaluator({f:a,g:b},seed) + # Every exposed selected field at the earlier cut is fixed. + before = tuple(run(n-1,r) for r in (p,(0,0,1),q)) + before += (run(n-2,p),run(n-2,(0,0,1))) + records[a,b] = (run(n,p),run(n,q),before) + pair_images.add(records[a,b][:2]) + worlds += 1 + need(len({v[2] for v in records.values()}) == 1,'earlier phase changes') + phase_rows += len(records) + need(len(pair_images) == 64,'full native two-target law not bijective') + for b in range(8): + need(len({records[a,b][0] for a in range(8)}) == 8,'own f response') + need(len({records[a,b][1] for a in range(8)}) == 1,'f cross response') + permutations += 1 + for a in range(8): + need(len({records[a,b][1] for b in range(8)}) == 8,'own g response') + need(len({records[a,b][0] for b in range(8)}) == 1,'g cross response') + permutations += 1 + return {'full_native_worlds':worlds,'prior_phase_rows':phase_rows, + 'conditional_own_permutations':permutations,'joint_outputs_each_family':64} + + +def actual_geometry(root): + T=185 + P=12*840**185 + S=P+T + R=S+68 + L=R+9 + p=[(0,T,0),(0,0,-8*T),(T,P,0),(-T,P,0),(4*T,P,0),(0,S,0), + (12*R,0,0),(48*L,0,0)] + a=[T,T,S,S,S,S,R,L] + ready=list(zip(p,a)) + ready += [((T,0,0),T),((-T,0,0),T),((4*T,0,0),T), + ((0,S,-68),R),((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)] + ready += [((-48*L,0,0),L)] + need(len(ready)==24,'ready inventory') + inventory=json.loads((root/'parallel_v3/history_control/SOURCE-GEOMETRY.json').read_text()) + upstream=[tuple(row['position']) for row in inventory['sources']] + need(len(upstream)==1479,'source inventory') + local=[(0,0,0),(0,-76,76),(0,S,S+136),(0,S,S+150),(0,S,S+152), + (0,S,S+154),(1,S,S+153),(-1,S,S+153)] + targets=[(0,S,76),(0,S,77),(0,S,78)] + points=[(-(L+1),S,76),(-(L+1),S,78)] + endpoint_distances=[] + excluded_ready = public_cones = inventory_rows = 0 + for f,own,other in [(points[0],targets[0],targets[2]), + (points[1],targets[2],targets[0])]: + endpoint_distances.append([dist(f,own)-L,dist(f,targets[1])-L,dist(f,other)-L]) + need(endpoint_distances[-1]==[1,2,3],'wrong target geometry') + for center,radius in ready: + need(dist(f,center)>radius,'overwritten ready ball') + excluded_ready += 1 + for receiver in p+[(-48*L,0,0)]: + need(dist(f,receiver)>L,'earlier full public history changed') + public_cones += 1 + need(f not in upstream and f not in local,'initial source alias') + inventory_rows += len(upstream) + # All old seven rays through L, or the extended eight rays through2L, + # have x in these fixed planes or a strictly positive interval. + need(f[0] not in (0,T,-T,4*T),'old bank plane') + need(12*R-2*L>0 and 48*L+L+1>0,'remote bank interval') + for center,radius in [((12*R,0,0),R),((-12*R,0,0),R), + ((48*L,0,0),L),((-48*L,0,0),L)]: + need(dist(f,center)>radius,'remote program overlap') + need((sum(f)-sum(own)-(L+1))%2==0,'spacetime component mismatch') + need(dist((L+1,S,76),p[4])-L==-478,'positive-direction countercontrol') + need(min(dist(points[0],z)-L for z in p)==77,'f8 minimum public slack') + need(min(dist(points[1],z)-L for z in p)==79,'f10 minimum public slack') + m1,m2=(0,-1,0),(0,-2,0) + need([dist(m1,targets[0])-L,dist(m2,targets[0])-L]==[0,1],'return bank shell') + need([dist(m1,targets[2])-L,dist(m2,targets[2])-L]==[2,3],'outward bank shell') + need((sum(m1)-sum(targets[0])-(L+1))%2==1,'M1 opposite component') + need((S+2)&76 !=0,'M2 isolated Lucas parity cancellation') + # Cone containment: two new dependency balls include all old q9 pins. + need(L+1>=L+dist(targets[0],targets[1]),'current q9 containment') + need(L>=L-1+dist(targets[0],targets[1]),'previous q9 containment') + need(2*(51*L+S+8*T+200)<256*L+64*T+1,'no-wrap envelope') + return {'ready_exclusions':excluded_ready,'public_cone_exclusions':public_cones, + 'inherited_source_comparisons':inventory_rows, + 'endpoint_distance_offsets':endpoint_distances, + 'min_public_port_slacks':[77,79], + 'positive_x_countercontrol_slack':-478, + 'return_bank_current_shell_offsets':[0,1], + 'outward_bank_offsets':[2,3], + 'M1_opposite_component':True,'M2_isolated_front_coefficient_zero':True, + 'globally_fixed_complement_excludes_variation':True} + + +def find_root(here,name): + for p in [here.parent,here.parent.parent,here.parent/'checkpoint_v10']: + if (p/name).exists(): + return p + raise RuntimeError('specify --source-root or --author-root') + + +def main(): + here=Path(__file__).resolve().parent + parser=argparse.ArgumentParser() + parser.add_argument('--source-root',type=Path) + parser.add_argument('--author-root',type=Path) + args=parser.parse_args() + source=args.source_root or find_root(here,'parallel_v3') + author=args.author_root or (here.parent if (here.parent/'PROVENANCE.json').exists() + else here.parent/'native_v11') + pins=json.loads((here/'INPUT-HASHES.json').read_text()) + for prefix,entries in [(author,pins['author_files']),(source,pins['source_files'])]: + for name,expected in entries.items(): + need(hashlib.sha256((prefix/name).read_bytes()).hexdigest()==expected, + 'input hash '+name) + result={'schema':'oi.native-v11.review.v1','author_revision':pins['author_revision'], + 'verdict':'ACCEPT_SCOPED_BOUNDARY_OBSTRUCTION', + 'geometry':actual_geometry(source),'native_controls':native_pair(), + 'claim_boundary':'Outside-ready variation only; specified complement laws or full boundary contracts are not excluded.'} + print(json.dumps(result,indent=2,sort_keys=True)) + + +if __name__=='__main__': + main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/review/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/review/result.json new file mode 100644 index 000000000..a0952575a --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_v11/review/result.json @@ -0,0 +1,45 @@ +{ + "author_revision": "7ec3f8234a148cadb58ebc6c8212b3b0233acabe", + "claim_boundary": "Outside-ready variation only; specified complement laws or full boundary contracts are not excluded.", + "geometry": { + "M1_opposite_component": true, + "M2_isolated_front_coefficient_zero": true, + "endpoint_distance_offsets": [ + [ + 1, + 2, + 3 + ], + [ + 1, + 2, + 3 + ] + ], + "globally_fixed_complement_excludes_variation": true, + "inherited_source_comparisons": 2958, + "min_public_port_slacks": [ + 77, + 79 + ], + "outward_bank_offsets": [ + 2, + 3 + ], + "positive_x_countercontrol_slack": -478, + "public_cone_exclusions": 18, + "ready_exclusions": 48, + "return_bank_current_shell_offsets": [ + 0, + 1 + ] + }, + "native_controls": { + "conditional_own_permutations": 160, + "full_native_worlds": 640, + "joint_outputs_each_family": 64, + "prior_phase_rows": 640 + }, + "schema": "oi.native-v11.review.v1", + "verdict": "ACCEPT_SCOPED_BOUNDARY_OBSTRUCTION" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/PLAN.md new file mode 100644 index 000000000..65e0b8e02 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/PLAN.md @@ -0,0 +1,202 @@ +# Native read v15: one native tick from q10 into the declared whole-V read + +Research only, 25 October 2026. Base #910 is +`bef79f6f3daec0b734a7d9c6a9423ed634852818`. This plan is committed before +the checker is written. No access rule, preparation change or physical +premise is adopted by it. + +Before writing this plan the author read the handoff, the v12-v14 reports +and the v13 geometry code, and estimated by hand that one of the key cells +defined below lies outside the declared ready regions. The checks below +replace that estimate; the decision rule does not depend on it. + +## Inputs (all at the base commit, pinned by SHA-256) + +| File | Role | SHA-256 | +| --- | --- | --- | +| `native_route_v13/result.json` | 4096-row q10 table at L+1 | `762b9799db7448c4eecf2c994c8c68ff94e1be83a7f6884b4a36385505df5a02` | +| `native_route_v13/review/result.json` | separate-engine table digest | `73780def8505d68d1967936116a88a49d471eb32aeb83d528ff3cd41025ae6e4` | +| `native_decode_v14/result.json` | fewest-seed q10.A=s law and counts | `3172e7d013c09cdcdf638a7ace68e0eff98bb3cd0411e8666b76a8226ad59034` | +| `branch_v10/local-controller/symmetric-result.json` | old q9 table at L | `d8e7c1f5841192165beefb3fe35b069cc14cc93f2faa2bd68619aa7748b3db2f` | +| `parallel_v3/history_control/SOURCE-GEOMETRY.json` | 1479 inherited sources | `2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d` | + +The q10 table string must hash to +`b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc`. +No earlier engine is imported; all inputs are read as data. + +## Which reads are permitted + +No access rule is adopted on this branch (CURRENT-HANDOFF.md:6-7). The +reads that the retained candidate contracts declare, and which this plan +uses as the permitted public record through L+2, are: + +1. the full raw triples of the eight old public ports at every tick + (history_v9/REPORT.md, "Fixed dynamics, ports and bank"; herald port + c_G=(48L,0,0) from herald_v10), extended through L+2 by Native A + (native_x_v12/REPORT.md section 4); +2. the old whole-q9 terminal record at L, (0,s,r_old) on accepted rows + (shared_v12/INTERFACE-CONTRACT.md:38-40; native_x_v12 section 4); +3. Native A's single whole-V read, V=U_(L+2)(q9), the whole triple + (CURRENT-HANDOFF.md:30; native_x_v12 section 4, which does not + authorize continuous q9 access or any later read). + +q10 at any tick, and every previous-slice neighbor of q9, are private. +Read 3 is the only declared read that q10 at L+1 reaches in one native +tick: q10 is a neighbor of q9, and V is the next q9 value. + +This plan applies read 3 to the native_route_v13 source geometry, which is +not Native A: it pins F10, has no F9 resource and keeps its own readiness +extension B_(L+1)(q10). The combination is a test case, not an adopted +contract. + +## Question and candidate stage + +Candidate stage: the unchanged native update at q9 at L+2, + + V = p XOR H(Sigma), Sigma = XOR of the six q9 neighbors at L+1, + p = U_L(q9), H(A,B,D) = (B,D,A XOR BD), + +with q10 at L+1 taken from the retained table. No new source, readiness, +gate or read is introduced. + +Question: does the permitted whole-V read deliver the content of q10.A, +and what does the complete permitted public record through L+2 then +reveal, under the native_route_v13 source contract, whose initial variables +outside its ready regions, sources and banks form a complement of +unrestricted law (native_v11/REPORT.md, "outside-ready qualification"; +history_v9 joint chronological proof)? + +## Key cells + +A key for neighbor w=q9+e of q9 is a current-slice initial cell that +reaches w by L+1 and reaches neither q9 by L nor any other neighbor of q9 +by L+1. Lemma (to be checked by brute force for small n in control K2): +the only such cells are the six axial cells c_e = q9 + (L+2)e. Proof +sketch: such a cell c is at distance L+1 from w and at least L+1 from q9, +so |c-q9|=L+2; if c-q9 had a nonzero component along e' other than e, c +would be at distance L+1 from q9+e'. + +For each e other than +z (the q10 direction), classify c_e at actual scale +with exact integers as + +- PINNED: inside one of the current ready balls of the native_route_v13 + contract (the 24 inherited balls and B_(L+1)(q10)), or equal to a + declared source position (the 1479 inherited sources, O, W, E, N, the + upper Q/C/G/J/K cluster, the three pure-B selector sources, the F10 pin, + the z source); +- BANK: on a reserved bank ray of one of the eight ports at an index t with + deadline < t <= 2L; +- FREE: otherwise, i.e. a complement variable. + +A FREE key must also be at distance greater than L+2 from every public +port and from c_Z=(-48L,0,0), so that no other permitted record through +L+2 depends on it. + +## Native statement under test + +For a FREE key c_e and every fixed value of all other initial variables, +the neighbor q9+e at L+1 is a permutation of the key triple (unique axial +first arrival in arbitrary background, native_v11/REPORT.md, "Native proof +in arbitrary background"), and p, q10 and the other four neighbors are +unchanged (finite speed). Hence V is a permutation of the key triple. +Controls K3 and K4 check this on complete small native worlds. + +## Preregistered decision rule + +1. If any control below fails, print VOID with the failing label and exit + with status 2. No verdict text is written. +2. If at least one non-q10 key is FREE and passes the receiver check: + **NEGATIVE_FOR_CONSTRUCTION**. The generated verdict states, for the FREE + keys found: (i) no nonconstant fixed readout of the whole V equals s for + every complement value; (ii) under any complement law in which a FREE key + is uniform conditional on all other initial variables, V is uniform and + independent of every other initial variable and of every other permitted + record through L+2, so the read carries no information about q10.A; + (iii) delivery through this read would need that key known, which means + pinning the key cell (a preparation change) or reading q9+e at L+1 (an + access change); this plan adopts neither and stops there. +3. If no non-q10 key is FREE: **NOT_DECIDED_BY_THIS_PLAN**. Delivery and + leakage then depend on the full native V kernel and its joint law with + the public ports, which this plan does not compute. + +HOLDS_WITHIN_SCOPE is not reachable under this plan: it would require the +V kernel of outcome 3 and a joint public-record audit, both outside it. A +BANK key is not FREE for this rule; it is reported. + +## Controls and countercontrols (each shown able to fail) + +- **K1 input pins.** Five file hashes; the recomputed table digest equals + the recorded one and the review's; 4096 table rows, 32768 q9 rows. +- **K2 key lemma.** For n=2..7, brute force over all cells within distance + n+2 of q9 in a small lattice: the set of keys (distance n to exactly one + non-q9 neighbor at time n, all others and q9 at time n-1 unreached) is + exactly the six axial cells. Countercontrol: some non-axial cell at + distance n+1 reaches two or more neighbors; it must be found. +- **K3 native key permutation.** Complete second-order native rule, dirty + deterministic backgrounds in both initial slices, n=1..4, three seeds, + every one of the six axial keys. Two evaluators (bit-parallel lanes and + scalar recursion) must agree on V, q9 at n-1 and all neighbors at n. V + takes all 8 values over the key, and q9 at n-1 and the five other + neighbors do not change. Countercontrol: the off-axis cell (-n,0,-1) + changes at least two neighbors; this must be observed. +- **K4 delivery detector.** An operand triple at the q10 key (0,0,n+1) and + the m key (-(n+1),0,0). With the m key held fixed, V separates the + operands (positive: total variation 1 between two operand values); with + the m key uniform, the V laws for all operands are equal (null: total + variation 0). Both must hold in every small world. +- **K5 geometry anchors.** The classifier must return PINNED for the q10 + axial cell (inside B_(L+1)(q10)), for E, N and the F10 position; FREE for + F8=(-(L+1),S,76), which native_seed_v12 keeps outside the ready cone; + BANK for (0,-2,0) on port 0's ray. +- **K6 preserved results.** E and N avoid every inherited ready ball (as + native_route_v13 checks); old q9 at L equals (0,s,s XOR a XOR b) on all + accepted rows (native_seed_v12); the v14 fewest-seed law + [1,5,1,4,1,5] gives q10.A=s on all 48 accepted rows and v14 records 1456 + q10.A laws; the radius-(L+2) q9 shell meets 8 reserved bank coordinates, + 4 at distance exactly L+2 in the active component (native_x_v12); the + Native A f9 cell (-(L+2),S,77) has public-port slack 79 over L + (native_x_v12). + +Mutants of the checker, kept with their outputs, must make each of K1-K6 +fail on its own label. + +## Invariant to checkpoint table (section A.41) + +| Invariant asserted | Checkpoint | +| --- | --- | +| Inputs are the retained bytes | K1 | +| Only axial cells are private keys | K2 (brute force); written proof above | +| A FREE key permutes V and nothing else permitted | K3; receiver check in stage G | +| The detector can return both outcomes | K4 | +| The classifier agrees with declared pins, frees and banks | K5 | +| Earlier results are reproduced, not contradicted | K6 | +| Output is deterministic | result.json byte-identical under -I -B and -I -B -O | + +## Diagnostics outside the rule + +- Read algebra: given p, Sigma -> V is a bijection with V.A=Sigma.B, + V.B=p.B XOR Sigma.D, V.D=p.D XOR Sigma.A XOR Sigma.B*Sigma.D. So the read + exposes the whole triple q10 XOR (other neighbors), never q10.A alone; on + accepted rows with q10.A=s, q10.A XOR p.D = a XOR b. +- For the fewest-seed law, the number of distinct whole q10 codes for each + s across the 24 contexts. +- The bank coordinates within distance L+2 of q9, their port indices, and + which q9 neighbors each reaches at L+1: the coordinates a readiness + extension pinning the q9 shell could not pin. + +## What this would and would not establish + +A NEGATIVE outcome would establish, for this one-tick stage, this source +geometry and this declared read only, that the read is a one-time-pad +ciphertext keyed by a complement cell, so that the transport of s into +q10.A is not made accessible by it. It would not exclude multi-tick +stages, other reads, other layouts, a readiness extension or a different +complement law, Native A's own geometry, or OI generally, and it would not +establish privacy under a complement law in which the key is not uniform. +No HOLDS outcome is possible here. A1 and A2 targets are not addressed. + +## Execution + +Standard library, exact integers, `python3 -I -B checks.py` and +`python3 -I -B -O checks.py` byte-identical to result.json. No dispatch, +push, merge, F/E designation or #885 write. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/PROVENANCE.json new file mode 100644 index 000000000..ef378268b --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/PROVENANCE.json @@ -0,0 +1,62 @@ +{ + "schema": "native-vread-v15-provenance-1", + "repository": "amaybaum/incompleteness", + "guiding_pr": 910, + "plan_base": "bef79f6f3daec0b734a7d9c6a9423ed634852818", + "plan_commit": "ead2c38842222786c68551484b708c19f29c83ab", + "plan_sha256": "e24c16322a06d35aab6465c40e1dfcf5c08b6a3d8e4ffed93c0d3afb73a7c985", + "inputs": { + "native_route_v13/result.json": "762b9799db7448c4eecf2c994c8c68ff94e1be83a7f6884b4a36385505df5a02", + "native_route_v13/review/result.json": "73780def8505d68d1967936116a88a49d471eb32aeb83d528ff3cd41025ae6e4", + "native_decode_v14/result.json": "3172e7d013c09cdcdf638a7ace68e0eff98bb3cd0411e8666b76a8226ad59034", + "branch_v10/local-controller/symmetric-result.json": "d8e7c1f5841192165beefb3fe35b069cc14cc93f2faa2bd68619aa7748b3db2f", + "parallel_v3/history_control/SOURCE-GEOMETRY.json": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d", + "native_route_v13/checks.py": "8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856" + }, + "q10_table_sha256": "b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc", + "input_roles": "Retained q10 table at L+1 (native_route_v13 author 753fe4f69392ca940754489468e8c8235f6aa583) and its separate-engine digest; v14 fewest-seed q10.A law and law count; old q9 table at L; inherited source inventory. All read as data; no earlier engine imported. native_route_v13/checks.py is parsed with ast and its geometry() ready list, q10 extension, ports, deadlines and bank directions are evaluated as literals (no code executed) and compared with this checker's list.", + "cited_written_results": [ + "native_v11/REPORT.md, Native proof in arbitrary background: unique axial first arrival is a permutation of the source triple", + "native_x_v12/REPORT.md section 4: permitted public past through L+2 and the proposed single whole-V read", + "history_v9/REPORT.md, Fixed dynamics, ports and bank: port records exposed at every tick; bank rays", + "shared_v12/INTERFACE-CONTRACT.md: old whole-q9 terminal X record at L", + "native_route_v13/checks.py geometry(): the ready-ball and source inventory used for classification" + ], + "post_plan_changes": [ + "K2 and the reach predicate include the parity condition of the second-order rule (a current-slice cell influences (t,w) only when t-dist is even); the first implementation omitted it and K2 failed on the inactive axial cells at distance n, before any verdict was produced.", + "K3/K4 use two background families, SHA-256 and low-degree polynomial; the first implementation used the polynomial family only, under which the off-axis countercontrol cell changed only one neighbor for even n. The K3 countercontrol is implemented as observed in at least one SHA-256 world, with per-world counts reported for both families.", + "K5 adds anchors for a B_(L+1)(q10) interior cell and for the receiver threshold; K6 adds Native A's f8 public slack 77.", + "Mutant K6_q9_row_order swaps a and b; an x/u swap was an equivalent mutant because q9 at L depends on x XOR u." + ], + "scope": "One native tick from q10 at L+1 into Native A's declared whole-V read, in the native_route_v13 source geometry; not a native gate, acceptance predicate, carrier law, access rule, preparation change or equivalence claim.", + "first_execution_commit": "2c43d615a440c2b837dc19f410759d01a47e5362", + "post_review_changes": [ + "Separate review of 2c43d615 (accept with nits) was addressed in the commit after it; the outcome is unchanged.", + "REPORT Result paragraph: privacy and independence statements made conditional on a uniform free key; under the contract alone only (i) holds.", + "Verdict generator: counts the unseen free keys correctly; lists inference from the permitted port record as a third route for a key that reaches a port; states the port-coupling caveat only for the case with no uniform unseen key; plural handling; drops the redundant 'nonconstant'; no longer lists q10 at L+1 among permitted records; adds the previous-slice keys to the necessary conditions.", + "K5: anchors for E, N, F10 and the q10 axial cell compare the full (status, reason) pair; the reviewer's mutant K5_E_moved is in the mutant set and is caught.", + "K5: native_route_v13/checks.py pinned by hash; its geometry() lists are read as data and must equal this checker's ready list, q10 extension, ports, deadlines and bank directions. Ready margins of every key are recorded; the -x, +y and -y keys sit at margin 2 from the q9 L-ball and B_(L+1)(q10).", + "K3 countercontrol strengthened to at least one SHA-256 world for every n. With the earlier relaxed rule (one world in all), the polynomial family alone would also have passed (6 of 12 worlds), so the SHA-256 family was not what made the relaxed rule pass.", + "K3: scalar and bit-parallel evaluators compared on all 8 key values (2304 comparisons, previously 432 on 3 values).", + "K2: key lemma also checked by dependency-set propagation through the rule for n=1..6 over both initial slices, compared cell by cell with the cone formula.", + "Previous-slice keys q9+(L+1)e classified with previous ready radius r-1 and checked in 144 small native worlds; -x, +y, -y free, +x and -z pinned, +z inside the previous q10 ball. They enter verdict (iii) only; the outcome rule keeps the preregistered current-slice keys.", + "Seven further mutants (28 in all).", + "Re-check of 74541cf1 (accept with nits) addressed in the commit after it; the outcome is unchanged.", + "R1: the generated verdict, Scope and not_established state that the classification and outcome are conditional on the declared ready-cone, source and bank inventory shared with native_route_v13 being complete (no undeclared readiness, preparation or correlation; no record in the lineage with a deadline beyond L+1, the largest declared ready radius used), and that part (ii) is conditional in addition on a uniform free key.", + "R2: local_sources() adds junction_v4's fourth selector (4T,P+S,0) and opposite reset pulse (0,S,-S-136), with strict anchors; no key or other anchor classification changes.", + "R3: the native_route_v13 geometry reader fails closed if a tracked list (target, deadline, ports, deadlines, ready, directions) is assigned, augmented, aliased, used as a loop or comprehension target, deleted, declared global or nonlocal, or receives a method call anywhere other than the top-level statements it reads. Eight mutated in-memory copies of the pinned file (nested +=, append, extend, insert, subscript assignment, extra +=, loop target, alias) are refused in the checker itself; the pinned-hash check is unchanged.", + "R4: REPORT cites junction_v4's inherited independent-uniform complement prior, which satisfies the hypothesis of (ii).", + "Four further mutants (32 in all).", + "Check of 96bfc56c (accept with nits) addressed in the commit after it, wording only; no checker logic changed and the outcome is unchanged.", + "N1: the R3 entry above overstates the reader. What is enforced: outside the top-level statements it reads, the reader refuses the listed write forms on a tracked name (assignment, augmented assignment, direct aliases, loop or comprehension targets, deletion, walrus, method calls on a tracked name, parameters and scope declarations). Indirect writes (list.extend(ready, ...), a container alias, a lambda argument) are not detected; the hash pin of native_route_v13/checks.py is what guarantees that the list read is the list used. REPORT and the checker docstring now say this.", + "N2: the generated verdict says the junction_v4 prior supplies the uniform key 'where that inherited prior is retained'; this changes verdict.statement and so result.json, and nothing else in it.", + "N3: the Scope paragraph is re-wrapped." + ], + "second_review_fix_commit_parent": "74541cf18bfd9e986039cf86d5cf4bf2152b3105", + "result_json_sha256_by_revision": { + "2c43d615a440c2b837dc19f410759d01a47e5362": "9bf28d326caeb0b38d4d2de31ddbda592696fba2fb90cd7f49aa8b101422d314", + "74541cf18bfd9e986039cf86d5cf4bf2152b3105": "110ea9c3539407a8bc217c474cf160709d1c955d549c3682cd295e541384c66d", + "96bfc56c8d4edc9d332d15b470976a28f528dfe7": "71c594e628cf61f463fec400273481ba51e517e745a3058a82f80aeed8cf9914", + "this revision": "56509ae6c7dcc40bbbcdd3a62c8b73bf03e0c5ed20052a226eb63bdda1606d04" + } +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/REPORT.md new file mode 100644 index 000000000..e85cbc511 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/REPORT.md @@ -0,0 +1,275 @@ +# One native tick from q10 into the declared whole-V read + +Research checkpoint, 25 October 2026. Plan committed before computation at +`ead2c38842222786c68551484b708c19f29c83ab` on base +`bef79f6f3daec0b734a7d9c6a9423ed634852818`; first execution +`2c43d615a440c2b837dc19f410759d01a47e5362`. The separate review of that +execution, and its re-check of `74541cf18bfd9e986039cf86d5cf4bf2152b3105`, +accepted with nits; this revision addresses them and the outcome is +unchanged. Inputs are the retained native_route_v13 q10 table +(digest `b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc`) +and its geometry code, the v14 fixed-readout result, the old q9 table at L +and the inherited source inventory, all hash-pinned and read as data. + +## Result + +Preregistered outcome: **NEGATIVE_FOR_CONSTRUCTION**. The verdict text +generated by `checks.py` from its measurements is: + +> 2 of the 5 non-q10 current-slice key cells of q9 at L+2 are free +> complement variables under the native_route_v13 contract that no +> permitted record through L+2 depends on: -x key (-(L+2),S,77) (nearest +> public receiver at distance L+79), +y key (0,S+(L+2),77) (nearest public +> receiver at distance L+79). For each such key and every fixed value of +> all other initial variables, V=U_(L+2)(q9) is a permutation of the key +> triple, while the old q9 record and every other permitted record through +> L+2 do not depend on it (nor does the private cell q10 at L+1). (i) No +> fixed readout of the whole V equals s for every complement value. (ii) +> If such a key is uniform given all other initial variables, V is uniform +> and independent of q10.A, s, the seeds and every other permitted record +> through L+2: under a uniform free key the read is harmless and carries +> no operand. (iii) Delivery through this read needs the 2 unseen free +> keys known, by pinning (a preparation change) or by reading the q9 +> neighbors at L+1 (an access change). The -y key (0,S-(L+2),77) is also +> free and reaches a public port by L+2 (port 0 at distance 341); it must +> also be determined, by pinning, by reading the q9 neighbor at L+1, or +> from the permitted port record, which is not computed here. If an unseen +> free key is uniform, V is independent of that port record by (ii); +> otherwise their joint law is not computed. The previous-slice -x key +> (-(L+1),S,77), +y key (0,S+(L+1),77), -y key (0,S-(L+1),77) are also +> free; each must also be determined in one of these ways. These are +> necessary conditions, not sufficient: shared complement cells also enter +> V. Neither change is adopted; the test stops there. The classification, +> and so the outcome, is conditional on the declared ready-cone, source +> and bank inventory shared with native_route_v13 being complete: no +> undeclared readiness, preparation or correlation, and no record in the +> lineage with a deadline beyond L+1 (the largest declared ready radius +> used). Part (ii) is conditional in addition on a uniform free key, which +> the inherited independent-uniform complement prior of junction_v4 +> supplies where that inherited prior is retained. + +Under the native_route_v13 contract alone, whose complement law is +unrestricted, what is established is (i): V is a permutation of each free +key for every fixed remainder, so no fixed readout of V delivers s for +every complement value. Under a uniform free key the read is moreover a +one-time pad of the six-neighbor sum: it is then harmless, and its +harmlessness has the same cause as its emptiness. The one-tick native +stage from q10 into the only declared read it reaches does not make the +q10.A transport accessible. + +## Permitted reads and the choice of stage + +No access rule is adopted on the branch (CURRENT-HANDOFF.md:6-7). The +reads declared by the retained candidate contracts through L+2 are the +eight public ports' full raw triples at every tick (history_v9/REPORT.md, +"Fixed dynamics, ports and bank"; herald port from herald_v10; extended +through L+2 in native_x_v12/REPORT.md section 4), the old whole-q9 +terminal record (0,s,r_old) at L (shared_v12/INTERFACE-CONTRACT.md:38-40) +and Native A's single whole-V read at L+2 (CURRENT-HANDOFF.md:30; +native_x_v12 section 4). q10 at every tick and all previous-slice +neighbors of q9 are private. + +q10 is a neighbor of q9, so the unchanged update + + V = p XOR H(Sigma), Sigma = XOR of the six q9 neighbors at L+1, + +is the cheapest native stage that moves q10's content into a declared read: +one tick, no new source, gate or read. The next nearest declared receiver +is public port 5 at (0,S,0), 78 steps from q10 (ports 2 and 3 are 448 +away), so a route there takes at least 78 native ticks, through further +complement cells and port 5's own bank noise; it is a separate test. +The test applies Native A's declared read to the native_route_v13 source +geometry, which is not Native A (F10 pinned, no F9 resource). The +combination is a test case; neither contract is adopted. + +## Key cells and the native permutation + +A key of neighbor q9+e is an initial cell that influences q9+e at L+1 and +influences neither q9 at L nor another neighbor at L+1. Propagating +dependency sets through the rule (K2) gives exactly the current-slice +cells q9+(L+2)e and the previous-slice cells q9+(L+1)e; the propagated +cones equal the parity cone formula cell by cell. + +| Direction | Current key | Classification (ready margin) | Nearest public receiver | +| --- | --- | --- | --- | +| +x | ((L+2),S,77) | pinned, port 4's ball, radius S (-399) | port 4 at L-476 | +| -x | (-(L+2),S,77) | free complement (2) | port 3 at L+79 | +| +y | (0,S+(L+2),77) | free complement (2) | port 5 at L+79 | +| -y | (0,S-(L+2),77)=(0,-79,77) | free complement (2) | port 0 at 341 | +| +z | (0,S,77+(L+2)) | pinned: this is N | (operand direction) | +| -z | (0,S,77-(L+2)) | pinned, ball about (0,S,-68), radius R (-134) | port 5 at L-75 | + +The margin 2 of the three free keys is to the q9 L-ball and to +B_(L+1)(q10). The previous-slice keys, with previous ready radius r-1, +are free for -x, +y and -y (margin 2; the -y one reaches port 0 at 340), +pinned for +x and -z, and inside the previous q10 ball for +z. The outcome +rule uses the current-slice keys, as preregistered; the previous-slice +keys enter the necessary conditions of (iii). + +The ready-ball list, the q10 extension, the ports, deadlines and bank +directions are compared with the lists in native_route_v13's +`geometry()`, read from the pinned file as literals without executing it. +Completeness of that inventory remains an input: a ready region missing +from it would change the classification of a key. + +The -x key is the cell at which Native A places its fair source F9, chosen +there to make V uniform (native_x_v12 section 3). The +z key is N itself: +the own-N permutation already retained by native_route_v13 is this same +axial mechanism at q10. + +For a free key and every fixed value of all other initial variables, the +key's own neighbor at L+1 is a permutation of the key triple by the unique +axial first arrival in arbitrary background (native_v11/REPORT.md, +"Native proof in arbitrary background"). p, q10 at L+1 and the other four +neighbors do not depend on it. XOR translation and H are bijections, so V +is a permutation of the key. K3 checks every step of this on complete +small native worlds, for current-slice and previous-slice keys. + +For each of the 48 accepted table rows of the v14 fewest-seed law and each +of the eight residual sums of the other neighbors, a uniform key gives a +uniform V (384 cases, computed with the actual p and q10 codes). The +argument does not use the law. Under a complement law in which no key is +uniform, for example a fixed known complement, V is a deterministic +function whose leakage is not computed here. route_v13 states no law of +its own; the complement prior inherited in this lineage is independent and +uniform (junction_v4/REPORT.md, section 1: "Under the inherited +independent-uniform-complement prior it is a uniform triple"), which +satisfies the hypothesis of (ii). Native A fixes F9 as fair. + +## What the read exposes, given the old record + +Given p (public at L), Sigma -> V is a bijection with + + V.A = p.A XOR Sigma.B, V.B = p.B XOR Sigma.D, + V.D = p.D XOR Sigma.A XOR Sigma.B*Sigma.D, + +checked on all 64 (p,Sigma) pairs. The read therefore exposes the whole +triple q10 XOR (other neighbors), never q10.A alone: whatever cleans the A +field must come from the other neighbors, and the same neighbors would +have to pad B and D. On the 48 accepted rows of the fewest-seed law, +q10.A XOR p.D = a XOR b, because p.D = r_old = s XOR a XOR b: inside V.D +the sign carried by q10.A cancels the sign of the old record. Under that +law q10 takes 4 distinct whole codes for each value of s across the 24 +contexts, so a whole-triple exposure of q10 also exposes known-seed +information. These are diagnostics outside the decision rule. + +## Where the stop lies + +Delivery through V needs the free keys determined. Pinning them is a +readiness extension of the q9 cone at L+2, a change to the initial +preparation. A blank radius-(L+2) current shell about q9 would also meet +eight reserved bank coordinates, four of them active at distance exactly +L+2 (reproducing native_x_v12): port 0 at deadline+2, reaching the -y and +-z neighbors; ports 2 and 3 at deadline+2, reaching +x,+y,-z and +-x,+y,-z; port 5 at deadline+2, reaching +y and -z. Those bank variables +enter their own ports' records at tick deadline+2, before L. The free -y +keys also enter port 0's record, which might determine them; that is not +computed. Any such extension therefore needs its own joint public-record +audit, besides the V kernel. Reading the key neighbors at L+1 instead is +an access change. This test adopts neither and stops. + +## Controls + +All controls run before any verdict text is produced; a failure prints +VOID and exits with status 2. + +- K1: six input hashes; recomputed, recorded and separate-review table + digests agree; 4096 table rows, 32768 q9 rows, 1479 sources. +- K2: the distance-and-parity lemma for n=2..7 (countercontrol: 772 + non-axial cells reaching two or more neighbors), and dependency-set + propagation through the rule for n=1..6 over both slices: keys are the + axial cells of both slices, and 15456 cell-target comparisons with the + cone formula agree (countercontrol: 532 shared non-axial cells). +- K3: 144 complete native worlds (two background families, n=1..4, three + seeds, six keys) for current-slice keys and 144 for previous-slice keys: + V and the own neighbor take all 8 values, q9 at n-1 and the five other + neighbors are constant; 2304 scalar/bit-parallel comparisons on all 8 + key values agree. Countercontrol: the off-axis cell (-n,0,-1) must change + two neighbors in at least one SHA-256 world for every n; it does in 11 of + 12 SHA-256 worlds and 6 of 12 polynomial worlds. +- K4: with the -x key fixed, V separates all 8 operands placed at the q10 + key (total variation 1); with the key uniform, all 8 operand laws of V + are equal and uniform (total variation 0); 1536 rows. +- K5: native_route_v13 `geometry()` lists equal this checker's; anchors + compare (status, reason): the q10 axial cell and N are source N, E is + source E, the F10 position is its pin, a B_(L+1)(q10) interior cell is a + ready ball, F8 is free, (0,-2,0) is a port-0 bank cell that reaches a + receiver, previous-slice q9 is pinned and the previous-slice N position + is free, and junction_v4's fourth selector (4T,P+S,0) and opposite reset + pulse (0,S,-S-136) are their declared sources. Outside the top-level + statements it reads, the reader of native_route_v13 refuses the listed + write forms on a tracked name: assignment, augmented assignment, direct + aliases, loop or comprehension targets, deletion, walrus, method calls + on a tracked name, parameters and scope declarations. Eight mutated + in-memory copies of the pinned file (nested +=, append, extend, insert, + subscript assignment, extra +=, loop target, alias) are each refused. + Indirect writes such as list.extend(ready, ...), a container alias or a + lambda argument are not detected; the hash pin of + native_route_v13/checks.py is what guarantees that the list read is the + list used. +- K6: E and N avoid the 24 inherited ready balls; old q9 at L equals + (0,s,s XOR a XOR b) on all 48 accepted rows; the v14 fewest-seed law gives + q10.A=s on all 48 accepted rows and v14 records 1456 q10.A laws; 8 shell + bank coordinates, 4 active at L+2; Native A's f8 and f9 public slacks 77 + and 79. + +`mutants/make_mutants.py` first requires the unmodified checker to +reproduce result.json normally and with -O, then runs 32 single-span +mutants, including the reviewer's K5_E_moved. Each must exit with status 2 +and print VOID with the label of the control it targets; all 32 are caught +(`mutants/OUTPUT.txt`). The reviewer's own 25 mutants, rerun on this +revision, all exit with status 2 except two that only add a duplicate or +weaker countercontrol; the two that add a ready region now fail the +geometry comparison of K5, and the one that adds receivers fails K6. + +## Changes after the plan and after review + +Recorded in PROVENANCE.json. Before any verdict: the parity condition was +added to K2 after the first implementation failed on the inactive axial +cells at distance n; a SHA-256 background family was added after the +polynomial one made the off-axis countercontrol degenerate for even n; and +anchors were added and one equivalent mutant replaced. After the review: +the countercontrol now holds for every n (the earlier rule, one world in +all, would have passed with the polynomial family alone); the evaluators +are compared on all 8 key values; the lemma is checked by propagation; the +anchors compare full pairs; the ready list is tied to native_route_v13; +previous-slice keys are classified; the verdict text is corrected. After +the re-check: the inventory condition is stated in the verdict, Scope and +not-established list; two declared sources are added; the geometry reader +refuses the listed write forms; the complement prior is cited. The +decision rule and the outcome are unchanged. + +## Scope + +The classification, and so the outcome, is conditional on the declared +ready-cone, source and bank inventory shared with native_route_v13 being +complete: no undeclared readiness, preparation or correlation, and no +record in the lineage with a deadline beyond L+1. Part (ii) is conditional +in addition on a uniform free key. Within those conditions, established +for this one-tick stage, this source geometry and this declared read: V is +a permutation of each free key, so no fixed readout of V delivers s for +every complement value; under a uniform free key the read carries no +information about q10.A. Not established or excluded: the completeness of +that inventory; privacy of V under a complement law in which no free key +is uniform; whether port 0's record determines the -y keys; multi-tick +stages, other reads or ports, other layouts, readiness extensions; Native +A's own geometry and pool; the acceptance predicate, a carrier law or a +reusable interface; any access rule or preparation change; A1 or A2 +reconstruction; OI generally. + +## Replay + +From an empty directory, once the branch is published: + + git clone --branch draft/native-y-research-checkpoints-20261024 https://github.com/amaybaum/incompleteness.git repo + cd repo + D=verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15 + python3 -I -B $D/checks.py | cmp - $D/result.json + python3 -I -B -O $D/checks.py | cmp - $D/result.json + python3 -I -B $D/mutants/make_mutants.py | cmp - $D/mutants/OUTPUT.txt + (cd $D && sha256sum -c SHA256SUMS) + +Any later commit on that branch that leaves this package unchanged replays +the same way. Standard library, exact integers. One checker run takes +about two seconds; the mutant run about a minute. `--source-root` +selects another copy of the native package root. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/SHA256SUMS new file mode 100644 index 000000000..6338bebe8 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/SHA256SUMS @@ -0,0 +1,7 @@ +e24c16322a06d35aab6465c40e1dfcf5c08b6a3d8e4ffed93c0d3afb73a7c985 PLAN.md +33996649c19181d26310560b2941cf3325405a5d3d51217adc37b1ac10b77847 PROVENANCE.json +96a5e1b8fcb03e25cb472468a568741b03426912983126168df08d91cac4b5a2 REPORT.md +93b4161f32e02874769d57d8a670d1a460d26fa2c953d517db5c6564fb649824 checks.py +56509ae6c7dcc40bbbcdd3a62c8b73bf03e0c5ed20052a226eb63bdda1606d04 result.json +7f80c86f242c5266ae0377cdb9aad2a3d895f5396a5f50ff92b135729f962b22 mutants/make_mutants.py +0113eb08ab4fde5a22ae20d83b52f41d302fbae503b8f031f8bdc9d03184e14d mutants/OUTPUT.txt diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/checks.py new file mode 100644 index 000000000..cbc5d75e9 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/checks.py @@ -0,0 +1,902 @@ +"""Native read v15: one native tick from q10 at L+1 into the declared whole-V read. + +Standard library only, exact integers, no assert statements. Every required +control raises ControlFailure; main() then prints VOID and exits with status 2. +Inputs are read as data from the retained native package and pinned by hash. +""" +import argparse +import ast +from collections import Counter +from functools import lru_cache +import hashlib +from itertools import product +import json +from pathlib import Path +import sys + + +class ControlFailure(Exception): + pass + + +def need(ok, label): + if not ok: + raise ControlFailure(label) + + +T = 185 +P = 12*840**185 +S = P+T +R = S+68 +L = R+9 +Q9 = (0, S, 77) +Q10 = (0, S, 78) +STEPS = ((1, 0, 0), (-1, 0, 0), (0, 1, 0), (0, -1, 0), (0, 0, 1), (0, 0, -1)) +STEP_NAMES = {(1, 0, 0): '+x', (-1, 0, 0): '-x', (0, 1, 0): '+y', + (0, -1, 0): '-y', (0, 0, 1): '+z', (0, 0, -1): '-z'} +PINS = { + 'native_route_v13/result.json': + '762b9799db7448c4eecf2c994c8c68ff94e1be83a7f6884b4a36385505df5a02', + 'native_route_v13/review/result.json': + '73780def8505d68d1967936116a88a49d471eb32aeb83d528ff3cd41025ae6e4', + 'native_decode_v14/result.json': + '3172e7d013c09cdcdf638a7ace68e0eff98bb3cd0411e8666b76a8226ad59034', + 'branch_v10/local-controller/symmetric-result.json': + 'd8e7c1f5841192165beefb3fe35b069cc14cc93f2faa2bd68619aa7748b3db2f', + 'parallel_v3/history_control/SOURCE-GEOMETRY.json': + '2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d', + 'native_route_v13/checks.py': + '8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856', +} +TABLE_SHA256 = 'b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc' +FEWEST_LAW = (1, 5, 1, 4, 1, 5) + + +def h(v): + a, b, d = (v >> 2) & 1, (v >> 1) & 1, v & 1 + return (b << 2) | (d << 1) | (a ^ (b & d)) + + +def fields(v): + return (v >> 2) & 1, (v >> 1) & 1, v & 1 + + +def dist(p, q): + return sum(abs(x-y) for x, y in zip(p, q)) + + +def add(p, q, k=1): + return tuple(x+k*y for x, y in zip(p, q)) + + +def key_text(e): + base = ('0', 'S', '77') + parts = [] + for j in range(3): + if e[j] == 0: + parts.append(base[j]) + elif base[j] == '0': + parts.append(('' if e[j] > 0 else '-')+'(L+2)') + else: + parts.append(base[j]+('+' if e[j] > 0 else '-')+'(L+2)') + return '('+','.join(parts)+')' + + +# ---------------------------------------------------------------- K1 inputs + +def load_inputs(root): + data = {} + for rel, digest in sorted(PINS.items()): + raw = (root/rel).read_bytes() + need(hashlib.sha256(raw).hexdigest() == digest, 'K1 input pin '+rel) + text = raw.decode('utf-8') + data[rel] = json.loads(text) if rel.endswith('.json') else text + route = data['native_route_v13/result.json'] + table = route['q10_table_hex'] + need(len(table) == 4096, 'K1 q10 table length') + need(hashlib.sha256(table.encode()).hexdigest() == TABLE_SHA256, 'K1 recomputed table digest') + need(route['table_sha256'] == TABLE_SHA256, 'K1 recorded table digest') + review = data['native_route_v13/review/result.json']['independent_native_table']['sha256'] + need(review == TABLE_SHA256, 'K1 review table digest') + need(route['table_order'].startswith('x,u,mY,mR,a,b,Ecode,Ncode'), 'K1 table order') + q9hex = data['branch_v10/local-controller/symmetric-result.json']['q9_table_hex'] + need(len(q9hex) == 32768, 'K1 old q9 table length') + sources = data['parallel_v3/history_control/SOURCE-GEOMETRY.json']['sources'] + need(len(sources) == 1479, 'K1 inherited source inventory') + return {'q10': [int(c, 16) for c in table], 'q9hex': q9hex, + 'sources': [tuple(row['position']) for row in sources], + 'v14': data['native_decode_v14/result.json'], + 'route_checks': data['native_route_v13/checks.py']} + + +def q10_index(x, u, my, mr, a, b, e, n): + index = 0 + for value, size in zip((x, u, my, mr, a, b, e, n), (2, 2, 2, 2, 2, 2, 8, 8)): + index = size*index+value + return index + + +def old_q9(q9hex, x, u, my, mr, a, b): + # Row order of the retained symmetric q9 table, with the fixed W,Q,C,G + # payload codes 4,5,7 used by native_route_v13's own q9 control. + index = 0 + for value, size in zip((x, u, my, mr, a, b, 4, 5, 7), (2, 2, 2, 2, 2, 2, 8, 8, 8)): + index = size*index+value + return int(q9hex[index], 16) + + +CONTEXTS = tuple(k for k in product((0, 1), repeat=5) if (k[3], k[4]) != (0, 1)) + + +def law_codes(coeffs, k): + u, my, mr, a, b = k + feature = 1 | (u << 1) | (my << 2) | (mr << 3) | (a << 4) | (b << 5) + bits = [bin(c & feature).count('1') % 2 for c in coeffs] + return 4*bits[0]+2*bits[1]+bits[2], 4*bits[3]+2*bits[4]+bits[5] + + +# ------------------------------------------------------------- K2 key lemma + +def small_ball(radius): + for a in range(-radius, radius+1): + for b in range(-radius+abs(a), radius-abs(a)+1): + for d in range(-radius+abs(a)+abs(b), radius-abs(a)-abs(b)+1): + yield a, b, d + + +def reaches(c, w, t): + d = dist(c, w) + return d <= t and (t-d) % 2 == 0 + + +def dependency_keys(nmax): + """Dependency sets propagated through the second-order rule itself. + + dep(t,p) is the set of initial cells (slice,pos), slice 0 current and -1 + previous, on which U_t(p) can depend: U_t(p) reads U_(t-2)(p) and the six + U_(t-1) neighbors. + """ + memo = {} + + def dep(t, p): + if (t, p) in memo: + return memo[t, p] + if t == 0: + out = frozenset({(0, p)}) + elif t == -1: + out = frozenset({(-1, p)}) + else: + acc = set(dep(t-2, p)) + for step in STEPS: + acc |= dep(t-1, add(p, step)) + out = frozenset(acc) + memo[t, p] = out + return out + origin = (0, 0, 0) + shared = mismatches = tested = 0 + for n in range(1, nmax+1): + own = dep(n-1, origin) + nb = {e: dep(n, e) for e in STEPS} + keys = set() + for e in STEPS: + rest = set(own) + for f in STEPS: + if f != e: + rest |= nb[f] + keys |= nb[e]-rest + need(keys == {(0, tuple((n+1)*v for v in e)) for e in STEPS} | + {(-1, tuple(n*v for v in e)) for e in STEPS}, + 'K2 propagated keys are the axial cells of both slices') + for c in small_ball(n+2): + if dist(c, origin) == n+1 and len([v for v in c if v]) > 1: + shared += sum(1 for e in STEPS if (0, c) in nb[e]) >= 2 + for w, tt in [(origin, n-1)]+[(e, n) for e in STEPS]: + s = dep(tt, w) + tested += 1 + mismatches += ((0, c) in s) != reaches(c, w, tt) + mismatches += ((-1, c) in s) != reaches_previous(c, w, tt) + need(mismatches == 0, 'K2 propagated cones equal the cone formula') + need(shared > 0, 'K2 propagated countercontrol: shared off-axis cell not found') + return {'n_range': [1, nmax], 'cells_times_targets_compared': tested, + 'current_keys_axial_(n+1)e_previous_keys_axial_ne': True, + 'shared_offaxis_current_cells': shared} + + +def reaches_previous(c, w, t): + d = dist(c, w) + return d <= t-1 and (t-1-d) % 2 == 0 + + +def key_lemma(): + origin = (0, 0, 0) + shared_seen = 0 + for n in range(2, 8): + keys = set() + for c in small_ball(n+2): + # A current-slice cell influences (t,w) only when dist<=t and + # t-dist is even: the second-order rule preserves the parity + # of t+x+y+z. + if reaches(c, origin, n-1): + continue + reached = [e for e in STEPS if reaches(c, e, n)] + if len(reached) == 1: + keys.add(c) + if len(reached) >= 2 and dist(c, origin) == n+1 and sum(1 for v in c if v) > 1: + shared_seen += 1 + need(keys == {tuple((n+1)*v for v in e) for e in STEPS}, 'K2 keys are exactly the axial cells') + need(shared_seen > 0, 'K2 countercontrol: shared off-axis cell not found') + return {'lattice_sizes_n': [2, 7], 'keys_equal_six_axial_cells': True, + 'shared_offaxis_cells_seen': shared_seen} + + +# --------------------------------------------------- K3/K4 small native worlds + +BACKGROUNDS = ('sha256', 'polynomial') + + +def background(kind, seed, t, p): + if kind == 'sha256': + return hashlib.sha256(repr((seed, t, p)).encode()).digest()[0] & 7 + x, y, z = p + return ((5*x*x+3*y*y+7*z*z+x*y+2*y*z+11*t+13*seed+x+4*z) + ^ (x*z+3*seed*t+y*seed+(x*y*z))) & 7 + + +def packed_world(kind, n, seed, cells, previous_cells=None): + """Bit-parallel native evaluation; cells maps a t=0 position to its lane values.""" + previous_cells = previous_cells or {} + lanes = len(next(iter(list(cells.values())+list(previous_cells.values())))) + full = (1 << lanes)-1 + planted = {p: tuple(sum(((vals[i] >> (2-k)) & 1) << i for i in range(lanes)) + for k in range(3)) for p, vals in cells.items()} + planted_previous = {p: tuple(sum(((vals[i] >> (2-k)) & 1) << i for i in range(lanes)) + for k in range(3)) for p, vals in previous_cells.items()} + + @lru_cache(None) + def get(t, p): + if t == 0 and p in planted: + return planted[p] + if t == -1 and p in planted_previous: + return planted_previous[p] + if t in (-1, 0): + v = background(kind, seed, t, p) + return tuple(full if (v >> (2-k)) & 1 else 0 for k in range(3)) + acc = [0, 0, 0] + for step in STEPS: + w = get(t-1, add(p, step)) + for k in range(3): + acc[k] ^= w[k] + a, b, d = acc + old = get(t-2, p) + return (old[0] ^ b, old[1] ^ d, old[2] ^ (a ^ (b & d))) + + def value(t, p): + tr = get(t, p) + return [sum(((tr[k] >> i) & 1) << (2-k) for k in range(3)) for i in range(lanes)] + return value + + +def scalar_world(kind, n, seed, assignment, previous_assignment=None): + previous_assignment = previous_assignment or {} + + @lru_cache(None) + def get(t, p): + if t == 0 and p in assignment: + return assignment[p] + if t == -1 and p in previous_assignment: + return previous_assignment[p] + if t in (-1, 0): + return background(kind, seed, t, p) + acc = 0 + for step in STEPS: + acc ^= get(t-1, add(p, step)) + return get(t-2, p) ^ h(acc) + return get + + +def native_key_controls(): + origin = (0, 0, 0) + worlds = scalar_rows = previous_worlds = 0 + counter = {kind: [] for kind in BACKGROUNDS} + for kind, n, seed in product(BACKGROUNDS, range(1, 5), (0, 3, 8)): + for e in STEPS: + key = tuple((n+1)*v for v in e) + value = packed_world(kind, n, seed, {key: list(range(8))}) + V = value(n+1, origin) + old = value(n-1, origin) + nb = {w: value(n, w) for w in STEPS} + need(len(set(V)) == 8, 'K3 V is a permutation of the key') + need(len(set(old)) == 1, 'K3 old-local q9 independent of key') + need(len(set(nb[e])) == 8, 'K3 own neighbor is a permutation of the key') + need(all(len(set(nb[w])) == 1 for w in STEPS if w != e), + 'K3 other neighbors independent of key') + for lane in range(8): + get = scalar_world(kind, n, seed, {key: lane}) + need(get(n+1, origin) == V[lane] and get(n-1, origin) == old[lane] and + all(get(n, w) == nb[w][lane] for w in STEPS), + 'K3 scalar and packed evaluators agree') + scalar_rows += 1 + worlds += 1 + # Previous-slice key n*e at t=-1. + pkey = tuple(n*v for v in e) + value = packed_world(kind, n, seed, {}, {pkey: list(range(8))}) + V = value(n+1, origin) + need(len(set(V)) == 8, 'K3 V is a permutation of the previous-slice key') + need(len(set(value(n-1, origin))) == 1, 'K3 old-local q9 independent of previous-slice key') + need(len(set(value(n, e))) == 8, 'K3 own neighbor permutes the previous-slice key') + need(all(len(set(value(n, w))) == 1 for w in STEPS if w != e), + 'K3 other neighbors independent of previous-slice key') + for lane in range(8): + get = scalar_world(kind, n, seed, {}, {pkey: lane}) + need(get(n+1, origin) == V[lane], 'K3 scalar and packed evaluators agree (previous)') + scalar_rows += 1 + previous_worlds += 1 + off = (-n, 0, -1) + value = packed_world(kind, n, seed, {off: list(range(8))}) + changed = [w for w in STEPS if len(set(value(n, w))) > 1] + get = scalar_world(kind, n, seed, {off: 5}) + need(all(get(n, w) == value(n, w)[5] for w in STEPS), 'K3 countercontrol evaluators agree') + counter[kind].append(len(changed) >= 2) + # The check 'other neighbors independent of key' must be shown to fail on + # native data: the off-axis cell has to change two neighbors in at least + # one world. Per-world counts are reported for both background families. + need(any(counter['sha256']), 'K3 countercontrol: off-axis cell must change two neighbors') + need(all(any(counter['sha256'][3*i:3*i+3]) for i in range(4)), + 'K3 countercontrol: off-axis cell must change two neighbors for every n') + return {'worlds_two_backgrounds_n1_to_4_three_seeds_six_keys': worlds, + 'previous_slice_key_worlds': previous_worlds, + 'scalar_comparisons_all_8_lanes': scalar_rows, + 'offaxis_cell_changes_two_neighbors_worlds': { + kind: '%d of %d' % (sum(v), len(v)) for kind, v in counter.items()}} + + +def detector_controls(): + origin = (0, 0, 0) + rows = 0 + for kind, n, seed in product(BACKGROUNDS, range(1, 5), (0, 3, 8)): + operand = (0, 0, n+1) + key = (-(n+1), 0, 0) + lanes = list(product(range(8), range(8))) + value = packed_world(kind, n, seed, {operand: [o for o, k in lanes], + key: [k for o, k in lanes]}) + V = value(n+1, origin) + table = {lanes[i]: V[i] for i in range(64)} + for kv in range(8): + need(len({table[o, kv] for o in range(8)}) == 8, + 'K4 positive: pinned key lets V separate operands') + need(table[0, kv] != table[1, kv], 'K4 positive: total variation 1') + laws = [Counter(table[o, kv] for kv in range(8)) for o in range(8)] + need(all(law == laws[0] for law in laws), 'K4 null: uniform key gives equal V laws') + need(laws[0] == Counter({v: 1 for v in range(8)}), 'K4 null: V uniform') + rows += 64 + return {'detector_rows': rows, 'pinned_key_TV': 1, 'uniform_key_TV': 0} + + +# ----------------------------------------------------- stage G: actual scale + +PORTS = [((0, T, 0), (0, -1, 0), T), ((0, 0, -8*T), (0, 0, -1), T), + ((T, P, 0), (0, 1, 0), S), ((-T, P, 0), (0, 1, 0), S), + ((4*T, P, 0), (0, 1, 0), S), ((0, S, 0), (0, 1, 0), S), + ((12*R, 0, 0), (-1, 0, 0), R), ((48*L, 0, 0), (1, 0, 0), L)] +RECEIVERS = [p for p, _, _ in PORTS]+[(-48*L, 0, 0)] + + +def ready_balls(): + balls = [(p, dl) for p, _, dl in PORTS] + balls += [((T, 0, 0), T), ((-T, 0, 0), T), ((4*T, 0, 0), T), + ((0, S, -68), R), ((-12*R, 0, 0), R)] + balls += [((0, S, 68+k), R+k) for k in range(10)] + balls += [((-48*L, 0, 0), L)] + need(len(balls) == 24, 'K5 inherited ready-ball count') + return balls, balls+[(Q10, L+1)] + + +def safe_value(node, env): + """Evaluate a literal geometry expression without executing any code.""" + if isinstance(node, ast.Constant) and type(node.value) is int: + return node.value + if isinstance(node, ast.Name): + need(node.id in env, 'K5 route geometry: unknown name '+node.id) + return env[node.id] + if isinstance(node, (ast.Tuple, ast.List)): + items = [safe_value(x, env) for x in node.elts] + return tuple(items) if isinstance(node, ast.Tuple) else items + if isinstance(node, ast.UnaryOp) and isinstance(node.op, ast.USub): + return -safe_value(node.operand, env) + if isinstance(node, ast.BinOp) and type(node.op) in (ast.Add, ast.Sub, ast.Mult): + a, b = safe_value(node.left, env), safe_value(node.right, env) + return a+b if isinstance(node.op, ast.Add) else a-b if isinstance(node.op, ast.Sub) else a*b + if (isinstance(node, ast.Call) and isinstance(node.func, ast.Name) and not node.keywords + and node.func.id in ('list', 'zip', 'range')): + args = [safe_value(x, env) for x in node.args] + if node.func.id == 'range': + need(len(args) == 1 and 0 <= args[0] <= 100, 'K5 route geometry: range bound') + return list(range(args[0])) + if node.func.id == 'zip': + return list(zip(*args)) + return list(args[0]) + if isinstance(node, ast.ListComp) and len(node.generators) == 1: + g = node.generators[0] + need(isinstance(g.target, ast.Name) and not g.ifs, 'K5 route geometry: comprehension form') + return [safe_value(node.elt, dict(env, **{g.target.id: v})) for v in safe_value(g.iter, env)] + raise ControlFailure('K5 route geometry: unsupported expression') + + +def route_geometry(text): + """Read native_route_v13's ready list, ports, deadlines and directions as data.""" + tree = ast.parse(text) + function = [f for f in tree.body if isinstance(f, ast.FunctionDef) and f.name == 'geometry'] + need(len(function) == 1, 'K5 route geometry: one geometry() function') + env = {'T': T, 'P': P, 'S': S, 'R': R, 'L': L} + found = {} + for stmt in function[0].body: + if (isinstance(stmt, ast.Assign) and len(stmt.targets) == 1 and isinstance(stmt.targets[0], ast.Name) + and stmt.targets[0].id in ('target', 'deadline', 'ports', 'deadlines', 'ready', 'directions')): + found[stmt.targets[0].id] = safe_value(stmt.value, env) + env[stmt.targets[0].id] = found[stmt.targets[0].id] + elif (isinstance(stmt, ast.AugAssign) and isinstance(stmt.target, ast.Name) + and stmt.target.id == 'ready' and isinstance(stmt.op, ast.Add)): + found['ready'] = found['ready']+safe_value(stmt.value, env) + env['ready'] = found['ready'] + need(set(found) == {'target', 'deadline', 'ports', 'deadlines', 'ready', 'directions'}, + 'K5 route geometry: all lists found') + route_writes_closed(function[0]) + return found + + +TRACKED = ('target', 'deadline', 'ports', 'deadlines', 'ready', 'directions') + + +def target_names(node): + if isinstance(node, ast.Name): + return {node.id} + if isinstance(node, (ast.Tuple, ast.List)): + out = set() + for x in node.elts: + out |= target_names(x) + return out + if isinstance(node, ast.Starred): + return target_names(node.value) + if isinstance(node, (ast.Subscript, ast.Attribute)): + return target_names(node.value) + return set() + + +def route_writes_closed(function): + """Refuse the listed write forms on a tracked name outside the top-level + statements route_geometry reads: assignment, augmented assignment, direct + aliases, loop or comprehension targets, deletion, walrus, method calls on + a tracked name, parameters and scope declarations. Indirect writes (for + example list.extend(ready, ...), a container alias or a lambda argument) + are not detected; the hash pin of native_route_v13/checks.py is what + guarantees that the list read is the list used.""" + read = set() + for stmt in function.body: + if (isinstance(stmt, ast.Assign) and len(stmt.targets) == 1 and isinstance(stmt.targets[0], ast.Name) + and stmt.targets[0].id in TRACKED): + read.add(id(stmt)) + elif (isinstance(stmt, ast.AugAssign) and isinstance(stmt.target, ast.Name) + and stmt.target.id == 'ready' and isinstance(stmt.op, ast.Add)): + read.add(id(stmt)) + tracked = set(TRACKED) + for node in ast.walk(function): + written = set() + if isinstance(node, (ast.Assign, ast.AugAssign, ast.AnnAssign)) and id(node) not in read: + for target in (node.targets if isinstance(node, ast.Assign) else [node.target]): + written |= target_names(target) + # An alias such as r = ready (or r = ready[0]) would let a later + # write escape the name check. + if node.value is not None and isinstance(node.value, (ast.Name, ast.Subscript, ast.Attribute)): + written |= target_names(node.value) + elif isinstance(node, (ast.For, ast.AsyncFor, ast.comprehension)): + written |= target_names(node.target) + elif isinstance(node, ast.NamedExpr): + written |= target_names(node.target) + elif isinstance(node, ast.Delete): + for target in node.targets: + written |= target_names(target) + elif isinstance(node, ast.withitem) and node.optional_vars is not None: + written |= target_names(node.optional_vars) + elif isinstance(node, (ast.Global, ast.Nonlocal)): + written |= set(node.names) + elif isinstance(node, ast.arg): + written.add(node.arg) + elif isinstance(node, ast.ExceptHandler) and node.name: + written.add(node.name) + elif isinstance(node, (ast.Import, ast.ImportFrom)): + written |= {(a.asname or a.name).split('.')[0] for a in node.names} + elif isinstance(node, ast.Call) and isinstance(node.func, ast.Attribute): + written |= target_names(node.func.value) + need(not (written & tracked), 'K5 route geometry: tracked list written outside the read statements') + + +READER_COUNTERCONTROLS = ( + 'if deadline:\n ready += [((0,0,0),1)]', + 'ready.append(((0,0,0),1))', + 'ready.extend([((0,0,0),1)])', + 'ready.insert(0,((0,0,0),1))', + 'ports[0]=(0,0,0)', + 'deadlines += [1]', + 'for directions in [[]]: pass', + 'alias = ready', +) + + +def reader_countercontrols(text): + """Mutated in-memory copies of the pinned file must each be refused.""" + anchor = ' ready += [((-48*L,0,0),L)]\n' + need(text.count(anchor) == 1, 'K5 reader countercontrol anchor line') + refused = 0 + for insert in READER_COUNTERCONTROLS: + copy = text.replace(anchor, anchor+' '+insert+'\n') + try: + route_geometry(copy) + except ControlFailure as failure: + refused += str(failure) == 'K5 route geometry: tracked list written outside the read statements' + need(refused == len(READER_COUNTERCONTROLS), 'K5 reader countercontrol: mutated route copy accepted') + return refused + + +def local_sources(): + return {'O': (0, 0, 0), 'W': (0, -76, 76), 'E': (0, -78, 78), 'N': (0, S, S+156), + 'Q': (0, S, S+136), 'C': (0, S, S+150), 'G': (0, S, S+152), 'J': (0, S, S+154), + 'Kplus': (1, S, S+153), 'Kminus': (-1, S, S+153), + 'selector_y': (0, 2*S, 0), 'selector_plus': (T, S+P, 0), + 'selector_minus': (-T, S+P, 0), 'F10_pin': (-(L+1), S, 78), + 'z_source': (-48*L, -L, 0), + # junction_v4 selector controls and reset pulses: the fourth + # selector and the opposite pulse (Q is the other pulse). + 'selector_4T': (4*T, S+P, 0), 'reset_opposite': (0, S, -S-136)} + + +def bank_index(cell): + for i, (port, d, dl) in enumerate(PORTS): + axis = next(j for j in range(3) if d[j]) + if any(cell[j] != port[j] for j in range(3) if j != axis): + continue + t = (cell[axis]-port[axis])*d[axis] + if dl < t <= 2*L: + return i, t-dl + return None + + +def classify(cell, inventory, balls): + for name, pos in local_sources().items(): + if cell == pos: + return 'PINNED', 'source '+name + if cell in inventory: + return 'PINNED', 'inherited source' + bank = bank_index(cell) + if bank is not None: + return 'BANK', 'port %d index deadline+%d' % bank + for center, radius in balls: + if dist(cell, center) <= radius: + return 'PINNED', 'ready ball' + return 'FREE', 'complement' + + +def shell_banks(): + out = [] + for i, (port, d, dl) in enumerate(PORTS): + axis = next(j for j in range(3) if d[j]) + rest = sum(abs(port[j]-Q9[j]) for j in range(3) if j != axis) + t0 = (Q9[axis]-port[axis])*d[axis] + slack = L+2-rest + if slack < 0: + continue + for t in range(max(dl+1, t0-slack), min(2*L, t0+slack)+1): + cell = add(port, d, t) + dd = dist(cell, Q9) + need(dd <= L+2, 'K6 shell bank enumeration') + active = (sum(cell)-sum(Q9)-(L+2)) % 2 == 0 + reach = [STEP_NAMES[e] for e in STEPS if dist(cell, add(Q9, e)) <= L+1] + out.append({'port': i, 'index_over_deadline': t-dl, + 'distance_to_q9_over_L': dd-L, 'active': active, + 'q9_neighbors_reached_by_L+1': reach if active else []}) + return out + + +def receiver_info(cell): + nearest = min(range(len(RECEIVERS)), key=lambda i: dist(cell, RECEIVERS[i])) + distance = dist(cell, RECEIVERS[nearest]) + slack = distance-L + text = ('L%+d' % slack) if abs(slack) < 10**6 else str(distance) + return nearest, text, slack <= 2 + + +def classify_previous(cell, balls): + # Previous-slice readiness is the ball of radius one less about each + # centre (native_route_v13/PLAN.md; native_v11 'smaller previous ready + # regions'). Sources and bank coordinates are current-slice triples. + for center, radius in balls: + if dist(cell, center) <= radius-1: + return 'PINNED', 'previous ready ball' + return 'FREE', 'complement' + + +def geometry(inventory, route_text): + inherited, balls = ready_balls() + route = route_geometry(route_text) + need([tuple(x) for x in route['ready']] == inherited, + 'K5 ready list equals native_route_v13 geometry()') + refused_copies = reader_countercontrols(route_text) + need(route['target'] == Q10 and route['deadline'] == L+1, + 'K5 q10 extension equals native_route_v13 geometry()') + need(route['ports'] == [p for p, _, _ in PORTS] and route['deadlines'] == [dl for _, _, dl in PORTS] + and route['directions'] == [d for _, d, _ in PORTS], + 'K5 ports, deadlines and bank directions equal native_route_v13 geometry()') + inv = set(inventory) + anchors = { + 'q10_axial': classify(add(Q10, (0, 0, 1), L+1), inv, balls), + 'E': classify((0, -78, 78), inv, balls), + 'N': classify((0, S, S+156), inv, balls), + 'F10_position': classify((-(L+1), S, 78), inv, balls), + 'F8_position': classify((-(L+1), S, 76), inv, balls), + 'port0_bank_T+2': classify((0, -2, 0), inv, balls), + 'q10_ready_interior': classify((0, S, 78+L), inv, balls), + 'selector_4T': classify((4*T, S+P, 0), inv, balls), + 'reset_opposite': classify((0, S, -S-136), inv, balls), + } + need(tuple(anchors['q10_axial']) == ('PINNED', 'source N'), 'K5 anchor q10 axial is source N') + need(tuple(anchors['E']) == ('PINNED', 'source E') and tuple(anchors['N']) == ('PINNED', 'source N'), + 'K5 anchor E,N are their declared sources') + need(tuple(anchors['F10_position']) == ('PINNED', 'source F10_pin'), 'K5 anchor F10 is its pin') + need(tuple(anchors['selector_4T']) == ('PINNED', 'source selector_4T') and + tuple(anchors['reset_opposite']) == ('PINNED', 'source reset_opposite'), + 'K5 anchor junction_v4 selector and reset pulse are declared sources') + need(anchors['F8_position'][0] == 'FREE', 'K5 anchor F8 free') + need(anchors['port0_bank_T+2'][0] == 'BANK', 'K5 anchor port-0 bank') + need(tuple(anchors['q10_ready_interior']) == ('PINNED', 'ready ball'), 'K5 anchor q10 ready ball') + need(receiver_info((0, -2, 0))[2], 'K5 anchor receiver reached by a port-0 bank cell') + previous_anchors = {'previous_q9': classify_previous(Q9, balls), + 'previous_N_position': classify_previous((0, S, S+156), balls)} + need(tuple(previous_anchors['previous_q9']) == ('PINNED', 'previous ready ball'), + 'K5 anchor previous q9 pinned') + need(tuple(previous_anchors['previous_N_position']) == ('FREE', 'complement'), + 'K5 anchor previous N position free') + anchors.update(previous_anchors) + need(receiver_info((-(L+1), S, 76))[1:] == ('L+77', False), 'K6 Native A f8 public slack 77') + # K6: E and N avoid every inherited ready ball, as native_route_v13 checks. + for pos in ((0, -78, 78), (0, S, S+156)): + need(all(dist(pos, c) > r for c, r in inherited), 'K6 E,N avoid inherited ready balls') + keys = [] + for e in STEPS: + cell = add(Q9, e, L+2) + w = add(Q9, e) + need(dist(cell, w) == L+1 and dist(cell, Q9) == L+2, 'G key reaches own neighbor') + need(all(dist(cell, add(Q9, f)) == L+3 for f in STEPS if f != e), 'G key private') + status, reason = classify(cell, inv, balls) + nearest, near_text, reached = receiver_info(cell) + keys.append({'direction': STEP_NAMES[e], 'cell': key_text(e), + 'ready_balls_containing': [i for i, (c, r) in enumerate(balls) + if dist(cell, c) <= r], + 'ready_margin': min(dist(cell, c)-r for c, r in balls), + 'balls_at_ready_margin': [i for i, (c, r) in enumerate(balls) + if dist(cell, c)-r == min(dist(cell, cc)-rr + for cc, rr in balls)], + 'status': status, 'reason': reason, + 'nearest_receiver': nearest, 'nearest_receiver_distance': near_text, + 'receiver_reached_by_L+2': reached, + 'operand_cell': e == (0, 0, 1)}) + previous_keys = [] + for e in STEPS: + cell = add(Q9, e, L+1) + need(dist(cell, add(Q9, e)) == L and dist(cell, Q9) == L+1 and + all(dist(cell, add(Q9, f)) == L+2 for f in STEPS if f != e), 'G previous key private') + status, reason = classify_previous(cell, balls) + nearest = min(range(len(RECEIVERS)), key=lambda i: dist(cell, RECEIVERS[i])) + distance = dist(cell, RECEIVERS[nearest]) + previous_keys.append({ + 'direction': STEP_NAMES[e], 'cell': key_text(e).replace('(L+2)', '(L+1)'), + 'status': status, 'reason': reason, + 'previous_ready_margin': min(dist(cell, c)-(r-1) for c, r in balls), + 'nearest_receiver': nearest, + 'nearest_receiver_distance': ('L%+d' % (distance-L)) if abs(distance-L) < 10**6 else str(distance), + # A previous-slice cell influences (t,w) only if dist <= t-1. + 'receiver_reached_by_L+2': distance <= L+1, + 'operand_cell': e == (0, 0, 1)}) + f9 = add(Q9, (-1, 0, 0), L+2) + need(min(dist(f9, p) for p, _, _ in PORTS)-L == 79, 'K6 Native A f9 public slack 79') + banks = shell_banks() + need(len(banks) == 8 and sum(1 for b in banks if b['active']) == 4, 'K6 shell bank count 8/4') + need(all(b['distance_to_q9_over_L'] == 2 for b in banks if b['active']), 'K6 active banks at L+2') + q10_ports = [(i, dist(Q10, p)) for i, (p, _, _) in enumerate(PORTS) if dist(Q10, p) < 10**6] + return {'anchors': {k: list(v) for k, v in anchors.items()}, 'keys': keys, + 'previous_slice_keys': previous_keys, + 'ready_list_equals_native_route_v13_geometry': True, + 'route_reader_mutated_copies_refused': refused_copies, + 'largest_ready_radius_over_L': max(r for _, r in balls)-L, + 'local_sources_declared': len(local_sources()), + 'ready_ball_order': 'ports 0-7 with their deadlines; (T,0,0),(-T,0,0),(4T,0,0) radius T; ' + '((0,S,-68),R); ((-12R,0,0),R); ((0,S,68+k),R+k) for k=0..9; ' + '((-48L,0,0),L); B_(L+1)(q10)', + 'ports_within_10^6_of_q10': q10_ports, + 'shell_banks': banks, 'inherited_ready_balls': len(inherited), + 'inherited_sources': len(inv)} + + +# --------------------------------------------- table-level preserved results + +def table_checks(data): + q10, q9hex, v14 = data['q10'], data['q9hex'], data['v14'] + rows = 0 + for x, u, my, mr, a, b in product((0, 1), repeat=6): + if (a, b) == (0, 1): + continue + s = x ^ u ^ a + need(old_q9(q9hex, x, u, my, mr, a, b) == 4*0+2*s+(s ^ a ^ b), 'K6 old q9 is (0,s,s^a^b)') + rows += 1 + need(rows == 48, 'K6 accepted old rows') + counts = v14['readout_solution_counts'] + need(len(counts) == 254 and counts[240-1] == 1456, 'K6 v14 q10.A law count') + entry = [r for r in v14['post_hoc_degree_one_readouts'] if r['readout_bits'] == 240] + need(len(entry) == 1 and tuple(entry[0]['fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND']) + == FEWEST_LAW, 'K6 v14 fewest-seed law') + per_s = {0: set(), 1: set()} + cancel = 0 + for k in CONTEXTS: + u, my, mr, a, b = k + e, n = law_codes(FEWEST_LAW, k) + for x in (0, 1): + s = x ^ u ^ a + c = q10[q10_index(x, u, my, mr, a, b, e, n)] + need(fields(c)[0] == s, 'K6 fewest law gives q10.A=s') + p = old_q9(q9hex, x, u, my, mr, a, b) + need(fields(c)[0] ^ fields(p)[2] == a ^ b, 'D1 q10.A XOR p.D is a XOR b') + cancel += 1 + per_s[s].add(c) + # Under a uniform FREE key, for every accepted row of this law and every + # fixed residual of the other four neighbors, V ranges over all 8 codes. + uniform_rows = 0 + for k in CONTEXTS: + u, my, mr, a, b = k + e, n = law_codes(FEWEST_LAW, k) + for x in (0, 1): + c = q10[q10_index(x, u, my, mr, a, b, e, n)] + p = old_q9(q9hex, x, u, my, mr, a, b) + for rest in range(8): + Vs = Counter(p ^ h(c ^ m ^ rest) for m in range(8)) + need(Vs == Counter({v: 1 for v in range(8)}), 'G uniform key gives uniform V on table rows') + uniform_rows += 1 + return {'accepted_old_q9_rows': rows, 'v14_q10A_law_count': 1456, + 'fewest_law_rows_q10A_equals_s': cancel, + 'fewest_law_q10A_xor_pD_equals_a_xor_b_rows': cancel, + 'fewest_law_distinct_q10_codes_s0_s1': [len(per_s[0]), len(per_s[1])], + 'uniform_key_table_rows_x_residuals': uniform_rows} + + +def read_algebra(): + for p in range(8): + image = {p ^ h(sig) for sig in range(8)} + need(len(image) == 8, 'D1 Sigma to V bijective given p') + for sig in range(8): + v = p ^ h(sig) + pa, pb, pd = fields(p) + sa, sb, sd = fields(sig) + need(fields(v) == (pa ^ sb, pb ^ sd, pd ^ sa ^ (sb & sd)), 'D1 V field formulas') + return {'V.A': 'p.A XOR Sigma.B', 'V.B': 'p.B XOR Sigma.D', + 'V.D': 'p.D XOR Sigma.A XOR Sigma.B*Sigma.D', + 'given_p_V_determines_whole_Sigma': True} + + +# ------------------------------------------------------------------- verdict + +def plural(n, one, many): + return '%d %s' % (n, one if n == 1 else many) + + +def key_list(keys): + return ', '.join('%s key %s' % (k['direction'], k['cell']) for k in keys) + + +def verdict(geo): + others = [k for k in geo['keys'] if not k['operand_cell']] + clean = [k for k in others if k['status'] == 'FREE' and not k['receiver_reached_by_L+2']] + public = [k for k in others if k['status'] == 'FREE' and k['receiver_reached_by_L+2']] + banks = [k for k in others if k['status'] == 'BANK'] + previous = [k for k in geo['previous_slice_keys'] if not k['operand_cell'] and k['status'] == 'FREE'] + base = {'free_keys_unseen_by_public_records': [k['direction'] for k in clean], + 'free_keys_reaching_a_public_port_by_L+2': [k['direction'] for k in public], + 'bank_keys': [k['direction'] for k in banks], + 'free_previous_slice_keys': [k['direction'] for k in previous], + 'outcome_rule_uses': 'current-slice keys, as preregistered'} + if not clean: + base.update({'outcome': 'NOT_DECIDED_BY_THIS_PLAN', + 'statement': 'No non-q10 current-slice key cell is a free complement variable ' + 'unseen by the public records through L+2; delivery and leakage ' + 'need the full native V kernel, which this plan does not compute.'}) + return base + names = ', '.join('%s key %s (nearest public receiver at distance %s)' + % (k['direction'], k['cell'], k['nearest_receiver_distance']) for k in clean) + text = ( + '%s of the 5 non-q10 current-slice key cells of q9 at L+2 %s free complement ' + 'variables under the native_route_v13 contract that no permitted record through L+2 ' + 'depends on: %s. For each such key and every fixed value of all other initial ' + 'variables, V=U_(L+2)(q9) is a permutation of the key triple, while the old q9 record ' + 'and every other permitted record through L+2 do not depend on it (nor does the private ' + 'cell q10 at L+1). (i) No fixed readout of the whole V equals s for every complement ' + 'value. (ii) If such a key is uniform given all other initial variables, V is uniform ' + 'and independent of q10.A, s, the seeds and every other permitted record through L+2: ' + 'under a uniform free key the read is harmless and carries no operand. (iii) Delivery ' + 'through this read needs the %s known, by pinning (a preparation change) or by reading ' + 'the q9 %s at L+1 (an access change).') % ( + len(clean), 'is a' if len(clean) == 1 else 'are', names, + plural(len(clean), 'unseen free key', 'unseen free keys'), + 'neighbor' if len(clean) == 1 else 'neighbors') + if public: + text += (' The %s %s also free and %s a public port by L+2 (%s); %s must also be ' + 'determined, by pinning, by reading the q9 %s at L+1, or from the permitted port ' + 'record, which is not computed here. If an unseen free key is uniform, V is ' + 'independent of that port record by (ii); otherwise their joint law is not ' + 'computed.') % ( + key_list(public), 'is' if len(public) == 1 else 'are', + 'reaches' if len(public) == 1 else 'reach', + ', '.join('port %d at distance %s' % (k['nearest_receiver'], k['nearest_receiver_distance']) + for k in public), + 'it' if len(public) == 1 else 'they', + 'neighbor' if len(public) == 1 else 'neighbors') + if previous: + text += (' The previous-slice %s %s also free; %s must also be determined in one of ' + 'these ways.') % (key_list(previous), 'is' if len(previous) == 1 else 'are', + 'it' if len(previous) == 1 else 'each') + text += (' These are necessary conditions, not sufficient: shared complement cells also ' + 'enter V. Neither change is adopted; the test stops there. The classification, and ' + 'so the outcome, is conditional on the declared ready-cone, source and bank inventory ' + 'shared with native_route_v13 being complete: no undeclared readiness, preparation or ' + 'correlation, and no record in the lineage with a deadline beyond L%+d (the largest ' + 'declared ready radius used). Part (ii) is conditional in addition on a uniform free ' + 'key, which the inherited independent-uniform complement prior of junction_v4 ' + 'supplies where that inherited prior is retained.') % geo['largest_ready_radius_over_L'] + base.update({'outcome': 'NEGATIVE_FOR_CONSTRUCTION', 'statement': text}) + return base + + +def main(): + here = Path(__file__).resolve().parent + parser = argparse.ArgumentParser() + parser.add_argument('--source-root', type=Path, default=here.parent) + args = parser.parse_args() + try: + data = load_inputs(args.source_root) + controls = {'K2_key_lemma': key_lemma(), + 'K2_dependency_propagation': dependency_keys(6), + 'K3_native_key_permutation': native_key_controls(), + 'K4_delivery_detector': detector_controls()} + geo = geometry(data['sources'], data['route_checks']) + table = table_checks(data) + algebra = read_algebra() + except ControlFailure as failure: + print('VOID: %s' % failure) + sys.exit(2) + except Exception as failure: + import traceback + traceback.print_exc() + print('VOID: unexpected %s' % type(failure).__name__) + sys.exit(2) + result = { + 'schema': 'oi.native-vread.v15', + 'base': 'bef79f6f3daec0b734a7d9c6a9423ed634852818', + 'inputs_sha256': PINS, 'q10_table_sha256': TABLE_SHA256, + 'permitted_reads_used': [ + 'eight old public ports, full raw triples at every tick through L+2', + 'old whole-q9 terminal record at L', + 'Native A single whole-V read: whole q9 triple at L+2'], + 'candidate_stage': 'unchanged native update V=U_L(q9) XOR H(XOR of six q9 neighbors at L+1)', + 'controls': controls, 'geometry': geo, 'table': table, + 'diagnostic_read_algebra': algebra, + 'verdict': verdict(geo), + 'not_established': [ + 'completeness of the declared ready-cone, source and bank inventory shared with ' + 'native_route_v13 (no undeclared readiness, preparation or correlation; no record ' + 'in the lineage with a deadline beyond L+1); the outcome is conditional on it', + 'privacy of the V read under a complement law in which no free key is uniform', + 'multi-tick stages, other reads, other layouts, readiness extensions', + 'previous-slice keys enter (iii) only; the outcome rule uses current-slice keys', + 'Native A geometry with its own pool; acceptance predicate; carrier law', + 'any access rule or preparation change; A1 or A2 reconstruction; OI generally'], + } + print(json.dumps(result, sort_keys=True, indent=1)) + + +if __name__ == '__main__': + main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/mutants/OUTPUT.txt b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/mutants/OUTPUT.txt new file mode 100644 index 000000000..1661d14f8 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/mutants/OUTPUT.txt @@ -0,0 +1,34 @@ +unmodified checker: exit 0, result.json reproduced (normal and -O) +K1_table_digest exit=2 CAUGHT VOID: K1 recomputed table digest +K1_review_pin exit=2 CAUGHT VOID: K1 input pin native_route_v13/review/result.json +K2_drop_parity exit=2 CAUGHT VOID: K2 keys are exactly the axial cells +K2_counter_vacuous exit=2 CAUGHT VOID: K2 countercontrol: shared off-axis cell not found +K3_packed_drops_old_local exit=2 CAUGHT VOID: K3 scalar and packed evaluators agree +K3_offaxis_key exit=2 CAUGHT VOID: K3 V is a permutation of the key +K3_scalar_H exit=2 CAUGHT VOID: K3 scalar and packed evaluators agree +K3_counter_axial exit=2 CAUGHT VOID: K3 countercontrol: off-axis cell must change two neighbors +K4_operand_out_of_cone exit=2 CAUGHT VOID: K4 positive: pinned key lets V separate operands +K4_key_out_of_cone exit=2 CAUGHT VOID: K4 null: uniform key gives equal V laws +K5_no_q10_extension exit=2 CAUGHT VOID: K5 anchor q10 ready ball +K5_no_banks exit=2 CAUGHT VOID: K5 anchor port-0 bank +K5_F8_pinned exit=2 CAUGHT VOID: K5 anchor F8 free +K6_q9_row_order exit=2 CAUGHT VOID: K6 old q9 is (0,s,s^a^b) +K5_receiver_threshold exit=2 CAUGHT VOID: K5 anchor receiver reached by a port-0 bank cell +K6_law exit=2 CAUGHT VOID: K6 v14 fewest-seed law +K6_f9_cell_shifted exit=2 CAUGHT VOID: K6 Native A f9 public slack 79 +K6_shell_bound exit=2 CAUGHT VOID: K6 shell bank count 8/4 +K6_v14_index exit=2 CAUGHT VOID: K6 v14 q10.A law count +G_uniform_table exit=2 CAUGHT VOID: G uniform key gives uniform V on table rows +K1_route_checks_pin exit=2 CAUGHT VOID: K1 input pin native_route_v13/checks.py +K2_propagation_drops_old_local exit=2 CAUGHT VOID: K2 propagated keys are the axial cells of both slices +K3_counter_per_n exit=2 CAUGHT VOID: K3 countercontrol: off-axis cell must change two neighbors for every n +K3_previous_key_shifted exit=2 CAUGHT VOID: K3 V is a permutation of the previous-slice key +K5_E_moved exit=2 CAUGHT VOID: K5 anchor E,N are their declared sources +K5_ready_list_retyped exit=2 CAUGHT VOID: K5 ready list equals native_route_v13 geometry() +K5_previous_radius exit=2 CAUGHT VOID: K5 anchor previous N position free +K5_reader_walk_disabled exit=2 CAUGHT VOID: K5 reader countercontrol: mutated route copy accepted +K5_reader_skips_method_calls exit=2 CAUGHT VOID: K5 reader countercontrol: mutated route copy accepted +K5_reader_skips_alias exit=2 CAUGHT VOID: K5 reader countercontrol: mutated route copy accepted +K5_selector_4T_dropped exit=2 CAUGHT VOID: K5 anchor junction_v4 selector and reset pulse are declared sources +D1_formula exit=2 CAUGHT VOID: D1 V field formulas +caught 32 of 32 mutants diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/mutants/make_mutants.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/mutants/make_mutants.py new file mode 100644 index 000000000..180608972 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/mutants/make_mutants.py @@ -0,0 +1,128 @@ +"""Mutation runs for native_vread_v15/checks.py. + +Each mutant replaces one exact text span of the checker (the span must occur +exactly once), runs the mutant with the interpreter flags of the replay, and +counts as caught only if it exits with status 2 and prints VOID with the +label prefix of the control it targets. The unmodified checker runs first +and must reproduce result.json byte for byte; otherwise no mutant runs. + +Usage: python3 -I -B mutants/make_mutants.py [--source-root DIR] +Output is deterministic and is retained as mutants/OUTPUT.txt. +""" +import argparse +from pathlib import Path +import subprocess +import sys +import tempfile + + +MUTANTS = [ + ('K1_table_digest', "TABLE_SHA256 = 'b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc'", + "TABLE_SHA256 = 'b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cd'", + 'K1 recomputed table digest'), + ('K1_review_pin', "'73780def8505d68d1967936116a88a49d471eb32aeb83d528ff3cd41025ae6e4'", + "'73780def8505d68d1967936116a88a49d471eb32aeb83d528ff3cd41025ae6e5'", + 'K1 input pin'), + ('K2_drop_parity', 'return d <= t and (t-d) % 2 == 0', 'return d <= t', + 'K2 keys are exactly the axial cells'), + ('K2_counter_vacuous', 'dist(c, origin) == n+1 and sum(1 for v in c if v) > 1', + 'dist(c, origin) == n+9 and sum(1 for v in c if v) > 1', + 'K2 countercontrol'), + ('K3_packed_drops_old_local', 'return (old[0] ^ b, old[1] ^ d, old[2] ^ (a ^ (b & d)))', + 'return (b, d, a ^ (b & d))', 'K3'), + ('K3_offaxis_key', 'key = tuple((n+1)*v for v in e)', + 'key = tuple((n+1)*v for v in e) if e != (1, 0, 0) else (n, 1, 0)', 'K3'), + ('K3_scalar_H', 'return (b << 2) | (d << 1) | (a ^ (b & d))', + 'return (b << 2) | (d << 1) | (a ^ b)', 'K3 scalar and packed evaluators agree'), + ('K3_counter_axial', 'off = (-n, 0, -1)', 'off = (-(n+1), 0, 0)', + 'K3 countercontrol: off-axis cell must change two neighbors'), + ('K4_operand_out_of_cone', 'operand = (0, 0, n+1)', 'operand = (0, 0, n+3)', + 'K4 positive'), + ('K4_key_out_of_cone', 'key = (-(n+1), 0, 0)', 'key = (-(n+3), 0, 0)', 'K4 null'), + ('K5_no_q10_extension', 'return balls, balls+[(Q10, L+1)]', 'return balls, balls', + 'K5 anchor q10 ready ball'), + ('K5_no_banks', 'if dl < t <= 2*L:', 'if dl < t <= dl:', 'K5 anchor port-0 bank'), + ('K5_F8_pinned', "'F10_pin': (-(L+1), S, 78),", "'F10_pin': (-(L+1), S, 78), 'F8': (-(L+1), S, 76),", + 'K5 anchor F8 free'), + ('K6_q9_row_order', 'zip((x, u, my, mr, a, b, 4, 5, 7)', 'zip((x, u, my, mr, b, a, 4, 5, 7)', + 'K6 old q9'), + ('K5_receiver_threshold', "return nearest, text, slack <= 2", "return nearest, text, slack <= -L", + 'K5 anchor receiver reached'), + ('K6_law', 'FEWEST_LAW = (1, 5, 1, 4, 1, 5)', 'FEWEST_LAW = (1, 5, 1, 4, 1, 4)', + 'K6 v14 fewest-seed law'), + ('K6_f9_cell_shifted', 'f9 = add(Q9, (-1, 0, 0), L+2)', 'f9 = add(Q9, (-1, 0, 0), L+3)', + 'K6 Native A f9 public slack 79'), + ('K6_shell_bound', 'min(2*L, t0+slack)', 'min(t0, t0+slack)', 'K6 shell bank count'), + ('K6_v14_index', 'counts[240-1] == 1456', 'counts[240] == 1456', 'K6 v14 q10.A law count'), + ('G_uniform_table', 'for m in range(8))', 'for m in range(4))', + 'G uniform key gives uniform V on table rows'), + ('K1_route_checks_pin', "'8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856'", + "'8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed857'", 'K1 input pin'), + ('K2_propagation_drops_old_local', 'acc = set(dep(t-2, p))', 'acc = set()', 'K2 propagated'), + ('K3_counter_per_n', 'off = (-n, 0, -1)', 'off = (-n, 0, -1) if n != 2 else (-(n+1), 0, 0)', + 'K3 countercontrol: off-axis cell must change two neighbors for every n'), + ('K3_previous_key_shifted', 'pkey = tuple(n*v for v in e)', 'pkey = tuple((n-1)*v for v in e)', + 'K3 V is a permutation of the previous-slice key'), + ('K5_E_moved', "'E': (0, -78, 78), 'N'", "'E': (0, -78, 79), 'N'", + 'K5 anchor E,N are their declared sources'), + ('K5_ready_list_retyped', 'balls += [((T, 0, 0), T), ((-T, 0, 0), T)', + 'balls += [((T, 0, 0), T+1), ((-T, 0, 0), T)', 'K5 ready list equals native_route_v13 geometry()'), + ('K5_previous_radius', 'if dist(cell, center) <= radius-1:', 'if dist(cell, center) <= radius:', + 'K5 anchor previous N position free'), + ('K5_reader_walk_disabled', ' route_writes_closed(function[0])\n', '', + 'K5 reader countercontrol: mutated route copy accepted'), + ('K5_reader_skips_method_calls', 'elif isinstance(node, ast.Call) and isinstance(node.func, ast.Attribute):', + 'elif False:', 'K5 reader countercontrol: mutated route copy accepted'), + ('K5_reader_skips_alias', + 'if node.value is not None and isinstance(node.value, (ast.Name, ast.Subscript, ast.Attribute)):', + 'if False:', 'K5 reader countercontrol: mutated route copy accepted'), + ('K5_selector_4T_dropped', "'selector_4T': (4*T, S+P, 0), ", '', + 'K5 anchor junction_v4 selector and reset pulse'), + ('D1_formula', 'pd ^ sa ^ (sb & sd)', 'pd ^ sa ^ (sa & sd)', 'D1 V field formulas'), +] + + +def run(script, root, optimized): + flags = ['-I', '-B']+(['-O'] if optimized else []) + done = subprocess.run([sys.executable]+flags+[str(script), '--source-root', str(root)], + capture_output=True, text=True) + return done.returncode, done.stdout + + +def main(): + here = Path(__file__).resolve().parent + package = here.parent + parser = argparse.ArgumentParser() + parser.add_argument('--source-root', type=Path, default=package.parent) + args = parser.parse_args() + root = args.source_root.resolve() + source = (package/'checks.py').read_text() + expected = (package/'result.json').read_text() + lines = [] + for optimized in (False, True): + code, out = run(package/'checks.py', root, optimized) + if code != 0 or out != expected: + print('VOID: unmodified checker does not reproduce result.json (-O=%s)' % optimized) + sys.exit(2) + lines.append('unmodified checker: exit 0, result.json reproduced (normal and -O)') + caught = 0 + with tempfile.TemporaryDirectory() as work: + for name, old, new, label in MUTANTS: + if source.count(old) != 1: + print('VOID: mutant %s span occurs %d times' % (name, source.count(old))) + sys.exit(2) + script = Path(work)/('%s.py' % name) + script.write_text(source.replace(old, new)) + code, out = run(script, root, False) + first = out.splitlines()[0] if out else '' + ok = code == 2 and first.startswith('VOID: '+label) + caught += ok + lines.append('%-28s exit=%d %-8s %s' % (name, code, 'CAUGHT' if ok else 'MISSED', first)) + lines.append('caught %d of %d mutants' % (caught, len(MUTANTS))) + print('\n'.join(lines)) + if caught != len(MUTANTS): + sys.exit(2) + + +if __name__ == '__main__': + main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/result.json new file mode 100644 index 000000000..ce5ab3ec9 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/result.json @@ -0,0 +1,409 @@ +{ + "base": "bef79f6f3daec0b734a7d9c6a9423ed634852818", + "candidate_stage": "unchanged native update V=U_L(q9) XOR H(XOR of six q9 neighbors at L+1)", + "controls": { + "K2_dependency_propagation": { + "cells_times_targets_compared": 15456, + "current_keys_axial_(n+1)e_previous_keys_axial_ne": true, + "n_range": [ + 1, + 6 + ], + "shared_offaxis_current_cells": 532 + }, + "K2_key_lemma": { + "keys_equal_six_axial_cells": true, + "lattice_sizes_n": [ + 2, + 7 + ], + "shared_offaxis_cells_seen": 772 + }, + "K3_native_key_permutation": { + "offaxis_cell_changes_two_neighbors_worlds": { + "polynomial": "6 of 12", + "sha256": "11 of 12" + }, + "previous_slice_key_worlds": 144, + "scalar_comparisons_all_8_lanes": 2304, + "worlds_two_backgrounds_n1_to_4_three_seeds_six_keys": 144 + }, + "K4_delivery_detector": { + "detector_rows": 1536, + "pinned_key_TV": 1, + "uniform_key_TV": 0 + } + }, + "diagnostic_read_algebra": { + "V.A": "p.A XOR Sigma.B", + "V.B": "p.B XOR Sigma.D", + "V.D": "p.D XOR Sigma.A XOR Sigma.B*Sigma.D", + "given_p_V_determines_whole_Sigma": true + }, + "geometry": { + "anchors": { + "E": [ + "PINNED", + "source E" + ], + "F10_position": [ + "PINNED", + "source F10_pin" + ], + "F8_position": [ + "FREE", + "complement" + ], + "N": [ + "PINNED", + "source N" + ], + "port0_bank_T+2": [ + "BANK", + "port 0 index deadline+2" + ], + "previous_N_position": [ + "FREE", + "complement" + ], + "previous_q9": [ + "PINNED", + "previous ready ball" + ], + "q10_axial": [ + "PINNED", + "source N" + ], + "q10_ready_interior": [ + "PINNED", + "ready ball" + ], + "reset_opposite": [ + "PINNED", + "source reset_opposite" + ], + "selector_4T": [ + "PINNED", + "source selector_4T" + ] + }, + "inherited_ready_balls": 24, + "inherited_sources": 1479, + "keys": [ + { + "balls_at_ready_margin": [ + 4 + ], + "cell": "((L+2),S,77)", + "direction": "+x", + "nearest_receiver": 4, + "nearest_receiver_distance": "L-476", + "operand_cell": false, + "ready_balls_containing": [ + 4 + ], + "ready_margin": -399, + "reason": "ready ball", + "receiver_reached_by_L+2": true, + "status": "PINNED" + }, + { + "balls_at_ready_margin": [ + 22, + 24 + ], + "cell": "(-(L+2),S,77)", + "direction": "-x", + "nearest_receiver": 3, + "nearest_receiver_distance": "L+79", + "operand_cell": false, + "ready_balls_containing": [], + "ready_margin": 2, + "reason": "complement", + "receiver_reached_by_L+2": false, + "status": "FREE" + }, + { + "balls_at_ready_margin": [ + 22, + 24 + ], + "cell": "(0,S+(L+2),77)", + "direction": "+y", + "nearest_receiver": 5, + "nearest_receiver_distance": "L+79", + "operand_cell": false, + "ready_balls_containing": [], + "ready_margin": 2, + "reason": "complement", + "receiver_reached_by_L+2": false, + "status": "FREE" + }, + { + "balls_at_ready_margin": [ + 22, + 24 + ], + "cell": "(0,S-(L+2),77)", + "direction": "-y", + "nearest_receiver": 0, + "nearest_receiver_distance": "341", + "operand_cell": false, + "ready_balls_containing": [], + "ready_margin": 2, + "reason": "complement", + "receiver_reached_by_L+2": true, + "status": "FREE" + }, + { + "balls_at_ready_margin": [ + 24 + ], + "cell": "(0,S,77+(L+2))", + "direction": "+z", + "nearest_receiver": 5, + "nearest_receiver_distance": "L+79", + "operand_cell": true, + "ready_balls_containing": [ + 24 + ], + "ready_margin": 0, + "reason": "source N", + "receiver_reached_by_L+2": false, + "status": "PINNED" + }, + { + "balls_at_ready_margin": [ + 11 + ], + "cell": "(0,S,77-(L+2))", + "direction": "-z", + "nearest_receiver": 5, + "nearest_receiver_distance": "L-75", + "operand_cell": false, + "ready_balls_containing": [ + 11 + ], + "ready_margin": -134, + "reason": "ready ball", + "receiver_reached_by_L+2": true, + "status": "PINNED" + } + ], + "largest_ready_radius_over_L": 1, + "local_sources_declared": 17, + "ports_within_10^6_of_q10": [ + [ + 2, + 448 + ], + [ + 3, + 448 + ], + [ + 4, + 1003 + ], + [ + 5, + 78 + ] + ], + "previous_slice_keys": [ + { + "cell": "((L+1),S,77)", + "direction": "+x", + "nearest_receiver": 4, + "nearest_receiver_distance": "L-477", + "operand_cell": false, + "previous_ready_margin": -399, + "reason": "previous ready ball", + "receiver_reached_by_L+2": true, + "status": "PINNED" + }, + { + "cell": "(-(L+1),S,77)", + "direction": "-x", + "nearest_receiver": 3, + "nearest_receiver_distance": "L+78", + "operand_cell": false, + "previous_ready_margin": 2, + "reason": "complement", + "receiver_reached_by_L+2": false, + "status": "FREE" + }, + { + "cell": "(0,S+(L+1),77)", + "direction": "+y", + "nearest_receiver": 5, + "nearest_receiver_distance": "L+78", + "operand_cell": false, + "previous_ready_margin": 2, + "reason": "complement", + "receiver_reached_by_L+2": false, + "status": "FREE" + }, + { + "cell": "(0,S-(L+1),77)", + "direction": "-y", + "nearest_receiver": 0, + "nearest_receiver_distance": "340", + "operand_cell": false, + "previous_ready_margin": 2, + "reason": "complement", + "receiver_reached_by_L+2": true, + "status": "FREE" + }, + { + "cell": "(0,S,77+(L+1))", + "direction": "+z", + "nearest_receiver": 5, + "nearest_receiver_distance": "L+78", + "operand_cell": true, + "previous_ready_margin": 0, + "reason": "previous ready ball", + "receiver_reached_by_L+2": false, + "status": "PINNED" + }, + { + "cell": "(0,S,77-(L+1))", + "direction": "-z", + "nearest_receiver": 5, + "nearest_receiver_distance": "L-76", + "operand_cell": false, + "previous_ready_margin": -134, + "reason": "previous ready ball", + "receiver_reached_by_L+2": true, + "status": "PINNED" + } + ], + "ready_ball_order": "ports 0-7 with their deadlines; (T,0,0),(-T,0,0),(4T,0,0) radius T; ((0,S,-68),R); ((-12R,0,0),R); ((0,S,68+k),R+k) for k=0..9; ((-48L,0,0),L); B_(L+1)(q10)", + "ready_list_equals_native_route_v13_geometry": true, + "route_reader_mutated_copies_refused": 8, + "shell_banks": [ + { + "active": false, + "distance_to_q9_over_L": 1, + "index_over_deadline": 1, + "port": 0, + "q9_neighbors_reached_by_L+1": [] + }, + { + "active": true, + "distance_to_q9_over_L": 2, + "index_over_deadline": 2, + "port": 0, + "q9_neighbors_reached_by_L+1": [ + "-y", + "-z" + ] + }, + { + "active": false, + "distance_to_q9_over_L": 1, + "index_over_deadline": 1, + "port": 2, + "q9_neighbors_reached_by_L+1": [] + }, + { + "active": true, + "distance_to_q9_over_L": 2, + "index_over_deadline": 2, + "port": 2, + "q9_neighbors_reached_by_L+1": [ + "+x", + "+y", + "-z" + ] + }, + { + "active": false, + "distance_to_q9_over_L": 1, + "index_over_deadline": 1, + "port": 3, + "q9_neighbors_reached_by_L+1": [] + }, + { + "active": true, + "distance_to_q9_over_L": 2, + "index_over_deadline": 2, + "port": 3, + "q9_neighbors_reached_by_L+1": [ + "-x", + "+y", + "-z" + ] + }, + { + "active": false, + "distance_to_q9_over_L": 1, + "index_over_deadline": 1, + "port": 5, + "q9_neighbors_reached_by_L+1": [] + }, + { + "active": true, + "distance_to_q9_over_L": 2, + "index_over_deadline": 2, + "port": 5, + "q9_neighbors_reached_by_L+1": [ + "+y", + "-z" + ] + } + ] + }, + "inputs_sha256": { + "branch_v10/local-controller/symmetric-result.json": "d8e7c1f5841192165beefb3fe35b069cc14cc93f2faa2bd68619aa7748b3db2f", + "native_decode_v14/result.json": "3172e7d013c09cdcdf638a7ace68e0eff98bb3cd0411e8666b76a8226ad59034", + "native_route_v13/checks.py": "8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856", + "native_route_v13/result.json": "762b9799db7448c4eecf2c994c8c68ff94e1be83a7f6884b4a36385505df5a02", + "native_route_v13/review/result.json": "73780def8505d68d1967936116a88a49d471eb32aeb83d528ff3cd41025ae6e4", + "parallel_v3/history_control/SOURCE-GEOMETRY.json": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d" + }, + "not_established": [ + "completeness of the declared ready-cone, source and bank inventory shared with native_route_v13 (no undeclared readiness, preparation or correlation; no record in the lineage with a deadline beyond L+1); the outcome is conditional on it", + "privacy of the V read under a complement law in which no free key is uniform", + "multi-tick stages, other reads, other layouts, readiness extensions", + "previous-slice keys enter (iii) only; the outcome rule uses current-slice keys", + "Native A geometry with its own pool; acceptance predicate; carrier law", + "any access rule or preparation change; A1 or A2 reconstruction; OI generally" + ], + "permitted_reads_used": [ + "eight old public ports, full raw triples at every tick through L+2", + "old whole-q9 terminal record at L", + "Native A single whole-V read: whole q9 triple at L+2" + ], + "q10_table_sha256": "b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc", + "schema": "oi.native-vread.v15", + "table": { + "accepted_old_q9_rows": 48, + "fewest_law_distinct_q10_codes_s0_s1": [ + 4, + 4 + ], + "fewest_law_q10A_xor_pD_equals_a_xor_b_rows": 48, + "fewest_law_rows_q10A_equals_s": 48, + "uniform_key_table_rows_x_residuals": 384, + "v14_q10A_law_count": 1456 + }, + "verdict": { + "bank_keys": [], + "free_keys_reaching_a_public_port_by_L+2": [ + "-y" + ], + "free_keys_unseen_by_public_records": [ + "-x", + "+y" + ], + "free_previous_slice_keys": [ + "-x", + "+y", + "-y" + ], + "outcome": "NEGATIVE_FOR_CONSTRUCTION", + "outcome_rule_uses": "current-slice keys, as preregistered", + "statement": "2 of the 5 non-q10 current-slice key cells of q9 at L+2 are free complement variables under the native_route_v13 contract that no permitted record through L+2 depends on: -x key (-(L+2),S,77) (nearest public receiver at distance L+79), +y key (0,S+(L+2),77) (nearest public receiver at distance L+79). For each such key and every fixed value of all other initial variables, V=U_(L+2)(q9) is a permutation of the key triple, while the old q9 record and every other permitted record through L+2 do not depend on it (nor does the private cell q10 at L+1). (i) No fixed readout of the whole V equals s for every complement value. (ii) If such a key is uniform given all other initial variables, V is uniform and independent of q10.A, s, the seeds and every other permitted record through L+2: under a uniform free key the read is harmless and carries no operand. (iii) Delivery through this read needs the 2 unseen free keys known, by pinning (a preparation change) or by reading the q9 neighbors at L+1 (an access change). The -y key (0,S-(L+2),77) is also free and reaches a public port by L+2 (port 0 at distance 341); it must also be determined, by pinning, by reading the q9 neighbor at L+1, or from the permitted port record, which is not computed here. If an unseen free key is uniform, V is independent of that port record by (ii); otherwise their joint law is not computed. The previous-slice -x key (-(L+1),S,77), +y key (0,S+(L+1),77), -y key (0,S-(L+1),77) are also free; each must also be determined in one of these ways. These are necessary conditions, not sufficient: shared complement cells also enter V. Neither change is adopted; the test stops there. The classification, and so the outcome, is conditional on the declared ready-cone, source and bank inventory shared with native_route_v13 being complete: no undeclared readiness, preparation or correlation, and no record in the lineage with a deadline beyond L+1 (the largest declared ready radius used). Part (ii) is conditional in addition on a uniform free key, which the inherited independent-uniform complement prior of junction_v4 supplies where that inherited prior is retained." + } +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/README.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/README.md new file mode 100644 index 000000000..1c5e35ce1 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/README.md @@ -0,0 +1,35 @@ +# Separate review of native_vread_v15 + +- `round1/`: review of `2c43d615a4…`. +- `round2/`: re-checks of `74541cf18b…`, `96bfc56c8d…` and `ca7d06de34…`. + +The reports cite paths in the reviewer's working directory, `rev910d/` for +round 1 and its subdirectory `recheck/` for round 2; read those as `round1/` +and `round2/`. The reports are kept as `round1/REPORT.md` and +`round2/REPORT.md.txt` (round 2 repeats a heading, which the repository's +duplicate check rejects in a `.md` file). Round 2's `../REVIEW.md` is +`round1/REPORT.md`. + +Kept: the reviewer's independent scripts and their outputs; the mutant +generator `round1/indep/rev_mutants.py` with its outputs; the three mutants +the reviewer wrote by hand, as unified diffs against `checks.py` at +`2c43d615` (`round1/indep/mutwork/*.py.diff`; `strict_plus_E_moved` is the +mutant reported as `K5_strict_anchor_with_E_moved`); and, for each +geometry-reader test, its changed checker and changed +`native_route_v13/checks.py` as unified diffs: `round2/asttest/` against +`checks.py` at `74541cf1`, `round2/asttest3/` against `checks.py` at +`96bfc56c`, and both against `native_route_v13/checks.py` as committed. + +In the two injection tests (`route_injection_call`, `route_injection_ifexp`) +the reviewer's absolute marker-file path is replaced by `MARKER`. Their +changed checkers pin the unredacted route file, so a rebuilt test stops at +the pin check unless that path is restored or the pin updated. + +Not kept, being byte-identical to committed files: the reviewer's copies and +replays of the round files; round 2's `mut_out.txt` and `mut3.txt` +(`mutants/OUTPUT.txt` at `74541cf1` and `96bfc56c`); round 1's `in/sg.json` +(`parallel_v3/history_control/SOURCE-GEOMETRY.json`); and the copies of +other repository files the reader tests placed beside each changed checker. +Not kept as duplicates: round 2's `rev_mutants3.txt`, identical to +`round2/rev_mutants_out.txt`. Not kept, being rebuilt by +`round1/indep/rev_mutants.py`: the other generated mutant checkers. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/SHA256SUMS new file mode 100644 index 000000000..88b911964 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/SHA256SUMS @@ -0,0 +1,41 @@ +9c814d2800e4b84b2e68354867620f9e16dd02e7156e0e343ff62b594893ff9f README.md +5ab22d4dd73fa6a6b208598a42fd5abe5e58097a42dd4b7fc9f078c0eaf5ad13 round1/REPORT.md +f706d4370ea876fd24ca0063df837a41683e99e226f21930a8fa859feaa969cd round1/indep/mutwork/K5_anchor_E_reason_strict.py.diff +3f83bb3f96729e2cacdee24b7c3fc71360cb02cd93ea78c0c92c43de9438125e round1/indep/mutwork/VERDICT_receiver_near_plus_y_only.py.diff +663fee865e6ff6cd34fe3b0ee607efcbba950f2dd4d716f9fa011bb8c49c4c08 round1/indep/mutwork/strict_plus_E_moved.py.diff +023bc90ddc31b68adef0aaad5edfaab9e99788f64d8bc563f655427e06d22004 round1/indep/rev_mutants.py +0251aef4857e531d2c0bb456f8e2be252d072be24b3be74cca34b33da9cf9d96 round1/indep/rev_mutants_out.txt +3904be7c3a59578e584acc1752adc393fef5f75cd7957db5515a2c52e472b2a5 round1/indep/verify.py +75c882af96775c3aeaaf1303ec6e0612fd8347c1e659a911ad16cdabdf469d68 round1/indep/verify_out.json +4a97d6bd16dcdc60426398a76f4b25cae867b2aa5cf4860f8d60509ceb85abb9 round2/REPORT.md.txt +ef2ed1889f9ef9e131cc31c3495508861c2562c9f6dd60e333c9d92fd6bdf893 round2/asttest/route_injection_call/checks.py.diff +b2e259c2a1e4081d88a2c390c149758917338edd769bf93a26e5903aff74e73e round2/asttest/route_injection_call/native_route_v13.checks.py.diff +470d9ddbadfc3fd33fa37f3eddc0da4a0d5be7b9112432961dd0b7bb139f73a8 round2/asttest/route_injection_ifexp/checks.py.diff +ffece62bd66e1ca826d1e13561072afc17bf8336c92a7f1d36e2b4c819c318c2 round2/asttest/route_injection_ifexp/native_route_v13.checks.py.diff +62b7b7e11ab9d8c99cf9fe2ac0e653b0bafbeb2cdecb8e11e3ba0f17f627c07d round2/asttest/route_method_append/checks.py.diff +1d4ca4869cc2d7de9424d3bd3a4adf7f1396ae030efbe8f9959ae3eb56bb67a6 round2/asttest/route_method_append/native_route_v13.checks.py.diff +fcfd288a626507e7623b049525c5ddea6d3bee4ebe153de8f9f0f1d620ab9eb5 round2/asttest/route_nested_extra_region/checks.py.diff +396722d7fc79d2ddf1759bc2e9665551c59f795c26d9a063113e6ed37077ed80 round2/asttest/route_nested_extra_region/native_route_v13.checks.py.diff +f8a999290f034d30bc85a0fffb939a20d35fc2df0699a3fa8a4a7e7ffddd53a8 round2/asttest/route_radius_changed/checks.py.diff +8b20c653013e10e19247fb3231c6e068d796b27b1a50bd25313680208f0012bc round2/asttest/route_radius_changed/native_route_v13.checks.py.diff +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 round2/asttest/route_unchanged/checks.py.diff +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 round2/asttest/route_unchanged/native_route_v13.checks.py.diff +66cc2736a68dfd932d06f835afc3c3246884d9ec45fd17c6d8f4aabc9bed2ccc round2/asttest3/container_alias/checks.py.diff +14bd73c5a0e24f994b5a4522dd94bff0c7c598ffa46fd19f42d2f8e9ac3bceef round2/asttest3/container_alias/native_route_v13.checks.py.diff +20e234587adf5066056e6211fe90330939d9faa3f2eed04861010266621d93cc round2/asttest3/dunder_iadd/checks.py.diff +edc11986c7b7fe02fb3c5647a4c8b4a332e29a987873a2a3772d7fa02509823f round2/asttest3/dunder_iadd/native_route_v13.checks.py.diff +387f48e3b92148551672944cbeca0baaeb51eefba777743e77d7bd499ce564b0 round2/asttest3/lambda_call/checks.py.diff +863942f7e4495f3d80f599564357ab84636d8fcbce0bd566ff04ea7336003a84 round2/asttest3/lambda_call/native_route_v13.checks.py.diff +0254effc5bd3df972afd125cf232234cc5ea0afc57de474168a171d9544e72fe round2/asttest3/nested_def_closure/checks.py.diff +39d596a1ca4825bc8b62e88e92ccd463c8015fb9dc10e4635f73edc67fa4561e round2/asttest3/nested_def_closure/native_route_v13.checks.py.diff +1ab5e5fec1e9423fab20a5e8a26c73a5b185336da29dd2f35367fb63a555831c round2/asttest3/slice_assign/checks.py.diff +63d50016e165e1b1f228e0f0bebee1f2215555c63a18955f2a1f1bf13616a9dd round2/asttest3/slice_assign/native_route_v13.checks.py.diff +7a7d29f9b65ba38e0e4fedd907fd8d34f8211d32e3cfe1f678bfbaf1a42b5914 round2/asttest3/tuple_unpack_target/checks.py.diff +8c6614d26f203ea066d00f554e9777a2d8ad1af178f3e734674808f58502a962 round2/asttest3/tuple_unpack_target/native_route_v13.checks.py.diff +a326fb6998609fb88d129639775e816d64df06e75dace70e94ca2075c128bad8 round2/asttest3/unbound_method_extend/checks.py.diff +7e8f08031ae98b83a01a320e651ef623ed62ffb257d4fe6d2c5f5bf1ee696d7e round2/asttest3/unbound_method_extend/native_route_v13.checks.py.diff +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 round2/asttest3/unchanged/checks.py.diff +e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 round2/asttest3/unchanged/native_route_v13.checks.py.diff +8af311e20136f1f69fb5aedba4775196c9d95509bcb6759aff88a671178aeb0d round2/indep_inventory.py +3b3b4f0ab5204b69eb562e8f60b5433b0b7fc0c256fcb6f9ef8d715faa74df52 round2/indep_inventory_out.json +b193d23beb9a15ac428c70d1ce8baac8bbd59de2140d10b0fcea052474e81ee0 round2/rev_mutants_out.txt diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/REPORT.md new file mode 100644 index 000000000..e171bdc10 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/REPORT.md @@ -0,0 +1,206 @@ +ACCEPT WITH NITS — 2c43d615a440c2b837dc19f410759d01a47e5362 (native_vread_v15, plan ead2c38842222786c68551484b708c19f29c83ab, base bef79f6f3daec0b734a7d9c6a9423ed634852818) + +Independent, read-only review. Package: `verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/`. +All Python ran with `python3 -I -B` from an empty directory on files exported with `git show`. Reviewer +material in this directory: `indep/verify.py` (own re-derivation, imports nothing from the author), +`indep/verify_out.json`, `indep/rev_mutants.py`, `indep/rev_mutants_out.txt`, `indep/mutwork/` (mutant +sources), `tree/` (export of the native-y-continuation directory at 2c43d615), `replay/` (recipe clone). + +## 1. Preregistration — PASS (with one wording nit) + +- ead2c388 adds only `PLAN.md` and its line in the directory `SHA256SUMS`; 2c43d615 adds only the + other seven package files and their seven manifest lines. `PLAN.md` is byte-identical between the + two commits; its SHA-256 `e24c1632…` matches PROVENANCE.json and both manifests. +- Outcome against the rule: rule 2 needs at least one non-q10 key that is FREE and passes the receiver + check. Two do (−x, +y; nearest receiver L+79), so NEGATIVE_FOR_CONSTRUCTION is the rule's outcome. + The text is generated from the measurements, and every control runs before any verdict code. +- Post-plan changes: + - **Parity in K2.** This corrects the code, not the rule. The plan's own proof sketch + (|c−q9| = L+2) already uses parity. I checked the parity form against the rule's own dependency + propagation over both initial slices for n = 1..6: 0 mismatches in 9225 cell tests. It weakens + nothing. + - **SHA-256 family and the relaxed countercontrol ("at least one SHA-256 world").** The plan says + the effect "must be observed", without saying how often. Whether one off-axis cell actually + changes two neighbours depends on the background under the nonlinear H. My random backgrounds + show it in 19 of 20 worlds, and the author's SHA-256 family in 11 of 12. A per-world reading + would therefore VOID under any family, while one observation is enough to show that the check + can discriminate. + - The relaxed rule would also pass with the polynomial family alone (my mutant + `STRENGTHEN_counter_polynomial_only`). So the added family is not what makes it pass. + - A stronger rule, at least one SHA-256 world for every n, also passes + (`STRENGTHEN_counter_every_n`). + - The positive K3 checks still have to hold in all 144 worlds, so the relaxation does not touch + the parts the verdict rests on. + - That both changes came before the verdict is the author's own statement. Git cannot confirm it, + because execution is one commit. It does not matter here: the verdict is the same under every + variant. + - **Extra anchors and the replaced (equivalent) mutant.** These only add strength. + +## 2. Central claim — PASS (verified independently, exact integers and Fractions) + +- **Axial-key lemma.** I propagated dependency sets from the native second-order rule, not from the + formula, for n = 1..6: + - The current-slice keys of V at n+1 are exactly the six cells (n+1)e. + - The previous-slice keys are exactly the six cells n·e. + - K2's countercontrol count of 772 equals Σ_{r=3..8}(4r²−4), the number of non-axial cells on + those L1 spheres. +- **Classification at actual scale** (`indep/verify_out.json`, C_keys): + + | Key | Cell | My classification | + | --- | --- | --- | + | +x | (L+2,S,77) | pinned; port-4 ball, margin −399 | + | −x | (−(L+2),S,77) | free; nearest ready ball at margin 2 (the q9 L-ball and B_(L+1)(q10)); nearest local source at distance 2 (F8, F10); inherited sources ≈ S away; on no bank ray | + | +y | (0,S+L+2,77) | free; ready margin 2; nearest source selector_y at 156 | + | −y | (0,−79,77) | free; ready margin 2; E at distance 2; inherited source at 156; reaches port 0 at 341 | + | +z | (0,S,S+156) | this is N, inside B_(L+1)(q10) | + | −z | (0,S,−S−2) | pinned; ball ((0,S,−68),R) | + + - Receiver distances: −x and +y are at L+79, −y at 341. Torus distance (side 256L+64T+1) equals L1 + distance for every receiver. +- **Is the inventory complete?** The 24-ball list is the same as in native_route_v13 `geometry()`, + native_seed_v12 and history_v11. + - branch_v10's lists, and history_v11's "selected" list ((0,S,76),L−1), ((0,S,77),L), + (±48L,0,0),L), are all contained in it. Checked as extra balls, they pin no further key. + - The herald source family (near 49L) and the remote program sources (inside the ±12R and ±48L + balls) are not in v15's list. They are at least 46L away, which is harmless. + - Grepping for B_(L+2), "blank shell" and "readiness extension" finds no declared region at L+2 + about q9. native_x_v12 explicitly declines a blank shell. + - I found no missing region. Completeness is still an input assumption that no control can detect + (finding 4). +- **The native_v11 unique-axial-path argument at actual scale.** It is an induction that holds for any + length and any background. At step j the old term (time j−2, distance j) and the five other + predecessors (distance j+1, time j−1) cannot depend on the key, so each step is + XOR∘H∘XOR, a bijection. This holds for the −x and +y paths of length L+1. + - p (distance L+2 at time L), q10 at L+1 (distance L+3) and the other four neighbours (L+3) do not + depend on the key, so V is a permutation of it. + - My random-background native worlds (n = 1..5, 4 seeds, 6 keys, 120 worlds) confirm: V and the key's + own neighbour are permutations, and q9 at n−1 and the other five neighbours are constant. +- **One-time pad, exact.** + - For every (p, c, rest), m ↦ p⊕H(c⊕m⊕rest) is a bijection (all 512 cases). + - I put arbitrary non-uniform rational weights on all other variables (p, q10 code, residual). With a + uniform key, Pr(V, others) = Pr(V)·Pr(others) exactly and V is uniform. + - Countercontrols: a key skewed by ±1/16, or a fixed key, gives exact dependence. + - On the retained table (fewest-seed law [1,5,1,4,1,5]): 48 accepted rows; old q9 = (0,s,s⊕a⊕b) on + 48; q10.A = s on 48; q10.A⊕p.D = a⊕b on 48; 4/4 distinct q10 codes; 384 uniform cases. v14 records + 1456 laws for readout 240. + +## 3. Scope and framing — PASS with nits + +- **The hybrid test case.** PLAN and REPORT say plainly that using Native A's read with the route_v13 + geometry is a test case and that neither contract is adopted. Native A's harmlessness argument came + from a fair F9. Here the same cell is an unrestricted complement cell, and REPORT says so. +- **The −y key** is left as "not computed" and is not implied harmless. Correct (but see finding 2). +- **Privacy is conditional on a uniform key** in the verdict, in not_established and in Scope. + - Exception: the REPORT "Result" summary paragraph states the one-time pad and harmlessness without + the condition (finding 1). +- **The negative is stated for this construction only**, with no OI-wide no-go. The untested items are + listed: multi-tick route to port 5 (78 ticks; checked: dist(q10, port 5) = 78, ports 2 and 3 at 448), + other reads and layouts, readiness extensions, previous-slice keys, Native A's geometry and pool, + acceptance predicate, carrier law, A1/A2, and OI generally. +- **Diagnostics.** No section called "Accounting for B and D" exists in REPORT.md or anywhere in the + native-y-continuation directory. I checked the nearest diagnostics instead: + - The read-algebra formulas hold on all 64 (p, Σ). + - "q10.A ⊕ p.D = a⊕b on 48 rows" and "4 distinct codes per s" are reproduced. + - The bank shell is reproduced: 8 coordinates, 4 active at L+2. + + | Bank coordinate | q9 neighbours reached at L+1 | + | --- | --- | + | port 0, deadline+2 | −y, −z | + | port 2, deadline+2 | +x, +y, −z | + | port 3, deadline+2 | −x, +y, −z | + | port 5, deadline+2 | +y, −z | + + This matches native_x_v12 ("M1/M2 and the first two post-deadline coordinates of rays 2, 3, 5"). + +## 4. Controls — PASS + +- The author's 21 mutants reproduce `mutants/OUTPUT.txt` byte for byte. +- I wrote 25 more mutants (`indep/rev_mutants_out.txt`). Every control-violating mutant VOIDs on its + own label: + - K1: v14 pin, truncated table, source count. + - K2: cone shifted to previous-slice semantics; cone widened; countercontrol threshold. + - K3: H made non-bijective in *both* evaluators (so they still agree); key planted in the previous + slice in both evaluators; countercontrol cell moved out of the cone; off-axis keys. + - K4: non-uniform (7-value) key law; operand outside the cone. + - K5: q9 ball inflated by 2 (caught by the F8-free anchor); q10 extension radius. + - K6: q9 payload codes; shell parity; s = x⊕u; E/N avoidance. + - G: a non-bijective map in the table check. +- **Survivor: `K5_E_moved`.** Moving E in the classifier's source list leaves exit 0 and the same + verdict. E, N, F10 and the q10-axial cell all lie in B_(L+1)(q10), so these anchors pass through the + ready ball whatever the source list says (finding 3). Requiring the (status, reason) tuple catches it: + `K5_strict_anchor_with_E_moved` VOIDs. +- **Verdict-change mutants.** These are not controls. They show the outcome responds to the inventory: + - a zero-radius ready region at the −x and +y keys → NOT_DECIDED_BY_THIS_PLAN; + - at −x only → NEGATIVE with +y alone; + - a receiver near +y → NEGATIVE with −x alone. +- **The countercontrols do not reproduce the claim.** + - K2's counts the cells that reach two or more neighbours. + - K3's off-axis cell must change two or more neighbours, the opposite of the key property. + - K4's pinned-key positive (total variation 1) is the complement of the null. + +## 5. Replay — PASS + +- Normal and `-O` runs are byte-identical to `result.json` (0.8 s). +- The package `SHA256SUMS` (7 entries) and the directory `SHA256SUMS` (389 entries; the set equals all + files except itself) both verify. +- The REPORT recipe works in a fresh clone (`replay/`, a shallow clone of the branch, checkout of + 2c43d615): checker normal and `-O`, mutant run, and `sha256sum -c` all pass. +- No `__pycache__` was produced, and `git status --ignored` is clean. + +## 6. Hygiene — PASS + +- The new files contain no absolute paths, secrets, e-mail addresses or IP addresses. +- The diff from bef79f6f contains only the 8 new package files and the directory `SHA256SUMS`. +- Run from the clone root: + - `tools/duplicate_check.py`: OK, for the whole tree and for the package. + - `tools/voice_check.py`: OK. + - `tools/artifact_placement_check.py`: OK; the self-test passes. +- The worktree and HEAD are unchanged afterwards. +- REPORT.md's quoted verdict, unwrapped, equals `result.json` `verdict.statement` exactly + (1262 characters). The heredoc kept `$D` and the backticks literally, and the numeric claims match + result.json. + +## Findings (ranked), with fixes + +1. **(Nit, claim/evidence boundary.)** The REPORT "Result" summary says the whole-V read "is a + one-time-pad ciphertext … keyed by complement cells" under the route_v13 contract, and that "Its + harmlessness and its emptiness have the same cause". Both are stated without a condition. Under the + contract the key law is unrestricted. Without a uniform key, only (i) is established: V is a keyed + permutation and no fixed readout works for every complement value. + *Fix:* write "under a uniform free key, the read is a one-time pad …; its harmlessness then has the + same cause as its emptiness". +2. **(Nit, generated verdict text.)** The verdict names two unseen keys, then says "needs at least these + 3 free key cells known". + - For the −y key, the list "pinning … or reading their q9 neighbours" is not exhaustive: port 0's + permitted record depends on it and might determine it. This is not computed. + - "their joint law is not computed" applies only when no unseen key is uniform. Under (ii), V is + independent of port 0's record. + - The plural is wrong when there is one extra key: "1 further such keys". + + *Fix:* "needs the 2 unseen free keys known (pinning, or reading their q9 neighbours at L+1); the −y + key must also be determined, by pinning, by reading, or from port 0's record (not computed)". Fix + the plural. +3. **(Nit, vacuous anchors.)** The K5 anchors for E, N, F10 and the q10-axial cell test only that the + status is PINNED. All four lie in B_(L+1)(q10), so these anchors do not test the local source list + (mutant `K5_E_moved` survives). The outcome is unaffected, because only N coincides with a key. + *Fix:* compare the full (status, reason) tuple, as is already done for `q10_ready_interior`. +4. **(Nit, inventory provenance.)** The ready-ball list is retyped, not tied to + `native_route_v13/checks.py`. No control can detect a missing region, and the verdict-change + mutants show one would flip the outcome. I compared the lists by hand and found none missing. + *Fix:* pin `native_route_v13/checks.py` by hash and assert that the retyped list equals the one + parsed from its `geometry()` lines. Also record the margin-2 position of the −x and +y keys + relative to the q9 L-ball and the q10 (L+1)-ball. +5. **(Nit, countercontrol strength.)** Strengthen K3's countercontrol to "at least one SHA-256 world + for every n". It passes. Also say in PROVENANCE that the relaxed rule would pass with the + polynomial family alone. +6. **(Nit, wording vs plan.)** K3 compares the scalar and bit-parallel evaluators on 3 of 8 key values + (432 = 144×3). The plan says the two "must agree". *Fix:* compare all 8 lanes, which is cheap. +7. **(Nit.)** K2 brute-forces the lemma against the cone formula, not the dynamics. *Fix:* compute the + cones by propagating dependency sets through the rule. My version confirms the formula for n ≤ 6. +8. **(Nit, cheap closure.)** "Previous-slice key cells (not classified)" can be closed in a few lines. + My classification: the q9+(L+1)e cells in the previous slice are free for −x, +y and −y + (ready margin 1); +x and −z are pinned; +z is inside the q10 cone. The outcome is unchanged. +9. **(Cosmetic.)** + - In verdict (i), "nonconstant" is redundant: constant readouts also fail. + - The verdict lists "q10 at L+1" among the "permitted records", but q10 is private. + - The recipe's `` placeholder should be filled in once the commit is published. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/mutwork/K5_anchor_E_reason_strict.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/mutwork/K5_anchor_E_reason_strict.py.diff new file mode 100644 index 000000000..b128d70f7 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/mutwork/K5_anchor_E_reason_strict.py.diff @@ -0,0 +1,11 @@ +--- checks.py ++++ checks.py +@@ -379,7 +379,7 @@ + 'q10_ready_interior': classify((0, S, 78+L), inv, balls), + } + need(anchors['q10_axial'][0] == 'PINNED', 'K5 anchor q10 axial pinned') +- need(anchors['E'][0] == 'PINNED' and anchors['N'][0] == 'PINNED', 'K5 anchor E,N pinned') ++ need(tuple(anchors['E']) == ('PINNED','source E') and tuple(anchors['N']) == ('PINNED','source N'), 'K5 anchor E,N pinned') + need(anchors['F10_position'][0] == 'PINNED', 'K5 anchor F10 pinned') + need(anchors['F8_position'][0] == 'FREE', 'K5 anchor F8 free') + need(anchors['port0_bank_T+2'][0] == 'BANK', 'K5 anchor port-0 bank') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/mutwork/VERDICT_receiver_near_plus_y_only.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/mutwork/VERDICT_receiver_near_plus_y_only.py.diff new file mode 100644 index 000000000..5e8ca78dd --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/mutwork/VERDICT_receiver_near_plus_y_only.py.diff @@ -0,0 +1,11 @@ +--- checks.py ++++ checks.py +@@ -289,7 +289,7 @@ + ((T, P, 0), (0, 1, 0), S), ((-T, P, 0), (0, 1, 0), S), + ((4*T, P, 0), (0, 1, 0), S), ((0, S, 0), (0, 1, 0), S), + ((12*R, 0, 0), (-1, 0, 0), R), ((48*L, 0, 0), (1, 0, 0), L)] +-RECEIVERS = [p for p, _, _ in PORTS]+[(-48*L, 0, 0)] ++RECEIVERS = [p for p, _, _ in PORTS]+[(-48*L, 0, 0), (0, S+L+2, 0)] + + + def ready_balls(): diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/mutwork/strict_plus_E_moved.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/mutwork/strict_plus_E_moved.py.diff new file mode 100644 index 000000000..293e63091 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/mutwork/strict_plus_E_moved.py.diff @@ -0,0 +1,20 @@ +--- checks.py ++++ checks.py +@@ -303,7 +303,7 @@ + + + def local_sources(): +- return {'O': (0, 0, 0), 'W': (0, -76, 76), 'E': (0, -78, 78), 'N': (0, S, S+156), ++ return {'O': (0, 0, 0), 'W': (0, -76, 76), 'E': (0, -78, 79), 'N': (0, S, S+156), + 'Q': (0, S, S+136), 'C': (0, S, S+150), 'G': (0, S, S+152), 'J': (0, S, S+154), + 'Kplus': (1, S, S+153), 'Kminus': (-1, S, S+153), + 'selector_y': (0, 2*S, 0), 'selector_plus': (T, S+P, 0), +@@ -379,7 +379,7 @@ + 'q10_ready_interior': classify((0, S, 78+L), inv, balls), + } + need(anchors['q10_axial'][0] == 'PINNED', 'K5 anchor q10 axial pinned') +- need(anchors['E'][0] == 'PINNED' and anchors['N'][0] == 'PINNED', 'K5 anchor E,N pinned') ++ need(tuple(anchors['E']) == ('PINNED','source E') and tuple(anchors['N']) == ('PINNED','source N'), 'K5 anchor E,N pinned') + need(anchors['F10_position'][0] == 'PINNED', 'K5 anchor F10 pinned') + need(anchors['F8_position'][0] == 'FREE', 'K5 anchor F8 free') + need(anchors['port0_bank_T+2'][0] == 'BANK', 'K5 anchor port-0 bank') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/rev_mutants.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/rev_mutants.py new file mode 100644 index 000000000..94789b1a4 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/rev_mutants.py @@ -0,0 +1,113 @@ +"""Reviewer mutants of native_vread_v15/checks.py (beyond the author's 21). + +Usage: python3 -I -B rev_mutants.py +Each mutant replaces one exact span (must occur exactly once unless count given). +Reports exit code, first VOID line or verdict outcome + free-key lists. +""" +import json +import subprocess +import sys +from pathlib import Path + +CHECKS, ROOT, WORK = (Path(a) for a in sys.argv[1:4]) +SRC = CHECKS.read_text() + +M = [ + # K1 + ('K1_v14_pin', "'3172e7d013c09cdcdf638a7ace68e0eff98bb3cd0411e8666b76a8226ad59034'", + "'3172e7d013c09cdcdf638a7ace68e0eff98bb3cd0411e8666b76a8226ad59035'"), + ('K1_table_truncated', "table = route['q10_table_hex']", "table = route['q10_table_hex'][:-1]"), + ('K1_source_count', "need(len(sources) == 1479", "need(len(sources) == 1478"), + # K2: cone formula shifted to previous-slice semantics (wrong for current cells) + ('K2_cone_shift', 'return d <= t and (t-d) % 2 == 0', 'return d <= t-1 and (t-1-d) % 2 == 0'), + ('K2_cone_wider', 'return d <= t and (t-d) % 2 == 0', 'return d <= t+2 and (t-d) % 2 == 0'), + ('K2_counter_threshold', 'if len(reached) >= 2 and', 'if len(reached) >= 7 and'), + # K3: H not bijective in BOTH evaluators (scalar h and packed rule) + ('K3_H_nonbijective_both', 'return (old[0] ^ b, old[1] ^ d, old[2] ^ (a ^ (b & d)))', + 'return (old[0] ^ b, old[1] ^ d, old[2] ^ (b & d))'), + # K3: key planted in previous slice in both evaluators + ('K3_key_prev_slice_both', None, None), + # K3 countercontrol out of cone + ('K3_counter_out_of_cone', 'off = (-n, 0, -1)', 'off = (-n, 0, -3)'), + # K3: other-neighbour independence check made vacuous AND key that leaks into a second + # neighbour: off-axis key replaces the axial one (should fail 'other neighbors independent') + ('K3_key_offaxis_all', 'key = tuple((n+1)*v for v in e)', + 'key = tuple((n+1)*v for v in e) if e[2] == 0 else (1, 0, n*e[2])'), + # K4 null with non-uniform key (7 of 8 values) + ('K4_nonuniform_key', 'laws = [Counter(table[o, kv] for kv in range(8)) for o in range(8)]', + 'laws = [Counter(table[o, kv] for kv in range(7)) for o in range(8)]'), + # K4 positive with operand out of V's cone but inside... operand in previous slice => no effect + ('K4_operand_far', 'operand = (0, 0, n+1)', 'operand = (0, 0, n+2)'), + # K5: inflate q9 ready ball by 2 -> pins F8 and the -x/+y keys + ('K5_q9_ball_inflated', 'balls += [((0, S, 68+k), R+k) for k in range(10)]', + 'balls += [((0, S, 68+k), R+k+(2 if k == 9 else 0)) for k in range(10)]'), + # K5: E moved off its declared position in the classifier inventory + ('K5_E_moved', "'E': (0, -78, 78), 'N'", "'E': (0, -78, 79), 'N'"), + # K5: q10 extension radius too small + ('K5_q10_radius', 'return balls, balls+[(Q10, L+1)]', 'return balls, balls+[(Q10, L-1)]'), + # K6: old q9 fixed payload codes changed + ('K6_q9_codes', 'zip((x, u, my, mr, a, b, 4, 5, 7)', 'zip((x, u, my, mr, a, b, 4, 5, 6)'), + # K6: shell parity flipped + ('K6_shell_parity', 'active = (sum(cell)-sum(Q9)-(L+2)) % 2 == 0', 'active = (sum(cell)-sum(Q9)-(L+1)) % 2 == 0'), + # K6: s definition wrong (x^u instead of x^u^a) + ('K6_s_definition', " s = x ^ u ^ a\n need(old_q9", " s = x ^ u\n need(old_q9"), + # K6: E,N ready-ball avoidance check against wrong E (adjacent cell in q10 extension? use E inside ball) + ('K6_EN_avoid', 'for pos in ((0, -78, 78), (0, S, S+156)):', 'for pos in ((0, -78, 78), (0, S, S+80)):'), + # G: uniform-table check with non-bijective H applied only in the table check + ('G_table_nonbijective', 'Vs = Counter(p ^ h(c ^ m ^ rest) for m in range(8))', + 'Vs = Counter(p ^ (h(c ^ m ^ rest) & 6) for m in range(8))'), + # Verdict-change mutants (not controls): a missing ready region pinning the -x and +y keys + ('VERDICT_missing_region_pins_keys', "balls += [((-48*L, 0, 0), L)]\n need(len(balls) == 24", + "balls += [((-48*L, 0, 0), L)]\n balls += [((-(L+2), S, 77), 0), ((0, S+L+2, 77), 0)]\n need(len(balls) == 26"), + ('VERDICT_missing_region_pins_minus_x', "balls += [((-48*L, 0, 0), L)]\n need(len(balls) == 24", + "balls += [((-48*L, 0, 0), L)]\n balls += [((-(L+2), S, 77), 0)]\n need(len(balls) == 25"), + ('VERDICT_receiver_near_keys', 'RECEIVERS = [p for p, _, _ in PORTS]+[(-48*L, 0, 0)]', + 'RECEIVERS = [p for p, _, _ in PORTS]+[(-48*L, 0, 0), (-(L+2), S, 0), (0, S+L+2, 0)]'), + # Countercontrol strengthened: require it for every n in SHA-256 worlds (does it still hold?) + ('STRENGTHEN_counter_every_n', "need(any(counter['sha256']), 'K3 countercontrol: off-axis cell must change two neighbors')", + "need(any(counter['sha256']), 'K3 countercontrol: off-axis cell must change two neighbors')\n" + " need(all(any(counter['sha256'][3*i:3*i+3]) for i in range(4)), 'K3 countercontrol per n')"), + ('STRENGTHEN_counter_polynomial_only', "need(any(counter['sha256'])", "need(any(counter['polynomial'])"), +] + + +def apply(name, old, new): + if name == 'K3_key_prev_slice_both': + s = SRC + for o, n in ((' if t == 0 and p in planted:\n return planted[p]', + ' if t == -1 and p in planted:\n return planted[p]'), + (' if t == 0 and p in assignment:\n return assignment[p]', + ' if t == -1 and p in assignment:\n return assignment[p]')): + if s.count(o) != 1: + return None, 'span count %d' % s.count(o) + s = s.replace(o, n) + return s, None + if SRC.count(old) != 1: + return None, 'span count %d' % SRC.count(old) + return SRC.replace(old, new), None + + +def main(): + WORK.mkdir(parents=True, exist_ok=True) + lines = [] + for name, old, new in M: + text, err = apply(name, old, new) + if err: + lines.append('%-36s SPAN-ERROR %s' % (name, err)) + continue + path = WORK/(name+'.py') + path.write_text(text) + done = subprocess.run([sys.executable, '-I', '-B', str(path), '--source-root', str(ROOT)], + capture_output=True, text=True) + out = done.stdout + if done.returncode == 0: + v = json.loads(out)['verdict'] + desc = '%s free=%s public=%s' % (v['outcome'], v['free_keys_unseen_by_public_records'], + v['free_keys_reaching_a_public_port_by_L+2']) + else: + desc = out.splitlines()[0] if out else ('stderr: '+done.stderr.strip().splitlines()[-1]) + lines.append('%-36s exit=%d %s' % (name, done.returncode, desc)) + print('\n'.join(lines)) + + +main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/rev_mutants_out.txt b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/rev_mutants_out.txt new file mode 100644 index 000000000..fc1b0b8e0 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/rev_mutants_out.txt @@ -0,0 +1,28 @@ +K1_v14_pin exit=2 VOID: K1 input pin native_decode_v14/result.json +K1_table_truncated exit=2 VOID: K1 q10 table length +K1_source_count exit=2 VOID: K1 inherited source inventory +K2_cone_shift exit=2 VOID: K2 keys are exactly the axial cells +K2_cone_wider exit=2 VOID: K2 keys are exactly the axial cells +K2_counter_threshold exit=2 VOID: K2 countercontrol: shared off-axis cell not found +K3_H_nonbijective_both exit=2 VOID: K3 V is a permutation of the key +K3_key_prev_slice_both exit=2 VOID: K3 V is a permutation of the key +K3_counter_out_of_cone exit=2 VOID: K3 countercontrol: off-axis cell must change two neighbors +K3_key_offaxis_all exit=2 VOID: K3 V is a permutation of the key +K4_nonuniform_key exit=2 VOID: K4 null: uniform key gives equal V laws +K4_operand_far exit=2 VOID: K4 positive: pinned key lets V separate operands +K5_q9_ball_inflated exit=2 VOID: K5 anchor F8 free +K5_E_moved exit=0 NEGATIVE_FOR_CONSTRUCTION free=['-x', '+y'] public=['-y'] +K5_q10_radius exit=2 VOID: K5 anchor q10 ready ball +K6_q9_codes exit=2 VOID: K6 old q9 is (0,s,s^a^b) +K6_shell_parity exit=2 VOID: K6 active banks at L+2 +K6_s_definition exit=2 VOID: K6 old q9 is (0,s,s^a^b) +K6_EN_avoid exit=2 VOID: K6 E,N avoid inherited ready balls +G_table_nonbijective exit=2 VOID: G uniform key gives uniform V on table rows +VERDICT_missing_region_pins_keys exit=0 NOT_DECIDED_BY_THIS_PLAN free=[] public=['-y'] +VERDICT_missing_region_pins_minus_x exit=0 NEGATIVE_FOR_CONSTRUCTION free=['+y'] public=['-y'] +VERDICT_receiver_near_keys exit=2 VOID: K6 Native A f8 public slack 77 +STRENGTHEN_counter_every_n exit=0 NEGATIVE_FOR_CONSTRUCTION free=['-x', '+y'] public=['-y'] +STRENGTHEN_counter_polynomial_only exit=0 NEGATIVE_FOR_CONSTRUCTION free=['-x', '+y'] public=['-y'] +VERDICT_receiver_near_plus_y_only exit=0 NEGATIVE_FOR_CONSTRUCTION free=['-x'] public=['+y', '-y'] +K5_anchor_E_reason_strict exit=0 NEGATIVE_FOR_CONSTRUCTION free=['-x', '+y'] public=['-y'] +K5_strict_anchor_with_E_moved exit=2 VOID: K5 anchor E,N pinned diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/verify.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/verify.py new file mode 100644 index 000000000..536f5fb31 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/verify.py @@ -0,0 +1,394 @@ +"""Independent reviewer re-derivation for native_vread_v15. Imports nothing from the author. + +Usage: python3 -I -B verify.py +""" +import hashlib +import json +import random +import sys +from fractions import Fraction +from itertools import product +from pathlib import Path + +ROOT = Path(sys.argv[1]) +OUT = {} +FAIL = [] + + +def chk(ok, label): + if not ok: + FAIL.append(label) + return ok + + +DIRS = [(1, 0, 0), (-1, 0, 0), (0, 1, 0), (0, -1, 0), (0, 0, 1), (0, 0, -1)] + + +def plus(p, q, k=1): + return (p[0]+k*q[0], p[1]+k*q[1], p[2]+k*q[2]) + + +def l1(p, q): + return abs(p[0]-q[0])+abs(p[1]-q[1])+abs(p[2]-q[2]) + + +def H(v): + # H(A,B,D) = (B, D, A xor B*D), code 4A+2B+D + A, B, Dd = v >> 2 & 1, v >> 1 & 1, v & 1 + return 4*B+2*Dd+(A ^ (B & Dd)) + + +# ------------------------------------------------------------ A. dependence cones +def dep_cones(nmax): + """dep[(t,p)] = frozenset of initial labels (slice, pos); slice 0 = current, -1 = previous.""" + rad = nmax+3 + memo = {} + + def dep(t, p): + key = (t, p) + if key in memo: + return memo[key] + if t == 0: + r = frozenset({(0, p)}) + elif t == -1: + r = frozenset({(-1, p)}) + else: + s = set(dep(t-2, p)) + for e in DIRS: + s |= dep(t-1, plus(p, e)) + r = frozenset(s) + memo[key] = r + return r + res = {} + for n in range(1, nmax+1): + o = (0, 0, 0) + own = dep(n-1, o) + nb = {e: dep(n, e) for e in DIRS} + keys = {} + for e in DIRS: + others = set(own) + for f in DIRS: + if f != e: + others |= nb[f] + keys[e] = sorted(nb[e]-others) + cur = sorted(c for e in DIRS for c in keys[e] if c[0] == 0) + prev = sorted(c for e in DIRS for c in keys[e] if c[0] == -1) + res[n] = (cur, prev) + chk(set(cur) == {(0, plus((0, 0, 0), e, n+1)) for e in DIRS}, 'A current keys axial n=%d' % n) + chk(set(prev) == {(-1, plus((0, 0, 0), e, n)) for e in DIRS}, 'A previous keys axial n=%d' % n) + # parity/dist formula check against the cone + for (t, p), s in list(memo.items()): + pass + # formula: current cell c in dep(t,w) iff l1<=t and (t-l1) even ; previous iff l1<=t-1 and parity + bad = 0 + tested = 0 + for (t, p), s in memo.items(): + if t < 1 or p not in [(0, 0, 0)]+DIRS: + continue + for c in product(range(-rad, rad+1), repeat=3): + if l1(c, p) > t+1: + continue + tested += 1 + d = l1(c, p) + if ((0, c) in s) != (d <= t and (t-d) % 2 == 0): + bad += 1 + if ((-1, c) in s) != (d <= t-1 and (t-1-d) % 2 == 0): + bad += 1 + chk(bad == 0, 'A cone formula') + return {'n_range': [1, nmax], 'formula_mismatches': bad, 'formula_cells_tested': tested, + 'current_keys_axial_(n+1)e': True, 'previous_keys_axial_ne': True} + + +# --------------------------------------------------- B. functional permutation tests +def world(rng_seed, n, planted): + rng = random.Random(rng_seed) + bg = {} + memo = {} + + def init(t, p): + if t == 0 and p in planted: + return planted[p] + k = (t, p) + if k not in bg: + bg[k] = rng.randrange(8) + return bg[k] + + def U(t, p): + if t in (0, -1): + return init(t, p) + k = (t, p) + if k in memo: + return memo[k] + acc = 0 + for e in DIRS: + acc ^= U(t-1, plus(p, e)) + v = U(t-2, p) ^ H(acc) + memo[k] = v + return v + return U + + +def perm_tests(nmax, seeds): + o = (0, 0, 0) + worlds = 0 + off_two = {} + for n in range(1, nmax+1): + for sd in seeds: + for e in DIRS: + key = plus(o, e, n+1) + Vs, own, nbs = [], [], {f: [] for f in DIRS} + for kv in range(8): + # same background seed for all key values: rng draws are position-ordered by first use; + # make background deterministic per (t,p) instead. + U = world2(sd, {key: kv}) + Vs.append(U(n+1, o)) + own.append(U(n-1, o)) + for f in DIRS: + nbs[f].append(U(n, f)) + chk(len(set(Vs)) == 8, 'B V perm n=%d e=%s' % (n, e)) + chk(len(set(own)) == 1, 'B own q9 const') + chk(len(set(nbs[e])) == 8, 'B own neighbour perm') + chk(all(len(set(nbs[f])) == 1 for f in DIRS if f != e), 'B other neighbours const') + worlds += 1 + # countercontrol: off-axis cell at distance n+1 with two nonzero comps + off = (-n, 0, -1) + changed = set() + for kv in range(8): + U = world2(sd, {off: kv}) + changed.add(tuple(U(n, f) for f in DIRS)) + per = [len({c[i] for c in changed}) > 1 for i in range(6)] + off_two.setdefault(n, []).append(sum(per)) + return worlds, off_two + + +def world2(seed, planted): + """Background is a deterministic hash-free PRNG of (seed,t,p) so changing the key changes nothing else.""" + memo = {} + + def init(t, p): + if t == 0 and p in planted: + return planted[p] + r = random.Random('%d|%d|%d|%d|%d' % (seed, t, p[0], p[1], p[2])) + return r.randrange(8) + + def U(t, p): + if t in (0, -1): + return init(t, p) + k = (t, p) + if k in memo: + return memo[k] + acc = 0 + for e in DIRS: + acc ^= U(t-1, plus(p, e)) + v = U(t-2, p) ^ H(acc) + memo[k] = v + return v + return U + + +# ------------------------------------------------------------ C. actual scale +T = 185 +P = 12*840**185 +S = P+T +R = S+68 +L = R+9 +Q9 = (0, S, 77) +Q10 = (0, S, 78) +PORTS = [(0, T, 0), (0, 0, -8*T), (T, P, 0), (-T, P, 0), (4*T, P, 0), (0, S, 0), (12*R, 0, 0), (48*L, 0, 0)] +DEADL = [T, T, S, S, S, S, R, L] +PDIR = [(0, -1, 0), (0, 0, -1), (0, 1, 0), (0, 1, 0), (0, 1, 0), (0, 1, 0), (-1, 0, 0), (1, 0, 0)] +READY = list(zip(PORTS, DEADL)) +READY += [((T, 0, 0), T), ((-T, 0, 0), T), ((4*T, 0, 0), T), ((0, S, -68), R), ((-12*R, 0, 0), R)] +READY += [((0, S, 68+k), R+k) for k in range(10)] +READY += [((-48*L, 0, 0), L)] +EXTRA_READY = [(Q10, L+1), + # branch_v10 / history_v11 variants + ((0, S, 77), L), ((0, S, 76), L-1), ((48*L, 0, 0), L), ((0, S, 70), R+2), ((0, S, 71), R+3), + ((12*R, 0, 0), R)] +LOCAL = {'O': (0, 0, 0), 'W': (0, -76, 76), 'E': (0, -78, 78), 'N': (0, S, S+156), + 'Q': (0, S, S+136), 'C': (0, S, S+150), 'G': (0, S, S+152), 'J': (0, S, S+154), + 'K+': (1, S, S+153), 'K-': (-1, S, S+153), + 'selY': (0, 2*S, 0), 'sel+': (T, P+S, 0), 'sel-': (-T, P+S, 0), + 'F10': (-(L+1), S, 78), 'F8(free)': (-(L+1), S, 76), 'zsrc': (-48*L, -L, 0)} +RECV = PORTS+[(-48*L, 0, 0)] +SIDE = 256*L+64*T+1 + + +def tdist(p, q): + return sum(min(abs(a-b) % SIDE, SIDE-abs(a-b) % SIDE) for a, b in zip(p, q)) + + +def on_bank(cell): + hits = [] + for i, (p, d, dl) in enumerate(zip(PORTS, PDIR, DEADL)): + ax = [j for j in range(3) if d[j]][0] + if all(cell[j] == p[j] for j in range(3) if j != ax): + t = (cell[ax]-p[ax])*d[ax] + hits.append((i, t, dl < t <= 2*L)) + return hits + + +def rel(v): + return v-L if abs(v-L) < 10**6 else v + + +def actual_scale(sources): + rows = {} + for slice_name, k in (('current', L+2), ('previous', L+1)): + for e in DIRS: + c = plus(Q9, e, k) + row = { + 'in_ready': [i for i, (cc, r) in enumerate(READY) if l1(c, cc) <= r], + 'in_extra_ready': [i for i, (cc, r) in enumerate(EXTRA_READY) if l1(c, cc) <= r], + 'min_ready_margin': min(l1(c, cc)-r for cc, r in READY+EXTRA_READY), + 'local_source_hit': [n for n, p in LOCAL.items() if p == c], + 'min_local_dist': min(l1(c, p) for p in LOCAL.values()), + 'inherited_hit': c in sources, + 'min_inherited_dist': min(l1(c, p) for p in sources), + 'bank': on_bank(c), + 'min_recv_minus_L': rel(min(l1(c, p) for p in RECV)), + 'torus_equals_l1_recv': all(tdist(c, p) == l1(c, p) for p in RECV), + 'dist_q9_nbrs': [l1(c, plus(Q9, f))-L for f in DIRS], + 'dist_q9_minus_L': l1(c, Q9)-L, + } + rows['%s %s' % (slice_name, e)] = row + # herald source family (49L-1-q, +-(q+1), 0), (49L-1-q,0,q+1): min x distance >= 47L from keys + herald_gap = min(49*L-1-(L-1)-abs(plus(Q9, e, L+2)[0]) for e in DIRS) + return rows, herald_gap + + +def shell_banks(): + out = [] + for i, (p, d, dl) in enumerate(zip(PORTS, PDIR, DEADL)): + ax = [j for j in range(3) if d[j]][0] + rest = sum(abs(p[j]-Q9[j]) for j in range(3) if j != ax) + t0 = (Q9[ax]-p[ax])*d[ax] + sl = L+2-rest + if sl < 0: + continue + for t in range(max(dl+1, t0-sl), min(2*L, t0+sl)+1): + c = plus(p, d, t) + dd = l1(c, Q9) + if dd > L+2: + continue + reach = [f for f in DIRS if l1(c, plus(Q9, f)) <= L+1 and (L+1-l1(c, plus(Q9, f))) % 2 == 0] + out.append((i, t-dl, dd-L, (L+2-dd) % 2 == 0, reach)) + return out + + +# ------------------------------------------------------------ D/E. table checks +def load(rel_, digest): + raw = (ROOT/rel_).read_bytes() + chk(hashlib.sha256(raw).hexdigest() == digest, 'pin '+rel_) + return json.loads(raw) + + +def table_checks(): + route = load('native_route_v13/result.json', '762b9799db7448c4eecf2c994c8c68ff94e1be83a7f6884b4a36385505df5a02') + v14 = load('native_decode_v14/result.json', '3172e7d013c09cdcdf638a7ace68e0eff98bb3cd0411e8666b76a8226ad59034') + q9j = load('branch_v10/local-controller/symmetric-result.json', 'd8e7c1f5841192165beefb3fe35b069cc14cc93f2faa2bd68619aa7748b3db2f') + rev = load('native_route_v13/review/result.json', '73780def8505d68d1967936116a88a49d471eb32aeb83d528ff3cd41025ae6e4') + tab = route['q10_table_hex'] + chk(hashlib.sha256(tab.encode()).hexdigest() == 'b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc', 'table digest') + chk(rev['independent_native_table']['sha256'] == hashlib.sha256(tab.encode()).hexdigest(), 'review digest') + q9 = q9j['q9_table_hex'] + entry = [r for r in v14['post_hoc_degree_one_readouts'] if r['readout_bits'] == 240][0] + law = entry['fewest_seed_law_field_coefficients_EA_EB_ED_NA_NB_ND'] + + def q10(x, u, my, mr, a, b, e, n): + i = ((((((x*2+u)*2+my)*2+mr)*2+a)*2+b)*8+e)*8+n + return int(tab[i], 16) + + def oldq9(x, u, my, mr, a, b): + i = (((((((x*2+u)*2+my)*2+mr)*2+a)*2+b)*8+4)*8+5)*8+7 + return int(q9[i], 16) + acc = 0 + codes = {0: set(), 1: set()} + q10A_s = cancel = q9ok = 0 + otp_rows = 0 + mi_terms = [] + for x, u, my, mr, a, b in product((0, 1), repeat=6): + if (a, b) == (0, 1): + continue + acc += 1 + s = x ^ u ^ a + pq = oldq9(x, u, my, mr, a, b) + q9ok += pq == 2*s+(s ^ a ^ b) + feat = [1, u, my, mr, a, b] + bits = [sum(((c >> i) & 1)*feat[i] for i in range(6)) % 2 for c in law] + e = 4*bits[0]+2*bits[1]+bits[2] + n = 4*bits[3]+2*bits[4]+bits[5] + c = q10(x, u, my, mr, a, b, e, n) + q10A_s += (c >> 2) == s + cancel += ((c >> 2) ^ (pq & 1)) == (a ^ b) + codes[s].add(c) + for rest in range(8): + vals = sorted(pq ^ H(c ^ m ^ rest) for m in range(8)) + otp_rows += vals == list(range(8)) + chk(acc == 48 and q9ok == 48 and q10A_s == 48 and cancel == 48 and otp_rows == 384, 'table numbers') + counts = v14['readout_solution_counts'] + return {'accepted': acc, 'old_q9_is_0_s_s^a^b': q9ok, 'q10A_eq_s': q10A_s, + 'q10A_xor_pD_eq_a^b': cancel, 'distinct_q10_codes_s0_s1': [len(codes[0]), len(codes[1])], + 'otp_rows': otp_rows, 'v14_count_readout240': counts[239], 'law': law} + + +def exact_otp(): + """Exact joint law: others O = (p, c, rest, s) with arbitrary non-uniform weights; key uniform. + Show Pr(V, O) = Pr(V) Pr(O) exactly; countercontrol: key with non-uniform law gives dependence.""" + rng = random.Random(910) + others = [(p, c, r) for p in range(8) for c in range(8) for r in range(8)] + w = {o: Fraction(rng.randrange(1, 50)) for o in others} + Z = sum(w.values()) + w = {o: v/Z for o, v in w.items()} + + def joint(keylaw): + J = {} + for o, po in w.items(): + p, c, r = o + for m, pm in keylaw.items(): + v = p ^ H(c ^ m ^ r) + J[(v, o)] = J.get((v, o), 0)+po*pm + return J + + def indep(J): + PV, PO = {}, {} + for (v, o), pr in J.items(): + PV[v] = PV.get(v, 0)+pr + PO[o] = PO.get(o, 0)+pr + return all(J.get((v, o), 0) == PV[v]*PO[o] for v in range(8) for o in PO), PV + uni = {m: Fraction(1, 8) for m in range(8)} + ok, PV = indep(joint(uni)) + chk(ok and all(PV[v] == Fraction(1, 8) for v in range(8)), 'exact OTP') + skew = {m: Fraction(1, 8) for m in range(8)} + skew[0] += Fraction(1, 16) + skew[1] -= Fraction(1, 16) + ok2, _ = indep(joint(skew)) + chk(not ok2, 'OTP countercontrol non-uniform key gives dependence') + fixed = {3: Fraction(1)} + ok3, _ = indep(joint(fixed)) + chk(not ok3, 'OTP countercontrol fixed key gives dependence') + return {'uniform_key_V_indep_of_arbitrary_others_exact': ok, 'skewed_key_dependence': not ok2, + 'fixed_key_dependence': not ok3} + + +def main(): + sg = json.loads((ROOT/'parallel_v3/history_control/SOURCE-GEOMETRY.json').read_bytes()) + sources = {tuple(r['position']) for r in sg['sources']} + chk(len(sg['sources']) == 1479, 'source count') + OUT['A_cones'] = dep_cones(6) + worlds, off = perm_tests(5, (1, 2, 3, 4)) + OUT['B_perm_worlds'] = worlds + OUT['B_offaxis_neighbours_changed_per_n'] = {str(k): v for k, v in off.items()} + rows, hgap = actual_scale(sources) + OUT['C_keys'] = {k: {kk: (str(vv) if isinstance(vv, int) and abs(vv) > 10**6 else vv) for kk, vv in v.items()} + for k, v in rows.items()} + OUT['C_herald_family_x_gap_over_L'] = (hgap)//L + sb = shell_banks() + OUT['shell_banks'] = [[i, di, dd, act, [DIRS.index(f) for f in reach]] for i, di, dd, act, reach in sb] + OUT['D_table'] = table_checks() + OUT['D_exact_otp'] = exact_otp() + OUT['failures'] = FAIL + print(json.dumps(OUT, indent=1, sort_keys=True, default=str)) + + +main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/verify_out.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/verify_out.json new file mode 100644 index 000000000..a2441b660 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round1/indep/verify_out.json @@ -0,0 +1,412 @@ +{ + "A_cones": { + "current_keys_axial_(n+1)e": true, + "formula_cells_tested": 9225, + "formula_mismatches": 0, + "n_range": [ + 1, + 6 + ], + "previous_keys_axial_ne": true + }, + "B_offaxis_neighbours_changed_per_n": { + "1": [ + 2, + 2, + 2, + 2 + ], + "2": [ + 2, + 1, + 2, + 2 + ], + "3": [ + 2, + 2, + 2, + 2 + ], + "4": [ + 2, + 2, + 2, + 2 + ], + "5": [ + 2, + 2, + 2, + 2 + ] + }, + "B_perm_worlds": 120, + "C_herald_family_x_gap_over_L": 46, + "C_keys": { + "current (-1, 0, 0)": { + "bank": [], + "dist_q9_minus_L": 2, + "dist_q9_nbrs": [ + 3, + 1, + 3, + 3, + 3, + 3 + ], + "in_extra_ready": [], + "in_ready": [], + "inherited_hit": false, + "local_source_hit": [], + "min_inherited_dist": "235439411294677191882408977329344809920101062916122550884878597658362823771806632941282512458413657066659208521757507129739790008536250922177295987533879277162264430997390803438938257485772546289368876588818334939925442896620841783747991034202064817502702322945144408728630616718395382897056085391515736526945643653909823659777715144085529623891729729558937600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000156", + "min_local_dist": 2, + "min_ready_margin": 2, + "min_recv_minus_L": 79, + "torus_equals_l1_recv": true + }, + "current (0, -1, 0)": { + "bank": [], + "dist_q9_minus_L": 2, + "dist_q9_nbrs": [ + 3, + 3, + 3, + 1, + 3, + 3 + ], + "in_extra_ready": [], + "in_ready": [], + "inherited_hit": false, + "local_source_hit": [], + "min_inherited_dist": 156, + "min_local_dist": 2, + "min_ready_margin": 2, + "min_recv_minus_L": 341, + "torus_equals_l1_recv": true + }, + "current (0, 0, -1)": { + "bank": [], + "dist_q9_minus_L": 2, + "dist_q9_nbrs": [ + 3, + 3, + 3, + 3, + 3, + 1 + ], + "in_extra_ready": [], + "in_ready": [ + 11 + ], + "inherited_hit": false, + "local_source_hit": [], + "min_inherited_dist": "235439411294677191882408977329344809920101062916122550884878597658362823771806632941282512458413657066659208521757507129739790008536250922177295987533879277162264430997390803438938257485772546289368876588818334939925442896620841783747991034202064817502702322945144408728630616718395382897056085391515736526945643653909823659777715144085529623891729729558937599999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999998707", + "min_local_dist": "235439411294677191882408977329344809920101062916122550884878597658362823771806632941282512458413657066659208521757507129739790008536250922177295987533879277162264430997390803438938257485772546289368876588818334939925442896620841783747991034202064817502702322945144408728630616718395382897056085391515736526945643653909823659777715144085529623891729729558937600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000372", + "min_ready_margin": -134, + "min_recv_minus_L": -75, + "torus_equals_l1_recv": true + }, + "current (0, 0, 1)": { + "bank": [], + "dist_q9_minus_L": 2, + "dist_q9_nbrs": [ + 3, + 3, + 3, + 3, + 1, + 3 + ], + "in_extra_ready": [ + 0 + ], + "in_ready": [], + "inherited_hit": false, + "local_source_hit": [ + "N" + ], + "min_inherited_dist": "235439411294677191882408977329344809920101062916122550884878597658362823771806632941282512458413657066659208521757507129739790008536250922177295987533879277162264430997390803438938257485772546289368876588818334939925442896620841783747991034202064817502702322945144408728630616718395382897056085391515736526945643653909823659777715144085529623891729729558937600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000526", + "min_local_dist": 0, + "min_ready_margin": 0, + "min_recv_minus_L": 79, + "torus_equals_l1_recv": true + }, + "current (0, 1, 0)": { + "bank": [], + "dist_q9_minus_L": 2, + "dist_q9_nbrs": [ + 3, + 3, + 1, + 3, + 3, + 3 + ], + "in_extra_ready": [], + "in_ready": [], + "inherited_hit": false, + "local_source_hit": [], + "min_inherited_dist": "235439411294677191882408977329344809920101062916122550884878597658362823771806632941282512458413657066659208521757507129739790008536250922177295987533879277162264430997390803438938257485772546289368876588818334939925442896620841783747991034202064817502702322945144408728630616718395382897056085391515736526945643653909823659777715144085529623891729729558937600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000526", + "min_local_dist": 156, + "min_ready_margin": 2, + "min_recv_minus_L": 79, + "torus_equals_l1_recv": true + }, + "current (1, 0, 0)": { + "bank": [], + "dist_q9_minus_L": 2, + "dist_q9_nbrs": [ + 1, + 3, + 3, + 3, + 3, + 3 + ], + "in_extra_ready": [], + "in_ready": [ + 4 + ], + "inherited_hit": false, + "local_source_hit": [], + "min_inherited_dist": "235439411294677191882408977329344809920101062916122550884878597658362823771806632941282512458413657066659208521757507129739790008536250922177295987533879277162264430997390803438938257485772546289368876588818334939925442896620841783747991034202064817502702322945144408728630616718395382897056085391515736526945643653909823659777715144085529623891729729558937599999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999971", + "min_local_dist": "235439411294677191882408977329344809920101062916122550884878597658362823771806632941282512458413657066659208521757507129739790008536250922177295987533879277162264430997390803438938257485772546289368876588818334939925442896620841783747991034202064817502702322945144408728630616718395382897056085391515736526945643653909823659777715144085529623891729729558937600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000156", + "min_ready_margin": -399, + "min_recv_minus_L": -476, + "torus_equals_l1_recv": true + }, + "previous (-1, 0, 0)": { + "bank": [], + "dist_q9_minus_L": 1, + "dist_q9_nbrs": [ + 2, + 0, + 2, + 2, + 2, + 2 + ], + "in_extra_ready": [], + "in_ready": [], + "inherited_hit": false, + "local_source_hit": [], + "min_inherited_dist": "235439411294677191882408977329344809920101062916122550884878597658362823771806632941282512458413657066659208521757507129739790008536250922177295987533879277162264430997390803438938257485772546289368876588818334939925442896620841783747991034202064817502702322945144408728630616718395382897056085391515736526945643653909823659777715144085529623891729729558937600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000155", + "min_local_dist": 1, + "min_ready_margin": 1, + "min_recv_minus_L": 78, + "torus_equals_l1_recv": true + }, + "previous (0, -1, 0)": { + "bank": [], + "dist_q9_minus_L": 1, + "dist_q9_nbrs": [ + 2, + 2, + 2, + 0, + 2, + 2 + ], + "in_extra_ready": [], + "in_ready": [], + "inherited_hit": false, + "local_source_hit": [], + "min_inherited_dist": 155, + "min_local_dist": 1, + "min_ready_margin": 1, + "min_recv_minus_L": 340, + "torus_equals_l1_recv": true + }, + "previous (0, 0, -1)": { + "bank": [], + "dist_q9_minus_L": 1, + "dist_q9_nbrs": [ + 2, + 2, + 2, + 2, + 2, + 0 + ], + "in_extra_ready": [], + "in_ready": [ + 11 + ], + "inherited_hit": false, + "local_source_hit": [], + "min_inherited_dist": "235439411294677191882408977329344809920101062916122550884878597658362823771806632941282512458413657066659208521757507129739790008536250922177295987533879277162264430997390803438938257485772546289368876588818334939925442896620841783747991034202064817502702322945144408728630616718395382897056085391515736526945643653909823659777715144085529623891729729558937599999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999998706", + "min_local_dist": "235439411294677191882408977329344809920101062916122550884878597658362823771806632941282512458413657066659208521757507129739790008536250922177295987533879277162264430997390803438938257485772546289368876588818334939925442896620841783747991034202064817502702322945144408728630616718395382897056085391515736526945643653909823659777715144085529623891729729558937600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000371", + "min_ready_margin": -135, + "min_recv_minus_L": -76, + "torus_equals_l1_recv": true + }, + "previous (0, 0, 1)": { + "bank": [], + "dist_q9_minus_L": 1, + "dist_q9_nbrs": [ + 2, + 2, + 2, + 2, + 0, + 2 + ], + "in_extra_ready": [ + 0 + ], + "in_ready": [], + "inherited_hit": false, + "local_source_hit": [], + "min_inherited_dist": "235439411294677191882408977329344809920101062916122550884878597658362823771806632941282512458413657066659208521757507129739790008536250922177295987533879277162264430997390803438938257485772546289368876588818334939925442896620841783747991034202064817502702322945144408728630616718395382897056085391515736526945643653909823659777715144085529623891729729558937600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000525", + "min_local_dist": 1, + "min_ready_margin": -1, + "min_recv_minus_L": 78, + "torus_equals_l1_recv": true + }, + "previous (0, 1, 0)": { + "bank": [], + "dist_q9_minus_L": 1, + "dist_q9_nbrs": [ + 2, + 2, + 0, + 2, + 2, + 2 + ], + "in_extra_ready": [], + "in_ready": [], + "inherited_hit": false, + "local_source_hit": [], + "min_inherited_dist": "235439411294677191882408977329344809920101062916122550884878597658362823771806632941282512458413657066659208521757507129739790008536250922177295987533879277162264430997390803438938257485772546289368876588818334939925442896620841783747991034202064817502702322945144408728630616718395382897056085391515736526945643653909823659777715144085529623891729729558937600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000525", + "min_local_dist": 155, + "min_ready_margin": 1, + "min_recv_minus_L": 78, + "torus_equals_l1_recv": true + }, + "previous (1, 0, 0)": { + "bank": [], + "dist_q9_minus_L": 1, + "dist_q9_nbrs": [ + 0, + 2, + 2, + 2, + 2, + 2 + ], + "in_extra_ready": [], + "in_ready": [ + 4 + ], + "inherited_hit": false, + "local_source_hit": [], + "min_inherited_dist": "235439411294677191882408977329344809920101062916122550884878597658362823771806632941282512458413657066659208521757507129739790008536250922177295987533879277162264430997390803438938257485772546289368876588818334939925442896620841783747991034202064817502702322945144408728630616718395382897056085391515736526945643653909823659777715144085529623891729729558937599999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999970", + "min_local_dist": "235439411294677191882408977329344809920101062916122550884878597658362823771806632941282512458413657066659208521757507129739790008536250922177295987533879277162264430997390803438938257485772546289368876588818334939925442896620841783747991034202064817502702322945144408728630616718395382897056085391515736526945643653909823659777715144085529623891729729558937600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000155", + "min_ready_margin": -400, + "min_recv_minus_L": -477, + "torus_equals_l1_recv": true + } + }, + "D_exact_otp": { + "fixed_key_dependence": true, + "skewed_key_dependence": true, + "uniform_key_V_indep_of_arbitrary_others_exact": true + }, + "D_table": { + "accepted": 48, + "distinct_q10_codes_s0_s1": [ + 4, + 4 + ], + "law": [ + 1, + 5, + 1, + 4, + 1, + 5 + ], + "old_q9_is_0_s_s^a^b": 48, + "otp_rows": 384, + "q10A_eq_s": 48, + "q10A_xor_pD_eq_a^b": 48, + "v14_count_readout240": 1456 + }, + "failures": [], + "shell_banks": [ + [ + 0, + 1, + 1, + false, + [] + ], + [ + 0, + 2, + 2, + true, + [ + 3, + 5 + ] + ], + [ + 2, + 1, + 1, + false, + [] + ], + [ + 2, + 2, + 2, + true, + [ + 0, + 2, + 5 + ] + ], + [ + 3, + 1, + 1, + false, + [] + ], + [ + 3, + 2, + 2, + true, + [ + 1, + 2, + 5 + ] + ], + [ + 5, + 1, + 1, + false, + [] + ], + [ + 5, + 2, + 2, + true, + [ + 2, + 5 + ] + ] + ] +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/REPORT.md.txt b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/REPORT.md.txt new file mode 100644 index 000000000..c922dca5b --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/REPORT.md.txt @@ -0,0 +1,393 @@ +ACCEPT WITH NITS — 74541cf18bfd9e986039cf86d5cf4bf2152b3105 (review fixes on 2c43d615a440c2b837dc19f410759d01a47e5362; outcome unchanged) + +Overall verdict on ead2c38842222786c68551484b708c19f29c83ab..74541cf18bfd9e986039cf86d5cf4bf2152b3105: +ACCEPT WITH NITS. The plan was committed first, and its decision rule yields NEGATIVE_FOR_CONSTRUCTION. +The central claim is independently verified. The −x and +y keys are free. This holds against the +lineage's declared regions and sources, which I enumerated separately from primary declarations, and +the claim stays conditional on that inventory being complete, as stated below. All controls can fail, +and the replay is byte-identical. The nits that remain are listed under R1–R4. + +This is a read-only re-check. All files were exported from 74541cf1 with `git show` into `tree/`. All +Python ran with `-I -B` from `empty/`. Reviewer material in this directory: `indep_inventory.py` and +`indep_inventory_out.json`, `asttest/`, `mutwork/`, `rev_mutants_out.txt`, and `replay/`. The first +review is `../REVIEW.md`. + +## Commit and diff + +- 74541cf1 has a single parent, 2c43d615. +- It touches only the package's checks.py, result.json, REPORT.md, PROVENANCE.json, SHA256SUMS and + mutants/*, plus the 7 package lines of the directory SHA256SUMS. +- PLAN.md is byte-identical: the diff is empty. + +## Findings 1–9 of the first review + +| # | Finding | Status | +| --- | --- | --- | +| 1 | REPORT summary stated the OTP/harmlessness unconditionally | **Resolved.** The Result paragraph now says that under the contract alone only (i) holds, and that the one-time pad and harmlessness hold "under a uniform free key". Scope says the same. | +| 2 | Verdict generator wording | **Resolved.** It names "the 2 unseen free keys". −y lists three routes (pinning, reading, or inference from port 0's record, not computed). The joint-law clause is conditional ("If an unseen free key is uniform … by (ii); otherwise … not computed"). Plurals are handled. "nonconstant" is dropped. q10 at L+1 is named as private. REPORT's quote equals result.json's statement exactly. | +| 3 | Vacuous K5 anchors | **Resolved.** The full (status, reason) pairs are compared. My K5_E_moved now VOIDs ("K5 anchor E,N are their declared sources"), and it is part of the author's set. | +| 4 | Inventory not tied to native_route_v13 | **Resolved as consistency** (see A). native_route_v13/checks.py is pinned at 8c1bbc37…d856, which matches the file at both bef79f6f and 74541cf1. Its geometry() lists are read with ast and compared. Margins are recorded: −x, +y and −y are at 2 against balls 22 (the q9 L-ball) and 24 (B_(L+1)(q10)). | +| 5 | Countercontrol strength | **Resolved.** It now needs at least one SHA-256 world for every n. PROVENANCE records that the polynomial family alone would have passed the earlier rule. | +| 6 | 3 of 8 lanes | **Resolved.** All 8 key values are compared: 2304 comparisons = (144 current + 144 previous worlds) × 8. | +| 7 | K2 from the formula | **Resolved.** Propagated dependency sets for n=1..6 over both slices, with 15456 comparisons. I recomputed 15456 = 7·Σ_{r=3..8}\|B_r\| = 7·2208 and 532 = Σ_{r=2..7}(4r²−4). | +| 8 | Previous-slice keys | **Resolved.** They are classified and checked in 144 native worlds. They enter (iii) only, and the outcome rule stays on current-slice keys as preregistered. | +| 9 | Cosmetic | **Resolved.** "nonconstant" is gone, q10 is named as private, and the recipe clones by branch. | + +## result.json leaf diff + +- All changes are additions, except one renamed counter (`scalar_comparisons` 432 → + `scalar_comparisons_all_8_lanes` 2304) and the rewritten statement and not_established item. +- Added: K2_dependency_propagation; previous_slice_key_worlds; previous anchors; + ready_margin/balls_at_ready_margin; previous_slice_keys (6); the route_v13 equality flag; the new pin; + free_previous_slice_keys; outcome_rule_uses. +- **The outcome is unchanged:** NEGATIVE_FOR_CONSTRUCTION, unseen free keys −x and +y, public-reaching + key −y. This matches the description. + +## The ast reading of native_route_v13/checks.py + +- **No code is executed.** The reader uses `ast.parse` plus a whitelist evaluator: int constants, five + names, tuples/lists, unary minus, + − ×, list/zip/range calls, and a single-generator ListComp. There + is no eval/exec/compile/import. I injected `__import__('os').system('touch MARKER')` and an IfExp + calling `open(...)` into a copy, with its pin updated. Both VOID with "unsupported expression", and no + marker file was created. +- **It really compares.** I changed one radius in the route copy (T→T+1, pin updated). The result is + VOID "K5 ready list equals native_route_v13 geometry()". +- **Limit.** Only top-level `ready=` and `ready +=` statements are read. A `ready +=` nested in an `if`, + or a `ready.append(...)`, is ignored: both exit 0 in my test. The pinned file mutates `ready` only at + top-level lines 262–265 (grep), so this is harmless under the pin (R3). + +## Margin 2 vs 1 + +This is a difference of radius convention, and both statements are correct. A previous-slice cell at +distance r+1 from a centre has margin 1 against the current radius r. It has margin 2 against the +previous radius r−1. history_v9 uses r−1 ("previous ready ball B_(L−1)(q8)"), which is the radius a +previous-slice cell needs to reach the target by the deadline (dist ≤ t−1). Under either convention the +previous −x, +y and −y keys are free. + +## A. Completeness, enumerated independently (owner item 1) + +I built the inventory in `indep_inventory.py` from the primary declarations of the lineage. It does not +start from either existing list. + +- **Ready regions, 32 entries with duplicates:** + - junction_v4 §1 table: the 15 base regions with their stated centres and radii (originals radius T, + transported radius S, the two collisions, q2, q3, remote herald and Z); + - the outward chain q4..q9 at (0,S,68+k), radius R+k. These balls are nested, and their union is + B_L(q9); + - herald_v10's two cones at ±48L, radius L; + - Native B's B_(R+10)(q10); + - the 8 ports with their deadlines and bank rays (deadline, 2L]. +- **Previous radius:** r−1. +- **Sources:** the 1479-entry table; junction_v4's four selector controls and two reset pulses; O, W, E; + Q, C, G, J, K±, N; the F10 pin; the z source; the herald family (x ≥ 47L); the remote blocks + (|x| ≥ 11R). + +**Result.** Classification is identical for all 12 keys. Current and previous −x, +y and −y are free at +margin 2, nearest B_(R+10)(q10). +x and −z are pinned (transported (4T,P,0); R collision). +z is pinned +(N / the q10 extension). No key is a source or bank cell. + +**List-free bound.** A cell can be pinned by readiness only inside the cone of a declared record with +deadline ≥ its distance to that record. I grepped the lineage for deadlines beyond L+1 and for +B_(L+2)-type extensions and found none. The latest records are q10 (L+1), and q9, herald and Z (L). +Every −x/+y/−y key has slack exactly 2 against these. + +**What the negative verdict is conditional on:** +- (a) The contract's fixed initial data are exactly the declared ready cones (current radius = record + deadline, previous = deadline−1), the declared source points and families, and the bank rays. No + undeclared readiness, preparation or correlation exists, and no record has a deadline ≥ L+2. +- (b) For (ii) only: a uniform free key. junction_v4 and the sidecar reports state an + independent-uniform product complement prior, under which (ii) applies. The history proof holds for + any law. + +**Gap in the REPORT wording.** REPORT.md states the condition in "Key cells" ("Completeness of that +inventory remains an input: a ready region missing from it would change the classification of a key"). +This revision dropped the sentence from Scope, and the generated verdict text and not_established do +not carry it (R1). + +**Side observation.** v15's `local_sources()` omits two declared sources: the fourth selector +(4T,P+S,0) and the opposite reset pulse (0,S,−S−136). Neither coincides with a key or an anchor, so +this has no effect (R2). + +## B. The two surviving reviewer mutants (owner item 2) + +- **STRENGTHEN_counter_every_n: genuinely equivalent.** It inserts a copy of the per-n SHA-256 check + that 74541cf1 already contains, so the program is unchanged in effect. +- **STRENGTHEN_counter_polynomial_only: not a weakening, and outside the mutation contract.** + - It replaces `any(sha256)` with `any(polynomial)`. The retained per-n check + `all(any(sha256[3i:3i+3]))` is ordered by n (product order BACKGROUNDS × n × seeds), so it implies + `any(sha256)`. The mutant therefore removes no constraint. It adds one, `any(polynomial)`, which + holds on the data (6 of 12). + - It is strictly at least as strong as the original. It cannot admit an outcome the original + rejects, and it does not touch the computed claim. + - No killing case is needed. It is not a real gap. + +All 23 other reviewer mutants exit 2 on their own labels. This includes the two missing-region mutants, +which now VOID at the route_v13 comparison, and the receiver mutant, which VOIDs at K6. The author's +28 mutants reproduce OUTPUT.txt byte for byte (42 s). + +## Replay, sums, hygiene + +- **Replay.** Normal and `-O` runs are byte-identical to result.json (2.0 s). +- **Sums.** The package SHA256SUMS (7 entries) verifies. The directory SHA256SUMS verifies: 389 entries, + the set equals all files except itself, and only the 7 package lines changed. +- **Recipe.** The REPORT recipe (shallow clone of the branch, HEAD 74541cf1) passes checker normal and + `-O`, the mutants and `sha256sum -c`. `git status --ignored` is clean and there is no `__pycache__`. +- **Hygiene.** No absolute paths, secrets, e-mail or IP addresses. Run from the clone root, + duplicate_check (whole tree and package), voice_check and artifact_placement_check (self-test) all + report OK. The worktree is clean afterwards and HEAD is unchanged. + +## New overclaims + +None found. +- Result: "does not make the q10.A transport accessible" rests on (i), which holds for every complement + value. +- (iii) for the unseen keys is correctly limited to pinning or reading, since no permitted record + depends on them. +- The process narration in REPORT ("separate review … accepted it with nits") is in a research record + under verification/, not in manuscript prose. + +## Remaining nits (none blocking) + +- **R1.** Restore the completeness condition to Scope, add it to not_established, and preferably add it + to the generated statement. Suggested Scope wording: "The classification, and so the outcome, is + conditional on the declared ready-cone, source and bank inventory shared with native_route_v13 being + complete; no record in the lineage has a deadline beyond L+1." +- **R2.** Add the fourth selector (4T,P+S,0) and the opposite reset pulse (0,S,−S−136) to + `local_sources()`, or say that the list is limited to sources near the keys. +- **R3.** In `route_geometry`, also walk the whole function body. Fail if `ready` (or ports, deadlines, + directions) is assigned or mutated anywhere other than the extracted top-level statements, including + method calls such as `.append` and `.extend`. +- **R4 (optional).** Cite junction_v4's independent-uniform product complement prior where REPORT says + "route_v13 does not specify that law". That prior is the inherited one, and it satisfies (ii)'s + hypothesis. + +*** + +# Check of 96bfc56c + +ACCEPT WITH NITS — 96bfc56c8d4edc9d332d15b470976a28f528dfe7 (re-check fixes R1–R4 on 74541cf18bfd9e986039cf86d5cf4bf2152b3105; outcome unchanged) + +Overall verdict on ead2c38842222786c68551484b708c19f29c83ab..96bfc56c8d4edc9d332d15b470976a28f528dfe7: +ACCEPT WITH NITS. +- The negative verdict NEGATIVE_FOR_CONSTRUCTION holds. The free keys are −x and +y, and the −y key + reaches public port 0. +- It is conditional, as the package now says consistently in all four places: + - on the shared ready-cone, source and bank inventory being complete; + - and, for part (ii), on a uniform free key. +- One wording nit remains, N1: the reader is described as failing closed more broadly than it does. + Under the hash pin it has no effect. + +Files were exported from 96bfc56c into `tree3/` and run from `empty3/`. Reviewer artefacts: +`asttest3/`, `mutwork3/`, `rev_mutants3.txt`, `mut3.txt`, `replay3/`. + +## Changed-file inventory, ead2c388..96bfc56c + +Paths are relative to native-y-continuation-20261024/. Every commit has a single parent. + +| Commit | Files | +| --- | --- | +| ead2c388 | A native_vread_v15/PLAN.md; M SHA256SUMS (1 line added) | +| 2c43d615 | A PROVENANCE.json, REPORT.md, SHA256SUMS, checks.py, mutants/OUTPUT.txt, mutants/make_mutants.py, result.json; M SHA256SUMS (7 lines) | +| 74541cf1 | M the same 7 package files; M SHA256SUMS (only the 7 package lines) | +| 96bfc56c | M the same 7 package files; M SHA256SUMS (only the 7 package lines) | + +No file outside the new directory changed, apart from the directory SHA256SUMS. PLAN.md is +byte-identical from ead2c388 through 96bfc56c. + +## R1: the completeness condition is stated, and stated consistently (owner item 4) + +The condition appears in all three places: +- **The generated verdict.** It ends with: "The classification, and so the outcome, is conditional on + the declared ready-cone, source and bank inventory shared with native_route_v13 being complete: no + undeclared readiness, preparation or correlation, and no record in the lineage with a deadline beyond + L+1 (the largest declared ready radius used). Part (ii) is conditional in addition on a uniform free + key, which the inherited independent-uniform complement prior of junction_v4 supplies." + - L+1 is computed: `largest_ready_radius_over_L` = 1. + - This sentence states a condition. It does not claim the lineage has no such record. My grep of the + lineage, done for the previous check, also found none. +- **Scope.** It now opens with the same condition and the uniform-key condition, and lists + "the completeness of that inventory" under not established. +- **not_established.** Its first entry is the completeness item. + +REPORT's quoted verdict, unwrapped, equals result.json's statement exactly. + +All four statements agree: Scope, the limitations in Key cells ("Completeness of that inventory +remains an input"), not_established and the verdict. Each states both assumptions, and +"Under the native_route_v13 contract alone … what is established is (i)" is retained. + +Small wording tension, not blocking: the verdict says the junction_v4 prior "supplies" the uniform key, +while the Result paragraph calls the route_v13 complement law "unrestricted". Writing "supplies where +that inherited prior is retained" would remove it. REPORT's "route_v13 states no law of its own; the +complement prior inherited in this lineage is independent and uniform" is accurate, and native_v11 +agrees. + +## R2: the two new sources change nothing (owner item 1) + +- The two added sources match their declaration in junction_v4/checks.py `controls`: (4T,P+S,0) and + (0,S,−S−2·68) = (0,S,−S−136). `local_sources()` now has 17 entries. +- Each is anchored strictly as (PINNED, "source …"), and the author's `K5_selector_4T_dropped` mutant + is caught. +- Neither coincides with any of the 12 keys or with any other anchor. Sources are pinned points only, + so they cannot change a ball classification. +- My own primary-declaration inventory (`indep_inventory.py`, previous check) already contained both, + and it gave the same free-key result. + +## Key blocks, leaf by leaf, 74541cf1 vs 96bfc56c (owner item 2) + +- `geometry.keys` (6 blocks, 66 leaves) and `geometry.previous_slice_keys` (6 blocks, 54 leaves) are + identical. Status, reason, ready margins, balls at the margin, receivers and distances all match. + - Current slice: −x, +y and −y are FREE at margin 2. +x and −z are pinned by a ready ball, and +z is + pinned as source N. + - Previous slice: −x, +y and −y are FREE at margin 2 against r−1. +x, −z and +z are pinned. +- These are also identical: all other anchors; `controls`, the numbers of K2, K3 and K4; `table`; + `diagnostic_read_algebra`; and every verdict list. +- The complete result.json leaf diff is: + - 5 new geometry fields: the anchors `selector_4T` and `reset_opposite`, + `largest_ready_radius_over_L` = 1, `local_sources_declared` = 17, and + `route_reader_mutated_copies_refused` = 8; + - one new first entry in not_established, with the rest unchanged; + - verdict/statement, whose old text is an exact prefix of the new one with the condition sentences + appended. + + This matches the description. + +## R3: the reader refuses a modified region list (owner item 3) + +- The pinned file is still accepted, with exit 0 and the same outcome. +- Of my own 7 write forms, each applied to a copy with its pin updated, 4 are refused, all with VOID + "tracked list written outside the read statements": + - slice assignment `ready[0:0]=[…]`; + - `ready.__iadd__([…])`; + - a tuple-unpacking target `ready, x = …`; + - a nested `def` that appends to `ready`. +- 3 forms escape, and the copy is accepted with an unchanged outcome: + - `list.extend(ready, […])`, an unbound method with `ready` passed as an argument; + - a container alias, `box=[ready]; box[0].append(…)`; + - `(lambda r: r.append(…))(ready)`. +- Every one of these changes `ready` in place, which the literal reader does not see. +- **N1.** REPORT and PROVENANCE say the reader "fails closed if a tracked list is written anywhere but + the top-level statements it reads". That is broader than what it does. Under the hash pin there is no + effect, because the pinned file contains none of these forms. + - *Fix, either of:* + - (a) refuse any Load of a tracked name except as the iterable of a for or comprehension, or as an + argument to `zip`/`all`/`len`; + - (b) word the claim as "refuses the listed write forms; the hash pin is the guarantee". + +## R4: the citation is accurate + +junction_v4/REPORT.md §1 (lines 59–60) reads "Under the inherited independent-uniform-complement prior +it is a uniform triple". REPORT quotes this correctly; the only difference is the line break. + +## Numerical results, controls and retained outputs (owner item 5) + +- **Numbers and controls.** Every numerical result and control number is unchanged from 74541cf1 (see + the key-block comparison above). This revision changes only the inventory checks and the text. +- **Mutants.** The author's 32 mutants reproduce the new OUTPUT.txt byte for byte. My 25 give 23 exit 2 + on their own labels. The two STRENGTHEN mutants exit 0, for the reasons given in section B above: + one is genuinely equivalent and the other is not a weakening. +- **Replay.** Normal and -O runs are byte-identical to the new result.json. +- **Sums.** The package SHA256SUMS verifies, and so does the directory SHA256SUMS (389 entries; the set + equals the files present). Only package lines changed. +- **Recipe.** The REPORT recipe passes in a fresh shallow clone of the branch at HEAD 96bfc56c. +- **How the changed outputs are handled.** + - result.json and mutants/OUTPUT.txt changed in this revision. Their new digests, `71c594e6…` and + `0113eb08…`, are retained in both the package and the directory SHA256SUMS. + - REPORT's replay compares regenerated output against the package's current result.json and + OUTPUT.txt. + - REPORT and PROVENANCE make no claim that the earlier result.json is reproduced byte for byte. They + say only that the outcome and the decision rule are unchanged, and that is true. + - Optional: record each revision's result.json digest in PROVENANCE: 9bf28d32… at 2c43d615 and + 71c594e6… at 96bfc56c, plus 74541cf1's. + +## Hygiene + +- No absolute paths, secrets, e-mail or IP addresses. +- Run from the clone root, duplicate_check (whole tree and package), voice_check and + artifact_placement_check (self-test passed) all report OK. +- The clone's worktree is clean and HEAD is unchanged. No `__pycache__` was produced. + +## Remaining nits (none blocking) + +- **N1.** Narrow the reader's "fails closed" wording, or close the three write forms that escape + (above). +- **N2.** Write "supplies where that inherited prior is retained" in the verdict sentence on the + junction_v4 prior. +- **N3 (cosmetic).** In REPORT, the Scope sentence beginning "Within those conditions…" is not + re-wrapped. + +*** + +# Check of ca7d06de + +ACCEPT — ca7d06de349e83cbfa253cbd4887b7708a0705cc (wording-only fixes N1–N3 on 96bfc56c8d4edc9d332d15b470976a28f528dfe7) + +Overall verdict on ead2c38842222786c68551484b708c19f29c83ab..ca7d06de349e83cbfa253cbd4887b7708a0705cc: +ACCEPT. The result is NEGATIVE_FOR_CONSTRUCTION: −x and +y are free unseen keys, and the −y key +reaches public port 0. It is stated only for this construction and is conditional on two things, both +stated in the verdict, Scope and not_established: +- the declared ready-cone, source and bank inventory being complete; +- and, for part (ii), a uniform free key. + +All review findings are resolved, and no open nits remain. Files were exported from ca7d06de into +`c4/tree/` and run from `c4/empty/`. + +## Changed-file inventory, full chain + +Paths are relative to native-y-continuation-20261024/. Every commit has a single parent. + +| Commit | Changes | +| --- | --- | +| ead2c388 (plan) | A native_vread_v15/PLAN.md; M SHA256SUMS | +| 2c43d615 (execution) | A PROVENANCE.json, REPORT.md, SHA256SUMS, checks.py, mutants/OUTPUT.txt, mutants/make_mutants.py, result.json; M SHA256SUMS | +| 74541cf1 | M those 7 package files; M SHA256SUMS | +| 96bfc56c | M those 7 package files; M SHA256SUMS | +| ca7d06de | M PROVENANCE.json, REPORT.md, SHA256SUMS, checks.py, result.json; M SHA256SUMS. mutants/OUTPUT.txt, mutants/make_mutants.py and PLAN.md are unchanged. | + +Across the chain, nothing outside native_vread_v15/ changed except the directory SHA256SUMS, and every +change to that file is a package line. PLAN.md is byte-identical from ead2c388 to ca7d06de. + +## Verification + +- **checks.py is text-only.** + - I parsed both versions with ast, blanked every string constant (docstrings included), and compared + `ast.dump`: they are equal. + - The textual diff is exactly two spans: the `route_writes_closed` docstring, and the verdict string's + last clause, which became "supplies where that inherited prior is retained." +- **result.json.** + - The leaf diff (dicts and lists recursed) is exactly `/verdict/statement`. + - The new statement equals the old one with "supplies." replaced by + "supplies where that inherited prior is retained.". + - REPORT's quote equals the new statement. +- **OUTPUT.txt.** It is unchanged in git. `make_mutants.py` run against ca7d06de reproduces it byte for + byte, with 32 of 32 caught. +- **N1 wording.** REPORT K5, the docstring and PROVENANCE now list only forms the reader enforces: + assignment, augmented assignment, direct aliases, loop or comprehension targets, deletion, walrus, + method calls on a tracked name, parameters and scope declarations. + - The code also refuses `with … as`, `except … as` and import names. Leaving these out understates the + reader, so they claim nothing extra. + - They name my three undetected indirect forms: `list.extend(ready, …)`, a container alias, and a + lambda argument. They state that the hash pin is the guarantee. + - The earlier R3 PROVENANCE entry is kept, with the N1 correction recorded after it. That preserves + the provenance. +- **N2.** The verdict says the junction_v4 prior "supplies" the uniform key "where that inherited prior + is retained". This is accurate, and consistent with "complement law unrestricted" under route_v13 + alone. +- **N3.** The Scope paragraph is re-wrapped and its text is unchanged. +- **Per-revision result.json digests in PROVENANCE.** Each matches `git show :…/result.json | sha256sum`: + + | Revision | result.json SHA-256 | + | --- | --- | + | 2c43d615 | 9bf28d32… | + | 74541cf1 | 110ea9c3… | + | 96bfc56c | 71c594e6… | + | ca7d06de | 56509ae6c7dcc40bbbcdd3a62c8b73bf03e0c5ed20052a226eb63bdda1606d04 | + +- **Replay.** Normal and -O runs are byte-identical to result.json. +- **Checksums.** + - The package SHA256SUMS verifies. + - The directory SHA256SUMS verifies. It has 389 entries, and they cover exactly the files present. + - Only the 5 changed package lines differ. +- **Recipe.** The REPORT recipe passes in a fresh shallow clone of the branch at HEAD ca7d06de. +- **Hygiene.** No absolute paths, secrets, e-mail or IP addresses. duplicate_check (tree and package), + voice_check and artifact_placement_check all report OK. The clone's worktree is clean, HEAD is + unchanged, and no `__pycache__` was produced. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_injection_call/checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_injection_call/checks.py.diff new file mode 100644 index 000000000..6dbc622c9 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_injection_call/checks.py.diff @@ -0,0 +1,11 @@ +--- checks.py ++++ checks.py +@@ -46,7 +46,7 @@ + 'parallel_v3/history_control/SOURCE-GEOMETRY.json': + '2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d', + 'native_route_v13/checks.py': +- '8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856', ++ '99877367f2db8b1e12a54b596ce56c64233a80ed1b291c75eac571037cd7b755', + } + TABLE_SHA256 = 'b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc' + FEWEST_LAW = (1, 5, 1, 4, 1, 5) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_injection_call/native_route_v13.checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_injection_call/native_route_v13.checks.py.diff new file mode 100644 index 000000000..14654a883 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_injection_call/native_route_v13.checks.py.diff @@ -0,0 +1,11 @@ +--- native_route_v13/checks.py ++++ native_route_v13/checks.py +@@ -262,7 +262,7 @@ + ready=list(zip(ports,deadlines)) + ready += [((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,S,-68),R),((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)] +- ready += [((-48*L,0,0),L)] ++ ready += [__import__('os').system('touch MARKER')] + for source in (epos,npos): + need(all(dist(source,c)>r for c,r in ready),'new source avoids old ready pins') + need(all(dist(source,c)>r for c,r in zip(ports,deadlines)),'all informative records preserved at own deadlines') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_injection_ifexp/checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_injection_ifexp/checks.py.diff new file mode 100644 index 000000000..fd40ca42f --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_injection_ifexp/checks.py.diff @@ -0,0 +1,11 @@ +--- checks.py ++++ checks.py +@@ -46,7 +46,7 @@ + 'parallel_v3/history_control/SOURCE-GEOMETRY.json': + '2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d', + 'native_route_v13/checks.py': +- '8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856', ++ '918e49d702fb5873d53a65c270d025d3bb7ecb4be6685896844ee707050e085a', + } + TABLE_SHA256 = 'b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc' + FEWEST_LAW = (1, 5, 1, 4, 1, 5) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_injection_ifexp/native_route_v13.checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_injection_ifexp/native_route_v13.checks.py.diff new file mode 100644 index 000000000..fe72ffdc4 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_injection_ifexp/native_route_v13.checks.py.diff @@ -0,0 +1,11 @@ +--- native_route_v13/checks.py ++++ native_route_v13/checks.py +@@ -262,7 +262,7 @@ + ready=list(zip(ports,deadlines)) + ready += [((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,S,-68),R),((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)] +- ready += [((-48*L,0,0),L)] ++ ready += [((-48*L,0,0),L)] if open('MARKER','w') else [] + for source in (epos,npos): + need(all(dist(source,c)>r for c,r in ready),'new source avoids old ready pins') + need(all(dist(source,c)>r for c,r in zip(ports,deadlines)),'all informative records preserved at own deadlines') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_method_append/checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_method_append/checks.py.diff new file mode 100644 index 000000000..fd5647530 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_method_append/checks.py.diff @@ -0,0 +1,11 @@ +--- checks.py ++++ checks.py +@@ -46,7 +46,7 @@ + 'parallel_v3/history_control/SOURCE-GEOMETRY.json': + '2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d', + 'native_route_v13/checks.py': +- '8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856', ++ 'a4adc4a87cec9bada7aaf3ba9098e7653af4fc423a56d16ca578e3f33b66b19a', + } + TABLE_SHA256 = 'b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc' + FEWEST_LAW = (1, 5, 1, 4, 1, 5) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_method_append/native_route_v13.checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_method_append/native_route_v13.checks.py.diff new file mode 100644 index 000000000..10f3ec548 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_method_append/native_route_v13.checks.py.diff @@ -0,0 +1,10 @@ +--- native_route_v13/checks.py ++++ native_route_v13/checks.py +@@ -263,6 +263,7 @@ + ready += [((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,S,-68),R),((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)] + ready += [((-48*L,0,0),L)] ++ ready.append(((-(L+2),S,77),0)) + for source in (epos,npos): + need(all(dist(source,c)>r for c,r in ready),'new source avoids old ready pins') + need(all(dist(source,c)>r for c,r in zip(ports,deadlines)),'all informative records preserved at own deadlines') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_nested_extra_region/checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_nested_extra_region/checks.py.diff new file mode 100644 index 000000000..85309d0a2 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_nested_extra_region/checks.py.diff @@ -0,0 +1,11 @@ +--- checks.py ++++ checks.py +@@ -46,7 +46,7 @@ + 'parallel_v3/history_control/SOURCE-GEOMETRY.json': + '2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d', + 'native_route_v13/checks.py': +- '8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856', ++ 'ebc88b19ee6f4aad93e554a843bfba66ddccb2cd3b076333b81b29e1cd4f28df', + } + TABLE_SHA256 = 'b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc' + FEWEST_LAW = (1, 5, 1, 4, 1, 5) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_nested_extra_region/native_route_v13.checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_nested_extra_region/native_route_v13.checks.py.diff new file mode 100644 index 000000000..9d3d4f50c --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_nested_extra_region/native_route_v13.checks.py.diff @@ -0,0 +1,11 @@ +--- native_route_v13/checks.py ++++ native_route_v13/checks.py +@@ -263,6 +263,8 @@ + ready += [((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,S,-68),R),((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)] + ready += [((-48*L,0,0),L)] ++ if True: ++ ready += [((-(L+2),S,77),0)] + for source in (epos,npos): + need(all(dist(source,c)>r for c,r in ready),'new source avoids old ready pins') + need(all(dist(source,c)>r for c,r in zip(ports,deadlines)),'all informative records preserved at own deadlines') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_radius_changed/checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_radius_changed/checks.py.diff new file mode 100644 index 000000000..a0cfcca43 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_radius_changed/checks.py.diff @@ -0,0 +1,11 @@ +--- checks.py ++++ checks.py +@@ -46,7 +46,7 @@ + 'parallel_v3/history_control/SOURCE-GEOMETRY.json': + '2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d', + 'native_route_v13/checks.py': +- '8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856', ++ 'a75a8fd41919413047b47f3602a5977f59801b9b6da302b4f7523e42dfb93bb1', + } + TABLE_SHA256 = 'b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc' + FEWEST_LAW = (1, 5, 1, 4, 1, 5) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_radius_changed/native_route_v13.checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_radius_changed/native_route_v13.checks.py.diff new file mode 100644 index 000000000..ed0b6d2f9 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_radius_changed/native_route_v13.checks.py.diff @@ -0,0 +1,11 @@ +--- native_route_v13/checks.py ++++ native_route_v13/checks.py +@@ -260,7 +260,7 @@ + ports=[(0,T,0),(0,0,-8*T),(T,P,0),(-T,P,0),(4*T,P,0),(0,S,0),(12*R,0,0),(48*L,0,0)] + deadlines=[T,T,S,S,S,S,R,L] + ready=list(zip(ports,deadlines)) +- ready += [((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,S,-68),R),((-12*R,0,0),R)] ++ ready += [((T,0,0),T+1),((-T,0,0),T),((4*T,0,0),T),((0,S,-68),R),((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)] + ready += [((-48*L,0,0),L)] + for source in (epos,npos): diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_unchanged/checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_unchanged/checks.py.diff new file mode 100644 index 000000000..e69de29bb diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_unchanged/native_route_v13.checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest/route_unchanged/native_route_v13.checks.py.diff new file mode 100644 index 000000000..e69de29bb diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/container_alias/checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/container_alias/checks.py.diff new file mode 100644 index 000000000..6b86394d9 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/container_alias/checks.py.diff @@ -0,0 +1,11 @@ +--- checks.py ++++ checks.py +@@ -46,7 +46,7 @@ + 'parallel_v3/history_control/SOURCE-GEOMETRY.json': + '2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d', + 'native_route_v13/checks.py': +- '8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856', ++ '117ec40223cb8ff364c8fec75a71f9c98a69ac77ede32ae18290b2af630a20d5', + } + TABLE_SHA256 = 'b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc' + FEWEST_LAW = (1, 5, 1, 4, 1, 5) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/container_alias/native_route_v13.checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/container_alias/native_route_v13.checks.py.diff new file mode 100644 index 000000000..b003826dd --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/container_alias/native_route_v13.checks.py.diff @@ -0,0 +1,11 @@ +--- native_route_v13/checks.py ++++ native_route_v13/checks.py +@@ -263,6 +263,8 @@ + ready += [((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,S,-68),R),((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)] + ready += [((-48*L,0,0),L)] ++ box=[ready] ++ box[0].append(((-(L+2),S,77),0)) + for source in (epos,npos): + need(all(dist(source,c)>r for c,r in ready),'new source avoids old ready pins') + need(all(dist(source,c)>r for c,r in zip(ports,deadlines)),'all informative records preserved at own deadlines') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/dunder_iadd/checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/dunder_iadd/checks.py.diff new file mode 100644 index 000000000..6e40bf171 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/dunder_iadd/checks.py.diff @@ -0,0 +1,11 @@ +--- checks.py ++++ checks.py +@@ -46,7 +46,7 @@ + 'parallel_v3/history_control/SOURCE-GEOMETRY.json': + '2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d', + 'native_route_v13/checks.py': +- '8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856', ++ 'b6f6a1ac2b332a814f8ac3215314e792feec11be1fe5727f43a864a0b6e2953a', + } + TABLE_SHA256 = 'b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc' + FEWEST_LAW = (1, 5, 1, 4, 1, 5) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/dunder_iadd/native_route_v13.checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/dunder_iadd/native_route_v13.checks.py.diff new file mode 100644 index 000000000..d2dfac4e9 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/dunder_iadd/native_route_v13.checks.py.diff @@ -0,0 +1,10 @@ +--- native_route_v13/checks.py ++++ native_route_v13/checks.py +@@ -263,6 +263,7 @@ + ready += [((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,S,-68),R),((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)] + ready += [((-48*L,0,0),L)] ++ ready.__iadd__([((-(L+2),S,77),0)]) + for source in (epos,npos): + need(all(dist(source,c)>r for c,r in ready),'new source avoids old ready pins') + need(all(dist(source,c)>r for c,r in zip(ports,deadlines)),'all informative records preserved at own deadlines') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/lambda_call/checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/lambda_call/checks.py.diff new file mode 100644 index 000000000..3c8ff212f --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/lambda_call/checks.py.diff @@ -0,0 +1,11 @@ +--- checks.py ++++ checks.py +@@ -46,7 +46,7 @@ + 'parallel_v3/history_control/SOURCE-GEOMETRY.json': + '2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d', + 'native_route_v13/checks.py': +- '8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856', ++ 'a4e6fba14ad2e341536e625bc40839bac8c970cb391307ade72b1a276fdf0b80', + } + TABLE_SHA256 = 'b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc' + FEWEST_LAW = (1, 5, 1, 4, 1, 5) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/lambda_call/native_route_v13.checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/lambda_call/native_route_v13.checks.py.diff new file mode 100644 index 000000000..e04f78755 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/lambda_call/native_route_v13.checks.py.diff @@ -0,0 +1,10 @@ +--- native_route_v13/checks.py ++++ native_route_v13/checks.py +@@ -263,6 +263,7 @@ + ready += [((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,S,-68),R),((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)] + ready += [((-48*L,0,0),L)] ++ (lambda r: r.append(((-(L+2),S,77),0)))(ready) + for source in (epos,npos): + need(all(dist(source,c)>r for c,r in ready),'new source avoids old ready pins') + need(all(dist(source,c)>r for c,r in zip(ports,deadlines)),'all informative records preserved at own deadlines') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/nested_def_closure/checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/nested_def_closure/checks.py.diff new file mode 100644 index 000000000..84b3b2e84 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/nested_def_closure/checks.py.diff @@ -0,0 +1,11 @@ +--- checks.py ++++ checks.py +@@ -46,7 +46,7 @@ + 'parallel_v3/history_control/SOURCE-GEOMETRY.json': + '2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d', + 'native_route_v13/checks.py': +- '8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856', ++ '084b66bfdffca3dee914f848d9fa08a7d5abf047e92e4af6c0bffd3501b873cf', + } + TABLE_SHA256 = 'b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc' + FEWEST_LAW = (1, 5, 1, 4, 1, 5) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/nested_def_closure/native_route_v13.checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/nested_def_closure/native_route_v13.checks.py.diff new file mode 100644 index 000000000..068ddb9c6 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/nested_def_closure/native_route_v13.checks.py.diff @@ -0,0 +1,12 @@ +--- native_route_v13/checks.py ++++ native_route_v13/checks.py +@@ -263,6 +263,9 @@ + ready += [((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,S,-68),R),((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)] + ready += [((-48*L,0,0),L)] ++ def f(): ++ ready.append(((-(L+2),S,77),0)) ++ f() + for source in (epos,npos): + need(all(dist(source,c)>r for c,r in ready),'new source avoids old ready pins') + need(all(dist(source,c)>r for c,r in zip(ports,deadlines)),'all informative records preserved at own deadlines') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/slice_assign/checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/slice_assign/checks.py.diff new file mode 100644 index 000000000..82175574d --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/slice_assign/checks.py.diff @@ -0,0 +1,11 @@ +--- checks.py ++++ checks.py +@@ -46,7 +46,7 @@ + 'parallel_v3/history_control/SOURCE-GEOMETRY.json': + '2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d', + 'native_route_v13/checks.py': +- '8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856', ++ '9010b7bb7fde75e18392577d8d46cff83e5c72b90cccd2febeb696f7b00d45bf', + } + TABLE_SHA256 = 'b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc' + FEWEST_LAW = (1, 5, 1, 4, 1, 5) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/slice_assign/native_route_v13.checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/slice_assign/native_route_v13.checks.py.diff new file mode 100644 index 000000000..a79027f6d --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/slice_assign/native_route_v13.checks.py.diff @@ -0,0 +1,10 @@ +--- native_route_v13/checks.py ++++ native_route_v13/checks.py +@@ -263,6 +263,7 @@ + ready += [((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,S,-68),R),((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)] + ready += [((-48*L,0,0),L)] ++ ready[0:0]=[((-(L+2),S,77),0)] + for source in (epos,npos): + need(all(dist(source,c)>r for c,r in ready),'new source avoids old ready pins') + need(all(dist(source,c)>r for c,r in zip(ports,deadlines)),'all informative records preserved at own deadlines') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/tuple_unpack_target/checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/tuple_unpack_target/checks.py.diff new file mode 100644 index 000000000..d02f905b1 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/tuple_unpack_target/checks.py.diff @@ -0,0 +1,11 @@ +--- checks.py ++++ checks.py +@@ -46,7 +46,7 @@ + 'parallel_v3/history_control/SOURCE-GEOMETRY.json': + '2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d', + 'native_route_v13/checks.py': +- '8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856', ++ '66ada8bf6384b1bcd77630de1eaec3799e3a790cff0f9ad6af21cf2e4c396877', + } + TABLE_SHA256 = 'b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc' + FEWEST_LAW = (1, 5, 1, 4, 1, 5) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/tuple_unpack_target/native_route_v13.checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/tuple_unpack_target/native_route_v13.checks.py.diff new file mode 100644 index 000000000..2602bb69f --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/tuple_unpack_target/native_route_v13.checks.py.diff @@ -0,0 +1,10 @@ +--- native_route_v13/checks.py ++++ native_route_v13/checks.py +@@ -263,6 +263,7 @@ + ready += [((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,S,-68),R),((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)] + ready += [((-48*L,0,0),L)] ++ ready, x = ready+[((-(L+2),S,77),0)], 1 + for source in (epos,npos): + need(all(dist(source,c)>r for c,r in ready),'new source avoids old ready pins') + need(all(dist(source,c)>r for c,r in zip(ports,deadlines)),'all informative records preserved at own deadlines') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/unbound_method_extend/checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/unbound_method_extend/checks.py.diff new file mode 100644 index 000000000..f99488665 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/unbound_method_extend/checks.py.diff @@ -0,0 +1,11 @@ +--- checks.py ++++ checks.py +@@ -46,7 +46,7 @@ + 'parallel_v3/history_control/SOURCE-GEOMETRY.json': + '2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d', + 'native_route_v13/checks.py': +- '8c1bbc37f47b6ff7ad7ee67d719f058067e2e15e9a6a967adfb78ef57d1ed856', ++ '925d5f5043177ecf73f11c7818c9d009779eecfe5cd9dc897dbb4d61b49dc934', + } + TABLE_SHA256 = 'b2f32466113dede2fa9e43469f5c209fde5d610180ed748dcd025d4cd2a4b3cc' + FEWEST_LAW = (1, 5, 1, 4, 1, 5) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/unbound_method_extend/native_route_v13.checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/unbound_method_extend/native_route_v13.checks.py.diff new file mode 100644 index 000000000..0f5f84ba0 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/unbound_method_extend/native_route_v13.checks.py.diff @@ -0,0 +1,10 @@ +--- native_route_v13/checks.py ++++ native_route_v13/checks.py +@@ -263,6 +263,7 @@ + ready += [((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,S,-68),R),((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)] + ready += [((-48*L,0,0),L)] ++ list.extend(ready,[((-(L+2),S,77),0)]) + for source in (epos,npos): + need(all(dist(source,c)>r for c,r in ready),'new source avoids old ready pins') + need(all(dist(source,c)>r for c,r in zip(ports,deadlines)),'all informative records preserved at own deadlines') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/unchanged/checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/unchanged/checks.py.diff new file mode 100644 index 000000000..e69de29bb diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/unchanged/native_route_v13.checks.py.diff b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/asttest3/unchanged/native_route_v13.checks.py.diff new file mode 100644 index 000000000..e69de29bb diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/indep_inventory.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/indep_inventory.py new file mode 100644 index 000000000..5e96029ac --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/indep_inventory.py @@ -0,0 +1,98 @@ +"""Reviewer's independent inventory of fixed initial regions, from primary declarations. + +Built from the prose/code specifications of the lineage, not from native_vread_v15's or +native_route_v13's ready list: + junction_v4 REPORT section 1 table (15 base current regions with stated centres/radii), + outward/reset chain q_k=(0,S,68+k) with deadline R+k up to q9 at L (history_v9 'B_L(q8)' + at its L=R+8, branch_v10/history_v11 '(0,S,77),L'), + herald_v10 herald/Z cones (|x|=48L, radius L), + history_v9/history_v11 eight ports with deadlines and bank rays (deadline, 2L], + native_seed_v12 q10 extension B_(R+10)(q10), + source families: 1479 inherited table; junction_v4 controls (four selectors, two reset pulses); + lower front O, W, E; upper cluster Q,C,G,J,K+-,N; F10 pin; herald family and z source; + remote program blocks (|x|>=12R, inside their remote balls). +Previous-slice ready radius = current radius - 1 (history_v9 'previous ready ball B_(L-1)(q8)'). +Also a list-free structural bound: max declared deadline in the lineage. + +Usage: python3 -I -B indep_inventory.py +""" +import json +import sys + +T = 185 +P = 12*840**185 +S = P+T +d = 68 +R = S+d +L = R+9 +Q9 = (0, S, 77) + + +def l1(p, q): + return sum(abs(a-b) for a, b in zip(p, q)) + + +def plus(p, e, k): + return tuple(a+k*b for a, b in zip(p, e)) + + +regions = [] # (name, centre, current radius) +orig = [(0, T, 0), (T, 0, 0), (-T, 0, 0), (4*T, 0, 0), (0, 0, -8*T)] +regions += [('junction original %d' % i, c, T) for i, c in enumerate(orig)] +regions += [('junction transported %d' % i, plus(c, (0, 1, 0), P), S) for i, c in enumerate(orig[:4])] +regions += [('Y collision', (0, S, d), R), ('R collision', (0, S, -d), R), + ('q2', (0, S, d+2), R+2), ('q3', (0, S, d+3), R+3), + ('remote herald', (12*R, 0, 0), R), ('remote Z', (-12*R, 0, 0), R)] +regions += [('outward q%d' % k, (0, S, d+k), R+k) for k in range(4, 10)] +regions += [('herald_v10 herald', (48*L, 0, 0), L), ('herald_v10 Z', (-48*L, 0, 0), L)] +regions += [('Native B q10 extension', (0, S, 78), R+10)] +PORTS = [((0, T, 0), (0, -1, 0), T), ((0, 0, -8*T), (0, 0, -1), T), ((T, P, 0), (0, 1, 0), S), + ((-T, P, 0), (0, 1, 0), S), ((4*T, P, 0), (0, 1, 0), S), ((0, S, 0), (0, 1, 0), S), + ((12*R, 0, 0), (-1, 0, 0), R), ((48*L, 0, 0), (1, 0, 0), L)] +regions += [('port %d ready' % i, p, dl) for i, (p, _, dl) in enumerate(PORTS)] +# port balls duplicate junction balls (0,T,0),(0,0,-8T),transported,(12R,0,0) and herald: harmless. + +sources = {'O': (0, 0, 0), 'W': (0, -76, 76), 'E': (0, -78, 78), + 'Q': (0, S, S+136), 'C': (0, S, S+150), 'G': (0, S, S+152), 'J': (0, S, S+154), + 'K+': (1, S, S+153), 'K-': (-1, S, S+153), 'N': (0, S, S+156), + 'sel y': (0, 2*S, 0), 'sel +T': (T, P+S, 0), 'sel -T': (-T, P+S, 0), 'sel 4T': (4*T, P+S, 0), + 'reset pulse +': (0, S, S+2*d), 'reset pulse -': (0, S, -S-2*d), + 'F10 pin': (-(L+1), S, 78), 'z source': (-48*L, -L, 0)} +inherited = {tuple(r['position']) for r in json.load(open(sys.argv[1]))['sources']} + + +def on_bank(c): + for i, (p, e, dl) in enumerate(PORTS): + ax = [j for j in range(3) if e[j]][0] + if all(c[j] == p[j] for j in range(3) if j != ax): + t = (c[ax]-p[ax])*e[ax] + if dl < t <= 2*L: + return i + return None + + +DIRS = {'+x': (1, 0, 0), '-x': (-1, 0, 0), '+y': (0, 1, 0), '-y': (0, -1, 0), '+z': (0, 0, 1), '-z': (0, 0, -1)} +out = {} +for slice_, k, shrink in (('current', L+2, 0), ('previous', L+1, 1)): + for n, e in DIRS.items(): + c = plus(Q9, e, k) + margins = sorted((l1(c, cc)-(r-shrink), name) for name, cc, r in regions) + pinned = [name for m, name in margins if m <= 0] + src = [name for name, p in sources.items() if p == c] + (['inherited'] if c in inherited else []) + bank = on_bank(c) if slice_ == 'current' else None + remote = abs(c[0]) >= 12*R-R # remote blocks lie inside |x|>=11R + herald_family = c[0] >= 47*L + status = 'PINNED' if (pinned or src or remote or herald_family) else ('BANK' if bank is not None else 'FREE') + mm = margins[0][0] + out['%s %s' % (slice_, n)] = {'status': status, 'pinned_by': pinned[:3], 'sources': src, 'bank': bank, + 'min_margin': mm if abs(mm) < 10**6 else 'huge', 'nearest': margins[0][1]} +# List-free structural bound: a cell c can be pinned by a ready cone only around a declared +# record (target, deadline) with dist(c,target) <= deadline. Largest declared deadline is +# L+1 (q10); every record with deadline >= L is listed here. +records = [('q9 terminal', Q9, L), ('q10', (0, S, 78), L+1), ('herald', (48*L, 0, 0), L), ('Z', (-48*L, 0, 0), L), + ('q8 (Native A pool)', (0, S, 76), L+1)] +bound = {} +for n in ('-x', '+y', '-y'): + c = plus(Q9, DIRS[n], L+2) + bound[n] = min(l1(c, t)-dl for _, t, dl in records) +print(json.dumps({'regions': len(regions), 'keys': out, 'late_record_slack': bound}, indent=1)) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/indep_inventory_out.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/indep_inventory_out.json new file mode 100644 index 000000000..00cb818ed --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/indep_inventory_out.json @@ -0,0 +1,122 @@ +{ + "regions": 32, + "keys": { + "current +x": { + "status": "PINNED", + "pinned_by": [ + "junction transported 3", + "port 4 ready" + ], + "sources": [], + "bank": null, + "min_margin": -399, + "nearest": "junction transported 3" + }, + "current -x": { + "status": "FREE", + "pinned_by": [], + "sources": [], + "bank": null, + "min_margin": 2, + "nearest": "Native B q10 extension" + }, + "current +y": { + "status": "FREE", + "pinned_by": [], + "sources": [], + "bank": null, + "min_margin": 2, + "nearest": "Native B q10 extension" + }, + "current -y": { + "status": "FREE", + "pinned_by": [], + "sources": [], + "bank": null, + "min_margin": 2, + "nearest": "Native B q10 extension" + }, + "current +z": { + "status": "PINNED", + "pinned_by": [ + "Native B q10 extension" + ], + "sources": [ + "N" + ], + "bank": null, + "min_margin": 0, + "nearest": "Native B q10 extension" + }, + "current -z": { + "status": "PINNED", + "pinned_by": [ + "R collision" + ], + "sources": [], + "bank": null, + "min_margin": -134, + "nearest": "R collision" + }, + "previous +x": { + "status": "PINNED", + "pinned_by": [ + "junction transported 3", + "port 4 ready" + ], + "sources": [], + "bank": null, + "min_margin": -399, + "nearest": "junction transported 3" + }, + "previous -x": { + "status": "FREE", + "pinned_by": [], + "sources": [], + "bank": null, + "min_margin": 2, + "nearest": "Native B q10 extension" + }, + "previous +y": { + "status": "FREE", + "pinned_by": [], + "sources": [], + "bank": null, + "min_margin": 2, + "nearest": "Native B q10 extension" + }, + "previous -y": { + "status": "FREE", + "pinned_by": [], + "sources": [], + "bank": null, + "min_margin": 2, + "nearest": "Native B q10 extension" + }, + "previous +z": { + "status": "PINNED", + "pinned_by": [ + "Native B q10 extension" + ], + "sources": [], + "bank": null, + "min_margin": 0, + "nearest": "Native B q10 extension" + }, + "previous -z": { + "status": "PINNED", + "pinned_by": [ + "R collision" + ], + "sources": [], + "bank": null, + "min_margin": -134, + "nearest": "R collision" + } + }, + "late_record_slack": { + "-x": 2, + "+y": 2, + "-y": 2 + } +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/rev_mutants_out.txt b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/rev_mutants_out.txt new file mode 100644 index 000000000..4074ebaed --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_vread_v15/review/round2/rev_mutants_out.txt @@ -0,0 +1,25 @@ +K1_v14_pin exit=2 VOID: K1 input pin native_decode_v14/result.json +K1_table_truncated exit=2 VOID: K1 q10 table length +K1_source_count exit=2 VOID: K1 inherited source inventory +K2_cone_shift exit=2 VOID: K2 keys are exactly the axial cells +K2_cone_wider exit=2 VOID: K2 keys are exactly the axial cells +K2_counter_threshold exit=2 VOID: K2 countercontrol: shared off-axis cell not found +K3_H_nonbijective_both exit=2 VOID: K3 V is a permutation of the key +K3_key_prev_slice_both exit=2 VOID: K3 V is a permutation of the key +K3_counter_out_of_cone exit=2 VOID: K3 countercontrol: off-axis cell must change two neighbors +K3_key_offaxis_all exit=2 VOID: K3 V is a permutation of the key +K4_nonuniform_key exit=2 VOID: K4 null: uniform key gives equal V laws +K4_operand_far exit=2 VOID: K4 positive: pinned key lets V separate operands +K5_q9_ball_inflated exit=2 VOID: K5 ready list equals native_route_v13 geometry() +K5_E_moved exit=2 VOID: K5 anchor E,N are their declared sources +K5_q10_radius exit=2 VOID: K5 anchor q10 ready ball +K6_q9_codes exit=2 VOID: K6 old q9 is (0,s,s^a^b) +K6_shell_parity exit=2 VOID: K6 active banks at L+2 +K6_s_definition exit=2 VOID: K6 old q9 is (0,s,s^a^b) +K6_EN_avoid exit=2 VOID: K6 E,N avoid inherited ready balls +G_table_nonbijective exit=2 VOID: G uniform key gives uniform V on table rows +VERDICT_missing_region_pins_keys exit=2 VOID: K5 ready list equals native_route_v13 geometry() +VERDICT_missing_region_pins_minus_x exit=2 VOID: K5 ready list equals native_route_v13 geometry() +VERDICT_receiver_near_keys exit=2 VOID: K6 Native A f8 public slack 77 +STRENGTHEN_counter_every_n exit=0 NEGATIVE_FOR_CONSTRUCTION free=['-x', '+y'] public=['-y'] +STRENGTHEN_counter_polynomial_only exit=0 NEGATIVE_FOR_CONSTRUCTION free=['-x', '+y'] public=['-y'] diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/PLAN.md new file mode 100644 index 000000000..ac1cd2fec --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/PLAN.md @@ -0,0 +1,100 @@ +# Native A: retained-X coupling at the next actual q9 update + +24 October 2026. Source #910 at +`00e85e748cf8e5ada75f4e1a22aef87eb0a823a2`. The common contract is +`shared_v12/INTERFACE-CONTRACT.md`. Research only; no physical premise, +observer access, initialization change or equivalence verdict is adopted. + +## Fixed first question and productivity test + +At phase L+1, previous q9 is the actual old `(0,s,r_old)` and current q8/q10 +are the native conditional six-bit pool. Inspect the exact update at q9, +time L+2, preserving its old-local term and all six current neighbors. + +A useful result must either establish a source-compatible native coupling +or identify a concrete missing adapter condition beyond the already known +nonpositive decoder. In particular determine which of the other current +neighbors depends on the same f8/f10 sources, and whether treating the +neighborhood offset as an independent mask changes the actual joint kernel. +An abstract algebraic reset or a cold late-time processor is insufficient. + +## Calculation and decision rule, fixed before execution + +1. Exact geometry identifies the shared-seed neighboring front. At L+1, + f8/f10 can reach q8/q10 respectively and also the negative-x neighbor of + q9. The positive-x and both y neighbors are outside their cones. Retain + the shared neighbor jointly with the pool. +2. Derive the whole q9 update with the actual old-local triple. Direct small + native backward cones, including both initial slices, must reproduce + every field, not just the designated X coordinate. Enumerate complete + source pairs with independently chosen nonzero backgrounds and compare + their true kernel with the proposed independent-offset shortcut. +3. On an explicitly isolated source-front diagnostic only, derive a finite + triangular front recurrence and a justified exponent, then determine its + actual giant-delay phase. This can expose correlations/cancellations but + is not the old dirty apparatus unless a full compatibility audit succeeds. +4. Audit one possible original-time two-layer shell extension about q9. + Preserve every reserved bank exception and old source. If a clean-X + candidate requires an unavailable setting of the shared-seed neighbor or + a nonlinear/unknown-input initial copy, classify that candidate as failed. + If a witness survives, state all initialization changes and full incoming + kernel conditions before claiming physical availability. + +All verdicts require exact controls: full six-neighbor/old-local recursion; +joint pair enumeration; a shared-background countercontrol; finite-speed +source/pool/public-prefix exclusions; and any used period divisibility with +its actual index budget. No broad search or giant-duration simulation. +New initial sources may depend affinely only on known apparatus seeds. + +## Deliverables and limits + +Root publishes PLAN before extended work and later the six curated files +PLAN/REPORT/checks/result/PROVENANCE/SHA256SUMS under the existing draft. +Normal and optimized checker outputs must match. Communicate the actual +joint neighbor kernel promptly to composition and the alternate native path. +The public-prefix argument stops at its proved cut; a computation delay, +new public flag or reusable outgoing boundary needs a further joint audit. +No #885 edits, GitHub mutation, workflow launch, F/E designation or merge. + +## Preregistered constructive fork: third original-time frontier triple + +Before running this fork, specify an additional current source + + f9=(-(L+2),S,77), payload=(g0,g1,g2), + +where the three new known apparatus seed bits are independently fair and +independent of F8/F10 and every remaining initial variable. This is an +explicit candidate resource extension, not an adopted physical prior. +Each source field is affine in those new bits and contains no copy of s. + +At L+1 its assigned receiver is M=q9-e_x. The proposed geometry has own +distance L+1; both Q8/Q10 and the other three q9 neighbors have distance +L+3. Audit those statements, all original ready regions and source/bank +exceptions, the old selected phase, full public past through L+2 and no-wrap +torus geometry before invoking the resource. The expected public earliest +arrival lower bound is L+79, to be measured rather than assumed. + +Decision rule: accept a scoped physical masked-X coupling only if the full +native three-source map `(F8,F10,F9)->(Q8,Q10,M)` is bijective conditional +on every other initial variable, and the actual update + + V=U_(L+2)(q9)=oldP XOR H(Q8 XOR Q10 XOR M XOR C) + +has whole-triple uniformity jointly with Q8/Q10 and the earlier public +history. Here C is the sum of the other three neighbors; it may be treated +as a complement function only after its source exclusions are proved. +The fixed seven-site phase decoder must recover all of oldP, including s, +without history access. Retain previous Q8/Q10 and every rejected phase. + +Use complete512-world native controls at small distances and nonzero +two-slice backgrounds, plus an independent scalar control. Omitting or +sharing F9 must detect the resulting joint defect; old-local omission and +discarding the shared neighbor must fail the inverse identity. Local exact +truth tables must include all oldP/complement values, full V metadata and +all old/new abstract failure labels. A reference acceptance predicate may +test the carrier law but cannot be called native. + +Even on success this fork delivers a current masked physical carrier with a +fixed local phase code. A clean old-X operand, physically available unmasking, +native acceptance/whole flag, later computation/history closure and reusable +instrument remain separate questions. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/PROVENANCE.json new file mode 100644 index 000000000..c5ef50b4c --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/PROVENANCE.json @@ -0,0 +1,32 @@ +{ + "engine": "new full six-neighbor/two-slice packed implementation with separate scalar integer control; no author-engine imports", + "native_predicate_or_reusable_interface": false, + "new_resource": { + "affine_source_dimension": 3, + "independence": "three fair seed bits independent of F8,F10 and every other initial variable", + "initial_current_position": "(-(L+2),S,77)", + "payload": "(g0,g1,g2)", + "physical_adoption": false + }, + "no_astronomical_period_reduction_used": true, + "published_amended_plan_revision": "1b7293558c8d57fe3b17f3dba0a1aa04228e8086", + "schema": "oi.native-masked-X-coupling-provenance.v12", + "shared_contract_revision": "1324d9a854da60d0274ba77fe80d08e7cf2b1ef1", + "shared_contract_sha256": "1a0b34ebb0c7115dd5faae11d2ab20c25ecf8a6f091ea292eb184e4311be7633", + "source_context": { + "CURRENT-HANDOFF.md": { + "role": "historical contextual handoff; not an executable scientific dependency", + "sha256": "08e54c7bb5bd306b704537a64982538c7176a0b2152ab8209455403d5fbbd66c", + "source_revision": "00e85e748cf8e5ada75f4e1a22aef87eb0a823a2" + } + }, + "source_files": { + "history_v11/REPORT.md": "413c9595a6def923ba62e1c0d34c12c0516997fe1c928e5438abaf6a990fdb81", + "native_pool_v11/REPORT.md": "2c9d74e687f19de6730617ea5e3522396714c75a74c7ad8ea07cd52442b2d6a0", + "native_pool_v11/result.json": "e7e16099b322a9b44ade9f296d9ec9ad1dec9dc2e5807e836ff479043dcfe9c9", + "native_v11/REPORT.md": "eba6a93de9f784649da61f778eec6be4626df61f23c05fc71981c9ebace17deb", + "native_v11/result.json": "de03b82b0c4b9c16f979c547c92a6946e401a05dc6b989bfb5436b3de879b5b9", + "parallel_v3/history_control/SOURCE-GEOMETRY.json": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d" + }, + "source_revision": "00e85e748cf8e5ada75f4e1a22aef87eb0a823a2" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/REPORT.md new file mode 100644 index 000000000..bc510615c --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/REPORT.md @@ -0,0 +1,218 @@ +# Native masked-X coupling in the next actual two-slice phase + +Source #910 at `00e85e748cf8e5ada75f4e1a22aef87eb0a823a2`. +The constructive fork was specified before its calculations and published +at `1b7293558c8d57fe3b17f3dba0a1aa04228e8086`. + +**A single additional initially fair triple gives a native masked carrier +for the actual retained X, with a fixed seven-site phase decoder.** Its +whole current raw triple is uniform jointly with the retained six-bit pool +and earlier public history. The proof holds in every complementary dirty +background. It uses no new blank ready shell, giant-period shortcut or +unknown-input copy. The extra three-bit prior is a specified candidate +resource, not a derived or adopted physical preparation. + +This is native coupling and phase retention. It does not construct the +acceptance predicate, a clean X operand, a physical unmasking operation or +a reusable instrument. + +## 1. Actual next gate and the shared neighbor + +Retain T=185, P=12*840^185, S=P+185, R=S+68 and L=R+9. Let + + q9=(0,S,77), q8=(0,S,76), q10=(0,S,78), + m=(-1,S,77). + +At time L+1 the actual previous q9 is the old triple p=U_L(q9), equal +to (0,s,r_old) on the prepared successful family. Current q8/q10 carry the +retained conditional six-bit pool. The exact next native update is + + V=U_(L+2)(q9)=p XOR H(Q8 XOR Q10 XOR M XOR B), + +where M=U_(L+1)(m), while B is the XOR of current q9+e_x and q9+/-e_y. +These are all six neighbors; the old-local term p is retained. + +Both old fresh sources F8/F10 can reach m at L+1 as well as their own pool +target. M therefore shares their variables. It cannot be declared an +independent pad in the original six-bit family. The other three neighbors +are at distance L+3 from each F8/F10 source, so B is a function of the +remaining initial variables at this cut. + +## 2. One original-time source makes the triangle invertible + +Keep the two specified independent current sources + + f8=(-(L+1),S,76), f10=(-(L+1),S,78), + +and add one original-time current source + + f9=(-(L+2),S,77), payload=(g0,g1,g2). + +Its three bits are fair and independent of F8/F10 and every other initial +variable. Each initial field is affine in these known apparatus seed bits; +none contains s or a nonlinear precomputed predicate. The new source is +outside every retained ready region and source/bank exception. + +The exact distances to the three current targets, minus L, are: + +| Initial source | q8 | q10 | m | +| --- | ---: | ---: | ---: | +| f8 | 1 | 3 | 1 | +| f10 | 3 | 1 | 1 | +| f9 | 3 | 3 | 1 | + +Every source is at distance L+2 from q9, and L+3 from the other three +neighbors. In particular p and B are independent of the three source +variables by finite speed. This is a causal exclusion, not an assertion +that arbitrary other physical fields are independent. + +Let C denote all initial variables except these three triples. For each +fixed C: + +1. Q8 is a permutation of F8 and does not depend on F10 or F9. +2. Q10 is a permutation of F10 and does not depend on F8 or F9. +3. For fixed F8,F10, M is a permutation of F9, via its unique axial + first-arrival path of length L+1. + +The last statement tolerates all encounters with the other source fronts. +Conditional on them, each path step is H preceded and followed by XOR +translations. The old-local term and other five path neighbors are too +early to depend on F9 at the corresponding step. No linear superposition +or blank background is assumed. + +Successively invert Q8, Q10 and M. The three-source-to-three-target map is +a triangular bijection on 512 values for every C. Thus + + Pr(Q8=q,Q10=r,M=m | C)=1/512. + +The jointly uniform nine-bit output is independent of C, including p, +old records and flags. M may be correlated with the two source inputs +before this transformation; it is the complete output law that matters. + +## 3. Current ciphertext and fixed local decoder + +For fixed C and Q8,Q10, the map + + M -> V=p XOR H(Q8 XOR Q10 XOR M XOR B) + +is another permutation of eight triples. Consequently + + Pr(V=v,Q8=q,Q10=r | C)=1/512. + +The whole V is uniform independent of the pool and complementary initial +state. It is a ciphertext of p under a fresh three-bit mask. Neither this +independence nor the correct pool marginals requires erasing information. +The private key fields remain in the actual previous slice. + +At phase L+2 the old explicit q9 value at L is no longer directly one of +the two slices. Nevertheless the following fixed local map recovers it: + + p = current q9 XOR H(XOR_(six q9 neighbors) previous neighbor). + +It uses one current site and six previous sites, all within distance one +of q9. It reads no earlier record and depends on no history-chosen formula. +In particular, the actual retained X is + + s = current q9.B XOR XOR_(six q9 neighbors) previous neighbor.D. + +The previous q8/q10 still supply Y/R/Z/K by the fixed native_pool_v11 map. +Thus the source-compatible native update has physically written a masked +old-X carrier into a current field, while retaining a local phase code for +the actual s and pool. A decoder identity is not a physically available +observer operation or clean predicate input; those remain to be implemented. + +The resource increment is exactly three independent initial bits. For this +particular contract the added entropy is also necessary conditional on a +fixed C: the original six-bit source has only 64 possibilities, +already used bijectively by the pool. A whole independent uniform V would +require 512 pool/V possibilities. The third triple supplies that factor of +eight. This is a resource statement for the specified uniform-ciphertext +contract, not a minimality theorem for every native gate or reset mechanism. + +## 4. Public past, original preparation and all failures + +The exact minimum distances to the eight specified old public receivers +are L+77, L+79 and L+79 for f8,f10,f9. The complete permitted public past +through L+2, including old flags and the stipulated old whole-q9 record, +is therefore a function of C. The uniform joint pool/V result survives +conditioning on that entire past and every nonzero old branch. + +For a proposed single whole-V read at L+2, its raw refinement factor is +1/8 for each of the eight triples. There is no additional information in +its two undesignated fields. This statement addresses the new complete +triple at that cut; it does not authorize continuous q9 access or certify +an unexamined q9 prefix, native flag or later read. + +All 72 source/ready exclusions, 4,437 finite source comparisons and 24 public +cone exclusions pass. The three negative-x sources avoid all eight public +bank families through 2L. All indexed remote program sources are excluded +by their enclosing ready balls; no enormous source list is materialized. +The existing no-wrap torus remains adequate. + +No existing bank is reset. A naive all-zero radius-(L+2) current shell +about q9 would include eight old bank coordinates: M1/M2 and the first +two post-deadline bank coordinates of old rays 2,3,5. Four are in this target's active +spacetime component, at exact distance L+2. This fork preserves all eight +as arbitrary background, avoiding that unsupported blank-shell step. + +The local proof is valid for all old raw triples, including nonzero A +fields on an old failure. Every rejected physical selected phase remains. +An earlier terminal flag still forbids an offered carrier. Native dynamics +continues on such branches; a uniform ciphertext does not restart a carrier. + +## 5. Reference post-X law and limits of the positive result + +Under the retained abstract predicate + + A = [K>2)&1,(v>>1)&1,v&1 + return (b<<2)|(d<<1)|(a^(b&d)) + + +def actual_geometry(root): + T=185 + P=12*840**185 + S=P+T + R=S+68 + L=R+9 + q9=(0,S,77) + targets=[(0,S,76),(0,S,78),(-1,S,77)] + sources=[(-(L+1),S,76),(-(L+1),S,78),(-(L+2),S,77)] + others=[(1,S,77),(0,S-1,77),(0,S+1,77)] + ports=[(0,T,0),(0,0,-8*T),(T,P,0),(-T,P,0),(4*T,P,0), + (0,S,0),(12*R,0,0),(48*L,0,0)] + deadline=[T,T,S,S,S,S,R,L] + ready=list(zip(ports,deadline)) + ready += [((T,0,0),T),((-T,0,0),T),((4*T,0,0),T), + ((0,S,-68),R),((-12*R,0,0),R)] + ready += [((0,S,68+k),R+k) for k in range(10)] + ready += [((-48*L,0,0),L)] + local=[(0,0,0),(0,-76,76),(0,S,S+136),(0,S,S+150), + (0,S,S+152),(0,S,S+154),(1,S,S+153),(-1,S,S+153)] + finite=json.loads((root/'parallel_v3/history_control/SOURCE-GEOMETRY.json').read_text())['sources'] + positions={tuple(row['position']) for row in finite} + distances=[[dist(f,t)-L for t in targets] for f in sources] + need(distances==[[1,3,1],[3,1,1],[3,3,1]],'actual triangular source geometry') + ready_rows=source_rows=public_rows=0 + public_slacks=[] + for f in sources: + need(dist(f,q9)==L+2,'old-local q9 unaffected') + need(all(dist(f,t)==L+3 for t in others),'other three neighbors share source') + for center,radius in ready: + need(dist(f,center)>radius,'old readiness overwritten') + ready_rows+=1 + need(f not in positions and f not in local,'source payload overwritten') + source_rows+=len(finite) + for p in ports: + need(dist(f,p)>L+2,'old full public past through L+2 changed') + public_rows+=1 + public_slacks.append(min(dist(f,p)-L for p in ports)) + # Six local bank rays have fixed x; old/new herald rays have + # strictly positive x through2L. No alias at any reserved index. + need(f[0] not in (0,T,-T,4*T),'local bank alias') + need(12*R-2*L>0,'old herald bank sign') + need(48*L+L+1>0,'new herald bank sign') + for center,radius in [((12*R,0,0),R),((-12*R,0,0),R), + ((48*L,0,0),L),((-48*L,0,0),L)]: + need(dist(f,center)>radius,'remote program consumed') + need((sum(f)-sum(q9)-(L+2))%2==0,'inactive spacetime component') + need(public_slacks==[77,79,79],'public arrival offsets') + need(len(set(sources))==3,'frontier sources not distinct') + need(dist(sources[2],targets[2])==L+1,'F9 own axis') + need(2*(51*L+S+8*T+200)<256*L+64*T+1,'no-wrap envelope') + # A proposed all-zero radius-(L+2) q9 current shell would consume eight + # old bank coordinates. Four are in this target's active component. + bank_points=[(0,-1,0),(0,-2,0)] + bank_points += [(T,P+S+k,0) for k in (1,2)] + bank_points += [(-T,P+S+k,0) for k in (1,2)] + bank_points += [(0,S+S+k,0) for k in (1,2)] + need(all(dist(p,q9)<=L+2 for p in bank_points),'shell bank exceptions') + active=[p for p in bank_points if (sum(p)-sum(q9)-(L+2))%2==0] + need(len(active)==4 and all(dist(p,q9)==L+2 for p in active), + 'active shell exception front') + return {'source_formulas':['(-(L+1),S,76)','(-(L+1),S,78)','(-(L+2),S,77)'], + 'target_offsets_over_L':distances,'ready_exclusions':ready_rows, + 'inherited_source_comparisons':source_rows,'public_cone_exclusions':public_rows, + 'minimum_public_arrival_offsets_over_L':public_slacks, + 'new_initial_fair_bits':3,'total_frontier_fair_bits':9, + 'zero_shell_old_bank_exceptions':8,'active_shell_bank_exceptions':4, + 'needs_new_zero_readiness':False,'reserved_eight_stream_bank_untouched_through_2L':True} + + +def background(seed,t,p): + x,y,z=p + return ((x*x+3*y*y+7*z+13*t+seed)^(x*y+z*z+11*seed*t))&7 + + +def packed_native(n,seed): + rows=list(product(range(8),repeat=3)) + full=(1<>(2-k))&1)<>lane)&1)<<(2-k) for k in range(3)) + for lane in range(len(rows))] + + return rows,unpack + + +def scalar_native(n,seed,assignment,t,target): + positions=[(-n,0,-1),(-n,0,1),(-n-1,0,0)] + sources=dict(zip(positions,assignment)) + + @lru_cache(None) + def get(time,p): + if time==0 and p in sources: + return sources[p] + if time in (-1,0): + return background(seed,time,p) + accumulator=0 + for step in STEPS: + accumulator^=get(time-1,tuple(a+b for a,b in zip(p,step))) + return get(time-2,p)^h(accumulator) + return get(t,target) + + +def native_controls(): + families=worlds=scalar_rows=inverse_rows=0 + missing_shared=missing_old=0 + old_codes=set() + for n in range(1,5): + for seed in (0,3,8): + rows,unpack=packed_native(n,seed) + center=(0,0,0) + q8=unpack(n,(0,0,-1)) + q10=unpack(n,(0,0,1)) + middle=unpack(n,(-1,0,0)) + other_values=[unpack(n,p) for p in ((1,0,0),(0,-1,0),(0,1,0))] + old=unpack(n-1,center) + value=unpack(n+1,center) + need(len(set(old))==1,'old q9 depends on new sources') + need(all(len(set(v))==1 for v in other_values),'other neighbors depend on new sources') + complement=other_values[0][0]^other_values[1][0]^other_values[2][0] + old_codes.add(old[0]) + image={(q8[j],q10[j],middle[j]) for j in range(512)} + need(len(image)==512,'native triangular source map singular') + output={(q8[j],q10[j],value[j]) for j in range(512)} + need(len(output)==512,'whole V/pool product law fails') + need(Counter(value)=={code:64 for code in range(8)},'whole V not uniform') + for lane,row in enumerate(rows): + total=q8[lane]^q10[lane]^middle[lane]^complement + need(value[lane]==old[lane]^h(total),'actual whole q9 update') + recovered=value[lane]^h(total) + need(recovered==old[lane],'fixed seven-site inverse') + need(((value[lane]>>1)&1) ^ (total&1) == ((old[lane]>>1)&1), + 'fixed previous-D/current-B X decoder') + if value[lane]^h(q8[lane]^q10[lane]^complement)!=old[lane]: + missing_shared+=1 + if value[lane]!=h(total): + missing_old+=1 + inverse_rows+=1 + # F9=0 or F9=F8 leaves only64 worlds. Given a pool pair V is + # then deterministic, TV7/8 from the correct uniform joint law. + for mode in ('omit','share'): + selected=[j for j,row in enumerate(rows) + if row[2]==(0 if mode=='omit' else row[0])] + need(len(selected)==64,'negative-control support') + need(len({(q8[j],q10[j],value[j]) for j in selected})==64, + 'missing/shared F9 did not collapse joint support') + need(Fraction(1)-Fraction(64,512)==Fraction(7,8),'joint negative-control TV') + for lane in (0,7,56,73,219,511): + row=rows[lane] + for time,p,expected in [(n,(0,0,-1),q8[lane]), + (n,(0,0,1),q10[lane]), + (n,(-1,0,0),middle[lane]), + (n+1,center,value[lane])]: + need(scalar_native(n,seed,row,time,p)==expected,'scalar/packed native control') + scalar_rows+=1 + families+=1 + worlds+=512 + need(missing_shared>0 and missing_old>0,'inverse negative controls are vacuous') + return {'native_world_families':families,'complete_native_worlds':worlds, + 'scalar_independent_comparisons':scalar_rows,'inverse_decoder_rows':inverse_rows, + 'without_shared_neighbor_inverse_failures':missing_shared, + 'without_oldlocal_update_failures':missing_old, + 'old_triples_observed_in_smoke':sorted(old_codes), + 'uniform_joint_pool_V_support_each_family':512, + 'omitted_or_shared_F9_joint_TV':'7/8'} + + +def local_all_branch_controls(): + thresholds={(0,0):5,(0,1):0,(1,0):4,(1,1):1} + truth_rows=0 + success_rows=0 + for old,complement in product(range(8),repeat=2): + s=(old>>1)&1 + reference={(s,y,r,z):weight + for y,r,weight in ((s,s,Fraction(1,4)), + (1^s,s,Fraction(1,5)), + (1^s,1^s,Fraction(1,20))) + for z in (0,1)} + raw_joint=Counter() + accepted=Counter() + rejected=Counter() + physical=Counter() + physical_success=Counter() + physical_failure=Counter() + offers=Counter() + resurrection_mutant=0 + for q8,q10,middle in product(range(8),repeat=3): + total=q8^q10^middle^complement + V=old^h(total) + recovered=V^h(total) + need(recovered==old,'all-old-triple inverse') + Y=(q8>>1)&1 + R=q10&1 + Z=(q10>>1)&1 + K=((q8>>2)&1)+2*(q8&1)+4*((q10>>2)&1) + flag=KV is a permutation. Thus (Q8,Q10,V) is uniform on 512 values, +independent of C. The whole current V triple, including its undesignated +fields, is independent of the old state and pool. This is a native masked +coupling of the actual old p; it is not a clean operand or an acceptance bit. + +The fixed seven-site identity + + p=current q9 XOR H(XOR_(six neighbors) previous neighbor) + +recovers all of p at phase L+2. In particular + + s=current q9.B XOR XOR_(six neighbors) previous neighbor.D. + +The inverse reads only the actual two-slice local phase. It neither asks +for the expired raw q9 slice nor reads earlier public history. Previous +q8/q10 still supply the pool coordinates. Hence logical X and the fresh +pool remain encoded locally after this native tick. The mathematical +decoder does not establish an observer read or a native unmasking circuit. + +The support lower bound is also correctly scoped. Conditional on every +other initial variable, the original six fair bits supply only 64 joint +outcomes, already used bijectively by the pool. A separate uniform whole +V requires 512 outcomes. Three extra fair bits suffice here and are +necessary for this particular conditional independent-uniform-ciphertext +contract. This is not a universal lower bound for all native reset designs. + +## Records, the reference post-X target and failures + +For a proposed single whole-V read at L+2, each raw triple has refinement +factor 1/8 jointly with the decoded carrier. The claim is about this one +fixed-time raw read. It does not cover continuous q9-prefix access, reads +of the private key, later ports or the physical clock/actuator needed to +implement the new access convention. + +Under the retained abstract threshold predicate 5,0,4,1, the full selected +post-X measure has its 5:4:1 plane support and independently fair Z. For +every old raw p and fixed B, independent exact reconstruction verifies + + Pr(V=v,A=1,j | C)=(1/8)(5/16)mu_X,s(j), + Pr(V=v,A=0 | C)=(1/8)(11/16). + +This is stronger than separate matching marginals. The computation retains +all 512 physical selected phases and their accepted/rejected partition for +each old/background context. Old nonzero-A triples remain physical failure +controls; no qubit output is asserted on an earlier terminal branch. The +old flag guard prevents all false offers after termination. Nothing turns +the reference A into a physical herald or replaces rejected raw fields by +a chosen quantum failure state. + +An additional independent access countercontrol illustrates why the key +qualification matters. If both V and the private previous M are exposed, +some nonzero reference accepted branches of valid A=0 old carrier triples +have fixed Bloch-decoder determinant -1/18. There are 1,024 such sectors +across the tested old/background contexts. The whole V alone gives the +claimed valid reference output law. This extra M read is a changed protocol +class, not an operation the candidate already permits. + +## Independent computation and scope + +The review checker imports no author engine and evolves a forward shrinking +three-dimensional causal diamond. Its eight nonzero-background families +cover 4,096 complete three-source worlds, 528 conditional diagonal tests +and 4,096 complete inverse checks. Their joint pool/M and pool/V supports +are exactly 512. Dropping the old-local term gives 4,096 failures; omitting +the shared neighbor in the inverse gives 3,584. Pinning or sharing F9 leaves +only 64 pool/V values, at TV 7/8 from the required independent uniform law. + +Separate exact local tables cover all 32,768 old-p/background/pool/key +assignments and 4,096 complete carrier cells, including forbidden zero-mass +cells, all raw V values and every old-terminal guard. The finite native +controls exercise the mechanisms; the actual astronomical-time conclusion +rests on the reviewed finite-speed, unique-path and permutation proof. + +Normal and optimized review outputs agree byte for byte with result.json, +and source compilation passes. The five curated review files are REPORT.md, +checks.py, result.json, INPUT-HASHES.json and SHA256SUMS. Replay with +`python3 checks.py` or `python3 -O checks.py`; optional --author-root and +--source-root arguments support a sparse checkout. + +The accepted result is an actual conditional native coupling and a fixed +local phase representation. Native predicate evaluation, physical unmasking, +the whole native flag record, delayed joint history/carrier preservation, +access closure and a reusable measurement boundary remain open. Full A1 +coverage, stated general A2 guarantees, calibration selection and composites +are separate obligations. The work does not edit #885, adopt a premise or +authorize a dispatch, designation or merge. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/review/SHA256SUMS new file mode 100644 index 000000000..966c6b491 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/review/SHA256SUMS @@ -0,0 +1,4 @@ +e474bcd8bd2abe233b4521e627b3bb56f65ccc297e02a5e43bda389120341ece REPORT.md +885d72a91e2fd89816a291cac963f6887a31d6b72292b17926ec47a9dffe970f checks.py +a5c500a5dc6bb9aefb04fc9457d839f90708843bd8536db428d2db47c554344c result.json +311289c2a12c8ef1de9a1da236b38a3fa12bc58abf429333032d9aaf2ee0b7b0 INPUT-HASHES.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/review/checks.py new file mode 100644 index 000000000..90a4d9827 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/review/checks.py @@ -0,0 +1,292 @@ +"""Independent forward-cone and exact joint-law review of native X coupling.""" +import argparse +from collections import Counter +from fractions import Fraction +import hashlib +from itertools import product +import json +from pathlib import Path + + +H = (0, 2, 4, 7, 1, 3, 5, 6) +STEPS = ((1,0,0),(-1,0,0),(0,1,0),(0,-1,0),(0,0,1),(0,0,-1)) + + +def check(ok, message): + if not ok: + raise RuntimeError(message) + + +def distance(a,b): + return sum(abs(x-y) for x,y in zip(a,b)) + + +def plus(a,b): + return tuple(x+y for x,y in zip(a,b)) + + +def rule_controls(): + for value in range(8): + a,b,d = ((value >> k)&1 for k in (2,1,0)) + expected = (b<<2)+(d<<1)+(a^(b&d)) + check(H[value] == expected, 'native H truth table') + out=H[value] + aa,bb,dd=((out>>k)&1 for k in (2,1,0)) + inverse=((dd^(aa&bb))<<2)+(aa<<1)+bb + check(inverse==value, 'native H inverse') + check(len(set(H))==8, 'H not a permutation') + return 8 + + +def geometry(source_root): + T=185 + P=12*840**185 + S=P+T + R=S+68 + L=R+9 + side=256*L+64*T+1 + q9=(0,S,77) + receivers=[(0,S,76),(0,S,78),(-1,S,77)] + sources=[(-(L+1),S,76),(-(L+1),S,78),(-(L+2),S,77)] + excluded=[(1,S,77),(0,S+1,77),(0,S-1,77)] + ports=[(0,T,0),(0,0,-8*T),(T,P,0),(-T,P,0), + (4*T,P,0),(0,S,0),(12*R,0,0),(48*L,0,0)] + starts=[T,T,S,S,S,S,R,L] + directions=[(0,-1,0),(0,0,-1),(0,1,0),(0,1,0), + (0,1,0),(0,1,0),(-1,0,0),(1,0,0)] + # Reconstruct the original prepared centers, including every retained + # local outward step, plus both remote apparatus families. + ready=list(zip(ports,starts)) + ready.extend([(p,T) for p in ((T,0,0),(-T,0,0),(4*T,0,0))]) + ready.extend([((0,S,-68),R),((-12*R,0,0),R)]) + ready.extend([((0,S,68+j),R+j) for j in range(10)]) + ready.append(((-48*L,0,0),L)) + inventory=json.loads((source_root/'parallel_v3/history_control/SOURCE-GEOMETRY.json').read_text())['sources'] + local_pins=[(0,0,0),(0,-76,76),(0,S,S+136),(0,S,S+150), + (0,S,S+152),(0,S,S+154),(1,S,S+153),(-1,S,S+153)] + expected=((1,3,1),(3,1,1),(3,3,1)) + for f,row in zip(sources,expected): + check(tuple(distance(f,p)-L for p in receivers)==row, 'triangular frontier distances') + check(distance(f,q9)==L+2, 'old-local field source exclusion') + check(all(distance(f,p)==L+3 for p in excluded), 'other three neighbors source exclusion') + check(all(distance(f,p)>r for p,r in ready), 'readiness pin conflict') + check(all(f!=tuple(item['position']) for item in inventory), 'finite source alias') + check(f not in local_pins, 'local source alias') + cuts=[min(distance(f,p)-L for p in ports) for f in sources] + check(cuts==[77,79,79], 'old public cut distances') + check(all(distance(f,p)>L+2 for f in sources for p in ports), 'old public history changed') + # Independently minimize point-to-ray distance by clamping each axial + # source parameter, covering every index up to the maximal 2L horizon. + ray_checks=0 + for f in sources: + for p,a,e in zip(ports,starts,directions): + axis=next(k for k in range(3) if e[k]) + root=(f[axis]-p[axis])*e[axis] + t=max(a+1,min(2*L,root)) + bank=tuple(p[k]+e[k]*t for k in range(3)) + check(distance(f,bank)>0, 'reserved bank source collision') + ray_checks+=1 + check(len(set(sources))==3, 'duplicated new sources') + # One common lift covers all source, target, ready and bank extrema. + extrema=sources+receivers+excluded+ports+local_pins + for p,r in ready: + extrema.extend(tuple(p[k]+(sign*r if k==axis else 0) for k in range(3)) + for axis in range(3) for sign in (-1,1)) + for p,a,e in zip(ports,starts,directions): + extrema.extend(tuple(p[k]+e[k]*t for k in range(3)) for t in (a+1,2*L)) + spans=[max(p[k] for p in extrema)-min(p[k] for p in extrema) for k in range(3)] + check(all(2*x>k)&1)<>k)&1 else 0 for k in range(3)) + + radius=n+1 + previous={p:background(-1,p) for p in ball(radius-1)} + current={p:packed_sources.get(p,background(0,p)) for p in ball(radius)} + snapshots={-1:previous,0:current} + for t in range(1,radius+1): + nxt={} + for p in ball(radius-t): + d=b=a=0 + for delta in STEPS: + v=current[plus(p,delta)] + d^=v[0];b^=v[1];a^=v[2] + old=previous[p] + nxt[p]=(old[0]^a^(b&d),old[1]^d,old[2]^b) + previous,current=current,nxt + snapshots[t]=current + + def unpack(t,p): + v=snapshots[t][p] + return [sum(((v[k]>>i)&1)<>1)&1)^(total&1)==((ps[i]>>1)&1), 'fixed X parity decoder') + old_mutants+=int(vs[i]!=H[total]) + key_mutants+=int(vs[i]^H[q8[i]^q10[i]^b3]!=ps[i]) + for mode in (0,1): + selected=[i for i,row in enumerate(assignments) if row[2]==(row[0] if mode else 0)] + check(len(set((q8[i],q10[i],vs[i]) for i in selected))==64, 'pinned/shared source countercontrol') + cases+=1;rows+=512 + check(old_mutants>0 and key_mutants>0, 'native negative controls are vacuous') + return {'forward_native_families':cases,'forward_native_worlds':rows, + 'conditional_diagonal_checks':diagonals,'inverse_checks':rows, + 'old_local_mutant_failures':old_mutants,'missing_key_mutant_failures':key_mutants, + 'old_raw_triples_observed':sorted(old_seen),'pinned_or_shared_joint_tv':'7/8'} + + +def full_branch_controls(): + threshold=((5,0),(4,1)) + rows=cell_checks=negative_key_sectors=0 + determinants=set() + for old,b3 in product(range(8),repeat=2): + s=(old>>1)&1 + accepted=Counter();rejected=Counter();key_public=Counter();physical=Counter() + for q,r,m in product(range(8),repeat=3): + v=old^H[q^r^m^b3] + check(v^H[q^r^m^b3]==old, 'local all-raw inverse') + y,z,rr=(q>>1)&1,(r>>1)&1,r&1 + k=(q>>2)+2*(q&1)+4*(r>>2) + flag=k0, 'private-key access control vacuous') + return {'all_raw_old_background_worlds':rows,'full_joint_carrier_cells':cell_checks, + 'acceptance':'5/16','reference_failure':'11/16','whole_cipher_symbol':'1/8', + 'private_key_exposure_negative_sectors':negative_key_sectors, + 'private_key_exposure_determinants':sorted(determinants), + 'native_acceptance_flag_claimed':False} + + +def locate(here,args): + if args.author_root: + author=args.author_root + elif (here.parent/'PROVENANCE.json').exists(): + author=here.parent + else: + author=here.parent/'native_x_v12' + if args.source_root: + source=args.source_root + elif (author.parent/'parallel_v3').exists(): + source=author.parent + else: + source=here.parent/'checkpoint_v11' + return author,source + + +def main(): + parser=argparse.ArgumentParser() + parser.add_argument('--author-root',type=Path) + parser.add_argument('--source-root',type=Path) + args=parser.parse_args() + here=Path(__file__).resolve().parent + author,source=locate(here,args) + pins=json.loads((here/'INPUT-HASHES.json').read_text()) + for name,entry in pins['author_files'].items(): + content=(author/name).read_bytes() + check(hashlib.sha256(content).hexdigest()==entry['sha256'], 'author hash '+name) + check(hashlib.sha1(b'blob '+str(len(content)).encode()+b'\0'+content).hexdigest()==entry['git_blob'], 'author Git identity '+name) + for name,digest in pins['scientific_inputs'].items(): + check(hashlib.sha256((source/name).read_bytes()).hexdigest()==digest, 'scientific input hash '+name) + result={'schema':'oi.native-x-v12.independent-review.v1', + 'reviewed_author_revision':pins['reviewed_author_revision'], + 'rule_cases':rule_controls(),'geometry':geometry(source), + 'native':native_controls(),'joint_branches':full_branch_controls(), + 'verdict':'ACCEPT_SCOPED_NATIVE_MASKED_X_COUPLING', + 'scope':'Native conditional resource/ciphertext and fixed inverse code; no native predicate, physical unmasking, continuous port access or reusable instrument.'} + print(json.dumps(result,sort_keys=True,indent=2)) + + +if __name__=='__main__': + main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/review/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/review/result.json new file mode 100644 index 000000000..da9fa6446 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/native_x_v12/review/result.json @@ -0,0 +1,50 @@ +{ + "geometry": { + "active_shell_exceptions": 4, + "finite_source_pairs": 4437, + "full_bank_ray_pairs": 24, + "public_cut_pairs": 24, + "public_minimum_offsets": [ + 77, + 79, + 79 + ], + "ready_pairs": 72, + "torus_lift_checked": true, + "zero_shell_exceptions": 8 + }, + "joint_branches": { + "acceptance": "5/16", + "all_raw_old_background_worlds": 32768, + "full_joint_carrier_cells": 4096, + "native_acceptance_flag_claimed": false, + "private_key_exposure_determinants": [ + "-1/18", + "0" + ], + "private_key_exposure_negative_sectors": 1024, + "reference_failure": "11/16", + "whole_cipher_symbol": "1/8" + }, + "native": { + "conditional_diagonal_checks": 528, + "forward_native_families": 8, + "forward_native_worlds": 4096, + "inverse_checks": 4096, + "missing_key_mutant_failures": 3584, + "old_local_mutant_failures": 4096, + "old_raw_triples_observed": [ + 1, + 3, + 5, + 6, + 7 + ], + "pinned_or_shared_joint_tv": "7/8" + }, + "reviewed_author_revision": "f24a57a7c23cc1818c04265cec7604f8bc2f410d", + "rule_cases": 8, + "schema": "oi.native-x-v12.independent-review.v1", + "scope": "Native conditional resource/ciphertext and fixed inverse code; no native predicate, physical unmasking, continuous port access or reusable instrument.", + "verdict": "ACCEPT_SCOPED_NATIVE_MASKED_X_COUPLING" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/CORRECTION-PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/CORRECTION-PROVENANCE.json new file mode 100644 index 000000000..55015eff5 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/CORRECTION-PROVENANCE.json @@ -0,0 +1,7 @@ +{ + "initial_source_absolute": "(0,S,S+2d+14)", + "initial_payload": "(u,0,u)", + "status": "author checked; independent review pending", + "repository_actions": [], + "scope": "native clean original-qY readout; late q2.A input test still fails" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/CORRECTION-REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/CORRECTION-REPORT.md new file mode 100644 index 000000000..73b8909d8 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/CORRECTION-REPORT.md @@ -0,0 +1,198 @@ +# An initial seed-only pulse produces a clean native q7 Y code + +24 October 2026. Constructive follow-up to the uncorrected outward-port scan. +Author-checked result; independent review pending. This is a different initial +apparatus preparation, explicitly specified below, not an operation performed +mid-run. Repository read-only. + +## Result and scope + +Keep the q7 depth-seven initial ready extension and add the initial source + + f=(0,S,S+2d+14), U_0(f)=(u,0,u), d=68. + +All other sources and initial conditions remain those of the uncorrected q7 +construction. Only the q7 ready prescription is adopted for this candidate; +the separate k8..12 scan preparations are not jointly adopted. The payload depends only on the existing apparatus seed u, not +on unknown input x or the arriving operand. It is affine in u and needs no +additional independent random bit. + +At q7=qY+7e_z and N=R+7 the native full triple becomes exactly + + U_N(q7)=(0,0,y), y=x XOR u. + +The originally arriving qY.D operand is transferred genuinely: replacing only +qY.D at tickR by diagnostic p yields + + (x(1 XOR u)(1 XOR p), (x XOR u)(1 XOR p), p). + +Thus D=p for every assignment, and both other fields vanish on native runs. +For arbitrary diagnostic p the whole triple is not always clean; only D=p +is universal. +This is a native clean readout of the original qY operand under the modified +initial preparation. It is not a Y reset, and not an arbitrary reusable q2 +input socket. The distinction is tested again after the correction below. + +## 1. Initial source and causal compatibility + +The source lies14 cells beyond the old upper pulse Q=(u,0,1) at +`(0,S,S+2d)`. It lies exactly on q7's current ready boundary: + + dist(f,q7)=N, dist(f,q7+e_z)=N-1. + +It is outside all fifteen inherited current ready regions, including q2 and +the optional q3 extension, and overwrites no entry in the1,479-source table. +It is disjoint from all protected frontier families: the near families have +z=0 or negative z, and the remote families have separated x coordinates. +The new source is an explicit exception to the new q7 ready-zero prescription. +Relative to the earlier uncorrected q7 scan, this changes the source value +that was zero. It does not silently claim the same full initial preparation. + +The existing u seed is copied into two fields at f. Every field is affine in +that already present seed, so the initial seed rank does not increase. This +is still a supplied initial correlation/readiness resource, not a constructed +native initializer or a free preparation theorem. No unknown x, later p, or +native y is preloaded at f. + +Finite speed gives stronger endpoint exclusions: + +- f cannot affect any q7 prefix before N, or its old local term at N-2; +- at the final neighbour slice N-1, only the upper neighbour q7+e_z can depend + on f. Its distance isN-1; the other five neighbours are at distanceN+1; +- all fifteen old receiver centers are farther thanN from f, so their complete + histories throughN are unchanged by this source correction; +- every earlier straight-outward endpoint k<=6 is outside f's cone at R+k. + +Each of the four lower source positions has distance2N from f. Along the unique +first-arrival path from f to the upper neighbour, no lower-source contribution +can arrive in time. The qY.D and q2.A diagnostic interventions are also outside +that neighbour's backward cone. Its value is therefore an exact upper/C dipole +calculation, with the lower sources absent, even though lower/old-upper +interactions have occurred elsewhere earlier. + +## 2. Full nonlinear dipole calculation + +Allow the new source C to range over all eight triples while fixing u. Use an +axial coordinate directed inward from the old upper pulse. The two sources are + + axial0: Q=(u,0,1), axial-14: C. + +The upper neighbour at N-1 is queried at + + n=R-8=P+245, t=N-1=P+259, ell=t-n=14. + +The closed strip of budget14 is sufficient. Its universal identity exponent +`12*840^14` divides actual P, so the query is exactly equivalent to the same +full two-source evolution at n'=245,t'=259. This reduction does not add the +isolated pulse solutions. The sources can interact at tick7, and that +interaction is retained in the directly computed initial strip and all later +native updates. + +The complete C-to-upper-neighbour maps are: + +| C | u=0 | u=1 | +|---|---|---| +| 000 | 110 | 111 | +| 001 | 010 | 110 | +| 010 | 101 | 101 | +| 011 | 111 | 100 | +| 100 | 011 | 000 | +| 101 | 001 | 010 | +| 110 | 000 | 001 | +| 111 | 100 | 011 | + +Each column is a permutation of all eight triples, consistent with the unique +first-arrival path. C=000 is the uncorrected background. Choosing C=(u,0,u) +gives the upper-neighbour change + + delta(u)=(u,0,u). + +The unique choices are C000 for u=0 and C101 for u=1. The old local triple +`U_(N-2)(q7)` is111 for either u, independently verified by the separate +single-pulse strip and by the retained full shrinking diamond. + +## 3. Full final native update + +Let the uncorrected neighbour XOR at timeN-1 be(A,B,D), and the old local term +be111. The unchanged rule gives + + old_output = 111 XOR H(A,B,D). + +Only the upper neighbour changes, by the computed delta=(u,0,u). Therefore the +new output has the same A field, its B field toggles byu, and its D field +changes by + + deltaD=u XOR uB = u*(old_output.A). + +For the uncorrected qY.D diagnostic, +`old_output.A=x(1 XOR u)(1 XOR p)`, so this product vanishes for every assignment. +Consequently the full corrected diagnostic is + + (x(1 XOR u)(1 XOR p), (x XOR u)(1 XOR p), p). + +Substituting native p=x XOR u makes the first two entries zero. No neighbour +field was manually blanked; the clean code emerges under the original native +update from the specified initial sources. This is not a bijection on one +isolated three-bit cell. Information remains elsewhere in the reversible +lattice and its correlated apparatus state, so the earlier three-code counting +obstruction is not contradicted. + +## 4. The q2 reuse diagnostic still fails + +A separate test leaves qY native and replaces only q2.A at R+2 by p2, keeping +q2's other two native fields. After the new source correction, q7 equals + + ((x XOR p2)(1 XOR u), + x XOR u XOR p2, + x XOR xu XOR p2 XOR xp2 XOR xup2). + +All32 x,u,mY,mR,p2 assignments are checked after correction. In particular +x=1,u=0,p2=0 gives111, whose D field is not p2. The correction cannot influence +the upper neighbour through this late intervention, and its D adjustment +again vanishes because u times the relevant old A field iszero. + +Thus the native q7 clean code is a constructive readout result for the existing +qY-initiated wave. The proof does not turn a later arbitrary q2 input into a +clean reusable socket. A subsequent native measurement/reset still requires +its own interface and conditional-resource construction. + +## 5. Privacy, resources, and probability boundary + +Because f first reaches q7 only atN, it cannot repair the informative early +prefix. The uncorrected prefix atR-7 remains(u,u,1). The receiver must remain +private until the designated read under the inherited supplied access rule. +No native shutter, clock, or access-closure mechanism is added. + +The source change does not consume or pin any reserved frontier coordinate. +The depth-seven geometry still requires147 extra initially independent fair +bits to extend the seven old public records fromR toR+7, using the inherited +joint-frontier theorem. This is105 more than the earlier depth-two window. +The correction itself adds no independent random seed. The old receiver +histories are unchanged throughN by finite speed. A complete independent +joint-history certification is not supplied by this local calculation. + +There is no new herald. The established first-reset success/failure accounting +remains the one inherited from the earlier construction:5/16 success,11/16 +failure given earlierx. On success each native y has mass5/32 unconditionally +with respect to that first reset. The correction creates neither a second +successful carrier nor the required5:3:2 post-Y distribution. Failed runs are +not discarded or reclassified. A clean readout code alone is not a reset. + +## Checks and replay + +`correction_checks.py` verifies10,080 direct spatial-recursion/strip comparisons +for all16 u/C inputs, all70 strip entries and n0..8; both complete source +permutation tables; the exact universal-period divisibility; the zero-C +single-pulse baseline; the old local111 triple; source and receiver exclusions; +the complete final native update; all32 qY.D and all32 q2.A interventions; +all native clean codes; and the unchanged early prefix. + +Run `python3 /path/to/outward_v6_geometry/correction_checks.py` and repeat with +`-O`. The script needs model.py, correction_model.py, PROVENANCE.json and the +same hash-verified geometry source as the uncorrected scan. Normal/-O outputs +match. Replay writes no files and uses no network. CORRECTION-SHA256SUMS pins +this constructive milestone separately from the uncorrected scan. + +The universal strip theorem and inherited preparation/access framework remain +explicit dependencies. This is an author result pending independent review, +not a Lean certificate, a completed native instrument, or full QM equivalence. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/CORRECTION-SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/CORRECTION-SHA256SUMS new file mode 100644 index 000000000..2bbccfd1b --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/CORRECTION-SHA256SUMS @@ -0,0 +1,8 @@ +12a3c3f9b82d07f8ad9b1b31900da531ed88d0fc881c28f6468db3c3d110408d CORRECTION-REPORT.md +81fb9162229409e42d4383274c91988b94c8727dc70d9398cc1ca1ac51a38ee4 correction_model.py +1813eb6607b0105b8ec31fb4b1e0f8db00a4caacab05e0b6915032ab9298b2e5 correction_checks.py +6c585d7781c6c1973fad1f11aed48dc38b3e3d63d78d7c72403e3c6e4254701f correction_checks.out +6c585d7781c6c1973fad1f11aed48dc38b3e3d63d78d7c72403e3c6e4254701f correction_checks-O.out +122168c347c90e948c481ef37fcc3c674c0efa365ed43c6a45c41b0fa53f4337 CORRECTION-PROVENANCE.json +dfb056bfe91372b44787d962e63d83ae7109802b38034b661e1c3275a63e146b model.py +cfe22450cfc7b660d1dfbcf016f2f6a06c6ac343d84102c2387798b85794609b PROVENANCE.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/PROVENANCE.json new file mode 100644 index 000000000..0acc2f04b --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/PROVENANCE.json @@ -0,0 +1,6 @@ +{ + "source_geometry": "accepted native_Y/SOURCE-GEOMETRY.json", + "source_geometry_sha256": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d", + "status": "author checked; independent review pending", + "repository_actions": [] +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/REPORT.md new file mode 100644 index 000000000..66ede25ec --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/REPORT.md @@ -0,0 +1,140 @@ +# Exact outward-port scan: a new qY readout, not yet q2 reuse + +24 October 2026. Author-checked native geometry result; independent review +pending. Repository read-only. This is the unmodified straight-outward scan; +no extra correction source is included in the result. + +## Result and diagnostic distinction + +At the actual giant parameters, the seventh outward endpoint has + + q7=qY+7e_z, N7=R+7, + U_(R+7)(q7)=(0,u,y), y=x XOR u. + +With only qY.D at tickR replaced by arbitrary diagnostic p, the complete +endpoint is exactly + + (x(1 XOR u)(1 XOR p), x(1 XOR p) XOR up, p). + +All selector masks cancel. Thus D is a genuine raw transfer of the original +qY operand. A is zero on native inputs; B retains u, which is determined by +the already-public x and designated Y outcome. There is no additional secret +metadata at that terminal boundary, but this is not a Y-only full socket. +The four native codes are000,011,001,010 and retain all four x/y histories. + +**This is not established as transfer of q2's actual A register.** A separate +diagnostic replaces only q2.A at R+2 by p2, preserving its other native fields. +At q7 that yields + + (x XOR xu XOR p2 XOR up2, + x XOR p2, + x XOR xu XOR p2 XOR xp2 XOR xup2). + +For example x=1,u=0,p2=0 gives D=1. No later endpoint in the tested range k3..12 +has any raw field or complement equal to p2 uniformly. q7 can obtain the +original operand through the existing wave; its truth table must not be sold +as a reusable q2-output-to-input interface. + +## Exact method and hypotheses + +Keep T=185, P=12*840^185, S=T+P, d=68, R=S+d. For k1..12 append the initial +current ready ball B_(R+k)(qk) and previous ball B_(R+k-1)(qk), qk=qY+k e_z, +preserving all old sources and prior readiness constraints. No mid-run +cleaning or inserted resource is used. Only newly unconstrained coordinates +are pinned. The same four lower B sources are on the boundary, and each is +at distance2R from the upper pulse. All1,479 inherited source positions are +checked for every k. Only the unknown origin lies on the inherited-source +boundary; the others are outside. The old previous input and opposite pulse +are excluded. Here d+k=b>=0, a+b<=ell, a+b+ell<=2k, ell-a-b even. + +Budget L=2k is sufficient for every needed pre-collision value. L24 has only +252 triples. The advance is triangular in ell with diagonal permutations of +an eight-state triple; H^12=I and every triple permutation has exponent +dividing840. Induction gives the global identity exponent12*840^L. Since +L<=24<185, actual P is a multiple. Thus the upper values may be evaluated at +reduced axial n'=253-v_z and reduced times251/252, retaining the transverse +coordinates. n' stays positive. This is an exact global-period argument, +not extrapolation from small phase matching. + +The implementation evaluates increasing lag layer first, then axial n, so +future lower-layer values are already available. It computes about67,000 +packed two-u triples at the largest budget. No giant orbit search or large +torus simulation is used. All full endpoint truth tables are packed over the +32 x,u,mY,mR,p assignments. The initial qY code is checked before the diagnostic +changes only its D field. Native runs are the p=x XOR u lanes. + +## Native endpoint table + +Entries are whole triples; columns follow(x,u)=00,01,10,11. The table is +independent of both selector masks. + +| k | 00 | 01 | 10 | 11 | Raw qY operand field | +|---|---|---|---|---|---| +| 1 | 110 | 101 | 110 | 101 | none | +| 2 | 001 | 111 | 110 | 001 | A=p | +| 3 | 000 | 101 | 000 | 111 | none | +| 4 | 111 | 110 | 000 | 110 | none | +| 5 | 011 | 100 | 101 | 100 | none | +| 6 | 101 | 101 | 001 | 000 | none | +| 7 | 000 | 011 | 001 | 010 | D=p | +| 8 | 010 | 010 | 111 | 111 | none | +| 9 | 101 | 110 | 101 | 001 | none | +| 10 | 001 | 101 | 000 | 011 | none | +| 11 | 100 | 001 | 101 | 111 | none | +| 12 | 010 | 011 | 111 | 101 | none | + +The endpoint-only census tests72 raw-field/complement candidates against all +32 diagnostic assignments. Only q2.A and q7.D pass. None of these twelve +whole triples depends on y alone. This does not exclude other locations, +extra controls, larger gadgets, or later times; it is not a general no-go. + +## Access and resources + +Each extra receiver first sees the upper pulse at R-k, with H^(R-k)(u,0,1). +Because H is bijective this distinguishes u before the old X-instrument +boundary. In particular the q7 prefix is(u,u,1) at R-7. Keep the new receiver +private until its designated read under the existing supplied access rule. +No native shutter or clock is supplied. + +Inherited public frontier families stay outside each new cold cone: their +slacks are positive j or k_index, or larger inherited offsets. The checker +instantiates the exact distance formulas; the all-index statement follows +from their linear inequalities. If all seven old public ports remain exposed +through R+k, the inherited joint-frontier theorem requires21k additional +initially independent fair bits beyond R. At q7 that is147 bits (105 beyond +the depth-two window); at q12 it is252. This avenue checks geometry and reuses +the inherited joint-frontier theorem, without re-proving the full record law. +The ready-region cost is the initial new-ball set difference; no optimal cost +claim is made. Existing herald probabilities and failure branches are unchanged. +No second reset or new successful carrier is asserted. + +## Checks and limits + +`checks.py` verifies4,536 direct spatial-recursion comparisons of upper-strip +values, actual-P divisibility, all17,748 old-source/k cases, complete strip +coverage, inherited k1/k2/k3 full diagnostic formulas, the new k7 formula, +384 diagnostic endpoints,192 native endpoints, mask cancellation, both operand +censuses, and the q2-intervention counterexample. Normal and -O outputs match. +All checks use explicit exceptions. The new period calculation inherits the +triangular-strip theorem developed in six_source_v5_geometry; it is not an +independent review of that theorem. Source geometry is hash-verified unchanged. Replay first uses the packaged +`../parallel_v3/history_control/SOURCE-GEOMETRY.json`, then an isolated sibling +SOURCE-GEOMETRY.json fallback. The source table is not duplicated in the +scan payload manifest. + +Run `python3 /path/to/outward_v6_geometry/checks.py` and repeat with `-O`. +No network or file writes occur during replay. No native reset, global access +closure, joint-record certification, new premise, or universal QM claim follows. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/SHA256SUMS new file mode 100644 index 000000000..079a2f361 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/SHA256SUMS @@ -0,0 +1,6 @@ +fa466cea1ea72466018307b33566927d8ae9d4dcffef8cfaa6dcee3d0de341cd REPORT.md +dfb056bfe91372b44787d962e63d83ae7109802b38034b661e1c3275a63e146b model.py +30da3540a29e46f9bc8bc56385e7e9d415b96237005c27ebd43cd08be91a7631 checks.py +54932f1aab2ff6ab1b944335fd76f78d99b083a2a26840c6ce5aa97187a92810 checks.out +54932f1aab2ff6ab1b944335fd76f78d99b083a2a26840c6ce5aa97187a92810 checks-O.out +cfe22450cfc7b660d1dfbcf016f2f6a06c6ac343d84102c2387798b85794609b PROVENANCE.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/checks-O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/checks-O.out new file mode 100644 index 000000000..34093bac6 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/checks-O.out @@ -0,0 +1,9 @@ +OUT1: 4536 scalar upper-pulse comparisons;252 strip entries, n0..8, bothu: PASS +OUT2: actualP divisible by universal exponent12*840^24; reduced axial coordinates stay positive: PASS +OUT3: all17748 old-source/k pairs, actual boundary geometry, frontiers and upper budgets<=2k: PASS +OUT4: all32 assignments recover retained k1/k2/k3 formulas and newk7 formula: PASS +OUT5: all384 diagnostic endpoint assignments are selector-mask independent; all192 native rows match retained tables: PASS +OUT6:72 endpoint field/complement candidates: exactlyk2.A andk7.D are rawp; no fullY-only triple amongk1..12: PASS +OUT7: nativek7=(0,u,y) has4 history codes; earliest prefixR-7=(u,u,1) remains informative: PASS +SCOPE: exact straight-outward endpoint family only; no clean reusable socket, reset, native access mechanism or joint-law certification. +OUT8: q2.A intervention is not forwarded raw by any later endpoint k3..12; k7 counterexample retained: PASS diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/checks.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/checks.out new file mode 100644 index 000000000..34093bac6 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/checks.out @@ -0,0 +1,9 @@ +OUT1: 4536 scalar upper-pulse comparisons;252 strip entries, n0..8, bothu: PASS +OUT2: actualP divisible by universal exponent12*840^24; reduced axial coordinates stay positive: PASS +OUT3: all17748 old-source/k pairs, actual boundary geometry, frontiers and upper budgets<=2k: PASS +OUT4: all32 assignments recover retained k1/k2/k3 formulas and newk7 formula: PASS +OUT5: all384 diagnostic endpoint assignments are selector-mask independent; all192 native rows match retained tables: PASS +OUT6:72 endpoint field/complement candidates: exactlyk2.A andk7.D are rawp; no fullY-only triple amongk1..12: PASS +OUT7: nativek7=(0,u,y) has4 history codes; earliest prefixR-7=(u,u,1) remains informative: PASS +SCOPE: exact straight-outward endpoint family only; no clean reusable socket, reset, native access mechanism or joint-law certification. +OUT8: q2.A intervention is not forwarded raw by any later endpoint k3..12; k7 counterexample retained: PASS diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/checks.py new file mode 100644 index 000000000..5df999f53 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/checks.py @@ -0,0 +1,104 @@ +"""Bounded exact replay for straight outward ports k=1..12.""" +from model import * +import hashlib + +def need(ok,msg): + if not ok:raise RuntimeError(msg) + +need(BASE==253 and R==P+BASE,'actual parameters') +need(P%(12*840**24)==0,'universal strip exponent dividesP') +count=0;data=strip(24) +for (ell,a,b),arr in data.items(): + for n in range(9): + exact=pulse(n+ell,*sorted((a,b,n),reverse=True)) + need(arr[n]==exact,'strip versus direct spatial recursion') + count+=2 +print('OUT1: %d scalar upper-pulse comparisons;252 strip entries, n0..8, bothu: PASS'%count) +print('OUT2: actualP divisible by universal exponent12*840^24; reduced axial coordinates stay positive: PASS') + +geo_candidates=[Path(__file__).parent.parent/'parallel_v3/history_control/SOURCE-GEOMETRY.json',Path(__file__).parent/'SOURCE-GEOMETRY.json'] +geo_path=next((q for q in geo_candidates if q.exists()),None) +need(geo_path is not None,'source geometry file unavailable') +geo_bytes=geo_path.read_bytes() +need(hashlib.sha256(geo_bytes).hexdigest()=='2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d','source geometry digest') +G=json.loads(geo_bytes) +need(len(G['sources'])==1479,'source export length') +D=lambda a,b:sum(abs(x-y) for x,y in zip(a,b)) +up=(0,S,S+2*d) +controls=[(0,0,0),(0,2*S,0),(T,P+S,0),(-T,P+S,0)] +for k in range(1,13): + q=(0,S,d+k);rad=R+k + need(d+k=rad,'source inside cold interior') + if dist==rad:arrivals.append((pos,src['field'],src['mask'])) + need(arrivals==[((0,0,0),1,64)],'only origin old boundary source') + need(all(D(c,q)==rad and D(c,up)==2*R for c in controls),'four lower boundaries/separation') + need(D((0,0,0),q)>rad-1,'previous unknown excluded') + need(D((0,S,-S-2*d),q)>rad,'opposite reset excluded') + need(11*R-k>rad,'remote x exclusion') + for j in (1,2,12,d,P,R): + for pos in ((0,2*S+j,0),(T,P+S+j,0),(-T,P+S+j,0),(4*T,P+S+j,0),(0,-j,0),(0,0,-9*T-j)): + need(D(pos,q)>rad,'frontier outside cold extension') + for t,radius in ((R-1,k+1),(R-2,k)): + for v in ball(radius,(0,0,k)): + a,b=sorted((abs(v[0]),abs(v[1])),reverse=True);ell=t-(R-v[2]) + if ell<0 or ell=0,'positive reduced axis') +print('OUT3: all17748 old-source/k pairs, actual boundary geometry, frontiers and upper budgets<=2k: PASS') + +outcomes={k:calc(k)[0] for k in range(1,13)} +for i,(x,u,my,mr,p) in enumerate(ROWS): + expected={1:(1,1^x^p,u|(x^p)), + 2:(p,p^u^(x&u)^(p&u),1^p^(p&u)^(p&x&u)), + 3:(u|(x^p),x^p^(u&p)^(u&x&p),u&(x^p)), + 7:(x&(1^u)&(1^p),(x&(1^p))^(u&p),p)} + for k,v in expected.items():need(lane(outcomes[k],i)==v,'full diagnostic formula') +print('OUT4: all32 assignments recover retained k1/k2/k3 formulas and newk7 formula: PASS') + +expected_native={ +1:((1,1,0),(1,0,1),(1,1,0),(1,0,1)), +2:((0,0,1),(1,1,1),(1,1,0),(0,0,1)), +3:((0,0,0),(1,0,1),(0,0,0),(1,1,1)), +4:((1,1,1),(1,1,0),(0,0,0),(1,1,0)), +5:((0,1,1),(1,0,0),(1,0,1),(1,0,0)), +6:((1,0,1),(1,0,1),(0,0,1),(0,0,0)), +7:((0,0,0),(0,1,1),(0,0,1),(0,1,0)), +8:((0,1,0),(0,1,0),(1,1,1),(1,1,1)), +9:((1,0,1),(1,1,0),(1,0,1),(0,0,1)), +10:((0,0,1),(1,0,1),(0,0,0),(0,1,1)), +11:((1,0,0),(0,0,1),(1,0,1),(1,1,1)), +12:((0,1,0),(0,1,1),(1,1,1),(1,0,1))} +for k,out in outcomes.items(): + for i,(x,u,my,mr,p) in enumerate(ROWS): + need(lane(out,i)==lane(out,ROWS.index((x,u,0,0,p))),'diagnostic mask independence') + if p==x^u:need(lane(out,i)==expected_native[k][2*x+u],'native output table') +print('OUT5: all384 diagnostic endpoint assignments are selector-mask independent; all192 native rows match retained tables: PASS') +raw=[] +for k,out in outcomes.items(): + for field in range(3): + for c in (0,1): + if out[field]==PM^(ALL*c):raw.append((k,field,c)) + table=expected_native[k] + need(table[0]!=table[3] or table[1]!=table[2],'reject y-only full triple') +need(raw==[(2,0,0),(7,2,0)],'complete endpoint operand census') +need(len(set(expected_native[7]))==4,'four retained history codes') +for u in (0,1):need(hp((u,0,1),R-7)==(u,u,1),'k7 earliest prefix') +print('OUT6:72 endpoint field/complement candidates: exactlyk2.A andk7.D are rawp; no fullY-only triple amongk1..12: PASS') +print('OUT7: nativek7=(0,u,y) has4 history codes; earliest prefixR-7=(u,u,1) remains informative: PASS') +print('SCOPE: exact straight-outward endpoint family only; no clean reusable socket, reset, native access mechanism or joint-law certification.') +q2_raw=[] +for k in range(2,13): + out,_=calc(k,'q2') + for f in range(3): + for c in (0,1): + if out[f]==PM^(ALL*c):q2_raw.append((k,f,c)) +need(q2_raw==[(2,0,0)],'q2 operand transfer census') +out,_=calc(7,'q2') +for i,(x,u,my,mr,p2) in enumerate(ROWS): + need(lane(out,i)==(x^(x&u)^p2^(u&p2),x^p2,x^(x&u)^p2^(x&p2)^(x&u&p2)),'q2 diagnostic formula') +need(lane(out,ROWS.index((1,0,0,0,0)))[2]==1,'q2 intervention counterexample') +print('OUT8: q2.A intervention is not forwarded raw by any later endpoint k3..12; k7 counterexample retained: PASS') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/correction_checks-O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/correction_checks-O.out new file mode 100644 index 000000000..e3a39e28c --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/correction_checks-O.out @@ -0,0 +1,7 @@ +COR1: 10080 scalar direct dipole comparisons; all16 u/C assignments and70 strip entries,n0..8: PASS +COR2: both8-state input-source maps bijective; unique C=(u,0,u) gives delta=(u,0,u); old q7 triple111: PASS +COR3: complete first-arrival geometry; only upper neighbor changes atN7−1; all15 old ready regions and receiver histories excluded: PASS +COR4: all32 qY.D diagnostic rows yield(x(1+u)(1+p),(x+u)(1+p),p); native rows clean(0,0,y): PASS +COR5: all32 q2.A diagnostic rows checked separately; x1/u0/p20 still gives111, so reusable q2 transfer not proved: PASS +COR6: correction cannot affect any q7 prefix; informativeR−7 prefix(u,u,1) remains private: PASS +SCOPE: native clean qY readout under modified initial depth7 preparation; no native reset or arbitrary q2-input socket. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/correction_checks.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/correction_checks.out new file mode 100644 index 000000000..e3a39e28c --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/correction_checks.out @@ -0,0 +1,7 @@ +COR1: 10080 scalar direct dipole comparisons; all16 u/C assignments and70 strip entries,n0..8: PASS +COR2: both8-state input-source maps bijective; unique C=(u,0,u) gives delta=(u,0,u); old q7 triple111: PASS +COR3: complete first-arrival geometry; only upper neighbor changes atN7−1; all15 old ready regions and receiver histories excluded: PASS +COR4: all32 qY.D diagnostic rows yield(x(1+u)(1+p),(x+u)(1+p),p); native rows clean(0,0,y): PASS +COR5: all32 q2.A diagnostic rows checked separately; x1/u0/p20 still gives111, so reusable q2 transfer not proved: PASS +COR6: correction cannot affect any q7 prefix; informativeR−7 prefix(u,u,1) remains private: PASS +SCOPE: native clean qY readout under modified initial depth7 preparation; no native reset or arbitrary q2-input socket. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/correction_checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/correction_checks.py new file mode 100644 index 000000000..11d1c1921 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/correction_checks.py @@ -0,0 +1,94 @@ +"""Candidate q7 correction: full dipole, unique-front geometry, both diagnostics.""" +from pathlib import Path +from itertools import product +import hashlib,json +from model import * +from correction_model import direct,dipole_strip,DIPOLE_ROWS,result + +def need(ok,msg): + if not ok:raise RuntimeError(msg) + +# The entire nonlinear upper/C dipole is evaluated, not added pulse outputs. +tables=result();data=dipole_strip();count=0 +for (ell,a,b),arr in data.items(): + for n in range(9): + need(arr[n]==direct(n+ell,a,b,n),'dipole strip versus direct 3D') + count+=16 +need(P%(12*840**14)==0,'actual shift exponent') +print('COR1: %d scalar direct dipole comparisons; all16 u/C assignments and70 strip entries,n0..8: PASS'%count) +expected=[[(1,1,0),(0,1,0),(1,0,1),(1,1,1),(0,1,1),(0,0,1),(0,0,0),(1,0,0)], + [(1,1,1),(1,1,0),(1,0,1),(1,0,0),(0,0,0),(0,1,0),(0,0,1),(0,1,1)]] +for u,tab in enumerate(tables): + need(tab['table']==expected[u],'full neighbor permutation table') + need(len(set(tab['table']))==8,'C to neighbor bijection') + need(tab['matches']==[(u,0,u)],'initial source inverse') + need(X(tab['table'][0],tab['table'][5*u])==(u,0,u),'net incoming correction') + old=strip(14)[12,0,0][246] + need(tuple((v>>u)&1 for v in old)==(1,1,1),'old q7 triple') + # C=0 is the unmodified upper pulse, checked against separate pulse evaluator. + baseline=strip(14)[14,0,0][245] + need(tab['base']==tuple((v>>u)&1 for v in baseline),'zero-C baseline') +print('COR2: both8-state input-source maps bijective; unique C=(u,0,u) gives delta=(u,0,u); old q7 triple111: PASS') + +q7=(0,S,d+7);q8=(0,S,d+8);N7=R+7;f=(0,S,S+2*d+14);up=(0,S,S+2*d) +D=lambda a,b:sum(abs(x-y) for x,y in zip(a,b)) +need(D(f,q7)==N7 and D(f,q8)==N7-1,'new-source first arrival') +need(D(f,up)==14,'dipole spacing') +need(D(up,q8)==R-8,'reduced dipole axis') +need((R-8)-P==245 and (N7-1)-P==259,'reduced query') +lower=[(0,0,0),(0,2*S,0),(T,P+S,0),(-T,P+S,0)] +need(all(D(c,f)==2*N7 for c in lower),'lower sources cannot meet correction beforeN7') +for axis in range(3): + for sign in (-1,1): + w=list(q7);w[axis]+=sign;w=tuple(w) + need(D(f,w)==(N7-1 if w==q8 else N7+1),'only upper neighbor affected') +need(D(f,q7)>N7-2,'old local slice unaffected') +need(all(D(c,q8)>N7-1 for c in lower),'no lower source at upper neighbor') +need(D((0,S,d),q8)>N7-1-R,'qY diagnostic excluded from upper neighbor') +need(D((0,S,d+2),q8)>N7-1-(R+2),'q2 diagnostic excluded from upper neighbor') +# Existing prepared current balls, including q2/q3; new f is outside each. +old_centers=[((0,T,0),T),((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,0,-8*T),T), + ((0,S,0),S),((T,P,0),S),((-T,P,0),S),((4*T,P,0),S), + ((0,S,d),R),((0,S,-d),R),((0,S,d+2),R+2),((0,S,d+3),R+3), + ((12*R,0,0),R),((-12*R,0,0),R)] +need(all(D(f,c)>radius for c,radius in old_centers),'old ready regions untouched') +need(all(D(f,c)>N7 for c,radius in old_centers),'old receiver histories throughN7 untouched') +for k in range(1,7):need(D(f,(0,S,d+k))>R+k,'earlier outward endpoints untouched') +geo_candidates=[Path(__file__).parent.parent/'parallel_v3/history_control/SOURCE-GEOMETRY.json',Path(__file__).parent/'SOURCE-GEOMETRY.json'] +gp=next((p for p in geo_candidates if p.exists()),None);need(gp is not None,'geometry available') +prov=json.loads((Path(__file__).parent/'PROVENANCE.json').read_text()) +need(hashlib.sha256(gp.read_bytes()).hexdigest()==prov['source_geometry_sha256'],'geometry digest') +G=json.loads(gp.read_text());need(all(tuple(src['position'])!=f for src in G['sources']),'no old source overwritten') +# All protected near frontier families havez=0 or negativez; remote families have nonzerox. +need(f[2]>0 and f[0]==0,'protected family disjointness form') +print('COR3: complete first-arrival geometry; only upper neighbor changes atN7−1; all15 old ready regions and receiver histories excluded: PASS') + +# Use the newly evaluated dipole neighbor to recompute the full final native update. +# Both intervention sites are tested separately, retaining every other field. +for site in ('qY','q2'): + out,rec=calc(7,site) + old=(ALL,ALL,ALL) + neighbors=[] + end=(0,0,7) + for axis in range(3): + for sign in (-1,1): + w=list(end);w[axis]+=sign;w=tuple(w) + neighbors.append(rec[6][w]) + prior_sum=X(*neighbors) + need(X(old,H(prior_sum))==out,'unmodified full final update') + actual_old=rec[5][end] + need(actual_old==old,'old local term checked in retained diamond') + delta=(UM,0,UM) + corrected=X(old,H(X(prior_sum,delta))) + for i,(x,u,my,mr,p) in enumerate(ROWS): + if site=='qY':expected_row=(x&(1^u)&(1^p),(x^u)&(1^p),p) + else:expected_row=((x^p)&(1^u),x^u^p,x^(x&u)^p^(x&p)^(x&u&p)) + need(lane(corrected,i)==expected_row,'corrected diagnostic formula') + if p==x^u:need(lane(corrected,i)==(0,0,p),'native clean code') + if site=='qY':need(corrected[2]==PM,'raw qY operand retained') + else:need(lane(corrected,ROWS.index((1,0,0,0,0)))==(1,1,1),'q2 input counterexample persists') +print('COR4: all32 qY.D diagnostic rows yield(x(1+u)(1+p),(x+u)(1+p),p); native rows clean(0,0,y): PASS') +print('COR5: all32 q2.A diagnostic rows checked separately; x1/u0/p20 still gives111, so reusable q2 transfer not proved: PASS') +for u in (0,1):need(hp((u,0,1),R-7)==(u,u,1),'old early prefix remains') +print('COR6: correction cannot affect any q7 prefix; informativeR−7 prefix(u,u,1) remains private: PASS') +print('SCOPE: native clean qY readout under modified initial depth7 preparation; no native reset or arbitrary q2-input socket.') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/correction_model.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/correction_model.py new file mode 100644 index 000000000..1f3d87579 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/correction_model.py @@ -0,0 +1,48 @@ +"""Candidate q7 boundary source: full upper/C dipole, no pulse superposition.""" +from functools import lru_cache +from itertools import product +from model import H,X,ZERO,indices,strip +DIPOLE_ROWS=tuple((u,c) for u in (0,1) for c in product((0,1),repeat=3)) +FULL=(1<t or (t-a-b-n)%2:return ZERO + if t==0:return Q if (a,b,n)==(0,0,0) else C if (a,b,n)==(0,0,-14) else ZERO + ns=[] + for j in range(2): + for sign in (-1,1): + ab=[a,b];ab[j]+=sign;ab=sorted(map(abs,ab),reverse=True) + ns.append(direct(t-1,*ab,n)) + ns.extend((direct(t-1,a,b,n-1),direct(t-1,a,b,n+1))) + return X(direct(t-2,a,b,n),H(X(*ns))) + +@lru_cache(None) +def dipole_strip(): + L=14;BASE=245;values={} + def get(ell,a,b,n): + if ell<0:return ZERO + a,b=sorted((abs(a),abs(b)),reverse=True) + if a+b>ell or (ell-a-b)%2 or ell+a+b>L:return ZERO + return values[ell,a,b][n] + for ell,a,b in indices(L): + cap=BASE+(L-ell)//2;arr=[direct(ell,a,b,0)];values[ell,a,b]=arr + for n in range(1,cap+1): + trans=X(get(ell-1,a-1,b,n),get(ell-1,a+1,b,n),get(ell-1,a,b-1,n),get(ell-1,a,b+1,n)) + arr.append(X(get(ell-2,a,b,n),H(X(arr[n-1],get(ell-2,a,b,n+1),trans)))) + return values + +def result(): + packed=dipole_strip()[14,0,0][245] + tables=[] + for u in (0,1): + table=[tuple((w>>(8*u+c))&1 for w in packed) for c in range(8)] + base=table[0];target=X(base,(u,0,u)) + matches=[DIPOLE_ROWS[8*u+c][1] for c,v in enumerate(table) if v==target] + tables.append({'u':u,'table':table,'base':base,'target':target,'matches':matches}) + return tables + +if __name__=='__main__': + import json + print(json.dumps(result())) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/model.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/model.py new file mode 100644 index 000000000..a938c5cd6 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/model.py @@ -0,0 +1,127 @@ +"""Exact bounded-lag upper strip and packed actual-geometry outward diamond.""" +from functools import lru_cache +from itertools import product +from pathlib import Path +import json +ZERO=(0,0,0) +T=185;P=12*840**T;S=T+P;d=68;R=S+d;BASE=T+d +ROWS=tuple(product((0,1),repeat=5)) # x,u,mY,mR,p +ALL=(1<t or (t-a-b-c)%2:return ZERO + if t==0:return (2,0,3) if (a,b,c)==(0,0,0) else ZERO + vals=[] + for j in range(3): + for sign in (-1,1): + pos=[a,b,c];pos[j]+=sign;pos=sorted(map(abs,pos),reverse=True) + vals.append(pulse(t-1,*pos)) + return X(pulse(t-2,a,b,c),H(X(*vals))) + +@lru_cache(None) +def strip(L): + """Layer-first evaluation. Future n+1 terms live two layers lower.""" + values={} + def get(ell,a,b,n): + if ell<0:return ZERO + a,b=sorted((abs(a),abs(b)),reverse=True) + key=(ell,a,b) + if a+b>ell or (ell-a-b)%2 or ell+a+b>L:return ZERO + return values[key][n] + for ell,a,b in indices(L): + cap=BASE+(L-ell)//2 + arr=[pulse(ell,*sorted((a,b,0),reverse=True))] + values[ell,a,b]=arr + for n in range(1,cap+1): + trans=X(get(ell-1,a-1,b,n),get(ell-1,a+1,b,n),get(ell-1,a,b-1,n),get(ell-1,a,b+1,n)) + arr.append(X(get(ell-2,a,b,n),H(X(arr[n-1],get(ell-2,a,b,n+1),trans)))) + return values + +def upper(L,t,v): + a,b,n=map(abs,v);a,b=sorted((a,b),reverse=True);ell=t-n + if ell<0 or a+b>ell or (ell-a-b)%2:return ZERO + if ell+a+b>L:raise RuntimeError(('uncovered upper lag',ell,a,b,L)) + nr=n-P + if nr<0:raise RuntimeError('invalid period reduction') + val=strip(L)[ell,a,b][nr] + return tuple((ALL^UM if b&1 else 0)^(UM if b&2 else 0) for b in val) + +def odd(parts): + acc=0 + for p in parts: + if acc&p:return 0 + acc|=p + return 1 + +def ball(r,center): + for a in range(-r,r+1): + for b in range(-r+abs(a),r-abs(a)+1): + for c in range(-r+abs(a)+abs(b),r-abs(a)-abs(b)+1): + yield center[0]+a,center[1]+b,center[2]+c + +def calc(k,operand_site="qY"): + end=(0,0,k);L=2*k + controls=[((0,-S,-d),XM),((0,S,-d),MY^MR),((T,P,-d),MY),((-T,P,-d),MR)] + def base(t,v): + value=upper(L,t,(v[0],v[1],R-v[2])) + for pos,bits in controls: + ds=tuple(abs(a-b) for a,b in zip(pos,v)) + if sum(ds)<=t: + if sum(ds)!=t:raise RuntimeError('lower source behind front') + if odd(ds):value=X(value,hp((0,bits,0),t)) + return value + old={v:base(R-2,v) for v in ball(k,end)} + now={v:base(R-1,v) for v in ball(k+1,end)} + records={} + for tau in range(k+1): + nxt={} + for v in ball(k-tau,end): + ns=[] + for axis in range(3): + for sign in (-1,1): + w=list(v);w[axis]+=sign;ns.append(now[tuple(w)]) + nxt[v]=X(old[v],H(X(*ns))) + if tau==0: + if nxt[(0,0,0)]!=(XM,ALL,XM^UM):raise RuntimeError('original qY changed') + if operand_site=="qY":nxt[(0,0,0)]=(XM,ALL,PM) # diagnostic replaces only D + if tau==2 and operand_site=="q2": + q=nxt[(0,0,2)] + if q!=(XM^UM,XM^UM,ALL^(XM&(XM^UM))):raise RuntimeError("q2 natural code changed") + nxt[(0,0,2)]=(PM,q[1],q[2]) # separate diagnostic replaces only A + records[tau]=nxt + old,now=now,nxt + return now[end],records + +def lane(v,i):return tuple((w>>i)&1 for w in v) + +def describe(k): + out,_=calc(k) + raw=[] + for field in range(3): + for c in (0,1): + if out[field]==(PM^(ALL*c)):raw.append((field,c)) + native={} + for i,(x,u,my,mr,p) in enumerate(ROWS): + if p==x^u:native[x,u,my,mr]=lane(out,i) + yonly=all(v==native[0,x^u,0,0] for (x,u,my,mr),v in native.items()) + return {'k':k,'raw_p_fields':raw,'native_y_only':yonly,'native_x_u_table':[native[x,u,0,0] for x,u in product((0,1),repeat=2)],'packed_output':out} + +if __name__=='__main__': + for k in range(1,13):print(json.dumps(describe(k)),flush=True) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/INPUT-HASHES.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/INPUT-HASHES.json new file mode 100644 index 000000000..7dab55e33 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/INPUT-HASHES.json @@ -0,0 +1,10 @@ +{ + "REPORT.md": "fa466cea1ea72466018307b33566927d8ae9d4dcffef8cfaa6dcee3d0de341cd", + "model.py": "dfb056bfe91372b44787d962e63d83ae7109802b38034b661e1c3275a63e146b", + "checks.py": "30da3540a29e46f9bc8bc56385e7e9d415b96237005c27ebd43cd08be91a7631", + "PROVENANCE.json": "cfe22450cfc7b660d1dfbcf016f2f6a06c6ac343d84102c2387798b85794609b", + "CORRECTION-REPORT.md": "12a3c3f9b82d07f8ad9b1b31900da531ed88d0fc881c28f6468db3c3d110408d", + "correction_model.py": "81fb9162229409e42d4383274c91988b94c8727dc70d9398cc1ca1ac51a38ee4", + "correction_checks.py": "1813eb6607b0105b8ec31fb4b1e0f8db00a4caacab05e0b6915032ab9298b2e5", + "CORRECTION-PROVENANCE.json": "122168c347c90e948c481ef37fcc3c674c0efa365ed43c6a45c41b0fa53f4337" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/REPORT.md new file mode 100644 index 000000000..c43eb1806 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/REPORT.md @@ -0,0 +1,183 @@ +# Independent review: q7 readout and initial correction + +24 October 2026. **ACCEPT the conditional native clean-readout construction.** +The uncorrected q7 result, its full nonlinear two-upper-source correction, the +native code `(0,0,y)`, and the stated source/readiness geometry are independently +verified. This is not an arbitrary-input clean socket, a reusable q2 interface, +a native reset, or a complete joint-history/access certificate. + +The uncorrected files were supplied as published checkpoint +`6db981c1574ecc6938e9d55388f0ebeea34fab60`; the correction was subsequently +published at `49a391b9c8c3daf02e603e366cb5489d36677c14` with unchanged author +bytes. This review checked the exact local files, not remote content. +Exact reviewed bytes are bound by +`INPUT-HASHES.json`. No remote content was retrieved, no author file was edited, +and no repository action was taken. The independent review is specifically of +q7 and its correction. The broader k1–12 scan was replayed, not independently +rederived. + +## Independent actual-scale result + +The checker imports no author dynamics. It reuses only generic native-recursion +and geometry helpers from the prior independent v5 review, bound by SHA256, and +implements a separate signed-transverse, lookahead strip. Sixteen bit lanes +retain both values of u and all eight possible initial correction triples C. +The two sources are evolved together; their interaction from tick 7 is not +replaced by an isolated-pulse sum. + +Use the old upper pulse as axial origin, with downward z positive. The new +source is at axial -14. Its incoming neighbor at the final update is queried +at axial `P+245`, time `P+259`, layer 14. The previously audited triangular +strip exponent `12*840^14` divides P, giving an exact reduction to axial 245 +and time 259. The independent signed strip has 344 coordinates. It agrees +with direct two-source native recursion at 1,720 positions across all sixteen +lanes before being advanced to the required actual-scale reduced positions. + +The independently computed incoming maps are: + +| Initial C, in A/B/D order | u=0 incoming triple | u=1 incoming triple | +|---|---|---| +| 000 | 110 | 111 | +| 001 | 010 | 110 | +| 010 | 101 | 101 | +| 011 | 111 | 100 | +| 100 | 011 | 000 | +| 101 | 001 | 010 | +| 110 | 000 | 001 | +| 111 | 100 | 011 | + +Each column is a permutation. The unique inverse choices producing the desired +net incoming change are C=000 for u=0 and C=101 for u=1. Thus the required +initial payload is exactly `(u,0,u)`. The old local triple at q7, time N-2, +is independently 111 for both u, and is independent of C by finite speed. + +The checker then assembles the entire pre-collision fields from the full +two-source strip and the actual giant-integer lower-front parities, and +performs all eight native updates R through R+7. It does not merely inject +the proposed delta into the final update. All 32 assignments of x,u,mY,mR,p +agree with the original and corrected qY diagnostic formulas. A separate +q2.A-only intervention is also evolved and checked in all 32 assignments. + +## Why the correction works, and what it does not do + +For old local triple W, neighbor sum V and original output +`C_out=W XOR H(V)`, a neighbor change `(u*W.A,0,u)` changes the output by +`(0,u,u*C_out.A)`. The checker verifies this identity for all 128 choices of +W,V,u. Here W.A=1 and the original qY diagnostic A field is +`x(1-u)(1-p)`, whose product with u is zero. Therefore the corrected whole +diagnostic triple is + +``` +(x(1-u)(1-p), (x XOR u)(1-p), p). +``` + +On native inputs p=x XOR u=y this is exactly `(0,0,y)`. For arbitrary qY +intervention p the extra fields need not vanish. D=p is universal; a clean +whole arbitrary-input socket is not established. + +Replacing only q2.A instead gives + +``` +((x XOR p2)(1-u), x XOR u XOR p2, + x XOR xu XOR p2 XOR xp2 XOR xup2). +``` + +For x=1,u=0,p2=0 the corrected output is111, so D is not p2. None of its +fields or complements is uniformly p2. The new construction reads the +original qY-initiated wave; it does not prove reusable q2-output-to-input +transfer. Information elsewhere in the reversible lattice is not removed. + +## Source, readiness and history geometry + +Adopt only the q7 initial preparation, with q7=(0,S,d+7), N=R+7 and +`f=(0,S,S+2d+14)`. The k8–12 scan preparations are alternatives and are not +simultaneously imposed. The new source is an explicit exception to q7's +current ready-zero prescription: f has distance N from q7, hence lies on +the current boundary and outside the previous ball of radius N-1. Relative +to the uncorrected q7 preparation, a formerly zero coordinate is changed. + +The correction payload uses only the already supplied apparatus seed u. It +contains neither unknown x nor diagnostic p nor precomputed y. Copying u into +two initial fields adds a supplied initial correlation and one controlled +source location, but no new independent random bit. No native initializer +for this correlation is supplied or inferred. + +The source export was checked by its existing SHA256 digest, without copying +it into this review. All 1,479 old source positions remain outside or on the +q7 boundary; the only inherited boundary entry is the unknown origin. The +new f overwrites none. The three selector controls remain boundary sources, +the old upper pulse is inside, the previous unknown is outside the previous +ball, and the opposite pulse and remote blocks are outside. The unwrapped +cones fit the inherited torus; no global checkerboard assertion on its odd +size is needed. + +The all-index distances of protected frontier families from q7 exceed N by: + +| Family | Positive slack, for index j>0 | +|---|---:| +| M_j | j | +| N_j | 9T+j | +| Selector X/Y/R frontiers | j | +| Selector Z frontier | 3T+j | + +The new f is disjoint from these banks: the near families have zero or +negative z, and the remote banks have separated x. Thus their prescribed +independent fair coordinates are not overwritten by the correction or pinned +by the new ready ball. + +The reviewer checked all fifteen inherited current ready balls, including +qY, q2, optional q3 and remote centers: f is outside every ball and farther +than N from every center. Consequently **the added correction source** cannot +change those receiver histories through N relative to the uncorrected q7 +preparation. It also cannot change the earlier sidecar, or outward endpoint +k<=6 at its R+k deadline. No unchanged-output claim is made for k8–12. + +At N-1 only q7+e_z can depend on f; the other five neighbors are distance N+1 +from f. The old local N-2 term is also unaffected. Each lower source is +distance 2N from f. Along the incoming ray, at height h>0 above q7, the +lower-source distance is N+h and the available time is N-h. Thus no lower +source, qY intervention or q2 intervention can enter that incoming neighbor's +past cone. Its map depends only on the full upper/C dipole, as calculated. + +## Access, resources and remaining boundary + +The new source first reaches q7 at N, so **every earlier q7 prefix is +unchanged**. In particular the prefix at R-7 is `(u,u,1)` and reveals u. +The receiver must remain private until its designated read under the supplied +access rule. No native shutter, clock or access-closure construction has been +verified here. + +Keeping the seven old public ports exposed through R+7 requires the inherited +147 extra independent fair bits beyond R (105 beyond the depth-two window). +The geometry preserves the reserved frontier families; this review does not +independently close the full inherited joint-frontier theorem. The initial +ready extension can affect later old-port dynamics, so that theorem remains +relevant even though the added correction source itself is causally excluded +from their histories through N. + +There is no new herald or second reset. Existing success/failure probabilities +are inherited claims, not recomputed or upgraded by this endpoint proof. +No failed branch is removed. A common native terminal code has now been +constructed, but a complete joint-record law, arbitrary-input interface, +post-Y conditional resource preparation, native access mechanism and reusable +reset remain open. The broader inherited transport-proof audit also remains +open. + +## Reproduction + +Place this directory at `outward_v6/review/` alongside the published outward +files and the prior `six_source_v5/review/checks.py`. Then run: + +``` +python3 outward_v6/review/checks.py +python3 -O outward_v6/review/checks.py +``` + +The isolated workspace layout is also supported. The checker reads the +existing source geometry, verifies all eight author-file hashes, and binds +the independent v5 helper to SHA256 +`467fbff795407b2a2744465166ac6fd0958dbef768606b2a40a9ed6b97120728`. +It writes no files and needs only Python's standard library. Independent, +author-scan and author-correction replay groups each have byte-identical +normal/-O outputs. `INPUT-HASHES.json` and `SHA256SUMS` identify the exact +reviewed author bytes and the delivered review artifacts respectively. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/SHA256SUMS new file mode 100644 index 000000000..060b97fe6 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/SHA256SUMS @@ -0,0 +1,9 @@ +cda41a4198d9a99662cf31fcd3e41bd165dbdfe78d26a554dd2565298b95afe7 INPUT-HASHES.json +8d824c9248a9fdedbfd0336b153d4f54bb0f173c67d271d96231e3e441ec5e3d REPORT.md +6c585d7781c6c1973fad1f11aed48dc38b3e3d63d78d7c72403e3c6e4254701f author-correction-O.out +6c585d7781c6c1973fad1f11aed48dc38b3e3d63d78d7c72403e3c6e4254701f author-correction.out +54932f1aab2ff6ab1b944335fd76f78d99b083a2a26840c6ce5aa97187a92810 author-scan-O.out +54932f1aab2ff6ab1b944335fd76f78d99b083a2a26840c6ce5aa97187a92810 author-scan.out +9c18fb035502ef67c07ca8f22d4a234726418786dc694ba90abf4d2ec09f817a checks-O.out +9c18fb035502ef67c07ca8f22d4a234726418786dc694ba90abf4d2ec09f817a checks.out +ef730e8102c89e79e5a3974c3bdf9bc7ddaba6d23f7fb50ba35aba6dd03f9e5e checks.py diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/author-correction-O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/author-correction-O.out new file mode 100644 index 000000000..e3a39e28c --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/author-correction-O.out @@ -0,0 +1,7 @@ +COR1: 10080 scalar direct dipole comparisons; all16 u/C assignments and70 strip entries,n0..8: PASS +COR2: both8-state input-source maps bijective; unique C=(u,0,u) gives delta=(u,0,u); old q7 triple111: PASS +COR3: complete first-arrival geometry; only upper neighbor changes atN7−1; all15 old ready regions and receiver histories excluded: PASS +COR4: all32 qY.D diagnostic rows yield(x(1+u)(1+p),(x+u)(1+p),p); native rows clean(0,0,y): PASS +COR5: all32 q2.A diagnostic rows checked separately; x1/u0/p20 still gives111, so reusable q2 transfer not proved: PASS +COR6: correction cannot affect any q7 prefix; informativeR−7 prefix(u,u,1) remains private: PASS +SCOPE: native clean qY readout under modified initial depth7 preparation; no native reset or arbitrary q2-input socket. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/author-correction.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/author-correction.out new file mode 100644 index 000000000..e3a39e28c --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/author-correction.out @@ -0,0 +1,7 @@ +COR1: 10080 scalar direct dipole comparisons; all16 u/C assignments and70 strip entries,n0..8: PASS +COR2: both8-state input-source maps bijective; unique C=(u,0,u) gives delta=(u,0,u); old q7 triple111: PASS +COR3: complete first-arrival geometry; only upper neighbor changes atN7−1; all15 old ready regions and receiver histories excluded: PASS +COR4: all32 qY.D diagnostic rows yield(x(1+u)(1+p),(x+u)(1+p),p); native rows clean(0,0,y): PASS +COR5: all32 q2.A diagnostic rows checked separately; x1/u0/p20 still gives111, so reusable q2 transfer not proved: PASS +COR6: correction cannot affect any q7 prefix; informativeR−7 prefix(u,u,1) remains private: PASS +SCOPE: native clean qY readout under modified initial depth7 preparation; no native reset or arbitrary q2-input socket. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/author-scan-O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/author-scan-O.out new file mode 100644 index 000000000..34093bac6 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/author-scan-O.out @@ -0,0 +1,9 @@ +OUT1: 4536 scalar upper-pulse comparisons;252 strip entries, n0..8, bothu: PASS +OUT2: actualP divisible by universal exponent12*840^24; reduced axial coordinates stay positive: PASS +OUT3: all17748 old-source/k pairs, actual boundary geometry, frontiers and upper budgets<=2k: PASS +OUT4: all32 assignments recover retained k1/k2/k3 formulas and newk7 formula: PASS +OUT5: all384 diagnostic endpoint assignments are selector-mask independent; all192 native rows match retained tables: PASS +OUT6:72 endpoint field/complement candidates: exactlyk2.A andk7.D are rawp; no fullY-only triple amongk1..12: PASS +OUT7: nativek7=(0,u,y) has4 history codes; earliest prefixR-7=(u,u,1) remains informative: PASS +SCOPE: exact straight-outward endpoint family only; no clean reusable socket, reset, native access mechanism or joint-law certification. +OUT8: q2.A intervention is not forwarded raw by any later endpoint k3..12; k7 counterexample retained: PASS diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/author-scan.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/author-scan.out new file mode 100644 index 000000000..34093bac6 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/author-scan.out @@ -0,0 +1,9 @@ +OUT1: 4536 scalar upper-pulse comparisons;252 strip entries, n0..8, bothu: PASS +OUT2: actualP divisible by universal exponent12*840^24; reduced axial coordinates stay positive: PASS +OUT3: all17748 old-source/k pairs, actual boundary geometry, frontiers and upper budgets<=2k: PASS +OUT4: all32 assignments recover retained k1/k2/k3 formulas and newk7 formula: PASS +OUT5: all384 diagnostic endpoint assignments are selector-mask independent; all192 native rows match retained tables: PASS +OUT6:72 endpoint field/complement candidates: exactlyk2.A andk7.D are rawp; no fullY-only triple amongk1..12: PASS +OUT7: nativek7=(0,u,y) has4 history codes; earliest prefixR-7=(u,u,1) remains informative: PASS +SCOPE: exact straight-outward endpoint family only; no clean reusable socket, reset, native access mechanism or joint-law certification. +OUT8: q2.A intervention is not forwarded raw by any later endpoint k3..12; k7 counterexample retained: PASS diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/checks-O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/checks-O.out new file mode 100644 index 000000000..0d96b6571 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/checks-O.out @@ -0,0 +1,4 @@ +O2: unique axial pivot,1479 old sources,15 ready/old-history regions,all-index bank slack formulas and unchanged informative prefix; all128 update identities give delta output=(0,u,u*old_output.A): PASS +O1: signed L14 two-source strip, 1720 direct positions x16 lanes; actual incoming permutations=[[3, 6, 5, 0, 2, 4, 7, 1], [7, 0, 5, 4, 3, 2, 1, 6]]; old local triple111; unique correction Q=[000,101]: PASS +O3: independent full eight-step q7 assembly; all32 original/corrected qY and q2 diagnostic triples; corrected native code00y, qY diagnostic D=p, no raw q2-only field: PASS +SCOPE: ACCEPT modified initial q7 readout and stated readiness geometry; private access and147 extra old-port fair bits remain required. No arbitrary-input clean socket, joint-record certification, or native reset. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/checks.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/checks.out new file mode 100644 index 000000000..0d96b6571 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/checks.out @@ -0,0 +1,4 @@ +O2: unique axial pivot,1479 old sources,15 ready/old-history regions,all-index bank slack formulas and unchanged informative prefix; all128 update identities give delta output=(0,u,u*old_output.A): PASS +O1: signed L14 two-source strip, 1720 direct positions x16 lanes; actual incoming permutations=[[3, 6, 5, 0, 2, 4, 7, 1], [7, 0, 5, 4, 3, 2, 1, 6]]; old local triple111; unique correction Q=[000,101]: PASS +O3: independent full eight-step q7 assembly; all32 original/corrected qY and q2 diagnostic triples; corrected native code00y, qY diagnostic D=p, no raw q2-only field: PASS +SCOPE: ACCEPT modified initial q7 readout and stated readiness geometry; private access and147 extra old-port fair bits remain required. No arbitrary-input clean socket, joint-record certification, or native reset. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/checks.py new file mode 100644 index 000000000..8c4427829 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/review/checks.py @@ -0,0 +1,218 @@ +"""Independent q7 and two-upper-pulse correction, with reviewed v5 helpers. + +No author dynamics imported. Uses the previous independent review's generic +native recursion and geometry functions, bound by SHA256. No files are written. +""" +from pathlib import Path +from hashlib import sha256 +import json +import runpy + +HERE=Path(__file__).resolve().parent +CANDIDATES=(HERE.parent/'six_source_v5_review/checks.py', + HERE.parent.parent/'six_source_v5/review/checks.py') +HELPER=next((p for p in CANDIDATES if p.exists()),None) +if HELPER is None: + raise RuntimeError('Missing independently reviewed v5 helper') +if sha256(HELPER.read_bytes()).hexdigest()!='467fbff795407b2a2744465166ac6fd0958dbef768606b2a40a9ed6b97120728': + raise RuntimeError('Independent helper digest mismatch') +V=runpy.run_path(str(HELPER),run_name='independent_v5_helpers') +for name in ('need','Z','xx','hh','variable','direct','strip_keys','ball','norm','hp','odd','native_update','T','P','S','R'): + globals()[name]=V[name] + +KEYS=strip_keys(14) +GROUPS={ell:[key for key in KEYS if key[0]==ell] for ell in range(15)} + + +def advance(old): + look=[{} for _ in range(9)] + for ell in range(15): + for jump in range((14-ell)//2+1): + for _,a,b in GROUPS[ell]: + if ell+abs(a)+abs(b)>14-2*jump: + continue + prior=old[ell,a,b] if jump==0 else look[jump-1][ell,a,b] + terms=[prior,look[jump+1].get((ell-2,a,b),Z)] + terms.extend(look[jump].get((ell-1,aa,bb),Z) + for aa,bb in ((a-1,b),(a+1,b),(a,b-1),(a,b+1))) + look[jump][ell,a,b]=xx(look[jump].get((ell-2,a,b),Z),hh(xx(*terms))) + return look[0] + + +def triple(value,lane): + return tuple(word>>lane&1 for word in value) + + +def code(value,lane): + return sum((word>>lane&1)<=abs(a)+abs(b) and (ell-a-b)%2==0: + need((ell,a,b) in KEYS and 0<=n-P>lane1)&1)) else 0) + for word in value) + for source,bit in controls: + disp=tuple(abs(v-w) for v,w in zip(pos,source)) + need(sum(disp)>=R+tau,'lower controls are first fronts') + if sum(disp)==R+tau and odd(disp): + field=hp(2,R+tau) + result=xx(result,tuple(bit if field>>i&1 else 0 for i in range(3))) + return result + old={pos:base(-2,pos) for pos in ball(7,(0,0,7))} + now={pos:base(-1,pos) for pos in ball(8,(0,0,7))} + for tick in range(8): + nxt=native_update(old,now,7-tick,(0,0,7)) + if tick==0: + need(nxt[0,0,0]==(x,ones,x^u),'qY native before diagnostic') + if operand=='qY': + nxt[0,0,0]=(x,ones,p) + if tick==2 and operand=='q2': + q=nxt[0,0,2] + need(q==(x^u,x^u,ones^(x&(x^u))),'q2 native before diagnostic') + nxt[0,0,2]=(p,q[1],q[2]) + old,now=now,nxt + return now[0,0,7] + + +def check_geometry_and_algebra(): + target=(0,S,75) + deadline=R+7 + pivot=(0,S,S+150) + upper=(0,S,S+136) + need(norm(tuple(a-b for a,b in zip(pivot,target)))==deadline,'pivot first arrival at target') + need(norm(tuple(a-b for a,b in zip(pivot,upper)))==14,'two-upper separation') + lowers=((0,0,0),(0,2*S,0),(T,P+S,0),(-T,P+S,0)) + for loc in lowers: + need(norm(tuple(a-b for a,b in zip(target,loc)))==deadline,'all lower target distances') + for height in (1,2,7,14,deadline): + ray=(target[0],target[1],target[2]+height) + need(norm(tuple(a-b for a,b in zip(ray,loc)))==deadline+height,'lower sources outside correction ray past') + need(norm(tuple(a-b for a,b in zip(target,(0,-2,0))))==deadline+2,'M2 outside q7 cone') + need(norm(tuple(a-b for a,b in zip(target,(0,S,-S-136))))>deadline,'opposite pulse excluded') + need(11*R>deadline,'all radius-R remote blocks excluded by x separation') + need(norm(tuple(a-b for a,b in zip(pivot,target)))>deadline-1,'pivot outside previous ready ball') + old_regions=(((0,T,0),T),((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,0,-8*T),T), + ((0,S,0),S),((T,P,0),S),((-T,P,0),S),((4*T,P,0),S), + ((0,S,68),R),((0,S,-68),R),((0,S,70),R+2),((0,S,71),R+3), + ((12*R,0,0),R),((-12*R,0,0),R)) + for center,radius in old_regions: + distance=norm(tuple(a-b for a,b in zip(pivot,center))) + need(distance>radius and distance>deadline,'pivot outside old ready balls and old histories through N') + need(norm(tuple(a-b for a,b in zip(pivot,(0,S-1,70))))>deadline,'prior history sidecar also unaffected') + for k in range(1,7): + need(norm(tuple(a-b for a,b in zip(pivot,(0,S,68+k))))>R+k,'earlier outward endpoint unchanged') + geo_candidates=(HERE.parent/'repo_checkpoint/payload/parallel_v3/history_control/SOURCE-GEOMETRY.json', + HERE.parent.parent/'parallel_v3/history_control/SOURCE-GEOMETRY.json') + geo_path=next((p for p in geo_candidates if p.exists()),None) + need(geo_path is not None,'inherited source geometry available') + geo_bytes=geo_path.read_bytes() + need(sha256(geo_bytes).hexdigest()=='2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d','source geometry digest') + sources=json.loads(geo_bytes)['sources'] + boundary=[] + for row in sources: + pos=tuple(row['position']) + distance=norm(tuple(a-b for a,b in zip(pos,target))) + need(pos!=pivot and distance>=deadline,'no old source overwritten or added to cold interior') + if distance==deadline: + boundary.append((pos,row['field'],row['mask'])) + need(len(sources)==1479 and boundary==[((0,0,0),1,64)],'only origin inherited boundary source') + # These equalities are the all-j affine distance formulas, evaluated at + # representatives as a guard. The positive sign regions hold for every j>0. + for j in (1,2,7,T,P,R): + banks=(((0,-j,0),j),((0,0,-9*T-j),9*T+j), + ((0,2*S+j,0),j),((T,P+S+j,0),j), + ((-T,P+S+j,0),j),((4*T,P+S+j,0),3*T+j)) + for pos,slack in banks: + need(norm(tuple(a-b for a,b in zip(pos,target)))-deadline==slack,'positive all-index frontier slack') + need(pos!=pivot,'controlled pivot does not overwrite a fair bank') + need(hp(4,R-7)==4 and hp(5,R-7)==7,'unchanged informative early prefix (u,u,1)') + # Prove the update identity by complete finite enumeration of W,V,u. + HT=V['HT'] + for old in range(8): + for neighbors in range(8): + original=old^HT[neighbors] + for u in range(2): + delta=(u*(old&1))|(u<<2) + changed=old^HT[neighbors^delta] + need(changed^original==((u<<1)|((u*(original&1))<<2)), 'general final-update correction identity') + print('O2: unique axial pivot,1479 old sources,15 ready/old-history regions,all-index bank slack formulas and unchanged informative prefix; all128 update identities give delta output=(0,u,u*old_output.A): PASS') + + +if __name__=='__main__': + author=HERE.parent if (HERE.parent/'model.py').exists() else HERE.parent/'repo_checkpoint/payload/outward_v6' + for name,digest in json.loads((HERE/'INPUT-HASHES.json').read_text()).items(): + path=author/name + if not path.exists(): + path=HERE.parent/'outward_v6_geometry'/name + need(path.exists() and sha256(path.read_bytes()).hexdigest()==digest,'reviewed author digest: '+name) + check_geometry_and_algebra() + states=evaluate_strip() + original=evaluate_endpoint(states) + corrected=evaluate_endpoint(states,True) + original2=evaluate_endpoint(states,False,'q2') + corrected2=evaluate_endpoint(states,True,'q2') + for lane in range(32): + x,u,my,mr,p=(lane>>i&1 for i in range(5)) + expected=(x*(1-u)*(1-p),x*(1-p)^(u*p),p) + need(triple(original,lane)==expected,'unmodified whole qY diagnostic formula') + expected_corrected=(expected[0],expected[1]^u,expected[2]) + need(triple(corrected,lane)==expected_corrected,'corrected whole qY diagnostic formula') + if p==x^u: + need(triple(corrected,lane)==(0,0,p),'corrected native clean code') + q2_expected=(x^(x*u)^p^(u*p),x^p,x^(x*u)^p^(x*p)^(x*u*p)) + need(triple(original2,lane)==q2_expected,'q2-only diagnostic baseline') + q2_corrected=(q2_expected[0],q2_expected[1]^u,q2_expected[2]^(u*q2_expected[0])) + need(triple(corrected2,lane)==q2_corrected,'q2-only correction response') + pword=variable(4,32) + ones=(1<<32)-1 + raw_q2=[i for i,field in enumerate(corrected2) if field in (pword,pword^ones)] + need(raw_q2==[], 'corrected q7 is not raw q2-only operand transfer') + print('O3: independent full eight-step q7 assembly; all32 original/corrected qY and q2 diagnostic triples; corrected native code00y, qY diagnostic D=p, no raw q2-only field: PASS') + print('SCOPE: ACCEPT modified initial q7 readout and stated readiness geometry; private access and147 extra old-port fair bits remain required. No arbitrary-input clean socket, joint-record certification, or native reset.') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/COMBINED-REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/COMBINED-REPORT.md new file mode 100644 index 000000000..c57fb14e2 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/COMBINED-REPORT.md @@ -0,0 +1,184 @@ +# OI Native-Y: Parallel Continuation and Session Handoff + +24 October 2026 | Repository-read-only research | Version 3 + +## Parallel continuation: outcome and status + +The native-Y problem is now a concrete junction problem. We have an actual nearby x register, a clean A-extraction gadget, and a standalone direct-reset apparatus. We do not yet have one compatible native construction joining the actual late Y phase to either gadget. + +Four avenues and an independent review were run in parallel. All repository activity remained read-only. No physical premise, tagged-encoding relaxation, or certification claim was adopted. + +| Avenue | Established result | Remaining boundary | +| --- | --- | --- | +| Auxiliary routing | 5-tick native extractor: Q=(A,B,D) -> (0,A,0) | Specified ready input cone; actual late splice fails a readiness condition | +| History control | Nearby native x at s,R+1, with blank prefix through R | Earlier slice of phase; not persistent memory or an implemented gate | +| Direct reset | Standalone native 5:3:2 candidate at tick 2700 | Late socket unbuilt; common raw encoding still fails | +| Other geometry | Actual q3=(u,xu,u); exact 13-triple recurrence | Third straight step supplies no new raw Y operand | +| Independent review | Separate local proofs, geometry and contract checks | General transport-proof review remains open | + +### Recommended next milestone + +Construct one native junction on the actual two-slice state near q2. It must use the arriving A operand, handle the neighboring fields as they actually are, and deliver a common usable carrier interface. Add resources only at the original initial time, independently of the unknown input. + +The strongest candidates are a tolerant variant of the five-tick extractor, or a coupled update using the nearby previous-slice x. The standalone direct reset is a downstream target, not a license to reload the late state into a clean apparatus. + +Status: research checkpoint with scoped independent review. Exact-QM reconstruction and the wider finite-precision OI programme remain distinct. Failure of one gadget family is not a no-go for OI. + +## Actual apparatus: nearby history and the next step + +### Native x is already adjacent + +```text +s = qY + (0,-1,2) +U_(R+1)(s) = (0, 1 XOR y, x), y=x XOR u +U_t(s) = 000 for every t <= R +``` + +At phase time R+2, this D=x occupies the previous slice one spatial step from the current q2.A=y. It uses the inherited depth-two construction and consumes no new initial seed or frontier coordinate. Long historical transport is therefore unnecessary merely to locate x nearby. + +Replacing qY.D by diagnostic p at R leaves this sidecar unchanged, while q2.A becomes p. The sidecar B remains 1 XOR native y; it cannot substitute for the actual operand. The next current sidecar value can depend on the old input and frontier symbols. This is local phase availability, not persistent storage or permission to read indefinitely. + +### The third outward step is exact but not useful as a clean socket + +```text +q3 = qY + 3e_z +U_(R+3)(q3) = (u, x*u, u) +Early prefix at R-3: (u,1,u) +``` + +A closed recurrence on thirteen triples has exact pulse periods 3600 and 2940; the actual R has remainder 253 in both. All 1,479 original source positions were checked for the enlarged receiver. The result is not extrapolated from a small simulation or from R modulo 12. + +The 96 site-times in the shrinking diamond give 576 field/complement candidates. Across all 32 diagnostic assignments, only the already known qY.D and q2.A equal p uniformly. This bounded census excludes neither other geometries nor new controls. + +The depth-three ready extension preserves the inherited frontier separation. If seven old public ports remain exposed through R+3, the inherited joint-frontier theorem requires 21 more preloaded fair bits beyond R+2, or 63 beyond R. The informative q3 prefix remains private under the supplied access convention. + +Evidence: history_control/REPORT.md and checks.py; new_geometry/REPORT.md and checks.py; independent review sidecar_check.py and geometry_check.py. Wider transport and access closure are not established. + +## A genuine five-tick extractor, with a failed splice + +For arbitrary Q=(A,B,D) localized once at the gadget origin, the unchanged native rule produces the complete output (0,A,0) at r=(3,2,0), tick 5. + +| Initial current site | Triple | +| --- | --- | +| (0,0,0) | Q=(A,B,D), unknown | +| (0,1,-1) | 010 | +| (1,1,-2) | 111 | +| (8,2,0) | 010 | + +Prepare the current Manhattan ball B5(r) and previous ball B4(r), zero except for the listed sources. The old input triple lies outside B4(r) and remains arbitrary. The ready region fixes 1,077 apparatus bits, independently of Q. All exterior coordinates may be arbitrary. + +```text +Receiver prefix: 000 for ticks 0..4 +Receiver at tick 5: (0,A,0) +``` + +All four sources lie on the first-arrival boundary. An exact eight-input shell certificate gives incoming argument (1,0,A) before the correcting source. Its isolated contribution 100 changes that to (0,0,A), whose H-image is (0,A,0). Independent native recursion and the shell calculation agree. + +A-only diagnostics pass with B,D fixed. Full 15^3 torus tests cover all eight inputs and two dense exteriors; reversing all five updates restores the complete initial phase. Information is retained globally, but no reusable single garbage register or restored ready workspace is claimed. + +### The actual late phase violates a required zero + +```text +At q2+e_x, tick R+1: + actual old triple = (0, 1 XOR u XOR mY, mY) +``` + +A direct translation of the extractor to q2 at R+2 requires that previous-slice triple to be zero. With Q=001, the clean gadget outputs 000; changing only that old neighbor to 010 changes the result to 010. This is a controlled counterexample to ignoring readiness, not a full simulation of every possible integration. + +Evidence: aux_routing/REPORT.md, checks.py and source provenance; independent review/gadgets_check.py. A smaller two-tick B-copy was rejected because it fails the actual-A diagnostic. + +## Direct reset: standalone native candidate and tag + +### Native fanout and mixing + +```text +M_a(A,B,D) = (A XOR a, B, D XOR a*B) +M_a(M_a(Q)) = Q +``` + +For any positive L divisible by 12, place Q once at the origin and pure-A seed sources at +/-2L e_x. Prepared first-arrival receivers at +/-L e_x produce M_a(Q) and M_b(Q); a receiver at L e_y receives Q. The old input triple is outside their previous-slice cones. These formulas respond to arbitrary A, not just A=B on native inputs. + +### Compiled native herald + +A new herald accepts counts 5,3,2,0 on fresh seed pairs 00,10,11,01. Its unpadded register word has length 2,684; the synchronized deadline is L=2,700. There are 7,832 affine source entries, checked against every receiver. The complete 2,700-step native wing/axis recurrence yields raw herald (0,G,0), with 10 of 32 seed settings accepted. + +| Branch | Probability | Offered carrier | +| --- | --- | --- | +| Success | 5/16 | Supplied Y plane weights 5:3:2; independent fair Z | +| Failure | 11/16 | No offered carrier; Y and herald record retained | + +Herald and Z are remote, with compatible initial ready cones. Six fresh fair seed bits, including Z, are independent of Q and prior history. The five receiver prefixes are blank. No unknown input copies are preloaded. This proves a standalone prepared apparatus, not its embedding into the actual late q2 phase. + +### A public-history tag remains in the raw output + +```text +Input C = (y,y,1 XOR x*y) +Mixed cell = (r,y,1 XOR x*y XOR (y XOR r)*y) +Fixed tag extraction: g = D XOR 1 XOR A*B XOR B = x*y +``` + +Each whole terminal cell reveals only its designated new sign plus public history. Nevertheless, at y=1 the entire raw-output distributions for x=0 and x=1 have disjoint supports: TV=1. The unchanged common raw-carrier requirement therefore does not pass. The tagged interface is a candidate, and no relaxation has been adopted. + +Evidence: direct_reset/REPORT.md, checks.py, herald.json and copied compiler provenance. Full readiness and source ownership are part of the standalone theorem; old-apparatus frontier compatibility is still unproved. + +## Joint-law accounting and what can be combined + +### The tagged terminal law is exact + +```text +Pr(success, raw=E_(x,y)(j) | x,y) = (5/16) * mu_(Y,y)(j) +Pr(failure, no carrier | x,y) = 11/16 +``` + +E_(x,y) is an injective, history-indexed encoding of the four-sign target carrier. The complete raw distribution is checked, including every failure. This is an information contract for a candidate interface; it is not acceptance under a history-independent physical encoding or a proof of native reuse. + +| Event or diagnostic | Exact value | +| --- | --- | +| Both new reset heralds succeed, conditional on earlier x | 25/256 | +| Including older independent 5/8 predecessor | 125/2048 | +| 5:3:2 versus 5:2:3: terminal R TV on second success | 1/10 | +| Same R TV including second failure | 1/32 | +| Same R TV including preceding 25/128 success | 25/4096 | + +These sequential rates compose supplied independent kernels. They are not success claims for an integrated native X->Y sequence. Reusing the first-reset sample makes X_new=x and fails the fresh post-Y law. Terminal X alone misses the swapped calibration; terminal R and the full carrier are required. + +### Compatibility findings + +The nearby x sidecar belongs to the actual inherited phase. The extractor and direct-reset apparatus start from specified ready sockets. Their separate proofs cannot be concatenated by relabeling the encounter time as a fresh initialization. The extractor has a concrete dirty-neighbor obstruction, while the direct candidate additionally retains a history tag. + +The previous twenty-entry boundary repair remains excluded: on y=1 its whole output always satisfies B XOR D=x, even with history-dependent control choices. This obstruction is informationally harmless after x is public, but prevents a clean Y-only triple in that family. It does not exclude larger native junctions. + +Future native operations can react to the retained tag. A tag-conditioned R flip can change agreement from 4/5 to 1/5 despite a correct terminal decoded reset. Proving that the next allowed instrument has the required law is therefore essential. + +Evidence: integration/tagged_contract.py and REPORT.md; direct_reset checks; independent review. Joint frontier independence, clocks, shutters and arbitrary observer access are not inferred from these terminal laws. + +## Session handoff: review, replay and next work + +### Independent review and evidence boundaries + +The separate reviewer accepted, within stated scopes, the v2 reversible maps and boundary obstruction, the native x sidecar, the five-tick extractor and dirty-socket counterexample, the native mixer/fanout identity, the source-defined 2,700-step herald, the extended third-step calculation, and the tagged-law/strict-encoding distinction. Review reports and exact examined-byte hashes are retained in review/. This is not formal Lean certification or closure of the wider transport-proof review. + +Author checks and parent normal/-O replays cover all four avenues. The reviewer independently evaluated all 7,832 herald sources by shortest-path parity, all 2,700 native axis steps, all 32 seeds, source rank and receiver ownership. This validates this source-defined herald instance under its clean cones, not a general compiler theorem. + +### First task for the next session + +Calculate a complete junction using current q2 and the adjacent previous-slice x at s, or synthesize a tolerant extractor using the actual neighboring fields. Start with s at R+3 as a concrete candidate, but include all five other current neighbors and lower-source behind-front contributions. The previous first-arrival-only formula is insufficient there. + +Before counting a solution, specify all added pins and seed correlations at the original initial time; preserve the existing frontier bank; test actual operand interventions; prove full prefixes and the joint record/carrier law; retain every failure; and physically separate the history tag or meet the unchanged common carrier criterion. Do not adopt a new access convention or tagged-encoding relaxation silently. + +### Portable handoff contents + +- START-HERE.md: status, reading order, next task and exact replay commands. +- parallel_v3/: four avenue reports, independent review, parent contract, checkers, retained outputs and provenance. +- dependencies/: unchanged v1 and v2 source bundles, pinned by SHA-256. +- replay.py and SHA256SUMS: fresh extraction, hash verification and normal/-O replay. Python standard library suffices for scientific checks. + +```text +python3 replay.py +python3 replay.py --baseline +``` + +The default replay checks the new checkpoint and v2. The --baseline option also runs the ten retained v1 checkers. No network or repository actions are needed. Reports identify copied proof components and which review was independent. The PDF is a combined guide; the detailed per-track reports and executable evidence control technical scope. + +Unresolved: actual junction, common reusable carrier, native Y sequence, broader transport review, initialization, clock/settings/access closure, probability selection, unrestricted depth/menu and composites. These remain open research obligations, not adverse conclusions about OI generally. + diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/PROVENANCE.json new file mode 100644 index 000000000..a8a70bf2b --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/PROVENANCE.json @@ -0,0 +1,8 @@ +{ + "core_source": "continuation/core.py (copied from native-Y v1 handoff)", + "core_sha256": "b16155925700321abdb6f59260bc510e8e6c1d039f30c9eadc0c4320de89c941", + "conditional_gadget": "five-tick pure A extraction", + "baseline_use": "only actual late-neighbour identity", + "independent_review": "pending parent review", + "repository_writes": false +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/REPORT.md new file mode 100644 index 000000000..a4ecc20d9 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/REPORT.md @@ -0,0 +1,194 @@ +# Avenue A: a conditional native raw-A extractor + +24 October 2026. Repository read-only. New author result for the parallel +native-Y continuation; no new premise adoption or full-instrument claim. + +## Outcome + +A five-tick gadget of the unchanged lattice rule transfers an arbitrary raw +A operand into a clean whole-cell code `(0,A,0)`. It accepts every input triple, +not only the three native-Y codes. Its input appears at one initial site; its +three constant sources and ready workspace are independent of that input. +The complete receiver prefix is blank. Global reversibility retains the +unreturned information elsewhere in the two-slice phase. + +This is a genuine native gadget **conditional on a supplied localized input +socket and initially clean finite workspace**. It is not yet a native loading +construction from the actual late q2 phase. The proposed direct splice has a +specific dirty previous-slice coordinate, so that gap cannot be hidden by +relabeling the encounter time as a fresh initialization. + +## Exact construction + +Use the unchanged rule + + U_(t+1)(v) = U_(t-1)(v) XOR H(XOR of its six neighbours at t), + H(A,B,D) = (B,D,A XOR BD). + +The following coordinates are local gadget coordinates, not absolute coordinates +of the existing giant apparatus. At the gadget's tick zero, set: + +| Site | Current triple | +|---|---| +| (0,0,0) | Q=(A,B,D), arbitrary and unknown | +| (0,1,-1) | 010 | +| (1,1,-2) | 111 | +| (8,2,0) | 010 | + +Let the receiver be r=(3,2,0). Set every other current coordinate in the +Manhattan ball B_5(r) to zero, and every previous-slice coordinate in B_4(r) +to zero. All exterior coordinates can be arbitrary. In particular, the old +triple at the unknown input site is outside B_4(r) and is not silently erased. +Take a sufficiently large torus with no wrapping in these cones; L=15 is used +in the complete-lattice checks. + +Then, for every Q: + + U_t(r)=000 for 0<=t<5, + U_5(r)=(0,A,0). + +On Q=(y,y,1 XOR xy), the output is exactly `(0,y,0)`. Replacing only the input +A by diagnostic p, while keeping B and D fixed, produces `(0,p,0)` for every +assignment. There is no reliance on the native coincidence A=B. The intervention +is a test, not an operation performed in native runs. + +The clean operand is in B, which is the incoming operand field used by the +older localized X-reset construction. This observation does not by itself +compose that reset: its timing, prior, workspace and remaining fields still +need a joint construction. + +## Proof and finite certificate + +All four current sources lie exactly on the receiver's radius-five boundary. +The previous slice inside radius four is zero. Finite speed makes the receiver +prefix blank and reduces the first-arrival calculation to an inward sweep of +successive Manhattan shells. At each shell, only outward neighbours can have +received a source; inward neighbours, the older local slice and all other +contributions are still zero at the relevant first-arrival time. + +First omit the correcting source at (8,2,0). The eight-input Boolean certificate +for the two other constant sources gives, immediately before the receiver's +last H: + + XOR of arriving neighbours = (1,0,A), + receiver = H(1,0,A) = (0,A,1). + +`checks.py` computes this twice: once by the original three-dimensional, +second-order recursion, and once by a separate first-arrival shell sweep. It +exhausts all eight triples Q, so the displayed identity is independent of B,D. +This small exhaustive truth table, together with the exact finite-speed +reduction, is a complete finite certificate of this conditional statement. +It is not a Lean formalization. + +The correcting source (8,2,0) is distance ten from each other nonzero source. +It therefore cannot interact with them before tick five, and its unique axial +shortest path reaches the receiver at that tick. Before the last H it contributes + + H^4(010)=100. + +This flips `(1,0,A)` to `(0,0,A)`, giving the claimed `(0,A,0)`. + +No input copy is prepared. The unknown Q occurs once. The full global update +is reversible, with inverse + + U_(t-1)(v)=U_(t+1)(v) XOR H(XOR of its six neighbours at t). + +Consequently extracting one component into a clean receiver does not erase the +other components. They remain distinguishable in the rest of the complete +phase. The check reverses all five full-torus steps and recovers every initial +bit. This does not identify a single reusable garbage register or show that +the workspace returns to its initial ready state. A reusable device needs +that additional accounting. + +## Resource and record scope + +The current and previous ready balls have 231 and 129 sites. There are 1080 raw +bits in those two-slice regions, of which three are the free unknown Q. Thus +this construction fixes 1077 apparatus bits, including its three constant +triples. These constraints are independent of Q. No optimality, preparation +mechanism, thermodynamic interpretation or fair-frontier compatibility is +claimed. + +The theorem exposes the whole receiver triple at every tick through five. +That word contains only the selected A at the endpoint, with a blank prefix. +It does not control other spatial probes, other instruments' public ports, +the receiver after five, or an outgoing multi-sign carrier. No clock, shutter, +indefinite access closure or reset herald is supplied here. + +## Concrete late-loading obstruction + +A direct translation of this gadget to the existing raw-Y input q2 at encounter +time R+2 would place its receiver at q2+(3,2,0), at time R+7. Its old-slice +readiness requires the triple at q2+(1,0,0), time R+1, to be zero: that point +is distance four from the proposed receiver. + +The retained actual-parameter native-Y calculation instead gives, for all +sixteen x,u,mY,mR assignments, + + U_(R+1)(q2+e_x)=(0,1 XOR u XOR mY,mY). + +It is zero only when mY=0 and u=1. Conditioning on this late event would +restrict the reset sample u; it is not an input-independent clean socket. +It is not permissible simply to blank the triple during evolution. + +A controlled dirty-socket test shows why this hypothesis matters. With raw +Q=001, the clean gadget outputs 000. Change only the old triple at (1,0,0) +to 010 and it outputs 010 instead. The actual native history x=u=mY=mR=0 has +precisely that raw Q and that dirty old neighbour. The test leaves all other +gadget coordinates clean; it is not a simulation of the full actual late +apparatus, and does not prove that every possible enlarged integration fails. +It proves that this conditional gadget cannot be spliced by ignoring its +readiness hypotheses. + +The actual sidecar carrying x, found by the history-control avenue, may be +useful in a different coupled design. No such correction is included here. + +## A discriminating rejected shortcut + +There is an even smaller two-tick identity: Q at the origin and constant 001 +at (2,0,0), with its own clean ready cone, produce `(0,B,0)` at (1,1,0). Indeed, + + H(H(Q XOR 001) XOR H(Q) XOR H(001)) = (0,B,0). + +This agrees with y on every unmodified native code because A=B=y. It fails +the A-only diagnostic when A and B differ. The checker retains that failure +as a countercontrol. The five-tick construction was chosen because it transfers +the actual A operand, not merely a correlated native copy. + +## Checks and reproduction + +Run from any working directory: + + python3 parallel_v3/aux_routing/checks.py + python3 -O parallel_v3/aux_routing/checks.py + +Normal and optimized outputs are byte-identical. Checks use the standard library: + +- All eight Q inputs: exact original-rule recursion versus shell calculation; + blank prefix; complete endpoint triple and uncorrected-stage certificate. +- Four native histories and eight A-only diagnostic interventions. +- Source distances, one occurrence of unknown Q and exact readiness count. +- Complete 15^3 periodic lattices under two dense exterior assignments, all eight + packed Q values, every receiver tick, and exact reversal of the full phase. +- All sixteen actual old-neighbour formulas, using the retained giant-deadline + recurrence; the concrete dirty-socket countercontrol. +- The two-tick B-copy rejected by the actual-A diagnostic. + +The copied `core_from_v1.py` is byte-identical to the accepted handoff core; +its hash is recorded in PROVENANCE.json. It is used only for the actual late +neighbour calculation. The five-tick construction and two native simulation +implementations do not use that imported core. + +The gadget was found by an exploratory short source search. No external +preregistration, independent acceptance, minimum-resource theorem or global +composition certification is claimed. C++ search source is retained for +provenance; replay and acceptance do not require a C++ compiler. + +## Next test + +Treat the five-tick gadget as a concrete loading target, not as a finished +reset interface. Either construct its ready input phase from the actual q2 +history without changing the allowed prior, or synthesize a tolerant variant +using the actual nearby phase—including the native x sidecar. Any successful +integration must preserve the earlier instrument's record law and reserved +frontier resources, and still supply the native Y reset and its full joint law. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/SHA256SUMS new file mode 100644 index 000000000..4933ad548 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/SHA256SUMS @@ -0,0 +1,8 @@ +dca8b9aeca96aec01e4c56c23964fdadacb3314b31198873f6b7d68550a7c3b7 REPORT.md +4ebfb57e55812c7c1e8fa82e60d9fc65ef020146e2b7cd38c5c5dfc82b531b64 checks.py +e87dd4ea0741a6799dc02591d50885b3d2c798acdb52fddef4e893e5ea937d47 checks.out +e87dd4ea0741a6799dc02591d50885b3d2c798acdb52fddef4e893e5ea937d47 checks-O.out +b16155925700321abdb6f59260bc510e8e6c1d039f30c9eadc0c4320de89c941 core_from_v1.py +3e81ad42d8285234d0e683f6ad51c5f2259a4b0cbee78f7a5a02accaccc0a0fa PROVENANCE.json +fa6557719cc03e3847a7ece8379d950f67f10ce38cd0376835c44cc4510aeb5e search.cpp +6250acad977fa7189f2a00bf7e888e7a963ba07a942a9729cfa1a22094443bb7 search_clean.cpp diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/checks-O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/checks-O.out new file mode 100644 index 000000000..6140eb6cc --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/checks-O.out @@ -0,0 +1,7 @@ +A1: all8 raw triples; full native causal recursion equals independent first-arrival shell; prefix blank; endpoint (0,A,0): PASS +A2: all4 native histories plus8 A-only diagnostic interventions; B,D held fixed: PASS +G1: single unknown input;3 fixed sources; current/previous cones5/4; readiness1077 fixed bits: PASS +T1: full15^3 torus,2 dense arbitrary exteriors,all8 inputs,all6 receiver ticks; complete5-step inverse recovers initial phase: PASS +I1: actual old neighbor at q2+e_x is (0,1 XOR u XOR mY,mY), generally nonblank; controlled dirty-socket example flips result: PASS +SCOPE: conditional native5-tick extractor proved; no late socket loading, native Y reset, joint instrument composition, or native access closure claimed. +C1: two-tick B-copy passes native equal-A/B codes but fails actual-A intervention; rejected as substitute: PASS diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/checks.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/checks.out new file mode 100644 index 000000000..6140eb6cc --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/checks.out @@ -0,0 +1,7 @@ +A1: all8 raw triples; full native causal recursion equals independent first-arrival shell; prefix blank; endpoint (0,A,0): PASS +A2: all4 native histories plus8 A-only diagnostic interventions; B,D held fixed: PASS +G1: single unknown input;3 fixed sources; current/previous cones5/4; readiness1077 fixed bits: PASS +T1: full15^3 torus,2 dense arbitrary exteriors,all8 inputs,all6 receiver ticks; complete5-step inverse recovers initial phase: PASS +I1: actual old neighbor at q2+e_x is (0,1 XOR u XOR mY,mY), generally nonblank; controlled dirty-socket example flips result: PASS +SCOPE: conditional native5-tick extractor proved; no late socket loading, native Y reset, joint instrument composition, or native access closure claimed. +C1: two-tick B-copy passes native equal-A/B codes but fails actual-A intervention; rejected as substitute: PASS diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/checks.py new file mode 100644 index 000000000..57c053503 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/checks.py @@ -0,0 +1,121 @@ +"""Conditional native raw-A extractor; exact standalone standard-library checks.""" +from itertools import product +from functools import lru_cache +from pathlib import Path +import hashlib +import core_from_v1 as baseline +Z=(0,0,0); TARGET=(3,2,0); DEADLINE=5 +DIRECTIONS=tuple(tuple(s if j==i else 0 for j in range(3)) for i in range(3) for s in (-1,1)) +CONSTANTS={(0,1,-1):(0,1,0),(1,1,-2):(1,1,1),(8,2,0):(0,1,0)} + +def need(v,m): + if not v:raise RuntimeError(m) +def add(a,b):return tuple(x+y for x,y in zip(a,b)) +def dist(a,b):return sum(abs(x-y) for x,y in zip(a,b)) +def H(v):a,b,d=v;return b,d,a^(b&d) +def xor(*vs): + out=[0,0,0] + for v in vs: + for i in range(3):out[i]^=v[i] + return tuple(out) +def ball(r,center=Z): + return tuple(add(center,(x,y,z)) for x in range(-r,r+1) for y in range(-r,r+1) for z in range(-r,r+1) if abs(x)+abs(y)+abs(z)<=r) + +def direct(q,old=Z,corrector=True): + src=dict(CONSTANTS) + if not corrector:del src[(8,2,0)] + src[Z]=q + @lru_cache(None) + def at(t,v): + if t==-1:return old if v==(1,0,0) else Z + if t==0:return src.get(v,Z) + return xor(at(t-2,v),H(xor(*(at(t-1,add(v,d)) for d in DIRECTIONS)))) + return at + +def shell(q,corrector=True): + src=dict(CONSTANTS) + if not corrector:del src[(8,2,0)] + src[Z]=q + current={v:src.get(v,Z) for v in ball(DEADLINE,TARGET) if dist(v,TARGET)==DEADLINE} + final_argument=None + for r in range(DEADLINE-1,-1,-1): + nxt={} + for v in ball(r,TARGET): + if dist(v,TARGET)!=r:continue + arg=xor(*(current.get(add(v,d),Z) for d in DIRECTIONS)) + nxt[v]=H(arg) + if r==0:final_argument=arg + current=nxt + return current[TARGET],final_argument + +for q in product((0,1),repeat=3): + at=direct(q) + need(all(at(t,TARGET)==Z for t in range(5)),'blank prefix') + need(at(5,TARGET)==(0,q[0],0),'arbitrary raw-A extraction') + need(shell(q)==((0,q[0],0),(0,0,q[0])),'independent shell sweep') + need(shell(q,False)==((0,q[0],1),(1,0,q[0])),'unflipped endpoint certificate') +print('A1: all8 raw triples; full native causal recursion equals independent first-arrival shell; prefix blank; endpoint (0,A,0): PASS') +for x,y in product((0,1),repeat=2): + q=(y,y,1^(x&y));need(direct(q)(5,TARGET)==(0,y,0),'three-code input') + for p in (0,1): + q=(p,y,1^(x&y));need(direct(q)(5,TARGET)==(0,p,0),'actual A intervention') +print('A2: all4 native histories plus8 A-only diagnostic interventions; B,D held fixed: PASS') +need(all(dist(s,TARGET)==5 for s in (Z,)+tuple(CONSTANTS)),'all current sources on boundary') +need(all(dist((8,2,0),s)==10 for s in (Z,(0,1,-1),(1,1,-2))),'corrector cannot meet earlier') +need(3*(len(ball(5))+len(ball(4)))-3==1077,'readiness count') +print('G1: single unknown input;3 fixed sources; current/previous cones5/4; readiness1077 fixed bits: PASS') + +# Complete periodic native lattice, independent packed implementation. +L=15; SIZE=L**3; MASK=255 +coords=[(i%L,(i//L)%L,i//(L*L)) for i in range(SIZE)] +def index(v):return (v[0]%L)+L*(v[1]%L)+L*L*(v[2]%L) +links=[[index(add(v,d)) for d in DIRECTIONS] for v in coords] +center=TARGET +current_pins={index(v) for v in ball(5,center)} +previous_pins={index(v) for v in ball(4,center)} + +def packed_step(old,now): + nxt=[] + for i,ns in enumerate(links): + a=b=d=0 + for j in ns: + v=now[j];a^=v[0];b^=v[1];d^=v[2] + p=old[i];nxt.append((p[0]^b,p[1]^d,p[2]^a^(b&d))) + return nxt +for seed in (17,91): + def bg(i,k,phase): + # Dense deterministic exterior, different across all8 truth-table lanes. + n=(i+1)*1103515245+(k+3)*12345+seed+phase*2654435761 + return ((n>>3)^(n>>13)^n)&MASK + old=[tuple(bg(i,k,0) for k in range(3)) for i in range(SIZE)] + now=[tuple(bg(i,k,1) for k in range(3)) for i in range(SIZE)] + for i in previous_pins:old[i]=Z + for i in current_pins:now[i]=Z + for v,q in CONSTANTS.items():now[index(v)]=tuple(MASK*b for b in q) + now[index(Z)]=(240,204,170) + initial=(old[:],now[:]);prefix=[] + for t in range(6): + prefix.append(now[index(TARGET)]) + if t<5:old,now=now,packed_step(old,now) + need(prefix==[Z]*5+[(0,240,0)],'full-torus endpoint and prefix') + # Exact inverse on the full phase, without knowing the input bits. + for _ in range(5):old,now=packed_step(now,old),old + need((old,now)==initial,'full-phase reversibility and retained information') +print('T1: full15^3 torus,2 dense arbitrary exteriors,all8 inputs,all6 receiver ticks; complete5-step inverse recovers initial phase: PASS') + +# Actual q2 phase violates this gadget's proposed translated old-slice socket. +T=185;P=12*840**T +for x,u,my,mr in product((0,1),repeat=4): + _,records=baseline.native_second(T,P,68,x,my,mr,u) + need(records[1][(1,0,2)]==(0,1^u^my,my),'actual dirty old neighbor') +need(dist((1,0,0),TARGET)==4,'dirty old neighbor is required blank') +need(direct((0,0,1),(0,1,0))(5,TARGET)==(0,1,0),'dirty-socket countercontrol') +need(direct((0,0,1))(5,TARGET)==Z,'corresponding clean socket') +print('I1: actual old neighbor at q2+e_x is (0,1 XOR u XOR mY,mY), generally nonblank; controlled dirty-socket example flips result: PASS') +print('SCOPE: conditional native5-tick extractor proved; no late socket loading, native Y reset, joint instrument composition, or native access closure claimed.') +# Reject the simpler two-tick extractor, which copies B instead of actual A. +for q in product((0,1),repeat=3): + second=xor(H(xor(q,(0,0,1))),H(q),H((0,0,1))) + need(H(second)==(0,q[1],0),'two-tick derivative identity') +need(H(xor(H((1,0,0)),H((1,0,1)),H((0,0,1))))==(0,0,0),'B-copy fails A=1,B=0 intervention') +print('C1: two-tick B-copy passes native equal-A/B codes but fails actual-A intervention; rejected as substitute: PASS') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/core_from_v1.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/core_from_v1.py new file mode 100644 index 000000000..b1b8038b2 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/core_from_v1.py @@ -0,0 +1,92 @@ +"""Exact single-pulse bounded-lag recurrence and local late-collision diamond.""" +from functools import lru_cache +from itertools import product +ZERO=(0,0,0) +def H(v): + a,b,d=v;return b,d,a^(b&d) +def X(*vs):return tuple(sum(v[i] for v in vs)%2 for i in range(3)) +def hp(v,n): + for _ in range(n%12):v=H(v) + return v + +def initial(q): + f=q;z=H(q);l=H(z);j=X(H(q),H(X(q,hp(q,2))));g=q + return 0,f,z,l,j,g + +def advance(q,state): + phase,f,z,l,j,g=state;n=phase+1 + fn=X(hp(q,n),H(X(f,hp(q,n+1)))) + zn=H(X(z,hp(q,n)));ln=H(X(l,zn)) + zfuture=H(X(zn,hp(q,n+1))) + jn=X(zn,H(X(j,zfuture,fn,ln))) + ffuture=X(hp(q,n+1),H(X(fn,hp(q,n+2)))) + gn=X(fn,H(X(g,ffuture))) + return n%12,fn,zn,ln,jn,gn + +@lru_cache(None) +def orbit(q): + states=[];seen={};v=initial(q) + while v not in seen: + seen[v]=len(states);states.append(v);v=advance(q,v) + if len(states)>500000:raise RuntimeError('orbit limit') + return tuple(states),seen[v],len(states)-seen[v] + +def state(q,n): + states,start,period=orbit(q) + if n>=len(states):n=start+(n-start)%period + return states[n] + +def upper(q,t,pos): + a,b,n=map(abs,pos);a,b=sorted((a,b),reverse=True) + lag=t-a-b-n + if lag<0 or lag%2:return ZERO + f,z,l,j,g=state(q,n)[1:] + if (a,b,lag)==(0,0,0):return hp(q,n) + if (a,b,lag)==(1,0,0):return z + if (a,b,lag)==(2,0,0):return l + if (a,b,lag)==(1,1,0):return ZERO + if (a,b,lag)==(0,0,2):return f + if (a,b,lag)==(1,0,2):return j + if (a,b,lag)==(0,0,4):return g + raise RuntimeError(('uncovered pulse displacement',a,b,n,lag)) + +def odd(parts): + seen=0 + for p in parts: + if seen&p:return 0 + seen|=p + return 1 + +def ball(r,center): + for a in range(-r,r+1): + for b in range(-r+abs(a),r-abs(a)+1): + for c in range(-r+abs(a)+abs(b),r-abs(a)-abs(b)+1): + yield center[0]+a,center[1]+b,center[2]+c + +def native_second(T,P,d,x,my,mr,u,p=None): + S=T+P;R=S+d;q=(u,0,1);end=(0,0,2) + # Coordinates relative qY. Every lower source is on end's R+2 boundary. + controls=[((0,-S,-d),x),((0,S,-d),my^mr),((T,P,-d),my),((-T,P,-d),mr)] + def base(t,v): + val=upper(q,t,(v[0],v[1],R-v[2])) + for loc,bit in controls: + dist=tuple(abs(a-b) for a,b in zip(v,loc)) + if sum(dist)<=t: + if sum(dist)!=t:raise RuntimeError('lower source already behind front') + if odd(dist):val=X(val,hp((0,bit,0),t)) + return val + old={v:base(R-2,v) for v in ball(2,end)} + now={v:base(R-1,v) for v in ball(3,end)} + records={} + for tick in range(R,R+3): + nxt={} + for v in ball(R+2-tick,end): + neighbours=[] + for axis in range(3): + for sign in (-1,1): + w=list(v);w[axis]+=sign;neighbours.append(now[tuple(w)]) + nxt[v]=X(old[v],H(X(*neighbours))) + if tick==R and p is not None:nxt[(0,0,0)]=(x,1,p) + records[tick-R]=dict(nxt) + old,now=now,nxt + return now[end],records diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/search.cpp b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/search.cpp new file mode 100644 index 000000000..337e9d8cf --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/aux_routing/search.cpp @@ -0,0 +1,15 @@ +#include +#include +#include +#include +using namespace std; using V=array;using Q=array; +V add(V a,V b){for(int i=0;i<3;i++)a[i]+=b[i];return a;}int norm(V a){return abs(a[0])+abs(a[1])+abs(a[2]);} +Q h(Q a){return {a[1],a[2],(unsigned char)(a[0]^(a[1]&a[2]))};}Q mask(int v){return {(unsigned char)((v&4)?255:0),(unsigned char)((v&2)?255:0),(unsigned char)((v&1)?255:0)};} +vector dirs={{1,0,0},{-1,0,0},{0,1,0},{0,-1,0},{0,0,1},{0,0,-1}}; +int main(){for(V target:vector{{1,1,0},{2,1,0},{1,1,1},{2,2,0},{3,1,0},{2,1,1},{3,2,0},{2,2,1},{3,3,0}}){int T=norm(target);vector points;map idx;vector> links; +for(int r=T;r>=0;r--)for(int x=-r;x<=r;x++)for(int y=-r;y<=r;y++)for(int z=-r;z<=r;z++)if(abs(x)+abs(y)+abs(z)==r){V v={x,y,z};idx[v]=points.size();points.push_back(v);}int n=points.size(),nb=0;while(norm(points[nb])==T)nb++;links.resize(n); +for(int i=nb;i a(n); +auto test=[&](int c,int cv,int d,int dv){fill(a.begin(),a.begin()+nb,Q{0,0,0});a[input]={240,204,170};if(c>=0)a[c]=mask(cv);if(d>=0)a[d]=mask(dv);for(int i=nb;i=0)for(int j=0;j<3;j++)sum[j]^=a[p][j];a[i]=h(sum);}Q out=a.back();bool useful=false;for(int j=0;j<3;j++){if(out[j]!=0&&out[j]!=255&&out[j]!=240&&out[j]!=15)return false;if(out[j]==240||out[j]==15)useful=true;}if(!useful)return false; +cout<<"FOUND target "<>{{c,cv},{d,dv}})if(p>=0){V v=add(points[p],target);cout<<"control "< +#include +#include +#include +using namespace std; using V=array;using Q=array; +V add(V a,V b){for(int i=0;i<3;i++)a[i]+=b[i];return a;}int norm(V a){return abs(a[0])+abs(a[1])+abs(a[2]);} +Q h(Q a){return {a[1],a[2],(unsigned char)(a[0]^(a[1]&a[2]))};}Q mask(int v){return {(unsigned char)((v&4)?255:0),(unsigned char)((v&2)?255:0),(unsigned char)((v&1)?255:0)};} +vector dirs={{1,0,0},{-1,0,0},{0,1,0},{0,-1,0},{0,0,1},{0,0,-1}}; +int main(){for(V target:vector{{1,1,0},{2,1,0},{1,1,1},{2,2,0},{3,1,0},{2,1,1},{3,2,0},{2,2,1},{3,3,0}}){int T=norm(target);vector points;map idx;vector> links; +for(int r=T;r>=0;r--)for(int x=-r;x<=r;x++)for(int y=-r;y<=r;y++)for(int z=-r;z<=r;z++)if(abs(x)+abs(y)+abs(z)==r){V v={x,y,z};idx[v]=points.size();points.push_back(v);}int n=points.size(),nb=0;while(norm(points[nb])==T)nb++;links.resize(n); +for(int i=nb;i a(n); +auto test=[&](int c,int cv,int d,int dv){fill(a.begin(),a.begin()+nb,Q{0,0,0});a[input]={240,204,170};if(c>=0)a[c]=mask(cv);if(d>=0)a[d]=mask(dv);for(int i=nb;i=0)for(int j=0;j<3;j++)sum[j]^=a[p][j];a[i]=h(sum);}Q out=a.back();bool useful=false;for(int j=0;j<3;j++){if(out[j]!=0&&out[j]!=240)return false;if(out[j]==240)useful=true;}if(!useful)return false; +cout<<"FOUND target "<>{{c,cv},{d,dv}})if(p>=0){V v=add(points[p],target);cout<<"control "<>i&1) for i in range(n)] +def accept(u,v,k):return k<{(0,0):5,(1,0):3,(1,1):2,(0,1):0}[u,v] +for q in product((0,1),repeat=3): + need(hp(q,12)==q,'H period12') + for u in (0,1): + need(H(X(hp(q,L-1),hp((u,0,0),L-1)))==mix(q,u),'native first-arrival mixer') + need(mix(mix(q,u),u)==q,'mixer involution') +print('M1: all8 arbitrary triples and both seeds; native first-arrival formula and inverse: PASS',flush=True) +# Independent six-neighbour recursion: 256 lanes = arbitrary Q,u,v,old Q. +vs=tables(8);Q=tuple(vs[:3]);u,v=vs[3:5];oldQ=tuple(vs[5:]);short=12 +initial={(0,0,0):Q,(2*short,0,0):(u,0,0),(-2*short,0,0):(v,0,0)} +@lru_cache(None) +def native(t,p): + if t==-1:return oldQ if p==(0,0,0) else ZERO + if t==0:return initial.get(p,ZERO) + if min(dist(p,s) for s in initial)>t and dist(p,(0,0,0))>t+1:return ZERO + ns=[] + for axis in range(3): + for sign in (-1,1): + w=list(p);w[axis]+=sign;ns.append(native(t-1,tuple(w))) + return X(native(t-2,p),H(X(*ns))) +for p,expected in (((short,0,0),mix(Q,u)),((-short,0,0),mix(Q,v)),((0,short,0),Q)): + need(native(short,p)==expected,'full native collision') + need(all(native(t,p)==ZERO for t in range(short)),'blank prefix') +print('M2: independent3D recursion,L12,256 lanes,3 receivers,blank prefixes: PASS',flush=True) +# Standalone geometry, not inherited late-q2 phase. +receivers={'X':(L,0,0),'R':(-L,0,0),'Y':(0,L,0),'G':(12*L,0,0),'Z':(-12*L,0,0)} +srcs=[('Q',(0,0,0)),('u',(2*L,0,0)),('v',(-2*L,0,0)),('z',(-12*L,-L,0))] +herald_sources={(tuple(p),field):mask for p,field,mask in D['sources']} +for (p,field),mask in herald_sources.items(): + need(dist(p,(0,0,0))==L,'herald source boundary') + srcs.append(('G',(p[0]+12*L,p[1],p[2]))) +for name,q in receivers.items(): + allowed={'X':{'Q','u'},'R':{'Q','v'},'Y':{'Q'},'G':{'G'},'Z':{'z'}}[name] + for source,p in srcs: + dd=dist(p,q);need(dd==L if source in allowed else dd>L,'source ownership') + need(dist((0,0,0),q)>L-1,'old unknown excluded') +need(L==2700 and L%12==0,'phase') +print('G1: L2700 source ownership,7832 herald entries,single Q,old unknown excluded: PASS',flush=True) +# Actual native wing recursion on32 lanes. +variables=tables(5);full=(1<<32)-1 +def affine(mask): + out=full if mask&1 else 0 + for i,x in enumerate(variables): + if mask>>(i+1)&1:out^=x + return out +rows=[] +for wing in range(3): + row=[] + for x in range(L+1): + r=L-x;p=((x,r,0),(x,-r,0),(x,0,r))[wing] + row.append(herald_sources.get((p,wing),0)) + rows.append(row) +state=ZERO +for tick in range(L): + injected=[0,0,0] + for wing in range(3): + injected[(wing-tick)%3]^=affine(rows[wing][-2]) + rows[wing]=[a^b for a,b in zip(rows[wing],rows[wing][1:])] + expected=[0,0,0] + if tick>(2-j)&1 else 0 + for i,coefficient in terms: + if coefficient>>(2-j)&1:expected[j]^=variables[i] + need(injected==expected,'native wing vs word') + state=H(X(state,tuple(injected))) +truth=sum(1<>1)&1,i>>2)) +need(state==(0,truth,0) and truth.bit_count()==10,'raw herald') +print('H1: all2700 native wing/axis steps,32 cases; raw herald=(0,G,0),10/32 success: PASS',flush=True) +# Entire tagged carrier and every failure, no acceptance change adopted. +def raw(x,y,u,v,z): + q=(y,y,1^(x&y));return mix(q,u),q,mix(q,v),(0,0,z) +def decode(rr): + a,b,c,z=rr;y=b[0];g=b[2]^1 + need(a[1]==y and c[1]==y and b[1]==y,'B metadata') + need(a[2]^1^(a[0]&a[1])^a[1]==g,'X tag extraction') + need(c[2]^1^(c[0]&c[1])^c[1]==g,'R tag extraction') + need(z[:2]==(0,0),'Z fields') + return (a[0],y,c[0],z[2]),g +for x,y in product((0,1),repeat=2): + law=Counter();failure=F(0) + for u,v,k,z in product((0,1),(0,1),range(8),(0,1)): + if not accept(u,v,k):failure+=F(1,64);continue + rr=raw(x,y,u,v,z);j,g=decode(rr) + need(g==x*y and j==(y^u,y,y^v,z),'full decode') + law[(rr,j,g)]+=F(1,64) + need(failure==F(11,16),'failure retained') + for u,v,count in ((0,0,5),(1,0,3),(1,1,2)): + for z in (0,1): + rr=raw(x,y,u,v,z);j,g=decode(rr) + need(law[(rr,j,g)]==F(count,64),'whole raw law') + need(sum(law.values())==F(5,16) and sum(law.values())+failure==1,'normalization') +print('P1:4 histories,256 seed cases; entire tagged-carrier law5:3:2; success5/16,failure11/16: PASS',flush=True) +for x,y,u,v,z in product((0,1),repeat=5): + rr=raw(x,y,u,v,z) + for index,new in ((0,y^u),(2,y^v)): + need(rr[index]==(new,y,1^(x&y)^((new^y)&y)),'terminal metadata only') +print('P2: entire X/R cell determined by public(x,y) and designated sign; no other fresh-seed leak: PASS',flush=True) +correct=[F(5,10),F(3,10),F(2,10)];wrong=[F(5,10),F(2,10),F(3,10)] +need(correct[0]==wrong[0],'X blind control') +need(abs(sum(correct[:2])-sum(wrong[:2]))==F(1,10),'R catches wrong calibration') +need(F(5,16)*F(1,10)==F(1,32),'R TV withfailure') +a={raw(0,1,u,v,z) for u,v,count in ((0,0,5),(1,0,3),(1,1,2)) for z in (0,1)} +b={raw(1,1,u,v,z) for u,v,count in ((0,0,5),(1,0,3),(1,1,2)) for z in (0,1)} +need(not a&b,'strict rawhistory independence must fail') +need(all((y^(x^y))==x for x,y in product((0,1),repeat=2)),'old seed reuse forces Xnew=x') +print('C1: swapped5:2:3 caught by R(TV1/10;1/32 withfailure); strict common raw encoding fails(TV1); old-seed reuse fails: PASS',flush=True) +# Exact two-encounter composition of kernels; not a native geometric splice. +for oldx in (0,1): + seq=Counter() + for u1,v1,k1,z1,u2,v2,k2,z2 in product((0,1),(0,1),range(8),(0,1),(0,1),(0,1),range(8),(0,1)): + ok1=k1<{(0,0):5,(1,0):4,(1,1):1,(0,1):0}[u1,v1] + if not ok1:key=('failure1',) + else: + y=oldx^u1 + if not accept(u2,v2,k2):key=('failure2',y) + else:key=('success',y,raw(oldx,y,u2,v2,z2)) + seq[key]+=F(1,4096) + need(seq['failure1',]==F(11,16),'first failure') + for y in (0,1): + need(seq['failure2',y]==F(55,512),'second failure') + for u2,v2,count in ((0,0,5),(1,0,3),(1,1,2)): + for z2 in (0,1):need(seq['success',y,raw(oldx,y,u2,v2,z2)]==F(5*count,2048),'full sequential law') + need(sum(seq.values())==1,'sequential normalization') +print('P3:8192 two-encounter seed cases,all failure records; both success25/256; older5/8 selector gives125/2048: PASS',flush=True) +print('SCOPE: conditional standalone prepared native socket; tagged law is candidate, no encoding relaxation adopted; actual q2 integration remains open.') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/direct_reset/compiler.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/direct_reset/compiler.py new file mode 100644 index 000000000..00c6deaf9 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/direct_reset/compiler.py @@ -0,0 +1,162 @@ +"""Fixed-rule Boolean compiler and first-arrival lattice realization. + +Standard library. No I/O. Generalizes the reviewed composition construction +to AND/OR formulas with signed literals; source values remain affine. +""" +from itertools import permutations +from functools import lru_cache + +IDENTITY=tuple(range(8)) +def compose(a,b): return tuple(a[b[j]] for j in range(8)) +def inverse(a): return tuple(a.index(j) for j in range(8)) +def h(s): + a,b,d=(s>>2)&1,(s>>1)&1,s&1 + return 4*b+2*d+(a^(b&d)) +GEN={v:tuple(h(s^v) for s in range(8)) for v in range(8)} +LAYERS=[{IDENTITY:None}] +for depth in range(1,9): + nxt={} + for p in LAYERS[-1]: + for v,g in GEN.items(): + q=compose(g,p) + if q not in nxt: nxt[q]=(p,v) + LAYERS.append(nxt) + +def cycle(xs): + p=list(IDENTITY) + for j,x in enumerate(xs): p[x]=xs[(j+1)%len(xs)] + return tuple(p) +CYCLES=tuple(cycle((0,)+p) for p in permutations((1,2,3,4))) +PAIRS={r:tuple((a,b) for a in CYCLES for b in CYCLES + if compose(compose(a,b),compose(inverse(a),inverse(b)))==r) for r in CYCLES} + +def word(r,length): + out=[] + for depth in range(length,0,-1): + r,v=LAYERS[depth][r]; out.append(v) + if r!=IDENTITY: raise RuntimeError('bad word') + return tuple(reversed(out)) + +def leaf_length(r): + return next(k for k in (6,8) if r in LAYERS[k] and IDENTITY in LAYERS[k]) + +def lit(j,positive=True): return ('lit',j,positive) +def AND(a,b): return ('and',a,b) +def OR(a,b): return ('or',a,b) +def NOT(f): + if f[0]=='lit': return lit(f[1],not f[2]) + if f[0]=='const': return ('const',not f[1]) + return ('or' if f[0]=='and' else 'and',NOT(f[1]),NOT(f[2])) + +@lru_cache(None) +def cost(f,r): + op=f[0] + if op=='lit': return leaf_length(r) + if op=='const': return leaf_length(r) if f[1] else 0 + if op=='or': return cost(AND(NOT(f[1]),NOT(f[2])),inverse(r))+leaf_length(r) + a,b=f[1:] + return min(cost(a,p)+cost(a,inverse(p))+cost(b,q)+cost(b,inverse(q)) for p,q in PAIRS[r]) + +@lru_cache(None) +def program(f,r): + op=f[0] + if op=='const': + return tuple((v,()) for v in word(r,leaf_length(r))) if f[1] else () + if op=='lit': + j,positive=f[1:]; length=leaf_length(r) + w0,w1=word(IDENTITY,length),word(r,length) + if not positive: w0,w1=w1,w0 + return tuple((a,((j,a^b),)) for a,b in zip(w0,w1)) + if op=='or': + return program(AND(NOT(f[1]),NOT(f[2])),inverse(r))+tuple((v,()) for v in word(r,leaf_length(r))) + a,b=f[1:] + p,q=min(PAIRS[r],key=lambda pq:cost(a,pq[0])+cost(a,inverse(pq[0]))+cost(b,pq[1])+cost(b,inverse(pq[1]))) + return program(b,inverse(q))+program(a,inverse(p))+program(b,q)+program(a,p) + +def target(f,dest): + return min((r for r in CYCLES if r[0]==dest),key=lambda r:cost(f,r)) + +def pad(prog,length): + gap=length-len(prog) + if gap==0: return prog + # Identity length 10 is built by concatenating inverse five-step words. + if gap<6 or gap%2: raise ValueError('unrepresentable gap') + blocks=[] + while gap not in (0,6,8,10): blocks.append(6); gap-=6 + if gap: blocks.append(gap) + out=prog + for k in blocks: out+=tuple((v,()) for v in identity_word(k)) + return out + +@lru_cache(None) +def identity_word(k): + if k in (6,8): return word(IDENTITY,k) + # Avoid retaining all depth-9/10 tables: find two 5-step words with inverse products. + if k!=10: raise ValueError(k) + for p in LAYERS[5]: + if inverse(p) in LAYERS[5]: return word(p,5)+word(inverse(p),5) + raise RuntimeError('no identity padding') + +def common_length(programs): + base=max(map(len,programs)) + for extra in (0,6): + goal=base+extra + if all(goal-len(p)==0 or goal-len(p)>=6 and (goal-len(p))%2==0 for p in programs): return goal + raise RuntimeError('padding failed') + +def realize(programs): + """Signed axis programs, each same length; single or opposite pair. + + Returns (deadline, {(position,field): affine bit mask}). Bit 0 of an + affine mask is its constant, bit j+1 multiplies input j. + """ + lengths={len(p) for p in programs.values()} + if len(lengths)!=1: raise ValueError('unequal programs') + T=lengths.pop()+1 + sources={}; axes=[0,0,0] + order=(2,1,0) + for sign,prog in programs.items(): + for wing,seed in enumerate((0,1,2)): + profile=[] + for d,(c,terms) in enumerate(prog): + field=order[(order.index(seed)+d)%3] + shift=2-field + value=(c>>shift)&1 + for j,coefficient in terms: + if coefficient>>shift&1: value^=1<<(j+1) + profile.append(value) + for q in range(T-1): + value=0 + # Lucas parity: binom(q,d) odd iff d is a submask of q. + d=q + while True: + value^=profile[d] + if d==0: break + d=(d-1)&q + if not value: continue + x=sign*(T-1-q) + pos=((x,q+1,0),(x,-q-1,0),(x,0,q+1))[wing] + key=(pos,seed); sources[key]=sources.get(key,0)^value + if q & ~(T-1)==0: axes[wing]^=value + for wing,value in enumerate(axes): + if value: + pos=((0,T,0),(0,-T,0),(0,0,T))[wing] + sources[pos,wing]=sources.get((pos,wing),0)^value + return T,{k:v for k,v in sources.items() if v} + +# U = 8u3+4u2+2u1+u0. Input numbers 0..3 are u0..u3. +u0,u1,u2,u3=[lit(j) for j in range(4)] +SUCCESS=OR(NOT(u3),AND(NOT(u2),NOT(u1))) +LOW5=AND(NOT(u3),OR(NOT(u2),AND(NOT(u1),NOT(u0)))) +LOW9=OR(NOT(u3),AND(NOT(u2),AND(NOT(u1),NOT(u0)))) +ERROR9=AND(AND(u3,NOT(u2)),AND(NOT(u1),u0)) + +def build(): + herald=program(SUCCESS,target(SUCCESS,4)) + carrier1=program(LOW5,target(LOW5,2)) + carrier2=program(LOW9,target(LOW9,1)) + length=common_length((herald,carrier1,carrier2)) + ht,hs=realize({1:pad(herald,length)}) + ct,cs=realize({1:pad(carrier1,length),-1:pad(carrier2,length)}) + if ht!=ct: raise RuntimeError('deadline mismatch') + return ht,hs,cs,{'herald':len(herald),'carrier1':len(carrier1),'carrier2':len(carrier2),'padded':length} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/direct_reset/derive_herald.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/direct_reset/derive_herald.py new file mode 100644 index 000000000..930f57e45 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/direct_reset/derive_herald.py @@ -0,0 +1,19 @@ +import compiler as c +from itertools import product +from pathlib import Path +import json +u,v,k0,k1,k2=map(c.lit,range(5)) +def AND(*a):return a[0] if len(a)==1 else c.AND(a[0],AND(*a[1:])) +def OR(*a):return a[0] if len(a)==1 else c.OR(a[0],OR(*a[1:])) +low5=OR(c.NOT(k2),AND(c.NOT(k1),c.NOT(k0))) +low3=AND(c.NOT(k2),OR(c.NOT(k1),c.NOT(k0))) +low2=AND(c.NOT(k2),c.NOT(k1)) +f=OR(AND(c.NOT(u),c.NOT(v),low5),AND(u,c.NOT(v),low3),AND(u,v,low2)) +prog=c.program(f,c.target(f,4)) +L=((len(prog)+13)//12)*12 +while L-2-len(prog)<6:L+=12 +padded=c.pad(prog,L-2)+((0,()),) +T,sources=c.realize({1:padded}) +if T!=L:raise RuntimeError('bad deadline') +print('word',len(prog),'L',L,'sources',len(sources),flush=True) +Path(__file__).with_name('herald.json').write_text(json.dumps({'word_length':len(prog),'deadline':L,'program':padded,'sources':[[list(p),field,mask] for (p,field),mask in sorted(sources.items())]},separators=(',',':'))+'\n') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/direct_reset/herald.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/direct_reset/herald.json new file mode 100644 index 000000000..e48fb2f99 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/direct_reset/herald.json @@ -0,0 +1 @@ +{"word_length":2684,"deadline":2700,"program":[[0,[[3,2]]],[1,[[3,2]]],[3,[[3,0]]],[0,[[3,3]]],[2,[[3,1]]],[0,[[3,7]]],[3,[[4,1]]],[3,[[4,0]]],[2,[[4,1]]],[0,[[4,3]]],[1,[[4,2]]],[7,[[4,0]]],[1,[[3,3]]],[0,[[3,3]]],[1,[[3,2]]],[2,[[3,1]]],[3,[[3,0]]],[6,[[3,1]]],[2,[[4,0]]],[3,[[4,0]]],[0,[[4,3]]],[0,[[4,3]]],[0,[[4,3]]],[3,[[4,4]]],[2,[[1,0]]],[3,[[1,0]]],[3,[[1,3]]],[3,[[1,3]]],[3,[[1,3]]],[7,[[1,4]]],[3,[[3,1]]],[3,[[3,0]]],[2,[[3,1]]],[0,[[3,3]]],[1,[[3,2]]],[7,[[3,0]]],[0,[[4,2]]],[1,[[4,2]]],[3,[[4,0]]],[0,[[4,3]]],[2,[[4,1]]],[0,[[4,7]]],[2,[[3,0]]],[3,[[3,0]]],[0,[[3,3]]],[0,[[3,3]]],[0,[[3,3]]],[3,[[3,4]]],[1,[[4,3]]],[0,[[4,3]]],[1,[[4,2]]],[2,[[4,1]]],[3,[[4,0]]],[6,[[4,1]]],[2,[[1,1]]],[3,[[1,0]]],[3,[[1,1]]],[3,[[1,3]]],[3,[[1,2]]],[7,[[1,0]]],[2,[[0,2]]],[3,[[0,2]]],[3,[[0,0]]],[3,[[0,3]]],[3,[[0,1]]],[7,[[0,7]]],[3,[[3,1]]],[3,[[3,0]]],[2,[[3,1]]],[0,[[3,3]]],[1,[[3,2]]],[7,[[3,0]]],[0,[[4,2]]],[1,[[4,2]]],[3,[[4,0]]],[0,[[4,3]]],[2,[[4,1]]],[0,[[4,7]]],[2,[[3,0]]],[3,[[3,0]]],[0,[[3,3]]],[0,[[3,3]]],[0,[[3,3]]],[3,[[3,4]]],[1,[[4,3]]],[0,[[4,3]]],[1,[[4,2]]],[2,[[4,1]]],[3,[[4,0]]],[6,[[4,1]]],[2,[[1,2]]],[3,[[1,2]]],[3,[[1,0]]],[3,[[1,3]]],[3,[[1,1]]],[7,[[1,7]]],[0,[[3,2]]],[1,[[3,2]]],[3,[[3,0]]],[0,[[3,3]]],[2,[[3,1]]],[0,[[3,7]]],[3,[[4,1]]],[3,[[4,0]]],[2,[[4,1]]],[0,[[4,3]]],[1,[[4,2]]],[7,[[4,0]]],[1,[[3,3]]],[0,[[3,3]]],[1,[[3,2]]],[2,[[3,1]]],[3,[[3,0]]],[6,[[3,1]]],[2,[[4,0]]],[3,[[4,0]]],[0,[[4,3]]],[0,[[4,3]]],[0,[[4,3]]],[3,[[4,4]]],[2,[[1,3]]],[3,[[1,3]]],[3,[[1,2]]],[3,[[1,1]]],[3,[[1,0]]],[7,[[1,1]]],[2,[[0,3]]],[3,[[0,3]]],[3,[[0,2]]],[3,[[0,1]]],[3,[[0,0]]],[7,[[0,1]]],[2,[]],[3,[]],[0,[]],[0,[]],[0,[]],[3,[]],[2,[[2,3]]],[3,[[2,3]]],[3,[[2,2]]],[3,[[2,1]]],[3,[[2,0]]],[7,[[2,1]]],[2,[[3,1]]],[3,[[3,0]]],[3,[[3,1]]],[3,[[3,3]]],[3,[[3,2]]],[7,[[3,0]]],[2,[[2,2]]],[3,[[2,2]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,1]]],[7,[[2,7]]],[2,[[3,0]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,3]]],[3,[[3,3]]],[7,[[3,4]]],[1,[]],[0,[]],[2,[]],[0,[]],[3,[]],[3,[]],[0,[]],[4,[]],[0,[[4,2]]],[1,[[4,2]]],[3,[[4,0]]],[0,[[4,3]]],[2,[[4,1]]],[0,[[4,7]]],[2,[[2,1]]],[3,[[2,0]]],[3,[[2,1]]],[3,[[2,3]]],[3,[[2,2]]],[7,[[2,0]]],[2,[[3,3]]],[3,[[3,3]]],[3,[[3,2]]],[3,[[3,1]]],[3,[[3,0]]],[7,[[3,1]]],[2,[[2,0]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,3]]],[3,[[2,3]]],[7,[[2,4]]],[2,[[3,2]]],[3,[[3,2]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,1]]],[7,[[3,7]]],[0,[]],[0,[]],[0,[]],[1,[]],[3,[]],[0,[]],[0,[]],[0,[]],[1,[[4,3]]],[0,[[4,3]]],[1,[[4,2]]],[2,[[4,1]]],[3,[[4,0]]],[6,[[4,1]]],[0,[[1,2]]],[1,[[1,2]]],[3,[[1,0]]],[0,[[1,3]]],[2,[[1,1]]],[0,[[1,7]]],[2,[[2,2]]],[3,[[2,2]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,1]]],[7,[[2,7]]],[2,[[3,0]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,3]]],[3,[[3,3]]],[7,[[3,4]]],[2,[[2,3]]],[3,[[2,3]]],[3,[[2,2]]],[3,[[2,1]]],[3,[[2,0]]],[7,[[2,1]]],[2,[[3,1]]],[3,[[3,0]]],[3,[[3,1]]],[3,[[3,3]]],[3,[[3,2]]],[7,[[3,0]]],[0,[]],[0,[]],[3,[]],[2,[]],[1,[]],[0,[]],[1,[]],[2,[]],[1,[[4,3]]],[0,[[4,3]]],[1,[[4,2]]],[2,[[4,1]]],[3,[[4,0]]],[6,[[4,1]]],[2,[[2,0]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,3]]],[3,[[2,3]]],[7,[[2,4]]],[2,[[3,2]]],[3,[[3,2]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,1]]],[7,[[3,7]]],[2,[[2,1]]],[3,[[2,0]]],[3,[[2,1]]],[3,[[2,3]]],[3,[[2,2]]],[7,[[2,0]]],[2,[[3,3]]],[3,[[3,3]]],[3,[[3,2]]],[3,[[3,1]]],[3,[[3,0]]],[7,[[3,1]]],[1,[]],[0,[]],[0,[]],[2,[]],[1,[]],[2,[]],[2,[]],[5,[]],[0,[[4,2]]],[1,[[4,2]]],[3,[[4,0]]],[0,[[4,3]]],[2,[[4,1]]],[0,[[4,7]]],[1,[[1,3]]],[0,[[1,3]]],[1,[[1,2]]],[2,[[1,1]]],[3,[[1,0]]],[6,[[1,1]]],[2,[[0,0]]],[3,[[0,0]]],[3,[[0,3]]],[3,[[0,3]]],[3,[[0,3]]],[7,[[0,4]]],[2,[[2,3]]],[3,[[2,3]]],[3,[[2,2]]],[3,[[2,1]]],[3,[[2,0]]],[7,[[2,1]]],[2,[[3,0]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,3]]],[3,[[3,3]]],[7,[[3,4]]],[2,[[2,2]]],[3,[[2,2]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,1]]],[7,[[2,7]]],[2,[[3,1]]],[3,[[3,0]]],[3,[[3,1]]],[3,[[3,3]]],[3,[[3,2]]],[7,[[3,0]]],[0,[]],[0,[]],[2,[]],[1,[]],[1,[]],[0,[]],[2,[]],[5,[]],[3,[[4,1]]],[3,[[4,0]]],[2,[[4,1]]],[0,[[4,3]]],[1,[[4,2]]],[7,[[4,0]]],[2,[[2,0]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,3]]],[3,[[2,3]]],[7,[[2,4]]],[2,[[3,3]]],[3,[[3,3]]],[3,[[3,2]]],[3,[[3,1]]],[3,[[3,0]]],[7,[[3,1]]],[2,[[2,1]]],[3,[[2,0]]],[3,[[2,1]]],[3,[[2,3]]],[3,[[2,2]]],[7,[[2,0]]],[2,[[3,2]]],[3,[[3,2]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,1]]],[7,[[3,7]]],[2,[]],[1,[]],[0,[]],[0,[]],[1,[]],[1,[]],[3,[]],[6,[]],[2,[[4,0]]],[3,[[4,0]]],[0,[[4,3]]],[0,[[4,3]]],[0,[[4,3]]],[3,[[4,4]]],[3,[[1,1]]],[3,[[1,0]]],[2,[[1,1]]],[0,[[1,3]]],[1,[[1,2]]],[7,[[1,0]]],[2,[[2,2]]],[3,[[2,2]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,1]]],[7,[[2,7]]],[2,[[3,1]]],[3,[[3,0]]],[3,[[3,1]]],[3,[[3,3]]],[3,[[3,2]]],[7,[[3,0]]],[2,[[2,3]]],[3,[[2,3]]],[3,[[2,2]]],[3,[[2,1]]],[3,[[2,0]]],[7,[[2,1]]],[2,[[3,0]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,3]]],[3,[[3,3]]],[7,[[3,4]]],[0,[]],[2,[]],[1,[]],[1,[]],[0,[]],[0,[]],[3,[]],[7,[]],[2,[[4,0]]],[3,[[4,0]]],[0,[[4,3]]],[0,[[4,3]]],[0,[[4,3]]],[3,[[4,4]]],[2,[[2,1]]],[3,[[2,0]]],[3,[[2,1]]],[3,[[2,3]]],[3,[[2,2]]],[7,[[2,0]]],[2,[[3,2]]],[3,[[3,2]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,1]]],[7,[[3,7]]],[2,[[2,0]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,3]]],[3,[[2,3]]],[7,[[2,4]]],[2,[[3,3]]],[3,[[3,3]]],[3,[[3,2]]],[3,[[3,1]]],[3,[[3,0]]],[7,[[3,1]]],[0,[]],[3,[]],[0,[]],[0,[]],[0,[]],[3,[]],[2,[]],[5,[]],[3,[[4,1]]],[3,[[4,0]]],[2,[[4,1]]],[0,[[4,3]]],[1,[[4,2]]],[7,[[4,0]]],[2,[[1,0]]],[3,[[1,0]]],[0,[[1,3]]],[0,[[1,3]]],[0,[[1,3]]],[3,[[1,4]]],[2,[[0,1]]],[3,[[0,0]]],[3,[[0,1]]],[3,[[0,3]]],[3,[[0,2]]],[7,[[0,0]]],[0,[]],[1,[]],[3,[]],[0,[]],[2,[]],[0,[]],[1,[[3,3]]],[0,[[3,3]]],[1,[[3,2]]],[2,[[3,1]]],[3,[[3,0]]],[6,[[3,1]]],[3,[[4,1]]],[3,[[4,0]]],[2,[[4,1]]],[0,[[4,3]]],[1,[[4,2]]],[7,[[4,0]]],[0,[[3,2]]],[1,[[3,2]]],[3,[[3,0]]],[0,[[3,3]]],[2,[[3,1]]],[0,[[3,7]]],[2,[[4,0]]],[3,[[4,0]]],[0,[[4,3]]],[0,[[4,3]]],[0,[[4,3]]],[3,[[4,4]]],[2,[[1,2]]],[3,[[1,2]]],[3,[[1,0]]],[3,[[1,3]]],[3,[[1,1]]],[7,[[1,7]]],[3,[[3,1]]],[3,[[3,0]]],[2,[[3,1]]],[0,[[3,3]]],[1,[[3,2]]],[7,[[3,0]]],[1,[[4,3]]],[0,[[4,3]]],[1,[[4,2]]],[2,[[4,1]]],[3,[[4,0]]],[6,[[4,1]]],[2,[[3,0]]],[3,[[3,0]]],[0,[[3,3]]],[0,[[3,3]]],[0,[[3,3]]],[3,[[3,4]]],[0,[[4,2]]],[1,[[4,2]]],[3,[[4,0]]],[0,[[4,3]]],[2,[[4,1]]],[0,[[4,7]]],[2,[[1,3]]],[3,[[1,3]]],[3,[[1,2]]],[3,[[1,1]]],[3,[[1,0]]],[7,[[1,1]]],[2,[[0,3]]],[3,[[0,3]]],[3,[[0,2]]],[3,[[0,1]]],[3,[[0,0]]],[7,[[0,1]]],[3,[[3,1]]],[3,[[3,0]]],[2,[[3,1]]],[0,[[3,3]]],[1,[[3,2]]],[7,[[3,0]]],[1,[[4,3]]],[0,[[4,3]]],[1,[[4,2]]],[2,[[4,1]]],[3,[[4,0]]],[6,[[4,1]]],[2,[[3,0]]],[3,[[3,0]]],[0,[[3,3]]],[0,[[3,3]]],[0,[[3,3]]],[3,[[3,4]]],[0,[[4,2]]],[1,[[4,2]]],[3,[[4,0]]],[0,[[4,3]]],[2,[[4,1]]],[0,[[4,7]]],[2,[[1,0]]],[3,[[1,0]]],[3,[[1,3]]],[3,[[1,3]]],[3,[[1,3]]],[7,[[1,4]]],[1,[[3,3]]],[0,[[3,3]]],[1,[[3,2]]],[2,[[3,1]]],[3,[[3,0]]],[6,[[3,1]]],[3,[[4,1]]],[3,[[4,0]]],[2,[[4,1]]],[0,[[4,3]]],[1,[[4,2]]],[7,[[4,0]]],[0,[[3,2]]],[1,[[3,2]]],[3,[[3,0]]],[0,[[3,3]]],[2,[[3,1]]],[0,[[3,7]]],[2,[[4,0]]],[3,[[4,0]]],[0,[[4,3]]],[0,[[4,3]]],[0,[[4,3]]],[3,[[4,4]]],[2,[[1,1]]],[3,[[1,0]]],[3,[[1,1]]],[3,[[1,3]]],[3,[[1,2]]],[7,[[1,0]]],[2,[[0,2]]],[3,[[0,2]]],[3,[[0,0]]],[3,[[0,3]]],[3,[[0,1]]],[7,[[0,7]]],[3,[]],[3,[]],[2,[]],[0,[]],[1,[]],[7,[]],[2,[[2,0]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,3]]],[3,[[2,3]]],[7,[[2,4]]],[2,[[3,2]]],[3,[[3,2]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,1]]],[7,[[3,7]]],[2,[[2,1]]],[3,[[2,0]]],[3,[[2,1]]],[3,[[2,3]]],[3,[[2,2]]],[7,[[2,0]]],[2,[[3,3]]],[3,[[3,3]]],[3,[[3,2]]],[3,[[3,1]]],[3,[[3,0]]],[7,[[3,1]]],[1,[]],[0,[]],[0,[]],[2,[]],[1,[]],[2,[]],[2,[]],[5,[]],[0,[[4,2]]],[1,[[4,2]]],[3,[[4,0]]],[0,[[4,3]]],[2,[[4,1]]],[0,[[4,7]]],[2,[[2,2]]],[3,[[2,2]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,1]]],[7,[[2,7]]],[2,[[3,0]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,3]]],[3,[[3,3]]],[7,[[3,4]]],[2,[[2,3]]],[3,[[2,3]]],[3,[[2,2]]],[3,[[2,1]]],[3,[[2,0]]],[7,[[2,1]]],[2,[[3,1]]],[3,[[3,0]]],[3,[[3,1]]],[3,[[3,3]]],[3,[[3,2]]],[7,[[3,0]]],[0,[]],[0,[]],[3,[]],[2,[]],[1,[]],[0,[]],[1,[]],[2,[]],[1,[[4,3]]],[0,[[4,3]]],[1,[[4,2]]],[2,[[4,1]]],[3,[[4,0]]],[6,[[4,1]]],[3,[[1,1]]],[3,[[1,0]]],[2,[[1,1]]],[0,[[1,3]]],[1,[[1,2]]],[7,[[1,0]]],[2,[[2,3]]],[3,[[2,3]]],[3,[[2,2]]],[3,[[2,1]]],[3,[[2,0]]],[7,[[2,1]]],[2,[[3,1]]],[3,[[3,0]]],[3,[[3,1]]],[3,[[3,3]]],[3,[[3,2]]],[7,[[3,0]]],[2,[[2,2]]],[3,[[2,2]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,1]]],[7,[[2,7]]],[2,[[3,0]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,3]]],[3,[[3,3]]],[7,[[3,4]]],[1,[]],[0,[]],[2,[]],[0,[]],[3,[]],[3,[]],[0,[]],[4,[]],[3,[[4,1]]],[3,[[4,0]]],[2,[[4,1]]],[0,[[4,3]]],[1,[[4,2]]],[7,[[4,0]]],[2,[[2,1]]],[3,[[2,0]]],[3,[[2,1]]],[3,[[2,3]]],[3,[[2,2]]],[7,[[2,0]]],[2,[[3,3]]],[3,[[3,3]]],[3,[[3,2]]],[3,[[3,1]]],[3,[[3,0]]],[7,[[3,1]]],[2,[[2,0]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,3]]],[3,[[2,3]]],[7,[[2,4]]],[2,[[3,2]]],[3,[[3,2]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,1]]],[7,[[3,7]]],[0,[]],[0,[]],[0,[]],[1,[]],[3,[]],[0,[]],[0,[]],[0,[]],[2,[[4,0]]],[3,[[4,0]]],[0,[[4,3]]],[0,[[4,3]]],[0,[[4,3]]],[3,[[4,4]]],[2,[[1,0]]],[3,[[1,0]]],[0,[[1,3]]],[0,[[1,3]]],[0,[[1,3]]],[3,[[1,4]]],[2,[[0,1]]],[3,[[0,0]]],[3,[[0,1]]],[3,[[0,3]]],[3,[[0,2]]],[7,[[0,0]]],[2,[[2,1]]],[3,[[2,0]]],[3,[[2,1]]],[3,[[2,3]]],[3,[[2,2]]],[7,[[2,0]]],[2,[[3,3]]],[3,[[3,3]]],[3,[[3,2]]],[3,[[3,1]]],[3,[[3,0]]],[7,[[3,1]]],[2,[[2,0]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,3]]],[3,[[2,3]]],[7,[[2,4]]],[2,[[3,2]]],[3,[[3,2]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,1]]],[7,[[3,7]]],[0,[]],[0,[]],[0,[]],[1,[]],[3,[]],[0,[]],[0,[]],[0,[]],[0,[[4,2]]],[1,[[4,2]]],[3,[[4,0]]],[0,[[4,3]]],[2,[[4,1]]],[0,[[4,7]]],[2,[[2,3]]],[3,[[2,3]]],[3,[[2,2]]],[3,[[2,1]]],[3,[[2,0]]],[7,[[2,1]]],[2,[[3,1]]],[3,[[3,0]]],[3,[[3,1]]],[3,[[3,3]]],[3,[[3,2]]],[7,[[3,0]]],[2,[[2,2]]],[3,[[2,2]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,1]]],[7,[[2,7]]],[2,[[3,0]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,3]]],[3,[[3,3]]],[7,[[3,4]]],[1,[]],[0,[]],[2,[]],[0,[]],[3,[]],[3,[]],[0,[]],[4,[]],[1,[[4,3]]],[0,[[4,3]]],[1,[[4,2]]],[2,[[4,1]]],[3,[[4,0]]],[6,[[4,1]]],[0,[[1,2]]],[1,[[1,2]]],[3,[[1,0]]],[0,[[1,3]]],[2,[[1,1]]],[0,[[1,7]]],[2,[[2,3]]],[3,[[2,3]]],[3,[[2,2]]],[3,[[2,1]]],[3,[[2,0]]],[7,[[2,1]]],[2,[[3,1]]],[3,[[3,0]]],[3,[[3,1]]],[3,[[3,3]]],[3,[[3,2]]],[7,[[3,0]]],[2,[[2,2]]],[3,[[2,2]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,1]]],[7,[[2,7]]],[2,[[3,0]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,3]]],[3,[[3,3]]],[7,[[3,4]]],[1,[]],[0,[]],[2,[]],[0,[]],[3,[]],[3,[]],[0,[]],[4,[]],[2,[[4,0]]],[3,[[4,0]]],[0,[[4,3]]],[0,[[4,3]]],[0,[[4,3]]],[3,[[4,4]]],[2,[[2,1]]],[3,[[2,0]]],[3,[[2,1]]],[3,[[2,3]]],[3,[[2,2]]],[7,[[2,0]]],[2,[[3,3]]],[3,[[3,3]]],[3,[[3,2]]],[3,[[3,1]]],[3,[[3,0]]],[7,[[3,1]]],[2,[[2,0]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,3]]],[3,[[2,3]]],[7,[[2,4]]],[2,[[3,2]]],[3,[[3,2]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,1]]],[7,[[3,7]]],[0,[]],[0,[]],[0,[]],[1,[]],[3,[]],[0,[]],[0,[]],[0,[]],[3,[[4,1]]],[3,[[4,0]]],[2,[[4,1]]],[0,[[4,3]]],[1,[[4,2]]],[7,[[4,0]]],[1,[[1,3]]],[0,[[1,3]]],[1,[[1,2]]],[2,[[1,1]]],[3,[[1,0]]],[6,[[1,1]]],[2,[[0,0]]],[3,[[0,0]]],[3,[[0,3]]],[3,[[0,3]]],[3,[[0,3]]],[7,[[0,4]]],[1,[]],[0,[]],[1,[]],[2,[]],[3,[]],[6,[]],[0,[[2,2]]],[1,[[2,2]]],[3,[[2,0]]],[0,[[2,3]]],[2,[[2,1]]],[0,[[2,7]]],[2,[[3,0]]],[3,[[3,0]]],[0,[[3,3]]],[0,[[3,3]]],[0,[[3,3]]],[3,[[3,4]]],[1,[[2,3]]],[0,[[2,3]]],[1,[[2,2]]],[2,[[2,1]]],[3,[[2,0]]],[6,[[2,1]]],[3,[[3,1]]],[3,[[3,0]]],[2,[[3,1]]],[0,[[3,3]]],[1,[[3,2]]],[7,[[3,0]]],[0,[]],[0,[]],[3,[]],[2,[]],[1,[]],[0,[]],[1,[]],[2,[]],[2,[[4,3]]],[3,[[4,3]]],[3,[[4,2]]],[3,[[4,1]]],[3,[[4,0]]],[7,[[4,1]]],[2,[[2,0]]],[3,[[2,0]]],[0,[[2,3]]],[0,[[2,3]]],[0,[[2,3]]],[3,[[2,4]]],[0,[[3,2]]],[1,[[3,2]]],[3,[[3,0]]],[0,[[3,3]]],[2,[[3,1]]],[0,[[3,7]]],[3,[[2,1]]],[3,[[2,0]]],[2,[[2,1]]],[0,[[2,3]]],[1,[[2,2]]],[7,[[2,0]]],[1,[[3,3]]],[0,[[3,3]]],[1,[[3,2]]],[2,[[3,1]]],[3,[[3,0]]],[6,[[3,1]]],[1,[]],[0,[]],[0,[]],[2,[]],[1,[]],[2,[]],[2,[]],[5,[]],[2,[[4,2]]],[3,[[4,2]]],[3,[[4,0]]],[3,[[4,3]]],[3,[[4,1]]],[7,[[4,7]]],[3,[]],[3,[]],[2,[]],[0,[]],[1,[]],[7,[]],[0,[[1,2]]],[1,[[1,2]]],[3,[[1,0]]],[0,[[1,3]]],[2,[[1,1]]],[0,[[1,7]]],[1,[[2,3]]],[0,[[2,3]]],[1,[[2,2]]],[2,[[2,1]]],[3,[[2,0]]],[6,[[2,1]]],[3,[[3,1]]],[3,[[3,0]]],[2,[[3,1]]],[0,[[3,3]]],[1,[[3,2]]],[7,[[3,0]]],[0,[[2,2]]],[1,[[2,2]]],[3,[[2,0]]],[0,[[2,3]]],[2,[[2,1]]],[0,[[2,7]]],[2,[[3,0]]],[3,[[3,0]]],[0,[[3,3]]],[0,[[3,3]]],[0,[[3,3]]],[3,[[3,4]]],[1,[]],[0,[]],[2,[]],[0,[]],[3,[]],[3,[]],[0,[]],[4,[]],[2,[[4,2]]],[3,[[4,2]]],[3,[[4,0]]],[3,[[4,3]]],[3,[[4,1]]],[7,[[4,7]]],[3,[[2,1]]],[3,[[2,0]]],[2,[[2,1]]],[0,[[2,3]]],[1,[[2,2]]],[7,[[2,0]]],[1,[[3,3]]],[0,[[3,3]]],[1,[[3,2]]],[2,[[3,1]]],[3,[[3,0]]],[6,[[3,1]]],[2,[[2,0]]],[3,[[2,0]]],[0,[[2,3]]],[0,[[2,3]]],[0,[[2,3]]],[3,[[2,4]]],[0,[[3,2]]],[1,[[3,2]]],[3,[[3,0]]],[0,[[3,3]]],[2,[[3,1]]],[0,[[3,7]]],[0,[]],[0,[]],[0,[]],[1,[]],[3,[]],[0,[]],[0,[]],[0,[]],[2,[[4,3]]],[3,[[4,3]]],[3,[[4,2]]],[3,[[4,1]]],[3,[[4,0]]],[7,[[4,1]]],[2,[]],[3,[]],[0,[]],[0,[]],[0,[]],[3,[]],[1,[[1,3]]],[0,[[1,3]]],[1,[[1,2]]],[2,[[1,1]]],[3,[[1,0]]],[6,[[1,1]]],[2,[[0,0]]],[3,[[0,0]]],[0,[[0,3]]],[0,[[0,3]]],[0,[[0,3]]],[3,[[0,4]]],[0,[[2,2]]],[1,[[2,2]]],[3,[[2,0]]],[0,[[2,3]]],[2,[[2,1]]],[0,[[2,7]]],[3,[[3,1]]],[3,[[3,0]]],[2,[[3,1]]],[0,[[3,3]]],[1,[[3,2]]],[7,[[3,0]]],[1,[[2,3]]],[0,[[2,3]]],[1,[[2,2]]],[2,[[2,1]]],[3,[[2,0]]],[6,[[2,1]]],[2,[[3,0]]],[3,[[3,0]]],[0,[[3,3]]],[0,[[3,3]]],[0,[[3,3]]],[3,[[3,4]]],[0,[]],[2,[]],[1,[]],[1,[]],[0,[]],[0,[]],[3,[]],[7,[]],[2,[[4,0]]],[3,[[4,0]]],[3,[[4,3]]],[3,[[4,3]]],[3,[[4,3]]],[7,[[4,4]]],[3,[[2,1]]],[3,[[2,0]]],[2,[[2,1]]],[0,[[2,3]]],[1,[[2,2]]],[7,[[2,0]]],[0,[[3,2]]],[1,[[3,2]]],[3,[[3,0]]],[0,[[3,3]]],[2,[[3,1]]],[0,[[3,7]]],[2,[[2,0]]],[3,[[2,0]]],[0,[[2,3]]],[0,[[2,3]]],[0,[[2,3]]],[3,[[2,4]]],[1,[[3,3]]],[0,[[3,3]]],[1,[[3,2]]],[2,[[3,1]]],[3,[[3,0]]],[6,[[3,1]]],[0,[]],[3,[]],[0,[]],[0,[]],[0,[]],[3,[]],[2,[]],[5,[]],[2,[[4,1]]],[3,[[4,0]]],[3,[[4,1]]],[3,[[4,3]]],[3,[[4,2]]],[7,[[4,0]]],[0,[]],[1,[]],[3,[]],[0,[]],[2,[]],[0,[]],[3,[[1,1]]],[3,[[1,0]]],[2,[[1,1]]],[0,[[1,3]]],[1,[[1,2]]],[7,[[1,0]]],[1,[[2,3]]],[0,[[2,3]]],[1,[[2,2]]],[2,[[2,1]]],[3,[[2,0]]],[6,[[2,1]]],[2,[[3,0]]],[3,[[3,0]]],[0,[[3,3]]],[0,[[3,3]]],[0,[[3,3]]],[3,[[3,4]]],[0,[[2,2]]],[1,[[2,2]]],[3,[[2,0]]],[0,[[2,3]]],[2,[[2,1]]],[0,[[2,7]]],[3,[[3,1]]],[3,[[3,0]]],[2,[[3,1]]],[0,[[3,3]]],[1,[[3,2]]],[7,[[3,0]]],[0,[]],[0,[]],[2,[]],[1,[]],[1,[]],[0,[]],[2,[]],[5,[]],[2,[[4,1]]],[3,[[4,0]]],[3,[[4,1]]],[3,[[4,3]]],[3,[[4,2]]],[7,[[4,0]]],[2,[[2,0]]],[3,[[2,0]]],[0,[[2,3]]],[0,[[2,3]]],[0,[[2,3]]],[3,[[2,4]]],[1,[[3,3]]],[0,[[3,3]]],[1,[[3,2]]],[2,[[3,1]]],[3,[[3,0]]],[6,[[3,1]]],[3,[[2,1]]],[3,[[2,0]]],[2,[[2,1]]],[0,[[2,3]]],[1,[[2,2]]],[7,[[2,0]]],[0,[[3,2]]],[1,[[3,2]]],[3,[[3,0]]],[0,[[3,3]]],[2,[[3,1]]],[0,[[3,7]]],[2,[]],[1,[]],[0,[]],[0,[]],[1,[]],[1,[]],[3,[]],[6,[]],[2,[[4,0]]],[3,[[4,0]]],[3,[[4,3]]],[3,[[4,3]]],[3,[[4,3]]],[7,[[4,4]]],[1,[]],[0,[]],[1,[]],[2,[]],[3,[]],[6,[]],[2,[[1,0]]],[3,[[1,0]]],[0,[[1,3]]],[0,[[1,3]]],[0,[[1,3]]],[3,[[1,4]]],[3,[[0,1]]],[3,[[0,0]]],[2,[[0,1]]],[0,[[0,3]]],[1,[[0,2]]],[7,[[0,0]]],[0,[]],[1,[]],[3,[]],[0,[]],[2,[]],[0,[]],[0,[[3,2]]],[1,[[3,2]]],[3,[[3,0]]],[0,[[3,3]]],[2,[[3,1]]],[0,[[3,7]]],[2,[[4,0]]],[3,[[4,0]]],[0,[[4,3]]],[0,[[4,3]]],[0,[[4,3]]],[3,[[4,4]]],[1,[[3,3]]],[0,[[3,3]]],[1,[[3,2]]],[2,[[3,1]]],[3,[[3,0]]],[6,[[3,1]]],[3,[[4,1]]],[3,[[4,0]]],[2,[[4,1]]],[0,[[4,3]]],[1,[[4,2]]],[7,[[4,0]]],[2,[[1,2]]],[3,[[1,2]]],[3,[[1,0]]],[3,[[1,3]]],[3,[[1,1]]],[7,[[1,7]]],[2,[[3,0]]],[3,[[3,0]]],[0,[[3,3]]],[0,[[3,3]]],[0,[[3,3]]],[3,[[3,4]]],[0,[[4,2]]],[1,[[4,2]]],[3,[[4,0]]],[0,[[4,3]]],[2,[[4,1]]],[0,[[4,7]]],[3,[[3,1]]],[3,[[3,0]]],[2,[[3,1]]],[0,[[3,3]]],[1,[[3,2]]],[7,[[3,0]]],[1,[[4,3]]],[0,[[4,3]]],[1,[[4,2]]],[2,[[4,1]]],[3,[[4,0]]],[6,[[4,1]]],[2,[[1,3]]],[3,[[1,3]]],[3,[[1,2]]],[3,[[1,1]]],[3,[[1,0]]],[7,[[1,1]]],[2,[[0,0]]],[3,[[0,0]]],[3,[[0,3]]],[3,[[0,3]]],[3,[[0,3]]],[7,[[0,4]]],[3,[[3,1]]],[3,[[3,0]]],[2,[[3,1]]],[0,[[3,3]]],[1,[[3,2]]],[7,[[3,0]]],[1,[[4,3]]],[0,[[4,3]]],[1,[[4,2]]],[2,[[4,1]]],[3,[[4,0]]],[6,[[4,1]]],[2,[[3,0]]],[3,[[3,0]]],[0,[[3,3]]],[0,[[3,3]]],[0,[[3,3]]],[3,[[3,4]]],[0,[[4,2]]],[1,[[4,2]]],[3,[[4,0]]],[0,[[4,3]]],[2,[[4,1]]],[0,[[4,7]]],[2,[[1,1]]],[3,[[1,0]]],[3,[[1,1]]],[3,[[1,3]]],[3,[[1,2]]],[7,[[1,0]]],[1,[[3,3]]],[0,[[3,3]]],[1,[[3,2]]],[2,[[3,1]]],[3,[[3,0]]],[6,[[3,1]]],[3,[[4,1]]],[3,[[4,0]]],[2,[[4,1]]],[0,[[4,3]]],[1,[[4,2]]],[7,[[4,0]]],[0,[[3,2]]],[1,[[3,2]]],[3,[[3,0]]],[0,[[3,3]]],[2,[[3,1]]],[0,[[3,7]]],[2,[[4,0]]],[3,[[4,0]]],[0,[[4,3]]],[0,[[4,3]]],[0,[[4,3]]],[3,[[4,4]]],[2,[[1,0]]],[3,[[1,0]]],[3,[[1,3]]],[3,[[1,3]]],[3,[[1,3]]],[7,[[1,4]]],[2,[[0,1]]],[3,[[0,0]]],[3,[[0,1]]],[3,[[0,3]]],[3,[[0,2]]],[7,[[0,0]]],[0,[]],[1,[]],[3,[]],[0,[]],[2,[]],[0,[]],[2,[[2,3]]],[3,[[2,3]]],[3,[[2,2]]],[3,[[2,1]]],[3,[[2,0]]],[7,[[2,1]]],[2,[[3,1]]],[3,[[3,0]]],[3,[[3,1]]],[3,[[3,3]]],[3,[[3,2]]],[7,[[3,0]]],[2,[[2,2]]],[3,[[2,2]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,1]]],[7,[[2,7]]],[2,[[3,0]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,3]]],[3,[[3,3]]],[7,[[3,4]]],[1,[]],[0,[]],[2,[]],[0,[]],[3,[]],[3,[]],[0,[]],[4,[]],[3,[[4,1]]],[3,[[4,0]]],[2,[[4,1]]],[0,[[4,3]]],[1,[[4,2]]],[7,[[4,0]]],[2,[[2,1]]],[3,[[2,0]]],[3,[[2,1]]],[3,[[2,3]]],[3,[[2,2]]],[7,[[2,0]]],[2,[[3,3]]],[3,[[3,3]]],[3,[[3,2]]],[3,[[3,1]]],[3,[[3,0]]],[7,[[3,1]]],[2,[[2,0]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,3]]],[3,[[2,3]]],[7,[[2,4]]],[2,[[3,2]]],[3,[[3,2]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,1]]],[7,[[3,7]]],[0,[]],[0,[]],[0,[]],[1,[]],[3,[]],[0,[]],[0,[]],[0,[]],[2,[[4,0]]],[3,[[4,0]]],[0,[[4,3]]],[0,[[4,3]]],[0,[[4,3]]],[3,[[4,4]]],[2,[[1,0]]],[3,[[1,0]]],[0,[[1,3]]],[0,[[1,3]]],[0,[[1,3]]],[3,[[1,4]]],[2,[[2,0]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,3]]],[3,[[2,3]]],[7,[[2,4]]],[2,[[3,2]]],[3,[[3,2]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,1]]],[7,[[3,7]]],[2,[[2,1]]],[3,[[2,0]]],[3,[[2,1]]],[3,[[2,3]]],[3,[[2,2]]],[7,[[2,0]]],[2,[[3,3]]],[3,[[3,3]]],[3,[[3,2]]],[3,[[3,1]]],[3,[[3,0]]],[7,[[3,1]]],[1,[]],[0,[]],[0,[]],[2,[]],[1,[]],[2,[]],[2,[]],[5,[]],[0,[[4,2]]],[1,[[4,2]]],[3,[[4,0]]],[0,[[4,3]]],[2,[[4,1]]],[0,[[4,7]]],[2,[[2,2]]],[3,[[2,2]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,1]]],[7,[[2,7]]],[2,[[3,0]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,3]]],[3,[[3,3]]],[7,[[3,4]]],[2,[[2,3]]],[3,[[2,3]]],[3,[[2,2]]],[3,[[2,1]]],[3,[[2,0]]],[7,[[2,1]]],[2,[[3,1]]],[3,[[3,0]]],[3,[[3,1]]],[3,[[3,3]]],[3,[[3,2]]],[7,[[3,0]]],[0,[]],[0,[]],[3,[]],[2,[]],[1,[]],[0,[]],[1,[]],[2,[]],[1,[[4,3]]],[0,[[4,3]]],[1,[[4,2]]],[2,[[4,1]]],[3,[[4,0]]],[6,[[4,1]]],[3,[[1,1]]],[3,[[1,0]]],[2,[[1,1]]],[0,[[1,3]]],[1,[[1,2]]],[7,[[1,0]]],[2,[[0,2]]],[3,[[0,2]]],[3,[[0,0]]],[3,[[0,3]]],[3,[[0,1]]],[7,[[0,7]]],[2,[[2,0]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,3]]],[3,[[2,3]]],[7,[[2,4]]],[2,[[3,2]]],[3,[[3,2]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,1]]],[7,[[3,7]]],[2,[[2,1]]],[3,[[2,0]]],[3,[[2,1]]],[3,[[2,3]]],[3,[[2,2]]],[7,[[2,0]]],[2,[[3,3]]],[3,[[3,3]]],[3,[[3,2]]],[3,[[3,1]]],[3,[[3,0]]],[7,[[3,1]]],[1,[]],[0,[]],[0,[]],[2,[]],[1,[]],[2,[]],[2,[]],[5,[]],[0,[[4,2]]],[1,[[4,2]]],[3,[[4,0]]],[0,[[4,3]]],[2,[[4,1]]],[0,[[4,7]]],[2,[[2,2]]],[3,[[2,2]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,1]]],[7,[[2,7]]],[2,[[3,0]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,3]]],[3,[[3,3]]],[7,[[3,4]]],[2,[[2,3]]],[3,[[2,3]]],[3,[[2,2]]],[3,[[2,1]]],[3,[[2,0]]],[7,[[2,1]]],[2,[[3,1]]],[3,[[3,0]]],[3,[[3,1]]],[3,[[3,3]]],[3,[[3,2]]],[7,[[3,0]]],[0,[]],[0,[]],[3,[]],[2,[]],[1,[]],[0,[]],[1,[]],[2,[]],[1,[[4,3]]],[0,[[4,3]]],[1,[[4,2]]],[2,[[4,1]]],[3,[[4,0]]],[6,[[4,1]]],[0,[[1,2]]],[1,[[1,2]]],[3,[[1,0]]],[0,[[1,3]]],[2,[[1,1]]],[0,[[1,7]]],[2,[[2,3]]],[3,[[2,3]]],[3,[[2,2]]],[3,[[2,1]]],[3,[[2,0]]],[7,[[2,1]]],[2,[[3,1]]],[3,[[3,0]]],[3,[[3,1]]],[3,[[3,3]]],[3,[[3,2]]],[7,[[3,0]]],[2,[[2,2]]],[3,[[2,2]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,1]]],[7,[[2,7]]],[2,[[3,0]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,3]]],[3,[[3,3]]],[7,[[3,4]]],[1,[]],[0,[]],[2,[]],[0,[]],[3,[]],[3,[]],[0,[]],[4,[]],[3,[[4,1]]],[3,[[4,0]]],[2,[[4,1]]],[0,[[4,3]]],[1,[[4,2]]],[7,[[4,0]]],[2,[[2,1]]],[3,[[2,0]]],[3,[[2,1]]],[3,[[2,3]]],[3,[[2,2]]],[7,[[2,0]]],[2,[[3,3]]],[3,[[3,3]]],[3,[[3,2]]],[3,[[3,1]]],[3,[[3,0]]],[7,[[3,1]]],[2,[[2,0]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,3]]],[3,[[2,3]]],[7,[[2,4]]],[2,[[3,2]]],[3,[[3,2]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,1]]],[7,[[3,7]]],[0,[]],[0,[]],[0,[]],[1,[]],[3,[]],[0,[]],[0,[]],[0,[]],[2,[[4,0]]],[3,[[4,0]]],[0,[[4,3]]],[0,[[4,3]]],[0,[[4,3]]],[3,[[4,4]]],[1,[[1,3]]],[0,[[1,3]]],[1,[[1,2]]],[2,[[1,1]]],[3,[[1,0]]],[6,[[1,1]]],[2,[[0,3]]],[3,[[0,3]]],[3,[[0,2]]],[3,[[0,1]]],[3,[[0,0]]],[7,[[0,1]]],[2,[]],[3,[]],[0,[]],[0,[]],[0,[]],[3,[]],[3,[[3,1]]],[3,[[3,0]]],[2,[[3,1]]],[0,[[3,3]]],[1,[[3,2]]],[7,[[3,0]]],[0,[[4,2]]],[1,[[4,2]]],[3,[[4,0]]],[0,[[4,3]]],[2,[[4,1]]],[0,[[4,7]]],[2,[[3,0]]],[3,[[3,0]]],[0,[[3,3]]],[0,[[3,3]]],[0,[[3,3]]],[3,[[3,4]]],[1,[[4,3]]],[0,[[4,3]]],[1,[[4,2]]],[2,[[4,1]]],[3,[[4,0]]],[6,[[4,1]]],[2,[[1,1]]],[3,[[1,0]]],[3,[[1,1]]],[3,[[1,3]]],[3,[[1,2]]],[7,[[1,0]]],[0,[[3,2]]],[1,[[3,2]]],[3,[[3,0]]],[0,[[3,3]]],[2,[[3,1]]],[0,[[3,7]]],[3,[[4,1]]],[3,[[4,0]]],[2,[[4,1]]],[0,[[4,3]]],[1,[[4,2]]],[7,[[4,0]]],[1,[[3,3]]],[0,[[3,3]]],[1,[[3,2]]],[2,[[3,1]]],[3,[[3,0]]],[6,[[3,1]]],[2,[[4,0]]],[3,[[4,0]]],[0,[[4,3]]],[0,[[4,3]]],[0,[[4,3]]],[3,[[4,4]]],[2,[[1,0]]],[3,[[1,0]]],[3,[[1,3]]],[3,[[1,3]]],[3,[[1,3]]],[7,[[1,4]]],[2,[[0,1]]],[3,[[0,0]]],[3,[[0,1]]],[3,[[0,3]]],[3,[[0,2]]],[7,[[0,0]]],[2,[[3,0]]],[3,[[3,0]]],[0,[[3,3]]],[0,[[3,3]]],[0,[[3,3]]],[3,[[3,4]]],[0,[[4,2]]],[1,[[4,2]]],[3,[[4,0]]],[0,[[4,3]]],[2,[[4,1]]],[0,[[4,7]]],[3,[[3,1]]],[3,[[3,0]]],[2,[[3,1]]],[0,[[3,3]]],[1,[[3,2]]],[7,[[3,0]]],[1,[[4,3]]],[0,[[4,3]]],[1,[[4,2]]],[2,[[4,1]]],[3,[[4,0]]],[6,[[4,1]]],[2,[[1,2]]],[3,[[1,2]]],[3,[[1,0]]],[3,[[1,3]]],[3,[[1,1]]],[7,[[1,7]]],[0,[[3,2]]],[1,[[3,2]]],[3,[[3,0]]],[0,[[3,3]]],[2,[[3,1]]],[0,[[3,7]]],[2,[[4,0]]],[3,[[4,0]]],[0,[[4,3]]],[0,[[4,3]]],[0,[[4,3]]],[3,[[4,4]]],[1,[[3,3]]],[0,[[3,3]]],[1,[[3,2]]],[2,[[3,1]]],[3,[[3,0]]],[6,[[3,1]]],[3,[[4,1]]],[3,[[4,0]]],[2,[[4,1]]],[0,[[4,3]]],[1,[[4,2]]],[7,[[4,0]]],[2,[[1,3]]],[3,[[1,3]]],[3,[[1,2]]],[3,[[1,1]]],[3,[[1,0]]],[7,[[1,1]]],[2,[[0,0]]],[3,[[0,0]]],[3,[[0,3]]],[3,[[0,3]]],[3,[[0,3]]],[7,[[0,4]]],[1,[]],[0,[]],[1,[]],[2,[]],[3,[]],[6,[]],[2,[[2,2]]],[3,[[2,2]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,1]]],[7,[[2,7]]],[2,[[3,0]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,3]]],[3,[[3,3]]],[7,[[3,4]]],[2,[[2,3]]],[3,[[2,3]]],[3,[[2,2]]],[3,[[2,1]]],[3,[[2,0]]],[7,[[2,1]]],[2,[[3,1]]],[3,[[3,0]]],[3,[[3,1]]],[3,[[3,3]]],[3,[[3,2]]],[7,[[3,0]]],[0,[]],[0,[]],[3,[]],[2,[]],[1,[]],[0,[]],[1,[]],[2,[]],[1,[[4,3]]],[0,[[4,3]]],[1,[[4,2]]],[2,[[4,1]]],[3,[[4,0]]],[6,[[4,1]]],[2,[[2,0]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,3]]],[3,[[2,3]]],[7,[[2,4]]],[2,[[3,2]]],[3,[[3,2]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,1]]],[7,[[3,7]]],[2,[[2,1]]],[3,[[2,0]]],[3,[[2,1]]],[3,[[2,3]]],[3,[[2,2]]],[7,[[2,0]]],[2,[[3,3]]],[3,[[3,3]]],[3,[[3,2]]],[3,[[3,1]]],[3,[[3,0]]],[7,[[3,1]]],[1,[]],[0,[]],[0,[]],[2,[]],[1,[]],[2,[]],[2,[]],[5,[]],[0,[[4,2]]],[1,[[4,2]]],[3,[[4,0]]],[0,[[4,3]]],[2,[[4,1]]],[0,[[4,7]]],[0,[[1,2]]],[1,[[1,2]]],[3,[[1,0]]],[0,[[1,3]]],[2,[[1,1]]],[0,[[1,7]]],[2,[[2,3]]],[3,[[2,3]]],[3,[[2,2]]],[3,[[2,1]]],[3,[[2,0]]],[7,[[2,1]]],[2,[[3,1]]],[3,[[3,0]]],[3,[[3,1]]],[3,[[3,3]]],[3,[[3,2]]],[7,[[3,0]]],[2,[[2,2]]],[3,[[2,2]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,1]]],[7,[[2,7]]],[2,[[3,0]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,3]]],[3,[[3,3]]],[7,[[3,4]]],[1,[]],[0,[]],[2,[]],[0,[]],[3,[]],[3,[]],[0,[]],[4,[]],[0,[[4,2]]],[1,[[4,2]]],[3,[[4,0]]],[0,[[4,3]]],[2,[[4,1]]],[0,[[4,7]]],[2,[[2,1]]],[3,[[2,0]]],[3,[[2,1]]],[3,[[2,3]]],[3,[[2,2]]],[7,[[2,0]]],[2,[[3,3]]],[3,[[3,3]]],[3,[[3,2]]],[3,[[3,1]]],[3,[[3,0]]],[7,[[3,1]]],[2,[[2,0]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,3]]],[3,[[2,3]]],[7,[[2,4]]],[2,[[3,2]]],[3,[[3,2]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,1]]],[7,[[3,7]]],[0,[]],[0,[]],[0,[]],[1,[]],[3,[]],[0,[]],[0,[]],[0,[]],[1,[[4,3]]],[0,[[4,3]]],[1,[[4,2]]],[2,[[4,1]]],[3,[[4,0]]],[6,[[4,1]]],[1,[[1,3]]],[0,[[1,3]]],[1,[[1,2]]],[2,[[1,1]]],[3,[[1,0]]],[6,[[1,1]]],[2,[[0,3]]],[3,[[0,3]]],[3,[[0,2]]],[3,[[0,1]]],[3,[[0,0]]],[7,[[0,1]]],[2,[[2,3]]],[3,[[2,3]]],[3,[[2,2]]],[3,[[2,1]]],[3,[[2,0]]],[7,[[2,1]]],[2,[[3,0]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,3]]],[3,[[3,3]]],[7,[[3,4]]],[2,[[2,2]]],[3,[[2,2]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,1]]],[7,[[2,7]]],[2,[[3,1]]],[3,[[3,0]]],[3,[[3,1]]],[3,[[3,3]]],[3,[[3,2]]],[7,[[3,0]]],[0,[]],[0,[]],[2,[]],[1,[]],[1,[]],[0,[]],[2,[]],[5,[]],[3,[[4,1]]],[3,[[4,0]]],[2,[[4,1]]],[0,[[4,3]]],[1,[[4,2]]],[7,[[4,0]]],[2,[[2,0]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,3]]],[3,[[2,3]]],[7,[[2,4]]],[2,[[3,3]]],[3,[[3,3]]],[3,[[3,2]]],[3,[[3,1]]],[3,[[3,0]]],[7,[[3,1]]],[2,[[2,1]]],[3,[[2,0]]],[3,[[2,1]]],[3,[[2,3]]],[3,[[2,2]]],[7,[[2,0]]],[2,[[3,2]]],[3,[[3,2]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,1]]],[7,[[3,7]]],[2,[]],[1,[]],[0,[]],[0,[]],[1,[]],[1,[]],[3,[]],[6,[]],[2,[[4,0]]],[3,[[4,0]]],[0,[[4,3]]],[0,[[4,3]]],[0,[[4,3]]],[3,[[4,4]]],[2,[[1,0]]],[3,[[1,0]]],[0,[[1,3]]],[0,[[1,3]]],[0,[[1,3]]],[3,[[1,4]]],[2,[[2,2]]],[3,[[2,2]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,1]]],[7,[[2,7]]],[2,[[3,1]]],[3,[[3,0]]],[3,[[3,1]]],[3,[[3,3]]],[3,[[3,2]]],[7,[[3,0]]],[2,[[2,3]]],[3,[[2,3]]],[3,[[2,2]]],[3,[[2,1]]],[3,[[2,0]]],[7,[[2,1]]],[2,[[3,0]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,3]]],[3,[[3,3]]],[7,[[3,4]]],[0,[]],[2,[]],[1,[]],[1,[]],[0,[]],[0,[]],[3,[]],[7,[]],[2,[[4,0]]],[3,[[4,0]]],[0,[[4,3]]],[0,[[4,3]]],[0,[[4,3]]],[3,[[4,4]]],[2,[[2,1]]],[3,[[2,0]]],[3,[[2,1]]],[3,[[2,3]]],[3,[[2,2]]],[7,[[2,0]]],[2,[[3,2]]],[3,[[3,2]]],[3,[[3,0]]],[3,[[3,3]]],[3,[[3,1]]],[7,[[3,7]]],[2,[[2,0]]],[3,[[2,0]]],[3,[[2,3]]],[3,[[2,3]]],[3,[[2,3]]],[7,[[2,4]]],[2,[[3,3]]],[3,[[3,3]]],[3,[[3,2]]],[3,[[3,1]]],[3,[[3,0]]],[7,[[3,1]]],[0,[]],[3,[]],[0,[]],[0,[]],[0,[]],[3,[]],[2,[]],[5,[]],[3,[[4,1]]],[3,[[4,0]]],[2,[[4,1]]],[0,[[4,3]]],[1,[[4,2]]],[7,[[4,0]]],[3,[[1,1]]],[3,[[1,0]]],[2,[[1,1]]],[0,[[1,3]]],[1,[[1,2]]],[7,[[1,0]]],[2,[[0,2]]],[3,[[0,2]]],[3,[[0,0]]],[3,[[0,3]]],[3,[[0,1]]],[7,[[0,7]]],[3,[]],[3,[]],[2,[]],[0,[]],[1,[]],[7,[]],[1,[[2,3]]],[0,[[2,3]]],[1,[[2,2]]],[2,[[2,1]]],[3,[[2,0]]],[6,[[2,1]]],[3,[[3,1]]],[3,[[3,0]]],[2,[[3,1]]],[0,[[3,3]]],[1,[[3,2]]],[7,[[3,0]]],[0,[[2,2]]],[1,[[2,2]]],[3,[[2,0]]],[0,[[2,3]]],[2,[[2,1]]],[0,[[2,7]]],[2,[[3,0]]],[3,[[3,0]]],[0,[[3,3]]],[0,[[3,3]]],[0,[[3,3]]],[3,[[3,4]]],[1,[]],[0,[]],[2,[]],[0,[]],[3,[]],[3,[]],[0,[]],[4,[]],[2,[[4,2]]],[3,[[4,2]]],[3,[[4,0]]],[3,[[4,3]]],[3,[[4,1]]],[7,[[4,7]]],[3,[[2,1]]],[3,[[2,0]]],[2,[[2,1]]],[0,[[2,3]]],[1,[[2,2]]],[7,[[2,0]]],[1,[[3,3]]],[0,[[3,3]]],[1,[[3,2]]],[2,[[3,1]]],[3,[[3,0]]],[6,[[3,1]]],[2,[[2,0]]],[3,[[2,0]]],[0,[[2,3]]],[0,[[2,3]]],[0,[[2,3]]],[3,[[2,4]]],[0,[[3,2]]],[1,[[3,2]]],[3,[[3,0]]],[0,[[3,3]]],[2,[[3,1]]],[0,[[3,7]]],[0,[]],[0,[]],[0,[]],[1,[]],[3,[]],[0,[]],[0,[]],[0,[]],[2,[[4,3]]],[3,[[4,3]]],[3,[[4,2]]],[3,[[4,1]]],[3,[[4,0]]],[7,[[4,1]]],[2,[]],[3,[]],[0,[]],[0,[]],[0,[]],[3,[]],[1,[[1,3]]],[0,[[1,3]]],[1,[[1,2]]],[2,[[1,1]]],[3,[[1,0]]],[6,[[1,1]]],[0,[[2,2]]],[1,[[2,2]]],[3,[[2,0]]],[0,[[2,3]]],[2,[[2,1]]],[0,[[2,7]]],[2,[[3,0]]],[3,[[3,0]]],[0,[[3,3]]],[0,[[3,3]]],[0,[[3,3]]],[3,[[3,4]]],[1,[[2,3]]],[0,[[2,3]]],[1,[[2,2]]],[2,[[2,1]]],[3,[[2,0]]],[6,[[2,1]]],[3,[[3,1]]],[3,[[3,0]]],[2,[[3,1]]],[0,[[3,3]]],[1,[[3,2]]],[7,[[3,0]]],[0,[]],[0,[]],[3,[]],[2,[]],[1,[]],[0,[]],[1,[]],[2,[]],[2,[[4,3]]],[3,[[4,3]]],[3,[[4,2]]],[3,[[4,1]]],[3,[[4,0]]],[7,[[4,1]]],[2,[[2,0]]],[3,[[2,0]]],[0,[[2,3]]],[0,[[2,3]]],[0,[[2,3]]],[3,[[2,4]]],[0,[[3,2]]],[1,[[3,2]]],[3,[[3,0]]],[0,[[3,3]]],[2,[[3,1]]],[0,[[3,7]]],[3,[[2,1]]],[3,[[2,0]]],[2,[[2,1]]],[0,[[2,3]]],[1,[[2,2]]],[7,[[2,0]]],[1,[[3,3]]],[0,[[3,3]]],[1,[[3,2]]],[2,[[3,1]]],[3,[[3,0]]],[6,[[3,1]]],[1,[]],[0,[]],[0,[]],[2,[]],[1,[]],[2,[]],[2,[]],[5,[]],[2,[[4,2]]],[3,[[4,2]]],[3,[[4,0]]],[3,[[4,3]]],[3,[[4,1]]],[7,[[4,7]]],[3,[]],[3,[]],[2,[]],[0,[]],[1,[]],[7,[]],[0,[[1,2]]],[1,[[1,2]]],[3,[[1,0]]],[0,[[1,3]]],[2,[[1,1]]],[0,[[1,7]]],[3,[[0,1]]],[3,[[0,0]]],[2,[[0,1]]],[0,[[0,3]]],[1,[[0,2]]],[7,[[0,0]]],[1,[[2,3]]],[0,[[2,3]]],[1,[[2,2]]],[2,[[2,1]]],[3,[[2,0]]],[6,[[2,1]]],[2,[[3,0]]],[3,[[3,0]]],[0,[[3,3]]],[0,[[3,3]]],[0,[[3,3]]],[3,[[3,4]]],[0,[[2,2]]],[1,[[2,2]]],[3,[[2,0]]],[0,[[2,3]]],[2,[[2,1]]],[0,[[2,7]]],[3,[[3,1]]],[3,[[3,0]]],[2,[[3,1]]],[0,[[3,3]]],[1,[[3,2]]],[7,[[3,0]]],[0,[]],[0,[]],[2,[]],[1,[]],[1,[]],[0,[]],[2,[]],[5,[]],[2,[[4,1]]],[3,[[4,0]]],[3,[[4,1]]],[3,[[4,3]]],[3,[[4,2]]],[7,[[4,0]]],[2,[[2,0]]],[3,[[2,0]]],[0,[[2,3]]],[0,[[2,3]]],[0,[[2,3]]],[3,[[2,4]]],[1,[[3,3]]],[0,[[3,3]]],[1,[[3,2]]],[2,[[3,1]]],[3,[[3,0]]],[6,[[3,1]]],[3,[[2,1]]],[3,[[2,0]]],[2,[[2,1]]],[0,[[2,3]]],[1,[[2,2]]],[7,[[2,0]]],[0,[[3,2]]],[1,[[3,2]]],[3,[[3,0]]],[0,[[3,3]]],[2,[[3,1]]],[0,[[3,7]]],[2,[]],[1,[]],[0,[]],[0,[]],[1,[]],[1,[]],[3,[]],[6,[]],[2,[[4,0]]],[3,[[4,0]]],[3,[[4,3]]],[3,[[4,3]]],[3,[[4,3]]],[7,[[4,4]]],[1,[]],[0,[]],[1,[]],[2,[]],[3,[]],[6,[]],[2,[[1,0]]],[3,[[1,0]]],[0,[[1,3]]],[0,[[1,3]]],[0,[[1,3]]],[3,[[1,4]]],[0,[[2,2]]],[1,[[2,2]]],[3,[[2,0]]],[0,[[2,3]]],[2,[[2,1]]],[0,[[2,7]]],[3,[[3,1]]],[3,[[3,0]]],[2,[[3,1]]],[0,[[3,3]]],[1,[[3,2]]],[7,[[3,0]]],[1,[[2,3]]],[0,[[2,3]]],[1,[[2,2]]],[2,[[2,1]]],[3,[[2,0]]],[6,[[2,1]]],[2,[[3,0]]],[3,[[3,0]]],[0,[[3,3]]],[0,[[3,3]]],[0,[[3,3]]],[3,[[3,4]]],[0,[]],[2,[]],[1,[]],[1,[]],[0,[]],[0,[]],[3,[]],[7,[]],[2,[[4,0]]],[3,[[4,0]]],[3,[[4,3]]],[3,[[4,3]]],[3,[[4,3]]],[7,[[4,4]]],[3,[[2,1]]],[3,[[2,0]]],[2,[[2,1]]],[0,[[2,3]]],[1,[[2,2]]],[7,[[2,0]]],[0,[[3,2]]],[1,[[3,2]]],[3,[[3,0]]],[0,[[3,3]]],[2,[[3,1]]],[0,[[3,7]]],[2,[[2,0]]],[3,[[2,0]]],[0,[[2,3]]],[0,[[2,3]]],[0,[[2,3]]],[3,[[2,4]]],[1,[[3,3]]],[0,[[3,3]]],[1,[[3,2]]],[2,[[3,1]]],[3,[[3,0]]],[6,[[3,1]]],[0,[]],[3,[]],[0,[]],[0,[]],[0,[]],[3,[]],[2,[]],[5,[]],[2,[[4,1]]],[3,[[4,0]]],[3,[[4,1]]],[3,[[4,3]]],[3,[[4,2]]],[7,[[4,0]]],[0,[]],[1,[]],[3,[]],[0,[]],[2,[]],[0,[]],[3,[[1,1]]],[3,[[1,0]]],[2,[[1,1]]],[0,[[1,3]]],[1,[[1,2]]],[7,[[1,0]]],[2,[[0,0]]],[3,[[0,0]]],[0,[[0,3]]],[0,[[0,3]]],[0,[[0,3]]],[3,[[0,4]]],[1,[]],[0,[]],[1,[]],[2,[]],[3,[]],[6,[]],[0,[]],[0,[]],[2,[]],[1,[]],[1,[]],[0,[]],[2,[]],[5,[]],[2,[]],[3,[]],[3,[]],[3,[]],[3,[]],[7,[]],[0,[]],[2,[]],[0,[]],[2,[]],[0,[]],[2,[]],[0,[]],[2,[]],[0,[]]],"sources":[[[0,-2700,0],1,35],[[0,0,2700],2,38],[[0,2700,0],0,47],[[1,-2699,0],1,52],[[1,0,2699],2,1],[[1,2699,0],0,3],[[2,-2698,0],1,1],[[2,0,2698],2,54],[[2,2698,0],0,15],[[3,-2697,0],1,45],[[3,0,2697],2,1],[[3,2697,0],0,18],[[4,-2696,0],1,59],[[4,0,2696],2,38],[[4,2696,0],0,31],[[5,-2695,0],1,44],[[5,0,2695],2,48],[[5,2695,0],0,51],[[6,-2694,0],1,40],[[6,0,2694],2,54],[[6,2694,0],0,23],[[7,-2693,0],1,28],[[7,0,2693],2,48],[[7,2693,0],0,35],[[8,-2692,0],1,50],[[8,0,2692],2,6],[[8,2692,0],0,23],[[9,-2691,0],1,53],[[9,2691,0],0,51],[[10,-2690,0],1,32],[[10,0,2690],2,54],[[10,2690,0],0,7],[[11,-2689,0],1,5],[[11,0,2689],2,32],[[11,2689,0],0,51],[[12,-2688,0],1,9],[[12,0,2688],2,52],[[12,2688,0],0,3],[[13,-2687,0],1,5],[[13,0,2687],2,34],[[13,2687,0],0,42],[[14,-2686,0],1,27],[[14,0,2686],2,51],[[14,2686,0],0,19],[[15,-2685,0],1,24],[[15,0,2685],2,3],[[15,2685,0],0,54],[[16,-2684,0],1,57],[[16,0,2684],2,60],[[16,2684,0],0,6],[[17,-2683,0],1,37],[[17,0,2683],2,5],[[17,2683,0],0,50],[[18,-2682,0],1,27],[[18,0,2682],2,29],[[18,2682,0],0,53],[[19,0,2681],2,3],[[19,2681,0],0,56],[[20,-2680,0],1,44],[[20,0,2680],2,44],[[20,2680,0],0,41],[[21,-2679,0],1,52],[[21,0,2679],2,12],[[21,2679,0],0,16],[[22,-2678,0],1,39],[[22,2678,0],0,22],[[23,-2677,0],1,44],[[23,0,2677],2,63],[[23,2677,0],0,61],[[24,-2676,0],1,32],[[24,0,2676],2,51],[[24,2676,0],0,44],[[25,-2675,0],1,55],[[25,0,2675],2,57],[[25,2675,0],0,57],[[26,-2674,0],1,38],[[26,0,2674],2,29],[[26,2674,0],0,5],[[27,-2673,0],1,1],[[27,0,2673],2,63],[[27,2673,0],0,61],[[28,-2672,0],1,53],[[28,0,2672],2,20],[[28,2672,0],0,44],[[29,-2671,0],1,25],[[29,2671,0],0,11],[[30,-2670,0],1,42],[[30,0,2670],2,24],[[30,2670,0],0,26],[[31,-2669,0],1,63],[[31,0,2669],2,59],[[31,2669,0],0,39],[[32,-2668,0],1,54],[[32,0,2668],2,37],[[32,2668,0],0,10],[[33,-2667,0],1,20],[[33,0,2667],2,17],[[33,2667,0],0,38],[[34,-2666,0],1,53],[[34,0,2666],2,25],[[34,2666,0],0,56],[[35,-2665,0],1,1],[[35,0,2665],2,54],[[35,2665,0],0,56],[[36,-2664,0],1,62],[[36,0,2664],2,32],[[37,-2663,0],1,37],[[37,0,2663],2,49],[[37,2663,0],0,24],[[38,-2662,0],1,4],[[38,0,2662],2,8],[[38,2662,0],0,38],[[39,-2661,0],1,28],[[39,0,2661],2,15],[[39,2661,0],0,36],[[40,-2660,0],1,3],[[40,0,2660],2,34],[[40,2660,0],0,13],[[41,-2659,0],1,22],[[41,0,2659],2,40],[[42,-2658,0],1,28],[[42,0,2658],2,45],[[42,2658,0],0,53],[[43,-2657,0],1,49],[[43,0,2657],2,6],[[43,2657,0],0,44],[[44,-2656,0],1,2],[[44,2656,0],0,36],[[45,-2655,0],1,10],[[45,0,2655],2,31],[[45,2655,0],0,9],[[46,-2654,0],1,35],[[46,0,2654],2,35],[[46,2654,0],0,3],[[47,-2653,0],1,6],[[47,0,2653],2,38],[[47,2653,0],0,10],[[48,-2652,0],1,61],[[48,0,2652],2,22],[[48,2652,0],0,56],[[49,-2651,0],1,45],[[49,2651,0],0,42],[[50,-2650,0],1,5],[[50,0,2650],2,18],[[50,2650,0],0,36],[[51,-2649,0],1,1],[[51,0,2649],2,5],[[51,2649,0],0,31],[[52,-2648,0],1,5],[[52,0,2648],2,62],[[52,2648,0],0,28],[[53,-2647,0],1,8],[[53,0,2647],2,9],[[53,2647,0],0,38],[[54,-2646,0],1,29],[[54,0,2646],2,63],[[55,-2645,0],1,56],[[55,0,2645],2,21],[[55,2645,0],0,18],[[56,-2644,0],1,24],[[56,0,2644],2,39],[[56,2644,0],0,25],[[57,-2643,0],1,28],[[57,0,2643],2,60],[[57,2643,0],0,30],[[58,-2642,0],1,12],[[58,0,2642],2,55],[[58,2642,0],0,41],[[59,-2641,0],1,33],[[59,0,2641],2,21],[[59,2641,0],0,59],[[60,-2640,0],1,13],[[60,0,2640],2,48],[[60,2640,0],0,1],[[61,-2639,0],1,39],[[61,0,2639],2,50],[[61,2639,0],0,4],[[62,-2638,0],1,16],[[62,0,2638],2,6],[[62,2638,0],0,23],[[63,-2637,0],1,42],[[63,0,2637],2,11],[[63,2637,0],0,50],[[64,-2636,0],1,6],[[64,0,2636],2,2],[[64,2636,0],0,21],[[65,-2635,0],1,36],[[65,0,2635],2,44],[[65,2635,0],0,19],[[66,-2634,0],1,31],[[66,0,2634],2,3],[[66,2634,0],0,60],[[67,-2633,0],1,49],[[67,0,2633],2,52],[[67,2633,0],0,22],[[68,-2632,0],1,47],[[68,0,2632],2,6],[[68,2632,0],0,20],[[69,0,2631],2,9],[[69,2631,0],0,23],[[70,-2630,0],1,62],[[70,0,2630],2,55],[[70,2630,0],0,41],[[71,-2629,0],1,57],[[71,0,2629],2,13],[[71,2629,0],0,34],[[72,-2628,0],1,3],[[72,0,2628],2,38],[[73,-2627,0],1,21],[[73,0,2627],2,53],[[73,2627,0],0,7],[[74,-2626,0],1,6],[[74,0,2626],2,38],[[74,2626,0],0,48],[[75,-2625,0],1,48],[[75,0,2625],2,4],[[75,2625,0],0,35],[[76,-2624,0],1,28],[[76,0,2624],2,53],[[76,2624,0],0,10],[[77,-2623,0],1,13],[[77,0,2623],2,19],[[77,2623,0],0,19],[[78,-2622,0],1,16],[[78,0,2622],2,14],[[78,2622,0],0,52],[[79,-2621,0],1,39],[[79,0,2621],2,3],[[79,2621,0],0,10],[[80,-2620,0],1,12],[[80,0,2620],2,22],[[80,2620,0],0,10],[[81,-2619,0],1,14],[[81,0,2619],2,26],[[81,2619,0],0,18],[[82,-2618,0],1,10],[[82,0,2618],2,50],[[82,2618,0],0,60],[[83,-2617,0],1,41],[[83,0,2617],2,27],[[83,2617,0],0,58],[[84,-2616,0],1,40],[[84,2616,0],0,62],[[85,-2615,0],1,15],[[85,0,2615],2,54],[[85,2615,0],0,50],[[86,-2614,0],1,42],[[86,0,2614],2,36],[[86,2614,0],0,44],[[87,-2613,0],1,29],[[87,0,2613],2,59],[[87,2613,0],0,35],[[88,-2612,0],1,56],[[88,0,2612],2,6],[[88,2612,0],0,63],[[89,-2611,0],1,47],[[89,0,2611],2,11],[[89,2611,0],0,27],[[90,-2610,0],1,3],[[90,0,2610],2,23],[[90,2610,0],0,61],[[91,-2609,0],1,61],[[91,0,2609],2,2],[[91,2609,0],0,43],[[92,-2608,0],1,20],[[92,0,2608],2,37],[[92,2608,0],0,23],[[93,-2607,0],1,43],[[93,0,2607],2,26],[[93,2607,0],0,15],[[94,-2606,0],1,62],[[94,0,2606],2,49],[[94,2606,0],0,21],[[95,-2605,0],1,21],[[95,0,2605],2,38],[[95,2605,0],0,22],[[96,-2604,0],1,17],[[96,0,2604],2,22],[[96,2604,0],0,46],[[97,-2603,0],1,39],[[97,0,2603],2,3],[[97,2603,0],0,58],[[98,-2602,0],1,58],[[98,0,2602],2,7],[[98,2602,0],0,12],[[99,-2601,0],1,37],[[99,0,2601],2,18],[[99,2601,0],0,43],[[100,-2600,0],1,40],[[100,0,2600],2,37],[[100,2600,0],0,14],[[101,-2599,0],1,22],[[101,0,2599],2,58],[[101,2599,0],0,59],[[102,-2598,0],1,18],[[102,0,2598],2,4],[[102,2598,0],0,29],[[103,-2597,0],1,37],[[103,0,2597],2,34],[[103,2597,0],0,34],[[104,-2596,0],1,33],[[104,0,2596],2,7],[[104,2596,0],0,30],[[105,-2595,0],1,54],[[105,0,2595],2,27],[[105,2595,0],0,43],[[106,-2594,0],1,34],[[106,0,2594],2,39],[[106,2594,0],0,5],[[107,-2593,0],1,20],[[107,0,2593],2,34],[[107,2593,0],0,42],[[108,-2592,0],1,44],[[108,0,2592],2,17],[[108,2592,0],0,40],[[109,-2591,0],1,24],[[109,0,2591],2,9],[[109,2591,0],0,9],[[110,-2590,0],1,9],[[110,0,2590],2,24],[[110,2590,0],0,21],[[111,-2589,0],1,40],[[111,0,2589],2,41],[[111,2589,0],0,33],[[112,-2588,0],1,53],[[112,0,2588],2,52],[[112,2588,0],0,33],[[113,0,2587],2,44],[[113,2587,0],0,9],[[114,-2586,0],1,16],[[114,0,2586],2,5],[[114,2586,0],0,52],[[115,-2585,0],1,4],[[115,2585,0],0,24],[[116,-2584,0],1,33],[[116,0,2584],2,5],[[116,2584,0],0,4],[[117,-2583,0],1,21],[[117,0,2583],2,57],[[117,2583,0],0,49],[[118,-2582,0],1,32],[[118,0,2582],2,52],[[118,2582,0],0,4],[[119,-2581,0],1,52],[[119,0,2581],2,24],[[119,2581,0],0,24],[[120,-2580,0],1,48],[[120,0,2580],2,21],[[120,2580,0],0,5],[[121,-2579,0],1,52],[[121,0,2579],2,1],[[121,2579,0],0,56],[[122,-2578,0],1,40],[[122,0,2578],2,36],[[122,2578,0],0,29],[[123,-2577,0],1,4],[[123,0,2577],2,33],[[123,2577,0],0,40],[[124,-2576,0],1,45],[[124,0,2576],2,52],[[124,2576,0],0,61],[[125,-2575,0],1,32],[[125,0,2575],2,56],[[125,2575,0],0,12],[[126,-2574,0],1,28],[[126,0,2574],2,1],[[126,2574,0],0,12],[[127,-2573,0],1,36],[[127,0,2573],2,4],[[127,2573,0],0,20],[[128,-2572,0],1,32],[[128,0,2572],2,36],[[128,2572,0],0,52],[[129,-2571,0],1,37],[[129,0,2571],2,8],[[129,2571,0],0,1],[[130,-2570,0],1,9],[[130,0,2570],2,52],[[130,2570,0],0,12],[[131,-2569,0],1,36],[[131,0,2569],2,1],[[132,-2568,0],1,41],[[132,0,2568],2,52],[[132,2568,0],0,28],[[133,-2567,0],1,52],[[133,0,2567],2,49],[[133,2567,0],0,40],[[134,-2566,0],1,32],[[134,0,2566],2,36],[[134,2566,0],0,21],[[135,-2565,0],1,20],[[135,0,2565],2,49],[[135,2565,0],0,49],[[136,-2564,0],1,33],[[136,0,2564],2,5],[[136,2564,0],0,20],[[137,-2563,0],1,37],[[137,2563,0],0,32],[[138,-2562,0],1,32],[[138,0,2562],2,53],[[138,2562,0],0,4],[[139,-2561,0],1,5],[[139,0,2561],2,33],[[139,2561,0],0,33],[[140,-2560,0],1,31],[[140,0,2560],2,46],[[140,2560,0],0,43],[[141,-2559,0],1,17],[[141,0,2559],2,50],[[141,2559,0],0,26],[[142,-2558,0],1,60],[[142,0,2558],2,48],[[142,2558,0],0,56],[[143,-2557,0],1,61],[[143,0,2557],2,6],[[143,2557,0],0,54],[[144,-2556,0],1,28],[[144,0,2556],2,29],[[144,2556,0],0,21],[[145,-2555,0],1,63],[[145,0,2555],2,52],[[145,2555,0],0,19],[[146,-2554,0],1,8],[[146,0,2554],2,2],[[146,2554,0],0,11],[[147,-2553,0],1,40],[[147,0,2553],2,63],[[147,2553,0],0,9],[[148,-2552,0],1,15],[[148,0,2552],2,21],[[148,2552,0],0,31],[[149,-2551,0],1,11],[[149,0,2551],2,2],[[149,2551,0],0,41],[[150,-2550,0],1,22],[[150,0,2550],2,30],[[150,2550,0],0,57],[[151,-2549,0],1,57],[[151,0,2549],2,61],[[151,2549,0],0,18],[[152,-2548,0],1,33],[[152,0,2548],2,21],[[152,2548,0],0,9],[[153,-2547,0],1,7],[[153,0,2547],2,57],[[153,2547,0],0,48],[[154,-2546,0],1,19],[[154,0,2546],2,18],[[154,2546,0],0,26],[[155,-2545,0],1,20],[[155,0,2545],2,18],[[155,2545,0],0,26],[[156,-2544,0],1,38],[[156,0,2544],2,35],[[156,2544,0],0,47],[[157,-2543,0],1,15],[[157,0,2543],2,35],[[157,2543,0],0,62],[[158,-2542,0],1,44],[[158,0,2542],2,4],[[158,2542,0],0,29],[[159,-2541,0],1,43],[[159,0,2541],2,3],[[159,2541,0],0,17],[[160,-2540,0],1,16],[[160,0,2540],2,12],[[160,2540,0],0,62],[[161,-2539,0],1,40],[[161,0,2539],2,60],[[161,2539,0],0,21],[[162,-2538,0],1,6],[[162,0,2538],2,29],[[162,2538,0],0,6],[[163,-2537,0],1,33],[[163,0,2537],2,41],[[163,2537,0],0,48],[[164,-2536,0],1,21],[[164,0,2536],2,29],[[164,2536,0],0,18],[[165,-2535,0],1,40],[[165,0,2535],2,25],[[165,2535,0],0,44],[[166,-2534,0],1,63],[[166,0,2534],2,8],[[166,2534,0],0,46],[[167,-2533,0],1,52],[[167,0,2533],2,4],[[167,2533,0],0,9],[[168,-2532,0],1,40],[[168,0,2532],2,25],[[168,2532,0],0,22],[[169,-2531,0],1,36],[[169,0,2531],2,48],[[169,2531,0],0,12],[[170,-2530,0],1,6],[[170,0,2530],2,37],[[170,2530,0],0,7],[[171,-2529,0],1,61],[[171,0,2529],2,24],[[171,2529,0],0,9],[[172,-2528,0],1,29],[[172,0,2528],2,43],[[172,2528,0],0,40],[[173,-2527,0],1,10],[[173,0,2527],2,29],[[173,2527,0],0,18],[[174,-2526,0],1,58],[[174,0,2526],2,52],[[174,2526,0],0,29],[[175,-2525,0],1,50],[[175,0,2525],2,46],[[175,2525,0],0,48],[[176,-2524,0],1,47],[[176,0,2524],2,13],[[176,2524,0],0,27],[[177,-2523,0],1,56],[[177,0,2523],2,6],[[177,2523,0],0,10],[[178,-2522,0],1,12],[[178,0,2522],2,5],[[178,2522,0],0,56],[[179,-2521,0],1,17],[[179,0,2521],2,61],[[179,2521,0],0,7],[[180,-2520,0],1,10],[[180,0,2520],2,52],[[180,2520,0],0,54],[[181,-2519,0],1,61],[[181,0,2519],2,9],[[181,2519,0],0,25],[[182,-2518,0],1,49],[[182,0,2518],2,48],[[182,2518,0],0,43],[[183,-2517,0],1,49],[[183,0,2517],2,57],[[183,2517,0],0,17],[[184,-2516,0],1,2],[[184,0,2516],2,24],[[184,2516,0],0,26],[[185,-2515,0],1,20],[[185,0,2515],2,5],[[185,2515,0],0,40],[[186,-2514,0],1,57],[[186,0,2514],2,36],[[186,2514,0],0,3],[[187,-2513,0],1,40],[[187,0,2513],2,13],[[187,2513,0],0,25],[[188,-2512,0],1,11],[[188,0,2512],2,59],[[188,2512,0],0,18],[[189,-2511,0],1,59],[[189,0,2511],2,7],[[189,2511,0],0,31],[[190,-2510,0],1,32],[[190,0,2510],2,45],[[190,2510,0],0,12],[[191,-2509,0],1,18],[[191,0,2509],2,43],[[191,2509,0],0,61],[[192,-2508,0],1,45],[[192,0,2508],2,29],[[192,2508,0],0,46],[[193,-2507,0],1,28],[[193,0,2507],2,29],[[193,2507,0],0,53],[[194,-2506,0],1,18],[[194,0,2506],2,9],[[194,2506,0],0,46],[[195,-2505,0],1,25],[[195,0,2505],2,60],[[195,2505,0],0,61],[[196,-2504,0],1,60],[[196,0,2504],2,45],[[196,2504,0],0,54],[[197,-2503,0],1,17],[[197,0,2503],2,13],[[197,2503,0],0,24],[[198,-2502,0],1,34],[[198,0,2502],2,24],[[198,2502,0],0,35],[[199,-2501,0],1,49],[[199,0,2501],2,57],[[199,2501,0],0,16],[[200,-2500,0],1,24],[[200,0,2500],2,56],[[200,2500,0],0,10],[[201,-2499,0],1,36],[[201,0,2499],2,37],[[201,2499,0],0,57],[[202,-2498,0],1,26],[[202,0,2498],2,29],[[202,2498,0],0,58],[[203,-2497,0],1,57],[[203,0,2497],2,60],[[203,2497,0],0,8],[[204,-2496,0],1,60],[[204,0,2496],2,34],[[204,2496,0],0,25],[[205,-2495,0],1,12],[[205,0,2495],2,27],[[205,2495,0],0,9],[[206,-2494,0],1,45],[[206,0,2494],2,34],[[206,2494,0],0,9],[[207,-2493,0],1,18],[[207,0,2493],2,36],[[208,-2492,0],1,44],[[208,0,2492],2,18],[[208,2492,0],0,56],[[209,-2491,0],1,15],[[209,0,2491],2,9],[[209,2491,0],0,55],[[210,-2490,0],1,6],[[210,0,2490],2,17],[[210,2490,0],0,22],[[211,0,2489],2,34],[[211,2489,0],0,21],[[212,-2488,0],1,25],[[212,0,2488],2,54],[[212,2488,0],0,56],[[213,-2487,0],1,50],[[213,0,2487],2,18],[[213,2487,0],0,13],[[214,-2486,0],1,46],[[214,0,2486],2,45],[[214,2486,0],0,24],[[215,-2485,0],1,16],[[215,0,2485],2,5],[[215,2485,0],0,40],[[216,-2484,0],1,40],[[216,0,2484],2,14],[[216,2484,0],0,9],[[217,-2483,0],1,51],[[217,0,2483],2,48],[[217,2483,0],0,7],[[218,-2482,0],1,23],[[218,0,2482],2,32],[[218,2482,0],0,3],[[219,-2481,0],1,57],[[219,0,2481],2,27],[[219,2481,0],0,24],[[220,-2480,0],1,46],[[220,0,2480],2,31],[[220,2480,0],0,7],[[221,-2479,0],1,56],[[221,0,2479],2,13],[[221,2479,0],0,27],[[222,-2478,0],1,29],[[222,0,2478],2,43],[[222,2478,0],0,58],[[223,-2477,0],1,41],[[223,0,2477],2,25],[[223,2477,0],0,7],[[224,-2476,0],1,63],[[224,0,2476],2,11],[[224,2476,0],0,58],[[225,0,2475],2,44],[[225,2475,0],0,27],[[226,-2474,0],1,61],[[226,0,2474],2,3],[[226,2474,0],0,51],[[227,-2473,0],1,32],[[227,0,2473],2,1],[[227,2473,0],0,22],[[228,-2472,0],1,18],[[228,0,2472],2,55],[[228,2472,0],0,54],[[229,-2471,0],1,44],[[229,0,2471],2,4],[[229,2471,0],0,54],[[230,-2470,0],1,52],[[230,0,2470],2,3],[[230,2470,0],0,22],[[231,-2469,0],1,13],[[231,0,2469],2,45],[[231,2469,0],0,11],[[232,-2468,0],1,27],[[232,0,2468],2,50],[[232,2468,0],0,14],[[233,-2467,0],1,28],[[233,0,2467],2,16],[[233,2467,0],0,46],[[234,-2466,0],1,53],[[234,0,2466],2,55],[[234,2466,0],0,63],[[235,-2465,0],1,20],[[235,0,2465],2,33],[[235,2465,0],0,27],[[236,-2464,0],1,35],[[236,0,2464],2,35],[[236,2464,0],0,3],[[237,-2463,0],1,49],[[237,0,2463],2,37],[[237,2463,0],0,34],[[238,-2462,0],1,9],[[238,0,2462],2,35],[[238,2462,0],0,30],[[239,-2461,0],1,41],[[239,0,2461],2,20],[[239,2461,0],0,30],[[240,-2460,0],1,11],[[240,0,2460],2,39],[[240,2460,0],0,15],[[241,-2459,0],1,16],[[241,0,2459],2,37],[[241,2459,0],0,22],[[242,-2458,0],1,32],[[242,0,2458],2,62],[[242,2458,0],0,19],[[243,-2457,0],1,41],[[243,0,2457],2,20],[[243,2457,0],0,3],[[244,-2456,0],1,34],[[244,0,2456],2,22],[[244,2456,0],0,11],[[245,-2455,0],1,60],[[245,0,2455],2,9],[[245,2455,0],0,10],[[246,-2454,0],1,32],[[246,0,2454],2,43],[[246,2454,0],0,59],[[247,-2453,0],1,56],[[247,0,2453],2,16],[[247,2453,0],0,50],[[248,-2452,0],1,43],[[248,0,2452],2,3],[[248,2452,0],0,3],[[249,-2451,0],1,21],[[249,0,2451],2,5],[[249,2451,0],0,2],[[250,-2450,0],1,32],[[250,0,2450],2,30],[[250,2450,0],0,10],[[251,-2449,0],1,17],[[251,0,2449],2,5],[[251,2449,0],0,2],[[252,-2448,0],1,50],[[252,0,2448],2,55],[[252,2448,0],0,19],[[253,-2447,0],1,37],[[253,0,2447],2,9],[[253,2447,0],0,3],[[254,-2446,0],1,32],[[254,0,2446],2,43],[[254,2446,0],0,27],[[255,-2445,0],1,56],[[255,0,2445],2,17],[[255,2445,0],0,3],[[256,-2444,0],1,42],[[256,0,2444],2,18],[[256,2444,0],0,3],[[257,-2443,0],1,44],[[257,0,2443],2,45],[[257,2443,0],0,26],[[258,-2442,0],1,40],[[258,0,2442],2,63],[[258,2442,0],0,27],[[259,-2441,0],1,40],[[259,0,2441],2,21],[[259,2441,0],0,2],[[260,-2440,0],1,34],[[260,0,2440],2,38],[[260,2440,0],0,10],[[261,-2439,0],1,28],[[261,0,2439],2,49],[[261,2439,0],0,18],[[262,-2438,0],1,48],[[262,0,2438],2,26],[[262,2438,0],0,11],[[263,-2437,0],1,25],[[263,0,2437],2,16],[[263,2437,0],0,27],[[264,-2436,0],1,58],[[264,0,2436],2,18],[[264,2436,0],0,26],[[265,-2435,0],1,12],[[265,0,2435],2,29],[[265,2435,0],0,19],[[266,-2434,0],1,49],[[266,0,2434],2,6],[[266,2434,0],0,2],[[267,0,2433],2,20],[[267,2433,0],0,3],[[268,-2432,0],1,19],[[268,0,2432],2,32],[[268,2432,0],0,27],[[269,-2431,0],1,13],[[269,0,2431],2,21],[[269,2431,0],0,46],[[270,-2430,0],1,23],[[270,0,2430],2,27],[[270,2430,0],0,26],[[271,-2429,0],1,56],[[271,0,2429],2,45],[[271,2429,0],0,12],[[272,-2428,0],1,22],[[272,0,2428],2,35],[[272,2428,0],0,37],[[273,-2427,0],1,6],[[273,0,2427],2,36],[[273,2427,0],0,33],[[274,-2426,0],1,35],[[274,0,2426],2,28],[[274,2426,0],0,5],[[275,-2425,0],1,12],[[275,0,2425],2,62],[[275,2425,0],0,16],[[276,-2424,0],1,11],[[276,0,2424],2,19],[[276,2424,0],0,12],[[277,-2423,0],1,34],[[277,0,2423],2,21],[[277,2423,0],0,21],[[278,-2422,0],1,54],[[278,2422,0],0,5],[[279,-2421,0],1,20],[[279,0,2421],2,38],[[279,2421,0],0,25],[[280,-2420,0],1,50],[[280,0,2420],2,58],[[280,2420,0],0,16],[[281,-2419,0],1,35],[[281,0,2419],2,48],[[281,2419,0],0,57],[[282,-2418,0],1,50],[[282,0,2418],2,1],[[282,2418,0],0,24],[[283,0,2417],2,19],[[283,2417,0],0,9],[[284,-2416,0],1,12],[[284,0,2416],2,61],[[284,2416,0],0,9],[[285,-2415,0],1,51],[[285,0,2415],2,18],[[285,2415,0],0,32],[[286,-2414,0],1,24],[[286,0,2414],2,50],[[286,2414,0],0,6],[[287,-2413,0],1,31],[[287,0,2413],2,10],[[287,2413,0],0,27],[[288,-2412,0],1,59],[[288,0,2412],2,22],[[288,2412,0],0,16],[[289,-2411,0],1,44],[[289,0,2411],2,37],[[289,2411,0],0,27],[[290,-2410,0],1,42],[[290,0,2410],2,2],[[290,2410,0],0,16],[[291,-2409,0],1,53],[[291,0,2409],2,9],[[291,2409,0],0,35],[[292,-2408,0],1,23],[[292,0,2408],2,27],[[292,2408,0],0,28],[[293,-2407,0],1,44],[[293,0,2407],2,60],[[293,2407,0],0,27],[[294,-2406,0],1,51],[[294,0,2406],2,26],[[294,2406,0],0,56],[[295,-2405,0],1,9],[[295,0,2405],2,49],[[295,2405,0],0,2],[[296,-2404,0],1,35],[[296,0,2404],2,27],[[296,2404,0],0,8],[[297,-2403,0],1,41],[[297,0,2403],2,25],[[297,2403,0],0,18],[[298,-2402,0],1,3],[[298,0,2402],2,11],[[298,2402,0],0,32],[[299,-2401,0],1,33],[[299,0,2401],2,48],[[299,2401,0],0,18],[[300,-2400,0],1,22],[[300,0,2400],2,41],[[300,2400,0],0,1],[[301,-2399,0],1,50],[[301,0,2399],2,30],[[301,2399,0],0,28],[[302,-2398,0],1,63],[[302,0,2398],2,43],[[302,2398,0],0,47],[[303,-2397,0],1,14],[[303,0,2397],2,58],[[303,2397,0],0,26],[[304,-2396,0],1,5],[[304,0,2396],2,54],[[304,2396,0],0,17],[[305,-2395,0],1,17],[[305,2395,0],0,35],[[306,-2394,0],1,60],[[306,0,2394],2,31],[[306,2394,0],0,61],[[307,-2393,0],1,25],[[307,2393,0],0,47],[[308,-2392,0],1,9],[[308,0,2392],2,6],[[308,2392,0],0,5],[[309,-2391,0],1,32],[[309,0,2391],2,33],[[309,2391,0],0,39],[[310,-2390,0],1,5],[[310,0,2390],2,51],[[310,2390,0],0,13],[[311,-2389,0],1,52],[[311,0,2389],2,5],[[311,2389,0],0,10],[[312,-2388,0],1,24],[[312,0,2388],2,58],[[312,2388,0],0,1],[[313,-2387,0],1,41],[[313,0,2387],2,57],[[313,2387,0],0,51],[[314,-2386,0],1,17],[[314,0,2386],2,26],[[314,2386,0],0,49],[[315,-2385,0],1,40],[[315,0,2385],2,49],[[315,2385,0],0,26],[[316,-2384,0],1,16],[[316,0,2384],2,20],[[316,2384,0],0,9],[[317,-2383,0],1,6],[[317,0,2383],2,14],[[317,2383,0],0,52],[[318,-2382,0],1,32],[[318,0,2382],2,54],[[318,2382,0],0,23],[[319,-2381,0],1,11],[[319,0,2381],2,19],[[319,2381,0],0,54],[[320,-2380,0],1,38],[[320,0,2380],2,31],[[320,2380,0],0,12],[[321,-2379,0],1,24],[[321,0,2379],2,57],[[321,2379,0],0,22],[[322,-2378,0],1,18],[[322,0,2378],2,6],[[322,2378,0],0,5],[[323,2377,0],0,30],[[324,-2376,0],1,62],[[324,0,2376],2,10],[[324,2376,0],0,4],[[325,-2375,0],1,53],[[325,0,2375],2,13],[[325,2375,0],0,42],[[326,-2374,0],1,43],[[326,0,2374],2,19],[[326,2374,0],0,41],[[327,-2373,0],1,40],[[327,0,2373],2,32],[[327,2373,0],0,19],[[328,-2372,0],1,2],[[328,0,2372],2,58],[[328,2372,0],0,8],[[329,-2371,0],1,41],[[329,0,2371],2,49],[[329,2371,0],0,51],[[330,-2370,0],1,10],[[330,0,2370],2,19],[[330,2370,0],0,40],[[331,-2369,0],1,32],[[331,0,2369],2,32],[[331,2369,0],0,10],[[332,-2368,0],1,54],[[332,0,2368],2,1],[[332,2368,0],0,33],[[333,-2367,0],1,20],[[333,0,2367],2,56],[[333,2367,0],0,54],[[334,-2366,0],1,25],[[334,0,2366],2,16],[[334,2366,0],0,61],[[335,-2365,0],1,11],[[335,0,2365],2,63],[[335,2365,0],0,2],[[336,-2364,0],1,6],[[336,0,2364],2,13],[[336,2364,0],0,32],[[337,-2363,0],1,22],[[337,0,2363],2,25],[[337,2363,0],0,42],[[338,-2362,0],1,34],[[338,0,2362],2,26],[[338,2362,0],0,45],[[339,-2361,0],1,25],[[339,0,2361],2,35],[[339,2361,0],0,38],[[340,-2360,0],1,26],[[340,0,2360],2,28],[[340,2360,0],0,1],[[341,-2359,0],1,3],[[341,0,2359],2,45],[[341,2359,0],0,19],[[342,-2358,0],1,58],[[342,0,2358],2,50],[[342,2358,0],0,24],[[343,-2357,0],1,48],[[343,0,2357],2,43],[[343,2357,0],0,59],[[344,-2356,0],1,42],[[344,0,2356],2,24],[[344,2356,0],0,9],[[345,-2355,0],1,58],[[345,0,2355],2,25],[[345,2355,0],0,27],[[346,-2354,0],1,2],[[346,0,2354],2,27],[[346,2354,0],0,48],[[347,-2353,0],1,48],[[347,0,2353],2,51],[[347,2353,0],0,2],[[348,-2352,0],1,52],[[348,0,2352],2,32],[[348,2352,0],0,24],[[349,-2351,0],1,44],[[349,0,2351],2,13],[[349,2351,0],0,13],[[350,-2350,0],1,1],[[350,0,2350],2,5],[[350,2350,0],0,16],[[351,-2349,0],1,13],[[351,0,2349],2,24],[[351,2349,0],0,61],[[352,-2348,0],1,52],[[352,0,2348],2,25],[[352,2348,0],0,28],[[353,-2347,0],1,44],[[353,0,2347],2,28],[[353,2347,0],0,12],[[354,-2346,0],1,24],[[354,0,2346],2,21],[[354,2346,0],0,29],[[355,-2345,0],1,37],[[355,0,2345],2,1],[[355,2345,0],0,37],[[356,-2344,0],1,17],[[356,0,2344],2,8],[[357,0,2343],2,40],[[357,2343,0],0,48],[[358,-2342,0],1,40],[[358,0,2342],2,16],[[358,2342,0],0,8],[[359,-2341,0],1,41],[[359,0,2341],2,9],[[359,2341,0],0,25],[[360,0,2340],2,41],[[360,2340,0],0,9],[[361,-2339,0],1,25],[[361,0,2339],2,56],[[361,2339,0],0,48],[[362,-2338,0],1,33],[[362,2338,0],0,9],[[363,-2337,0],1,17],[[363,0,2337],2,1],[[363,2337,0],0,9],[[364,-2336,0],1,40],[[364,0,2336],2,52],[[364,2336,0],0,33],[[365,-2335,0],1,45],[[365,0,2335],2,20],[[365,2335,0],0,9],[[366,-2334,0],1,40],[[366,0,2334],2,41],[[366,2334,0],0,12],[[367,-2333,0],1,1],[[367,0,2333],2,12],[[367,2333,0],0,45],[[368,-2332,0],1,33],[[368,0,2332],2,44],[[368,2332,0],0,44],[[369,-2331,0],1,37],[[369,0,2331],2,8],[[369,2331,0],0,13],[[370,-2330,0],1,32],[[370,0,2330],2,40],[[371,-2329,0],1,41],[[371,0,2329],2,1],[[371,2329,0],0,1],[[372,-2328,0],1,49],[[372,0,2328],2,9],[[372,2328,0],0,8],[[373,-2327,0],1,57],[[373,0,2327],2,16],[[374,-2326,0],1,32],[[374,0,2326],2,56],[[374,2326,0],0,48],[[375,-2325,0],1,49],[[375,0,2325],2,8],[[375,2325,0],0,56],[[376,-2324,0],1,48],[[376,0,2324],2,24],[[376,2324,0],0,9],[[377,-2323,0],1,16],[[377,0,2323],2,17],[[377,2323,0],0,24],[[378,-2322,0],1,56],[[378,0,2322],2,9],[[378,2322,0],0,8],[[379,-2321,0],1,24],[[379,0,2321],2,17],[[379,2321,0],0,1],[[380,-2320,0],1,41],[[380,0,2320],2,33],[[380,2320,0],0,1],[[381,-2319,0],1,49],[[381,0,2319],2,1],[[381,2319,0],0,8],[[382,-2318,0],1,49],[[382,0,2318],2,32],[[382,2318,0],0,16],[[383,-2317,0],1,56],[[383,0,2317],2,24],[[383,2317,0],0,9],[[384,-2316,0],1,33],[[384,0,2316],2,9],[[384,2316,0],0,8],[[385,-2315,0],1,41],[[385,0,2315],2,40],[[385,2315,0],0,9],[[386,-2314,0],1,40],[[386,0,2314],2,32],[[386,2314,0],0,8],[[387,-2313,0],1,32],[[387,0,2313],2,1],[[387,2313,0],0,1],[[388,-2312,0],1,33],[[388,0,2312],2,56],[[388,2312,0],0,9],[[389,-2311,0],1,17],[[389,0,2311],2,32],[[390,-2310,0],1,40],[[390,0,2310],2,1],[[390,2310,0],0,9],[[391,-2309,0],1,24],[[391,0,2309],2,8],[[391,2309,0],0,24],[[392,-2308,0],1,32],[[392,0,2308],2,9],[[392,2308,0],0,9],[[393,-2307,0],1,9],[[393,0,2307],2,1],[[393,2307,0],0,24],[[394,-2306,0],1,32],[[394,0,2306],2,17],[[394,2306,0],0,1],[[396,-2304,0],1,25],[[396,0,2304],2,18],[[396,2304,0],0,10],[[397,-2303,0],1,50],[[397,0,2303],2,54],[[397,2303,0],0,52],[[398,-2302,0],1,19],[[398,0,2302],2,35],[[398,2302,0],0,54],[[399,-2301,0],1,44],[[399,0,2301],2,7],[[399,2301,0],0,49],[[400,-2300,0],1,15],[[400,0,2300],2,49],[[400,2300,0],0,39],[[401,-2299,0],1,40],[[401,0,2299],2,6],[[401,2299,0],0,5],[[402,-2298,0],1,23],[[402,0,2298],2,36],[[402,2298,0],0,57],[[403,-2297,0],1,57],[[403,0,2297],2,8],[[403,2297,0],0,45],[[404,0,2296],2,16],[[404,2296,0],0,5],[[405,-2295,0],1,29],[[405,0,2295],2,24],[[405,2295,0],0,10],[[406,-2294,0],1,5],[[406,0,2294],2,56],[[406,2294,0],0,47],[[407,-2293,0],1,4],[[407,0,2293],2,13],[[407,2293,0],0,25],[[408,-2292,0],1,50],[[408,0,2292],2,56],[[408,2292,0],0,47],[[409,-2291,0],1,5],[[409,0,2291],2,52],[[409,2291,0],0,40],[[410,-2290,0],1,32],[[410,0,2290],2,33],[[410,2290,0],0,22],[[411,-2289,0],1,17],[[411,0,2289],2,52],[[411,2289,0],0,41],[[412,-2288,0],1,11],[[412,0,2288],2,30],[[412,2288,0],0,39],[[413,-2287,0],1,30],[[413,0,2287],2,43],[[413,2287,0],0,43],[[414,-2286,0],1,12],[[414,0,2286],2,12],[[414,2286,0],0,57],[[415,-2285,0],1,55],[[415,0,2285],2,15],[[415,2285,0],0,5],[[416,-2284,0],1,21],[[416,0,2284],2,12],[[416,2284,0],0,2],[[417,-2283,0],1,49],[[417,0,2283],2,20],[[417,2283,0],0,25],[[418,-2282,0],1,39],[[418,0,2282],2,29],[[418,2282,0],0,3],[[419,-2281,0],1,21],[[419,0,2281],2,21],[[419,2281,0],0,20],[[420,-2280,0],1,29],[[420,0,2280],2,17],[[420,2280,0],0,43],[[421,-2279,0],1,61],[[421,0,2279],2,57],[[421,2279,0],0,28],[[422,-2278,0],1,39],[[422,0,2278],2,32],[[422,2278,0],0,54],[[423,-2277,0],1,28],[[423,0,2277],2,36],[[423,2277,0],0,17],[[424,-2276,0],1,48],[[424,0,2276],2,32],[[424,2276,0],0,30],[[425,-2275,0],1,32],[[425,0,2275],2,36],[[425,2275,0],0,53],[[426,-2274,0],1,62],[[426,0,2274],2,9],[[426,2274,0],0,54],[[427,-2273,0],1,36],[[427,0,2273],2,45],[[427,2273,0],0,25],[[428,-2272,0],1,37],[[428,0,2272],2,59],[[428,2272,0],0,46],[[429,-2271,0],1,11],[[429,0,2271],2,39],[[429,2271,0],0,59],[[430,-2270,0],1,6],[[430,0,2270],2,45],[[430,2270,0],0,45],[[431,-2269,0],1,27],[[431,0,2269],2,23],[[431,2269,0],0,40],[[432,-2268,0],1,43],[[432,0,2268],2,61],[[432,2268,0],0,2],[[433,-2267,0],1,60],[[433,0,2267],2,16],[[433,2267,0],0,41],[[434,-2266,0],1,25],[[434,0,2266],2,40],[[434,2266,0],0,18],[[435,-2265,0],1,56],[[435,0,2265],2,56],[[435,2265,0],0,29],[[436,-2264,0],1,38],[[436,0,2264],2,60],[[436,2264,0],0,10],[[437,-2263,0],1,36],[[437,0,2263],2,32],[[437,2263,0],0,8],[[438,-2262,0],1,24],[[438,0,2262],2,32],[[438,2262,0],0,42],[[439,-2261,0],1,48],[[439,0,2261],2,40],[[439,2261,0],0,24],[[440,-2260,0],1,58],[[440,0,2260],2,9],[[440,2260,0],0,42],[[441,0,2259],2,17],[[441,2259,0],0,1],[[442,-2258,0],1,16],[[442,0,2258],2,41],[[442,2258,0],0,51],[[443,-2257,0],1,57],[[443,0,2257],2,25],[[443,2257,0],0,48],[[444,-2256,0],1,50],[[444,0,2256],2,31],[[444,2256,0],0,27],[[445,-2255,0],1,31],[[445,0,2255],2,31],[[445,2255,0],0,14],[[446,-2254,0],1,8],[[446,0,2254],2,44],[[446,2254,0],0,20],[[447,-2253,0],1,51],[[447,0,2253],2,10],[[447,2253,0],0,28],[[448,-2252,0],1,52],[[448,0,2252],2,37],[[448,2252,0],0,62],[[449,-2251,0],1,40],[[449,0,2251],2,33],[[449,2251,0],0,21],[[450,-2250,0],1,18],[[450,0,2250],2,13],[[450,2250,0],0,15],[[451,-2249,0],1,32],[[451,0,2249],2,24],[[451,2249,0],0,36],[[452,-2248,0],1,13],[[452,0,2248],2,57],[[452,2248,0],0,46],[[453,-2247,0],1,5],[[453,0,2247],2,13],[[453,2247,0],0,16],[[454,-2246,0],1,11],[[454,0,2246],2,9],[[454,2246,0],0,51],[[455,-2245,0],1,33],[[455,0,2245],2,56],[[455,2245,0],0,16],[[456,-2244,0],1,33],[[456,0,2244],2,40],[[456,2244,0],0,2],[[457,-2243,0],1,40],[[457,0,2243],2,41],[[457,2243,0],0,33],[[458,-2242,0],1,51],[[458,0,2242],2,8],[[458,2242,0],0,34],[[459,-2241,0],1,40],[[459,0,2241],2,56],[[460,-2240,0],1,11],[[460,0,2240],2,34],[[460,2240,0],0,46],[[461,-2239,0],1,34],[[461,0,2239],2,40],[[461,2239,0],0,7],[[462,-2238,0],1,23],[[462,0,2238],2,37],[[462,2238,0],0,3],[[463,-2237,0],1,51],[[463,0,2237],2,48],[[463,2237,0],0,62],[[464,-2236,0],1,26],[[464,0,2236],2,55],[[464,2236,0],0,43],[[465,-2235,0],1,32],[[465,0,2235],2,1],[[465,2235,0],0,58],[[466,-2234,0],1,21],[[466,0,2234],2,14],[[466,2234,0],0,62],[[467,-2233,0],1,1],[[467,0,2233],2,44],[[467,2233,0],0,59],[[468,-2232,0],1,18],[[468,0,2232],2,63],[[468,2232,0],0,15],[[469,-2231,0],1,32],[[469,0,2231],2,41],[[469,2231,0],0,62],[[470,-2230,0],1,44],[[470,0,2230],2,10],[[470,2230,0],0,15],[[471,-2229,0],1,52],[[471,0,2229],2,52],[[471,2229,0],0,35],[[472,-2228,0],1,42],[[472,0,2228],2,58],[[472,2228,0],0,31],[[473,-2227,0],1,56],[[473,0,2227],2,37],[[473,2227,0],0,39],[[474,-2226,0],1,45],[[474,0,2226],2,26],[[474,2226,0],0,62],[[475,-2225,0],1,36],[[475,0,2225],2,45],[[475,2225,0],0,27],[[476,-2224,0],1,10],[[476,0,2224],2,19],[[476,2224,0],0,54],[[477,-2223,0],1,24],[[477,0,2223],2,61],[[477,2223,0],0,31],[[478,-2222,0],1,45],[[478,0,2222],2,58],[[478,2222,0],0,38],[[479,-2221,0],1,29],[[479,0,2221],2,13],[[479,2221,0],0,59],[[480,-2220,0],1,19],[[480,0,2220],2,42],[[480,2220,0],0,55],[[481,-2219,0],1,41],[[481,0,2219],2,60],[[481,2219,0],0,15],[[482,-2218,0],1,36],[[482,0,2218],2,27],[[482,2218,0],0,15],[[483,-2217,0],1,36],[[483,0,2217],2,5],[[483,2217,0],0,58],[[484,-2216,0],1,10],[[484,0,2216],2,51],[[484,2216,0],0,7],[[485,-2215,0],1,40],[[485,0,2215],2,36],[[485,2215,0],0,6],[[486,-2214,0],1,61],[[486,0,2214],2,43],[[486,2214,0],0,31],[[487,-2213,0],1,44],[[487,0,2213],2,12],[[487,2213,0],0,2],[[488,-2212,0],1,18],[[488,0,2212],2,18],[[488,2212,0],0,6],[[489,-2211,0],1,16],[[489,0,2211],2,28],[[489,2211,0],0,15],[[490,-2210,0],1,20],[[490,0,2210],2,18],[[490,2210,0],0,31],[[491,-2209,0],1,21],[[491,0,2209],2,5],[[491,2209,0],0,27],[[492,-2208,0],1,26],[[492,0,2208],2,38],[[492,2208,0],0,26],[[493,-2207,0],1,53],[[493,0,2207],2,36],[[493,2207,0],0,35],[[494,-2206,0],1,32],[[494,0,2206],2,35],[[494,2206,0],0,6],[[495,-2205,0],1,49],[[495,0,2205],2,21],[[495,2205,0],0,30],[[496,-2204,0],1,51],[[496,0,2204],2,38],[[496,2204,0],0,15],[[497,-2203,0],1,4],[[497,0,2203],2,49],[[497,2203,0],0,14],[[498,-2202,0],1,9],[[498,0,2202],2,43],[[498,2202,0],0,11],[[499,-2201,0],1,56],[[499,0,2201],2,16],[[499,2201,0],0,2],[[500,-2200,0],1,3],[[500,0,2200],2,10],[[500,2200,0],0,27],[[501,-2199,0],1,48],[[501,2199,0],0,2],[[502,-2198,0],1,8],[[502,0,2198],2,34],[[502,2198,0],0,34],[[503,-2197,0],1,41],[[503,2197,0],0,51],[[504,-2196,0],1,2],[[504,0,2196],2,2],[[504,2196,0],0,18],[[505,0,2195],2,16],[[505,2195,0],0,19],[[506,-2194,0],1,1],[[506,0,2194],2,3],[[506,2194,0],0,2],[[507,-2193,0],1,17],[[507,0,2193],2,17],[[507,2193,0],0,3],[[508,-2192,0],1,3],[[508,0,2192],2,42],[[508,2192,0],0,11],[[509,-2191,0],1,40],[[509,2191,0],0,26],[[510,-2190,0],1,24],[[510,0,2190],2,59],[[510,2190,0],0,3],[[511,-2189,0],1,33],[[511,0,2189],2,1],[[511,2189,0],0,27],[[512,-2188,0],1,2],[[512,0,2188],2,18],[[512,2188,0],0,11],[[513,-2187,0],1,32],[[513,0,2187],2,49],[[513,2187,0],0,2],[[514,-2186,0],1,16],[[514,0,2186],2,34],[[514,2186,0],0,10],[[515,-2185,0],1,40],[[515,0,2185],2,17],[[515,2185,0],0,3],[[516,-2184,0],1,26],[[516,0,2184],2,35],[[516,2184,0],0,26],[[517,-2183,0],1,24],[[517,0,2183],2,48],[[517,2183,0],0,3],[[518,-2182,0],1,24],[[518,0,2182],2,18],[[518,2182,0],0,2],[[519,-2181,0],1,25],[[519,0,2181],2,17],[[519,2181,0],0,18],[[520,-2180,0],1,19],[[520,0,2180],2,18],[[520,2180,0],0,19],[[521,-2179,0],1,1],[[521,0,2179],2,16],[[521,2179,0],0,18],[[522,-2178,0],1,16],[[522,0,2178],2,3],[[522,2178,0],0,3],[[523,-2177,0],1,1],[[523,0,2177],2,17],[[523,2177,0],0,3],[[524,-2176,0],1,44],[[524,0,2176],2,5],[[524,2176,0],0,58],[[525,-2175,0],1,15],[[525,0,2175],2,21],[[525,2175,0],0,12],[[526,-2174,0],1,60],[[526,0,2174],2,45],[[526,2174,0],0,22],[[527,-2173,0],1,33],[[527,0,2173],2,43],[[527,2173,0],0,51],[[528,-2172,0],1,60],[[528,0,2172],2,27],[[528,2172,0],0,56],[[529,-2171,0],1,1],[[529,0,2171],2,32],[[529,2171,0],0,39],[[530,-2170,0],1,45],[[530,0,2170],2,11],[[531,-2169,0],1,56],[[531,0,2169],2,5],[[531,2169,0],0,55],[[532,-2168,0],1,5],[[532,0,2168],2,62],[[532,2168,0],0,21],[[533,-2167,0],1,4],[[533,0,2167],2,33],[[533,2167,0],0,3],[[534,-2166,0],1,32],[[534,0,2166],2,34],[[534,2166,0],0,40],[[535,-2165,0],1,9],[[535,0,2165],2,33],[[535,2165,0],0,51],[[536,-2164,0],1,33],[[536,0,2164],2,3],[[536,2164,0],0,24],[[537,-2163,0],1,33],[[537,0,2163],2,17],[[537,2163,0],0,26],[[538,-2162,0],1,16],[[538,0,2162],2,26],[[538,2162,0],0,24],[[539,-2161,0],1,8],[[539,0,2161],2,16],[[539,2161,0],0,18],[[540,-2160,0],1,1],[[540,0,2160],2,37],[[540,2160,0],0,24],[[541,-2159,0],1,63],[[541,0,2159],2,47],[[541,2159,0],0,52],[[542,-2158,0],1,16],[[542,0,2158],2,31],[[542,2158,0],0,46],[[543,-2157,0],1,35],[[543,0,2157],2,35],[[543,2157,0],0,23],[[544,-2156,0],1,23],[[544,0,2156],2,22],[[544,2156,0],0,21],[[545,-2155,0],1,16],[[545,0,2155],2,49],[[545,2155,0],0,22],[[546,-2154,0],1,34],[[546,0,2154],2,14],[[546,2154,0],0,52],[[547,-2153,0],1,17],[[547,0,2153],2,49],[[547,2153,0],0,46],[[548,-2152,0],1,15],[[548,0,2152],2,35],[[548,2152,0],0,4],[[549,-2151,0],1,21],[[549,0,2151],2,61],[[549,2151,0],0,34],[[550,-2150,0],1,42],[[550,0,2150],2,58],[[550,2150,0],0,32],[[551,0,2149],2,49],[[551,2149,0],0,3],[[552,-2148,0],1,34],[[552,0,2148],2,50],[[553,-2147,0],1,32],[[553,0,2147],2,41],[[553,2147,0],0,51],[[554,-2146,0],1,59],[[554,0,2146],2,26],[[554,2146,0],0,40],[[555,-2145,0],1,33],[[555,0,2145],2,33],[[555,2145,0],0,10],[[556,-2144,0],1,55],[[556,0,2144],2,5],[[556,2144,0],0,41],[[557,-2143,0],1,6],[[557,0,2143],2,2],[[557,2143,0],0,32],[[558,-2142,0],1,15],[[558,0,2142],2,59],[[558,2142,0],0,18],[[559,-2141,0],1,51],[[559,0,2141],2,23],[[559,2141,0],0,26],[[560,-2140,0],1,25],[[560,0,2140],2,6],[[560,2140,0],0,56],[[561,-2139,0],1,57],[[561,0,2139],2,49],[[561,2139,0],0,34],[[562,-2138,0],1,56],[[562,0,2138],2,23],[[562,2138,0],0,60],[[563,-2137,0],1,32],[[563,0,2137],2,49],[[563,2137,0],0,23],[[564,-2136,0],1,60],[[564,0,2136],2,10],[[564,2136,0],0,13],[[565,-2135,0],1,44],[[565,0,2135],2,12],[[565,2135,0],0,2],[[566,-2134,0],1,49],[[566,0,2134],2,58],[[566,2134,0],0,56],[[567,-2133,0],1,33],[[567,0,2133],2,16],[[567,2133,0],0,43],[[568,-2132,0],1,56],[[568,0,2132],2,51],[[568,2132,0],0,8],[[569,-2131,0],1,41],[[569,0,2131],2,57],[[569,2131,0],0,50],[[570,-2130,0],1,49],[[570,0,2130],2,18],[[570,2130,0],0,49],[[571,-2129,0],1,33],[[571,0,2129],2,49],[[571,2129,0],0,18],[[572,-2128,0],1,41],[[572,0,2128],2,36],[[572,2128,0],0,8],[[573,-2127,0],1,54],[[573,0,2127],2,47],[[573,2127,0],0,12],[[574,-2126,0],1,25],[[574,0,2126],2,54],[[574,2126,0],0,62],[[575,-2125,0],1,51],[[575,0,2125],2,50],[[575,2125,0],0,55],[[576,-2124,0],1,38],[[576,0,2124],2,55],[[576,2124,0],0,4],[[577,-2123,0],1,32],[[577,0,2123],2,25],[[577,2123,0],0,55],[[578,-2122,0],1,11],[[578,0,2122],2,23],[[578,2122,0],0,44],[[579,-2121,0],1,33],[[579,0,2121],2,33],[[579,2121,0],0,6],[[580,-2120,0],1,14],[[580,0,2120],2,3],[[580,2120,0],0,12],[[581,-2119,0],1,37],[[581,0,2119],2,5],[[581,2119,0],0,42],[[582,-2118,0],1,2],[[582,0,2118],2,19],[[582,2118,0],0,32],[[583,-2117,0],1,33],[[583,0,2117],2,33],[[583,2117,0],0,18],[[584,-2116,0],1,35],[[584,0,2116],2,51],[[585,-2115,0],1,33],[[585,0,2115],2,48],[[585,2115,0],0,50],[[586,-2114,0],1,34],[[586,0,2114],2,18],[[586,2114,0],0,32],[[587,-2113,0],1,32],[[587,0,2113],2,32],[[587,2113,0],0,2],[[588,-2112,0],1,56],[[588,0,2112],2,48],[[588,2112,0],0,41],[[589,-2111,0],1,51],[[589,0,2111],2,45],[[589,2111,0],0,17],[[590,-2110,0],1,18],[[590,0,2110],2,38],[[590,2110,0],0,45],[[591,-2109,0],1,15],[[591,0,2109],2,36],[[591,2109,0],0,12],[[592,-2108,0],1,8],[[592,0,2108],2,52],[[592,2108,0],0,36],[[593,-2107,0],1,24],[[593,0,2107],2,52],[[593,2107,0],0,20],[[594,-2106,0],1,1],[[594,0,2106],2,20],[[594,2106,0],0,48],[[595,-2105,0],1,29],[[595,0,2105],2,49],[[595,2105,0],0,33],[[596,-2104,0],1,1],[[596,0,2104],2,37],[[596,2104,0],0,17],[[597,-2103,0],1,41],[[597,0,2103],2,45],[[597,2103,0],0,48],[[598,-2102,0],1,57],[[598,0,2102],2,17],[[598,2102,0],0,16],[[599,-2101,0],1,57],[[599,0,2101],2,49],[[599,2101,0],0,56],[[600,-2100,0],1,57],[[600,0,2100],2,32],[[600,2100,0],0,17],[[601,-2099,0],1,41],[[601,0,2099],2,57],[[601,2099,0],0,49],[[602,-2098,0],1,56],[[602,0,2098],2,16],[[602,2098,0],0,41],[[603,-2097,0],1,40],[[603,0,2097],2,48],[[604,-2096,0],1,33],[[604,0,2096],2,1],[[604,2096,0],0,24],[[605,-2095,0],1,24],[[605,0,2095],2,25],[[605,2095,0],0,56],[[606,-2094,0],1,8],[[606,0,2094],2,33],[[606,2094,0],0,24],[[607,-2093,0],1,17],[[607,0,2093],2,16],[[607,2093,0],0,32],[[608,-2092,0],1,48],[[608,0,2092],2,49],[[608,2092,0],0,16],[[609,-2091,0],1,32],[[609,0,2091],2,49],[[609,2091,0],0,57],[[610,-2090,0],1,56],[[610,2090,0],0,16],[[611,-2089,0],1,33],[[611,2089,0],0,40],[[612,-2088,0],1,24],[[612,0,2088],2,32],[[613,-2087,0],1,32],[[613,0,2087],2,41],[[613,2087,0],0,24],[[614,-2086,0],1,32],[[614,0,2086],2,48],[[615,-2085,0],1,32],[[615,0,2085],2,1],[[615,2085,0],0,17],[[617,-2083,0],1,16],[[617,0,2083],2,25],[[617,2083,0],0,25],[[618,2082,0],0,8],[[619,-2081,0],1,16],[[619,0,2081],2,1],[[619,2081,0],0,8],[[620,-2080,0],1,24],[[620,0,2080],2,52],[[620,2080,0],0,40],[[621,-2079,0],1,53],[[621,0,2079],2,13],[[621,2079,0],0,9],[[622,-2078,0],1,8],[[622,0,2078],2,48],[[622,2078,0],0,28],[[623,-2077,0],1,16],[[623,0,2077],2,5],[[623,2077,0],0,52],[[624,-2076,0],1,17],[[624,0,2076],2,53],[[624,2076,0],0,36],[[625,-2075,0],1,53],[[625,0,2075],2,25],[[625,2075,0],0,20],[[626,-2074,0],1,25],[[626,0,2074],2,33],[[626,2074,0],0,8],[[627,-2073,0],1,48],[[627,0,2073],2,17],[[628,-2072,0],1,25],[[628,2072,0],0,8],[[629,-2071,0],1,33],[[629,0,2071],2,16],[[629,2071,0],0,9],[[630,-2070,0],1,17],[[630,0,2070],2,49],[[630,2070,0],0,32],[[631,-2069,0],1,32],[[631,0,2069],2,17],[[631,2069,0],0,48],[[632,-2068,0],1,17],[[632,0,2068],2,17],[[632,2068,0],0,1],[[633,-2067,0],1,16],[[633,0,2067],2,17],[[633,2067,0],0,16],[[634,-2066,0],1,17],[[634,0,2066],2,1],[[634,2066,0],0,1],[[635,-2065,0],1,17],[[635,0,2065],2,16],[[636,-2064,0],1,9],[[636,0,2064],2,49],[[636,2064,0],0,9],[[637,-2063,0],1,33],[[637,0,2063],2,8],[[637,2063,0],0,9],[[638,-2062,0],1,25],[[638,0,2062],2,33],[[638,2062,0],0,25],[[639,-2061,0],1,33],[[639,0,2061],2,16],[[639,2061,0],0,16],[[640,-2060,0],1,1],[[640,2060,0],0,1],[[641,-2059,0],1,32],[[641,0,2059],2,41],[[641,2059,0],0,16],[[642,-2058,0],1,8],[[642,0,2058],2,48],[[642,2058,0],0,9],[[643,-2057,0],1,32],[[643,0,2057],2,1],[[643,2057,0],0,1],[[644,-2056,0],1,9],[[644,0,2056],2,48],[[644,2056,0],0,8],[[645,-2055,0],1,17],[[645,0,2055],2,32],[[645,2055,0],0,8],[[646,-2054,0],1,1],[[646,2054,0],0,1],[[647,-2053,0],1,17],[[647,2053,0],0,17],[[648,-2052,0],1,1],[[648,2052,0],0,1],[[649,-2051,0],1,1],[[649,0,2051],2,1],[[649,2051,0],0,17],[[650,-2050,0],1,1],[[650,0,2050],2,17],[[651,2049,0],0,1],[[652,-2048,0],1,48],[[652,0,2048],2,15],[[652,2048,0],0,12],[[653,-2047,0],1,55],[[653,0,2047],2,12],[[653,2047,0],0,18],[[654,-2046,0],1,38],[[654,0,2046],2,22],[[654,2046,0],0,38],[[655,-2045,0],1,52],[[655,0,2045],2,18],[[655,2045,0],0,21],[[656,-2044,0],1,48],[[656,0,2044],2,49],[[656,2044,0],0,19],[[657,-2043,0],1,33],[[657,0,2043],2,28],[[657,2043,0],0,30],[[658,-2042,0],1,43],[[658,0,2042],2,1],[[658,2042,0],0,52],[[659,-2041,0],1,8],[[659,0,2041],2,40],[[659,2041,0],0,33],[[660,-2040,0],1,20],[[660,0,2040],2,50],[[660,2040,0],0,12],[[661,-2039,0],1,20],[[661,0,2039],2,14],[[661,2039,0],0,41],[[662,-2038,0],1,39],[[662,0,2038],2,43],[[662,2038,0],0,51],[[663,-2037,0],1,46],[[663,0,2037],2,11],[[663,2037,0],0,59],[[664,-2036,0],1,23],[[664,0,2036],2,39],[[664,2036,0],0,6],[[665,-2035,0],1,55],[[665,0,2035],2,8],[[665,2035,0],0,16],[[666,-2034,0],1,12],[[666,0,2034],2,53],[[666,2034,0],0,38],[[667,-2033,0],1,18],[[667,0,2033],2,3],[[667,2033,0],0,34],[[668,-2032,0],1,49],[[668,0,2032],2,50],[[668,2032,0],0,1],[[669,-2031,0],1,44],[[669,0,2031],2,39],[[669,2031,0],0,2],[[670,-2030,0],1,62],[[670,0,2030],2,12],[[670,2030,0],0,8],[[671,-2029,0],1,1],[[671,0,2029],2,59],[[671,2029,0],0,30],[[672,-2028,0],1,59],[[672,0,2028],2,14],[[672,2028,0],0,11],[[673,-2027,0],1,43],[[673,0,2027],2,62],[[673,2027,0],0,3],[[674,-2026,0],1,28],[[674,0,2026],2,56],[[674,2026,0],0,29],[[675,-2025,0],1,17],[[675,0,2025],2,49],[[675,2025,0],0,18],[[676,-2024,0],1,55],[[676,0,2024],2,40],[[676,2024,0],0,55],[[677,-2023,0],1,48],[[677,0,2023],2,3],[[677,2023,0],0,36],[[678,-2022,0],1,34],[[678,0,2022],2,48],[[678,2022,0],0,32],[[679,-2021,0],1,56],[[679,0,2021],2,57],[[679,2021,0],0,40],[[680,-2020,0],1,6],[[680,0,2020],2,54],[[680,2020,0],0,63],[[681,-2019,0],1,30],[[681,0,2019],2,51],[[681,2019,0],0,9],[[682,-2018,0],1,55],[[682,0,2018],2,41],[[682,2018,0],0,22],[[683,-2017,0],1,57],[[683,0,2017],2,9],[[683,2017,0],0,20],[[684,-2016,0],1,26],[[684,0,2016],2,13],[[684,2016,0],0,62],[[685,-2015,0],1,1],[[685,0,2015],2,22],[[685,2015,0],0,42],[[686,-2014,0],1,32],[[686,0,2014],2,29],[[686,2014,0],0,46],[[687,-2013,0],1,23],[[687,0,2013],2,53],[[687,2013,0],0,33],[[688,-2012,0],1,15],[[688,0,2012],2,55],[[688,2012,0],0,16],[[689,-2011,0],1,31],[[689,0,2011],2,40],[[689,2011,0],0,35],[[690,-2010,0],1,59],[[690,0,2010],2,55],[[690,2010,0],0,36],[[691,-2009,0],1,23],[[691,0,2009],2,58],[[691,2009,0],0,19],[[692,-2008,0],1,17],[[692,2008,0],0,61],[[693,-2007,0],1,30],[[693,0,2007],2,24],[[693,2007,0],0,38],[[694,-2006,0],1,1],[[694,0,2006],2,17],[[694,2006,0],0,8],[[695,-2005,0],1,26],[[695,0,2005],2,3],[[695,2005,0],0,57],[[696,-2004,0],1,2],[[696,0,2004],2,38],[[696,2004,0],0,18],[[697,-2003,0],1,23],[[697,0,2003],2,42],[[697,2003,0],0,7],[[698,-2002,0],1,50],[[698,0,2002],2,23],[[698,2002,0],0,54],[[699,-2001,0],1,63],[[699,0,2001],2,46],[[699,2001,0],0,5],[[700,-2000,0],1,40],[[700,0,2000],2,35],[[700,2000,0],0,3],[[701,-1999,0],1,18],[[701,0,1999],2,51],[[701,1999,0],0,21],[[702,-1998,0],1,59],[[702,0,1998],2,42],[[702,1998,0],0,11],[[703,-1997,0],1,27],[[703,0,1997],2,59],[[703,1997,0],0,44],[[704,-1996,0],1,49],[[704,0,1996],2,22],[[704,1996,0],0,3],[[705,-1995,0],1,35],[[705,0,1995],2,3],[[705,1995,0],0,4],[[706,-1994,0],1,23],[[706,0,1994],2,19],[[706,1994,0],0,10],[[707,-1993,0],1,59],[[707,0,1993],2,35],[[707,1993,0],0,24],[[708,-1992,0],1,48],[[708,0,1992],2,43],[[708,1992,0],0,34],[[709,-1991,0],1,27],[[709,0,1991],2,15],[[709,1991,0],0,37],[[710,-1990,0],1,22],[[710,0,1990],2,39],[[710,1990,0],0,35],[[711,-1989,0],1,34],[[711,0,1989],2,63],[[711,1989,0],0,41],[[712,-1988,0],1,9],[[712,0,1988],2,54],[[712,1988,0],0,35],[[713,-1987,0],1,27],[[713,0,1987],2,35],[[713,1987,0],0,61],[[714,-1986,0],1,14],[[714,0,1986],2,10],[[714,1986,0],0,35],[[715,-1985,0],1,3],[[715,0,1985],2,27],[[715,1985,0],0,32],[[716,-1984,0],1,22],[[716,0,1984],2,2],[[716,1984,0],0,9],[[717,-1983,0],1,62],[[717,0,1983],2,21],[[717,1983,0],0,12],[[718,-1982,0],1,18],[[718,0,1982],2,38],[[718,1982,0],0,17],[[719,-1981,0],1,54],[[719,1981,0],0,49],[[720,-1980,0],1,32],[[720,0,1980],2,41],[[720,1980,0],0,49],[[721,-1979,0],1,7],[[721,0,1979],2,39],[[721,1979,0],0,26],[[722,-1978,0],1,58],[[722,0,1978],2,47],[[722,1978,0],0,54],[[723,-1977,0],1,32],[[723,0,1977],2,39],[[723,1977,0],0,41],[[724,-1976,0],1,46],[[724,0,1976],2,61],[[724,1976,0],0,38],[[725,-1975,0],1,5],[[725,0,1975],2,58],[[725,1975,0],0,14],[[726,-1974,0],1,20],[[726,0,1974],2,1],[[726,1974,0],0,5],[[727,-1973,0],1,5],[[727,0,1973],2,41],[[727,1973,0],0,45],[[728,-1972,0],1,21],[[728,0,1972],2,9],[[728,1972,0],0,44],[[729,-1971,0],1,44],[[729,0,1971],2,12],[[729,1971,0],0,15],[[730,-1970,0],1,42],[[730,0,1970],2,12],[[730,1970,0],0,2],[[731,-1969,0],1,53],[[731,0,1969],2,41],[[731,1969,0],0,36],[[732,-1968,0],1,21],[[732,0,1968],2,28],[[732,1968,0],0,53],[[733,-1967,0],1,32],[[733,0,1967],2,21],[[733,1967,0],0,14],[[734,-1966,0],1,53],[[734,0,1966],2,47],[[734,1966,0],0,59],[[735,-1965,0],1,51],[[735,0,1965],2,42],[[735,1965,0],0,23],[[736,-1964,0],1,60],[[736,0,1964],2,40],[[736,1964,0],0,60],[[737,-1963,0],1,33],[[737,0,1963],2,18],[[737,1963,0],0,2],[[738,-1962,0],1,8],[[738,0,1962],2,13],[[738,1962,0],0,42],[[739,-1961,0],1,10],[[739,0,1961],2,63],[[739,1961,0],0,47],[[740,-1960,0],1,49],[[740,0,1960],2,10],[[740,1960,0],0,37],[[741,-1959,0],1,56],[[741,0,1959],2,59],[[741,1959,0],0,50],[[742,-1958,0],1,32],[[742,0,1958],2,31],[[742,1958,0],0,54],[[743,-1957,0],1,6],[[743,0,1957],2,19],[[743,1957,0],0,34],[[744,-1956,0],1,40],[[744,0,1956],2,61],[[744,1956,0],0,45],[[745,-1955,0],1,57],[[745,0,1955],2,23],[[745,1955,0],0,19],[[746,-1954,0],1,49],[[746,0,1954],2,16],[[746,1954,0],0,22],[[747,-1953,0],1,62],[[747,0,1953],2,7],[[747,1953,0],0,11],[[748,-1952,0],1,5],[[748,0,1952],2,57],[[748,1952,0],0,14],[[749,-1951,0],1,22],[[749,0,1951],2,56],[[749,1951,0],0,60],[[750,-1950,0],1,30],[[750,0,1950],2,41],[[750,1950,0],0,37],[[751,-1949,0],1,8],[[751,0,1949],2,4],[[751,1949,0],0,11],[[752,-1948,0],1,40],[[752,0,1948],2,63],[[752,1948,0],0,6],[[753,-1947,0],1,48],[[753,0,1947],2,4],[[753,1947,0],0,44],[[754,-1946,0],1,61],[[754,0,1946],2,19],[[754,1946,0],0,55],[[755,-1945,0],1,49],[[755,0,1945],2,29],[[755,1945,0],0,15],[[756,-1944,0],1,31],[[756,0,1944],2,56],[[756,1944,0],0,4],[[757,-1943,0],1,28],[[757,0,1943],2,19],[[757,1943,0],0,5],[[758,-1942,0],1,22],[[758,0,1942],2,53],[[759,-1941,0],1,48],[[759,0,1941],2,40],[[759,1941,0],0,26],[[760,-1940,0],1,5],[[760,0,1940],2,18],[[760,1940,0],0,62],[[761,-1939,0],1,29],[[761,0,1939],2,13],[[761,1939,0],0,29],[[762,-1938,0],1,25],[[762,0,1938],2,30],[[762,1938,0],0,27],[[763,-1937,0],1,4],[[763,0,1937],2,25],[[763,1937,0],0,47],[[764,-1936,0],1,2],[[764,0,1936],2,3],[[764,1936,0],0,39],[[765,0,1935],2,29],[[765,1935,0],0,50],[[766,-1934,0],1,60],[[766,0,1934],2,3],[[766,1934,0],0,54],[[767,-1933,0],1,28],[[767,0,1933],2,36],[[767,1933,0],0,63],[[768,-1932,0],1,59],[[768,0,1932],2,15],[[768,1932,0],0,62],[[769,-1931,0],1,40],[[769,0,1931],2,60],[[769,1931,0],0,50],[[770,-1930,0],1,1],[[770,0,1930],2,50],[[770,1930,0],0,6],[[771,-1929,0],1,13],[[771,0,1929],2,5],[[771,1929,0],0,51],[[772,-1928,0],1,3],[[772,0,1928],2,3],[[772,1928,0],0,55],[[773,-1927,0],1,17],[[773,0,1927],2,41],[[773,1927,0],0,58],[[774,-1926,0],1,57],[[774,0,1926],2,54],[[774,1926,0],0,54],[[775,-1925,0],1,5],[[775,0,1925],2,17],[[775,1925,0],0,34],[[776,-1924,0],1,10],[[776,0,1924],2,6],[[776,1924,0],0,55],[[777,-1923,0],1,32],[[777,0,1923],2,37],[[777,1923,0],0,11],[[778,-1922,0],1,56],[[778,0,1922],2,11],[[778,1922,0],0,30],[[779,-1921,0],1,29],[[779,0,1921],2,4],[[779,1921,0],0,11],[[780,-1920,0],1,13],[[780,0,1920],2,50],[[780,1920,0],0,6],[[781,-1919,0],1,27],[[781,0,1919],2,1],[[781,1919,0],0,28],[[782,-1918,0],1,57],[[782,0,1918],2,26],[[782,1918,0],0,24],[[783,-1917,0],1,32],[[783,0,1917],2,9],[[783,1917,0],0,56],[[784,-1916,0],1,53],[[784,0,1916],2,48],[[784,1916,0],0,36],[[785,-1915,0],1,10],[[785,0,1915],2,15],[[785,1915,0],0,57],[[786,-1914,0],1,40],[[786,0,1914],2,27],[[786,1914,0],0,1],[[787,-1913,0],1,17],[[787,0,1913],2,56],[[787,1913,0],0,18],[[788,-1912,0],1,45],[[788,0,1912],2,46],[[788,1912,0],0,19],[[789,-1911,0],1,28],[[789,0,1911],2,8],[[789,1911,0],0,29],[[790,-1910,0],1,29],[[790,0,1910],2,51],[[790,1910,0],0,60],[[791,-1909,0],1,22],[[791,0,1909],2,56],[[791,1909,0],0,34],[[792,-1908,0],1,55],[[792,0,1908],2,38],[[792,1908,0],0,13],[[793,-1907,0],1,7],[[793,0,1907],2,7],[[793,1907,0],0,36],[[794,-1906,0],1,2],[[794,0,1906],2,57],[[794,1906,0],0,29],[[795,-1905,0],1,54],[[795,0,1905],2,37],[[795,1905,0],0,43],[[796,-1904,0],1,49],[[796,0,1904],2,30],[[796,1904,0],0,10],[[797,-1903,0],1,40],[[797,0,1903],2,21],[[797,1903,0],0,18],[[798,-1902,0],1,60],[[798,0,1902],2,5],[[798,1902,0],0,50],[[799,0,1901],2,57],[[799,1901,0],0,39],[[800,-1900,0],1,27],[[800,0,1900],2,63],[[800,1900,0],0,16],[[801,-1899,0],1,55],[[801,0,1899],2,56],[[801,1899,0],0,18],[[802,-1898,0],1,47],[[802,0,1898],2,52],[[802,1898,0],0,55],[[803,-1897,0],1,8],[[803,0,1897],2,46],[[803,1897,0],0,51],[[804,-1896,0],1,46],[[804,0,1896],2,29],[[804,1896,0],0,45],[[805,-1895,0],1,61],[[805,0,1895],2,25],[[805,1895,0],0,53],[[806,-1894,0],1,56],[[806,0,1894],2,40],[[806,1894,0],0,43],[[807,-1893,0],1,9],[[807,0,1893],2,50],[[807,1893,0],0,33],[[808,-1892,0],1,38],[[808,0,1892],2,30],[[808,1892,0],0,5],[[809,-1891,0],1,3],[[809,0,1891],2,37],[[809,1891,0],0,8],[[810,-1890,0],1,28],[[810,0,1890],2,37],[[810,1890,0],0,21],[[811,-1889,0],1,49],[[811,0,1889],2,39],[[811,1889,0],0,29],[[812,-1888,0],1,63],[[812,0,1888],2,1],[[812,1888,0],0,17],[[813,-1887,0],1,33],[[813,0,1887],2,1],[[813,1887,0],0,12],[[814,-1886,0],1,48],[[814,0,1886],2,40],[[814,1886,0],0,56],[[815,-1885,0],1,36],[[815,0,1885],2,51],[[815,1885,0],0,34],[[816,-1884,0],1,25],[[816,0,1884],2,47],[[816,1884,0],0,63],[[817,-1883,0],1,29],[[817,0,1883],2,33],[[817,1883,0],0,7],[[818,-1882,0],1,59],[[818,0,1882],2,50],[[818,1882,0],0,52],[[819,-1881,0],1,52],[[819,0,1881],2,48],[[819,1881,0],0,10],[[820,-1880,0],1,51],[[820,0,1880],2,44],[[820,1880,0],0,39],[[821,-1879,0],1,44],[[821,0,1879],2,2],[[821,1879,0],0,33],[[822,-1878,0],1,4],[[822,0,1878],2,12],[[822,1878,0],0,47],[[823,-1877,0],1,45],[[823,0,1877],2,40],[[823,1877,0],0,26],[[824,-1876,0],1,40],[[824,0,1876],2,6],[[824,1876,0],0,41],[[825,-1875,0],1,36],[[825,0,1875],2,21],[[825,1875,0],0,57],[[826,-1874,0],1,23],[[826,0,1874],2,26],[[826,1874,0],0,29],[[827,-1873,0],1,48],[[827,0,1873],2,9],[[827,1873,0],0,46],[[828,-1872,0],1,19],[[828,0,1872],2,63],[[828,1872,0],0,16],[[829,-1871,0],1,45],[[829,0,1871],2,41],[[829,1871,0],0,54],[[830,-1870,0],1,26],[[830,0,1870],2,59],[[830,1870,0],0,8],[[831,-1869,0],1,41],[[831,0,1869],2,9],[[831,1869,0],0,63],[[832,-1868,0],1,42],[[832,0,1868],2,63],[[832,1868,0],0,33],[[833,-1867,0],1,61],[[833,0,1867],2,29],[[833,1867,0],0,14],[[834,-1866,0],1,55],[[834,0,1866],2,22],[[834,1866,0],0,56],[[835,-1865,0],1,1],[[835,0,1865],2,20],[[835,1865,0],0,43],[[836,-1864,0],1,11],[[836,0,1864],2,30],[[836,1864,0],0,16],[[837,-1863,0],1,44],[[837,0,1863],2,28],[[837,1863,0],0,63],[[838,-1862,0],1,62],[[838,0,1862],2,14],[[838,1862,0],0,25],[[839,-1861,0],1,1],[[839,0,1861],2,36],[[839,1861,0],0,3],[[840,-1860,0],1,43],[[840,0,1860],2,38],[[840,1860,0],0,8],[[841,-1859,0],1,60],[[841,0,1859],2,12],[[841,1859,0],0,63],[[842,-1858,0],1,23],[[842,0,1858],2,22],[[842,1858,0],0,41],[[843,-1857,0],1,8],[[843,0,1857],2,12],[[843,1857,0],0,59],[[844,-1856,0],1,11],[[844,0,1856],2,56],[[844,1856,0],0,5],[[845,-1855,0],1,21],[[845,0,1855],2,9],[[845,1855,0],0,39],[[846,-1854,0],1,40],[[846,0,1854],2,32],[[846,1854,0],0,59],[[847,-1853,0],1,20],[[847,0,1853],2,37],[[847,1853,0],0,9],[[848,-1852,0],1,24],[[848,0,1852],2,18],[[848,1852,0],0,50],[[849,-1851,0],1,38],[[849,0,1851],2,16],[[849,1851,0],0,11],[[850,-1850,0],1,32],[[850,0,1850],2,59],[[850,1850,0],0,24],[[851,-1849,0],1,7],[[851,1849,0],0,16],[[852,-1848,0],1,58],[[852,0,1848],2,39],[[852,1848,0],0,57],[[853,-1847,0],1,38],[[853,0,1847],2,30],[[853,1847,0],0,63],[[854,-1846,0],1,54],[[854,0,1846],2,19],[[854,1846,0],0,18],[[855,-1845,0],1,43],[[855,0,1845],2,52],[[855,1845,0],0,33],[[856,-1844,0],1,45],[[856,0,1844],2,34],[[856,1844,0],0,46],[[857,-1843,0],1,26],[[857,0,1843],2,32],[[857,1843,0],0,39],[[858,-1842,0],1,25],[[858,0,1842],2,34],[[858,1842,0],0,8],[[859,-1841,0],1,47],[[859,0,1841],2,45],[[859,1841,0],0,5],[[860,-1840,0],1,13],[[860,0,1840],2,19],[[860,1840,0],0,38],[[861,-1839,0],1,63],[[861,0,1839],2,4],[[861,1839,0],0,38],[[862,-1838,0],1,23],[[862,0,1838],2,36],[[862,1838,0],0,33],[[863,-1837,0],1,17],[[863,0,1837],2,10],[[863,1837,0],0,46],[[864,-1836,0],1,37],[[864,0,1836],2,11],[[864,1836,0],0,38],[[865,-1835,0],1,6],[[865,0,1835],2,46],[[865,1835,0],0,59],[[866,-1834,0],1,18],[[866,0,1834],2,34],[[866,1834,0],0,25],[[867,-1833,0],1,16],[[867,0,1833],2,51],[[867,1833,0],0,31],[[868,-1832,0],1,25],[[868,0,1832],2,45],[[868,1832,0],0,22],[[869,-1831,0],1,55],[[869,0,1831],2,27],[[869,1831,0],0,10],[[870,-1830,0],1,58],[[870,0,1830],2,29],[[870,1830,0],0,45],[[871,-1829,0],1,45],[[871,0,1829],2,2],[[871,1829,0],0,50],[[872,-1828,0],1,16],[[872,0,1828],2,14],[[872,1828,0],0,31],[[873,-1827,0],1,7],[[873,0,1827],2,58],[[873,1827,0],0,27],[[874,-1826,0],1,51],[[874,0,1826],2,22],[[874,1826,0],0,44],[[875,-1825,0],1,20],[[875,0,1825],2,59],[[875,1825,0],0,43],[[876,-1824,0],1,12],[[876,0,1824],2,11],[[876,1824,0],0,35],[[877,-1823,0],1,32],[[877,0,1823],2,31],[[877,1823,0],0,34],[[878,-1822,0],1,35],[[878,0,1822],2,2],[[878,1822,0],0,2],[[879,-1821,0],1,4],[[879,0,1821],2,29],[[879,1821,0],0,48],[[880,-1820,0],1,47],[[880,0,1820],2,36],[[880,1820,0],0,41],[[881,-1819,0],1,9],[[881,0,1819],2,4],[[881,1819,0],0,46],[[882,-1818,0],1,16],[[882,0,1818],2,32],[[882,1818,0],0,48],[[883,-1817,0],1,29],[[883,0,1817],2,21],[[883,1817,0],0,21],[[884,-1816,0],1,41],[[884,0,1816],2,11],[[884,1816,0],0,22],[[885,-1815,0],1,61],[[885,0,1815],2,35],[[885,1815,0],0,58],[[886,-1814,0],1,15],[[886,0,1814],2,50],[[886,1814,0],0,11],[[887,-1813,0],1,41],[[887,0,1813],2,52],[[887,1813,0],0,32],[[888,-1812,0],1,62],[[888,0,1812],2,1],[[888,1812,0],0,4],[[889,-1811,0],1,16],[[889,0,1811],2,9],[[889,1811,0],0,46],[[890,-1810,0],1,25],[[890,0,1810],2,56],[[890,1810,0],0,16],[[891,-1809,0],1,4],[[891,0,1809],2,21],[[891,1809,0],0,29],[[892,-1808,0],1,9],[[892,0,1808],2,37],[[892,1808,0],0,60],[[893,-1807,0],1,20],[[893,0,1807],2,13],[[893,1807,0],0,56],[[894,-1806,0],1,13],[[894,0,1806],2,8],[[894,1806,0],0,45],[[895,-1805,0],1,5],[[895,0,1805],2,36],[[895,1805,0],0,21],[[896,-1804,0],1,40],[[896,0,1804],2,4],[[896,1804,0],0,20],[[897,-1803,0],1,60],[[897,0,1803],2,24],[[897,1803,0],0,16],[[898,-1802,0],1,40],[[898,0,1802],2,53],[[898,1802,0],0,29],[[899,-1801,0],1,45],[[899,0,1801],2,1],[[899,1801,0],0,16],[[900,-1800,0],1,40],[[900,0,1800],2,61],[[900,1800,0],0,4],[[901,-1799,0],1,20],[[901,0,1799],2,41],[[901,1799,0],0,24],[[902,-1798,0],1,56],[[902,0,1798],2,12],[[902,1798,0],0,29],[[903,-1797,0],1,5],[[903,0,1797],2,16],[[903,1797,0],0,1],[[904,-1796,0],1,41],[[904,0,1796],2,5],[[904,1796,0],0,20],[[905,-1795,0],1,12],[[905,0,1795],2,17],[[905,1795,0],0,25],[[906,-1794,0],1,56],[[906,0,1794],2,4],[[906,1794,0],0,20],[[907,-1793,0],1,28],[[907,1793,0],0,25],[[908,0,1792],2,43],[[908,1792,0],0,13],[[909,-1791,0],1,56],[[909,0,1791],2,42],[[909,1791,0],0,39],[[910,-1790,0],1,44],[[910,0,1790],2,41],[[910,1790,0],0,12],[[911,-1789,0],1,21],[[911,0,1789],2,29],[[911,1789,0],0,34],[[912,-1788,0],1,39],[[912,0,1788],2,24],[[912,1788,0],0,36],[[913,-1787,0],1,1],[[913,0,1787],2,2],[[913,1787,0],0,21],[[914,-1786,0],1,62],[[914,0,1786],2,15],[[914,1786,0],0,20],[[915,-1785,0],1,13],[[915,0,1785],2,19],[[915,1785,0],0,20],[[916,-1784,0],1,40],[[916,0,1784],2,62],[[916,1784,0],0,26],[[917,-1783,0],1,16],[[917,0,1783],2,20],[[917,1783,0],0,26],[[918,-1782,0],1,48],[[918,0,1782],2,14],[[918,1782,0],0,1],[[919,-1781,0],1,57],[[919,0,1781],2,15],[[919,1781,0],0,31],[[920,-1780,0],1,36],[[920,0,1780],2,17],[[920,1780,0],0,3],[[921,-1779,0],1,43],[[921,0,1779],2,21],[[921,1779,0],0,34],[[922,-1778,0],1,9],[[922,0,1778],2,31],[[922,1778,0],0,7],[[923,-1777,0],1,53],[[923,0,1777],2,22],[[923,1777,0],0,23],[[924,-1776,0],1,15],[[924,0,1776],2,62],[[924,1776,0],0,28],[[925,-1775,0],1,13],[[925,0,1775],2,31],[[925,1775,0],0,21],[[926,-1774,0],1,32],[[926,0,1774],2,6],[[926,1774,0],0,4],[[927,-1773,0],1,49],[[927,0,1773],2,45],[[928,-1772,0],1,12],[[928,0,1772],2,13],[[928,1772,0],0,46],[[929,-1771,0],1,27],[[929,0,1771],2,36],[[929,1771,0],0,33],[[930,-1770,0],1,46],[[930,0,1770],2,23],[[930,1770,0],0,53],[[931,-1769,0],1,41],[[931,0,1769],2,46],[[931,1769,0],0,53],[[932,-1768,0],1,44],[[932,0,1768],2,7],[[932,1768,0],0,63],[[933,-1767,0],1,44],[[933,0,1767],2,13],[[933,1767,0],0,7],[[934,-1766,0],1,9],[[934,0,1766],2,22],[[934,1766,0],0,13],[[935,-1765,0],1,49],[[935,0,1765],2,46],[[935,1765,0],0,27],[[936,-1764,0],1,20],[[936,0,1764],2,61],[[936,1764,0],0,46],[[937,-1763,0],1,3],[[937,0,1763],2,4],[[937,1763,0],0,35],[[938,-1762,0],1,28],[[938,0,1762],2,39],[[938,1762,0],0,6],[[939,0,1761],2,31],[[939,1761,0],0,46],[[940,-1760,0],1,28],[[940,0,1760],2,12],[[940,1760,0],0,55],[[941,-1759,0],1,41],[[941,0,1759],2,41],[[941,1759,0],0,37],[[942,-1758,0],1,14],[[942,0,1758],2,24],[[942,1758,0],0,59],[[943,-1757,0],1,25],[[943,0,1757],2,9],[[943,1757,0],0,5],[[944,-1756,0],1,17],[[944,0,1756],2,60],[[944,1756,0],0,35],[[945,-1755,0],1,36],[[945,0,1755],2,13],[[945,1755,0],0,48],[[946,-1754,0],1,34],[[946,0,1754],2,8],[[946,1754,0],0,14],[[947,-1753,0],1,36],[[947,0,1753],2,37],[[947,1753,0],0,56],[[948,-1752,0],1,28],[[948,0,1752],2,49],[[948,1752,0],0,3],[[949,-1751,0],1,44],[[949,0,1751],2,13],[[949,1751,0],0,4],[[950,-1750,0],1,59],[[950,0,1750],2,37],[[950,1750,0],0,19],[[951,-1749,0],1,37],[[951,0,1749],2,13],[[951,1749,0],0,53],[[952,-1748,0],1,28],[[952,0,1748],2,36],[[952,1748,0],0,54],[[953,-1747,0],1,4],[[953,0,1747],2,48],[[953,1747,0],0,1],[[954,-1746,0],1,3],[[954,0,1746],2,13],[[954,1746,0],0,3],[[955,-1745,0],1,29],[[955,0,1745],2,44],[[955,1745,0],0,9],[[956,-1744,0],1,56],[[956,0,1744],2,45],[[956,1744,0],0,43],[[957,-1743,0],1,37],[[957,0,1743],2,37],[[957,1743,0],0,52],[[958,-1742,0],1,30],[[958,0,1742],2,52],[[958,1742,0],0,3],[[959,-1741,0],1,48],[[959,0,1741],2,13],[[959,1741,0],0,40],[[960,-1740,0],1,49],[[960,0,1740],2,45],[[960,1740,0],0,18],[[961,-1739,0],1,13],[[961,0,1739],2,5],[[961,1739,0],0,53],[[962,-1738,0],1,23],[[962,0,1738],2,37],[[962,1738,0],0,51],[[963,-1737,0],1,48],[[963,0,1737],2,60],[[963,1737,0],0,25],[[964,-1736,0],1,56],[[964,0,1736],2,60],[[964,1736,0],0,34],[[965,-1735,0],1,44],[[965,0,1735],2,12],[[965,1735,0],0,28],[[966,-1734,0],1,63],[[966,0,1734],2,5],[[966,1734,0],0,18],[[967,-1733,0],1,41],[[967,0,1733],2,52],[[967,1733,0],0,49],[[968,-1732,0],1,24],[[968,0,1732],2,28],[[968,1732,0],0,10],[[969,-1731,0],1,4],[[969,0,1731],2,29],[[969,1731,0],0,60],[[970,-1730,0],1,38],[[970,0,1730],2,4],[[970,1730,0],0,42],[[971,-1729,0],1,9],[[971,0,1729],2,21],[[971,1729,0],0,48],[[972,-1728,0],1,31],[[972,0,1728],2,23],[[972,1728,0],0,60],[[973,-1727,0],1,41],[[973,0,1727],2,22],[[973,1727,0],0,61],[[974,-1726,0],1,44],[[974,0,1726],2,1],[[974,1726,0],0,55],[[975,-1725,0],1,3],[[975,0,1725],2,47],[[975,1725,0],0,29],[[976,-1724,0],1,23],[[976,0,1724],2,29],[[976,1724,0],0,21],[[977,-1723,0],1,6],[[977,0,1723],2,63],[[977,1723,0],0,57],[[978,-1722,0],1,34],[[978,0,1722],2,40],[[978,1722,0],0,31],[[979,-1721,0],1,24],[[979,0,1721],2,43],[[979,1721,0],0,56],[[980,-1720,0],1,59],[[980,0,1720],2,58],[[980,1720,0],0,48],[[981,-1719,0],1,7],[[981,0,1719],2,58],[[981,1719,0],0,44],[[982,-1718,0],1,30],[[982,0,1718],2,46],[[982,1718,0],0,38],[[983,-1717,0],1,9],[[983,0,1717],2,59],[[983,1717,0],0,44],[[984,-1716,0],1,47],[[984,0,1716],2,60],[[984,1716,0],0,25],[[985,-1715,0],1,35],[[985,0,1715],2,30],[[985,1715,0],0,41],[[986,-1714,0],1,43],[[986,0,1714],2,61],[[986,1714,0],0,63],[[987,-1713,0],1,28],[[987,0,1713],2,43],[[987,1713,0],0,32],[[988,-1712,0],1,19],[[988,0,1712],2,54],[[988,1712,0],0,45],[[989,-1711,0],1,39],[[989,0,1711],2,18],[[989,1711,0],0,41],[[990,-1710,0],1,11],[[990,0,1710],2,63],[[990,1710,0],0,39],[[991,-1709,0],1,4],[[991,0,1709],2,50],[[991,1709,0],0,16],[[992,-1708,0],1,18],[[992,0,1708],2,60],[[992,1708,0],0,28],[[993,-1707,0],1,46],[[993,0,1707],2,51],[[993,1707,0],0,56],[[994,-1706,0],1,27],[[994,0,1706],2,28],[[994,1706,0],0,62],[[995,-1705,0],1,5],[[995,0,1705],2,50],[[995,1705,0],0,41],[[996,-1704,0],1,18],[[996,0,1704],2,6],[[996,1704,0],0,5],[[997,-1703,0],1,15],[[997,0,1703],2,10],[[997,1703,0],0,9],[[998,-1702,0],1,58],[[998,0,1702],2,23],[[998,1702,0],0,55],[[999,-1701,0],1,4],[[999,0,1701],2,26],[[999,1701,0],0,40],[[1000,-1700,0],1,3],[[1000,0,1700],2,61],[[1000,1700,0],0,20],[[1001,-1699,0],1,39],[[1001,0,1699],2,43],[[1001,1699,0],0,16],[[1002,-1698,0],1,11],[[1002,0,1698],2,37],[[1002,1698,0],0,47],[[1003,-1697,0],1,37],[[1003,0,1697],2,11],[[1003,1697,0],0,40],[[1004,-1696,0],1,22],[[1004,0,1696],2,6],[[1004,1696,0],0,31],[[1005,-1695,0],1,33],[[1005,0,1695],2,53],[[1005,1695,0],0,30],[[1006,-1694,0],1,13],[[1006,0,1694],2,58],[[1006,1694,0],0,55],[[1007,-1693,0],1,21],[[1007,0,1693],2,37],[[1007,1693,0],0,3],[[1008,-1692,0],1,14],[[1008,0,1692],2,10],[[1008,1692,0],0,15],[[1009,-1691,0],1,9],[[1009,0,1691],2,25],[[1009,1691,0],0,35],[[1010,-1690,0],1,41],[[1010,0,1690],2,22],[[1010,1690,0],0,15],[[1011,-1689,0],1,21],[[1011,0,1689],2,56],[[1011,1689,0],0,42],[[1012,-1688,0],1,10],[[1012,0,1688],2,14],[[1012,1688,0],0,3],[[1013,-1687,0],1,28],[[1013,0,1687],2,45],[[1013,1687,0],0,23],[[1014,-1686,0],1,13],[[1014,0,1686],2,62],[[1014,1686,0],0,38],[[1015,-1685,0],1,41],[[1015,0,1685],2,57],[[1015,1685,0],0,39],[[1016,-1684,0],1,6],[[1016,0,1684],2,6],[[1016,1684,0],0,19],[[1017,-1683,0],1,40],[[1017,0,1683],2,20],[[1017,1683,0],0,19],[[1018,0,1682],2,62],[[1018,1682,0],0,63],[[1019,-1681,0],1,20],[[1019,0,1681],2,17],[[1019,1681,0],0,19],[[1020,-1680,0],1,3],[[1020,0,1680],2,15],[[1020,1680,0],0,63],[[1021,-1679,0],1,29],[[1021,0,1679],2,48],[[1021,1679,0],0,19],[[1022,-1678,0],1,8],[[1022,0,1678],2,55],[[1022,1678,0],0,62],[[1023,-1677,0],1,28],[[1023,0,1677],2,16],[[1023,1677,0],0,42],[[1024,-1676,0],1,2],[[1024,0,1676],2,47],[[1024,1676,0],0,47],[[1025,-1675,0],1,4],[[1025,0,1675],2,1],[[1025,1675,0],0,59],[[1026,-1674,0],1,32],[[1026,0,1674],2,14],[[1026,1674,0],0,31],[[1027,-1673,0],1,37],[[1027,0,1673],2,49],[[1027,1673,0],0,34],[[1028,-1672,0],1,18],[[1028,0,1672],2,55],[[1028,1672,0],0,7],[[1029,-1671,0],1,12],[[1029,0,1671],2,33],[[1029,1671,0],0,18],[[1030,-1670,0],1,17],[[1030,0,1670],2,31],[[1030,1670,0],0,30],[[1031,-1669,0],1,5],[[1031,1669,0],0,19],[[1032,-1668,0],1,2],[[1032,0,1668],2,7],[[1032,1668,0],0,23],[[1033,-1667,0],1,12],[[1033,1667,0],0,3],[[1034,-1666,0],1,1],[[1034,0,1666],2,15],[[1034,1666,0],0,14],[[1035,-1665,0],1,4],[[1035,0,1665],2,17],[[1035,1665,0],0,18],[[1036,-1664,0],1,7],[[1036,0,1664],2,24],[[1036,1664,0],0,59],[[1037,-1663,0],1,17],[[1037,0,1663],2,15],[[1037,1663,0],0,33],[[1038,-1662,0],1,37],[[1038,0,1662],2,50],[[1038,1662,0],0,19],[[1039,-1661,0],1,4],[[1039,0,1661],2,21],[[1039,1661,0],0,4],[[1040,-1660,0],1,5],[[1040,0,1660],2,23],[[1040,1660,0],0,22],[[1041,-1659,0],1,40],[[1041,0,1659],2,3],[[1041,1659,0],0,3],[[1042,-1658,0],1,2],[[1042,0,1658],2,9],[[1042,1658,0],0,34],[[1043,-1657,0],1,48],[[1043,0,1657],2,27],[[1043,1657,0],0,38],[[1044,-1656,0],1,30],[[1044,0,1656],2,41],[[1044,1656,0],0,5],[[1045,-1655,0],1,1],[[1045,0,1655],2,41],[[1045,1655,0],0,37],[[1046,-1654,0],1,41],[[1046,0,1654],2,21],[[1046,1654,0],0,27],[[1047,-1653,0],1,33],[[1047,0,1653],2,14],[[1047,1653,0],0,37],[[1048,-1652,0],1,54],[[1048,0,1652],2,11],[[1048,1652,0],0,32],[[1049,-1651,0],1,54],[[1049,0,1651],2,36],[[1049,1651,0],0,52],[[1050,-1650,0],1,61],[[1050,0,1650],2,12],[[1050,1650,0],0,36],[[1051,-1649,0],1,49],[[1051,0,1649],2,47],[[1051,1649,0],0,44],[[1052,-1648,0],1,4],[[1052,0,1648],2,13],[[1052,1648,0],0,47],[[1053,-1647,0],1,12],[[1053,0,1647],2,30],[[1053,1647,0],0,38],[[1054,-1646,0],1,9],[[1054,0,1646],2,52],[[1054,1646,0],0,31],[[1055,-1645,0],1,25],[[1055,0,1645],2,44],[[1055,1645,0],0,35],[[1056,-1644,0],1,30],[[1056,0,1644],2,62],[[1056,1644,0],0,28],[[1057,-1643,0],1,59],[[1057,0,1643],2,52],[[1057,1643,0],0,10],[[1058,-1642,0],1,54],[[1058,0,1642],2,45],[[1058,1642,0],0,55],[[1059,-1641,0],1,16],[[1059,0,1641],2,38],[[1059,1641,0],0,39],[[1060,-1640,0],1,23],[[1060,0,1640],2,52],[[1060,1640,0],0,12],[[1061,-1639,0],1,37],[[1061,0,1639],2,21],[[1061,1639,0],0,21],[[1062,-1638,0],1,56],[[1062,0,1638],2,61],[[1062,1638,0],0,39],[[1063,-1637,0],1,41],[[1063,0,1637],2,38],[[1063,1637,0],0,56],[[1064,-1636,0],1,23],[[1064,0,1636],2,23],[[1064,1636,0],0,44],[[1065,-1635,0],1,27],[[1065,0,1635],2,13],[[1065,1635,0],0,41],[[1066,-1634,0],1,36],[[1066,0,1634],2,28],[[1066,1634,0],0,12],[[1067,-1633,0],1,8],[[1067,0,1633],2,15],[[1067,1633,0],0,60],[[1068,-1632,0],1,11],[[1068,0,1632],2,2],[[1068,1632,0],0,56],[[1069,-1631,0],1,5],[[1069,0,1631],2,53],[[1069,1631,0],0,27],[[1070,-1630,0],1,6],[[1070,0,1630],2,6],[[1070,1630,0],0,21],[[1071,-1629,0],1,17],[[1071,0,1629],2,56],[[1071,1629,0],0,63],[[1072,-1628,0],1,34],[[1072,0,1628],2,7],[[1072,1628,0],0,25],[[1073,-1627,0],1,4],[[1073,0,1627],2,52],[[1073,1627,0],0,39],[[1074,-1626,0],1,6],[[1074,0,1626],2,47],[[1074,1626,0],0,32],[[1075,0,1625],2,4],[[1075,1625,0],0,19],[[1076,-1624,0],1,27],[[1076,0,1624],2,47],[[1076,1624,0],0,52],[[1077,-1623,0],1,4],[[1077,0,1623],2,49],[[1077,1623,0],0,34],[[1078,-1622,0],1,19],[[1078,0,1622],2,55],[[1078,1622,0],0,32],[[1079,-1621,0],1,21],[[1079,0,1621],2,45],[[1079,1621,0],0,23],[[1080,-1620,0],1,14],[[1080,0,1620],2,31],[[1080,1620,0],0,20],[[1081,0,1619],2,16],[[1081,1619,0],0,31],[[1082,-1618,0],1,30],[[1082,0,1618],2,63],[[1082,1618,0],0,48],[[1083,0,1617],2,5],[[1083,1617,0],0,42],[[1084,-1616,0],1,34],[[1084,0,1616],2,55],[[1084,1616,0],0,17],[[1085,-1615,0],1,28],[[1085,0,1615],2,12],[[1085,1615,0],0,31],[[1086,-1614,0],1,7],[[1086,0,1614],2,63],[[1086,1614,0],0,25],[[1087,-1613,0],1,56],[[1087,0,1613],2,29],[[1087,1613,0],0,50],[[1088,-1612,0],1,19],[[1088,0,1612],2,55],[[1088,1612,0],0,16],[[1089,-1611,0],1,36],[[1089,0,1611],2,29],[[1089,1611,0],0,46],[[1090,-1610,0],1,63],[[1090,0,1610],2,63],[[1090,1610,0],0,57],[[1091,-1609,0],1,25],[[1091,0,1609],2,45],[[1091,1609,0],0,18],[[1092,-1608,0],1,35],[[1092,0,1608],2,46],[[1092,1608,0],0,32],[[1093,-1607,0],1,29],[[1093,0,1607],2,20],[[1093,1607,0],0,63],[[1094,-1606,0],1,30],[[1094,0,1606],2,30],[[1094,1606,0],0,17],[[1095,-1605,0],1,17],[[1095,0,1605],2,36],[[1095,1605,0],0,43],[[1096,-1604,0],1,27],[[1096,0,1604],2,14],[[1096,1604,0],0,16],[[1097,-1603,0],1,5],[[1097,0,1603],2,20],[[1097,1603,0],0,47],[[1098,-1602,0],1,62],[[1098,0,1602],2,14],[[1098,1602,0],0,49],[[1099,-1601,0],1,17],[[1099,0,1601],2,4],[[1099,1601,0],0,59],[[1100,-1600,0],1,44],[[1100,0,1600],2,16],[[1100,1600,0],0,38],[[1101,-1599,0],1,29],[[1101,0,1599],2,62],[[1101,1599,0],0,47],[[1102,-1598,0],1,52],[[1102,0,1598],2,15],[[1102,1598,0],0,45],[[1103,-1597,0],1,51],[[1103,0,1597],2,31],[[1103,1597,0],0,27],[[1104,-1596,0],1,5],[[1104,0,1596],2,51],[[1104,1596,0],0,6],[[1105,-1595,0],1,14],[[1105,0,1595],2,22],[[1105,1595,0],0,50],[[1106,-1594,0],1,43],[[1106,0,1594],2,10],[[1106,1594,0],0,36],[[1107,-1593,0],1,48],[[1107,0,1593],2,51],[[1107,1593,0],0,10],[[1108,-1592,0],1,56],[[1108,0,1592],2,33],[[1108,1592,0],0,27],[[1109,-1591,0],1,31],[[1109,0,1591],2,3],[[1109,1591,0],0,22],[[1110,-1590,0],1,31],[[1110,0,1590],2,60],[[1110,1590,0],0,36],[[1111,-1589,0],1,40],[[1111,0,1589],2,19],[[1111,1589,0],0,63],[[1112,-1588,0],1,36],[[1112,0,1588],2,6],[[1112,1588,0],0,27],[[1113,-1587,0],1,42],[[1113,0,1587],2,47],[[1113,1587,0],0,27],[[1114,-1586,0],1,18],[[1114,0,1586],2,15],[[1114,1586,0],0,61],[[1115,-1585,0],1,45],[[1115,0,1585],2,59],[[1115,1585,0],0,27],[[1116,-1584,0],1,17],[[1116,0,1584],2,28],[[1116,1584,0],0,46],[[1117,-1583,0],1,38],[[1117,0,1583],2,35],[[1117,1583,0],0,10],[[1118,-1582,0],1,43],[[1118,0,1582],2,13],[[1118,1582,0],0,37],[[1119,-1581,0],1,36],[[1119,0,1581],2,34],[[1119,1581,0],0,35],[[1120,-1580,0],1,57],[[1120,0,1580],2,31],[[1120,1580,0],0,62],[[1121,-1579,0],1,15],[[1121,0,1579],2,10],[[1121,1579,0],0,2],[[1122,-1578,0],1,11],[[1122,0,1578],2,39],[[1122,1578,0],0,29],[[1123,-1577,0],1,44],[[1123,0,1577],2,43],[[1123,1577,0],0,3],[[1124,0,1576],2,61],[[1124,1576,0],0,31],[[1125,-1575,0],1,46],[[1125,0,1575],2,50],[[1125,1575,0],0,26],[[1126,-1574,0],1,34],[[1126,0,1574],2,36],[[1126,1574,0],0,21],[[1127,-1573,0],1,61],[[1127,0,1573],2,18],[[1127,1573,0],0,3],[[1128,-1572,0],1,24],[[1128,0,1572],2,15],[[1128,1572,0],0,14],[[1129,-1571,0],1,14],[[1129,0,1571],2,27],[[1129,1571,0],0,3],[[1130,-1570,0],1,27],[[1130,0,1570],2,6],[[1130,1570,0],0,13],[[1131,-1569,0],1,29],[[1131,0,1569],2,11],[[1131,1569,0],0,18],[[1132,-1568,0],1,36],[[1132,0,1568],2,21],[[1132,1568,0],0,44],[[1133,-1567,0],1,49],[[1133,0,1567],2,29],[[1133,1567,0],0,45],[[1134,-1566,0],1,60],[[1134,0,1566],2,48],[[1134,1566,0],0,28],[[1135,-1565,0],1,29],[[1135,0,1565],2,45],[[1136,-1564,0],1,4],[[1136,0,1564],2,16],[[1136,1564,0],0,12],[[1137,-1563,0],1,32],[[1137,0,1563],2,24],[[1137,1563,0],0,24],[[1138,-1562,0],1,24],[[1138,0,1562],2,4],[[1138,1562,0],0,44],[[1139,-1561,0],1,13],[[1139,0,1561],2,56],[[1139,1561,0],0,48],[[1140,-1560,0],1,16],[[1140,0,1560],2,20],[[1141,-1559,0],1,36],[[1141,0,1559],2,36],[[1141,1559,0],0,52],[[1142,-1558,0],1,36],[[1142,0,1558],2,37],[[1142,1558,0],0,20],[[1143,-1557,0],1,32],[[1143,0,1557],2,33],[[1143,1557,0],0,37],[[1144,-1556,0],1,4],[[1144,0,1556],2,20],[[1144,1556,0],0,1],[[1145,-1555,0],1,1],[[1145,0,1555],2,20],[[1145,1555,0],0,49],[[1146,-1554,0],1,49],[[1146,0,1554],2,37],[[1146,1554,0],0,5],[[1147,-1553,0],1,5],[[1147,0,1553],2,17],[[1147,1553,0],0,16],[[1148,-1552,0],1,48],[[1148,0,1552],2,4],[[1148,1552,0],0,20],[[1149,-1551,0],1,52],[[1149,0,1551],2,1],[[1149,1551,0],0,16],[[1150,-1550,0],1,17],[[1150,0,1550],2,36],[[1150,1550,0],0,53],[[1151,-1549,0],1,5],[[1151,1549,0],0,32],[[1152,-1548,0],1,16],[[1152,0,1548],2,53],[[1152,1548,0],0,53],[[1153,-1547,0],1,4],[[1153,0,1547],2,1],[[1153,1547,0],0,33],[[1154,-1546,0],1,48],[[1154,0,1546],2,4],[[1154,1546,0],0,21],[[1155,-1545,0],1,52],[[1155,0,1545],2,33],[[1155,1545,0],0,48],[[1156,0,1544],2,53],[[1156,1544,0],0,21],[[1157,-1543,0],1,4],[[1157,0,1543],2,48],[[1158,0,1542],2,4],[[1158,1542,0],0,5],[[1159,-1541,0],1,20],[[1159,0,1541],2,16],[[1159,1541,0],0,1],[[1160,-1540,0],1,16],[[1160,0,1540],2,20],[[1160,1540,0],0,20],[[1161,-1539,0],1,5],[[1161,0,1539],2,1],[[1162,-1538,0],1,16],[[1162,0,1538],2,5],[[1162,1538,0],0,21],[[1163,-1537,0],1,20],[[1163,0,1537],2,1],[[1163,1537,0],0,16],[[1164,-1536,0],1,52],[[1164,0,1536],2,50],[[1164,1536,0],0,4],[[1165,-1535,0],1,17],[[1165,1535,0],0,36],[[1166,-1534,0],1,36],[[1166,0,1534],2,24],[[1166,1534,0],0,29],[[1167,-1533,0],1,44],[[1167,0,1533],2,26],[[1167,1533,0],0,3],[[1168,-1532,0],1,28],[[1168,0,1532],2,39],[[1168,1532,0],0,37],[[1169,-1531,0],1,18],[[1169,0,1531],2,39],[[1169,1531,0],0,5],[[1170,-1530,0],1,36],[[1170,0,1530],2,5],[[1170,1530,0],0,27],[[1171,-1529,0],1,52],[[1171,0,1529],2,40],[[1171,1529,0],0,63],[[1172,-1528,0],1,59],[[1172,0,1528],2,17],[[1172,1528,0],0,38],[[1173,-1527,0],1,25],[[1173,0,1527],2,63],[[1173,1527,0],0,46],[[1174,-1526,0],1,4],[[1174,0,1526],2,53],[[1174,1526,0],0,26],[[1175,-1525,0],1,2],[[1175,0,1525],2,31],[[1175,1525,0],0,62],[[1176,-1524,0],1,6],[[1176,0,1524],2,44],[[1176,1524,0],0,35],[[1177,-1523,0],1,9],[[1177,0,1523],2,7],[[1177,1523,0],0,47],[[1178,-1522,0],1,57],[[1178,0,1522],2,52],[[1178,1522,0],0,7],[[1179,-1521,0],1,19],[[1179,0,1521],2,2],[[1179,1521,0],0,26],[[1180,-1520,0],1,36],[[1180,0,1520],2,10],[[1180,1520,0],0,42],[[1181,-1519,0],1,37],[[1181,0,1519],2,19],[[1181,1519,0],0,52],[[1182,-1518,0],1,11],[[1182,0,1518],2,13],[[1182,1518,0],0,30],[[1183,-1517,0],1,13],[[1183,0,1517],2,21],[[1183,1517,0],0,9],[[1184,-1516,0],1,28],[[1184,0,1516],2,21],[[1184,1516,0],0,2],[[1185,-1515,0],1,12],[[1185,0,1515],2,33],[[1185,1515,0],0,49],[[1186,-1514,0],1,58],[[1186,0,1514],2,1],[[1186,1514,0],0,22],[[1187,-1513,0],1,52],[[1187,0,1513],2,61],[[1187,1513,0],0,44],[[1188,-1512,0],1,16],[[1188,0,1512],2,52],[[1188,1512,0],0,50],[[1189,-1511,0],1,53],[[1189,0,1511],2,56],[[1190,-1510,0],1,26],[[1190,0,1510],2,25],[[1190,1510,0],0,50],[[1191,-1509,0],1,17],[[1191,0,1509],2,57],[[1191,1509,0],0,57],[[1192,-1508,0],1,56],[[1192,0,1508],2,24],[[1192,1508,0],0,18],[[1193,-1507,0],1,12],[[1193,0,1507],2,20],[[1193,1507,0],0,49],[[1194,-1506,0],1,58],[[1194,0,1506],2,44],[[1194,1506,0],0,50],[[1195,-1505,0],1,33],[[1195,0,1505],2,5],[[1195,1505,0],0,48],[[1196,-1504,0],1,32],[[1196,0,1504],2,61],[[1196,1504,0],0,48],[[1197,-1503,0],1,5],[[1197,0,1503],2,30],[[1197,1503,0],0,60],[[1198,-1502,0],1,2],[[1198,0,1502],2,40],[[1198,1502,0],0,7],[[1199,-1501,0],1,21],[[1199,0,1501],2,25],[[1199,1501,0],0,4],[[1200,-1500,0],1,5],[[1200,0,1500],2,60],[[1200,1500,0],0,63],[[1201,-1499,0],1,21],[[1201,0,1499],2,10],[[1201,1499,0],0,42],[[1202,-1498,0],1,7],[[1202,0,1498],2,29],[[1202,1498,0],0,60],[[1203,-1497,0],1,37],[[1203,0,1497],2,17],[[1203,1497,0],0,19],[[1204,-1496,0],1,48],[[1204,0,1496],2,4],[[1204,1496,0],0,50],[[1205,-1495,0],1,12],[[1205,0,1495],2,53],[[1205,1495,0],0,61],[[1206,-1494,0],1,27],[[1206,0,1494],2,33],[[1206,1494,0],0,23],[[1207,-1493,0],1,36],[[1207,0,1493],2,49],[[1207,1493,0],0,48],[[1208,-1492,0],1,21],[[1208,0,1492],2,60],[[1208,1492,0],0,27],[[1209,-1491,0],1,37],[[1209,0,1491],2,60],[[1209,1491,0],0,20],[[1210,-1490,0],1,46],[[1210,0,1490],2,4],[[1210,1490,0],0,19],[[1211,-1489,0],1,5],[[1211,0,1489],2,28],[[1211,1489,0],0,33],[[1212,-1488,0],1,16],[[1212,0,1488],2,5],[[1212,1488,0],0,59],[[1213,-1487,0],1,53],[[1213,0,1487],2,33],[[1213,1487,0],0,56],[[1214,-1486,0],1,35],[[1214,0,1486],2,57],[[1214,1486,0],0,42],[[1215,-1485,0],1,24],[[1215,0,1485],2,40],[[1215,1485,0],0,56],[[1216,-1484,0],1,32],[[1216,0,1484],2,33],[[1216,1484,0],0,11],[[1217,-1483,0],1,60],[[1217,0,1483],2,5],[[1217,1483,0],0,17],[[1218,-1482,0],1,27],[[1218,0,1482],2,13],[[1218,1482,0],0,43],[[1219,-1481,0],1,32],[[1219,0,1481],2,29],[[1219,1481,0],0,32],[[1220,-1480,0],1,25],[[1220,0,1480],2,36],[[1220,1480,0],0,58],[[1221,-1479,0],1,45],[[1221,0,1479],2,16],[[1221,1479,0],0,57],[[1222,-1478,0],1,3],[[1222,0,1478],2,57],[[1222,1478,0],0,26],[[1223,-1477,0],1,49],[[1223,0,1477],2,24],[[1223,1477,0],0,56],[[1224,-1476,0],1,24],[[1224,0,1476],2,56],[[1224,1476,0],0,19],[[1225,-1475,0],1,13],[[1225,0,1475],2,60],[[1225,1475,0],0,17],[[1226,-1474,0],1,19],[[1226,0,1474],2,4],[[1226,1474,0],0,34],[[1227,-1473,0],1,16],[[1227,0,1473],2,28],[[1227,1473,0],0,49],[[1228,-1472,0],1,41],[[1228,0,1472],2,62],[[1228,1472,0],0,18],[[1229,-1471,0],1,9],[[1229,0,1471],2,24],[[1229,1471,0],0,8],[[1230,-1470,0],1,20],[[1230,0,1470],2,57],[[1230,1470,0],0,15],[[1231,-1469,0],1,37],[[1231,0,1469],2,26],[[1231,1469,0],0,41],[[1232,-1468,0],1,33],[[1232,0,1468],2,34],[[1232,1468,0],0,39],[[1233,-1467,0],1,26],[[1233,0,1467],2,49],[[1233,1467,0],0,52],[[1234,-1466,0],1,27],[[1234,0,1466],2,32],[[1234,1466,0],0,7],[[1235,-1465,0],1,43],[[1235,0,1465],2,32],[[1235,1465,0],0,45],[[1236,-1464,0],1,9],[[1236,0,1464],2,31],[[1236,1464,0],0,59],[[1237,-1463,0],1,20],[[1237,0,1463],2,30],[[1237,1463,0],0,48],[[1238,-1462,0],1,43],[[1238,0,1462],2,26],[[1238,1462,0],0,54],[[1239,-1461,0],1,7],[[1239,0,1461],2,62],[[1239,1461,0],0,36],[[1240,-1460,0],1,9],[[1240,0,1460],2,10],[[1240,1460,0],0,2],[[1241,-1459,0],1,4],[[1241,0,1459],2,14],[[1241,1459,0],0,9],[[1242,-1458,0],1,27],[[1242,0,1458],2,31],[[1242,1458,0],0,2],[[1243,-1457,0],1,10],[[1243,0,1457],2,31],[[1243,1457,0],0,32],[[1244,-1456,0],1,54],[[1244,0,1456],2,1],[[1244,1456,0],0,18],[[1245,-1455,0],1,36],[[1245,0,1455],2,50],[[1245,1455,0],0,38],[[1246,-1454,0],1,24],[[1246,0,1454],2,30],[[1246,1454,0],0,62],[[1247,-1453,0],1,53],[[1247,0,1453],2,12],[[1247,1453,0],0,43],[[1248,-1452,0],1,6],[[1248,0,1452],2,30],[[1248,1452,0],0,11],[[1249,-1451,0],1,52],[[1249,0,1451],2,41],[[1249,1451,0],0,42],[[1250,-1450,0],1,41],[[1250,0,1450],2,58],[[1250,1450,0],0,15],[[1251,-1449,0],1,4],[[1251,0,1449],2,53],[[1251,1449,0],0,22],[[1252,-1448,0],1,3],[[1252,0,1448],2,15],[[1252,1448,0],0,19],[[1253,-1447,0],1,20],[[1253,0,1447],2,56],[[1253,1447,0],0,51],[[1254,-1446,0],1,41],[[1254,0,1446],2,42],[[1254,1446,0],0,27],[[1255,-1445,0],1,24],[[1255,0,1445],2,48],[[1255,1445,0],0,34],[[1256,-1444,0],1,51],[[1256,0,1444],2,59],[[1256,1444,0],0,34],[[1257,-1443,0],1,60],[[1257,0,1443],2,29],[[1257,1443,0],0,18],[[1258,-1442,0],1,32],[[1258,0,1442],2,15],[[1258,1442,0],0,18],[[1259,-1441,0],1,33],[[1259,0,1441],2,29],[[1259,1441,0],0,10],[[1260,-1440,0],1,46],[[1260,0,1440],2,18],[[1260,1440,0],0,34],[[1261,-1439,0],1,24],[[1261,0,1439],2,13],[[1261,1439,0],0,22],[[1262,-1438,0],1,53],[[1262,0,1438],2,63],[[1262,1438,0],0,30],[[1263,-1437,0],1,1],[[1263,0,1437],2,4],[[1263,1437,0],0,22],[[1264,-1436,0],1,23],[[1264,0,1436],2,14],[[1264,1436,0],0,38],[[1265,-1435,0],1,29],[[1265,0,1435],2,24],[[1265,1435,0],0,31],[[1266,-1434,0],1,57],[[1266,0,1434],2,51],[[1266,1434,0],0,3],[[1267,-1433,0],1,32],[[1267,0,1433],2,1],[[1267,1433,0],0,2],[[1268,-1432,0],1,58],[[1268,0,1432],2,55],[[1268,1432,0],0,19],[[1269,-1431,0],1,8],[[1269,0,1431],2,61],[[1269,1431,0],0,34],[[1270,-1430,0],1,56],[[1270,0,1430],2,23],[[1270,1430,0],0,11],[[1271,-1429,0],1,40],[[1271,0,1429],2,5],[[1271,1429,0],0,11],[[1272,-1428,0],1,18],[[1272,0,1428],2,3],[[1272,1428,0],0,42],[[1273,-1427,0],1,53],[[1273,0,1427],2,37],[[1273,1427,0],0,10],[[1274,-1426,0],1,57],[[1274,0,1426],2,7],[[1274,1426,0],0,27],[[1275,-1425,0],1,16],[[1275,0,1425],2,5],[[1275,1425,0],0,27],[[1276,-1424,0],1,50],[[1276,0,1424],2,6],[[1276,1424,0],0,3],[[1277,-1423,0],1,21],[[1277,0,1423],2,41],[[1277,1423,0],0,51],[[1278,-1422,0],1,57],[[1278,0,1422],2,3],[[1278,1422,0],0,50],[[1279,-1421,0],1,40],[[1279,0,1421],2,17],[[1279,1421,0],0,43],[[1280,-1420,0],1,27],[[1280,0,1420],2,11],[[1280,1420,0],0,58],[[1281,-1419,0],1,13],[[1281,0,1419],2,28],[[1281,1419,0],0,2],[[1282,-1418,0],1,48],[[1282,0,1418],2,38],[[1282,1418,0],0,18],[[1283,-1417,0],1,41],[[1283,0,1417],2,4],[[1283,1417,0],0,3],[[1284,-1416,0],1,50],[[1284,0,1416],2,6],[[1284,1416,0],0,2],[[1285,-1415,0],1,53],[[1285,0,1415],2,8],[[1285,1415,0],0,43],[[1286,-1414,0],1,41],[[1286,0,1414],2,51],[[1286,1414,0],0,34],[[1287,-1413,0],1,1],[[1287,1413,0],0,50],[[1288,-1412,0],1,27],[[1288,0,1412],2,18],[[1288,1412,0],0,51],[[1289,-1411,0],1,37],[[1289,0,1411],2,52],[[1289,1411,0],0,11],[[1290,-1410,0],1,40],[[1290,0,1410],2,30],[[1290,1410,0],0,10],[[1291,-1409,0],1,25],[[1291,0,1409],2,5],[[1291,1409,0],0,26],[[1292,-1408,0],1,34],[[1292,0,1408],2,42],[[1292,1408,0],0,12],[[1293,-1407,0],1,11],[[1293,0,1407],2,3],[[1293,1407,0],0,22],[[1294,-1406,0],1,32],[[1294,0,1406],2,6],[[1294,1406,0],0,7],[[1295,-1405,0],1,28],[[1295,0,1405],2,42],[[1295,1405,0],0,45],[[1296,-1404,0],1,47],[[1296,0,1404],2,32],[[1296,1404,0],0,15],[[1297,-1403,0],1,53],[[1297,0,1403],2,6],[[1297,1403,0],0,57],[[1298,-1402,0],1,41],[[1298,0,1402],2,33],[[1298,1402,0],0,46],[[1299,-1401,0],1,57],[[1299,0,1401],2,50],[[1299,1401,0],0,14],[[1300,-1400,0],1,53],[[1300,0,1400],2,47],[[1300,1400,0],0,44],[[1301,-1399,0],1,28],[[1301,0,1399],2,46],[[1301,1399,0],0,44],[[1302,-1398,0],1,8],[[1302,0,1398],2,30],[[1302,1398,0],0,25],[[1303,-1397,0],1,59],[[1303,0,1397],2,14],[[1303,1397,0],0,1],[[1304,-1396,0],1,61],[[1304,0,1396],2,38],[[1304,1396,0],0,32],[[1305,-1395,0],1,9],[[1305,0,1395],2,35],[[1305,1395,0],0,48],[[1306,-1394,0],1,36],[[1306,0,1394],2,35],[[1306,1394,0],0,36],[[1307,-1393,0],1,63],[[1307,0,1393],2,47],[[1307,1393,0],0,24],[[1308,-1392,0],1,30],[[1308,0,1392],2,60],[[1308,1392,0],0,24],[[1309,-1391,0],1,49],[[1309,0,1391],2,50],[[1309,1391,0],0,22],[[1310,-1390,0],1,10],[[1310,0,1390],2,55],[[1310,1390,0],0,60],[[1311,-1389,0],1,53],[[1311,0,1389],2,28],[[1311,1389,0],0,19],[[1312,-1388,0],1,39],[[1312,0,1388],2,46],[[1312,1388,0],0,49],[[1313,-1387,0],1,8],[[1313,0,1387],2,29],[[1313,1387,0],0,19],[[1314,-1386,0],1,3],[[1314,0,1386],2,54],[[1314,1386,0],0,52],[[1315,-1385,0],1,21],[[1315,0,1385],2,49],[[1315,1385,0],0,38],[[1316,-1384,0],1,10],[[1316,0,1384],2,3],[[1316,1384,0],0,32],[[1317,0,1383],2,57],[[1317,1383,0],0,51],[[1318,-1382,0],1,27],[[1318,0,1382],2,27],[[1318,1382,0],0,48],[[1319,-1381,0],1,56],[[1319,0,1381],2,49],[[1319,1381,0],0,42],[[1320,-1380,0],1,18],[[1320,0,1380],2,42],[[1320,1380,0],0,32],[[1321,-1379,0],1,48],[[1321,0,1379],2,57],[[1321,1379,0],0,58],[[1322,-1378,0],1,43],[[1322,0,1378],2,50],[[1323,-1377,0],1,17],[[1323,0,1377],2,41],[[1323,1377,0],0,2],[[1324,-1376,0],1,54],[[1324,0,1376],2,35],[[1324,1376,0],0,41],[[1325,-1375,0],1,33],[[1325,0,1375],2,53],[[1325,1375,0],0,47],[[1326,-1374,0],1,23],[[1326,0,1374],2,62],[[1326,1374,0],0,52],[[1327,0,1373],2,60],[[1327,1373,0],0,30],[[1328,-1372,0],1,14],[[1328,0,1372],2,2],[[1328,1372,0],0,5],[[1329,-1371,0],1,57],[[1329,1371,0],0,7],[[1330,-1370,0],1,59],[[1330,0,1370],2,10],[[1330,1370,0],0,17],[[1331,-1369,0],1,17],[[1331,0,1369],2,49],[[1331,1369,0],0,19],[[1332,-1368,0],1,54],[[1332,0,1368],2,47],[[1332,1368,0],0,40],[[1333,-1367,0],1,61],[[1333,0,1367],2,56],[[1333,1367,0],0,14],[[1334,-1366,0],1,38],[[1334,0,1366],2,62],[[1334,1366,0],0,25],[[1335,-1365,0],1,24],[[1335,1365,0],0,18],[[1336,-1364,0],1,46],[[1336,0,1364],2,6],[[1336,1364,0],0,32],[[1337,-1363,0],1,36],[[1337,0,1363],2,40],[[1337,1363,0],0,34],[[1338,-1362,0],1,51],[[1338,0,1362],2,11],[[1338,1362,0],0,57],[[1339,-1361,0],1,1],[[1339,0,1361],2,48],[[1339,1361,0],0,35],[[1340,-1360,0],1,27],[[1340,0,1360],2,3],[[1340,1360,0],0,33],[[1341,-1359,0],1,33],[[1341,0,1359],2,33],[[1341,1359,0],0,10],[[1342,-1358,0],1,35],[[1342,0,1358],2,26],[[1342,1358,0],0,41],[[1343,0,1357],2,40],[[1343,1357,0],0,34],[[1344,-1356,0],1,43],[[1344,0,1356],2,34],[[1344,1356,0],0,32],[[1345,-1355,0],1,33],[[1345,0,1355],2,56],[[1345,1355,0],0,2],[[1346,-1354,0],1,42],[[1346,0,1354],2,3],[[1346,1354,0],0,48],[[1347,-1353,0],1,9],[[1347,0,1353],2,17],[[1347,1353,0],0,50],[[1348,-1352,0],1,27],[[1348,0,1352],2,11],[[1348,1352,0],0,56],[[1349,-1351,0],1,41],[[1349,0,1351],2,49],[[1349,1351,0],0,50],[[1350,-1350,0],1,42],[[1350,0,1350],2,26],[[1350,1350,0],0,56],[[1351,-1349,0],1,17],[[1351,0,1349],2,24],[[1351,1349,0],0,10],[[1352,-1348,0],1,58],[[1352,0,1348],2,51],[[1352,1348,0],0,49],[[1353,-1347,0],1,40],[[1353,0,1347],2,16],[[1353,1347,0],0,3],[[1354,-1346,0],1,3],[[1354,0,1346],2,2],[[1354,1346,0],0,41],[[1355,-1345,0],1,25],[[1355,0,1345],2,16],[[1355,1345,0],0,51],[[1356,-1344,0],1,10],[[1356,0,1344],2,3],[[1356,1344,0],0,56],[[1357,-1343,0],1,23],[[1357,0,1343],2,20],[[1357,1343,0],0,3],[[1358,-1342,0],1,45],[[1358,0,1342],2,63],[[1359,-1341,0],1,16],[[1359,0,1341],2,10],[[1359,1341,0],0,39],[[1360,-1340,0],1,10],[[1360,0,1340],2,21],[[1360,1340,0],0,28],[[1361,-1339,0],1,29],[[1361,0,1339],2,42],[[1361,1339,0],0,39],[[1362,-1338,0],1,26],[[1362,0,1338],2,33],[[1362,1338,0],0,28],[[1363,-1337,0],1,11],[[1363,0,1337],2,26],[[1363,1337,0],0,31],[[1364,-1336,0],1,26],[[1364,0,1336],2,44],[[1364,1336,0],0,9],[[1365,-1335,0],1,56],[[1365,0,1335],2,39],[[1365,1335,0],0,3],[[1366,-1334,0],1,2],[[1366,0,1334],2,48],[[1366,1334,0],0,8],[[1367,-1333,0],1,59],[[1367,0,1333],2,11],[[1367,1333,0],0,19],[[1368,-1332,0],1,42],[[1368,0,1332],2,33],[[1368,1332,0],0,16],[[1369,-1331,0],1,41],[[1369,0,1331],2,19],[[1369,1331,0],0,10],[[1370,-1330,0],1,58],[[1370,0,1330],2,32],[[1370,1330,0],0,25],[[1371,-1329,0],1,42],[[1371,0,1329],2,26],[[1371,1329,0],0,51],[[1372,-1328,0],1,28],[[1372,0,1328],2,47],[[1372,1328,0],0,25],[[1373,-1327,0],1,32],[[1373,0,1327],2,2],[[1373,1327,0],0,52],[[1374,-1326,0],1,17],[[1374,0,1326],2,52],[[1374,1326,0],0,20],[[1375,-1325,0],1,21],[[1375,0,1325],2,45],[[1376,-1324,0],1,53],[[1376,0,1324],2,45],[[1376,1324,0],0,17],[[1377,-1323,0],1,49],[[1377,0,1323],2,5],[[1377,1323,0],0,40],[[1378,-1322,0],1,16],[[1378,0,1322],2,21],[[1378,1322,0],0,36],[[1379,-1321,0],1,36],[[1379,0,1321],2,57],[[1379,1321,0],0,21],[[1380,-1320,0],1,24],[[1380,0,1320],2,33],[[1381,-1319,0],1,40],[[1381,0,1319],2,33],[[1381,1319,0],0,16],[[1382,-1318,0],1,40],[[1382,0,1318],2,57],[[1382,1318,0],0,17],[[1383,-1317,0],1,56],[[1383,0,1317],2,57],[[1383,1317,0],0,32],[[1384,-1316,0],1,17],[[1384,0,1316],2,8],[[1384,1316,0],0,17],[[1385,-1315,0],1,16],[[1385,0,1315],2,57],[[1385,1315,0],0,1],[[1386,-1314,0],1,32],[[1386,0,1314],2,16],[[1386,1314,0],0,40],[[1387,-1313,0],1,1],[[1387,0,1313],2,57],[[1387,1313,0],0,56],[[1388,-1312,0],1,13],[[1388,1312,0],0,56],[[1389,-1311,0],1,24],[[1389,0,1311],2,36],[[1389,1311,0],0,12],[[1390,-1310,0],1,13],[[1390,0,1310],2,53],[[1390,1310,0],0,45],[[1391,-1309,0],1,25],[[1391,0,1309],2,21],[[1391,1309,0],0,52],[[1392,-1308,0],1,61],[[1392,1308,0],0,21],[[1393,-1307,0],1,33],[[1393,0,1307],2,32],[[1393,1307,0],0,36],[[1394,-1306,0],1,24],[[1394,0,1306],2,8],[[1394,1306,0],0,25],[[1395,-1305,0],1,32],[[1395,0,1305],2,17],[[1395,1305,0],0,17],[[1396,-1304,0],1,57],[[1396,0,1304],2,9],[[1396,1304,0],0,1],[[1397,-1303,0],1,57],[[1397,0,1303],2,16],[[1397,1303,0],0,41],[[1398,-1302,0],1,9],[[1398,0,1302],2,16],[[1398,1302,0],0,57],[[1399,-1301,0],1,57],[[1399,0,1301],2,1],[[1399,1301,0],0,33],[[1400,-1300,0],1,41],[[1400,1300,0],0,17],[[1401,-1299,0],1,16],[[1401,0,1299],2,8],[[1401,1299,0],0,40],[[1402,-1298,0],1,24],[[1402,0,1298],2,56],[[1402,1298,0],0,16],[[1403,-1297,0],1,17],[[1403,0,1297],2,17],[[1403,1297,0],0,25],[[1404,-1296,0],1,24],[[1404,0,1296],2,1],[[1404,1296,0],0,24],[[1405,-1295,0],1,16],[[1405,0,1295],2,8],[[1405,1295,0],0,24],[[1406,-1294,0],1,57],[[1406,0,1294],2,40],[[1406,1294,0],0,8],[[1407,-1293,0],1,32],[[1407,0,1293],2,1],[[1407,1293,0],0,17],[[1408,-1292,0],1,57],[[1408,0,1292],2,1],[[1408,1292,0],0,16],[[1409,-1291,0],1,56],[[1409,0,1291],2,41],[[1410,-1290,0],1,57],[[1410,0,1290],2,48],[[1410,1290,0],0,8],[[1411,-1289,0],1,41],[[1411,0,1289],2,16],[[1411,1289,0],0,16],[[1412,-1288,0],1,57],[[1412,0,1288],2,56],[[1413,-1287,0],1,16],[[1413,0,1287],2,40],[[1413,1287,0],0,25],[[1414,-1286,0],1,41],[[1414,0,1286],2,9],[[1414,1286,0],0,25],[[1415,0,1285],2,17],[[1416,-1284,0],1,57],[[1416,1284,0],0,17],[[1417,-1283,0],1,8],[[1417,1283,0],0,8],[[1418,-1282,0],1,41],[[1418,0,1282],2,1],[[1419,-1281,0],1,24],[[1419,0,1281],2,17],[[1419,1281,0],0,24],[[1420,-1280,0],1,63],[[1420,0,1280],2,33],[[1420,1280,0],0,51],[[1421,-1279,0],1,37],[[1421,0,1279],2,32],[[1421,1279,0],0,55],[[1422,-1278,0],1,46],[[1422,0,1278],2,19],[[1422,1278,0],0,34],[[1423,-1277,0],1,45],[[1423,0,1277],2,24],[[1423,1277,0],0,54],[[1424,-1276,0],1,19],[[1424,0,1276],2,61],[[1424,1276,0],0,36],[[1425,-1275,0],1,31],[[1425,0,1275],2,31],[[1425,1275,0],0,41],[[1426,-1274,0],1,42],[[1426,0,1274],2,33],[[1426,1274,0],0,59],[[1427,-1273,0],1,53],[[1427,0,1273],2,45],[[1427,1273,0],0,9],[[1428,-1272,0],1,37],[[1428,0,1272],2,25],[[1428,1272,0],0,42],[[1429,-1271,0],1,20],[[1429,0,1271],2,28],[[1429,1271,0],0,1],[[1430,-1270,0],1,46],[[1430,0,1270],2,49],[[1430,1270,0],0,47],[[1431,-1269,0],1,61],[[1431,0,1269],2,25],[[1431,1269,0],0,40],[[1432,-1268,0],1,44],[[1432,0,1268],2,45],[[1432,1268,0],0,58],[[1433,-1267,0],1,37],[[1433,0,1267],2,52],[[1433,1267,0],0,8],[[1434,-1266,0],1,31],[[1434,0,1266],2,49],[[1434,1266,0],0,42],[[1435,-1265,0],1,21],[[1435,0,1265],2,17],[[1435,1265,0],0,56],[[1436,0,1264],2,24],[[1436,1264,0],0,50],[[1437,-1263,0],1,40],[[1437,0,1263],2,16],[[1438,-1262,0],1,11],[[1438,0,1262],2,56],[[1438,1262,0],0,50],[[1439,-1261,0],1,25],[[1439,0,1261],2,41],[[1439,1261,0],0,8],[[1440,0,1260],2,32],[[1440,1260,0],0,2],[[1441,-1259,0],1,9],[[1441,0,1259],2,33],[[1441,1259,0],0,57],[[1442,-1258,0],1,43],[[1442,0,1258],2,40],[[1442,1258,0],0,42],[[1443,-1257,0],1,9],[[1443,0,1257],2,16],[[1443,1257,0],0,49],[[1444,-1256,0],1,16],[[1444,0,1256],2,25],[[1444,1256,0],0,35],[[1445,-1255,0],1,33],[[1445,0,1255],2,33],[[1445,1255,0],0,48],[[1446,-1254,0],1,26],[[1446,0,1254],2,16],[[1446,1254,0],0,35],[[1447,-1253,0],1,40],[[1447,0,1253],2,40],[[1447,1253,0],0,16],[[1448,-1252,0],1,16],[[1448,0,1252],2,56],[[1448,1252,0],0,19],[[1449,-1251,0],1,49],[[1449,0,1251],2,49],[[1449,1251,0],0,48],[[1450,-1250,0],1,58],[[1450,0,1250],2,57],[[1450,1250,0],0,26],[[1451,-1249,0],1,41],[[1451,0,1249],2,17],[[1452,-1248,0],1,20],[[1452,0,1248],2,40],[[1452,1248,0],0,15],[[1453,-1247,0],1,9],[[1453,0,1247],2,9],[[1453,1247,0],0,20],[[1454,-1246,0],1,26],[[1454,0,1246],2,60],[[1454,1246,0],0,18],[[1455,0,1245],2,52],[[1455,1245,0],0,13],[[1456,-1244,0],1,24],[[1456,0,1244],2,60],[[1456,1244,0],0,55],[[1457,-1243,0],1,21],[[1457,0,1243],2,16],[[1457,1243,0],0,40],[[1458,-1242,0],1,14],[[1458,0,1242],2,4],[[1458,1242,0],0,47],[[1459,-1241,0],1,44],[[1459,0,1241],2,33],[[1459,1241,0],0,9],[[1460,-1240,0],1,29],[[1460,0,1240],2,45],[[1460,1240,0],0,15],[[1461,-1239,0],1,16],[[1461,0,1239],2,60],[[1461,1239,0],0,52],[[1462,-1238,0],1,10],[[1462,0,1238],2,8],[[1462,1238,0],0,11],[[1463,-1237,0],1,40],[[1463,0,1237],2,48],[[1463,1237,0],0,57],[[1464,-1236,0],1,17],[[1464,0,1236],2,57],[[1464,1236,0],0,34],[[1465,-1235,0],1,52],[[1465,0,1235],2,57],[[1465,1235,0],0,36],[[1466,-1234,0],1,54],[[1466,0,1234],2,1],[[1466,1234,0],0,43],[[1467,-1233,0],1,13],[[1467,0,1233],2,40],[[1468,-1232,0],1,8],[[1468,0,1232],2,48],[[1468,1232,0],0,42],[[1469,-1231,0],1,48],[[1469,0,1231],2,56],[[1469,1231,0],0,57],[[1470,-1230,0],1,18],[[1470,0,1230],2,40],[[1470,1230,0],0,27],[[1471,-1229,0],1,1],[[1471,0,1229],2,41],[[1471,1229,0],0,16],[[1472,-1228,0],1,49],[[1472,0,1228],2,1],[[1472,1228,0],0,26],[[1473,-1227,0],1,33],[[1473,0,1227],2,40],[[1473,1227,0],0,49],[[1474,-1226,0],1,43],[[1474,1226,0],0,59],[[1475,-1225,0],1,57],[[1475,0,1225],2,25],[[1475,1225,0],0,41],[[1476,-1224,0],1,41],[[1476,0,1224],2,41],[[1476,1224,0],0,35],[[1477,-1223,0],1,57],[[1477,0,1223],2,24],[[1478,-1222,0],1,34],[[1478,0,1222],2,16],[[1478,1222,0],0,10],[[1479,-1221,0],1,40],[[1479,0,1221],2,57],[[1479,1221,0],0,49],[[1480,-1220,0],1,17],[[1480,0,1220],2,9],[[1480,1220,0],0,3],[[1481,0,1219],2,9],[[1481,1219,0],0,33],[[1482,-1218,0],1,34],[[1482,0,1218],2,1],[[1482,1218,0],0,42],[[1483,-1217,0],1,25],[[1483,0,1217],2,25],[[1483,1217,0],0,48],[[1484,-1216,0],1,55],[[1484,0,1216],2,14],[[1484,1216,0],0,58],[[1485,-1215,0],1,7],[[1485,0,1215],2,29],[[1485,1215,0],0,31],[[1486,-1214,0],1,6],[[1486,0,1214],2,24],[[1486,1214,0],0,30],[[1487,-1213,0],1,63],[[1487,0,1213],2,36],[[1487,1213,0],0,63],[[1488,-1212,0],1,54],[[1488,0,1212],2,42],[[1488,1212,0],0,39],[[1489,-1211,0],1,60],[[1489,0,1211],2,53],[[1489,1211,0],0,7],[[1490,-1210,0],1,32],[[1490,0,1210],2,22],[[1490,1210,0],0,18],[[1491,-1209,0],1,53],[[1491,0,1209],2,33],[[1491,1209,0],0,11],[[1492,-1208,0],1,27],[[1492,0,1208],2,22],[[1492,1208,0],0,18],[[1493,-1207,0],1,25],[[1493,0,1207],2,13],[[1493,1207,0],0,10],[[1494,-1206,0],1,25],[[1494,0,1206],2,11],[[1494,1206,0],0,59],[[1495,-1205,0],1,9],[[1495,0,1205],2,41],[[1495,1205,0],0,2],[[1496,-1204,0],1,34],[[1496,0,1204],2,27],[[1496,1204,0],0,27],[[1497,-1203,0],1,16],[[1497,0,1203],2,25],[[1497,1203,0],0,2],[[1498,-1202,0],1,24],[[1498,0,1202],2,3],[[1498,1202,0],0,18],[[1499,0,1201],2,57],[[1499,1201,0],0,42],[[1500,-1200,0],1,50],[[1500,0,1200],2,26],[[1500,1200,0],0,59],[[1501,-1199,0],1,17],[[1501,0,1199],2,9],[[1501,1199,0],0,26],[[1502,-1198,0],1,48],[[1502,0,1198],2,10],[[1502,1198,0],0,19],[[1503,-1197,0],1,57],[[1503,0,1197],2,24],[[1503,1197,0],0,11],[[1504,-1196,0],1,27],[[1504,0,1196],2,11],[[1504,1196,0],0,59],[[1505,-1195,0],1,25],[[1505,1195,0],0,18],[[1506,-1194,0],1,41],[[1506,0,1194],2,34],[[1506,1194,0],0,35],[[1507,-1193,0],1,24],[[1507,1193,0],0,18],[[1508,-1192,0],1,18],[[1508,0,1192],2,10],[[1508,1192,0],0,2],[[1509,-1191,0],1,24],[[1509,0,1191],2,16],[[1509,1191,0],0,10],[[1510,-1190,0],1,49],[[1510,0,1190],2,19],[[1510,1190,0],0,35],[[1511,-1189,0],1,8],[[1511,0,1189],2,1],[[1511,1189,0],0,35],[[1512,-1188,0],1,10],[[1512,0,1188],2,58],[[1512,1188,0],0,3],[[1513,-1187,0],1,49],[[1513,0,1187],2,57],[[1513,1187,0],0,10],[[1514,-1186,0],1,8],[[1514,0,1186],2,58],[[1514,1186,0],0,51],[[1515,-1185,0],1,41],[[1515,0,1185],2,9],[[1515,1185,0],0,35],[[1516,-1184,0],1,63],[[1516,0,1184],2,50],[[1516,1184,0],0,11],[[1517,-1183,0],1,48],[[1517,0,1183],2,53],[[1517,1183,0],0,62],[[1518,-1182,0],1,36],[[1518,0,1182],2,46],[[1518,1182,0],0,63],[[1519,-1181,0],1,25],[[1519,0,1181],2,5],[[1519,1181,0],0,62],[[1520,-1180,0],1,7],[[1520,0,1180],2,26],[[1520,1180,0],0,30],[[1521,-1179,0],1,33],[[1521,0,1179],2,48],[[1521,1179,0],0,38],[[1522,-1178,0],1,56],[[1522,0,1178],2,19],[[1522,1178,0],0,26],[[1523,-1177,0],1,49],[[1523,1177,0],0,3],[[1524,-1176,0],1,10],[[1524,0,1176],2,10],[[1524,1176,0],0,2],[[1525,-1175,0],1,49],[[1525,0,1175],2,17],[[1525,1175,0],0,34],[[1526,-1174,0],1,48],[[1526,0,1174],2,11],[[1526,1174,0],0,58],[[1527,-1173,0],1,33],[[1527,0,1173],2,17],[[1527,1173,0],0,35],[[1528,-1172,0],1,3],[[1528,0,1172],2,19],[[1528,1172,0],0,2],[[1529,-1171,0],1,9],[[1529,0,1171],2,16],[[1529,1171,0],0,51],[[1530,-1170,0],1,49],[[1530,0,1170],2,59],[[1530,1170,0],0,10],[[1531,-1169,0],1,16],[[1531,0,1169],2,1],[[1531,1169,0],0,18],[[1532,-1168,0],1,35],[[1532,0,1168],2,10],[[1532,1168,0],0,11],[[1533,-1167,0],1,24],[[1533,0,1167],2,16],[[1533,1167,0],0,18],[[1534,-1166,0],1,9],[[1534,0,1166],2,35],[[1534,1166,0],0,26],[[1535,-1165,0],1,40],[[1535,1165,0],0,10],[[1536,-1164,0],1,2],[[1536,0,1164],2,26],[[1536,1164,0],0,10],[[1537,-1163,0],1,32],[[1537,0,1163],2,49],[[1537,1163,0],0,10],[[1538,0,1162],2,42],[[1538,1162,0],0,26],[[1539,-1161,0],1,49],[[1539,0,1161],2,17],[[1539,1161,0],0,3],[[1540,-1160,0],1,19],[[1540,0,1160],2,51],[[1540,1160,0],0,18],[[1541,-1159,0],1,9],[[1541,0,1159],2,32],[[1541,1159,0],0,18],[[1542,-1158,0],1,17],[[1542,0,1158],2,11],[[1542,1158,0],0,26],[[1543,-1157,0],1,16],[[1543,0,1157],2,17],[[1543,1157,0],0,18],[[1544,-1156,0],1,3],[[1544,0,1156],2,18],[[1544,1156,0],0,19],[[1545,-1155,0],1,9],[[1545,0,1155],2,17],[[1545,1155,0],0,19],[[1546,-1154,0],1,1],[[1546,0,1154],2,10],[[1546,1154,0],0,11],[[1547,-1153,0],1,16],[[1547,0,1153],2,17],[[1547,1153,0],0,18],[[1548,-1152,0],1,9],[[1548,0,1152],2,47],[[1548,1152,0],0,12],[[1549,-1151,0],1,8],[[1549,0,1151],2,4],[[1549,1151,0],0,49],[[1550,-1150,0],1,22],[[1550,0,1150],2,61],[[1550,1150,0],0,60],[[1551,-1149,0],1,52],[[1551,0,1149],2,33],[[1551,1149,0],0,44],[[1552,-1148,0],1,1],[[1552,0,1148],2,54],[[1552,1148,0],0,39],[[1553,-1147,0],1,38],[[1553,0,1147],2,63],[[1553,1147,0],0,14],[[1554,-1146,0],1,47],[[1554,0,1146],2,46],[[1554,1146,0],0,61],[[1555,-1145,0],1,56],[[1555,0,1145],2,61],[[1555,1145,0],0,19],[[1556,-1144,0],1,43],[[1556,0,1144],2,39],[[1556,1144,0],0,36],[[1557,-1143,0],1,60],[[1557,0,1143],2,24],[[1557,1143,0],0,62],[[1558,-1142,0],1,55],[[1558,0,1142],2,3],[[1558,1142,0],0,28],[[1559,-1141,0],1,45],[[1559,0,1141],2,49],[[1559,1141,0],0,51],[[1560,-1140,0],1,38],[[1560,0,1140],2,55],[[1560,1140,0],0,1],[[1561,-1139,0],1,57],[[1561,0,1139],2,44],[[1561,1139,0],0,54],[[1562,-1138,0],1,50],[[1562,0,1138],2,58],[[1562,1138,0],0,8],[[1563,-1137,0],1,40],[[1563,0,1137],2,57],[[1563,1137,0],0,43],[[1564,-1136,0],1,27],[[1564,0,1136],2,58],[[1565,-1135,0],1,1],[[1565,0,1135],2,9],[[1565,1135,0],0,3],[[1566,-1134,0],1,51],[[1566,0,1134],2,27],[[1566,1134,0],0,41],[[1567,-1133,0],1,48],[[1567,0,1133],2,56],[[1567,1133,0],0,58],[[1568,-1132,0],1,10],[[1568,0,1132],2,11],[[1568,1132,0],0,48],[[1569,-1131,0],1,16],[[1569,0,1131],2,8],[[1569,1131,0],0,18],[[1570,-1130,0],1,18],[[1570,0,1130],2,19],[[1570,1130,0],0,8],[[1571,-1129,0],1,9],[[1571,0,1129],2,25],[[1571,1129,0],0,27],[[1572,-1128,0],1,11],[[1572,0,1128],2,42],[[1572,1128,0],0,48],[[1573,-1127,0],1,48],[[1573,0,1127],2,24],[[1573,1127,0],0,27],[[1574,-1126,0],1,51],[[1574,0,1126],2,34],[[1574,1126,0],0,8],[[1575,-1125,0],1,40],[[1575,0,1125],2,56],[[1575,1125,0],0,51],[[1576,-1124,0],1,11],[[1576,0,1124],2,11],[[1576,1124,0],0,16],[[1577,-1123,0],1,9],[[1577,0,1123],2,24],[[1577,1123,0],0,58],[[1578,-1122,0],1,59],[[1578,0,1122],2,2],[[1578,1122,0],0,41],[[1579,-1121,0],1,24],[[1579,0,1121],2,24],[[1579,1121,0],0,50],[[1580,-1120,0],1,50],[[1580,0,1120],2,55],[[1580,1120,0],0,32],[[1581,-1119,0],1,44],[[1581,0,1119],2,37],[[1581,1119,0],0,19],[[1582,-1118,0],1,50],[[1582,0,1118],2,58],[[1582,1118,0],0,4],[[1583,-1117,0],1,16],[[1583,0,1117],2,29],[[1583,1117,0],0,55],[[1584,-1116,0],1,51],[[1584,0,1116],2,22],[[1584,1116,0],0,4],[[1585,-1115,0],1,28],[[1585,0,1115],2,49],[[1585,1115,0],0,14],[[1586,-1114,0],1,10],[[1586,0,1114],2,51],[[1586,1114,0],0,49],[[1587,-1113,0],1,1],[[1587,0,1113],2,17],[[1587,1113,0],0,58],[[1588,-1112,0],1,3],[[1588,0,1112],2,50],[[1588,1112,0],0,32],[[1589,-1111,0],1,1],[[1589,1111,0],0,43],[[1590,-1110,0],1,11],[[1590,0,1110],2,10],[[1590,1110,0],0,1],[[1591,-1109,0],1,17],[[1591,0,1109],2,25],[[1591,1109,0],0,27],[[1592,-1108,0],1,19],[[1592,0,1108],2,19],[[1592,1108,0],0,1],[[1593,-1107,0],1,17],[[1593,0,1107],2,17],[[1593,1107,0],0,19],[[1594,-1106,0],1,18],[[1594,0,1106],2,50],[[1594,1106,0],0,32],[[1595,0,1105],2,17],[[1595,1105,0],0,35],[[1596,-1104,0],1,58],[[1596,0,1104],2,50],[[1596,1104,0],0,32],[[1597,-1103,0],1,48],[[1597,0,1103],2,48],[[1597,1103,0],0,10],[[1598,-1102,0],1,10],[[1598,0,1102],2,34],[[1598,1102,0],0,1],[[1599,-1101,0],1,1],[[1599,0,1101],2,33],[[1599,1101,0],0,26],[[1600,-1100,0],1,2],[[1600,0,1100],2,3],[[1600,1100,0],0,17],[[1601,-1099,0],1,8],[[1601,0,1099],2,32],[[1601,1099,0],0,58],[[1602,-1098,0],1,10],[[1602,0,1098],2,3],[[1602,1098,0],0,33],[[1603,-1097,0],1,16],[[1603,0,1097],2,16],[[1603,1097,0],0,58],[[1604,-1096,0],1,59],[[1604,0,1096],2,35],[[1604,1096,0],0,48],[[1605,-1095,0],1,24],[[1605,0,1095],2,17],[[1605,1095,0],0,34],[[1606,-1094,0],1,18],[[1606,0,1094],2,18],[[1606,1094,0],0,1],[[1607,0,1093],2,49],[[1607,1093,0],0,35],[[1608,-1092,0],1,3],[[1608,0,1092],2,2],[[1608,1092,0],0,17],[[1609,1091,0],0,51],[[1610,-1090,0],1,34],[[1610,0,1090],2,3],[[1610,1090,0],0,33],[[1611,-1089,0],1,16],[[1611,0,1089],2,17],[[1611,1089,0],0,51],[[1612,-1088,0],1,28],[[1612,0,1088],2,37],[[1612,1088,0],0,17],[[1613,-1087,0],1,54],[[1613,0,1087],2,13],[[1613,1087,0],0,53],[[1614,-1086,0],1,54],[[1614,0,1086],2,34],[[1614,1086,0],0,29],[[1615,-1085,0],1,7],[[1615,0,1085],2,44],[[1615,1085,0],0,12],[[1616,-1084,0],1,21],[[1616,0,1084],2,17],[[1616,1084,0],0,21],[[1617,-1083,0],1,13],[[1617,0,1083],2,29],[[1617,1083,0],0,52],[[1618,-1082,0],1,48],[[1618,0,1082],2,44],[[1618,1082,0],0,40],[[1619,-1081,0],1,29],[[1619,0,1081],2,56],[[1619,1081,0],0,56],[[1620,-1080,0],1,8],[[1620,0,1080],2,53],[[1620,1080,0],0,17],[[1621,-1079,0],1,40],[[1621,0,1079],2,44],[[1621,1079,0],0,1],[[1622,-1078,0],1,9],[[1622,0,1078],2,41],[[1622,1078,0],0,24],[[1623,-1077,0],1,57],[[1623,0,1077],2,56],[[1623,1077,0],0,57],[[1624,-1076,0],1,49],[[1624,0,1076],2,49],[[1624,1076,0],0,17],[[1625,-1075,0],1,56],[[1625,0,1075],2,40],[[1625,1075,0],0,17],[[1626,-1074,0],1,16],[[1626,0,1074],2,56],[[1626,1074,0],0,40],[[1627,-1073,0],1,41],[[1627,0,1073],2,56],[[1627,1073,0],0,24],[[1628,0,1072],2,40],[[1628,1072,0],0,16],[[1629,-1071,0],1,33],[[1629,0,1071],2,9],[[1629,1071,0],0,57],[[1630,-1070,0],1,9],[[1630,0,1070],2,57],[[1630,1070,0],0,9],[[1631,-1069,0],1,17],[[1631,0,1069],2,8],[[1631,1069,0],0,48],[[1632,-1068,0],1,41],[[1632,0,1068],2,57],[[1632,1068,0],0,17],[[1633,-1067,0],1,40],[[1633,0,1067],2,57],[[1633,1067,0],0,56],[[1634,-1066,0],1,40],[[1634,0,1066],2,1],[[1634,1066,0],0,9],[[1635,-1065,0],1,56],[[1635,0,1065],2,24],[[1635,1065,0],0,48],[[1636,-1064,0],1,17],[[1636,0,1064],2,41],[[1636,1064,0],0,17],[[1637,-1063,0],1,56],[[1637,0,1063],2,56],[[1637,1063,0],0,8],[[1638,-1062,0],1,48],[[1638,0,1062],2,48],[[1638,1062,0],0,8],[[1639,-1061,0],1,41],[[1639,0,1061],2,25],[[1640,-1060,0],1,8],[[1640,0,1060],2,24],[[1640,1060,0],0,16],[[1641,-1059,0],1,24],[[1641,0,1059],2,8],[[1641,1059,0],0,24],[[1642,-1058,0],1,8],[[1642,0,1058],2,17],[[1642,1058,0],0,9],[[1643,-1057,0],1,8],[[1643,0,1057],2,25],[[1643,1057,0],0,16],[[1644,-1056,0],1,52],[[1644,0,1056],2,49],[[1644,1056,0],0,17],[[1645,-1055,0],1,49],[[1645,0,1055],2,53],[[1645,1055,0],0,52],[[1646,-1054,0],1,52],[[1646,0,1054],2,36],[[1646,1054,0],0,53],[[1647,-1053,0],1,1],[[1647,0,1053],2,4],[[1647,1053,0],0,36],[[1648,-1052,0],1,20],[[1648,0,1052],2,17],[[1648,1052,0],0,21],[[1649,-1051,0],1,32],[[1649,0,1051],2,49],[[1649,1051,0],0,53],[[1650,-1050,0],1,48],[[1650,1050,0],0,1],[[1651,-1049,0],1,48],[[1651,0,1049],2,17],[[1651,1049,0],0,17],[[1652,0,1048],2,17],[[1652,1048,0],0,16],[[1653,-1047,0],1,32],[[1653,0,1047],2,16],[[1653,1047,0],0,32],[[1654,-1046,0],1,33],[[1654,1046,0],0,32],[[1655,-1045,0],1,49],[[1655,0,1045],2,17],[[1655,1045,0],0,32],[[1656,-1044,0],1,17],[[1656,0,1044],2,16],[[1656,1044,0],0,17],[[1657,-1043,0],1,1],[[1657,0,1043],2,17],[[1657,1043,0],0,49],[[1658,-1042,0],1,48],[[1658,0,1042],2,33],[[1658,1042,0],0,1],[[1659,-1041,0],1,17],[[1659,0,1041],2,17],[[1659,1041,0],0,17],[[1660,-1040,0],1,33],[[1660,0,1040],2,1],[[1660,1040,0],0,17],[[1661,-1039,0],1,16],[[1661,0,1039],2,1],[[1661,1039,0],0,16],[[1662,-1038,0],1,1],[[1662,0,1038],2,33],[[1662,1038,0],0,17],[[1663,-1037,0],1,33],[[1663,0,1037],2,1],[[1663,1037,0],0,1],[[1664,0,1036],2,16],[[1664,1036,0],0,16],[[1665,-1035,0],1,32],[[1665,0,1035],2,49],[[1665,1035,0],0,16],[[1666,0,1034],2,33],[[1666,1034,0],0,1],[[1667,-1033,0],1,48],[[1667,0,1033],2,16],[[1667,1033,0],0,16],[[1668,-1032,0],1,16],[[1668,0,1032],2,49],[[1668,1032,0],0,17],[[1669,-1031,0],1,1],[[1669,0,1031],2,49],[[1670,-1030,0],1,16],[[1670,0,1030],2,1],[[1671,-1029,0],1,17],[[1671,0,1029],2,17],[[1672,-1028,0],1,1],[[1672,0,1028],2,16],[[1672,1028,0],0,17],[[1673,-1027,0],1,1],[[1673,0,1027],2,17],[[1673,1027,0],0,16],[[1675,-1025,0],1,16],[[1675,0,1025],2,16],[[1675,1025,0],0,17],[[1676,-1024,0],1,58],[[1676,0,1024],2,37],[[1676,1024,0],0,54],[[1677,-1023,0],1,18],[[1677,0,1023],2,17],[[1677,1023,0],0,51],[[1678,-1022,0],1,48],[[1678,0,1022],2,15],[[1678,1022,0],0,44],[[1679,-1021,0],1,27],[[1679,0,1021],2,43],[[1679,1021,0],0,9],[[1680,-1020,0],1,10],[[1680,0,1020],2,53],[[1680,1020,0],0,19],[[1681,-1019,0],1,27],[[1681,0,1019],2,58],[[1681,1019,0],0,6],[[1682,-1018,0],1,47],[[1682,0,1018],2,39],[[1682,1018,0],0,9],[[1683,-1017,0],1,11],[[1683,0,1017],2,14],[[1683,1017,0],0,31],[[1684,-1016,0],1,19],[[1684,0,1016],2,15],[[1684,1016,0],0,6],[[1685,-1015,0],1,15],[[1685,0,1015],2,3],[[1685,1015,0],0,52],[[1686,-1014,0],1,42],[[1686,0,1014],2,32],[[1686,1014,0],0,9],[[1687,-1013,0],1,61],[[1687,0,1013],2,11],[[1687,1013,0],0,9],[[1688,-1012,0],1,2],[[1688,0,1012],2,21],[[1688,1012,0],0,2],[[1689,-1011,0],1,26],[[1689,0,1011],2,61],[[1689,1011,0],0,61],[[1690,-1010,0],1,7],[[1690,0,1010],2,50],[[1690,1010,0],0,19],[[1691,-1009,0],1,59],[[1691,0,1009],2,23],[[1691,1009,0],0,40],[[1692,-1008,0],1,4],[[1692,0,1008],2,57],[[1692,1008,0],0,54],[[1693,-1007,0],1,14],[[1693,0,1007],2,54],[[1693,1007,0],0,51],[[1694,-1006,0],1,28],[[1694,0,1006],2,25],[[1694,1006,0],0,12],[[1695,-1005,0],1,59],[[1695,0,1005],2,1],[[1695,1005,0],0,42],[[1696,-1004,0],1,21],[[1696,0,1004],2,51],[[1696,1004,0],0,54],[[1697,-1003,0],1,17],[[1697,0,1003],2,14],[[1697,1003,0],0,39],[[1698,-1002,0],1,37],[[1698,0,1002],2,16],[[1698,1002,0],0,62],[[1699,-1001,0],1,50],[[1699,0,1001],2,48],[[1699,1001,0],0,18],[[1700,-1000,0],1,49],[[1700,0,1000],2,57],[[1700,1000,0],0,62],[[1701,-999,0],1,27],[[1701,0,999],2,26],[[1701,999,0],0,43],[[1702,-998,0],1,12],[[1702,0,998],2,57],[[1702,998,0],0,16],[[1703,-997,0],1,27],[[1703,0,997],2,9],[[1703,997,0],0,23],[[1704,-996,0],1,56],[[1704,0,996],2,39],[[1704,996,0],0,23],[[1705,-995,0],1,48],[[1705,0,995],2,43],[[1705,995,0],0,19],[[1706,-994,0],1,12],[[1706,0,994],2,17],[[1706,994,0],0,15],[[1707,-993,0],1,34],[[1707,993,0],0,62],[[1708,-992,0],1,20],[[1708,0,992],2,48],[[1708,992,0],0,61],[[1709,-991,0],1,12],[[1709,0,991],2,29],[[1709,991,0],0,44],[[1710,-990,0],1,59],[[1710,0,990],2,45],[[1710,990,0],0,18],[[1711,-989,0],1,25],[[1711,0,989],2,11],[[1711,989,0],0,13],[[1712,-988,0],1,8],[[1712,0,988],2,25],[[1712,988,0],0,58],[[1713,-987,0],1,14],[[1713,0,987],2,59],[[1713,987,0],0,58],[[1714,-986,0],1,47],[[1714,0,986],2,63],[[1714,986,0],0,41],[[1715,-985,0],1,42],[[1715,0,985],2,63],[[1715,985,0],0,55],[[1716,-984,0],1,8],[[1716,0,984],2,61],[[1716,984,0],0,7],[[1717,-983,0],1,32],[[1717,0,983],2,26],[[1717,983,0],0,53],[[1718,-982,0],1,26],[[1718,0,982],2,37],[[1718,982,0],0,50],[[1719,-981,0],1,21],[[1719,0,981],2,55],[[1719,981,0],0,29],[[1720,-980,0],1,32],[[1720,0,980],2,37],[[1720,980,0],0,22],[[1721,-979,0],1,42],[[1721,0,979],2,61],[[1721,979,0],0,49],[[1722,-978,0],1,63],[[1722,0,978],2,10],[[1722,978,0],0,63],[[1723,-977,0],1,11],[[1723,0,977],2,55],[[1723,977,0],0,5],[[1724,-976,0],1,48],[[1724,0,976],2,55],[[1724,976,0],0,22],[[1725,-975,0],1,15],[[1725,0,975],2,62],[[1725,975,0],0,40],[[1726,-974,0],1,7],[[1726,0,974],2,55],[[1726,974,0],0,19],[[1727,-973,0],1,27],[[1727,0,973],2,7],[[1727,973,0],0,49],[[1728,-972,0],1,32],[[1728,0,972],2,6],[[1728,972,0],0,3],[[1729,-971,0],1,27],[[1729,0,971],2,50],[[1729,971,0],0,13],[[1730,-970,0],1,38],[[1730,0,970],2,18],[[1730,970,0],0,42],[[1731,-969,0],1,35],[[1731,0,969],2,34],[[1731,969,0],0,9],[[1732,-968,0],1,32],[[1732,0,968],2,34],[[1732,968,0],0,18],[[1733,-967,0],1,2],[[1733,0,967],2,63],[[1733,967,0],0,4],[[1734,-966,0],1,47],[[1734,0,966],2,22],[[1734,966,0],0,11],[[1735,-965,0],1,10],[[1735,0,965],2,15],[[1735,965,0],0,9],[[1736,-964,0],1,49],[[1736,0,964],2,22],[[1736,964,0],0,2],[[1737,-963,0],1,18],[[1737,0,963],2,27],[[1737,963,0],0,5],[[1738,-962,0],1,38],[[1738,0,962],2,26],[[1738,962,0],0,2],[[1739,-961,0],1,3],[[1739,0,961],2,3],[[1739,961,0],0,1],[[1740,-960,0],1,38],[[1740,0,960],2,54],[[1740,960,0],0,57],[[1741,-959,0],1,56],[[1741,0,959],2,20],[[1741,959,0],0,32],[[1742,-958,0],1,54],[[1742,0,958],2,32],[[1742,958,0],0,19],[[1743,-957,0],1,48],[[1743,0,957],2,52],[[1743,957,0],0,59],[[1744,-956,0],1,16],[[1744,0,956],2,10],[[1744,956,0],0,60],[[1745,-955,0],1,33],[[1745,0,955],2,56],[[1745,955,0],0,34],[[1746,-954,0],1,4],[[1746,0,954],2,38],[[1746,954,0],0,22],[[1747,-953,0],1,36],[[1747,0,953],2,28],[[1747,953,0],0,59],[[1748,-952,0],1,9],[[1748,0,952],2,8],[[1748,952,0],0,12],[[1749,-951,0],1,31],[[1749,0,951],2,19],[[1749,951,0],0,35],[[1750,-950,0],1,1],[[1750,0,950],2,15],[[1750,950,0],0,59],[[1751,-949,0],1,6],[[1751,0,949],2,20],[[1751,949,0],0,23],[[1752,-948,0],1,56],[[1752,0,948],2,14],[[1752,948,0],0,32],[[1753,-947,0],1,1],[[1753,0,947],2,40],[[1753,947,0],0,31],[[1754,-946,0],1,24],[[1754,0,946],2,3],[[1754,946,0],0,51],[[1755,-945,0],1,5],[[1755,0,945],2,57],[[1755,945,0],0,15],[[1756,-944,0],1,30],[[1756,0,944],2,6],[[1756,944,0],0,25],[[1757,-943,0],1,18],[[1757,0,943],2,7],[[1757,943,0],0,24],[[1758,-942,0],1,18],[[1758,0,942],2,59],[[1758,942,0],0,14],[[1759,-941,0],1,24],[[1759,0,941],2,42],[[1759,941,0],0,21],[[1760,-940,0],1,39],[[1760,0,940],2,45],[[1760,940,0],0,41],[[1761,-939,0],1,7],[[1761,0,939],2,51],[[1761,939,0],0,37],[[1762,-938,0],1,3],[[1762,0,938],2,44],[[1762,938,0],0,58],[[1763,-937,0],1,25],[[1763,0,937],2,30],[[1763,937,0],0,5],[[1764,-936,0],1,10],[[1764,0,936],2,35],[[1764,936,0],0,53],[[1765,-935,0],1,51],[[1765,0,935],2,27],[[1765,935,0],0,56],[[1766,-934,0],1,51],[[1766,0,934],2,63],[[1766,934,0],0,62],[[1767,-933,0],1,53],[[1767,0,933],2,18],[[1767,933,0],0,16],[[1768,-932,0],1,27],[[1768,0,932],2,29],[[1768,932,0],0,45],[[1769,-931,0],1,27],[[1769,0,931],2,22],[[1769,931,0],0,49],[[1770,-930,0],1,59],[[1770,930,0],0,6],[[1771,-929,0],1,28],[[1771,0,929],2,6],[[1771,929,0],0,8],[[1772,-928,0],1,11],[[1772,0,928],2,16],[[1772,928,0],0,26],[[1773,-927,0],1,55],[[1773,0,927],2,45],[[1773,927,0],0,23],[[1774,-926,0],1,52],[[1774,0,926],2,36],[[1774,926,0],0,58],[[1775,-925,0],1,58],[[1775,0,925],2,1],[[1775,925,0],0,18],[[1776,-924,0],1,46],[[1776,0,924],2,45],[[1776,924,0],0,23],[[1777,-923,0],1,12],[[1777,0,923],2,46],[[1777,923,0],0,15],[[1778,-922,0],1,56],[[1778,0,922],2,34],[[1778,922,0],0,3],[[1779,-921,0],1,45],[[1779,0,921],2,33],[[1779,921,0],0,30],[[1780,-920,0],1,51],[[1780,0,920],2,8],[[1780,920,0],0,2],[[1781,-919,0],1,42],[[1781,0,919],2,44],[[1781,919,0],0,63],[[1782,-918,0],1,24],[[1782,0,918],2,52],[[1782,918,0],0,18],[[1783,-917,0],1,47],[[1783,0,917],2,52],[[1783,917,0],0,55],[[1784,-916,0],1,42],[[1784,0,916],2,4],[[1784,916,0],0,27],[[1785,-915,0],1,9],[[1785,0,915],2,10],[[1785,915,0],0,39],[[1786,-914,0],1,17],[[1786,0,914],2,35],[[1786,914,0],0,18],[[1787,-913,0],1,28],[[1787,0,913],2,9],[[1787,913,0],0,6],[[1788,-912,0],1,11],[[1788,0,912],2,22],[[1788,912,0],0,34],[[1789,-911,0],1,45],[[1789,0,911],2,40],[[1789,911,0],0,55],[[1790,-910,0],1,24],[[1790,0,910],2,63],[[1790,910,0],0,7],[[1791,-909,0],1,45],[[1791,0,909],2,33],[[1791,909,0],0,35],[[1792,-908,0],1,59],[[1792,0,908],2,22],[[1792,908,0],0,46],[[1793,-907,0],1,40],[[1793,0,907],2,60],[[1793,907,0],0,58],[[1794,-906,0],1,8],[[1794,0,906],2,58],[[1794,906,0],0,38],[[1795,-905,0],1,20],[[1795,0,905],2,53],[[1795,905,0],0,3],[[1796,-904,0],1,42],[[1796,0,904],2,51],[[1796,904,0],0,7],[[1797,-903,0],1,16],[[1797,0,903],2,41],[[1797,903,0],0,18],[[1798,-902,0],1,32],[[1798,0,902],2,15],[[1798,902,0],0,31],[[1799,-901,0],1,13],[[1799,901,0],0,27],[[1800,-900,0],1,50],[[1800,0,900],2,22],[[1800,900,0],0,7],[[1801,-899,0],1,16],[[1801,0,899],2,20],[[1801,899,0],0,18],[[1802,-898,0],1,48],[[1802,0,898],2,2],[[1802,898,0],0,7],[[1803,-897,0],1,4],[[1803,0,897],2,21],[[1803,897,0],0,2],[[1804,-896,0],1,51],[[1804,0,896],2,31],[[1804,896,0],0,23],[[1805,-895,0],1,36],[[1805,0,895],2,18],[[1805,895,0],0,14],[[1806,-894,0],1,29],[[1806,0,894],2,11],[[1806,894,0],0,10],[[1807,-893,0],1,5],[[1807,0,893],2,44],[[1807,893,0],0,38],[[1808,-892,0],1,24],[[1808,0,892],2,48],[[1808,892,0],0,37],[[1809,-891,0],1,29],[[1809,0,891],2,59],[[1809,891,0],0,15],[[1810,-890,0],1,43],[[1810,0,890],2,50],[[1810,890,0],0,5],[[1811,-889,0],1,17],[[1811,0,889],2,12],[[1811,889,0],0,55],[[1812,-888,0],1,8],[[1812,0,888],2,18],[[1812,888,0],0,8],[[1813,-887,0],1,21],[[1813,0,887],2,56],[[1813,887,0],0,31],[[1814,-886,0],1,38],[[1814,0,886],2,32],[[1814,886,0],0,15],[[1815,-885,0],1,2],[[1815,0,885],2,61],[[1815,885,0],0,43],[[1816,-884,0],1,9],[[1816,0,884],2,44],[[1816,884,0],0,17],[[1817,-883,0],1,13],[[1817,0,883],2,43],[[1817,883,0],0,6],[[1818,-882,0],1,46],[[1818,0,882],2,38],[[1818,882,0],0,1],[[1819,-881,0],1,1],[[1819,0,881],2,48],[[1819,881,0],0,11],[[1820,-880,0],1,63],[[1820,0,880],2,52],[[1820,880,0],0,60],[[1821,-879,0],1,24],[[1821,0,879],2,53],[[1821,879,0],0,56],[[1822,-878,0],1,44],[[1822,0,878],2,1],[[1822,878,0],0,31],[[1823,-877,0],1,1],[[1823,0,877],2,50],[[1823,877,0],0,40],[[1824,-876,0],1,31],[[1824,0,876],2,18],[[1824,876,0],0,28],[[1825,-875,0],1,7],[[1825,0,875],2,1],[[1825,875,0],0,29],[[1826,-874,0],1,37],[[1826,0,874],2,29],[[1826,874,0],0,12],[[1827,-873,0],1,49],[[1827,0,873],2,47],[[1827,873,0],0,48],[[1828,-872,0],1,35],[[1828,0,872],2,60],[[1828,872,0],0,20],[[1829,-871,0],1,5],[[1829,0,871],2,40],[[1829,871,0],0,56],[[1830,-870,0],1,29],[[1830,0,870],2,33],[[1830,870,0],0,11],[[1831,-869,0],1,24],[[1831,0,869],2,18],[[1831,869,0],0,21],[[1832,-868,0],1,58],[[1832,0,868],2,62],[[1832,868,0],0,29],[[1833,-867,0],1,39],[[1833,0,867],2,29],[[1833,867,0],0,57],[[1834,-866,0],1,20],[[1834,0,866],2,29],[[1834,866,0],0,60],[[1835,-865,0],1,49],[[1835,0,865],2,31],[[1835,865,0],0,12],[[1836,-864,0],1,46],[[1836,0,864],2,32],[[1836,864,0],0,52],[[1837,-863,0],1,47],[[1837,0,863],2,60],[[1837,863,0],0,58],[[1838,-862,0],1,63],[[1838,0,862],2,57],[[1838,862,0],0,57],[[1839,-861,0],1,63],[[1839,0,861],2,61],[[1839,861,0],0,22],[[1840,-860,0],1,3],[[1840,0,860],2,41],[[1840,860,0],0,33],[[1841,-859,0],1,53],[[1841,0,859],2,31],[[1841,859,0],0,2],[[1842,-858,0],1,54],[[1842,0,858],2,62],[[1842,858,0],0,28],[[1843,-857,0],1,57],[[1843,0,857],2,1],[[1843,857,0],0,47],[[1844,-856,0],1,19],[[1844,0,856],2,37],[[1844,856,0],0,5],[[1845,-855,0],1,22],[[1845,0,855],2,33],[[1845,855,0],0,11],[[1846,-854,0],1,30],[[1846,0,854],2,13],[[1846,854,0],0,12],[[1847,-853,0],1,3],[[1847,0,853],2,1],[[1847,853,0],0,23],[[1848,-852,0],1,42],[[1848,0,852],2,28],[[1848,852,0],0,13],[[1849,-851,0],1,12],[[1849,0,851],2,19],[[1849,851,0],0,26],[[1850,-850,0],1,55],[[1850,0,850],2,22],[[1850,850,0],0,29],[[1851,-849,0],1,25],[[1851,0,849],2,8],[[1851,849,0],0,30],[[1852,-848,0],1,27],[[1852,0,848],2,42],[[1852,848,0],0,12],[[1853,-847,0],1,24],[[1853,0,847],2,60],[[1853,847,0],0,2],[[1854,-846,0],1,22],[[1854,0,846],2,22],[[1854,846,0],0,1],[[1855,-845,0],1,41],[[1855,0,845],2,20],[[1855,845,0],0,34],[[1856,-844,0],1,51],[[1856,0,844],2,15],[[1856,844,0],0,17],[[1857,-843,0],1,4],[[1857,0,843],2,61],[[1857,843,0],0,7],[[1858,-842,0],1,38],[[1858,0,842],2,31],[[1858,842,0],0,41],[[1859,-841,0],1,49],[[1859,0,841],2,44],[[1859,841,0],0,27],[[1860,-840,0],1,34],[[1860,0,840],2,55],[[1861,-839,0],1,28],[[1861,0,839],2,44],[[1861,839,0],0,30],[[1862,-838,0],1,46],[[1862,0,838],2,6],[[1862,838,0],0,25],[[1863,-837,0],1,25],[[1863,0,837],2,4],[[1863,837,0],0,3],[[1864,-836,0],1,42],[[1864,0,836],2,31],[[1864,836,0],0,25],[[1865,-835,0],1,20],[[1865,0,835],2,28],[[1865,835,0],0,30],[[1866,-834,0],1,54],[[1866,0,834],2,31],[[1866,834,0],0,8],[[1867,-833,0],1,16],[[1867,0,833],2,12],[[1867,833,0],0,11],[[1868,-832,0],1,14],[[1868,0,832],2,42],[[1868,832,0],0,10],[[1869,-831,0],1,48],[[1869,0,831],2,42],[[1869,831,0],0,16],[[1870,-830,0],1,7],[[1870,0,830],2,62],[[1871,-829,0],1,41],[[1871,0,829],2,24],[[1871,829,0],0,29],[[1872,-828,0],1,3],[[1872,0,828],2,5],[[1872,828,0],0,50],[[1873,-827,0],1,33],[[1873,0,827],2,57],[[1873,827,0],0,40],[[1874,-826,0],1,49],[[1874,0,826],2,36],[[1874,826,0],0,52],[[1875,-825,0],1,12],[[1875,0,825],2,37],[[1875,825,0],0,24],[[1876,-824,0],1,10],[[1876,0,824],2,19],[[1876,824,0],0,50],[[1877,-823,0],1,54],[[1877,0,823],2,59],[[1877,823,0],0,4],[[1878,-822,0],1,32],[[1878,0,822],2,13],[[1878,822,0],0,16],[[1879,-821,0],1,63],[[1879,0,821],2,5],[[1879,821,0],0,37],[[1880,-820,0],1,35],[[1880,0,820],2,21],[[1880,820,0],0,50],[[1881,-819,0],1,45],[[1881,0,819],2,45],[[1881,819,0],0,20],[[1882,-818,0],1,17],[[1882,0,818],2,60],[[1882,818,0],0,32],[[1883,-817,0],1,61],[[1883,0,817],2,53],[[1883,817,0],0,20],[[1884,-816,0],1,53],[[1884,0,816],2,9],[[1884,816,0],0,50],[[1885,-815,0],1,38],[[1885,0,815],2,31],[[1885,815,0],0,18],[[1886,-814,0],1,3],[[1886,0,814],2,41],[[1886,814,0],0,20],[[1887,-813,0],1,56],[[1887,0,813],2,27],[[1887,813,0],0,6],[[1888,-812,0],1,36],[[1888,0,812],2,38],[[1888,812,0],0,10],[[1889,-811,0],1,34],[[1889,0,811],2,46],[[1889,811,0],0,63],[[1890,-810,0],1,35],[[1890,0,810],2,3],[[1890,810,0],0,41],[[1891,-809,0],1,16],[[1891,0,809],2,58],[[1891,809,0],0,63],[[1892,0,808],2,36],[[1892,808,0],0,63],[[1893,-807,0],1,39],[[1893,0,807],2,10],[[1893,807,0],0,58],[[1894,-806,0],1,35],[[1894,0,806],2,44],[[1894,806,0],0,44],[[1895,-805,0],1,45],[[1895,0,805],2,18],[[1895,805,0],0,11],[[1896,-804,0],1,16],[[1896,0,804],2,23],[[1896,804,0],0,38],[[1897,-803,0],1,7],[[1897,0,803],2,19],[[1897,803,0],0,35],[[1898,-802,0],1,51],[[1898,0,802],2,23],[[1898,802,0],0,20],[[1899,-801,0],1,5],[[1899,0,801],2,2],[[1899,801,0],0,18],[[1900,-800,0],1,49],[[1900,0,800],2,30],[[1900,800,0],0,16],[[1901,-799,0],1,58],[[1901,0,799],2,12],[[1901,799,0],0,53],[[1902,-798,0],1,20],[[1902,0,798],2,39],[[1902,798,0],0,9],[[1903,-797,0],1,18],[[1903,0,797],2,1],[[1903,797,0],0,40],[[1904,-796,0],1,36],[[1904,0,796],2,38],[[1904,796,0],0,4],[[1905,-795,0],1,1],[[1905,0,795],2,50],[[1905,795,0],0,36],[[1906,-794,0],1,17],[[1906,0,794],2,5],[[1906,794,0],0,16],[[1907,-793,0],1,61],[[1907,0,793],2,61],[[1907,793,0],0,4],[[1908,-792,0],1,48],[[1908,0,792],2,15],[[1908,792,0],0,1],[[1909,-791,0],1,38],[[1909,0,791],2,53],[[1909,791,0],0,21],[[1910,-790,0],1,48],[[1910,0,790],2,6],[[1910,790,0],0,25],[[1911,-789,0],1,54],[[1911,0,789],2,53],[[1911,789,0],0,60],[[1912,-788,0],1,49],[[1912,0,788],2,7],[[1912,788,0],0,1],[[1913,-787,0],1,29],[[1913,0,787],2,30],[[1913,787,0],0,4],[[1914,-786,0],1,49],[[1914,0,786],2,28],[[1914,786,0],0,16],[[1915,-785,0],1,12],[[1915,0,785],2,20],[[1915,785,0],0,4],[[1916,-784,0],1,49],[[1916,0,784],2,16],[[1916,784,0],0,49],[[1917,-783,0],1,57],[[1917,0,783],2,1],[[1917,783,0],0,53],[[1918,-782,0],1,16],[[1918,0,782],2,12],[[1918,782,0],0,45],[[1919,-781,0],1,28],[[1919,0,781],2,32],[[1919,781,0],0,9],[[1920,-780,0],1,33],[[1920,0,780],2,4],[[1920,780,0],0,52],[[1921,-779,0],1,36],[[1921,0,779],2,33],[[1921,779,0],0,49],[[1922,-778,0],1,1],[[1922,0,778],2,36],[[1922,778,0],0,37],[[1923,-777,0],1,4],[[1923,0,777],2,33],[[1924,-776,0],1,48],[[1924,0,776],2,61],[[1924,776,0],0,21],[[1925,-775,0],1,29],[[1925,0,775],2,57],[[1925,775,0],0,17],[[1926,-774,0],1,33],[[1926,0,774],2,13],[[1926,774,0],0,29],[[1927,-773,0],1,29],[[1927,0,773],2,16],[[1927,773,0],0,25],[[1928,-772,0],1,32],[[1928,0,772],2,5],[[1928,772,0],0,21],[[1929,-771,0],1,20],[[1929,771,0],0,17],[[1930,-770,0],1,48],[[1930,0,770],2,21],[[1930,770,0],0,4],[[1931,-769,0],1,21],[[1931,0,769],2,1],[[1932,-768,0],1,3],[[1932,0,768],2,27],[[1932,768,0],0,61],[[1933,-767,0],1,5],[[1933,0,767],2,34],[[1933,767,0],0,15],[[1934,-766,0],1,34],[[1934,766,0],0,17],[[1935,-765,0],1,46],[[1935,0,765],2,30],[[1935,765,0],0,26],[[1936,-764,0],1,9],[[1936,0,764],2,28],[[1936,764,0],0,58],[[1937,-763,0],1,63],[[1937,0,763],2,17],[[1937,763,0],0,46],[[1938,-762,0],1,8],[[1938,0,762],2,23],[[1938,762,0],0,6],[[1939,-761,0],1,17],[[1939,0,761],2,50],[[1939,761,0],0,15],[[1940,-760,0],1,17],[[1940,0,760],2,38],[[1940,760,0],0,58],[[1941,-759,0],1,37],[[1941,0,759],2,5],[[1941,759,0],0,51],[[1942,-758,0],1,21],[[1942,0,758],2,54],[[1942,758,0],0,28],[[1943,-757,0],1,25],[[1943,0,757],2,31],[[1943,757,0],0,31],[[1944,-756,0],1,56],[[1944,0,756],2,44],[[1944,756,0],0,54],[[1945,-755,0],1,15],[[1945,0,755],2,61],[[1945,755,0],0,3],[[1946,-754,0],1,36],[[1946,0,754],2,47],[[1946,754,0],0,30],[[1947,-753,0],1,48],[[1947,0,753],2,7],[[1947,753,0],0,31],[[1948,-752,0],1,9],[[1948,0,752],2,6],[[1948,752,0],0,62],[[1949,-751,0],1,53],[[1949,0,751],2,36],[[1949,751,0],0,43],[[1950,-750,0],1,36],[[1950,0,750],2,54],[[1950,750,0],0,13],[[1951,-749,0],1,17],[[1951,0,749],2,54],[[1951,749,0],0,7],[[1952,-748,0],1,24],[[1952,0,748],2,20],[[1952,748,0],0,39],[[1953,-747,0],1,6],[[1953,0,747],2,4],[[1953,747,0],0,35],[[1954,-746,0],1,37],[[1954,0,746],2,39],[[1954,746,0],0,38],[[1955,-745,0],1,33],[[1955,0,745],2,54],[[1955,745,0],0,54],[[1956,-744,0],1,8],[[1956,0,744],2,30],[[1956,744,0],0,55],[[1957,-743,0],1,53],[[1957,0,743],2,44],[[1957,743,0],0,11],[[1958,-742,0],1,36],[[1958,0,742],2,62],[[1958,742,0],0,5],[[1959,-741,0],1,49],[[1959,0,741],2,22],[[1959,741,0],0,30],[[1960,-740,0],1,17],[[1960,0,740],2,12],[[1960,740,0],0,7],[[1961,-739,0],1,7],[[1961,0,739],2,44],[[1961,739,0],0,34],[[1962,-738,0],1,28],[[1962,0,738],2,15],[[1962,738,0],0,62],[[1963,-737,0],1,17],[[1963,0,737],2,7],[[1963,737,0],0,47],[[1964,-736,0],1,5],[[1964,0,736],2,17],[[1964,736,0],0,59],[[1965,-735,0],1,29],[[1965,0,735],2,45],[[1965,735,0],0,25],[[1966,-734,0],1,14],[[1966,0,734],2,45],[[1966,734,0],0,2],[[1967,-733,0],1,29],[[1967,0,733],2,25],[[1967,733,0],0,17],[[1968,-732,0],1,33],[[1968,0,732],2,33],[[1968,732,0],0,47],[[1969,-731,0],1,56],[[1969,731,0],0,61],[[1970,-730,0],1,31],[[1970,730,0],0,23],[[1971,-729,0],1,16],[[1971,0,729],2,36],[[1971,729,0],0,17],[[1972,-728,0],1,56],[[1972,0,728],2,33],[[1972,728,0],0,46],[[1973,-727,0],1,52],[[1973,0,727],2,56],[[1973,727,0],0,45],[[1974,-726,0],1,38],[[1974,0,726],2,44],[[1974,726,0],0,42],[[1975,-725,0],1,25],[[1975,0,725],2,36],[[1975,725,0],0,25],[[1976,-724,0],1,1],[[1976,0,724],2,61],[[1976,724,0],0,34],[[1977,-723,0],1,36],[[1977,0,723],2,44],[[1977,723,0],0,13],[[1978,-722,0],1,15],[[1978,0,722],2,21],[[1978,722,0],0,18],[[1979,-721,0],1,17],[[1979,0,721],2,36],[[1979,721,0],0,41],[[1980,-720,0],1,8],[[1980,0,720],2,53],[[1980,720,0],0,2],[[1981,-719,0],1,29],[[1981,0,719],2,28],[[1981,719,0],0,13],[[1982,-718,0],1,63],[[1982,0,718],2,61],[[1982,718,0],0,50],[[1983,-717,0],1,17],[[1983,0,717],2,12],[[1983,717,0],0,9],[[1984,-716,0],1,16],[[1984,0,716],2,61],[[1984,716,0],0,19],[[1985,-715,0],1,61],[[1985,0,715],2,13],[[1985,715,0],0,13],[[1986,-714,0],1,22],[[1986,0,714],2,52],[[1986,714,0],0,10],[[1987,-713,0],1,17],[[1987,0,713],2,61],[[1987,713,0],0,40],[[1988,-712,0],1,25],[[1988,0,712],2,61],[[1988,712,0],0,3],[[1989,-711,0],1,21],[[1989,0,711],2,37],[[1989,711,0],0,13],[[1990,-710,0],1,23],[[1990,0,710],2,4],[[1990,710,0],0,2],[[1991,0,709],2,29],[[1991,709,0],0,24],[[1992,-708,0],1,25],[[1992,0,708],2,12],[[1992,708,0],0,26],[[1993,-707,0],1,4],[[1993,0,707],2,5],[[1993,707,0],0,28],[[1994,-706,0],1,6],[[1994,0,706],2,4],[[1994,706,0],0,10],[[1995,-705,0],1,16],[[1995,0,705],2,28],[[1995,705,0],0,24],[[1996,-704,0],1,6],[[1996,0,704],2,46],[[1996,704,0],0,48],[[1997,0,703],2,10],[[1997,703,0],0,32],[[1998,-702,0],1,9],[[1998,0,702],2,16],[[1998,702,0],0,38],[[1999,-701,0],1,39],[[1999,0,701],2,46],[[1999,701,0],0,49],[[2000,-700,0],1,43],[[2000,0,700],2,37],[[2000,700,0],0,25],[[2001,-699,0],1,26],[[2001,0,699],2,3],[[2001,699,0],0,48],[[2002,-698,0],1,18],[[2002,0,698],2,33],[[2002,698,0],0,30],[[2003,-697,0],1,32],[[2003,0,697],2,43],[[2003,697,0],0,9],[[2004,-696,0],1,35],[[2004,0,696],2,3],[[2004,696,0],0,52],[[2005,-695,0],1,30],[[2005,0,695],2,63],[[2005,695,0],0,49],[[2006,-694,0],1,10],[[2006,0,694],2,31],[[2006,694,0],0,15],[[2007,-693,0],1,5],[[2007,0,693],2,26],[[2007,693,0],0,17],[[2008,-692,0],1,59],[[2008,0,692],2,28],[[2008,692,0],0,5],[[2009,-691,0],1,39],[[2009,0,691],2,58],[[2010,-690,0],1,3],[[2010,0,690],2,4],[[2010,690,0],0,46],[[2011,-689,0],1,52],[[2011,0,689],2,43],[[2011,689,0],0,1],[[2012,-688,0],1,34],[[2012,0,688],2,7],[[2012,688,0],0,36],[[2013,-687,0],1,38],[[2013,0,687],2,50],[[2014,-686,0],1,35],[[2014,0,686],2,31],[[2014,686,0],0,54],[[2015,-685,0],1,29],[[2015,0,685],2,27],[[2015,685,0],0,41],[[2016,-684,0],1,3],[[2016,0,684],2,29],[[2016,684,0],0,29],[[2017,-683,0],1,7],[[2017,0,683],2,19],[[2017,683,0],0,40],[[2018,-682,0],1,11],[[2018,0,682],2,36],[[2018,682,0],0,14],[[2019,-681,0],1,61],[[2019,0,681],2,58],[[2019,681,0],0,1],[[2020,-680,0],1,18],[[2020,0,680],2,47],[[2020,680,0],0,4],[[2021,-679,0],1,63],[[2021,0,679],2,59],[[2021,679,0],0,9],[[2022,-678,0],1,51],[[2022,0,678],2,55],[[2022,678,0],0,15],[[2023,-677,0],1,45],[[2023,0,677],2,27],[[2023,677,0],0,16],[[2024,-676,0],1,10],[[2024,0,676],2,29],[[2024,676,0],0,20],[[2025,-675,0],1,31],[[2025,0,675],2,26],[[2025,675,0],0,25],[[2026,-674,0],1,10],[[2026,0,674],2,21],[[2026,674,0],0,30],[[2027,-673,0],1,13],[[2027,0,673],2,11],[[2028,-672,0],1,50],[[2028,0,672],2,10],[[2028,672,0],0,3],[[2029,-671,0],1,44],[[2029,0,671],2,40],[[2029,671,0],0,30],[[2030,-670,0],1,13],[[2030,0,670],2,55],[[2030,670,0],0,47],[[2031,-669,0],1,41],[[2031,0,669],2,5],[[2031,669,0],0,23],[[2032,-668,0],1,23],[[2032,0,668],2,31],[[2032,668,0],0,27],[[2033,-667,0],1,56],[[2033,0,667],2,28],[[2033,667,0],0,18],[[2034,0,666],2,23],[[2034,666,0],0,55],[[2035,-665,0],1,4],[[2035,0,665],2,49],[[2035,665,0],0,59],[[2036,-664,0],1,10],[[2036,0,664],2,15],[[2036,664,0],0,23],[[2037,-663,0],1,53],[[2037,0,663],2,48],[[2037,663,0],0,50],[[2038,-662,0],1,56],[[2038,0,662],2,46],[[2038,662,0],0,7],[[2039,-661,0],1,44],[[2039,0,661],2,48],[[2039,661,0],0,34],[[2040,-660,0],1,19],[[2040,0,660],2,23],[[2040,660,0],0,23],[[2041,-659,0],1,20],[[2041,0,659],2,16],[[2041,659,0],0,50],[[2042,-658,0],1,33],[[2042,0,658],2,54],[[2042,658,0],0,23],[[2043,-657,0],1,4],[[2043,0,657],2,16],[[2043,657,0],0,18],[[2044,-656,0],1,34],[[2044,0,656],2,14],[[2044,656,0],0,38],[[2045,-655,0],1,60],[[2045,0,655],2,57],[[2045,655,0],0,59],[[2046,-654,0],1,33],[[2046,0,654],2,47],[[2046,654,0],0,14],[[2047,-653,0],1,37],[[2047,0,653],2,48],[[2047,653,0],0,43],[[2048,-652,0],1,10],[[2048,0,652],2,55],[[2048,652,0],0,47],[[2049,-651,0],1,12],[[2049,0,651],2,25],[[2049,651,0],0,34],[[2050,-650,0],1,32],[[2050,0,650],2,6],[[2050,650,0],0,6],[[2051,-649,0],1,52],[[2051,0,649],2,49],[[2051,649,0],0,50],[[2052,-648,0],1,18],[[2052,0,648],2,54],[[2052,648,0],0,7],[[2053,-647,0],1,5],[[2053,0,647],2,32],[[2053,647,0],0,3],[[2054,-646,0],1,17],[[2054,0,646],2,6],[[2054,646,0],0,22],[[2055,-645,0],1,21],[[2055,645,0],0,3],[[2056,-644,0],1,3],[[2056,0,644],2,22],[[2056,644,0],0,7],[[2057,-643,0],1,4],[[2057,0,643],2,16],[[2057,643,0],0,3],[[2058,-642,0],1,1],[[2058,0,642],2,7],[[2058,642,0],0,7],[[2059,-641,0],1,20],[[2059,0,641],2,17],[[2059,641,0],0,18],[[2060,-640,0],1,5],[[2060,0,640],2,5],[[2060,640,0],0,18],[[2061,-639,0],1,16],[[2061,0,639],2,22],[[2061,639,0],0,56],[[2062,-638,0],1,63],[[2062,0,638],2,6],[[2062,638,0],0,6],[[2063,-637,0],1,47],[[2063,0,637],2,22],[[2063,637,0],0,21],[[2064,-636,0],1,39],[[2064,0,636],2,38],[[2064,636,0],0,17],[[2065,-635,0],1,23],[[2065,0,635],2,8],[[2065,635,0],0,53],[[2066,-634,0],1,24],[[2066,0,634],2,16],[[2066,634,0],0,24],[[2067,-633,0],1,9],[[2067,0,633],2,26],[[2067,633,0],0,20],[[2068,-632,0],1,34],[[2068,0,632],2,33],[[2068,632,0],0,12],[[2069,-631,0],1,53],[[2069,0,631],2,40],[[2069,631,0],0,8],[[2070,-630,0],1,29],[[2070,0,630],2,53],[[2070,630,0],0,62],[[2071,-629,0],1,40],[[2071,0,629],2,47],[[2071,629,0],0,4],[[2072,-628,0],1,34],[[2072,0,628],2,6],[[2072,628,0],0,13],[[2073,-627,0],1,39],[[2073,0,627],2,61],[[2073,627,0],0,41],[[2074,-626,0],1,61],[[2074,0,626],2,52],[[2074,626,0],0,60],[[2075,-625,0],1,57],[[2075,0,625],2,47],[[2075,625,0],0,21],[[2076,-624,0],1,2],[[2076,0,624],2,37],[[2076,624,0],0,52],[[2077,-623,0],1,5],[[2077,0,623],2,52],[[2077,623,0],0,17],[[2078,-622,0],1,20],[[2078,0,622],2,52],[[2078,622,0],0,55],[[2079,-621,0],1,17],[[2079,0,621],2,55],[[2079,621,0],0,4],[[2080,-620,0],1,34],[[2080,0,620],2,6],[[2080,620,0],0,21],[[2081,-619,0],1,22],[[2081,0,619],2,53],[[2081,619,0],0,32],[[2082,-618,0],1,37],[[2082,0,618],2,37],[[2082,618,0],0,21],[[2083,-617,0],1,49],[[2083,0,617],2,55],[[2083,617,0],0,5],[[2084,-616,0],1,3],[[2084,0,616],2,4],[[2084,616,0],0,20],[[2085,-615,0],1,52],[[2085,0,615],2,20],[[2086,-614,0],1,53],[[2086,0,614],2,52],[[2086,614,0],0,23],[[2087,-613,0],1,32],[[2087,0,613],2,6],[[2087,613,0],0,21],[[2088,-612,0],1,2],[[2088,0,612],2,23],[[2088,612,0],0,20],[[2089,-611,0],1,22],[[2089,0,611],2,5],[[2089,611,0],0,17],[[2090,-610,0],1,5],[[2090,0,610],2,21],[[2090,610,0],0,5],[[2091,-609,0],1,17],[[2091,0,609],2,7],[[2091,609,0],0,4],[[2092,-608,0],1,55],[[2092,0,608],2,39],[[2092,608,0],0,4],[[2093,-607,0],1,1],[[2093,0,607],2,17],[[2093,607,0],0,2],[[2094,-606,0],1,6],[[2094,0,606],2,2],[[2094,606,0],0,5],[[2095,-605,0],1,5],[[2095,0,605],2,49],[[2095,605,0],0,50],[[2096,-604,0],1,51],[[2096,0,604],2,19],[[2096,604,0],0,5],[[2097,-603,0],1,4],[[2097,0,603],2,32],[[2097,603,0],0,39],[[2098,-602,0],1,22],[[2098,0,602],2,6],[[2098,602,0],0,17],[[2099,-601,0],1,16],[[2099,0,601],2,4],[[2099,601,0],0,50],[[2100,-600,0],1,35],[[2100,0,600],2,54],[[2100,600,0],0,1],[[2101,-599,0],1,20],[[2101,0,599],2,20],[[2101,599,0],0,54],[[2102,-598,0],1,55],[[2102,0,598],2,23],[[2102,598,0],0,49],[[2103,-597,0],1,17],[[2103,0,597],2,5],[[2103,597,0],0,50],[[2104,-596,0],1,18],[[2104,0,596],2,6],[[2105,-595,0],1,5],[[2105,0,595],2,4],[[2105,595,0],0,6],[[2106,-594,0],1,23],[[2106,0,594],2,23],[[2106,594,0],0,16],[[2107,-593,0],1,16],[[2107,0,593],2,5],[[2107,593,0],0,19],[[2108,-592,0],1,34],[[2108,0,592],2,23],[[2108,592,0],0,1],[[2109,-591,0],1,37],[[2109,0,591],2,20],[[2109,591,0],0,23],[[2110,-590,0],1,38],[[2110,0,590],2,54],[[2110,590,0],0,33],[[2111,-589,0],1,16],[[2111,0,589],2,21],[[2111,589,0],0,2],[[2112,-588,0],1,2],[[2112,0,588],2,39],[[2112,588,0],0,16],[[2113,-587,0],1,53],[[2113,0,587],2,20],[[2113,587,0],0,23],[[2114,-586,0],1,22],[[2114,0,586],2,39],[[2114,586,0],0,1],[[2115,-585,0],1,17],[[2115,0,585],2,36],[[2115,585,0],0,35],[[2116,-584,0],1,18],[[2116,0,584],2,54],[[2117,-583,0],1,20],[[2117,0,583],2,37],[[2117,583,0],0,6],[[2118,-582,0],1,23],[[2118,0,582],2,6],[[2118,582,0],0,16],[[2119,-581,0],1,1],[[2119,0,581],2,5],[[2119,581,0],0,2],[[2120,-580,0],1,3],[[2120,0,580],2,23],[[2120,580,0],0,16],[[2121,-579,0],1,21],[[2121,0,579],2,20],[[2121,579,0],0,23],[[2122,-578,0],1,22],[[2122,0,578],2,23],[[2123,-577,0],1,16],[[2123,0,577],2,4],[[2123,577,0],0,2],[[2124,-576,0],1,48],[[2124,0,576],2,4],[[2124,576,0],0,3],[[2125,-575,0],1,1],[[2125,0,575],2,3],[[2125,575,0],0,6],[[2126,-574,0],1,5],[[2126,0,574],2,2],[[2126,574,0],0,5],[[2127,-573,0],1,6],[[2127,0,573],2,55],[[2127,573,0],0,6],[[2128,-572,0],1,20],[[2128,0,572],2,39],[[2128,572,0],0,2],[[2129,-571,0],1,7],[[2129,0,571],2,19],[[2129,571,0],0,50],[[2130,-570,0],1,50],[[2130,0,570],2,2],[[2130,570,0],0,36],[[2131,-569,0],1,49],[[2131,0,569],2,34],[[2131,569,0],0,2],[[2132,-568,0],1,1],[[2132,0,568],2,17],[[2132,568,0],0,7],[[2133,-567,0],1,39],[[2133,0,567],2,7],[[2133,567,0],0,35],[[2134,-566,0],1,51],[[2134,0,566],2,21],[[2134,566,0],0,52],[[2135,-565,0],1,36],[[2135,0,565],2,19],[[2135,565,0],0,50],[[2136,-564,0],1,48],[[2136,0,564],2,6],[[2136,564,0],0,7],[[2137,-563,0],1,38],[[2137,0,563],2,34],[[2137,563,0],0,35],[[2138,-562,0],1,51],[[2138,0,562],2,39],[[2138,562,0],0,53],[[2139,-561,0],1,52],[[2139,0,561],2,51],[[2139,561,0],0,2],[[2140,-560,0],1,32],[[2140,0,560],2,52],[[2140,560,0],0,6],[[2141,-559,0],1,7],[[2141,0,559],2,19],[[2141,559,0],0,35],[[2142,-558,0],1,19],[[2142,0,558],2,4],[[2142,558,0],0,5],[[2143,-557,0],1,5],[[2143,0,557],2,18],[[2143,557,0],0,35],[[2144,-556,0],1,32],[[2144,0,556],2,6],[[2144,556,0],0,55],[[2145,-555,0],1,6],[[2145,0,555],2,3],[[2145,555,0],0,2],[[2146,-554,0],1,18],[[2146,0,554],2,39],[[2146,554,0],0,21],[[2147,-553,0],1,36],[[2147,0,553],2,50],[[2147,553,0],0,2],[[2148,-552,0],1,17],[[2148,0,552],2,52],[[2148,552,0],0,7],[[2149,-551,0],1,38],[[2149,0,551],2,34],[[2149,551,0],0,2],[[2150,-550,0],1,34],[[2150,0,550],2,52],[[2150,550,0],0,20],[[2151,-549,0],1,37],[[2151,0,549],2,18],[[2151,549,0],0,19],[[2152,-548,0],1,1],[[2152,0,548],2,6],[[2152,548,0],0,23],[[2153,-547,0],1,7],[[2153,0,547],2,19],[[2153,547,0],0,19],[[2154,-546,0],1,19],[[2154,0,546],2,6],[[2154,546,0],0,5],[[2155,-545,0],1,5],[[2155,0,545],2,3],[[2155,545,0],0,2],[[2156,-544,0],1,16],[[2156,0,544],2,48],[[2156,544,0],0,1],[[2157,-543,0],1,4],[[2157,0,543],2,32],[[2157,543,0],0,52],[[2158,-542,0],1,53],[[2158,0,542],2,4],[[2158,542,0],0,52],[[2159,-541,0],1,49],[[2159,0,541],2,21],[[2159,541,0],0,21],[[2160,-540,0],1,21],[[2160,0,540],2,4],[[2160,540,0],0,1],[[2161,-539,0],1,49],[[2161,0,539],2,20],[[2161,539,0],0,33],[[2162,-538,0],1,49],[[2162,0,538],2,52],[[2162,538,0],0,53],[[2163,-537,0],1,4],[[2163,0,537],2,49],[[2163,537,0],0,33],[[2164,-536,0],1,1],[[2164,0,536],2,21],[[2164,536,0],0,4],[[2165,-535,0],1,53],[[2165,0,535],2,33],[[2166,0,534],2,4],[[2166,534,0],0,5],[[2167,-533,0],1,36],[[2167,0,533],2,32],[[2167,533,0],0,48],[[2168,-532,0],1,16],[[2168,0,532],2,4],[[2168,532,0],0,5],[[2169,-531,0],1,21],[[2169,0,531],2,16],[[2170,-530,0],1,16],[[2170,0,530],2,21],[[2170,530,0],0,21],[[2171,-529,0],1,5],[[2171,0,529],2,17],[[2172,0,528],2,37],[[2172,528,0],0,53],[[2173,-527,0],1,5],[[2173,0,527],2,32],[[2173,527,0],0,33],[[2174,-526,0],1,49],[[2174,0,526],2,37],[[2174,526,0],0,5],[[2175,-525,0],1,37],[[2175,0,525],2,32],[[2175,525,0],0,48],[[2176,-524,0],1,1],[[2176,0,524],2,37],[[2176,524,0],0,52],[[2177,-523,0],1,20],[[2177,523,0],0,48],[[2178,-522,0],1,48],[[2178,0,522],2,21],[[2178,522,0],0,5],[[2179,-521,0],1,53],[[2179,0,521],2,32],[[2179,521,0],0,33],[[2180,-520,0],1,16],[[2180,0,520],2,52],[[2180,520,0],0,20],[[2181,-519,0],1,21],[[2181,0,519],2,49],[[2181,519,0],0,17],[[2182,-518,0],1,1],[[2182,0,518],2,4],[[2182,518,0],0,21],[[2183,-517,0],1,20],[[2183,0,517],2,17],[[2183,517,0],0,17],[[2184,0,516],2,4],[[2184,516,0],0,20],[[2185,-515,0],1,20],[[2185,0,515],2,1],[[2185,515,0],0,17],[[2186,-514,0],1,16],[[2186,0,514],2,21],[[2186,514,0],0,5],[[2187,-513,0],1,21],[[2187,513,0],0,1],[[2188,-512,0],1,48],[[2188,0,512],2,8],[[2188,512,0],0,42],[[2189,-511,0],1,30],[[2189,0,511],2,56],[[2189,511,0],0,19],[[2190,-510,0],1,50],[[2190,0,510],2,28],[[2190,510,0],0,30],[[2191,-509,0],1,59],[[2191,0,509],2,42],[[2191,509,0],0,51],[[2192,-508,0],1,54],[[2192,0,508],2,53],[[2192,508,0],0,43],[[2193,-507,0],1,7],[[2193,0,507],2,58],[[2193,507,0],0,28],[[2194,-506,0],1,4],[[2194,0,506],2,19],[[2194,506,0],0,20],[[2195,-505,0],1,45],[[2195,0,505],2,11],[[2195,505,0],0,36],[[2196,-504,0],1,50],[[2196,0,504],2,5],[[2196,504,0],0,35],[[2197,-503,0],1,30],[[2197,0,503],2,53],[[2197,503,0],0,31],[[2198,-502,0],1,60],[[2198,0,502],2,50],[[2198,502,0],0,39],[[2199,-501,0],1,53],[[2199,0,501],2,55],[[2199,501,0],0,34],[[2200,-500,0],1,50],[[2200,0,500],2,1],[[2200,500,0],0,34],[[2201,-499,0],1,23],[[2201,0,499],2,12],[[2201,499,0],0,18],[[2202,-498,0],1,40],[[2202,0,498],2,47],[[2202,498,0],0,18],[[2203,-497,0],1,57],[[2203,0,497],2,30],[[2203,497,0],0,26],[[2204,-496,0],1,4],[[2204,0,496],2,5],[[2204,496,0],0,50],[[2205,-495,0],1,57],[[2205,0,495],2,13],[[2205,495,0],0,13],[[2206,-494,0],1,11],[[2206,0,494],2,45],[[2206,494,0],0,19],[[2207,-493,0],1,20],[[2207,0,493],2,16],[[2207,493,0],0,5],[[2208,-492,0],1,44],[[2208,0,492],2,40],[[2208,492,0],0,47],[[2209,-491,0],1,1],[[2209,0,491],2,17],[[2209,491,0],0,36],[[2210,-490,0],1,11],[[2210,0,490],2,49],[[2210,490,0],0,30],[[2211,-489,0],1,36],[[2211,0,489],2,60],[[2211,489,0],0,21],[[2212,-488,0],1,16],[[2212,0,488],2,20],[[2212,488,0],0,43],[[2213,-487,0],1,52],[[2213,0,487],2,57],[[2213,487,0],0,49],[[2214,-486,0],1,51],[[2214,0,486],2,40],[[2214,486,0],0,51],[[2215,-485,0],1,57],[[2215,0,485],2,17],[[2215,485,0],0,16],[[2216,0,484],2,16],[[2216,484,0],0,43],[[2217,-483,0],1,5],[[2217,0,483],2,29],[[2217,483,0],0,56],[[2218,-482,0],1,42],[[2218,0,482],2,21],[[2218,482,0],0,19],[[2219,-481,0],1,17],[[2219,0,481],2,28],[[2219,481,0],0,8],[[2220,-480,0],1,29],[[2220,0,480],2,9],[[2220,480,0],0,48],[[2221,-479,0],1,41],[[2221,0,479],2,62],[[2221,479,0],0,48],[[2222,-478,0],1,27],[[2222,0,478],2,17],[[2222,478,0],0,30],[[2223,-477,0],1,4],[[2223,477,0],0,52],[[2224,-476,0],1,4],[[2224,0,476],2,56],[[2224,476,0],0,55],[[2225,-475,0],1,32],[[2225,0,475],2,22],[[2225,475,0],0,62],[[2226,-474,0],1,10],[[2226,0,474],2,33],[[2226,474,0],0,28],[[2227,-473,0],1,17],[[2227,0,473],2,61],[[2227,473,0],0,43],[[2228,-472,0],1,9],[[2228,0,472],2,57],[[2228,472,0],0,11],[[2229,-471,0],1,36],[[2229,0,471],2,57],[[2229,471,0],0,20],[[2230,-470,0],1,39],[[2230,0,470],2,33],[[2230,470,0],0,23],[[2231,-469,0],1,12],[[2231,0,469],2,20],[[2231,469,0],0,9],[[2232,-468,0],1,57],[[2232,0,468],2,41],[[2232,468,0],0,10],[[2233,-467,0],1,61],[[2233,0,467],2,61],[[2233,467,0],0,25],[[2234,-466,0],1,26],[[2234,0,466],2,53],[[2234,466,0],0,59],[[2235,0,465],2,60],[[2235,465,0],0,25],[[2236,0,464],2,29],[[2236,464,0],0,10],[[2237,-463,0],1,21],[[2237,0,463],2,41],[[2237,463,0],0,24],[[2238,-462,0],1,43],[[2238,0,462],2,49],[[2238,462,0],0,35],[[2239,-461,0],1,1],[[2239,0,461],2,16],[[2239,461,0],0,25],[[2240,-460,0],1,40],[[2240,0,460],2,8],[[2240,460,0],0,11],[[2241,-459,0],1,21],[[2241,0,459],2,36],[[2242,-458,0],1,3],[[2242,0,458],2,21],[[2242,458,0],0,11],[[2243,-457,0],1,9],[[2243,0,457],2,28],[[2243,457,0],0,24],[[2244,-456,0],1,33],[[2244,0,456],2,61],[[2244,456,0],0,11],[[2245,-455,0],1,29],[[2245,0,455],2,41],[[2245,455,0],0,9],[[2246,-454,0],1,34],[[2246,0,454],2,1],[[2246,454,0],0,27],[[2247,0,453],2,16],[[2247,453,0],0,17],[[2248,-452,0],1,32],[[2248,0,452],2,8],[[2248,452,0],0,3],[[2249,-451,0],1,29],[[2249,0,451],2,13],[[2249,451,0],0,24],[[2250,-450,0],1,42],[[2250,0,450],2,13],[[2250,450,0],0,11],[[2251,-449,0],1,25],[[2251,0,449],2,29],[[2251,449,0],0,9],[[2252,-448,0],1,61],[[2252,0,448],2,31],[[2252,448,0],0,2],[[2253,-447,0],1,48],[[2253,0,447],2,25],[[2253,447,0],0,44],[[2254,-446,0],1,16],[[2254,0,446],2,34],[[2254,446,0],0,15],[[2255,-445,0],1,3],[[2255,0,445],2,15],[[2255,445,0],0,33],[[2256,-444,0],1,5],[[2256,0,444],2,30],[[2256,444,0],0,11],[[2257,-443,0],1,58],[[2257,0,443],2,21],[[2257,443,0],0,48],[[2258,-442,0],1,18],[[2258,0,442],2,44],[[2258,442,0],0,63],[[2259,-441,0],1,25],[[2259,0,441],2,6],[[2259,441,0],0,20],[[2260,-440,0],1,9],[[2260,0,440],2,51],[[2260,440,0],0,59],[[2261,-439,0],1,62],[[2261,0,439],2,20],[[2261,439,0],0,24],[[2262,-438,0],1,59],[[2262,438,0],0,59],[[2263,-437,0],1,49],[[2263,0,437],2,51],[[2263,437,0],0,40],[[2264,-436,0],1,32],[[2264,0,436],2,50],[[2264,436,0],0,43],[[2265,-435,0],1,54],[[2265,0,435],2,37],[[2265,435,0],0,9],[[2266,-434,0],1,3],[[2266,0,434],2,13],[[2266,434,0],0,51],[[2267,-433,0],1,41],[[2267,0,433],2,54],[[2267,433,0],0,17],[[2268,-432,0],1,63],[[2268,0,432],2,6],[[2268,432,0],0,18],[[2269,-431,0],1,32],[[2269,0,431],2,29],[[2269,431,0],0,14],[[2270,-430,0],1,16],[[2270,0,430],2,31],[[2270,430,0],0,19],[[2271,-429,0],1,21],[[2271,0,429],2,49],[[2271,429,0],0,6],[[2272,-428,0],1,47],[[2272,0,428],2,35],[[2272,428,0],0,30],[[2273,-427,0],1,24],[[2273,0,427],2,41],[[2273,427,0],0,30],[[2274,-426,0],1,41],[[2274,0,426],2,59],[[2274,426,0],0,23],[[2275,-425,0],1,53],[[2275,0,425],2,52],[[2275,425,0],0,22],[[2276,-424,0],1,26],[[2276,0,424],2,54],[[2276,424,0],0,50],[[2277,-423,0],1,37],[[2277,0,423],2,9],[[2277,423,0],0,34],[[2278,-422,0],1,33],[[2278,0,422],2,59],[[2278,422,0],0,59],[[2279,-421,0],1,41],[[2279,0,421],2,16],[[2279,421,0],0,10],[[2280,-420,0],1,3],[[2280,0,420],2,2],[[2280,420,0],0,50],[[2281,-419,0],1,4],[[2281,0,419],2,5],[[2281,419,0],0,50],[[2282,-418,0],1,49],[[2282,0,418],2,6],[[2282,418,0],0,19],[[2283,0,417],2,21],[[2283,417,0],0,18],[[2284,-416,0],1,35],[[2284,0,416],2,19],[[2284,416,0],0,18],[[2285,0,415],2,45],[[2285,415,0],0,19],[[2286,-414,0],1,32],[[2286,0,414],2,2],[[2286,414,0],0,63],[[2287,0,413],2,21],[[2287,413,0],0,63],[[2288,-412,0],1,34],[[2288,0,412],2,6],[[2288,412,0],0,22],[[2289,-411,0],1,40],[[2289,0,411],2,44],[[2289,411,0],0,22],[[2290,-410,0],1,32],[[2290,0,410],2,46],[[2290,410,0],0,2],[[2291,-409,0],1,41],[[2291,0,409],2,5],[[2291,409,0],0,3],[[2292,-408,0],1,51],[[2292,0,408],2,6],[[2292,408,0],0,2],[[2293,-407,0],1,61],[[2293,0,407],2,9],[[2293,407,0],0,11],[[2294,-406,0],1,33],[[2294,0,406],2,59],[[2294,406,0],0,51],[[2295,-405,0],1,32],[[2295,405,0],0,51],[[2296,-404,0],1,59],[[2296,0,404],2,19],[[2296,404,0],0,11],[[2297,-403,0],1,5],[[2297,0,403],2,4],[[2297,403,0],0,2],[[2298,-402,0],1,33],[[2298,0,402],2,31],[[2298,402,0],0,3],[[2299,-401,0],1,24],[[2299,0,401],2,4],[[2299,401,0],0,3],[[2300,-400,0],1,58],[[2300,0,400],2,55],[[2300,400,0],0,2],[[2301,-399,0],1,45],[[2301,0,399],2,8],[[2301,399,0],0,19],[[2302,-398,0],1,57],[[2302,0,398],2,58],[[2302,398,0],0,19],[[2303,-397,0],1,56],[[2303,0,397],2,1],[[2303,397,0],0,2],[[2304,-396,0],1,43],[[2304,0,396],2,3],[[2304,396,0],0,10],[[2305,-395,0],1,44],[[2305,0,395],2,44],[[2305,395,0],0,10],[[2306,-394,0],1,41],[[2306,0,394],2,47],[[2306,394,0],0,3],[[2307,-393,0],1,32],[[2307,0,393],2,4],[[2307,393,0],0,2],[[2308,-392,0],1,59],[[2308,0,392],2,55],[[2308,392,0],0,2],[[2309,-391,0],1,20],[[2309,0,391],2,40],[[2309,391,0],0,18],[[2310,-390,0],1,33],[[2310,0,390],2,11],[[2310,390,0],0,11],[[2311,-389,0],1,24],[[2311,0,389],2,1],[[2311,389,0],0,26],[[2312,-388,0],1,34],[[2312,0,388],2,2],[[2312,388,0],0,2],[[2313,-387,0],1,20],[[2313,0,387],2,5],[[2313,387,0],0,3],[[2314,-386,0],1,49],[[2314,0,386],2,23],[[2314,386,0],0,3],[[2315,-385,0],1,16],[[2315,0,385],2,4],[[2315,385,0],0,2],[[2316,-384,0],1,19],[[2316,0,384],2,50],[[2316,384,0],0,10],[[2317,-383,0],1,62],[[2317,0,383],2,62],[[2317,383,0],0,61],[[2318,-382,0],1,30],[[2318,0,382],2,62],[[2318,382,0],0,24],[[2319,-381,0],1,55],[[2319,0,381],2,10],[[2319,381,0],0,40],[[2320,-380,0],1,52],[[2320,0,380],2,6],[[2320,380,0],0,8],[[2321,-379,0],1,15],[[2321,0,379],2,37],[[2321,379,0],0,4],[[2322,-378,0],1,45],[[2322,0,378],2,24],[[2322,378,0],0,9],[[2323,-377,0],1,13],[[2323,0,377],2,63],[[2323,377,0],0,28],[[2324,-376,0],1,33],[[2324,0,376],2,15],[[2324,376,0],0,40],[[2325,-375,0],1,59],[[2325,0,375],2,4],[[2325,375,0],0,8],[[2326,-374,0],1,1],[[2326,0,374],2,40],[[2326,374,0],0,16],[[2327,-373,0],1,57],[[2327,0,373],2,11],[[2327,373,0],0,40],[[2328,-372,0],1,32],[[2328,0,372],2,35],[[2328,372,0],0,32],[[2329,-371,0],1,42],[[2329,0,371],2,40],[[2329,371,0],0,25],[[2330,-370,0],1,24],[[2330,0,370],2,9],[[2330,370,0],0,41],[[2331,-369,0],1,57],[[2331,0,369],2,50],[[2331,369,0],0,9],[[2332,-368,0],1,14],[[2332,0,368],2,18],[[2332,368,0],0,48],[[2333,-367,0],1,29],[[2333,0,367],2,36],[[2333,367,0],0,63],[[2334,-366,0],1,3],[[2334,0,366],2,14],[[2334,366,0],0,33],[[2335,-365,0],1,12],[[2335,365,0],0,6],[[2336,-364,0],1,38],[[2336,0,364],2,34],[[2336,364,0],0,52],[[2337,-363,0],1,36],[[2337,0,363],2,28],[[2337,363,0],0,7],[[2338,-362,0],1,59],[[2338,0,362],2,23],[[2338,362,0],0,5],[[2339,-361,0],1,36],[[2339,0,361],2,24],[[2339,361,0],0,47],[[2340,-360,0],1,26],[[2340,0,360],2,26],[[2340,360,0],0,49],[[2341,-359,0],1,41],[[2341,0,359],2,32],[[2341,359,0],0,50],[[2342,-358,0],1,51],[[2342,0,358],2,43],[[2342,358,0],0,41],[[2343,-357,0],1,40],[[2343,0,357],2,25],[[2343,357,0],0,18],[[2344,-356,0],1,2],[[2344,0,356],2,2],[[2344,356,0],0,49],[[2345,0,355],2,16],[[2345,355,0],0,58],[[2346,-354,0],1,59],[[2346,0,354],2,2],[[2346,354,0],0,8],[[2347,-353,0],1,17],[[2347,0,353],2,17],[[2347,353,0],0,26],[[2348,-352,0],1,30],[[2348,0,352],2,18],[[2348,352,0],0,32],[[2349,-351,0],1,1],[[2349,0,351],2,45],[[2349,351,0],0,22],[[2350,-350,0],1,62],[[2350,0,350],2,7],[[2350,350,0],0,20],[[2351,-349,0],1,9],[[2351,0,349],2,36],[[2351,349,0],0,7],[[2352,-348,0],1,7],[[2352,0,348],2,3],[[2352,348,0],0,37],[[2353,-347,0],1,9],[[2353,0,347],2,41],[[2353,347,0],0,63],[[2354,-346,0],1,58],[[2354,0,346],2,27],[[2354,346,0],0,56],[[2355,-345,0],1,24],[[2355,0,345],2,1],[[2355,345,0],0,43],[[2356,-344,0],1,11],[[2356,0,344],2,43],[[2356,344,0],0,8],[[2357,-343,0],1,16],[[2357,0,343],2,9],[[2357,343,0],0,10],[[2358,-342,0],1,2],[[2358,0,342],2,34],[[2358,342,0],0,41],[[2359,0,341],2,56],[[2359,341,0],0,2],[[2360,-340,0],1,51],[[2360,0,340],2,3],[[2361,-339,0],1,9],[[2361,0,339],2,9],[[2361,339,0],0,11],[[2362,-338,0],1,42],[[2362,0,338],2,11],[[2362,338,0],0,25],[[2363,-337,0],1,9],[[2363,337,0],0,27],[[2364,-336,0],1,10],[[2364,0,336],2,2],[[2364,336,0],0,8],[[2365,-335,0],1,9],[[2365,0,335],2,24],[[2365,335,0],0,42],[[2366,-334,0],1,35],[[2366,0,334],2,59],[[2366,334,0],0,24],[[2367,-333,0],1,9],[[2367,0,333],2,24],[[2367,333,0],0,50],[[2368,-332,0],1,34],[[2368,0,332],2,19],[[2368,332,0],0,1],[[2369,-331,0],1,17],[[2369,0,331],2,48],[[2369,331,0],0,26],[[2370,-330,0],1,26],[[2370,0,330],2,3],[[2370,330,0],0,9],[[2371,-329,0],1,1],[[2371,0,329],2,1],[[2371,329,0],0,27],[[2372,-328,0],1,42],[[2372,0,328],2,43],[[2372,328,0],0,8],[[2373,-327,0],1,24],[[2373,0,327],2,32],[[2373,327,0],0,26],[[2374,-326,0],1,34],[[2374,0,326],2,27],[[2374,326,0],0,9],[[2375,-325,0],1,8],[[2375,0,325],2,8],[[2375,325,0],0,19],[[2376,-324,0],1,34],[[2376,0,324],2,19],[[2376,324,0],0,1],[[2377,-323,0],1,17],[[2377,0,323],2,16],[[2377,323,0],0,11],[[2378,-322,0],1,58],[[2378,0,322],2,19],[[2378,322,0],0,8],[[2379,-321,0],1,16],[[2379,321,0],0,11],[[2380,-320,0],1,62],[[2380,0,320],2,1],[[2380,320,0],0,32],[[2381,-319,0],1,29],[[2381,0,319],2,48],[[2381,319,0],0,63],[[2382,-318,0],1,16],[[2382,0,318],2,25],[[2382,318,0],0,61],[[2383,-317,0],1,11],[[2383,0,317],2,55],[[2383,317,0],0,3],[[2384,-316,0],1,6],[[2384,0,316],2,5],[[2384,316,0],0,41],[[2385,-315,0],1,31],[[2385,0,315],2,25],[[2385,315,0],0,35],[[2386,-314,0],1,35],[[2386,0,314],2,27],[[2386,314,0],0,45],[[2387,-313,0],1,25],[[2387,0,313],2,35],[[2387,313,0],0,38],[[2388,-312,0],1,27],[[2388,0,312],2,45],[[2388,312,0],0,40],[[2389,-311,0],1,58],[[2389,0,311],2,12],[[2389,311,0],0,10],[[2390,-310,0],1,35],[[2390,0,310],2,26],[[2390,310,0],0,49],[[2391,-309,0],1,56],[[2391,0,309],2,51],[[2391,309,0],0,51],[[2392,-308,0],1,50],[[2392,0,308],2,33],[[2392,308,0],0,32],[[2393,-307,0],1,43],[[2393,0,307],2,56],[[2393,307,0],0,2],[[2394,-306,0],1,3],[[2394,0,306],2,11],[[2394,306,0],0,32],[[2395,-305,0],1,40],[[2395,0,305],2,34],[[2395,305,0],0,3],[[2396,-304,0],1,53],[[2396,304,0],0,33],[[2397,-303,0],1,28],[[2397,0,303],2,53],[[2397,303,0],0,20],[[2398,-302,0],1,17],[[2398,0,302],2,44],[[2398,302,0],0,40],[[2399,-301,0],1,29],[[2399,0,301],2,17],[[2399,301,0],0,60],[[2400,-300,0],1,37],[[2400,0,300],2,32],[[2400,300,0],0,37],[[2401,-299,0],1,53],[[2401,0,299],2,52],[[2401,299,0],0,4],[[2402,0,298],2,20],[[2402,298,0],0,5],[[2403,-297,0],1,53],[[2403,297,0],0,37],[[2404,-296,0],1,17],[[2404,0,296],2,56],[[2404,296,0],0,32],[[2405,-295,0],1,41],[[2405,0,295],2,25],[[2405,295,0],0,48],[[2406,-294,0],1,32],[[2406,0,294],2,57],[[2406,294,0],0,40],[[2407,-293,0],1,40],[[2407,0,293],2,1],[[2407,293,0],0,24],[[2408,-292,0],1,1],[[2408,0,292],2,1],[[2408,292,0],0,33],[[2409,-291,0],1,1],[[2409,0,291],2,17],[[2409,291,0],0,32],[[2410,-290,0],1,48],[[2410,290,0],0,1],[[2411,-289,0],1,1],[[2411,0,289],2,1],[[2412,-288,0],1,33],[[2412,0,288],2,21],[[2412,288,0],0,1],[[2413,-287,0],1,5],[[2413,0,287],2,60],[[2414,-286,0],1,33],[[2414,0,286],2,1],[[2414,286,0],0,45],[[2415,-285,0],1,1],[[2415,0,285],2,5],[[2415,285,0],0,44],[[2416,-284,0],1,32],[[2416,0,284],2,5],[[2416,284,0],0,4],[[2417,-283,0],1,44],[[2417,0,283],2,41],[[2417,283,0],0,4],[[2418,-282,0],1,33],[[2418,0,282],2,41],[[2418,282,0],0,1],[[2419,-281,0],1,41],[[2419,0,281],2,1],[[2419,281,0],0,1],[[2420,-280,0],1,48],[[2420,0,280],2,9],[[2421,-279,0],1,32],[[2421,0,279],2,16],[[2422,-278,0],1,33],[[2422,0,278],2,32],[[2422,278,0],0,56],[[2423,-277,0],1,33],[[2423,0,277],2,17],[[2423,277,0],0,56],[[2424,-276,0],1,48],[[2424,0,276],2,1],[[2424,276,0],0,1],[[2425,-275,0],1,24],[[2425,0,275],2,9],[[2425,275,0],0,1],[[2426,-274,0],1,32],[[2426,0,274],2,25],[[2427,-273,0],1,25],[[2427,273,0],0,1],[[2428,-272,0],1,48],[[2428,0,272],2,48],[[2428,272,0],0,1],[[2429,-271,0],1,56],[[2429,0,271],2,16],[[2429,271,0],0,16],[[2430,-270,0],1,48],[[2430,0,270],2,40],[[2430,270,0],0,24],[[2431,-269,0],1,56],[[2431,0,269],2,16],[[2431,269,0],0,8],[[2432,-268,0],1,32],[[2433,-267,0],1,32],[[2433,0,267],2,33],[[2433,267,0],0,1],[[2434,-266,0],1,33],[[2434,0,266],2,33],[[2434,266,0],0,1],[[2435,-265,0],1,33],[[2435,0,265],2,1],[[2436,-264,0],1,48],[[2436,0,264],2,57],[[2436,264,0],0,1],[[2437,-263,0],1,24],[[2437,0,263],2,40],[[2437,263,0],0,16],[[2438,-262,0],1,32],[[2438,0,262],2,8],[[2438,262,0],0,8],[[2439,-261,0],1,25],[[2439,261,0],0,24],[[2440,-260,0],1,32],[[2440,0,260],2,1],[[2440,260,0],0,1],[[2441,-259,0],1,16],[[2441,0,259],2,1],[[2442,-258,0],1,48],[[2442,0,258],2,16],[[2442,258,0],0,1],[[2443,-257,0],1,16],[[2443,0,257],2,1],[[2443,257,0],0,1],[[2444,-256,0],1,15],[[2444,0,256],2,44],[[2444,256,0],0,20],[[2445,-255,0],1,28],[[2445,0,255],2,62],[[2445,255,0],0,57],[[2446,-254,0],1,52],[[2446,0,254],2,31],[[2446,254,0],0,15],[[2447,-253,0],1,51],[[2447,0,253],2,9],[[2447,253,0],0,52],[[2448,-252,0],1,8],[[2448,0,252],2,60],[[2448,252,0],0,30],[[2449,-251,0],1,61],[[2449,0,251],2,24],[[2449,251,0],0,24],[[2450,-250,0],1,63],[[2450,0,250],2,33],[[2450,250,0],0,58],[[2451,-249,0],1,9],[[2451,0,249],2,4],[[2451,249,0],0,9],[[2452,-248,0],1,48],[[2452,0,248],2,9],[[2452,248,0],0,47],[[2453,-247,0],1,24],[[2453,0,247],2,40],[[2453,247,0],0,56],[[2454,-246,0],1,35],[[2454,0,246],2,48],[[2454,246,0],0,27],[[2455,-245,0],1,33],[[2455,0,245],2,57],[[2455,245,0],0,33],[[2456,-244,0],1,48],[[2456,244,0],0,42],[[2457,-243,0],1,25],[[2457,0,243],2,9],[[2457,243,0],0,25],[[2458,-242,0],1,11],[[2458,0,242],2,49],[[2458,242,0],0,59],[[2459,-241,0],1,41],[[2459,0,241],2,25],[[2459,241,0],0,33],[[2460,-240,0],1,49],[[2460,0,240],2,9],[[2460,240,0],0,35],[[2461,-239,0],1,16],[[2461,0,239],2,57],[[2461,239,0],0,32],[[2462,-238,0],1,43],[[2462,0,238],2,25],[[2462,238,0],0,35],[[2463,237,0],0,1],[[2464,-236,0],1,25],[[2464,0,236],2,57],[[2464,236,0],0,43],[[2465,-235,0],1,48],[[2465,0,235],2,24],[[2465,235,0],0,9],[[2466,-234,0],1,11],[[2466,0,234],2,24],[[2466,234,0],0,26],[[2467,-233,0],1,49],[[2467,0,233],2,17],[[2467,233,0],0,57],[[2468,-232,0],1,17],[[2468,0,232],2,17],[[2468,232,0],0,27],[[2469,-231,0],1,33],[[2469,0,231],2,9],[[2469,231,0],0,17],[[2470,-230,0],1,35],[[2470,0,230],2,32],[[2470,230,0],0,26],[[2471,-229,0],1,49],[[2471,0,229],2,9],[[2471,229,0],0,16],[[2472,-228,0],1,17],[[2472,0,228],2,16],[[2472,228,0],0,10],[[2473,-227,0],1,16],[[2473,0,227],2,25],[[2474,-226,0],1,2],[[2474,0,226],2,16],[[2474,226,0],0,27],[[2475,-225,0],1,17],[[2475,0,225],2,25],[[2475,225,0],0,17],[[2476,-224,0],1,44],[[2476,0,224],2,29],[[2476,224,0],0,39],[[2477,-223,0],1,45],[[2477,0,223],2,40],[[2477,223,0],0,37],[[2478,-222,0],1,62],[[2478,222,0],0,18],[[2479,-221,0],1,8],[[2479,0,221],2,20],[[2479,221,0],0,44],[[2480,-220,0],1,45],[[2480,0,220],2,40],[[2480,220,0],0,63],[[2481,-219,0],1,52],[[2481,0,219],2,17],[[2481,219,0],0,60],[[2482,-218,0],1,43],[[2482,0,218],2,53],[[2482,218,0],0,22],[[2483,-217,0],1,8],[[2483,0,217],2,57],[[2483,217,0],0,49],[[2484,-216,0],1,56],[[2484,0,216],2,37],[[2484,216,0],0,55],[[2485,-215,0],1,33],[[2485,0,215],2,12],[[2485,215,0],0,1],[[2486,-214,0],1,3],[[2486,0,214],2,40],[[2486,214,0],0,3],[[2487,-213,0],1,25],[[2487,0,213],2,9],[[2488,0,212],2,41],[[2488,212,0],0,51],[[2489,-211,0],1,57],[[2489,0,211],2,56],[[2489,211,0],0,48],[[2490,-210,0],1,34],[[2490,0,210],2,56],[[2490,210,0],0,19],[[2491,-209,0],1,9],[[2491,0,209],2,57],[[2491,209,0],0,48],[[2492,-208,0],1,49],[[2492,0,208],2,17],[[2492,208,0],0,19],[[2493,-207,0],1,17],[[2493,207,0],0,57],[[2494,-206,0],1,3],[[2494,0,206],2,48],[[2494,206,0],0,11],[[2495,-205,0],1,25],[[2495,0,205],2,25],[[2495,205,0],0,56],[[2496,-204,0],1,24],[[2496,0,204],2,24],[[2496,204,0],0,27],[[2497,-203,0],1,16],[[2497,0,203],2,48],[[2497,203,0],0,16],[[2498,-202,0],1,50],[[2498,0,202],2,25],[[2498,202,0],0,2],[[2499,-201,0],1,24],[[2499,0,201],2,8],[[2499,201,0],0,1],[[2500,-200,0],1,1],[[2500,0,200],2,40],[[2500,200,0],0,18],[[2501,-199,0],1,9],[[2501,0,199],2,56],[[2502,-198,0],1,19],[[2502,0,198],2,24],[[2502,198,0],0,19],[[2503,-197,0],1,9],[[2503,0,197],2,8],[[2503,197,0],0,16],[[2504,-196,0],1,17],[[2504,0,196],2,24],[[2504,196,0],0,18],[[2505,-195,0],1,24],[[2505,0,195],2,24],[[2505,195,0],0,17],[[2506,-194,0],1,19],[[2506,0,194],2,25],[[2506,194,0],0,3],[[2507,-193,0],1,24],[[2507,0,193],2,8],[[2508,-192,0],1,11],[[2508,0,192],2,10],[[2508,192,0],0,34],[[2509,-191,0],1,19],[[2509,0,191],2,37],[[2509,191,0],0,50],[[2510,-190,0],1,59],[[2510,0,190],2,21],[[2510,190,0],0,63],[[2511,-189,0],1,6],[[2511,0,189],2,52],[[2511,189,0],0,30],[[2512,-188,0],1,43],[[2512,0,188],2,23],[[2512,188,0],0,47],[[2513,-187,0],1,17],[[2513,0,187],2,13],[[2513,187,0],0,54],[[2514,-186,0],1,17],[[2514,0,186],2,15],[[2514,186,0],0,50],[[2515,-185,0],1,13],[[2515,0,185],2,49],[[2515,185,0],0,51],[[2516,-184,0],1,3],[[2516,0,184],2,63],[[2516,184,0],0,2],[[2517,-183,0],1,40],[[2517,0,183],2,36],[[2517,183,0],0,58],[[2518,-182,0],1,49],[[2518,0,182],2,18],[[2518,182,0],0,19],[[2519,-181,0],1,32],[[2519,0,181],2,49],[[2519,181,0],0,34],[[2520,-180,0],1,50],[[2520,0,180],2,35],[[2520,180,0],0,18],[[2521,-179,0],1,56],[[2521,0,179],2,48],[[2521,179,0],0,58],[[2522,-178,0],1,41],[[2522,0,178],2,18],[[2522,178,0],0,51],[[2523,-177,0],1,40],[[2523,0,177],2,33],[[2523,177,0],0,19],[[2524,-176,0],1,2],[[2524,0,176],2,26],[[2524,176,0],0,50],[[2525,-175,0],1,8],[[2525,0,175],2,40],[[2525,175,0],0,26],[[2526,-174,0],1,48],[[2526,0,174],2,43],[[2526,174,0],0,58],[[2527,-173,0],1,1],[[2527,0,173],2,1],[[2527,173,0],0,59],[[2528,-172,0],1,11],[[2528,0,172],2,34],[[2528,172,0],0,58],[[2529,-171,0],1,40],[[2529,0,171],2,40],[[2529,171,0],0,18],[[2530,-170,0],1,49],[[2530,0,170],2,2],[[2530,170,0],0,19],[[2531,-169,0],1,33],[[2531,0,169],2,16],[[2531,169,0],0,50],[[2532,-168,0],1,18],[[2532,0,168],2,50],[[2532,168,0],0,19],[[2533,-167,0],1,33],[[2533,0,167],2,32],[[2533,167,0],0,3],[[2534,-166,0],1,32],[[2534,0,166],2,51],[[2534,166,0],0,18],[[2535,-165,0],1,32],[[2535,0,165],2,16],[[2535,165,0],0,2],[[2536,-164,0],1,2],[[2536,0,164],2,3],[[2536,164,0],0,18],[[2537,0,163],2,1],[[2537,163,0],0,18],[[2538,-162,0],1,17],[[2538,0,162],2,3],[[2538,162,0],0,19],[[2539,-161,0],1,1],[[2539,0,161],2,17],[[2539,161,0],0,19],[[2540,-160,0],1,26],[[2540,0,160],2,22],[[2540,160,0],0,18],[[2541,-159,0],1,5],[[2541,0,159],2,44],[[2541,159,0],0,19],[[2542,-158,0],1,9],[[2542,0,158],2,3],[[2542,158,0],0,62],[[2543,-157,0],1,1],[[2543,0,157],2,21],[[2543,157,0],0,63],[[2544,-156,0],1,27],[[2544,0,156],2,7],[[2544,156,0],0,14],[[2545,-155,0],1,45],[[2545,0,155],2,57],[[2545,155,0],0,14],[[2546,-154,0],1,9],[[2546,0,154],2,42],[[2546,154,0],0,3],[[2547,-153,0],1,48],[[2547,0,153],2,17],[[2547,153,0],0,2],[[2548,-152,0],1,11],[[2548,0,152],2,11],[[2548,152,0],0,2],[[2549,-151,0],1,40],[[2549,0,151],2,1],[[2549,151,0],0,18],[[2550,-150,0],1,17],[[2550,0,150],2,34],[[2550,150,0],0,34],[[2551,-149,0],1,49],[[2551,0,149],2,1],[[2551,149,0],0,51],[[2552,-148,0],1,18],[[2552,0,148],2,2],[[2552,148,0],0,2],[[2553,-147,0],1,1],[[2553,0,147],2,16],[[2553,147,0],0,3],[[2554,-146,0],1,1],[[2554,0,146],2,2],[[2554,146,0],0,3],[[2555,-145,0],1,16],[[2555,0,145],2,17],[[2555,145,0],0,2],[[2556,-144,0],1,2],[[2556,0,144],2,43],[[2556,144,0],0,3],[[2557,-143,0],1,41],[[2557,0,143],2,25],[[2557,143,0],0,11],[[2558,-142,0],1,16],[[2558,0,142],2,43],[[2558,142,0],0,26],[[2559,-141,0],1,33],[[2559,0,141],2,16],[[2559,141,0],0,27],[[2560,-140,0],1,11],[[2560,0,140],2,3],[[2560,140,0],0,10],[[2561,-139,0],1,57],[[2561,0,139],2,41],[[2561,139,0],0,3],[[2562,-138,0],1,17],[[2562,0,138],2,51],[[2562,138,0],0,2],[[2563,-137,0],1,49],[[2563,137,0],0,2],[[2564,-136,0],1,18],[[2564,0,136],2,51],[[2564,136,0],0,3],[[2565,-135,0],1,16],[[2565,0,135],2,33],[[2565,135,0],0,19],[[2566,-134,0],1,1],[[2566,0,134],2,3],[[2566,134,0],0,3],[[2567,-133,0],1,16],[[2567,0,133],2,1],[[2567,133,0],0,19],[[2568,-132,0],1,2],[[2568,0,132],2,3],[[2568,132,0],0,3],[[2569,-131,0],1,16],[[2569,0,131],2,1],[[2569,131,0],0,3],[[2570,-130,0],1,16],[[2570,0,130],2,19],[[2570,130,0],0,2],[[2571,-129,0],1,17],[[2571,129,0],0,3],[[2572,-128,0],1,5],[[2572,0,128],2,3],[[2572,128,0],0,3],[[2573,-127,0],1,1],[[2573,0,127],2,3],[[2573,127,0],0,2],[[2574,-126,0],1,4],[[2574,0,126],2,1],[[2574,126,0],0,1],[[2575,-125,0],1,3],[[2575,0,125],2,1],[[2575,125,0],0,7],[[2576,-124,0],1,34],[[2576,0,124],2,6],[[2576,124,0],0,4],[[2577,0,123],2,48],[[2577,123,0],0,3],[[2578,-122,0],1,7],[[2578,0,122],2,7],[[2578,122,0],0,53],[[2579,-121,0],1,1],[[2579,0,121],2,36],[[2579,121,0],0,50],[[2580,-120,0],1,35],[[2580,0,120],2,7],[[2580,120,0],0,1],[[2581,-119,0],1,49],[[2581,0,119],2,5],[[2581,119,0],0,3],[[2582,-118,0],1,3],[[2582,0,118],2,50],[[2582,118,0],0,17],[[2583,-117,0],1,48],[[2583,117,0],0,18],[[2584,-116,0],1,34],[[2584,0,116],2,34],[[2584,116,0],0,1],[[2585,-115,0],1,32],[[2585,0,115],2,49],[[2585,115,0],0,35],[[2586,-114,0],1,35],[[2586,0,114],2,3],[[2586,114,0],0,49],[[2587,-113,0],1,32],[[2587,0,113],2,32],[[2587,113,0],0,18],[[2588,-112,0],1,3],[[2588,0,112],2,2],[[2589,-111,0],1,17],[[2589,111,0],0,3],[[2590,-110,0],1,3],[[2590,0,110],2,18],[[2590,110,0],0,16],[[2591,-109,0],1,16],[[2591,0,109],2,1],[[2591,109,0],0,19],[[2592,-108,0],1,35],[[2592,0,108],2,51],[[2592,108,0],0,1],[[2593,-107,0],1,49],[[2593,0,107],2,1],[[2593,107,0],0,34],[[2594,-106,0],1,3],[[2594,0,106],2,19],[[2595,-105,0],1,48],[[2595,105,0],0,34],[[2596,-104,0],1,3],[[2596,0,104],2,18],[[2596,104,0],0,1],[[2597,-103,0],1,32],[[2597,0,103],2,16],[[2597,103,0],0,2],[[2598,-102,0],1,35],[[2598,0,102],2,34],[[2598,102,0],0,1],[[2599,-101,0],1,32],[[2599,0,101],2,1],[[2599,101,0],0,3],[[2600,-100,0],1,3],[[2600,0,100],2,19],[[2601,-99,0],1,17],[[2601,99,0],0,3],[[2602,-98,0],1,3],[[2602,0,98],2,18],[[2602,98,0],0,1],[[2603,-97,0],1,16],[[2603,0,97],2,1],[[2603,97,0],0,2],[[2604,-96,0],1,54],[[2604,0,96],2,18],[[2604,96,0],0,1],[[2605,-95,0],1,1],[[2605,0,95],2,20],[[2605,95,0],0,7],[[2606,-94,0],1,7],[[2606,0,94],2,6],[[2606,94,0],0,4],[[2607,0,93],2,52],[[2607,93,0],0,7],[[2608,-92,0],1,55],[[2608,0,92],2,3],[[2608,92,0],0,5],[[2609,-91,0],1,1],[[2609,0,91],2,32],[[2609,91,0],0,6],[[2610,-90,0],1,2],[[2610,0,90],2,3],[[2610,90,0],0,16],[[2611,-89,0],1,1],[[2611,0,89],2,1],[[2611,89,0],0,18],[[2612,-88,0],1,34],[[2612,0,88],2,50],[[2613,-87,0],1,17],[[2613,0,87],2,48],[[2613,87,0],0,51],[[2614,-86,0],1,51],[[2614,0,86],2,34],[[2614,86,0],0,16],[[2615,-85,0],1,16],[[2615,0,85],2,32],[[2615,85,0],0,35],[[2616,-84,0],1,19],[[2616,0,84],2,3],[[2616,84,0],0,1],[[2617,-83,0],1,1],[[2617,0,83],2,1],[[2617,83,0],0,3],[[2618,-82,0],1,3],[[2618,0,82],2,2],[[2618,82,0],0,17],[[2619,81,0],0,18],[[2620,-80,0],1,34],[[2620,0,80],2,18],[[2620,80,0],0,1],[[2621,-79,0],1,16],[[2621,0,79],2,16],[[2621,79,0],0,35],[[2622,-78,0],1,19],[[2622,0,78],2,51],[[2622,78,0],0,16],[[2623,-77,0],1,16],[[2623,0,77],2,16],[[2623,77,0],0,51],[[2624,-76,0],1,3],[[2624,0,76],2,19],[[2625,-75,0],1,17],[[2625,0,75],2,48],[[2625,75,0],0,3],[[2626,-74,0],1,51],[[2626,0,74],2,18],[[2626,74,0],0,1],[[2627,-73,0],1,16],[[2627,0,73],2,1],[[2627,73,0],0,2],[[2628,-72,0],1,19],[[2628,0,72],2,34],[[2628,72,0],0,1],[[2629,-71,0],1,1],[[2629,0,71],2,32],[[2629,71,0],0,18],[[2630,-70,0],1,3],[[2630,0,70],2,19],[[2631,69,0],0,18],[[2632,-68,0],1,3],[[2632,0,68],2,18],[[2632,68,0],0,1],[[2633,-67,0],1,16],[[2633,0,67],2,16],[[2633,67,0],0,2],[[2634,-66,0],1,19],[[2634,0,66],2,18],[[2634,66,0],0,1],[[2635,-65,0],1,16],[[2635,0,65],2,1],[[2635,65,0],0,3],[[2636,-64,0],1,49],[[2637,-63,0],1,2],[[2637,0,63],2,4],[[2637,63,0],0,1],[[2638,-62,0],1,3],[[2638,0,62],2,7],[[2638,62,0],0,5],[[2639,-61,0],1,7],[[2639,0,61],2,53],[[2639,61,0],0,4],[[2640,-60,0],1,17],[[2640,0,60],2,5],[[2640,60,0],0,5],[[2641,-59,0],1,1],[[2641,0,59],2,20],[[2641,59,0],0,5],[[2642,-58,0],1,1],[[2642,0,58],2,4],[[2642,58,0],0,33],[[2643,-57,0],1,4],[[2643,0,57],2,33],[[2643,57,0],0,32],[[2644,-56,0],1,1],[[2644,0,56],2,53],[[2644,56,0],0,1],[[2645,-55,0],1,32],[[2645,0,55],2,53],[[2645,55,0],0,48],[[2646,-54,0],1,48],[[2646,0,54],2,16],[[2646,54,0],0,1],[[2647,-53,0],1,32],[[2647,0,53],2,32],[[2647,53,0],0,49],[[2648,-52,0],1,49],[[2648,0,52],2,33],[[2649,-51,0],1,33],[[2649,0,51],2,48],[[2649,51,0],0,32],[[2650,-50,0],1,32],[[2650,0,50],2,1],[[2650,50,0],0,32],[[2651,-49,0],1,32],[[2651,0,49],2,32],[[2652,-48,0],1,33],[[2652,0,48],2,16],[[2652,48,0],0,1],[[2653,-47,0],1,1],[[2653,0,47],2,16],[[2653,47,0],0,32],[[2654,-46,0],1,16],[[2654,0,46],2,33],[[2655,0,45],2,17],[[2655,45,0],0,32],[[2656,-44,0],1,32],[[2656,0,44],2,32],[[2656,44,0],0,1],[[2657,-43,0],1,32],[[2657,0,43],2,49],[[2657,43,0],0,33],[[2658,-42,0],1,48],[[2658,0,42],2,1],[[2658,42,0],0,1],[[2659,-41,0],1,32],[[2659,0,41],2,1],[[2659,41,0],0,32],[[2660,-40,0],1,16],[[2660,0,40],2,48],[[2661,-39,0],1,33],[[2661,0,39],2,48],[[2661,39,0],0,16],[[2662,-38,0],1,32],[[2662,0,38],2,49],[[2662,38,0],0,1],[[2663,-37,0],1,32],[[2663,0,37],2,1],[[2663,37,0],0,17],[[2664,0,36],2,1],[[2664,36,0],0,1],[[2665,-35,0],1,1],[[2665,0,35],2,16],[[2665,35,0],0,1],[[2666,-34,0],1,16],[[2667,33,0],0,1],[[2668,-32,0],1,16],[[2668,0,32],2,20],[[2668,32,0],0,1],[[2669,-31,0],1,5],[[2669,0,31],2,36],[[2670,0,30],2,1],[[2670,30,0],0,53],[[2671,-29,0],1,1],[[2671,0,29],2,20],[[2671,29,0],0,53],[[2672,-28,0],1,16],[[2672,0,28],2,4],[[2672,28,0],0,4],[[2673,-27,0],1,52],[[2673,0,27],2,33],[[2673,27,0],0,5],[[2674,-26,0],1,1],[[2674,0,26],2,49],[[2674,26,0],0,1],[[2675,-25,0],1,49],[[2675,0,25],2,1],[[2676,0,24],2,16],[[2676,24,0],0,1],[[2677,-23,0],1,49],[[2677,0,23],2,1],[[2677,23,0],0,16],[[2678,-22,0],1,16],[[2678,0,22],2,33],[[2678,22,0],0,33],[[2679,-21,0],1,48],[[2679,21,0],0,49],[[2680,-20,0],1,16],[[2680,0,20],2,1],[[2680,20,0],0,1],[[2681,-19,0],1,16],[[2681,0,19],2,1],[[2682,0,18],2,16],[[2682,18,0],0,1],[[2683,-17,0],1,16],[[2683,0,17],2,1],[[2683,17,0],0,1],[[2684,-16,0],1,1],[[2684,0,16],2,33],[[2685,-15,0],1,33],[[2685,0,15],2,17],[[2685,15,0],0,1],[[2686,-14,0],1,16],[[2686,0,14],2,32],[[2686,14,0],0,16],[[2687,-13,0],1,32],[[2687,0,13],2,16],[[2687,13,0],0,17],[[2688,0,12],2,1],[[2688,12,0],0,1],[[2689,-11,0],1,49],[[2689,0,11],2,32],[[2689,11,0],0,1],[[2690,-10,0],1,16],[[2690,0,10],2,48],[[2691,-9,0],1,48],[[2691,9,0],0,1],[[2692,-8,0],1,16],[[2692,0,8],2,49],[[2692,8,0],0,1],[[2693,-7,0],1,16],[[2693,0,7],2,32],[[2693,7,0],0,17],[[2694,0,6],2,1],[[2694,6,0],0,1],[[2695,-5,0],1,16],[[2695,0,5],2,1],[[2695,5,0],0,16],[[2696,-4,0],1,1],[[2697,-3,0],1,17],[[2697,3,0],0,1],[[2698,-2,0],1,16],[[2698,0,2],2,16],[[2698,2,0],0,1],[[2699,-1,0],1,16]]} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/PROVENANCE.json new file mode 100644 index 000000000..1cd6eee9b --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/PROVENANCE.json @@ -0,0 +1,8 @@ +{ + "inherited_core": "continuation/core.py", + "inherited_core_sha256": "b16155925700321abdb6f59260bc510e8e6c1d039f30c9eadc0c4320de89c941", + "source_geometry_origin": "handoff/unpacked/OI_native_Y_continuation_handoff_v1/oi_next_cycle_20261024/native_y/SOURCE-GEOMETRY.json", + "source_geometry_sha256": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d", + "repository_mutations": [], + "review_scope": "separate reviewer confirms native sidecar/prefix/diagnostic; transport proof review remains open" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/REPORT.md new file mode 100644 index 000000000..76d37e48b --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/REPORT.md @@ -0,0 +1,169 @@ +# Native history sidecar: x is already adjacent to the arriving Y operand + +24 October 2026. Avenue 2 of the owner-authorized parallel native-Y investigation. +Repository read-only. No new preparation or access premise is adopted. + +## Main result + +The earlier public X bit does not have to be brought back from the old stationary +public port merely to supply a nearby logical control. The accepted depth-two +outward construction already creates a native sidecar: + + s = qY + (0,-1,2), + U_(R+1)(s) = (0, 1 XOR y, x), y=x XOR u. + +Its complete raw prefix is zero through tick R. At phase time R+2, the lattice +therefore contains both: + +- the previous-slice D bit x at s; +- the current-slice raw A bit y at q2=qY+(0,0,2), one spatial step away. + +This is an actual native location/time result with the inherited initial +resources. It is not an externally retained classical record, an initialized +copy of unknown x, or a new memory assumption. It removes a long-distance +transport obligation from one possible implementation route for G. + +It does **not** implement G, provide persistent storage, or justify exposing the +sidecar indefinitely. At R+2 the sidecar's current triple has a new dependency +on the old input phase and on initially free frontier symbols. + +## Exact local proof + +Use the unchanged native rule + + U_(t+1)(v)=U_(t-1)(v) XOR H(XOR of six neighbours), + H(A,B,D)=(B,D,A XOR BD), + +and the actual parameters T=185, P=12*840^185, S=T+P, d=68, R=S+d. +Coordinates below are relative to qY=(0,S,d). + +At tick R, the six neighbours of s=(0,-1,2) are: + +| Relative site | Entire raw triple | +|---|---| +| (0,-1,1) | (x,1,y) | +| (0,-1,3) | (0,1 XOR u,0) | +| (0,0,2) | (0,u,1) | +| (0,-2,2) | (0,0,0) | +| (1,-1,2) | (0,0,0) | +| (-1,-1,2) | (0,0,0) | + +These follow by evaluating the already retained exact pre-interaction recurrence +and one ordinary native update. They hold for every old selector-mask assignment. +The old local slice U_(R-1)(s) is zero. The neighbour XOR is `(x,0,1 XOR y)`, so +one further ordinary update gives + + U_(R+1)(s)=H(x,0,1 XOR y)=(0,1 XOR y,x). + +All values lie inside the accepted q2 backward diamond; no new initial cold +region, seed, mirror correlation, or source is required. In particular this +result consumes no old independent frontier coordinates. + +### Prefix and diagnostic scope + +The upper pulse is at distance R-1 from s. Its first-arrival multiplicity is +that of displacements `(1,R-2)`, namely R-1, which is even. Its first possible +arrival cancels. Every lower boundary source is at distance at least R+1, so +none can arrive earlier. At tick R the local current-source spacetime parity +is wrong; the old previous-slice input first reaches s only at R+2. The inherited +ready cone excludes all other earlier effects. Thus the entire sidecar prefix +through R is zero. + +A diagnostic replacement of the original qY D operand by p at tick R cannot +reach s at R+1: their distance is three and only one tick elapses. The sidecar +remains `(0,1 XOR native_y,x)`, while the accepted q2 diagnostic has A=p. +Consequently the sidecar B bit must not be silently substituted for the actual +arriving p. Its D bit supplies x independently of that diagnostic. + +The new sidecar can remain private. Making it an additional public port or +changing the Y observation boundary requires a declared protocol and joint-law +check; no such change is made here. Its blank prefix is a useful property, not +an access-closure theorem or a native clock. + +## A precise next-tick memory boundary + +In absolute coordinates s=(0,S-1,d+2). At tick R+2: + +- the old previous-slice input triple g at the origin is at distance R+1 and + can first arrive at this tick; +- the old current-slice frontier M1=(0,-1,0) is at distance R+2 and can first + arrive at this tick as well. + +The frozen 1,479-entry source table has only the current origin x source inside +the sidecar's radius-(R+2) current cone. That source and the relevant current +selector/pulse sources belong to the opposite spacetime parity sector. Remote +herald/private-Z sources remain outside by the inherited x-separation bound. + +A useful exact countercontrol is to set the *nuisance coordinates in the queried +spacetime parity sector* to zero within this enlarged causal cone, retaining g. +This is an explicitly conditioned or modified complement for a counterexample, +not the accepted independent-fair-complement law and not a new preparation. +The other parity sector can retain the full original apparatus unchanged. +Then the sidecar's next current triple is exactly + + U_(R+2)(s)=H^(R+1)(g)=H²(g). + +The first equality is the single-pulse first-arrival law: `(S-1)&(d+2)=0` +makes the shortest-path count odd. The second uses R+1=2 modulo12. H² is a +permutation of all eight old triples. Therefore the native sidecar result does +not imply that the next current D bit still stores x, or that a continued raw +read is harmless for every complement. + +Conversely, in the separate countercontrol g=0 with only M1 varied in that +sector, the output is `H^(R+2)(M1)=H³(M1)`, also a permutation. The frontier +really can affect the next read. Neither countercontrol proves an unconditional +leak under the original prior, nor proves that M1 masks the whole enlarged +joint record. Such masking must account for M1's prior use in old public +records and cannot be inferred from a marginal uniformity check. + +The logical x control is present in the *previous* slice at phase time R+2, +even though the *current* slice at the same location may already have these +additional dependencies. Global second-order phase availability and persistent +readable storage are distinct claims. + +## Consequence for native G integration + +The logical target is still + + G(x,A,B,D)=(x,B XOR A,D XOR1 XOR xA,A). + +The next potentially useful native update is at s,t=R+3. Its old-slice term is +the proved `(0,1 XOR y,x)`, and its current-neighbour sum includes q2's raw +`(y,y,1 XOR xy)`. This gives a concrete adjacent two-slice starting point. +However, the other five current neighbours and their old-input/frontier +influences have not been computed here. Treating them as zero or freely +programmable would be invalid. An actual R+3 calculation also reaches lower +sources behind their first-arrival fronts; the q2 three-step proof cannot be +extended by simply retaining its first-arrival-only lower formula. + +This avenue therefore advances from an unspecified historical-memory task to +an explicit local phase-integration task. It does not claim the latter solved. +The auxiliary-register and direct-reset avenues can use this sidecar theorem +only with their own timing, source, and joint-record compatibility checks. + +## Checks and review status + +`checks.py` uses the standard library, writes no files, and keeps all checks +active under Python -O. It checks: + +- all16 x,u,mY,mR assignments, all32 operand diagnostics, the six-neighbour + table and the sidecar update; +- exact distances, actual parity, blank-prefix conditions, and source geometry; +- all1479 old source positions at the next-tick boundary; +- both eight-state first-arrival countercontrols and actual H phases; +- 240 independent direct-recursion previous-pulse cases, including dense + backgrounds in the opposite spacetime sector. + +The local native-sidecar part reuses the handoff's `core.py`; this is disclosed +in PROVENANCE.json and is not a new independent proof of that inherited +recurrence. The parallel independent reviewer separately confirmed the sidecar, +blank prefix and diagnostic distinction with a fresh symbolic stencil. Their +review report, not this author report, controls that review's exact scope. +The wider transport-proof review remains open. + +Run from any working directory: + + python3 /path/to/history_control/checks.py + python3 -O /path/to/history_control/checks.py + +Normal and optimized outputs are byte-identical and retained beside the checker. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/SHA256SUMS new file mode 100644 index 000000000..53a12b334 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/SHA256SUMS @@ -0,0 +1,7 @@ +16915357d23e93e3e2184979d42e24cb41f267e62de8b1ca02fe967529473e2a PROVENANCE.json +aad8d9adf833784f6f32f74528df0eeb1dd71424bfb95a073a2521dec57719ea REPORT.md +2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d SOURCE-GEOMETRY.json +31fb76130e82aede244b6af3a05a571189efec289cb4d3910c7fb5a7cb534f2e checks-O.out +31fb76130e82aede244b6af3a05a571189efec289cb4d3910c7fb5a7cb534f2e checks.out +6fc6d07e1855247b8b48b503b7d15fbab89982585495de761fdf482f5ce31d30 checks.py +b16155925700321abdb6f59260bc510e8e6c1d039f30c9eadc0c4320de89c941 core.py diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/SOURCE-GEOMETRY.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/SOURCE-GEOMETRY.json new file mode 100644 index 000000000..cbdfa5886 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/SOURCE-GEOMETRY.json @@ -0,0 +1,14797 @@ +{ + "source_path": "OI_combined_handoff_2026-10-24_v1/workspace/oi_followup_20261024/compiler_audit/AUTHOR-DATA.json", + "source_sha256": "1991aa92159e634723302bdeed7b11874380fb10ce4478ab5346581c760fbf42", + "deadline": 185, + "sources": [ + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -369, + -1, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -369, + 0, + -1 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -368, + -2, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -368, + 0, + -2 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -368, + 0, + 2 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -367, + -3, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "R", + "position": [ + -367, + 0, + -3 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -367, + 0, + 3 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -366, + 0, + -4 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -365, + -5, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -365, + 0, + -5 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -365, + 0, + 5 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -364, + -6, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -364, + 0, + 6 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -363, + -7, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "R", + "position": [ + -363, + 0, + -7 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -362, + -8, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -362, + 0, + -8 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -362, + 0, + 8 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -361, + -9, + 0 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -361, + 0, + 9 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "R", + "position": [ + -360, + -10, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -360, + 0, + -10 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -360, + 0, + 10 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -359, + -11, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "R", + "position": [ + -359, + 0, + -11 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -359, + 0, + 11 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -358, + -12, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "R", + "position": [ + -358, + 0, + -12 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -358, + 0, + 12 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -357, + -13, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -357, + 0, + -13 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -357, + 0, + 13 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -356, + -14, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -356, + 0, + -14 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -356, + 0, + 14 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "R", + "position": [ + -355, + -15, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "R", + "position": [ + -355, + 0, + -15 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -355, + 0, + 15 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "R", + "position": [ + -354, + -16, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -354, + 0, + -16 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -354, + 0, + 16 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -353, + -17, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -353, + 0, + -17 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -353, + 0, + 17 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -352, + -18, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -352, + 0, + 18 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -351, + -19, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "R", + "position": [ + -351, + 0, + -19 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -351, + 0, + 19 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -350, + -20, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -350, + 0, + -20 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -350, + 0, + 20 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -349, + -21, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -349, + 0, + 21 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "R", + "position": [ + -348, + -22, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -348, + 0, + -22 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -348, + 0, + 22 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -347, + -23, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "R", + "position": [ + -347, + 0, + -23 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -347, + 0, + 23 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -346, + -24, + 0 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -346, + 0, + 24 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -345, + -25, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -345, + 0, + -25 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -345, + 0, + 25 + ] + }, + { + "field": 2, + "mask": 14, + "owner": "R", + "position": [ + -344, + -26, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -344, + 0, + -26 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -344, + 0, + 26 + ] + }, + { + "field": 1, + "mask": 15, + "owner": "R", + "position": [ + -343, + 0, + -27 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -343, + 0, + 27 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -342, + 0, + -28 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -342, + 0, + 28 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -341, + -29, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -341, + 0, + -29 + ] + }, + { + "field": 0, + "mask": 14, + "owner": "R", + "position": [ + -341, + 0, + 29 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -340, + -30, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "R", + "position": [ + -340, + 0, + -30 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -340, + 0, + 30 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -339, + -31, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "R", + "position": [ + -339, + 0, + -31 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "R", + "position": [ + -339, + 0, + 31 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "R", + "position": [ + -338, + -32, + 0 + ] + }, + { + "field": 1, + "mask": 14, + "owner": "R", + "position": [ + -338, + 0, + -32 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -338, + 0, + 32 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -337, + -33, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -337, + 0, + 33 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -336, + 0, + -34 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -336, + 0, + 34 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -335, + -35, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "R", + "position": [ + -335, + 0, + -35 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -335, + 0, + 35 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -334, + -36, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "R", + "position": [ + -334, + 0, + -36 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -334, + 0, + 36 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -333, + -37, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -333, + 0, + -37 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -333, + 0, + 37 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -332, + -38, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -332, + 0, + -38 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -332, + 0, + 38 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "R", + "position": [ + -331, + 0, + -39 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -331, + 0, + 39 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "R", + "position": [ + -330, + 0, + -40 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -330, + 0, + 40 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -329, + -41, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -329, + 0, + -41 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -329, + 0, + 41 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -328, + -42, + 0 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -328, + 0, + 42 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -327, + -43, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -327, + 0, + -43 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -327, + 0, + 43 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -326, + -44, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -326, + 0, + -44 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -326, + 0, + 44 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -325, + 0, + 45 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "R", + "position": [ + -324, + -46, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "R", + "position": [ + -324, + 0, + -46 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -324, + 0, + 46 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -323, + -47, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "R", + "position": [ + -323, + 0, + -47 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -323, + 0, + 47 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -322, + -48, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -322, + 0, + 48 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -321, + -49, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -321, + 0, + -49 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -320, + -50, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -320, + 0, + -50 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -320, + 0, + 50 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "R", + "position": [ + -319, + 0, + -51 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -319, + 0, + 51 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -318, + -52, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "R", + "position": [ + -318, + 0, + -52 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -318, + 0, + 52 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -317, + -53, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -317, + 0, + -53 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -317, + 0, + 53 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -316, + -54, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "R", + "position": [ + -316, + 0, + -54 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -316, + 0, + 54 + ] + }, + { + "field": 2, + "mask": 14, + "owner": "R", + "position": [ + -315, + -55, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "R", + "position": [ + -315, + 0, + -55 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -315, + 0, + 55 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -314, + -56, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "R", + "position": [ + -314, + 0, + -56 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "R", + "position": [ + -314, + 0, + 56 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "R", + "position": [ + -313, + -57, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -313, + 0, + -57 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "R", + "position": [ + -313, + 0, + 57 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -312, + 0, + -58 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "R", + "position": [ + -312, + 0, + 58 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -311, + -59, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -311, + 0, + -59 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "R", + "position": [ + -311, + 0, + 59 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "R", + "position": [ + -310, + -60, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -310, + 0, + -60 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "R", + "position": [ + -310, + 0, + 60 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -309, + -61, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -309, + 0, + -61 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "R", + "position": [ + -308, + -62, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "R", + "position": [ + -308, + 0, + -62 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "R", + "position": [ + -308, + 0, + 62 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "R", + "position": [ + -307, + -63, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -307, + 0, + -63 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -306, + -64, + 0 + ] + }, + { + "field": 1, + "mask": 14, + "owner": "R", + "position": [ + -306, + 0, + -64 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -306, + 0, + 64 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -305, + -65, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -305, + 0, + -65 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -304, + -66, + 0 + ] + }, + { + "field": 2, + "mask": 19, + "owner": "R", + "position": [ + -303, + -67, + 0 + ] + }, + { + "field": 1, + "mask": 18, + "owner": "R", + "position": [ + -303, + 0, + -67 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -303, + 0, + 67 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -302, + -68, + 0 + ] + }, + { + "field": 1, + "mask": 17, + "owner": "R", + "position": [ + -302, + 0, + -68 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "R", + "position": [ + -302, + 0, + 68 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -301, + -69, + 0 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "R", + "position": [ + -301, + 0, + 69 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "R", + "position": [ + -300, + -70, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -300, + 0, + -70 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "R", + "position": [ + -300, + 0, + 70 + ] + }, + { + "field": 2, + "mask": 21, + "owner": "R", + "position": [ + -299, + -71, + 0 + ] + }, + { + "field": 1, + "mask": 23, + "owner": "R", + "position": [ + -299, + 0, + -71 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "R", + "position": [ + -299, + 0, + 71 + ] + }, + { + "field": 2, + "mask": 18, + "owner": "R", + "position": [ + -298, + -72, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "R", + "position": [ + -298, + 0, + -72 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -298, + 0, + 72 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -297, + -73, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -297, + 0, + -73 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -297, + 0, + 73 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -296, + -74, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -296, + 0, + -74 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -296, + 0, + 74 + ] + }, + { + "field": 2, + "mask": 18, + "owner": "R", + "position": [ + -295, + -75, + 0 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "R", + "position": [ + -295, + 0, + -75 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -295, + 0, + 75 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "R", + "position": [ + -294, + -76, + 0 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "R", + "position": [ + -294, + 0, + -76 + ] + }, + { + "field": 0, + "mask": 23, + "owner": "R", + "position": [ + -294, + 0, + 76 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -293, + -77, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -293, + 0, + -77 + ] + }, + { + "field": 0, + "mask": 22, + "owner": "R", + "position": [ + -293, + 0, + 77 + ] + }, + { + "field": 2, + "mask": 20, + "owner": "R", + "position": [ + -292, + -78, + 0 + ] + }, + { + "field": 0, + "mask": 22, + "owner": "R", + "position": [ + -292, + 0, + 78 + ] + }, + { + "field": 2, + "mask": 22, + "owner": "R", + "position": [ + -291, + -79, + 0 + ] + }, + { + "field": 1, + "mask": 18, + "owner": "R", + "position": [ + -291, + 0, + -79 + ] + }, + { + "field": 0, + "mask": 23, + "owner": "R", + "position": [ + -291, + 0, + 79 + ] + }, + { + "field": 2, + "mask": 18, + "owner": "R", + "position": [ + -290, + -80, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -290, + 0, + -80 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -290, + 0, + 80 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -289, + -81, + 0 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -289, + 0, + 81 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "R", + "position": [ + -288, + -82, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -288, + 0, + -82 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -288, + 0, + 82 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "R", + "position": [ + -287, + -83, + 0 + ] + }, + { + "field": 1, + "mask": 23, + "owner": "R", + "position": [ + -287, + 0, + -83 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -287, + 0, + 83 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -286, + -84, + 0 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "R", + "position": [ + -286, + 0, + -84 + ] + }, + { + "field": 0, + "mask": 19, + "owner": "R", + "position": [ + -286, + 0, + 84 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -285, + 0, + -85 + ] + }, + { + "field": 0, + "mask": 18, + "owner": "R", + "position": [ + -285, + 0, + 85 + ] + }, + { + "field": 2, + "mask": 18, + "owner": "R", + "position": [ + -284, + -86, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -284, + 0, + -86 + ] + }, + { + "field": 0, + "mask": 19, + "owner": "R", + "position": [ + -284, + 0, + 86 + ] + }, + { + "field": 2, + "mask": 20, + "owner": "R", + "position": [ + -283, + -87, + 0 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "R", + "position": [ + -283, + 0, + -87 + ] + }, + { + "field": 0, + "mask": 19, + "owner": "R", + "position": [ + -283, + 0, + 87 + ] + }, + { + "field": 2, + "mask": 22, + "owner": "R", + "position": [ + -282, + -88, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -282, + 0, + -88 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -282, + 0, + 88 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -281, + -89, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -281, + 0, + -89 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -281, + 0, + 89 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "R", + "position": [ + -280, + -90, + 0 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "R", + "position": [ + -280, + 0, + -90 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -280, + 0, + 90 + ] + }, + { + "field": 2, + "mask": 22, + "owner": "R", + "position": [ + -279, + -91, + 0 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "R", + "position": [ + -279, + 0, + -91 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -279, + 0, + 91 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -278, + -92, + 0 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "R", + "position": [ + -278, + 0, + -92 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "R", + "position": [ + -278, + 0, + 92 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -277, + -93, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -277, + 0, + -93 + ] + }, + { + "field": 0, + "mask": 25, + "owner": "R", + "position": [ + -277, + 0, + 93 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "R", + "position": [ + -276, + -94, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -276, + 0, + -94 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "R", + "position": [ + -276, + 0, + 94 + ] + }, + { + "field": 2, + "mask": 19, + "owner": "R", + "position": [ + -275, + -95, + 0 + ] + }, + { + "field": 1, + "mask": 27, + "owner": "R", + "position": [ + -275, + 0, + -95 + ] + }, + { + "field": 0, + "mask": 25, + "owner": "R", + "position": [ + -275, + 0, + 95 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "R", + "position": [ + -274, + -96, + 0 + ] + }, + { + "field": 1, + "mask": 10, + "owner": "R", + "position": [ + -274, + 0, + -96 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -274, + 0, + 96 + ] + }, + { + "field": 2, + "mask": 10, + "owner": "R", + "position": [ + -273, + -97, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -273, + 0, + -97 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -273, + 0, + 97 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -272, + -98, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -272, + 0, + -98 + ] + }, + { + "field": 0, + "mask": 10, + "owner": "R", + "position": [ + -272, + 0, + 98 + ] + }, + { + "field": 2, + "mask": 27, + "owner": "R", + "position": [ + -271, + -99, + 0 + ] + }, + { + "field": 1, + "mask": 26, + "owner": "R", + "position": [ + -271, + 0, + -99 + ] + }, + { + "field": 0, + "mask": 10, + "owner": "R", + "position": [ + -271, + 0, + 99 + ] + }, + { + "field": 2, + "mask": 10, + "owner": "R", + "position": [ + -270, + -100, + 0 + ] + }, + { + "field": 1, + "mask": 27, + "owner": "R", + "position": [ + -270, + 0, + -100 + ] + }, + { + "field": 0, + "mask": 18, + "owner": "R", + "position": [ + -270, + 0, + 100 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "R", + "position": [ + -269, + -101, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -269, + 0, + -101 + ] + }, + { + "field": 0, + "mask": 19, + "owner": "R", + "position": [ + -269, + 0, + 101 + ] + }, + { + "field": 2, + "mask": 23, + "owner": "R", + "position": [ + -268, + -102, + 0 + ] + }, + { + "field": 0, + "mask": 26, + "owner": "R", + "position": [ + -268, + 0, + 102 + ] + }, + { + "field": 2, + "mask": 25, + "owner": "R", + "position": [ + -267, + -103, + 0 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "R", + "position": [ + -267, + 0, + -103 + ] + }, + { + "field": 0, + "mask": 27, + "owner": "R", + "position": [ + -267, + 0, + 103 + ] + }, + { + "field": 2, + "mask": 27, + "owner": "R", + "position": [ + -266, + -104, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -266, + 0, + -104 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -266, + 0, + 104 + ] + }, + { + "field": 2, + "mask": 14, + "owner": "R", + "position": [ + -265, + -105, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -265, + 0, + -105 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -265, + 0, + 105 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -264, + -106, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "R", + "position": [ + -264, + 0, + -106 + ] + }, + { + "field": 0, + "mask": 14, + "owner": "R", + "position": [ + -264, + 0, + 106 + ] + }, + { + "field": 2, + "mask": 31, + "owner": "R", + "position": [ + -263, + -107, + 0 + ] + }, + { + "field": 1, + "mask": 27, + "owner": "R", + "position": [ + -263, + 0, + -107 + ] + }, + { + "field": 0, + "mask": 15, + "owner": "R", + "position": [ + -263, + 0, + 107 + ] + }, + { + "field": 2, + "mask": 11, + "owner": "R", + "position": [ + -262, + -108, + 0 + ] + }, + { + "field": 1, + "mask": 28, + "owner": "R", + "position": [ + -262, + 0, + -108 + ] + }, + { + "field": 0, + "mask": 21, + "owner": "R", + "position": [ + -262, + 0, + 108 + ] + }, + { + "field": 2, + "mask": 10, + "owner": "R", + "position": [ + -261, + -109, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -261, + 0, + -109 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "R", + "position": [ + -261, + 0, + 109 + ] + }, + { + "field": 2, + "mask": 23, + "owner": "R", + "position": [ + -260, + -110, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -260, + 0, + -110 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "R", + "position": [ + -260, + 0, + 110 + ] + }, + { + "field": 2, + "mask": 30, + "owner": "R", + "position": [ + -259, + -111, + 0 + ] + }, + { + "field": 1, + "mask": 26, + "owner": "R", + "position": [ + -259, + 0, + -111 + ] + }, + { + "field": 0, + "mask": 25, + "owner": "R", + "position": [ + -259, + 0, + 111 + ] + }, + { + "field": 2, + "mask": 25, + "owner": "R", + "position": [ + -258, + -112, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "R", + "position": [ + -258, + 0, + -112 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -258, + 0, + 112 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "R", + "position": [ + -257, + -113, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -257, + 0, + -113 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -257, + 0, + 113 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -256, + -114, + 0 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "R", + "position": [ + -256, + 0, + -114 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "R", + "position": [ + -256, + 0, + 114 + ] + }, + { + "field": 2, + "mask": 31, + "owner": "R", + "position": [ + -255, + -115, + 0 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "R", + "position": [ + -255, + 0, + -115 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "R", + "position": [ + -255, + 0, + 115 + ] + }, + { + "field": 2, + "mask": 11, + "owner": "R", + "position": [ + -254, + -116, + 0 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "R", + "position": [ + -254, + 0, + -116 + ] + }, + { + "field": 0, + "mask": 19, + "owner": "R", + "position": [ + -254, + 0, + 116 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "R", + "position": [ + -253, + -117, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -253, + 0, + -117 + ] + }, + { + "field": 0, + "mask": 19, + "owner": "R", + "position": [ + -253, + 0, + 117 + ] + }, + { + "field": 2, + "mask": 22, + "owner": "R", + "position": [ + -252, + -118, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -252, + 0, + -118 + ] + }, + { + "field": 0, + "mask": 27, + "owner": "R", + "position": [ + -252, + 0, + 118 + ] + }, + { + "field": 2, + "mask": 19, + "owner": "R", + "position": [ + -251, + -119, + 0 + ] + }, + { + "field": 1, + "mask": 17, + "owner": "R", + "position": [ + -251, + 0, + -119 + ] + }, + { + "field": 0, + "mask": 31, + "owner": "R", + "position": [ + -251, + 0, + 119 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "R", + "position": [ + -250, + -120, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -250, + 0, + -120 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "R", + "position": [ + -250, + 0, + 120 + ] + }, + { + "field": 2, + "mask": 15, + "owner": "R", + "position": [ + -249, + -121, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -249, + 0, + -121 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "R", + "position": [ + -249, + 0, + 121 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -248, + -122, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "R", + "position": [ + -248, + 0, + -122 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "R", + "position": [ + -247, + -123, + 0 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "R", + "position": [ + -247, + 0, + -123 + ] + }, + { + "field": 1, + "mask": 23, + "owner": "R", + "position": [ + -246, + 0, + -124 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "R", + "position": [ + -246, + 0, + 124 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "R", + "position": [ + -245, + -125, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -245, + 0, + -125 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "R", + "position": [ + -245, + 0, + 125 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "R", + "position": [ + -244, + -126, + 0 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "R", + "position": [ + -244, + 0, + 126 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "R", + "position": [ + -243, + -127, + 0 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "R", + "position": [ + -243, + 0, + -127 + ] + }, + { + "field": 0, + "mask": 25, + "owner": "R", + "position": [ + -243, + 0, + 127 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "R", + "position": [ + -242, + -128, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -242, + 0, + -128 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -242, + 0, + 128 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -241, + -129, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -241, + 0, + 129 + ] + }, + { + "field": 2, + "mask": 10, + "owner": "R", + "position": [ + -240, + -130, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -240, + 0, + -130 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -239, + -131, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "R", + "position": [ + -239, + 0, + -131 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "R", + "position": [ + -239, + 0, + 131 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -238, + -132, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -238, + 0, + 132 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -237, + 0, + -133 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "R", + "position": [ + -236, + -134, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -236, + 0, + -134 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -236, + 0, + 134 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -235, + -135, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "R", + "position": [ + -235, + 0, + -135 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "R", + "position": [ + -235, + 0, + 135 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -234, + -136, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -234, + 0, + -136 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -234, + 0, + 136 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -233, + -137, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -233, + 0, + -137 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -233, + 0, + 137 + ] + }, + { + "field": 2, + "mask": 15, + "owner": "R", + "position": [ + -232, + -138, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -232, + 0, + -138 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -232, + 0, + 138 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -231, + -139, + 0 + ] + }, + { + "field": 1, + "mask": 18, + "owner": "R", + "position": [ + -231, + 0, + -139 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "R", + "position": [ + -231, + 0, + 139 + ] + }, + { + "field": 2, + "mask": 21, + "owner": "R", + "position": [ + -230, + -140, + 0 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "R", + "position": [ + -230, + 0, + -140 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -230, + 0, + 140 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -229, + 0, + 141 + ] + }, + { + "field": 2, + "mask": 28, + "owner": "R", + "position": [ + -228, + -142, + 0 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "R", + "position": [ + -228, + 0, + -142 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -228, + 0, + 142 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -227, + -143, + 0 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "R", + "position": [ + -227, + 0, + -143 + ] + }, + { + "field": 0, + "mask": 30, + "owner": "R", + "position": [ + -227, + 0, + 143 + ] + }, + { + "field": 2, + "mask": 21, + "owner": "R", + "position": [ + -226, + -144, + 0 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "R", + "position": [ + -226, + 0, + -144 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -226, + 0, + 144 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -225, + -145, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -225, + 0, + -145 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -225, + 0, + 145 + ] + }, + { + "field": 2, + "mask": 11, + "owner": "R", + "position": [ + -224, + -146, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -224, + 0, + -146 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -224, + 0, + 146 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "R", + "position": [ + -223, + 0, + -147 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "R", + "position": [ + -223, + 0, + 147 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "R", + "position": [ + -222, + -148, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -222, + 0, + -148 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -222, + 0, + 148 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -221, + -149, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -221, + 0, + -149 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -221, + 0, + 149 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "R", + "position": [ + -220, + -150, + 0 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "R", + "position": [ + -220, + 0, + -150 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -220, + 0, + 150 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "R", + "position": [ + -219, + -151, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "R", + "position": [ + -219, + 0, + -151 + ] + }, + { + "field": 0, + "mask": 15, + "owner": "R", + "position": [ + -219, + 0, + 151 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -218, + -152, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -218, + 0, + -152 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -218, + 0, + 152 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -217, + -153, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -217, + 0, + -153 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -217, + 0, + 153 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -216, + -154, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -216, + 0, + -154 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -216, + 0, + 154 + ] + }, + { + "field": 1, + "mask": 30, + "owner": "R", + "position": [ + -215, + 0, + -155 + ] + }, + { + "field": 0, + "mask": 14, + "owner": "R", + "position": [ + -215, + 0, + 155 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "R", + "position": [ + -214, + -156, + 0 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "R", + "position": [ + -214, + 0, + -156 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -214, + 0, + 156 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -213, + -157, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -213, + 0, + -157 + ] + }, + { + "field": 0, + "mask": 15, + "owner": "R", + "position": [ + -213, + 0, + 157 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "R", + "position": [ + -212, + -158, + 0 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "R", + "position": [ + -212, + 0, + -158 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -212, + 0, + 158 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "R", + "position": [ + -211, + -159, + 0 + ] + }, + { + "field": 1, + "mask": 27, + "owner": "R", + "position": [ + -211, + 0, + -159 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "R", + "position": [ + -211, + 0, + 159 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "R", + "position": [ + -210, + -160, + 0 + ] + }, + { + "field": 1, + "mask": 30, + "owner": "R", + "position": [ + -210, + 0, + -160 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -210, + 0, + 160 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -209, + -161, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -209, + 0, + -161 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -209, + 0, + 161 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "R", + "position": [ + -208, + -162, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -208, + 0, + -162 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -208, + 0, + 162 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -207, + -163, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "R", + "position": [ + -207, + 0, + -163 + ] + }, + { + "field": 0, + "mask": 10, + "owner": "R", + "position": [ + -207, + 0, + 163 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -206, + -164, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "R", + "position": [ + -206, + 0, + -164 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -206, + 0, + 164 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -205, + -165, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -205, + 0, + 165 + ] + }, + { + "field": 2, + "mask": 14, + "owner": "R", + "position": [ + -204, + -166, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -204, + 0, + -166 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -204, + 0, + 166 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "R", + "position": [ + -203, + 0, + -167 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "R", + "position": [ + -203, + 0, + 167 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -202, + -168, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "R", + "position": [ + -202, + 0, + -168 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -202, + 0, + 168 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "R", + "position": [ + -201, + -169, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -201, + 0, + -169 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -201, + 0, + 169 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "R", + "position": [ + -200, + -170, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -200, + 0, + -170 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -200, + 0, + 170 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -199, + -171, + 0 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "R", + "position": [ + -199, + 0, + -171 + ] + }, + { + "field": 0, + "mask": 14, + "owner": "R", + "position": [ + -199, + 0, + 171 + ] + }, + { + "field": 2, + "mask": 17, + "owner": "R", + "position": [ + -198, + -172, + 0 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "R", + "position": [ + -198, + 0, + -172 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -198, + 0, + 172 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -197, + -173, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -197, + 0, + -173 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -197, + 0, + 173 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "R", + "position": [ + -196, + -174, + 0 + ] + }, + { + "field": 1, + "mask": 26, + "owner": "R", + "position": [ + -196, + 0, + -174 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -196, + 0, + 174 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -195, + -175, + 0 + ] + }, + { + "field": 1, + "mask": 18, + "owner": "R", + "position": [ + -195, + 0, + -175 + ] + }, + { + "field": 0, + "mask": 31, + "owner": "R", + "position": [ + -195, + 0, + 175 + ] + }, + { + "field": 2, + "mask": 17, + "owner": "R", + "position": [ + -194, + -176, + 0 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "R", + "position": [ + -194, + 0, + -176 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -193, + 0, + -177 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "R", + "position": [ + -192, + -178, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -192, + 0, + -178 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -192, + 0, + 178 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -191, + -179, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "R", + "position": [ + -191, + 0, + -179 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "R", + "position": [ + -191, + 0, + 179 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -190, + -180, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "R", + "position": [ + -190, + 0, + -180 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -190, + 0, + 180 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -189, + -181, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -189, + 0, + -181 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -189, + 0, + 181 + ] + }, + { + "field": 2, + "mask": 10, + "owner": "R", + "position": [ + -188, + -182, + 0 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "R", + "position": [ + -188, + 0, + -182 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -188, + 0, + 182 + ] + }, + { + "field": 2, + "mask": 14, + "owner": "R", + "position": [ + -187, + -183, + 0 + ] + }, + { + "field": 1, + "mask": 10, + "owner": "R", + "position": [ + -187, + 0, + -183 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "R", + "position": [ + -187, + 0, + 183 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -186, + -184, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "R", + "position": [ + -186, + 0, + -184 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "R", + "position": [ + -186, + 0, + 184 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -185, + -185, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -185, + 0, + -185 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "R", + "position": [ + -185, + 0, + 185 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 0, + -185, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 0, + 0, + -1295 + ] + }, + { + "field": 1, + "mask": 64, + "owner": "input", + "position": [ + 0, + 0, + 0 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 0, + 185, + -1480 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "H", + "position": [ + 1, + -184, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 1, + 0, + -1296 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "H", + "position": [ + 1, + 184, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 2, + -183, + -1480 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "H", + "position": [ + 2, + 0, + -1297 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 2, + 183, + -1480 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "H", + "position": [ + 3, + -182, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 3, + 0, + -1298 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 3, + 182, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 4, + -181, + -1480 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "H", + "position": [ + 4, + 0, + -1299 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 4, + 181, + -1480 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 5, + -180, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 5, + 0, + -1300 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 5, + 180, + -1480 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 6, + 179, + -1480 + ] + }, + { + "field": 1, + "mask": 25, + "owner": "H", + "position": [ + 7, + -178, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 7, + 0, + -1302 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "H", + "position": [ + 7, + 178, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 8, + -177, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 8, + 0, + -1303 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 8, + 177, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 9, + -176, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 9, + 0, + -1304 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 9, + 176, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 10, + -175, + -1480 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "H", + "position": [ + 10, + 0, + -1305 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "H", + "position": [ + 10, + 175, + -1480 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 11, + -174, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 11, + 0, + -1306 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "H", + "position": [ + 11, + 174, + -1480 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 12, + -173, + -1480 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "H", + "position": [ + 12, + 0, + -1307 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 12, + 173, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 13, + -172, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 13, + 0, + -1308 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 14, + -171, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 14, + 0, + -1309 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 14, + 171, + -1480 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "H", + "position": [ + 15, + -170, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 15, + 0, + -1310 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "H", + "position": [ + 15, + 170, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 16, + -169, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 16, + 0, + -1311 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "H", + "position": [ + 16, + 169, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 17, + -168, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 17, + 0, + -1312 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 17, + 168, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 18, + -167, + -1480 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "H", + "position": [ + 18, + 0, + -1313 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 18, + 167, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 19, + -166, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 19, + 0, + -1314 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 20, + -165, + -1480 + ] + }, + { + "field": 2, + "mask": 17, + "owner": "H", + "position": [ + 20, + 0, + -1315 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 20, + 165, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 21, + 164, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 22, + -163, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 22, + 0, + -1317 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 22, + 163, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 23, + -162, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 23, + 0, + -1318 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 23, + 162, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 24, + -161, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 24, + 0, + -1319 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 24, + 161, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 25, + -160, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 25, + 0, + -1320 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 25, + 160, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 26, + 0, + -1321 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 26, + 159, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 27, + -158, + -1480 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "H", + "position": [ + 27, + 158, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 28, + 0, + -1323 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "H", + "position": [ + 28, + 157, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 29, + -156, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 29, + 0, + -1324 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 30, + -155, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 30, + 0, + -1325 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 30, + 155, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 31, + 0, + -1326 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 31, + 154, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 32, + -153, + -1480 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 32, + 153, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 33, + -152, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 33, + 0, + -1328 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 33, + 152, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 34, + -151, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 34, + 0, + -1329 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "H", + "position": [ + 34, + 151, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 35, + -150, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 35, + 0, + -1330 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 35, + 150, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 36, + -149, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 36, + 0, + -1331 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "H", + "position": [ + 36, + 149, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 37, + -148, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 37, + 0, + -1332 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 38, + -147, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 38, + 0, + -1333 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 38, + 147, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 39, + -146, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 39, + 0, + -1334 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 39, + 146, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 40, + -145, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 40, + 0, + -1335 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 41, + 0, + -1336 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 41, + 144, + -1480 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 42, + -143, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 42, + 0, + -1337 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 42, + 143, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 43, + -142, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 43, + 0, + -1338 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "H", + "position": [ + 43, + 142, + -1480 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "H", + "position": [ + 44, + -141, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 44, + 0, + -1339 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "H", + "position": [ + 44, + 141, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 45, + -140, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 45, + 0, + -1340 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 45, + 140, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 46, + -139, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 46, + 0, + -1341 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 47, + -138, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 47, + 0, + -1342 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 47, + 138, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 48, + -137, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 48, + 0, + -1343 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 48, + 137, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 49, + -136, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 49, + 0, + -1344 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 50, + -135, + -1480 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "H", + "position": [ + 50, + 135, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 51, + -134, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 51, + 0, + -1346 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 51, + 134, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 52, + -133, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 52, + 0, + -1347 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "H", + "position": [ + 52, + 133, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 53, + 0, + -1348 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 53, + 132, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 54, + -131, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 54, + 0, + -1349 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 54, + 131, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 55, + -130, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 55, + 0, + -1350 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 56, + -129, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 56, + 129, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 57, + -128, + -1480 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 57, + 128, + -1480 + ] + }, + { + "field": 1, + "mask": 28, + "owner": "H", + "position": [ + 58, + -127, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 58, + 0, + -1353 + ] + }, + { + "field": 1, + "mask": 17, + "owner": "H", + "position": [ + 59, + -126, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 59, + 0, + -1354 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "H", + "position": [ + 59, + 126, + -1480 + ] + }, + { + "field": 1, + "mask": 25, + "owner": "H", + "position": [ + 60, + -125, + -1480 + ] + }, + { + "field": 2, + "mask": 25, + "owner": "H", + "position": [ + 60, + 0, + -1355 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "H", + "position": [ + 60, + 125, + -1480 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "H", + "position": [ + 61, + -124, + -1480 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "H", + "position": [ + 61, + 0, + -1356 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 61, + 124, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 62, + -123, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 62, + 0, + -1357 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "H", + "position": [ + 62, + 123, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 63, + -122, + -1480 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "H", + "position": [ + 63, + 122, + -1480 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "H", + "position": [ + 64, + -121, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 64, + 0, + -1359 + ] + }, + { + "field": 0, + "mask": 21, + "owner": "H", + "position": [ + 64, + 121, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 65, + -120, + -1480 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "H", + "position": [ + 65, + 0, + -1360 + ] + }, + { + "field": 0, + "mask": 25, + "owner": "H", + "position": [ + 65, + 120, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 66, + -119, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 66, + 0, + -1361 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 66, + 119, + -1480 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "H", + "position": [ + 67, + -118, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 67, + 0, + -1362 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 67, + 118, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 68, + -117, + -1480 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "H", + "position": [ + 68, + 0, + -1363 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 68, + 117, + -1480 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 69, + -116, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 69, + 0, + -1364 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "H", + "position": [ + 69, + 116, + -1480 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 70, + 115, + -1480 + ] + }, + { + "field": 1, + "mask": 25, + "owner": "H", + "position": [ + 71, + -114, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 71, + 0, + -1366 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "H", + "position": [ + 71, + 114, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 72, + -113, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 72, + 0, + -1367 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 72, + 113, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 73, + -112, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 73, + 0, + -1368 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 73, + 112, + -1480 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "H", + "position": [ + 74, + -111, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 74, + 0, + -1369 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "H", + "position": [ + 74, + 111, + -1480 + ] + }, + { + "field": 1, + "mask": 25, + "owner": "H", + "position": [ + 75, + -110, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 75, + 0, + -1370 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 75, + 110, + -1480 + ] + }, + { + "field": 1, + "mask": 25, + "owner": "H", + "position": [ + 76, + -109, + -1480 + ] + }, + { + "field": 2, + "mask": 17, + "owner": "H", + "position": [ + 76, + 0, + -1371 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 76, + 109, + -1480 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "H", + "position": [ + 77, + -108, + -1480 + ] + }, + { + "field": 2, + "mask": 25, + "owner": "H", + "position": [ + 77, + 0, + -1372 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 77, + 108, + -1480 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "H", + "position": [ + 78, + -107, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 78, + 0, + -1373 + ] + }, + { + "field": 0, + "mask": 21, + "owner": "H", + "position": [ + 78, + 107, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 79, + -106, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 79, + 0, + -1374 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 79, + 106, + -1480 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "H", + "position": [ + 80, + -105, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 80, + 0, + -1375 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "H", + "position": [ + 80, + 105, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 81, + -104, + -1480 + ] + }, + { + "field": 2, + "mask": 20, + "owner": "H", + "position": [ + 81, + 0, + -1376 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 81, + 104, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 82, + -103, + -1480 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "H", + "position": [ + 82, + 103, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 83, + -102, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 83, + 102, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 84, + -101, + -1480 + ] + }, + { + "field": 2, + "mask": 17, + "owner": "H", + "position": [ + 84, + 0, + -1379 + ] + }, + { + "field": 0, + "mask": 21, + "owner": "H", + "position": [ + 84, + 101, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 86, + -99, + -1480 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 86, + 99, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 87, + -98, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 87, + 0, + -1382 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 87, + 98, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 88, + -97, + -1480 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 88, + 97, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 89, + -96, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 89, + 0, + -1384 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 89, + 96, + -1480 + ] + }, + { + "field": 1, + "mask": 17, + "owner": "H", + "position": [ + 90, + -95, + -1480 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "H", + "position": [ + 90, + 0, + -1385 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 90, + 95, + -1480 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "H", + "position": [ + 91, + -94, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 91, + 0, + -1386 + ] + }, + { + "field": 0, + "mask": 29, + "owner": "H", + "position": [ + 91, + 94, + -1480 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "H", + "position": [ + 92, + -93, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 92, + 0, + -1387 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "H", + "position": [ + 92, + 93, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 93, + -92, + -1480 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "H", + "position": [ + 93, + 0, + -1388 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 93, + 92, + -1480 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "H", + "position": [ + 94, + -91, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 94, + 91, + -1480 + ] + }, + { + "field": 1, + "mask": 17, + "owner": "H", + "position": [ + 95, + -90, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 95, + 0, + -1390 + ] + }, + { + "field": 0, + "mask": 25, + "owner": "H", + "position": [ + 95, + 90, + -1480 + ] + }, + { + "field": 1, + "mask": 28, + "owner": "H", + "position": [ + 96, + -89, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 96, + 0, + -1391 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 96, + 89, + -1480 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "H", + "position": [ + 97, + -88, + -1480 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "H", + "position": [ + 97, + 0, + -1392 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 97, + 88, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 98, + -87, + -1480 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "H", + "position": [ + 98, + 0, + -1393 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 98, + 87, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 99, + -86, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 99, + 0, + -1394 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 100, + -85, + -1480 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "H", + "position": [ + 100, + 85, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 101, + -84, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 101, + 0, + -1396 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 102, + -83, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 102, + 0, + -1397 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 103, + -82, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 103, + 0, + -1398 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 104, + -81, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 104, + 0, + -1399 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 104, + 81, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 105, + 0, + -1400 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 105, + 80, + -1480 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "H", + "position": [ + 106, + -79, + -1480 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "H", + "position": [ + 106, + 0, + -1401 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 106, + 79, + -1480 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "H", + "position": [ + 107, + -78, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 107, + 0, + -1402 + ] + }, + { + "field": 0, + "mask": 29, + "owner": "H", + "position": [ + 107, + 78, + -1480 + ] + }, + { + "field": 1, + "mask": 25, + "owner": "H", + "position": [ + 108, + -77, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 108, + 0, + -1403 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "H", + "position": [ + 108, + 77, + -1480 + ] + }, + { + "field": 1, + "mask": 17, + "owner": "H", + "position": [ + 109, + -76, + -1480 + ] + }, + { + "field": 2, + "mask": 25, + "owner": "H", + "position": [ + 109, + 0, + -1404 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 109, + 76, + -1480 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "H", + "position": [ + 110, + -75, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 110, + 0, + -1405 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "H", + "position": [ + 111, + -74, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 111, + 0, + -1406 + ] + }, + { + "field": 0, + "mask": 25, + "owner": "H", + "position": [ + 111, + 74, + -1480 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "H", + "position": [ + 112, + -73, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 112, + 0, + -1407 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 112, + 73, + -1480 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "H", + "position": [ + 113, + -72, + -1480 + ] + }, + { + "field": 2, + "mask": 20, + "owner": "H", + "position": [ + 113, + 0, + -1408 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 113, + 72, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 114, + -71, + -1480 + ] + }, + { + "field": 2, + "mask": 17, + "owner": "H", + "position": [ + 114, + 0, + -1409 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 114, + 71, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 116, + -69, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 116, + 0, + -1411 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "H", + "position": [ + 116, + 69, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 117, + -68, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 117, + 68, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 118, + -67, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 118, + 0, + -1413 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 118, + 67, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 119, + -66, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 119, + 0, + -1414 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 120, + -65, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 121, + -64, + -1480 + ] + }, + { + "field": 0, + "mask": 25, + "owner": "H", + "position": [ + 121, + 64, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 122, + -63, + -1480 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "H", + "position": [ + 122, + 0, + -1417 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 122, + 63, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 123, + -62, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 123, + 0, + -1418 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "H", + "position": [ + 123, + 62, + -1480 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 124, + -61, + -1480 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "H", + "position": [ + 124, + 0, + -1419 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "H", + "position": [ + 124, + 61, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 125, + -60, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 126, + -59, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 126, + 0, + -1421 + ] + }, + { + "field": 0, + "mask": 29, + "owner": "H", + "position": [ + 126, + 59, + -1480 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "H", + "position": [ + 127, + -58, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 127, + 0, + -1422 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "H", + "position": [ + 127, + 58, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 128, + -57, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 128, + 0, + -1423 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 128, + 57, + -1480 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "H", + "position": [ + 129, + -56, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 129, + 0, + -1424 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "H", + "position": [ + 129, + 56, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 130, + -55, + -1480 + ] + }, + { + "field": 2, + "mask": 25, + "owner": "H", + "position": [ + 130, + 0, + -1425 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 130, + 55, + -1480 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 131, + -54, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 131, + 0, + -1426 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 131, + 54, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 132, + -53, + -1480 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "H", + "position": [ + 132, + 0, + -1427 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 132, + 53, + -1480 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "H", + "position": [ + 133, + -52, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 133, + 0, + -1428 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "H", + "position": [ + 133, + 52, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 134, + 0, + -1429 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 134, + 51, + -1480 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "H", + "position": [ + 135, + -50, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 135, + 0, + -1430 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "H", + "position": [ + 135, + 50, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 136, + -49, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 136, + 0, + -1431 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 136, + 49, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 137, + -48, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 137, + 0, + -1432 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 137, + 48, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 138, + -47, + -1480 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "H", + "position": [ + 138, + 0, + -1433 + ] + }, + { + "field": 0, + "mask": 29, + "owner": "H", + "position": [ + 138, + 47, + -1480 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "H", + "position": [ + 139, + -46, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 139, + 0, + -1434 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "H", + "position": [ + 139, + 46, + -1480 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "H", + "position": [ + 140, + -45, + -1480 + ] + }, + { + "field": 2, + "mask": 17, + "owner": "H", + "position": [ + 140, + 0, + -1435 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 140, + 45, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 141, + -44, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 141, + 0, + -1436 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 141, + 44, + -1480 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "H", + "position": [ + 142, + -43, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 142, + 0, + -1437 + ] + }, + { + "field": 0, + "mask": 21, + "owner": "H", + "position": [ + 142, + 43, + -1480 + ] + }, + { + "field": 1, + "mask": 17, + "owner": "H", + "position": [ + 143, + -42, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 143, + 0, + -1438 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "H", + "position": [ + 143, + 42, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 144, + -41, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 144, + 0, + -1439 + ] + }, + { + "field": 0, + "mask": 29, + "owner": "H", + "position": [ + 144, + 41, + -1480 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "H", + "position": [ + 145, + -40, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 145, + 0, + -1440 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 145, + 40, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 146, + -39, + -1480 + ] + }, + { + "field": 2, + "mask": 17, + "owner": "H", + "position": [ + 146, + 0, + -1441 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 146, + 39, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 147, + -38, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 147, + 38, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 148, + -37, + -1480 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "H", + "position": [ + 148, + 0, + -1443 + ] + }, + { + "field": 0, + "mask": 21, + "owner": "H", + "position": [ + 148, + 37, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 149, + -36, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 149, + 36, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 150, + -35, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 150, + 0, + -1445 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 150, + 35, + -1480 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "H", + "position": [ + 151, + -34, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 151, + 0, + -1446 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 151, + 34, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 152, + -33, + -1480 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 152, + 33, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 153, + -32, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 154, + -31, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 154, + 0, + -1449 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "H", + "position": [ + 155, + 30, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 156, + 0, + -1451 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "H", + "position": [ + 156, + 29, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 157, + -28, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 157, + 28, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 158, + -27, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 158, + 27, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 159, + 0, + -1454 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "H", + "position": [ + 159, + 26, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 160, + -25, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 160, + 0, + -1455 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "H", + "position": [ + 160, + 25, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 161, + 0, + -1456 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 161, + 24, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 162, + -23, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 162, + 0, + -1457 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "H", + "position": [ + 162, + 23, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 163, + -22, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 163, + 0, + -1458 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 164, + -21, + -1480 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "H", + "position": [ + 164, + 21, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 165, + -20, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 165, + 0, + -1460 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 165, + 20, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 166, + -19, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 166, + 0, + -1461 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 167, + 0, + -1462 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 167, + 18, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 168, + -17, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 168, + 0, + -1463 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 168, + 17, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 169, + -16, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 169, + 0, + -1464 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "H", + "position": [ + 170, + -15, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 170, + 0, + -1465 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 170, + 15, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 171, + -14, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 171, + 0, + -1466 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "H", + "position": [ + 171, + 14, + -1480 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 172, + -13, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 172, + 0, + -1467 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "H", + "position": [ + 172, + 13, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 173, + 0, + -1468 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 173, + 12, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 174, + -11, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 174, + 0, + -1469 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 174, + 11, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 175, + -10, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 175, + 0, + -1470 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "H", + "position": [ + 175, + 10, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 176, + -9, + -1480 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 176, + 9, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 177, + -8, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 177, + 0, + -1472 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 177, + 8, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 178, + -7, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 178, + 0, + -1473 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "H", + "position": [ + 178, + 7, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 179, + 0, + -1474 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 179, + 6, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 180, + -5, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 180, + 0, + -1475 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "H", + "position": [ + 180, + 5, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 181, + -4, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 182, + -3, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 182, + 3, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 183, + -2, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 183, + 0, + -1478 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 183, + 2, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 184, + -1, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 185, + -185, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "Y", + "position": [ + 185, + 0, + -185 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "Y", + "position": [ + 185, + 0, + 185 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "Y", + "position": [ + 186, + 0, + -184 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 186, + 0, + 184 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 187, + -183, + 0 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "Y", + "position": [ + 187, + 0, + -183 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "Y", + "position": [ + 187, + 0, + 183 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "Y", + "position": [ + 188, + 0, + -182 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 188, + 0, + 182 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 189, + -181, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 189, + 0, + -181 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "Y", + "position": [ + 189, + 0, + 181 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 190, + -180, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 190, + 0, + -180 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 190, + 0, + 180 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 191, + -179, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 191, + 0, + -179 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 191, + 0, + 179 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 192, + -178, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 192, + 0, + -178 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 192, + 0, + 178 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 193, + -177, + 0 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "Y", + "position": [ + 193, + 0, + -177 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "Y", + "position": [ + 193, + 0, + 177 + ] + }, + { + "field": 1, + "mask": 26, + "owner": "Y", + "position": [ + 194, + 0, + -176 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 194, + 0, + 176 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 195, + -175, + 0 + ] + }, + { + "field": 1, + "mask": 14, + "owner": "Y", + "position": [ + 195, + 0, + -175 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "Y", + "position": [ + 195, + 0, + 175 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "Y", + "position": [ + 196, + 0, + -174 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 196, + 0, + 174 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "Y", + "position": [ + 197, + 0, + -173 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "Y", + "position": [ + 197, + 0, + 173 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 198, + -172, + 0 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "Y", + "position": [ + 198, + 0, + -172 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 198, + 0, + 172 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 199, + -171, + 0 + ] + }, + { + "field": 1, + "mask": 23, + "owner": "Y", + "position": [ + 199, + 0, + -171 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 199, + 0, + 171 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "Y", + "position": [ + 200, + 0, + -170 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "Y", + "position": [ + 200, + 0, + 170 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 201, + -169, + 0 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "Y", + "position": [ + 201, + 0, + -169 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "Y", + "position": [ + 201, + 0, + 169 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 202, + -168, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "Y", + "position": [ + 202, + 0, + -168 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 202, + 0, + 168 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 203, + -167, + 0 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "Y", + "position": [ + 203, + 0, + -167 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 203, + 0, + 167 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 204, + -166, + 0 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "Y", + "position": [ + 204, + 0, + -166 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 204, + 0, + 166 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 205, + -165, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "Y", + "position": [ + 205, + 0, + -165 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "Y", + "position": [ + 205, + 0, + 165 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 206, + -164, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 206, + 0, + -164 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 206, + 0, + 164 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 207, + 0, + 163 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 208, + -162, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 208, + 0, + -162 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 208, + 0, + 162 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 209, + -161, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "Y", + "position": [ + 209, + 0, + -161 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "Y", + "position": [ + 209, + 0, + 161 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 210, + -160, + 0 + ] + }, + { + "field": 1, + "mask": 15, + "owner": "Y", + "position": [ + 210, + 0, + -160 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 211, + -159, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "Y", + "position": [ + 211, + 0, + -159 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 211, + 0, + 159 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 213, + -157, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 213, + 0, + -157 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 213, + 0, + 157 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 214, + -156, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 214, + 0, + -156 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 215, + -155, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 215, + 0, + 155 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 216, + 0, + 154 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 217, + -153, + 0 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 217, + 0, + 153 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 218, + -152, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 218, + 0, + -152 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 218, + 0, + 152 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 219, + -151, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "Y", + "position": [ + 219, + 0, + -151 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 219, + 0, + 151 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 220, + -150, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 220, + 0, + -150 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 220, + 0, + 150 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 221, + -149, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 221, + 0, + -149 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 221, + 0, + 149 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 222, + 0, + -148 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "Y", + "position": [ + 223, + 0, + -147 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 223, + 0, + 147 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 224, + -146, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 224, + 0, + -146 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 224, + 0, + 146 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 225, + -145, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 225, + 0, + -145 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 225, + 0, + 145 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 226, + -144, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "Y", + "position": [ + 226, + 0, + -144 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 226, + 0, + 144 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 227, + -143, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 227, + 0, + -143 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 227, + 0, + 143 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 228, + -142, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 228, + 0, + -142 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 228, + 0, + 142 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 229, + -141, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 229, + 0, + 141 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 230, + -140, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "Y", + "position": [ + 230, + 0, + -140 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 230, + 0, + 140 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 231, + -139, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 231, + 0, + -139 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "Y", + "position": [ + 231, + 0, + 139 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 232, + -138, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 232, + 0, + -138 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 232, + 0, + 138 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 233, + -137, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 233, + 0, + -137 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 233, + 0, + 137 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 234, + -136, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 234, + 0, + -136 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "Y", + "position": [ + 235, + 0, + -135 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 235, + 0, + 135 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 236, + -134, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 236, + 0, + -134 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 236, + 0, + 134 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 237, + -133, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 237, + 0, + -133 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 238, + -132, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 238, + 0, + -132 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 238, + 0, + 132 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 239, + -131, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 239, + 0, + -131 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 239, + 0, + 131 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 240, + -130, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 240, + 0, + -130 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 240, + 0, + 130 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 241, + -129, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 241, + 0, + 129 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "Y", + "position": [ + 242, + -128, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 242, + 0, + -128 + ] + }, + { + "field": 0, + "mask": 29, + "owner": "Y", + "position": [ + 242, + 0, + 128 + ] + }, + { + "field": 2, + "mask": 21, + "owner": "Y", + "position": [ + 243, + -127, + 0 + ] + }, + { + "field": 1, + "mask": 15, + "owner": "Y", + "position": [ + 243, + 0, + -127 + ] + }, + { + "field": 0, + "mask": 22, + "owner": "Y", + "position": [ + 243, + 0, + 127 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 244, + -126, + 0 + ] + }, + { + "field": 1, + "mask": 30, + "owner": "Y", + "position": [ + 244, + 0, + -126 + ] + }, + { + "field": 0, + "mask": 23, + "owner": "Y", + "position": [ + 244, + 0, + 126 + ] + }, + { + "field": 2, + "mask": 20, + "owner": "Y", + "position": [ + 245, + -125, + 0 + ] + }, + { + "field": 1, + "mask": 26, + "owner": "Y", + "position": [ + 245, + 0, + -125 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "Y", + "position": [ + 245, + 0, + 125 + ] + }, + { + "field": 2, + "mask": 10, + "owner": "Y", + "position": [ + 246, + -124, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 246, + 0, + -124 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 246, + 0, + 124 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "Y", + "position": [ + 247, + -123, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "Y", + "position": [ + 247, + 0, + -123 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "Y", + "position": [ + 247, + 0, + 123 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 248, + -122, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "Y", + "position": [ + 248, + 0, + -122 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "Y", + "position": [ + 248, + 0, + 122 + ] + }, + { + "field": 2, + "mask": 14, + "owner": "Y", + "position": [ + 249, + -121, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 249, + 0, + -121 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 249, + 0, + 121 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 250, + -120, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "Y", + "position": [ + 250, + 0, + -120 + ] + }, + { + "field": 0, + "mask": 23, + "owner": "Y", + "position": [ + 250, + 0, + 120 + ] + }, + { + "field": 2, + "mask": 21, + "owner": "Y", + "position": [ + 251, + -119, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 251, + 0, + -119 + ] + }, + { + "field": 0, + "mask": 29, + "owner": "Y", + "position": [ + 251, + 0, + 119 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 252, + -118, + 0 + ] + }, + { + "field": 1, + "mask": 18, + "owner": "Y", + "position": [ + 252, + 0, + -118 + ] + }, + { + "field": 0, + "mask": 19, + "owner": "Y", + "position": [ + 252, + 0, + 118 + ] + }, + { + "field": 2, + "mask": 20, + "owner": "Y", + "position": [ + 253, + -117, + 0 + ] + }, + { + "field": 1, + "mask": 23, + "owner": "Y", + "position": [ + 253, + 0, + -117 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 253, + 0, + 117 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 254, + -116, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 254, + 0, + -116 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 254, + 0, + 116 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 255, + -115, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "Y", + "position": [ + 255, + 0, + -115 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "Y", + "position": [ + 255, + 0, + 115 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 256, + -114, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "Y", + "position": [ + 256, + 0, + -114 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 256, + 0, + 114 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 257, + -113, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 257, + 0, + -113 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 257, + 0, + 113 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 258, + -112, + 0 + ] + }, + { + "field": 1, + "mask": 14, + "owner": "Y", + "position": [ + 258, + 0, + -112 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "Y", + "position": [ + 258, + 0, + 112 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "Y", + "position": [ + 259, + -111, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 259, + 0, + -111 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 259, + 0, + 111 + ] + }, + { + "field": 1, + "mask": 14, + "owner": "Y", + "position": [ + 260, + 0, + -110 + ] + }, + { + "field": 0, + "mask": 10, + "owner": "Y", + "position": [ + 260, + 0, + 110 + ] + }, + { + "field": 2, + "mask": 10, + "owner": "Y", + "position": [ + 261, + -109, + 0 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "Y", + "position": [ + 261, + 0, + -109 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 262, + -108, + 0 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "Y", + "position": [ + 262, + 0, + 108 + ] + }, + { + "field": 2, + "mask": 11, + "owner": "Y", + "position": [ + 263, + -107, + 0 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "Y", + "position": [ + 263, + 0, + -107 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 263, + 0, + 107 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 264, + -106, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 264, + 0, + -106 + ] + }, + { + "field": 0, + "mask": 10, + "owner": "Y", + "position": [ + 264, + 0, + 106 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "Y", + "position": [ + 265, + -105, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "Y", + "position": [ + 265, + 0, + -105 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "Y", + "position": [ + 265, + 0, + 105 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "Y", + "position": [ + 266, + 0, + -104 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 266, + 0, + 104 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 267, + -103, + 0 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "Y", + "position": [ + 267, + 0, + 103 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 268, + -102, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 268, + 0, + -102 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 268, + 0, + 102 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 269, + -101, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 269, + 0, + -101 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 269, + 0, + 101 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 270, + -100, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 270, + 0, + -100 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 270, + 0, + 100 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 271, + -99, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 271, + 0, + -99 + ] + }, + { + "field": 0, + "mask": 14, + "owner": "Y", + "position": [ + 271, + 0, + 99 + ] + }, + { + "field": 1, + "mask": 10, + "owner": "Y", + "position": [ + 272, + 0, + -98 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 272, + 0, + 98 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 273, + -97, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 273, + 0, + -97 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 273, + 0, + 97 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 274, + -96, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 274, + 0, + -96 + ] + }, + { + "field": 0, + "mask": 31, + "owner": "Y", + "position": [ + 274, + 0, + 96 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "Y", + "position": [ + 275, + -95, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 275, + 0, + -95 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "Y", + "position": [ + 275, + 0, + 95 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "Y", + "position": [ + 276, + 0, + -94 + ] + }, + { + "field": 0, + "mask": 30, + "owner": "Y", + "position": [ + 276, + 0, + 94 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "Y", + "position": [ + 277, + -93, + 0 + ] + }, + { + "field": 1, + "mask": 27, + "owner": "Y", + "position": [ + 277, + 0, + -93 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 277, + 0, + 93 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 278, + -92, + 0 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "Y", + "position": [ + 278, + 0, + 92 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "Y", + "position": [ + 279, + -91, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 279, + 0, + -91 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "Y", + "position": [ + 279, + 0, + 91 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 280, + -90, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "Y", + "position": [ + 280, + 0, + -90 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "Y", + "position": [ + 280, + 0, + 90 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "Y", + "position": [ + 281, + -89, + 0 + ] + }, + { + "field": 1, + "mask": 14, + "owner": "Y", + "position": [ + 281, + 0, + -89 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 281, + 0, + 89 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 282, + -88, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 282, + 0, + -88 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "Y", + "position": [ + 282, + 0, + 88 + ] + }, + { + "field": 2, + "mask": 19, + "owner": "Y", + "position": [ + 283, + -87, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "Y", + "position": [ + 283, + 0, + -87 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "Y", + "position": [ + 283, + 0, + 87 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 284, + -86, + 0 + ] + }, + { + "field": 1, + "mask": 18, + "owner": "Y", + "position": [ + 284, + 0, + -86 + ] + }, + { + "field": 0, + "mask": 19, + "owner": "Y", + "position": [ + 284, + 0, + 86 + ] + }, + { + "field": 2, + "mask": 19, + "owner": "Y", + "position": [ + 285, + -85, + 0 + ] + }, + { + "field": 1, + "mask": 22, + "owner": "Y", + "position": [ + 285, + 0, + -85 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 285, + 0, + 85 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 286, + -84, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 286, + 0, + 84 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 287, + -83, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 287, + 0, + -83 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 287, + 0, + 83 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 288, + -82, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 288, + 0, + 82 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 289, + -81, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 289, + 0, + -81 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 289, + 0, + 81 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 290, + -80, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 290, + 0, + -80 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "Y", + "position": [ + 290, + 0, + 80 + ] + }, + { + "field": 2, + "mask": 14, + "owner": "Y", + "position": [ + 291, + -79, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 291, + 0, + -79 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "Y", + "position": [ + 291, + 0, + 79 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 292, + -78, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 292, + 0, + -78 + ] + }, + { + "field": 0, + "mask": 15, + "owner": "Y", + "position": [ + 292, + 0, + 78 + ] + }, + { + "field": 2, + "mask": 11, + "owner": "Y", + "position": [ + 293, + -77, + 0 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "Y", + "position": [ + 293, + 0, + -77 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 293, + 0, + 77 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 294, + -76, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 294, + 0, + -76 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "Y", + "position": [ + 294, + 0, + 76 + ] + }, + { + "field": 2, + "mask": 15, + "owner": "Y", + "position": [ + 295, + -75, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "Y", + "position": [ + 295, + 0, + -75 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "Y", + "position": [ + 295, + 0, + 75 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 296, + -74, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 296, + 0, + -74 + ] + }, + { + "field": 0, + "mask": 15, + "owner": "Y", + "position": [ + 296, + 0, + 74 + ] + }, + { + "field": 2, + "mask": 10, + "owner": "Y", + "position": [ + 297, + -73, + 0 + ] + }, + { + "field": 1, + "mask": 15, + "owner": "Y", + "position": [ + 297, + 0, + -73 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 297, + 0, + 73 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 298, + -72, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 298, + 0, + 72 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 299, + -71, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 299, + 0, + -71 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 299, + 0, + 71 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 300, + -70, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 300, + 0, + 70 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 301, + -69, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 301, + 0, + -69 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 302, + -68, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 302, + 0, + -68 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 302, + 0, + 68 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 303, + -67, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 303, + 0, + -67 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 303, + 0, + 67 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 304, + -66, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 304, + 0, + -66 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 304, + 0, + 66 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 305, + -65, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 305, + 0, + -65 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 306, + 0, + -64 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 306, + 0, + 64 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 307, + -63, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 307, + 0, + -63 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "Y", + "position": [ + 307, + 0, + 63 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 308, + -62, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 308, + 0, + -62 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 308, + 0, + 62 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 309, + -61, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 309, + 0, + -61 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "Y", + "position": [ + 309, + 0, + 61 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 310, + -60, + 0 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 310, + 0, + 60 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 311, + -59, + 0 + ] + }, + { + "field": 1, + "mask": 14, + "owner": "Y", + "position": [ + 311, + 0, + -59 + ] + }, + { + "field": 0, + "mask": 15, + "owner": "Y", + "position": [ + 311, + 0, + 59 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 312, + -58, + 0 + ] + }, + { + "field": 1, + "mask": 15, + "owner": "Y", + "position": [ + 312, + 0, + -58 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 312, + 0, + 58 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 313, + -57, + 0 + ] + }, + { + "field": 1, + "mask": 15, + "owner": "Y", + "position": [ + 313, + 0, + -57 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 313, + 0, + 57 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 314, + -56, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "Y", + "position": [ + 314, + 0, + -56 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 314, + 0, + 56 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 315, + -55, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 315, + 0, + -55 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "Y", + "position": [ + 315, + 0, + 55 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 316, + -54, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 316, + 0, + -54 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 316, + 0, + 54 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 317, + -53, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 317, + 0, + -53 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 317, + 0, + 53 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 318, + -52, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 318, + 0, + -52 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 318, + 0, + 52 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 319, + -51, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "Y", + "position": [ + 319, + 0, + -51 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "Y", + "position": [ + 319, + 0, + 51 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 320, + -50, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "Y", + "position": [ + 320, + 0, + -50 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 320, + 0, + 50 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 321, + -49, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 321, + 0, + -49 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 321, + 0, + 49 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 322, + -48, + 0 + ] + }, + { + "field": 1, + "mask": 15, + "owner": "Y", + "position": [ + 322, + 0, + -48 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 322, + 0, + 48 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 323, + -47, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 323, + 0, + -47 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "Y", + "position": [ + 323, + 0, + 47 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 324, + 0, + 46 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 325, + -45, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 325, + 0, + 45 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 326, + -44, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 326, + 0, + -44 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 326, + 0, + 44 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 327, + -43, + 0 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "Y", + "position": [ + 327, + 0, + -43 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "Y", + "position": [ + 327, + 0, + 43 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 328, + -42, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "Y", + "position": [ + 328, + 0, + -42 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 328, + 0, + 42 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 329, + -41, + 0 + ] + }, + { + "field": 1, + "mask": 14, + "owner": "Y", + "position": [ + 329, + 0, + -41 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 329, + 0, + 41 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 330, + -40, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "Y", + "position": [ + 330, + 0, + -40 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 331, + -39, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 331, + 0, + -39 + ] + }, + { + "field": 0, + "mask": 10, + "owner": "Y", + "position": [ + 331, + 0, + 39 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 332, + 0, + -38 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 332, + 0, + 38 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 333, + -37, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 333, + 0, + -37 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 334, + -36, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 334, + 0, + -36 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 334, + 0, + 36 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 335, + -35, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 335, + 0, + -35 + ] + }, + { + "field": 0, + "mask": 10, + "owner": "Y", + "position": [ + 335, + 0, + 35 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 336, + 0, + -34 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 336, + 0, + 34 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 337, + -33, + 0 + ] + }, + { + "field": 1, + "mask": 10, + "owner": "Y", + "position": [ + 337, + 0, + -33 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 337, + 0, + 33 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 338, + -32, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 338, + 0, + -32 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 338, + 0, + 32 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 339, + -31, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 339, + 0, + -31 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 340, + 0, + 30 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 341, + -29, + 0 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 341, + 0, + 29 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 342, + -28, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 342, + 0, + 28 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 343, + -27, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 343, + 0, + -27 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 343, + 0, + 27 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 344, + -26, + 0 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "Y", + "position": [ + 344, + 0, + 26 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 345, + -25, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 345, + 0, + -25 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "Y", + "position": [ + 345, + 0, + 25 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 346, + -24, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 346, + 0, + -24 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 346, + 0, + 24 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 347, + -23, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "Y", + "position": [ + 347, + 0, + -23 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 347, + 0, + 23 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 348, + -22, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 348, + 0, + -22 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 348, + 0, + 22 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 349, + -21, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 349, + 0, + -21 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 349, + 0, + 21 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 350, + -20, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 350, + 0, + -20 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 350, + 0, + 20 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 351, + -19, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 351, + 0, + -19 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 352, + -18, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 352, + 0, + 18 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 353, + -17, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 353, + 0, + -17 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 353, + 0, + 17 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 354, + -16, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 354, + 0, + -16 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 355, + -15, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "Y", + "position": [ + 355, + 0, + -15 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 355, + 0, + 15 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 356, + -14, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 356, + 0, + -14 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 356, + 0, + 14 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 357, + -13, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 357, + 0, + -13 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 357, + 0, + 13 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 358, + -12, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 358, + 0, + -12 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 358, + 0, + 12 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 359, + -11, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "Y", + "position": [ + 359, + 0, + -11 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 359, + 0, + 11 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 360, + -10, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 360, + 0, + -10 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "Y", + "position": [ + 360, + 0, + 10 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 361, + -9, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 361, + 0, + -9 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 361, + 0, + 9 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 362, + -8, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 362, + 0, + -8 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 362, + 0, + 8 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 363, + -7, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 363, + 0, + -7 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 363, + 0, + 7 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 364, + -6, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 364, + 0, + 6 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 365, + -5, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 365, + 0, + -5 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 365, + 0, + 5 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 366, + -4, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 366, + 0, + -4 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 367, + -3, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 367, + 0, + -3 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 367, + 0, + 3 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 368, + -2, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 368, + 0, + -2 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 368, + 0, + 2 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 369, + -1, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 369, + 0, + -1 + ] + }, + { + "field": 1, + "mask": 32, + "owner": "Z", + "position": [ + 740, + -185, + 0 + ] + } + ] +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/checks-O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/checks-O.out new file mode 100644 index 000000000..00be1c095 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/checks-O.out @@ -0,0 +1,5 @@ +H1:16 native assignments and32 diagnostics; exact sidecar and six-neighbour proof table: PASS +H2:sidecar prefix is zero throughR; arrivalR+1; no pre-R disclosure: PASS +H3:nexttick previous-input/frontier boundary; all1479 old sources checked; clean-nuisance output H²(g): PASS +H4:240 direct previous-pulse first-arrival cases including dense opposite-parity backgrounds: PASS +SCOPE:native one-tick sidecar accepted locally; persistent memory, joint nexttick record and G implementation remain open. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/checks.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/checks.out new file mode 100644 index 000000000..00be1c095 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/checks.out @@ -0,0 +1,5 @@ +H1:16 native assignments and32 diagnostics; exact sidecar and six-neighbour proof table: PASS +H2:sidecar prefix is zero throughR; arrivalR+1; no pre-R disclosure: PASS +H3:nexttick previous-input/frontier boundary; all1479 old sources checked; clean-nuisance output H²(g): PASS +H4:240 direct previous-pulse first-arrival cases including dense opposite-parity backgrounds: PASS +SCOPE:native one-tick sidecar accepted locally; persistent memory, joint nexttick record and G implementation remain open. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/checks.py new file mode 100644 index 000000000..e5ab87332 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/checks.py @@ -0,0 +1,110 @@ +"""Exact history-sidecar continuation. Standard library, stdout only. +The local recurrence core is inherited; late parity/front tests are separate. +""" +from pathlib import Path +from itertools import product +from functools import lru_cache +import json +from core import native_second,upper,hp,H,X,odd,ZERO + +def need(v,m): + if not v: raise RuntimeError(m) + +T=185;P=12*840**T;S=T+P;d=68;R=S+d +side=(0,-1,2) +# All old selector masks and both unknown/sample values; record table is the +# already accepted shrinking diamond. Nothing is inserted during these runs. +for x,my,mr,u in product((0,1),repeat=4): + y=x^u + out,records=native_second(T,P,d,x,my,mr,u) + need(records[1][side]==(0,1^y,x),'native history sidecar') + expected={ + (0,-1,1):(x,1,y), + (0,-1,3):(0,1^u,0), + (0,0,2):(0,u,1), + (0,-2,2):ZERO, + (1,-1,2):ZERO, + (-1,-1,2):ZERO, + } + for v,value in expected.items():need(records[0][v]==value,'six-neighbour table') + need(X(*expected.values())==(x,0,1^y),'actual incoming neighbour sum') + need(upper((u,0,1),R-1,(0,1,R-2))==ZERO,'old sidecar slice zero') + need(H((x,0,1^y))==(0,1^y,x),'one native update') + for p in (0,1): + diagnostic,rec=native_second(T,P,d,x,my,mr,u,p) + need(rec[1][side]==(0,1^y,x),'sidecar independent of diagnostic p') + need(diagnostic[0]==p,'q2 raw A is actual diagnostic operand') +print('H1:16 native assignments and32 diagnostics; exact sidecar and six-neighbour proof table: PASS') + +# Prefix uses distance, parity and the inherited first-arrival convention. +upperloc=(0,0,R) +lower=[(0,-S,-d),(0,S,-d),(T,P,-d),(-T,P,-d)] +dist=lambda a,b:sum(abs(x-y) for x,y in zip(a,b)) +need(dist(side,upperloc)==R-1,'first possible upper arrival') +need(odd((0,1,R-2))==0,'upper first arrival cancels') +need(all(dist(side,v)>=R+1 for v in lower),'lower fronts absent throughR') +need((R-1)&1==0,'actual even upper distance') +need(dist(side,(0,0,0))==3,'qY diagnostic cannot arrive in one tick') +# All current local source positions are even in absolute lattice parity; +# the sidecar at tickR is in the other sector, while the previous unknown +# input cannot arrive untilR+2. No earlier uncontrolled source is admitted by +# the inherited ready cone, since these causal cones are its subsets. +need((sum((0,S-1,d+2))+R)%2==1,'sidecar atR opposite local current sector') +print('H2:sidecar prefix is zero throughR; arrivalR+1; no pre-R disclosure: PASS') + +# Exact nexttick causal boundary. Merely being in a cone is not asserted to +# prove an unmasked leak; the clean-nuisance countercontrol is explicit. +sabs=(0,S-1,d+2);old=(0,0,0);frontier=(0,-1,0) +need(dist(sabs,old)==R+1,'previous-input distance') +need(dist(sabs,frontier)==R+2,'old frontier distance') +need(odd((S-1,d+2))==1,'old pulse first-arrival parity') +need(odd((S,d+2))==1,'frontier pulse first-arrival parity') +need((R+1)%12==2 and (R+2)%12==3,'actual H phases') +data=json.loads((Path(__file__).parent/'SOURCE-GEOMETRY.json').read_text()) +inside=[src for src in data['sources'] if dist(tuple(src['position']),sabs)<=R+2] +need(len(data['sources'])==1479,'frozen source count') +need(len(inside)==1 and inside[0]['position']==[0,0,0],'all old source positions at nexttick') +controls=[(0,2*S,0),(T,P+S,0),(-T,P+S,0)] +pulses=[(0,S,S+2*d),(0,S,-S-2*d)] +need(all(sum(v)%2==0 for v in controls+pulses+[old]),'local inherited sources in even sector') +need((sum(sabs)+R+2)%2==1,'late sidecar in odd sector') +need(all(hp(g,R+1)==hp(g,2) for g in product((0,1),repeat=3)),'H2 old-pulse formula') +need(len({hp(g,2) for g in product((0,1),repeat=3)})==8,'all old triples distinct') +need(len({hp(m,R+2) for m in product((0,1),repeat=3)})==8,'frontier countercontrol also bijective') +print('H3:nexttick previous-input/frontier boundary; all1479 old sources checked; clean-nuisance output H²(g): PASS') + +# Independent direct recursion for a previous-slice pulse. Arbitrary backgrounds +# in the opposite sector are included by an explicit deterministic formula; +# the invariant prevents them from entering these queried values. +def direct(g): + @lru_cache(None) + def at(t,pos): + parity=sum(pos)&1 + if t==-1: + if pos==(0,0,0):return g + return tuple(((17*pos[0]+29*pos[1]+43*pos[2]+j*13)>>j)&1 for j in range(3)) if parity else ZERO + if t==0: + return tuple(((23*pos[0]+31*pos[1]+47*pos[2]+j*11)>>j)&1 for j in range(3)) if parity==0 else ZERO + ns=[] + for a in range(3): + for sign in (-1,1): + q=list(pos);q[a]+=sign;ns.append(at(t-1,tuple(q))) + return X(at(t-2,pos),H(X(*ns))) + return at +count=0 +for g in product((0,1),repeat=3): + at=direct(g) + for a in range(6): + for b in range(6): + if a+b>7:continue + n=a+b + expected=hp(g,n) if odd((a,b)) else ZERO + need(at(n+1,(a,b,0))==expected,'independent previous-pulse first-arrival recursion') + count+=1 +print('H4:%d direct previous-pulse first-arrival cases including dense opposite-parity backgrounds: PASS'%count) + +# A simple explicit countercontrol: oldg nonzero gives a nonzero nexttick, +# while independent fixed-history sidecarD previously equalsx. No unconditional +# record-law inference or nexttick full-state memory is asserted. +need(any(hp(g,2)[2]!=x for x in (0,1) for g in product((0,1),repeat=3)),'not persistent raw x') +print('SCOPE:native one-tick sidecar accepted locally; persistent memory, joint nexttick record and G implementation remain open.') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/core.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/core.py new file mode 100644 index 000000000..b1b8038b2 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/history_control/core.py @@ -0,0 +1,92 @@ +"""Exact single-pulse bounded-lag recurrence and local late-collision diamond.""" +from functools import lru_cache +from itertools import product +ZERO=(0,0,0) +def H(v): + a,b,d=v;return b,d,a^(b&d) +def X(*vs):return tuple(sum(v[i] for v in vs)%2 for i in range(3)) +def hp(v,n): + for _ in range(n%12):v=H(v) + return v + +def initial(q): + f=q;z=H(q);l=H(z);j=X(H(q),H(X(q,hp(q,2))));g=q + return 0,f,z,l,j,g + +def advance(q,state): + phase,f,z,l,j,g=state;n=phase+1 + fn=X(hp(q,n),H(X(f,hp(q,n+1)))) + zn=H(X(z,hp(q,n)));ln=H(X(l,zn)) + zfuture=H(X(zn,hp(q,n+1))) + jn=X(zn,H(X(j,zfuture,fn,ln))) + ffuture=X(hp(q,n+1),H(X(fn,hp(q,n+2)))) + gn=X(fn,H(X(g,ffuture))) + return n%12,fn,zn,ln,jn,gn + +@lru_cache(None) +def orbit(q): + states=[];seen={};v=initial(q) + while v not in seen: + seen[v]=len(states);states.append(v);v=advance(q,v) + if len(states)>500000:raise RuntimeError('orbit limit') + return tuple(states),seen[v],len(states)-seen[v] + +def state(q,n): + states,start,period=orbit(q) + if n>=len(states):n=start+(n-start)%period + return states[n] + +def upper(q,t,pos): + a,b,n=map(abs,pos);a,b=sorted((a,b),reverse=True) + lag=t-a-b-n + if lag<0 or lag%2:return ZERO + f,z,l,j,g=state(q,n)[1:] + if (a,b,lag)==(0,0,0):return hp(q,n) + if (a,b,lag)==(1,0,0):return z + if (a,b,lag)==(2,0,0):return l + if (a,b,lag)==(1,1,0):return ZERO + if (a,b,lag)==(0,0,2):return f + if (a,b,lag)==(1,0,2):return j + if (a,b,lag)==(0,0,4):return g + raise RuntimeError(('uncovered pulse displacement',a,b,n,lag)) + +def odd(parts): + seen=0 + for p in parts: + if seen&p:return 0 + seen|=p + return 1 + +def ball(r,center): + for a in range(-r,r+1): + for b in range(-r+abs(a),r-abs(a)+1): + for c in range(-r+abs(a)+abs(b),r-abs(a)-abs(b)+1): + yield center[0]+a,center[1]+b,center[2]+c + +def native_second(T,P,d,x,my,mr,u,p=None): + S=T+P;R=S+d;q=(u,0,1);end=(0,0,2) + # Coordinates relative qY. Every lower source is on end's R+2 boundary. + controls=[((0,-S,-d),x),((0,S,-d),my^mr),((T,P,-d),my),((-T,P,-d),mr)] + def base(t,v): + val=upper(q,t,(v[0],v[1],R-v[2])) + for loc,bit in controls: + dist=tuple(abs(a-b) for a,b in zip(v,loc)) + if sum(dist)<=t: + if sum(dist)!=t:raise RuntimeError('lower source already behind front') + if odd(dist):val=X(val,hp((0,bit,0),t)) + return val + old={v:base(R-2,v) for v in ball(2,end)} + now={v:base(R-1,v) for v in ball(3,end)} + records={} + for tick in range(R,R+3): + nxt={} + for v in ball(R+2-tick,end): + neighbours=[] + for axis in range(3): + for sign in (-1,1): + w=list(v);w[axis]+=sign;neighbours.append(now[tuple(w)]) + nxt[v]=X(old[v],H(X(*neighbours))) + if tick==R and p is not None:nxt[(0,0,0)]=(x,1,p) + records[tick-R]=dict(nxt) + old,now=now,nxt + return now[end],records diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/integration/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/integration/REPORT.md new file mode 100644 index 000000000..6eaa50929 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/integration/REPORT.md @@ -0,0 +1,82 @@ +# Parent integration: tagged terminal contract and remaining junction + +24 October 2026. Repository-read-only synthesis work. No new acceptance rule, +physical premise, or raw carrier encoding is adopted by this note. + +## Exact candidate information contract + +For a localized raw triple Q=(A,B,D), the proposed native mixer has polynomial +M_a(Q)=(A XOR a,B,D XOR aB). This is an involution on all eight triples. +On the actual code C=(y,y,1 XOR xy), its designated fresh sign is r=y XOR a, +and its complete cell is + + (r, y, 1 XOR xy XOR (y XOR r)y). + +Every field is determined by public history (x,y) and that designated sign. +The cell does not reveal a further independent fresh seed at its terminal read. +Using two such mixers, a Y copy, and an independent Z gives an injective +history-indexed embedding E_(x,y)(j) of the four-sign target carrier j. + +With independent fair a,b,z and uniform L in {0,...,7}, accept counts 5,3,2,0 +on (a,b)=00,10,11,01. Then exactly + + P(success, raw=E_(x,y)(j) | x,y) = (5/16) mu_(Y,y)(j), + P(failure, no carrier | x,y) = 11/16. + +Each full X or R cell factors through its own sign plus public history. This +is stronger than checking only decoded X→Y→X statistics; the whole tagged +carrier and every failure are checked in tagged_contract.py. + +The preceding X-reset herald has the same success5/16 and makes y fair given x. +Therefore the abstract two-reset success is25/256 conditional on the earlier x, +or125/2048 including the older independent5/8 predecessor. These are supplied- +resource composition calculations, not success rates of an integrated native +X→Y sequence. No prior failure is discarded. + +## Strict common raw carrier does not yet pass + +At y=1, the distributions of the entire raw output for x=0 and x=1 have disjoint +supports: total variation is1 on second success. The decoded target carriers +coincide. Public-history dependence is not a leak of new secret information, +but it is still dependence of the raw encoding on the earlier history. + +Consequently this is a candidate history-indexed interface, not satisfaction +of the unchanged history-independent raw-carrier/reusable-socket criterion. +No relaxation of that criterion is adopted. The retained history must be +physically separated from the common carrier or subsequent native operations +must be shown to implement the required history-independent target law under +an explicitly accepted interface. A terminal decoding table alone cannot do so. + +A simple countercontrol makes the distinction visible. The retained Y-cell tag +recovers x when y=1. A future operation that flips the R result conditional on +that tag changes its target agreement from4/5 to1/5 across histories, despite +the preceding correctly decoded reset. Thus closure under further native +operations remains a substantive obligation. + +## Cross-track compatibility + +The native history sidecar and third outward step use the inherited apparatus +with specified compatible outward readiness extensions. The five-tick extractor +and standalone direct-reset apparatus prove conditional native gadgets for a +localized arbitrary input at their own start time. Neither obtains that start +state from the actual populated q2 phase merely by naming it as an input. + +In particular the proposed extractor's translated previous-slice ready cone +requires a zero at q2+e_x. Actual dynamics gives (0,1 XOR u XOR mY,mY) there +at R+1. A controlled dirty-neighbor example changes the extraction result. +This is a concrete failed splice, not a generic objection to all embeddings. + +The positive local native gadgets and nearby x register narrow the next task: +construct one junction on the actual two-slice phase, specifying added resources +at the original initial time, preserving old fair frontiers, and proving the +complete record law through its deadline. A clean late workspace, a native +clock, a shutter, and joint independence are not inferred from terminal algebra. + +## Checks + +tagged_contract.py imports no construction or author code. It exhausts all +four x,y pairs, all64 second-reset resource states, and all2048 two-reset states +for each x, including failures. It checks mixer inverses, complete tagged laws, +per-cell information factoring, raw-history separation, terminal R calibration, +and a reuse countercontrol. It is an algebraic contract check, not a native +geometry or initialization proof. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/integration/tagged_contract-O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/integration/tagged_contract-O.out new file mode 100644 index 000000000..0f8b5c56c --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/integration/tagged_contract-O.out @@ -0,0 +1,7 @@ +T1: both native-polynomial mixer maps are full permutations/involutions: PASS +T2: exact tagged full-carrier and all-failure law for every x,y: PASS +T3: each complete X/R cell factors through public history plus designated sign: PASS +T4: supplied two-reset composition law holds; double success25/256, or125/2048 with older5/8 selector: PASS +T5: y=1 strict raw distributions have TV1 across x; decoded carriers coincide: PASS +C1: retained-history-sensitive future dynamics can change R agreement4/5 to1/5; terminal encoding alone does not prove reuse: PASS +SCOPE: exact supplied-resource information contract, not a complete native instrument. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/integration/tagged_contract.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/integration/tagged_contract.out new file mode 100644 index 000000000..0f8b5c56c --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/integration/tagged_contract.out @@ -0,0 +1,7 @@ +T1: both native-polynomial mixer maps are full permutations/involutions: PASS +T2: exact tagged full-carrier and all-failure law for every x,y: PASS +T3: each complete X/R cell factors through public history plus designated sign: PASS +T4: supplied two-reset composition law holds; double success25/256, or125/2048 with older5/8 selector: PASS +T5: y=1 strict raw distributions have TV1 across x; decoded carriers coincide: PASS +C1: retained-history-sensitive future dynamics can change R agreement4/5 to1/5; terminal encoding alone does not prove reuse: PASS +SCOPE: exact supplied-resource information contract, not a complete native instrument. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/integration/tagged_contract.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/integration/tagged_contract.py new file mode 100644 index 000000000..7e5ac9ac7 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/integration/tagged_contract.py @@ -0,0 +1,86 @@ +"""Parent exact information contract. No author/native-construction imports. +Abstract kernel only: does not construct late inputs, fanout, or a herald. +""" +from fractions import Fraction as F +from collections import defaultdict +from itertools import product + +def need(v,label): + if not v: raise RuntimeError(label) + +def mixer(q,a): + A,B,D=q;return A^a,B,D^(a&B) + +def embed(x,y,j): + X,Y,R,Z=j + need(Y==y,'Y support') + return (mixer((y,y,1^(x&y)),y^X), (y,y,1^(x&y)), + mixer((y,y,1^(x&y)),y^R), (0,0,Z)) + +def decode(raw):return raw[0][0],raw[1][0],raw[2][0],raw[3][2] + +def mu(y): + return {(y^a,y,y^b,z):F(count,20) + for a,b,count in ((0,0,5),(1,0,3),(1,1,2)) for z in (0,1)} + +def tv(a,b):return sum((abs(a.get(k,F(0))-b.get(k,F(0))) for k in set(a)|set(b)),F(0))/2 + +for a in (0,1): + domain=list(product((0,1),repeat=3)) + need(len({mixer(q,a) for q in domain})==8,'mixer permutation') + need(all(mixer(mixer(q,a),a)==q for q in domain),'mixer inverse') +q=F(5,16) +for x,y in product((0,1),repeat=2): + law=defaultdict(F) + for a,b,k,z in product((0,1),(0,1),range(8),(0,1)): + ok=k<{(0,0):5,(1,0):3,(1,1):2,(0,1):0}[a,b] + if not ok:law[('failure',None)]+=F(1,64);continue + j=(y^a,y,y^b,z);raw=embed(x,y,j) + law[('success',raw)]+=F(1,64) + need(decode(raw)==j,'injective encoding') + # Each complete cell carries only public history and its own sign. + for out,sign in ((raw[0],j[0]),(raw[2],j[2])): + expected=(sign,y,1^(x&y)^((y^sign)&y)) + need(out==expected,'single-axis full raw cell contract') + target={('success',embed(x,y,j)):q*p for j,p in mu(y).items()} + target[('failure',None)]=1-q + need(dict(law)==target,'whole tagged carrier kernel with failure') +print('T1: both native-polynomial mixer maps are full permutations/involutions: PASS') +print('T2: exact tagged full-carrier and all-failure law for every x,y: PASS') +print('T3: each complete X/R cell factors through public history plus designated sign: PASS') + +# Prefix first herald: u,v,K with counts 5,4,1,0. No previous-selector H1. +for x in (0,1): + law=defaultdict(F) + for u,v,k,a,b,l,z in product((0,1),(0,1),range(8),(0,1),(0,1),range(8),(0,1)): + p=F(1,2048) + G=k<{(0,0):5,(1,0):4,(1,1):1,(0,1):0}[u,v] + if not G:law[('G-failure',None)]+=p;continue + y=x^u;H=l<{(0,0):5,(1,0):3,(1,1):2,(0,1):0}[a,b] + if not H:law[(y,'H-failure',None)]+=p;continue + j=(y^a,y,y^b,z) + law[(y,'success',embed(x,y,j))]+=p + expected={('G-failure',None):1-q} + for y in (0,1): + expected[(y,'H-failure',None)]=q*(1-q)/2 + for j,pj in mu(y).items():expected[(y,'success',embed(x,y,j))]=q*q*pj/2 + need(dict(law)==expected,'two-herald joint law') + need(sum(law.values())==1,'normalized all-failure branches') +print('T4: supplied two-reset composition law holds; double success25/256, or125/2048 with older5/8 selector: PASS') + +# Common raw encoding is stronger: at y=1 the x supports are disjoint. +a={embed(0,1,j):p for j,p in mu(1).items()} +b={embed(1,1,j):p for j,p in mu(1).items()} +need(tv(a,b)==1,'history-tag raw support separation') +need({decode(r):p for r,p in a.items()}=={decode(r):p for r,p in b.items()},'decoded carrier same') +print('T5: y=1 strict raw distributions have TV1 across x; decoded carriers coincide: PASS') + +# A future output depending on the retained tag can break reuse. +# For the Y cell with y=1, x=1 XOR D. A future reported X bit +# chosen as X_new XOR x flips the fixed-menu Y->R calibration if used for R. +for y in (0,1): + agree=sum(p for j,p in mu(y).items() if j[2]==y) + need(agree==F(4,5),'terminal R target') +need(1-F(4,5)==F(1,5),'tag-controlled flip changes next statistics') +print('C1: retained-history-sensitive future dynamics can change R agreement4/5 to1/5; terminal encoding alone does not prove reuse: PASS') +print('SCOPE: exact supplied-resource information contract, not a complete native instrument.') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/PROVENANCE.json new file mode 100644 index 000000000..a29a03bc4 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/PROVENANCE.json @@ -0,0 +1,7 @@ +{ + "baseline_native_y": "OI_native_Y_continuation_handoff_v1/oi_next_cycle_20261024/native_y", + "inherited_core_sha256": "b16155925700321abdb6f59260bc510e8e6c1d039f30c9eadc0c4320de89c941", + "source_geometry_sha256": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d", + "repository_actions": [], + "status": "author result; parent and independent review pending" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/REPORT.md new file mode 100644 index 000000000..1ffdd022d --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/REPORT.md @@ -0,0 +1,209 @@ +# Avenue 4: an exact third outward step and a bounded geometry census + +24 October 2026. Repository-read-only research. Author result for independent +review, not a certification or a universal impossibility result. Files in this +folder are the only files modified by this avenue. + +## Outcome + +Extending the same compatible initial outward workspace by one more cell gives +an exact actual-scale endpoint at q3=qY+3e_z, tick R+3: + + U_(R+3)(q3)=(u,xu,u), y=x XOR u. + +It is not a clean Y socket, and it does not retain the actual incoming operand +as a raw field under the stronger diagnostic intervention. Merely taking the +next straight outward step therefore does not solve the interface problem. + +The proof extends the previously reviewed bounded-lag calculation. A new +13-triple finite recurrence has pulse-orbit periods 3600 for u=0 and 2940 for +u=1. At the actual astronomical deadline R, both remainders are 253. There is +no extrapolation from a small torus or from R modulo 12. + +A bounded census over the entire shrinking diamond used in the proof finds +only the already known qY.D and q2.A as raw p fields (or complements), across +all input and selector-mask assignments. This is a census of 96 site-times, +not a no-go for other positions, later times, new controls, or larger gadgets. + +## 1. General radial-strip recurrence + +For a lone initial pulse Q at the origin and zero previous slice, set + + W_n(ell,a,b)=U_(n+ell)(a,b,n). + +By cubic reflection/swap symmetry use a>=b>=0. For the present application keep +exactly the indices + + a+b <= ell, a+b+ell <= 6, ell-a-b even. + +There are thirteen triples. A value with wrong parity or outside the light cone +is zero. Substitution in the unchanged six-neighbour native rule gives, for +n>=1, + + W_n(ell,a,b) = W_n(ell-2,a,b) XOR H( + W_(n-1)(ell,a,b) XOR W_(n+1)(ell-2,a,b) + XOR W_n(ell-1,a-1,b) XOR W_n(ell-1,a+1,b) + XOR W_n(ell-1,a,b-1) XOR W_n(ell-1,a,b+1)). + +Negative transverse indices are reflected. Equal reflected neighbours cancel; +none is discarded individually. The initial n=0 strip is computed directly at +ticks0..6, not guessed from an asymptotic recurrence. + +To advance from n to n+1, compute increasing ell. The apparently future strip +at n+2 has ell reduced by two; it is already determined by applying the same +advance to the lower layers just computed. The index set is closed under these +dependencies. This is a finite triangular algorithm, not an implicit equation. + +It is also a bijection on its entire 39-bit strip-state space. At each index, +all dependencies except the old same-index triple are fixed by lower layers, +and H is a permutation. The inverse recovers that old triple by applying +H^-1(A,B,D)=(D XOR AB,A,B) and XORing the other terms. The executable inverse +checks arbitrary strip states, not only physical pulse orbits. + +Enumeration from Q=(0,0,1) returns for the first time after3600 steps; from +Q=(1,0,1) after2940. The listed states are distinct and the final step returns +to the first. Thus the initial orbit has no transient and lookup by remainder +is exact. This does not assert these periods for all strip states. + +## 2. Actual geometry and initial resources + +Keep T=185, P=12*840^185, S=T+P, d=68, R=S+d and the native update unchanged. +Coordinates below are relative to qY unless explicitly stated. + +Add the initial current-slice ready ball of radius R+3 around q3=(0,0,3), and +the previous-slice ball of radius R+2. Preserve every existing source and old +ready constraint. This extends the accepted depth-two ready region. These are +initial conditions; there is no mid-run cleaning or new randomness insertion. + +The four relevant lower B-field sources are + + (0,-S,-d): x + (0, S,-d): mY XOR mR + (T, P,-d): mY + (-T,P,-d): mR. + +Each is at distance R+3 from q3 and distance2R from the upper pulse at(0,0,R). +The frozen list of1,479 original sources again has only the unknown origin +input on the new receiver's boundary. Other old sources are outside. The old +previous-slice input, opposite reset pulse and remote herald/Z source blocks +remain excluded. + +The earlier public frontier families remain outside the enlarged ready region. +For example, in absolute coordinates the X selector frontier(0,2S+k,0) has +distance R+3+k from q3, for every k>=1. The other inherited families have the +same or a positive larger slack, as in the depth-two proof. The checks evaluate +the explicit formulas at representative positive indices; the general claim +uses those linear inequalities, not sampling alone. + +At slice R-1 the required backward ball has radius4; at R-2 it has radius3. +Every lower contribution there is zero or exactly on its first-arrival front: +triangle inequality gives distance at least the slice tick. Lower/upper source +separation2R excludes interaction before R. Lower contributions therefore use +exact multinomial no-carry parity and the single-field rotation. Upper-pulse +values are exactly the thirteen strip entries above, at appropriate n. +Four native updates on shrinking balls of radii3,2,1,0 now compute the endpoint. + +The exact added pin set is the new current/previous ball union minus the old +prepared union, retaining all source exceptions. No optimized or numeric global +readiness cost is claimed. If the seven old public ports remain exposed from +R+2 through R+3, the inherited finite-window extension requires another21 +initially independent fair bits (63 beyond the window ending atR). This avenue +uses the inherited joint-frontier theorem; it does not re-prove that theorem. + +## 3. Complete diagnostic and native laws + +In the diagnostic only, replace qY.D at tickR by p, retaining qY.A=x and qY.B=1. +For every x,u,mY,mR,p assignment, the full new endpoint is + + (u OR (x XOR p), + x XOR p XOR up XOR uxp, + u(x XOR p)). + +The masks cancel. The ordinary native run uses p=y=x XOR u, yielding +`(u,xu,u)`. The diagnostic replacement is never applied in native evolution. +The entire retained second-step q2 result is unchanged. + +For example, native histories(x,u)=(0,0) and(1,1) both have y=0 but give q3 codes +000 and111. Thus q3 is not a Y-only encoding. Its A field equalsu natively; +x XOR A agrees withy on that native domain, but that history-dependent formula +does not recover arbitrary diagnosticp. It cannot be counted as a new raw-Y +transfer merely because the unaltered truth table agrees. + +This lack of a clean socket is not a terminal privacy failure. Given already +publicx and the designated Y outcome y, u=x XOR y and the whole q3 triple is +determined. It does not disclose an additional hidden variable at that boundary. + +The earlier prefix is still informative. q3 first receives the upper pulse at +R-3, with triple H^(R-3)(u,0,1)=(u,1,u). Thus exposing q3 from the start leaks +the future sample before the earlier X-instrument boundary. Keep it private +under the existing supplied delayed-access convention. With the inherited5/16 +success probability and fair conditionalu, the corresponding leak witness has +weight5/32 including failure. There is no native shutter or clock here. + +No new reset or success event has been built; inherited failures remain failures. +Nothing here licenses a second successful carrier or changes the old herald law. + +## 4. Bounded search and checks + +The shrinking diamond has63+25+7+1=96 site-times at ticksR throughR+3. Across +all32 x,u,mY,mR,p assignments, search all three fields and their complements. +Only these are uniformlyp: + +| Relative tick | Relative position | Field | Complement | +|---|---|---|---| +| 0 | (0,0,0) | D | no | +| 2 | (0,0,2) | A | no | + +Neither full triple is a Y-only socket. The census examines576 field/complement +candidates. It does not search arbitrary local decoders, other initial controls, +or the entire forward cone. + +`checks.py` also verifies: + +- 936 direct three-dimensional recurrence comparisons: all8 pulse triples, + n=0..8, all13 strip entries; +- 512 inverse identities on256 arbitrary finite strip states; +- minimal period certificates3600/2940 and exact giant remainders; +- all1,479 source positions and the relevant exclusions; +- all32 complete diagnostic endpoints and the unchanged q2 endpoint; +- all16 native input/mask endpoints and the early prefix; +- counterexamples to interpreting q3 as rawp or as cleanY. + +Normal and Python -O runs have identical output, and all acceptance checks use +explicit exceptions. This avenue derives the radial-strip recurrence separately +from the old special formulas. Its local endpoint assembly and the copied +first-arrival helpers reuse the accepted proof structure; it is not an +independent audit of every inherited transport or access claim. + +## 5. Integration consequence and next work + +The longer straight-outward path does not supply the needed interface. The new +strip recurrence is reusable for bounded extra-lag calculations and provides a +way to test further actual-scale geometries without relying on small phases. +It can be enlarged with a larger closed index set, but orbit periods and work +must be checked anew; no unrestricted-depth result follows. + +Other tracks' history sidecar or auxiliary gadgets may still work. In particular, +this does not evaluate the whole future causal cone of the sidecar: destinations +closer to the lower sources may require lower-source lag corrections, whereas +this straight-outward proof needs only their first-arrival fronts. A cold +isolated-gadget premise cannot be inserted into that cone without proof. + +No new physical premise, normalization, native reset, or universal obstruction +is claimed. Exact-QM reconstruction and finite-precision OI retain their separate +status. Broader transport-proof review remains open. + +## Replay and provenance + +Run from any directory: + + python3 /path/to/new_geometry/checks.py + python3 -O /path/to/new_geometry/checks.py + +The checker needs only the Python standard library and files in this folder. +It prints to stdout, makes no network requests, and does not modify files. +`inherited_core.py` and SOURCE-GEOMETRY.json were copied byte-for-byte from the +accepted depth-two handoff. PROVENANCE.json gives their digests. Development +included a discarded over-large strip search and a fixed index-budget bug; +the final recurrence was checked against direct dynamics after that correction. +The discarded exploratory script is not part of the replay set. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/SHA256SUMS new file mode 100644 index 000000000..888de5417 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/SHA256SUMS @@ -0,0 +1,9 @@ +61483ff9fc4b8b57ddfa7e851db9f27cc46b179518849e8d921ce6c5dc8a3ffb REPORT.md +1d4b30f8bc8ef8d1b0032e194209ecccee34fe000a7792ee714a5bad3d71b7ba checks.py +968af8d44b0767cca4f8d0de2218adc8c99b39016f0b7396b214c2e0b2c63626 diamond_strip.py +81936562f6e9f9dabadbaa4e19a9cd37460c077503063a898f3605a62e27861f third_step.py +b16155925700321abdb6f59260bc510e8e6c1d039f30c9eadc0c4320de89c941 inherited_core.py +2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d SOURCE-GEOMETRY.json +f9fefdddbfae9a7328e76dfa51bea4bf4daffa037aad14836f728ed815e6158a checks.out +f9fefdddbfae9a7328e76dfa51bea4bf4daffa037aad14836f728ed815e6158a checks-O.out +5821398615af7b8f5b92e58acd1262fffd8700d8fc3b80698d072a7db0e73d87 PROVENANCE.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/SOURCE-GEOMETRY.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/SOURCE-GEOMETRY.json new file mode 100644 index 000000000..cbdfa5886 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/SOURCE-GEOMETRY.json @@ -0,0 +1,14797 @@ +{ + "source_path": "OI_combined_handoff_2026-10-24_v1/workspace/oi_followup_20261024/compiler_audit/AUTHOR-DATA.json", + "source_sha256": "1991aa92159e634723302bdeed7b11874380fb10ce4478ab5346581c760fbf42", + "deadline": 185, + "sources": [ + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -369, + -1, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -369, + 0, + -1 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -368, + -2, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -368, + 0, + -2 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -368, + 0, + 2 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -367, + -3, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "R", + "position": [ + -367, + 0, + -3 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -367, + 0, + 3 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -366, + 0, + -4 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -365, + -5, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -365, + 0, + -5 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -365, + 0, + 5 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -364, + -6, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -364, + 0, + 6 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -363, + -7, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "R", + "position": [ + -363, + 0, + -7 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -362, + -8, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -362, + 0, + -8 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -362, + 0, + 8 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -361, + -9, + 0 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -361, + 0, + 9 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "R", + "position": [ + -360, + -10, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -360, + 0, + -10 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -360, + 0, + 10 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -359, + -11, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "R", + "position": [ + -359, + 0, + -11 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -359, + 0, + 11 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -358, + -12, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "R", + "position": [ + -358, + 0, + -12 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -358, + 0, + 12 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -357, + -13, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -357, + 0, + -13 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -357, + 0, + 13 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -356, + -14, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -356, + 0, + -14 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -356, + 0, + 14 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "R", + "position": [ + -355, + -15, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "R", + "position": [ + -355, + 0, + -15 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -355, + 0, + 15 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "R", + "position": [ + -354, + -16, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -354, + 0, + -16 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -354, + 0, + 16 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -353, + -17, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -353, + 0, + -17 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -353, + 0, + 17 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -352, + -18, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -352, + 0, + 18 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -351, + -19, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "R", + "position": [ + -351, + 0, + -19 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -351, + 0, + 19 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -350, + -20, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -350, + 0, + -20 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -350, + 0, + 20 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -349, + -21, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -349, + 0, + 21 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "R", + "position": [ + -348, + -22, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -348, + 0, + -22 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -348, + 0, + 22 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -347, + -23, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "R", + "position": [ + -347, + 0, + -23 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -347, + 0, + 23 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -346, + -24, + 0 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -346, + 0, + 24 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -345, + -25, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -345, + 0, + -25 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -345, + 0, + 25 + ] + }, + { + "field": 2, + "mask": 14, + "owner": "R", + "position": [ + -344, + -26, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -344, + 0, + -26 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -344, + 0, + 26 + ] + }, + { + "field": 1, + "mask": 15, + "owner": "R", + "position": [ + -343, + 0, + -27 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -343, + 0, + 27 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -342, + 0, + -28 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -342, + 0, + 28 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -341, + -29, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -341, + 0, + -29 + ] + }, + { + "field": 0, + "mask": 14, + "owner": "R", + "position": [ + -341, + 0, + 29 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -340, + -30, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "R", + "position": [ + -340, + 0, + -30 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -340, + 0, + 30 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -339, + -31, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "R", + "position": [ + -339, + 0, + -31 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "R", + "position": [ + -339, + 0, + 31 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "R", + "position": [ + -338, + -32, + 0 + ] + }, + { + "field": 1, + "mask": 14, + "owner": "R", + "position": [ + -338, + 0, + -32 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -338, + 0, + 32 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -337, + -33, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -337, + 0, + 33 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -336, + 0, + -34 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -336, + 0, + 34 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -335, + -35, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "R", + "position": [ + -335, + 0, + -35 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -335, + 0, + 35 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -334, + -36, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "R", + "position": [ + -334, + 0, + -36 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -334, + 0, + 36 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -333, + -37, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -333, + 0, + -37 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -333, + 0, + 37 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -332, + -38, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -332, + 0, + -38 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -332, + 0, + 38 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "R", + "position": [ + -331, + 0, + -39 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -331, + 0, + 39 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "R", + "position": [ + -330, + 0, + -40 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -330, + 0, + 40 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -329, + -41, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -329, + 0, + -41 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -329, + 0, + 41 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -328, + -42, + 0 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -328, + 0, + 42 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -327, + -43, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -327, + 0, + -43 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -327, + 0, + 43 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -326, + -44, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -326, + 0, + -44 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -326, + 0, + 44 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -325, + 0, + 45 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "R", + "position": [ + -324, + -46, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "R", + "position": [ + -324, + 0, + -46 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -324, + 0, + 46 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -323, + -47, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "R", + "position": [ + -323, + 0, + -47 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -323, + 0, + 47 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -322, + -48, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -322, + 0, + 48 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -321, + -49, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -321, + 0, + -49 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -320, + -50, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -320, + 0, + -50 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -320, + 0, + 50 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "R", + "position": [ + -319, + 0, + -51 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -319, + 0, + 51 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -318, + -52, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "R", + "position": [ + -318, + 0, + -52 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -318, + 0, + 52 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -317, + -53, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -317, + 0, + -53 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -317, + 0, + 53 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -316, + -54, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "R", + "position": [ + -316, + 0, + -54 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -316, + 0, + 54 + ] + }, + { + "field": 2, + "mask": 14, + "owner": "R", + "position": [ + -315, + -55, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "R", + "position": [ + -315, + 0, + -55 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -315, + 0, + 55 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -314, + -56, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "R", + "position": [ + -314, + 0, + -56 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "R", + "position": [ + -314, + 0, + 56 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "R", + "position": [ + -313, + -57, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -313, + 0, + -57 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "R", + "position": [ + -313, + 0, + 57 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -312, + 0, + -58 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "R", + "position": [ + -312, + 0, + 58 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -311, + -59, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -311, + 0, + -59 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "R", + "position": [ + -311, + 0, + 59 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "R", + "position": [ + -310, + -60, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -310, + 0, + -60 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "R", + "position": [ + -310, + 0, + 60 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -309, + -61, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -309, + 0, + -61 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "R", + "position": [ + -308, + -62, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "R", + "position": [ + -308, + 0, + -62 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "R", + "position": [ + -308, + 0, + 62 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "R", + "position": [ + -307, + -63, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -307, + 0, + -63 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -306, + -64, + 0 + ] + }, + { + "field": 1, + "mask": 14, + "owner": "R", + "position": [ + -306, + 0, + -64 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -306, + 0, + 64 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -305, + -65, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -305, + 0, + -65 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -304, + -66, + 0 + ] + }, + { + "field": 2, + "mask": 19, + "owner": "R", + "position": [ + -303, + -67, + 0 + ] + }, + { + "field": 1, + "mask": 18, + "owner": "R", + "position": [ + -303, + 0, + -67 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -303, + 0, + 67 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -302, + -68, + 0 + ] + }, + { + "field": 1, + "mask": 17, + "owner": "R", + "position": [ + -302, + 0, + -68 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "R", + "position": [ + -302, + 0, + 68 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -301, + -69, + 0 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "R", + "position": [ + -301, + 0, + 69 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "R", + "position": [ + -300, + -70, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -300, + 0, + -70 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "R", + "position": [ + -300, + 0, + 70 + ] + }, + { + "field": 2, + "mask": 21, + "owner": "R", + "position": [ + -299, + -71, + 0 + ] + }, + { + "field": 1, + "mask": 23, + "owner": "R", + "position": [ + -299, + 0, + -71 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "R", + "position": [ + -299, + 0, + 71 + ] + }, + { + "field": 2, + "mask": 18, + "owner": "R", + "position": [ + -298, + -72, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "R", + "position": [ + -298, + 0, + -72 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -298, + 0, + 72 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -297, + -73, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -297, + 0, + -73 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -297, + 0, + 73 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -296, + -74, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -296, + 0, + -74 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -296, + 0, + 74 + ] + }, + { + "field": 2, + "mask": 18, + "owner": "R", + "position": [ + -295, + -75, + 0 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "R", + "position": [ + -295, + 0, + -75 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -295, + 0, + 75 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "R", + "position": [ + -294, + -76, + 0 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "R", + "position": [ + -294, + 0, + -76 + ] + }, + { + "field": 0, + "mask": 23, + "owner": "R", + "position": [ + -294, + 0, + 76 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -293, + -77, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -293, + 0, + -77 + ] + }, + { + "field": 0, + "mask": 22, + "owner": "R", + "position": [ + -293, + 0, + 77 + ] + }, + { + "field": 2, + "mask": 20, + "owner": "R", + "position": [ + -292, + -78, + 0 + ] + }, + { + "field": 0, + "mask": 22, + "owner": "R", + "position": [ + -292, + 0, + 78 + ] + }, + { + "field": 2, + "mask": 22, + "owner": "R", + "position": [ + -291, + -79, + 0 + ] + }, + { + "field": 1, + "mask": 18, + "owner": "R", + "position": [ + -291, + 0, + -79 + ] + }, + { + "field": 0, + "mask": 23, + "owner": "R", + "position": [ + -291, + 0, + 79 + ] + }, + { + "field": 2, + "mask": 18, + "owner": "R", + "position": [ + -290, + -80, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -290, + 0, + -80 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -290, + 0, + 80 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -289, + -81, + 0 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -289, + 0, + 81 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "R", + "position": [ + -288, + -82, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -288, + 0, + -82 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -288, + 0, + 82 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "R", + "position": [ + -287, + -83, + 0 + ] + }, + { + "field": 1, + "mask": 23, + "owner": "R", + "position": [ + -287, + 0, + -83 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -287, + 0, + 83 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -286, + -84, + 0 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "R", + "position": [ + -286, + 0, + -84 + ] + }, + { + "field": 0, + "mask": 19, + "owner": "R", + "position": [ + -286, + 0, + 84 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -285, + 0, + -85 + ] + }, + { + "field": 0, + "mask": 18, + "owner": "R", + "position": [ + -285, + 0, + 85 + ] + }, + { + "field": 2, + "mask": 18, + "owner": "R", + "position": [ + -284, + -86, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -284, + 0, + -86 + ] + }, + { + "field": 0, + "mask": 19, + "owner": "R", + "position": [ + -284, + 0, + 86 + ] + }, + { + "field": 2, + "mask": 20, + "owner": "R", + "position": [ + -283, + -87, + 0 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "R", + "position": [ + -283, + 0, + -87 + ] + }, + { + "field": 0, + "mask": 19, + "owner": "R", + "position": [ + -283, + 0, + 87 + ] + }, + { + "field": 2, + "mask": 22, + "owner": "R", + "position": [ + -282, + -88, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -282, + 0, + -88 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -282, + 0, + 88 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -281, + -89, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -281, + 0, + -89 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -281, + 0, + 89 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "R", + "position": [ + -280, + -90, + 0 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "R", + "position": [ + -280, + 0, + -90 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -280, + 0, + 90 + ] + }, + { + "field": 2, + "mask": 22, + "owner": "R", + "position": [ + -279, + -91, + 0 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "R", + "position": [ + -279, + 0, + -91 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -279, + 0, + 91 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -278, + -92, + 0 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "R", + "position": [ + -278, + 0, + -92 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "R", + "position": [ + -278, + 0, + 92 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -277, + -93, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -277, + 0, + -93 + ] + }, + { + "field": 0, + "mask": 25, + "owner": "R", + "position": [ + -277, + 0, + 93 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "R", + "position": [ + -276, + -94, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -276, + 0, + -94 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "R", + "position": [ + -276, + 0, + 94 + ] + }, + { + "field": 2, + "mask": 19, + "owner": "R", + "position": [ + -275, + -95, + 0 + ] + }, + { + "field": 1, + "mask": 27, + "owner": "R", + "position": [ + -275, + 0, + -95 + ] + }, + { + "field": 0, + "mask": 25, + "owner": "R", + "position": [ + -275, + 0, + 95 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "R", + "position": [ + -274, + -96, + 0 + ] + }, + { + "field": 1, + "mask": 10, + "owner": "R", + "position": [ + -274, + 0, + -96 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -274, + 0, + 96 + ] + }, + { + "field": 2, + "mask": 10, + "owner": "R", + "position": [ + -273, + -97, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -273, + 0, + -97 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -273, + 0, + 97 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -272, + -98, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -272, + 0, + -98 + ] + }, + { + "field": 0, + "mask": 10, + "owner": "R", + "position": [ + -272, + 0, + 98 + ] + }, + { + "field": 2, + "mask": 27, + "owner": "R", + "position": [ + -271, + -99, + 0 + ] + }, + { + "field": 1, + "mask": 26, + "owner": "R", + "position": [ + -271, + 0, + -99 + ] + }, + { + "field": 0, + "mask": 10, + "owner": "R", + "position": [ + -271, + 0, + 99 + ] + }, + { + "field": 2, + "mask": 10, + "owner": "R", + "position": [ + -270, + -100, + 0 + ] + }, + { + "field": 1, + "mask": 27, + "owner": "R", + "position": [ + -270, + 0, + -100 + ] + }, + { + "field": 0, + "mask": 18, + "owner": "R", + "position": [ + -270, + 0, + 100 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "R", + "position": [ + -269, + -101, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -269, + 0, + -101 + ] + }, + { + "field": 0, + "mask": 19, + "owner": "R", + "position": [ + -269, + 0, + 101 + ] + }, + { + "field": 2, + "mask": 23, + "owner": "R", + "position": [ + -268, + -102, + 0 + ] + }, + { + "field": 0, + "mask": 26, + "owner": "R", + "position": [ + -268, + 0, + 102 + ] + }, + { + "field": 2, + "mask": 25, + "owner": "R", + "position": [ + -267, + -103, + 0 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "R", + "position": [ + -267, + 0, + -103 + ] + }, + { + "field": 0, + "mask": 27, + "owner": "R", + "position": [ + -267, + 0, + 103 + ] + }, + { + "field": 2, + "mask": 27, + "owner": "R", + "position": [ + -266, + -104, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -266, + 0, + -104 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -266, + 0, + 104 + ] + }, + { + "field": 2, + "mask": 14, + "owner": "R", + "position": [ + -265, + -105, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -265, + 0, + -105 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -265, + 0, + 105 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -264, + -106, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "R", + "position": [ + -264, + 0, + -106 + ] + }, + { + "field": 0, + "mask": 14, + "owner": "R", + "position": [ + -264, + 0, + 106 + ] + }, + { + "field": 2, + "mask": 31, + "owner": "R", + "position": [ + -263, + -107, + 0 + ] + }, + { + "field": 1, + "mask": 27, + "owner": "R", + "position": [ + -263, + 0, + -107 + ] + }, + { + "field": 0, + "mask": 15, + "owner": "R", + "position": [ + -263, + 0, + 107 + ] + }, + { + "field": 2, + "mask": 11, + "owner": "R", + "position": [ + -262, + -108, + 0 + ] + }, + { + "field": 1, + "mask": 28, + "owner": "R", + "position": [ + -262, + 0, + -108 + ] + }, + { + "field": 0, + "mask": 21, + "owner": "R", + "position": [ + -262, + 0, + 108 + ] + }, + { + "field": 2, + "mask": 10, + "owner": "R", + "position": [ + -261, + -109, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -261, + 0, + -109 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "R", + "position": [ + -261, + 0, + 109 + ] + }, + { + "field": 2, + "mask": 23, + "owner": "R", + "position": [ + -260, + -110, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -260, + 0, + -110 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "R", + "position": [ + -260, + 0, + 110 + ] + }, + { + "field": 2, + "mask": 30, + "owner": "R", + "position": [ + -259, + -111, + 0 + ] + }, + { + "field": 1, + "mask": 26, + "owner": "R", + "position": [ + -259, + 0, + -111 + ] + }, + { + "field": 0, + "mask": 25, + "owner": "R", + "position": [ + -259, + 0, + 111 + ] + }, + { + "field": 2, + "mask": 25, + "owner": "R", + "position": [ + -258, + -112, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "R", + "position": [ + -258, + 0, + -112 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -258, + 0, + 112 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "R", + "position": [ + -257, + -113, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -257, + 0, + -113 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -257, + 0, + 113 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -256, + -114, + 0 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "R", + "position": [ + -256, + 0, + -114 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "R", + "position": [ + -256, + 0, + 114 + ] + }, + { + "field": 2, + "mask": 31, + "owner": "R", + "position": [ + -255, + -115, + 0 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "R", + "position": [ + -255, + 0, + -115 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "R", + "position": [ + -255, + 0, + 115 + ] + }, + { + "field": 2, + "mask": 11, + "owner": "R", + "position": [ + -254, + -116, + 0 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "R", + "position": [ + -254, + 0, + -116 + ] + }, + { + "field": 0, + "mask": 19, + "owner": "R", + "position": [ + -254, + 0, + 116 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "R", + "position": [ + -253, + -117, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -253, + 0, + -117 + ] + }, + { + "field": 0, + "mask": 19, + "owner": "R", + "position": [ + -253, + 0, + 117 + ] + }, + { + "field": 2, + "mask": 22, + "owner": "R", + "position": [ + -252, + -118, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -252, + 0, + -118 + ] + }, + { + "field": 0, + "mask": 27, + "owner": "R", + "position": [ + -252, + 0, + 118 + ] + }, + { + "field": 2, + "mask": 19, + "owner": "R", + "position": [ + -251, + -119, + 0 + ] + }, + { + "field": 1, + "mask": 17, + "owner": "R", + "position": [ + -251, + 0, + -119 + ] + }, + { + "field": 0, + "mask": 31, + "owner": "R", + "position": [ + -251, + 0, + 119 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "R", + "position": [ + -250, + -120, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -250, + 0, + -120 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "R", + "position": [ + -250, + 0, + 120 + ] + }, + { + "field": 2, + "mask": 15, + "owner": "R", + "position": [ + -249, + -121, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -249, + 0, + -121 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "R", + "position": [ + -249, + 0, + 121 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -248, + -122, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "R", + "position": [ + -248, + 0, + -122 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "R", + "position": [ + -247, + -123, + 0 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "R", + "position": [ + -247, + 0, + -123 + ] + }, + { + "field": 1, + "mask": 23, + "owner": "R", + "position": [ + -246, + 0, + -124 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "R", + "position": [ + -246, + 0, + 124 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "R", + "position": [ + -245, + -125, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -245, + 0, + -125 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "R", + "position": [ + -245, + 0, + 125 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "R", + "position": [ + -244, + -126, + 0 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "R", + "position": [ + -244, + 0, + 126 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "R", + "position": [ + -243, + -127, + 0 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "R", + "position": [ + -243, + 0, + -127 + ] + }, + { + "field": 0, + "mask": 25, + "owner": "R", + "position": [ + -243, + 0, + 127 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "R", + "position": [ + -242, + -128, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -242, + 0, + -128 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -242, + 0, + 128 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -241, + -129, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -241, + 0, + 129 + ] + }, + { + "field": 2, + "mask": 10, + "owner": "R", + "position": [ + -240, + -130, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -240, + 0, + -130 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -239, + -131, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "R", + "position": [ + -239, + 0, + -131 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "R", + "position": [ + -239, + 0, + 131 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -238, + -132, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -238, + 0, + 132 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -237, + 0, + -133 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "R", + "position": [ + -236, + -134, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -236, + 0, + -134 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -236, + 0, + 134 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -235, + -135, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "R", + "position": [ + -235, + 0, + -135 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "R", + "position": [ + -235, + 0, + 135 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -234, + -136, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -234, + 0, + -136 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -234, + 0, + 136 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -233, + -137, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -233, + 0, + -137 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -233, + 0, + 137 + ] + }, + { + "field": 2, + "mask": 15, + "owner": "R", + "position": [ + -232, + -138, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -232, + 0, + -138 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -232, + 0, + 138 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -231, + -139, + 0 + ] + }, + { + "field": 1, + "mask": 18, + "owner": "R", + "position": [ + -231, + 0, + -139 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "R", + "position": [ + -231, + 0, + 139 + ] + }, + { + "field": 2, + "mask": 21, + "owner": "R", + "position": [ + -230, + -140, + 0 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "R", + "position": [ + -230, + 0, + -140 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -230, + 0, + 140 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -229, + 0, + 141 + ] + }, + { + "field": 2, + "mask": 28, + "owner": "R", + "position": [ + -228, + -142, + 0 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "R", + "position": [ + -228, + 0, + -142 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "R", + "position": [ + -228, + 0, + 142 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -227, + -143, + 0 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "R", + "position": [ + -227, + 0, + -143 + ] + }, + { + "field": 0, + "mask": 30, + "owner": "R", + "position": [ + -227, + 0, + 143 + ] + }, + { + "field": 2, + "mask": 21, + "owner": "R", + "position": [ + -226, + -144, + 0 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "R", + "position": [ + -226, + 0, + -144 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -226, + 0, + 144 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -225, + -145, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -225, + 0, + -145 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -225, + 0, + 145 + ] + }, + { + "field": 2, + "mask": 11, + "owner": "R", + "position": [ + -224, + -146, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -224, + 0, + -146 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -224, + 0, + 146 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "R", + "position": [ + -223, + 0, + -147 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "R", + "position": [ + -223, + 0, + 147 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "R", + "position": [ + -222, + -148, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "R", + "position": [ + -222, + 0, + -148 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -222, + 0, + 148 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -221, + -149, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -221, + 0, + -149 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -221, + 0, + 149 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "R", + "position": [ + -220, + -150, + 0 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "R", + "position": [ + -220, + 0, + -150 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -220, + 0, + 150 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "R", + "position": [ + -219, + -151, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "R", + "position": [ + -219, + 0, + -151 + ] + }, + { + "field": 0, + "mask": 15, + "owner": "R", + "position": [ + -219, + 0, + 151 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -218, + -152, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -218, + 0, + -152 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -218, + 0, + 152 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -217, + -153, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -217, + 0, + -153 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -217, + 0, + 153 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -216, + -154, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -216, + 0, + -154 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -216, + 0, + 154 + ] + }, + { + "field": 1, + "mask": 30, + "owner": "R", + "position": [ + -215, + 0, + -155 + ] + }, + { + "field": 0, + "mask": 14, + "owner": "R", + "position": [ + -215, + 0, + 155 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "R", + "position": [ + -214, + -156, + 0 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "R", + "position": [ + -214, + 0, + -156 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -214, + 0, + 156 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -213, + -157, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -213, + 0, + -157 + ] + }, + { + "field": 0, + "mask": 15, + "owner": "R", + "position": [ + -213, + 0, + 157 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "R", + "position": [ + -212, + -158, + 0 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "R", + "position": [ + -212, + 0, + -158 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -212, + 0, + 158 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "R", + "position": [ + -211, + -159, + 0 + ] + }, + { + "field": 1, + "mask": 27, + "owner": "R", + "position": [ + -211, + 0, + -159 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "R", + "position": [ + -211, + 0, + 159 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "R", + "position": [ + -210, + -160, + 0 + ] + }, + { + "field": 1, + "mask": 30, + "owner": "R", + "position": [ + -210, + 0, + -160 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -210, + 0, + 160 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -209, + -161, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -209, + 0, + -161 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -209, + 0, + 161 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "R", + "position": [ + -208, + -162, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -208, + 0, + -162 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -208, + 0, + 162 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -207, + -163, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "R", + "position": [ + -207, + 0, + -163 + ] + }, + { + "field": 0, + "mask": 10, + "owner": "R", + "position": [ + -207, + 0, + 163 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -206, + -164, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "R", + "position": [ + -206, + 0, + -164 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -206, + 0, + 164 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -205, + -165, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "R", + "position": [ + -205, + 0, + 165 + ] + }, + { + "field": 2, + "mask": 14, + "owner": "R", + "position": [ + -204, + -166, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -204, + 0, + -166 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "R", + "position": [ + -204, + 0, + 166 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "R", + "position": [ + -203, + 0, + -167 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "R", + "position": [ + -203, + 0, + 167 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -202, + -168, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "R", + "position": [ + -202, + 0, + -168 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -202, + 0, + 168 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "R", + "position": [ + -201, + -169, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -201, + 0, + -169 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -201, + 0, + 169 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "R", + "position": [ + -200, + -170, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "R", + "position": [ + -200, + 0, + -170 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -200, + 0, + 170 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "R", + "position": [ + -199, + -171, + 0 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "R", + "position": [ + -199, + 0, + -171 + ] + }, + { + "field": 0, + "mask": 14, + "owner": "R", + "position": [ + -199, + 0, + 171 + ] + }, + { + "field": 2, + "mask": 17, + "owner": "R", + "position": [ + -198, + -172, + 0 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "R", + "position": [ + -198, + 0, + -172 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "R", + "position": [ + -198, + 0, + 172 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -197, + -173, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -197, + 0, + -173 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -197, + 0, + 173 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "R", + "position": [ + -196, + -174, + 0 + ] + }, + { + "field": 1, + "mask": 26, + "owner": "R", + "position": [ + -196, + 0, + -174 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "R", + "position": [ + -196, + 0, + 174 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -195, + -175, + 0 + ] + }, + { + "field": 1, + "mask": 18, + "owner": "R", + "position": [ + -195, + 0, + -175 + ] + }, + { + "field": 0, + "mask": 31, + "owner": "R", + "position": [ + -195, + 0, + 175 + ] + }, + { + "field": 2, + "mask": 17, + "owner": "R", + "position": [ + -194, + -176, + 0 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "R", + "position": [ + -194, + 0, + -176 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -193, + 0, + -177 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "R", + "position": [ + -192, + -178, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -192, + 0, + -178 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "R", + "position": [ + -192, + 0, + 178 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -191, + -179, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "R", + "position": [ + -191, + 0, + -179 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "R", + "position": [ + -191, + 0, + 179 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "R", + "position": [ + -190, + -180, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "R", + "position": [ + -190, + 0, + -180 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -190, + 0, + 180 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "R", + "position": [ + -189, + -181, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "R", + "position": [ + -189, + 0, + -181 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -189, + 0, + 181 + ] + }, + { + "field": 2, + "mask": 10, + "owner": "R", + "position": [ + -188, + -182, + 0 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "R", + "position": [ + -188, + 0, + -182 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "R", + "position": [ + -188, + 0, + 182 + ] + }, + { + "field": 2, + "mask": 14, + "owner": "R", + "position": [ + -187, + -183, + 0 + ] + }, + { + "field": 1, + "mask": 10, + "owner": "R", + "position": [ + -187, + 0, + -183 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "R", + "position": [ + -187, + 0, + 183 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "R", + "position": [ + -186, + -184, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "R", + "position": [ + -186, + 0, + -184 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "R", + "position": [ + -186, + 0, + 184 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "R", + "position": [ + -185, + -185, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "R", + "position": [ + -185, + 0, + -185 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "R", + "position": [ + -185, + 0, + 185 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 0, + -185, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 0, + 0, + -1295 + ] + }, + { + "field": 1, + "mask": 64, + "owner": "input", + "position": [ + 0, + 0, + 0 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 0, + 185, + -1480 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "H", + "position": [ + 1, + -184, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 1, + 0, + -1296 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "H", + "position": [ + 1, + 184, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 2, + -183, + -1480 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "H", + "position": [ + 2, + 0, + -1297 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 2, + 183, + -1480 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "H", + "position": [ + 3, + -182, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 3, + 0, + -1298 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 3, + 182, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 4, + -181, + -1480 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "H", + "position": [ + 4, + 0, + -1299 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 4, + 181, + -1480 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 5, + -180, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 5, + 0, + -1300 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 5, + 180, + -1480 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 6, + 179, + -1480 + ] + }, + { + "field": 1, + "mask": 25, + "owner": "H", + "position": [ + 7, + -178, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 7, + 0, + -1302 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "H", + "position": [ + 7, + 178, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 8, + -177, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 8, + 0, + -1303 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 8, + 177, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 9, + -176, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 9, + 0, + -1304 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 9, + 176, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 10, + -175, + -1480 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "H", + "position": [ + 10, + 0, + -1305 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "H", + "position": [ + 10, + 175, + -1480 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 11, + -174, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 11, + 0, + -1306 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "H", + "position": [ + 11, + 174, + -1480 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 12, + -173, + -1480 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "H", + "position": [ + 12, + 0, + -1307 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 12, + 173, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 13, + -172, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 13, + 0, + -1308 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 14, + -171, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 14, + 0, + -1309 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 14, + 171, + -1480 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "H", + "position": [ + 15, + -170, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 15, + 0, + -1310 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "H", + "position": [ + 15, + 170, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 16, + -169, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 16, + 0, + -1311 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "H", + "position": [ + 16, + 169, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 17, + -168, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 17, + 0, + -1312 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 17, + 168, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 18, + -167, + -1480 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "H", + "position": [ + 18, + 0, + -1313 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 18, + 167, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 19, + -166, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 19, + 0, + -1314 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 20, + -165, + -1480 + ] + }, + { + "field": 2, + "mask": 17, + "owner": "H", + "position": [ + 20, + 0, + -1315 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 20, + 165, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 21, + 164, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 22, + -163, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 22, + 0, + -1317 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 22, + 163, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 23, + -162, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 23, + 0, + -1318 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 23, + 162, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 24, + -161, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 24, + 0, + -1319 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 24, + 161, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 25, + -160, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 25, + 0, + -1320 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 25, + 160, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 26, + 0, + -1321 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 26, + 159, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 27, + -158, + -1480 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "H", + "position": [ + 27, + 158, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 28, + 0, + -1323 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "H", + "position": [ + 28, + 157, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 29, + -156, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 29, + 0, + -1324 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 30, + -155, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 30, + 0, + -1325 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 30, + 155, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 31, + 0, + -1326 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 31, + 154, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 32, + -153, + -1480 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 32, + 153, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 33, + -152, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 33, + 0, + -1328 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 33, + 152, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 34, + -151, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 34, + 0, + -1329 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "H", + "position": [ + 34, + 151, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 35, + -150, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 35, + 0, + -1330 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 35, + 150, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 36, + -149, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 36, + 0, + -1331 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "H", + "position": [ + 36, + 149, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 37, + -148, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 37, + 0, + -1332 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 38, + -147, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 38, + 0, + -1333 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 38, + 147, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 39, + -146, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 39, + 0, + -1334 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 39, + 146, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 40, + -145, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 40, + 0, + -1335 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 41, + 0, + -1336 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 41, + 144, + -1480 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 42, + -143, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 42, + 0, + -1337 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 42, + 143, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 43, + -142, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 43, + 0, + -1338 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "H", + "position": [ + 43, + 142, + -1480 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "H", + "position": [ + 44, + -141, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 44, + 0, + -1339 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "H", + "position": [ + 44, + 141, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 45, + -140, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 45, + 0, + -1340 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 45, + 140, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 46, + -139, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 46, + 0, + -1341 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 47, + -138, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 47, + 0, + -1342 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 47, + 138, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 48, + -137, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 48, + 0, + -1343 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 48, + 137, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 49, + -136, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 49, + 0, + -1344 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 50, + -135, + -1480 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "H", + "position": [ + 50, + 135, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 51, + -134, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 51, + 0, + -1346 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 51, + 134, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 52, + -133, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 52, + 0, + -1347 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "H", + "position": [ + 52, + 133, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 53, + 0, + -1348 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 53, + 132, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 54, + -131, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 54, + 0, + -1349 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 54, + 131, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 55, + -130, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 55, + 0, + -1350 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 56, + -129, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 56, + 129, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 57, + -128, + -1480 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 57, + 128, + -1480 + ] + }, + { + "field": 1, + "mask": 28, + "owner": "H", + "position": [ + 58, + -127, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 58, + 0, + -1353 + ] + }, + { + "field": 1, + "mask": 17, + "owner": "H", + "position": [ + 59, + -126, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 59, + 0, + -1354 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "H", + "position": [ + 59, + 126, + -1480 + ] + }, + { + "field": 1, + "mask": 25, + "owner": "H", + "position": [ + 60, + -125, + -1480 + ] + }, + { + "field": 2, + "mask": 25, + "owner": "H", + "position": [ + 60, + 0, + -1355 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "H", + "position": [ + 60, + 125, + -1480 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "H", + "position": [ + 61, + -124, + -1480 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "H", + "position": [ + 61, + 0, + -1356 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 61, + 124, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 62, + -123, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 62, + 0, + -1357 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "H", + "position": [ + 62, + 123, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 63, + -122, + -1480 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "H", + "position": [ + 63, + 122, + -1480 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "H", + "position": [ + 64, + -121, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 64, + 0, + -1359 + ] + }, + { + "field": 0, + "mask": 21, + "owner": "H", + "position": [ + 64, + 121, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 65, + -120, + -1480 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "H", + "position": [ + 65, + 0, + -1360 + ] + }, + { + "field": 0, + "mask": 25, + "owner": "H", + "position": [ + 65, + 120, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 66, + -119, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 66, + 0, + -1361 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 66, + 119, + -1480 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "H", + "position": [ + 67, + -118, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 67, + 0, + -1362 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 67, + 118, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 68, + -117, + -1480 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "H", + "position": [ + 68, + 0, + -1363 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 68, + 117, + -1480 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 69, + -116, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 69, + 0, + -1364 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "H", + "position": [ + 69, + 116, + -1480 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 70, + 115, + -1480 + ] + }, + { + "field": 1, + "mask": 25, + "owner": "H", + "position": [ + 71, + -114, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 71, + 0, + -1366 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "H", + "position": [ + 71, + 114, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 72, + -113, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 72, + 0, + -1367 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 72, + 113, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 73, + -112, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 73, + 0, + -1368 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 73, + 112, + -1480 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "H", + "position": [ + 74, + -111, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 74, + 0, + -1369 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "H", + "position": [ + 74, + 111, + -1480 + ] + }, + { + "field": 1, + "mask": 25, + "owner": "H", + "position": [ + 75, + -110, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 75, + 0, + -1370 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 75, + 110, + -1480 + ] + }, + { + "field": 1, + "mask": 25, + "owner": "H", + "position": [ + 76, + -109, + -1480 + ] + }, + { + "field": 2, + "mask": 17, + "owner": "H", + "position": [ + 76, + 0, + -1371 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 76, + 109, + -1480 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "H", + "position": [ + 77, + -108, + -1480 + ] + }, + { + "field": 2, + "mask": 25, + "owner": "H", + "position": [ + 77, + 0, + -1372 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 77, + 108, + -1480 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "H", + "position": [ + 78, + -107, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 78, + 0, + -1373 + ] + }, + { + "field": 0, + "mask": 21, + "owner": "H", + "position": [ + 78, + 107, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 79, + -106, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 79, + 0, + -1374 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 79, + 106, + -1480 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "H", + "position": [ + 80, + -105, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 80, + 0, + -1375 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "H", + "position": [ + 80, + 105, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 81, + -104, + -1480 + ] + }, + { + "field": 2, + "mask": 20, + "owner": "H", + "position": [ + 81, + 0, + -1376 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 81, + 104, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 82, + -103, + -1480 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "H", + "position": [ + 82, + 103, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 83, + -102, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 83, + 102, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 84, + -101, + -1480 + ] + }, + { + "field": 2, + "mask": 17, + "owner": "H", + "position": [ + 84, + 0, + -1379 + ] + }, + { + "field": 0, + "mask": 21, + "owner": "H", + "position": [ + 84, + 101, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 86, + -99, + -1480 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 86, + 99, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 87, + -98, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 87, + 0, + -1382 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 87, + 98, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 88, + -97, + -1480 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 88, + 97, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 89, + -96, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 89, + 0, + -1384 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 89, + 96, + -1480 + ] + }, + { + "field": 1, + "mask": 17, + "owner": "H", + "position": [ + 90, + -95, + -1480 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "H", + "position": [ + 90, + 0, + -1385 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 90, + 95, + -1480 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "H", + "position": [ + 91, + -94, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 91, + 0, + -1386 + ] + }, + { + "field": 0, + "mask": 29, + "owner": "H", + "position": [ + 91, + 94, + -1480 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "H", + "position": [ + 92, + -93, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 92, + 0, + -1387 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "H", + "position": [ + 92, + 93, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 93, + -92, + -1480 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "H", + "position": [ + 93, + 0, + -1388 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 93, + 92, + -1480 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "H", + "position": [ + 94, + -91, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 94, + 91, + -1480 + ] + }, + { + "field": 1, + "mask": 17, + "owner": "H", + "position": [ + 95, + -90, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 95, + 0, + -1390 + ] + }, + { + "field": 0, + "mask": 25, + "owner": "H", + "position": [ + 95, + 90, + -1480 + ] + }, + { + "field": 1, + "mask": 28, + "owner": "H", + "position": [ + 96, + -89, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 96, + 0, + -1391 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 96, + 89, + -1480 + ] + }, + { + "field": 1, + "mask": 16, + "owner": "H", + "position": [ + 97, + -88, + -1480 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "H", + "position": [ + 97, + 0, + -1392 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 97, + 88, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 98, + -87, + -1480 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "H", + "position": [ + 98, + 0, + -1393 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 98, + 87, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 99, + -86, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 99, + 0, + -1394 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 100, + -85, + -1480 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "H", + "position": [ + 100, + 85, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 101, + -84, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 101, + 0, + -1396 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 102, + -83, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 102, + 0, + -1397 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 103, + -82, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 103, + 0, + -1398 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 104, + -81, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 104, + 0, + -1399 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 104, + 81, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 105, + 0, + -1400 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 105, + 80, + -1480 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "H", + "position": [ + 106, + -79, + -1480 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "H", + "position": [ + 106, + 0, + -1401 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 106, + 79, + -1480 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "H", + "position": [ + 107, + -78, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 107, + 0, + -1402 + ] + }, + { + "field": 0, + "mask": 29, + "owner": "H", + "position": [ + 107, + 78, + -1480 + ] + }, + { + "field": 1, + "mask": 25, + "owner": "H", + "position": [ + 108, + -77, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 108, + 0, + -1403 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "H", + "position": [ + 108, + 77, + -1480 + ] + }, + { + "field": 1, + "mask": 17, + "owner": "H", + "position": [ + 109, + -76, + -1480 + ] + }, + { + "field": 2, + "mask": 25, + "owner": "H", + "position": [ + 109, + 0, + -1404 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 109, + 76, + -1480 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "H", + "position": [ + 110, + -75, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 110, + 0, + -1405 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "H", + "position": [ + 111, + -74, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 111, + 0, + -1406 + ] + }, + { + "field": 0, + "mask": 25, + "owner": "H", + "position": [ + 111, + 74, + -1480 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "H", + "position": [ + 112, + -73, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 112, + 0, + -1407 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 112, + 73, + -1480 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "H", + "position": [ + 113, + -72, + -1480 + ] + }, + { + "field": 2, + "mask": 20, + "owner": "H", + "position": [ + 113, + 0, + -1408 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 113, + 72, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 114, + -71, + -1480 + ] + }, + { + "field": 2, + "mask": 17, + "owner": "H", + "position": [ + 114, + 0, + -1409 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 114, + 71, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 116, + -69, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 116, + 0, + -1411 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "H", + "position": [ + 116, + 69, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 117, + -68, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 117, + 68, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 118, + -67, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 118, + 0, + -1413 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 118, + 67, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 119, + -66, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 119, + 0, + -1414 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 120, + -65, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 121, + -64, + -1480 + ] + }, + { + "field": 0, + "mask": 25, + "owner": "H", + "position": [ + 121, + 64, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 122, + -63, + -1480 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "H", + "position": [ + 122, + 0, + -1417 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 122, + 63, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 123, + -62, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 123, + 0, + -1418 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "H", + "position": [ + 123, + 62, + -1480 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 124, + -61, + -1480 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "H", + "position": [ + 124, + 0, + -1419 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "H", + "position": [ + 124, + 61, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 125, + -60, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 126, + -59, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 126, + 0, + -1421 + ] + }, + { + "field": 0, + "mask": 29, + "owner": "H", + "position": [ + 126, + 59, + -1480 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "H", + "position": [ + 127, + -58, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 127, + 0, + -1422 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "H", + "position": [ + 127, + 58, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 128, + -57, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 128, + 0, + -1423 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 128, + 57, + -1480 + ] + }, + { + "field": 1, + "mask": 29, + "owner": "H", + "position": [ + 129, + -56, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 129, + 0, + -1424 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "H", + "position": [ + 129, + 56, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 130, + -55, + -1480 + ] + }, + { + "field": 2, + "mask": 25, + "owner": "H", + "position": [ + 130, + 0, + -1425 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 130, + 55, + -1480 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 131, + -54, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 131, + 0, + -1426 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 131, + 54, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 132, + -53, + -1480 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "H", + "position": [ + 132, + 0, + -1427 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 132, + 53, + -1480 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "H", + "position": [ + 133, + -52, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 133, + 0, + -1428 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "H", + "position": [ + 133, + 52, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 134, + 0, + -1429 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 134, + 51, + -1480 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "H", + "position": [ + 135, + -50, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 135, + 0, + -1430 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "H", + "position": [ + 135, + 50, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 136, + -49, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 136, + 0, + -1431 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 136, + 49, + -1480 + ] + }, + { + "field": 1, + "mask": 20, + "owner": "H", + "position": [ + 137, + -48, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 137, + 0, + -1432 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 137, + 48, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 138, + -47, + -1480 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "H", + "position": [ + 138, + 0, + -1433 + ] + }, + { + "field": 0, + "mask": 29, + "owner": "H", + "position": [ + 138, + 47, + -1480 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "H", + "position": [ + 139, + -46, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 139, + 0, + -1434 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "H", + "position": [ + 139, + 46, + -1480 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "H", + "position": [ + 140, + -45, + -1480 + ] + }, + { + "field": 2, + "mask": 17, + "owner": "H", + "position": [ + 140, + 0, + -1435 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 140, + 45, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 141, + -44, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 141, + 0, + -1436 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 141, + 44, + -1480 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "H", + "position": [ + 142, + -43, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 142, + 0, + -1437 + ] + }, + { + "field": 0, + "mask": 21, + "owner": "H", + "position": [ + 142, + 43, + -1480 + ] + }, + { + "field": 1, + "mask": 17, + "owner": "H", + "position": [ + 143, + -42, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 143, + 0, + -1438 + ] + }, + { + "field": 0, + "mask": 24, + "owner": "H", + "position": [ + 143, + 42, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 144, + -41, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 144, + 0, + -1439 + ] + }, + { + "field": 0, + "mask": 29, + "owner": "H", + "position": [ + 144, + 41, + -1480 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "H", + "position": [ + 145, + -40, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 145, + 0, + -1440 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 145, + 40, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 146, + -39, + -1480 + ] + }, + { + "field": 2, + "mask": 17, + "owner": "H", + "position": [ + 146, + 0, + -1441 + ] + }, + { + "field": 0, + "mask": 20, + "owner": "H", + "position": [ + 146, + 39, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 147, + -38, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 147, + 38, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 148, + -37, + -1480 + ] + }, + { + "field": 2, + "mask": 16, + "owner": "H", + "position": [ + 148, + 0, + -1443 + ] + }, + { + "field": 0, + "mask": 21, + "owner": "H", + "position": [ + 148, + 37, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 149, + -36, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 149, + 36, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 150, + -35, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 150, + 0, + -1445 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 150, + 35, + -1480 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "H", + "position": [ + 151, + -34, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 151, + 0, + -1446 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "H", + "position": [ + 151, + 34, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 152, + -33, + -1480 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "H", + "position": [ + 152, + 33, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 153, + -32, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 154, + -31, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 154, + 0, + -1449 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "H", + "position": [ + 155, + 30, + -1480 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "H", + "position": [ + 156, + 0, + -1451 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "H", + "position": [ + 156, + 29, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 157, + -28, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 157, + 28, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 158, + -27, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 158, + 27, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 159, + 0, + -1454 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "H", + "position": [ + 159, + 26, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 160, + -25, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 160, + 0, + -1455 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "H", + "position": [ + 160, + 25, + -1480 + ] + }, + { + "field": 2, + "mask": 13, + "owner": "H", + "position": [ + 161, + 0, + -1456 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 161, + 24, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 162, + -23, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 162, + 0, + -1457 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "H", + "position": [ + 162, + 23, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 163, + -22, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 163, + 0, + -1458 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 164, + -21, + -1480 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "H", + "position": [ + 164, + 21, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 165, + -20, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 165, + 0, + -1460 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 165, + 20, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 166, + -19, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 166, + 0, + -1461 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 167, + 0, + -1462 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 167, + 18, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 168, + -17, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 168, + 0, + -1463 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 168, + 17, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 169, + -16, + -1480 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "H", + "position": [ + 169, + 0, + -1464 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "H", + "position": [ + 170, + -15, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 170, + 0, + -1465 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 170, + 15, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 171, + -14, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 171, + 0, + -1466 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "H", + "position": [ + 171, + 14, + -1480 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "H", + "position": [ + 172, + -13, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 172, + 0, + -1467 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "H", + "position": [ + 172, + 13, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 173, + 0, + -1468 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 173, + 12, + -1480 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "H", + "position": [ + 174, + -11, + -1480 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "H", + "position": [ + 174, + 0, + -1469 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 174, + 11, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 175, + -10, + -1480 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "H", + "position": [ + 175, + 0, + -1470 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "H", + "position": [ + 175, + 10, + -1480 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "H", + "position": [ + 176, + -9, + -1480 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "H", + "position": [ + 176, + 9, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 177, + -8, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 177, + 0, + -1472 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 177, + 8, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 178, + -7, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 178, + 0, + -1473 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "H", + "position": [ + 178, + 7, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 179, + 0, + -1474 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 179, + 6, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 180, + -5, + -1480 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "H", + "position": [ + 180, + 0, + -1475 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "H", + "position": [ + 180, + 5, + -1480 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "H", + "position": [ + 181, + -4, + -1480 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "H", + "position": [ + 182, + -3, + -1480 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 182, + 3, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 183, + -2, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "H", + "position": [ + 183, + 0, + -1478 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "H", + "position": [ + 183, + 2, + -1480 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "H", + "position": [ + 184, + -1, + -1480 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 185, + -185, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "Y", + "position": [ + 185, + 0, + -185 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "Y", + "position": [ + 185, + 0, + 185 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "Y", + "position": [ + 186, + 0, + -184 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 186, + 0, + 184 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 187, + -183, + 0 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "Y", + "position": [ + 187, + 0, + -183 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "Y", + "position": [ + 187, + 0, + 183 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "Y", + "position": [ + 188, + 0, + -182 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 188, + 0, + 182 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 189, + -181, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 189, + 0, + -181 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "Y", + "position": [ + 189, + 0, + 181 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 190, + -180, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 190, + 0, + -180 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 190, + 0, + 180 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 191, + -179, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 191, + 0, + -179 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 191, + 0, + 179 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 192, + -178, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 192, + 0, + -178 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 192, + 0, + 178 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 193, + -177, + 0 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "Y", + "position": [ + 193, + 0, + -177 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "Y", + "position": [ + 193, + 0, + 177 + ] + }, + { + "field": 1, + "mask": 26, + "owner": "Y", + "position": [ + 194, + 0, + -176 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 194, + 0, + 176 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 195, + -175, + 0 + ] + }, + { + "field": 1, + "mask": 14, + "owner": "Y", + "position": [ + 195, + 0, + -175 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "Y", + "position": [ + 195, + 0, + 175 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "Y", + "position": [ + 196, + 0, + -174 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 196, + 0, + 174 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "Y", + "position": [ + 197, + 0, + -173 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "Y", + "position": [ + 197, + 0, + 173 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 198, + -172, + 0 + ] + }, + { + "field": 1, + "mask": 21, + "owner": "Y", + "position": [ + 198, + 0, + -172 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 198, + 0, + 172 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 199, + -171, + 0 + ] + }, + { + "field": 1, + "mask": 23, + "owner": "Y", + "position": [ + 199, + 0, + -171 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 199, + 0, + 171 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "Y", + "position": [ + 200, + 0, + -170 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "Y", + "position": [ + 200, + 0, + 170 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 201, + -169, + 0 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "Y", + "position": [ + 201, + 0, + -169 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "Y", + "position": [ + 201, + 0, + 169 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 202, + -168, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "Y", + "position": [ + 202, + 0, + -168 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 202, + 0, + 168 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 203, + -167, + 0 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "Y", + "position": [ + 203, + 0, + -167 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 203, + 0, + 167 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 204, + -166, + 0 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "Y", + "position": [ + 204, + 0, + -166 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 204, + 0, + 166 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 205, + -165, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "Y", + "position": [ + 205, + 0, + -165 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "Y", + "position": [ + 205, + 0, + 165 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 206, + -164, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 206, + 0, + -164 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 206, + 0, + 164 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 207, + 0, + 163 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 208, + -162, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 208, + 0, + -162 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 208, + 0, + 162 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 209, + -161, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "Y", + "position": [ + 209, + 0, + -161 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "Y", + "position": [ + 209, + 0, + 161 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 210, + -160, + 0 + ] + }, + { + "field": 1, + "mask": 15, + "owner": "Y", + "position": [ + 210, + 0, + -160 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 211, + -159, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "Y", + "position": [ + 211, + 0, + -159 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 211, + 0, + 159 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 213, + -157, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 213, + 0, + -157 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 213, + 0, + 157 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 214, + -156, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 214, + 0, + -156 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 215, + -155, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 215, + 0, + 155 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 216, + 0, + 154 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 217, + -153, + 0 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 217, + 0, + 153 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 218, + -152, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 218, + 0, + -152 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 218, + 0, + 152 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 219, + -151, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "Y", + "position": [ + 219, + 0, + -151 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 219, + 0, + 151 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 220, + -150, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 220, + 0, + -150 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 220, + 0, + 150 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 221, + -149, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 221, + 0, + -149 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 221, + 0, + 149 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 222, + 0, + -148 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "Y", + "position": [ + 223, + 0, + -147 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 223, + 0, + 147 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 224, + -146, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 224, + 0, + -146 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 224, + 0, + 146 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 225, + -145, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 225, + 0, + -145 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 225, + 0, + 145 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 226, + -144, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "Y", + "position": [ + 226, + 0, + -144 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 226, + 0, + 144 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 227, + -143, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 227, + 0, + -143 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 227, + 0, + 143 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 228, + -142, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 228, + 0, + -142 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 228, + 0, + 142 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 229, + -141, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 229, + 0, + 141 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 230, + -140, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "Y", + "position": [ + 230, + 0, + -140 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 230, + 0, + 140 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 231, + -139, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 231, + 0, + -139 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "Y", + "position": [ + 231, + 0, + 139 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 232, + -138, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 232, + 0, + -138 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 232, + 0, + 138 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 233, + -137, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 233, + 0, + -137 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 233, + 0, + 137 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 234, + -136, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 234, + 0, + -136 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "Y", + "position": [ + 235, + 0, + -135 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 235, + 0, + 135 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 236, + -134, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 236, + 0, + -134 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 236, + 0, + 134 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 237, + -133, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 237, + 0, + -133 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 238, + -132, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 238, + 0, + -132 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 238, + 0, + 132 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 239, + -131, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 239, + 0, + -131 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 239, + 0, + 131 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 240, + -130, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 240, + 0, + -130 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 240, + 0, + 130 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 241, + -129, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 241, + 0, + 129 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "Y", + "position": [ + 242, + -128, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 242, + 0, + -128 + ] + }, + { + "field": 0, + "mask": 29, + "owner": "Y", + "position": [ + 242, + 0, + 128 + ] + }, + { + "field": 2, + "mask": 21, + "owner": "Y", + "position": [ + 243, + -127, + 0 + ] + }, + { + "field": 1, + "mask": 15, + "owner": "Y", + "position": [ + 243, + 0, + -127 + ] + }, + { + "field": 0, + "mask": 22, + "owner": "Y", + "position": [ + 243, + 0, + 127 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 244, + -126, + 0 + ] + }, + { + "field": 1, + "mask": 30, + "owner": "Y", + "position": [ + 244, + 0, + -126 + ] + }, + { + "field": 0, + "mask": 23, + "owner": "Y", + "position": [ + 244, + 0, + 126 + ] + }, + { + "field": 2, + "mask": 20, + "owner": "Y", + "position": [ + 245, + -125, + 0 + ] + }, + { + "field": 1, + "mask": 26, + "owner": "Y", + "position": [ + 245, + 0, + -125 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "Y", + "position": [ + 245, + 0, + 125 + ] + }, + { + "field": 2, + "mask": 10, + "owner": "Y", + "position": [ + 246, + -124, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 246, + 0, + -124 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 246, + 0, + 124 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "Y", + "position": [ + 247, + -123, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "Y", + "position": [ + 247, + 0, + -123 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "Y", + "position": [ + 247, + 0, + 123 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 248, + -122, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "Y", + "position": [ + 248, + 0, + -122 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "Y", + "position": [ + 248, + 0, + 122 + ] + }, + { + "field": 2, + "mask": 14, + "owner": "Y", + "position": [ + 249, + -121, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 249, + 0, + -121 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 249, + 0, + 121 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 250, + -120, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "Y", + "position": [ + 250, + 0, + -120 + ] + }, + { + "field": 0, + "mask": 23, + "owner": "Y", + "position": [ + 250, + 0, + 120 + ] + }, + { + "field": 2, + "mask": 21, + "owner": "Y", + "position": [ + 251, + -119, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 251, + 0, + -119 + ] + }, + { + "field": 0, + "mask": 29, + "owner": "Y", + "position": [ + 251, + 0, + 119 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 252, + -118, + 0 + ] + }, + { + "field": 1, + "mask": 18, + "owner": "Y", + "position": [ + 252, + 0, + -118 + ] + }, + { + "field": 0, + "mask": 19, + "owner": "Y", + "position": [ + 252, + 0, + 118 + ] + }, + { + "field": 2, + "mask": 20, + "owner": "Y", + "position": [ + 253, + -117, + 0 + ] + }, + { + "field": 1, + "mask": 23, + "owner": "Y", + "position": [ + 253, + 0, + -117 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 253, + 0, + 117 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 254, + -116, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 254, + 0, + -116 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 254, + 0, + 116 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 255, + -115, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "Y", + "position": [ + 255, + 0, + -115 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "Y", + "position": [ + 255, + 0, + 115 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 256, + -114, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "Y", + "position": [ + 256, + 0, + -114 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 256, + 0, + 114 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 257, + -113, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 257, + 0, + -113 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 257, + 0, + 113 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 258, + -112, + 0 + ] + }, + { + "field": 1, + "mask": 14, + "owner": "Y", + "position": [ + 258, + 0, + -112 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "Y", + "position": [ + 258, + 0, + 112 + ] + }, + { + "field": 2, + "mask": 8, + "owner": "Y", + "position": [ + 259, + -111, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 259, + 0, + -111 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 259, + 0, + 111 + ] + }, + { + "field": 1, + "mask": 14, + "owner": "Y", + "position": [ + 260, + 0, + -110 + ] + }, + { + "field": 0, + "mask": 10, + "owner": "Y", + "position": [ + 260, + 0, + 110 + ] + }, + { + "field": 2, + "mask": 10, + "owner": "Y", + "position": [ + 261, + -109, + 0 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "Y", + "position": [ + 261, + 0, + -109 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 262, + -108, + 0 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "Y", + "position": [ + 262, + 0, + 108 + ] + }, + { + "field": 2, + "mask": 11, + "owner": "Y", + "position": [ + 263, + -107, + 0 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "Y", + "position": [ + 263, + 0, + -107 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 263, + 0, + 107 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 264, + -106, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 264, + 0, + -106 + ] + }, + { + "field": 0, + "mask": 10, + "owner": "Y", + "position": [ + 264, + 0, + 106 + ] + }, + { + "field": 2, + "mask": 12, + "owner": "Y", + "position": [ + 265, + -105, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "Y", + "position": [ + 265, + 0, + -105 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "Y", + "position": [ + 265, + 0, + 105 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "Y", + "position": [ + 266, + 0, + -104 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 266, + 0, + 104 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 267, + -103, + 0 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "Y", + "position": [ + 267, + 0, + 103 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 268, + -102, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 268, + 0, + -102 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 268, + 0, + 102 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 269, + -101, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 269, + 0, + -101 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 269, + 0, + 101 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 270, + -100, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 270, + 0, + -100 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 270, + 0, + 100 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 271, + -99, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 271, + 0, + -99 + ] + }, + { + "field": 0, + "mask": 14, + "owner": "Y", + "position": [ + 271, + 0, + 99 + ] + }, + { + "field": 1, + "mask": 10, + "owner": "Y", + "position": [ + 272, + 0, + -98 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 272, + 0, + 98 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 273, + -97, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 273, + 0, + -97 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 273, + 0, + 97 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 274, + -96, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 274, + 0, + -96 + ] + }, + { + "field": 0, + "mask": 31, + "owner": "Y", + "position": [ + 274, + 0, + 96 + ] + }, + { + "field": 2, + "mask": 29, + "owner": "Y", + "position": [ + 275, + -95, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 275, + 0, + -95 + ] + }, + { + "field": 0, + "mask": 28, + "owner": "Y", + "position": [ + 275, + 0, + 95 + ] + }, + { + "field": 1, + "mask": 24, + "owner": "Y", + "position": [ + 276, + 0, + -94 + ] + }, + { + "field": 0, + "mask": 30, + "owner": "Y", + "position": [ + 276, + 0, + 94 + ] + }, + { + "field": 2, + "mask": 24, + "owner": "Y", + "position": [ + 277, + -93, + 0 + ] + }, + { + "field": 1, + "mask": 27, + "owner": "Y", + "position": [ + 277, + 0, + -93 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 277, + 0, + 93 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 278, + -92, + 0 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "Y", + "position": [ + 278, + 0, + 92 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "Y", + "position": [ + 279, + -91, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 279, + 0, + -91 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "Y", + "position": [ + 279, + 0, + 91 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 280, + -90, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "Y", + "position": [ + 280, + 0, + -90 + ] + }, + { + "field": 0, + "mask": 13, + "owner": "Y", + "position": [ + 280, + 0, + 90 + ] + }, + { + "field": 2, + "mask": 9, + "owner": "Y", + "position": [ + 281, + -89, + 0 + ] + }, + { + "field": 1, + "mask": 14, + "owner": "Y", + "position": [ + 281, + 0, + -89 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 281, + 0, + 89 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 282, + -88, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 282, + 0, + -88 + ] + }, + { + "field": 0, + "mask": 16, + "owner": "Y", + "position": [ + 282, + 0, + 88 + ] + }, + { + "field": 2, + "mask": 19, + "owner": "Y", + "position": [ + 283, + -87, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "Y", + "position": [ + 283, + 0, + -87 + ] + }, + { + "field": 0, + "mask": 17, + "owner": "Y", + "position": [ + 283, + 0, + 87 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 284, + -86, + 0 + ] + }, + { + "field": 1, + "mask": 18, + "owner": "Y", + "position": [ + 284, + 0, + -86 + ] + }, + { + "field": 0, + "mask": 19, + "owner": "Y", + "position": [ + 284, + 0, + 86 + ] + }, + { + "field": 2, + "mask": 19, + "owner": "Y", + "position": [ + 285, + -85, + 0 + ] + }, + { + "field": 1, + "mask": 22, + "owner": "Y", + "position": [ + 285, + 0, + -85 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 285, + 0, + 85 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 286, + -84, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 286, + 0, + 84 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 287, + -83, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 287, + 0, + -83 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 287, + 0, + 83 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 288, + -82, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 288, + 0, + 82 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 289, + -81, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 289, + 0, + -81 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 289, + 0, + 81 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 290, + -80, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 290, + 0, + -80 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "Y", + "position": [ + 290, + 0, + 80 + ] + }, + { + "field": 2, + "mask": 14, + "owner": "Y", + "position": [ + 291, + -79, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 291, + 0, + -79 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "Y", + "position": [ + 291, + 0, + 79 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 292, + -78, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 292, + 0, + -78 + ] + }, + { + "field": 0, + "mask": 15, + "owner": "Y", + "position": [ + 292, + 0, + 78 + ] + }, + { + "field": 2, + "mask": 11, + "owner": "Y", + "position": [ + 293, + -77, + 0 + ] + }, + { + "field": 1, + "mask": 12, + "owner": "Y", + "position": [ + 293, + 0, + -77 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 293, + 0, + 77 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 294, + -76, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 294, + 0, + -76 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "Y", + "position": [ + 294, + 0, + 76 + ] + }, + { + "field": 2, + "mask": 15, + "owner": "Y", + "position": [ + 295, + -75, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "Y", + "position": [ + 295, + 0, + -75 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "Y", + "position": [ + 295, + 0, + 75 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 296, + -74, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 296, + 0, + -74 + ] + }, + { + "field": 0, + "mask": 15, + "owner": "Y", + "position": [ + 296, + 0, + 74 + ] + }, + { + "field": 2, + "mask": 10, + "owner": "Y", + "position": [ + 297, + -73, + 0 + ] + }, + { + "field": 1, + "mask": 15, + "owner": "Y", + "position": [ + 297, + 0, + -73 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 297, + 0, + 73 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 298, + -72, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 298, + 0, + 72 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 299, + -71, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 299, + 0, + -71 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 299, + 0, + 71 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 300, + -70, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 300, + 0, + 70 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 301, + -69, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 301, + 0, + -69 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 302, + -68, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 302, + 0, + -68 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 302, + 0, + 68 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 303, + -67, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 303, + 0, + -67 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 303, + 0, + 67 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 304, + -66, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 304, + 0, + -66 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 304, + 0, + 66 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 305, + -65, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 305, + 0, + -65 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 306, + 0, + -64 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 306, + 0, + 64 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 307, + -63, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 307, + 0, + -63 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "Y", + "position": [ + 307, + 0, + 63 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 308, + -62, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 308, + 0, + -62 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 308, + 0, + 62 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 309, + -61, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 309, + 0, + -61 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "Y", + "position": [ + 309, + 0, + 61 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 310, + -60, + 0 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 310, + 0, + 60 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 311, + -59, + 0 + ] + }, + { + "field": 1, + "mask": 14, + "owner": "Y", + "position": [ + 311, + 0, + -59 + ] + }, + { + "field": 0, + "mask": 15, + "owner": "Y", + "position": [ + 311, + 0, + 59 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 312, + -58, + 0 + ] + }, + { + "field": 1, + "mask": 15, + "owner": "Y", + "position": [ + 312, + 0, + -58 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 312, + 0, + 58 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 313, + -57, + 0 + ] + }, + { + "field": 1, + "mask": 15, + "owner": "Y", + "position": [ + 313, + 0, + -57 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 313, + 0, + 57 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 314, + -56, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "Y", + "position": [ + 314, + 0, + -56 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 314, + 0, + 56 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 315, + -55, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 315, + 0, + -55 + ] + }, + { + "field": 0, + "mask": 11, + "owner": "Y", + "position": [ + 315, + 0, + 55 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 316, + -54, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 316, + 0, + -54 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 316, + 0, + 54 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 317, + -53, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 317, + 0, + -53 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 317, + 0, + 53 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 318, + -52, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 318, + 0, + -52 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 318, + 0, + 52 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 319, + -51, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "Y", + "position": [ + 319, + 0, + -51 + ] + }, + { + "field": 0, + "mask": 9, + "owner": "Y", + "position": [ + 319, + 0, + 51 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 320, + -50, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "Y", + "position": [ + 320, + 0, + -50 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 320, + 0, + 50 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 321, + -49, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 321, + 0, + -49 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 321, + 0, + 49 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 322, + -48, + 0 + ] + }, + { + "field": 1, + "mask": 15, + "owner": "Y", + "position": [ + 322, + 0, + -48 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 322, + 0, + 48 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 323, + -47, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 323, + 0, + -47 + ] + }, + { + "field": 0, + "mask": 12, + "owner": "Y", + "position": [ + 323, + 0, + 47 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 324, + 0, + 46 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 325, + -45, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 325, + 0, + 45 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 326, + -44, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 326, + 0, + -44 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 326, + 0, + 44 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 327, + -43, + 0 + ] + }, + { + "field": 1, + "mask": 13, + "owner": "Y", + "position": [ + 327, + 0, + -43 + ] + }, + { + "field": 0, + "mask": 8, + "owner": "Y", + "position": [ + 327, + 0, + 43 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 328, + -42, + 0 + ] + }, + { + "field": 1, + "mask": 9, + "owner": "Y", + "position": [ + 328, + 0, + -42 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 328, + 0, + 42 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 329, + -41, + 0 + ] + }, + { + "field": 1, + "mask": 14, + "owner": "Y", + "position": [ + 329, + 0, + -41 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 329, + 0, + 41 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 330, + -40, + 0 + ] + }, + { + "field": 1, + "mask": 8, + "owner": "Y", + "position": [ + 330, + 0, + -40 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 331, + -39, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 331, + 0, + -39 + ] + }, + { + "field": 0, + "mask": 10, + "owner": "Y", + "position": [ + 331, + 0, + 39 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 332, + 0, + -38 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 332, + 0, + 38 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 333, + -37, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 333, + 0, + -37 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 334, + -36, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 334, + 0, + -36 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 334, + 0, + 36 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 335, + -35, + 0 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 335, + 0, + -35 + ] + }, + { + "field": 0, + "mask": 10, + "owner": "Y", + "position": [ + 335, + 0, + 35 + ] + }, + { + "field": 1, + "mask": 11, + "owner": "Y", + "position": [ + 336, + 0, + -34 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 336, + 0, + 34 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 337, + -33, + 0 + ] + }, + { + "field": 1, + "mask": 10, + "owner": "Y", + "position": [ + 337, + 0, + -33 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 337, + 0, + 33 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 338, + -32, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 338, + 0, + -32 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 338, + 0, + 32 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 339, + -31, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 339, + 0, + -31 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 340, + 0, + 30 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 341, + -29, + 0 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 341, + 0, + 29 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 342, + -28, + 0 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 342, + 0, + 28 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 343, + -27, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 343, + 0, + -27 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 343, + 0, + 27 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 344, + -26, + 0 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "Y", + "position": [ + 344, + 0, + 26 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 345, + -25, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 345, + 0, + -25 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "Y", + "position": [ + 345, + 0, + 25 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 346, + -24, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 346, + 0, + -24 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 346, + 0, + 24 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 347, + -23, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "Y", + "position": [ + 347, + 0, + -23 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 347, + 0, + 23 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 348, + -22, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 348, + 0, + -22 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 348, + 0, + 22 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 349, + -21, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 349, + 0, + -21 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 349, + 0, + 21 + ] + }, + { + "field": 2, + "mask": 4, + "owner": "Y", + "position": [ + 350, + -20, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 350, + 0, + -20 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 350, + 0, + 20 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 351, + -19, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 351, + 0, + -19 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 352, + -18, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 352, + 0, + 18 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 353, + -17, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 353, + 0, + -17 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 353, + 0, + 17 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 354, + -16, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 354, + 0, + -16 + ] + }, + { + "field": 2, + "mask": 6, + "owner": "Y", + "position": [ + 355, + -15, + 0 + ] + }, + { + "field": 1, + "mask": 5, + "owner": "Y", + "position": [ + 355, + 0, + -15 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 355, + 0, + 15 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 356, + -14, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 356, + 0, + -14 + ] + }, + { + "field": 0, + "mask": 7, + "owner": "Y", + "position": [ + 356, + 0, + 14 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 357, + -13, + 0 + ] + }, + { + "field": 1, + "mask": 4, + "owner": "Y", + "position": [ + 357, + 0, + -13 + ] + }, + { + "field": 0, + "mask": 5, + "owner": "Y", + "position": [ + 357, + 0, + 13 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 358, + -12, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 358, + 0, + -12 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 358, + 0, + 12 + ] + }, + { + "field": 2, + "mask": 7, + "owner": "Y", + "position": [ + 359, + -11, + 0 + ] + }, + { + "field": 1, + "mask": 7, + "owner": "Y", + "position": [ + 359, + 0, + -11 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 359, + 0, + 11 + ] + }, + { + "field": 2, + "mask": 5, + "owner": "Y", + "position": [ + 360, + -10, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 360, + 0, + -10 + ] + }, + { + "field": 0, + "mask": 6, + "owner": "Y", + "position": [ + 360, + 0, + 10 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 361, + -9, + 0 + ] + }, + { + "field": 1, + "mask": 6, + "owner": "Y", + "position": [ + 361, + 0, + -9 + ] + }, + { + "field": 0, + "mask": 4, + "owner": "Y", + "position": [ + 361, + 0, + 9 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 362, + -8, + 0 + ] + }, + { + "field": 1, + "mask": 1, + "owner": "Y", + "position": [ + 362, + 0, + -8 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 362, + 0, + 8 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 363, + -7, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 363, + 0, + -7 + ] + }, + { + "field": 0, + "mask": 3, + "owner": "Y", + "position": [ + 363, + 0, + 7 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 364, + -6, + 0 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 364, + 0, + 6 + ] + }, + { + "field": 2, + "mask": 2, + "owner": "Y", + "position": [ + 365, + -5, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 365, + 0, + -5 + ] + }, + { + "field": 0, + "mask": 1, + "owner": "Y", + "position": [ + 365, + 0, + 5 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 366, + -4, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 366, + 0, + -4 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 367, + -3, + 0 + ] + }, + { + "field": 1, + "mask": 3, + "owner": "Y", + "position": [ + 367, + 0, + -3 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 367, + 0, + 3 + ] + }, + { + "field": 2, + "mask": 1, + "owner": "Y", + "position": [ + 368, + -2, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 368, + 0, + -2 + ] + }, + { + "field": 0, + "mask": 2, + "owner": "Y", + "position": [ + 368, + 0, + 2 + ] + }, + { + "field": 2, + "mask": 3, + "owner": "Y", + "position": [ + 369, + -1, + 0 + ] + }, + { + "field": 1, + "mask": 2, + "owner": "Y", + "position": [ + 369, + 0, + -1 + ] + }, + { + "field": 1, + "mask": 32, + "owner": "Z", + "position": [ + 740, + -185, + 0 + ] + } + ] +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/checks-O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/checks-O.out new file mode 100644 index 000000000..a8913fbb9 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/checks-O.out @@ -0,0 +1,9 @@ +GEO1: 936 direct 3-D comparisons; all8 triples, n0..8, all13 strip entries: PASS +GEO2: triangular strip map has explicit inverse;512 arbitrary-state inverse identities: PASS +GEO3: exact pulse periods3600/2940, no transient; actualR residue253 for both: PASS +GEO4: all1479 old sources; initial depth3 extension, old banks and opposite pulse excluded: PASS +GEO5:32 actual x/u/mY/mR/p assignments match complete third-step formula; second-step unchanged: PASS +GEO6: native q3,R+3=(u,xu,u); earliest q3 prefix,R-3=(u,1,u): PASS +GEO7:96 site-times,576 field/complement candidates,32 assignments each: only old qY.D and q2.A retain rawp: PASS +GEO8: treating q3 as rawY or cleanY fails; early sample leak weight5/32 under inherited success law: PASS +SCOPE: exact depth3 private transport extension; no reset, no public shutter, no general geometry no-go. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/checks.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/checks.out new file mode 100644 index 000000000..a8913fbb9 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/checks.out @@ -0,0 +1,9 @@ +GEO1: 936 direct 3-D comparisons; all8 triples, n0..8, all13 strip entries: PASS +GEO2: triangular strip map has explicit inverse;512 arbitrary-state inverse identities: PASS +GEO3: exact pulse periods3600/2940, no transient; actualR residue253 for both: PASS +GEO4: all1479 old sources; initial depth3 extension, old banks and opposite pulse excluded: PASS +GEO5:32 actual x/u/mY/mR/p assignments match complete third-step formula; second-step unchanged: PASS +GEO6: native q3,R+3=(u,xu,u); earliest q3 prefix,R-3=(u,1,u): PASS +GEO7:96 site-times,576 field/complement candidates,32 assignments each: only old qY.D and q2.A retain rawp: PASS +GEO8: treating q3 as rawY or cleanY fails; early sample leak weight5/32 under inherited success law: PASS +SCOPE: exact depth3 private transport extension; no reset, no public shutter, no general geometry no-go. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/checks.py new file mode 100644 index 000000000..c4d4ee89d --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/checks.py @@ -0,0 +1,89 @@ +"""Exact actual-scale third outward step, standalone standard-library checks.""" +from pathlib import Path +from itertools import product +import json,random +from fractions import Fraction +from diamond_strip import direct,indices,initial,advance,inverse +from third_step import calc,orbit,upper,T,P,S,d,R +from inherited_core import hp,ball,native_second + +def need(ok,msg): + if not ok:raise RuntimeError(msg) + +count=0 +for q in product((0,1),repeat=3): + at=direct(q);st=initial(q,6) + for n in range(9): + for (ell,a,b),v in zip(indices(6),st): + need(v==at(n+ell,(a,b,n)),'direct 3D versus radial strip');count+=1 + st=advance(st,6) +print('GEO1: %d direct 3-D comparisons; all8 triples, n0..8, all13 strip entries: PASS'%count) +rng=random.Random(20261024) +for _ in range(256): + st=tuple(tuple(rng.randrange(2) for _ in range(3)) for __ in indices(6)) + need(inverse(advance(st,6),6)==st,'explicit inverse') + need(advance(inverse(st,6),6)==st,'inverse other direction') +print('GEO2: triangular strip map has explicit inverse;512 arbitrary-state inverse identities: PASS') +for u,per in ((0,3600),(1,2940)): + st=orbit((u,0,1));need(len(st)==per and len(set(st))==per,'minimal orbit period') + need(advance(st[-1],6)==st[0],'orbit closes') + need(R%per==253,'actual giant remainder') +print('GEO3: exact pulse periods3600/2940, no transient; actualR residue253 for both: PASS') + +geo=json.loads((Path(__file__).parent/'SOURCE-GEOMETRY.json').read_text()) +need(len(geo['sources'])==1479,'source export') +q3=(0,S,d+3);rad=R+3 +D=lambda a,b:sum(abs(x-y) for x,y in zip(a,b)) +arr=[] +for src in geo['sources']: + pos=tuple(src['position']);dd=D(pos,q3) + need(dd>=rad,'old source inside extended cold cone') + if dd==rad:arr.append((pos,src['field'],src['mask'])) +need(arr==[((0,0,0),1,64)],'old source boundary ownership') +controls=[(0,0,0),(0,2*S,0),(T,P+S,0),(-T,P+S,0)] +up=(0,S,S+2*d) +need(all(D(c,q3)==rad and D(c,up)==2*R for c in controls),'lower/upper geometry') +need(D((0,0,0),q3)>rad-1,'old previous input excluded') +need(D((0,S,-S-2*d),q3)>rad,'opposite pulse excluded') +# Explicit general family slacks are linear in the positive index. +for k in (1,2,3,d,P,R): + for x0,y0,z0 in ((0,S,0),(T,P,0),(-T,P,0),(4*T,P,0)): + need(D((x0,y0+S+k,z0),q3)>rad,'selector bank outside') + for f in ((0,-k,0),(0,0,-9*T-k)): + need(D(f,q3)>rad,'older public bank outside') +need(11*R-3>rad,'remote-bank x exclusion') +print('GEO4: all1479 old sources; initial depth3 extension, old banks and opposite pulse excluded: PASS') + +rows={} +for x,u,my,mr,p in product((0,1),repeat=5): + out,rec=calc(x,u,my,mr,p) + expected=(u|(x^p),x^p^(u&p)^(u&x&p),u&(x^p)) + need(out==expected,'actual third-step diagnostic formula') + oldout,oldrec=native_second(T,P,d,x,my,mr,u,p) + need(rec[2][(0,0,2)]==oldout,'second-step preserved') + rows[x,u,my,mr,p]=rec +print('GEO5:32 actual x/u/mY/mR/p assignments match complete third-step formula; second-step unchanged: PASS') +for x,u,my,mr in product((0,1),repeat=4): + out,_=calc(x,u,my,mr) + need(out==(u,x&u,u),'native third-step formula') + need(hp((u,0,1),R-3)==(u,1,u),'early informative prefix') +print('GEO6: native q3,R+3=(u,xu,u); earliest q3 prefix,R-3=(u,1,u): PASS') + +# Strict raw operand or its complement over the entire retained shrinking diamond. +found=[];sites=0 +for tick,rec in rows[0,0,0,0,0].items(): + for v in rec: + sites+=1 + for field in range(3): + for c in (0,1): + if all(row[tick][v][field]==p^c for (x,u,my,mr,p),row in rows.items()): + found.append((tick,v,field,c)) +need(sites==96,'diamond cardinality') +need(found==[(0,(0,0,0),2,0),(2,(0,0,2),0,0)],'exact raw-operand census') +print('GEO7:96 site-times,576 field/complement candidates,32 assignments each: only old qY.D and q2.A retain rawp: PASS') +# Handpicked countercontrol: native same-y histories can have different q3 outputs. +need(calc(0,0)[0]!=calc(1,1)[0],'third step not y-only') +need(calc(0,0,p=1)[0][0]!=1 or calc(1,0,p=1)[0][0]!=1,'rawA is not generallyp') +need(Fraction(5,16)*Fraction(1,2)==Fraction(5,32),'prefix leak weight inherited success law') +print('GEO8: treating q3 as rawY or cleanY fails; early sample leak weight5/32 under inherited success law: PASS') +print('SCOPE: exact depth3 private transport extension; no reset, no public shutter, no general geometry no-go.') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/diamond_strip.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/diamond_strip.py new file mode 100644 index 000000000..11554e81b --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/diamond_strip.py @@ -0,0 +1,68 @@ +"""Exact radial-strip recurrence for a lone pulse in the native cubic update.""" +from functools import lru_cache +from itertools import product +Z=(0,0,0) +def H(v):a,b,d=v;return b,d,a^(b&d) +def X(*vs):return tuple(sum(v[i] for v in vs)%2 for i in range(3)) +@lru_cache(None) +def indices(L,maxl=None): + if maxl is None:maxl=L + return tuple((l,a,b) for l in range(maxl+1) for a in range(l+1) for b in range(a+1) if a+b<=l and a+b+l<=L and (l-a-b)%2==0) + +def direct(q): + @lru_cache(None) + def at(t,p): + if t<0 or sum(map(abs,p))>t:return Z + if t==0:return q if p==(0,0,0) else Z + return X(at(t-2,p),H(X(*(at(t-1,tuple(p[i]+(s if i==j else 0) for i in range(3))) for j in range(3) for s in (-1,1))))) + return at + +def initial(q,L): + at=direct(q) + return tuple(at(l,(a,b,0)) for l,a,b in indices(L)) + +def advance(state,L,maxl=None): + keys=indices(L,maxl) + old=dict(zip(keys,state));new={};future_layers={} + def val(tab,l,a,b): + a,b=sorted((abs(a),abs(b)),reverse=True) + return tab.get((l,a,b),Z) + for l,a,b in keys: + future=Z + if l>=2: + # Future lower-layer strip is determined before this layer. + if l not in future_layers: + smaller_keys=indices(L,l-2) + smaller=advance(tuple(new[k] for k in smaller_keys),L,l-2) + future_layers[l]=dict(zip(smaller_keys,smaller)) + future=future_layers[l].get((l-2,a,b),Z) + trans=X(val(new,l-1,a-1,b),val(new,l-1,a+1,b),val(new,l-1,a,b-1),val(new,l-1,a,b+1)) + new[l,a,b]=X(val(new,l-2,a,b),H(X(old[l,a,b],future,trans))) + return tuple(new[k] for k in keys) + +if __name__=='__main__': + for L in (4,6): + print('L',L,'indices',len(indices(L)),flush=True) + for u in (0,1): + q=(u,0,1);s=initial(q,L);start=s + for n in range(1,200001): + s=advance(s,L) + if s==start:break + print('u',u,'period',n,'returned',s==start,flush=True) + +def inverse(newstate,L,maxl=None): + keys=indices(L,maxl);new=dict(zip(keys,newstate));old={};future_layers={} + def val(tab,l,a,b): + a,b=sorted((abs(a),abs(b)),reverse=True) + return tab.get((l,a,b),Z) + def ih(v):a,b,d=v;return d^(a&b),a,b + for l,a,b in keys: + future=Z + if l>=2: + if l not in future_layers: + kk=indices(L,l-2) + future_layers[l]=dict(zip(kk,advance(tuple(new[k] for k in kk),L,l-2))) + future=future_layers[l].get((l-2,a,b),Z) + trans=X(val(new,l-1,a-1,b),val(new,l-1,a+1,b),val(new,l-1,a,b-1),val(new,l-1,a,b+1)) + old[l,a,b]=X(ih(X(new[l,a,b],val(new,l-2,a,b))),future,trans) + return tuple(old[k] for k in keys) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/inherited_core.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/inherited_core.py new file mode 100644 index 000000000..b1b8038b2 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/inherited_core.py @@ -0,0 +1,92 @@ +"""Exact single-pulse bounded-lag recurrence and local late-collision diamond.""" +from functools import lru_cache +from itertools import product +ZERO=(0,0,0) +def H(v): + a,b,d=v;return b,d,a^(b&d) +def X(*vs):return tuple(sum(v[i] for v in vs)%2 for i in range(3)) +def hp(v,n): + for _ in range(n%12):v=H(v) + return v + +def initial(q): + f=q;z=H(q);l=H(z);j=X(H(q),H(X(q,hp(q,2))));g=q + return 0,f,z,l,j,g + +def advance(q,state): + phase,f,z,l,j,g=state;n=phase+1 + fn=X(hp(q,n),H(X(f,hp(q,n+1)))) + zn=H(X(z,hp(q,n)));ln=H(X(l,zn)) + zfuture=H(X(zn,hp(q,n+1))) + jn=X(zn,H(X(j,zfuture,fn,ln))) + ffuture=X(hp(q,n+1),H(X(fn,hp(q,n+2)))) + gn=X(fn,H(X(g,ffuture))) + return n%12,fn,zn,ln,jn,gn + +@lru_cache(None) +def orbit(q): + states=[];seen={};v=initial(q) + while v not in seen: + seen[v]=len(states);states.append(v);v=advance(q,v) + if len(states)>500000:raise RuntimeError('orbit limit') + return tuple(states),seen[v],len(states)-seen[v] + +def state(q,n): + states,start,period=orbit(q) + if n>=len(states):n=start+(n-start)%period + return states[n] + +def upper(q,t,pos): + a,b,n=map(abs,pos);a,b=sorted((a,b),reverse=True) + lag=t-a-b-n + if lag<0 or lag%2:return ZERO + f,z,l,j,g=state(q,n)[1:] + if (a,b,lag)==(0,0,0):return hp(q,n) + if (a,b,lag)==(1,0,0):return z + if (a,b,lag)==(2,0,0):return l + if (a,b,lag)==(1,1,0):return ZERO + if (a,b,lag)==(0,0,2):return f + if (a,b,lag)==(1,0,2):return j + if (a,b,lag)==(0,0,4):return g + raise RuntimeError(('uncovered pulse displacement',a,b,n,lag)) + +def odd(parts): + seen=0 + for p in parts: + if seen&p:return 0 + seen|=p + return 1 + +def ball(r,center): + for a in range(-r,r+1): + for b in range(-r+abs(a),r-abs(a)+1): + for c in range(-r+abs(a)+abs(b),r-abs(a)-abs(b)+1): + yield center[0]+a,center[1]+b,center[2]+c + +def native_second(T,P,d,x,my,mr,u,p=None): + S=T+P;R=S+d;q=(u,0,1);end=(0,0,2) + # Coordinates relative qY. Every lower source is on end's R+2 boundary. + controls=[((0,-S,-d),x),((0,S,-d),my^mr),((T,P,-d),my),((-T,P,-d),mr)] + def base(t,v): + val=upper(q,t,(v[0],v[1],R-v[2])) + for loc,bit in controls: + dist=tuple(abs(a-b) for a,b in zip(v,loc)) + if sum(dist)<=t: + if sum(dist)!=t:raise RuntimeError('lower source already behind front') + if odd(dist):val=X(val,hp((0,bit,0),t)) + return val + old={v:base(R-2,v) for v in ball(2,end)} + now={v:base(R-1,v) for v in ball(3,end)} + records={} + for tick in range(R,R+3): + nxt={} + for v in ball(R+2-tick,end): + neighbours=[] + for axis in range(3): + for sign in (-1,1): + w=list(v);w[axis]+=sign;neighbours.append(now[tuple(w)]) + nxt[v]=X(old[v],H(X(*neighbours))) + if tick==R and p is not None:nxt[(0,0,0)]=(x,1,p) + records[tick-R]=dict(nxt) + old,now=now,nxt + return now[end],records diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/third_step.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/third_step.py new file mode 100644 index 000000000..3b888e1fd --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/new_geometry/third_step.py @@ -0,0 +1,49 @@ +from functools import lru_cache +from itertools import product +from diamond_strip import H,X,Z,initial,advance,indices +from inherited_core import hp,odd,ball +T=185;P=12*840**T;S=T+P;d=68;R=S+d +@lru_cache(None) +def orbit(q): + s=initial(q,6);start=s;states=[] + while True: + states.append(s);s=advance(s,6) + if s==start:return tuple(states) + if len(states)>10000:raise RuntimeError('orbit bound') + +def upper(q,t,v): + a,b,n=map(abs,v);a,b=sorted((a,b),reverse=True);l=t-n + if l<0 or a+b>l or (l-a-b)%2:return Z + if (l,a,b) not in indices(6):raise RuntimeError(('uncovered',l,a,b)) + states=orbit(q);return states[n%len(states)][indices(6).index((l,a,b))] + +def calc(x,u,my=0,mr=0,p=None): + end=(0,0,3) + controls=[((0,-S,-d),x),((0,S,-d),my^mr),((T,P,-d),my),((-T,P,-d),mr)] + def base(t,v): + val=upper((u,0,1),t,(v[0],v[1],R-v[2])) + for loc,bit in controls: + ds=tuple(abs(a-b) for a,b in zip(v,loc)) + if sum(ds)<=t: + if sum(ds)!=t:raise RuntimeError('behind lowerfront') + if odd(ds):val=X(val,hp((0,bit,0),t)) + return val + old={v:base(R-2,v) for v in ball(3,end)} + now={v:base(R-1,v) for v in ball(4,end)} + records={} + for tick in range(R,R+4): + nxt={} + for v in ball(R+3-tick,end): + ns=[] + for axis in range(3): + for sign in (-1,1): + w=list(v);w[axis]+=sign;ns.append(now[tuple(w)]) + nxt[v]=X(old[v],H(X(*ns))) + if tick==R and p is not None:nxt[(0,0,0)]=(x,1,p) + records[tick-R]=nxt + old,now=now,nxt + return now[end],records +if __name__=='__main__': + for u in (0,1):print('period',u,len(orbit((u,0,1))),'phaseR',R%len(orbit((u,0,1)))) + for x,u in product((0,1),repeat=2):print('native',x,u,calc(x,u)[0]) + for x,u,p in product((0,1),repeat=3):print('diagnostic',x,u,p,calc(x,u,p=p)[0]) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/INPUT-HASHES.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/INPUT-HASHES.json new file mode 100644 index 000000000..b6d9334f6 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/INPUT-HASHES.json @@ -0,0 +1,20 @@ +{ + "continuation/REPORT.md": "d069573516587d7cf93662fcbadc077ccb9ec2b116982225aa5330f9e0f418e7", + "continuation/core.py": "b16155925700321abdb6f59260bc510e8e6c1d039f30c9eadc0c4320de89c941", + "continuation/model.py": "f2ead0346c31ecff3d05f097f7aacd83cb371c427489a5f2941e77a89de32c6a", + "continuation/symbolic.py": "fd5a9b6ac57c3ccb12979d3afad3114ef844def604103b00e25c7591a328adf0", + "continuation/patterns.json": "af72ee6e6b1f020d5234a4663308df8ae3cd9b5245b929850ab3322013f91a82", + "parallel_v3/aux_routing/checks.py": "4ebfb57e55812c7c1e8fa82e60d9fc65ef020146e2b7cd38c5c5dfc82b531b64", + "parallel_v3/new_geometry/diamond_strip.py": "968af8d44b0767cca4f8d0de2218adc8c99b39016f0b7396b214c2e0b2c63626", + "parallel_v3/new_geometry/third_step.py": "81936562f6e9f9dabadbaa4e19a9cd37460c077503063a898f3605a62e27861f", + "parallel_v3/integration/tagged_contract.py": "fbaea23d1deccc017d14fd0fa27c9eeb6dd9b315d334e7760c0ee2b9ec8141c9", + "parallel_v3/integration/REPORT.md": "ce9b61ea45ab496027fa52e42e600e2813b958280dd4b4845c2d000789d8b068", + "parallel_v3/direct_reset/REPORT.md": "2a20c51226a2ffc229f1806b7876432300aba92c026a1c38a7b0866ad199c2cc", + "parallel_v3/direct_reset/checks.py": "8543af0ac25da122c9a6aa6b72ab491d5a850ad370fd83bb1293998389fd8827", + "parallel_v3/direct_reset/herald.json": "406befa2c8d1f663856a78ca6cb632e9c61d1233b02a9d532c7cb43d6261ce64", + "parallel_v3/direct_reset/compiler.py": "c0057e953656e26493e9a92b1cd8d4795a77c95def6ed97480e89f541581daa3", + "parallel_v3/direct_reset/derive_herald.py": "de4e788e9f2ad3eaff80bbf4fd9906cf8e0446802b47b8b2add6ac8ab09a2026", + "parallel_v3/aux_routing/REPORT.md": "dca8b9aeca96aec01e4c56c23964fdadacb3314b31198873f6b7d68550a7c3b7", + "parallel_v3/history_control/REPORT.md": "aad8d9adf833784f6f32f74528df0eeb1dd71424bfb95a073a2521dec57719ea", + "parallel_v3/new_geometry/REPORT.md": "61483ff9fc4b8b57ddfa7e851db9f27cc46b179518849e8d921ce6c5dc8a3ffb" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/REPORT.md new file mode 100644 index 000000000..acc47eb33 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/REPORT.md @@ -0,0 +1,325 @@ +# Independent review of v2 and the native history sidecar + +24 October 2026. Reviewer thread of the authorized parallel native-Y continuation. +Read-only on prior artifacts and the repository; files written only in this review +folder. No premise adoption or certification. Broader transport-proof review stays +open. + +## Verdict + +**ACCEPT within scope** the two total reversible interface maps and the v2 +obstruction for the relaxed twenty-entry boundary-control family. An independent +implementation derives the reported full output formula and the stronger +pointwise invariant `y=1 => A=1 and B XOR D=x`. + +**ACCEPT within scope** the newly found native history sidecar: at relative site +`s=(0,-1,2)` and tick `R+1`, its full triple is `(0,1 XOR y,x)`. It has a blank +prefix through R under the retained ready-cone model. This locates an actual +native x register near the endpoint; it does not yet implement the normalization +gate or make an earlier-time register a freely accessible simultaneous control. + +No blocker was found in these narrowly stated results. They are not a native Y +reset, a complete composition proof, or a closure of the general transport audit. + +## 1. Independent check method and limits + +`checks.py` imports no author code and reads no author data. It uses: + +- a literal eight-element H permutation table with a different scalar encoding; +- a separately written near-front recurrence implementation and explicit orbit + closure, including the phase; +- 560 comparisons to memoized direct three-dimensional native recursion; +- a popcount/factorial-valuation test for multinomial parity; +- a memoized backward polynomial evaluation of the last native stencil, rather + than the author's forward shrinking-ball or packed truth-table loop; +- variable names tied to geometric sites, with no author source-index ordering; +- a separate set-based Boolean-polynomial representation. + +The shared mathematical starting point remains the previously accepted +single-pulse recurrence and original source reduction. The reviewer checked the +local recurrence against the native stencil and direct tests, but did not rerun +the original compiler, all 1,479 source entries, reservoir independence proof, +or every baseline artifact. No claim to replace that wider review is made. + +The actual pulse periods are 720 and 84; the huge R has residues 253 and 1. These +are exact finite-state evaluations, not a simulation of the astronomical number +of physical ticks. + +## 2. Interface maps + +The reported maps F and G and their explicit inverses are permutations on all +sixteen bit strings. On the native input they have the claimed outputs: + + F(y,y,1 XOR xy,0)=(0,0,y,xy), + G(x,y,y,1 XOR xy)=(x,0,0,y). + +Recycling F's auxiliary bit by XOR with xy is valid when x and y remain retained +physical controls. It does not erase unknown information from the global state. +The claim is only logical reversibility; public availability of a historical +record by itself does not implement native storage or control. + +## 3. Scope of the twenty-entry relaxation + +A new source `(a,b,z)`, z in {1,2}, on the radius-(R+2) boundary about q2=(0,0,2) +satisfies `|a|+|b|=R+z`. Its distance to qY is `R+2z`, and to the upper pulse +`(0,0,R)` is 2R. Thus it neither changes qY at R nor meets the upper pulse before +R. Before the collision all relevant lower first arrivals rotate the same pure +field, so their mutual superposition at first arrival is valid. + +For a site v in the radius-two R-2 slice, triangle inequality gives +`dist(source,v)>=R`, excluding any new contribution. For the radius-three R-1 +slice, arrival requires equality in both triangle bounds: v lies three steps +along a shortest path from q2 toward the source. Since source z is 1 or 2, the +only possible vertical coordinates are v_z=1 or 2. Hence the support is contained +in `z=1, |a|+|b|=2` or `z=2, |a|+|b|=3`, exactly the claimed twenty entries. +At the actual phase R-1, initial B pulses still occupy B. + +This proves containment for every source position in the stated planes; it is +not inferred from a finite scan. The independent checker additionally enumerates +2,640 complete source positions for modest radii as a diagnostic of this geometric +argument. Allowing all twenty entries independently is a safe relaxation for a +negative result; it requires no proof that all settings are compatible with the +full old apparatus. + +## 4. Exact polynomial and obstruction + +Define k as the XOR of the four axial controls on z=1, and l as the XOR of the +twelve controls on z=2. The independent stencil yields + + A=y, + B=y XOR uk XOR l, + D=1 XOR xy XOR u(1 XOR x)k XOR yl, + y=x XOR u. + +All old selector-mask variables cancel. Substitution `u=1 XOR x` gives +`A=1` and `B XOR D=x`. This is pointwise in the controls, so history-dependent +or randomized settings do not remove the distinction between x histories at +y=1. No Y-only full-triple encoding exists in this class. This includes the +suggested canonical and fixed-extra-field codes. + +It remains permissible for a later instrument to consume y while carrying x +metadata: x was already public. The obstruction does not make that metadata a +privacy leak and does not exclude the direct-reset avenue. + +## 5. Native history sidecar + +The same independent stencil gives at s=(0,-1,2), tick R+1: + + U_(R+1)(s)=(0,1 XOR y,x). + +Every original lower source is at least R+1 away. The upper source has distance +R-1, but its transverse first-arrival value there is zero at the actual phase; +the R slice is zero by parity. Earlier slices are outside its light cone. +Consequently this entire sidecar prefix through R is blank, within the inherited +ready-cone assumptions. Its later appearance need not reveal the future Y sample +before the first instrument's R boundary. + +A diagnostic replacement of qY's D field by p at tick R does not affect the +sidecar at R+1: their distance is three. The sidecar still contains the native +`1 XOR y`, not `1 XOR p`. This is not a diagnostic operand route for its B field. +Its D field is nevertheless the genuine earlier x, and q2's A at R+2 remains p. +Both facts are verified symbolically for every selector-mask value. + +The sidecar occupies the earlier slice of the phase state at R+2, at a neighboring +spatial site. The native update does not permit arbitrary reads or gates between +such registers. A construction using it must prove the actual stencil, timing, +side fields, full prefix and any additional initial resources. + +## 6. Shared acceptance conditions for the four avenues + +A combined handoff should state separately which of these are met: + +1. The actual incoming operand is used; diagnostic replacements are tests, not + native operations or a license to reload the input. +2. Every clean cell, prior correlation and source is specified at the common + initial time. A conditional clean-input gadget is not automatically embedded + in the actual populated q2 neighborhood. +3. Retained information remains in the reversible global phase state. Known + public history is distinguished from secret input or future reset samples. +4. Prefix records are checked at their declared times, not only terminal bits. + A new readable site cannot silently release u before the first boundary. +5. New sources and readiness pins preserve existing fair frontier resources; + enlarged observation windows need a joint rather than per-port proof. +6. A reset claim includes fresh conditional resources, native herald behavior, + explicit failures, the full outgoing carrier, and history-conditioned law. +7. Terminal X alone is insufficient to validate 5:3:2 Y calibration. Retain the + terminal R diagnostic and full outgoing-distribution test. +8. Cross-avenue integration requires one compatible initial prior, geometry and + timeline. Algebraic identities from separate apparatuses cannot be composed + by assumption. + +## Replay + + python3 parallel_v3/review/checks.py + python3 -O parallel_v3/review/checks.py + python3 parallel_v3/review/sidecar_check.py + python3 -O parallel_v3/review/sidecar_check.py + +Both scripts use the standard library only, write no files and make no network +calls. `sidecar_check.py` imports only this review's own checker. Normal and +optimized outputs are retained alongside the scripts. INPUT-HASHES.json records +reviewed author bytes; these hashes do not assert independent verification of +every statement in those inputs. + +## 7. Additional review: auxiliary extractor and attempted splice + +**ACCEPT conditional native gadget.** Independently computed three-dimensional +causal recursion confirms the five-tick gadget with Q at the origin and fixed +current sources `eB` at `(0,1,-1)`, `111` at `(1,1,-2)`, and `eB` at `(8,2,0)`. +The full output at `(3,2,0)`, tick 5 is `(0,A,0)` for all eight arbitrary +Q=(A,B,D), and the target prefix is blank. Thus this gadget extracts actual A, +not only a B field that agrees with A on the original three-code domain. +All sources lie on the target's radius-five first-arrival boundary. + +The author additionally checks a complete periodic lattice and inverse; the +reviewer's own checker verifies the finite causal law independently rather than +relying on that test. The native update is globally invertible, so extraction +into one cell does not erase the remaining input information globally. + +**Actual splice remains blocked.** The clean previous slice required by this +gadget is not supplied by translating it to q2 at R+2. At q2+e_x, time R+1, the +actual whole triple is `(0,1 XOR u XOR mY,mY)`, generally nonzero. Independent +symbolic dynamics verifies this value. Independently inserting old value eB at +the corresponding required-blank site changes the gadget output for Q=001 from +000 to 010. This is a genuine dirty-socket counterexample. It does not rule out +an adjusted gadget that explicitly accounts for the populated phase. + +## 8. Additional review: direct-reset building block and information law + +**ACCEPT conditional native mixer.** For two initially separated sources Q and +`(a,0,0)` at axial separation 2L and a receiver midway, first arrival at time L +with L a multiple of 12 gives + + H(H^-1(Q) XOR H^-1(a,0,0)) = (A XOR a,B,D XOR aB). + +The two-ended arrangement at receivers ±L with seeds at ±2L has no cross-seed +arrival before L. Independent direct three-dimensional recursion checks both +full output triples and their blank prefixes for all 32 Q/a/b choices at L=12. +The identity supplies the general first-arrival case for L=0 mod12; the clean +cones and localized initial input remain explicit hypotheses. + +**ACCEPT only as a candidate tagged information contract.** A separate reviewer +checker enumerates all four x,y histories and all 64 second-stage seed states, +then all 2,048 composed seed states for each earlier x. It reproduces the 5:3:2 +conditional plane weights, success 5/16, failure 11/16, and composed success +25/256 with every failed branch retained. These are abstract supplied-resource +composition calculations, not an integrated native X→Y run. + +**Unchanged strict common raw-carrier criterion is not satisfied.** On y=1, +whole raw supports for x=0 and x=1 are disjoint, so conditional TV is one. The +encoded target signs have the same law, but the raw carrier still encodes the +old history. On each complete X/R output cell at y=1, `A XOR D=x`. No new secret +is leaked by this old public tag, but a history-independent common raw encoding +has not been achieved. The parent's `integration/REPORT.md` explicitly preserves +this failure and adopts no encoding relaxation; that wording is consistent. + +The new herald compiler and its full source-layout realization are outside the +review completed in this section unless a later addendum names their exact +reviewed scope. No compiler acceptance should be inferred from the mixer or +probability-law checks. + +## 9. Additional review: third outward step + +**ACCEPT local actual-parameter formula under the inherited source reduction and +specified extended ready cone.** The reviewer wrote a separate signed-transverse +strip implementation. It stores all signed (a,b) positions instead of identifying +symmetric representatives and uses an increasing-lag, increasing-lookahead sweep +instead of the author's recursive lower-strip advance. + +For `V_n(l,a,b)=U_(n+l)(a,b,n)`, direct substitution gives + + V_n(l)=V_n(l-2) XOR H(V_(n-1)(l) XOR V_(n+1)(l-2) + XOR four transverse V_n(l-1) terms). + +The future lower-lag terms are determined in earlier lag stages. The retained +region `l+|a|+|b|<=6` is closed under these dependencies: transverse motion changes +lag by -1 and distance by at most +1; future lookahead consumes two units of +lag budget. Zero values outside the first-arrival cone or wrong parity are +explicit. This yields an exact finite recurrence, not a large-n extrapolation. + +The independent strip agrees with 792 direct-native values at small n, reproduces +full orbit returns of 3600 and 2940 for the two upper pulses, and obtains actual +R remainder 253 in each. A separate polynomial evaluation of the four native +updates then reproduces, for every selector-mask assignment, + + U_(R+3)(qY+3e_z)=(u,xu,u). + +With the diagnostic replacement qY.D=p at time R, it also reproduces + + (u OR (x XOR p), x XOR p XOR up XOR uxp, u(x XOR p)). + +The native triple is not itself a Y-only carrier: when u=0, both x values give +000 despite different y=x XOR u. This third outward step does not retain a raw +Y operand by itself. History-assisted decoding remains a separate construction. +The review verifies the new strip and local formula, not an independent audit +of every global source/readiness/frontier extension used to embed it. + +## Additional replay commands + + python3 parallel_v3/review/gadgets_check.py + python3 -O parallel_v3/review/gadgets_check.py + python3 parallel_v3/review/contract_check.py + python3 -O parallel_v3/review/contract_check.py + python3 parallel_v3/review/geometry_check.py + python3 -O parallel_v3/review/geometry_check.py + +All scripts are standalone within this review folder and standard-library-only. +Imports between the review scripts print earlier checks again; this is intentional +and is not counted as additional independent evidence. Retained outputs identify +exactly which checks ran. + +## 10. Addendum: source-defined native herald and standalone geometry + +**ACCEPT the concrete source-defined herald under its stated prepared-cone +hypotheses.** `herald_check.py` does not import the compiler and does not execute +or compare against the compiled register word. It reads the actual 7,832 affine +source entries and independently checks their wing positions, fields, source +uniqueness, six-bit affine masks, and rank-five seed dependence. + +For tick k at axis position x=L-k-1, a source on one wing contributes from +initial index x+j precisely when the binomial coefficient C(k,j) is odd. Lucas +parity means j ranges over the bit subsets of k. The reviewer directly XORs +those source masks, rotates their pure field by H^k, and applies the actual H +axis update. This uses shortest-path sums rather than the author's successive +Pascal-row recurrence. The source-wing geometry keeps differently occupied +fields separated until the axis: opposing y wings meet only on y=0, and the z +wing meets the y wings only on the axis. All are first arrivals, so the old local +and unarrived terms vanish as required. + +The full 2,700-step calculation on all 32 seed assignments produces exactly +`(0,G,0)` with acceptance counts 5,3,2,0 and success 10/32. The independent checker +also verifies every listed source against all five proposed receivers: intended +sources are on the appropriate radius-L boundary, every foreign source is +outside, and an arbitrary previous input at the origin cannot reach any endpoint. +The pure-D Z field returns unchanged since L is a multiple of 12. Blank prefixes +follow from the stated initially empty interior cones and boundary-only sources. + +This verifies the concrete herald/source geometry without requiring trust in +the compiler's implementation. It is not a proof of that compiler for arbitrary +programs, nor a complete simulation of the large three-dimensional lattice. +Most importantly, the geometry belongs to the standalone apparatus with a +localized initial Q; it does not supply the late-q2 socket or old-frontier +compatibility required by the actual continuation. + + python3 parallel_v3/review/herald_check.py + python3 -O parallel_v3/review/herald_check.py + +This final checker reads the sibling `direct_reset/herald.json`; the other five +review scripts are self-contained within the review folder. None writes files +or makes network calls. Both normal and optimized outputs are retained. + +## Final review matrix + +| Claim | Review result | Explicit boundary | +|---|---|---| +| v2 reversible interface F/G | ACCEPT | Abstract gates/control access | +| v2 twenty-entry obstruction | ACCEPT | Stated plane-source family only | +| Native x sidecar at R+1 | ACCEPT | Earlier-slice value, no gate integration | +| Five-tick A extractor | ACCEPT conditional native gadget | Clean initial socket; actual splice counterexample | +| Direct native mixers/fanout | ACCEPT conditional native gadget | Standalone first-arrival cones | +| Concrete 2700-tick herald/source geometry | ACCEPT conditional native construction | Specific source list, no general compiler certification | +| Tagged full-carrier law and explicit failures | ACCEPT candidate information contract | Not unchanged common raw-carrier criterion | +| Strict common raw-carrier independence | FAIL for proposed tagged candidate | Conditional TV1 across x at y=1 | +| Third outward actual-parameter formula | ACCEPT local recurrence calculation | Inherited source reduction/extended cone assumed | +| Complete native reusable X→Y reset | OPEN | Actual two-slice integration, common carrier and joint records | +| General transport-proof audit | OPEN | Not replaced by these scoped checks | diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/SHA256SUMS new file mode 100644 index 000000000..b902cd250 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/SHA256SUMS @@ -0,0 +1,20 @@ +1ed4496982945fd53b2a9ca77c1cbe892cbdbba08f92aded85ae2b0c7964ccb2 INPUT-HASHES.json +b2ac217886731e8fd40b66690e94bb887fc0d8ce119a84cdf5798aa0ad0e8d89 REPORT.md +e11bfdb46a836cec931d965ad28f3cde5b896cff2f8decc71189c7b93f0d0078 checks-O.out +e11bfdb46a836cec931d965ad28f3cde5b896cff2f8decc71189c7b93f0d0078 checks.out +224049deb6031c2af01e4583e83a12f1f5963ed737cd297da554c2a163be23ca checks.py +67db1d5998fe04683d5e0de0dd1edae229ab6fafb487281fcd48bb82c9ca7888 contract_check-O.out +67db1d5998fe04683d5e0de0dd1edae229ab6fafb487281fcd48bb82c9ca7888 contract_check.out +805ad151ab13aba17f5951b50c16fab430bd633775a36d5d2d8d2fbf2dcfce56 contract_check.py +f8baaccaba97f78a8b083f09704ba23cb760b78ff0a87382d3e8ca26484539cc gadgets_check-O.out +f8baaccaba97f78a8b083f09704ba23cb760b78ff0a87382d3e8ca26484539cc gadgets_check.out +e42da134e4f08a8110e4496d59117544c15bc88b2dffa3cde1dd758295639aa5 gadgets_check.py +3c22c79b2a19ad6ad83f8c73686aceaee141f6d19bb70a5985de7baf46e4803e geometry_check-O.out +3c22c79b2a19ad6ad83f8c73686aceaee141f6d19bb70a5985de7baf46e4803e geometry_check.out +d01728490fc72ea3b904b87f8424012027ea220159c8275ad608a1002f9beea8 geometry_check.py +3d426e5b740443201221da929d463d1fecaae8576a5e9ee629d7c33236c9aa10 herald_check-O.out +3d426e5b740443201221da929d463d1fecaae8576a5e9ee629d7c33236c9aa10 herald_check.out +5dab894f18754ef0dfd6c05dcd2e44a9cb5638af6df56643f8da39242d613870 herald_check.py +f6c155b9c76099ed49257d07b8dd7382f0b526ea07e0229e856b3c0b34cda990 sidecar_check-O.out +f6c155b9c76099ed49257d07b8dd7382f0b526ea07e0229e856b3c0b34cda990 sidecar_check.out +71106c40a86d56fba32aa8ec6f72c5bb3e1d6b6752b7d07fdc7a10d270b87f96 sidecar_check.py diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/checks-O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/checks-O.out new file mode 100644 index 000000000..f19e5b749 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/checks-O.out @@ -0,0 +1,6 @@ +R1: 560 independent direct-native comparisons across all pulse triples: PASS +R2: independent actual-pulse orbit periods720/84 and large-integer phases: PASS +R3: independent memoized polynomial stencil derives full20-control formula and y=1 => A=1,B XOR D=x: PASS +R4: geometric support argument checked on 2640 entire plane-boundary source positions; symbolic triangle proof in report: PASS +R5: both total interface permutations, inverses, native restriction and clean-workspace claim: PASS +SCOPE: ACCEPT v2 local algebra and relaxed-plane obstruction; native integrated reset and wider transport proof remain OPEN. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/checks.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/checks.out new file mode 100644 index 000000000..f19e5b749 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/checks.out @@ -0,0 +1,6 @@ +R1: 560 independent direct-native comparisons across all pulse triples: PASS +R2: independent actual-pulse orbit periods720/84 and large-integer phases: PASS +R3: independent memoized polynomial stencil derives full20-control formula and y=1 => A=1,B XOR D=x: PASS +R4: geometric support argument checked on 2640 entire plane-boundary source positions; symbolic triangle proof in report: PASS +R5: both total interface permutations, inverses, native restriction and clean-workspace claim: PASS +SCOPE: ACCEPT v2 local algebra and relaxed-plane obstruction; native integrated reset and wider transport proof remain OPEN. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/checks.py new file mode 100644 index 000000000..4794a27e6 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/checks.py @@ -0,0 +1,174 @@ +"""Independent v2 interface/local-stencil audit. No author imports, no I/O writes.""" +from functools import lru_cache +from itertools import product +from collections import Counter + + +def need(ok, label): + if not ok: + raise RuntimeError(label) + +# Scalar bit0=A, bit1=B, bit2=D. A literal permutation table avoids shared H code. +H = (0, 4, 1, 5, 2, 6, 7, 3) + +def hp(v, n): + for _ in range(n % 12): + v = H[v] + return v + +for v in range(8): + need(hp(v, 12) == v, 'H order') + +@lru_cache(None) +def sequence(q): + # Independently evaluated named near-front quantities, phase retained. + state = (0, q, H[q], hp(q, 2), H[q] ^ H[q ^ hp(q, 2)], q) + out = [] + while state not in out: + out.append(state) + n, f, z, ell, j, g = state + n += 1 + nf = hp(q, n) ^ H[f ^ hp(q, n + 1)] + nz = H[z ^ hp(q, n)] + nl = H[ell ^ nz] + nj = nz ^ H[j ^ H[nz ^ hp(q, n + 1)] ^ nf ^ nl] + ng = nf ^ H[g ^ (hp(q, n + 1) ^ H[nf ^ hp(q, n + 2)])] + state = (n % 12, nf, nz, nl, nj, ng) + need(len(out) < 500001, 'bounded orbit') + need(state == out[0], 'no transient') + return out + +def upper(q, t, v): + a, b = sorted((abs(v[0]), abs(v[1])), reverse=True) + n = abs(v[2]) + lag = t - a - b - n + if lag < 0 or lag % 2: + return 0 + orbit = sequence(q) + _, f, z, ell, j, g = orbit[n % len(orbit)] + mapping = {(0,0,0):hp(q,n), (1,0,0):z, (2,0,0):ell, + (1,1,0):0, (0,0,2):f, (1,0,2):j, (0,0,4):g} + need((a,b,lag) in mapping, 'covered lag') + return mapping[a,b,lag] + +steps = [(1,0,0),(-1,0,0),(0,1,0),(0,-1,0),(0,0,1),(0,0,-1)] +def add(a,b): + return tuple(x+y for x,y in zip(a,b)) +def norm(v): + return sum(map(abs,v)) +def distance(a,b): + return sum(abs(x-y) for x,y in zip(a,b)) +def sphere(r, centre=(0,0,2)): + return [add(v,centre) for v in product(range(-r,r+1),repeat=3) if norm(v)<=r] + +comparisons=0 +for q in range(8): + @lru_cache(None) + def direct(t,v): + if t<0 or norm(v)>t:return 0 + if t==0:return q if v==(0,0,0) else 0 + s=0 + for e in steps:s ^= direct(t-1,add(v,e)) + return direct(t-2,v)^H[s] + for n in range(10): + for a,b,lag in ((0,0,0),(1,0,0),(2,0,0),(1,1,0),(0,0,2),(1,0,2),(0,0,4)): + need(upper(q,n+a+b+lag,(a,b,n))==direct(n+a+b+lag,(a,b,n)), 'direct 3D near-front') + comparisons+=1 +print('R1: 560 independent direct-native comparisons across all pulse triples: PASS') + +T=185; P=12*840**T; S=T+P; R=S+68 +need(len(sequence(4))==720 and len(sequence(5))==84, 'actual periods') +need((R%720,R%84)==(253,1), 'actual phases') +print('R2: independent actual-pulse orbit periods720/84 and large-integer phases: PASS') + +# Boolean polynomials, monomials as frozensets of names, coefficient arithmetic F2. +ZERO=frozenset(); ONE=frozenset([frozenset()]) +def variable(name):return frozenset([frozenset([name])]) +def xor(*polys): + out=set() + for p in polys:out.symmetric_difference_update(p) + return frozenset(out) +def mul(a,b): + counts=Counter(ma|mb for ma in a for mb in b) + return frozenset(m for m,c in counts.items() if c%2) +def constant(b):return ONE if b else ZERO +def ph(v):return v[1],v[2],xor(v[0],mul(v[1],v[2])) +def px(*vs):return tuple(xor(*(v[j] for v in vs)) for j in range(3)) +def parity(parts): + # Factorial valuation of multinomial, rather than bit-intersection code. + return sum(p.bit_count() for p in parts)==sum(parts).bit_count() +x,u,my,mr=map(variable, ('x','u','mY','mR')) +y=xor(x,u) +ctrls={(a,b,z):variable('c_%d_%d_%d'%(a,b,z)) for z,r in ((1,2),(2,3)) for a in range(-r,r+1) for b in range(-r,r+1) if abs(a)+abs(b)==r} +need(len(ctrls)==20,'twenty geometric entries') +lower=[((0,-S,-68),x),((0,S,-68),xor(my,mr)),((T,P,-68),my),((-T,P,-68),mr)] +def base(t,v): + z0=upper(4,t,(v[0],v[1],R-v[2])); z1=upper(5,t,(v[0],v[1],R-v[2])) + result=[xor(constant((z0>>j)&1),u if ((z0^z1)>>j)&1 else ZERO) for j in range(3)] + for loc,bit in lower: + ds=tuple(abs(a-b) for a,b in zip(v,loc)) + need(sum(ds)>=t,'firstfront reduction') + if sum(ds)==t and parity(ds): + field=hp(2,t) + for j in range(3): + if (field>>j)&1:result[j]=xor(result[j],bit) + if t==R-1 and v in ctrls: + need(hp(2,t)==2,'actual incoming controls in B') + result[1]=xor(result[1],ctrls[v]) + return tuple(result) +@lru_cache(None) +def evaluate(t,v): + if t<=R-1:return base(t,v) + return px(evaluate(t-2,v),ph(px(*(evaluate(t-1,add(v,e)) for e in steps)))) +actual=evaluate(R+2,(0,0,2)) +k=xor(*(ctrls[v] for v in ((0,2,1),(0,-2,1),(2,0,1),(-2,0,1)))) +ell=xor(*(bit for (a,b,z),bit in ctrls.items() if z==2)) +expected=(y,xor(y,mul(u,k),ell),xor(ONE,mul(x,y),mul(mul(u,xor(ONE,x)),k),mul(y,ell))) +need(actual==expected, 'full symbolic local-stencil formula') +# y=1 => u=1+x, substitute polynomial directly. +def substitute_u(poly): + result=ZERO + for monomial in poly: + term=ONE + for name in monomial:term=mul(term,xor(ONE,x) if name=='u' else variable(name)) + result=xor(result,term) + return result +need(substitute_u(actual[0])==ONE and substitute_u(xor(actual[1],actual[2]))==x,'history invariant') +print('R3: independent memoized polynomial stencil derives full20-control formula and y=1 => A=1,B XOR D=x: PASS') + +# Geometry: exhaustive modest radii audit the general triangle/geodesic argument. +geo=0 +for r in range(3,25): + for z in (1,2): + radius=r+z + for a in range(-radius,radius+1): + for b in set((radius-abs(a),-(radius-abs(a)))): + loc=(a,b,z) + need(distance(loc,(0,0,2))==r+2,'boundary') + need(norm(loc)==r+2*z,'qY protection') + need(distance(loc,(0,0,r))==2*r,'upper separation') + need(all(distance(loc,v)>r-2 for v in sphere(2)),'old slice unchanged') + for v in sphere(3): + if distance(loc,v)<=r-1: + need(distance(loc,v)==r-1 and v in ctrls,'all new incoming support in20') + geo+=1 +print('R4: geometric support argument checked on %d entire plane-boundary source positions; symbolic triangle proof in report: PASS'%geo) + +# All states, not only the reachable native domain. +def f(v):a,b,d,e=v;return e,a^b,a,1^d +def fi(v):a,b,d,e=v;return d,b^d,1^e,a +def g(v):x,a,b,d=v;return x,b^a,d^1^(x&a),a +def gi(v):x,a,b,d=v;return x,d,a^d,b^1^(x&d) +for fn,inv in ((f,fi),(g,gi)): + domain=list(product((0,1),repeat=4)) + need(len({fn(v) for v in domain})==16,'permutation') + need(all(inv(fn(v))==v for v in domain),'inverse') +for bx,by in product((0,1),repeat=2): + need(f((by,by,1^(bx&by),0))==(0,0,by,bx&by),'native F') + need(g((bx,by,by,1^(bx&by)))==(bx,0,0,by),'native G') +print('R5: both total interface permutations, inverses, native restriction and clean-workspace claim: PASS') +# Genuine limited-scope counterexample: varying x at y=1 cannot have identical full codes. +for bx,k0,l0 in product((0,1),repeat=3): + bu=1^bx; B=1^(bu&k0)^l0; D=1^bx^(bu&(1^bx)&k0)^l0 + need(B^D==bx,'all reduced controls') +print('SCOPE: ACCEPT v2 local algebra and relaxed-plane obstruction; native integrated reset and wider transport proof remain OPEN.') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/contract_check-O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/contract_check-O.out new file mode 100644 index 000000000..6b9edb13d --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/contract_check-O.out @@ -0,0 +1,4 @@ +LAW1: tagged full carrier per-history multiplicities5,3,2; herald5/16, failure11/16; all4 x,y: PASS +LAW2: supplied independent-seed composition retains all failures and complete record; double success25/256: PASS +LAW3: strict common raw-carrier law FAILS: conditional y=1 supports for x0,x1 are disjoint (TV1); histories encoded in complete cells: CONFIRMED +SCOPE: per-history tagged law accepted only as candidate interface; unchanged strict acceptance not met, no encoding relaxation adopted. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/contract_check.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/contract_check.out new file mode 100644 index 000000000..6b9edb13d --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/contract_check.out @@ -0,0 +1,4 @@ +LAW1: tagged full carrier per-history multiplicities5,3,2; herald5/16, failure11/16; all4 x,y: PASS +LAW2: supplied independent-seed composition retains all failures and complete record; double success25/256: PASS +LAW3: strict common raw-carrier law FAILS: conditional y=1 supports for x0,x1 are disjoint (TV1); histories encoded in complete cells: CONFIRMED +SCOPE: per-history tagged law accepted only as candidate interface; unchanged strict acceptance not met, no encoding relaxation adopted. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/contract_check.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/contract_check.py new file mode 100644 index 000000000..23373b2ba --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/contract_check.py @@ -0,0 +1,55 @@ +"""Independent exact review of proposed history-tagged reset contract.""" +from itertools import product +from collections import Counter +from fractions import Fraction + +def need(v,s): + if not v:raise RuntimeError(s) + +def raw(x,y,a,b,z): + d=1^(x&y) + return ((y^a,y,d^(a&y)),(y,y,d),(y^b,y,d^(b&y)),(0,0,z)) + +def decode(r):return r[0][0],r[1][0],r[2][0],r[3][2] + +accepted={(0,0):5,(1,0):3,(1,1):2,(0,1):0} +for x,y in product((0,1),repeat=2): + counts=Counter() + for a,b,k,z in product((0,1),(0,1),range(8),(0,1)): + if k>=accepted[a,b]:counts[('fail',)]+=1 + else: + r=raw(x,y,a,b,z);counts[('success',r)]+=1 + need(decode(r)==(y^a,y,y^b,z),'decoding') + need(counts[('fail',)]==44,'failure mass11/16') + for (a,b),n in accepted.items(): + for z in (0,1):need(counts[('success',raw(x,y,a,b,z))]==n,'full output multiplicity') + need(sum(counts.values())==64,'normalization') +print('LAW1: tagged full carrier per-history multiplicities5,3,2; herald5/16, failure11/16; all4 x,y: PASS') + +for x in (0,1): + complete=Counter() + for u,v,k,a,b,l,z in product((0,1),(0,1),range(8),(0,1),(0,1),range(8),(0,1)): + if k>={(0,0):5,(1,0):4,(1,1):1,(0,1):0}[u,v]:complete[('first-fail',)]+=1;continue + y=x^u + if l>=accepted[a,b]:complete[(y,'second-fail')]+=1;continue + complete[(y,'success',raw(x,y,a,b,z))]+=1 + need(complete[('first-fail',)]==1408,'first failure') + for y in (0,1): + need(complete[(y,'second-fail')]==220,'second failure') + for (a,b),n in accepted.items(): + for z in (0,1):need(complete[(y,'success',raw(x,y,a,b,z))]==5*n,'success full joint') + need(sum(complete.values())==2048,'two-reset normalization') + need(sum(n for k,n in complete.items() if len(k)==3)==200,'double success25/256') +print('LAW2: supplied independent-seed composition retains all failures and complete record; double success25/256: PASS') + +support=[] +for x in (0,1): + support.append({raw(x,1,a,b,z) for a,b in accepted if accepted[a,b] for z in (0,1)}) +need(support[0].isdisjoint(support[1]),'disjoint tagged supports') +need({decode(r) for r in support[0]}=={decode(r) for r in support[1]},'same decoded support') +for x in (0,1): + for a,b,z in product((0,1),(0,1),(0,1)): + r=raw(x,1,a,b,z) + need(r[0][0]^r[0][2]==x and r[2][0]^r[2][2]==x,'history retrievable from full X/R cells') +print('LAW3: strict common raw-carrier law FAILS: conditional y=1 supports for x0,x1 are disjoint (TV1); histories encoded in complete cells: CONFIRMED') +print('SCOPE: per-history tagged law accepted only as candidate interface; unchanged strict acceptance not met, no encoding relaxation adopted.') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/gadgets_check-O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/gadgets_check-O.out new file mode 100644 index 000000000..2b81ea63b --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/gadgets_check-O.out @@ -0,0 +1,15 @@ +R1: 560 independent direct-native comparisons across all pulse triples: PASS +R2: independent actual-pulse orbit periods720/84 and large-integer phases: PASS +R3: independent memoized polynomial stencil derives full20-control formula and y=1 => A=1,B XOR D=x: PASS +R4: geometric support argument checked on 2640 entire plane-boundary source positions; symbolic triangle proof in report: PASS +R5: both total interface permutations, inverses, native restriction and clean-workspace claim: PASS +SCOPE: ACCEPT v2 local algebra and relaxed-plane obstruction; native integrated reset and wider transport proof remain OPEN. +H1: actual sidecar U_(R+1)(0,-1,2)=(0,1 XOR y,x), all masks: PASS +H2: x sidecar survives arbitrary qY operand replacement p; its y-related B field is NOT a diagnostic transfer of p: PASS +H3: sidecar prefix through R is blank under retained ready cone; pulse front at R-1 cancels and R has wrong parity: PASS +H4: sidecar is a specific earlier spacetime register; simultaneous control access and native gate integration remain unproved. +AUX1: independent integer-coded 5tick recursion extracts A on all8 raw triples, with blank target prefix: PASS +AUX2: actual translated previous-slice neighbor is (0,1 XOR u XOR mY,mY); supplied dirty old value flips gadget: PASS +RESET1: direct3D clean-cone fanout at L=12,all32 Q/a/b cases, both full outputs and prefixes: PASS +RESET2: first-arrival identity gives M_a(Q)=(A XOR a,B,D XOR aB) for every L=0mod12: PASS +SCOPE: native conditional clean-cone gadgets accepted; embedding into actual populated q2 phase is NOT proved. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/gadgets_check.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/gadgets_check.out new file mode 100644 index 000000000..2b81ea63b --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/gadgets_check.out @@ -0,0 +1,15 @@ +R1: 560 independent direct-native comparisons across all pulse triples: PASS +R2: independent actual-pulse orbit periods720/84 and large-integer phases: PASS +R3: independent memoized polynomial stencil derives full20-control formula and y=1 => A=1,B XOR D=x: PASS +R4: geometric support argument checked on 2640 entire plane-boundary source positions; symbolic triangle proof in report: PASS +R5: both total interface permutations, inverses, native restriction and clean-workspace claim: PASS +SCOPE: ACCEPT v2 local algebra and relaxed-plane obstruction; native integrated reset and wider transport proof remain OPEN. +H1: actual sidecar U_(R+1)(0,-1,2)=(0,1 XOR y,x), all masks: PASS +H2: x sidecar survives arbitrary qY operand replacement p; its y-related B field is NOT a diagnostic transfer of p: PASS +H3: sidecar prefix through R is blank under retained ready cone; pulse front at R-1 cancels and R has wrong parity: PASS +H4: sidecar is a specific earlier spacetime register; simultaneous control access and native gate integration remain unproved. +AUX1: independent integer-coded 5tick recursion extracts A on all8 raw triples, with blank target prefix: PASS +AUX2: actual translated previous-slice neighbor is (0,1 XOR u XOR mY,mY); supplied dirty old value flips gadget: PASS +RESET1: direct3D clean-cone fanout at L=12,all32 Q/a/b cases, both full outputs and prefixes: PASS +RESET2: first-arrival identity gives M_a(Q)=(A XOR a,B,D XOR aB) for every L=0mod12: PASS +SCOPE: native conditional clean-cone gadgets accepted; embedding into actual populated q2 phase is NOT proved. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/gadgets_check.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/gadgets_check.py new file mode 100644 index 000000000..4490d73be --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/gadgets_check.py @@ -0,0 +1,49 @@ +"""Independent finite native extractor and clean-cone fanout audit.""" +from functools import lru_cache +from itertools import product +from checks import H, hp, parity, need, R, S, P, T, steps, add, norm, distance, x, u, my, mr, ONE, ZERO, variable, xor, mul, px, ph, constant +from sidecar_check import native_eval + +def scalar(src,old=None): + old=old or {} + @lru_cache(None) + def at(t,v): + if t==-1:return old.get(v,0) + if t==0:return src.get(v,0) + if min((distance(v,s) for s in src),default=10**6)>t and min((distance(v,s) for s in old),default=10**6)>t+1:return 0 + z=0 + for e in steps:z ^= at(t-1,add(v,e)) + return at(t-2,v)^H[z] + return at + +fixed={(0,1,-1):2,(1,1,-2):7,(8,2,0):2} +for q in range(8): + src=dict(fixed);src[(0,0,0)]=q + at=scalar(src) + need([at(t,(3,2,0)) for t in range(6)]==[0]*5+[2*(q&1)],'five-tick arbitrary-A extractor') +need(all(distance(s,(3,2,0))==5 for s in list(fixed)+[(0,0,0)]),'extractor boundary') +need(native_eval(R+1,(1,0,2))==(ZERO,xor(ONE,u,my),my),'actual dirty neighbor') +src=dict(fixed);src[(0,0,0)]=4 +need(scalar(src)(5,(3,2,0))==0,'clean countercontrol base') +need(scalar(src,{(1,0,0):2})(5,(3,2,0))==2,'dirty countercontrol flip') +print('AUX1: independent integer-coded 5tick recursion extracts A on all8 raw triples, with blank target prefix: PASS') +print('AUX2: actual translated previous-slice neighbor is (0,1 XOR u XOR mY,mY); supplied dirty old value flips gadget: PASS') + +# Native two-ended mixer: sole overlap in receiver cones is the input origin. +for q,a,b in product(range(8),(0,1),(0,1)): + src={(0,0,0):q,(24,0,0):a,(-24,0,0):b} + at=scalar(src) + for sign,seed in ((1,a),(-1,b)): + v=(sign*12,0,0) + A=q&1;B=(q>>1)&1;D=(q>>2)&1 + expected=(A^seed)+2*B+4*(D^(seed&B)) + need(at(12,v)==expected,'two-ended fanout exact') + need(all(at(t,v)==0 for t in range(12)),'fanout prefixes blank') +print('RESET1: direct3D clean-cone fanout at L=12,all32 Q/a/b cases, both full outputs and prefixes: PASS') +for q,a in product(range(8),(0,1)): + # General L multiple12 proof reduces to this local first-arrival identity. + out=H[hp(q,11)^hp(a,11)] + A=q&1;B=(q>>1)&1;D=(q>>2)&1 + need(out==(A^a)+2*B+4*(D^(a&B)),'general mixer algebra') +print('RESET2: first-arrival identity gives M_a(Q)=(A XOR a,B,D XOR aB) for every L=0mod12: PASS') +print('SCOPE: native conditional clean-cone gadgets accepted; embedding into actual populated q2 phase is NOT proved.') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/geometry_check-O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/geometry_check-O.out new file mode 100644 index 000000000..f2d4509d1 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/geometry_check-O.out @@ -0,0 +1,9 @@ +R1: 560 independent direct-native comparisons across all pulse triples: PASS +R2: independent actual-pulse orbit periods720/84 and large-integer phases: PASS +R3: independent memoized polynomial stencil derives full20-control formula and y=1 => A=1,B XOR D=x: PASS +R4: geometric support argument checked on 2640 entire plane-boundary source positions; symbolic triangle proof in report: PASS +R5: both total interface permutations, inverses, native restriction and clean-workspace claim: PASS +SCOPE: ACCEPT v2 local algebra and relaxed-plane obstruction; native integrated reset and wider transport proof remain OPEN. +GEO1: 792 direct-native signed-strip comparisons; independently reproduce periods3600/2940 and residues253: PASS +GEO2: independent symbolic stencil gives q3=(u,xu,u), and complete p-diagnostic formula, all masks: PASS +SCOPE: accepted local third-step formula under inherited source reduction and extended ready cone; no Y-only extraction or reset follows. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/geometry_check.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/geometry_check.out new file mode 100644 index 000000000..f2d4509d1 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/geometry_check.out @@ -0,0 +1,9 @@ +R1: 560 independent direct-native comparisons across all pulse triples: PASS +R2: independent actual-pulse orbit periods720/84 and large-integer phases: PASS +R3: independent memoized polynomial stencil derives full20-control formula and y=1 => A=1,B XOR D=x: PASS +R4: geometric support argument checked on 2640 entire plane-boundary source positions; symbolic triangle proof in report: PASS +R5: both total interface permutations, inverses, native restriction and clean-workspace claim: PASS +SCOPE: ACCEPT v2 local algebra and relaxed-plane obstruction; native integrated reset and wider transport proof remain OPEN. +GEO1: 792 direct-native signed-strip comparisons; independently reproduce periods3600/2940 and residues253: PASS +GEO2: independent symbolic stencil gives q3=(u,xu,u), and complete p-diagnostic formula, all masks: PASS +SCOPE: accepted local third-step formula under inherited source reduction and extended ready cone; no Y-only extraction or reset follows. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/geometry_check.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/geometry_check.py new file mode 100644 index 000000000..8e01a4e70 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/geometry_check.py @@ -0,0 +1,71 @@ +"""Independent signed-position lookahead strip and third outward step.""" +from checks import H,hp,parity,need,R,S,P,T,steps,add,norm,x,u,my,mr,ONE,ZERO,variable,xor,mul,px,ph,constant +from functools import lru_cache + +keys=tuple((l,a,b) for l in range(7) for a in range(-6,7) for b in range(-6,7) if abs(a)+abs(b)<=l and l+abs(a)+abs(b)<=6 and (l-a-b)%2==0) +def step(old): + look=[{} for _ in range(5)] + for l in range(7): + for j in range((6-l)//2+1): + for ll,a,b in keys: + if ll!=l or l+abs(a)+abs(b)>6-2*j:continue + prev=old[l,a,b] if j==0 else look[j-1][l,a,b] + future=look[j+1].get((l-2,a,b),0);trans=0 + for aa,bb in ((a-1,b),(a+1,b),(a,b-1),(a,b+1)):trans ^= look[j].get((l-1,aa,bb),0) + look[j][l,a,b]=look[j].get((l-2,a,b),0)^H[prev^future^trans] + return look[0] +def direct(q): + @lru_cache(None) + def f(t,v): + if t<0 or norm(v)>t:return 0 + if t==0:return q if v==(0,0,0) else 0 + z=0 + for e in steps:z ^= f(t-1,add(v,e)) + return f(t-2,v)^H[z] + return f +def initial(q): + f=direct(q);return {(l,a,b):f(l,(a,b,0)) for l,a,b in keys} +@lru_cache(None) +def orbit(q): + first=initial(q);s=first;out=[] + while True: + out.append(s);s=step(s) + if s==first:return out + need(len(out)<10001,'sixlag orbit bound') +count=0 +for q in (4,5): + f=direct(q);s=initial(q) + for n in range(9): + for (l,a,b),value in s.items(): + need(value==f(n+l,(a,b,n)),'signed strip direct comparison');count+=1 + s=step(s) +need(len(orbit(4))==3600 and len(orbit(5))==2940,'sixlag periods') +need(R%3600==253 and R%2940==253,'sixlag phases') +print('GEO1: %d direct-native signed-strip comparisons; independently reproduce periods3600/2940 and residues253: PASS'%count) +def pulse(q,t,v): + a,b,n=v;n=abs(n);l=t-n + if l<0 or l>j)&1),u if ((a^b)>>j)&1 else ZERO) for j in range(3)] + for loc,bit in lower: + ds=tuple(abs(a-b) for a,b in zip(v,loc));need(sum(ds)>=t,'lower front') + if sum(ds)==t and parity(ds): + field=hp(2,t) + for j in range(3): + if field>>j&1:out[j]=xor(out[j],bit) + return tuple(out) +@lru_cache(None) +def ev(t,v,diag): + if t<=R-1:return base(t,v) + if diag and t==R and v==(0,0,0):return x,ONE,variable('p') + return px(ev(t-2,v,diag),ph(px(*(ev(t-1,add(v,e),diag) for e in steps)))) +need(ev(R+3,(0,0,3),False)==(u,mul(x,u),u),'third native triple') +p=variable('p');xp=xor(x,p) +expected=(xor(u,xp,mul(u,xp)),xor(x,p,mul(u,p),mul(mul(u,x),p)),mul(u,xp)) +need(ev(R+3,(0,0,3),True)==expected,'complete third diagnostic triple') +print('GEO2: independent symbolic stencil gives q3=(u,xu,u), and complete p-diagnostic formula, all masks: PASS') +print('SCOPE: accepted local third-step formula under inherited source reduction and extended ready cone; no Y-only extraction or reset follows.') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/herald_check-O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/herald_check-O.out new file mode 100644 index 000000000..65ee3747b --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/herald_check-O.out @@ -0,0 +1,4 @@ +HER1: all7832 source entries lie on specified boundary wings; unique and affine rank5: PASS +HER2: independent Lucas shortest-path source sum plus2700 native axis updates, all32 seeds, raw(0,G,0),10/32: PASS +SCOPE: exact source-defined standalone native herald checked; compiler-generation algorithm and actual-q2 integration are not certified. +HER3: every source vs all5 receivers; intended first-arrival boundaries and foreign exclusion; previous input excluded: PASS diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/herald_check.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/herald_check.out new file mode 100644 index 000000000..65ee3747b --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/herald_check.out @@ -0,0 +1,4 @@ +HER1: all7832 source entries lie on specified boundary wings; unique and affine rank5: PASS +HER2: independent Lucas shortest-path source sum plus2700 native axis updates, all32 seeds, raw(0,G,0),10/32: PASS +SCOPE: exact source-defined standalone native herald checked; compiler-generation algorithm and actual-q2 integration are not certified. +HER3: every source vs all5 receivers; intended first-arrival boundaries and foreign exclusion; previous input excluded: PASS diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/herald_check.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/herald_check.py new file mode 100644 index 000000000..e0e2d6993 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/herald_check.py @@ -0,0 +1,79 @@ +"""Independent Lucas-path source-to-axis herald verification, no compiler import.""" +from pathlib import Path +from functools import reduce +from itertools import product +import json,hashlib + +ROOT=Path(__file__).resolve().parents[1] +D=json.loads((ROOT/'direct_reset/herald.json').read_text()) +L=D['deadline'];SOURCES=D['sources'] +def need(v,s): + if not v:raise RuntimeError(s) +need(L==2700 and L%12==0,'deadline') +# Separate the three single-field source wings. All source coordinates are actual data. +wing=[[0]*L for _ in range(3)] +seen=set() +for p,field,mask in SOURCES: + x,y,z=p;r=L-x + need(0<=x0 and 0<=field<3 and 0>1 + while w: + k=w.bit_length()-1 + if k in basis:w ^= basis[k] + else:basis[k]=w;break +need(len(basis)==5,'five independent seed coordinates') + +# Truth-table lanes for u,v,k0,k1,k2; direct evaluation of affine source masks. +def affine(mask): + out=0 + for lane in range(32): + value=(mask&1)^((lane&(mask>>1)).bit_count()%2) + out |= value<>1)&1;k=lane>>2 + if k<{(0,0):5,(1,0):3,(1,1):2,(0,1):0}[u,v]:truth |= 1<L,'independent source ownership') + need(sum(map(abs,c))>L-1,'previous arbitrary origin triple excluded') +need(power(4,L)==4,'pureD Z preserved') +print('HER3: every source vs all5 receivers; intended first-arrival boundaries and foreign exclusion; previous input excluded: PASS') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/sidecar_check-O.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/sidecar_check-O.out new file mode 100644 index 000000000..a8a68febc --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/sidecar_check-O.out @@ -0,0 +1,10 @@ +R1: 560 independent direct-native comparisons across all pulse triples: PASS +R2: independent actual-pulse orbit periods720/84 and large-integer phases: PASS +R3: independent memoized polynomial stencil derives full20-control formula and y=1 => A=1,B XOR D=x: PASS +R4: geometric support argument checked on 2640 entire plane-boundary source positions; symbolic triangle proof in report: PASS +R5: both total interface permutations, inverses, native restriction and clean-workspace claim: PASS +SCOPE: ACCEPT v2 local algebra and relaxed-plane obstruction; native integrated reset and wider transport proof remain OPEN. +H1: actual sidecar U_(R+1)(0,-1,2)=(0,1 XOR y,x), all masks: PASS +H2: x sidecar survives arbitrary qY operand replacement p; its y-related B field is NOT a diagnostic transfer of p: PASS +H3: sidecar prefix through R is blank under retained ready cone; pulse front at R-1 cancels and R has wrong parity: PASS +H4: sidecar is a specific earlier spacetime register; simultaneous control access and native gate integration remain unproved. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/sidecar_check.out b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/sidecar_check.out new file mode 100644 index 000000000..a8a68febc --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/sidecar_check.out @@ -0,0 +1,10 @@ +R1: 560 independent direct-native comparisons across all pulse triples: PASS +R2: independent actual-pulse orbit periods720/84 and large-integer phases: PASS +R3: independent memoized polynomial stencil derives full20-control formula and y=1 => A=1,B XOR D=x: PASS +R4: geometric support argument checked on 2640 entire plane-boundary source positions; symbolic triangle proof in report: PASS +R5: both total interface permutations, inverses, native restriction and clean-workspace claim: PASS +SCOPE: ACCEPT v2 local algebra and relaxed-plane obstruction; native integrated reset and wider transport proof remain OPEN. +H1: actual sidecar U_(R+1)(0,-1,2)=(0,1 XOR y,x), all masks: PASS +H2: x sidecar survives arbitrary qY operand replacement p; its y-related B field is NOT a diagnostic transfer of p: PASS +H3: sidecar prefix through R is blank under retained ready cone; pulse front at R-1 cancels and R has wrong parity: PASS +H4: sidecar is a specific earlier spacetime register; simultaneous control access and native gate integration remain unproved. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/sidecar_check.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/sidecar_check.py new file mode 100644 index 000000000..7af537f11 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/parallel_v3/review/sidecar_check.py @@ -0,0 +1,31 @@ +"""Independent history sidecar audit using reviewer's polynomial dynamics.""" +from checks import * + +def native_base(t,v): + return tuple(frozenset(m for m in poly if not any(name.startswith('c_') for name in m)) for poly in base(t,v)) + +@lru_cache(None) +def native_eval(t,v): + if t<=R-1:return native_base(t,v) + return px(native_eval(t-2,v),ph(px(*(native_eval(t-1,add(v,e)) for e in steps)))) + +@lru_cache(None) +def diagnostic_eval(t,v): + if t<=R-1:return native_base(t,v) + if t==R and v==(0,0,0):return x,ONE,variable('p') + return px(diagnostic_eval(t-2,v),ph(px(*(diagnostic_eval(t-1,add(v,e)) for e in steps)))) + +s=(0,-1,2) +value=native_eval(R+1,s) +need(value==(ZERO,xor(ONE,y),x),'history sidecar native formula') +need(diagnostic_eval(R+1,s)==value,'sidecar cannot depend on p intervention outside cone') +need(diagnostic_eval(R+2,(0,0,2))[0]==variable('p'),'q2 actual operand') +print('H1: actual sidecar U_(R+1)(0,-1,2)=(0,1 XOR y,x), all masks: PASS') +print('H2: x sidecar survives arbitrary qY operand replacement p; its y-related B field is NOT a diagnostic transfer of p: PASS') +# No original lower source can reach s before R+1; upper pulse first arrives at R-1. +need(all(distance(loc,s)>=R+1 for loc,_ in lower),'lower first arrival R+1 or later') +need(distance((0,0,R),s)==R-1,'upper firstarrival sidecar') +need(upper(4,R-1,(0,-1,R-2))==0 and upper(5,R-1,(0,-1,R-2))==0,'first pulse front cancels') +need(upper(4,R,(0,-1,R-2))==0 and upper(5,R,(0,-1,R-2))==0,'following parity blank') +print('H3: sidecar prefix through R is blank under retained ready cone; pulse front at R-1 cancels and R has wrong parity: PASS') +print('H4: sidecar is a specific earlier spacetime register; simultaneous control access and native gate integration remain unproved.') diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/PLAN.md new file mode 100644 index 000000000..191379ee1 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/PLAN.md @@ -0,0 +1,21 @@ +# Joint native post-Y phase-preparation check + +Research only. Combine the actual symmetric-controller table at bf1bc9fb +with the remote native herald/z construction at 25220128, under the retained +seven-port bank and original-time independent seed prior. This calculation +will not substitute desired mask probabilities for the actual native table. + +Before the new joint enumeration: pin the source bytes; evaluate the retained +herald word on every five-bit seed; extract the actual primary-controller +rows for every x,u,mY,mR,a,b; combine with the independently phased z pulse; +retain every failed seed. Require the exact full success-phase measure, +5/16 branch mass and 11/16 terminal-failure mass for every old row. Check the +calibration-swap, shared-z, used-seed and dropped-failure countercontrols. +Check original-time source/bank separation and remote-cone bounds; the +arbitrary-size noise factor is inherited from the independently reviewed +chronological proof, not enumerated as a finite sample of a huge word. + +The candidate decoder uses previous q8.B and current q9.B,q9.D,z.D. That is +a fixed two-slice phase code; no access to previous fields, current-only Y +port, arbitrary late-input socket, or next-stage native closure is adopted. +All old informative histories, y and herald flags remain in conditioning. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/PROVENANCE.json new file mode 100644 index 000000000..22556e839 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/PROVENANCE.json @@ -0,0 +1,11 @@ +{ + "source_commits": { + "controller": "bf1bc9fb067e38417d8968e26a691debf7d3eb5f", + "herald": "25220128c3c7991e4c22c917af56b68c02ab8051", + "history": "3f440c59660d7255aa8a727ff8b5de8289004f80" + }, + "inputs": { + "branch_v10/local-controller/symmetric-result.json": "d8e7c1f5841192165beefb3fe35b069cc14cc93f2faa2bd68619aa7748b3db2f", + "parallel_v3/direct_reset/herald.json": "406befa2c8d1f663856a78ca6cb632e9c61d1233b02a9d532c7cb43d6261ce64" + } +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/REPORT.md new file mode 100644 index 000000000..fef2a6d51 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/REPORT.md @@ -0,0 +1,203 @@ +# Conditional native post-Y phase preparation: combined law + +Research checkpoint based on the reviewed native controller at +bf1bc9fb067e38417d8968e26a691debf7d3eb5f and synchronized remote-source +construction at 25220128c3c7991e4c22c917af56b68c02ab8051. The actual selected +physical fields now have the calibrated post-Y distribution jointly with +the old public record and new herald, under the supplied initialization and +access assumptions. No nonlinear initial seed function is used. + +This is a post-Y **two-slice phase-preparation candidate** on the retained +native family. Y occupies a previous-slice field and X/R share a current raw +port. General native menu readout, next-stage closure and an arbitrary late-q8 socket +remain open. This report does not designate a reusable instrument or alter +the observer's access class. + +## One physical initial preparation and one deadline + +Keep T=185, P=12*840^185, S=T+P, R=S+68 and L=R+9. All existing old sources, +readiness and the seven-port independent frontier bank through L are retained. +The local current/previous ready balls are those about q9=(0,S,77), with +radii L and L-1. Preserve W=111, Q,C,G and the three boundary exceptions: + +| Initial source | Position | Payload | +| --- | --- | --- | +| J | (0,S,S+154) | (u XOR b,a,u XOR a) | +| Kplus | (1,S,S+153) | (a XOR b,0,a XOR b) | +| Kminus | (-1,S,S+153) | (a XOR b,a XOR b,a XOR b) | + +The new independent fair seed bank is (a,b,k0,k1,k2,z), six bits, independent +of old variables under the stipulated initial preparation. Every source +field is affine in those seeds and existing u. The remote compiler shares +a,b with these local sources; it does not redraw them. The old used seed u +is not treated as fresh. + +At c_G=(48L,0,0) use the original-time affine compiler hemisphere in +herald_v10/REPORT.md. Its exact word is the retained 2684-step Y predicate, +followed by (P-2424)/6 identity words of length six and two final H steps. +Its complete raw prefix is blank and terminal triple is (0,G,0) at L. +The predicate accepts K=k0+2k1+4k2 below 5,0,3,2 for (a,b)=00,01,10,11. +This is the original 5/16 benchmark, not the separately considered 5/32 +fair-J alternative. That alternative was parked before computation. + +At c_Z=(-48L,0,0), a pure-A z source at c_Z-L e_y gives (0,0,z) at L, +with a blank prefix. The local/remote source families coexist: old sources +and banks have |x|<=13R; the new remote cones have |x|>=47L. The remote +program and z source cannot affect the local outputs, old records or each +other by L. J,Kplus,Kminus cannot affect the earlier Y read or any old +public port by L. None pins an old frontier coordinate. Use the explicit +enlarged no-wrap side 256L+64T+1. Enlarging this finite resource does not +change P or any of the earlier local causal calculations. + +The independent native reviews establish the separate physical mechanisms. +The present calculation checks their actual joint seed variables and output +law; its inputs are their retained source data, not an invented reset map. + +## Fixed phase code and actual success law + +Write y=x XOR u for the native Y value. On every retained x,u,mY,mR and +accepted mask 00,10,11, the unchanged native dynamics gives + + U_(L-1)(q8)=(0,y,0), + U_L(q9)=(0,y XOR a,y XOR b), + U_L(c_Z)=(0,0,z), + U_L(c_G)=(0,1,0). + +Define one fixed selected-phase encoding for j=(X,Y,R,Z): + + E_phase(j) = (previous q8=(0,Y,0), + current q9=(0,X,R), current c_Z=(0,0,Z)). + +Its inverse reads X=q9.B, Y=previous q8.B, R=q9.D and Z=c_Z.D. This map is +independent of old x,u,pads and history. It is a coordinate comparison, not +a newly available physical observer operation. The complete physical phase +also retains other apparatus information; no erasure or independence of the +whole neighborhood is claimed. + +For each fixed old row, direct combination of the actual controller table +and native herald program yields 20 successful and 44 failed worlds among +64 equally likely new seed assignments. Conditional on success, + + j=(y XOR a,y,y XOR b,z), + Pr((a,b)=00,10,11 | G=1)=5/10,3/10,2/10, + Pr(z=0 | a,b,G=1)=Pr(z=1 | a,b,G=1)=1/2. + +Thus the entire selected raw success-phase distribution is the same at a +fixed y for all old rows, not merely its decoded one-sign marginals. The +carrier is the supplied calibrated mu_Y,y. Its probabilities are not derived +as parameter-free predictions. + +## Complete old record, new herald and failures + +Let D be the inherited informative record, including the earlier flags and +an allowed whole q8 Y read (0,y,0) at L-1. Keep every earlier flag combination +in the record and offer no new carrier if the predecessor already terminated. +For branches on which the retained native-family incoming assumptions hold, +let N be the entire seven-port post-deadline noise word through L. Its bit +count is B=6P+18d+189. The independently reviewed chronological proof gives +N uniform conditional on the initial bank complement. The combined source +geometry keeps that bank free and all selected success-phase fields, D and +G are functions of the complement. + +Consequently, on each nonzero-probability valid incoming history, + + Pr(N=n,G=1,E_phase(j) | D) = 2^(-B) (5/16) mu_Y,y(j), + Pr(N=n,G=0,offered=none | D) = 2^(-B) (11/16). + +The new herald's whole predeadline record is zero and its final whole cell +is (0,G,0), so it has no unaccounted K metadata. Neither masking nor heralding +changes the probability of an informative old record. At a predecessor +failure the native fields and new flag still evolve, but no offered quantum +state is inferred. The prior conditional reference is not extended to a new +successful measurement after such a terminal failure. + +The physical G=0 fields are retained separately. The rejected K counts for +00,01,10,11 are 3,8,5,6. For rejected runs with masks 00,10,11 the same local +formula (0,y XOR a,y XOR b) still holds. Pattern01 instead gives + + U_L(q9)=(u,y,x(1 XOR u)). + +The four (x,u) raw values are 000,110,011,100, in lexicographic order. +They are not replaced by a chosen qubit failure state. z is still jointly +fair with every rejected mask, and previous q8 retains y. The exact full +physical failure distribution is checked, in addition to the terminal +no-offered-carrier convention. Exposing those private fields or q9's private +prefix would change the access contract and require another record proof. + +## Restricted terminal X and R record checks + +Under the candidate's permitted whole-q9 terminal read at L, no raw field +is suppressed. On a successful post-Y branch its (X,R) pairs are +(y,y),(1 XOR y,y),(1 XOR y,1 XOR y), with probabilities 1/2,3/10,1/5. +For designated X the quantum outcome is fair. The additional R field has +conditional weight 1 when X=y, or weights 3/5,2/5 when X differs from y. +For designated R the quantum probabilities are 4/5,1/5. The extra X field +has weights 5/8,3/8 when R=y, or weight 1 when R differs from y. These +refinements depend only on the earlier public y, setting and outcome, not +the original preparation conditional on that record. + +This gives a bounded terminal X-to-Y-to-X or X-to-Y-to-R record comparison +on the post-Y family, inheriting the predecessor's native-family/record law +and the candidate's declared terminal-access and clock convention. It does +not derive that access rule, a direction selector, or menu reads on arbitrary +inputs. If the terminal port is also exposed on G=0, its actual raw failure +law above must be retained as failure metadata; no successful reference +measurement or offered carrier is asserted there. + +After any nonzero whole-port record the unchanged phase has sharp old Y +and sharp X. Its fixed Bloch decoder determinant is -1/4. The terminal +record comparison therefore permits stopping after the read; it supplies +no valid post-read quantum output or reusable instrument. New native +back-action/reset remains necessary, as #912's controls require. + +## Readout and reuse boundary + +The second-order native state at L is the pair (U_(L-1),U_L), so the selected +phase code contains simultaneous state information in the Markov description. +It does not give three publicly readable current-slice cells. In particular: + +- Y is in the previous slice. A native operation delivering it at a later + permitted read remains unconstructed. Retaining a past public Y record + is not silently used to replace this physical operation. +- The whole current q9 port contains X and R together. A claimed terminal + menu read must retain both raw fields, or construct a native separation. + Reading only the chosen component is not an allowed shortcut. +- The forced-q8 diagnostic still fails: changing q8.B alone with its actual + surrounding past retained does not make q9 follow that arbitrary input. + This is an exact native-family construction, not a reusable q8 socket. +- The rest of the two-slice neighborhood can contain old history and used + frontier variables. The next native instrument must accept that boundary + and prove its branch law. A standalone cold apparatus cannot be spliced in. + +Thus preparation, menu access and compositional closure have distinct +outstanding obligations. The current phase candidate has the correct +conditional calibrated success law; no full OI-QM equivalence follows. + +## Exact validation + +checks.py reads the pinned actual symmetric-controller table and evaluates +the retained 2684-step predicate word on all 32 seed assignments, including +its final H phase. It enumerates all 1024 old-row/new-seed worlds, verifies +32 success/failure branch measures, 208 nonzero raw phase cells and 96 +whole-port terminal-refinement branches, and +checks the complete physical rejected distribution. Normal and optimized +execution are byte-identical to result.json. Failed controls raise before +a pass verdict is emitted. + +Independent countercontrols give full-law TV1/10 for swapping 5:3:2 to5:2:3, +TV1/2 for shared z despite its fair marginal, and TV1/2 in the required X +marginal if old u is reused as the fresh mask (even with the correct total +herald mass). Discarding the failure runs is rejected by normalization. +The combined source/deadline/remote-envelope inequalities are checked at +actual giant parameters. The enormous noise factor rests on its written +bijection proof, not a finite enumeration of all noise words. + +Replay from this directory in the retained tree: + + python3 checks.py + python3 -O checks.py + +Both must match result.json; SHA256SUMS pins the files. Source commits and +input hashes are in PROVENANCE.json. No new kernel certificate, exact-head +attestation, premise, access rule, F/E designation, dispatch or merge is +asserted. Separate integration review is required before synthesis adoption. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/SHA256SUMS new file mode 100644 index 000000000..45eed1a04 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/SHA256SUMS @@ -0,0 +1,5 @@ +5a46485e139225d50c4a05c97502cbda8a6204ed381a3474978726823e0ace0a PLAN.md +a4d4be43a9229166e57555daa637f3bf82b7407443746e4ff10515d2f017ba47 REPORT.md +b16c365aa557851653b8882da2e7c8370416438a09c1a869e1e2cb071397a8b1 PROVENANCE.json +fc90f5a9fbbc04cec9788ea7e4faa69ffaa646b72310249813a8e29a26e8d21b checks.py +9f83513141744f25c04efb4c1f4c6a23e36942e27c3910b8a3c72e5fa1093ecc result.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/checks.py new file mode 100644 index 000000000..f719ff7ec --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/checks.py @@ -0,0 +1,138 @@ +"""Exact joint law from retained native source data; no author evaluator imports.""" +import argparse, hashlib, json +from collections import defaultdict +from fractions import Fraction as F +from itertools import product +from pathlib import Path + +H=(0,2,4,7,1,3,5,6) +WITNESS=(4,5,7) + +def need(ok, message): + if not ok: raise RuntimeError(message) + +def unpack(v): return (v>>2,(v>>1)&1,v&1) + +def tv(a,b): + return sum((abs(a.get(k,F())-b.get(k,F())) for k in a.keys()|b.keys()),F())/2 + +def kernel_raw(table,x,u,my,mr,a,b): + i=0 + for v,n in zip((x,u,my,mr,a,b,*WITNESS),(2,2,2,2,2,2,8,8,8)): + i=i*n+v + return unpack(int(table[i],16)) + +def main(): + ap=argparse.ArgumentParser() + ap.add_argument('--source-root',type=Path,default=Path(__file__).resolve().parent.parent) + root=ap.parse_args().source_root + p=Path(__file__).resolve().parent + prov=json.loads((p/'PROVENANCE.json').read_text()) + for path,digest in prov['inputs'].items(): + need(hashlib.sha256((root/path).read_bytes()).hexdigest()==digest,'input bytes '+path) + local=json.loads((root/'branch_v10/local-controller/symmetric-result.json').read_text()) + need(list(WITNESS) in local['accepted_three_mask_witnesses'],'retained native witness') + need(local['table_order']=='x,u,mY,mR,a,b,Ccode,Vpluscode,Vminuscode; all selector masks retained','native table order') + table=local['q9_table_hex'];need(len(table)==32768,'complete native table') + program=json.loads((root/'parallel_v3/direct_reset/herald.json').read_text())['program'] + word=program[:2684]; flags={} + for a,b,k in product((0,1),(0,1),range(8)): + seed=a+2*b+4*k; state=0 + for constant,terms in word: + control=constant + for bit,mask in terms: + if seed>>bit&1:control^=mask + state=H[state^control] + state=H[H[state]] + need(state in (0,2),'complete native herald triple') + flags[a,b,k]=state//2 + need(sum(flags.values())==10,'native herald acceptance count') + target_planes={(0,0):5,(1,0):3,(1,1):2} + rejected_planes={(0,0):3,(0,1):8,(1,0):5,(1,1):6} + worlds=0; branches=0; raw_cells=0; fail_rows=[]; terminal_branches=0 + for x,u,my,mr in product((0,1),repeat=4): + y=x^u; success=defaultdict(F); failure=defaultdict(F) + for a,b,k,z in product((0,1),(0,1),range(8),(0,1)): + worlds+=1 + raw=kernel_raw(table,x,u,my,mr,a,b) + phase=((0,y,0),raw,(0,0,z)) + if flags[a,b,k]: success[phase]+=F(1,64) + else: failure[phase]+=F(1,64) + reference={((0,y,0),(0,y^a,y^b),(0,0,z)):F(n,64) + for (a,b),n in target_planes.items() for z in (0,1)} + need(dict(success)==reference,'entire success physical phase law') + need(sum(success.values())==F(5,16),'success mass') + need(sum(failure.values())==F(11,16),'failure mass retained') + need(sum(success.values())+sum(failure.values())==1,'no discarded runs') + expected_failure=defaultdict(F) + for (a,b),n in rejected_planes.items(): + raw=(u,y,x&(1^u)) if (a,b)==(0,1) else (0,y^a,y^b) + need(kernel_raw(table,x,u,my,mr,a,b)==raw,'actual raw failure fields') + for z in (0,1):expected_failure[((0,y,0),raw,(0,0,z))]+=F(n,64) + need(dict(failure)==dict(expected_failure),'entire physical failure distribution retained') + # Same native source row must remain independent of ciphertext pads. + need(all(kernel_raw(table,x,u,my,mr,a,b)==kernel_raw(table,x,u,0,0,a,b) + for a,b in product((0,1),repeat=2)),'no hidden pad conditioning') + records=defaultdict(F) + for phase,mass in success.items():records[phase[1]]+=mass/F(5,16) + need(dict(records)=={(0,y,y):F(1,2),(0,1^y,y):F(3,10),(0,1^y,1^y):F(1,5)},'entire terminal current-port record') + for axis in ('X','R'): + for raw,prob in records.items(): + outcome=raw[1] if axis=='X' else raw[2] + if axis=='X': + quantum=F(1,2) + kappa=F(1) if outcome==y else F(3,5) if raw[2]==y else F(2,5) + else: + quantum=F(4,5) if outcome==y else F(1,5) + kappa=(F(5,8) if raw[1]==y else F(3,8)) if outcome==y else F(1) + need(prob==quantum*kappa,'complete raw terminal projector refinement on post-Y family') + bloch=(1-2*raw[1],1-2*y,F()) + determinant=(1-sum(v*v for v in bloch))/4 + need(determinant==F(-1,4),'unchanged whole-port posterior is not a reset state') + terminal_branches+=1 + branches+=2;raw_cells+=len(success)+len(failure) + if my==mr==0: + fail_rows.append({'x':x,'u':u,'pattern01':kernel_raw(table,x,u,0,0,0,1)}) + # Exact terminal law countercontrols; these are controls, not alternative native constructions. + correct={(a,b,z):F(n,20) for (a,b),n in target_planes.items() for z in (0,1)} + swapped={(a,b,z):F(n,20) for (a,b),n in {(0,0):5,(1,0):2,(1,1):3}.items() for z in (0,1)} + need(tv(correct,swapped)==F(1,10),'calibration mutant full-law difference') + shared={(a,b,a):F(n,10) for (a,b),n in target_planes.items()} + need(tv(correct,shared)==F(1,2),'shared-z joint defect') + need(all(sum(v for (a,b,z),v in shared.items() if z==r)==F(1,2) for r in (0,1)),'shared-z fair marginal control') + need(sum(F(1,64) for a,b,k,z in product((0,1),(0,1),range(8),(0,1)) if flags[a,b,k])!=1,'dropped failures rejected') + # Reusing old u as a gives deterministic X=x even when the total herald mass still agrees. + for x,u in product((0,1),repeat=2): + y=x^u; law=defaultdict(F);mass=F() + for b,k,z in product((0,1),range(8),(0,1)): + if flags[u,b,k]: + mass+=F(1,32);law[y^u]+=F(1,32) + need(mass==F(5,16),'reuse control same herald rate') + law={r:w/mass for r,w in law.items()} + need(tv(law,{0:F(1,2),1:F(1,2)})==F(1,2),'used-seed output defect') + # Actual combined source geometry: late local controller and separated remote programs. + T=185;P=12*840**T;S=T+P;R=S+68;L=R+9 + ports=[(0,T,0),(0,0,-8*T),(T,P,0),(-T,P,0),(4*T,P,0),(0,S,0),(12*R,0,0)] + controls=[(0,S,S+154),(1,S,S+153),(-1,S,S+153)] + dist=lambda a,b:sum(abs(c-d) for c,d in zip(a,b)) + need(all(dist(q,p)>L for q in controls for p in ports),'controller leaves all old histories through L unchanged') + need(all(dist(q,(0,S,76))>R+8 for q in controls),'controller cannot alter earlier Y read') + need(all(dist(q,(0,S,77))==L for q in controls),'actual current-boundary exceptions') + need(47*L>13*R and 48*L-13*R>L,'remote/new versus old cone separation') + need(96*L>2*L and 196*L<256*L+64*T+1,'remote cross cones and no wrap') + need(L%3==1 and H[4]==1,'native pure-A to D z phase') + # Conditional old-noise theorem applies to both selected slices: their initial cones exclude its bank. + need(dist((0,-1,0),(0,S,76))>R+8,'representative old frontier excluded from previous Y cone') + result={'schema':'oi.native-y.joint-phase-v10','verdict':'PASS_CONDITIONAL_NATIVE_FAMILY_PHASE_PREPARATION', + 'old_rows':16,'complete_seed_worlds':worlds,'success_failure_branches':branches, + 'raw_phase_cells_checked':raw_cells,'terminal_complete_record_branches':terminal_branches,'terminal_unchanged_decoder_determinant':'-1/4','fresh_bits':6,'success':'5/16','failure':'11/16', + 'success_plane_counts':[5,3,2],'fair_z_joint':True,'failure_pattern01_raw':fail_rows, + 'calibration_mutant_tv':'1/10','shared_z_joint_tv':'1/2','old_seed_reuse_X_tv':'1/2', + 'noise_factor':'2^(-(6*P+18*d+189)) under retained bank theorem', + 'phase_decoder':'(previous q8.B,current q9.B,current q9.D,current z.D), reordered X,Y,R,Z', + 'readout_and_reuse':'Permitted whole-q9 terminal X/R refinement passes on post-Y family; previous-slice Y delivery and native next-stage reset remain OPEN', + 'arbitrary_q8_socket':'FAILS retained intervention check', + 'scope':'Conditional original-time native-family phase preparation with explicit terminal failures; no reusable instrument or OI-QM equivalence.'} + print(json.dumps(result,indent=2,sort_keys=True)) + +if __name__=='__main__':main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/result.json new file mode 100644 index 000000000..1031aa258 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/result.json @@ -0,0 +1,65 @@ +{ + "arbitrary_q8_socket": "FAILS retained intervention check", + "calibration_mutant_tv": "1/10", + "complete_seed_worlds": 1024, + "failure": "11/16", + "failure_pattern01_raw": [ + { + "pattern01": [ + 0, + 0, + 0 + ], + "u": 0, + "x": 0 + }, + { + "pattern01": [ + 1, + 1, + 0 + ], + "u": 1, + "x": 0 + }, + { + "pattern01": [ + 0, + 1, + 1 + ], + "u": 0, + "x": 1 + }, + { + "pattern01": [ + 1, + 0, + 0 + ], + "u": 1, + "x": 1 + } + ], + "fair_z_joint": true, + "fresh_bits": 6, + "noise_factor": "2^(-(6*P+18*d+189)) under retained bank theorem", + "old_rows": 16, + "old_seed_reuse_X_tv": "1/2", + "phase_decoder": "(previous q8.B,current q9.B,current q9.D,current z.D), reordered X,Y,R,Z", + "raw_phase_cells_checked": 208, + "readout_and_reuse": "Permitted whole-q9 terminal X/R refinement passes on post-Y family; previous-slice Y delivery and native next-stage reset remain OPEN", + "schema": "oi.native-y.joint-phase-v10", + "scope": "Conditional original-time native-family phase preparation with explicit terminal failures; no reusable instrument or OI-QM equivalence.", + "shared_z_joint_tv": "1/2", + "success": "5/16", + "success_failure_branches": 32, + "success_plane_counts": [ + 5, + 3, + 2 + ], + "terminal_complete_record_branches": 96, + "terminal_unchanged_decoder_determinant": "-1/4", + "verdict": "PASS_CONDITIONAL_NATIVE_FAMILY_PHASE_PREPARATION" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/review/INPUT-HASHES.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/review/INPUT-HASHES.json new file mode 100644 index 000000000..90b175c1a --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/review/INPUT-HASHES.json @@ -0,0 +1,37 @@ +{ + "author_commit": "9b334367864c39e969072d9fbd46b0c049584963", + "files": { + "../branch_v10/local-controller/symmetric-result.json": { + "git_blob": "4f742a823c71175ec111edbe6195ba07d85f6c07", + "sha256": "d8e7c1f5841192165beefb3fe35b069cc14cc93f2faa2bd68619aa7748b3db2f" + }, + "../parallel_v3/direct_reset/herald.json": { + "git_blob": "e48fb2f99382336489537c5ae7d0ada4a2e04972", + "sha256": "406befa2c8d1f663856a78ca6cb632e9c61d1233b02a9d532c7cb43d6261ce64" + }, + "PLAN.md": { + "git_blob": "191379ee1e657a447c8c5c897e905f1766329050", + "sha256": "5a46485e139225d50c4a05c97502cbda8a6204ed381a3474978726823e0ace0a" + }, + "PROVENANCE.json": { + "git_blob": "22556e8393b483d6743a2d5c5cce70e7aebd38e8", + "sha256": "b16c365aa557851653b8882da2e7c8370416438a09c1a869e1e2cb071397a8b1" + }, + "REPORT.md": { + "git_blob": "fef2a6d5138eb983c95de1a58a01d3ed28f4e9ed", + "sha256": "a4d4be43a9229166e57555daa637f3bf82b7407443746e4ff10515d2f017ba47" + }, + "SHA256SUMS": { + "git_blob": "45eed1a043d4eb7a76e1eaab19fad6d63ae22c01", + "sha256": "3ecb7f00c25b4cae6f9d873c10ac773d781a383273e73e4e5b84b1cad9f94cc7" + }, + "checks.py": { + "git_blob": "f719ff7ecce1ec1efa6525d57e45743d8b8f2ce9", + "sha256": "fc90f5a9fbbc04cec9788ea7e4faa69ffaa646b72310249813a8e29a26e8d21b" + }, + "result.json": { + "git_blob": "1031aa258de167cd15d81f1e5718799237fe79d3", + "sha256": "9f83513141744f25c04efb4c1f4c6a23e36942e27c3910b8a3c72e5fa1093ecc" + } + } +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/review/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/review/REPORT.md new file mode 100644 index 000000000..e988563dd --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/review/REPORT.md @@ -0,0 +1,128 @@ +# Separate integration review of the native post-Y phase law + +**Verdict: ACCEPT within the conditional phase-preparation and restricted +terminal-record scope; no blocking findings.** + +Reviewed author revision: +`9b334367864c39e969072d9fbd46b0c049584963`, `phase_joint_v10/` on #910. +This reviewer did not author the integration report, controller or remote +herald. This is internal separate-agent review, not owner adoption, external +validation, a new Lean theorem or a reusable-instrument designation. + +## Independently checked assembly + +The six author files were fetched at the immutable reviewed revision and +their Git blob identities matched the reviewed local bytes. The published +controller table and retained herald program also matched their pinned +source hashes. The author manifest and normal/optimized replays pass. +INPUT-HASHES.json records the final reviewed identities. + +The reviewer checker imports no author evaluator. It reconstructs the +complete controller-table index from its published lexicographic ordering, +evaluates the original 2,684-step predicate word using tuple-valued H, checks +the all-state identity padding, and applies the two final native H steps. +It combines those actual values with the independently phased fair z source. +For all 16 old x,u,mY,mR rows, it enumerates all 64 new a,b,K,z worlds: +1,024 worlds, 32 successful/failed measures and 208 nonzero selected raw +phase cells. Every row has 20 successful and 44 failed worlds. + +The full selected success phase, rather than only one-sign marginals, is +exactly the supplied post-Y law with plane counts 5:3:2 and independent z. +It is common at fixed y=x XOR u across all old rows. The fixed Bloch decoder +gives the pure Y state (0,(-1)^y,0); the separate R sign expectation is +(3/5)(-1)^y, as required by the calibrated R direction. + +Rejected counts are 3,8,5,6 for 00,01,10,11. The physical pattern01 triple +is (u,y,x(1 XOR u)); the four old x,u cases give 000,110,011,100. Those +fields, previous q8 and fair z are included in the exact rejected phase +measure. They are not replaced by a qubit failure output. "Complete" in +this calculation means the named selected phase fields and offered-carrier +convention, not every lattice field of the full apparatus. + +## Coexistence and history factor + +The earlier separate reviews supply the native controller dynamics and +remote arbitrary-length source compiler. This integration review reads +those proofs and verifies their compatibility; it does not relabel their +computations as newly performed native simulations. + +The local J/Kplus/Kminus are original-time q9 boundary exceptions. They +cannot change any of the seven old public ports through L or the earlier +q8 read. The independent geometry checks all seven complete frontier ray +segments against both selected q8/q9 dependency cones: 14 exact exclusions, +using each segment's closest point rather than sampling indices. It also +checks that no local exception equals a frontier coordinate. The existing +q9 ready ball is unchanged. The remote current/previous cones are outside +the old |x|<=13R envelope and are disjoint from each other. The enlarged +no-wrap lift admits all of them simultaneously. + +Sharing the same a,b with the remote compiler and local controller is +required; it is not an extra independent redraw. The stipulated six-bit +new bank remains independent of old variables. Source separation means +earlier informative D, including y and older flags, does not use those new +bits. No argument assumes the old used u stays fair after conditioning. + +The chronological bank-to-record proof is valid for every fixed complement, +including all shared new seeds. Its unchanged free bank has +B=6P+18d+189 bits. Therefore its old noise word N is uniform conditional +on that complement. D, G and the selected phase fields are functions of the +complement because their cones exclude the bank. Multiplying this conditional +uniform law by the independently verified finite seed law gives the report's +joint factor 2^(-B), before and after either new herald branch. Mixing old +rows conditional on D preserves it because the selected success law depends +only on the recorded y. This is a written arbitrary-size argument; finite +enumeration does not simulate all noise words or all L native ticks. + +The formula applies only on nonzero-probability incoming histories satisfying +the retained native-family assumptions. Earlier terminal flags remain in D. +Their no-offered-carrier convention is retained even if the physical new G +happens to be one. The proof does not restart a quantum instrument after an +earlier terminal failure or infer a post-failure quantum state. + +## Whole-port terminal refinement and its limit + +For a successful post-Y_y phase, the whole q9 records (X,R) are +(y,y), (1-y,y), (1-y,1-y), with probabilities 1/2,3/10,1/5. +Under the candidate's stipulated single whole-q9 terminal read, the +designated X outcome is fair. Its supplementary R factor is deterministic +when X=y, and 3/5 versus 2/5 when X differs from y. For the designated R +outcome, probabilities are 4/5 and 1/5. Conditional on R=y, the X factors +are 5/8 and 3/8; conditional on R differing from y, X differs from y +deterministically. These are exact factors of the complete raw record, not +an assumption that unchosen fields are invisible. + +The independent checker verifies all 128 old-row/setting/raw-outcome +identities including zero-probability records (96 are nonzero, agreeing with +the author's count). Each supplementary factor +depends only on already-public y, chosen setting and designated outcome. +This is a valid terminal-record refinement on the specified post-Y family. +It does not establish the same refinement on an arbitrary input cone, native +selective field access, or a general menu instrument. Any X-to-Y history +comparison continues to inherit its predecessor's native-family assumptions. + +After observing the whole q9 port and offering the unchanged sampled phase, +the fixed decoder conditions on definite X and Y simultaneously. Each of +the three nonzero raw records has normalized determinant -1/4, for all +four old x,u cases. The independent checker verifies these twelve posteriors. +Thus terminal-record correctness cannot be upgraded to a valid outgoing +state without a new reset/back-action or another justified interface. +Previous-slice Y access, arbitrary late-q8 responsiveness and next-stage +closure remain open. No observer access rule is derived or adopted here. + +## Replay + +From `phase_joint_v10/review/` in the retained tree: + +```sh +python3 checks.py > replay.json +python3 -O checks.py > replay-O.json +cmp result.json replay.json +cmp result.json replay-O.json +sha256sum -c SHA256SUMS +``` + +An optional `--source-root PATH` names the containing checkpoint in a sparse +copy. Both reviewer runs are byte-identical; controls raise on failure. +Only Python's standard library and the two pinned source data files are +needed. The previous full native suite is not rerun. #885, frozen records, +physical premises and acceptance rules are unchanged. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/review/SHA256SUMS new file mode 100644 index 000000000..a6e544cfd --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/review/SHA256SUMS @@ -0,0 +1,4 @@ +b9c1e8a16f9a3beab8eeccd1349d5548a34a9f41fb74a9d2c05a4338c75c90d4 REPORT.md +217d2567a18d5c45e988741d2ae0d0545343127cf7138c8328d8521cd3787f9a INPUT-HASHES.json +02a317a078e500f817bf0817e471c705044640b7e815dfadca7635e6e38af84f checks.py +dd4b64c9da0c57fc59422385ef56e6282935e5dc709e684b26932a5595a7da32 result.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/review/checks.py new file mode 100644 index 000000000..63707b710 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/review/checks.py @@ -0,0 +1,136 @@ +#!/usr/bin/env python3 +"""Independent finite source-law assembly; no author evaluator imported.""" +import argparse +from collections import Counter +from fractions import Fraction as Q +import hashlib +from itertools import product +import json +from pathlib import Path + +INPUTS={'branch_v10/local-controller/symmetric-result.json':'d8e7c1f5841192165beefb3fe35b069cc14cc93f2faa2bd68619aa7748b3db2f', + 'parallel_v3/direct_reset/herald.json':'406befa2c8d1f663856a78ca6cb632e9c61d1233b02a9d532c7cb43d6261ce64'} + +def need(ok,label): + if not ok: raise RuntimeError(label) +def bits(v): return ((v>>2)&1,(v>>1)&1,v&1) +def h(t): a,b,c=t;return b,c,a^(b&c) +def xor(a,b): return tuple(x^y for x,y in zip(a,b)) +def decoder(phase): previous,current,z=phase;return current[1],previous[1],current[2],z[2] +def bloch(mu): + return (sum(mu.values()),)+tuple(sum(w*(-1)**j[k] for j,w in mu.items()) for k in (0,1,3)) +def tv(a,b): return sum(abs(a.get(k,0)-b.get(k,0)) for k in a.keys()|b.keys())/2 +def distance(a,b): return sum(abs(x-y) for x,y in zip(a,b)) + +def run(root): + values={} + for path,digest in INPUTS.items(): + raw=(root/path).read_bytes();need(hashlib.sha256(raw).hexdigest()==digest,'pinned input '+path) + values[path]=json.loads(raw) + local=values['branch_v10/local-controller/symmetric-result.json'] + # Reconstruct tuple keys from the full published lexicographic enumeration. + keys=product(range(2),range(2),range(2),range(2),range(2),range(2),range(8),range(8),range(8)) + table={key:bits(int(value,16)) for key,value in zip(keys,local['q9_table_hex'])} + need(len(table)==32768,'complete table size') + word=values['parallel_v3/direct_reset/herald.json']['program'][:2684] + flags={} + for a,b,k in product((0,1),(0,1),range(8)): + vector=(a,b,k&1,(k>>1)&1,(k>>2)&1);state=(0,0,0) + for constant,terms in word: + injection=bits(constant) + for index,mask in terms: + if vector[index]: injection=xor(injection,bits(mask)) + state=h(xor(state,injection)) + need(state in ((0,0,0),(1,0,0)),'predicate before phase rotation') + state=h(h(state));flags[a,b,k]=state[1] + need(state==(0,int(k<{(0,0):5,(0,1):0,(1,0):3,(1,1):2}[a,b]),0),'complete herald predicate') + for start in product((0,1),repeat=3): + v=start + for control in (2,3,3,3,3,7): v=h(xor(v,bits(control))) + need(v==start,'all-state padding identity') + worlds=0; raw_cells=0; records=[]; posteriors=[]; common={};refinement_cases=0 + for x,u,my,mr in product((0,1),repeat=4): + y=x^u; success=Counter();failed=Counter() + for a,b,k,z in product((0,1),(0,1),range(8),(0,1)): + current=table[x,u,my,mr,a,b,4,5,7] + phase=((0,y,0),current,(0,0,z)) + (success if flags[a,b,k] else failed)[phase]+=1 + worlds+=1 + expected_success=Counter();expected_failure=Counter() + for (a,b),accept in {(0,0):5,(0,1):0,(1,0):3,(1,1):2}.items(): + physical=(u,y,x*(1-u)) if (a,b)==(0,1) else (0,y^a,y^b) + for z in (0,1): + phase=((0,y,0),physical,(0,0,z)) + if accept: expected_success[phase]+=accept + expected_failure[phase]+=8-accept + need(success==expected_success and failed==expected_failure,'full selected physical success/failure laws') + need(sum(success.values())==20 and sum(failed.values())==44,'64-world normalization') + raw_cells+=len(success)+len(failed) + mu={decoder(phase):Q(n,20) for phase,n in success.items()} + need(bloch(mu)==(1,0,(-1)**y,0),'fixed calibrated post-Y Bloch state') + need(sum(w*(-1)**j[2] for j,w in mu.items())==Q(3,5)*(-1)**y,'terminal R marginal') + need(mu==common.setdefault(y,mu),'same selected-phase law at fixed y') + # Compare complete raw q9 records, never a selected field alone. + raw_record={} + for phase,n in success.items():raw_record[phase[1]]=raw_record.get(phase[1],Q(0))+Q(n,20) + for axis,xx,rr in product(('X','R'),(0,1),(0,1)): + if axis=='X': + outcome=xx; quantum_probability=Q(1,2) + refinement=(Q(int(rr==y)) if xx==y else Q(3,5) if rr==y else Q(2,5)) + else: + outcome=rr; quantum_probability=Q(4,5) if rr==y else Q(1,5) + refinement=(Q(5,8) if xx==y else Q(3,8)) if rr==y else Q(int(xx!=y)) + need(raw_record.get((0,xx,rr),Q(0))==quantum_probability*refinement, + 'whole-port terminal projector/refinement law') + refinement_cases+=1 + records.append({'x':x,'u':u,'mY':my,'mR':mr,'success_worlds':20,'failure_worlds':44, + 'physical_raw_cells':len(success)+len(failed)}) + if my==mr==0: + # A whole q9 read fixes both X and R; retain that exact record. + for raw in sorted({phase[1] for phase in success}): + chosen={decoder(phase):Q(n,20) for phase,n in success.items() if phase[1]==raw} + mass=sum(chosen.values());conditional={j:w/mass for j,w in chosen.items()} + t,bx,by,bz=bloch(conditional) + determinant=(t*t-bx*bx-by*by-bz*bz)/4 + need(determinant==Q(-1,4),'unchanged carrier after whole q9 read not positive') + posteriors.append({'x':x,'u':u,'raw_q9':list(raw),'probability':str(mass), + 'unchanged_decoder_determinant':str(determinant)}) + need(worlds==1024 and raw_cells==208,'assembly counts') + correct={(a,b,z):Q(n,20) for a,b,n in ((0,0,5),(1,0,3),(1,1,2)) for z in (0,1)} + swapped={(a,b,z):Q(n,20) for a,b,n in ((0,0,5),(1,0,2),(1,1,3)) for z in (0,1)} + shared={(a,b,a):Q(n,10) for a,b,n in ((0,0,5),(1,0,3),(1,1,2))} + need(tv(correct,swapped)==Q(1,10) and tv(correct,shared)==Q(1,2),'full-law countercontrols') + T=185;P=12*840**185;S=T+P;R=S+68;L=R+9 + need((P-2424)%6==0 and 2684+6*((P-2424)//6)+2==L,'actual native schedule') + need(L%3==1 and h((1,0,0))==(0,0,1),'fair-z phase') + q8=(0,S,76);q9=(0,S,77) + controls=[(0,S,S+154),(1,S,S+153),(-1,S,S+153)] + ports=[((0,T,0),T,(0,-1,0)),((0,0,-8*T),T,(0,0,-1)),((T,P,0),S,(0,1,0)), + ((-T,P,0),S,(0,1,0)),((4*T,P,0),S,(0,1,0)),((0,S,0),S,(0,1,0)),((12*R,0,0),R,(-1,0,0))] + cone_tests=0 + for port,deadline,direction in ports: + axis=next(i for i,v in enumerate(direction) if v) + for center,radius in ((q8,L-1),(q9,L)): + t=max(deadline+1,min(L,(center[axis]-port[axis])*direction[axis])) + nearest=tuple(p+t*v for p,v in zip(port,direction)) + need(distance(nearest,center)>radius,'entire old-bank ray excludes selected phase cone') + cone_tests+=1 + for control in controls: + need(distance(control,port)>L,'new controls cannot change old public history') + t=(control[axis]-port[axis])*direction[axis] + point=tuple(p+t*v for p,v in zip(port,direction)) + need(point!=control or not deadlineL-1 for c in controls),'local source exceptions') + need(47*L>13*R and 48*L-13*R>L and 96*L>2*L,'remote/current/old cone disjointness') + need(196*L<256*L+64*T+1,'enlarged no-wrap lift bound') + return {'schema':'oi-joint-phase-independent-review-v1','verdict':'PASS', + 'seed_worlds':worlds,'success_failure_branches':32,'physical_raw_cells':raw_cells, + 'old_rows':records,'success_mass':'5/16','terminal_failure_mass':'11/16', + 'calibrated_post_Y_Bloch_check':'PASS','whole_q9_read_posteriors':posteriors, + 'complete_terminal_refinement_cases_including_zeros':refinement_cases, + 'bank_ray_selected_cone_tests':cone_tests, + 'scope':'conditional native-family selected phase law; inherited native dynamics and arbitrary-noise proof; readout/reuse open'} + +if __name__=='__main__': + parser=argparse.ArgumentParser();parser.add_argument('--source-root',type=Path,default=Path(__file__).resolve().parents[2]) + args=parser.parse_args();print(json.dumps(run(args.source_root),indent=2,sort_keys=True)) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/review/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/review/result.json new file mode 100644 index 000000000..c35ea04f0 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/phase_joint_v10/review/result.json @@ -0,0 +1,293 @@ +{ + "bank_ray_selected_cone_tests": 14, + "calibrated_post_Y_Bloch_check": "PASS", + "complete_terminal_refinement_cases_including_zeros": 128, + "old_rows": [ + { + "failure_worlds": 44, + "mR": 0, + "mY": 0, + "physical_raw_cells": 12, + "success_worlds": 20, + "u": 0, + "x": 0 + }, + { + "failure_worlds": 44, + "mR": 1, + "mY": 0, + "physical_raw_cells": 12, + "success_worlds": 20, + "u": 0, + "x": 0 + }, + { + "failure_worlds": 44, + "mR": 0, + "mY": 1, + "physical_raw_cells": 12, + "success_worlds": 20, + "u": 0, + "x": 0 + }, + { + "failure_worlds": 44, + "mR": 1, + "mY": 1, + "physical_raw_cells": 12, + "success_worlds": 20, + "u": 0, + "x": 0 + }, + { + "failure_worlds": 44, + "mR": 0, + "mY": 0, + "physical_raw_cells": 14, + "success_worlds": 20, + "u": 1, + "x": 0 + }, + { + "failure_worlds": 44, + "mR": 1, + "mY": 0, + "physical_raw_cells": 14, + "success_worlds": 20, + "u": 1, + "x": 0 + }, + { + "failure_worlds": 44, + "mR": 0, + "mY": 1, + "physical_raw_cells": 14, + "success_worlds": 20, + "u": 1, + "x": 0 + }, + { + "failure_worlds": 44, + "mR": 1, + "mY": 1, + "physical_raw_cells": 14, + "success_worlds": 20, + "u": 1, + "x": 0 + }, + { + "failure_worlds": 44, + "mR": 0, + "mY": 0, + "physical_raw_cells": 12, + "success_worlds": 20, + "u": 0, + "x": 1 + }, + { + "failure_worlds": 44, + "mR": 1, + "mY": 0, + "physical_raw_cells": 12, + "success_worlds": 20, + "u": 0, + "x": 1 + }, + { + "failure_worlds": 44, + "mR": 0, + "mY": 1, + "physical_raw_cells": 12, + "success_worlds": 20, + "u": 0, + "x": 1 + }, + { + "failure_worlds": 44, + "mR": 1, + "mY": 1, + "physical_raw_cells": 12, + "success_worlds": 20, + "u": 0, + "x": 1 + }, + { + "failure_worlds": 44, + "mR": 0, + "mY": 0, + "physical_raw_cells": 14, + "success_worlds": 20, + "u": 1, + "x": 1 + }, + { + "failure_worlds": 44, + "mR": 1, + "mY": 0, + "physical_raw_cells": 14, + "success_worlds": 20, + "u": 1, + "x": 1 + }, + { + "failure_worlds": 44, + "mR": 0, + "mY": 1, + "physical_raw_cells": 14, + "success_worlds": 20, + "u": 1, + "x": 1 + }, + { + "failure_worlds": 44, + "mR": 1, + "mY": 1, + "physical_raw_cells": 14, + "success_worlds": 20, + "u": 1, + "x": 1 + } + ], + "physical_raw_cells": 208, + "schema": "oi-joint-phase-independent-review-v1", + "scope": "conditional native-family selected phase law; inherited native dynamics and arbitrary-noise proof; readout/reuse open", + "seed_worlds": 1024, + "success_failure_branches": 32, + "success_mass": "5/16", + "terminal_failure_mass": "11/16", + "verdict": "PASS", + "whole_q9_read_posteriors": [ + { + "probability": "1/2", + "raw_q9": [ + 0, + 0, + 0 + ], + "u": 0, + "unchanged_decoder_determinant": "-1/4", + "x": 0 + }, + { + "probability": "3/10", + "raw_q9": [ + 0, + 1, + 0 + ], + "u": 0, + "unchanged_decoder_determinant": "-1/4", + "x": 0 + }, + { + "probability": "1/5", + "raw_q9": [ + 0, + 1, + 1 + ], + "u": 0, + "unchanged_decoder_determinant": "-1/4", + "x": 0 + }, + { + "probability": "1/5", + "raw_q9": [ + 0, + 0, + 0 + ], + "u": 1, + "unchanged_decoder_determinant": "-1/4", + "x": 0 + }, + { + "probability": "3/10", + "raw_q9": [ + 0, + 0, + 1 + ], + "u": 1, + "unchanged_decoder_determinant": "-1/4", + "x": 0 + }, + { + "probability": "1/2", + "raw_q9": [ + 0, + 1, + 1 + ], + "u": 1, + "unchanged_decoder_determinant": "-1/4", + "x": 0 + }, + { + "probability": "1/5", + "raw_q9": [ + 0, + 0, + 0 + ], + "u": 0, + "unchanged_decoder_determinant": "-1/4", + "x": 1 + }, + { + "probability": "3/10", + "raw_q9": [ + 0, + 0, + 1 + ], + "u": 0, + "unchanged_decoder_determinant": "-1/4", + "x": 1 + }, + { + "probability": "1/2", + "raw_q9": [ + 0, + 1, + 1 + ], + "u": 0, + "unchanged_decoder_determinant": "-1/4", + "x": 1 + }, + { + "probability": "1/2", + "raw_q9": [ + 0, + 0, + 0 + ], + "u": 1, + "unchanged_decoder_determinant": "-1/4", + "x": 1 + }, + { + "probability": "3/10", + "raw_q9": [ + 0, + 1, + 0 + ], + "u": 1, + "unchanged_decoder_determinant": "-1/4", + "x": 1 + }, + { + "probability": "1/5", + "raw_q9": [ + 0, + 1, + 1 + ], + "u": 1, + "unchanged_decoder_determinant": "-1/4", + "x": 1 + } + ] +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/replay.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/replay.py new file mode 100644 index 000000000..1b42fc373 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/replay.py @@ -0,0 +1,117 @@ +"""Replay the scoped checkpoint without modifying its tracked scientific files.""" +from pathlib import Path +import hashlib +import json +import py_compile +import shutil +import subprocess +import sys +import tempfile + +ROOT = Path(__file__).resolve().parent + + +def require(condition, message): + if not condition: + raise RuntimeError(message) + + +def digest(path): + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def main(): + require(sys.argv[1:] in ([], ['--latest']), 'usage: replay.py [--latest]') + for line in (ROOT / 'SHA256SUMS').read_text().splitlines(): + expected, name = line.split(' ', 1) + require(digest(ROOT / name) == expected, 'manifest mismatch: ' + name) + reviewed = json.loads((ROOT / 'parallel_v3/review/INPUT-HASHES.json').read_text()) + for name, expected in reviewed.items(): + require(digest(ROOT / name) == expected, 'reviewed bytes changed: ' + name) + current_review = json.loads((ROOT / 'junction_v4/review/INPUT-HASHES.json').read_text()) + prefix = 'repo_checkpoint/payload/' + for name, expected in current_review.items(): + if name.startswith(prefix): + require(digest(ROOT / name[len(prefix):]) == expected, + 'new reviewed bytes changed: ' + name) + tests = [('continuation', 'checks'), ('continuation', 'symbolic')] + tests += [('parallel_v3/' + track, 'checks') for track in + ('aux_routing', 'history_control', 'direct_reset', 'new_geometry')] + tests += [('parallel_v3/review', name) for name in + ('checks', 'sidecar_check', 'gadgets_check', 'contract_check', + 'geometry_check', 'herald_check')] + tests += [('parallel_v3/integration', 'tagged_contract')] + tests += [('junction_v4', 'checks'), ('junction_v4/review', 'checks')] + tests += [('six_source_v5/period', 'checks'), ('six_source_v5', 'checks'), + ('six_source_v5/review', 'checks')] + tests += [('outward_v6', 'checks'), ('outward_v6', 'correction_checks'), + ('outward_v6/review', 'checks')] + tests += [('reset_v7', 'probe'), ('reset_v7/review', 'checks')] + tests += [('reset_v8', 'probe'), ('reset_v8/review', 'checks')] + tests += [('history_v9', 'checks'), ('history_v9/review', 'checks'), + ('reset_v9', 'checks'), ('reset_v9/review', 'checks'), + ('reset_v9/review', 'history_corollary')] + retained_v10 = [('branch_v10', 'checks'), ('branch_v10/review', 'checks'), + ('herald_v10', 'checks'), ('herald_v10/review', 'checks'), + ('layout_v10', 'checks'), ('layout_v10/review', 'checks'), + ('branch_v10/local-controller', 'checks', [], 'single-result.json'), + ('branch_v10/local-controller', 'checks', ['--symmetric'], 'symmetric-result.json'), + ('branch_v10/local-controller/review', 'checks'), + ('phase_joint_v10', 'checks'), ('phase_joint_v10/review', 'checks')] + retained_v11 = [(folder, 'checks', [], 'result.json') for folder in ( + 'native_v11', 'native_v11/review', + 'transport_audit_v1', 'transport_audit_v1/review', + 'history_v11', 'history_v11/review', + 'native_pool_v11', 'native_pool_v11/review')] + retained_v12 = [(folder, 'checks', [], 'result.json') for folder in ( + 'native_x_v12', 'native_x_v12/review', + 'native_seed_v12', 'native_seed_v12/review')] + latest = [(folder, 'checks', [], 'result.json') for folder in ( + 'native_gate_v13', 'native_gate_v13/review', + 'native_route_v13', 'native_route_v13/review', 'native_decode_v14')] + latest += [('native_decode_v14/review/round1', 'review_checks', ['.'], + 'out/review_checks.out'), + ('native_vread_v15', 'checks', [], 'result.json')] + tests = latest if sys.argv[1:] == ['--latest'] else tests + retained_v10 + retained_v11 + retained_v12 + latest + with tempfile.TemporaryDirectory(prefix='native-y-replay-') as directory: + work = Path(directory) / 'checkpoint' + shutil.copytree(ROOT, work, ignore=shutil.ignore_patterns('__pycache__')) + for source in work.rglob('*.py'): + py_compile.compile(str(source), doraise=True) + for spec in tests: + folder, name = spec[:2] + arguments = spec[2] if len(spec) > 2 else [] + explicit_output = spec[3] if len(spec) > 3 else None + script = work / folder / (name + '.py') + output_name = 'review-normal.out' if folder == 'junction_v4/review' else name + '.out' + if folder in ('reset_v7', 'reset_v7/review', 'reset_v8'): + output_name = 'results.json' + if folder in ('reset_v8/review', 'reset_v9', 'reset_v9/review'): + output_name = 'result.json' + if folder in ('history_v9', 'history_v9/review'): + output_name = 'results.json' + if name == 'history_corollary': + output_name = 'history-corollary-result.json' + if folder.startswith(('branch_v10', 'herald_v10', 'phase_joint_v10')): + output_name = 'result.json' + if folder.startswith('layout_v10'): + output_name = 'results.json' + if explicit_output: + output_name = explicit_output + expected = (work / folder / output_name).read_bytes() + for options in ([], ['-O']): + result = subprocess.run( + [sys.executable, *options, str(script), *arguments], cwd=work, + capture_output=True, timeout=180) + require(result.returncode == 0, + 'checker failed: ' + folder + '/' + name + '\n' + + result.stderr.decode(errors='replace')) + require(result.stdout == expected, + 'recorded output mismatch: ' + folder + '/' + name) + label = folder + '/' + name + (' ' + ' '.join(arguments) if arguments else '') + print('PASS: ' + label + ' normal/-O/recorded', flush=True) + print('PASS: checkpoint replay', flush=True) + + +if __name__ == '__main__': + main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/PROBE-PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/PROBE-PLAN.md new file mode 100644 index 000000000..5fc820a02 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/PROBE-PLAN.md @@ -0,0 +1,56 @@ +# Native Y reset: actual q7 interface and one-step continuation + +Research only, consistency axis. This is an initial probe plan, written before +the new computations. It starts from the corrected #910 q7 construction; no +generic cold socket, reset, decoder, fresh resource, or access rule is assumed. + +## Fixed target and preparation + +The #885 reset target is an outgoing carrier decoding to +`(y XOR a, y, y XOR b, z)`, with `ab=00,10,11` in ratio `5:3:2` and +fresh fair `z`, conditional on every earlier outcome and herald. The whole +public history, outgoing carrier and failures must be checked jointly. + +Set `N=R+7`, `q7=qY+7 e_z`. The adopted initial q7 ready region is current +`B_N(q7)` and previous `B_(N-1)(q7)`, preserving the stated lower sources, +the upper pulse `Q=(u,0,1)`, and its correction `C=(u,0,u)` at +`f=q7+N e_z`. It produces the native endpoint `(0,0,y)` with `y=x XOR u`. +The informative earlier prefix stays private under the supplied delayed-access +rule. No preparation after initial time is permitted. + +## Preregistered bounded probe and decision rule + +1. Export the actual old local triple and six incoming triples that produce q7, + for all 32 qY.D diagnostic rows and the separate q2.A diagnostic. Check the + exact native recurrence and reproduce the clean native family. These are + the known incoming two slices, not a cold neighborhood. +2. Test the next straight outward site `q8` at `N+1`. Audit whether its cone + is determined by the adopted q7 preparation. A first-arrival initial triple + at `g=q7+(N+2)e_z=f+2e_z` is a possible missing boundary resource. + If its exact transfer is bijective while preserving the q7 prefix and + original readouts, classify unqualified immediate continuation as + underdetermined, scoped to this direction and this preparation. +3. Explicitly study one initial-only extension: current `B_(N+1)(q8)` and + previous `B_N(q8)`, preserving all original sources and C, and leave only + the triple G at g variable. Evaluate the full nonlinear Q/C/G upper + cluster with the exact bounded-lag strip and actual giant-period shift; + retain lower-source interactions in the local diamond. This extension is + a tested candidate, not silently part of the adopted q7 construction. +4. Enumerate the eight G values independently for each apparatus seed u. A + candidate immediate routing exists in this finite family only if a choice + `G(u)` independent of unknown x and diagnostic input gives the common + one-hop code `(0,y,0)` for both x values. Separately replace only q7.D at N + by a free p7, keeping its actual native past, and require `(0,p7,0)` for + every row for a reusable local routing claim. If no choice succeeds, + report this finite-family obstruction, not a general native no-go. + +Controls required before any verdict: exact inherited file digests; actual-P +period divisibility; direct native small-coordinate control of the full +multi-pulse strip; G=0 agreement with an independent Q/C evaluator; +first-arrival geometry and source/readiness exclusions; q7 and q2 inherited +diagnostics; the full final two-slice recurrence. Structured JSON records +measurements and verdicts. Normal and `python -O` runs must replay identically. + +Even a successful routing probe does not establish the 5:3:2 sampler, fresh z, +conditional resource independence, a reset herald, or a joint instrument law. +Those require additional explicit native constructions. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/PROVENANCE.json new file mode 100644 index 000000000..03dc363a9 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/PROVENANCE.json @@ -0,0 +1,13 @@ +{ + "inherited_files": { + "inherited_model.py": "dfb056bfe91372b44787d962e63d83ae7109802b38034b661e1c3275a63e146b", + "inherited_correction_model.py": "81fb9162229409e42d4383274c91988b94c8727dc70d9398cc1ca1ac51a38ee4" + }, + "source_paths": { + "inherited_model.py": "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/model.py", + "inherited_correction_model.py": "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/outward_v6/correction_model.py" + }, + "scope": "Research-only exact q7 interface and one-step q8 initial extension; no remote writes.", + "source_commit": "5f6786d6f02605f8e8821a536b678495e19015da", + "geometry_path": "../parallel_v3/history_control/SOURCE-GEOMETRY.json" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/REPORT.md new file mode 100644 index 000000000..f1d7203f0 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/REPORT.md @@ -0,0 +1,149 @@ +# Native Y reset: exact q7 interface and the next outward tick + +Research only, consistency axis. The corrected native q7 code remains `(0,0,y)`. +This checkpoint supplies its actual incoming neighborhood and excludes a specific +immediate continuation: one further outward tick, with one added initial +apparatus boundary triple depending only on u, cannot produce any common +full-triple encoding of y. It also cannot be a history-independent q7 input +socket. No general native reset impossibility is claimed. + +The fixed #885 target is an outgoing carrier decoding to +`(y XOR a,y,y XOR b,z)`, with `ab=00,10,11` in ratio `5:3:2` and fresh fair z, +conditional on every earlier outcome and herald, including every failure branch. +No part of that reset distribution is constructed here. + +## Actual native interface + +Use XOR arithmetic. `T=185`, `P=12*840^185`, `S=P+185`, `d=68`, `R=S+d`, +`N=R+7`, and `q7=qY+7e_z`. Coordinates below are relative to qY. The preparation +is the existing current ball `B_N(q7)` and previous ball `B_(N-1)(q7)`, preserving +the original sources, upper pulse `Q=(u,0,1)`, and correction `C=(u,0,u)` at +`f=(0,S,S+2d+14)`. The native signal is `y=x XOR u`. + +The old local triple at time N−2 is **111**, not blank. At time N−1 the six +incoming neighbors are exactly: + +| Neighbor relative to qY | Native triple | +| --- | --- | +| `(-1,0,7)` | `(1 XOR u,1,u*mR)` | +| `(1,0,7)` | `(1 XOR u,1,u*mY)` | +| `(0,-1,7)` | `(1 XOR u,1,x*u)` | +| `(0,1,7)` | `(1 XOR u,1,u*(mY XOR mR))` | +| `(0,0,6)` | `(1 XOR x,0,1 XOR x*u)` | +| `(0,0,8)` | `(1 XOR u,1,0)` | + +Their XOR is `(y,1,1)`; the native update gives +`111 XOR H(y,1,1)=(0,0,y)`. Selector-mask and input history remain in the +neighbors even though they cancel at the readout. `results.json` retains the +actual old and incoming triples for all 32 qY.D interventions and all 32 +separate q2.A interventions. The latter still fails raw late-input transfer. + +The q7 prefix at R−7 remains `(u,u,1)`, hence private under the supplied delayed +access rule. The earlier signal and history have not been erased. + +## The next cone is not prepared by the endpoint result + +Let `q8=q7+e_z` and `g=f+2e_z=q7+(N+2)e_z`. A current initial triple G at g has +first-arrival distances N+2 to q7, N+1 to q8, and N to q9. It therefore cannot +change q7 through N or its incoming neighborhood. It lies outside all 15 old +ready regions and is farther than N+1 from all their receiver centers. It changes +none of those receiver histories through N+1. It overwrites no inherited source +or protected frontier source. + +The q7 ready prescription leaves g outside its specified ball. For each fixed +original qY diagnostic row, all eight choices of G map bijectively to the eight +q8 triples at N+1. Thus the adopted q7 preparation alone does not determine the +next outward endpoint. This is an explicit family of compatible initial +completions, not an argument that arbitrary dynamics must fail. + +## Explicit initial-only extension and obstruction + +The tested extension enlarges readiness to current `B_(N+1)(q8)` and previous +`B_N(q8)`, preserving the four lower sources, Q, C, and G, and setting remaining +unspecified entries in those balls to zero. It contains the adopted q7 ready +balls. All 1,479 inherited source entries were checked: only the original input +is on the new boundary and none is in its interior. The four lower sources are +on its boundary. The previous input, opposite pulse, remote blocks and protected +frontier rays are excluded, with `d+8 replay.json +python -O probe.py > replay-O.json +cmp replay.json replay-O.json +cmp replay.json results.json +``` + +`checks-summary.json` gives compact structured findings and the result digest; +`results.json` is compact full evidence (about 46 KB). The two inherited Python +modules are byte-pinned copies of the prior exact model; the source geometry is +read from the packaged sibling history-control directory, with digest checking, +or the original scratch outward directory. `SHA256SUMS` lists the checkpoint +payload. No formal certification, full instrument law, or OI-to-QM equivalence +is asserted. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/SECOND-PROBE-PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/SECOND-PROBE-PLAN.md new file mode 100644 index 000000000..136a39a01 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/SECOND-PROBE-PLAN.md @@ -0,0 +1,19 @@ +# Follow-up decision rule: general two-code routing + +The first exact probe excluded the stipulated one-hop code `(0,y,0)` for +every G(u), but that alone does not exclude a different common encoding of y. +Before evaluating this broader question, fix its decision rule: + +- Enumerate the 64 pairs `(G(0),G(1))` in the already computed exact table. +- Accept a native encoding only if every x and selector-mask row with + `p=x XOR u` gives the same full triple for the same y, and the two y triples + are distinct. +- Test the separate q7.D intervention similarly, now requiring the entire + endpoint to depend only on p7 for all x,u and masks, with distinct outputs. +- Print either the complete candidate list or the finite-family exclusion. + No decoder reading u, x, history, or another site is allowed. + +Also export exact algebraic normal forms of the native q7 incoming interface +and of q8 under the q7.D intervention. These expressions must be verified +against every relevant measured row. They explain any obstruction, rather +than expanding it to other directions, several new sources, or later ticks. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/SHA256SUMS new file mode 100644 index 000000000..7c0907ab4 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/SHA256SUMS @@ -0,0 +1,9 @@ +d71b9e97adf118206e4d92717271bf8da573e6f419705eb569b390273c7a3f28 PROBE-PLAN.md +0343cd367a994bd0bc65c62ca710d8f5c4abfea5a9bc319b5ff470cbd4a1967c PROVENANCE.json +1530928d335627e499b5e41c54a66497f299f589ecec8e5ffd5fb29fbab947ab REPORT.md +6598b5d47caec9f245f7dc15278cd320b5791253e8e8ca67dd9a932f3757c554 SECOND-PROBE-PLAN.md +b83f9ba2bfe2be61dda4ea26740c9829ecf599d7852a2cee1dada6945f35f965 checks-summary.json +81fb9162229409e42d4383274c91988b94c8727dc70d9398cc1ca1ac51a38ee4 inherited_correction_model.py +dfb056bfe91372b44787d962e63d83ae7109802b38034b661e1c3275a63e146b inherited_model.py +1b00605540c71e499a6a7b3b4f59f965f140e2620c287b4321c74c2cd2554b72 probe.py +6fb3ed95948f9900f1ec9f40ef740d26d7792c7dae549a37644210e8a9e1eb43 results.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/checks-summary.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/checks-summary.json new file mode 100644 index 000000000..8ab2e49b1 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/checks-summary.json @@ -0,0 +1,41 @@ +{ + "schema": "oi.native-reset.q7-interface.v1", + "checks": { + "G_endpoint_permutations": 32, + "actual_period_divisibility": true, + "actual_q7_interface_rows": 64, + "apparatus_source_pairs_per_encoding_test": 64, + "direct_scalar_comparisons": 9120, + "extension_diagnostic_rows": 768, + "first_arrival_and_old_regions": true, + "independent_dipole_comparisons": 560, + "inherited_hashes": true, + "native_incoming_formula_rows": 16, + "q7_intervention_formula_rows": 256, + "readiness_source_geometry_entries": 1479 + }, + "measurements": { + "common_two_code_G_pairs": { + "q7": [], + "qY": [] + }, + "native_route_G_by_u": { + "0": [], + "1": [] + }, + "q7_socket_G_by_u": { + "0": [], + "1": [] + } + }, + "verdict": { + "native_common_two_code_in_G_u_family": "excluded", + "native_route_in_G_u_family": "excluded", + "q7_common_two_code_socket_in_G_u_family": "excluded", + "q7_input_socket_in_G_u_family": "excluded", + "reset_5_3_2": "not_constructed", + "unprepared_q8": "underdetermined_by_q7_ready_region" + }, + "normal_optimized_byte_match": true, + "results_sha256": "6fb3ed95948f9900f1ec9f40ef740d26d7792c7dae549a37644210e8a9e1eb43" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/inherited_correction_model.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/inherited_correction_model.py new file mode 100644 index 000000000..1f3d87579 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/inherited_correction_model.py @@ -0,0 +1,48 @@ +"""Candidate q7 boundary source: full upper/C dipole, no pulse superposition.""" +from functools import lru_cache +from itertools import product +from model import H,X,ZERO,indices,strip +DIPOLE_ROWS=tuple((u,c) for u in (0,1) for c in product((0,1),repeat=3)) +FULL=(1<t or (t-a-b-n)%2:return ZERO + if t==0:return Q if (a,b,n)==(0,0,0) else C if (a,b,n)==(0,0,-14) else ZERO + ns=[] + for j in range(2): + for sign in (-1,1): + ab=[a,b];ab[j]+=sign;ab=sorted(map(abs,ab),reverse=True) + ns.append(direct(t-1,*ab,n)) + ns.extend((direct(t-1,a,b,n-1),direct(t-1,a,b,n+1))) + return X(direct(t-2,a,b,n),H(X(*ns))) + +@lru_cache(None) +def dipole_strip(): + L=14;BASE=245;values={} + def get(ell,a,b,n): + if ell<0:return ZERO + a,b=sorted((abs(a),abs(b)),reverse=True) + if a+b>ell or (ell-a-b)%2 or ell+a+b>L:return ZERO + return values[ell,a,b][n] + for ell,a,b in indices(L): + cap=BASE+(L-ell)//2;arr=[direct(ell,a,b,0)];values[ell,a,b]=arr + for n in range(1,cap+1): + trans=X(get(ell-1,a-1,b,n),get(ell-1,a+1,b,n),get(ell-1,a,b-1,n),get(ell-1,a,b+1,n)) + arr.append(X(get(ell-2,a,b,n),H(X(arr[n-1],get(ell-2,a,b,n+1),trans)))) + return values + +def result(): + packed=dipole_strip()[14,0,0][245] + tables=[] + for u in (0,1): + table=[tuple((w>>(8*u+c))&1 for w in packed) for c in range(8)] + base=table[0];target=X(base,(u,0,u)) + matches=[DIPOLE_ROWS[8*u+c][1] for c,v in enumerate(table) if v==target] + tables.append({'u':u,'table':table,'base':base,'target':target,'matches':matches}) + return tables + +if __name__=='__main__': + import json + print(json.dumps(result())) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/inherited_model.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/inherited_model.py new file mode 100644 index 000000000..a938c5cd6 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/inherited_model.py @@ -0,0 +1,127 @@ +"""Exact bounded-lag upper strip and packed actual-geometry outward diamond.""" +from functools import lru_cache +from itertools import product +from pathlib import Path +import json +ZERO=(0,0,0) +T=185;P=12*840**T;S=T+P;d=68;R=S+d;BASE=T+d +ROWS=tuple(product((0,1),repeat=5)) # x,u,mY,mR,p +ALL=(1<t or (t-a-b-c)%2:return ZERO + if t==0:return (2,0,3) if (a,b,c)==(0,0,0) else ZERO + vals=[] + for j in range(3): + for sign in (-1,1): + pos=[a,b,c];pos[j]+=sign;pos=sorted(map(abs,pos),reverse=True) + vals.append(pulse(t-1,*pos)) + return X(pulse(t-2,a,b,c),H(X(*vals))) + +@lru_cache(None) +def strip(L): + """Layer-first evaluation. Future n+1 terms live two layers lower.""" + values={} + def get(ell,a,b,n): + if ell<0:return ZERO + a,b=sorted((abs(a),abs(b)),reverse=True) + key=(ell,a,b) + if a+b>ell or (ell-a-b)%2 or ell+a+b>L:return ZERO + return values[key][n] + for ell,a,b in indices(L): + cap=BASE+(L-ell)//2 + arr=[pulse(ell,*sorted((a,b,0),reverse=True))] + values[ell,a,b]=arr + for n in range(1,cap+1): + trans=X(get(ell-1,a-1,b,n),get(ell-1,a+1,b,n),get(ell-1,a,b-1,n),get(ell-1,a,b+1,n)) + arr.append(X(get(ell-2,a,b,n),H(X(arr[n-1],get(ell-2,a,b,n+1),trans)))) + return values + +def upper(L,t,v): + a,b,n=map(abs,v);a,b=sorted((a,b),reverse=True);ell=t-n + if ell<0 or a+b>ell or (ell-a-b)%2:return ZERO + if ell+a+b>L:raise RuntimeError(('uncovered upper lag',ell,a,b,L)) + nr=n-P + if nr<0:raise RuntimeError('invalid period reduction') + val=strip(L)[ell,a,b][nr] + return tuple((ALL^UM if b&1 else 0)^(UM if b&2 else 0) for b in val) + +def odd(parts): + acc=0 + for p in parts: + if acc&p:return 0 + acc|=p + return 1 + +def ball(r,center): + for a in range(-r,r+1): + for b in range(-r+abs(a),r-abs(a)+1): + for c in range(-r+abs(a)+abs(b),r-abs(a)-abs(b)+1): + yield center[0]+a,center[1]+b,center[2]+c + +def calc(k,operand_site="qY"): + end=(0,0,k);L=2*k + controls=[((0,-S,-d),XM),((0,S,-d),MY^MR),((T,P,-d),MY),((-T,P,-d),MR)] + def base(t,v): + value=upper(L,t,(v[0],v[1],R-v[2])) + for pos,bits in controls: + ds=tuple(abs(a-b) for a,b in zip(pos,v)) + if sum(ds)<=t: + if sum(ds)!=t:raise RuntimeError('lower source behind front') + if odd(ds):value=X(value,hp((0,bits,0),t)) + return value + old={v:base(R-2,v) for v in ball(k,end)} + now={v:base(R-1,v) for v in ball(k+1,end)} + records={} + for tau in range(k+1): + nxt={} + for v in ball(k-tau,end): + ns=[] + for axis in range(3): + for sign in (-1,1): + w=list(v);w[axis]+=sign;ns.append(now[tuple(w)]) + nxt[v]=X(old[v],H(X(*ns))) + if tau==0: + if nxt[(0,0,0)]!=(XM,ALL,XM^UM):raise RuntimeError('original qY changed') + if operand_site=="qY":nxt[(0,0,0)]=(XM,ALL,PM) # diagnostic replaces only D + if tau==2 and operand_site=="q2": + q=nxt[(0,0,2)] + if q!=(XM^UM,XM^UM,ALL^(XM&(XM^UM))):raise RuntimeError("q2 natural code changed") + nxt[(0,0,2)]=(PM,q[1],q[2]) # separate diagnostic replaces only A + records[tau]=nxt + old,now=now,nxt + return now[end],records + +def lane(v,i):return tuple((w>>i)&1 for w in v) + +def describe(k): + out,_=calc(k) + raw=[] + for field in range(3): + for c in (0,1): + if out[field]==(PM^(ALL*c)):raw.append((field,c)) + native={} + for i,(x,u,my,mr,p) in enumerate(ROWS): + if p==x^u:native[x,u,my,mr]=lane(out,i) + yonly=all(v==native[0,x^u,0,0] for (x,u,my,mr),v in native.items()) + return {'k':k,'raw_p_fields':raw,'native_y_only':yonly,'native_x_u_table':[native[x,u,0,0] for x,u in product((0,1),repeat=2)],'packed_output':out} + +if __name__=='__main__': + for k in range(1,13):print(json.dumps(describe(k)),flush=True) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/probe.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/probe.py new file mode 100644 index 000000000..4fea2cc65 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/probe.py @@ -0,0 +1,246 @@ +"""Exact q7 incoming interface and initial-only q8 extension; stdout is JSON.""" +from functools import lru_cache +from itertools import product +from pathlib import Path +import hashlib,json,sys +import inherited_model as m +sys.modules['model']=m +import inherited_correction_model as c + +def need(ok,label): + if not ok:raise RuntimeError(label) + +def xor(*v):return m.X(*v) + +TRIPLES=tuple(product((0,1),repeat=3)) +UR=tuple((u,g) for u in (0,1) for g in TRIPLES) +UF=(1<t or (t-a-b-n)%2:return m.ZERO + if t==0:return {(0,0,0):Q,(0,0,-14):C,(0,0,-16):G}.get((a,b,n),m.ZERO) + terms=[] + for axis in (0,1): + for sign in (-1,1): + ab=[a,b];ab[axis]+=sign;ab=sorted(map(abs,ab),reverse=True) + terms.append(direct(t-1,*ab,n)) + terms.extend((direct(t-1,a,b,n-1),direct(t-1,a,b,n+1))) + return xor(direct(t-2,a,b,n),m.H(xor(*terms))) + +@lru_cache(None) +def upper_strip(): + L=16;BASE=m.BASE;values={} + def get(ell,a,b,n): + if ell<0:return m.ZERO + a,b=sorted((abs(a),abs(b)),reverse=True) + if a+b>ell or (ell-a-b)%2 or ell+a+b>L:return m.ZERO + return values[ell,a,b][n] + for ell,a,b in m.indices(L): + cap=BASE+(L-ell)//2;arr=[direct(ell,a,b,0)];values[ell,a,b]=arr + for n in range(1,cap+1): + trans=xor(get(ell-1,a-1,b,n),get(ell-1,a+1,b,n),get(ell-1,a,b-1,n),get(ell-1,a,b+1,n)) + arr.append(xor(get(ell-2,a,b,n),m.H(xor(arr[n-1],get(ell-2,a,b,n+1),trans)))) + return values + +ROWS=tuple((x,u,my,mr,p,g) for x,u,my,mr,p in product((0,1),repeat=5) for g in TRIPLES) +FULL=(1<>(8*row[1]+TRIPLES.index(row[5])))&1)<ell or (ell-a-b)%2:return m.ZERO + need(ell+a+b<=16,'upper strip covered') + return expand(upper_strip()[ell,a,b][n-m.P]) + +def calc(site): + end=(0,0,8) + controls=[((0,-m.S,-m.d),XM),((0,m.S,-m.d),MY^MR),((m.T,m.P,-m.d),MY),((-m.T,m.P,-m.d),MR)] + def base(t,v): + val=upper(t,v) + for pos,bits in controls: + ds=tuple(abs(a-b) for a,b in zip(pos,v)) + if sum(ds)<=t: + need(sum(ds)==t,'lower only first arrival before R') + if m.odd(ds):val=xor(val,m.hp((0,bits,0),t)) + return val + old={v:base(m.R-2,v) for v in m.ball(8,end)} + now={v:base(m.R-1,v) for v in m.ball(9,end)} + records={} + for tau in range(9): + nxt={} + for v in m.ball(8-tau,end): + ns=[] + for axis in range(3): + for sign in (-1,1): + w=list(v);w[axis]+=sign;ns.append(now[tuple(w)]) + nxt[v]=xor(old[v],m.H(xor(*ns))) + if tau==0: + need(nxt[(0,0,0)]==(XM,FULL,XM^UM),'original qY intact') + if site=='qY':nxt[(0,0,0)]=(XM,FULL,PM) + if tau==2 and site=='q2': + q=nxt[(0,0,2)] + need(q==(XM^UM,XM^UM,FULL^(XM&(XM^UM))),'native q2 intact') + nxt[(0,0,2)]=(PM,q[1],q[2]) + if tau==7 and site=='q7': + need(nxt[(0,0,7)]==(0,0,XM^UM),'native clean q7 before intervention') + nxt[(0,0,7)]=(0,0,PM) + records[tau]=nxt;old,now=now,nxt + return now[end],records + +def lane(v,i):return tuple((w>>i)&1 for w in v) +def anf(values,names): + co=list(values) + for b in range(len(names)): + for mask in range(len(co)): + if mask&(1<=len(arr):continue + for u in (0,1): + want=lane(arr[n],8*u+5*u);got=lane(data[key][n],8*u) + need(got==want,'G zero full dipole agreement');comp+=1 + checks['independent_dipole_comparisons']=comp + q7=(0,m.S,m.d+7);q8=(0,m.S,m.d+8);q9=(0,m.S,m.d+9) + N=m.R+7;f=(0,m.S,m.S+2*m.d+14);g=(0,m.S,m.S+2*m.d+16) + D=lambda a,b:sum(abs(x-y) for x,y in zip(a,b)) + need(D(g,q7)==N+2 and D(g,q8)==N+1 and D(g,q9)==N,'G first arrival distances') + centers=[((0,m.T,0),m.T),((m.T,0,0),m.T),((-m.T,0,0),m.T),((4*m.T,0,0),m.T),((0,0,-8*m.T),m.T),((0,m.S,0),m.S),((m.T,m.P,0),m.S),((-m.T,m.P,0),m.S),((4*m.T,m.P,0),m.S),((0,m.S,m.d),m.R),((0,m.S,-m.d),m.R),((0,m.S,m.d+2),m.R+2),((0,m.S,m.d+3),m.R+3),((12*m.R,0,0),m.R),((-12*m.R,0,0),m.R)] + need(all(D(g,v)>N+1 for v,r in centers),'old receiver histories unaffected') + need(all(D(g,v)>r for v,r in centers),'old ready balls exclude G') + need(D(g,f)==2,'G source distinct from correction') + checks['first_arrival_and_old_regions']=True + # Adopt only this explicit depth8 candidate extension, with C and G kept. + geo_paths=[] + for parent in source.parents: + geo_paths.extend(parent/sub for sub in ('parallel_v3/history_control/SOURCE-GEOMETRY.json','outward_v6_geometry/SOURCE-GEOMETRY.json','outward_v6/SOURCE-GEOMETRY.json')) + gp=next((p for p in geo_paths if p.exists()),None) + need(gp is not None,'inherited geometry available') + need(hashlib.sha256(gp.read_bytes()).hexdigest()=='2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d','geometry digest') + geo=json.loads(gp.read_text());arrivals=[] + need(len(geo['sources'])==1479,'source count') + for entry in geo['sources']: + pos=tuple(entry['position']);dist=D(pos,q8) + need(dist>=N+1,'no inherited source in added ready interior') + need(pos!=g,'G overwrites no inherited source') + if dist==N+1:arrivals.append((pos,entry['field'],entry['mask'])) + need(arrivals==[((0,0,0),1,64)],'only inherited origin boundary') + lower=[(0,0,0),(0,2*m.S,0),(m.T,m.P+m.S,0),(-m.T,m.P+m.S,0)] + up=(0,m.S,m.S+2*m.d) + need(all(D(v,q8)==N+1 and D(v,up)==2*m.R for v in lower),'lower fronts and collision separation') + need(D((0,0,0),q8)>N and D((0,m.S,-m.S-2*m.d),q8)>N+1,'old previous unknown and opposite reset excluded') + need(m.d+8N+1,'finite and remote source exclusions') + # Each near frontier coordinate below continues outward as j increases. + frontier_bases=[((0,2*m.S,0),(0,1,0)),((m.T,m.P+m.S,0),(0,1,0)),((-m.T,m.P+m.S,0),(0,1,0)),((4*m.T,m.P+m.S,0),(0,1,0)),((0,0,0),(0,-1,0)),((0,0,-9*m.T),(0,0,-1))] + for origin,step in frontier_bases: + need(D(origin,q8)>=N+1,'frontier base outside/intersects ready boundary') + test=tuple(a+b for a,b in zip(origin,step)) + need(D(test,q8)==D(origin,q8)+1,'frontier outward ray gives exact positive slope') + checks['readiness_source_geometry_entries']=1479 + # Export the exact already-prepared incoming interface. No G reaches it. + interface={} + for site in ('qY','q2'): + out,rec=m.calc(7,site);entry=[] + for i,row in enumerate(m.ROWS): + ns={} + for axis in range(3): + for sign in (-1,1): + w=[0,0,7];w[axis]+=sign;w=tuple(w) + value=rec[6][w] + if w==(0,0,8):value=xor(value,(m.UM,0,m.UM)) + ns[','.join(map(str,w))]=lane(value,i) + old=lane(rec[5][(0,0,7)],i) + result=xor(old,m.H(xor(*ns.values()))) + x,u,my,mr,p=row + want=(x&(1^u)&(1^p),(x^u)&(1^p),p) if site=='qY' else ((x^p)&(1^u),x^u^p,x^(x&u)^p^(x&p)^(x&u&p)) + need(result==want,'q7 actual incoming interface') + entry.append({'row':row,'old_local':old,'incoming':ns,'endpoint':result}) + interface[site]=entry + checks['actual_q7_interface_rows']=64 + results={};native_candidates={};socket_candidates={};raw_tables={};native_forms={};q7_formula_rows=0 + for site in ('qY','q2','q7'): + out,rec=calc(site);entries=[] + for i,row in enumerate(ROWS): + x,u,my,mr,p,gv=row + if site in ('qY','q2'): + original=interface[site][m.ROWS.index(row[:5])]['endpoint'] + need(lane(rec[7][(0,0,7)],i)==tuple(original),'q7 invariant under G and extension') + entries.append({'row':row,'q8':lane(out,i)}) + results[site]=entries + if site=='q7': + # Obtain the entire Q/C/G upper neighbor change at q9,N. It depends only u,G. + upper_now=upper_strip()[16,0,0][244] + for i,(x,u,my,mr,p,gv) in enumerate(ROWS): + delta=xor(lane(upper_now,8*u+TRIPLES.index(gv)),lane(upper_now,8*u)) + a,b,cbit=delta + want=(x^b,1^x^u^(x&u)^p^cbit, + x^u^(x&u)^(p&(1^x^u))^a^(b&(x^u^(x&u)^p))^(cbit&(x^1^u))^(b&cbit)) + need(lane(out,i)==want,'full q7-input formula including actual old term') + q7_formula_rows+=1 + for u in (0,1): + socket_candidates[str(u)]=[gv for gv in TRIPLES if all(lane(out,i)==(0,p,0) for i,(x,uu,my,mr,p,gval) in enumerate(ROWS) if uu==u and gval==gv)] + if site=='qY': + for u in (0,1): + native_candidates[str(u)]=[gv for gv in TRIPLES if all(lane(out,i)==(0,p,0) for i,(x,uu,my,mr,p,gval) in enumerate(ROWS) if uu==u and gval==gv and p==x^u)] + # Whole q8 output as G varies for each fixed original diagnostic row. + for row in m.ROWS: + vals=[lane(out,ROWS.index(row+(gv,))) for gv in TRIPLES] + need(len(set(vals))==8,'G to full q8 output permutation') + raw_tables[','.join(map(str,row))]=vals + checks['extension_diagnostic_rows']=3*len(ROWS) + checks['G_endpoint_permutations']=32 + common={} + for site in ('qY','q7'): + candidates=[] + for g0,g1 in product(TRIPLES,repeat=2): + outputs={0:set(),1:set()} + for ent in results[site]: + x,u,my,mr,p,gv=ent['row'] + if gv!=(g0,g1)[u] or (site=='qY' and p!=x^u):continue + outputs[p].add(ent['q8']) + if all(len(v)==1 for v in outputs.values()) and outputs[0]!=outputs[1]: + candidates.append({'G0':g0,'G1':g1,'codes':[list(outputs[p])[0] for p in (0,1)]}) + common[site]=candidates + checks['apparatus_source_pairs_per_encoding_test']=64 + checks['q7_intervention_formula_rows']=q7_formula_rows + # The native incoming interface has a compact exact description. + for ent in interface['qY']: + x,u,my,mr,p=ent['row'] + if p!=x^u:continue + for key,val in ent['incoming'].items(): + if key=='0,0,6':want=(1^x,0,1^(x&u)) + elif key=='0,-1,7':want=(1^u,1,x&u) + elif key=='-1,0,7':want=(1^u,1,u&mr) + elif key=='1,0,7':want=(1^u,1,u&my) + elif key=='0,1,7':want=(1^u,1,u&(my^mr)) + else:want=(1^u,1,0) + need(val==want,'native incoming interface formula') + need(ent['old_local']==(1,1,1),'native old local formula') + checks['native_incoming_formula_rows']=16 + measurements={'native_route_G_by_u':native_candidates,'q7_socket_G_by_u':socket_candidates,'common_two_code_G_pairs':common} + verdict={'unprepared_q8':'underdetermined_by_q7_ready_region','native_route_in_G_u_family':'exists' if all(native_candidates.values()) else 'excluded','q7_input_socket_in_G_u_family':'exists' if all(socket_candidates.values()) else 'excluded','reset_5_3_2':'not_constructed'} + verdict['native_common_two_code_in_G_u_family']='exists' if common['qY'] else 'excluded' + verdict['q7_common_two_code_socket_in_G_u_family']='exists' if common['q7'] else 'excluded' + print(json.dumps({'schema':'oi.native-reset.q7-interface.v1','checks':checks,'measurements':measurements,'verdict':verdict,'q7_interface':interface,'q8_diagnostics':results,'q8_G_permutations':raw_tables},sort_keys=True,separators=(',',':'))) + +if __name__=='__main__':main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/results.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/results.json new file mode 100644 index 000000000..58e699f7d --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/results.json @@ -0,0 +1 @@ +{"checks":{"G_endpoint_permutations":32,"actual_period_divisibility":true,"actual_q7_interface_rows":64,"apparatus_source_pairs_per_encoding_test":64,"direct_scalar_comparisons":9120,"extension_diagnostic_rows":768,"first_arrival_and_old_regions":true,"independent_dipole_comparisons":560,"inherited_hashes":true,"native_incoming_formula_rows":16,"q7_intervention_formula_rows":256,"readiness_source_geometry_entries":1479},"measurements":{"common_two_code_G_pairs":{"q7":[],"qY":[]},"native_route_G_by_u":{"0":[],"1":[]},"q7_socket_G_by_u":{"0":[],"1":[]}},"q7_interface":{"q2":[{"endpoint":[0,0,0],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[1,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[0,0,0,0,0]},{"endpoint":[1,1,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[1,1,0],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[0,0,0,0,1]},{"endpoint":[0,0,0],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[1,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[0,0,0,1,0]},{"endpoint":[1,1,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[1,1,0],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[0,0,0,1,1]},{"endpoint":[0,0,0],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[1,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[0,0,1,0,0]},{"endpoint":[1,1,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[1,1,0],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[0,0,1,0,1]},{"endpoint":[0,0,0],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[1,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[0,0,1,1,0]},{"endpoint":[1,1,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[1,1,0],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[0,0,1,1,1]},{"endpoint":[0,1,0],"incoming":{"-1,0,7":[0,1,0],"0,-1,7":[0,1,0],"0,0,6":[1,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,0],"1,0,7":[0,1,0]},"old_local":[1,1,1],"row":[0,1,0,0,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[0,1,0],"0,-1,7":[0,1,0],"0,0,6":[1,0,1],"0,0,8":[0,1,0],"0,1,7":[0,1,0],"1,0,7":[0,1,0]},"old_local":[1,1,1],"row":[0,1,0,0,1]},{"endpoint":[0,1,0],"incoming":{"-1,0,7":[0,1,1],"0,-1,7":[0,1,0],"0,0,6":[1,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,1],"1,0,7":[0,1,0]},"old_local":[1,1,1],"row":[0,1,0,1,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[0,1,1],"0,-1,7":[0,1,0],"0,0,6":[1,0,1],"0,0,8":[0,1,0],"0,1,7":[0,1,1],"1,0,7":[0,1,0]},"old_local":[1,1,1],"row":[0,1,0,1,1]},{"endpoint":[0,1,0],"incoming":{"-1,0,7":[0,1,0],"0,-1,7":[0,1,0],"0,0,6":[1,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,1],"1,0,7":[0,1,1]},"old_local":[1,1,1],"row":[0,1,1,0,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[0,1,0],"0,-1,7":[0,1,0],"0,0,6":[1,0,1],"0,0,8":[0,1,0],"0,1,7":[0,1,1],"1,0,7":[0,1,1]},"old_local":[1,1,1],"row":[0,1,1,0,1]},{"endpoint":[0,1,0],"incoming":{"-1,0,7":[0,1,1],"0,-1,7":[0,1,0],"0,0,6":[1,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,0],"1,0,7":[0,1,1]},"old_local":[1,1,1],"row":[0,1,1,1,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[0,1,1],"0,-1,7":[0,1,0],"0,0,6":[1,0,1],"0,0,8":[0,1,0],"0,1,7":[0,1,0],"1,0,7":[0,1,1]},"old_local":[1,1,1],"row":[0,1,1,1,1]},{"endpoint":[1,1,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[1,1,0],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[1,0,0,0,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[0,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[1,0,0,0,1]},{"endpoint":[1,1,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[1,1,0],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[1,0,0,1,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[0,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[1,0,0,1,1]},{"endpoint":[1,1,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[1,1,0],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[1,0,1,0,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[0,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[1,0,1,0,1]},{"endpoint":[1,1,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[1,1,0],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[1,0,1,1,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[0,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[1,0,1,1,1]},{"endpoint":[0,0,0],"incoming":{"-1,0,7":[0,1,0],"0,-1,7":[0,1,1],"0,0,6":[0,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,0],"1,0,7":[0,1,0]},"old_local":[1,1,1],"row":[1,1,0,0,0]},{"endpoint":[0,1,1],"incoming":{"-1,0,7":[0,1,0],"0,-1,7":[0,1,1],"0,0,6":[0,0,1],"0,0,8":[0,1,0],"0,1,7":[0,1,0],"1,0,7":[0,1,0]},"old_local":[1,1,1],"row":[1,1,0,0,1]},{"endpoint":[0,0,0],"incoming":{"-1,0,7":[0,1,1],"0,-1,7":[0,1,1],"0,0,6":[0,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,1],"1,0,7":[0,1,0]},"old_local":[1,1,1],"row":[1,1,0,1,0]},{"endpoint":[0,1,1],"incoming":{"-1,0,7":[0,1,1],"0,-1,7":[0,1,1],"0,0,6":[0,0,1],"0,0,8":[0,1,0],"0,1,7":[0,1,1],"1,0,7":[0,1,0]},"old_local":[1,1,1],"row":[1,1,0,1,1]},{"endpoint":[0,0,0],"incoming":{"-1,0,7":[0,1,0],"0,-1,7":[0,1,1],"0,0,6":[0,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,1],"1,0,7":[0,1,1]},"old_local":[1,1,1],"row":[1,1,1,0,0]},{"endpoint":[0,1,1],"incoming":{"-1,0,7":[0,1,0],"0,-1,7":[0,1,1],"0,0,6":[0,0,1],"0,0,8":[0,1,0],"0,1,7":[0,1,1],"1,0,7":[0,1,1]},"old_local":[1,1,1],"row":[1,1,1,0,1]},{"endpoint":[0,0,0],"incoming":{"-1,0,7":[0,1,1],"0,-1,7":[0,1,1],"0,0,6":[0,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,0],"1,0,7":[0,1,1]},"old_local":[1,1,1],"row":[1,1,1,1,0]},{"endpoint":[0,1,1],"incoming":{"-1,0,7":[0,1,1],"0,-1,7":[0,1,1],"0,0,6":[0,0,1],"0,0,8":[0,1,0],"0,1,7":[0,1,0],"1,0,7":[0,1,1]},"old_local":[1,1,1],"row":[1,1,1,1,1]}],"qY":[{"endpoint":[0,0,0],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[1,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[0,0,0,0,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[0,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[0,0,0,0,1]},{"endpoint":[0,0,0],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[1,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[0,0,0,1,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[0,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[0,0,0,1,1]},{"endpoint":[0,0,0],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[1,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[0,0,1,0,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[0,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[0,0,1,0,1]},{"endpoint":[0,0,0],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[1,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[0,0,1,1,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[0,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[0,0,1,1,1]},{"endpoint":[0,1,0],"incoming":{"-1,0,7":[0,1,0],"0,-1,7":[0,1,0],"0,0,6":[1,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,0],"1,0,7":[0,1,0]},"old_local":[1,1,1],"row":[0,1,0,0,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[0,1,0],"0,-1,7":[0,1,0],"0,0,6":[1,0,1],"0,0,8":[0,1,0],"0,1,7":[0,1,0],"1,0,7":[0,1,0]},"old_local":[1,1,1],"row":[0,1,0,0,1]},{"endpoint":[0,1,0],"incoming":{"-1,0,7":[0,1,1],"0,-1,7":[0,1,0],"0,0,6":[1,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,1],"1,0,7":[0,1,0]},"old_local":[1,1,1],"row":[0,1,0,1,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[0,1,1],"0,-1,7":[0,1,0],"0,0,6":[1,0,1],"0,0,8":[0,1,0],"0,1,7":[0,1,1],"1,0,7":[0,1,0]},"old_local":[1,1,1],"row":[0,1,0,1,1]},{"endpoint":[0,1,0],"incoming":{"-1,0,7":[0,1,0],"0,-1,7":[0,1,0],"0,0,6":[1,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,1],"1,0,7":[0,1,1]},"old_local":[1,1,1],"row":[0,1,1,0,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[0,1,0],"0,-1,7":[0,1,0],"0,0,6":[1,0,1],"0,0,8":[0,1,0],"0,1,7":[0,1,1],"1,0,7":[0,1,1]},"old_local":[1,1,1],"row":[0,1,1,0,1]},{"endpoint":[0,1,0],"incoming":{"-1,0,7":[0,1,1],"0,-1,7":[0,1,0],"0,0,6":[1,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,0],"1,0,7":[0,1,1]},"old_local":[1,1,1],"row":[0,1,1,1,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[0,1,1],"0,-1,7":[0,1,0],"0,0,6":[1,0,1],"0,0,8":[0,1,0],"0,1,7":[0,1,0],"1,0,7":[0,1,1]},"old_local":[1,1,1],"row":[0,1,1,1,1]},{"endpoint":[1,1,0],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[0,1,0],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[1,0,0,0,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[0,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[1,0,0,0,1]},{"endpoint":[1,1,0],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[0,1,0],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[1,0,0,1,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[0,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[1,0,0,1,1]},{"endpoint":[1,1,0],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[0,1,0],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[1,0,1,0,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[0,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[1,0,1,0,1]},{"endpoint":[1,1,0],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[0,1,0],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[1,0,1,1,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[1,1,0],"0,-1,7":[1,1,0],"0,0,6":[0,0,1],"0,0,8":[1,1,0],"0,1,7":[1,1,0],"1,0,7":[1,1,0]},"old_local":[1,1,1],"row":[1,0,1,1,1]},{"endpoint":[0,0,0],"incoming":{"-1,0,7":[0,1,0],"0,-1,7":[0,1,1],"0,0,6":[0,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,0],"1,0,7":[0,1,0]},"old_local":[1,1,1],"row":[1,1,0,0,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[0,1,0],"0,-1,7":[0,1,1],"0,0,6":[1,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,0],"1,0,7":[0,1,0]},"old_local":[1,1,1],"row":[1,1,0,0,1]},{"endpoint":[0,0,0],"incoming":{"-1,0,7":[0,1,1],"0,-1,7":[0,1,1],"0,0,6":[0,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,1],"1,0,7":[0,1,0]},"old_local":[1,1,1],"row":[1,1,0,1,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[0,1,1],"0,-1,7":[0,1,1],"0,0,6":[1,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,1],"1,0,7":[0,1,0]},"old_local":[1,1,1],"row":[1,1,0,1,1]},{"endpoint":[0,0,0],"incoming":{"-1,0,7":[0,1,0],"0,-1,7":[0,1,1],"0,0,6":[0,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,1],"1,0,7":[0,1,1]},"old_local":[1,1,1],"row":[1,1,1,0,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[0,1,0],"0,-1,7":[0,1,1],"0,0,6":[1,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,1],"1,0,7":[0,1,1]},"old_local":[1,1,1],"row":[1,1,1,0,1]},{"endpoint":[0,0,0],"incoming":{"-1,0,7":[0,1,1],"0,-1,7":[0,1,1],"0,0,6":[0,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,0],"1,0,7":[0,1,1]},"old_local":[1,1,1],"row":[1,1,1,1,0]},{"endpoint":[0,0,1],"incoming":{"-1,0,7":[0,1,1],"0,-1,7":[0,1,1],"0,0,6":[1,0,0],"0,0,8":[0,1,0],"0,1,7":[0,1,0],"1,0,7":[0,1,1]},"old_local":[1,1,1],"row":[1,1,1,1,1]}]},"q8_G_permutations":{"0,0,0,0,0":[[0,1,0],[0,0,0],[1,1,1],[1,0,1],[1,0,0],[1,1,0],[0,1,1],[0,0,1]],"0,0,0,0,1":[[0,0,1],[0,1,1],[1,0,1],[1,1,1],[1,1,0],[1,0,0],[0,0,0],[0,1,0]],"0,0,0,1,0":[[0,1,0],[0,0,0],[1,1,1],[1,0,1],[1,0,0],[1,1,0],[0,1,1],[0,0,1]],"0,0,0,1,1":[[0,0,1],[0,1,1],[1,0,1],[1,1,1],[1,1,0],[1,0,0],[0,0,0],[0,1,0]],"0,0,1,0,0":[[0,1,0],[0,0,0],[1,1,1],[1,0,1],[1,0,0],[1,1,0],[0,1,1],[0,0,1]],"0,0,1,0,1":[[0,0,1],[0,1,1],[1,0,1],[1,1,1],[1,1,0],[1,0,0],[0,0,0],[0,1,0]],"0,0,1,1,0":[[0,1,0],[0,0,0],[1,1,1],[1,0,1],[1,0,0],[1,1,0],[0,1,1],[0,0,1]],"0,0,1,1,1":[[0,0,1],[0,1,1],[1,0,1],[1,1,1],[1,1,0],[1,0,0],[0,0,0],[0,1,0]],"0,1,0,0,0":[[1,0,0],[1,0,1],[0,0,1],[1,1,1],[0,0,0],[0,1,0],[0,1,1],[1,1,0]],"0,1,0,0,1":[[0,1,1],[0,1,0],[1,1,1],[0,0,1],[1,1,0],[1,0,1],[1,0,0],[0,0,0]],"0,1,0,1,0":[[1,0,0],[1,0,1],[0,0,1],[1,1,1],[0,0,0],[0,1,0],[0,1,1],[1,1,0]],"0,1,0,1,1":[[0,1,1],[0,1,0],[1,1,1],[0,0,1],[1,1,0],[1,0,1],[1,0,0],[0,0,0]],"0,1,1,0,0":[[1,0,0],[1,0,1],[0,0,1],[1,1,1],[0,0,0],[0,1,0],[0,1,1],[1,1,0]],"0,1,1,0,1":[[0,1,1],[0,1,0],[1,1,1],[0,0,1],[1,1,0],[1,0,1],[1,0,0],[0,0,0]],"0,1,1,1,0":[[1,0,0],[1,0,1],[0,0,1],[1,1,1],[0,0,0],[0,1,0],[0,1,1],[1,1,0]],"0,1,1,1,1":[[0,1,1],[0,1,0],[1,1,1],[0,0,1],[1,1,0],[1,0,1],[1,0,0],[0,0,0]],"1,0,0,0,0":[[0,0,1],[0,1,1],[1,0,1],[1,1,1],[1,1,0],[1,0,0],[0,0,0],[0,1,0]],"1,0,0,0,1":[[1,1,1],[1,0,0],[0,1,0],[0,0,1],[0,0,0],[0,1,1],[1,1,0],[1,0,1]],"1,0,0,1,0":[[0,0,1],[0,1,1],[1,0,1],[1,1,1],[1,1,0],[1,0,0],[0,0,0],[0,1,0]],"1,0,0,1,1":[[1,1,1],[1,0,0],[0,1,0],[0,0,1],[0,0,0],[0,1,1],[1,1,0],[1,0,1]],"1,0,1,0,0":[[0,0,1],[0,1,1],[1,0,1],[1,1,1],[1,1,0],[1,0,0],[0,0,0],[0,1,0]],"1,0,1,0,1":[[1,1,1],[1,0,0],[0,1,0],[0,0,1],[0,0,0],[0,1,1],[1,1,0],[1,0,1]],"1,0,1,1,0":[[0,0,1],[0,1,1],[1,0,1],[1,1,1],[1,1,0],[1,0,0],[0,0,0],[0,1,0]],"1,0,1,1,1":[[1,1,1],[1,0,0],[0,1,0],[0,0,1],[0,0,0],[0,1,1],[1,1,0],[1,0,1]],"1,1,0,0,0":[[1,0,1],[1,0,0],[0,0,0],[1,1,0],[0,0,1],[0,1,1],[0,1,0],[1,1,1]],"1,1,0,0,1":[[1,1,0],[1,1,1],[0,1,0],[1,0,1],[0,1,1],[0,0,1],[0,0,0],[1,0,0]],"1,1,0,1,0":[[1,0,1],[1,0,0],[0,0,0],[1,1,0],[0,0,1],[0,1,1],[0,1,0],[1,1,1]],"1,1,0,1,1":[[1,1,0],[1,1,1],[0,1,0],[1,0,1],[0,1,1],[0,0,1],[0,0,0],[1,0,0]],"1,1,1,0,0":[[1,0,1],[1,0,0],[0,0,0],[1,1,0],[0,0,1],[0,1,1],[0,1,0],[1,1,1]],"1,1,1,0,1":[[1,1,0],[1,1,1],[0,1,0],[1,0,1],[0,1,1],[0,0,1],[0,0,0],[1,0,0]],"1,1,1,1,0":[[1,0,1],[1,0,0],[0,0,0],[1,1,0],[0,0,1],[0,1,1],[0,1,0],[1,1,1]],"1,1,1,1,1":[[1,1,0],[1,1,1],[0,1,0],[1,0,1],[0,1,1],[0,0,1],[0,0,0],[1,0,0]]},"q8_diagnostics":{"q2":[{"q8":[0,1,0],"row":[0,0,0,0,0,[0,0,0]]},{"q8":[0,0,0],"row":[0,0,0,0,0,[0,0,1]]},{"q8":[1,1,1],"row":[0,0,0,0,0,[0,1,0]]},{"q8":[1,0,1],"row":[0,0,0,0,0,[0,1,1]]},{"q8":[1,0,0],"row":[0,0,0,0,0,[1,0,0]]},{"q8":[1,1,0],"row":[0,0,0,0,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,0,0,0,0,[1,1,0]]},{"q8":[0,0,1],"row":[0,0,0,0,0,[1,1,1]]},{"q8":[1,0,1],"row":[0,0,0,0,1,[0,0,0]]},{"q8":[1,1,0],"row":[0,0,0,0,1,[0,0,1]]},{"q8":[0,0,1],"row":[0,0,0,0,1,[0,1,0]]},{"q8":[0,1,0],"row":[0,0,0,0,1,[0,1,1]]},{"q8":[0,1,1],"row":[0,0,0,0,1,[1,0,0]]},{"q8":[0,0,0],"row":[0,0,0,0,1,[1,0,1]]},{"q8":[1,0,0],"row":[0,0,0,0,1,[1,1,0]]},{"q8":[1,1,1],"row":[0,0,0,0,1,[1,1,1]]},{"q8":[0,1,0],"row":[0,0,0,1,0,[0,0,0]]},{"q8":[0,0,0],"row":[0,0,0,1,0,[0,0,1]]},{"q8":[1,1,1],"row":[0,0,0,1,0,[0,1,0]]},{"q8":[1,0,1],"row":[0,0,0,1,0,[0,1,1]]},{"q8":[1,0,0],"row":[0,0,0,1,0,[1,0,0]]},{"q8":[1,1,0],"row":[0,0,0,1,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,0,0,1,0,[1,1,0]]},{"q8":[0,0,1],"row":[0,0,0,1,0,[1,1,1]]},{"q8":[1,0,1],"row":[0,0,0,1,1,[0,0,0]]},{"q8":[1,1,0],"row":[0,0,0,1,1,[0,0,1]]},{"q8":[0,0,1],"row":[0,0,0,1,1,[0,1,0]]},{"q8":[0,1,0],"row":[0,0,0,1,1,[0,1,1]]},{"q8":[0,1,1],"row":[0,0,0,1,1,[1,0,0]]},{"q8":[0,0,0],"row":[0,0,0,1,1,[1,0,1]]},{"q8":[1,0,0],"row":[0,0,0,1,1,[1,1,0]]},{"q8":[1,1,1],"row":[0,0,0,1,1,[1,1,1]]},{"q8":[0,1,0],"row":[0,0,1,0,0,[0,0,0]]},{"q8":[0,0,0],"row":[0,0,1,0,0,[0,0,1]]},{"q8":[1,1,1],"row":[0,0,1,0,0,[0,1,0]]},{"q8":[1,0,1],"row":[0,0,1,0,0,[0,1,1]]},{"q8":[1,0,0],"row":[0,0,1,0,0,[1,0,0]]},{"q8":[1,1,0],"row":[0,0,1,0,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,0,1,0,0,[1,1,0]]},{"q8":[0,0,1],"row":[0,0,1,0,0,[1,1,1]]},{"q8":[1,0,1],"row":[0,0,1,0,1,[0,0,0]]},{"q8":[1,1,0],"row":[0,0,1,0,1,[0,0,1]]},{"q8":[0,0,1],"row":[0,0,1,0,1,[0,1,0]]},{"q8":[0,1,0],"row":[0,0,1,0,1,[0,1,1]]},{"q8":[0,1,1],"row":[0,0,1,0,1,[1,0,0]]},{"q8":[0,0,0],"row":[0,0,1,0,1,[1,0,1]]},{"q8":[1,0,0],"row":[0,0,1,0,1,[1,1,0]]},{"q8":[1,1,1],"row":[0,0,1,0,1,[1,1,1]]},{"q8":[0,1,0],"row":[0,0,1,1,0,[0,0,0]]},{"q8":[0,0,0],"row":[0,0,1,1,0,[0,0,1]]},{"q8":[1,1,1],"row":[0,0,1,1,0,[0,1,0]]},{"q8":[1,0,1],"row":[0,0,1,1,0,[0,1,1]]},{"q8":[1,0,0],"row":[0,0,1,1,0,[1,0,0]]},{"q8":[1,1,0],"row":[0,0,1,1,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,0,1,1,0,[1,1,0]]},{"q8":[0,0,1],"row":[0,0,1,1,0,[1,1,1]]},{"q8":[1,0,1],"row":[0,0,1,1,1,[0,0,0]]},{"q8":[1,1,0],"row":[0,0,1,1,1,[0,0,1]]},{"q8":[0,0,1],"row":[0,0,1,1,1,[0,1,0]]},{"q8":[0,1,0],"row":[0,0,1,1,1,[0,1,1]]},{"q8":[0,1,1],"row":[0,0,1,1,1,[1,0,0]]},{"q8":[0,0,0],"row":[0,0,1,1,1,[1,0,1]]},{"q8":[1,0,0],"row":[0,0,1,1,1,[1,1,0]]},{"q8":[1,1,1],"row":[0,0,1,1,1,[1,1,1]]},{"q8":[1,0,0],"row":[0,1,0,0,0,[0,0,0]]},{"q8":[1,0,1],"row":[0,1,0,0,0,[0,0,1]]},{"q8":[0,0,1],"row":[0,1,0,0,0,[0,1,0]]},{"q8":[1,1,1],"row":[0,1,0,0,0,[0,1,1]]},{"q8":[0,0,0],"row":[0,1,0,0,0,[1,0,0]]},{"q8":[0,1,0],"row":[0,1,0,0,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,1,0,0,0,[1,1,0]]},{"q8":[1,1,0],"row":[0,1,0,0,0,[1,1,1]]},{"q8":[0,1,1],"row":[0,1,0,0,1,[0,0,0]]},{"q8":[0,1,0],"row":[0,1,0,0,1,[0,0,1]]},{"q8":[1,1,1],"row":[0,1,0,0,1,[0,1,0]]},{"q8":[0,0,1],"row":[0,1,0,0,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,1,0,0,1,[1,0,0]]},{"q8":[1,0,1],"row":[0,1,0,0,1,[1,0,1]]},{"q8":[1,0,0],"row":[0,1,0,0,1,[1,1,0]]},{"q8":[0,0,0],"row":[0,1,0,0,1,[1,1,1]]},{"q8":[1,0,0],"row":[0,1,0,1,0,[0,0,0]]},{"q8":[1,0,1],"row":[0,1,0,1,0,[0,0,1]]},{"q8":[0,0,1],"row":[0,1,0,1,0,[0,1,0]]},{"q8":[1,1,1],"row":[0,1,0,1,0,[0,1,1]]},{"q8":[0,0,0],"row":[0,1,0,1,0,[1,0,0]]},{"q8":[0,1,0],"row":[0,1,0,1,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,1,0,1,0,[1,1,0]]},{"q8":[1,1,0],"row":[0,1,0,1,0,[1,1,1]]},{"q8":[0,1,1],"row":[0,1,0,1,1,[0,0,0]]},{"q8":[0,1,0],"row":[0,1,0,1,1,[0,0,1]]},{"q8":[1,1,1],"row":[0,1,0,1,1,[0,1,0]]},{"q8":[0,0,1],"row":[0,1,0,1,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,1,0,1,1,[1,0,0]]},{"q8":[1,0,1],"row":[0,1,0,1,1,[1,0,1]]},{"q8":[1,0,0],"row":[0,1,0,1,1,[1,1,0]]},{"q8":[0,0,0],"row":[0,1,0,1,1,[1,1,1]]},{"q8":[1,0,0],"row":[0,1,1,0,0,[0,0,0]]},{"q8":[1,0,1],"row":[0,1,1,0,0,[0,0,1]]},{"q8":[0,0,1],"row":[0,1,1,0,0,[0,1,0]]},{"q8":[1,1,1],"row":[0,1,1,0,0,[0,1,1]]},{"q8":[0,0,0],"row":[0,1,1,0,0,[1,0,0]]},{"q8":[0,1,0],"row":[0,1,1,0,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,1,1,0,0,[1,1,0]]},{"q8":[1,1,0],"row":[0,1,1,0,0,[1,1,1]]},{"q8":[0,1,1],"row":[0,1,1,0,1,[0,0,0]]},{"q8":[0,1,0],"row":[0,1,1,0,1,[0,0,1]]},{"q8":[1,1,1],"row":[0,1,1,0,1,[0,1,0]]},{"q8":[0,0,1],"row":[0,1,1,0,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,1,1,0,1,[1,0,0]]},{"q8":[1,0,1],"row":[0,1,1,0,1,[1,0,1]]},{"q8":[1,0,0],"row":[0,1,1,0,1,[1,1,0]]},{"q8":[0,0,0],"row":[0,1,1,0,1,[1,1,1]]},{"q8":[1,0,0],"row":[0,1,1,1,0,[0,0,0]]},{"q8":[1,0,1],"row":[0,1,1,1,0,[0,0,1]]},{"q8":[0,0,1],"row":[0,1,1,1,0,[0,1,0]]},{"q8":[1,1,1],"row":[0,1,1,1,0,[0,1,1]]},{"q8":[0,0,0],"row":[0,1,1,1,0,[1,0,0]]},{"q8":[0,1,0],"row":[0,1,1,1,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,1,1,1,0,[1,1,0]]},{"q8":[1,1,0],"row":[0,1,1,1,0,[1,1,1]]},{"q8":[0,1,1],"row":[0,1,1,1,1,[0,0,0]]},{"q8":[0,1,0],"row":[0,1,1,1,1,[0,0,1]]},{"q8":[1,1,1],"row":[0,1,1,1,1,[0,1,0]]},{"q8":[0,0,1],"row":[0,1,1,1,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,1,1,1,1,[1,0,0]]},{"q8":[1,0,1],"row":[0,1,1,1,1,[1,0,1]]},{"q8":[1,0,0],"row":[0,1,1,1,1,[1,1,0]]},{"q8":[0,0,0],"row":[0,1,1,1,1,[1,1,1]]},{"q8":[0,1,0],"row":[1,0,0,0,0,[0,0,0]]},{"q8":[0,0,0],"row":[1,0,0,0,0,[0,0,1]]},{"q8":[1,1,1],"row":[1,0,0,0,0,[0,1,0]]},{"q8":[1,0,1],"row":[1,0,0,0,0,[0,1,1]]},{"q8":[1,0,0],"row":[1,0,0,0,0,[1,0,0]]},{"q8":[1,1,0],"row":[1,0,0,0,0,[1,0,1]]},{"q8":[0,1,1],"row":[1,0,0,0,0,[1,1,0]]},{"q8":[0,0,1],"row":[1,0,0,0,0,[1,1,1]]},{"q8":[1,1,1],"row":[1,0,0,0,1,[0,0,0]]},{"q8":[1,0,0],"row":[1,0,0,0,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,0,0,0,1,[0,1,0]]},{"q8":[0,0,1],"row":[1,0,0,0,1,[0,1,1]]},{"q8":[0,0,0],"row":[1,0,0,0,1,[1,0,0]]},{"q8":[0,1,1],"row":[1,0,0,0,1,[1,0,1]]},{"q8":[1,1,0],"row":[1,0,0,0,1,[1,1,0]]},{"q8":[1,0,1],"row":[1,0,0,0,1,[1,1,1]]},{"q8":[0,1,0],"row":[1,0,0,1,0,[0,0,0]]},{"q8":[0,0,0],"row":[1,0,0,1,0,[0,0,1]]},{"q8":[1,1,1],"row":[1,0,0,1,0,[0,1,0]]},{"q8":[1,0,1],"row":[1,0,0,1,0,[0,1,1]]},{"q8":[1,0,0],"row":[1,0,0,1,0,[1,0,0]]},{"q8":[1,1,0],"row":[1,0,0,1,0,[1,0,1]]},{"q8":[0,1,1],"row":[1,0,0,1,0,[1,1,0]]},{"q8":[0,0,1],"row":[1,0,0,1,0,[1,1,1]]},{"q8":[1,1,1],"row":[1,0,0,1,1,[0,0,0]]},{"q8":[1,0,0],"row":[1,0,0,1,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,0,0,1,1,[0,1,0]]},{"q8":[0,0,1],"row":[1,0,0,1,1,[0,1,1]]},{"q8":[0,0,0],"row":[1,0,0,1,1,[1,0,0]]},{"q8":[0,1,1],"row":[1,0,0,1,1,[1,0,1]]},{"q8":[1,1,0],"row":[1,0,0,1,1,[1,1,0]]},{"q8":[1,0,1],"row":[1,0,0,1,1,[1,1,1]]},{"q8":[0,1,0],"row":[1,0,1,0,0,[0,0,0]]},{"q8":[0,0,0],"row":[1,0,1,0,0,[0,0,1]]},{"q8":[1,1,1],"row":[1,0,1,0,0,[0,1,0]]},{"q8":[1,0,1],"row":[1,0,1,0,0,[0,1,1]]},{"q8":[1,0,0],"row":[1,0,1,0,0,[1,0,0]]},{"q8":[1,1,0],"row":[1,0,1,0,0,[1,0,1]]},{"q8":[0,1,1],"row":[1,0,1,0,0,[1,1,0]]},{"q8":[0,0,1],"row":[1,0,1,0,0,[1,1,1]]},{"q8":[1,1,1],"row":[1,0,1,0,1,[0,0,0]]},{"q8":[1,0,0],"row":[1,0,1,0,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,0,1,0,1,[0,1,0]]},{"q8":[0,0,1],"row":[1,0,1,0,1,[0,1,1]]},{"q8":[0,0,0],"row":[1,0,1,0,1,[1,0,0]]},{"q8":[0,1,1],"row":[1,0,1,0,1,[1,0,1]]},{"q8":[1,1,0],"row":[1,0,1,0,1,[1,1,0]]},{"q8":[1,0,1],"row":[1,0,1,0,1,[1,1,1]]},{"q8":[0,1,0],"row":[1,0,1,1,0,[0,0,0]]},{"q8":[0,0,0],"row":[1,0,1,1,0,[0,0,1]]},{"q8":[1,1,1],"row":[1,0,1,1,0,[0,1,0]]},{"q8":[1,0,1],"row":[1,0,1,1,0,[0,1,1]]},{"q8":[1,0,0],"row":[1,0,1,1,0,[1,0,0]]},{"q8":[1,1,0],"row":[1,0,1,1,0,[1,0,1]]},{"q8":[0,1,1],"row":[1,0,1,1,0,[1,1,0]]},{"q8":[0,0,1],"row":[1,0,1,1,0,[1,1,1]]},{"q8":[1,1,1],"row":[1,0,1,1,1,[0,0,0]]},{"q8":[1,0,0],"row":[1,0,1,1,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,0,1,1,1,[0,1,0]]},{"q8":[0,0,1],"row":[1,0,1,1,1,[0,1,1]]},{"q8":[0,0,0],"row":[1,0,1,1,1,[1,0,0]]},{"q8":[0,1,1],"row":[1,0,1,1,1,[1,0,1]]},{"q8":[1,1,0],"row":[1,0,1,1,1,[1,1,0]]},{"q8":[1,0,1],"row":[1,0,1,1,1,[1,1,1]]},{"q8":[1,0,1],"row":[1,1,0,0,0,[0,0,0]]},{"q8":[1,0,0],"row":[1,1,0,0,0,[0,0,1]]},{"q8":[0,0,0],"row":[1,1,0,0,0,[0,1,0]]},{"q8":[1,1,0],"row":[1,1,0,0,0,[0,1,1]]},{"q8":[0,0,1],"row":[1,1,0,0,0,[1,0,0]]},{"q8":[0,1,1],"row":[1,1,0,0,0,[1,0,1]]},{"q8":[0,1,0],"row":[1,1,0,0,0,[1,1,0]]},{"q8":[1,1,1],"row":[1,1,0,0,0,[1,1,1]]},{"q8":[0,1,0],"row":[1,1,0,0,1,[0,0,0]]},{"q8":[0,1,1],"row":[1,1,0,0,1,[0,0,1]]},{"q8":[1,1,0],"row":[1,1,0,0,1,[0,1,0]]},{"q8":[0,0,0],"row":[1,1,0,0,1,[0,1,1]]},{"q8":[1,1,1],"row":[1,1,0,0,1,[1,0,0]]},{"q8":[1,0,0],"row":[1,1,0,0,1,[1,0,1]]},{"q8":[1,0,1],"row":[1,1,0,0,1,[1,1,0]]},{"q8":[0,0,1],"row":[1,1,0,0,1,[1,1,1]]},{"q8":[1,0,1],"row":[1,1,0,1,0,[0,0,0]]},{"q8":[1,0,0],"row":[1,1,0,1,0,[0,0,1]]},{"q8":[0,0,0],"row":[1,1,0,1,0,[0,1,0]]},{"q8":[1,1,0],"row":[1,1,0,1,0,[0,1,1]]},{"q8":[0,0,1],"row":[1,1,0,1,0,[1,0,0]]},{"q8":[0,1,1],"row":[1,1,0,1,0,[1,0,1]]},{"q8":[0,1,0],"row":[1,1,0,1,0,[1,1,0]]},{"q8":[1,1,1],"row":[1,1,0,1,0,[1,1,1]]},{"q8":[0,1,0],"row":[1,1,0,1,1,[0,0,0]]},{"q8":[0,1,1],"row":[1,1,0,1,1,[0,0,1]]},{"q8":[1,1,0],"row":[1,1,0,1,1,[0,1,0]]},{"q8":[0,0,0],"row":[1,1,0,1,1,[0,1,1]]},{"q8":[1,1,1],"row":[1,1,0,1,1,[1,0,0]]},{"q8":[1,0,0],"row":[1,1,0,1,1,[1,0,1]]},{"q8":[1,0,1],"row":[1,1,0,1,1,[1,1,0]]},{"q8":[0,0,1],"row":[1,1,0,1,1,[1,1,1]]},{"q8":[1,0,1],"row":[1,1,1,0,0,[0,0,0]]},{"q8":[1,0,0],"row":[1,1,1,0,0,[0,0,1]]},{"q8":[0,0,0],"row":[1,1,1,0,0,[0,1,0]]},{"q8":[1,1,0],"row":[1,1,1,0,0,[0,1,1]]},{"q8":[0,0,1],"row":[1,1,1,0,0,[1,0,0]]},{"q8":[0,1,1],"row":[1,1,1,0,0,[1,0,1]]},{"q8":[0,1,0],"row":[1,1,1,0,0,[1,1,0]]},{"q8":[1,1,1],"row":[1,1,1,0,0,[1,1,1]]},{"q8":[0,1,0],"row":[1,1,1,0,1,[0,0,0]]},{"q8":[0,1,1],"row":[1,1,1,0,1,[0,0,1]]},{"q8":[1,1,0],"row":[1,1,1,0,1,[0,1,0]]},{"q8":[0,0,0],"row":[1,1,1,0,1,[0,1,1]]},{"q8":[1,1,1],"row":[1,1,1,0,1,[1,0,0]]},{"q8":[1,0,0],"row":[1,1,1,0,1,[1,0,1]]},{"q8":[1,0,1],"row":[1,1,1,0,1,[1,1,0]]},{"q8":[0,0,1],"row":[1,1,1,0,1,[1,1,1]]},{"q8":[1,0,1],"row":[1,1,1,1,0,[0,0,0]]},{"q8":[1,0,0],"row":[1,1,1,1,0,[0,0,1]]},{"q8":[0,0,0],"row":[1,1,1,1,0,[0,1,0]]},{"q8":[1,1,0],"row":[1,1,1,1,0,[0,1,1]]},{"q8":[0,0,1],"row":[1,1,1,1,0,[1,0,0]]},{"q8":[0,1,1],"row":[1,1,1,1,0,[1,0,1]]},{"q8":[0,1,0],"row":[1,1,1,1,0,[1,1,0]]},{"q8":[1,1,1],"row":[1,1,1,1,0,[1,1,1]]},{"q8":[0,1,0],"row":[1,1,1,1,1,[0,0,0]]},{"q8":[0,1,1],"row":[1,1,1,1,1,[0,0,1]]},{"q8":[1,1,0],"row":[1,1,1,1,1,[0,1,0]]},{"q8":[0,0,0],"row":[1,1,1,1,1,[0,1,1]]},{"q8":[1,1,1],"row":[1,1,1,1,1,[1,0,0]]},{"q8":[1,0,0],"row":[1,1,1,1,1,[1,0,1]]},{"q8":[1,0,1],"row":[1,1,1,1,1,[1,1,0]]},{"q8":[0,0,1],"row":[1,1,1,1,1,[1,1,1]]}],"q7":[{"q8":[0,1,0],"row":[0,0,0,0,0,[0,0,0]]},{"q8":[0,0,0],"row":[0,0,0,0,0,[0,0,1]]},{"q8":[1,1,1],"row":[0,0,0,0,0,[0,1,0]]},{"q8":[1,0,1],"row":[0,0,0,0,0,[0,1,1]]},{"q8":[1,0,0],"row":[0,0,0,0,0,[1,0,0]]},{"q8":[1,1,0],"row":[0,0,0,0,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,0,0,0,0,[1,1,0]]},{"q8":[0,0,1],"row":[0,0,0,0,0,[1,1,1]]},{"q8":[0,0,1],"row":[0,0,0,0,1,[0,0,0]]},{"q8":[0,1,1],"row":[0,0,0,0,1,[0,0,1]]},{"q8":[1,0,1],"row":[0,0,0,0,1,[0,1,0]]},{"q8":[1,1,1],"row":[0,0,0,0,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,0,0,0,1,[1,0,0]]},{"q8":[1,0,0],"row":[0,0,0,0,1,[1,0,1]]},{"q8":[0,0,0],"row":[0,0,0,0,1,[1,1,0]]},{"q8":[0,1,0],"row":[0,0,0,0,1,[1,1,1]]},{"q8":[0,1,0],"row":[0,0,0,1,0,[0,0,0]]},{"q8":[0,0,0],"row":[0,0,0,1,0,[0,0,1]]},{"q8":[1,1,1],"row":[0,0,0,1,0,[0,1,0]]},{"q8":[1,0,1],"row":[0,0,0,1,0,[0,1,1]]},{"q8":[1,0,0],"row":[0,0,0,1,0,[1,0,0]]},{"q8":[1,1,0],"row":[0,0,0,1,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,0,0,1,0,[1,1,0]]},{"q8":[0,0,1],"row":[0,0,0,1,0,[1,1,1]]},{"q8":[0,0,1],"row":[0,0,0,1,1,[0,0,0]]},{"q8":[0,1,1],"row":[0,0,0,1,1,[0,0,1]]},{"q8":[1,0,1],"row":[0,0,0,1,1,[0,1,0]]},{"q8":[1,1,1],"row":[0,0,0,1,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,0,0,1,1,[1,0,0]]},{"q8":[1,0,0],"row":[0,0,0,1,1,[1,0,1]]},{"q8":[0,0,0],"row":[0,0,0,1,1,[1,1,0]]},{"q8":[0,1,0],"row":[0,0,0,1,1,[1,1,1]]},{"q8":[0,1,0],"row":[0,0,1,0,0,[0,0,0]]},{"q8":[0,0,0],"row":[0,0,1,0,0,[0,0,1]]},{"q8":[1,1,1],"row":[0,0,1,0,0,[0,1,0]]},{"q8":[1,0,1],"row":[0,0,1,0,0,[0,1,1]]},{"q8":[1,0,0],"row":[0,0,1,0,0,[1,0,0]]},{"q8":[1,1,0],"row":[0,0,1,0,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,0,1,0,0,[1,1,0]]},{"q8":[0,0,1],"row":[0,0,1,0,0,[1,1,1]]},{"q8":[0,0,1],"row":[0,0,1,0,1,[0,0,0]]},{"q8":[0,1,1],"row":[0,0,1,0,1,[0,0,1]]},{"q8":[1,0,1],"row":[0,0,1,0,1,[0,1,0]]},{"q8":[1,1,1],"row":[0,0,1,0,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,0,1,0,1,[1,0,0]]},{"q8":[1,0,0],"row":[0,0,1,0,1,[1,0,1]]},{"q8":[0,0,0],"row":[0,0,1,0,1,[1,1,0]]},{"q8":[0,1,0],"row":[0,0,1,0,1,[1,1,1]]},{"q8":[0,1,0],"row":[0,0,1,1,0,[0,0,0]]},{"q8":[0,0,0],"row":[0,0,1,1,0,[0,0,1]]},{"q8":[1,1,1],"row":[0,0,1,1,0,[0,1,0]]},{"q8":[1,0,1],"row":[0,0,1,1,0,[0,1,1]]},{"q8":[1,0,0],"row":[0,0,1,1,0,[1,0,0]]},{"q8":[1,1,0],"row":[0,0,1,1,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,0,1,1,0,[1,1,0]]},{"q8":[0,0,1],"row":[0,0,1,1,0,[1,1,1]]},{"q8":[0,0,1],"row":[0,0,1,1,1,[0,0,0]]},{"q8":[0,1,1],"row":[0,0,1,1,1,[0,0,1]]},{"q8":[1,0,1],"row":[0,0,1,1,1,[0,1,0]]},{"q8":[1,1,1],"row":[0,0,1,1,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,0,1,1,1,[1,0,0]]},{"q8":[1,0,0],"row":[0,0,1,1,1,[1,0,1]]},{"q8":[0,0,0],"row":[0,0,1,1,1,[1,1,0]]},{"q8":[0,1,0],"row":[0,0,1,1,1,[1,1,1]]},{"q8":[0,0,1],"row":[0,1,0,0,0,[0,0,0]]},{"q8":[0,0,0],"row":[0,1,0,0,0,[0,0,1]]},{"q8":[1,0,0],"row":[0,1,0,0,0,[0,1,0]]},{"q8":[0,1,1],"row":[0,1,0,0,0,[0,1,1]]},{"q8":[1,0,1],"row":[0,1,0,0,0,[1,0,0]]},{"q8":[1,1,0],"row":[0,1,0,0,0,[1,0,1]]},{"q8":[1,1,1],"row":[0,1,0,0,0,[1,1,0]]},{"q8":[0,1,0],"row":[0,1,0,0,0,[1,1,1]]},{"q8":[0,1,1],"row":[0,1,0,0,1,[0,0,0]]},{"q8":[0,1,0],"row":[0,1,0,0,1,[0,0,1]]},{"q8":[1,1,1],"row":[0,1,0,0,1,[0,1,0]]},{"q8":[0,0,1],"row":[0,1,0,0,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,1,0,0,1,[1,0,0]]},{"q8":[1,0,1],"row":[0,1,0,0,1,[1,0,1]]},{"q8":[1,0,0],"row":[0,1,0,0,1,[1,1,0]]},{"q8":[0,0,0],"row":[0,1,0,0,1,[1,1,1]]},{"q8":[0,0,1],"row":[0,1,0,1,0,[0,0,0]]},{"q8":[0,0,0],"row":[0,1,0,1,0,[0,0,1]]},{"q8":[1,0,0],"row":[0,1,0,1,0,[0,1,0]]},{"q8":[0,1,1],"row":[0,1,0,1,0,[0,1,1]]},{"q8":[1,0,1],"row":[0,1,0,1,0,[1,0,0]]},{"q8":[1,1,0],"row":[0,1,0,1,0,[1,0,1]]},{"q8":[1,1,1],"row":[0,1,0,1,0,[1,1,0]]},{"q8":[0,1,0],"row":[0,1,0,1,0,[1,1,1]]},{"q8":[0,1,1],"row":[0,1,0,1,1,[0,0,0]]},{"q8":[0,1,0],"row":[0,1,0,1,1,[0,0,1]]},{"q8":[1,1,1],"row":[0,1,0,1,1,[0,1,0]]},{"q8":[0,0,1],"row":[0,1,0,1,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,1,0,1,1,[1,0,0]]},{"q8":[1,0,1],"row":[0,1,0,1,1,[1,0,1]]},{"q8":[1,0,0],"row":[0,1,0,1,1,[1,1,0]]},{"q8":[0,0,0],"row":[0,1,0,1,1,[1,1,1]]},{"q8":[0,0,1],"row":[0,1,1,0,0,[0,0,0]]},{"q8":[0,0,0],"row":[0,1,1,0,0,[0,0,1]]},{"q8":[1,0,0],"row":[0,1,1,0,0,[0,1,0]]},{"q8":[0,1,1],"row":[0,1,1,0,0,[0,1,1]]},{"q8":[1,0,1],"row":[0,1,1,0,0,[1,0,0]]},{"q8":[1,1,0],"row":[0,1,1,0,0,[1,0,1]]},{"q8":[1,1,1],"row":[0,1,1,0,0,[1,1,0]]},{"q8":[0,1,0],"row":[0,1,1,0,0,[1,1,1]]},{"q8":[0,1,1],"row":[0,1,1,0,1,[0,0,0]]},{"q8":[0,1,0],"row":[0,1,1,0,1,[0,0,1]]},{"q8":[1,1,1],"row":[0,1,1,0,1,[0,1,0]]},{"q8":[0,0,1],"row":[0,1,1,0,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,1,1,0,1,[1,0,0]]},{"q8":[1,0,1],"row":[0,1,1,0,1,[1,0,1]]},{"q8":[1,0,0],"row":[0,1,1,0,1,[1,1,0]]},{"q8":[0,0,0],"row":[0,1,1,0,1,[1,1,1]]},{"q8":[0,0,1],"row":[0,1,1,1,0,[0,0,0]]},{"q8":[0,0,0],"row":[0,1,1,1,0,[0,0,1]]},{"q8":[1,0,0],"row":[0,1,1,1,0,[0,1,0]]},{"q8":[0,1,1],"row":[0,1,1,1,0,[0,1,1]]},{"q8":[1,0,1],"row":[0,1,1,1,0,[1,0,0]]},{"q8":[1,1,0],"row":[0,1,1,1,0,[1,0,1]]},{"q8":[1,1,1],"row":[0,1,1,1,0,[1,1,0]]},{"q8":[0,1,0],"row":[0,1,1,1,0,[1,1,1]]},{"q8":[0,1,1],"row":[0,1,1,1,1,[0,0,0]]},{"q8":[0,1,0],"row":[0,1,1,1,1,[0,0,1]]},{"q8":[1,1,1],"row":[0,1,1,1,1,[0,1,0]]},{"q8":[0,0,1],"row":[0,1,1,1,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,1,1,1,1,[1,0,0]]},{"q8":[1,0,1],"row":[0,1,1,1,1,[1,0,1]]},{"q8":[1,0,0],"row":[0,1,1,1,1,[1,1,0]]},{"q8":[0,0,0],"row":[0,1,1,1,1,[1,1,1]]},{"q8":[1,0,1],"row":[1,0,0,0,0,[0,0,0]]},{"q8":[1,1,0],"row":[1,0,0,0,0,[0,0,1]]},{"q8":[0,0,1],"row":[1,0,0,0,0,[0,1,0]]},{"q8":[0,1,0],"row":[1,0,0,0,0,[0,1,1]]},{"q8":[0,1,1],"row":[1,0,0,0,0,[1,0,0]]},{"q8":[0,0,0],"row":[1,0,0,0,0,[1,0,1]]},{"q8":[1,0,0],"row":[1,0,0,0,0,[1,1,0]]},{"q8":[1,1,1],"row":[1,0,0,0,0,[1,1,1]]},{"q8":[1,1,1],"row":[1,0,0,0,1,[0,0,0]]},{"q8":[1,0,0],"row":[1,0,0,0,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,0,0,0,1,[0,1,0]]},{"q8":[0,0,1],"row":[1,0,0,0,1,[0,1,1]]},{"q8":[0,0,0],"row":[1,0,0,0,1,[1,0,0]]},{"q8":[0,1,1],"row":[1,0,0,0,1,[1,0,1]]},{"q8":[1,1,0],"row":[1,0,0,0,1,[1,1,0]]},{"q8":[1,0,1],"row":[1,0,0,0,1,[1,1,1]]},{"q8":[1,0,1],"row":[1,0,0,1,0,[0,0,0]]},{"q8":[1,1,0],"row":[1,0,0,1,0,[0,0,1]]},{"q8":[0,0,1],"row":[1,0,0,1,0,[0,1,0]]},{"q8":[0,1,0],"row":[1,0,0,1,0,[0,1,1]]},{"q8":[0,1,1],"row":[1,0,0,1,0,[1,0,0]]},{"q8":[0,0,0],"row":[1,0,0,1,0,[1,0,1]]},{"q8":[1,0,0],"row":[1,0,0,1,0,[1,1,0]]},{"q8":[1,1,1],"row":[1,0,0,1,0,[1,1,1]]},{"q8":[1,1,1],"row":[1,0,0,1,1,[0,0,0]]},{"q8":[1,0,0],"row":[1,0,0,1,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,0,0,1,1,[0,1,0]]},{"q8":[0,0,1],"row":[1,0,0,1,1,[0,1,1]]},{"q8":[0,0,0],"row":[1,0,0,1,1,[1,0,0]]},{"q8":[0,1,1],"row":[1,0,0,1,1,[1,0,1]]},{"q8":[1,1,0],"row":[1,0,0,1,1,[1,1,0]]},{"q8":[1,0,1],"row":[1,0,0,1,1,[1,1,1]]},{"q8":[1,0,1],"row":[1,0,1,0,0,[0,0,0]]},{"q8":[1,1,0],"row":[1,0,1,0,0,[0,0,1]]},{"q8":[0,0,1],"row":[1,0,1,0,0,[0,1,0]]},{"q8":[0,1,0],"row":[1,0,1,0,0,[0,1,1]]},{"q8":[0,1,1],"row":[1,0,1,0,0,[1,0,0]]},{"q8":[0,0,0],"row":[1,0,1,0,0,[1,0,1]]},{"q8":[1,0,0],"row":[1,0,1,0,0,[1,1,0]]},{"q8":[1,1,1],"row":[1,0,1,0,0,[1,1,1]]},{"q8":[1,1,1],"row":[1,0,1,0,1,[0,0,0]]},{"q8":[1,0,0],"row":[1,0,1,0,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,0,1,0,1,[0,1,0]]},{"q8":[0,0,1],"row":[1,0,1,0,1,[0,1,1]]},{"q8":[0,0,0],"row":[1,0,1,0,1,[1,0,0]]},{"q8":[0,1,1],"row":[1,0,1,0,1,[1,0,1]]},{"q8":[1,1,0],"row":[1,0,1,0,1,[1,1,0]]},{"q8":[1,0,1],"row":[1,0,1,0,1,[1,1,1]]},{"q8":[1,0,1],"row":[1,0,1,1,0,[0,0,0]]},{"q8":[1,1,0],"row":[1,0,1,1,0,[0,0,1]]},{"q8":[0,0,1],"row":[1,0,1,1,0,[0,1,0]]},{"q8":[0,1,0],"row":[1,0,1,1,0,[0,1,1]]},{"q8":[0,1,1],"row":[1,0,1,1,0,[1,0,0]]},{"q8":[0,0,0],"row":[1,0,1,1,0,[1,0,1]]},{"q8":[1,0,0],"row":[1,0,1,1,0,[1,1,0]]},{"q8":[1,1,1],"row":[1,0,1,1,0,[1,1,1]]},{"q8":[1,1,1],"row":[1,0,1,1,1,[0,0,0]]},{"q8":[1,0,0],"row":[1,0,1,1,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,0,1,1,1,[0,1,0]]},{"q8":[0,0,1],"row":[1,0,1,1,1,[0,1,1]]},{"q8":[0,0,0],"row":[1,0,1,1,1,[1,0,0]]},{"q8":[0,1,1],"row":[1,0,1,1,1,[1,0,1]]},{"q8":[1,1,0],"row":[1,0,1,1,1,[1,1,0]]},{"q8":[1,0,1],"row":[1,0,1,1,1,[1,1,1]]},{"q8":[1,0,1],"row":[1,1,0,0,0,[0,0,0]]},{"q8":[1,0,0],"row":[1,1,0,0,0,[0,0,1]]},{"q8":[0,0,0],"row":[1,1,0,0,0,[0,1,0]]},{"q8":[1,1,0],"row":[1,1,0,0,0,[0,1,1]]},{"q8":[0,0,1],"row":[1,1,0,0,0,[1,0,0]]},{"q8":[0,1,1],"row":[1,1,0,0,0,[1,0,1]]},{"q8":[0,1,0],"row":[1,1,0,0,0,[1,1,0]]},{"q8":[1,1,1],"row":[1,1,0,0,0,[1,1,1]]},{"q8":[1,1,0],"row":[1,1,0,0,1,[0,0,0]]},{"q8":[1,1,1],"row":[1,1,0,0,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,1,0,0,1,[0,1,0]]},{"q8":[1,0,1],"row":[1,1,0,0,1,[0,1,1]]},{"q8":[0,1,1],"row":[1,1,0,0,1,[1,0,0]]},{"q8":[0,0,1],"row":[1,1,0,0,1,[1,0,1]]},{"q8":[0,0,0],"row":[1,1,0,0,1,[1,1,0]]},{"q8":[1,0,0],"row":[1,1,0,0,1,[1,1,1]]},{"q8":[1,0,1],"row":[1,1,0,1,0,[0,0,0]]},{"q8":[1,0,0],"row":[1,1,0,1,0,[0,0,1]]},{"q8":[0,0,0],"row":[1,1,0,1,0,[0,1,0]]},{"q8":[1,1,0],"row":[1,1,0,1,0,[0,1,1]]},{"q8":[0,0,1],"row":[1,1,0,1,0,[1,0,0]]},{"q8":[0,1,1],"row":[1,1,0,1,0,[1,0,1]]},{"q8":[0,1,0],"row":[1,1,0,1,0,[1,1,0]]},{"q8":[1,1,1],"row":[1,1,0,1,0,[1,1,1]]},{"q8":[1,1,0],"row":[1,1,0,1,1,[0,0,0]]},{"q8":[1,1,1],"row":[1,1,0,1,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,1,0,1,1,[0,1,0]]},{"q8":[1,0,1],"row":[1,1,0,1,1,[0,1,1]]},{"q8":[0,1,1],"row":[1,1,0,1,1,[1,0,0]]},{"q8":[0,0,1],"row":[1,1,0,1,1,[1,0,1]]},{"q8":[0,0,0],"row":[1,1,0,1,1,[1,1,0]]},{"q8":[1,0,0],"row":[1,1,0,1,1,[1,1,1]]},{"q8":[1,0,1],"row":[1,1,1,0,0,[0,0,0]]},{"q8":[1,0,0],"row":[1,1,1,0,0,[0,0,1]]},{"q8":[0,0,0],"row":[1,1,1,0,0,[0,1,0]]},{"q8":[1,1,0],"row":[1,1,1,0,0,[0,1,1]]},{"q8":[0,0,1],"row":[1,1,1,0,0,[1,0,0]]},{"q8":[0,1,1],"row":[1,1,1,0,0,[1,0,1]]},{"q8":[0,1,0],"row":[1,1,1,0,0,[1,1,0]]},{"q8":[1,1,1],"row":[1,1,1,0,0,[1,1,1]]},{"q8":[1,1,0],"row":[1,1,1,0,1,[0,0,0]]},{"q8":[1,1,1],"row":[1,1,1,0,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,1,1,0,1,[0,1,0]]},{"q8":[1,0,1],"row":[1,1,1,0,1,[0,1,1]]},{"q8":[0,1,1],"row":[1,1,1,0,1,[1,0,0]]},{"q8":[0,0,1],"row":[1,1,1,0,1,[1,0,1]]},{"q8":[0,0,0],"row":[1,1,1,0,1,[1,1,0]]},{"q8":[1,0,0],"row":[1,1,1,0,1,[1,1,1]]},{"q8":[1,0,1],"row":[1,1,1,1,0,[0,0,0]]},{"q8":[1,0,0],"row":[1,1,1,1,0,[0,0,1]]},{"q8":[0,0,0],"row":[1,1,1,1,0,[0,1,0]]},{"q8":[1,1,0],"row":[1,1,1,1,0,[0,1,1]]},{"q8":[0,0,1],"row":[1,1,1,1,0,[1,0,0]]},{"q8":[0,1,1],"row":[1,1,1,1,0,[1,0,1]]},{"q8":[0,1,0],"row":[1,1,1,1,0,[1,1,0]]},{"q8":[1,1,1],"row":[1,1,1,1,0,[1,1,1]]},{"q8":[1,1,0],"row":[1,1,1,1,1,[0,0,0]]},{"q8":[1,1,1],"row":[1,1,1,1,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,1,1,1,1,[0,1,0]]},{"q8":[1,0,1],"row":[1,1,1,1,1,[0,1,1]]},{"q8":[0,1,1],"row":[1,1,1,1,1,[1,0,0]]},{"q8":[0,0,1],"row":[1,1,1,1,1,[1,0,1]]},{"q8":[0,0,0],"row":[1,1,1,1,1,[1,1,0]]},{"q8":[1,0,0],"row":[1,1,1,1,1,[1,1,1]]}],"qY":[{"q8":[0,1,0],"row":[0,0,0,0,0,[0,0,0]]},{"q8":[0,0,0],"row":[0,0,0,0,0,[0,0,1]]},{"q8":[1,1,1],"row":[0,0,0,0,0,[0,1,0]]},{"q8":[1,0,1],"row":[0,0,0,0,0,[0,1,1]]},{"q8":[1,0,0],"row":[0,0,0,0,0,[1,0,0]]},{"q8":[1,1,0],"row":[0,0,0,0,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,0,0,0,0,[1,1,0]]},{"q8":[0,0,1],"row":[0,0,0,0,0,[1,1,1]]},{"q8":[0,0,1],"row":[0,0,0,0,1,[0,0,0]]},{"q8":[0,1,1],"row":[0,0,0,0,1,[0,0,1]]},{"q8":[1,0,1],"row":[0,0,0,0,1,[0,1,0]]},{"q8":[1,1,1],"row":[0,0,0,0,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,0,0,0,1,[1,0,0]]},{"q8":[1,0,0],"row":[0,0,0,0,1,[1,0,1]]},{"q8":[0,0,0],"row":[0,0,0,0,1,[1,1,0]]},{"q8":[0,1,0],"row":[0,0,0,0,1,[1,1,1]]},{"q8":[0,1,0],"row":[0,0,0,1,0,[0,0,0]]},{"q8":[0,0,0],"row":[0,0,0,1,0,[0,0,1]]},{"q8":[1,1,1],"row":[0,0,0,1,0,[0,1,0]]},{"q8":[1,0,1],"row":[0,0,0,1,0,[0,1,1]]},{"q8":[1,0,0],"row":[0,0,0,1,0,[1,0,0]]},{"q8":[1,1,0],"row":[0,0,0,1,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,0,0,1,0,[1,1,0]]},{"q8":[0,0,1],"row":[0,0,0,1,0,[1,1,1]]},{"q8":[0,0,1],"row":[0,0,0,1,1,[0,0,0]]},{"q8":[0,1,1],"row":[0,0,0,1,1,[0,0,1]]},{"q8":[1,0,1],"row":[0,0,0,1,1,[0,1,0]]},{"q8":[1,1,1],"row":[0,0,0,1,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,0,0,1,1,[1,0,0]]},{"q8":[1,0,0],"row":[0,0,0,1,1,[1,0,1]]},{"q8":[0,0,0],"row":[0,0,0,1,1,[1,1,0]]},{"q8":[0,1,0],"row":[0,0,0,1,1,[1,1,1]]},{"q8":[0,1,0],"row":[0,0,1,0,0,[0,0,0]]},{"q8":[0,0,0],"row":[0,0,1,0,0,[0,0,1]]},{"q8":[1,1,1],"row":[0,0,1,0,0,[0,1,0]]},{"q8":[1,0,1],"row":[0,0,1,0,0,[0,1,1]]},{"q8":[1,0,0],"row":[0,0,1,0,0,[1,0,0]]},{"q8":[1,1,0],"row":[0,0,1,0,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,0,1,0,0,[1,1,0]]},{"q8":[0,0,1],"row":[0,0,1,0,0,[1,1,1]]},{"q8":[0,0,1],"row":[0,0,1,0,1,[0,0,0]]},{"q8":[0,1,1],"row":[0,0,1,0,1,[0,0,1]]},{"q8":[1,0,1],"row":[0,0,1,0,1,[0,1,0]]},{"q8":[1,1,1],"row":[0,0,1,0,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,0,1,0,1,[1,0,0]]},{"q8":[1,0,0],"row":[0,0,1,0,1,[1,0,1]]},{"q8":[0,0,0],"row":[0,0,1,0,1,[1,1,0]]},{"q8":[0,1,0],"row":[0,0,1,0,1,[1,1,1]]},{"q8":[0,1,0],"row":[0,0,1,1,0,[0,0,0]]},{"q8":[0,0,0],"row":[0,0,1,1,0,[0,0,1]]},{"q8":[1,1,1],"row":[0,0,1,1,0,[0,1,0]]},{"q8":[1,0,1],"row":[0,0,1,1,0,[0,1,1]]},{"q8":[1,0,0],"row":[0,0,1,1,0,[1,0,0]]},{"q8":[1,1,0],"row":[0,0,1,1,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,0,1,1,0,[1,1,0]]},{"q8":[0,0,1],"row":[0,0,1,1,0,[1,1,1]]},{"q8":[0,0,1],"row":[0,0,1,1,1,[0,0,0]]},{"q8":[0,1,1],"row":[0,0,1,1,1,[0,0,1]]},{"q8":[1,0,1],"row":[0,0,1,1,1,[0,1,0]]},{"q8":[1,1,1],"row":[0,0,1,1,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,0,1,1,1,[1,0,0]]},{"q8":[1,0,0],"row":[0,0,1,1,1,[1,0,1]]},{"q8":[0,0,0],"row":[0,0,1,1,1,[1,1,0]]},{"q8":[0,1,0],"row":[0,0,1,1,1,[1,1,1]]},{"q8":[1,0,0],"row":[0,1,0,0,0,[0,0,0]]},{"q8":[1,0,1],"row":[0,1,0,0,0,[0,0,1]]},{"q8":[0,0,1],"row":[0,1,0,0,0,[0,1,0]]},{"q8":[1,1,1],"row":[0,1,0,0,0,[0,1,1]]},{"q8":[0,0,0],"row":[0,1,0,0,0,[1,0,0]]},{"q8":[0,1,0],"row":[0,1,0,0,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,1,0,0,0,[1,1,0]]},{"q8":[1,1,0],"row":[0,1,0,0,0,[1,1,1]]},{"q8":[0,1,1],"row":[0,1,0,0,1,[0,0,0]]},{"q8":[0,1,0],"row":[0,1,0,0,1,[0,0,1]]},{"q8":[1,1,1],"row":[0,1,0,0,1,[0,1,0]]},{"q8":[0,0,1],"row":[0,1,0,0,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,1,0,0,1,[1,0,0]]},{"q8":[1,0,1],"row":[0,1,0,0,1,[1,0,1]]},{"q8":[1,0,0],"row":[0,1,0,0,1,[1,1,0]]},{"q8":[0,0,0],"row":[0,1,0,0,1,[1,1,1]]},{"q8":[1,0,0],"row":[0,1,0,1,0,[0,0,0]]},{"q8":[1,0,1],"row":[0,1,0,1,0,[0,0,1]]},{"q8":[0,0,1],"row":[0,1,0,1,0,[0,1,0]]},{"q8":[1,1,1],"row":[0,1,0,1,0,[0,1,1]]},{"q8":[0,0,0],"row":[0,1,0,1,0,[1,0,0]]},{"q8":[0,1,0],"row":[0,1,0,1,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,1,0,1,0,[1,1,0]]},{"q8":[1,1,0],"row":[0,1,0,1,0,[1,1,1]]},{"q8":[0,1,1],"row":[0,1,0,1,1,[0,0,0]]},{"q8":[0,1,0],"row":[0,1,0,1,1,[0,0,1]]},{"q8":[1,1,1],"row":[0,1,0,1,1,[0,1,0]]},{"q8":[0,0,1],"row":[0,1,0,1,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,1,0,1,1,[1,0,0]]},{"q8":[1,0,1],"row":[0,1,0,1,1,[1,0,1]]},{"q8":[1,0,0],"row":[0,1,0,1,1,[1,1,0]]},{"q8":[0,0,0],"row":[0,1,0,1,1,[1,1,1]]},{"q8":[1,0,0],"row":[0,1,1,0,0,[0,0,0]]},{"q8":[1,0,1],"row":[0,1,1,0,0,[0,0,1]]},{"q8":[0,0,1],"row":[0,1,1,0,0,[0,1,0]]},{"q8":[1,1,1],"row":[0,1,1,0,0,[0,1,1]]},{"q8":[0,0,0],"row":[0,1,1,0,0,[1,0,0]]},{"q8":[0,1,0],"row":[0,1,1,0,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,1,1,0,0,[1,1,0]]},{"q8":[1,1,0],"row":[0,1,1,0,0,[1,1,1]]},{"q8":[0,1,1],"row":[0,1,1,0,1,[0,0,0]]},{"q8":[0,1,0],"row":[0,1,1,0,1,[0,0,1]]},{"q8":[1,1,1],"row":[0,1,1,0,1,[0,1,0]]},{"q8":[0,0,1],"row":[0,1,1,0,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,1,1,0,1,[1,0,0]]},{"q8":[1,0,1],"row":[0,1,1,0,1,[1,0,1]]},{"q8":[1,0,0],"row":[0,1,1,0,1,[1,1,0]]},{"q8":[0,0,0],"row":[0,1,1,0,1,[1,1,1]]},{"q8":[1,0,0],"row":[0,1,1,1,0,[0,0,0]]},{"q8":[1,0,1],"row":[0,1,1,1,0,[0,0,1]]},{"q8":[0,0,1],"row":[0,1,1,1,0,[0,1,0]]},{"q8":[1,1,1],"row":[0,1,1,1,0,[0,1,1]]},{"q8":[0,0,0],"row":[0,1,1,1,0,[1,0,0]]},{"q8":[0,1,0],"row":[0,1,1,1,0,[1,0,1]]},{"q8":[0,1,1],"row":[0,1,1,1,0,[1,1,0]]},{"q8":[1,1,0],"row":[0,1,1,1,0,[1,1,1]]},{"q8":[0,1,1],"row":[0,1,1,1,1,[0,0,0]]},{"q8":[0,1,0],"row":[0,1,1,1,1,[0,0,1]]},{"q8":[1,1,1],"row":[0,1,1,1,1,[0,1,0]]},{"q8":[0,0,1],"row":[0,1,1,1,1,[0,1,1]]},{"q8":[1,1,0],"row":[0,1,1,1,1,[1,0,0]]},{"q8":[1,0,1],"row":[0,1,1,1,1,[1,0,1]]},{"q8":[1,0,0],"row":[0,1,1,1,1,[1,1,0]]},{"q8":[0,0,0],"row":[0,1,1,1,1,[1,1,1]]},{"q8":[0,0,1],"row":[1,0,0,0,0,[0,0,0]]},{"q8":[0,1,1],"row":[1,0,0,0,0,[0,0,1]]},{"q8":[1,0,1],"row":[1,0,0,0,0,[0,1,0]]},{"q8":[1,1,1],"row":[1,0,0,0,0,[0,1,1]]},{"q8":[1,1,0],"row":[1,0,0,0,0,[1,0,0]]},{"q8":[1,0,0],"row":[1,0,0,0,0,[1,0,1]]},{"q8":[0,0,0],"row":[1,0,0,0,0,[1,1,0]]},{"q8":[0,1,0],"row":[1,0,0,0,0,[1,1,1]]},{"q8":[1,1,1],"row":[1,0,0,0,1,[0,0,0]]},{"q8":[1,0,0],"row":[1,0,0,0,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,0,0,0,1,[0,1,0]]},{"q8":[0,0,1],"row":[1,0,0,0,1,[0,1,1]]},{"q8":[0,0,0],"row":[1,0,0,0,1,[1,0,0]]},{"q8":[0,1,1],"row":[1,0,0,0,1,[1,0,1]]},{"q8":[1,1,0],"row":[1,0,0,0,1,[1,1,0]]},{"q8":[1,0,1],"row":[1,0,0,0,1,[1,1,1]]},{"q8":[0,0,1],"row":[1,0,0,1,0,[0,0,0]]},{"q8":[0,1,1],"row":[1,0,0,1,0,[0,0,1]]},{"q8":[1,0,1],"row":[1,0,0,1,0,[0,1,0]]},{"q8":[1,1,1],"row":[1,0,0,1,0,[0,1,1]]},{"q8":[1,1,0],"row":[1,0,0,1,0,[1,0,0]]},{"q8":[1,0,0],"row":[1,0,0,1,0,[1,0,1]]},{"q8":[0,0,0],"row":[1,0,0,1,0,[1,1,0]]},{"q8":[0,1,0],"row":[1,0,0,1,0,[1,1,1]]},{"q8":[1,1,1],"row":[1,0,0,1,1,[0,0,0]]},{"q8":[1,0,0],"row":[1,0,0,1,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,0,0,1,1,[0,1,0]]},{"q8":[0,0,1],"row":[1,0,0,1,1,[0,1,1]]},{"q8":[0,0,0],"row":[1,0,0,1,1,[1,0,0]]},{"q8":[0,1,1],"row":[1,0,0,1,1,[1,0,1]]},{"q8":[1,1,0],"row":[1,0,0,1,1,[1,1,0]]},{"q8":[1,0,1],"row":[1,0,0,1,1,[1,1,1]]},{"q8":[0,0,1],"row":[1,0,1,0,0,[0,0,0]]},{"q8":[0,1,1],"row":[1,0,1,0,0,[0,0,1]]},{"q8":[1,0,1],"row":[1,0,1,0,0,[0,1,0]]},{"q8":[1,1,1],"row":[1,0,1,0,0,[0,1,1]]},{"q8":[1,1,0],"row":[1,0,1,0,0,[1,0,0]]},{"q8":[1,0,0],"row":[1,0,1,0,0,[1,0,1]]},{"q8":[0,0,0],"row":[1,0,1,0,0,[1,1,0]]},{"q8":[0,1,0],"row":[1,0,1,0,0,[1,1,1]]},{"q8":[1,1,1],"row":[1,0,1,0,1,[0,0,0]]},{"q8":[1,0,0],"row":[1,0,1,0,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,0,1,0,1,[0,1,0]]},{"q8":[0,0,1],"row":[1,0,1,0,1,[0,1,1]]},{"q8":[0,0,0],"row":[1,0,1,0,1,[1,0,0]]},{"q8":[0,1,1],"row":[1,0,1,0,1,[1,0,1]]},{"q8":[1,1,0],"row":[1,0,1,0,1,[1,1,0]]},{"q8":[1,0,1],"row":[1,0,1,0,1,[1,1,1]]},{"q8":[0,0,1],"row":[1,0,1,1,0,[0,0,0]]},{"q8":[0,1,1],"row":[1,0,1,1,0,[0,0,1]]},{"q8":[1,0,1],"row":[1,0,1,1,0,[0,1,0]]},{"q8":[1,1,1],"row":[1,0,1,1,0,[0,1,1]]},{"q8":[1,1,0],"row":[1,0,1,1,0,[1,0,0]]},{"q8":[1,0,0],"row":[1,0,1,1,0,[1,0,1]]},{"q8":[0,0,0],"row":[1,0,1,1,0,[1,1,0]]},{"q8":[0,1,0],"row":[1,0,1,1,0,[1,1,1]]},{"q8":[1,1,1],"row":[1,0,1,1,1,[0,0,0]]},{"q8":[1,0,0],"row":[1,0,1,1,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,0,1,1,1,[0,1,0]]},{"q8":[0,0,1],"row":[1,0,1,1,1,[0,1,1]]},{"q8":[0,0,0],"row":[1,0,1,1,1,[1,0,0]]},{"q8":[0,1,1],"row":[1,0,1,1,1,[1,0,1]]},{"q8":[1,1,0],"row":[1,0,1,1,1,[1,1,0]]},{"q8":[1,0,1],"row":[1,0,1,1,1,[1,1,1]]},{"q8":[1,0,1],"row":[1,1,0,0,0,[0,0,0]]},{"q8":[1,0,0],"row":[1,1,0,0,0,[0,0,1]]},{"q8":[0,0,0],"row":[1,1,0,0,0,[0,1,0]]},{"q8":[1,1,0],"row":[1,1,0,0,0,[0,1,1]]},{"q8":[0,0,1],"row":[1,1,0,0,0,[1,0,0]]},{"q8":[0,1,1],"row":[1,1,0,0,0,[1,0,1]]},{"q8":[0,1,0],"row":[1,1,0,0,0,[1,1,0]]},{"q8":[1,1,1],"row":[1,1,0,0,0,[1,1,1]]},{"q8":[1,1,0],"row":[1,1,0,0,1,[0,0,0]]},{"q8":[1,1,1],"row":[1,1,0,0,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,1,0,0,1,[0,1,0]]},{"q8":[1,0,1],"row":[1,1,0,0,1,[0,1,1]]},{"q8":[0,1,1],"row":[1,1,0,0,1,[1,0,0]]},{"q8":[0,0,1],"row":[1,1,0,0,1,[1,0,1]]},{"q8":[0,0,0],"row":[1,1,0,0,1,[1,1,0]]},{"q8":[1,0,0],"row":[1,1,0,0,1,[1,1,1]]},{"q8":[1,0,1],"row":[1,1,0,1,0,[0,0,0]]},{"q8":[1,0,0],"row":[1,1,0,1,0,[0,0,1]]},{"q8":[0,0,0],"row":[1,1,0,1,0,[0,1,0]]},{"q8":[1,1,0],"row":[1,1,0,1,0,[0,1,1]]},{"q8":[0,0,1],"row":[1,1,0,1,0,[1,0,0]]},{"q8":[0,1,1],"row":[1,1,0,1,0,[1,0,1]]},{"q8":[0,1,0],"row":[1,1,0,1,0,[1,1,0]]},{"q8":[1,1,1],"row":[1,1,0,1,0,[1,1,1]]},{"q8":[1,1,0],"row":[1,1,0,1,1,[0,0,0]]},{"q8":[1,1,1],"row":[1,1,0,1,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,1,0,1,1,[0,1,0]]},{"q8":[1,0,1],"row":[1,1,0,1,1,[0,1,1]]},{"q8":[0,1,1],"row":[1,1,0,1,1,[1,0,0]]},{"q8":[0,0,1],"row":[1,1,0,1,1,[1,0,1]]},{"q8":[0,0,0],"row":[1,1,0,1,1,[1,1,0]]},{"q8":[1,0,0],"row":[1,1,0,1,1,[1,1,1]]},{"q8":[1,0,1],"row":[1,1,1,0,0,[0,0,0]]},{"q8":[1,0,0],"row":[1,1,1,0,0,[0,0,1]]},{"q8":[0,0,0],"row":[1,1,1,0,0,[0,1,0]]},{"q8":[1,1,0],"row":[1,1,1,0,0,[0,1,1]]},{"q8":[0,0,1],"row":[1,1,1,0,0,[1,0,0]]},{"q8":[0,1,1],"row":[1,1,1,0,0,[1,0,1]]},{"q8":[0,1,0],"row":[1,1,1,0,0,[1,1,0]]},{"q8":[1,1,1],"row":[1,1,1,0,0,[1,1,1]]},{"q8":[1,1,0],"row":[1,1,1,0,1,[0,0,0]]},{"q8":[1,1,1],"row":[1,1,1,0,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,1,1,0,1,[0,1,0]]},{"q8":[1,0,1],"row":[1,1,1,0,1,[0,1,1]]},{"q8":[0,1,1],"row":[1,1,1,0,1,[1,0,0]]},{"q8":[0,0,1],"row":[1,1,1,0,1,[1,0,1]]},{"q8":[0,0,0],"row":[1,1,1,0,1,[1,1,0]]},{"q8":[1,0,0],"row":[1,1,1,0,1,[1,1,1]]},{"q8":[1,0,1],"row":[1,1,1,1,0,[0,0,0]]},{"q8":[1,0,0],"row":[1,1,1,1,0,[0,0,1]]},{"q8":[0,0,0],"row":[1,1,1,1,0,[0,1,0]]},{"q8":[1,1,0],"row":[1,1,1,1,0,[0,1,1]]},{"q8":[0,0,1],"row":[1,1,1,1,0,[1,0,0]]},{"q8":[0,1,1],"row":[1,1,1,1,0,[1,0,1]]},{"q8":[0,1,0],"row":[1,1,1,1,0,[1,1,0]]},{"q8":[1,1,1],"row":[1,1,1,1,0,[1,1,1]]},{"q8":[1,1,0],"row":[1,1,1,1,1,[0,0,0]]},{"q8":[1,1,1],"row":[1,1,1,1,1,[0,0,1]]},{"q8":[0,1,0],"row":[1,1,1,1,1,[0,1,0]]},{"q8":[1,0,1],"row":[1,1,1,1,1,[0,1,1]]},{"q8":[0,1,1],"row":[1,1,1,1,1,[1,0,0]]},{"q8":[0,0,1],"row":[1,1,1,1,1,[1,0,1]]},{"q8":[0,0,0],"row":[1,1,1,1,1,[1,1,0]]},{"q8":[1,0,0],"row":[1,1,1,1,1,[1,1,1]]}]},"schema":"oi.native-reset.q7-interface.v1","verdict":{"native_common_two_code_in_G_u_family":"excluded","native_route_in_G_u_family":"excluded","q7_common_two_code_socket_in_G_u_family":"excluded","q7_input_socket_in_G_u_family":"excluded","reset_5_3_2":"not_constructed","unprepared_q8":"underdetermined_by_q7_ready_region"}} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/INPUT-HASHES.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/INPUT-HASHES.json new file mode 100644 index 000000000..3811d482f --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/INPUT-HASHES.json @@ -0,0 +1,11 @@ +{ + "PROBE-PLAN.md": "d71b9e97adf118206e4d92717271bf8da573e6f419705eb569b390273c7a3f28", + "PROVENANCE.json": "0343cd367a994bd0bc65c62ca710d8f5c4abfea5a9bc319b5ff470cbd4a1967c", + "REPORT.md": "1530928d335627e499b5e41c54a66497f299f589ecec8e5ffd5fb29fbab947ab", + "SECOND-PROBE-PLAN.md": "6598b5d47caec9f245f7dc15278cd320b5791253e8e8ca67dd9a932f3757c554", + "checks-summary.json": "b83f9ba2bfe2be61dda4ea26740c9829ecf599d7852a2cee1dada6945f35f965", + "inherited_correction_model.py": "81fb9162229409e42d4383274c91988b94c8727dc70d9398cc1ca1ac51a38ee4", + "inherited_model.py": "dfb056bfe91372b44787d962e63d83ae7109802b38034b661e1c3275a63e146b", + "probe.py": "1b00605540c71e499a6a7b3b4f59f965f140e2620c287b4321c74c2cd2554b72", + "results.json": "6fb3ed95948f9900f1ec9f40ef740d26d7792c7dae549a37644210e8a9e1eb43" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/PLAN.md new file mode 100644 index 000000000..b0f95b053 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/PLAN.md @@ -0,0 +1,24 @@ +# Independent review decision rule + +Review only, no changes to author sources or publication actions. Final acceptance +will bind the immutable author checkpoint supplied by the parent. + +Compute the full Q/C/G evolution independently using the hash-bound prior +independent native helpers, a signed L16 strip and a nine-step full native +collision cone. Retain every u,G assignment and all x/mask/diagnostic values. +Required controls: direct interacting three-source recursion, exact period +divisibility and cone coverage, previous independently checked Q/C baseline, +old-source/readiness geometry, inherited qY/q2/q7 values, complete incoming +q7 triples, and exact equality with the published author's structured table. + +Measure G-to-q8 output maps at fixed old inputs. A bijection and a free initial +G outside adopted q7 readiness establish underdetermination at this endpoint; +do not infer a general impossibility. Enumerate G(u) pairs and measure both +the specified H-rotated native code and arbitrary common two-code native and +q7-input encodings. Verdicts are generated from those candidate sets only +after the controls pass. Independently verify any concise obstruction formula +against the computed table. No reset, joint-history or full-QM result follows. + +Use structured JSON results and exit status. Do not infer controls from logs. +Run normal and -O once after final source changes, compare structured results, +and keep the exact hashes and source provenance separate from certification. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/REPORT.md new file mode 100644 index 000000000..ae89c2f80 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/REPORT.md @@ -0,0 +1,197 @@ +# Independent review of the native q7 interface and q8 continuation + +**Verdict: accept the stated one-source, one-tick result and its scope.** The +adopted q7 preparation does not determine q8 at the next outward tick. Under +the explicitly added depth-eight ready preparation, no deterministic choice +G(u) in the tested family gives either the stipulated H-rotated clean code or +any common full-triple two-code encoding of native y. The separate arbitrary +q7.D-input test also fails every common two-code socket in that family. + +This review binds the exact local published payload for #910 checkpoint +`f7058d59ea2136601a679a7fdd7b7573b1e4bfa7`, under `reset_v7/`. It is an +independent research review on the consistency axis, not a native-round or +Lean certificate. No remote content was fetched, no author files were edited, +and no #885 change, dispatch, merge or publication was performed by the reviewer. +`INPUT-HASHES.json` identifies all nine inspected author files. No scientific +discrepancy requiring a correction was found. + +## Independent computation + +The checker imports no author dynamics. It uses the hash-bound prior +independent v5 native helpers and its own signed-transverse L16 lookahead strip. +It keeps the complete three-source system Q=(u,0,1), C=(u,0,u) and arbitrary G +at inward axial positions 0,-14,-16. C and G interact already at tick1; +Q/C and Q/G interactions also remain in the direct initial strip and subsequent +updates. No isolated-pulse superposition is used for this cluster. + +The general period argument audited in v5 applies unchanged: all sources lie +on the nonpositive axial half-line, so forward strip values outside the +finite-speed/parity support vanish. Increasing layer order makes every new +coordinate a permutation of its old triple, with coefficients depending only +on lower layers. Each lookahead consumes two layers and preserves the weight +budget. Therefore `12*840^16` is a conservative identity exponent, and it +divides P exactly. The q9 incoming value at `(n,t)=(P+244,P+260)` is exactly +the reduced query `(244,260)`, layer16. The use of three interacting sources +does not change this abstract-strip proof. + +The independent calculation uses 489 signed strip coordinates and verifies +46,944 scalar values against direct three-source native recursion. Its L14 +projection agrees with the prior independent Q/C calculation in 22,016 +values. This latter control checks every G: G cannot reach those lower layers, +not merely the G=000 case. Actual giant-integer selector displacements are +used for first-arrival parity. Upper/lower superposition is used only on the +pre-R slices, where their source separation excludes interaction. Nine full +native updates then compute R through R+8. + +The independently calculated values reproduce all 768 published q8 diagnostic +triples across qY.D, q2.A and q7.D interventions, all 384 published incoming +q7 neighbor triples, and all 64 old-local/endpoint rows. Both previously +checked q7 diagnostic formulas remain controls. All sixteen native incoming +interfaces retain their selector masks exactly as in the final author table. +Their XOR is `(y,1,1)` and the old local term is111, giving the known native +q7 output `(0,0,y)` under the full second-order update. The neighborhood is +not blank or independent of the previous history. + +## Why q8 is not fixed by q7 readiness + +Let N=R+7, q8=q7+e_z, and g=f+2e_z. The current initial site g has distances +N+2 to q7, N+1 to q8 and N to q9. It is outside the adopted q7 current and +previous ready balls and is not an inherited source, protected bank coordinate, +or forced copy of another seed. Its eight values are compatible initial +completions after all other coordinates are fixed. + +At q8's deadline N+1, g can influence only the upper neighbor q9 on the final +incoming slice N. It cannot influence the old local term at N-1 or the other +five incoming neighbors. Its shortest path to q9 is the unique inward axial +path. At each step along this first-arrival path, dependence on G has the +form `z -> a XOR H(z XOR b)`, with a and b independent of G by finite speed. +Each such map is bijective. The final local update is likewise a permutation +of that incoming triple when all other terms are fixed. + +The exact calculation confirms all eight distinct q8 outputs for every one +of the 32 fixed original qY diagnostic rows. Thus this is a concrete +underdetermination result, with a geometric permutation proof, not an argument +that every further native continuation must fail. Uniform marginals or +independence conditional on public history are not inferred from it. + +## Exact finite-family obstruction + +The extended preparation is explicitly current `B_(N+1)(q8)` and previous +`B_N(q8)`, with Q,C,G and the four lower sources preserved as exceptions. +The family allows G to depend on existing apparatus seed u, but not unknown x, +the later input p7, or a new random seed. The checker enumerates all eight +choices separately for each u and all 64 pairs G(0),G(1). Its candidate sets +are generated from the complete measured tables after the controls pass; +none succeeds for either the specified clean route or either common-two-code +test. + +The actual old q8 local term at N-1 is `(1 XOR u,1,0)`. Let +`(alpha,beta,gamma)` be the calculated incoming q9 change caused by G relative +to G=000. It depends only on u and G. The independent full recurrence verifies +all 256 arbitrary q7.D-input rows, including + +``` +A = x XOR beta, +B = 1 XOR x XOR u XOR x*u XOR p7 XOR gamma. +``` + +For a fixed u and G(u), A changes with x even with p7 held fixed. Hence no +whole output depending only on the free p7 exists in this family. This is a +failure of an actual boundary intervention, not a surrogate cold-socket test. + +For native p7=y=x XOR u, the two coordinates reduce to + +``` +A = x XOR beta(u), +B = 1 XOR x*u XOR gamma(u). +``` + +For B to agree across the two histories with y=0 requires +`gamma(1)=1 XOR gamma(0)`; agreement for y=1 instead requires +`gamma(1)=gamma(0)`. The contradiction excludes every common native +full-triple two-code encoding in this particular family, not only a preselected +code. It uses no assumption about alpha or about which incoming deltas are +realizable. The finite 64-pair enumeration supplies an exact computational +cross-check of the argument. + +The scope remains one added seed-only initial source, this direction, this +initial workspace, and one additional tick. Randomized resources, multiple +sources, other sites, longer routing, other preparations and a complete reset +are not excluded. + +## Readiness, protected banks, access and resources + +The enlarged balls contain the corresponding q7 balls, since their centers +are one unit apart and their radii increase by one. C remains an explicit +controlled interior source, while G lies on the new current boundary. The +review checks all 1,479 inherited source positions; only the unknown origin +is on that boundary and none is inside. The three selector controls are also +boundary sources. The previous unknown, opposite pulse and remote blocks are +outside, with d+80. The checker +guards the formulas at bounded and actual-scale indices; the all-index +conclusion is the affine geometry argument. Near banks have zero or negative +z, and remote banks have separated x, so neither f nor g overwrites them. +The extension therefore leaves these reserved fair coordinates unpinned. + +The isolated change of G is outside all fifteen old ready regions and farther +than N+1 from every old receiver center. It also cannot affect q7 through +N+1, the incoming q7 interface, or the previous sidecar. Therefore changing G +alone leaves those histories unchanged pointwise. **The whole new ready +extension is a different preparation** and may change later backgrounds; +the G-only argument does not prove invariance under that larger change. + +If all seven old three-bit public ports remain exposed through R+8, the +inherited joint-frontier result requires 168 initial independent fair bits +beyond R, which is 21 more than the q7 window. Preservation of the relevant +bank coordinates is checked here. The full inherited joint-history theorem +and the needed conditional independence are not independently certified by +this local probe. The informative q7 prefix still requires the supplied +delayed private access rule; no native access mechanism is constructed. + +The target 5:3:2 carrier distribution, fresh fair z conditional on history, +herald and all failure branches, reusable late-input interface, post-Y reset +and full OI-to-QM equivalence remain open. Existing success/failure accounting +is not changed by this result. The broader transport-proof audit also remains +open. + +## Reproduction and exact bytes + +Package this directory as `reset_v7/review/` and retain the already reviewed +`six_source_v5/review/checks.py`, `outward_v6/review/checks.py` and original +history-control source geometry at their existing sibling paths. No duplicate +scientific source data is needed. Run: + +``` +python3 reset_v7/review/checks.py > review.json +python3 -O reset_v7/review/checks.py > review-O.json +``` + +The checker verifies the frozen helper hashes and nine author-input hashes, +uses only the Python standard library, and prints compact structured JSON. +It does not run the unrelated full v5 check groups. Normal/-O structured +results agree byte-for-byte. Exit status and structured JSON, not printed log +phrases, carry the controls and measured verdicts. `SHA256SUMS` binds the final +review artifacts. + +Principal author SHA256 values: + +- `REPORT.md`: `1530928d335627e499b5e41c54a66497f299f589ecec8e5ffd5fb29fbab947ab` +- `probe.py`: `1b00605540c71e499a6a7b3b4f59f965f140e2620c287b4321c74c2cd2554b72` +- `results.json`: `6fb3ed95948f9900f1ec9f40ef740d26d7792c7dae549a37644210e8a9e1eb43` + +The remaining source and plan hashes are in `INPUT-HASHES.json`. This review +does not establish durability on main or a protocol-valid native round; the +named draft checkpoint and its local exact bytes are the reviewed object. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/SHA256SUMS new file mode 100644 index 000000000..c4bef0b68 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/SHA256SUMS @@ -0,0 +1,5 @@ +20cef31b4ead2f933fcf4a17af1725a2d1673d64afebb4d7c617e90c051cabf7 INPUT-HASHES.json +e8af341f05c5e576e742fd940106226d4765b501cdbc653273d42c7503d1df15 PLAN.md +1e24483edef9ebd89a7d2dc86ad98a9c5bd0e1dbe8768e53b8daa0e5f5d09197 REPORT.md +0904576bd58beb9adc64c1a47332eff25bf76e8440f99eed31b6cca4c8ea147b checks.py +fa4327594be742f7408a8c84dd3b0ea2360311f65a944f85379a867da18ab539 results.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/checks.py new file mode 100644 index 000000000..77f779863 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/checks.py @@ -0,0 +1,300 @@ +"""Independent native q7 interface and Q/C/G one-step continuation audit. + +Stdlib only; no author dynamics imports. Stdout is structured JSON. Author +results are comparison targets, never inputs to the native evolution. +""" +from contextlib import redirect_stdout +from hashlib import sha256 +from itertools import product +from pathlib import Path +import io +import json +import runpy + +HERE=Path(__file__).resolve().parent + + +def locate(suffixes): + for base in (HERE,*HERE.parents): + for suffix in suffixes: + path=base/suffix + if path.exists(): + return path + raise RuntimeError('Missing dependency: '+str(suffixes)) + + +HELPER=locate(('six_source_v5_review/checks.py','six_source_v5/review/checks.py')) +if sha256(HELPER.read_bytes()).hexdigest()!='467fbff795407b2a2744465166ac6fd0958dbef768606b2a40a9ed6b97120728': + raise RuntimeError('Prior independent native helper changed') +V=runpy.run_path(str(HELPER),run_name='independent_native_helpers') +for name in ('need','Z','E','xx','hh','variable','direct','strip_keys','ball','norm','hp','odd','native_update','T','P','S','R'): + globals()[name]=V[name] +AUTHOR=HERE.parent if (HERE.parent/'probe.py').exists() else locate(('repo_checkpoint/payload/reset_v7/probe.py','reset_v7/probe.py')).parent +KEYS=strip_keys(16) +GROUPS={ell:[key for key in KEYS if key[0]==ell] for ell in range(17)} +N=R+7 + + +def advance(old): + look=[{} for _ in range(10)] + for ell in range(17): + for jump in range((16-ell)//2+1): + for _,a,b in GROUPS[ell]: + if ell+abs(a)+abs(b)>16-2*jump: + continue + prior=old[ell,a,b] if jump==0 else look[jump-1][ell,a,b] + terms=[prior,look[jump+1].get((ell-2,a,b),Z)] + terms.extend(look[jump].get((ell-1,aa,bb),Z) + for aa,bb in ((a-1,b),(a+1,b),(a,b-1),(a,b+1))) + look[jump][ell,a,b]=xx(look[jump].get((ell-2,a,b),Z),hh(xx(*terms))) + return look[0] + + +def triple(value,lane): + return tuple(word>>lane&1 for word in value) + + +def index(row): + x,u,my,mr,p,g=row + return x+2*u+4*my+8*mr+16*p+32*(g[0]+2*g[1]+4*g[2]) + + +def strips(): + u=variable(0,16) + sources={(0,0,0):(u,0,65535),(0,-14,0):(u,0,u), + (0,-16,0):tuple(variable(i,16) for i in (1,2,3))} + at=direct(sources,packed=True) + states=[{key:at(key[0],(key[1],0,key[2])) for key in KEYS}] + for n in range(1,254): + states.append(advance(states[-1])) + comparisons=0 + for n in range(6): + for ell,a,b in KEYS: + need(states[n][ell,a,b]==at(n+ell,(a,n,b)),'full interacting tripole direct recursion') + comparisons+=16 + need(P%(12*840**16)==0,'actual universal strip exponent') + prior=locate(('outward_v6_review/checks.py','outward_v6/review/checks.py')) + need(sha256(prior.read_bytes()).hexdigest()=='ef730e8102c89e79e5a3974c3bdf9bc7ddaba6d23f7fb50ba35aba6dd03f9e5e','prior independent correction checker digest') + old=runpy.run_path(str(prior),run_name='independent_correction_helpers') + with redirect_stdout(io.StringIO()): + dipole=old['evaluate_strip']() + regression=0 + for n in (0,3,100,245): + for key in strip_keys(14): + for uu in (0,1): + expected=triple(dipole[n][key],uu+10*uu) + # G cannot influence any layer<=14; check every G, not only G=0. + for g in range(8): + need(triple(states[n][key],uu+2*g)==expected,'prior independent Q/C projection') + regression+=1 + return states,comparisons,regression + + +def calculate(states,site): + x,u,my,mr,p=(variable(i,256) for i in range(5)) + ones=(1<<256)-1 + controls=(((0,-S,-68),x),((0,S,-68),my^mr),((T,P,-68),my),((-T,P,-68),mr)) + def upper(tau,pos): + a,b,z=pos + ell=tau+z + if ell>1)&1)+2*(lane>>5) + for field in range(3): + result[field]|=((val[field]>>src)&1)<=R+tau,'lower sources cannot be behind first front') + if sum(disp)==R+tau and odd(disp): + field=hp(2,R+tau) + val=xx(val,tuple(bit if field>>i&1 else 0 for i in range(3))) + return val + old={p:base(-2,p) for p in ball(8,(0,0,8))} + now={p:base(-1,p) for p in ball(9,(0,0,8))} + records=[] + for tick in range(9): + nxt=native_update(old,now,8-tick,(0,0,8)) + if tick==0: + need(nxt[0,0,0]==(x,ones,x^u),'qY native inherited control') + if site=='qY': + nxt[0,0,0]=(x,ones,p) + if tick==2 and site=='q2': + q=nxt[0,0,2] + need(q==(x^u,x^u,ones^(x&(x^u))),'q2 native inherited control') + nxt[0,0,2]=(p,q[1],q[2]) + if tick==7 and site=='q7': + need(nxt[0,0,7]==(0,0,x^u),'q7 native inherited control') + nxt[0,0,7]=(0,0,p) + records.append(nxt) + old,now=now,nxt + return now[0,0,8],records + + +def geometry(): + distance=lambda a,b:norm(tuple(x-y for x,y in zip(a,b))) + q7=(0,S,75) + q8=(0,S,76) + q9=(0,S,77) + f=(0,S,S+150) + g=(0,S,S+152) + need((distance(g,q7),distance(g,q8),distance(g,q9))==(N+2,N+1,N),'G first arrival distances') + need(distance(g,q7)>N and distance(g,q7)>N-1,'G outside adopted current/previous q7 readiness') + need(distance(g,f)==2 and distance(f,q8)==N-1,'C preserved inside extended cone') + need(distance(q7,q8)==1,'depth8 cone contains depth7 cone on both slices') + old_regions=(((0,T,0),T),((T,0,0),T),((-T,0,0),T),((4*T,0,0),T),((0,0,-8*T),T), + ((0,S,0),S),((T,P,0),S),((-T,P,0),S),((4*T,P,0),S), + ((0,S,68),R),((0,S,-68),R),((0,S,70),R+2),((0,S,71),R+3), + ((12*R,0,0),R),((-12*R,0,0),R)) + need(all(distance(g,c)>max(radius,N+1) for c,radius in old_regions),'G-only preserves old preparation and receiver histories') + need(distance(g,(0,S-1,70))>N+1,'old sidecar unaffected by G') + need(distance(g,q8)>N-1,'q8 old local term independent of G') + for e in E: + neighbor=tuple(a+b for a,b in zip(q8,e)) + need(distance(g,neighbor)==(N if neighbor==q9 else N+2),'only upper neighbor affected at N') + lowers=((0,0,0),(0,2*S,0),(T,P+S,0),(-T,P+S,0)) + upper=(0,S,S+136) + for loc in lowers: + need(distance(loc,q8)==N+1 and distance(loc,upper)==2*R,'lower front and earliest interaction') + need(distance(loc,g)==2*(N+1),'lower sources outside incoming G ray') + need(distance((0,0,0),q8)>N and distance((0,S,-S-136),q8)>N+1,'previous unknown and opposite pulse excluded') + need(11*R>N+1 and 760. Therefore + # the stated affine equality, not a finite j census, is the general proof. + for j in (1,2,8,T,P,R): + banks=(((0,-j,0),j),((0,0,-9*T-j),9*T+j),((0,2*S+j,0),j), + ((T,P+S+j,0),j),((-T,P+S+j,0),j),((4*T,P+S+j,0),3*T+j)) + for pos,slack in banks: + need(distance(pos,q8)-(N+1)==slack,'protected all-index frontier slack') + need(pos!=g and pos!=f,'upper controls do not overwrite reserved bank') + geo=locate(('parallel_v3/history_control/SOURCE-GEOMETRY.json', + 'repo_checkpoint/payload/parallel_v3/history_control/SOURCE-GEOMETRY.json')) + data=geo.read_bytes() + need(sha256(data).hexdigest()=='2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d','source geometry digest') + sources=json.loads(data)['sources'] + boundary=[] + for entry in sources: + pos=tuple(entry['position']) + need(distance(pos,q8)>=N+1 and pos!=g,'original-source exclusions') + if distance(pos,q8)==N+1: + boundary.append((pos,entry['field'],entry['mask'])) + need(len(sources)==1479 and boundary==[((0,0,0),1,64)],'only original input on boundary') + return {'original_sources':1479,'prior_ready_regions':15,'G_current_q7_slack':2, + 'public_bits_beyond_R_if_extended':7*3*8,'additional_bits_beyond_q7':7*3, + 'joint_history_certified':False} + + +def main(): + hashes=json.loads((HERE/'INPUT-HASHES.json').read_text()) + for name,digest in hashes.items(): + need(sha256((AUTHOR/name).read_bytes()).hexdigest()==digest,'author input digest: '+name) + geom=geometry() + states,direct_count,projection_count=strips() + outputs={} + records={} + for site in ('qY','q2','q7'): + outputs[site],records[site]=calculate(states,site) + # Compare the entire independent output and actual q7 input neighborhoods. + retained=json.loads((AUTHOR/'results.json').read_text()) + comparisons=0 + for site,entries in retained['q8_diagnostics'].items(): + for entry in entries: + need(triple(outputs[site],index(entry['row']))==tuple(entry['q8']),'published full diagnostic table') + comparisons+=1 + incoming_comparisons=0 + for site,entries in retained['q7_interface'].items(): + rec=records[site] + for entry in entries: + row=tuple(entry['row']) + lane=index(row+((0,0,0),)) + need(triple(rec[5][0,0,7],lane)==tuple(entry['old_local']),'actual q7 old local') + for position,value in entry['incoming'].items(): + pos=tuple(map(int,position.split(','))) + need(triple(rec[6][pos],lane)==tuple(value),'actual q7 incoming neighbor') + incoming_comparisons+=1 + need(triple(rec[7][0,0,7],lane)==tuple(entry['endpoint']),'actual q7 endpoint') + for g in product((0,1),repeat=3): + need(triple(rec[7][0,0,7],index(row+(g,)))==tuple(entry['endpoint']),'G does not change q7') + x,u,my,mr,p=row + known=(x*(1-u)*(1-p),(x^u)*(1-p),p) if site=='qY' else ((x^p)*(1-u),x^u^p,x^(x*u)^p^(x*p)^(x*u*p)) + need(triple(rec[7][0,0,7],lane)==known,'previously independently checked full q7 diagnostic') + # Verify concise native interface directly, including all selector masks. + for x,u,my,mr in product((0,1),repeat=4): + lane=index((x,u,my,mr,x^u,(0,0,0))) + expected={(-1,0,7):(1^u,1,u*mr),(1,0,7):(1^u,1,u*my), + (0,-1,7):(1^u,1,x*u),(0,1,7):(1^u,1,u*(my^mr)), + (0,0,6):(1^x,0,1^(x*u)),(0,0,8):(1^u,1,0)} + need(triple(records['qY'][5][0,0,7],lane)==(1,1,1),'native old local not blank') + for pos,value in expected.items(): + need(triple(records['qY'][6][pos],lane)==value,'mask-bearing native incoming formula') + need(comparisons==768 and incoming_comparisons==384,'complete published comparison counts') + triples=tuple(product((0,1),repeat=3)) + permutations=[] + for row in product((0,1),repeat=5): + values=[triple(outputs['qY'],index(row+(g,))) for g in triples] + need(len(set(values))==8,'G-to-q8 permutation') + permutations.append(values) + route={str(u):[] for u in (0,1)} + socket={str(u):[] for u in (0,1)} + for u,g in product((0,1),triples): + if all(triple(outputs['qY'],index((x,u,my,mr,x^u,g)))==(0,x^u,0) + for x,my,mr in product((0,1),repeat=3)): + route[str(u)].append(g) + if all(triple(outputs['q7'],index((x,u,my,mr,p,g)))==(0,p,0) + for x,my,mr,p in product((0,1),repeat=4)): + socket[str(u)].append(g) + common={} + for site in ('qY','q7'): + candidates=[] + for g0,g1 in product(triples,repeat=2): + codes={0:set(),1:set()} + for x,u,my,mr,p in product((0,1),repeat=5): + if site=='qY' and p!=x^u: + continue + codes[p].add(triple(outputs[site],index((x,u,my,mr,p,(g0,g1)[u])))) + if len(codes[0])==len(codes[1])==1 and codes[0]!=codes[1]: + candidates.append({'G0':g0,'G1':g1,'codes':[next(iter(codes[p])) for p in (0,1)]}) + common[site]=candidates + # Derive incoming deltas from the full tripole; verify the full p7 formula. + formula_rows=0 + for x,u,my,mr,p,g in product((0,1),(0,1),(0,1),(0,1),(0,1),triples): + gcode=g[0]+2*g[1]+4*g[2] + delta=xx(triple(states[244][16,0,0],u+2*gcode),triple(states[244][16,0,0],u)) + a,b,c=delta + expected=(x^b,1^x^u^(x*u)^p^c, + x^u^(x*u)^(p*(1^x^u))^a^(b*(x^u^(x*u)^p))^(c*(x^1^u))^(b*c)) + lane=index((x,u,my,mr,p,g)) + need(triple(outputs['q7'],lane)==expected,'full p7-input expression') + need(triple(records['q7'][6][0,0,8],lane)==(1^u,1,0),'q8 actual old local term') + formula_rows+=1 + if p==x^u: + native=triple(outputs['qY'],lane) + need(native[0]==x^b and native[1]==1^(x*u)^c,'native obstruction coordinates') + measured={'native_route_G_by_u':route,'q7_socket_G_by_u':socket,'common_two_code_G_pairs':common} + need(json.loads(json.dumps(measured))==retained['measurements'],'all measured candidate sets match author') + verdict={'q8_from_q7_only':'underdetermined' if len(permutations)==32 else 'not_established', + 'specified_native_route':'exists' if all(route.values()) else 'excluded_in_family', + 'specified_q7_socket':'exists' if all(socket.values()) else 'excluded_in_family', + 'common_native_two_code':'exists' if common['qY'] else 'excluded_in_family', + 'common_q7_two_code_socket':'exists' if common['q7'] else 'excluded_in_family', + 'native_reset':'not_constructed','joint_history':'not_certified'} + result={'schema':'oi.review-native-reset.v1','author_input_hashes':hashes, + 'controls':{'signed_strip_coordinates':len(KEYS),'direct_scalar_comparisons':direct_count, + 'prior_independent_QC_projection_values':projection_count,'actual_period_divisibility':True, + 'published_q8_triples':comparisons,'published_q7_incoming_triples':incoming_comparisons, + 'q7_old_and_endpoint_rows':64,'native_mask_bearing_interfaces':16, + 'G_output_permutations':32,'q7_formula_rows':formula_rows, + 'source_pairs_per_encoding_test':64,'geometry':geom}, + 'measurements':measured,'verdict':verdict} + print(json.dumps(result,indent=2,sort_keys=True)) + + +if __name__=='__main__': + main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/results.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/results.json new file mode 100644 index 000000000..b144344e1 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/review/results.json @@ -0,0 +1,58 @@ +{ + "author_input_hashes": { + "PROBE-PLAN.md": "d71b9e97adf118206e4d92717271bf8da573e6f419705eb569b390273c7a3f28", + "PROVENANCE.json": "0343cd367a994bd0bc65c62ca710d8f5c4abfea5a9bc319b5ff470cbd4a1967c", + "REPORT.md": "1530928d335627e499b5e41c54a66497f299f589ecec8e5ffd5fb29fbab947ab", + "SECOND-PROBE-PLAN.md": "6598b5d47caec9f245f7dc15278cd320b5791253e8e8ca67dd9a932f3757c554", + "checks-summary.json": "b83f9ba2bfe2be61dda4ea26740c9829ecf599d7852a2cee1dada6945f35f965", + "inherited_correction_model.py": "81fb9162229409e42d4383274c91988b94c8727dc70d9398cc1ca1ac51a38ee4", + "inherited_model.py": "dfb056bfe91372b44787d962e63d83ae7109802b38034b661e1c3275a63e146b", + "probe.py": "1b00605540c71e499a6a7b3b4f59f965f140e2620c287b4321c74c2cd2554b72", + "results.json": "6fb3ed95948f9900f1ec9f40ef740d26d7792c7dae549a37644210e8a9e1eb43" + }, + "controls": { + "G_output_permutations": 32, + "actual_period_divisibility": true, + "direct_scalar_comparisons": 46944, + "geometry": { + "G_current_q7_slack": 2, + "additional_bits_beyond_q7": 21, + "joint_history_certified": false, + "original_sources": 1479, + "prior_ready_regions": 15, + "public_bits_beyond_R_if_extended": 168 + }, + "native_mask_bearing_interfaces": 16, + "prior_independent_QC_projection_values": 22016, + "published_q7_incoming_triples": 384, + "published_q8_triples": 768, + "q7_formula_rows": 256, + "q7_old_and_endpoint_rows": 64, + "signed_strip_coordinates": 489, + "source_pairs_per_encoding_test": 64 + }, + "measurements": { + "common_two_code_G_pairs": { + "q7": [], + "qY": [] + }, + "native_route_G_by_u": { + "0": [], + "1": [] + }, + "q7_socket_G_by_u": { + "0": [], + "1": [] + } + }, + "schema": "oi.review-native-reset.v1", + "verdict": { + "common_native_two_code": "excluded_in_family", + "common_q7_two_code_socket": "excluded_in_family", + "joint_history": "not_certified", + "native_reset": "not_constructed", + "q8_from_q7_only": "underdetermined", + "specified_native_route": "excluded_in_family", + "specified_q7_socket": "excluded_in_family" + } +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/PROBE-PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/PROBE-PLAN.md new file mode 100644 index 000000000..88f678386 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/PROBE-PLAN.md @@ -0,0 +1,50 @@ +# Preregistered workspace-assisted Y continuation probe + +Research only, consistency axis. Start from #910 head +`9d77dbbaddf5671cb20655934e4a65145c983e57`; preserve existing payloads. +The native q7 endpoint is clean but its actual old slice and neighborhood retain +history. The previous single upper source family cannot produce a common q8 +Y code. This probe changes where the physical input meets apparatus data. + +Set N=R+7 and q8=qY+8e_z. Retain the initial upper Q and correction C. The two +candidate initial sources are W at h=(0,-76,76), and G at g=f+2e_z. Each payload +may depend on the existing seed u but never on unknown x, y, or a diagnostic +input. The source W is reached by the existing x front; x is not preloaded. +Use an explicit depth8 current/previous ready extension, preserving these +sources and all inherited sources. All changes are at initial time. + +W cannot reach q7 before N+2. At the initial diamond slice R−1 it reaches +exactly one site, (0,S−9,76), where the actual lower background is the origin x +source. At all other queried pre-collision sites it is absent. The coupled +origin/W first-front recurrence along y is + +F_0=H(H^75(0,x,0) XOR H^75(W)), +F_j=H(F_(j−1) XOR a_j), +a_j=[j AND 75 = 0] H^(j+75)(0,x,0). + +The forcing has period lcm(128,12)=384. One block is an eight-state permutation, +whose order divides 840. Hence 384*840 is a global period and divides actual P; +the giant query j=P+176 reduces to j=176. This is a full coupled-source +calculation, not isolated pulse superposition. All later interactions are kept +in the exact q8 collision diamond with the Q/C/G upper strip. + +Decision rule: enumerate the 64 (W,G) settings independently per u and test all +native x and selector masks. Report every common two-code encoding of y from +any pair of u-specific settings; separately record standard clean codes. Then +replace only q7.D at N by arbitrary p7 with its actual past retained, and test +whether the whole outgoing triple is an injective common function of p7. A +native-only encoding is not a reusable late-input socket. If no setting works, +report only this explicit two-source, one-tick family as excluded. + +Controls precede verdicts: inherited digest checks; exact P divisibility; full +8-state forcing-block permutations; independent direct spatial recursion at +bounded coordinates including the first origin/W collision; W=0 agreement +with the previous model; one-site cone-entry and first-arrival geometry; old +ready/source exclusions; q7 native and original qY/q2 diagnostic preservation; +all selector masks; normal/-O byte identity. Initial compatibility with all +extended public-record banks and their joint-law proof remains an explicit +additional obligation. No private prefix becomes public by this probe. + +This is routing research toward post-Y (y XOR a,y,y XOR b,z) with 5:3:2 and +fresh fair z. Clean routing alone does not provide the sampler, independence, +herald, complete carrier, or joint instrument law. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/PROVENANCE.json new file mode 100644 index 000000000..377bc78c8 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/PROVENANCE.json @@ -0,0 +1,17 @@ +{ + "upstream_head": "9d77dbbaddf5671cb20655934e4a65145c983e57", + "inherited_files": { + "../reset_v7/inherited_model.py": "dfb056bfe91372b44787d962e63d83ae7109802b38034b661e1c3275a63e146b", + "../reset_v7/inherited_correction_model.py": "81fb9162229409e42d4383274c91988b94c8727dc70d9398cc1ca1ac51a38ee4", + "../reset_v7/probe.py": "1b00605540c71e499a6a7b3b4f59f965f140e2620c287b4321c74c2cd2554b72" + }, + "source_paths": { + "../reset_v7/inherited_model.py": "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/inherited_model.py", + "../reset_v7/inherited_correction_model.py": "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/inherited_correction_model.py", + "../reset_v7/probe.py": "verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v7/probe.py" + }, + "geometry": { + "path": "../parallel_v3/history_control/SOURCE-GEOMETRY.json", + "sha256": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d" + } +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/REPORT.md new file mode 100644 index 000000000..476860fac --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/REPORT.md @@ -0,0 +1,169 @@ +# Workspace-assisted Y continuation: exact bounded result + +Research only, consistency axis. Start from #910 head +`9d77dbbaddf5671cb20655934e4a65145c983e57`; preserve existing payloads. +The native q7 endpoint is clean but its actual old slice and neighborhood retain +history. The previous single upper source family cannot produce a common q8 +Y code. This probe changes where the physical input meets apparatus data. + +Set N=R+7 and q8=qY+8e_z. Retain the initial upper Q and correction C. The two +candidate initial sources are W at h=(0,-76,76), and G at g=f+2e_z. Each payload +may depend on the existing seed u but never on unknown x, y, or a diagnostic +input. The source W is reached by the existing x front; x is not preloaded. +Use an explicit depth8 current/previous ready extension, preserving these +sources and all inherited sources. All changes are at initial time. + +W cannot reach q7 before N+2. At the initial diamond slice R−1 it reaches +exactly one site, (0,S−9,76), where the actual lower background is the origin x +source. At all other queried pre-collision sites it is absent. The coupled +origin/W first-front recurrence along y is + +F_0=H(H^75(0,x,0) XOR H^75(W)), +F_j=H(F_(j−1) XOR a_j), +a_j=[j AND 75 = 0] H^(j+75)(0,x,0). + +The forcing has period lcm(128,12)=384. One block is an eight-state permutation, +whose order divides 840. Hence 384*840 is a global period and divides actual P; +the giant query j=P+176 reduces to j=176. This is a full coupled-source +calculation, not isolated pulse superposition. All later interactions are kept +in the exact q8 collision diamond with the Q/C/G upper strip. + +Decision rule: enumerate the 64 (W,G) settings independently per u and test all +native x and selector masks. Report every common two-code encoding of y from +any pair of u-specific settings; separately record standard clean codes. Then +replace only q7.D at N by arbitrary p7 with its actual past retained, and test +whether the whole outgoing triple is an injective common function of p7. A +native-only encoding is not a reusable late-input socket. If no setting works, +report only this explicit two-source, one-tick family as excluded. + +Controls precede verdicts: inherited digest checks; exact P divisibility; full +8-state forcing-block permutations; independent direct spatial recursion at +bounded coordinates including the first origin/W collision; W=0 agreement +with the previous model; one-site cone-entry and first-arrival geometry; old +ready/source exclusions; q7 native and original qY/q2 diagnostic preservation; +all selector masks; normal/-O byte identity. Initial compatibility with all +extended public-record banks and their joint-law proof remains an explicit +additional obligation. No private prefix becomes public by this probe. + +This is routing research toward post-Y (y XOR a,y,y XOR b,z) with 5:3:2 and +fresh fair z. Clean routing alone does not provide the sampler, independence, +herald, complete carrier, or joint instrument law. + +## Exact ray reduction before the new computation + +In absolute coordinates W is at `(0,-76,76)` and the ray is `(0,j,76)`, +queried at time `j+76`. For j>=0 both the physical origin source and W have +exactly that first-arrival distance. No earlier local term contributes. +At j=0 the only two active predecessors are the origin's unique +z path +and W's unique +y path, both of length75, giving the displayed F_0. +For j>0 the -y predecessor is F_(j-1). The -z predecessor at `(0,j,75)` +cannot yet have been reached by W; its origin-only first-arrival value is +the multinomial parity times H^(j+75)(0,x,0). The other four neighbors +are outside the source cones at that tick. Binary no-carry parity is exactly +`j AND75=0`, giving the stated recurrence with every source interaction kept. + +The parity factor depends only on j modulo128 because 75<128. H has order12. +Therefore the forcing sequence has period384 (a sufficient period, not a +claim of minimality). Each step z -> H(z XOR a_j) permutes the eight triples. +The composition of any384 consecutive steps is consequently a permutation +of eight states, and its order divides lcm(1,...,8)=840. After840 such blocks +the state and forcing phase recur. Thus the sufficient exact period is +384*840, globally for every initial triple and both x values. Its prime +factorization is `2^10*3^2*5*7`; P has valuations `v2=557`, `v3=186`, +`v5=v7=185`, so divisibility is exact. No reduced-scale extrapolation is used. + +The q8 backward initialization uses a ball of radius9 at R−1 and radius8 +at R−2. Since W and q8 differ only along y, its earliest possible point in +the former is the unique axial predecessor `(0,S−9,76)`, at distance R−1; +it reaches none of the latter. The ray index is S−9=P+176, reducing to176. + +W is outside the old ready balls and reaches the original designated +receivers later than their designated read ticks. That geometric claim will +be checked explicitly. Unlike the upper-only G source, W can change the +much later old-record backgrounds. Their joint masking and conditional +resource independence are not inferred from preservation of the earlier +designated values. + + +## Result and scope + +The bounded family contains a native clean Y route. Choose the initial +workspace payload W=111 independently of the unknown input and choose the +upper payload G=011 when u=0, G=101 when u=1. On every retained native history, +the full q8 triple at R+8 is `(0,y,0)`, where y=x XOR u. The earlier clean q7 +value at R+7 remains `(0,0,y)`. These choices depend only on the apparatus's +existing seed u; x reaches W through the physical first-arrival dynamics. + +The full enumeration finds 32 distinct ordered pairs of output codewords, +realized by 56 pairs of u-specific `(W,G)` choices. Each u has 64 choices; +the common-code test therefore covers all 4,096 pairs of such choices. No +pair provides a common injective full-triple encoding of an arbitrary bit +substituted into q7.D while retaining the actual preceding history. + +The clean route illustrates the distinction. With u=0, W=111 and G=011, +setting q7.D to p=0 gives q8=000 when x=0, but q8=001 when x=1. A genuine +late-input socket would give the same full triple for the same p in these +two histories. Thus this construction routes the correlated native family; +it does not erase the surrounding history or make q7 alone the input state. +The separate qY and q2 interventions are retained in `results.json` too. + +This positive result changes the one-source routing conclusion only by +changing the explicitly examined family: W supplies a second physical +source with an earlier collision. The previous one-upper-source obstruction +remains intact. The new route supplies neither the 5:3:2 post-Y sampler nor +fresh fair z, herald/failure behavior, or the complete outgoing carrier law. +It does not establish reusable reset or full OI–QM equivalence. + +## Validation and replay + +`probe.py` uses integer bit packing to evaluate all assignments exactly. +Every control completes before the structured verdict is emitted. The normal +and optimized Python outputs are byte-identical to `results.json`: + +```sh +python3 probe.py > /tmp/oi-reset-v8.json +cmp /tmp/oi-reset-v8.json results.json +python3 -O probe.py > /tmp/oi-reset-v8-O.json +cmp /tmp/oi-reset-v8-O.json results.json +``` + +Run from this directory in the retained #910 tree. The sibling `reset_v7/` +evaluators and `parallel_v3/history_control/SOURCE-GEOMETRY.json` are required; +`PROVENANCE.json` pins their hashes and source commit. The three inherited +code files and geometry file were compared with their published Git blob +IDs at that commit. The replay itself checks their SHA-256 digests. + +The controls give: + +- 144 scalar comparisons of the coupled first-front recurrence with direct + spatial recursion at j=0 through 8, covering both x values and all W; +- exact divisibility of actual P by the ray and upper-strip periods, and + eight-state forcing-block permutations for both x values; +- four explicit counterexamples to isolated-pulse superposition at the + origin/W collision; +- the unique W entry point in the two-slice collision diamond, 1,479 retained + source-geometry exclusions and preservation of 15 designated earlier reads; +- 768 W=0 endpoint comparisons with the previous evaluator; +- 6,144 full diagnostic rows, all checked for selector-mask independence, + with the native q7 and earlier qY/q2 diagnostic formulas preserved. + +These are bounded exact computation plus the written period/front argument. +They are not a new Lean certificate, a CI attestation or external review. +This completes the prior session's local probe plan; the plan was not an +owner-designated F and is not retroactively represented as one. + +## Remaining constructive obligation + +W is outside the designated earlier read cones but can change later old-port +backgrounds. In particular, preservation of the earlier designated values +does not establish compatibility with the whole extended public-history bank. +A proposed reset must account jointly for these public records, apparatus +seeds, retained information, the two-slice carrier and failures. + +The next bounded construction should use the explicit clean route and its +actual neighborhood as its starting interface, supply a physical sampler +with the unchanged 5:3:2 law and fair z, and verify the full record/carrier +law after conditioning on the entire allowed history. If a reusable arbitrary +late-input socket is demanded instead, it must change this two-source, +one-tick family; every setting in this family has failed that stronger test. +No physical premise or access change is adopted here. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/SHA256SUMS new file mode 100644 index 000000000..ecc57443e --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/SHA256SUMS @@ -0,0 +1,5 @@ +b1e22edc3f92cf352a909a432a0eb5f8ea0a7c3e9c9fef0e7669b4d9473ec045 PROBE-PLAN.md +d07a9e47f00bd4cdc2990aae0f09582ae7b0e0f436164fd6537b9202716d07cf PROVENANCE.json +a76e749a5558bc227558a9beb529bbbc0fb1bddbc7e0e9e783f1612bab2d2dde REPORT.md +7557844c8934ebaec2dfb1472208317c3e7141ad94be2def15a18174c454110a probe.py +5ac68df56388b9978b9db351dca0e29e99db3c8cccc567eb30bc61b665629a0f results.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/probe.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/probe.py new file mode 100644 index 000000000..5d942635a --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/probe.py @@ -0,0 +1,183 @@ +"""Physical origin/W first-front collision, followed by the native q8 diamond.""" +from functools import lru_cache +from itertools import product +from pathlib import Path +import hashlib,json,importlib.util,sys +# Reuse the immutable sibling checkpoint instead of duplicating its evaluators. +prior=Path(__file__).resolve().parent.parent/'reset_v7' +sys.path.insert(0,str(prior)) +spec=importlib.util.spec_from_file_location('reset_v7_probe',prior/'probe.py') +b=importlib.util.module_from_spec(spec) +spec.loader.exec_module(b) +m=b.m +TRIPLES=b.TRIPLES +XR=tuple((x,w) for x in (0,1) for w in TRIPLES) +XF=(1<t or (t-a-y-z)%2:return ZERO + if t==0:return (0,XX,0) if (a,y,z)==(0,0,0) else WW if (a,y,z)==(0,-76,76) else ZERO + terms=[direct(t-1,abs(a-1),y,z),direct(t-1,a+1,y,z),direct(t-1,a,y-1,z),direct(t-1,a,y+1,z),direct(t-1,a,y,z-1),direct(t-1,a,y,z+1)] + return X(direct(t-2,a,y,z),H(X(*terms))) + +ROWS=tuple((x,u,my,mr,p,w,g) for x,u,my,mr,p in product((0,1),repeat=5) for w,g in product(TRIPLES,repeat=2)) +FULL=(1<>i)&1 for a in v) +def expand_upper(v): + return tuple(sum(((f>>(8*u+TRIPLES.index(g)))&1)<>(8*x+TRIPLES.index(w)))&1)<ell or (ell-a-bb)%2:return ZERO + need(ell+a+bb<=16,'upper budget') + return expand_upper(b.upper_strip()[ell,a,bb][n-m.P]) + +def calc(site): + end=(0,0,8) + controls=[((0,-m.S,-m.d),XM),((0,m.S,-m.d),MY^MR),((m.T,m.P,-m.d),MY),((-m.T,m.P,-m.d),MR)] + entry=(0,-9,8);workspace=expand_lower(ray(176)) + def base(t,v): + val=upper(t,v) + for pos,bits in controls: + ds=tuple(abs(a-bb) for a,bb in zip(pos,v)) + if sum(ds)<=t: + need(sum(ds)==t,'pre-R lower frontier') + if m.odd(ds):val=X(val,m.hp((0,bits,0),t)) + if t==m.R-1 and v==entry: + need(val==(0,XM,0),'one-site original lower input') + val=workspace + return val + old={v:base(m.R-2,v) for v in m.ball(8,end)} + now={v:base(m.R-1,v) for v in m.ball(9,end)} + records={} + for tau in range(9): + nxt={} + for v in m.ball(8-tau,end): + ns=[] + for axis in range(3): + for sign in (-1,1): + w=list(v);w[axis]+=sign;ns.append(now[tuple(w)]) + nxt[v]=X(old[v],H(X(*ns))) + if tau==0: + need(nxt[(0,0,0)]==(XM,FULL,XM^UM),'original qY signal preserved') + if site=='qY':nxt[(0,0,0)]=(XM,FULL,PM) + if tau==2 and site=='q2': + q=nxt[(0,0,2)] + need(q==(XM^UM,XM^UM,FULL^(XM&(XM^UM))),'original q2 preserved') + nxt[(0,0,2)]=(PM,q[1],q[2]) + if tau==7: + if site=='qY':expected=(XM&(FULL^UM)&(FULL^PM),(XM^UM)&(FULL^PM),PM) + elif site=='q2':expected=((XM^PM)&(FULL^UM),XM^UM^PM,XM^(XM&UM)^PM^(XM&PM)^(XM&UM&PM)) + else:expected=(0,0,XM^UM) + need(nxt[(0,0,7)]==expected,'q7 native/past diagnostic unchanged') + if site=='q7':nxt[(0,0,7)]=(0,0,PM) + records[tau]=nxt;old,now=now,nxt + return now[end],records + +def code(v):return 4*v[0]+2*v[1]+v[2] + +def main(): + p=Path(__file__).parent;prov=json.loads((p/'PROVENANCE.json').read_text()) + need(all(hashlib.sha256((p/f).read_bytes()).hexdigest()==h for f,h in prov['inherited_files'].items()),'inherited file digests') + checks={'inherited_hashes':True} + period=384*840 + need(m.P%period==0,'actual P divisible by ray period') + need(m.P%(12*840**16)==0,'actual P divisible by upper strip period') + checks['actual_period_divisibility']=True + permutations=[] + for x in (0,1): + perm=[] + for state in TRIPLES: + q=state + for j in range(1,385):q=H(X(q,force(j,x))) + perm.append(code(q)) + need(len(set(perm))==8,'forcing block is a permutation') + for a in range(8): + q=a + for _ in range(840):q=perm[q] + need(q==a,'permutation exponent') + need(all(force(j,x)==force(j+384,x) for j in range(384)),'forcing period finite control') + permutations.append(perm) + checks['forcing_block_permutations']=permutations + for j in range(9):need(ray(j)==direct(j+76,0,j,76),'direct native coupled ray control') + checks['direct_coupled_scalar_comparisons']=9*16 + nonlinear=[] + for i,(x,w) in enumerate(XR): + isolated=X(m.hp((0,x,0),76),m.hp(w,76)) + if lane(ray(0),i)!=isolated:nonlinear.append([x,code(w),code(lane(ray(0),i)),code(isolated)]) + need(bool(nonlinear),'nonlinear countercontrol active') + checks['isolated_superposition_counterexamples']=nonlinear + # Actual cone/source geometry, not reduced surrogate coordinates. + D=lambda a,bb:sum(abs(x-y) for x,y in zip(a,bb)) + N=m.R+7;q7=(0,m.S,75);q8=(0,m.S,76);h=(0,-76,76);g=(0,m.S,m.S+152) + need(D(h,q7)==N+2 and D(h,q8)==N+1,'W first arrivals') + reached=[] + for t,rad in ((m.R-1,9),(m.R-2,8)): + for v in m.ball(rad,(0,0,8)): + absolute=(v[0],m.S+v[1],m.d+v[2]) + if D(h,absolute)<=t:reached.append((t-m.R,v,D(h,absolute)-t)) + need(reached==[(-1,(0,-9,8),0)],'one exact entry point') + centers=[((0,m.T,0),m.T),((m.T,0,0),m.T),((-m.T,0,0),m.T),((4*m.T,0,0),m.T),((0,0,-8*m.T),m.T),((0,m.S,0),m.S),((m.T,m.P,0),m.S),((-m.T,m.P,0),m.S),((4*m.T,m.P,0),m.S),((0,m.S,m.d),m.R),((0,m.S,-m.d),m.R),((0,m.S,m.d+2),m.R+2),((0,m.S,m.d+3),m.R+3),((12*m.R,0,0),m.R),((-12*m.R,0,0),m.R)] + need(all(D(h,v)>r for v,r in centers),'W outside all designated old cones') + need(any(D(h,v)<=N+1 for v,r in centers),'late old-record background is not pointwise protected') + geo_paths=[parent/sub for parent in p.parents for sub in ('parallel_v3/history_control/SOURCE-GEOMETRY.json','outward_v6_geometry/SOURCE-GEOMETRY.json','outward_v6/SOURCE-GEOMETRY.json')] + gp=next((q for q in geo_paths if q.exists()),None);need(gp is not None,'source geometry available') + need(hashlib.sha256(gp.read_bytes()).hexdigest()=='2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d','source geometry digest') + geo=json.loads(gp.read_text());need(len(geo['sources'])==1479,'source count') + for src in geo['sources']: + pos=tuple(src['position']);need(pos!=h and D(pos,q8)>=N+1,'source and ready exclusion') + checks['original_source_geometry_entries']=1479 + checks['W_cone_entry']=[[-1,[0,-9,8],0]] + checks['designated_readouts_excluded']=len(centers) + # Full collision diamond, including all source interactions. + outcomes={};tables={};encoding={};baseline_count=0 + for site in ('qY','q2','q7'): + out,rec=calc(site);oldout,_=b.calc(site) + for i,row in enumerate(ROWS): + x,u,my,mr,inp,w,g=row + if w==(0,0,0): + need(lane(out,i)==b.lane(oldout,b.ROWS.index((x,u,my,mr,inp,g))),'W=0 inherited endpoint');baseline_count+=1 + zeroindex=ROWS.index((x,u,0,0,inp,w,g)) + need(lane(out,i)==lane(out,zeroindex),'endpoint selector-mask independence') + outcomes[site]=out + tables[site]=[code(lane(out,ROWS.index((x,u,0,0,inp,w,g)))) for x,u,inp in product((0,1),repeat=3) for w,g in product(TRIPLES,repeat=2)] + if site=='q2':continue + by_u=[] + for u in (0,1): + candidates={} + for w,g in product(TRIPLES,repeat=2): + codes={0:set(),1:set()} + for x,inp in product((0,1),repeat=2): + if site=='qY' and inp!=x^u:continue + codes[inp].add(code(lane(out,ROWS.index((x,u,0,0,inp,w,g))))) + if all(len(v)==1 for v in codes.values()): + pair=tuple(next(iter(codes[v])) for v in (0,1)) + if pair[0]!=pair[1]:candidates.setdefault(pair,[]).append((code(w),code(g))) + by_u.append(candidates) + common=sorted(set(by_u[0])&set(by_u[1])) + encoding[site]=[{'codes':key,'u0_WG':by_u[0][key],'u1_WG':by_u[1][key]} for key in common] + checks['W0_baseline_rows']=baseline_count + checks['full_diagnostic_rows']=3*len(ROWS) + checks['selector_mask_independence_rows']=3*len(ROWS) + verdict={'native_common_two_code':'exists' if encoding['qY'] else 'excluded','q7_common_two_code_socket':'exists' if encoding['q7'] else 'excluded','reset_5_3_2':'not_constructed','full_public_record_law':'not_established_for_extension'} + result={'schema':'oi.workspace-reset.v8','checks':checks,'ray_query_j_reduced':176,'encoding_candidates':encoding,'q8_table_order':'lexicographic (x,u,p,Wcode,Gcode), bits packed A*4+B*2+D; masks checked independent','q8_tables':tables,'verdict':verdict} + print(json.dumps(result,sort_keys=True,separators=(',',':'))) + +if __name__=='__main__':main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/results.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/results.json new file mode 100644 index 000000000..73d5274bd --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/results.json @@ -0,0 +1 @@ +{"checks":{"W0_baseline_rows":768,"W_cone_entry":[[-1,[0,-9,8],0]],"actual_period_divisibility":true,"designated_readouts_excluded":15,"direct_coupled_scalar_comparisons":144,"forcing_block_permutations":[[0,1,2,3,4,5,6,7],[0,1,2,3,4,5,6,7]],"full_diagnostic_rows":6144,"inherited_hashes":true,"isolated_superposition_counterexamples":[[1,1,7,6],[1,3,6,7],[1,6,3,2],[1,7,2,3]],"original_source_geometry_entries":1479,"selector_mask_independence_rows":6144},"encoding_candidates":{"q7":[],"qY":[{"codes":[0,2],"u0_WG":[[7,3]],"u1_WG":[[7,5]]},{"codes":[0,5],"u0_WG":[[1,2]],"u1_WG":[[6,4]]},{"codes":[0,6],"u0_WG":[[4,7]],"u1_WG":[[1,0],[3,1],[4,6]]},{"codes":[0,7],"u0_WG":[[5,5]],"u1_WG":[[0,2],[2,7]]},{"codes":[1,3],"u0_WG":[[7,4]],"u1_WG":[[7,6]]},{"codes":[1,4],"u0_WG":[[1,5]],"u1_WG":[[6,2]]},{"codes":[1,6],"u0_WG":[[5,2]],"u1_WG":[[0,4],[2,3]]},{"codes":[1,7],"u0_WG":[[4,1]],"u1_WG":[[1,1],[3,0],[4,5]]},{"codes":[2,0],"u0_WG":[[7,5]],"u1_WG":[[7,4]]},{"codes":[2,4],"u0_WG":[[5,3]],"u1_WG":[[0,6],[2,1]]},{"codes":[2,5],"u0_WG":[[4,6]],"u1_WG":[[1,3],[3,7],[4,2]]},{"codes":[2,6],"u0_WG":[[1,4]],"u1_WG":[[6,5]]},{"codes":[3,1],"u0_WG":[[7,2]],"u1_WG":[[7,2]]},{"codes":[3,4],"u0_WG":[[4,0]],"u1_WG":[[1,7],[3,3],[4,4]]},{"codes":[3,5],"u0_WG":[[5,4]],"u1_WG":[[0,5],[2,0]]},{"codes":[3,7],"u0_WG":[[1,3]],"u1_WG":[[6,6]]},{"codes":[4,1],"u0_WG":[[1,0]],"u1_WG":[[6,0]]},{"codes":[4,2],"u0_WG":[[5,6]],"u1_WG":[[0,1],[2,6]]},{"codes":[4,3],"u0_WG":[[4,3]],"u1_WG":[[1,4],[3,2],[4,7]]},{"codes":[4,7],"u0_WG":[[7,7]],"u1_WG":[[7,3]]},{"codes":[5,0],"u0_WG":[[1,6]],"u1_WG":[[6,1]]},{"codes":[5,2],"u0_WG":[[4,4]],"u1_WG":[[1,2],[3,4],[4,3]]},{"codes":[5,3],"u0_WG":[[5,0]],"u1_WG":[[0,0],[2,5]]},{"codes":[5,6],"u0_WG":[[7,1]],"u1_WG":[[7,7]]},{"codes":[6,0],"u0_WG":[[4,2]],"u1_WG":[[1,6],[3,5],[4,0]]},{"codes":[6,1],"u0_WG":[[5,1]],"u1_WG":[[0,3],[2,4]]},{"codes":[6,2],"u0_WG":[[1,7]],"u1_WG":[[6,7]]},{"codes":[6,5],"u0_WG":[[7,0]],"u1_WG":[[7,1]]},{"codes":[7,0],"u0_WG":[[5,7]],"u1_WG":[[0,7],[2,2]]},{"codes":[7,1],"u0_WG":[[4,5]],"u1_WG":[[1,5],[3,6],[4,1]]},{"codes":[7,3],"u0_WG":[[1,1]],"u1_WG":[[6,3]]},{"codes":[7,4],"u0_WG":[[7,6]],"u1_WG":[[7,0]]}]},"q8_table_order":"lexicographic (x,u,p,Wcode,Gcode), bits packed A*4+B*2+D; masks checked independent","q8_tables":{"q2":[2,0,7,5,4,6,3,1,4,7,0,3,2,1,5,6,1,3,5,7,6,4,0,2,0,2,4,6,7,5,1,3,3,1,6,4,5,7,2,0,5,6,1,2,3,0,4,7,7,4,2,1,0,3,6,5,6,5,3,0,1,2,7,4,5,6,1,2,3,0,4,7,3,1,6,4,5,7,2,0,7,4,2,1,0,3,6,5,6,5,3,0,1,2,7,4,4,7,0,3,2,1,5,6,2,0,7,5,4,6,3,1,1,3,5,7,6,4,0,2,0,2,4,6,7,5,1,3,4,5,1,7,0,2,3,6,0,1,5,2,4,7,6,3,2,3,6,0,7,4,5,1,1,0,4,3,5,6,7,2,6,7,2,5,3,1,0,4,5,4,0,6,1,3,2,7,7,6,3,4,2,0,1,5,3,2,7,1,6,5,4,0,3,2,7,1,6,5,4,0,6,7,2,5,3,1,0,4,5,4,0,6,1,3,2,7,7,6,3,4,2,0,1,5,0,1,5,2,4,7,6,3,2,3,6,0,7,4,5,1,1,0,4,3,5,6,7,2,4,5,1,7,0,2,3,6,2,0,7,5,4,6,3,1,5,6,1,2,3,0,4,7,7,4,2,1,0,3,6,5,4,7,0,3,2,1,5,6,0,2,4,6,7,5,1,3,6,5,3,0,1,2,7,4,3,1,6,4,5,7,2,0,1,3,5,7,6,4,0,2,7,4,2,1,0,3,6,5,1,3,5,7,6,4,0,2,2,0,7,5,4,6,3,1,0,2,4,6,7,5,1,3,4,7,0,3,2,1,5,6,3,1,6,4,5,7,2,0,6,5,3,0,1,2,7,4,5,6,1,2,3,0,4,7,5,4,0,6,1,3,2,7,0,1,5,2,4,7,6,3,3,2,7,1,6,5,4,0,1,0,4,3,5,6,7,2,6,7,2,5,3,1,0,4,2,3,6,0,7,4,5,1,4,5,1,7,0,2,3,6,7,6,3,4,2,0,1,5,2,3,6,0,7,4,5,1,6,7,2,5,3,1,0,4,4,5,1,7,0,2,3,6,7,6,3,4,2,0,1,5,0,1,5,2,4,7,6,3,5,4,0,6,1,3,2,7,3,2,7,1,6,5,4,0,1,0,4,3,5,6,7,2],"q7":[2,0,7,5,4,6,3,1,4,7,0,3,2,1,5,6,1,3,5,7,6,4,0,2,0,2,4,6,7,5,1,3,3,1,6,4,5,7,2,0,5,6,1,2,3,0,4,7,7,4,2,1,0,3,6,5,6,5,3,0,1,2,7,4,1,3,5,7,6,4,0,2,6,5,3,0,1,2,7,4,2,0,7,5,4,6,3,1,3,1,6,4,5,7,2,0,0,2,4,6,7,5,1,3,7,4,2,1,0,3,6,5,5,6,1,2,3,0,4,7,4,7,0,3,2,1,5,6,1,0,4,3,5,6,7,2,5,4,0,6,1,3,2,7,6,7,2,5,3,1,0,4,4,5,1,7,0,2,3,6,2,3,6,0,7,4,5,1,0,1,5,2,4,7,6,3,3,2,7,1,6,5,4,0,7,6,3,4,2,0,1,5,3,2,7,1,6,5,4,0,6,7,2,5,3,1,0,4,5,4,0,6,1,3,2,7,7,6,3,4,2,0,1,5,0,1,5,2,4,7,6,3,2,3,6,0,7,4,5,1,1,0,4,3,5,6,7,2,4,5,1,7,0,2,3,6,5,6,1,2,3,0,4,7,2,0,7,5,4,6,3,1,1,3,5,7,6,4,0,2,3,1,6,4,5,7,2,0,6,5,3,0,1,2,7,4,0,2,4,6,7,5,1,3,4,7,0,3,2,1,5,6,7,4,2,1,0,3,6,5,7,4,2,1,0,3,6,5,1,3,5,7,6,4,0,2,2,0,7,5,4,6,3,1,0,2,4,6,7,5,1,3,4,7,0,3,2,1,5,6,3,1,6,4,5,7,2,0,6,5,3,0,1,2,7,4,5,6,1,2,3,0,4,7,5,4,0,6,1,3,2,7,0,1,5,2,4,7,6,3,3,2,7,1,6,5,4,0,1,0,4,3,5,6,7,2,6,7,2,5,3,1,0,4,2,3,6,0,7,4,5,1,4,5,1,7,0,2,3,6,7,6,3,4,2,0,1,5,6,7,2,5,3,1,0,4,2,3,6,0,7,4,5,1,1,0,4,3,5,6,7,2,3,2,7,1,6,5,4,0,5,4,0,6,1,3,2,7,0,1,5,2,4,7,6,3,7,6,3,4,2,0,1,5,4,5,1,7,0,2,3,6],"qY":[2,0,7,5,4,6,3,1,4,7,0,3,2,1,5,6,1,3,5,7,6,4,0,2,0,2,4,6,7,5,1,3,3,1,6,4,5,7,2,0,5,6,1,2,3,0,4,7,7,4,2,1,0,3,6,5,6,5,3,0,1,2,7,4,1,3,5,7,6,4,0,2,6,5,3,0,1,2,7,4,2,0,7,5,4,6,3,1,3,1,6,4,5,7,2,0,0,2,4,6,7,5,1,3,7,4,2,1,0,3,6,5,5,6,1,2,3,0,4,7,4,7,0,3,2,1,5,6,4,5,1,7,0,2,3,6,0,1,5,2,4,7,6,3,2,3,6,0,7,4,5,1,1,0,4,3,5,6,7,2,6,7,2,5,3,1,0,4,5,4,0,6,1,3,2,7,7,6,3,4,2,0,1,5,3,2,7,1,6,5,4,0,3,2,7,1,6,5,4,0,6,7,2,5,3,1,0,4,5,4,0,6,1,3,2,7,7,6,3,4,2,0,1,5,0,1,5,2,4,7,6,3,2,3,6,0,7,4,5,1,1,0,4,3,5,6,7,2,4,5,1,7,0,2,3,6,1,3,5,7,6,4,0,2,7,4,2,1,0,3,6,5,5,6,1,2,3,0,4,7,6,5,3,0,1,2,7,4,3,1,6,4,5,7,2,0,4,7,0,3,2,1,5,6,0,2,4,6,7,5,1,3,2,0,7,5,4,6,3,1,7,4,2,1,0,3,6,5,1,3,5,7,6,4,0,2,2,0,7,5,4,6,3,1,0,2,4,6,7,5,1,3,4,7,0,3,2,1,5,6,3,1,6,4,5,7,2,0,6,5,3,0,1,2,7,4,5,6,1,2,3,0,4,7,5,4,0,6,1,3,2,7,0,1,5,2,4,7,6,3,3,2,7,1,6,5,4,0,1,0,4,3,5,6,7,2,6,7,2,5,3,1,0,4,2,3,6,0,7,4,5,1,4,5,1,7,0,2,3,6,7,6,3,4,2,0,1,5,6,7,2,5,3,1,0,4,2,3,6,0,7,4,5,1,1,0,4,3,5,6,7,2,3,2,7,1,6,5,4,0,5,4,0,6,1,3,2,7,0,1,5,2,4,7,6,3,7,6,3,4,2,0,1,5,4,5,1,7,0,2,3,6]},"ray_query_j_reduced":176,"schema":"oi.workspace-reset.v8","verdict":{"full_public_record_law":"not_established_for_extension","native_common_two_code":"exists","q7_common_two_code_socket":"excluded","reset_5_3_2":"not_constructed"}} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/review/INPUT-HASHES.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/review/INPUT-HASHES.json new file mode 100644 index 000000000..d2c01ff32 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/review/INPUT-HASHES.json @@ -0,0 +1,29 @@ +{ + "author_commit": "e46d30fdd2c237b70ee7569f0044f2486f07f8ce", + "files": { + "PROBE-PLAN.md": { + "git_blob": "88f67838651627fd509766d598a938624cd871b1", + "sha256": "b1e22edc3f92cf352a909a432a0eb5f8ea0a7c3e9c9fef0e7669b4d9473ec045" + }, + "PROVENANCE.json": { + "git_blob": "377bc78c8c90f4e808a8733a08055ec42bce75da", + "sha256": "d07a9e47f00bd4cdc2990aae0f09582ae7b0e0f436164fd6537b9202716d07cf" + }, + "REPORT.md": { + "git_blob": "476860fac7ae4466d137206e30ed217408b6ddb9", + "sha256": "a76e749a5558bc227558a9beb529bbbc0fb1bddbc7e0e9e783f1612bab2d2dde" + }, + "SHA256SUMS": { + "git_blob": "ecc57443e0869e666e91a9d3a1211c4a9eeabe79", + "sha256": "20e8d75f3a5c60864aeaf28f8faa598891520651228a208849724dfe3f388e6f" + }, + "probe.py": { + "git_blob": "5d942635a8369f135f38a7f6792ddfc10290d914", + "sha256": "7557844c8934ebaec2dfb1472208317c3e7141ad94be2def15a18174c454110a" + }, + "results.json": { + "git_blob": "73d5274bd10b5a603762c755d54d4ff31310ba17", + "sha256": "5ac68df56388b9978b9db351dca0e29e99db3c8cccc567eb30bc61b665629a0f" + } + } +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/review/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/review/REPORT.md new file mode 100644 index 000000000..7bfb9b53e --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/review/REPORT.md @@ -0,0 +1,89 @@ +# Separate-author review of the workspace-assisted native-Y route + +Reviewed author revision: `e46d30fdd2c237b70ee7569f0044f2486f07f8ce`, +`reset_v8/` on draft #910. Verdict: **accept within the stated bounded scope; +no blocking findings**. This is a separate-agent internal review, not external +peer review, a Lean certificate, a native-round designation or owner adoption. +The reviewer did not author the candidate or its checker. + +## Findings + +The candidate's native-family witness is correct: initial W=111 and G=011 +for u=0 / G=101 for u=1 give the full q8 triple `(0,y,0)` at R+8, preserving +the earlier q7 `(0,0,y)`. All 32 common ordered code pairs are reproduced. +The arbitrary q7.D intervention has no common injective two-code solution +in the enumerated family. For the clean witness, u=0 and intervened p=0 +produce 000 at x=0 and 001 at x=1. This verifies the report's distinction +between routing the correlated native input and supplying a reusable socket. + +The ray proof uses an actual interaction of W with the origin wave. It is +not a superposition of independently evolved pulses: four scalar first +collision cases explicitly reject that surrogate. Before the first origin/W +collision both arrive along unique axial paths. At subsequent points of the +ray, the -y predecessor contains their coupled value, while the -z predecessor +contains the origin-only multinomial parity. The other predecessors and old +local term have not yet been reached. This yields the stated forced recurrence. + +The forcing is 384-periodic because its parity mask depends on seven bits +and H has order dividing 12. Its finite-state block is bijective; 840 is a +valid uniform exponent. Actual P is divisible by 384*840, so the reduction +to j=176 is exact. The independent control in fact finds identity monodromy +for both x values, but the larger bound used by the author remains valid. +The unique initial entry point at R-1 and absence of an entry at R-2 also +check at the actual giant coordinates. No reduced-scale extrapolation is used. + +## Independent computation and its dependencies + +`checks.py` never imports the new author's `reset_v8/probe.py`. It starts +from the retained and previously reviewed sibling `reset_v7/probe.py` to +obtain the Q/C/G baseline. It then evolves an independently implemented scalar +perturbation along the unique nine-edge first-arrival W path. At every step +it computes `H(baseline_neighbor_xor XOR delta) XOR H(baseline_neighbor_xor)`. +The old local value is unaffected at a first-arrival point. This organization +is different from the author's packed full-diamond evolution. + +This check reproduces all 6,144 diagnostic assignments, all 1,536 retained +mask-reduced table rows, their selector-mask independence, both encoding +censuses, the clean witness and the late-input counterexample. Eight selected +full scalar diamonds independently agree with the one-path calculation. +These selected diamond checks reuse the inherited upper-strip initial values; +the review does not independently reprove every prior upper-strip theorem. +It explicitly inherits that earlier reviewed dependency. + +The reviewed six author files were fetched at the immutable revision above +and their Git blob IDs matched the local reviewed bytes. `INPUT-HASHES.json` +retains that correspondence. The author checksum file verifies, and its +normal/optimized replay was independently confirmed. Reviewer normal and +optimized runs are byte-identical to `result.json`; the recorded input hashes +pin the exact author probe/result and inherited evaluator inputs. + +## Scope and remaining obligations + +The report correctly leaves the post-Y 5:3:2 sampler, fresh fair z, herald and +failure behavior, complete outgoing carrier, and joint public-record law open. +W preserves the designated earlier reads but can affect later old-port +backgrounds. Thus old designated-value preservation does not establish the +extended masking/resource-independence theorem. No access restriction, +initial readiness, physical premise or calibration has been derived here. +The one-source obstruction remains valid for its earlier family; the present +positive result adds a genuine second source and earlier interaction. + +The clean route is useful input to the next bounded reset construction. +Neither this computation nor its review claims reusable native reset, A1 +coverage, A2 full-protocol agreement, composite reconstruction or OI–QM +equivalence. + +## Replay + +From `reset_v8/review/` in the retained tree: + +```sh +python3 checks.py > /tmp/oi-v8-review.json +cmp /tmp/oi-v8-review.json result.json +python3 -O checks.py > /tmp/oi-v8-review-O.json +cmp /tmp/oi-v8-review-O.json result.json +sha256sum -c SHA256SUMS +``` + +The checker requires only the standard library and the sibling retained +`reset_v7/` evaluators. Controls raise before a pass verdict on failure. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/review/SHA256SUMS new file mode 100644 index 000000000..3055b06ab --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/review/SHA256SUMS @@ -0,0 +1,4 @@ +a7c43cb9819f528546ed27f0c3b93adfa89227f43c1cf7d23b09737ee78f9e9a REPORT.md +24953a6cbaf76d4d963bd01bc610f427ca8e35ef9ee97e632a4c9414f02707e9 checks.py +8cc26b4020069b040ad37e3cec60e4f0c4ea2d54da48dbfa3e0a98c6676dc53c result.json +5f5ecfa985198b3c97330bcfe2845db9080a980f3cdb57a67338e40f3883ab4a INPUT-HASHES.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/review/checks.py new file mode 100644 index 000000000..e16de8efd --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/review/checks.py @@ -0,0 +1,135 @@ +"""Separate review: scalar one-path perturbation of the retained reset-v7 baseline. + +Does not import reset-v8 probe.py. Run --author-dir ../ if this directory is +installed as reset_v8/review; the default is already that relative layout. +""" +import argparse,hashlib,json,sys,importlib.util +from pathlib import Path +from itertools import product +from functools import reduce +from operator import xor + +def need(v,s): + if not v: raise RuntimeError(s) + +def enc(v): return 4*v[0]+2*v[1]+v[2] +def dec(v): return (v>>2,(v>>1)&1,v&1) +def H(v): + a,b,c=dec(v) + return 4*b+2*c+(a^(b&c)) +def power(v,n): + for _ in range(n%12):v=H(v) + return v + +def ray(x,w,j): + # Separate scalar recurrence, with an integer-coded native H lookup. + v=H(power(2*x,75)^power(w,75)) + for k in range(1,j+1): + v=H(v^(power(2*x,k+75) if not k&75 else 0)) + return v + +def main(): + ap=argparse.ArgumentParser();ap.add_argument('--author-dir',type=Path,default=Path(__file__).resolve().parent.parent) + p=ap.parse_args().author_dir.resolve() + prior=p.parent/'reset_v7' + sys.path.insert(0,str(prior)) + spec=importlib.util.spec_from_file_location('review_inherited_v7',prior/'probe.py') + b=importlib.util.module_from_spec(spec);spec.loader.exec_module(b) + m=b.m + target=json.loads((p/'results.json').read_text()) + hashes={n:hashlib.sha256((p/n).read_bytes()).hexdigest() for n in ('probe.py','results.json','../reset_v7/probe.py','../reset_v7/inherited_model.py','../reset_v7/inherited_correction_model.py')} + need(all(reduce(lambda x,_:H(x),range(12),v)==v for v in range(8)),'native H 12-fold identity') + need(all(power(v,12)==v for v in range(8)),'H order divides 12') + permutations=[] + for x in (0,1): + perm=[] + for start in range(8): + v=start + for k in range(1,385):v=H(v^(power(2*x,k+75) if not k&75 else 0)) + perm.append(v) + need(len(set(perm))==8,'block bijection') + order=1 + while any(reduce(lambda v,_:perm[v],range(order),start)!=start for start in range(8)):order+=1 + need(840%order==0,'permutation order divides exponent') + permutations.append({'permutation':perm,'order':order}) + for w in range(8):need(ray(x,w,176)==ray(x,w,176+384*order),'exact cyclic ray return') + need(m.P%(384*840)==0,'actual period divisibility') + q8=(0,m.S,76);h=(0,-76,76) + D=lambda a,c:sum(abs(x-y) for x,y in zip(a,c)) + entries=[] + for shift,r in [(-1,9),(-2,8)]: + for a,y,z in m.ball(r,(0,0,8)): + if D(h,(a,m.S+y,68+z))<=m.R+shift:entries.append([shift,[a,y,z]]) + need(entries==[[-1,[0,-9,8]]],'unique initial entry') + need(D(h,(0,m.S,75))==m.R+9,'q7 first arrival') + need(D(h,q8)==m.R+8,'q8 first arrival') + controls=[((0,-m.S,-m.d),b.XM),((0,m.S,-m.d),b.MY^b.MR),((m.T,m.P,-m.d),b.MY),((-m.T,m.P,-m.d),b.MR)] + def base(t,v): + val=b.upper(t,v) + for pos,bits in controls: + ds=tuple(abs(a-c) for a,c in zip(pos,v)) + if sum(ds)<=t: + need(sum(ds)==t,'initial lower first front') + if m.odd(ds):val=m.X(val,m.hp((0,bits,0),t)) + return val + initial={v:base(m.R-1,v) for v in m.ball(9,(0,0,8))} + neighbors=lambda v:[tuple(v[k]+(sign if k==axis else 0) for k in range(3)) for axis in range(3) for sign in (-1,1)] + rows=0;scalar_spots=0;new_tables={};all_rows={} + for site in ('qY','q2','q7'): + out,rec=b.calc(site) + # Baseline neighbor XORs on the unique W first-arrival path. + sums=[] + for tau in range(9): + old=initial if tau==0 else rec[tau-1] + v=(0,tau-8,8) + sums.append(m.X(*(old[w] for w in neighbors(v)))) + got={} + for i,(x,u,my,mr,inp,g) in enumerate(b.ROWS): + for wc in range(8): + delta=ray(x,wc,176)^enc(b.lane(initial[(0,-9,8)],i)) + for tau in range(9): + s=enc(b.lane(sums[tau],i));delta=H(s^delta)^H(s) + value=enc(b.lane(out,i))^delta + got[x,u,my,mr,inp,wc,enc(g)]=value;rows+=1 + table=[got[x,u,0,0,inp,w,g] for x,u,inp in product((0,1),repeat=3) for w,g in product(range(8),repeat=2)] + need(table==target['q8_tables'][site],site+' complete table') + need(all(v==got[x,u,0,0,inp,w,g] for (x,u,my,mr,inp,w,g),v in got.items()),'mask independence') + new_tables[site]=table;all_rows[site]=got + # Independent scalar full diamond for each native x/u and each input, + # selected clean apparatus, no reuse of the one-path propagation. + if site=='q7': + for x,u,inp in product((0,1),repeat=3): + gc=3 if u==0 else 5;g=dec(gc);i=b.ROWS.index((x,u,1,1,inp,g)) + old={v:enc(b.lane(base(m.R-2,v),i)) for v in m.ball(8,(0,0,8))} + now={v:enc(b.lane(initial[v],i)) for v in initial};now[(0,-9,8)]=ray(x,7,176) + for tau in range(9): + nxt={v:old[v]^H(reduce(xor,(now[w] for w in neighbors(v)),0)) for v in m.ball(8-tau,(0,0,8))} + if tau==7:nxt[(0,0,7)]=inp + old,now=now,nxt + need(now[(0,0,8)]==got[x,u,1,1,inp,7,gc],'full scalar spot');scalar_spots+=1 + candidates={} + for site in ('qY','q7'): + got=all_rows[site];by_u=[] + for u in (0,1): + d={} + for w,g in product(range(8),repeat=2): + outputs={p:{got[x,u,0,0,p,w,g] for x in (0,1) if site!='qY' or p==x^u} for p in (0,1)} + if all(len(v)==1 for v in outputs.values()): + pair=tuple(next(iter(outputs[p])) for p in (0,1)) + if pair[0]!=pair[1]:d.setdefault(pair,[]).append([w,g]) + by_u.append(d) + common=sorted(set(by_u[0])&set(by_u[1])) + candidates[site]=[{'codes':list(k),'u0_WG':by_u[0][k],'u1_WG':by_u[1][k]} for k in common] + need(candidates[site]==target['encoding_candidates'][site],'candidate census '+site) + clean=all_rows['qY'] + need(all(clean[x,u,my,mr,x^u,7,3 if u==0 else 5]==2*(x^u) for x,u,my,mr in product((0,1),repeat=4)),'clean native witness') + q7=all_rows['q7'];counter=[] + for u,p in product((0,1),repeat=2): + a=[q7[x,u,0,0,p,7,3 if u==0 else 5] for x in (0,1)] + if a[0]!=a[1]:counter.append({'u':u,'p':p,'outputs_by_x':a}) + need(bool(counter),'late-input countercontrol') + nonlinear=sum(ray(x,w,0)!=(power(2*x,76)^power(w,76)) for x in (0,1) for w in range(8)) + need(nonlinear>0,'isolated-superposition mutant rejected') + result={'isolated_superposition_counterexamples':nonlinear,'schema':'oi.workspace-reset.v8.independent-review','verdict':'PASS','input_sha256':hashes,'forcing_blocks':permutations,'unique_entry':entries,'independent_scalar_path_rows':rows,'scalar_full_diamond_spots':scalar_spots,'matched_table_rows':sum(map(len,new_tables.values())),'native_common_encoding_count':len(candidates['qY']),'q7_common_encoding_count':len(candidates['q7']),'native_clean_W':7,'native_clean_G_by_u':[3,5],'late_input_counterexamples':counter,'reset':'not_constructed','public_record_law':'not_established'} + print(json.dumps(result,sort_keys=True,indent=2)) +if __name__=='__main__':main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/review/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/review/result.json new file mode 100644 index 000000000..ab077fb27 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v8/review/result.json @@ -0,0 +1,80 @@ +{ + "forcing_blocks": [ + { + "order": 1, + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + }, + { + "order": 1, + "permutation": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + } + ], + "independent_scalar_path_rows": 6144, + "input_sha256": { + "../reset_v7/inherited_correction_model.py": "81fb9162229409e42d4383274c91988b94c8727dc70d9398cc1ca1ac51a38ee4", + "../reset_v7/inherited_model.py": "dfb056bfe91372b44787d962e63d83ae7109802b38034b661e1c3275a63e146b", + "../reset_v7/probe.py": "1b00605540c71e499a6a7b3b4f59f965f140e2620c287b4321c74c2cd2554b72", + "probe.py": "7557844c8934ebaec2dfb1472208317c3e7141ad94be2def15a18174c454110a", + "results.json": "5ac68df56388b9978b9db351dca0e29e99db3c8cccc567eb30bc61b665629a0f" + }, + "isolated_superposition_counterexamples": 4, + "late_input_counterexamples": [ + { + "outputs_by_x": [ + 0, + 1 + ], + "p": 0, + "u": 0 + }, + { + "outputs_by_x": [ + 3, + 2 + ], + "p": 1, + "u": 0 + } + ], + "matched_table_rows": 1536, + "native_clean_G_by_u": [ + 3, + 5 + ], + "native_clean_W": 7, + "native_common_encoding_count": 32, + "public_record_law": "not_established", + "q7_common_encoding_count": 0, + "reset": "not_constructed", + "scalar_full_diamond_spots": 8, + "schema": "oi.workspace-reset.v8.independent-review", + "unique_entry": [ + [ + -1, + [ + 0, + -9, + 8 + ] + ] + ], + "verdict": "PASS" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/PROBE-PLAN.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/PROBE-PLAN.md new file mode 100644 index 000000000..4f0de74c0 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/PROBE-PLAN.md @@ -0,0 +1,33 @@ +# Bounded continuation from the native q8 route + +Research only. Starting source is #910 at `f264dff4eacae84959b4a4419be204fb8c31c9e3`; reset_v8 supplies W=111, G=011/101 by existing u, +and native q8=(0,y,0), y=x XOR u at R+8. + +First extract its actual old local term at R+6 and six incoming cells at R+7, +for all x,u,mY,mR, and the separate qY/q2/q7 interventions. This is the +boundary that creates q8, not an assertion of a cold future input socket. + +The only new candidate family is one outward step to q9 at R+9, with an +explicit original-time depth-nine ready extension and one added upper +source J at (0,S,S+2d+18), two cells beyond G. J may depend on the existing +apparatus seed u and a prospective fresh bit a; it cannot depend on x,y, +a late operand or any public outcome. W and G keep their q8 witness values. +Enumerate the eight J values for each u and compute all input/mask cases. +Test common two-code full-triple encodings of y; separately test whether +u,a-specific J choices implement clean y XOR a or the standalone mixer +M_a(0,y,0)=(a,y,ay). This is a candidate gate only, not the 5:3:2 sampler. + +Controls before verdict: actual P period divisibility; coupled W/origin +first-front recurrence at z=76,77, including nonlinear source interaction; +upper-strip direct small-depth comparisons; all inherited sources/ready +boundaries; first-arrival/no influence on q8; scalar/non-packed checks of +selected native collisions; all selector masks. If the required exact +period/front reduction cannot be justified, publish only the q8 boundary +and unresolved continuation, without a candidate verdict. + +No late readiness or new unknown-input copy may be inserted. All changed +initial pins and added seed relationships must be stated. Whole public +history and conditional resource independence are a separate concurrent +audit and are not assumed solved. A successful local gate remains conditional +on those unresolved interface obligations; no reset, premise, adoption or +full-equivalence claim follows. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/PROVENANCE.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/PROVENANCE.json new file mode 100644 index 000000000..b61cf8670 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/PROVENANCE.json @@ -0,0 +1,10 @@ +{ + "files": { + "parallel_v3/history_control/SOURCE-GEOMETRY.json": "2642e1a68825faa5d3bb1049e8722adec1ec33bd3f56b9e4416b2c902a85ec5d", + "reset_v7/inherited_correction_model.py": "81fb9162229409e42d4383274c91988b94c8727dc70d9398cc1ca1ac51a38ee4", + "reset_v7/inherited_model.py": "dfb056bfe91372b44787d962e63d83ae7109802b38034b661e1c3275a63e146b", + "reset_v7/probe.py": "1b00605540c71e499a6a7b3b4f59f965f140e2620c287b4321c74c2cd2554b72", + "reset_v8/probe.py": "7557844c8934ebaec2dfb1472208317c3e7141ad94be2def15a18174c454110a" + }, + "source_commit": "f264dff4eacae84959b4a4419be204fb8c31c9e3" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/REPORT.md new file mode 100644 index 000000000..603df8732 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/REPORT.md @@ -0,0 +1,138 @@ +# Native q8 boundary and an affine-seed masked route to q9 + +Research checkpoint, 24 October 2026. Source: #910 at +`f264dff4eacae84959b4a4419be204fb8c31c9e3`. The bounded continuation supplies +one physical masked-sign route on the retained native family. It does not +supply the full post-Y reset or an arbitrary late-input socket. + +## Result + +Retain reset_v8's W=111 and G=(u,1 XOR u,1), giving q8=(0,y,0) at R+8, +where y=x XOR u. Extend the original initial ready region to the current +radius-(R+9) and previous radius-(R+8) balls about q9=(0,S,d+9), d=68. +Preserve every inherited source, W,Q,C,G. Add one current initial source: + + position (0,S,S+2d+18), payload J=(u XOR a,a,u XOR a). + +Here a is a prospective new independent fair apparatus bit, specified at the +original initial time. J is affine in u,a and contains no unknown x, no copy +of the later y and no late-time intervention. The unchanged native rule gives + + U_(R+9)(q9)=(0,y XOR a,y XOR a). + +This fixed encoding is common to all retained native x,u and selector masks. +The earlier q7 and q8 values are unchanged. Conditional on a being fair given +the complete relevant history, this is a fair masked sign; that conditional +freshness and the joint public-history law are separate obligations. The +identity itself holds pointwise for both a values. There is no simultaneous +outgoing Y branch: the known q8 value is at an earlier time. + +The affine source formula is a deduction from the preregistered common-code +census, not a retroactively preregistered target. The census has eight common +ordered code pairs; selecting (000,011) and (011,000) yields the formula. +The prescribed clean-A, clean-B and standalone mixer targets all fail in +this one-source, one-tick family. There is no common injective full-triple +encoding of an arbitrary bit substituted into q8.B with its past retained. + +## Actual boundary creating q8 + +Offsets below are relative to q8. Six incoming cells are at R+7, old local +at R+6. Set F(m)=(u XOR m,1 XOR m,1 XOR u XOR m XOR um). + +| Incoming offset | Exact native triple | +| --- | --- | +| -e_x | F(mR) | +| +e_x | F(mY) | +| -e_y | (x XOR u XOR xu,0,1) | +| +e_y | F(mY XOR mR) | +| -e_z | (0,0,x XOR u) | +| +e_z | (1 XOR u,u,1 XOR u) | +| Old local value | (1 XOR u,1,0) | + +All sixteen input/mask assignments are retained and scalar-update checked. +This is not a cold neighborhood. It is the boundary creating q8, not the +complete future state around q8 at R+8. That larger two-slice state can be +correlated with exposed frontier records. The q9 calculation keeps its actual +causal boundary; it does not replace q8 by a standalone input. The result +also retains the old-local and six incoming cells creating masked q9 for +all 32 x,u,mY,mR,a assignments. + +## Exact coupled front and giant-delay reduction + +W reaches exactly two points in the new q9 backward diamond at R-1: +(0,S-9,76) and (0,S-10,77); it reaches none in the R-2 slice. Define +F0(j) at (0,j,76), time j+76, and F1(j) at (0,j,77), time j+77. Then + + F0(0)=H(H^75(0,x,0) XOR H^75(1,1,1)), + F1(0)=H(F0(0)), + F0(j)=H(F0(j-1) XOR [j AND 75=0] H^(j+75)(0,x,0)), + F1(j)=H(F1(j-1) XOR F0(j)). + +For F1(0), the W-only -y predecessor has parity binom(76,1)=0 mod 2. +At subsequent first-front points, the old local and other four neighbors +are unreached; -y and -z give the displayed terms. These are coupled native +recurrences, not superposition of independently evolved pulses. + +F0's forcing is 384-periodic, giving a sufficient period 384*840. Over that +period F1 is periodically driven and its block map is an eight-state +permutation. Thus 384*840^2 is a sufficient joint period. Actual +P=12*840^185 is divisible by it, so the needed indices P+176 and P+175 +reduce exactly to 176 and 175. Direct native recursion checks both layers +at j=0 through 8. Finite block controls additionally find F0's 384-step map +is identity for all eight starting triples and both x values; this stronger +fact is not needed for the larger sufficient bound. + +Q,C,G,J occupy upper axial offsets 0,14,16,18. Their joint nonlinear strip +has budget 18. The retained strip-period lemma gives 12*840^18, dividing P. +The new four-source evaluator checks 6,000 small-coordinate scalar entries +against direct native recursion. All subsequent interactions are kept in +the complete q9 collision diamond. + +## Initial preparation, access and next obligation + +The new initial balls contain the old depth-eight balls. Preserved sources +are exempt from zero pins. All 1,479 retained source positions lie on or +outside the new current boundary; J overwrites none. The inherited previous +unknown at the origin lies outside the new previous ball. Six specified +outward frontier rays move strictly farther away from q9, so their +nonzero-index bank sources stay outside this endpoint cone. In particular +M1=(0,-1,0) has distance R+10 from q9, exceeding its R+9 deadline. M1 can +nevertheless occur in the full future neighborhood of q8. + +Signal sources and q9 have even spacetime parity. The native update +preserves t+x+y+z mod 2 since all predecessor terms share the output parity. +This sanity check does not remove the other component from the full boundary. +J cannot reach q8 before R+10. The new calculation reproduces qY,q7,q8 and +every q8 incoming cell above; preservation is measured explicitly. + +The standalone direct-reset compiler uses a cold initial Q and a synchronized +first-arrival mixer M_a(A,B,D)=(A XOR a,B,D XOR aB). Applying it directly +at late q8 would omit the actual nonzero old-local value and dirty neighbors. +The present family rejects its target M_a(0,y,0)=(a,y,ay). No translated +cold apparatus or compiler was installed. + +The positive route supplies one sign mixed with a preloaded bit. It does not +produce separate X,R masks with conditional weights 5:3:2, fair z, native +heralds, failure branches, retained information or a reusable output encoding. +A next construction must create those outputs from the actual native signal +and prove their joint law. No source freshness, access restriction, physical +premise or calibration is silently derived here. + +## Replay + +From this directory in the retained tree: + +```sh +python3 checks.py > /tmp/oi-reset-v9.json +cmp /tmp/oi-reset-v9.json result.json +python3 -O checks.py > /tmp/oi-reset-v9-O.json +cmp /tmp/oi-reset-v9-O.json result.json +sha256sum -c SHA256SUMS +``` + +Only stdlib and sibling reset_v8/reset_v7 evaluators and source geometry are +needed. PROVENANCE.json pins the inputs. Normal/-O outputs are identical; +controls raise before verdicts. New checks cover 512 diagnostic rows, +16 q8 boundary rows and 32 masked-q9 boundary rows. No Lean certificate, +special dispatch, F/E designation, manuscript change or full equivalence +is claimed. Separate-author review is pending. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/SHA256SUMS new file mode 100644 index 000000000..5a4385ca2 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/SHA256SUMS @@ -0,0 +1,5 @@ +db5211d66a73ed43f9af7dd80690d6e73bc068386499f9a1d85a06e17b8e3da7 PROBE-PLAN.md +2098f1e8bc1a0c8a5f22b05a39d25852867aa79d17bfc57470b5fc271b4ab60d PROVENANCE.json +019f392c4b91f278248874e8d726894b19b10f55e540a8d10f82c11ce4cb2ecb REPORT.md +55659ae57662ba687dba49fabf9766b0583d72f5bd441999edb0342162ac9685 checks.py +4bddbbeec267c831f31d8d578e9768e18f64c1319388bf9512563cae35aa6ac4 result.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/checks.py new file mode 100644 index 000000000..be564955b --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/checks.py @@ -0,0 +1,175 @@ +"""Exact bounded native q8 boundary and initially prepared q9 continuation.""" +import argparse,importlib.util,json,sys,hashlib +from pathlib import Path +from functools import lru_cache +from itertools import product +ap=argparse.ArgumentParser();ap.add_argument('--source-root',type=Path,default=Path(__file__).resolve().parent.parent) +root=ap.parse_args().source_root.resolve() +s=importlib.util.spec_from_file_location('v8',root/'reset_v8/probe.py');a=importlib.util.module_from_spec(s);s.loader.exec_module(a) +b=a.b;m=a.m;H=m.H;X=m.X;ZERO=m.ZERO;need=b.need;TR=tuple(product((0,1),repeat=3)) +UR=tuple((u,j) for u in (0,1) for j in TR);UF=(1<t or (t-aa-bb-n)%2:return ZERO + if t==0:return {(0,0,0):Q,(0,0,-14):C,(0,0,-16):G,(0,0,-18):J}.get((aa,bb,n),ZERO) + ns=[] + for k in (0,1): + for sign in (-1,1): + ab=[aa,bb];ab[k]+=sign;ab=sorted(map(abs,ab),reverse=True);ns.append(direct4(t-1,*ab,n)) + ns.extend([direct4(t-1,aa,bb,n-1),direct4(t-1,aa,bb,n+1)]) + return X(direct4(t-2,aa,bb,n),H(X(*ns))) +@lru_cache(None) +def strip4(): + values={};L=18 + def get(ell,aa,bb,n): + aa,bb=sorted((abs(aa),abs(bb)),reverse=True) + if ell<0 or aa+bb>ell or (ell-aa-bb)%2 or ell+aa+bb>L:return ZERO + return values[ell,aa,bb][n] + for ell,aa,bb in m.indices(L): + arr=[direct4(ell,aa,bb,0)];values[ell,aa,bb]=arr + for n in range(1,m.BASE+(L-ell)//2+1): + side=X(*(get(ell-1,aa+da,bb+db,n) for da,db in ((-1,0),(1,0),(0,-1),(0,1)))) + arr.append(X(get(ell-2,aa,bb,n),H(X(arr[n-1],get(ell-2,aa,bb,n+1),side)))) + return values + +def lane(v,i):return tuple((w>>i)&1 for w in v) +def code(v):return 4*v[0]+2*v[1]+v[2] +@lru_cache(None) +def raypair(x,j): + f0=H(X(m.hp((0,x,0),75),m.hp((1,1,1),75))) + f1=H(f0) + for k in range(1,j+1): + forcing=m.hp((0,x,0),k+75) if not k&75 else ZERO + f0=H(X(f0,forcing));f1=H(X(f1,f0)) + return f0,f1 +ROWS=tuple((x,u,my,mr,p,j) for x,u,my,mr,p in product((0,1),repeat=5) for j in TR) +FULL=(1<>(8*u+code(j)))&1)<ell or (ell-aa-bb)%2:return ZERO + need(ell+aa+bb<=18,'upper coverage') + return expand(strip4()[ell,aa,bb][n-m.P]) +CONTROLS=[((0,-m.S,-m.d),XM),((0,m.S,-m.d),MY^MR),((m.T,m.P,-m.d),MY),((-m.T,m.P,-m.d),MR)] +RAYS={(0,-9,8):(176,0),(0,-10,9):(175,1)} +def base(t,v): + out=upper(t,v) + for pos,bits in CONTROLS: + ds=tuple(abs(x-y) for x,y in zip(pos,v)) + if sum(ds)<=t: + need(sum(ds)==t,'lower pre-R first front') + if m.odd(ds):out=X(out,m.hp((0,bits,0),t)) + if t==m.R-1 and v in RAYS: + j,level=RAYS[v] + expected=m.hp((0,XM,0),t) if m.odd((0,m.S+v[1],m.d+v[2])) else ZERO + need(out==expected,'entry origin only') + out=tuple(sum(raypair(x,j)[level][k]<=N and tuple(s['position'])!=jpos for s in geo['sources']),'initial ready extension no source overwrite') + frontier=[((0,2*m.S,0),(0,1,0)),((m.T,m.P+m.S,0),(0,1,0)),((-m.T,m.P+m.S,0),(0,1,0)),((4*m.T,m.P+m.S,0),(0,1,0)),((0,0,0),(0,-1,0)),((0,0,-9*m.T),(0,0,-1))] + need(all(D(v,q9)>=N and D(tuple(x+y for x,y in zip(v,d)),q9)==D(v,q9)+1 for v,d in frontier),'frontier rays not overwritten') + need(D((0,-1,0),q9)==N+1,'first prior bank source outside endpoint cone') + need((N+sum(q9))%2==0 and all(sum(v)%2==0 for v in (h,jpos)),'signal spacetime parity') + native,rec=compute();late,_=compute(True) + interface=[];oldout,oldrec=a.calc('qY') + for x,u,my,mr in product((0,1),repeat=4): + i=ROWS.index((x,u,my,mr,0,(0,0,0)));oi=a.ROWS.index((x,u,my,mr,x^u,(1,1,1),(0,1,1) if u==0 else (1,0,1))) + v=(0,0,8);ns={} + for axis in range(3): + for sign in (-1,1): + w=tuple(v[k]+(sign if k==axis else 0) for k in range(3));val=lane(rec[7][w],i) + need(val==a.lane(oldrec[7][w],oi),'q8 incoming neighbor unchanged');ns[','.join(map(str,w))]=val + old=lane(rec[6][v],i);need(old==a.lane(oldrec[6][v],oi),'q8 old local unchanged') + need(X(old,H(X(*ns.values())))==(0,x^u,0),'scalar q8 update') + interface.append({'x':x,'u':u,'mY':my,'mR':mr,'old_local':old,'incoming':ns,'q8':(0,x^u,0)}) + candidates={};tables={} + for mode,out in [('native',native),('q8_intervention',late)]: + table=[];by_u=[] + for i,(x,u,my,mr,p,j) in enumerate(ROWS):need(lane(out,i)==lane(out,ROWS.index((x,u,0,0,p,j))),'q9 selector-mask independence') + for x,u,p,j in product((0,1),(0,1),(0,1),TR):table.append(code(lane(out,ROWS.index((x,u,0,0,p,j))))) + tables[mode]=table + for u in (0,1): + ds={} + for j in TR: + sets={v:set() for v in (0,1)} + for x,p in product((0,1),repeat=2):sets[x^u if mode=='native' else p].add(code(lane(out,ROWS.index((x,u,0,0,p,j))))) + if all(len(s)==1 for s in sets.values()): + pair=tuple(next(iter(sets[v])) for v in (0,1)) + if pair[0]!=pair[1]:ds.setdefault(pair,[]).append(code(j)) + by_u.append(ds) + common=sorted(set(by_u[0])&set(by_u[1]));candidates[mode]=[{'codes':pair,'J_by_u':[by_u[0][pair],by_u[1][pair]]} for pair in common] + target_matches={} + for name in ('clean_A','clean_B','mixer'): + matches={} + for u,seed in product((0,1),repeat=2): + js=[] + for j in TR: + good=True + for x in (0,1): + y=x^u;want=(y^seed,0,0) if name=='clean_A' else (0,y^seed,0) if name=='clean_B' else (seed,y,seed*y) + if lane(native,ROWS.index((x,u,0,0,0,j)))!=want:good=False + if good:js.append(code(j)) + matches[f'{u},{seed}']=js + target_matches[name]=matches + masked_boundary=[] + for x,u,my,mr,seed in product((0,1),repeat=5): + j=(u^seed,seed,u^seed);i=ROWS.index((x,u,my,mr,0,j));v=(0,0,9) + ns={','.join(map(str,w)):lane(rec[8][w],i) for axis in range(3) for sign in (-1,1) for w in [tuple(v[k]+(sign if k==axis else 0) for k in range(3))]} + old=lane(rec[7][v],i);want=(0,x^u^seed,x^u^seed) + need(lane(native,i)==want and X(old,H(X(*ns.values())))==want,'affine seed masked route') + masked_boundary.append({'x':x,'u':u,'mY':my,'mR':mr,'a':seed,'J':j,'old_local':old,'incoming':ns,'q9':want}) + result={'native_masked_route':{'initial_J':'(u XOR a,a,u XOR a)','q9':'(0,y XOR a,y XOR a)','rows':len(masked_boundary),'boundary':masked_boundary},'schema':'oi.q8-next-interface.v9','checks':{'coupled_front_scalar':scalar,'two_layer_block_cases':block_controls,'upper_direct_scalar':upper_checks,'source_geometry':1479,'q8_boundary_rows':len(interface),'q9_diagnostic_rows':2*len(ROWS),'W_entries':reached,'first_frontier_source_excluded':True,'signal_spacetime_parity':0},'q8_interface':interface,'q9_table_order':'lexicographic x,u,p,J; code=4A+2B+D','q9_tables':tables,'q9_common_codes':candidates,'q9_target_matches':target_matches,'verdict':{'native_two_code':'exists' if candidates['native'] else 'excluded','late_q8_two_code':'exists' if candidates['q8_intervention'] else 'excluded','reset':'not_constructed','joint_history':'separate_obligation'}} + print(json.dumps(result,indent=2,sort_keys=True)) +if __name__=='__main__':main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/result.json new file mode 100644 index 000000000..89c9de73f --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/result.json @@ -0,0 +1,2814 @@ +{ + "checks": { + "W_entries": [ + [ + -1, + [ + 0, + -10, + 9 + ] + ], + [ + -1, + [ + 0, + -9, + 8 + ] + ] + ], + "coupled_front_scalar": 36, + "first_frontier_source_excluded": true, + "q8_boundary_rows": 16, + "q9_diagnostic_rows": 512, + "signal_spacetime_parity": 0, + "source_geometry": 1479, + "two_layer_block_cases": 128, + "upper_direct_scalar": 6000 + }, + "native_masked_route": { + "boundary": [ + { + "J": [ + 0, + 0, + 0 + ], + "a": 0, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 1, + 1, + 1 + ], + "0,0,10": [ + 0, + 0, + 1 + ], + "0,0,8": [ + 0, + 0, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 0, + "mY": 0, + "old_local": [ + 1, + 0, + 1 + ], + "q9": [ + 0, + 0, + 0 + ], + "u": 0, + "x": 0 + }, + { + "J": [ + 1, + 1, + 1 + ], + "a": 1, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 1, + 1, + 1 + ], + "0,0,10": [ + 0, + 0, + 0 + ], + "0,0,8": [ + 0, + 0, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 0, + "mY": 0, + "old_local": [ + 1, + 0, + 1 + ], + "q9": [ + 0, + 1, + 1 + ], + "u": 0, + "x": 0 + }, + { + "J": [ + 0, + 0, + 0 + ], + "a": 0, + "incoming": { + "-1,0,9": [ + 1, + 0, + 1 + ], + "0,-1,9": [ + 1, + 1, + 1 + ], + "0,0,10": [ + 0, + 0, + 1 + ], + "0,0,8": [ + 0, + 0, + 0 + ], + "0,1,9": [ + 1, + 0, + 1 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 1, + "mY": 0, + "old_local": [ + 1, + 0, + 1 + ], + "q9": [ + 0, + 0, + 0 + ], + "u": 0, + "x": 0 + }, + { + "J": [ + 1, + 1, + 1 + ], + "a": 1, + "incoming": { + "-1,0,9": [ + 1, + 0, + 1 + ], + "0,-1,9": [ + 1, + 1, + 1 + ], + "0,0,10": [ + 0, + 0, + 0 + ], + "0,0,8": [ + 0, + 0, + 0 + ], + "0,1,9": [ + 1, + 0, + 1 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 1, + "mY": 0, + "old_local": [ + 1, + 0, + 1 + ], + "q9": [ + 0, + 1, + 1 + ], + "u": 0, + "x": 0 + }, + { + "J": [ + 0, + 0, + 0 + ], + "a": 0, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 1, + 1, + 1 + ], + "0,0,10": [ + 0, + 0, + 1 + ], + "0,0,8": [ + 0, + 0, + 0 + ], + "0,1,9": [ + 1, + 0, + 1 + ], + "1,0,9": [ + 1, + 0, + 1 + ] + }, + "mR": 0, + "mY": 1, + "old_local": [ + 1, + 0, + 1 + ], + "q9": [ + 0, + 0, + 0 + ], + "u": 0, + "x": 0 + }, + { + "J": [ + 1, + 1, + 1 + ], + "a": 1, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 1, + 1, + 1 + ], + "0,0,10": [ + 0, + 0, + 0 + ], + "0,0,8": [ + 0, + 0, + 0 + ], + "0,1,9": [ + 1, + 0, + 1 + ], + "1,0,9": [ + 1, + 0, + 1 + ] + }, + "mR": 0, + "mY": 1, + "old_local": [ + 1, + 0, + 1 + ], + "q9": [ + 0, + 1, + 1 + ], + "u": 0, + "x": 0 + }, + { + "J": [ + 0, + 0, + 0 + ], + "a": 0, + "incoming": { + "-1,0,9": [ + 1, + 0, + 1 + ], + "0,-1,9": [ + 1, + 1, + 1 + ], + "0,0,10": [ + 0, + 0, + 1 + ], + "0,0,8": [ + 0, + 0, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 1, + 0, + 1 + ] + }, + "mR": 1, + "mY": 1, + "old_local": [ + 1, + 0, + 1 + ], + "q9": [ + 0, + 0, + 0 + ], + "u": 0, + "x": 0 + }, + { + "J": [ + 1, + 1, + 1 + ], + "a": 1, + "incoming": { + "-1,0,9": [ + 1, + 0, + 1 + ], + "0,-1,9": [ + 1, + 1, + 1 + ], + "0,0,10": [ + 0, + 0, + 0 + ], + "0,0,8": [ + 0, + 0, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 1, + 0, + 1 + ] + }, + "mR": 1, + "mY": 1, + "old_local": [ + 1, + 0, + 1 + ], + "q9": [ + 0, + 1, + 1 + ], + "u": 0, + "x": 0 + }, + { + "J": [ + 1, + 0, + 1 + ], + "a": 0, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 1, + 1, + 0 + ], + "0,0,10": [ + 0, + 0, + 0 + ], + "0,0,8": [ + 0, + 1, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 0, + "mY": 0, + "old_local": [ + 0, + 1, + 0 + ], + "q9": [ + 0, + 1, + 1 + ], + "u": 1, + "x": 0 + }, + { + "J": [ + 0, + 1, + 0 + ], + "a": 1, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 1, + 1, + 0 + ], + "0,0,10": [ + 1, + 0, + 1 + ], + "0,0,8": [ + 0, + 1, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 0, + "mY": 0, + "old_local": [ + 0, + 1, + 0 + ], + "q9": [ + 0, + 0, + 0 + ], + "u": 1, + "x": 0 + }, + { + "J": [ + 1, + 0, + 1 + ], + "a": 0, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 1, + 1, + 0 + ], + "0,0,10": [ + 0, + 0, + 0 + ], + "0,0,8": [ + 0, + 1, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 1, + "mY": 0, + "old_local": [ + 0, + 1, + 0 + ], + "q9": [ + 0, + 1, + 1 + ], + "u": 1, + "x": 0 + }, + { + "J": [ + 0, + 1, + 0 + ], + "a": 1, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 1, + 1, + 0 + ], + "0,0,10": [ + 1, + 0, + 1 + ], + "0,0,8": [ + 0, + 1, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 1, + "mY": 0, + "old_local": [ + 0, + 1, + 0 + ], + "q9": [ + 0, + 0, + 0 + ], + "u": 1, + "x": 0 + }, + { + "J": [ + 1, + 0, + 1 + ], + "a": 0, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 1, + 1, + 0 + ], + "0,0,10": [ + 0, + 0, + 0 + ], + "0,0,8": [ + 0, + 1, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 0, + "mY": 1, + "old_local": [ + 0, + 1, + 0 + ], + "q9": [ + 0, + 1, + 1 + ], + "u": 1, + "x": 0 + }, + { + "J": [ + 0, + 1, + 0 + ], + "a": 1, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 1, + 1, + 0 + ], + "0,0,10": [ + 1, + 0, + 1 + ], + "0,0,8": [ + 0, + 1, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 0, + "mY": 1, + "old_local": [ + 0, + 1, + 0 + ], + "q9": [ + 0, + 0, + 0 + ], + "u": 1, + "x": 0 + }, + { + "J": [ + 1, + 0, + 1 + ], + "a": 0, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 1, + 1, + 0 + ], + "0,0,10": [ + 0, + 0, + 0 + ], + "0,0,8": [ + 0, + 1, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 1, + "mY": 1, + "old_local": [ + 0, + 1, + 0 + ], + "q9": [ + 0, + 1, + 1 + ], + "u": 1, + "x": 0 + }, + { + "J": [ + 0, + 1, + 0 + ], + "a": 1, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 1, + 1, + 0 + ], + "0,0,10": [ + 1, + 0, + 1 + ], + "0,0,8": [ + 0, + 1, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 1, + "mY": 1, + "old_local": [ + 0, + 1, + 0 + ], + "q9": [ + 0, + 0, + 0 + ], + "u": 1, + "x": 0 + }, + { + "J": [ + 0, + 0, + 0 + ], + "a": 0, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 1, + 0, + 0 + ], + "0,0,10": [ + 0, + 0, + 1 + ], + "0,0,8": [ + 0, + 1, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 0, + "mY": 0, + "old_local": [ + 1, + 0, + 1 + ], + "q9": [ + 0, + 1, + 1 + ], + "u": 0, + "x": 1 + }, + { + "J": [ + 1, + 1, + 1 + ], + "a": 1, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 1, + 0, + 0 + ], + "0,0,10": [ + 0, + 0, + 0 + ], + "0,0,8": [ + 0, + 1, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 0, + "mY": 0, + "old_local": [ + 1, + 0, + 1 + ], + "q9": [ + 0, + 0, + 0 + ], + "u": 0, + "x": 1 + }, + { + "J": [ + 0, + 0, + 0 + ], + "a": 0, + "incoming": { + "-1,0,9": [ + 1, + 0, + 1 + ], + "0,-1,9": [ + 1, + 0, + 0 + ], + "0,0,10": [ + 0, + 0, + 1 + ], + "0,0,8": [ + 0, + 1, + 0 + ], + "0,1,9": [ + 1, + 0, + 1 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 1, + "mY": 0, + "old_local": [ + 1, + 0, + 1 + ], + "q9": [ + 0, + 1, + 1 + ], + "u": 0, + "x": 1 + }, + { + "J": [ + 1, + 1, + 1 + ], + "a": 1, + "incoming": { + "-1,0,9": [ + 1, + 0, + 1 + ], + "0,-1,9": [ + 1, + 0, + 0 + ], + "0,0,10": [ + 0, + 0, + 0 + ], + "0,0,8": [ + 0, + 1, + 0 + ], + "0,1,9": [ + 1, + 0, + 1 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 1, + "mY": 0, + "old_local": [ + 1, + 0, + 1 + ], + "q9": [ + 0, + 0, + 0 + ], + "u": 0, + "x": 1 + }, + { + "J": [ + 0, + 0, + 0 + ], + "a": 0, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 1, + 0, + 0 + ], + "0,0,10": [ + 0, + 0, + 1 + ], + "0,0,8": [ + 0, + 1, + 0 + ], + "0,1,9": [ + 1, + 0, + 1 + ], + "1,0,9": [ + 1, + 0, + 1 + ] + }, + "mR": 0, + "mY": 1, + "old_local": [ + 1, + 0, + 1 + ], + "q9": [ + 0, + 1, + 1 + ], + "u": 0, + "x": 1 + }, + { + "J": [ + 1, + 1, + 1 + ], + "a": 1, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 1, + 0, + 0 + ], + "0,0,10": [ + 0, + 0, + 0 + ], + "0,0,8": [ + 0, + 1, + 0 + ], + "0,1,9": [ + 1, + 0, + 1 + ], + "1,0,9": [ + 1, + 0, + 1 + ] + }, + "mR": 0, + "mY": 1, + "old_local": [ + 1, + 0, + 1 + ], + "q9": [ + 0, + 0, + 0 + ], + "u": 0, + "x": 1 + }, + { + "J": [ + 0, + 0, + 0 + ], + "a": 0, + "incoming": { + "-1,0,9": [ + 1, + 0, + 1 + ], + "0,-1,9": [ + 1, + 0, + 0 + ], + "0,0,10": [ + 0, + 0, + 1 + ], + "0,0,8": [ + 0, + 1, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 1, + 0, + 1 + ] + }, + "mR": 1, + "mY": 1, + "old_local": [ + 1, + 0, + 1 + ], + "q9": [ + 0, + 1, + 1 + ], + "u": 0, + "x": 1 + }, + { + "J": [ + 1, + 1, + 1 + ], + "a": 1, + "incoming": { + "-1,0,9": [ + 1, + 0, + 1 + ], + "0,-1,9": [ + 1, + 0, + 0 + ], + "0,0,10": [ + 0, + 0, + 0 + ], + "0,0,8": [ + 0, + 1, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 1, + 0, + 1 + ] + }, + "mR": 1, + "mY": 1, + "old_local": [ + 1, + 0, + 1 + ], + "q9": [ + 0, + 0, + 0 + ], + "u": 0, + "x": 1 + }, + { + "J": [ + 1, + 0, + 1 + ], + "a": 0, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 0, + 0, + 1 + ], + "0,0,10": [ + 0, + 0, + 0 + ], + "0,0,8": [ + 0, + 0, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 0, + "mY": 0, + "old_local": [ + 0, + 1, + 0 + ], + "q9": [ + 0, + 0, + 0 + ], + "u": 1, + "x": 1 + }, + { + "J": [ + 0, + 1, + 0 + ], + "a": 1, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 0, + 0, + 1 + ], + "0,0,10": [ + 1, + 0, + 1 + ], + "0,0,8": [ + 0, + 0, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 0, + "mY": 0, + "old_local": [ + 0, + 1, + 0 + ], + "q9": [ + 0, + 1, + 1 + ], + "u": 1, + "x": 1 + }, + { + "J": [ + 1, + 0, + 1 + ], + "a": 0, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 0, + 0, + 1 + ], + "0,0,10": [ + 0, + 0, + 0 + ], + "0,0,8": [ + 0, + 0, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 1, + "mY": 0, + "old_local": [ + 0, + 1, + 0 + ], + "q9": [ + 0, + 0, + 0 + ], + "u": 1, + "x": 1 + }, + { + "J": [ + 0, + 1, + 0 + ], + "a": 1, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 0, + 0, + 1 + ], + "0,0,10": [ + 1, + 0, + 1 + ], + "0,0,8": [ + 0, + 0, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 1, + "mY": 0, + "old_local": [ + 0, + 1, + 0 + ], + "q9": [ + 0, + 1, + 1 + ], + "u": 1, + "x": 1 + }, + { + "J": [ + 1, + 0, + 1 + ], + "a": 0, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 0, + 0, + 1 + ], + "0,0,10": [ + 0, + 0, + 0 + ], + "0,0,8": [ + 0, + 0, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 0, + "mY": 1, + "old_local": [ + 0, + 1, + 0 + ], + "q9": [ + 0, + 0, + 0 + ], + "u": 1, + "x": 1 + }, + { + "J": [ + 0, + 1, + 0 + ], + "a": 1, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 0, + 0, + 1 + ], + "0,0,10": [ + 1, + 0, + 1 + ], + "0,0,8": [ + 0, + 0, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 0, + "mY": 1, + "old_local": [ + 0, + 1, + 0 + ], + "q9": [ + 0, + 1, + 1 + ], + "u": 1, + "x": 1 + }, + { + "J": [ + 1, + 0, + 1 + ], + "a": 0, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 0, + 0, + 1 + ], + "0,0,10": [ + 0, + 0, + 0 + ], + "0,0,8": [ + 0, + 0, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 1, + "mY": 1, + "old_local": [ + 0, + 1, + 0 + ], + "q9": [ + 0, + 0, + 0 + ], + "u": 1, + "x": 1 + }, + { + "J": [ + 0, + 1, + 0 + ], + "a": 1, + "incoming": { + "-1,0,9": [ + 0, + 0, + 0 + ], + "0,-1,9": [ + 0, + 0, + 1 + ], + "0,0,10": [ + 1, + 0, + 1 + ], + "0,0,8": [ + 0, + 0, + 0 + ], + "0,1,9": [ + 0, + 0, + 0 + ], + "1,0,9": [ + 0, + 0, + 0 + ] + }, + "mR": 1, + "mY": 1, + "old_local": [ + 0, + 1, + 0 + ], + "q9": [ + 0, + 1, + 1 + ], + "u": 1, + "x": 1 + } + ], + "initial_J": "(u XOR a,a,u XOR a)", + "q9": "(0,y XOR a,y XOR a)", + "rows": 32 + }, + "q8_interface": [ + { + "incoming": { + "-1,0,8": [ + 0, + 1, + 1 + ], + "0,-1,8": [ + 0, + 0, + 1 + ], + "0,0,7": [ + 0, + 0, + 0 + ], + "0,0,9": [ + 1, + 0, + 1 + ], + "0,1,8": [ + 0, + 1, + 1 + ], + "1,0,8": [ + 0, + 1, + 1 + ] + }, + "mR": 0, + "mY": 0, + "old_local": [ + 1, + 1, + 0 + ], + "q8": [ + 0, + 0, + 0 + ], + "u": 0, + "x": 0 + }, + { + "incoming": { + "-1,0,8": [ + 1, + 0, + 0 + ], + "0,-1,8": [ + 0, + 0, + 1 + ], + "0,0,7": [ + 0, + 0, + 0 + ], + "0,0,9": [ + 1, + 0, + 1 + ], + "0,1,8": [ + 1, + 0, + 0 + ], + "1,0,8": [ + 0, + 1, + 1 + ] + }, + "mR": 1, + "mY": 0, + "old_local": [ + 1, + 1, + 0 + ], + "q8": [ + 0, + 0, + 0 + ], + "u": 0, + "x": 0 + }, + { + "incoming": { + "-1,0,8": [ + 0, + 1, + 1 + ], + "0,-1,8": [ + 0, + 0, + 1 + ], + "0,0,7": [ + 0, + 0, + 0 + ], + "0,0,9": [ + 1, + 0, + 1 + ], + "0,1,8": [ + 1, + 0, + 0 + ], + "1,0,8": [ + 1, + 0, + 0 + ] + }, + "mR": 0, + "mY": 1, + "old_local": [ + 1, + 1, + 0 + ], + "q8": [ + 0, + 0, + 0 + ], + "u": 0, + "x": 0 + }, + { + "incoming": { + "-1,0,8": [ + 1, + 0, + 0 + ], + "0,-1,8": [ + 0, + 0, + 1 + ], + "0,0,7": [ + 0, + 0, + 0 + ], + "0,0,9": [ + 1, + 0, + 1 + ], + "0,1,8": [ + 0, + 1, + 1 + ], + "1,0,8": [ + 1, + 0, + 0 + ] + }, + "mR": 1, + "mY": 1, + "old_local": [ + 1, + 1, + 0 + ], + "q8": [ + 0, + 0, + 0 + ], + "u": 0, + "x": 0 + }, + { + "incoming": { + "-1,0,8": [ + 1, + 1, + 0 + ], + "0,-1,8": [ + 1, + 0, + 1 + ], + "0,0,7": [ + 0, + 0, + 1 + ], + "0,0,9": [ + 0, + 1, + 0 + ], + "0,1,8": [ + 1, + 1, + 0 + ], + "1,0,8": [ + 1, + 1, + 0 + ] + }, + "mR": 0, + "mY": 0, + "old_local": [ + 0, + 1, + 0 + ], + "q8": [ + 0, + 1, + 0 + ], + "u": 1, + "x": 0 + }, + { + "incoming": { + "-1,0,8": [ + 0, + 0, + 0 + ], + "0,-1,8": [ + 1, + 0, + 1 + ], + "0,0,7": [ + 0, + 0, + 1 + ], + "0,0,9": [ + 0, + 1, + 0 + ], + "0,1,8": [ + 0, + 0, + 0 + ], + "1,0,8": [ + 1, + 1, + 0 + ] + }, + "mR": 1, + "mY": 0, + "old_local": [ + 0, + 1, + 0 + ], + "q8": [ + 0, + 1, + 0 + ], + "u": 1, + "x": 0 + }, + { + "incoming": { + "-1,0,8": [ + 1, + 1, + 0 + ], + "0,-1,8": [ + 1, + 0, + 1 + ], + "0,0,7": [ + 0, + 0, + 1 + ], + "0,0,9": [ + 0, + 1, + 0 + ], + "0,1,8": [ + 0, + 0, + 0 + ], + "1,0,8": [ + 0, + 0, + 0 + ] + }, + "mR": 0, + "mY": 1, + "old_local": [ + 0, + 1, + 0 + ], + "q8": [ + 0, + 1, + 0 + ], + "u": 1, + "x": 0 + }, + { + "incoming": { + "-1,0,8": [ + 0, + 0, + 0 + ], + "0,-1,8": [ + 1, + 0, + 1 + ], + "0,0,7": [ + 0, + 0, + 1 + ], + "0,0,9": [ + 0, + 1, + 0 + ], + "0,1,8": [ + 1, + 1, + 0 + ], + "1,0,8": [ + 0, + 0, + 0 + ] + }, + "mR": 1, + "mY": 1, + "old_local": [ + 0, + 1, + 0 + ], + "q8": [ + 0, + 1, + 0 + ], + "u": 1, + "x": 0 + }, + { + "incoming": { + "-1,0,8": [ + 0, + 1, + 1 + ], + "0,-1,8": [ + 1, + 0, + 1 + ], + "0,0,7": [ + 0, + 0, + 1 + ], + "0,0,9": [ + 1, + 0, + 1 + ], + "0,1,8": [ + 0, + 1, + 1 + ], + "1,0,8": [ + 0, + 1, + 1 + ] + }, + "mR": 0, + "mY": 0, + "old_local": [ + 1, + 1, + 0 + ], + "q8": [ + 0, + 1, + 0 + ], + "u": 0, + "x": 1 + }, + { + "incoming": { + "-1,0,8": [ + 1, + 0, + 0 + ], + "0,-1,8": [ + 1, + 0, + 1 + ], + "0,0,7": [ + 0, + 0, + 1 + ], + "0,0,9": [ + 1, + 0, + 1 + ], + "0,1,8": [ + 1, + 0, + 0 + ], + "1,0,8": [ + 0, + 1, + 1 + ] + }, + "mR": 1, + "mY": 0, + "old_local": [ + 1, + 1, + 0 + ], + "q8": [ + 0, + 1, + 0 + ], + "u": 0, + "x": 1 + }, + { + "incoming": { + "-1,0,8": [ + 0, + 1, + 1 + ], + "0,-1,8": [ + 1, + 0, + 1 + ], + "0,0,7": [ + 0, + 0, + 1 + ], + "0,0,9": [ + 1, + 0, + 1 + ], + "0,1,8": [ + 1, + 0, + 0 + ], + "1,0,8": [ + 1, + 0, + 0 + ] + }, + "mR": 0, + "mY": 1, + "old_local": [ + 1, + 1, + 0 + ], + "q8": [ + 0, + 1, + 0 + ], + "u": 0, + "x": 1 + }, + { + "incoming": { + "-1,0,8": [ + 1, + 0, + 0 + ], + "0,-1,8": [ + 1, + 0, + 1 + ], + "0,0,7": [ + 0, + 0, + 1 + ], + "0,0,9": [ + 1, + 0, + 1 + ], + "0,1,8": [ + 0, + 1, + 1 + ], + "1,0,8": [ + 1, + 0, + 0 + ] + }, + "mR": 1, + "mY": 1, + "old_local": [ + 1, + 1, + 0 + ], + "q8": [ + 0, + 1, + 0 + ], + "u": 0, + "x": 1 + }, + { + "incoming": { + "-1,0,8": [ + 1, + 1, + 0 + ], + "0,-1,8": [ + 1, + 0, + 1 + ], + "0,0,7": [ + 0, + 0, + 0 + ], + "0,0,9": [ + 0, + 1, + 0 + ], + "0,1,8": [ + 1, + 1, + 0 + ], + "1,0,8": [ + 1, + 1, + 0 + ] + }, + "mR": 0, + "mY": 0, + "old_local": [ + 0, + 1, + 0 + ], + "q8": [ + 0, + 0, + 0 + ], + "u": 1, + "x": 1 + }, + { + "incoming": { + "-1,0,8": [ + 0, + 0, + 0 + ], + "0,-1,8": [ + 1, + 0, + 1 + ], + "0,0,7": [ + 0, + 0, + 0 + ], + "0,0,9": [ + 0, + 1, + 0 + ], + "0,1,8": [ + 0, + 0, + 0 + ], + "1,0,8": [ + 1, + 1, + 0 + ] + }, + "mR": 1, + "mY": 0, + "old_local": [ + 0, + 1, + 0 + ], + "q8": [ + 0, + 0, + 0 + ], + "u": 1, + "x": 1 + }, + { + "incoming": { + "-1,0,8": [ + 1, + 1, + 0 + ], + "0,-1,8": [ + 1, + 0, + 1 + ], + "0,0,7": [ + 0, + 0, + 0 + ], + "0,0,9": [ + 0, + 1, + 0 + ], + "0,1,8": [ + 0, + 0, + 0 + ], + "1,0,8": [ + 0, + 0, + 0 + ] + }, + "mR": 0, + "mY": 1, + "old_local": [ + 0, + 1, + 0 + ], + "q8": [ + 0, + 0, + 0 + ], + "u": 1, + "x": 1 + }, + { + "incoming": { + "-1,0,8": [ + 0, + 0, + 0 + ], + "0,-1,8": [ + 1, + 0, + 1 + ], + "0,0,7": [ + 0, + 0, + 0 + ], + "0,0,9": [ + 0, + 1, + 0 + ], + "0,1,8": [ + 1, + 1, + 0 + ], + "1,0,8": [ + 0, + 0, + 0 + ] + }, + "mR": 1, + "mY": 1, + "old_local": [ + 0, + 1, + 0 + ], + "q8": [ + 0, + 0, + 0 + ], + "u": 1, + "x": 1 + } + ], + "q9_common_codes": { + "native": [ + { + "J_by_u": [ + [ + 0 + ], + [ + 5 + ] + ], + "codes": [ + 0, + 3 + ] + }, + { + "J_by_u": [ + [ + 6 + ], + [ + 0 + ] + ], + "codes": [ + 1, + 2 + ] + }, + { + "J_by_u": [ + [ + 2 + ], + [ + 1 + ] + ], + "codes": [ + 2, + 1 + ] + }, + { + "J_by_u": [ + [ + 7 + ], + [ + 2 + ] + ], + "codes": [ + 3, + 0 + ] + }, + { + "J_by_u": [ + [ + 4 + ], + [ + 4 + ] + ], + "codes": [ + 4, + 6 + ] + }, + { + "J_by_u": [ + [ + 3 + ], + [ + 3 + ] + ], + "codes": [ + 5, + 7 + ] + }, + { + "J_by_u": [ + [ + 5 + ], + [ + 6 + ] + ], + "codes": [ + 6, + 4 + ] + }, + { + "J_by_u": [ + [ + 1 + ], + [ + 7 + ] + ], + "codes": [ + 7, + 5 + ] + } + ], + "q8_intervention": [] + }, + "q9_table_order": "lexicographic x,u,p,J; code=4A+2B+D", + "q9_tables": { + "native": [ + 0, + 7, + 2, + 5, + 4, + 6, + 1, + 3, + 0, + 7, + 2, + 5, + 4, + 6, + 1, + 3, + 2, + 1, + 0, + 7, + 6, + 3, + 4, + 5, + 2, + 1, + 0, + 7, + 6, + 3, + 4, + 5, + 3, + 5, + 1, + 7, + 6, + 4, + 2, + 0, + 3, + 5, + 1, + 7, + 6, + 4, + 2, + 0, + 1, + 2, + 3, + 5, + 4, + 0, + 6, + 7, + 1, + 2, + 3, + 5, + 4, + 0, + 6, + 7 + ], + "q8_intervention": [ + 0, + 7, + 2, + 5, + 4, + 6, + 1, + 3, + 4, + 2, + 7, + 1, + 0, + 3, + 5, + 6, + 6, + 4, + 5, + 3, + 2, + 7, + 1, + 0, + 2, + 1, + 0, + 7, + 6, + 3, + 4, + 5, + 6, + 1, + 5, + 2, + 3, + 0, + 7, + 4, + 3, + 5, + 1, + 7, + 6, + 4, + 2, + 0, + 1, + 2, + 3, + 5, + 4, + 0, + 6, + 7, + 4, + 6, + 7, + 0, + 1, + 5, + 2, + 3 + ] + }, + "q9_target_matches": { + "clean_A": { + "0,0": [], + "0,1": [], + "1,0": [], + "1,1": [] + }, + "clean_B": { + "0,0": [], + "0,1": [], + "1,0": [], + "1,1": [] + }, + "mixer": { + "0,0": [], + "0,1": [], + "1,0": [], + "1,1": [] + } + }, + "schema": "oi.q8-next-interface.v9", + "verdict": { + "joint_history": "separate_obligation", + "late_q8_two_code": "excluded", + "native_two_code": "exists", + "reset": "not_constructed" + } +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/COROLLARY.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/COROLLARY.md new file mode 100644 index 000000000..d856d51e2 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/COROLLARY.md @@ -0,0 +1,62 @@ +# Separate deduction: ninth-tick history and fresh-bit refinement + +This deduction is authored during the separate review. It is additional to, +and not attributed to, the author checkpoint +`328b74b88eaeddc798bf4693af78a571bf429787`. The review verdict on that checkpoint +covers its pointwise masked route. This note applies the chronological proof +to its explicit new source and readiness. + +Use the seven-port bank and fixed access convention in +`../../history_v9/REPORT.md`, with its last time changed from R+8 to L=R+9. +Keep the same initial-coordinate formula for each port and every tick after +its informative deadline. The bank now contains 2P+6d+63 triples, requiring +6P+18d+189 bits; 189 are after R and 21 are additional to the eighth-tick +history audit. These remain stipulated initial independent fair resources. + +The current q9 ready ball has radius L; its previous ball has radius L-1. +The exact bank-to-q9 distance slack formulas are unchanged from the eighth +tick when q8,L8 are replaced by q9,L9: they are t-a_i for ports 0,2,3,5, +t+8T for port 1, t+2T-P for port 4, and 12R-t for port 6. Each is positive. +All inherited ready constraints are preserved and the new ball contains the +previous outward balls. The new source J=(0,S,S+154) is disjoint from every +bank family and belongs to the explicitly exempt current boundary. Thus the +added initial pins preserve the bank's freedom. No initial block is supplied +at a later time. + +The same directed equal-time edges, 2 to 5 and 3 to 5, remain acyclic; all +other cross-arrivals are later. Unique axial first-arrival paths and the +permutation H give the same triangular bank-to-noise bijection for every +fixed complement C, including the new a-dependent J background. With N9 the +whole old noise word through L, + + Pr(N9=n | C) = 2^(-(6P+18d+189)). + +Let D be the informative older record, including both heralds and any older +allowed Y outcome y. Assume a is independent fair at the original preparation, +independent of old variables and old frontier blocks, and that readiness +preserves that independent degree of freedom. The two values of a produce +distinct J payloads for every fixed u. J cannot reach any older informative +port by its deadline, q7 by R+7, or q8 by R+8. Therefore D,y do not depend on a. +The noise-word bijection implies a stays fair conditional on D,y,N9 even +though the old used seed u need not do so. + +The reviewed pointwise route gives q9=(0,t,t), t=y XOR a. Consequently, for +either t in {0,1} and each nonzero-probability informative branch, + + Pr(N9=n, q9=(0,t,t) | D,y) + = 2^(-(6P+18d+189)-1). + +The conclusion holds on every prior herald/failure branch for which the +native-family pointwise input assumptions hold; it creates no offered carrier +on a previously terminal failure. It concerns the old seven full port +streams and this one terminal q9 read. The q9 prefix remains private under +the inherited access convention. No simultaneous outgoing y register, full +two-slice state independence, 5:3:2 sampling, new herald, or complete reset is +proved. Initial independence of a is an assumption whose physical sourcing +remains open, not an inference from its affine encoding. + +`history_corollary.py` checks actual-parameter piecewise-affine distances, +source/deadline separation, the equal-time graph and the finite conditional +masked-sign law. Its normal and optimized outputs equal +`history-corollary-result.json`. The unbounded-size history statement rests +on the displayed chronological proof, not on finite enumeration. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/INPUT-HASHES.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/INPUT-HASHES.json new file mode 100644 index 000000000..39c3bf6c0 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/INPUT-HASHES.json @@ -0,0 +1,8 @@ +{ + "REPORT.md": "019f392c4b91f278248874e8d726894b19b10f55e540a8d10f82c11ce4cb2ecb", + "checks.py": "55659ae57662ba687dba49fabf9766b0583d72f5bd441999edb0342162ac9685", + "result.json": "4bddbbeec267c831f31d8d578e9768e18f64c1319388bf9512563cae35aa6ac4", + "PROBE-PLAN.md": "db5211d66a73ed43f9af7dd80690d6e73bc068386499f9a1d85a06e17b8e3da7", + "PROVENANCE.json": "2098f1e8bc1a0c8a5f22b05a39d25852867aa79d17bfc57470b5fc271b4ab60d", + "SHA256SUMS": "2c0705b5cc1bad1595e0aa71e5bb1b97efef2df872acfe4b88e35761075c8d47" +} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/REPORT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/REPORT.md new file mode 100644 index 000000000..662859d51 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/REPORT.md @@ -0,0 +1,88 @@ +# Separate review of the native masked route + +**Verdict: accept within the stated pointwise scope; no blocking findings.** + +Reviewed author commit: +`328b74b88eaeddc798bf4693af78a571bf429787`, subtree `reset_v9/`. +The report, plan, checker, structured result, provenance and checksum file +were fetched at that immutable SHA; their Git blob IDs match the six local +files used in this review. `INPUT-HASHES.json` pins the reviewed bytes. + +The reviewer did not author the masked-route checker or report. This review +uses a separately written scalar evaluator that imports none of the author +or predecessor evaluator code. It is an internal separate-author review, +not external peer review, a Lean certificate, or an F/E attestation. + +## Findings + +1. The coupled W front is valid. At z=76, the only active first-front + predecessors are the preceding coupled ray and the origin-only lower + layer. At z=77, they are the preceding upper ray and the coupled z=76 + layer. At j=0 the W-only predecessor contributes zero by shortest-path + parity. The reviewer evaluates that spatial first-front recursion + directly through j=176 and obtains all 708 two-layer entries reported + by the corresponding recurrence. No isolated-pulse superposition is used. + +2. The giant-delay reduction is justified in the stated family. The forcing + of F0 has period 384. A forcing block is a permutation of eight triples, + so 384*840 is a sufficient F0 period. Over this period F1 is driven + periodically, and its block also permutes eight triples. Thus + 384*840^2 suffices for the joint state. P divides by this period exactly. + The separately inherited upper-strip bound 12*840^18 also divides P; + the argument applies to the complete Q/C/G/J cluster, not to four + independent pulses. The review reimplements its scalar recurrence. + +3. The actual late boundary is retained. Thirty-two scalar masked-route + diamonds reproduce q9 and all its six incoming triples and old-local + values. All sixteen q8 input/mask cases satisfy the report's displayed + incoming formulas and nonzero old-local term. Earlier qY,q7,q8 endpoints + remain intact throughout the independent calculation. + +4. The full common-code census agrees. The scalar evaluator reproduces all + 128 entries in the two native/intervention tables. The native common + pairs are (0,3),(1,2),(2,1),(3,0),(4,6),(5,7),(6,4),(7,5), using code + 4A+2B+D. No common injective code exists for the arbitrary q8.B + intervention with its past retained. In particular neither clean-A nor + clean-B targets, nor the stated standalone mixer target, supplies the + required common family. The positive route J=(u XOR a,a,u XOR a) + gives q9=(0,y XOR a,y XOR a) in every tested native x,u,mask,a case. + +5. Initial placement and resource accounting are scoped correctly. W and J + lie on q9's original-time current boundary; the depth-nine balls contain + the preceding depth-eight balls. J cannot reach q8 before R+10. The + inherited unknown previous field at the origin is outside the new + previous ball. J overwrites no inherited source: its position is beyond + the known upper sources and is an explicit new boundary exception. + The report's inherited-source and frontier checks are consistent with + these distances. The map from (u,a) to J has rank two, and for fixed u + it retains one independent a dimension; it contains neither x nor y. + This accounting does not derive a's conditional freshness physically. + +The review confirms the scoped route, not a calibrated reset. There is one +masked sign, no simultaneous outgoing y register, no 5:3:2 selector, no fair-z +output, and no native new herald/failure instrument. The report correctly +leaves whole-history freshness and complete future-boundary closure separate. +Its explicit distinction between the q8-creating boundary and the future +neighborhood is necessary and is retained. + +## Replay and additional deduction + +From this review directory in the published tree: + +```sh +python3 checks.py > /tmp/oi-masked-review.json +cmp /tmp/oi-masked-review.json result.json +python3 -O checks.py > /tmp/oi-masked-review-O.json +cmp /tmp/oi-masked-review-O.json result.json +``` + +The two runs are byte-identical. The checker reads the sibling author's +structured result for comparison and verifies its pinned input hashes; its +physical scalar computation imports no author code. + +`COROLLARY.md` and `history_corollary.py` are a **new review-side deduction**, +separate from the reviewed author claim. They apply the seven-port history +proof through R+9 and state the resulting conditional fair-bit refinement +under explicit original-time independence of a. They are not represented as +content proved by the author checkpoint or as independently reviewed by their +own author. Root integration must assess that additional deduction separately. diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/SHA256SUMS b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/SHA256SUMS new file mode 100644 index 000000000..893768b2a --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/SHA256SUMS @@ -0,0 +1,7 @@ +c66335d7ca66affe1fae399136e849c2d5fa05fecd7e73dfb80693c285490d4b REPORT.md +dfd93de0036a63f8ef412c9ba930a9992677241e554ffa7b0337489d6ed0cc0d INPUT-HASHES.json +6f22a47e4bfbb2a5acfb50a88712c61c12edc18dc105920281022a107631abc1 checks.py +0370815ac9997e6b03aff5bc7851a9a29f26dcf8f0ac14b3596d839d86a2638d result.json +7081af1d4df7ea10a4fa2e63ed3ec165f5b6f03d7c7c7df869efa84ab4dc1c48 COROLLARY.md +67c028476be9c72d119de97fbd11ea0ecb21978ee9b72243d6243cabb84fba68 history_corollary.py +9b95e0bfe1ede86a11fcf488c6d1532e388ba012cf65f985afd46c4a334e8660 history-corollary-result.json diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/checks.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/checks.py new file mode 100644 index 000000000..7a3662e33 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/checks.py @@ -0,0 +1,169 @@ +"""Separate scalar review of masked native route; no author evaluator imports.""" +from pathlib import Path +from functools import lru_cache +from itertools import product +import argparse,hashlib,json + +H=(0,2,4,7,1,3,5,6) +T=185;P=12*840**185;S=P+T;R=S+68 + +def need(b,s): + if not b:raise RuntimeError(s) + +def dist(p,q):return sum(abs(a-b) for a,b in zip(p,q)) +def hp(v,n): + for _ in range(n%12):v=H[v] + return v + +def parity(*ds): + acc=0 + for d in ds: + if acc&d:return 0 + acc|=d + return 1 + +def pack(v):return v[0]*4+v[1]*2+v[2] +def unpack(v):return(v>>2,(v>>1)&1,v&1) + +@lru_cache(None) +def lower(t,y,z,x): + # Both sources x=0 in the spatial first coordinate. At a first-front + # query all transverse and old-local terms are causally zero. + if t<0 or min(abs(y)+abs(z),abs(y+76)+abs(z-76))>t:return 0 + if t==0:return 2*x if(y,z)==(0,0) else 7 if(y,z)==(-76,76) else 0 + need(t==min(abs(y)+abs(z),abs(y+76)+abs(z-76)),'lower query stays on earliest front') + return H[lower(t-1,y-1,z,x)^lower(t-1,y+1,z,x)^lower(t-1,y,z-1,x)^lower(t-1,y,z+1,x)] + +@lru_cache(None) +def upper_direct(t,a,b,n,u,j): + if t<0 or min(a+b+abs(n+s) for s in (0,14,16,18))>t or(t-a-b-n)%2:return 0 + if t==0:return {0:4*u+1,-14:5*u,-16:3+2*u,-18:j}.get(n,0) if a==b==0 else 0 + q=0 + for k in (0,1): + for sg in(-1,1): + ab=[a,b];ab[k]+=sg;aa,bb=sorted(map(abs,ab),reverse=True) + q^=upper_direct(t-1,aa,bb,n,u,j) + q^=upper_direct(t-1,a,b,n-1,u,j)^upper_direct(t-1,a,b,n+1,u,j) + return upper_direct(t-2,a,b,n,u,j)^H[q] + +@lru_cache(None) +def strip(u,j): + v={} + def get(e,a,b,n): + a,b=sorted((abs(a),abs(b)),reverse=True) + if e<0 or a+b>e or(e-a-b)%2 or e+a+b>18:return 0 + return v[e,a,b,n] + for e in range(19): + for a in range(e+1): + for b in range(a+1): + if a+b>e or(e-a-b)%2 or e+a+b>18:continue + v[e,a,b,0]=upper_direct(e,a,b,0,u,j) + for n in range(1,254+(18-e)//2): + inputs=get(e,a,b,n-1)^get(e-2,a,b,n+1) + for da,db in((-1,0),(1,0),(0,-1),(0,1)): + inputs^=get(e-1,a+da,b+db,n) + v[e,a,b,n]=get(e-2,a,b,n)^H[inputs] + return v + +def ball(r,c=(0,0,9)): + for a in range(-r,r+1): + for b in range(-r+abs(a),r-abs(a)+1): + for d in range(-r+abs(a)+abs(b),r-abs(a)-abs(b)+1): + yield(c[0]+a,c[1]+b,c[2]+d) + +@lru_cache(None) +def diamond(x,u,my,mr,j,intervention=-1): + table=strip(u,j) + def initial(t,v): + a,b=sorted(map(abs,v[:2]),reverse=True);n=R-v[2];e=t-n + val=table[e,a,b,n-P] if e>=a+b and(e-a-b)%2==0 else 0 + for q,z in [((0,-S,-68),x),((0,S,-68),my^mr),((T,P,-68),my),((-T,P,-68),mr)]: + ds=[abs(a-b) for a,b in zip(v,q)] + if sum(ds)<=t: + need(sum(ds)==t,'lower first arrival');val^=hp(2*z,t) if parity(*ds) else 0 + if t==R-1 and v in ((0,-9,8),(0,-10,9)): + need(val==0 or val==2*x,'entry excludes upper sources') + yy,zz=S+v[1]-P,68+v[2] + val=lower(yy+zz,yy,zz,x) + return val + old={v:initial(R-2,v) for v in ball(9)};cur={v:initial(R-1,v) for v in ball(10)};record={} + for k in range(10): + nxt={} + for v in ball(9-k): + ns=0 + for axis in range(3): + for d in(-1,1): + w=list(v);w[axis]+=d;ns^=cur[tuple(w)] + nxt[v]=old[v]^H[ns] + if k in(0,7,8): + want={0:4*x+2+(x^u),7:x^u,8:2*(x^u)}[k] + need(nxt[0,0,k]==want,'earlier endpoint preserved') + if k==8 and intervention>=0:nxt[0,0,8]=2*intervention + record[k]=nxt;old,cur=cur,nxt + return cur[0,0,9],record + +def main(): + ap=argparse.ArgumentParser();ap.add_argument('--author',type=Path,default=Path(__file__).resolve().parent.parent);ar=ap.parse_args().author + expected=json.loads((Path(__file__).resolve().parent/'INPUT-HASHES.json').read_text()) + need(all(hashlib.sha256((ar/name).read_bytes()).hexdigest()==digest for name,digest in expected.items()),'reviewed author hashes') + published=json.loads((ar/'result.json').read_text()) + masked=0 + for x,u,my,mr,a in product((0,1),repeat=5): + j=pack((u^a,a,u^a));ans,rec=diamond(x,u,my,mr,j) + need(ans==3*(x^u^a),'independent masked route');masked+=1 + F=lambda mask:pack((u^mask,1^mask,1^u^mask^(u&mask))) + boundary={(-1,0,8):F(mr),(1,0,8):F(my), + (0,-1,8):pack((x^u^(x&u),0,1)),(0,1,8):F(my^mr), + (0,0,7):x^u,(0,0,9):pack((1^u,u,1^u))} + need(all(rec[7][pos]==want for pos,want in boundary.items()),'displayed q8 incoming formulas') + need(rec[6][0,0,8]==pack((1^u,1,0)),'displayed q8 old local') + row=next(z for z in published['native_masked_route']['boundary'] if(z['x'],z['u'],z['mY'],z['mR'],z['a'])==(x,u,my,mr,a)) + need(rec[7][0,0,9]==pack(row['old_local']),'masked old-local') + for key,v in row['incoming'].items():need(rec[8][tuple(map(int,key.split(',')))]==pack(v),'masked incoming') + compare=0;native_by_u=[];late_by_u=[] + for mode in('native','q8_intervention'): + by_u=[] + for u in(0,1): + candidates={} + for j in range(8): + bins={0:set(),1:set()} + for x,p in product((0,1),repeat=2): + ans,_=diamond(x,u,0,0,j,p if mode!='native' else -1) + idx=((x*2+u)*2+p)*8+j + need(ans==published['q9_tables'][mode][idx],'scalar author table');compare+=1 + bins[x^u if mode=='native' else p].add(ans) + if all(len(s)==1 for s in bins.values()): + key=tuple(next(iter(bins[k])) for k in(0,1)) + if key[0]!=key[1]:candidates.setdefault(key,[]).append(j) + by_u.append(candidates) + common=sorted(set(by_u[0])&set(by_u[1])) + need(common==[tuple(z['codes']) for z in published['q9_common_codes'][mode]],'independent common-code census') + if mode=='native':native_by_u=common + else:late_by_u=common + # Independent first-front grid checks the full reduced indices used by + # the giant-delay proof, without importing the author's ray recurrence. + front_rows=0 + for x in(0,1): + f0=hp(2*x,75)^hp(7,75);f0=H[f0];f1=H[f0] + for y in range(177): + if y: + f0=H[f0^(hp(2*x,y+75) if not y&75 else 0)];f1=H[f1^f0] + need(f0==lower(y+76,y,76,x) and f1==lower(y+77,y,77,x),'full reduced two-layer front') + front_rows+=2 + # Source geometry, seed rank, and existing endpoint/frontier separation. + q9=(0,S,77);J=(0,S,S+154);W=(0,-76,76) + need(dist(J,q9)==R+9 and dist(W,q9)==R+9,'new boundary source distances') + need(dist(J,(0,S,76))==R+10,'q8 no influence') + need(dist((0,0,0),q9)>R+8,'previous unknown outside') + need(len({pack((u^a,a,u^a)) for u,a in product((0,1),repeat=2)})==4,'rank two affine u,a map') + need(all(len({pack((u^a,a,u^a)) for a in(0,1)})==2 for u in(0,1)),'one new independent seed dimension') + need(P%(384*840**2)==0 and P%(12*840**18)==0,'actual period divisibility') + result={'schema':'oi.masked-route.separate-review.v1','verdict':'PASS_SCOPED', + 'author_commit':'328b74b88eaeddc798bf4693af78a571bf429787','masked_scalar_diamonds':masked, + 'q8_boundary_assignments':16, + 'scalar_table_entries':compare,'independent_reduced_front_entries':front_rows, + 'common_native_code_pairs':[list(z) for z in native_by_u],'common_late_socket_codes':late_by_u, + 'source_geometry_and_affine_rank':'PASS','scope':'Pointwise native-family masked route; no full reset or conditional freshness claim'} + print(json.dumps(result,sort_keys=True,separators=(',',':'))) + +if __name__=='__main__':main() diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/history-corollary-result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/history-corollary-result.json new file mode 100644 index 000000000..bcd8fdeee --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/history-corollary-result.json @@ -0,0 +1 @@ +{"actual_breakpoint_cases":14,"joint_probability":"2^(-(6*P+18*d+189)-1)","post_R_bank_bits":189,"same_time_edges":[[2,5],[3,5]],"schema":"oi.masked-route.history-corollary.v1","scope":"Assumes independent free a at original preparation; old seven ports plus terminal q9 only; no whole-boundary or reset claim","verdict":"PASS_CONDITIONAL_COROLLARY_CONTROLS","whole_noise_bits":"6*P+18*d+189"} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/history_corollary.py b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/history_corollary.py new file mode 100644 index 000000000..8170b16a3 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/history_corollary.py @@ -0,0 +1,41 @@ +"""Geometry and finite conditional law for the separate ninth-tick corollary.""" +import json +from itertools import product +from fractions import Fraction +T=185;P=12*840**185;S=P+T;R=S+68;L=R+9 +ports=[(0,T,0),(0,0,-8*T),(T,P,0),(-T,P,0),(4*T,P,0),(0,S,0),(12*R,0,0)] +deadlines=[T,T,S,S,S,S,R] +dirs=[(0,-1,0),(0,0,-1),(0,1,0),(0,1,0),(0,1,0),(0,1,0),(-1,0,0)] +J=(0,S,S+154);q9=(0,S,77) +def dist(p,q):return sum(abs(a-b) for a,b in zip(p,q)) +def need(b,s): + if not b:raise RuntimeError(s) +cases=0;edges=set() +for i,(p,e,a) in enumerate(zip(ports,dirs,deadlines)): + axis=next(j for j in range(3) if e[j]);times={a+1,L} + for q in ports+[q9,J]: + t=(q[axis]-p[axis])*e[axis] + if a+1<=t<=L:times.add(t) + for t in sorted(times): + f=tuple(x+t*d for x,d in zip(p,e)) + need(dist(f,p)==t,'own path') + need(dist(f,q9)>L,'endpoint readiness preserves bank') + need(f!=J,'new J does not replace a bank block') + for j,q in enumerate(ports): + dd=dist(f,q);need(dd>=t,'chronological ordering') + if i!=j and dd==t:need(ia for p,a in zip(ports,deadlines)),'J cannot affect informative deadlines') +need(dist(J,(0,S,75))>R+7 and dist(J,(0,S,76))>R+8,'J cannot affect earlier Y records') +need(dist(J,q9)==L,'new source at explicit boundary') +need(L<=2*R,'existing no-wrap horizon') +# Uniformity after arbitrary old-herald reweighting is pointwise in u,y: +# each fixed pair has exactly one a for either possible masked sign. +for u,y in product((0,1),repeat=2): + law={} + for a in(0,1): + j=(u^a,a,u^a);need(j[1]==a,'conditional seed is retained injectively') + t=y^a;law[t]=law.get(t,Fraction())+Fraction(1,2) + need(law=={0:Fraction(1,2),1:Fraction(1,2)},'fair masked sign given old variables') +print(json.dumps({'schema':'oi.masked-route.history-corollary.v1','verdict':'PASS_CONDITIONAL_COROLLARY_CONTROLS','actual_breakpoint_cases':cases,'same_time_edges':[list(z)for z in sorted(edges)],'post_R_bank_bits':189,'whole_noise_bits':'6*P+18*d+189','joint_probability':'2^(-(6*P+18*d+189)-1)','scope':'Assumes independent free a at original preparation; old seven ports plus terminal q9 only; no whole-boundary or reset claim'},sort_keys=True,separators=(',',':'))) diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/result.json b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/result.json new file mode 100644 index 000000000..99a4b42b2 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/reset_v9/review/result.json @@ -0,0 +1 @@ +{"author_commit":"328b74b88eaeddc798bf4693af78a571bf429787","common_late_socket_codes":[],"common_native_code_pairs":[[0,3],[1,2],[2,1],[3,0],[4,6],[5,7],[6,4],[7,5]],"independent_reduced_front_entries":708,"masked_scalar_diamonds":32,"q8_boundary_assignments":16,"scalar_table_entries":128,"schema":"oi.masked-route.separate-review.v1","scope":"Pointwise native-family masked route; no full reset or conditional freshness claim","source_geometry_and_affine_rank":"PASS","verdict":"PASS_SCOPED"} diff --git a/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/shared_v12/INTERFACE-CONTRACT.md b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/shared_v12/INTERFACE-CONTRACT.md new file mode 100644 index 000000000..038577859 --- /dev/null +++ b/verification/programmes/oi-qm/reconstruction/native-y-continuation-20261024/shared_v12/INTERFACE-CONTRACT.md @@ -0,0 +1,126 @@ +# Five-path continuation: common research interface + +24 October 2026. This fixes the comparison and productivity tests before new +bounded calculations. It does not adopt a physical premise, operational map, +access restriction, target extension or equivalence verdict. A1 and A2 remain +separate. #885 is read-only for this effort; its coordinator retains synthesis. + +## Sources and division of work + +- Native draft #910 starts at `00e85e748cf8e5ada75f4e1a22aef87eb0a823a2`. +- Architecture draft #911 starts at `088af1453efc7780187bc81f8f765f5005b91870`. +- Composition draft #912 starts at `0965d1a090140c5535f50ef17c3f582181e3b020`. +- Programme synthesis source: #885 at + `2d555f17c23bea31d32b3f5eb4c49d245b413a76`; wider inactive gates: #913. + +| Path | First concrete question | Required useful output | +| --- | --- | --- | +| Native A | Can retained previous-q9 X enter a native processing gate near the actual fresh pool? | A source-compatible native coupling witness or a precise dependence/geometry obstruction | +| Native B | Can actual fresh outputs be accepted by an existing native processing region with the stored X? | A distinct native transfer/acceptance witness or a precise failed adapter condition | +| A1 architecture | Can an explicitly different operational encoding pass the non-Clifford and full-record congruence tests? | A concrete map/operation test with coverage and availability separated; not only a definition of observational equivalence | +| A2 approximation | Can a growing finite encoding give an explicit adaptive protocol error and resource bound? | A constructive bounded protocol family, complete record/failure/timing bound and measured resource control | +| Composition | Do each candidate's actual kernels preserve the joint record/carrier interface on every branch? | Exact candidate-specific controls or a closure certificate; marginal agreement is insufficient | + +Each path has a disjoint directory under its existing guiding draft. Root +publishes safe forward checkpoints promptly before extended separate review. +Author and reviewer inputs are pinned by immutable revisions and hashes. +Every branch fixes its own bounded decision rule before computation. Avoid +broad campaigns, speculative infrastructure and repetition of settled probes. + +## Actual native input boundary + +Keep T=185, P=12*840^185, S=P+185, R=S+68, L=R+9=P+262 and +torus side 256L+64T+1. The dynamics is + + U_(t+1)(v)=U_(t-1)(v) XOR H(XOR_(w~v) U_t(w)), + H(A,B,D)=(B,D,A XOR BD). + +At time L, the retained successful phase has previous q8=(0,y,0), current +q9=(0,s,r_old), remote Z and the old/new flags. Its whole-q9 terminal X +record includes both s and r_old. The conditional post-Y weights are the +supplied calibrated target. The unchanged post-read carrier is not a valid +quantum X output. + +At time L+1, the actual previous q9 still retains (0,s,r_old). Current q8 +and q10 at (0,S,76) and (0,S,78) form the conditional fresh pool. It is +supplied by independent uniform original-time current triples at + + f8=(-(L+1),S,76), f10=(-(L+1),S,78). + +Their axial responses are separate permutations conditional on every other +initial variable. Thus Q8,Q10 are jointly uniform over64 values, independent +of that remainder and the permitted public past through L+1. This is a +conditional resource theorem with a supplied prior, not spontaneous random +creation. A globally fixed-zero complement is another initialization choice. + +The full two-slice neighborhood, sources, banks and residual workspace are +physical inputs. Other current neighbors can depend on the same pool source +triples; they cannot be declared independent merely because Q8,Q10 are fair. +Old-local terms and all six neighbors must be retained in native calculations. +No unknown s copy may be preloaded, no old reserved bank may be overwritten, +and no separately cold late-time apparatus may replace this boundary. + +At L+2, the old q9 field is no longer directly present as a stored slice. +The native inverse nevertheless gives the fixed local two-slice identity + + s=U_(L+2)(q9).B XOR XOR_(w~q9) U_(L+1)(w).D. + +The pool cells are also present in the previous slice at this cut. This +history-free seven-site coordinate map is a positive representation control; +it is not an observer operation or an implemented native predicate gate. +A later candidate must transport or explicitly re-encode the operand at its +own declared phase, rather than retrieving an unavailable historical field. + +## Fixed post-X target and physical acceptance gap + +Write Q8=(b0,b1,b2), Q10=(b3,b4,b5). At this phase the fixed selected map is + + Xnew=previous q9.B=s, Ynew=b1, Rnew=b5, Znew=b4, + K=b0+2*b2+4*b3. + +The abstract acceptance target is A=1 iff K