From dc5b4e4baa3fbcb0f5be0e5e1f9f91aad353b379 Mon Sep 17 00:00:00 2001 From: Sagar Thakrar <18622288+thakrarsagar@users.noreply.github.com> Date: Sun, 18 Oct 2026 21:03:41 +0530 Subject: [PATCH 1/7] Add independent audit of PR3647's composed R437 bit word Stdlib exact audit of PR #3647 (head 36ff4414): the helper464 GL deletion composed with #1043's helper470 deletion on selected #589, checked against both single-change controls with word semantics taken from the selected package on main and no audited code run. - F2 identity on all 659 inputs with arbitrary dirty helpers: forward column replay and reverse pull-back agree entrywise; reverse orientation and the finite H1-H5/U/J hypotheses pass for all four words. - #589 + E464 + E470 with rebuilt D0/C equals the PR's R437 except stats metadata; the E470 control reproduces #1043's FRAME-PATHS.json. - Aligned traces: E470 changes no projected value; E464 changes only helper 340's dirt column at four A gates and their C inverses; the composed trace equals the E464 control's with h470 deleted. - All 966 SOURCE write gates and every SOURCE climb match #589; SOURCE77 is clean at frame 186, reached at A426. - Profile {1:1320,2:1344,3:77,4:43,5:102,6:11,7:18}, mass 5113, deltas additive; the PR's 27,132-record stream is byte-identical to an independent lowering and replays in both orientations. - 18 mutants rejected; the early-read mutant is caught only by the chronology check. No kappa claim; c is not validated (hosting/invoice not rederived). Co-Authored-By: Claude Opus 5.5 --- .../README.md | 259 +++++ .../RESULT.json | 1004 +++++++++++++++++ .../SOURCES.json | 76 ++ .../TASK.json | 78 ++ .../VERIFY.json | 22 + .../compose.py | 74 ++ .../inputs/FINAL-R438-WORD.json.gz | Bin 0 -> 42300 bytes .../inputs/R437-COMPOSED-WORD.json.gz | Bin 0 -> 42280 bytes .../inputs/R437-RECORDS.bin.gz | Bin 0 -> 80255 bytes .../records.py | 94 ++ .../verify.py | 424 +++++++ .../wordsem.py | 308 +++++ 12 files changed, 2339 insertions(+) create mode 100644 research/r437-composed-bit-independent-audit/README.md create mode 100644 research/r437-composed-bit-independent-audit/RESULT.json create mode 100644 research/r437-composed-bit-independent-audit/SOURCES.json create mode 100644 research/r437-composed-bit-independent-audit/TASK.json create mode 100644 research/r437-composed-bit-independent-audit/VERIFY.json create mode 100644 research/r437-composed-bit-independent-audit/compose.py create mode 100644 research/r437-composed-bit-independent-audit/inputs/FINAL-R438-WORD.json.gz create mode 100644 research/r437-composed-bit-independent-audit/inputs/R437-COMPOSED-WORD.json.gz create mode 100644 research/r437-composed-bit-independent-audit/inputs/R437-RECORDS.bin.gz create mode 100644 research/r437-composed-bit-independent-audit/records.py create mode 100644 research/r437-composed-bit-independent-audit/verify.py create mode 100644 research/r437-composed-bit-independent-audit/wordsem.py diff --git a/research/r437-composed-bit-independent-audit/README.md b/research/r437-composed-bit-independent-audit/README.md new file mode 100644 index 0000000000..7561af4f51 --- /dev/null +++ b/research/r437-composed-bit-independent-audit/README.md @@ -0,0 +1,259 @@ +# Independent audit of PR #3647's composed R437 bit word + +PR #3647 composes two helper deletions on the selected #589 bit word. The +helper464 deletion re-synthesizes one D4 node with a ten-gate GL block. The +helper470 deletion comes from #1043 and replaces a carrier with a late read of +SOURCE77. This package checks the resulting 659-input R437 word with a +separately written exact interpreter, against both single-change controls. +**At head `36ff4414` the word passes every check**: + +- **Identity.** Over F2 the word maps every input `(x, y, h)` to + `(x, y + x, h)`. Here `x` is the 111 SOURCEs, `y` the 111 targets and `h` + the 437 helpers with arbitrary dirty contents. +- **Composition.** The edits compose with no interaction beyond the two + single-change controls. +- **SOURCE77 read.** The late read at frame 186 is in chronological order, and + no SOURCE frame move occurs earlier than in #589. +- **Profile.** The literal word gives the claimed local paid profile. +- **Records.** The PR's 27,132-record local-call stream is byte-identical to an + independent lowering of the audited word. + +This is a finite exact **audit** of one local supplier change. It makes no κ +claim and changes no frontier, and it does **not** validate the bit coefficient +c = 0.001736628253427115. The hosted matching, the owner placements of the +125,856 helper occurrences, and the invoice and price are not rederived here +(see Scope). The selected record stays `0.001672660197076918`. + +Reproduce from the repository root (standard library only, about 10 s): + +```sh +python3 -I -B research/r437-composed-bit-independent-audit/verify.py +``` + +Expected output: `PASS_INDEPENDENT_R437_WORD_AUDIT cpu `. The command +recomputes everything and requires byte equality with the committed +[RESULT.json](RESULT.json). `--write` regenerates it. + +## Why it matters, and to whom + +The selected #589 bit supplier caps the retained balanced transfer at +a/(1+a) = 0.0017304274698236. The pending complex chain of PR #3653 and +PR #3682 claims κ = 0.0017304189, which is 8.57e-9 below that cap. **If that +chain is admitted, the bit primitive binds**, and further gains need an admitted +better bit supplier. PR #3647 makes the highest open bit claim: +c = 0.001736628253427115, cap 0.0017336176. Before this package it had author +checks only. PR #3668 (jwr404) checks only the histogram-to-c arithmetic. This +package checks the word and its record stream, which are the local inputs of +PR #3647's invoice. The relevance is conditional: today the complex side binds. + +## What was audited + +- **Object.** [PR #3647](https://github.com/CrocSwap/integer-mult-bounds/pull/3647) + (ai-nanachi), head `36ff441479ff9c7e70d83f0becccd44da50effb8`, package + `research/bit-p111-r437-gl464-470-20261018`. The vendored copies in + [inputs/](inputs/) are the R437 word (`data/r0042/R437-COMPOSED-WORD.json.gz`), + its R438 helper464-only ancestor (`data/r0028/FINAL-R438-WORD.json.gz`) and + the R437 record stream (`data/r0042/R437-RECORDS.bin`, stored gzipped). All + are pinned by Git blob and SHA256 in [SOURCES.json](SOURCES.json). +- **Reference word.** The selected #589 word on main: + `research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz`. The PR's + `data/SELECTED589.json.gz` is byte-identical to it. +- **helper470 control.** #1043 (Ali Romman), archive-merged on main as + `research/bit-boundary-persistence/`. The control is rebuilt here from the + edit described in its PROOF.md, then compared with its `FRAME-PATHS.json`. +- **Word semantics.** These come from the selected #589 package on main: the + format description in `code/xcheck_p.py` and the D0/C construction in + `code/pwordl.py`. The same applies to the record layout used by the selected + nine-stage caller (`vendor/pr510/.../global_k.py`). **No code from PR #3647, + #1043 or any inherited checker is imported or run.** The only PR data used + are the audited files themselves, including the ten-gate GL node, which is + read from the PR's R438 word. + +## The two edits, in #589 numbering + +| Edit | Removed | Added | +|---|---|---| +| E464 (PR #3647 ancestry) | `A[224] = [56, h464, [x54]]`; the three-gate D4 node `A[1986..1988]` at frame 506, two of whose gates read h464 | ten gates at frame 506 on h340, h241 and h349, which read x6, x56, h233, h319, h322, h462 and h463 (25 operands) | +| E470 (#1043) | `A[230] = [79, h470, [x77]]` and `A[1993] = [79, h444, [h470]]` | `[186, h444, [x77]]` in place of `A[1993]` | + +In both edits the deleted helper is removed, higher ids are renumbered, D0 is +rebuilt from the raw word, and C is rebuilt as the literal reverse of every A/B +gate whose destination is a source or helper, at the full frame. + +## Results (all exact; numbers from RESULT.json) + +| Word | Inputs | Gates D/A/B/C | Scalar ADDs | Local profile | Mass | +|---|---:|---|---:|---|---:| +| selected #589 | 661 | 111/2075/712/2574 | 24,305 | {1:1323, 2:1342, 3:79, 4:44, 5:102, 6:11, 7:19} | 5,129 | +| #589 + E464 (= PR R438) | 660 | 111/2081/712/2580 | 24,265 | {1:1322, 2:1342, 3:78, 4:43, 5:102, 6:11, 7:19} | 5,121 | +| #589 + E470 (#1043 R438, rebuilt) | 660 | 111/2074/712/2573 | 24,248 | {1:1321, 2:1344, 3:78, 4:44, 5:102, 6:11, 7:18} | 5,121 | +| **R437 (PR #3647)** | **659** | 111/2080/712/2579 | **24,208** | **{1:1320, 2:1344, 3:77, 4:43, 5:102, 6:11, 7:18}** | **5,113** | + +1. **Identity, two methods.** The primary method is a forward replay. Register + `r` starts as the column bitset `1 << r`, so one pass covers every input + column over F2. Every operand makes a strictly increasing, nested climb to + the gate's frame. Dimensions and nesting are computed from the E8 line + vectors over Q. The final frames are FULL for sources and helpers and t-perp + for targets. The second method is a reverse pull-back, the transpose action + with gates in reverse order. It yields, for each input, the set of outputs + that depend on it. For all four words both methods give `(x, y + x, h)`, and + they agree on every entry of the 659 × 659 matrix (660², 661² for the + controls). The replay is symbolic on a basis and every gate is F2-linear, so + this proves the identity for all input values. It is not a sample. The + literal reverse orientation also passes: gates are reversed, and frames + descend, which is a climb of the orthogonal complement. Over F2 it is implied + by the forward check. All 636 frames are closed in the live lines + (70,596 memberships). The finite hypotheses H1–H5 of the selected + interleaved lemma and its U/J conclusions hold. D0 and C are equal to the + rebuilt ones. +2. **Composition.** Applying E464 and E470 literally to #589 and rebuilding D0 + and C gives the PR's R437 word. All fields are equal; only the `stats` + metadata differs (`extra_carriers` 10 → 8). E464 alone gives the PR's R438 + word. E470 alone reproduces #1043's published results: + - every frame path in its `FRAME-PATHS.json` (660 candidate and 661 baseline + paths); + - its D0 change from 18,085 to 18,030 ADDs; + - its 2,573-gate C; + - its profile table. +3. **No interaction.** Traces are aligned gate by gate across about 5,350 + common gates per comparison. The deleted helpers' columns are projected + away, and survivors are renamed. + - **E470** changes no value at all. + - **E464** changes no clean (x or y) column anywhere. It changes only helper + 340's arbitrary-dirt column, at four A gates of #589: `A[2044]` (h340), + `A[2047]` (h241), and `A[2068]` and `A[2070]`, which write the retained + totals h477 and h478. The same column also changes at the four literal + inverses of these gates in C. + - **Composed word.** Its trace equals the E464 control's trace with h470's + column deleted, at all 5,369 aligned gates. It equals the E470 control's + trace with h464's column deleted, except at exactly those eight gates. + - **Profile deltas** add exactly: E464 gives −e1−e3−e4, E470 gives + −2e1+2e2−e3−e7, and R437 − #589 = −3e1+2e2−2e3−e4−e7. R437 − R438(E464) + is −2e1+2e2−e3−e7 (mass −8), as the PR states. + - **Compensation.** R437's D0 is the E464 control's D0 with column h470 + deleted. For E464 alone, D0 is **not** a column deletion of #589's D0, + because the h340 dirt reaches two COPY sources. +4. **SOURCE boundaries and chronology.** + - **Source writes.** There are A0/B483/C483 source writes. All 966 + source-write gates hold, before and after, the same full rows as in #589, + with the deleted dirt columns projected away. + - **Climbs.** Every one of the 111 SOURCEs climbs through the same frames as + in #589, between the same unchanged gates. + - **Access histories** differ only at the edits. x54 loses its read at + `A[224]`. x77 loses its read at frame 79 at `A[230]` and gains the frame-186 + read. The x6 and x56 reads move inside the re-synthesized node's window. + - **The new read.** At the frame-186 read (lines {33, 77}, rational dimension + 2), x77 holds exactly its input column, with no dirt. It reached frame 186 + at `A[426]`, as in #589. Its later climbs, at B289, B525, B636 and the C + inverse of B525, are unchanged. The receiver's path is + 0 → 186 → 509 → 392 → 513 → FULL, where #589 has 0 → 79 → 509 → …. +5. **Records.** The PR's stream has 27,132 records (651,168 bytes, SHA256 + `caeb2eb0…de13cb`). It equals byte for byte a lowering written here from the + word semantics: lazy climbs, one ADD per operand, one COPY/ADD/ERASE episode + per retained total, then the final climbs. The stream is replayed in both + orientations with the record semantics of the selected nine-stage caller. + Both pass all 659 columns with 24,208 ADDs, 9 rank-7 COPYs and the local + profile above. +6. **Published whole profile, decomposed.** PR #3647 reports the whole profile + `{1:380160, 2:400864, 3:22176, 4:26592, 5:29376, 6:17376, 7:26496, 34:64, 42:352}`. + It equals 288 local calls of the audited profile plus, per replica, the idle + children `{2:431, 4:444, 6:444, 7:666, 34:2, 42:11}`. Its rank mass is + 1,808,352 = 64·28,416 − 10,272, and 125,856 = 437 × 288 helper occurrences + are hosted. This is arithmetic only: the idle part is taken as published. + +### Mutants (each must be rejected; one positive control must pass) + +| Mutant | Outcome | +|---|---| +| D0 dropped | identity fails on 111 columns | +| C dropped | identity fails on 545 columns | +| #589's D0 reused (deleted helpers dropped, renamed) | identity fails on 54 columns | +| #589's C reused (same projection) | identity fails on 3 columns | +| replacement read at frame 79 | illegal climb: x77 would descend from 186 to 79 | +| replacement read moved early, to the removed birth | **F2 identity and frame legality still pass**; rejected only by the SOURCE chronology check (x77 reaches 186 before `A[426]`) | +| replacement read dropped | identity fails on 55 columns | +| naive helper464 deletion (old node, h464 operands dropped) | identity fails on 54 columns | +| each of the ten GL gates dropped in turn | identity fails on 53–63 columns | +| the composed word itself (positive control) | accepted | + +The early-read row shows that the identity check alone does not enforce SOURCE +chronology. The chronology comparison with #589 is a separate, load-bearing +check. + +## Scope, inherited assumptions and unresolved obligations + +These results are checked: + +- the local F2 identity and frame legality of the literal R437 word and both + controls; +- deletion composition at gate and trace level; +- SOURCE write boundaries and chronology against #589; +- the local paid profile and scalar ADD counts; +- the byte binding of the record stream to the word. + +These are **not** checked, and remain load-bearing for any use of c: + +- **Hosting.** The nine-window matching in `GLOBAL-TEMPLATE.json.gz` is not + rederived. That covers the 3,933 slots per replica, the legality of the + owner route of each of the 125,856 hosted helper occurrences, and the claimed + pending-interval windows. The idle part of the whole profile is taken as + published. +- **Invoice and price.** Prefix, two-level and ROW precision, selectors, the + fallback, c and the next-grid-point rejection are not checked. PR #3668 + checks only the histogram-to-c arithmetic. +- **Native transport.** The rational projector identities (D_F, P_A P_B) that + PR #3647's R437-LOCAL proof states are not checked beyond the frame + nesting/dimension model used here. +- **Inherited assumptions.** These are unchanged from selected #589: the + all-size bit/Gaussian compiler, the common-label, mutable-SOURCE and + target-label realization, whole-call correlated hosting, + tape/precision/ROW, and the analytic H1–H5 lemma. Only its finite hypotheses + are evaluated here, not its proof. + +This is a finite certificate for one local word and its record stream. It is +not a scoped all-size proof or a multiplication theorem, and it does not admit +PR #3647. + +## Open next questions + +[TASK.json](TASK.json) structures these. + +1. **Is the R437 hosted matching legal?** The question is whether each of the + 3,933 (stage, helper) slots per replica lies in an idle child that is still + pending at that stage, with disjoint offsets, giving the remainders + `{2:431, 4:444, 6:444, 7:666, 34:2, 42:11}`. This is the remaining + word-to-invoice step. First step: rederive the nine windows' stage lists + from the template schedule and the hosting rule of selected #589 (#442), then + replay the slot list. +2. **Is the dirt-only change to two COPY sources contract-neutral?** E464 + changes the arbitrary-dirt content of the retained totals h477 and h478 (two + rank-7 captures) by helper 340's column, while their clean rows are + unchanged. The question is whether the inherited capture contract (one paid + transform plus linear private-stream discard) is provably independent of + the dirt pattern of a captured total. First step: state the native capture + lemma's hypotheses and check them on these two captures. +3. **Price, once hosting is checked.** Rerun an independent exact price engine + on the full R437 paid profile, with the inherited surcharges, and confirm + c together with the next-grid-point rejection. + +## Predecessors and credit + +- **PR #3647** (ai-nanachi; substantial OpenAI Codex assistance per its + README): the R437 composition, the helper464 GL edit and the record stream + audited here. +- **#1043** (Ali Romman): the helper470 deletion and its source-boundary proof + on main. Its other replays (PR #1302, PR #2971, PR #2653) cover helper470 + alone and are cited, not redone. +- **Selected #589 package** (eumemic, DreamingOfClouds and the credited chain in + its NOTICE): the word format and semantics. +- **PR #3668** (jwr404): histogram-to-c arithmetic, not repeated here. +- This loop's earlier audit, PR #3687, supplied the audit pattern only. It + covered a different, complex supplier. + +## Provenance + +Prepared by Sagar Thakrar (thakrarsagar) with substantial AI assistance from +Claude (Anthropic, Claude Opus 5.5). Base commit +`20ecf2891d80b5acf18d980b2164fb44ea7faa90`. The checks are finite exact +computations in Python 3 (standard library). No human or formal-kernel review +is claimed. Apache-2.0. diff --git a/research/r437-composed-bit-independent-audit/RESULT.json b/research/r437-composed-bit-independent-audit/RESULT.json new file mode 100644 index 0000000000..64a2ccca02 --- /dev/null +++ b/research/r437-composed-bit-independent-audit/RESULT.json @@ -0,0 +1,1004 @@ +{ + "compensation_facts": { + "e464_D0_is_589_D0_with_column_deleted": false, + "e470_D0_is_589_D0_with_column_deleted": true, + "e470_D0_is_C464_D0_with_column_deleted": true + }, + "composition": { + "c464_equals_pr_R438_except_stats": true, + "canonical_sha256": { + "c470_rebuilt": "c5846159a51ae8bab3247f85200eaa4ca84d738f1c7bd6f128ef85e0d749dd48", + "pr_R437": "da77deaf11368d016622348227657b98404b6afbc7e4f3d6fe9a246baae0dcce", + "pr_R438": "7e6d45542f8f0f9879d82bac1ce701a592b7ba87cd808f6cab28eb0bce494c12", + "w589": "5642fd0e35a1acc11acff8d0c08350c1617e95f310d4d35ad63a651f9eeeba0b" + }, + "composed_equals_pr_R437_except_stats": true, + "e464_node": [ + [ + 506, + 340, + [ + 349 + ] + ], + [ + 506, + 241, + [ + 349 + ] + ], + [ + 506, + 241, + [ + 340 + ] + ], + [ + 506, + 340, + [ + 349 + ] + ], + [ + 506, + 349, + [ + 340 + ] + ], + [ + 506, + 340, + [ + 349 + ] + ], + [ + 506, + 340, + [ + 241 + ] + ], + [ + 506, + 241, + [ + 6, + 56, + 233, + 319, + 322, + 463 + ] + ], + [ + 506, + 340, + [ + 6, + 56, + 322, + 462, + 463 + ] + ], + [ + 506, + 349, + [ + 6, + 56, + 233, + 319, + 322, + 462, + 463 + ] + ] + ], + "edit_windows_589_A": { + "e464": [ + 224, + [ + 1986, + 1989 + ] + ], + "e470": [ + 230, + 1993 + ] + }, + "stats_589": { + "extra_carriers": 10, + "junk_wires": 0, + "rcv_flips": 10 + }, + "stats_pr_R437": { + "extra_carriers": 8, + "junk_wires": 0, + "rcv_flips": 10 + }, + "stats_pr_R438": { + "extra_carriers": 9, + "junk_wires": 0, + "rcv_flips": 10 + } + }, + "cpu_seconds_note": "not recorded (platform dependent)", + "frame_closure_memberships": 70596, + "frame_paths_1043": { + "c470_equals_candidate": true, + "selected589_equals_baseline": true + }, + "frames": 636, + "mutants": [ + { + "expect_rejected": true, + "legal_and_f2_identity": false, + "mutant": "drop_D0", + "note": "no frame-zero dirt compensation", + "reason": "identity fails on 111 columns", + "rejected": true + }, + { + "expect_rejected": true, + "legal_and_f2_identity": false, + "mutant": "drop_cleanup_C", + "note": "no literal reverse cleanup", + "reason": "identity fails on 545 columns", + "rejected": true + }, + { + "expect_rejected": true, + "legal_and_f2_identity": false, + "mutant": "stale_D0_from_589", + "note": "selected D0 reused with the deleted helpers dropped", + "reason": "identity fails on 54 columns", + "rejected": true + }, + { + "expect_rejected": true, + "legal_and_f2_identity": false, + "mutant": "stale_C_from_589", + "note": "selected C reused with the deleted helpers dropped", + "reason": "identity fails on 3 columns", + "rejected": true + }, + { + "expect_rejected": true, + "legal_and_f2_identity": null, + "mutant": "late_read_at_frame79", + "note": "replacement read at the removed carrier frame 79 (descends SOURCE77)", + "reason": "legality: illegal climb of register 77 from frame 186 to 79 at ('A', 1998)", + "rejected": true + }, + { + "expect_rejected": true, + "legal_and_f2_identity": true, + "mutant": "early_read_at_birth", + "note": "replacement read moved to the removed birth position (before A[426])", + "reason": "source chronology changed for sources [77]", + "rejected": true + }, + { + "expect_rejected": false, + "legal_and_f2_identity": true, + "mutant": "positive_control_composed", + "note": "the composed word itself", + "reason": null, + "rejected": false + }, + { + "expect_rejected": true, + "legal_and_f2_identity": false, + "mutant": "drop_replacement_read", + "note": "helper470 deleted without the replacement read", + "reason": "identity fails on 55 columns", + "rejected": true + }, + { + "expect_rejected": true, + "legal_and_f2_identity": false, + "mutant": "naive_464_deletion", + "note": "old node kept, helper464 operand dropped (no GL re-synthesis)", + "reason": "identity fails on 54 columns", + "rejected": true + }, + { + "expect_rejected": true, + "legal_and_f2_identity": false, + "mutant": "gl_node_drop_gate_0", + "note": "one of the ten GL node gates removed", + "reason": "identity fails on 53 columns", + "rejected": true + }, + { + "expect_rejected": true, + "legal_and_f2_identity": false, + "mutant": "gl_node_drop_gate_1", + "note": "one of the ten GL node gates removed", + "reason": "identity fails on 54 columns", + "rejected": true + }, + { + "expect_rejected": true, + "legal_and_f2_identity": false, + "mutant": "gl_node_drop_gate_2", + "note": "one of the ten GL node gates removed", + "reason": "identity fails on 54 columns", + "rejected": true + }, + { + "expect_rejected": true, + "legal_and_f2_identity": false, + "mutant": "gl_node_drop_gate_3", + "note": "one of the ten GL node gates removed", + "reason": "identity fails on 55 columns", + "rejected": true + }, + { + "expect_rejected": true, + "legal_and_f2_identity": false, + "mutant": "gl_node_drop_gate_4", + "note": "one of the ten GL node gates removed", + "reason": "identity fails on 62 columns", + "rejected": true + }, + { + "expect_rejected": true, + "legal_and_f2_identity": false, + "mutant": "gl_node_drop_gate_5", + "note": "one of the ten GL node gates removed", + "reason": "identity fails on 63 columns", + "rejected": true + }, + { + "expect_rejected": true, + "legal_and_f2_identity": false, + "mutant": "gl_node_drop_gate_6", + "note": "one of the ten GL node gates removed", + "reason": "identity fails on 63 columns", + "rejected": true + }, + { + "expect_rejected": true, + "legal_and_f2_identity": false, + "mutant": "gl_node_drop_gate_7", + "note": "one of the ten GL node gates removed", + "reason": "identity fails on 55 columns", + "rejected": true + }, + { + "expect_rejected": true, + "legal_and_f2_identity": false, + "mutant": "gl_node_drop_gate_8", + "note": "one of the ten GL node gates removed", + "reason": "identity fails on 63 columns", + "rejected": true + }, + { + "expect_rejected": true, + "legal_and_f2_identity": false, + "mutant": "gl_node_drop_gate_9", + "note": "one of the ten GL node gates removed", + "reason": "identity fails on 55 columns", + "rejected": true + } + ], + "pins": { + "research/bit-boundary-persistence/FRAME-PATHS.json": "0d347b9e4d8a8336a707565deceb1d505cd138c97a56831643583b83d91c3b4f", + "research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f", + "research/r437-composed-bit-independent-audit/inputs/FINAL-R438-WORD.json.gz": "5aa4d91fb0062265b25fb8f322a57b76d89caaf055b4110cf6fdb761f0b27463", + "research/r437-composed-bit-independent-audit/inputs/R437-COMPOSED-WORD.json.gz": "e432182d5b62c8bbefeb871fce30317234d707e5e18d4295e65ac21f7fd8365e", + "research/r437-composed-bit-independent-audit/inputs/R437-RECORDS.bin.gz": "6e556dae1a2f56f3893afa9b316f6029712c6b79a3536a429f8d83cac79163e9" + }, + "profile_delta": { + "additive": true, + "composed": { + "1": -3, + "2": 2, + "3": -2, + "4": -1, + "7": -1 + }, + "composed_vs_C464": { + "1": -2, + "2": 2, + "3": -1, + "7": -1 + }, + "e464": { + "1": -1, + "3": -1, + "4": -1 + }, + "e470": { + "1": -2, + "2": 2, + "3": -1, + "7": -1 + } + }, + "records": { + "forward": { + "adds": 24208, + "bad_columns": 0, + "copies": 9, + "profile": { + "1": 1320, + "2": 1344, + "3": 77, + "4": 43, + "5": 102, + "6": 11, + "7": 18 + } + }, + "independent_lowering_byte_equal": true, + "kinds": { + "0": 2906, + "1": 24208, + "2": 9, + "3": 9 + }, + "pr_stream_bytes": 651168, + "pr_stream_sha256": "caeb2eb0e417992788c32c1f5812ada60b46d1dfdba9f4ac376299b2dede13cb", + "records": 27132, + "reverse": { + "adds": 24208, + "bad_columns": 0, + "copies": 9, + "profile": { + "1": 1320, + "2": 1344, + "3": 77, + "4": 43, + "5": 102, + "6": 11, + "7": 18 + } + } + }, + "source77": { + "new_read": { + "frame": 186, + "frame_dim": 2, + "frame_lines": [ + 33, + 77 + ], + "receiver": 444, + "source_value_is_clean_input": true + }, + "receiver444_climbs_589": [ + [ + "('window after', ('A', 1992))", + 0, + 79 + ], + [ + "('A', 1994)", + 79, + 509 + ], + [ + "('A', 2038)", + 509, + 392 + ], + [ + "('A', 2064)", + 392, + 513 + ], + [ + "('C', 'A', 2064)", + 513, + 1 + ] + ], + "receiver444_climbs_R437": [ + [ + "('window after', ('A', 1992))", + 0, + 186 + ], + [ + "('A', 1994)", + 186, + 509 + ], + [ + "('A', 2038)", + 509, + 392 + ], + [ + "('A', 2064)", + 392, + 513 + ], + [ + "('C', 'A', 2064)", + 513, + 1 + ] + ], + "source77_climbs_589": [ + [ + "('A', 426)", + 79, + 186 + ], + [ + "('B', 289)", + 186, + 509 + ], + [ + "('B', 525)", + 509, + 386 + ], + [ + "('B', 636)", + 386, + 560 + ], + [ + "('C', 'B', 525)", + 560, + 1 + ] + ], + "source77_climbs_R437": [ + [ + "('A', 426)", + 79, + 186 + ], + [ + "('B', 289)", + 186, + 509 + ], + [ + "('B', 525)", + 509, + 386 + ], + [ + "('B', 636)", + 386, + 560 + ], + [ + "('C', 'B', 525)", + 560, + 1 + ] + ] + }, + "source_chronology": { + "access_history_differences": { + "6": { + "added": [ + [ + "('A464', 7)", + 506, + "read" + ], + [ + "('A464', 8)", + 506, + "read" + ], + [ + "('A464', 9)", + 506, + "read" + ] + ], + "removed": [ + [ + "('A', 1986)", + 506, + "read" + ], + [ + "('A', 1988)", + 506, + "read" + ] + ] + }, + "54": { + "added": [], + "removed": [ + [ + "('A', 224)", + 56, + "read" + ] + ] + }, + "56": { + "added": [ + [ + "('A464', 7)", + 506, + "read" + ], + [ + "('A464', 8)", + 506, + "read" + ], + [ + "('A464', 9)", + 506, + "read" + ] + ], + "removed": [ + [ + "('A', 1986)", + 506, + "read" + ], + [ + "('A', 1988)", + 506, + "read" + ] + ] + }, + "77": { + "added": [ + [ + "('A470', 0)", + 186, + "read" + ] + ], + "removed": [ + [ + "('A', 230)", + 79, + "read" + ] + ] + } + }, + "all_source_climbs_identical": true + }, + "status": "PASS_INDEPENDENT_R437_WORD_AUDIT", + "traces": { + "composed_vs_589": { + "aligned_gates": 5349, + "clean_value_differences": 0, + "differing_columns": [ + 340 + ], + "full_value_differences": [ + [ + "A", + 2044 + ], + [ + "A", + 2047 + ], + [ + "A", + 2068 + ], + [ + "A", + 2070 + ], + [ + "C", + "A", + 2044 + ], + [ + "C", + "A", + 2047 + ], + [ + "C", + "A", + 2068 + ], + [ + "C", + "A", + 2070 + ] + ], + "source_write_gates_compared": 966 + }, + "composed_vs_C464": { + "aligned_gates": 5369, + "clean_value_differences": 0, + "differing_columns": [], + "full_value_differences": [], + "source_write_gates_compared": 966 + }, + "composed_vs_C470": { + "aligned_gates": 5351, + "clean_value_differences": 0, + "differing_columns": [ + 340 + ], + "full_value_differences": [ + [ + "A", + 2044 + ], + [ + "A", + 2047 + ], + [ + "A", + 2068 + ], + [ + "A", + 2070 + ], + [ + "C", + "A", + 2044 + ], + [ + "C", + "A", + 2047 + ], + [ + "C", + "A", + 2068 + ], + [ + "C", + "A", + 2070 + ] + ], + "source_write_gates_compared": 966 + }, + "e464_vs_589": { + "aligned_gates": 5353, + "clean_value_differences": 0, + "differing_columns": [ + 340 + ], + "full_value_differences": [ + [ + "A", + 2044 + ], + [ + "A", + 2047 + ], + [ + "A", + 2068 + ], + [ + "A", + 2070 + ], + [ + "C", + "A", + 2044 + ], + [ + "C", + "A", + 2047 + ], + [ + "C", + "A", + 2068 + ], + [ + "C", + "A", + 2070 + ] + ], + "source_write_gates_compared": 966 + }, + "e470_vs_589": { + "aligned_gates": 5357, + "clean_value_differences": 0, + "differing_columns": [], + "full_value_differences": [], + "source_write_gates_compared": 966 + } + }, + "whole_profile_split": { + "claimed": { + "1": 380160, + "2": 400864, + "3": 22176, + "4": 26592, + "5": 29376, + "6": 17376, + "7": 26496, + "34": 64, + "42": 352 + }, + "deficit": 10272, + "helper_occurrences": 125856, + "idle_children_per_replica": { + "2": 431, + "4": 444, + "6": 444, + "7": 666, + "34": 2, + "42": 11 + }, + "live_data": 28416, + "local_calls": 288, + "rank_mass": 1808352, + "replicas": 32 + }, + "words": { + "C464_pr_R438": { + "columns": 660, + "copy_ranks": [ + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7 + ], + "forward_bad_columns": 0, + "gates": { + "A": 2081, + "B": 712, + "C": 2580, + "D": 111 + }, + "helpers": 438, + "interface": { + "D0_rebuilt": true, + "H1": true, + "H2": true, + "H3": true, + "H4_C_literal_reverse": true, + "H5_V_identity": true, + "J_identity": true, + "U_block": true + }, + "mass": 5121, + "methods_agree_entrywise": true, + "profile": { + "1": 1322, + "2": 1342, + "3": 78, + "4": 43, + "5": 102, + "6": 11, + "7": 19 + }, + "pullback_bad_columns": 0, + "reverse_orientation_bad_columns": 0, + "scalar_adds": { + "A": 2134, + "B": 934, + "C": 2633, + "D": 18037, + "scatter": 527, + "total": 24265 + }, + "source_writes": { + "A": 0, + "B": 483, + "C": 483, + "D": 0 + }, + "sources": 111 + }, + "C470_rebuilt_1043": { + "columns": 660, + "copy_ranks": [ + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7 + ], + "forward_bad_columns": 0, + "gates": { + "A": 2074, + "B": 712, + "C": 2573, + "D": 111 + }, + "helpers": 438, + "interface": { + "D0_rebuilt": true, + "H1": true, + "H2": true, + "H3": true, + "H4_C_literal_reverse": true, + "H5_V_identity": true, + "J_identity": true, + "U_block": true + }, + "mass": 5121, + "methods_agree_entrywise": true, + "profile": { + "1": 1321, + "2": 1344, + "3": 78, + "4": 44, + "5": 102, + "6": 11, + "7": 18 + }, + "pullback_bad_columns": 0, + "reverse_orientation_bad_columns": 0, + "scalar_adds": { + "A": 2129, + "B": 934, + "C": 2628, + "D": 18030, + "scatter": 527, + "total": 24248 + }, + "source_writes": { + "A": 0, + "B": 483, + "C": 483, + "D": 0 + }, + "sources": 111 + }, + "R437_pr": { + "columns": 659, + "copy_ranks": [ + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7 + ], + "forward_bad_columns": 0, + "gates": { + "A": 2080, + "B": 712, + "C": 2579, + "D": 111 + }, + "helpers": 437, + "interface": { + "D0_rebuilt": true, + "H1": true, + "H2": true, + "H3": true, + "H4_C_literal_reverse": true, + "H5_V_identity": true, + "J_identity": true, + "U_block": true + }, + "mass": 5113, + "methods_agree_entrywise": true, + "profile": { + "1": 1320, + "2": 1344, + "3": 77, + "4": 43, + "5": 102, + "6": 11, + "7": 18 + }, + "pullback_bad_columns": 0, + "reverse_orientation_bad_columns": 0, + "scalar_adds": { + "A": 2133, + "B": 934, + "C": 2632, + "D": 17982, + "scatter": 527, + "total": 24208 + }, + "source_writes": { + "A": 0, + "B": 483, + "C": 483, + "D": 0 + }, + "sources": 111 + }, + "selected589": { + "columns": 661, + "copy_ranks": [ + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7 + ], + "forward_bad_columns": 0, + "gates": { + "A": 2075, + "B": 712, + "C": 2574, + "D": 111 + }, + "helpers": 439, + "interface": { + "D0_rebuilt": true, + "H1": true, + "H2": true, + "H3": true, + "H4_C_literal_reverse": true, + "H5_V_identity": true, + "J_identity": true, + "U_block": true + }, + "mass": 5129, + "methods_agree_entrywise": true, + "profile": { + "1": 1323, + "2": 1342, + "3": 79, + "4": 44, + "5": 102, + "6": 11, + "7": 19 + }, + "pullback_bad_columns": 0, + "reverse_orientation_bad_columns": 0, + "scalar_adds": { + "A": 2130, + "B": 934, + "C": 2629, + "D": 18085, + "scatter": 527, + "total": 24305 + }, + "source_writes": { + "A": 0, + "B": 483, + "C": 483, + "D": 0 + }, + "sources": 111 + } + } +} diff --git a/research/r437-composed-bit-independent-audit/SOURCES.json b/research/r437-composed-bit-independent-audit/SOURCES.json new file mode 100644 index 0000000000..320bd7771e --- /dev/null +++ b/research/r437-composed-bit-independent-audit/SOURCES.json @@ -0,0 +1,76 @@ +{ + "schema_version": 1, + "base_commit": "20ecf2891d80b5acf18d980b2164fb44ea7faa90", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "b1fea0c94436b236cc2b7d41a7be032811b94c81", + "sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "67f085acd86acd7d4e03922d9cf4b26bca66fed5", + "sha256": "47b42433f5a85809a3aadd29c2c339da2c6ed728e4f7762df6b88bccb7874cf0" + }, + { + "path": "research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz", + "usage": "input", + "git_blob": "85a4499bf9e4911a705d50567a2c2ef6cf23739a", + "sha256": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f" + }, + { + "path": "research/bit-boundary-persistence/FRAME-PATHS.json", + "usage": "input", + "git_blob": "b1862b43e1fa1ee0fb02e29b303801265638dae4", + "sha256": "0d347b9e4d8a8336a707565deceb1d505cd138c97a56831643583b83d91c3b4f" + }, + { + "path": "research/bit-boundary-persistence/PROOF.md", + "usage": "provenance", + "git_blob": "560c21b5d47c2779d2b2e14b4decb1aaeba4c64f", + "sha256": "fee9059a1fb1db9ec16ce339f0dd36c29f2e6ec7103aa76c0b2296f8529bac6c" + }, + { + "path": "research/e8-bit-p111-tuned/code/xcheck_p.py", + "usage": "provenance", + "git_blob": "184f5dcf94a486cc7db91ca4db5865916bf26009", + "sha256": "af3decc877e27c00001cf56f50c6c09566e8e101297ab34c7860aed96a06d80e" + }, + { + "path": "research/e8-bit-p111-tuned/code/pwordl.py", + "usage": "provenance", + "git_blob": "a90bed93e227c3916aca67817794f35e24123ceb", + "sha256": "6d8fccd44508e4705b6446e0a64482a5221a3efc5663c5ca7ae90d44581ac50a" + } + ], + "snapshot": [ + { + "local": "inputs/R437-COMPOSED-WORD.json.gz", + "source_path": "research/bit-p111-r437-gl464-470-20261018/data/r0042/R437-COMPOSED-WORD.json.gz", + "source_commit": "36ff441479ff9c7e70d83f0becccd44da50effb8", + "source_pr": 3647, + "git_blob": "c558a221dd44cbdaa732a401f9876de4c096d4a7", + "sha256": "e432182d5b62c8bbefeb871fce30317234d707e5e18d4295e65ac21f7fd8365e" + }, + { + "local": "inputs/FINAL-R438-WORD.json.gz", + "source_path": "research/bit-p111-r437-gl464-470-20261018/data/r0028/FINAL-R438-WORD.json.gz", + "source_commit": "36ff441479ff9c7e70d83f0becccd44da50effb8", + "source_pr": 3647, + "git_blob": "db621440ab3f87ece927137c21f4f7fb3ba221ef", + "sha256": "5aa4d91fb0062265b25fb8f322a57b76d89caaf055b4110cf6fdb761f0b27463" + }, + { + "local": "inputs/R437-RECORDS.bin.gz", + "source_path": "research/bit-p111-r437-gl464-470-20261018/data/r0042/R437-RECORDS.bin", + "source_commit": "36ff441479ff9c7e70d83f0becccd44da50effb8", + "source_pr": 3647, + "git_blob": "ac75dd07819be402dc28a84b09561bfe42f1cc80", + "sha256": "6e556dae1a2f56f3893afa9b316f6029712c6b79a3536a429f8d83cac79163e9", + "uncompressed_sha256": "caeb2eb0e417992788c32c1f5812ada60b46d1dfdba9f4ac376299b2dede13cb", + "note": "gzip (level 9, mtime 0) of the PR file; the verifier checks the decompressed SHA256" + } + ] +} diff --git a/research/r437-composed-bit-independent-audit/TASK.json b/research/r437-composed-bit-independent-audit/TASK.json new file mode 100644 index 0000000000..e46294c451 --- /dev/null +++ b/research/r437-composed-bit-independent-audit/TASK.json @@ -0,0 +1,78 @@ +{ + "schema_version": 1, + "task_id": "independent-moment", + "priority_revision": 6, + "base_commit": "20ecf2891d80b5acf18d980b2164fb44ea7faa90", + "original_card": { + "id": "independent-moment", + "question": "Does one changed supplier or assembly claim lack a source-bound independent check of a specific new implication?", + "starting_points": [ + "certificates/selected-result.json", + "research/rank7-joint-endframes/README.md", + "docs/research/research-family-status.md" + ], + "methods": [ + "Independently reconstruct a coordinated frame/circuit change and its single-change control, then derive the complete rank and physical ledger.", + "Implement certified moment inequalities through a different exact enclosure method." + ], + "acceptance_gate": "Demonstrate independence, source binding, positive cases and semantic failure controls. Name the existing checks and the missing coverage. More digits or another equivalent evaluation of an unchanged root is not by itself new verification coverage.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read #2979 joint rank-7 end-frame proposal and the revision-6 evidence status. Its claimed kappa is not selected. Compare coordinated changes with the losing single-change controls and locate the complete physical ledger; an aggregate moment alone does not validate the mechanism.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Prioritize a bounded independent audit of #2979: reconstruct one joint group and its single-lowering control, check the declared frames/chronology, then trace changed children, idle widths and cleanup buffers into the complete invoice and both supplier caps. Choose one still-missing implication after checking existing audits. Stop with exact unresolved dependencies if full admission exceeds the session; do not launch a new lowering census on an unvalidated premise or substitute extra root digits for mechanism checking.", + "bottleneck_link": "Independent pricing prevents unsupported frontier claims and can reveal genuine accounting slack.", + "allowed_variations": [ + "Reconstruct either a source ledger or a numeric enclosure with a different method." + ], + "scope_change_triggers": [ + "Importing the primary function and calling its output independent verification.", + "Promoting #2979 from merged source archive to validated supplier solely from author PASS receipts or aggregate pricing." + ], + "overlap_terms": [ + "independent moment", + "rank histogram", + "exact enclosure", + "2979", + "rank7 joint endframes", + "paired extraction", + "joint lowering" + ] + }, + "scope_status": "changed", + "actual_scope": "Independently audit PR #3647 (head 36ff4414)'s composed R437 bit word: the helper464 joint GL deletion composed with #1043's helper470 deletion, against single-change controls #589+E464 (the PR's R438) and #589+E470 (#1043's R438, rebuilt). Covered: the exact F2 identity on all 659 inputs with arbitrary dirty helpers, by a forward replay and a reverse pull-back, plus the literal reverse orientation; literal reconstruction of R437 from selected #589; aligned-trace non-interaction; SOURCE77 frame-186 chronology and all SOURCE write boundaries; the local paid profile and its deltas; byte binding of the PR's 27,132-record stream to an independent lowering, with a record replay in both orientations; 18 required-failing mutants and one positive control.", + "scope_change_reason": "The card's default object is a complex-moment/assembly claim. Orientation found that the selected #589 bit cap a/(1+a) = 0.0017304274698236 is only 8.57e-9 above the pending complex chain PR3653/PR3682 (kappa 0.0017304189). If that chain is admitted, the bit primitive binds and gains need an admitted better bit supplier. PR #3647 is the highest open bit claim (c = 0.001736628253427115) and had author checks only (PR3668 checks only histogram-to-c arithmetic). The card's method, reconstructing a coordinated change against its single-change controls, is applied to that supplier.", + "bottleneck_link": "The word and record-level inputs of PR #3647's bit invoice are now independently checked, and the composition is shown to be non-interacting. If the bit side binds, the remaining unchecked steps before c could be admitted are the hosted matching/owner legality, the invoice/price, and the inherited assumptions. Today the complex primitive binds, so there is no kappa change.", + "budget_minutes": 180, + "stop_rule": "Stop at the first of: a confirmed discrepancy (minimize with mutants); a full PASS of identity, composition, controls, chronology, profile and mutants with both methods agreeing; word semantics not pinned within about 60 min (hand off); or a PR head change (re-pin once). Outcome: full PASS. The hosted-invoice stretch was not attempted beyond a count-level split, so c is not validated.", + "outcome": "completed", + "evidence": "PASS_INDEPENDENT_R437_WORD_AUDIT (RESULT.json). Identity: R437 (659 inputs) and controls #589 (661), #589+E464 = PR R438 (660) and #589+E470 = #1043 R438 (660, rebuilt) all map (x,y,h) to (x,y+x,h) over F2 with legal nested climbs and FULL/t-perp final frames. Forward replay and reverse pull-back agree entrywise; the reverse orientation passes; H1-H5/U/J hold; D0/C equal the rebuilt ones. Composition: #589+E464+E470 with rebuilt D0/C equals the PR's R437 except stats metadata. The E470 control reproduces #1043's FRAME-PATHS.json (660/661 paths), D0 18,085->18,030 and its profile. Non-interaction: E470 changes no projected value; E464 changes no clean column, only helper 340's dirt column at A2044/A2047/A2068/A2070 (two of them write retained totals 477/478) and their C inverses. The composed trace equals the E464 control's with h470 deleted at all 5,369 aligned gates. Profile deltas add: R437 {1:1320,2:1344,3:77,4:43,5:102,6:11,7:18}, mass 5,113, ADDs 24,208 (D17982/A2133/scatter527/B934/C2632). All 966 SOURCE write gates have identical projected full rows; all SOURCE climbs are unchanged (windowed). x77 is clean at the frame-186 read, reached at A426. Records: the PR stream (27,132 records, sha caeb2eb0...) is byte-identical to an independent lowering and passes record replay in both orientations. 18 mutants are rejected; the early-read mutant passes F2 identity and legality and is rejected only by the chronology check. The published whole profile splits as 288 x local + 32 x {2:431,4:444,6:444,7:666,34:2,42:11}, mass 1,808,352 (arithmetic only).", + "author": "Sagar Thakrar (thakrarsagar)", + "ai_assistance": "Substantial AI assistance from Claude (Anthropic, Claude Opus 5.5): design, code, checks and write-up in an automated research loop. No human or formal-kernel review is claimed.", + "open_questions": [ + { + "question": "Is PR #3647's R437 hosted matching legal: does each of the 3,933 (stage, helper) slots per replica lie in an idle child still pending at that stage, with disjoint offsets, giving remainders {2:431,4:444,6:444,7:666,34:2,42:11}?", + "why_it_matters": "It is the remaining word-to-invoice step. The idle part of the whole profile, and hence c, depends on it, and this package takes it as published.", + "first_step": "Rederive the nine windows' stage lists from the GLOBAL-TEMPLATE schedule and selected #589's (#442) hosting rule, then replay the slot list for disjointness and remainders.", + "blocked_by": "Pinning the pending-idle-child semantics from main's #442/#1043 hosting sources rather than the PR's emitter." + }, + { + "question": "Is the dirt-only change to two COPY sources contract-neutral? E464 changes the arbitrary-dirt content of retained totals h477/h478 by helper 340's column while their clean rows are unchanged.", + "why_it_matters": "The rank-7 captures rely on the inherited 'one paid transform plus linear private-stream discard' contract. If that contract depended on the dirt pattern of a captured total, the GL edit would need a separate native argument.", + "first_step": "State the native capture lemma's hypotheses as used by selected #589 and check them on the two affected captures.", + "blocked_by": "None for the local check; the native lemma's statement must be located in the selected sources." + }, + { + "question": "Does an independent exact price engine on the full R437 paid profile, with inherited surcharges, confirm c = 0.001736628253427115 and reject the next 1e-24 grid point?", + "why_it_matters": "This is needed before c could serve as an admitted bit supplier if the bit side binds. PR #3668 checks only the arithmetic on the published histogram.", + "first_step": "After question 1, rerun a separately written two-moment engine on the audited profile and the rederived idle histogram.", + "blocked_by": "Question 1 (hosted idle histogram)." + } + ] +} diff --git a/research/r437-composed-bit-independent-audit/VERIFY.json b/research/r437-composed-bit-independent-audit/VERIFY.json new file mode 100644 index 0000000000..3af130bf32 --- /dev/null +++ b/research/r437-composed-bit-independent-audit/VERIFY.json @@ -0,0 +1,22 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz", + "research/bit-boundary-persistence/FRAME-PATHS.json" + ], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/verify.py" + ], + "timeout_seconds": 300, + "checks": "Source pins; frame closure; for #589, #589+E464 (PR R438), #589+E470 (#1043 R438 rebuilt) and PR R437: F2 identity on all inputs by forward replay and reverse pull-back (entrywise agreement), reverse orientation, H1-H5/U/J, rebuilt D0/C; literal composition equals the PR's R437; #1043 FRAME-PATHS equality; aligned-trace non-interaction; SOURCE write boundaries and chronology; profile deltas; byte equality of the PR record stream with an independent lowering and record replay in both orientations; 18 required-failing mutants and one positive control; receipt equality with RESULT.json." + } + ] +} diff --git a/research/r437-composed-bit-independent-audit/compose.py b/research/r437-composed-bit-independent-audit/compose.py new file mode 100644 index 0000000000..c60dc64167 --- /dev/null +++ b/research/r437-composed-bit-independent-audit/compose.py @@ -0,0 +1,74 @@ +"""Literal construction of the single-change controls and the composed word from selected #589. + +E464 (PR #3647 ancestry R438, helper464 GL): delete A[224] = [56,464,[54]] and replace +A[1986..1988] (old D4 node at frame 506) by the ten-gate node read from the PR's R438 word. +E470 (#1043, Ali Romman): delete A[230] = [79,470,[77]] and replace A[1993] = [79,444,[470]] +by [186,444,[77]]. Indices are #589 A indices. Deleted helpers are removed and higher ids +renumbered; D0 and C are rebuilt from the raw word (wordsem.rebuild_DC).""" +import copy +from wordsem import need, rebuild_DC + +E464_DEL = 224 +E464_DEL_GATE = [56, 464, [54]] +E464_NODE_AT = (1986, 1989) +E464_OLD_NODE = [[506, 349, [6, 56, 233, 319, 322, 340, 462, 463]], + [506, 340, [233, 241, 319, 349, 464]], + [506, 241, [6, 56, 233, 319, 322, 463, 464]]] +E470_DEL = 230 +E470_DEL_GATE = [79, 470, [77]] +E470_READ = 1993 +E470_OLD_READ = [79, 444, [470]] +E470_NEW_READ = [186, 444, [77]] + + +def apply(w589, new_node=None, do464=False, do470=False, read=None, read_at=None, rebuild=True): + """Return (word, deleted helpers, renaming, origin keys of the A gates). read/read_at + override the E470 replacement gate and its position (mutants only).""" + w = copy.deepcopy(w589) + A = w['A'] + keys = [] + need(A[E464_DEL] == E464_DEL_GATE and A[E464_NODE_AT[0]:E464_NODE_AT[1]] == E464_OLD_NODE, 'E464 anchors changed') + need(A[E470_DEL] == E470_DEL_GATE and A[E470_READ] == E470_OLD_READ, 'E470 anchors changed') + out = [] + for i, g in enumerate(A): + if do464 and i == E464_DEL: + continue + if do464 and E464_NODE_AT[0] <= i < E464_NODE_AT[1]: + if i == E464_NODE_AT[0]: + out.extend(copy.deepcopy(new_node)) + keys.extend(('A464', k) for k in range(len(new_node))) + continue + if do470 and i == E470_DEL: + continue + if do470 and i == E470_READ: + if read_at is None and read != 'drop': + out.append(list(read or E470_NEW_READ)) + keys.append(('A470', 0)) + continue + out.append(g) + keys.append(('A', i)) + if do470 and read_at is not None: + out.insert(read_at, list(read or E470_NEW_READ)) + keys.insert(read_at, ('A470', 0)) + w['A'] = out + dead = sorted(([464] if do464 else []) + ([470] if do470 else [])) + v = w['v'] + for q in dead: + for sec in ('A', 'B', 'D', 'C'): + for g in w[sec]: + need(q != g[1] and q not in g[2] or sec in ('D', 'C'), 'deleted helper %d still used in %s' % (q, sec)) + need(q not in w['ret'], 'deleted helper is retained') + + def ren(r): + return r - sum(1 for q in dead if r > q) + for sec in ('A', 'B'): + w[sec] = [[f, ren(d), [ren(s) for s in srcs]] for f, d, srcs in w[sec]] + w['ret'] = [ren(q) for q in w['ret']] + w['start'] = [x for r, x in enumerate(w['start']) if r not in dead] + w['final'] = [x for r, x in enumerate(w['final']) if r not in dead] + w['R'] = w['R'] - len(dead) + if rebuild: + w['D'], w['C'] = rebuild_DC(w) + else: + w['D'], w['C'] = [], [] + return w, dead, ren, keys diff --git a/research/r437-composed-bit-independent-audit/inputs/FINAL-R438-WORD.json.gz b/research/r437-composed-bit-independent-audit/inputs/FINAL-R438-WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..db621440ab3f87ece927137c21f4f7fb3ba221ef GIT binary patch literal 42300 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 H)R+GNBy1BX literal 0 HcmV?d00001 diff --git a/research/r437-composed-bit-independent-audit/inputs/R437-COMPOSED-WORD.json.gz b/research/r437-composed-bit-independent-audit/inputs/R437-COMPOSED-WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..c558a221dd44cbdaa732a401f9876de4c096d4a7 GIT binary patch literal 42280 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 JYw^wdh<6txE2@(!nY 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 0, 'MOVE out of order') + need(geo.nested(old, new) if not reverse else geo.nested(new, old), 'MOVE not nested') + cur[x] = new + hist[f] += 1 + elif op == 1: + need(x != y and x < n and cur[x] == cur[y] == f, 'ADD operands not at the common frame') + need(y != centre or held is not None, 'ADD from an empty centre') + need(x != held, 'ADD into the held register') + need(c in (1, -1), 'coefficient') + if c & 1: + val[x] ^= val[y] + adds += 1 + elif op == (3 if reverse else 2): + need(held is None and y == centre and cur[x] == c and val[centre] == 0, 'COPY discipline') + held, cur[centre], val[centre] = x, f, val[x] + hist[abs(dim(c) - dim(f))] += 1 + copies += 1 + else: + need(held == x and y == centre and cur[x] == c and cur[centre] == f and val[centre] == val[x], + 'ERASE discipline') + held, cur[centre], val[centre] = None, -1, 0 + need(held is None and cur[:n] == list(word['start'] if reverse else word['final']), 'end frames') + bad = [i for i in range(n) if val[i] != (1 << i) ^ ((1 << (i - v)) if v <= i < 2 * v else 0)] + return bad, dict(sorted(hist.items())), adds, copies diff --git a/research/r437-composed-bit-independent-audit/verify.py b/research/r437-composed-bit-independent-audit/verify.py new file mode 100644 index 0000000000..7f282c19f0 --- /dev/null +++ b/research/r437-composed-bit-independent-audit/verify.py @@ -0,0 +1,424 @@ +"""Independent exact word-level audit of PR #3647's composed R437 bit word. + +Usage (repository root): python3 -I -B research/r437-composed-bit-independent-audit/verify.py [--write] + +Inputs: the selected #589 word and #1043's FRAME-PATHS.json from main, plus PR #3647's +R438 (helper464 GL) word, R437 word and R437 record stream vendored under inputs/ (all +sha256-pinned in SOURCES.json). +Semantics: wordsem.py (written for this audit from the format of the selected #589 package). +Without --write the computed result must equal the committed RESULT.json. +Standard library only. Sagar Thakrar (thakrarsagar), with substantial AI assistance from +Claude (Anthropic, Claude Opus 5.5). Apache-2.0. +""" +import collections +import copy +import gzip +import hashlib +import json +import os +import struct +import sys +import time + +HERE = os.path.dirname(os.path.abspath(__file__)) +ROOT = os.path.abspath(os.path.join(HERE, '..', '..')) +sys.path.insert(0, HERE) +from wordsem import (Geometry, Reject, bits, canonical, check_final_frames, check_identity, # noqa: E402 + check_pullback, forward, load, need, paths, profile, pullback, rebuild_DC, + reverse_orientation) +import compose # noqa: E402 +import records # noqa: E402 +from compose import apply # noqa: E402 + +W589 = 'research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz' +PATHS1043 = 'research/bit-boundary-persistence/FRAME-PATHS.json' +R438 = 'research/r437-composed-bit-independent-audit/inputs/FINAL-R438-WORD.json.gz' +R437 = 'research/r437-composed-bit-independent-audit/inputs/R437-COMPOSED-WORD.json.gz' +RECORDS = 'research/r437-composed-bit-independent-audit/inputs/R437-RECORDS.bin.gz' + + +def sha(path): + with open(os.path.join(ROOT, path), 'rb') as fh: + return hashlib.sha256(fh.read()).hexdigest() + + +def pins(): + src = json.load(open(os.path.join(HERE, 'SOURCES.json'))) + out = {} + for f in src['files'] + src['snapshot']: + path = f.get('path') or 'research/r437-composed-bit-independent-audit/' + f['local'] + if f.get('usage', 'input') == 'input' or 'local' in f: + need(sha(path) == f['sha256'], 'pin mismatch for %s' % path) + out[path] = f['sha256'] + return out + + +def adds(w): + c = {s: sum(len(g[2]) for g in w[s]) for s in 'DABC'} + c['scatter'] = sum(len(r) for r in w['scatter']) + c['total'] = sum(c.values()) + return c + + +def interface(w, geo): + """Hypotheses of the selected interleaved scalar-interface lemma (H1-H5) and its conclusion.""" + v, n = w['v'], 2 * w['v'] + w['R'] + y = lambda r: v <= r < 2 * v + out = {} + out['H1'] = not any(not y(g[1]) and any(y(s) for s in g[2]) for sec in 'DABC' for g in w[sec]) + out['H2'] = all(len(w['frames'][g[0]]) == 0 and y(g[1]) and all(s >= 2 * v for s in g[2]) for g in w['D']) + out['H3'] = (all(not y(g[1]) for g in w['A']) and all(2 * v <= q < n for q in w['ret']) + and all(y(g[1]) or all(not y(s) for s in g[2]) for g in w['B'])) + D, C = rebuild_DC(w) + out['H4_C_literal_reverse'] = C == w['C'] + out['D0_rebuilt'] = D == w['D'] + raw, _, _, _ = forward(w, geo, sections=('A', 'scatter', 'B'), frames_on=False) + ym, xm = ((1 << v) - 1) << v, (1 << v) - 1 + out['H5_V_identity'] = all(raw[v + t] & ym == 1 << (v + t) for t in range(v)) + out['U_block'] = all(raw[r] & ym == 0 for r in range(n) if not y(r)) + out['J_identity'] = all(raw[v + t] & xm == 1 << t for t in range(v)) + return out + + +def word_checks(name, w, geo): + """Primary forward method, reverse pull-back, entrywise agreement, reverse orientation.""" + v, n = w['v'], 2 * w['v'] + w['R'] + val, cur, climbs, copies = forward(w, geo) + check_final_frames(w, geo) + bad = check_identity(w, val) + col = pullback(w) + badp = check_pullback(w, col) + agree = all(((val[r] >> j) & 1) == ((col[j] >> r) & 1) for r in range(n) for j in range(n)) + rev = check_identity(w, reverse_orientation(w, geo)) + sw = {s: sum(1 for g in w[s] if g[1] < v) for s in 'DABC'} + return dict(columns=n, sources=v, helpers=w['R'], forward_bad_columns=len(bad), pullback_bad_columns=len(badp), + methods_agree_entrywise=agree, reverse_orientation_bad_columns=len(rev), + copy_ranks=[c[2] for c in copies], profile=profile(geo, climbs, copies), + mass=sum(k * x for k, x in profile(geo, climbs, copies).items()), + scalar_adds=adds(w), gates={s: len(w[s]) for s in 'DABC'}, source_writes=sw, + interface=interface(w, geo)), (val, climbs, copies) + + +def trace(w, akeys): + """Per gate (origin key): destination, frame, value after, operand values; C gates are keyed + by the A/B gate they literally reverse.""" + geo = Geometry(w) + v = w['v'] + zkeys = [k for sec, ks in (('A', akeys), ('B', [('B', i) for i in range(len(w['B']))])) + for k, g in zip(ks, w[sec]) if not (v <= g[1] < 2 * v)] + ckeys = [('C',) + k for k in reversed(zkeys)] + need(len(ckeys) == len(w['C']), 'C length') + out, climbs = {}, [] + keymap = {'A': akeys, 'B': [('B', i) for i in range(len(w['B']))], 'C': ckeys} + + def tr(ev, val, cur): + sec = ev[0] + if sec in keymap: + k = keymap[sec][ev[1]] + out[k] = (ev[3], ev[2], val[ev[3]], tuple(val[s] for s in ev[4]), ev[4]) + _, _, cl, _ = forward(w, geo, trace=tr) + # A move inside an edited window is dated by the last unchanged gate before it, so that a + # re-synthesized node is compared window by window and any move across an unchanged gate shows. + anchor = {} + for sec in ('A', 'B', 'C'): + last = None + for k in keymap[sec]: + if unchanged(k): + last = k + anchor[k] = k + else: + anchor[k] = ('window after', last) + for r, a, b, where in cl: + if where[0] in keymap: + climbs.append((r, a, b, anchor[keymap[where[0]][where[1]]])) + else: + climbs.append((r, a, b, where)) + return out, climbs + + +EDITED_589_A = {compose.E464_DEL, compose.E470_DEL, compose.E470_READ} | set(range(*compose.E464_NODE_AT)) + + +def unchanged(k): + if k[0] == 'C': + return unchanged(k[1:]) + return k[0] == 'B' or (k[0] == 'A' and k[1] not in EDITED_589_A) + + +def project(x, dead, ren): + y = 0 + for b in bits(x): + if b not in dead: + y |= 1 << ren(b) + return y + + +def compare(T0, T1, dead, ren, v): + """Aligned trace comparison of a control/edited word (T1) against a reference (T0).""" + clean = (1 << (2 * v)) - 1 + full_diff, clean_diff, dirt_cols, sw = [], [], set(), 0 + common = [k for k in T1 if k in T0] + for k in common: + d0, f0, x0, s0, r0 = T0[k] + d1, f1, x1, s1, r1 = T1[k] + need(ren(d0) == d1 and f0 == f1 and [ren(r) for r in r0] == list(r1), 'aligned gate %s differs in shape' % (k,)) + a = [project(x0, dead, ren)] + [project(s, dead, ren) for s in s0] + b = [x1] + list(s1) + if a != b: + full_diff.append(k) + for p, q in zip(a, b): + dirt_cols |= set(bits(p ^ q)) + if [p & clean for p in a] != [q & clean for q in b]: + clean_diff.append(k) + if d1 < v: + sw += 1 + return dict(aligned_gates=len(common), full_value_differences=sorted(full_diff, key=str), + clean_value_differences=len(clean_diff), differing_columns=sorted(dirt_cols), + source_write_gates_compared=sw) + + +def source_history(T, climbs, v): + acc = {s: [] for s in range(v)} + for k, (d, f, _, _, regs) in T.items(): + if k[0] == 'C': + continue + if d < v: + acc[d].append((str(k), f, 'write')) + for s in regs: + if s < v: + acc[s].append((str(k), f, 'read')) + cl = {s: [(str(k), a, b) for r, a, b, k in climbs if r == s] for s in range(v)} + return acc, cl + + +def history_diff(h0, h1, v): + out = {} + for s in range(v): + a, b = set(h0[s]), set(h1[s]) + if a != b: + out[s] = dict(removed=sorted(a - b), added=sorted(b - a)) + return out + + +def run(): + t0 = time.process_time() + res = {'status': None, 'pins': pins()} + w589 = load(os.path.join(ROOT, W589)) + r438 = load(os.path.join(ROOT, R438)) + r437 = load(os.path.join(ROOT, R437)) + fp = json.load(open(os.path.join(ROOT, PATHS1043))) + v = w589['v'] + geo = Geometry(w589) + for w in (r438, r437): + need(all(w[k] == w589[k] for k in ('lines', 'frames', 'scatter', 'v', 'h', 'form', 'format', 'coords', + 'ports_geom', 'punctured')), 'geometry or scatter changed') + res['frame_closure_memberships'] = geo.closure_checks() + res['frames'] = len(geo.frames) + + # Controls and composition, built literally from selected #589 + node = r438['A'][1985:1995] + c464, d464, ren464, k464 = apply(w589, node, do464=True) + c470, d470, ren470, k470 = apply(w589, node, do470=True) + comp, dcomp, rencomp, kcomp = apply(w589, node, do464=True, do470=True) + strip = lambda w: {k: x for k, x in w.items() if k != 'stats'} + res['composition'] = dict( + e464_node=node, + c464_equals_pr_R438_except_stats=strip(c464) == strip(r438), + composed_equals_pr_R437_except_stats=strip(comp) == strip(r437), + stats_589=w589['stats'], stats_pr_R438=r438['stats'], stats_pr_R437=r437['stats'], + canonical_sha256=dict( + w589=hashlib.sha256(canonical(w589)).hexdigest(), + pr_R438=hashlib.sha256(canonical(r438)).hexdigest(), + pr_R437=hashlib.sha256(canonical(r437)).hexdigest(), + c470_rebuilt=hashlib.sha256(canonical(c470)).hexdigest()), + edit_windows_589_A=dict(e464=[compose.E464_DEL, list(compose.E464_NODE_AT)], + e470=[compose.E470_DEL, compose.E470_READ])) + + words = [('selected589', w589), ('C464_pr_R438', r438), ('C470_rebuilt_1043', c470), ('R437_pr', r437)] + res['words'] = {} + side = {} + for name, w in words: + res['words'][name], side[name] = word_checks(name, w, geo) + _, cl589, _ = side['selected589'] + _, cl470, _ = side['C470_rebuilt_1043'] + res['frame_paths_1043'] = dict( + selected589_equals_baseline=[p for _, p in sorted(paths(w589, cl589).items())] == fp['baseline'], + c470_equals_candidate=[p for _, p in sorted(paths(c470, cl470).items())] == fp['candidate']) + prof = {k: res['words'][k]['profile'] for k, _ in words} + delta = lambda a, b: {r: prof[a].get(r, 0) - prof[b].get(r, 0) for r in sorted(set(prof[a]) | set(prof[b])) + if prof[a].get(r, 0) != prof[b].get(r, 0)} + d1, d2, d3 = (delta('C464_pr_R438', 'selected589'), delta('C470_rebuilt_1043', 'selected589'), + delta('R437_pr', 'selected589')) + res['profile_delta'] = dict(e464=d1, e470=d2, composed=d3, + additive={r: d1.get(r, 0) + d2.get(r, 0) for r in set(d1) | set(d2) + if d1.get(r, 0) + d2.get(r, 0)} == d3, + composed_vs_C464=delta('R437_pr', 'C464_pr_R438')) + + # Aligned traces: what each edit changes, and whether the edits interact + T589, C589 = trace(w589, [('A', i) for i in range(len(w589['A']))]) + T464, C464 = trace(c464, k464) + T470, C470 = trace(c470, k470) + T437, C437 = trace(r437, kcomp) + res['traces'] = dict( + e464_vs_589=compare(T589, T464, d464, ren464, v), + e470_vs_589=compare(T589, T470, d470, ren470, v), + composed_vs_589=compare(T589, T437, dcomp, rencomp, v), + composed_vs_C464=compare(T464, T437, [469], lambda r: r - (r > 469), v), + composed_vs_C470=compare(T470, T437, [464], lambda r: r - (r > 464), v)) + # SOURCE77 late read and source chronology + h589, sc589 = source_history(T589, C589, v) + h437, sc437 = source_history(T437, C437, v) + k_new = ('A470', 0) + d, f, after, (x77,), regs = T437[k_new] + res['source77'] = dict( + new_read=dict(frame=f, frame_lines=geo.frames[f], frame_dim=geo.dim[f], receiver=d, + source_value_is_clean_input=x77 == 1 << 77), + source77_climbs_589=[(str(k), a, b) for r, a, b, k in C589 if r == 77], + source77_climbs_R437=[(str(k), a, b) for r, a, b, k in C437 if r == 77], + receiver444_climbs_589=[(str(k), a, b) for r, a, b, k in C589 if r == 444], + receiver444_climbs_R437=[(str(k), a, b) for r, a, b, k in C437 if r == 444]) + res['source_chronology'] = dict( + all_source_climbs_identical=sc589 == {s: sc437[s] for s in range(v)}, + access_history_differences=history_diff(h589, h437, v)) + # Records consumed by PR #3647's hosting/invoice stage: byte equality with an independent + # lowering of the audited word, then record replay in both orientations. + with open(os.path.join(ROOT, RECORDS), 'rb') as fh: + raw = gzip.decompress(fh.read()) + mine = records.lower(r437, geo) + theirs = list(struct.iter_unpack('<6i', raw)) + fwd = records.replay(r437, geo, theirs, False) + rev = records.replay(r437, geo, theirs, True) + res['records'] = dict( + pr_stream_sha256=hashlib.sha256(raw).hexdigest(), pr_stream_bytes=len(raw), records=len(theirs), + independent_lowering_byte_equal=records.pack(mine) == raw, + kinds={k: x for k, x in sorted(collections.Counter(r[0] for r in theirs).items())}, + forward=dict(bad_columns=len(fwd[0]), profile=fwd[1], adds=fwd[2], copies=fwd[3]), + reverse=dict(bad_columns=len(rev[0]), profile=rev[1], adds=rev[2], copies=rev[3])) + res['mutants'] = mutants(w589, node, geo) + # Bounded cross-check of the published whole profile (PR #3647 README/COMPOSED-PROOF): split it + # into 288 local calls of the audited local profile plus a per-replica idle remainder. The + # remainder itself (matching, owners, hosting) is NOT rederived here. + claimed = {1: 380160, 2: 400864, 3: 22176, 4: 26592, 5: 29376, 6: 17376, 7: 26496, 34: 64, 42: 352} + loc = {int(k): x for k, x in res['words']['R437_pr']['profile'].items()} + calls, replicas = 9 * 32, 32 + idle = {r: claimed.get(r, 0) - calls * loc.get(r, 0) for r in sorted(set(claimed) | set(loc))} + need(all(x >= 0 and x % replicas == 0 for x in idle.values()), 'claimed profile does not split') + res['whole_profile_split'] = dict( + claimed=claimed, local_calls=calls, replicas=replicas, + idle_children_per_replica={r: x // replicas for r, x in idle.items() if x}, + rank_mass=sum(r * x for r, x in claimed.items()), live_data=28416, + deficit=64 * 28416 - sum(r * x for r, x in claimed.items()), + helper_occurrences=calls * r437['R']) + drop = lambda gates, q: [[f, d - (d > q), [x - (x > q) for x in srcs if x != q]] for f, d, srcs in gates] + res['compensation_facts'] = dict( + e470_D0_is_C464_D0_with_column_deleted=drop(c464['D'], 469) == r437['D'], + e464_D0_is_589_D0_with_column_deleted=drop(w589['D'], 464) == c464['D'], + e470_D0_is_589_D0_with_column_deleted=drop(w589['D'], 470) == c470['D']) + res['cpu_seconds_note'] = 'not recorded (platform dependent)' + ok = (all(x['forward_bad_columns'] == 0 and x['pullback_bad_columns'] == 0 and x['methods_agree_entrywise'] + and x['reverse_orientation_bad_columns'] == 0 and all(x['interface'].values()) + for x in res['words'].values()) + and res['composition']['c464_equals_pr_R438_except_stats'] + and res['composition']['composed_equals_pr_R437_except_stats'] + and all(res['frame_paths_1043'].values()) and res['profile_delta']['additive'] + and all(t['clean_value_differences'] == 0 for t in res['traces'].values()) + and res['traces']['composed_vs_C464']['full_value_differences'] == [] + and res['traces']['e470_vs_589']['full_value_differences'] == [] + and res['traces']['composed_vs_C470']['full_value_differences'] == res['traces']['e464_vs_589']['full_value_differences'] + and res['source_chronology']['all_source_climbs_identical'] + and res['source77']['new_read']['frame'] == 186 and res['source77']['new_read']['source_value_is_clean_input'] + and res['source77']['source77_climbs_589'] == res['source77']['source77_climbs_R437'] + and all(m['rejected'] == m['expect_rejected'] for m in res['mutants']) + and res['whole_profile_split']['rank_mass'] == 1808352 and res['whole_profile_split']['deficit'] == 10272 + and res['whole_profile_split']['helper_occurrences'] == 125856 + and res['records']['independent_lowering_byte_equal'] + and res['records']['pr_stream_sha256'] == 'caeb2eb0e417992788c32c1f5812ada60b46d1dfdba9f4ac376299b2dede13cb' + and all(res['records'][o]['bad_columns'] == 0 and res['records'][o]['profile'] == res['words']['R437_pr']['profile'] + for o in ('forward', 'reverse'))) + res['status'] = 'PASS_INDEPENDENT_R437_WORD_AUDIT' if ok else 'FAIL' + return res, time.process_time() - t0 + + +def mutants(w589, node, geo): + out = [] + v = w589['v'] + T589, C589 = trace(w589, [('A', i) for i in range(len(w589['A']))]) + sc589 = source_history(T589, C589, v)[1] + + def judge(label, w, keys, expect, note): + reason, ident = None, None + try: + r, _ = word_checks(label, w, geo) + ident = r['forward_bad_columns'] == 0 + if r['forward_bad_columns'] or r['pullback_bad_columns']: + reason = 'identity fails on %d columns' % r['forward_bad_columns'] + elif not all(r['interface'].values()): + reason = 'interface fails: ' + ','.join(k for k, x in r['interface'].items() if not x) + else: + T, C = trace(w, keys) + sc = source_history(T, C, v)[1] + if sc != {s: sc589[s] for s in range(v)}: + moved = [s for s in range(v) if sc[s] != sc589[s]] + reason = 'source chronology changed for sources %s' % moved + except Reject as e: + reason = 'legality: ' + str(e) + out.append(dict(mutant=label, rejected=reason is not None, reason=reason, expect_rejected=expect, note=note, + legal_and_f2_identity=ident)) + + comp, dead, ren, keys = apply(w589, node, do464=True, do470=True) + m = copy.deepcopy(comp) + m['D'] = [] + judge('drop_D0', m, keys, True, 'no frame-zero dirt compensation') + m = copy.deepcopy(comp) + m['C'] = [] + judge('drop_cleanup_C', m, keys, True, 'no literal reverse cleanup') + # stale compensation/cleanup: selected #589's D0 and C with the two deleted helpers' operands + # and gates removed and the survivors renamed (what reuse of the old D0/C would give) + def project_gates(gates): + g2 = [] + for f, d, srcs in gates: + if d in dead: + continue + ss = [ren(x) for x in srcs if x not in dead] + if ss: + g2.append([f, ren(d), ss]) + return g2 + m = copy.deepcopy(comp) + m['D'] = project_gates(w589['D']) + judge('stale_D0_from_589', m, keys, True, 'selected D0 reused with the deleted helpers dropped') + m = copy.deepcopy(comp) + m['C'] = project_gates(w589['C']) + judge('stale_C_from_589', m, keys, True, 'selected C reused with the deleted helpers dropped') + m, _, _, k = apply(w589, node, do464=True, do470=True, read=[79, 444, [77]]) + judge('late_read_at_frame79', m, k, True, 'replacement read at the removed carrier frame 79 (descends SOURCE77)') + m, _, _, k = apply(w589, node, do464=True, do470=True, read_at=compose.E470_DEL - 1) + judge('early_read_at_birth', m, k, True, 'replacement read moved to the removed birth position (before A[426])') + m, _, _, k = apply(w589, node, do464=True, do470=True, read=[186, 444, [77]], read_at=None) + judge('positive_control_composed', m, k, False, 'the composed word itself') + # revert one deletion: E470 read removed outright (receiver never gets SOURCE77) + m, _, _, k = apply(w589, node, do464=True, do470=True, read='drop') + judge('drop_replacement_read', m, k, True, 'helper470 deleted without the replacement read') + # naive helper464 deletion: old node with the 464 operand dropped instead of the GL node + naive = [[f, d, [s for s in srcs if s != 464]] for f, d, srcs in compose.E464_OLD_NODE] + m, _, _, k = apply(w589, naive, do464=True, do470=True) + judge('naive_464_deletion', m, k, True, 'old node kept, helper464 operand dropped (no GL re-synthesis)') + for j in range(len(node)): + m, _, _, k = apply(w589, node[:j] + node[j + 1:], do464=True, do470=True) + judge('gl_node_drop_gate_%d' % j, m, k, True, 'one of the ten GL node gates removed') + return out + + +def main(): + res, cpu = run() + path = os.path.join(HERE, 'RESULT.json') + text = json.dumps(res, indent=1, sort_keys=True, default=list) + '\n' + if '--write' in sys.argv: + open(path, 'w').write(text) + else: + need(os.path.exists(path) and open(path).read() == text, 'computed result differs from RESULT.json') + print(res['status'], 'cpu %.1fs' % cpu) + return 0 if res['status'].startswith('PASS') else 1 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/research/r437-composed-bit-independent-audit/wordsem.py b/research/r437-composed-bit-independent-audit/wordsem.py new file mode 100644 index 0000000000..e3076362e6 --- /dev/null +++ b/research/r437-composed-bit-independent-audit/wordsem.py @@ -0,0 +1,308 @@ +"""Independent stdlib semantics of a bitE8/1+mut word (format of selected #589). + +Written from scratch for this audit from the format description in the selected +#589 package on main (research/e8-bit-p111-tuned/code/xcheck_p.py docstring, +code/pwordl.py builder); no code is imported from any audited package. + +Registers: sources 0..v-1, targets v..2v-1, helpers 2v..2v+R-1. A gate +[f, d, srcs] first moves every operand to frame f (a strict, nested climb when +it is elsewhere) and then sets d <- d + sum(srcs) over F2. The scatter +snapshots the retained helpers `ret` and adds the listed snapshots to targets. +Frames are spans over Q of their listed E8 lines (ham coordinates, form dot/2). +""" +import gzip +import json +import math +from collections import Counter +from fractions import Fraction + + +class Reject(Exception): + pass + + +def need(ok, msg): + if not ok: + raise Reject(msg) + + +def load(path): + with open(path, 'rb') as fh: + return json.loads(gzip.decompress(fh.read())) + + +def canonical(word): + return json.dumps(word, sort_keys=True, separators=(',', ':')).encode() + + +def perp_basis(vectors, dim=8): + """Integer basis of {u : u.x = 0 for all x in vectors} (Euclidean dot).""" + rows = [[Fraction(a) for a in x] for x in vectors] + piv, r = [], 0 + for col in range(dim): + p = next((i for i in range(r, len(rows)) if rows[i][col]), None) + if p is None: + continue + rows[r], rows[p] = rows[p], rows[r] + inv = 1 / rows[r][col] + rows[r] = [a * inv for a in rows[r]] + for i in range(len(rows)): + if i != r and rows[i][col]: + f = rows[i][col] + rows[i] = [a - f * b for a, b in zip(rows[i], rows[r])] + piv.append(col) + r += 1 + out = [] + for free in (c for c in range(dim) if c not in piv): + vec = [Fraction(0)] * dim + vec[free] = Fraction(1) + for row, pc in zip(rows[:r], piv): + vec[pc] = -row[free] + den = 1 + for a in vec: + den = den * a.denominator // math.gcd(den, a.denominator) + out.append([int(a * den) for a in vec]) + return r, out + + +class Geometry: + """Rational frame dimensions, nesting and closure computed from the lines.""" + + def __init__(self, word): + self.lines = [list(map(int, x)) for x in word['lines']] + self.frames = [list(f) for f in word['frames']] + self.dim, self.perp = [], [] + for f in self.frames: + d, pb = perp_basis([self.lines[i] for i in f]) + self.dim.append(d) + self.perp.append(pb) + self._nest = {} + + def inside(self, line, k): + x = self.lines[line] + return all(sum(a * b for a, b in zip(x, u)) == 0 for u in self.perp[k]) + + def nested(self, a, b): + key = (a, b) + if key not in self._nest: + self._nest[key] = all(self.inside(i, b) for i in self.frames[a]) + return self._nest[key] + + def closure_checks(self): + v = len(self.lines) + n = 0 + for k, f in enumerate(self.frames): + inside = [i for i in range(v) if self.inside(i, k)] + need(inside == sorted(f), 'frame %d is not closed in the live lines' % k) + n += v + return n + + +def bits(mask): + while mask: + b = mask & -mask + yield b.bit_length() - 1 + mask ^= b + + +def forward(word, geo, sections=('D', 'A', 'scatter', 'B', 'C'), frames_on=True, trace=None): + """Forward symbolic replay over F2. Register r starts as the column bitset 1 << r, so one + pass covers every input column, including arbitrary (dirty) helper contents. Returns final + values, final frames, every frame climb (register, old, new, position) and the COPY frames. + trace(event, values, frames) is called after every gate when given.""" + v, R = word['v'], word['R'] + n = 2 * v + R + need(len(word['start']) == n and len(word['final']) == n, 'start/final length') + cur = list(word['start']) + val = [1 << r for r in range(n)] + climbs = [] # (register, old frame, new frame, position) + copies = [] + pos = 0 + if frames_on: + for s in range(v): + need(geo.frames[cur[s]] == [s] and geo.dim[cur[s]] == 1, 'source %d does not start at its line' % s) + for r in range(v, n): + need(geo.dim[cur[r]] == 0, 'register %d does not start at the zero frame' % r) + + def move(r, f, where): + if cur[r] == f: + return + need(geo.nested(cur[r], f) and geo.dim[cur[r]] < geo.dim[f], + 'illegal climb of register %d from frame %d to %d at %s' % (r, cur[r], f, where)) + climbs.append((r, cur[r], f, where)) + cur[r] = f + + for sec in sections: + if sec == 'scatter': + need(len(word['scatter']) == v, 'scatter rows') + if frames_on: + need(all(geo.dim[cur[v + t]] == 0 for t in range(v)), 'a target left the zero frame before the scatter') + snap = [val[q] for q in word['ret']] + for k, q in enumerate(word['ret']): + need(2 * v <= q < n, 'retained register is not a helper') + copies.append((q, cur[q], geo.dim[cur[q]])) + for t, row in enumerate(word['scatter']): + for k in row: + val[v + t] ^= snap[k] + if trace: + trace(('scatter', None, None, None), val, cur) + continue + for i, g in enumerate(word[sec]): + need(len(g) == 3, 'malformed gate') + f, d, srcs = g + regs = [d] + list(srcs) + need(srcs and len(set(regs)) == len(regs) and all(0 <= r < n for r in regs), 'bad operands %s[%d]' % (sec, i)) + need(0 <= f < len(word['frames']), 'frame id') + if frames_on: + for r in regs: + move(r, f, (sec, i)) + acc = 0 + for s in srcs: + acc ^= val[s] + val[d] ^= acc + if trace: + trace((sec, i, f, d, tuple(srcs)), val, cur) + if frames_on: + for r in range(n): + move(r, word['final'][r], ('final', r)) + return val, cur, climbs, copies + + +def check_identity(word, val): + v, R = word['v'], word['R'] + n = 2 * v + R + bad = [r for r in range(n) if val[r] != ((1 << r) | ((1 << (r - v)) if v <= r < 2 * v else 0))] + return bad + + +def check_final_frames(word, geo): + v, R = word['v'], word['R'] + n = 2 * v + R + full = [k for k, d in enumerate(geo.dim) if d == 8] + need(len(full) == 1, 'exactly one full frame') + for r in list(range(v)) + list(range(2 * v, n)): + need(geo.dim[word['final'][r]] == 8, 'final frame of %d is not full' % r) + for t in range(v): + lt = geo.lines[t] + perp = [i for i in range(v) if sum(a * b for a, b in zip(geo.lines[i], lt)) == 0] + need(geo.frames[word['final'][v + t]] == perp, 'target %d final frame is not t-perp' % t) + return full[0] + + +def pullback(word, sections=('D', 'A', 'scatter', 'B', 'C')): + """Second method: transpose action in reverse order. col[j] = set of outputs + depending on input j (bitset over registers).""" + v, R = word['v'], word['R'] + n = 2 * v + R + col = [1 << r for r in range(n)] + for sec in reversed(sections): + if sec == 'scatter': + for t, row in enumerate(word['scatter']): + for k in row: + q = word['ret'][k] + col[q] ^= col[v + t] + continue + for f, d, srcs in reversed(word[sec]): + cd = col[d] + for s in srcs: + col[s] ^= cd + return col + + +def check_pullback(word, col): + v, R = word['v'], word['R'] + n = 2 * v + R + return [j for j in range(n) if col[j] != ((1 << j) | ((1 << (v + j)) if j < v else 0))] + + +def reverse_orientation(word, geo): + """Literal reverse orientation: gates in reverse order, starting at the final frames; + every move is a nested strict descent (a climb of the orthogonal complement).""" + v, R = word['v'], word['R'] + n = 2 * v + R + cur = list(word['final']) + val = [1 << r for r in range(n)] + + def move(r, f, where): + if cur[r] == f: + return + need(geo.nested(f, cur[r]) and geo.dim[f] < geo.dim[cur[r]], + 'illegal reverse move of %d from %d to %d at %s' % (r, cur[r], f, where)) + cur[r] = f + + for sec in ('C', 'B', 'scatter', 'A', 'D'): + if sec == 'scatter': + # mirror of the forward scatter: targets descend to the zero frame, each retained + # helper to the frame of its last A gate (where the forward COPY reads it) + zero = [k for k, d in enumerate(geo.dim) if d == 0][0] + for t in range(v): + move(v + t, zero, ('scatter', t)) + for q in word['ret']: + last = [g[0] for g in word['A'] if q == g[1] or q in g[2]] + need(last, 'retained helper %d is never written in A' % q) + move(q, last[-1], ('scatter', q)) + snap = [val[q] for q in word['ret']] + for t, row in enumerate(word['scatter']): + for k in row: + val[v + t] ^= snap[k] + continue + for i in range(len(word[sec]) - 1, -1, -1): + f, d, srcs = word[sec][i] + for r in [d] + list(srcs): + move(r, f, (sec, i)) + acc = 0 + for s in srcs: + acc ^= val[s] + val[d] ^= acc + for r in range(n): + move(r, word['start'][r], ('start', r)) + return val + + +def profile(geo, climbs, copies): + h = Counter() + for r, a, b, _ in climbs: + h[geo.dim[b] - geo.dim[a]] += 1 + for q, f, d in copies: + h[d] += 1 + return dict(sorted(h.items())) + + +def paths(word, climbs): + n = 2 * word['v'] + word['R'] + p = {r: [word['start'][r]] for r in range(n)} + for r, a, b, where in climbs: + p[r].append(b) + return p + + +def rebuild_DC(word): + """D0 from the raw word's helper part of each target; C as the literal reverse of the + source/helper-destination A/B gates at the full frame (pwordl.build convention).""" + v, R = word['v'], word['R'] + n = 2 * v + R + val = [1 << r for r in range(n)] + for sec in ('A', 'scatter', 'B'): + if sec == 'scatter': + snap = [val[q] for q in word['ret']] + for t, row in enumerate(word['scatter']): + for k in row: + val[v + t] ^= snap[k] + continue + for f, d, srcs in word[sec]: + acc = 0 + for s in srcs: + acc ^= val[s] + val[d] ^= acc + hmask = ((1 << R) - 1) << (2 * v) + zero = [k for k, f in enumerate(word['frames']) if not f] + full = [k for k, f in enumerate(word['frames']) if len(f) == v] + need(len(zero) == 1 and len(full) == 1, 'zero/full frame ids') + D = [] + for t in range(v): + m = val[v + t] & hmask + if m: + D.append([zero[0], v + t, list(bits(m))]) + # literal reverse of A then B, restricted to source/helper destinations + C = [[full[0], d, list(s)] for f, d, s in reversed(word['A'] + word['B']) if not (v <= d < 2 * v)] + return D, C From b2e2d6b2c05c159148b500286450f31a1335833b Mon Sep 17 00:00:00 2001 From: Sagar Thakrar <18622288+thakrarsagar@users.noreply.github.com> Date: Sun, 18 Oct 2026 21:16:56 +0530 Subject: [PATCH 2/7] Extend R437 audit through hosting, invoice precision and price Bounded stretch of the PR #3647 audit, rules reimplemented from the selected chain's sources on main (nothing imported or run): - the template's parent schedule equals main's nine-stage recipe; the nine idle windows follow from the selected idle-hosting rule; - 3,933 slots per replica host every (stage, helper) occurrence once, inside its window, width 8, disjoint offsets; remainders give idle {2:431,4:444,6:444,7:666,34:2,42:11}; all 288 calls' owners match the slots and data routes; 125,856 hosted, 0 banks; - the template's local programs equal the audited record stream; local cancellation-free bounds 49,347/1,113,998; - whole profile {1:380160,2:400864,3:22176,4:26592,5:29376,6:17376, 7:26496,34:64,42:352}, mass 1,808,352; precision envelope prefix 177 (192), two-level 393 (512), depth 2, ROW 18,355; - an exact price bracket confirms c = 0.001736628253427115480286 with the next 1e-24 point failing; the same engine reproduces selected #589's a from main-only inputs and #1043's c. Adds four hosting mutants and one price mutant. c is reproduced under inherited semantics; no admission or kappa claim. Co-Authored-By: Claude Opus 5.5 --- .../README.md | 251 ++++++++++++------ .../RESULT.json | 250 +++++++++++++++++ .../SOURCES.json | 32 +++ .../TASK.json | 30 +-- .../VERIFY.json | 6 +- .../compose.py | 4 +- .../hosting.py | 208 +++++++++++++++ .../inputs/R437-GLOBAL-TEMPLATE.json.gz | Bin 0 -> 797869 bytes .../price.py | 89 +++++++ .../records.py | 13 +- .../verify.py | 126 ++++++++- 11 files changed, 895 insertions(+), 114 deletions(-) create mode 100644 research/r437-composed-bit-independent-audit/hosting.py create mode 100644 research/r437-composed-bit-independent-audit/inputs/R437-GLOBAL-TEMPLATE.json.gz create mode 100644 research/r437-composed-bit-independent-audit/price.py diff --git a/research/r437-composed-bit-independent-audit/README.md b/research/r437-composed-bit-independent-audit/README.md index 7561af4f51..b599e3fc55 100644 --- a/research/r437-composed-bit-independent-audit/README.md +++ b/research/r437-composed-bit-independent-audit/README.md @@ -1,28 +1,36 @@ -# Independent audit of PR #3647's composed R437 bit word +# Independent audit of PR #3647's composed R437 bit word, hosting and price PR #3647 composes two helper deletions on the selected #589 bit word. The helper464 deletion re-synthesizes one D4 node with a ten-gate GL block. The helper470 deletion comes from #1043 and replaces a carrier with a late read of -SOURCE77. This package checks the resulting 659-input R437 word with a -separately written exact interpreter, against both single-change controls. -**At head `36ff4414` the word passes every check**: - -- **Identity.** Over F2 the word maps every input `(x, y, h)` to - `(x, y + x, h)`. Here `x` is the 111 SOURCEs, `y` the 111 targets and `h` - the 437 helpers with arbitrary dirty contents. -- **Composition.** The edits compose with no interaction beyond the two - single-change controls. -- **SOURCE77 read.** The late read at frame 186 is in chronological order, and - no SOURCE frame move occurs earlier than in #589. -- **Profile.** The literal word gives the claimed local paid profile. -- **Records.** The PR's 27,132-record local-call stream is byte-identical to an - independent lowering of the audited word. - -This is a finite exact **audit** of one local supplier change. It makes no κ -claim and changes no frontier, and it does **not** validate the bit coefficient -c = 0.001736628253427115. The hosted matching, the owner placements of the -125,856 helper occurrences, and the invoice and price are not rederived here -(see Scope). The selected record stays `0.001672660197076918`. +SOURCE77. This package checks the resulting 659-input R437 word, its local-call +records, its hosted template and its price. The interpreter, controls and +price engine are written separately for this audit, and the word is checked +against both single-change controls. **At head `36ff4414` every check +passes**: + +- **Word.** Over F2 the word maps every input `(x, y, h)` to `(x, y + x, h)`. + Here `x` is the 111 SOURCEs, `y` the 111 targets and `h` the 437 helpers + with arbitrary dirty contents. The two edits compose with no interaction + beyond the single-change controls. The SOURCE77 read at frame 186 is in + chronological order, and the literal word gives the claimed local profile. +- **Records and hosting.** The PR's 27,132-record stream is byte-identical to + an independent lowering of the word. The hosted template's 125,856 helper + placements satisfy the selected chain's idle-hosting rule. +- **Price.** The whole paid profile and the invoice's precision fields follow + from these. The price root gives + **c = 868314126713557740143/5·10^23 = 0.001736628253427115480286**, and the + next 10^-24 grid point fails. +- **Controls.** The same price engine reproduces the selected #589 value + `0.001733427039589844234749` from main-only inputs, and #1043's + `0.001734176288479865766692`. + +This is a finite, exact, **independent check of one local bit supplier**, +under the selected chain's inherited semantics: word format, hosting rule, +invoice formula and price equation. It makes no κ claim and changes no +frontier, and it does not admit PR #3647. Physical-owner, native-transport and +all-size assumptions stay as inherited (see Scope). The selected record stays +`0.001672660197076918`. The complex side binds today. Reproduce from the repository root (standard library only, about 10 s): @@ -39,35 +47,42 @@ recomputes everything and requires byte equality with the committed The selected #589 bit supplier caps the retained balanced transfer at a/(1+a) = 0.0017304274698236. The pending complex chain of PR #3653 and PR #3682 claims κ = 0.0017304189, which is 8.57e-9 below that cap. **If that -chain is admitted, the bit primitive binds**, and further gains need an admitted -better bit supplier. PR #3647 makes the highest open bit claim: -c = 0.001736628253427115, cap 0.0017336176. Before this package it had author -checks only. PR #3668 (jwr404) checks only the histogram-to-c arithmetic. This -package checks the word and its record stream, which are the local inputs of -PR #3647's invoice. The relevance is conditional: today the complex side binds. +chain is admitted, the bit primitive binds**, and further gains need an +admitted better bit supplier. PR #3647 makes the highest open bit claim, with +cap c/(1+c) = 0.0017336176. Before this package it had author checks only. +PR #3668 (jwr404) checks the histogram-to-c arithmetic on the *published* +histogram. Here that histogram is rederived from the word and the template. ## What was audited - **Object.** [PR #3647](https://github.com/CrocSwap/integer-mult-bounds/pull/3647) (ai-nanachi), head `36ff441479ff9c7e70d83f0becccd44da50effb8`, package - `research/bit-p111-r437-gl464-470-20261018`. The vendored copies in - [inputs/](inputs/) are the R437 word (`data/r0042/R437-COMPOSED-WORD.json.gz`), - its R438 helper464-only ancestor (`data/r0028/FINAL-R438-WORD.json.gz`) and - the R437 record stream (`data/r0042/R437-RECORDS.bin`, stored gzipped). All - are pinned by Git blob and SHA256 in [SOURCES.json](SOURCES.json). + `research/bit-p111-r437-gl464-470-20261018`. [inputs/](inputs/) holds + vendored copies, each pinned by Git blob and SHA256 in + [SOURCES.json](SOURCES.json): + - the R437 word (`data/r0042/R437-COMPOSED-WORD.json.gz`); + - its R438 helper464-only ancestor (`data/r0028/FINAL-R438-WORD.json.gz`); + - the R437 record stream (`data/r0042/R437-RECORDS.bin`, stored gzipped); + - the hosted template (`generated/GLOBAL-TEMPLATE.json.gz`). Its canonical + content SHA256 `2e868ff4…` equals the PR's EXPECTED value. - **Reference word.** The selected #589 word on main: `research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz`. The PR's `data/SELECTED589.json.gz` is byte-identical to it. - **helper470 control.** #1043 (Ali Romman), archive-merged on main as `research/bit-boundary-persistence/`. The control is rebuilt here from the - edit described in its PROOF.md, then compared with its `FRAME-PATHS.json`. -- **Word semantics.** These come from the selected #589 package on main: the - format description in `code/xcheck_p.py` and the D0/C construction in - `code/pwordl.py`. The same applies to the record layout used by the selected - nine-stage caller (`vendor/pr510/.../global_k.py`). **No code from PR #3647, - #1043 or any inherited checker is imported or run.** The only PR data used - are the audited files themselves, including the ten-gate GL node, which is - read from the PR's R438 word. + edit in its PROOF.md, then compared with its `FRAME-PATHS.json` and + `CERTIFICATE.json`. +- **Semantics.** All of it is taken from the selected chain on main: + - word format: `research/e8-bit-p111-tuned/code/xcheck_p.py` and + `code/pwordl.py`; + - record and event layout, parent recipe, idle ranks and prefix bound: the + nine-stage caller `vendor/pr510/…/global_k.py`; + - invoice coefficient formula: `vendor/pr510/e8-r480-nine-stage/code/assemble9.py`; + - idle-hosting rule: `research/e8-bit-carrier-skeleton/code/hub/idle-axis-hosting/hosting_core.py`; + - price equation: `…/e8-r740-replica32/code/engines/moment.py`. + + **No code from PR #3647, #1043 or main is imported or run.** Each rule is + reimplemented here from its source text. ## The two edits, in #589 numbering @@ -89,6 +104,8 @@ gate whose destination is a source or helper, at the full frame. | #589 + E470 (#1043 R438, rebuilt) | 660 | 111/2074/712/2573 | 24,248 | {1:1321, 2:1344, 3:78, 4:44, 5:102, 6:11, 7:18} | 5,121 | | **R437 (PR #3647)** | **659** | 111/2080/712/2579 | **24,208** | **{1:1320, 2:1344, 3:77, 4:43, 5:102, 6:11, 7:18}** | **5,113** | +### Word level + 1. **Identity, two methods.** The primary method is a forward replay. Register `r` starts as the column bitset `1 << r`, so one pass covers every input column over F2. Every operand makes a strictly increasing, nested climb to @@ -147,21 +164,64 @@ gate whose destination is a source or helper, at the full frame. at `A[426]`, as in #589. Its later climbs, at B289, B525, B636 and the C inverse of B525, are unchanged. The receiver's path is 0 → 186 → 509 → 392 → 513 → FULL, where #589 has 0 → 79 → 509 → …. + +### Records, hosting, invoice and price + 5. **Records.** The PR's stream has 27,132 records (651,168 bytes, SHA256 `caeb2eb0…de13cb`). It equals byte for byte a lowering written here from the word semantics: lazy climbs, one ADD per operand, one COPY/ADD/ERASE episode per retained total, then the final climbs. The stream is replayed in both - orientations with the record semantics of the selected nine-stage caller. - Both pass all 659 columns with 24,208 ADDs, 9 rank-7 COPYs and the local - profile above. -6. **Published whole profile, decomposed.** PR #3647 reports the whole profile + orientations with the selected caller's record semantics. Both pass all 659 + columns with 24,208 ADDs, 9 rank-7 COPYs and the local profile. The + cancellation-free row bounds are 49,347 forward (16 bits) and 1,113,998 + reverse (21 bits). The template's forward and reverse local programs equal + the events derived from this stream. +6. **Hosting.** + - **Schedule and windows.** The template's parent schedule equals the one + derived here from main's nine-stage recipe, including idle ranks + 14, 7, 28, 7, 42, 7, 42, 28, 14 and 0. Under the selected rule, its nine + idle windows are recomputed and equal the template's. The rule: a stage + may use a pair's idle child only if it runs strictly after the pair's last + local or bridge touch and is not on that pair. + - **Slots.** Each replica has 3,933 slots. Each (stage, helper) occurrence + appears exactly once, with width 8 as the word requires. Its stage lies in + its window, and its offsets are disjoint inside the child's rank. + - **Remainders.** They equal the template's, giving the per-replica idle + children `{2:431, 4:444, 6:444, 7:666, 34:2, 42:11}`. + - **Owners.** All 288 calls (9 stages × 32 replicas) match the slots and the + selected data route. The data families form the call's pair block, with + the sides swapped in reverse sweeps. Each hosted helper sits in a + different pair's idle child at its slot. In total 125,856 occurrences are + hosted, with 0 banks and 7,814,016 local events. +7. **Whole paid profile and invoice.** 288 × the local profile plus 32 × the + idle children gives `{1:380160, 2:400864, 3:22176, 4:26592, 5:29376, 6:17376, 7:26496, 34:64, 42:352}`. - It equals 288 local calls of the audited profile plus, per replica, the idle - children `{2:431, 4:444, 6:444, 7:666, 34:2, 42:11}`. Its rank mass is - 1,808,352 = 64·28,416 − 10,272, and 125,856 = 437 × 288 helper occurrences - are hosted. This is arithmetic only: the idle part is taken as published. - -### Mutants (each must be rejected; one positive control must pass) + That is 903,456 children of rank mass 1,808,352 = 64·28,416 − 10,272, + exactly as published. The invoice precision fields are recomputed with the + selected formulas, as an envelope over every non-prefix term: + - prefix 2^18 · 49,347^5 · 1,113,998^4 has 177 bits, charged 192; + - the coefficient has 177 bits; + - the two-level coefficient has 393 bits, charged 512; + - halving depth 2, with 2·42² = 3,528 < 4,096; + - ROW = 2·(64² + 1) + 9,909 + 252 = 18,355 < 20,161. + + The ROW constants 9,909 and 252 are inherited. +8. **Price.** The equation is + `Σ r·n_r/(m·W) (m/r)^a + 32·m·N/(10^16·W) m^a = 1` with m = 64 and + W = 28,416, including the inherited bad-class fallback. It is solved with + separate rational log/exp enclosures. At a = c the moment is < 1, and at + c + 10^-24 it is > 1, for + c = **0.001736628253427115480286**. The same engine gives two positive + controls: + - **Selected #589.** The value is built from main only: the #589 word gives + the local profile, `selection9-p111.json` the hosting patterns, and main's + recipe the windows. Its idle children are `{2:435, 4:444, 6:444, 7:666, 42:9}`. + It reproduces the selected bit value 0.001733427039589844234749 exactly at + the 10^-24 grid. + - **#1043.** Its certificate profile splits exactly over the rebuilt E470 + local profile, and the engine reproduces its c, 0.001734176288479865766692. + +### Mutants and controls (each must be rejected; one positive control must pass) | Mutant | Outcome | |---|---| @@ -174,11 +234,17 @@ gate whose destination is a source or helper, at the full frame. | replacement read dropped | identity fails on 55 columns | | naive helper464 deletion (old node, h464 operands dropped) | identity fails on 54 columns | | each of the ten GL gates dropped in turn | identity fails on 53–63 columns | +| a slot moved to a window outside its stage | window, disjointness, remainder, owner and profile checks fail | +| two slots made to overlap | disjointness and owner checks fail | +| a slot dropped | occurrence, remainder, owner and profile checks fail | +| one idle rank changed | window, remainder and profile checks fail | +| one rank-2 child per replica relabelled as rank 3 in the whole profile | the c bracket fails | | the composed word itself (positive control) | accepted | The early-read row shows that the identity check alone does not enforce SOURCE chronology. The chronology comparison with #589 is a separate, load-bearing -check. +check. In the price bracket, each next grid point acts as a built-in negative +control. ## Scope, inherited assumptions and unresolved obligations @@ -188,65 +254,74 @@ These results are checked: controls; - deletion composition at gate and trace level; - SOURCE write boundaries and chronology against #589; -- the local paid profile and scalar ADD counts; -- the byte binding of the record stream to the word. - -These are **not** checked, and remain load-bearing for any use of c: - -- **Hosting.** The nine-window matching in `GLOBAL-TEMPLATE.json.gz` is not - rederived. That covers the 3,933 slots per replica, the legality of the - owner route of each of the 125,856 hosted helper occurrences, and the claimed - pending-interval windows. The idle part of the whole profile is taken as - published. -- **Invoice and price.** Prefix, two-level and ROW precision, selectors, the - fallback, c and the next-grid-point rejection are not checked. PR #3668 - checks only the histogram-to-c arithmetic. +- the local profile and ADD counts; +- the byte binding of the records and the template's local programs to the + word; +- the hosting slot assignment under the selected idle rule; +- the whole paid profile, the invoice precision fields and the price root. + +These are **not** checked: + +- **Physical semantics.** Owner routes are checked against the selected rule + and route formulas, not against a physical register machine. The private + centre reserve (physical = 28,416 + 9) and the cover classes are not + checked. - **Native transport.** The rational projector identities (D_F, P_A P_B) that PR #3647's R437-LOCAL proof states are not checked beyond the frame - nesting/dimension model used here. + nesting/dimension model. +- **Inherited formulas.** The invoice formula, the 10^-16 fallback, the ROW + constants and the price equation are used as stated in the selected sources, + not re-derived. +- **Route factors.** The geometry's `max_route_factors` term is covered only by + the envelope; any value below 2^40 gives the same bit lengths. - **Inherited assumptions.** These are unchanged from selected #589: the all-size bit/Gaussian compiler, the common-label, mutable-SOURCE and - target-label realization, whole-call correlated hosting, - tape/precision/ROW, and the analytic H1–H5 lemma. Only its finite hypotheses - are evaluated here, not its proof. + target-label realization, whole-call correlated hosting, tape and + precision, the analytic H1–H5 lemma (only its finite hypotheses are + evaluated here, not its proof) and the cited outer assembly. -This is a finite certificate for one local word and its record stream. It is -not a scoped all-size proof or a multiplication theorem, and it does not admit -PR #3647. +This is a finite certificate for one local supplier instance and its hosted +invoice. It is not a scoped all-size proof or a multiplication theorem, and it +does not admit PR #3647. It also makes no κ claim. Today the complex primitive +binds. The bit side would bind only if the pending complex chain +(PR #3653/PR #3682) were admitted. ## Open next questions [TASK.json](TASK.json) structures these. -1. **Is the R437 hosted matching legal?** The question is whether each of the - 3,933 (stage, helper) slots per replica lies in an idle child that is still - pending at that stage, with disjoint offsets, giving the remainders - `{2:431, 4:444, 6:444, 7:666, 34:2, 42:11}`. This is the remaining - word-to-invoice step. First step: rederive the nine windows' stage lists - from the template schedule and the hosting rule of selected #589 (#442), then - replay the slot list. -2. **Is the dirt-only change to two COPY sources contract-neutral?** E464 +1. **Is the dirt-only change to two COPY sources contract-neutral?** E464 changes the arbitrary-dirt content of the retained totals h477 and h478 (two rank-7 captures) by helper 340's column, while their clean rows are unchanged. The question is whether the inherited capture contract (one paid transform plus linear private-stream discard) is provably independent of the dirt pattern of a captured total. First step: state the native capture - lemma's hypotheses and check them on these two captures. -3. **Price, once hosting is checked.** Rerun an independent exact price engine - on the full R437 paid profile, with the inherited surcharges, and confirm - c together with the next-grid-point rejection. + lemma's hypotheses as used by selected #589, and check them on these two + captures. +2. **Do the native projector identities hold for the changed paths?** The paths + are receiver 444 (0 → 186 → 509) and the GL node at frame 506. First step: + build the exact rational projectors of frames 0, 79, 186, 506 and 509 from + the E8 lines, and check P_A P_B = P_A and D_(B−A) D_A = D_B on these + transitions. +3. **Which admission dependencies remain?** For PR #3647 to supply the bit side, + the complex chain PR #3653/PR #3682 must first make the bit side binding. + After that, maintainers must accept the inherited interfaces. First step: + reconcile this package's checks with the PR #3653/#3682 review state when + that chain is reviewed. ## Predecessors and credit - **PR #3647** (ai-nanachi; substantial OpenAI Codex assistance per its - README): the R437 composition, the helper464 GL edit and the record stream - audited here. + README): the R437 composition, the helper464 GL edit, the records, the + hosted template and the claimed c, all audited here. - **#1043** (Ali Romman): the helper470 deletion and its source-boundary proof on main. Its other replays (PR #1302, PR #2971, PR #2653) cover helper470 alone and are cited, not redone. -- **Selected #589 package** (eumemic, DreamingOfClouds and the credited chain in - its NOTICE): the word format and semantics. -- **PR #3668** (jwr404): histogram-to-c arithmetic, not repeated here. +- **Selected #589 chain** (eumemic, DreamingOfClouds, DaysSky's #442 hosting, + #510/#463 nine-stage caller and invoice, and the credited chain in their + NOTICEs): every semantic rule used here. +- **PR #3668** (jwr404): histogram-to-c arithmetic on the published + histogram. This package rederives the histogram instead. - This loop's earlier audit, PR #3687, supplied the audit pattern only. It covered a different, complex supplier. diff --git a/research/r437-composed-bit-independent-audit/RESULT.json b/research/r437-composed-bit-independent-audit/RESULT.json index 64a2ccca02..319910a880 100644 --- a/research/r437-composed-bit-independent-audit/RESULT.json +++ b/research/r437-composed-bit-independent-audit/RESULT.json @@ -136,6 +136,174 @@ "selected589_equals_baseline": true }, "frames": 636, + "hosting": { + "banks": 0, + "calls": 288, + "copy_in_range": true, + "deficit": 10272, + "emitted_local_events": 7814016, + "every_occurrence_once": true, + "hosted_occurrences": 125856, + "idle_children_per_replica": { + "2": 431, + "4": 444, + "6": 444, + "7": 666, + "34": 2, + "42": 11 + }, + "local_programs_equal_records": true, + "offsets_disjoint_within_rank": true, + "owners_match_slots_and_blocks": true, + "rank_mass": 1808352, + "remainders_equal_published": true, + "schedule_equals_main_recipe": true, + "slots": 3933, + "stage_inside_window": true, + "template_canonical_sha256": "2e868ff427654e47df34779299545c53aa05b8c96697ee126e80e7bc6a50990a", + "template_source_record_sha256": "caeb2eb0e417992788c32c1f5812ada60b46d1dfdba9f4ac376299b2dede13cb", + "whole_profile": { + "1": 380160, + "2": 400864, + "3": 22176, + "4": 26592, + "5": 29376, + "6": 17376, + "7": 26496, + "34": 64, + "42": 352 + }, + "width_matches_word": true, + "windows": { + "0": [ + 1, + 14, + [ + 0, + 1 + ] + ], + "1": [ + 1, + 7, + [ + 2 + ] + ], + "2": [ + 2, + 28, + [ + 0, + 1, + 2, + 3 + ] + ], + "3": [ + 2, + 7, + [ + 4 + ] + ], + "4": [ + 3, + 42, + [ + 0, + 1, + 2, + 3, + 4, + 5 + ] + ], + "5": [ + 3, + 7, + [ + 6 + ] + ], + "6": [ + 0, + 42, + [ + 3, + 4, + 5, + 6, + 7, + 8 + ] + ], + "7": [ + 1, + 28, + [ + 5, + 6, + 7, + 8 + ] + ], + "8": [ + 2, + 14, + [ + 7, + 8 + ] + ], + "9": [ + 3, + 0, + [] + ] + }, + "windows_rederived_equal": true + }, + "hosting_mutants": [ + { + "broken": [ + "stage_inside_window", + "offsets_disjoint_within_rank", + "remainders_equal_published", + "owners_match_slots_and_blocks", + "whole_profile" + ], + "mutant": "slot_moved_outside_window", + "rejected": true + }, + { + "broken": [ + "offsets_disjoint_within_rank", + "owners_match_slots_and_blocks" + ], + "mutant": "slot_offsets_overlap", + "rejected": true + }, + { + "broken": [ + "every_occurrence_once", + "remainders_equal_published", + "owners_match_slots_and_blocks", + "whole_profile" + ], + "mutant": "slot_dropped", + "rejected": true + }, + { + "broken": [ + "windows_rederived_equal", + "remainders_equal_published", + "whole_profile" + ], + "mutant": "idle_rank_changed", + "rejected": true + } + ], "mutants": [ { "expect_rejected": true, @@ -291,12 +459,90 @@ } ], "pins": { + "research/bit-boundary-persistence/CERTIFICATE.json": "32c6cd6103006d627909cabdaf5083238c661a6582016a8b21075bd01c892eff", "research/bit-boundary-persistence/FRAME-PATHS.json": "0d347b9e4d8a8336a707565deceb1d505cd138c97a56831643583b83d91c3b4f", + "research/e8-bit-p111-tuned/data/selection9-p111.json": "4ab1ed4529683cd184987f8bc3031fb7408b9cd22c25ab9cf541a8aaf896eaf1", "research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f", "research/r437-composed-bit-independent-audit/inputs/FINAL-R438-WORD.json.gz": "5aa4d91fb0062265b25fb8f322a57b76d89caaf055b4110cf6fdb761f0b27463", "research/r437-composed-bit-independent-audit/inputs/R437-COMPOSED-WORD.json.gz": "e432182d5b62c8bbefeb871fce30317234d707e5e18d4295e65ac21f7fd8365e", + "research/r437-composed-bit-independent-audit/inputs/R437-GLOBAL-TEMPLATE.json.gz": "00dee04c5372ac300b678c4ac1e6770c178923099d2d4bf01be9e4bccd2a1e72", "research/r437-composed-bit-independent-audit/inputs/R437-RECORDS.bin.gz": "6e556dae1a2f56f3893afa9b316f6029712c6b79a3536a429f8d83cac79163e9" }, + "precision_R437": { + "charged_prefix_bits": 192, + "charged_two_level_bits": 512, + "children": 903456, + "coefficient_bits": [ + 177, + 177 + ], + "halving_depth": 2, + "halving_inequality": [ + 3528, + 4096 + ], + "prefix_bits": 177, + "row_coefficient": 18355, + "two_level_bits": [ + 393, + 393 + ] + }, + "price": { + "R437": { + "c": "868314126713557740143/500000000000000000000000", + "moment_lower_at_next_grid_above_one": true, + "moment_upper_at_c_below_one": true, + "next_grid": "1736628253427115480287/1000000000000000000000000" + }, + "c1043_control": { + "bracket": { + "c": "433544072119966441673/250000000000000000000000", + "moment_lower_at_next_grid_above_one": true, + "moment_upper_at_c_below_one": true, + "next_grid": "1734176288479865766693/1000000000000000000000000" + }, + "idle_children_per_replica": { + "2": 430, + "4": 441, + "6": 443, + "7": 666, + "10": 5, + "12": 3, + "14": 1, + "42": 9 + }, + "split_exact": true + }, + "control_one_child_per_replica_relabelled_rejected": true, + "selected589_control": { + "bracket": { + "c": "1733427039589844234749/1000000000000000000000000", + "moment_lower_at_next_grid_above_one": true, + "moment_upper_at_c_below_one": true, + "next_grid": "6933708158359376939/4000000000000000000000" + }, + "every_stage_hosts_all_helpers": true, + "idle_children_per_replica": { + "2": 435, + "4": 444, + "6": 444, + "7": 666, + "42": 9 + }, + "stages_legal": true, + "whole_profile": { + "1": 381024, + "2": 400416, + "3": 22752, + "4": 26880, + "5": 29376, + "6": 17376, + "7": 26784, + "42": 288 + } + } + }, "profile_delta": { "additive": true, "composed": { @@ -328,6 +574,8 @@ "forward": { "adds": 24208, "bad_columns": 0, + "bits": 16, + "cancellation_free_row_l1": 49347, "copies": 9, "profile": { "1": 1320, @@ -352,6 +600,8 @@ "reverse": { "adds": 24208, "bad_columns": 0, + "bits": 21, + "cancellation_free_row_l1": 1113998, "copies": 9, "profile": { "1": 1320, diff --git a/research/r437-composed-bit-independent-audit/SOURCES.json b/research/r437-composed-bit-independent-audit/SOURCES.json index 320bd7771e..2dba175e8e 100644 --- a/research/r437-composed-bit-independent-audit/SOURCES.json +++ b/research/r437-composed-bit-independent-audit/SOURCES.json @@ -43,6 +43,30 @@ "usage": "provenance", "git_blob": "a90bed93e227c3916aca67817794f35e24123ceb", "sha256": "6d8fccd44508e4705b6446e0a64482a5221a3efc5663c5ca7ae90d44581ac50a" + }, + { + "path": "research/e8-bit-p111-tuned/data/selection9-p111.json", + "usage": "input", + "git_blob": "e69ea66a3add357f570fc5552ab6368b3c8f9bb2", + "sha256": "4ab1ed4529683cd184987f8bc3031fb7408b9cd22c25ab9cf541a8aaf896eaf1" + }, + { + "path": "research/bit-boundary-persistence/CERTIFICATE.json", + "usage": "input", + "git_blob": "56400920050c523e6e399f2455137b36c35cf528", + "sha256": "32c6cd6103006d627909cabdaf5083238c661a6582016a8b21075bd01c892eff" + }, + { + "path": "research/e8-bit-carrier-skeleton/code/hub/idle-axis-hosting/hosting_core.py", + "usage": "provenance", + "git_blob": "68b536daa9e6546c0aa046934bf840aaa3c3fde3", + "sha256": "d8b90cd5d152df3c7c351230863d9e61816ad5e1f21d69bea1a86a5daad559a3" + }, + { + "path": "research/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/moment.py", + "usage": "provenance", + "git_blob": "7d697cb45203fe72d97037403d6da41f71f3b7fd", + "sha256": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482" } ], "snapshot": [ @@ -71,6 +95,14 @@ "sha256": "6e556dae1a2f56f3893afa9b316f6029712c6b79a3536a429f8d83cac79163e9", "uncompressed_sha256": "caeb2eb0e417992788c32c1f5812ada60b46d1dfdba9f4ac376299b2dede13cb", "note": "gzip (level 9, mtime 0) of the PR file; the verifier checks the decompressed SHA256" + }, + { + "local": "inputs/R437-GLOBAL-TEMPLATE.json.gz", + "source_path": "research/bit-p111-r437-gl464-470-20261018/generated/GLOBAL-TEMPLATE.json.gz", + "source_commit": "36ff441479ff9c7e70d83f0becccd44da50effb8", + "source_pr": 3647, + "git_blob": "df9238596dbe8cd355a65aa170caa54f543c39cd", + "sha256": "00dee04c5372ac300b678c4ac1e6770c178923099d2d4bf01be9e4bccd2a1e72" } ] } diff --git a/research/r437-composed-bit-independent-audit/TASK.json b/research/r437-composed-bit-independent-audit/TASK.json index e46294c451..c9db2bdefd 100644 --- a/research/r437-composed-bit-independent-audit/TASK.json +++ b/research/r437-composed-bit-independent-audit/TASK.json @@ -46,33 +46,33 @@ ] }, "scope_status": "changed", - "actual_scope": "Independently audit PR #3647 (head 36ff4414)'s composed R437 bit word: the helper464 joint GL deletion composed with #1043's helper470 deletion, against single-change controls #589+E464 (the PR's R438) and #589+E470 (#1043's R438, rebuilt). Covered: the exact F2 identity on all 659 inputs with arbitrary dirty helpers, by a forward replay and a reverse pull-back, plus the literal reverse orientation; literal reconstruction of R437 from selected #589; aligned-trace non-interaction; SOURCE77 frame-186 chronology and all SOURCE write boundaries; the local paid profile and its deltas; byte binding of the PR's 27,132-record stream to an independent lowering, with a record replay in both orientations; 18 required-failing mutants and one positive control.", + "actual_scope": "Independently audit PR #3647 (head 36ff4414)'s composed R437 bit supplier: the helper464 joint GL deletion composed with #1043's helper470 deletion, against single-change controls #589+E464 (the PR's R438) and #589+E470 (#1043's R438, rebuilt). Word level: the exact F2 identity on all 659 inputs with arbitrary dirty helpers, by a forward replay and a reverse pull-back, plus the literal reverse orientation; literal reconstruction of R437 from selected #589; aligned-trace non-interaction; SOURCE77 frame-186 chronology and all SOURCE write boundaries; the local profile and its deltas. Stretch, completed: byte binding of the PR's records and the template's local programs; the parent schedule and idle windows from main's recipe and hosting rule; legality of the 3,933 slots per replica and all 288 calls' owners; the whole paid profile; the invoice precision envelope; and an independent exact price bracket for c, with positive controls reproducing selected #589's a and #1043's c. Plus 18 word mutants, 4 hosting mutants and 1 price mutant, all rejected, and one positive control.", "scope_change_reason": "The card's default object is a complex-moment/assembly claim. Orientation found that the selected #589 bit cap a/(1+a) = 0.0017304274698236 is only 8.57e-9 above the pending complex chain PR3653/PR3682 (kappa 0.0017304189). If that chain is admitted, the bit primitive binds and gains need an admitted better bit supplier. PR #3647 is the highest open bit claim (c = 0.001736628253427115) and had author checks only (PR3668 checks only histogram-to-c arithmetic). The card's method, reconstructing a coordinated change against its single-change controls, is applied to that supplier.", - "bottleneck_link": "The word and record-level inputs of PR #3647's bit invoice are now independently checked, and the composition is shown to be non-interacting. If the bit side binds, the remaining unchecked steps before c could be admitted are the hosted matching/owner legality, the invoice/price, and the inherited assumptions. Today the complex primitive binds, so there is no kappa change.", + "bottleneck_link": "Under the selected chain's inherited semantics, PR #3647's bit supplier c = 0.001736628253427115 (cap 0.0017336176) now has an independent finite check from the literal word through hosting to the price root. If the pending complex chain PR3653/PR3682 is admitted, the bit side binds and this is the highest checked bit supplier. Remaining items before admission are the native capture/transport and physical-owner semantics and the inherited assumptions. Today the complex primitive binds, so there is no kappa change.", "budget_minutes": 180, - "stop_rule": "Stop at the first of: a confirmed discrepancy (minimize with mutants); a full PASS of identity, composition, controls, chronology, profile and mutants with both methods agreeing; word semantics not pinned within about 60 min (hand off); or a PR head change (re-pin once). Outcome: full PASS. The hosted-invoice stretch was not attempted beyond a count-level split, so c is not validated.", + "stop_rule": "Stop at the first of: a confirmed discrepancy (minimize with mutants); a full PASS of identity, composition, controls, chronology, profile and mutants with both methods agreeing; word semantics not pinned within about 60 min (hand off); or a PR head change (re-pin once). Outcome: full PASS of the core within the semantics budget. The bounded hosted-invoice stretch (at most 60 min) also completed inside the experiment window: hosting, profile, precision envelope and price bracket. c is reproduced under the inherited semantics, not admitted.", "outcome": "completed", - "evidence": "PASS_INDEPENDENT_R437_WORD_AUDIT (RESULT.json). Identity: R437 (659 inputs) and controls #589 (661), #589+E464 = PR R438 (660) and #589+E470 = #1043 R438 (660, rebuilt) all map (x,y,h) to (x,y+x,h) over F2 with legal nested climbs and FULL/t-perp final frames. Forward replay and reverse pull-back agree entrywise; the reverse orientation passes; H1-H5/U/J hold; D0/C equal the rebuilt ones. Composition: #589+E464+E470 with rebuilt D0/C equals the PR's R437 except stats metadata. The E470 control reproduces #1043's FRAME-PATHS.json (660/661 paths), D0 18,085->18,030 and its profile. Non-interaction: E470 changes no projected value; E464 changes no clean column, only helper 340's dirt column at A2044/A2047/A2068/A2070 (two of them write retained totals 477/478) and their C inverses. The composed trace equals the E464 control's with h470 deleted at all 5,369 aligned gates. Profile deltas add: R437 {1:1320,2:1344,3:77,4:43,5:102,6:11,7:18}, mass 5,113, ADDs 24,208 (D17982/A2133/scatter527/B934/C2632). All 966 SOURCE write gates have identical projected full rows; all SOURCE climbs are unchanged (windowed). x77 is clean at the frame-186 read, reached at A426. Records: the PR stream (27,132 records, sha caeb2eb0...) is byte-identical to an independent lowering and passes record replay in both orientations. 18 mutants are rejected; the early-read mutant passes F2 identity and legality and is rejected only by the chronology check. The published whole profile splits as 288 x local + 32 x {2:431,4:444,6:444,7:666,34:2,42:11}, mass 1,808,352 (arithmetic only).", + "evidence": "PASS_INDEPENDENT_R437_WORD_AUDIT (RESULT.json). Word: R437 (659 inputs) and controls #589 (661), #589+E464 = PR R438 (660) and #589+E470 = #1043 R438 (660, rebuilt) all map (x,y,h) to (x,y+x,h) over F2 with legal nested climbs and FULL/t-perp final frames. Forward replay and reverse pull-back agree entrywise; the reverse orientation passes; H1-H5/U/J hold; D0/C equal the rebuilt ones. #589+E464+E470 equals the PR's R437 except stats metadata. The E470 control reproduces #1043's FRAME-PATHS.json, D0 18,085->18,030 and its profile. E470 changes no projected value; E464 changes no clean column, only helper 340's dirt column at A2044/A2047/A2068/A2070 and their C inverses. The composed trace equals the E464 control's with h470 deleted at all 5,369 aligned gates. Profile {1:1320,2:1344,3:77,4:43,5:102,6:11,7:18}, mass 5,113, ADDs 24,208; deltas additive. All 966 SOURCE write gates and all SOURCE climbs match #589; x77 is clean at the frame-186 read, reached at A426. Records: the PR stream (27,132 records, sha caeb2eb0...) is byte-identical to an independent lowering, replays in both orientations (norms 49,347/1,113,998), and equals the template's local programs. Hosting: the schedule equals main's recipe; the windows are rederived; 3,933 slots per replica are legal and disjoint; remainders give idle {2:431,4:444,6:444,7:666,34:2,42:11}; 288 calls' owners match the slots and data routes; 125,856 hosted, 0 banks. Whole profile {1:380160,2:400864,3:22176,4:26592,5:29376,6:17376,7:26496,34:64,42:352}, mass 1,808,352, deficit 10,272. Precision: prefix 177 (192), coefficient 177, two-level 393 (512), depth 2, ROW 18,355. Price: c = 868314126713557740143/5e23 brackets with the next 1e-24 point failing. Controls: selected #589 a = 0.001733427039589844234749 from main-only inputs and #1043 c = 0.001734176288479865766692 are reproduced. The early-read mutant passes F2 identity and legality and is rejected only by the chronology check.", "author": "Sagar Thakrar (thakrarsagar)", "ai_assistance": "Substantial AI assistance from Claude (Anthropic, Claude Opus 5.5): design, code, checks and write-up in an automated research loop. No human or formal-kernel review is claimed.", "open_questions": [ - { - "question": "Is PR #3647's R437 hosted matching legal: does each of the 3,933 (stage, helper) slots per replica lie in an idle child still pending at that stage, with disjoint offsets, giving remainders {2:431,4:444,6:444,7:666,34:2,42:11}?", - "why_it_matters": "It is the remaining word-to-invoice step. The idle part of the whole profile, and hence c, depends on it, and this package takes it as published.", - "first_step": "Rederive the nine windows' stage lists from the GLOBAL-TEMPLATE schedule and selected #589's (#442) hosting rule, then replay the slot list for disjointness and remainders.", - "blocked_by": "Pinning the pending-idle-child semantics from main's #442/#1043 hosting sources rather than the PR's emitter." - }, { "question": "Is the dirt-only change to two COPY sources contract-neutral? E464 changes the arbitrary-dirt content of retained totals h477/h478 by helper 340's column while their clean rows are unchanged.", "why_it_matters": "The rank-7 captures rely on the inherited 'one paid transform plus linear private-stream discard' contract. If that contract depended on the dirt pattern of a captured total, the GL edit would need a separate native argument.", "first_step": "State the native capture lemma's hypotheses as used by selected #589 and check them on the two affected captures.", - "blocked_by": "None for the local check; the native lemma's statement must be located in the selected sources." + "blocked_by": "Locating the native capture lemma statement in the selected sources." + }, + { + "question": "Do the native rational projector identities (P_A P_B = P_A, D_(B-A) D_A = D_B) hold on the changed paths: receiver 444 (0 -> 186 -> 509) and the GL node at frame 506?", + "why_it_matters": "This package checks the frame nesting/dimension model and F2 values, not the physical rational transport that PR #3647's R437-LOCAL proof states.", + "first_step": "Build exact rational projectors for frames 0, 79, 186, 506 and 509 from the E8 lines and check both identities on these transitions.", + "blocked_by": "None." }, { - "question": "Does an independent exact price engine on the full R437 paid profile, with inherited surcharges, confirm c = 0.001736628253427115 and reject the next 1e-24 grid point?", - "why_it_matters": "This is needed before c could serve as an admitted bit supplier if the bit side binds. PR #3668 checks only the arithmetic on the published histogram.", - "first_step": "After question 1, rerun a separately written two-moment engine on the audited profile and the rederived idle histogram.", - "blocked_by": "Question 1 (hosted idle histogram)." + "question": "Which admission dependencies remain for PR #3647 as the bit supplier once the bit side binds?", + "why_it_matters": "The relevance is conditional on the complex chain PR3653/PR3682. A checked local supplier is not an admitted one.", + "first_step": "Reconcile this package's checks with the PR3653/PR3682 review state and the inherited-interface list when that chain is reviewed.", + "blocked_by": "Review of PR3653/PR3682." } ] } diff --git a/research/r437-composed-bit-independent-audit/VERIFY.json b/research/r437-composed-bit-independent-audit/VERIFY.json index 3af130bf32..f6ec7847df 100644 --- a/research/r437-composed-bit-independent-audit/VERIFY.json +++ b/research/r437-composed-bit-independent-audit/VERIFY.json @@ -5,7 +5,9 @@ "requirements": [], "inputs": [ "research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz", - "research/bit-boundary-persistence/FRAME-PATHS.json" + "research/bit-boundary-persistence/FRAME-PATHS.json", + "research/e8-bit-p111-tuned/data/selection9-p111.json", + "research/bit-boundary-persistence/CERTIFICATE.json" ], "commands": [ { @@ -16,7 +18,7 @@ "{package}/verify.py" ], "timeout_seconds": 300, - "checks": "Source pins; frame closure; for #589, #589+E464 (PR R438), #589+E470 (#1043 R438 rebuilt) and PR R437: F2 identity on all inputs by forward replay and reverse pull-back (entrywise agreement), reverse orientation, H1-H5/U/J, rebuilt D0/C; literal composition equals the PR's R437; #1043 FRAME-PATHS equality; aligned-trace non-interaction; SOURCE write boundaries and chronology; profile deltas; byte equality of the PR record stream with an independent lowering and record replay in both orientations; 18 required-failing mutants and one positive control; receipt equality with RESULT.json." + "checks": "Source pins; frame closure; for #589, #589+E464 (PR R438), #589+E470 (#1043 R438 rebuilt) and PR R437: F2 identity on all inputs by forward replay and reverse pull-back (entrywise agreement), reverse orientation, H1-H5/U/J, rebuilt D0/C; literal composition equals the PR's R437; #1043 FRAME-PATHS equality; aligned-trace non-interaction; SOURCE write boundaries and chronology; profile deltas; byte equality of the PR record stream with an independent lowering, record replay in both orientations, and template local programs; schedule from main's recipe, idle windows by the selected rule, slot legality, owners of 288 calls, remainders and the whole paid profile; invoice precision envelope; exact price bracket for c, with selected #589 and #1043 positive controls; 18 word mutants, 4 hosting mutants, 1 price mutant and one positive control; receipt equality with RESULT.json." } ] } diff --git a/research/r437-composed-bit-independent-audit/compose.py b/research/r437-composed-bit-independent-audit/compose.py index c60dc64167..ffa70ac224 100644 --- a/research/r437-composed-bit-independent-audit/compose.py +++ b/research/r437-composed-bit-independent-audit/compose.py @@ -54,9 +54,9 @@ def apply(w589, new_node=None, do464=False, do470=False, read=None, read_at=None dead = sorted(([464] if do464 else []) + ([470] if do470 else [])) v = w['v'] for q in dead: - for sec in ('A', 'B', 'D', 'C'): + for sec in ('A', 'B'): for g in w[sec]: - need(q != g[1] and q not in g[2] or sec in ('D', 'C'), 'deleted helper %d still used in %s' % (q, sec)) + need(q != g[1] and q not in g[2], 'deleted helper %d still used in %s' % (q, sec)) need(q not in w['ret'], 'deleted helper is retained') def ren(r): diff --git a/research/r437-composed-bit-independent-audit/hosting.py b/research/r437-composed-bit-independent-audit/hosting.py new file mode 100644 index 0000000000..3daa96f018 --- /dev/null +++ b/research/r437-composed-bit-independent-audit/hosting.py @@ -0,0 +1,208 @@ +"""Bounded check of PR #3647's R437 hosted template against the audited word and records. + +The hosting rule is taken from the selected chain's idle-axis hosting module on main +(research/e8-bit-carrier-skeleton/code/hub/idle-axis-hosting/hosting_core.py, docstrings of +windows() and expand()). This module is written separately for the audit and imports nothing +from it. + +Rule: an idle child (idx, pair p, rank r) may host a whole width-w helper residual of a local +invocation at stage s only when that invocation lies strictly between the last touch of pair p +(a local invocation on p, or a bridge naming p) and the idle child, and is not on p itself. +Each of the 2v (side, port) data families of p receives one copy of the child; a hosted residual +owns coordinates [off, off + w) of one copy, and that child keeps the remaining rank. +""" +from collections import Counter, defaultdict + +from wordsem import need + + +def nine_stage_schedule(K=4): + """Parent recipe of the selected nine-stage caller (global_k.py on main: recipe(K) and its + idle-child insertion after each local stage), with idle children numbered in order.""" + ev = [dict(kind='local_cover_sweep', stage=0, pair=0, reverse=False)] + stage = 1 + for j in range(K): + ev.append(dict(kind='local_cover_sweep', stage=stage, pair=j, reverse=True)) + stage += 1 + if j < K - 1: + ev.append(dict(kind='bridge', dst=j, src=j + 1, coefficient=1)) + ev.append(dict(kind='local_cover_sweep', stage=stage, pair=j, reverse=False)) + stage += 1 + if j < K - 1: + ev.append(dict(kind='bridge', dst=j, src=j + 1, coefficient=-1)) + for j in reversed(range(K - 1)): + ev.append(dict(kind='bridge', dst=j + 1, src=j, coefficient=1)) + ev.append(dict(kind='exchange')) + out, levels, idx = [], [-1] * K, 0 + for e in ev: + out.append(e) + if e['kind'] != 'local_cover_sweep': + continue + s, p = e['stage'], e['pair'] + levels[p] = s + new = [] + if s % 2 == 1 and s <= 2 * K - 3: + j = (s + 1) // 2 + new.append((j, 7 * (s + 1), -1, s)) + levels[j] = s + elif s % 2 == 0 and 2 <= s <= 2 * K - 2: + new.append((s // 2, 7, s - 1, s)) + levels[s // 2] = s + elif s == 2 * K: + for j in range(K): + new.append((j, 7 * (2 * K - levels[j]), levels[j], 2 * K)) + levels[j] = 2 * K + for j, rank, lo, hi in new: + out.append(dict(kind='idle', idx=idx, pair=j, rank=rank, source_level=lo, target_level=hi)) + idx += 1 + return out + + +def windows(schedule): + last, out, local = {}, {}, [] + for pos, e in enumerate(schedule): + k = e['kind'] + if k == 'local_cover_sweep': + local.append((pos, e['stage'], e['pair'])) + last[e['pair']] = pos + elif k == 'bridge': + last[e['dst']] = pos + last[e['src']] = pos + elif k == 'idle': + p, lo = e['pair'], last.get(e['pair'], -1) + out[e['idx']] = (p, e['rank'], sorted(s for q, s, pp in local if lo < q < pos and pp != p)) + else: + need(k == 'exchange', 'unknown schedule event %r' % k) + return out + + +def events_from_records(records, reverse): + """Expected local-program events of one orientation, from the record stream, following the + event layout of the selected nine-stage caller (global_k.py on main).""" + out = [] + rank = {x: z for op, x, y, c, f, z in records if op == 2} + for op, x, y, c, f, z in (reversed(records) if reverse else records): + r = int(reverse) + if op == 0: + old, new = (c, y) if reverse else (y, c) + out.append([0, x, old, new, f, r]) + elif op == 1: + out.append([1, x, y, -c if reverse else c, f, r]) + elif op == (3 if reverse else 2): + out.append([2, x, y, c, f, rank[x], r]) + else: + out.append([3, x, y, c, f, z, r]) + return out + + +def check(template, word, geo, records, local_profile): + v, R = word['v'], word['R'] + V2, n = 2 * v, 2 * v + R + res = {} + need(template['stages'] == 9 and template['replicas'] == 32 and template['h'] == 8, 'template shape') + stages, replicas = template['stages'], template['replicas'] + pairs = 4 + fam_per_replica = pairs * V2 + sched = template['schedule'] + sweeps = {e['stage']: e for e in sched if e['kind'] == 'local_cover_sweep'} + need(sorted(sweeps) == list(range(stages)), 'one local sweep per stage') + + # 1. the template's parent schedule equals main's recipe; windows by the selected hosting rule + res['schedule_equals_main_recipe'] = sched == nine_stage_schedule() + win = windows(sched) + published = {int(k): (p, r, sorted(st)) for k, (p, r, st) in template['hosting']['windows'].items()} + res['windows_rederived_equal'] = {k: x for k, x in win.items() if x[1] > 0} == published + res['windows'] = {k: list(x) for k, x in sorted(win.items())} + + # 2. helper widths from the literal word (8 - start-frame dimension; all end at FULL) + widths = [8 - geo.dim[word['start'][2 * v + h]] for h in range(R)] + need(all(geo.dim[word['final'][2 * v + h]] == 8 for h in range(R)), 'a helper does not end at FULL') + + # 3. slot list: every (stage, helper) occurrence exactly once, legal window, disjoint offsets + slots = template['hosting']['slots'] + seen = Counter((s, h) for idx, cp, off, w, s, h in slots) + res['slots'] = len(slots) + res['every_occurrence_once'] = (set(seen) == {(s, h) for s in range(stages) for h in range(R)} + and all(c == 1 for c in seen.values())) + used = defaultdict(list) + ok_window = ok_width = ok_copy = True + for idx, cp, off, w, s, h in slots: + ok_window &= idx in win and s in win[idx][2] + ok_width &= w == widths[h] + ok_copy &= 0 <= cp < V2 + used[idx, cp].append((off, w)) + disjoint = True + for (idx, cp), segs in used.items(): + segs.sort() + end = 0 + for off, w in segs: + disjoint &= off >= end and off + w <= win[idx][1] + end = off + w + res['stage_inside_window'] = ok_window + res['width_matches_word'] = ok_width + res['copy_in_range'] = ok_copy + res['offsets_disjoint_within_rank'] = disjoint + + # 4. remainders: every copy of every positive-rank child keeps rank - used + rem = Counter() + per_idx = {} + for idx, (p, r, st) in win.items(): + if r == 0: + continue + hist = Counter(r - sum(w for _, w in used.get((idx, cp), [])) for cp in range(V2)) + per_idx[idx] = {k: x for k, x in sorted(hist.items()) if k} + rem.update({k: x for k, x in hist.items() if k}) + published_rem = {int(k): {int(a): b for a, b in x.items()} for k, x in template['hosting']['remainders'].items()} + res['remainders_equal_published'] = per_idx == published_rem + res['idle_children_per_replica'] = dict(sorted(rem.items())) + + # 5. calls: 9 stages x 32 replicas, owners agree with slots and the data blocks; no banks + slot_of = {(s, h): (idx, cp, off, w) for idx, cp, off, w, s, h in slots} + calls = template['calls'] + res['calls'] = len(calls) + good_calls = len(calls) == stages * replicas and sorted({(c['stage'], c['replica']) for c in calls}) == [ + (s, r) for s in range(stages) for r in range(replicas)] + hosted = 0 + for c in calls: + s, rep, p = c['stage'], c['replica'], c['pair'] + sw = sweeps[s] + good_calls &= p == sw['pair'] and c['orientation'] == ('reverse' if sw['reverse'] else 'forward') + own = c['owners'] + good_calls &= len(own) == n + block = rep * fam_per_replica + p * V2 + data_fams = [] + for reg, (fam, route) in enumerate(own): + if reg < V2: + # data route of the selected caller: side flips in a reverse sweep + side = (reg // v) ^ int(sw['reverse']) + good_calls &= route == ['data', s, reg % v] and fam == block + side * v + reg % v + data_fams.append(fam) + elif (s, reg - V2) not in slot_of: + good_calls = False + else: + idx, cp, off, w = slot_of[s, reg - V2] + pidx = win[idx][0] + good_calls &= (route == ['hosted', idx, off, w] and fam == rep * fam_per_replica + pidx * V2 + cp + and pidx != p) + hosted += 1 + good_calls &= sorted(data_fams) == list(range(block, block + V2)) + res['owners_match_slots_and_blocks'] = good_calls + res['hosted_occurrences'] = hosted + res['banks'] = sum(template['banks_per_stage'].values()) + sum(template['hosting']['banks_per_stage'].values()) + res['emitted_local_events'] = len(calls) * len(records) + + # 6. local programs bound to the audited record stream (both orientations) + lp = template['local_programs'] + res['local_programs_equal_records'] = all(lp[k] == events_from_records(records, k == 'reverse') + for k in ('forward', 'reverse')) + + # 7. whole paid profile = calls x local profile + replicas x idle remainders + whole = Counter() + for k, x in local_profile.items(): + whole[int(k)] += stages * replicas * x + for k, x in rem.items(): + whole[k] += replicas * x + res['whole_profile'] = dict(sorted(whole.items())) + res['rank_mass'] = sum(k * x for k, x in whole.items()) + res['deficit'] = template['m'] * template['live'] - res['rank_mass'] + return res diff --git a/research/r437-composed-bit-independent-audit/inputs/R437-GLOBAL-TEMPLATE.json.gz b/research/r437-composed-bit-independent-audit/inputs/R437-GLOBAL-TEMPLATE.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..df9238596dbe8cd355a65aa170caa54f543c39cd GIT binary patch literal 797869 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%0DsgdNqezClGGTWQk*%+> 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 z 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 z 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%0DI7BmwM&k z?}gteyWD;%uJPi#Cej+5eT7BiQk21)MQ7GmqcginAF5!K2S+xhB1_%2N1o5-KaAgb z;qxZoNtQz06wZYMZpY8!Jg<%yP7>Y&X~K17?A?y#N>=Y*p0KSG5G+_kjAC!u-h*9O z7=|q$R)-(u7yCBDGNoF`SpJ}%Y~~*HYSkH~5=C?4PR;*_+hg-9NXxu*ES+w${h=B` z(9QKQb9_^Uo`c}nue5&L244f3++CCr!86Ub9#YM{5b^_gZ{fInnwpW&3UF<-yU{8kwkHp%%1mFKuL$R<>s* zM9N-xd(^$veNq0pc1j>8|pRTvH%W}Czc&q}Jsqo)Q<#?fvb|tA@2i;e; zwa&y!&rP2D{CL{CrZL&cRta0#JALh$`(gFrBSO2T%a)fiNUrt(HHWJThi`Exxv`nN z`~6n!`efQvK8Idj0u^K1u}qd-cMo`Y!aT)Ko4)-Bj@(l2rk{;EOHOD$;@|i9=q|8U zbEHxKS>og8pl!XT>2!mX!Z4#JbmZa$Khu3@?@$zCG8imzyn4wE6UhpwFChJ>p2acC zk6`!_69y+= zd%ff4k1|`RJwIvD+cl8iYh)GAOJT)9H-{tFGWP*c6Ksu$b))GU!*DYHk ztH0AZcHI4SOYci-7IU{JpKB>@&f{;p>*fTWt|z!tI_^DA!Ely&?l-;bx$Ys?OS+b> z{xiEt@FMfa0Z;8|S@i3lvHhPeMp++(sb`}u^)m)~n*|pWeq8bhF0ry>I8!8r25=Xa zM3JXIGD-AOl7hv56)iikN<2BMO#0=wE?1*7W6?5{cY0P(iE!4-5X) zBYk={G@Z`7=TyVVMC-27xeT@XF4d5QckWOl#} zBlT$itG>Jb_Rer>Wm81KjQmun#Rwe6yl(8eBoMe>OmimEzRRHarSgGiLXr0{JSzOl zCFRJ7kXiGTTGn!`G?CQe@Vj?kmky2$e9ojlkr8)J+FY*13Yp~^#C?7+c)MMedeO}$ zcFBLmq~*tM5Rn9r8+QMX#|cHYG=&(>9;9`TbQh$vx^?k|ehe=&FPbFsZKkV82>tl! zQ!>;!H$psKh*0fH%BWM{+{6#^(p?*W>DGL*X3T2y>8d<*iM!Az?kA^WBZyAOdTBxY zc&f4BQpl{_fCRy&_3-!EQfiSyQ#8NXZ?VM-lSHzj5jV??nYn3NzE8P-cWb?@kaTi) zx^yp?Pk(6KNw7zLnd6o+n*P}(F1utL`R3>Fy~c=_GeZKQUs~ktRuhXXx5qJ@KV%x~ z@DyUj|7=ihOc}Ol`uJM#&4&X20*l~N)pCw?=W4gb!F(vG*pNy>(Iy>gAJs*y$oF^y z)$8hY<{WQ**)mPDj>7;(8;~~pF?4u}Q%pZjP8}ztWR#ypW0qr9(`4di)aTP*EM2~i z9{adwEUI->yFI>Qut@&BE0Q_~2EF#>XBc&X{zGN%u_^tHmo?Dy%1{+`H8z6d$f^1m zgU1E0XNF{ZUj2xFaFtsbd-Wj!X7@|&Ea!%d>{Agb`QeQltd=VT@ z$EzyAN&&~9kD9d@Y($+Ki;_KWcJqGT11Y6zt7NRibcP~Of|pDTFIG?+h{zF&xCfP_ z&(_U%{*+Kt)hhU29RJ!3W#NfB#rLYT3VO^wLS^MNId$9m1(oIx;&2aNxueF$fxPtS z3cmQ?fn^1A*n)<$mB{8^m%91O3N6Z!`zLJ0ay%~g`f_mm3diGo>L-mG9HT#tM%-~& zr#JD6`#WhP$5XYEp`ETy0;fd0T6i97H#EaiDE(=?u{h^8>CsJbT(cUM%(76zNbhIE zH)O;(&p+>QW&SG27kXlJveYiY=s{}Dh5TiDU zSdk!ve?Fh@|M!3X&vTzV$@~4j=iYP9>z;G&dEeaoP$B@2ox*h5Y*IPCUK?BNQBW_( z<}}C$N4qPl0vWz`R2`kM414(Ibwn1_=GHdL)No59M@Y1`a$icqYDK@ezE!ADnUYh& znZ_;4V4g!lp@@sx_*~(MNB{2!!5|a%3vo%I-SuZ0jT*E>MOR6V-L5nU9t7M->Uhv& z>+Ll(S!@MiN^mIx3Y>wA}35JD#GDv>4k2qY1geLCeJ z@IuIK*x_wYLWjW9<~GW5hQ!JEtdjCEr+Y@VBS1#y8v1zc6mMxS?qEv=t|RA~#VS7K5N_4gBoiGgj^Q_W0!`|eL53lDis>&vVXu07k03@R=x2nx8d z{pRo6QBdOLi-6~Sga!Ih6S2TA34O39U*tU_)M!ijsuH|g=2Uv)@Res z@u9@5oBg}5SuwU;U>9f`U2f0mQ*|-Q)=`#tTA~{Jh6Rlbb$50ZpjurG1lDdHz3Sj~ zFu)N>wH@j;Q|w;|6)aJX3Xr-FyrN( zIE!QLsX*o5j@2-%uGzGrV~hzftsQw2C)t@WG~f2#FE3NjabFo0nI49{x!*rwuW2>+ zWiDp< zY~-{hz5$)Q@9+oect@CfbQ0BuIT|8TwoV$pmB#UgtH1MS-?umK?TO5-0Qx`pFa*ep}5x zr$Qk$&N=;tT3xEX1n>dW#u4;K3GOSBs(i=){vjLi%Ch_2=COj zrC-D)CK7%VNRRr<^BFMangGrT`^JctI)w?rvht(isLL!>_A$h| zz2gBe)YJXok3u=b`h)`a&TXAVbTnIfY_pnlE_(694*y!wWcLO`;I2Y;5b2{qi-6#w zc3orE#P=cQoB&sIou6##KWo^&33m?e?o;TuLyFqLMywd=U~^8et9eu6zE=YgshyCV zabk{R+*5WRU@BnP($~bN#w}y5vMw5`hViD{oK{R*&f5&^zrAwF=>1W_KYVSp3b`tM z(wSgE>*LB5tnwLyeRmSoJsrlgr4 zW+EckYhl)Hg+VMf94p9A#&(T~d4+WKAV6{(iV{X&&+h74!@Db5Pcl2g-95G!Zi7C~ zb?layl6kC;CLy7;#ipd?l0HI?Qh!02;XM=6IP&MO z(2oy2xhfKnk2?u7C(UCNfIcc$he~XqHf=Ho6cn|$16j8)9V5crn2QMku4u%MIYZF_ z7fZXIX8TP!`Gzgg1xTnl6a;LYv_}XZ==|P4vi_y)SE5zQ#9ogSzP4>|ale_$?6P(4 zkLr!PUOFT%Rcmd@QjQFT{4d3tn(bIlcl zRRU$`>N87)e+=>Y(NU$`O3G&Yc~Mo2hzVq!&|qyH1m`uv6#8*$oz*}-*bD|aw|8zf z$Pc{S+DXLEEb4j5Dn8s6U6@>8LBG>Qg3dYcE26XJ2)u7csIDxtk?+v-eX)7CM~krI#QeMrR3%R zrM~l%Mfbf8+{t-M|Abe7C3c;)mp~|x`9H=JJM7)R_fuPd+s%_JKslsuRzXKedBE)b z^sHOf2RC;5`{)Y&yPVB7g;_@PsFj!OLOmc~Nze8tVD{Y<(5G)5Rp7${@38Ytco?!= zyua)eNw2-ecT={1;$)!F&m6iH0^bahuJYB=l;w{XPwAvW;Qx{qe?`9nBCoNrPfS^#57gPp9U)OKzqa+c10I5r>>!Y-5mrKA8MUF#8`W(24B?- z!($tLG7vAAr9wW+oo;^l?R{&i3TpJM^(|tf-xhf$1FnH;z2>9=xB|+k3spu3Uhf&$ z*wScKor_cjZRoLEl>gO&XScMPeiPvPrPyzkER3SqTXc$oRWHub-#U#U=`RVdKxcZQ z4=<1Xbt?Ga%Bv(1r>xYrE^Fgga}1_(d>H`<;0XYQe&7!VE?G@L%AmbFppXm>_eV@2 z3X_%BQtI(vD^~=K-^XSC1Mga@@amXX{)_&R-*@sC;9~V@GdWr7g<#gp`y}fQzYt9O zx#p}8j8-zaEW2=Soil4=ZVm-z36fuK$Fpp(&4=;Ah!Qvk^f#8sOj8oE%ad zDHR7WQ{smo99{#cmGat>aZ_C7b$?nJdDJR&H{aVlXic70uI%Sg3t40Y9^G-IHX~J< zWfHR^91kaN(4U#+Ov`o_fjP&sfEP*G>9{Irs!d~Q539w>?)0w#S(F;*?TEDH;NN&Z z9>c9jZMbqM1H6enO&t!3(}3U7~}TTJC4d$>-1ToP0@Q#GiV>-T*W9X^mFa ziSH@fR_Fd^l0yILE1FidCgTIj?htF%fkE}tpC?gdc}?jUPw=@^6>oo zX@2s+|CPzI1Oo}Iu>20(xTQ-)&9i~mDHn~)*CC*F@TA|p&XYZcO27E%u@aZv2LjUX%6%V#36DMta zbXstyEd}oG^@d&?r`-)ADWF$YEBJ_=FA!asML(gtltk4x@zXAeH42gk>R0(a-?ILq z-E;=~Mn1A?pgPs3|IAhd5{lJAkm)LbK*U;9vp-3$Ke61Hc!d^FkHLl2FSkoIvY4{D zv=3al?+2L~C|PENE!FXpYyYnl(G;+S^?OE;acKe+#5YlX1bcX)slu0Ie*E(;z)AC~ z%Jj2pW#`z{{l05J$YFmQ3z>{+T{hMJQ@=@-+f3z+aA|WeoFS5~^8{P9?kGJ16ILv& ztYyLWkd*XgON-ycADAx!5!(m1dCBXb8c;Qa7m$cv+p?YwM!rRMCUH8*_mOx%`v%S+ z5x_==M^uizpGM+UymIX2g0_LxTp_@!2bbw9=r!)X*e~gQMv}$a?6Dm!&-}B|3K1g& zZ?Cf0ik0lVcu-DThz*8zS6NGDgFmKeH*#Tkx(JgGV)oL>}uhlAgJOaDlC01!| zx{u5(ycyEA1f_ZST=lNZC`{d9LW49qYN<>Jfxg+-WA+VZMF32^^=f?m<=6aa;LSAF zkWrdUyDm9%g&H%>2j+uq!*;r$+o7Lj;6EXT(Yw<=;J#uO9VAA|`}F6Fpp(C}q~VBH z9SCl7=&a#{YMFF;TD;2JXK^u?eh5q?M3r8yw@Jgoc?YlT8xl?3R~k7X$iD(!wym-I zA=E(*K$Uf)FNqIReAkTkmDT5xxcxD@MVeZeki=G6MXQPT;XlceB<}Q`fq^$q!yT!( z^DXp)slq`LD%s=d=v%Np532{5ivH?V+At#*relm6GU?iUOst8HdG00?U51MKNk+zl!QO(YOTQ)3i1@e;+ZGr@s`l&sZ>nN&ucTFBjjD3ffvscVWk#Z zKrxVO{H8H(#=&6Xj7=637{mMFy6sOBzrT&|r^VW1d#wG~%7q(m-3o>cIRQTgDPk(& zmAl#lVHG8!z+0onrV+u4fz}yXc>RgQDhr=e0ka5K?vKvg(SqETYJGS!g>;h*Gdmk+ z6;)JA!Z(*ciA5IA6PtkUo6aV{-;6WQ39I*Z0G|#1X7+tcUe(%9YDV+=KiKlCR|1gT zinWn&dnBdN6FUQAL@hlELWg{Ld)yi9xH%GPZ-I2MK=$>MxncO~RvofvH1!eA)!b)p zZYz6rheAxNuefQ@sCraxd`mgehv_3mDapEJ{U`1ZtzE; zJ#16p%OweXc{-k5H<))>b@=yw!ek!p=Vsl*AT;^DKxU!&N+23J{5JN8+t%Etnt9UL zw9>jREAJtA*`yZitH=}~X} zwXC=$iy?m#FCf-PYAmSCCJGk}tY#h>%8C^IFD#I%1lAnuM)v#|1a$qZ4*AJszLHs3 zc=1D{jGyD;fG)<~JoH*xCc#Jo>)LFLuy0g_e6mI`a14@b)osONS4BM}2Kql*_8s0n z^XVNu54l5q)&RCdT*4;rTMIDTM@`FL2ef^u%4M%_bP%3h{KOlwz(sR>cvoL*8-Tks z@t;1SXsA^GIo9u0d|$quM?2TvzRw)N!VNril~9RE(+89%Hcz{F>Pq2s#R!*U!f)SR z&exQ}1~;#yMgP8=g;gv~0rLU!+{g~*5Q9;gx~*{#ON zuyb(`iQYr^-4xog$LxC>{hjBVZS*tmKFv7L27Pq_U7a)IY+F*Em2xlXIGX(E16@#E zp(K2)nq@4~m4E!!j^Hlf9w++QY|rLK53`D4%ZA%cx%4JMU#)=@4s#ATobioSzeFFq)$WBAl{h?ys zB~u9S($}PxmLr>dYed9(U`XG*C{k)xM0+#EW|c7r4GBrVS}yL$d0T|EaWwm((Rt~Y zztslV$Z8`Aj+d1fbDbco!e7icN^+_mOO>>N;Dz8lzoEg0H(|d995CI}iJK)*buWC6 zwu9m7;Y?r0=zR}POUWJhwnw2VD)vq(W^5A`)$D5#t$Ab9EG3O{;d<-GSqB9E^CjK= z&wXMr^c3^3u_^jVcVf@boC>zk+;#G#q_u>}+6QRkvHrN^h%|oPYWSaf(KieG!gB9z z^8Leav7Or)cJ3xGy!FA@J7>7KwT9EmJf*EO%;z>goS}vzSm~N5Wpf3**Mkye35tc} zKDGVF8i4>)l}Q^@uaDk>AEq&(iPhAX79B4wm{?QLmP>YZ+|ERg4x8~2);g4~ylg4U z`)|#qKzNg+8G{AJ#B6`~#pH}9(-t@T04!)&A|h(=yYbi6+Dia=&N6<0;y=8VK^#A9 z0bQFbDzUfA|Fv>C6tSoM!CSb(S<7GZ~jPKN4qo)JuF4O@N!(5`>Sp;R0d^8$V#P zaPw>|dl}7Vvi2neqob&Chw*4aXqNr+{L@0IWebIsuU+JY!)FIR=m0tHrR6G1DMwDX zU(z-<8L8(sHcJYC@&alG_ zej7xNTpvfRc_90mLrHSiD=!KgGz&l8nTNn}1DUJWsKOr_q+*D$5_+J6J7PjDt4;`Z zAOuJfyZ#Fn2U$9La6x54i?cnpRb}BYh#zI=yEMP z4GL{(IugMRL<#K7`ijq@*nc2|%WaRs)q}1MI1j74g)dHW;kWx~%as$FaIJV1029Vt zmb3!CKiDz)da*eCBS7~Fw05f<`7fRVH(>Kc46;C(?J34)D#LY^jFUQ~L52!bh+1F4 zYQ>$IG;<`zKjj|WS^lusk^h_5fcLn730&aDjf@4b7fx7=4V{9ngXlbeX|losSGvLn zU;ZqO$1mB&Gf3q!53qiA1`|AW&kg@b;_S z*Ac%uO>=lW+xmnWh3K>Dm^XtIL3lnJx|yHo>4qp2!yYvd1NPFh`bJH20%9%Q9ah?c zURr-xjrEf0)r4&S9KCU#T;0x7_nZOVFn1vYxZhRt&~a|SsATc;;{dwvdSw;}H)aHM zu>m7=X>SD^ExAHIE>ntPE2|`f6~kT{yl$Bl@qrqb2;_fn`c;>~{uIO!hxQiG$PhDE zlhpg^?fc#0T;%F^&JrF3>JhVcsaeg>u<;sBe{O=o{sPVZKNHImG`4#9z|b_(nM2n( z?YtfqTNRrrAZoAuZ=`kd4DvCbT7&GDl^{iuxr26IyGe{{)nW`y`gU(WmlS$!2>h{3 zCSPB(EuVCm6`<@Vr?_u{`Xa@pfoihy!c>>cCOQCPgXef77y{-t9eo?$IWH zi)C|u7rjT7e^k5tk7}TQ3eAzgO6xg08w|* zw7UjrJzm*4`udAA8~d*R(X-QIk)uOH%KO!^rWbWLQt8IPHRC%}3c8pJdFSvlk2T=~ z$0E1Sns!Al7Ay-&#SD~e-aBLK%>~S|>Xd@do*4K$hfW!6yQC8S7t(}Ad!&xlyr)kx z(Ss~t(s{W5o3RxdqH;Xe2D1ICXh7^dIgJHBN^fRD+V-<2Bn>SVlr~1~a!9Vl9COJQ zmdNTJJtgKo^jYg&UR#~+v?4FKe=PNQ`_O0hAT=9Hi@p|OfeaZT#$oFhr7=bxbKW~% zDfQFz%uC3DD=QCLYx1K~o%>{` zhf=yU2fk%0!X>w_#B%jZN{}pDLUI{@7;e`6;A)O~am|^0z1C8MFd@0$F2xQ1bNfH^ zS{vLn=o9Jkkd^V zy&!^5M3f^^zpC|p0xql%xw&|`4(B@R-%M_0@Wv7VplgB9{=#+e*YGf=qsSs3(<~N(UK}LUvcNR2JrHXNp;t-y^ipZI|)B$8ZV4Pk0<$!=rP4As*+Yr zFtZoo5q;M%zoePK$U$jWRHel8&Mu?ClQC7yjqv|(R8438e9iP(Ce2E`(ysZBY8i{O zH|}X;Ti=T7=-dxrB|j#*^;f{!ga~JKdD=JoW99LZca;|g>?IjcM*aI}BgwkgOzQ>- ziukTkxwm*+61bz*ItB~SJQGqj?Vk=`+gzc^>zlI3_4u%|1evT3Xj*V2hgfn|tmt2W z;f*BfH6!v$9n2KNY%*QFkwsShT|bGR<(*_q72k3`=oSNoAIFVo;GfHe&_k5$Yvteq z#cj)CpbBAG3qnHz`ya~t%(}&{Hl}aY0VV|Z+x;z!o(h%H{;r?>Mc?OSg|mPOb+pxf zg`jaX74v{z`V#AI)M-Y{0m|CU0p+Iec7XvR9>}jrGiKmu9x8-?Myl?uB6R=<_qyGz zA`N$WE2H+elgFR5v^7-qHOTAiz+a893f)M@;J{hyRN7HORakE63CuOi&KwC!SvAj_ z?x(*ZFx#65&>ce4zHSw0-Bz7hsOY(H(kfr6ELQfEJn^0pp3g4D(`<+z2-_`wgMIdw z!&3_;a4V(T|58j{`!1Xk_ql$Hm5f6>d4=V-{Xsb^7dD(@uOxs&80wDCg&;cFHH0T92&UxNua$`u=-AT5Vd$Yc2nE4{3oY}el z<~mR#r=;&pGYm(Ex7F?c{C}RgjfiKkgb#fDqTcd2Ki$@NRFB70eWWGDQOa2QrUH(C z`6G&BU+Rkr{%H6kVEB(|ylX?w+)kBb+SL%pIY3;S?Qa}y!QDVM?kOxp=qoO_EnmvP@#Loh9_`HRsa9c(sFhAPx!Rmb&&m{b z^?M5zZ@~oLc?cE{7c54@0pqvWg-PAjcc%r8O1sd5&8zIS8slwZYWNgmMAn{eF-W3= zgnHU zSQ`7b_+bC66$`!uGz#(~{$*BV#AZla2HbtKTF~5Kv}#|pG^vm3NO3>=XaI2xX%Upi zRQ@mKrXvk|5$+IMNOpzWXBN)u<5;{nUo{TUb0t|EP5;Z&lsXiZ!q9*YDLCKR4VXoV zaB8mkt#$oDH~@T&E8AtS4B=2YsHOu$g;LPqqYj zrR{n31vrvLQ4xRY6>(J-rs%Uq@1J%5IUo)SD8k_SmD8LZFRk|ID%^-%7eAc{lt!_h zwC4G^H@K0IV*da5zo01l0)4ct8@1clt51DSOt!Rv#el0YdWb};U`Y)~H<3K(dHKO|=-YnDHxzTC z;+|L#FXhLRId@eFHoPcxo6-=XVFIdsqd5KcU|XWMBx#jrIrMl~=l^3!+mE+s0Byu! z=e++4@^QINgr2WcdWGkj_xY(<*NgUN*7YYV;z!@VkSf9INWl#PYFWbWPwkt0>{6=v z*|6os-l5_}+&57`-AM)K)nsDJldO<#HIgmXH^H9wY%3|V-t^?p z=KK6A%WD};T@?O_Tb&Bv#(&+!8tC^63G@r>vbCMNM2WfBzw!mNG? z?)j@JrKZCv8RH`(<4Kbm7#}>|cs1>xaU-Bu=!l->Qr#^nX*~JV;@nCm51{%>u7Gg% zl#^$}g?fPJpLPJwG6Gh@yQ}S9Ab{FruVS$9TBkJbJ_0}D(FA7QLUWGxrS(1~+1~D# zZ4MD)*8~P#9ta+?{6KI3cL)81Z?Hl6+~qs_>eu!pJI{&oIiI`&R)hz0d&z9q#zn^l>KIRc zfgWO)iVWR5xzz^+DT#$5=O)K~&Z^s~a5;vdkV`7T5!7BZWhrG#KsuYU6`xUJ<&(met^N^3YpyJwvF@*+Og zC!j)DZ zzx7D3D}(`!M~}3bEO@f!Y4u~T&Gt|yL>)L;tDu^MK-{Ck|)!tD5(6^oM%D;V%5 zCRg}+WEm@4cUqTM@*9=2eAaD}%GUSl(h7{gEGX=bb`|^tY`5m&;I>CU}iSM+m2# zqWUL0@B_WDrJR)V(eWMdkr3D#9<;n2-t1xkeK~exeTr{4rMNJXs$G*I{AaI0Ap!{3 z-Pv&Vp5?o-0>3V6fM*>hGJ|eu@=n$%4B+BH3dc!rhc1-l44E{VH6ChPP1q^H|mQ8>}c5AP&fj+3y|~H zOn0ics!K}lt$NpFvoUbvp0nCp@Iu4xoqLksH!3|#RQJs;2VJ)6F}-PqCS9*Jk+zC* zec=Im$(A|yN|bno&ld6JjJ(Kqm61RzNozz^;N61e3BJhkt}kq`$;oa~uXE0#!BJqB z-?G6S$t9s5Jwr`UVz=07ZW`Rhkg8&Jkl3drq}+3MLE%S&d3vv2DRZ2cBh z?aJHP?U14BZ#WlIO)!L6^*7Q?kav8v1ewd1=;1*_KcQ zwEODkeE7o#sjxkKAz|uqDe@ZtSURkx)xEoRY;JjVB0Ko5`v-lGFyQ+8*mu;h52+~Xu~rvcsQrDDN-E3x88>EEa(Un zP_dS+b$i^@-Rb#dk@R$HeN}8eATcMx!Jl#G;Tx<;3$-(fIFGj^lXM%TRxI{Z&jug@ zFn!oLaTD?+XfGsR=UB{&#SE6Zik+o~$@jFT+R!b;ysdZ#YNHBUB-Q*?o*U2@qZa?Uj+;7%(wy6xZw*s< zXfKX|Oj8NoUas$!wGBPC`D(ASv}a=%$T+3^HojtFFUQRL82mxVol-u4X0|4!qS6p~ zbv`Rys!4nE@Hg|^6B|c;EH=?@u?L&LcTAij5jWcr10gs>FvA=(Q`(L28UTCu)eIa} zrTUp#tLlLFfyx2Z+*b1|<(v|9W?<&AlBvzGC>Neybeg89^o%1P=%1b(6kDXoL;bD;`d|06}FjN}A~Wsn0$iT}CW#wUM&&1(=M7T4_@X{2;A)|LSoAkgy><6^#NF`yHl;UV zJOX-gM3Z-|GkZsr*cVa zv+WW40@}J~U7x3wtgiFz5pR+E#=r0pAJSs$#_S-dXweEV{p!m3Qts?`t&s3m?Vr>V z5EmLqkooIz3Fa}^{taXXXS_&!GB*pc6W;OhB7y$ogHA&iUMtOSPJf#CR}j_dEL4h* z*;6lT?Y($^ZhPzX|@IlUt`L7=syIIUKqjQO#pnz(q<4`ao8$_$B_Z0 z1Vkt4RoE}#K#TdoNTP0TYl~Xu&wEs{MB#aBx}5Rv>^+|j)#DDIVs1T|Q|(if)>NYg z&8*_VLUh>qseRz1KjZH}Em1`pV;?2vwn9|Hw*KXHPJeyziz^&rLr3fn{-eS85WeGR zcKo8#*i6voCcQr=KPV8UfAxv+!Ida2r3$NkQR-qHLvHGywE0W6U7A*60 z)U{->L=ViF%^?-Ui>la0?tdFL?(b^s0hjPrD4dncAI-dV%N zH1t6KLn7}x)$+$1k51?aGOkzI|5uDLu=RkbxIqQDYt3RqOXa_s4p8i?8)0~Tl zUzPn=lmLw6G`-o)uPSIq^K!WIMLHhRR$KS!Lc|^R?zS_kXhe*E`H!3tflz8TfNlB) z;!m{6D{ru^T~#%+lVqq?h{*9Ru?V~iYmu4odj^@_rsCT%1LF%B?;Aol+ie#=70S*M3Rv6LuCk$2`n4IIAiL6jADL zz1IyMu?;(N>lysJL8LO{_^ST~m5h!dTUvNgKdS5NSHCO}i7$ab=< z#v6WA9m+^hL~syTgnFzL78W)rIyfuk-#viyX^}W&_%Q2Bp$x|#<|>7ueskArg%ODw z8g6ALzh~68>X9E3Cy*{Fere!-h6y@3Ezki~TohqlK$*ggDb$s&WC(YT(WdVU-L>!GlEFW!x-_7cgZ@9qGl#>`aT}G4fWU( zYFhYl+8E!~?CdN;9j9W`Sm4^bxk1d!)-O<|b77(90UR@X``P-5D=58LL;N{$FYQH_ zd#Ns+UY4w6qe(ALb0B^0Ym3cNcP1$zMceXvBfZ{JaqY4yc=(t8b`Hqkk-GHk69ZD@ z`^t^7b=h&Lfkuj0JsjAjVp@LERpz4eumv(*~oUy&E(m*Q!$tVoJe=A0GMBGy3oGaW@?AqUbT9U43(5#Ed0u9GQ}KG#+hr<*v7urZk`dxx1=0jBBU;U zMB!t{C0bgNZW)Mp+K`S+V2R%tRv&4l+`gIJb)zk~LX6`ZSBi*X&MR_8$Wf%@x%-lm zmu7l%f{$3enpWR8^BTK+nmAkw(-YRnFo>>{X?umU*VY)mrV7hgW+ZjpEbT5~ad&>)XKeeU`ogmG-N;zBW7G2vDsd>|5XQ_`Q<;ge5pG zI9N5uABpYRm-+`?Ql8S?`hp)#f>KnF01TsH4&-69>vP zEn+``xFj-D?V*%dpIAQ%Y3cfeBAtp(RyRX-1~l7N${Y3AT59qgIn9nHK=gjOi$)Z?%nrShz;0hF58p^IJl=XO15Qepb{q^OC9agEXOqUz%&7c~#Xhiv6e^k~p3-+}a9{r%x0uBQbH!x^Doj!@4=}0*?|#*FH9uWBz^wv zD`$W2Uc&w2ngAQ$9hihxzw#ekmx^Z7g*Pv!k}F#7C(Yl>K6uP<*@WZW%gdfkSHj$W zrmzHwS^BoPZFie|Al zQtd0@4G{m>3npKjvevIn({9|3IbVO#+*a7IK8x4CzwJu@)r-Cd5jRk>b?&cDF25M? zA^7ZfFy?2B^1geSD&b*~yKxr*c+Dzhem4HY@UrZz;!Kl>!jMwZz;ChcQ`Ao7&x`yucdVpKuI$71zQV3Bt(OT) zj=#L^GgWLF7LdVr%`<3X9i#V;bV4;n5diy>oFeJCY0y=*65egCoEgMv=o_41YH;A7 zkN)Emvpi}VTrlZahr=sYy^t`}J+HfI{4u(N8u_x__}Tev9d%f@D2U-}xP8ueRE{>h^fgx1&1hV7T{ z3E1>gWmTr^UTOwzXP%XrGjkM^9o&^Bg@;sO{T)niQZ{)d>hCD`Pr>t6(es6^PfW^! zH3SMT%A9hYT1zmOMOO5==cEU{Zpg{6THnvGyr|=!L3Y)OJb8(}Y>JufuE-5_UK5Mp zdy8-#vABH0iFG8d=FQ%ltIr}Q;*;2t?wej#NgoPeR>A)F;maW(Z?b4Edq@0Eb~5Z7 z+sgE>aLWuJlOuTu$by~isNKJB%7Pv1Fuxlw|I7St>BJ?K#EAg&N^VoH=t`FcB=<9f zeJOXhrF|&}@^uu4)%@nh5at?fV?wMS9K(SN=kUMkc#rWrgVTjbGmWcq@saR=%g>oE z*}046xQ<*-d;KC*-bmGrVc-V*gLIQvsn4~N?0v**leNOqi086oJGZYiri7Q!9K&DK zy*;J`HnLXuR!3mM3DeAV`6nk)LT+tC7f5!5Xz8pw)?HUr=x1YnREZ%>&5H%mqI@o? zY|)rzh9Yt$rV_zcZ)q^f;4TrkKz*33Kh0PXN3jGQj}EaK=F zwDbDyHWW_Mo)zs4+UdVwu{<3uOgk)>e=<>W>;oKv`av_>LblKd1M#+pvB!7 z1=>F8TEElUPLy7air9F4|Mc}Ek+z4t@pc<$pd^NRwXa+h#30jhn=kNs@R=j7!tMdvW##E2e=D@*j^z*6AQm>%sLjedV_LK2#1 zID+shT?B@u9t-mj=DhNj?Ffl(Jl;pZM=K!8=t-dw1|(;6(giO%)le9x*tr?f3gwJw zQ7%-hDRzz+lk4Kq_K;kvW?^$AEjLPya@l>f=274`w9{7Wf{&=mON~f(T}4#o9fJxl z?;-|`+9qnlmBhzR^DdvHWc@`vQaKDh@puOwI@}t%aQaNS?;u61fTqq~szx-#OUtz% zck$&PyVvgk4?z)*j=T|%7?@n?$D~N=2Uw+KE=)=F*}HJvV*OzWce=Sw);f zYgp*{c*gPWvkI3Pt;S0hXP+)HM-3F)Rp-_Iv0mh_mQ{P8yGnE(cP%A5mQbG)5gK>4 z2F-7=S8#5I?vO6H~G)pR6`@f;&27jiHU`n=HwZYN(X1$?Rt4Re>7ePA=TBm1ZZ8p2;{ zB^{@s%3rAS`RJPjs(D{D`NqQ;XO8^@!=U%aE-k%U-RcH$M;jtES1?It36)|j&bco* z;!8T-z1UkIx4v4~;9dM#WcjGZ#70jmr-*qkIhmx49)A}`7mVdW5HE>_^Tq`zFl%n-KeY#TB z$yw)6W`=rcokS36yI=@wKYjr1?N(cNMKwB~BvTBk)UJ#{)8F<(>cRk?K1y5U*XrPHJ-3LVX7 z>1%pF#y?8wB6i5>i>@kXNabVge>r`_ujB7qT=4|ggJKR=Ifk{cl?In{BTc}z0^rw2 zzO+kBw8WP-fPbpS9UrkCenfZ8O-|^b>Yv7aJDq6%+pDfvONdnc@cG6HG)iuEu|Vb0 zx7Z(`sVsUDSE)DlQZl@M6@n~Obwjh{Td=w`LnECa(N^k}-+t>@k4X}ouzmxJI&A@M zeMZtV%MS?MCJ2P$mImV(&~QiLwH0E&ReCgebH!Z`bc&RLu>tR?S~rh54h+M2DR0MY?H6B zq;7H||CuSCv^HqHlciuf8xEdy!Wq4ouCp3V-Gw}_gXm6orm0hVJXTfIsgIhL^vcYN zfKI4@kuE*xLu~}Ll6n8GQ`W%#J?=6!N|Ks-@#JmI(50$<+99VpOz`hmt?G5<(s6agI)$#rH>dM(~kq>H$o*Q5u>d68m%K|QNdsL zvWu*;7YszQ=ciq>Y*_=f&xf|jyAW7a<8T-3`s%-$y zkwfp+AI*rae+H@LpX6D*0MCi8e+-^Wej&fkwuehoT}HA!8Qu^>{XYPgKxn^!M@CoN zF{c$hI{nzo^$6*TXD{^GF#Xuvo~&tIZ>OSd?XzN!j4pTgGIF@m{nDH9D_??=kUDDW zX2O$X^5jA|wED z?8%61M36d4HW4)gUzO~r5idJN%u}9GH^Ck59L6`Rdn|P zd|E%F0LPT@OA%$2LN!3hO*J-?Ux`~2`yLf9RFNn{9h+qd0Gi+j;eK=IH&efXM=Y?2 z$#GyYQiBLKnxWAQjcNp_mz=qm%*&ADGHh<7cP>KMQALrYCl@Wl>C0Z~mbUvUC;R7Q zpT9gZwlyQ6nm|YnYMRLoLcM}eGa~^HmqAE&zCv_?Lb@NmLemZ~Bs6hOa()($d=ly) zq+iYktFq1LR z){tcSH{B!E*-4W0x~PK6U_?BsAi5(~`+{C8T* z1e(cKyBBVD_$Ob=n65S+5~|3fCuUA%`vjqlvlQRg0s_J@c#>KSg%OyMBDFKpX{;`$ z6dG%URzz#4d{{L=B&CcKjL;lE2=`rC=7TV;Vi-%jR)dieWO#+T+1@YmSsp@a|ANq1 zVlNLfq&p_2;&5Hm&!@=>>q9avPFf(6DzqL+4K-3qsCYVUH4${E+GVDL{+`82!E3?p`iJM7}C!U;;kpA$c$mvvG ziQ-El*qODvBeGgONvLG*8!pa9OVE*84dk`Np3Iow#v5w-5lwq!w;+=lp(T;Asq35y_bm{0z7h+q#MdVDh>a1N(#$L)+*O%Z zgvL^mOh9_*r{u6inXf{~fjZwa>Zg%RQUj-!wRbzXqLx-qD*BPy1^7P2lD-QI0cUAa zUzPCCpio^PBzChEdMY%W9@IPytBjUFrmJa#WID=-6AE}`RcIn#sxZXi@M4ryzPH;< z46#U`D%Hjisf&@%NNX~Z146BY3znJ*v`c_sZ4ZQf^~7EE#53sWhuCLFXf;Bs&p<06 zrSOWd%;J9H#g4E>Immn#W8u>$)i2Z3g|#y7t~;xu z26CPi4k-TiG(jjQ^SwSoir@^gEIBNwBDi=4RYu^76@htY>6c|j7+;2}EkHr62B{jZ zuJR0oGqx~7tv>6xDkC(Oa2jJjGEib<@@h}+TA(jdyxxk%mV7OnyKnJY+7~1YSK~a} zH;68I4i?fI9G@nB2p7I~;sp`Qvnv&A=Kb!XT-2dqb(f!4>@Zl9P)a0b;Uz%~dlUCb zNi0Ph0mv zVp=fAu=CMe8luNSYk^c#euo~qFH;6VyS~%vj8f; zgc7+9^Wwl2BDOok6o%p_$Z~oQ%MNDgq1h`H5o*fY%{0Z#5M7*H7&WVto3*%f zHO#Rk5|R)UE7Ec!aJCjT$%?&S<8N7se#Ub} z)b&H26?=Ej9jeaio^0qh`xclTCn~}vo=90yb=TB#gC|VrM!8smL00V9-`M534Yn4s z_GQ1TSs;A1&T2(SpjhWV!@0VgTe~tX*14Fe~_) z7<68)xPxTD>8bP<)tvQ=c>9v9F8#>2H%Kn0aTeYMFH5--D;s;uZb~&4;}&#%$`|B&i==dlmBV=%z|Wb|SEUt}b$bSvv*21Sob1h&JsVAU zc865EP8VOAtn9EaCA`gF+FV6Tfi%XbrCa^u%-_{H`ao6!_WJbOS+hHTEw5#@A&T3t z+Oz0f|AJYqgf|p_+m_bX*p_`q?@(g9SkOduIY-i{SUrz*4dJ$C&0B_zrM=$NoOG0c z4@;K4yRPjmC!WU=XIRbaBC*sc`LoNuTjsQZC4?uXc1LkK(*P2u(|kF zg{(YIx@GXJNQNtdQnjp5R`A^xSYP+a7D&HS?G0X?&x+l738B2z7rCX}_IY})YSqe& zI^vt_GRL{byR6CtP@p(%c}je^K*u@8c@WR;}=m6@2}-x?rxh zdA9;Qhng7owke`Mji0A6BWy)%~=tnvZ-ewi5Lwf}HX;E)0HZp}DN! z8{24W?<&=suOln?IK8XF_=eb; zlzUc(mfp?^zTvx863F?_mwuP6Xx zO-n3i1>bl;TM4&4tonVl;@LN}T1RwmTGPVNS;5!2WO~9qt5x-gFYP=YUG8>~AINrW zZvppmzE{)Nwbx?WrY-J4P?cf#{vIn4Z$;bQ5GvCFPB(oZd%Leit)KZ{t)sc{1Ik+0 zd4_Z)%A_cr72!)arqML3(*PgHc8NC&@c62HxpTp4qH^cYy@W`LZY64NzD!Q%)6ntc zub~RL+o^+H%@ZZ9l-X(gQH;)QJf zcSwP(=GGXl+^j8`+ZsuN%e4JKzXnj-OWx}gXj!4hc`eT-<@Rh#EiG1|`?a{5lus)D zd`k2xZ^q!$m(O$iNZE+#hD6(n6(1oyvK4~7E+@O;?j`@cz4~6h8l#<8#ATNYn~~Kk zyxHaHIehw4fy5=*>1SX2v>hJ6U_6RxpI5J(A>A$d%-t$oy?5wzxo#YR=BRX3|)B%wfE%^vuF@zVcBoaUDhCZx%d07homCudhC1g-FT=y zrX>ZNgN!i5>NEGUfl9gt?D#de;}wxpgU}ki51|>DdQI*TvEr}}lFEZxX|N_BB{6GM zufW$-0%U~?drgkML>KfeS|`RXn}@3v__@Vmc=DL|=e4|H_3S9qGGeMn%y5O+DOZ1! zqx11%%em||sOc+Hi@PyPYf=LyrX|@uR+piz)swSgo~&v`%v|no*-uT&*HP;`53$h6 z=b_#*fub`-V|q-=T+6xRVwTWDoO>m<75amc5*@+7vBwce4+xDf2p9T}#s<4w8c5TI#Y6pu{l?b*}@k0M#?M;n;K3 zgH)Yb9r-*YPKP$DNA5AHHY&En>eQ-k73@-{=Sj7%4`3GHbPv+y1jyBOXCm=idULKC z70-%H)1F|>)P*$z6lI=noL9up(Cn71!x+Z!`h_vW!;UMs*( zY{#W35{;|5rC7UQ8?bFYjSCqYmU#<$8=fJnN6hjZFVTs74L`r<`wbK| zW{<4Xsa^dC9_o^WUXsI%4YHkwVmiz|ivV>?%XVa8&9XAv)w9C?p$f%SYgH>#M@;r> za@6)TJ@rXrY0E)&Kqstvxx*kPaf;39S;=D+8)5T$b}Q~NIe^OX^J123+AOE9ZHJxE zCcx|f+bJ z$!*mUuAbGeS!1>^Rjludus)tnkUKbe^im zbZTZDk7;g4bC40T6+6{+Pts;~A;c_v|8f$EIbU;ws?#X-+?}gZ#So&V6o-jHL(CZ$ zGupQk&(o{J%#ebZ8AN)ojvr0~b-UBEY8qI_5&G;a%^B{o&&w_zzY7^JPdhiLIjq_P z3YbNpUDBK<4ZJ%efxfm&v0G$WJ%}EXPpQ}?FJ=UG=F956JIuZ_0NHoEU&C@U71;aL zvf{97nuz2!ugQ$29uxni7~DK%mvYpq+Umn$W_3lZd9lODCr0P)_Oo5Rp1nIYE88@= z5RZL6ZDKdQm@TiJZ~AmlwOtxw_GNUue$6tTy4%lI^{n>pbgHH(RK#Q^VruP9&$cJ; zwJ!&miJY)A6VD5%nHl}+Suye0qFkLSVLtjeU8qZ}hGvR6HTznedfyJS&?SJnoyi;< z;ILHbakZ=#C?5*l>o@lUU_zB3%Q>8u73M;{6T?#%o2!Db?lEJd(>%^`wQODHX*GxR z>#`Qlw1?!_+9WPyI4vs%56hn&9%~V*wtX1c(I{%*-MCs-Ysxo;u3hhQ!z3`oVPeG> z8-Djhejm&-Wrn9^EcO%wW=?>9LoH;sdMmD$l~0U5vZK0Bk8a#OB-@x)hQo|)(4q&XQ%45qs`xi1czJ3;^Ijo&U@t6hw-QbOG z^pbsC9V=T_*%uCHbroBQe2pD8)D2i1W|Woo#*XfwVnM=y9k-Tah%D!w8txldOxusE zPsL1K#RBTEA|Z5Q0Ub`sN`Gb_8N*@SK1P5Q3mY86F=%QU*SK0%;`a3Rc*CpQiw&6E zWbwjv&%Y>a8aBf8)Zyph@t8eeeR!HqB}f=f%Zh_hpJQ(#(D&0rLsGirzInz(+1}Z) zZ!FLIxdJrIZF(IgnhIZ3=iMFTQ7BHM$~Q}w&S7G!5#Q8sT2^xA?fSQa?AS_J@z^21 zljn6_Ej!M^zt5{ub!rmCb70z~xg_)km{rHUmvuwZX@a#&)IrDqwk+6>{ zgUqW?#a90M2cK=s&?tn98B=^U(v|5kGnNBnffapb$F8cRVe{(PZ1F687I*PgV?+S! zVuMQ#Gip||=S|PnYC$H1nVr^=!EU2ho6aUHp}{&8XMmN9Z5c4(MUwr=bUIePinf)X z)nj%Z1#EaRGFtig zNqwI8@@1#A6w5bGNWy_UB>p7{&bXK{*;d=e&h9Y#Is;_U9sP|&5`tT0fS6asifJ)F zpO43eE+(W5SP>Rc@yJilJX;Qx&m0b_wv7X<*nwvb$E&Mcbkmz<+j%;tvu369m^ck9 zeq`ClP0w&^hb5DAn3+oevq+*or=#yxzN>jvtQ_0zL2-sz3!U+|%ON`tp@3jIRhF3;XGp@mIdT5{;SP1sTf} z=kngItszPt6R()A$jZQ!Y*c5|toKs4o{9Rp%2a3(qVi=6DMIm}`f5wjQl1}e*U z@bkN0%cH8-t=RiSs3R-`ri4t@K~@dLVl(^d4y$I21SG;jj%JVG)EH{y7NtQcnx~>JR;q@%Za#%B)8(_98 zxs?Ot`zhLNZFd?T_LW;si^?WnRhq++Mr2;dxXG)T1J?GKZSoOI4l)jN*~;(a_5u>s zRu#KTl1!60OhP~9fV>kBpjR^_ZC@hPLTVA~9!grjM=TL{>ni@6DyQ=8EUw9vmxDyB z*gTwOo#y_@in;Vg{tbNXS-dhzNrN<@%78wyNT{yACX-gRP9Yg z%&hg>^TI28>#ojv#4^!x)(cz zb+pdJayIE{W}1C9si-qK1UpF6dd2Fuop#kaTy}4k!;Jp~pmJ2n4WaBmX4ITF#9Hl} z+uHz|Stzzww-TYA9d@dJ*)+C;`gt-vR&7gt>l=wmmSS(o#S(1WYK`PJsnsk<9+T~& zv7I-)*sD%wSIy}miI;DB z5l+MIeC+lkb%)I!pmLs_?h0^-T}h(sx=Rlbf0jkwJ$v`9hI)^cwKQ_@VphJx=%dC< znXbk4)MtQLS<7Ko=R=FUCTAXK>d~`k)#v4|YWDS*_zUb!c3M_Kb=wJ6zL0&c5o>2v zrYk0*W%|-`-(qvFjpX;M=3Mfaq&|oV{$i&T$yt@!uCs@scMi5LBN<>E|QT^*exJ4LGw@c~$oVMWnqr)cH%wyI6p7mcxSH^ho= zDaKogLn{I5&2Uj$TDYnzcHi5k`*y&ZX1ZL+%FvWyOHe(wTEskLo&0+RQ2FOxNMsBVqj&S*m?Dn!{Tk+lO)v5+-g(z_naDivud-R$(N+zeF~Zc8ii z@~QMf zXmdj^X5T!3irV?drBYTZ#LpTR7f&GiSSm~ur)Mn{%tP%2lw8c}HC4OV;xT(F0BY(^ z7?-6`?x57aDaHBDiw1aFWcqV=hK6W)%xGh~!>lTlIlo5nm76c=H89tdy!eDnstS&V_50~Jj z)zj>hSChkv8o~(ExQkJJl{I;OhRg6O=FS*C#Y-+jsQZ12mqg@Bt$CN?rQPYOR1dY> z17@k7GMsH45G!_0tHqUz(>v*M zyyOiR*YAS(a`+#$q%c!)164S#fbF_;fA}J1v0abRJfxU1bM% zmb?R20%oUCm!f=n@-KtE2$>Uq-x-`$@R_TYwVElR_})XifBrGIM?6!S^7}PAPo7U~ z>u#bq`T6cBpv&_SE#t@USI+0r)1CW^wKT)-=IRr+ujl?~EuV>plY5iFuO=SFui@xV zvTLR!bN3Y)W&U8?yv59CPF}xO!t<^32?&;akU1^heZlQz@}cOx!xB8ZcemHTg)Hya zICCn$+dbJX$%nz?I4?>$qn4zdlYyO>XY7+ znKr?l66}QFzw!fKgqM)PpL}pFB}2-Rt8yTF$gV0{KB32@qv3|JNke8Pv}rRMQInE_W=Q-kSx+8^grGJle{P5V3GD21{kC)yhx z)qSkAnaPU0hYvbwZ-i@R8YJh7G(V*G9GllTGr^Mct(p(jM|)YMS7z!a=NUE+un(ED zaJkH+P|mOIXJU~m=3vT9H{}ZbnmOOc)R<8{Gm%wxlvwa8DxJslPtQw{N{dK7bS)t^`a3V{{Fm_Z!X5o;@f<*s6~oq zCX;hfd;Shu^o_q`j;1a&&5mnx5dJZ{9Sg`dN-~UHIcG?EI-Uc z+2_JkJ9ME$)yu!xFBM?+w1N}WK|NNn9B2l!qb!{89B53RU$>XS&;>dBH_Xnq{>gCU zh%Q3A!!}JRMBs{E+C>*jZgJ#3Akse>j?ghXYRHM7B<#geMY`C2+@L7M#e^^2Lqh3u z5T<_)#AWTjV~*Z3JEF`155jtwMKcp;x}1;>Tga|D-p}o&Rafz< z!)HvgHF4APQntEGI)6XRjgR}dATlR>+tbO#gT2T@GwZS#E!oezp8aOf5!hx&g^OF_ zlwnmIHEwn!yB(ec`OOAUt>O`B?d8D5%d$J)^0bKaF=0QTk`3>ikHjoXvn z_>7zBHY!awT1*a4jlZIYw%aj&7_&!q4rV;+zm(vv)|Edx8`X}bnjlcqd9 z4X)^+G55?cc%l-oBpz5VMY?0V@pr`B!~RU}=+`}4Plt7BbSU@K?v8D!gNbhF^9|px zO6GvNX=t$)4zOaqg!GQ-sl(>GC}AD!86T?q>`3$Bky0|1>f5{|`i^4@%`1JWPQ3mL;fY$#}@(GL9;Rl>5nkii&i0n&Bz!t4^Fz&h%6PNyx zzAq96Tm33Or7JSmyU0`$BXiY^OocTv*WSofo+DEMkIXebGFAb}R3;=-A(70rMlzKn z$y~7{b5)bfl}|EPN6B14C3BUP97?fdD%X;+o=c{JFPTchWGWhysjN)Kx-*#y(_|`L zlc~5(rt&wLYUX6Bs*^)~p3H@PGS>sjTt+BU@uAEWi!v8F%3L2QbE&0_#h5ZxYsy^E zDMQ7lj0K@GRgB75QYur;smx`mGF7h1RNE?Z`KwG7vN9LZ%3NqGb1|+QDt2Y6>XoVP zSLV`SnahV|sxX$h2wA2&Wtl3OWiED>sUBLUifNf@s%0#?ma!;X#-eQ*YPw~r`If0r zT&C)BnM%@SE@YQO0ldtW^D-CQ%T%T>b8Wv&6#+9A7R+3FFmrjrOce|>7dgya2r*-+ z#0-@bGZtFRREaTjvBn%KI%cZ+n6WHmrn-@tOG{>|KAE{dW#%H5IaIpLTn;l+#mvk_ zH8a)S%vhK+Q{~P~wLLRc|IAb$G;;~j%wQLO8>tAz)Y_6frRklMR zZm!iG%6Vt1_?@Xtc&6IonJbcKDrBCi`gx|3>6r_yXR6Phsi=FVO7NK~%4e!MpQ$Q+ zrn>c+D%-o?U{EXN*xcK7>=ttL;(&<;O!)tveg^%{^m|S6^}|`iLO}`Gg#hSdQWujJ zWyVFpco1qYnWXfa4NKs-(6U|ld(dxg4_7Gi)E{1O`vIG+BnLDy3w1O>fWxq4{J$o= zp&5^VgZ#`t5Tr7xy*Mc{{)Ydr^iwj0YOoD@Hv;gA#-WUI030`!HyD5863`{BL>+#5 z0|!a5LH!!zHMAcvzOO?h;_ex=mjy|5Q(-_!qoM|dI)p2d_6;LH(Bs>2f}h_oK}}+y z$PxNK_YXH!3=4w-H39%WG;s+G{0;wal{%>S|Jr|M!{3E0ozTA0_I(TG^csK^7NgSLj>nHB{8FIPwZZYWAWB+7!+-!8cH~J0on$wJ75siL>e6J{9=>LWO z-!jdQ#*^T&iofCiPo}&3ohjgme|HMrK}TKxfe;9BymSioq4A-8%h+D{@@Rd)G+z_` zzb5RjChYIC_>=A@^p{WOjr$GjC;zALNu1xt@jt)udT2Z$JE{1)QhR*9e#T-~JpBd% z$)P~2)DHw-i5r{#z0flb;zEZ;4sHC2tqZkA@j>DVr4x0Qe-i$L2)vPhCjG{-@j``w zldiMiZ|rT;|Mw62GKEHy??bpTbR!FfhztrDN%(WJc*Wm1pZNpPlUk}B%=q}T;qOiV zUie#UBhc?bzrkm&CHwAYPIBwf-P7qOjSdl~8yfeYjn~~M`lwOl7e=p^@PGQ*Nqp14 z8~vuAJU9ecN&E!F@rp+S5#>D1cu9*qA5D2}z;Ck>Ib}trK**8S^MHV0B zXQ~_`WutqS0~K|wj*(-7eC0KI&$T8jUg=OdL<)FSC9#1+(8i&Lx}(e96C!bhH7#Qj zLj@#jtBNipsrL#FL!~IB8TP}Pbw`)u3q(E$`2`~4mc|(MlLSo&`0MJ+Y6dbDN0;k@ z)sW*}#*oPgh?T8ttr1cy1`KuzX4F;-9k=3t2j8xQ@?Zp~8ylS8BqbO$%` zAZsghf9FgoCz4?`z#P@IFdl}}aMp?BA(0zdGyphs+sTB@kkE-iEFx1N9z|I*3Wib^ z3U<)y+!$@8GVtck0f`uvcV93-aW~HWSqtLZv&s|*qZM`q%pVYD8ww$lLmLJy&&rYBuq6J3Meuab!JHv)+@TOLK2Gb1a|VTZqTB}TZN&%qSY!q2{m;J3m08j zAtJ3(?t~RCMI9vsuoyL{B<35f{_~J>WyjISVbB%&vGVH`q7#%94bKO{7S&OvP>8S6 z@PTI2q7rzHQ0obN(L`%)T#X9hsz!NM2Wr|vA+1^`2L0U<1Bw|;%4iAZCqY0TDzzj9 zz9tHQu7_YR0|_*Sz6x0khRcdfgSZi+O@?#X%7?<*bJ0+=N#RrwWd|)7mA-fflC6?! z26}T0m26tf5}sZSC4?lNlsTy+$dtJ#W=`HVO5B($Bpg&q_YkJ}j+PrO@QHa-iNjzu zEdf1t=}@y}$0deyZpxewPhHQa0Dv!IK%ub8hl1aNL7`_wdxnjD+oUr^W;BdbpCKF; z6P@yr!Lb%4P$}Cy+D6*qP-x9j!u|84w5zJ`AnbBqW&~f+rgsdL+NV&BFH3~Mon6UN zV1_g7sC(n^PRSiBsOQ@uf5@&@6vlV9QfY=-PYRPG^?U-?uJv+2lk^#aGdo{}*1N$k zZ011AStuA*WhQePB!;`6{>L@64(w?mz)}9Rf1e}pvDU4BN z@LO35ohxf8w9C~ZAL!;CPwi1(P!)qHhwd}sE1aKXbDy=3`Q6Gs2Un^x34_WzCv402 zi}tkr)R6Txa4`_HXxsqY9eKYX+CokMrQr8;Q1GKxXeoG4$Eh}azi690pn9I>Ph3Ig zjv%nn6QrV5Cf7rRiJ!_%+ZG&3yguYdYCP0oHARH10IeNP97K5V$?B+ryFih}NCW4n zBJiQqnsneukv>2}=m~ogP&Oki4@N3?(?$=-psi2ly%275Rz9VaVY}1=0!9=;+TfQD z_B{%00xDkjNIcR=aJWuZxy@PZi~$F2c=9?7dObP=1sAXF!&(jqdjG{BKO$1;+%f2P zXMnp+q1!~=%F$`i@6G^Tk)F2jTiG%VEl8YyK`%y2WMR;i!EZ{C(Xl|rko~`CW!d6g zPi^JZ#)EcELv|^;e|{NRuuj0Se^J#fcH%(E0c39`@P+k}4P}F}fjH%emOhx@S zx1KzdS4RBt8^1D7&GI|vrKsOa?2~2v_9M9lnA57{C=+C?;)TEVq`Z>u+9kaS_I0vH zXdBi!W!gCik6haguDvMguPYzx<$GO1uYwlEo=!IJopVvt?{>Db7I~SfsQ-TLlihk{ znxbAgq>}}FWxAq%&O_^JyY&%&OvAj)u3UZYx`e<1au}*)_$_rdQgrF5r>UuU%h;u%&;k;C(>ym*+h zyVNf1pLwe(>Yr7!6#IUrqF%;qtX?NfMg5$YT0-4*HMVE=waz}}uHoSH`Pz=n;T=ov zAlg^!!wOhl$5m6*uX8z@h5O8RW+|%mY%#7LtF$*3E4yt4uKw9XN6`24fxFkm^aK46 z-uY*>Q(E@OPoew!z2Fm>@D7^>xa-pt^|~dWn#J$>NU#U!vA*_s67I8F$?hjMEz766 z`f#wNOY~0%y^*Y@qPNl{rB3tD;ZoGwtkPk9xX)Nu)c5mbsb3i@U*+eV4)^POU22_! zd!YqbVV%XUMX8C8R=;a#g;xFdbRCU-uRSa3_W)1PgLkY*h9W#_4fKX)`QmqZo>hJ4 zBOW@S6OnXdvp(JHDwKpQ{uc8t-Rok%jF18w1L%FfhN6C~q}0=HET!GSXTF`M?v;^~ z_(W@A)|#1DE_{#kt} zUGH;P6!mj{wAOo1C6RKXKFsIP^RCZZW$Ui{` z7mWz9#Gh%Is#m5Gg@|Md8xQI`mJ(H=9(xMfzxQjm;LRz@$nEZXGt_^(%gF}5&!JVs z^UqH@JCIjKLVS_>MY3uNJkL@A2KjGRI&b&gV`ric=~|ir_8TiPZH|273OvuU&m`a0 zJ{j+?jM$@KFIwiaOSv*bQGe}SX`{XV>5BR}&vVqi`;AF7L}EcVe#-ZrHl|S$JGXHN z+;_PUF@)IE%~o-B-C|3-vVp=ntNj_~EZ_GG&vOeY)5;oMMXo-96Pch|pKEg^m@HyPavwxrGrl`O6=OlGy`uRHC_p6-BDR;lY z6hPwBt8gAP(k57+k`9UW-5YmBy-YrD!8_JA)XR)hP2iQ$iZ`HF#WJu_KTl?V5I$}= z52^`+NU6IOgmcZzROKfZxbGeZRS3!?HG&hcd#FAbMM7g)bDN5@k(Ev zxsTSm?_fIR)~-J6lo~IV-3sSHVRpofdpVa^I1fskQG##<>W2H(t{o-?|6VKh5_#(QNSQ+sA zRQC92?Id`fCCU)bDW}S=e=nFXK|E9y&VyR$9ql#}MF8hP@wgVy;XS8g{=Uy)4be6E z?B1`=%!>N&@;;vZJJwRv&-sbCyK7jPOhp*H2Cj4As55yB;5;bamD(}R;W3imcc&`q zb$C_&egBLtMg99VPVB)QYo6WCy{@P7>V19^`3I$DW5x4eG1T9$c8u5eo)$&@JNR7b zm8r)XcGs{RWA)W_gX70aJ|^z_ZJLVue%hJg)!~yP?oLrQe_c&cuj?MoQu8KfL0zpGb^qW&4nhl%i>iN@KT-ZjjJ1?|qK9t-e26Ri_{bo;T&;r{u_ zC)(#etB-~A+9k?iQ@s1ka&{nh-YoEtbdi&|;6nW>Ij^+RM^HjgQI_k09Ufq&T zp}YHxbw&O2yiZB=dtF^of9>-`qTV@|V`;xxSYTSvJ>1PLfbwWOzig!Nqyp`EmA&}l!Yb`;w<4BDaE84nZq*aF>gh`>j2l!^ zNAMvIts&P4!AMI*uvMAds!VRB2D;G6J(k28WhZPAuk6vhWM5K=|2#l^s!t~Y9YKB(xTPvJ%ZkistD$jiZ>a_cLhNiwP!9yu$4yCBf&5e9crBiY}NXg`HU8j+UP1! zMiG>mnPq1FCWG7uGt-qST_g5WJNFYP9R;C&b|zL}MJm4Ug=9vEG1IC)kTaqPwc6aO zakSwGMB0kXAQNVY6o=BsX!y*RZwR&u(T{=Wxygr%o0<;nv>N<@; zu7r?G5B>D7{q!(8#K1@&B$Mhl86X!By9KsV1X?K)Tfv-VzSIvz5+0!L6F!AS3~?r7$@9kK!geywT&X65BsD%AVoqyqfZ`dPoB@jH@9*t z(epbX)GCKoIkd`@MWP7l=Ss2GTJ{MO(=*3oYf&VWsflG87Z6hf@}Lz-EJHoFZ=;X4 zXoiHO^bNuJq(t+Pk+GGG`~|`Hv@!>@B5+;eXY2U=k{s27yWCB=9*Uq$&6L@prI}V^ zB=n4R*1Bd}WS$|C_q53}jk9CA77M{|O6FFD=PU>oUs425ZOT}HXQD}&l8W@j2)5F~ zJ(CdXN12`$BiK)0+)5B^73VCYhZ!QG`DhU-gOL>02g||8PMEk33il%j_ESPx8Oc+)7D)3L~Kvtau#6hAAp3PTiwL+`Ktp=43I>-zN7O+w#k<3V#&p?un zmcJlW7OG_$T@k!4v78Y7N8^4<<9-CetB@%7y%>RPcddbpGNrRjuPoE+mwraCG!|yo zYuOB975XZZ@cWgy)yUjxL|RFaHq z_9>Fl(#6^CieRfaAIT6wZZj=rlzGm`hZTC3Ua6nlxu49X))c{3opTix$#^PBRAy2U zvZ^I&rA1V+_(Bdcs<9IzXr~o~ia69SV-5PAenoPkDapGj~4F1?|Y(Bu8N?=HD{7hgsie$vP}_e)k4p$Qh6fHnWa|s%X~(w0ZDWfC?mao zLlPr76N1;J`R3S`%Q5`@lijW}Kep?(_Y z<0}$oh*`$c$G{W4L>ET{TXmj~AUL0{XU4_|_M=sj2O-pt_+il#s;sEETjtztMerP# zxF1DOrf@M?L9nQuBG`}eQ1Mt;;6)h&B9b~^*F@dIg<=%JR&{bKt=qmB!B%qe4Xv;W zoy4VLAufq1|AG|U=@sJFQUqmsVws*urfV(QfF%4f4wljQXO_XSWE^T$61OU$2zW_! z?Gjal{9~HS0G)Jo%)K}L{D zY+9Hnbr3A!)p>>{!(+A1Gc0gYkX}hfxEk;@kv7S6%{pWmoU$Os}HL*z)5>=Kf9J$xx|t3L%XOI&6rjH>BYgZEWgCWw0O3F-(L|E0GDKm(4Ro zM0)*#5W`;Kegp|Jc%_2ioMm=2mLSOYBN6_ndo@=P_ha)!GH1s$(r^bN(Y*Lp3WBX9 zw+mbK&aDJNhAYVm#~qPmGok)T)nD5HESEg-R<#bZ_MXEc)043Qv%V@d2hw$d2;%`#tFA^%~V;pQ2( zuo^0Z#7-ka-TSP$l@&{`3xaHZ!Z^AnBO^0{J!?t4PDsNiO7c^1bV0)Ctu&e;A~L&( z;OHuocr^&oTGova>PKWkD_kGRJgZ3PqzvAOtRS;UM)KNFMi7({){4?IA$77$?To~+ z8q#&id;)@F$v6?I$o|>~_tQhG{;d^V#pZqlp=;mVk0H3u>ErUyWknjdienYp1I#Z7j#V}55bsXtN0~+{A+Z&$Mh&CaFnSH6*Cz||A{{ch3~8tn zBxjAdUK`0M?-O#FN(N|U8SF<}g|P~j@EhL{97{9Q&@L)vEivXTEox;sP~3{HR0#Z# zKT~vFXBq5A^QqDEsChs*=W>|MJc2SsHSHh-TbT^nz6P}t1Y4O5YEk5_F{A{Uicv9g zT@fkRPYXS_&~u}HYP@#Ifl7^#wyuPCNhpCxp?RaO^sS<-e{B=0l~V}YfwKejHNOoAlOgKz|(#ZtSXWla4{J| ztpv$<(o7_yNa(qy6y}3fn)(-{p>0_Zj6xA6XN;7SEJ(C93G$^CK4XhV7Y-#HU0Ibf zAw6NWwG8={hBT}OqPd)%5Rwsnh+0CBnhBwPM24zPR_dp|oID=EepDvRxl&15WO1}B zC7GH@Ml(_|7D7wUvkcBz5xjOSXITlM`K-xnCD>gF69RxaIkxOiSNnDtdusH3CAbp}fC~kV1ui8}*~D zupc?CqdikI{W~EfBismR+o_FPX`U~%lH6pn2yJeqoQ-H>EQfUp5ahlV1bWu%3J8s^ zTuhsh+87C~D)qd9F(4b`4ORyf1Z7eK4je-Yo^Dd(eo~`;s@mrZA=r-~*pDJu@Vh@u zH6CgBT^6MAwbNM2&sGS*eiUgeL;VOl99k+SX1gC`HbSVCRLUcNO66AKi$uFbPQW&Q z5Ug036ZNbJ))~o(dX^TA{7pPo4P)tQU@NI7g`=-cGJ?=mXqnAU2==4AD=Q#meagVZ zauBSeyE3=hn_F!jOA%}}GBEiVLaoNPu?pFCGO(!G6`+hF3%|>WWme*TR{GKkuT*A7 z{j|>g2(nm)`l%WC91Lk2_jMa;jb+Ctd>N`)rUV)Je`#SXL_TvV0f{m=mT!8n1>hvNrT>wSbI#xMvaRjKqG>PTRjC zWHIYOrhk*c`Rvg14m}GJTj5oRpAlOL(jyXDVNr!PfVanxg5GxFEks22b!eBU?MthQ z`!O9WAo#_vi)EB+D9B(WSmLqz%PfRQYz1D|%Kaz;txSenb&QuNSS82!GaLG#1wk3v z|B#oVf9r?p^wq;pdv_N>Mt$^A2G4q#S}B5&jVXU?h1aE=sGX4-WJ0TsF%=x01yCJ5 z7lv_nE^ZfhcPQ@e?(P&XUfiJlXLvk zjHGsV9W}qkT7~`WIG2)DifaZ+SOh%Yt*Ok9VMyzPc3+sv)of*l1HSGxY@k`RNPYln zE?0G}WeC3X(e9WF#ASNV;8@!wV>-BJK$;PpmN{S2Mh3ba|34|)9}Gv9MMdBkEFQ9` znVUuWV7eT|c=n3Dvi>TLWX~KuEKZhj>)@1Xhi^A0J{#|cD||YH5TD``!GJwd=@Z7! z+sTqV&$xY@u}wuehDQ*?zR6`{)jSzD=PwCIc|cg#RKJ`$A}jIZeI{~wg>p^as(!-q zwBU%;w>GkGl@fVVEh^4_|L+af|Rk>0_HPa3VwL14qdTIU$Cu2$iqZj9~b2H^u-zT>JOgs zT1sV%R|V(x;=Jk=bt2qMHF32Kgl zwPsf@R2045ShjD*F9@_hE>joLFN*X6KEVH6EBDV1cThQms3|@e21j74*jL3kk}^+X zL7LIzco(OCZ$3$>aidU{c}E*#rEo+oc=u(SNwywQzQ1qcuySfU795kzkSNG}g*230 zkc*V!?*{)lUoVgreu%&QSM0nMozIwjs8@cxdxTfYu1+9`Y&^k_`Cx*KXr%}kV4YgP zT1@Ae8cF<=P)s_11DVKvP<$kS8h>VxrVsE?v%yCzQjOtZoA0mYI~u$SkF%Ec7E_)c z;c;BaOK~(?#y$vP218LR`v;ogdQAh`s@XTk;&eif1Xyb#;~hcGf+;5PN!sJy^nD=x zl$hZR%#K~8Dy)N`A;taJ?4cD82hQk1oWbgSJPk+?M=}O-VI|dI{}CR0jOFd{8SDO7 zQXGV;D&bd^?2;^Zt^LFc$xJC0hwV=l3W0;c$S@kU86LgMeVvJ+IhjPc+e&8&n-Mk( zRKHrqekDXJ{fHFr^Em}@(Sf`+zkiR@c(N0~5KJ8C5K7L+vLLxPD^hs%*Q>p7N24Jv zVn68UOQsr%ADdGS?2xwNKQct&x3g=XNvF4OQ%!nZ?i@H6L0e;+WV zSHgF2tQ-W9AWn*=#l4Fso#oJ<8+<2k(DAU5=RcZh#soN5U24&Al-^sv44%704 ztNRE`yVSVLg^q&k3sMJnOkSj>v{M3l1`>Irha#{7sbNSe6tvNlsS)95QZ-t~tttzC zTPXiN!dp<2+Za5A;GR;+{%H{@Sx2srMYlIiU?b~Jov<tn!nr5Q*b-H^^b_YCY~tLO&L zEm8u^Xm~JNcVe{S&Nx9%(vDy7p=-7N&>mF)H9Y?+Mpbs#OIFME3y3p*iQ*4iM-Ssp zkaqz|7(nxL620C0r0=KKoG5ZR-UC0n3$0TP^;iv^9hXp6|0=m75mLv8DNT;#4OjOG zwEu8(E}Fu1zl-bSl^VLGya6S>Oaii+MhhVUm>I{odteIAWt zvR>XPC|GHX)UeX!rxvqOd6aQTW}#;EXa+Lm@6P~$!h6V}Aeoih*}8G65J2(cOL(`qeM|&# zvnuaI2T~DSi~4qP(EW2|VR605=Q z4AjLL+R8;{Gqr1vQ1re068T7a=Xo{DTtH;jie$B8kz6|jrs=Qfr ze|U_l>gPr)!ilAY>ZaJ9rgQVpikujb;^X(0GY#LrG+B{)B>MFT?t9FXDKk*MdqAq6 z{pvMw(Gsg1;k7kEid@_=FG)cOkH+jBSgNj}^lvNE^fCBd_v?5-)v;GrTwf>}(!zZ{ zNl}@!NIq7C@_Q(M4=zXoUdqPtb>gu${_hDvFA^`@p^&$KqL9NOIQpZw!-L{x1a2yr zO9S^Mgz;}Kx>8eY&Ml3&e!WpH9 zB#2is9}*X>o(x6lhEe>2Hs+Nblu)L~&x$2lYvH<$1#){w02t4%BucKg#MkugHERbe7LYV6S^NSEgnUGDLHj?fpNU^kuOrK0y!I z2vP!^qL`}l5cJkVGo@F#P$qQe=tt;Qx~Omr&LLIOJnTI?`vIKN4vt&l_Lm=~ZhbT4 zIF5fD9j6@?Un0DWr>|gv|5S-RC`7xxGZNlmrpRJe$xuA*4ef;c(L4ejqf8Vz`7^@J z8VS5W(t4PgiiErBwY+2i3#|nx8H(q*WA;dVw*| zv8GTq=O9LzbCp0%%f8LV3va;y-SCxu5~3t+DzSC|< zV?h=!U;B6Br+bfRC?G+R2<4ovN&^2m3hcNMW6MzOUcC&8Mg4?Q;%YGupMC$H$^Kn^e{cKu_Rr_v z(|0@fReXpOlAxKODfFQ6AVYG9EC?e?2oC7R2?$NNePPHs0+1l;FH6x}90(rB*Jel% z!5lm;h!i8>95MrPJ`El;9n}*Ov>$XFiz162RS7L>Evi`o(MZ6)3?qvc#lRfeRwQ&{_|2lvccfPJ%AXLkFXKN*HjizzGQOz0fIuS(tCtP+&%8^B==T2Qz2D zf9wJd%r=`Lz|4RQ%silB|6_yyv1wvp7O06Dh6-MiH#KM}==c!;uHW`P6bJZXD^VWG z)?GL-YrFW59g=~WkT}@DLU>Ft^U8(S{ z4X*O}4ieZJ((jNJkn<8;Kp~(n03OWH@4;+}2?ERr@gOQ7)v#fKoIv|y2un`$Lo87@ z(WPT3S=6XZXNVI>HE0a54PYN!U>ip0z&0!u|7Qc?2-pU-JHr3i!hft(_&;Wf0A`sa zV2#!OQvb(-|I;Nx^FKz6{9iuL|JWiM*met3xMDcT=_RoL)ba)*u*%#S(BK9b6a?}E z?R&v)O(k<6{$q^b#>4QG{jYJ_;K1yZ7!u5knEqo$aR0HV|5zF3f6NyO%t&DL`rw5uEUi5cDV!|D5lUy%VIkkx!~40L(JMeHeuXolN;=zXoY;m}JjE zh(2d|L7_loG>ZtCAz4!9_cN~q&s;r6Wk(@`8tRci9O>t%ux-Cp0Pv!?r;yt^&G=s+ zDeIk_nxz7vRBUaGTu)UHkS~xKg)nLH;o#1jkNiXIAsWYsepl^Ds=%Osy}I$rl?86x zEH(vD#Mrva*9}E07UuXcFQp9g&7TzP&F@5~?g>73(Y}#(1FN$UqzGzkR}#+N!ODA9 z31X5>o>H|<_6t!OPi?E9Mb;O_PZht?pCgd*iv)ksLU1O2#q_0eKu`*mLq;n z7!zMMT0qO(fnGX4+2YMiwu@(@?2g?HqF>qHfMNG#Y*7_!x%Y)H!OxbPPPROO;;-Ys zyX?LwpaP4I3U8Q(gC3Wf)oHbY6Ub{8)b$piGjNCy^=@HuzTbrYqcZ#T*F1v|XvLOs zqB<^YM-HKPiE!^6=?rRQ0t7K>!RGcztt8MMz=o}D-4xG&sKf6k<@(A0YEVmgC;5zZ ztJ`VQGDj(WcvpVMiaTbD6gZO8q#%PNG0IJ*ZJhW^e=V0&7>eojS!_D*(>U+$nba|6 zylwkM0m%ZJ=Vbk-v2O3K=m?$WRy#7k~9zHIrDP} z5%jV=7TqE@#v#3H*4(TPYTVKYViHR+B5psVolo)Sy$|O@Y_gPP$m(odGT=DdmAR4I zr3Oa`+EHO(%YY_g7^SVi7Y>eB?o)B&ctK@w9?IjgxuxE*zLHCWD^QNOroA8pPEON6 z`<4)SH+HW>Dy2ED@AXfFh^KlgM!YO$4yZG|raEEjMzA+?vzrZ!^&Y-E8#M0c@y$$WFjWP@d0HA00=yTlJ^gg~`3PaZ zt_)s@@$^M=j9`f$_NdEEJWGcRqoPlyhV4T@hepdNxN#Oz6aY-lsR{{ae*ydv zJv@utj*Q!CxAWBvp({t!`EWr^<7$QwiYtfzBT1mvQS3749x z(b8LZ74Bpx;@P68?MKs>pOMwl$I#f{vk|W_#7v9Df7F{KE*6784Ym!u2xQ@dBg6gj zT(lMs6hClCCCR+l+%R$U9|k$4#gv#AtK%BtpmJR9?%47Y;gM3F2lJ(a?Mo7q`}e8H z2`oH{5O{9|zihb>`$mw(M_MIp6F$omw+gs^i4y@CgbO0 zjJJsk1e}C=g+>y9LcS9QK%tKUyZmn&1PsH8`9rG$`OxX9$_o?x*09I>ja+RWuGx}` zNZZ`d^C+dRcF0e5!!4iqg@+?elCp`L5B$>^2pBLaF8)}bJB;-HKhbww6Cad#8#k+k zA%U8Q2v1ihy}3?tds_5A|?o9d`Q|*r~!6d;c?!iVsZ|<$@ zu)f6Ct4l_?G)SLaAkn6P!Ea5vXM7q0vlBo>r#5zhIZc_mO^1Rio zt;Ph@um()?MHA4nckB+<&-T6(Y`#(ov27F zINIy$Xlo^oK#}*M;SvVq(av3<<}&|_FhJTh>x%VK1=ub~wss@i0m8)0Y9z%HXfH1!vAQe-{|}?W+1#?GCC7a-lrl;)=&88QJ+WOaa)A5x;)J`C6%E(>~L@j8r8FNX3PyD!5Lf|eZs zWnH_iRgKqpqDD&28HY%p7P^O}YRafDFDeg$5pxr_OY;^{=H|*$y})IOFvyE%WyoK^ zWq$jNl2bf-M)@&}c<%`!4#`+|Bx<);>XSMRw?y(+hU~p~fQK|{9tQ}Lp~38L6k&oH zUkN=yVMN&&wM2_lo`;1A`EasuIBx~HLJn50+0Za~RebA7nYnFHAs|wEX6{;(-Rf9j z5R=$_>snLWDvD_2((k-i>Nq(JwRDiQfZ(+-LP%7F*&t%9>3iiKmL$(pSucwOG4-5; zNm({)xP|MW27dYg)a7!XVCOLC_=yw(RLznoQ#_3UT{`?EO!S$m807H!5^$AJsS91HHoiS9v z&3HcM%obMxxrr*VTA=z9lok({_N8&>VMJkTQP$_?UiI_~Ho$@zL+X`2S$q$+%l`GS zcc1p5L=}k(Z7c0i^&UcP=mUOlU13cLSuZ*plS1_mxo$)u%|1XhpoNV!oG;RQlsI`9 zvmUC2RTcGxDP9CJ=M5{WXr4;%6It?2JotE#$^=%RbG)r6QcM$h8Cr54u))SUb8PDmB;87r^$+ILr409mwj27nCRSvxSC%S zkeV&NlvR4=a;}I*xk6mbbw@sA)KsUJ3gTe)DDVRnD#eR7V`0roos8MJnlNZdJd-_9 zH=%g+=7@RZNdVrKgncwM%xV!my$q z8)bu!dS!5xJUK!hLZ!y?M~x7;fDD_VlXpFwQY4o*34vTSjq1dUdLt|-5dBie9kN7N z;3wBts9A(&Y$U>L|!Pn6KGjE&mivE;acahyh#Y5aa|Z>@6m@oQG$o6Q*}D;ziA5KzgaV|3daPH=reDSG`ub65l;h|X3Sp{BCfdZmAeOi?%Al_Z5+ z{z@y#(XPqGWCAIXQ6ijvLtZv4`5uQ*4M@nY6OsJOBXVkTq=7NKf?hM`MD3d`omn|& z+;a)JNoz6n#Ryoz53a)*`CustIt2G1!YfnUvSmieO*8IgDQUC`{gtUIl44s<6AOwy z3_DPhTCw`h5M{+JwH~(=0}<-HV}Y3g$~<=^fH^_Zk`q-06)_RZSi5K`s#=i0v4G7) z94*68(A`8HS^*PbufD7rIy!ER+@RoS3d0D*LluLXSSS}a*CV>rBR{`KS0-Z>ML407 z8!$d4UZ9GIapaK-a-+CsUsCP-1P?%rc$W%Pzt#OwX_fw^Cwn z+BSxam(!)fDJi2AQpr)1;sGmo znpVE$oD5!BayRBHVmh!(tT+kk)>kM@m9&ijouH_0*=SP+i6vF4UNH}`#$llBYvEOq z3&X)LDZM_f;uO$j1?%<^jIw!>dM;K{%w46c@j(5u0dV_tDDE~GuBQcRo&;<05NSzt zOBHCna4aUDpUb!2n1-+$wScaG*bLly`#*J^sw9Tq*#O{Bb%}z#CEe04$U0v$&aaDHaaO?h+VFFccHbg{}|pgy`rD zJiUPxd&{HTM+#9`vx8(<)~NC>*Yu@BU;eeSo12)Q;s4OfB06If0LL66+`Lt8?(z<$ zAuhJnAfPTQn&8UujpFhK#26)s8sJUAZ?eizz#{78mk@S|&usnx!ygfnEYbhp(f4{F z1J(15_q4&pbmKh1u^z=d>IPKgTd0Y*EYS-D>R{+GWa9#>U>njffuozj%o&S?@te0y z=G&ZzGb&>^Lwfz}lc~xmvZQV@RHDw)1d2KbK$F$6g4#q0Bfs#FAbH@Z8?4%xUHqC> z)VAHcjLl1k(8@u}j{JTzL`UK;l3oi>=zYE$h#CmgHf$&UrDeDBssmM>$%0yLA(#e1 zZF*7W`o?x;jD5PCV^g+(*jnF^>@qCiQyeF5cEe5_tPGOA?v>FyMgWv{kk=exElcqq zS6Il7keaZNfXI;i(tFK#M!;49OVoA%3K8#a0YOx-e{9!tCxX4&q#9%sBQ?ol`7k<)1{Py+RD!o%gNRXjeI*(ERayRbjjp{*y z_n6w{@|<53SXy2zkq18J)5=hg(?EwUlp8#~D7Ssb4=$@h{oJYfWhqr9NH^G%`>rnz zS&{V*uA4ZbMZRM~lw$l#2XC;OMSoCBR09%n#tN`8a&Yk{y2{S1X-v_5uv|-<-2eyM z4UW(oVv~4OF=vMz?g9Nm0b)_x)3&0VphyAc2z%T4K5fi_H9o26$+Np$9ED7xc~RA$>sS}ZO#Gm_AwhP*VW4e38<7l4v zIESP^m}kb52r1y~W1$J5u z^zsNU#O>h}XhOBgn^x?zfV=&Fy{7T74op!B7CP55_psmYV9C8~dSSV&!&>Vmaj43r z$1pXDOlpC^I_^+hd{*h8h&N#|}40^qK^<{c`y-G)V)atZEHdIR!L*ZhOx_ zDEN-wMft1ZM!CPaSG2^9#;oU!SkeTd>Uc!SQAccp(SNUoqa>F|+QN^Kp)^KHBf=KU zZxbrPS77Dm2ywla`b2g@OqU;=GBjXQdq9O}T-m4t9Xv?<$#ifHWqwu@GK;sl19`(o=Zp=sn+RYf+0mgQ; z)2rGcvQu?TqMh+8=56ufZZJd#xbMD0?sV={mN7*QO7zwmN{ETFxL~P$pGhNYko9d! zkxiEUGHmLQ{slWad#{I1SXn|VT^4Y~B86ppyq;d8#Ag7w%G@0`SNrk{K$&9ZAWwx< z7h4LoU_g0Tzsqzd6ZSq}gT=D7C?-juLk&rUaC}TmY>nT=kp#9(ejlBnzw-dh5n# zLWa0;xM4P5RT~siFzD%d+y>`TWC08?QokJNj?#mbpIy1o?HZ83uNtODlP*?eP6Asortci{NBz?zO@V8z?m9Wwo<|vvQR&g0rPvwUm!#^gYY1iyQ zw+8O{*@cJ7Jt!dGg4nTPoI-;d!KODE`I20%2!{6%Sp{ zvUZxT?OM-`T5<;!HRGp2wEi9PF|e9d{Vb0G^+|-TTS%LAK4o?MvJNp6KHT5RqlXk< z3S-Q7FCKyOC%|CEaj6#r9l_DFL*WX{x`ZB@M7s5E50(Qbo5RwKj0fUx!KT?ps!&>5 z6tT|VgmS!u*0ykmasOQ4HZI~~K^h+9HGXpgP%mQQ9VD6S4yH>g4jiS}s5Nc2NN;kp zQQ%ocakw@!$;X&VjR`v{N!Y7*4PGYnfa{<)AG23~{OEM@-dfISLz#B(lvR``mBa5a zy<*3nNEf~4iST1v+-pOeC*Y9EqS{F7_-962Io3^u7lt`nGEgF>5j`u2D4{RWGK3)`@kUF5ilfGFK4a^GyncbazJimM zr}WTGIFXJ32gk&`E#P#EHsH`O0gf5mCqCTg(_Gd+nKIsrwQ+`eJl>i-UiH9bKMvXJ zq)b%B2)Gvpb;QV1ar|&oi%T2KEr-u3&k}G~x1M*zi<=5irxZ3UXDH)61XUCw?8XoC zCyqt`jiK)UI3RowZ42Az<3b=&NFb-w2@i4RD9TuKK(ac%DR|kqI~nbqI$lf z+S6&AkY|S`aZE)MfY=p%C`%=n_ zg^av~6zJfL5@dp@zSdacK<~GAHBB4kZvMgC61bd_Oab?ZE%1{~SFvs8_O1~9GyIdT zf*iR;}Q33DK%9(70 zGBPh45hRfueJ%UeWU6S%PmYxD6ABX)WYV$nmR#qEwsVN(V1XVH1}_8PuL9C?|1Jwm zP+_eDbTuI!>wh|57i-wefE2hA>6RQOepGBQTOKg)FO>P?A*9J#W=<3y-$okc!PTjp zP7x$|(afBWJ1#IN)~wh0{H^N%8=+VjeHWip((*3n)yg5DOM1e_3L`cFAQ9nU1d@X;3 z{IM^hD!LY`2wcG>$=UCQ%Zt2(OBDO^sz|sC8jI_FNt%mLKxqAXmq5(-!b$_oOwwCB z@G@B$gMl|hcrBTcHaA=JKcQH_Rni3cgwf)~T1rtNQD-*D1J(Lx#ptzw;mY&$A0h+2 zK9N@8q!4aG__6kPAj-)Py}P4(S$8gN7%Aq__Hg7P<1d1A#~ zhM_~XTF?OGPCrwQz4?#bZ7kHReHvF%uZH^EX{rw%k5=`olx=664d;e~kMnWEgepl@ z+|BzF%Qkk#=pm*jq@%xK2Y#AL;7*!{+I78V9_~9Oc-53|Lj;*8JJq<$mzVQSJDD=< zC($J&=_MfPwINJ88Lr?v8B0dgN@}IqHorv-HG^k7n?3j=Yw1nBdQ+c*eKLBNc&wwP zL^i3jBo-V|rbCLqkEKOh(_s_#4=vXE{eADwUzJqUvGo(htlbc7V@v)YIYxk%KU_aG zT3F(ufvtPP_ zG7Lz2=@TYMn&TRz1J1TC%vKn&gL8^G{r`D6!fhT(Do{0w{ksr8`EWMy9H$oE0l?@f z%akcJ-<-&y23g?m{0e-c`nkE99JQImPmSe7i|pwJcsL9?+6FsQ0@@n82%O*_a%&1*9IV1#?oxt6N^EZ%^I`p77| zYC!Dt9+ET%2U$P2U7SK(|Efo+PEDzvmpN^#=QaygM&qgBMIHRU9xkO8SERCTc+WMz z*HCWh?f?2^9k$oSAycqwE&BreL>ykLMyL89&G-|*Z#~`=Jq_%_&`Ef8$<1`stb#MtY9&q6_ z%*wVrHppM8{TU|pt0ps0sxI!uS+;W6C1%odo}KZsGKkoh#K`)4!9Tm9du%atwWpWy zQwed(Jhf`9iG#LDGYW6qYnAf8(wRGzjc_fiSzKiz;xSaQ>3H0;lUp{mWh+F#qp%ur z!tnD3yg9U=N`1nO-?!ANMXwh-+W+fasi>zPVJBkK=XWa?2cv+fw3kA2t8B|8t~z3z zs#A$EM#cFmyg#4mv89KtKJjoC$u%6dG+DLT!%UwfD&r);itG;_tyiqaY)$wt3#C#+ z*ADUSB{vxbL?wrOwq;E}sTRiEoIH$UFF+$2swzkr#0G*E3f=zBMf+|W5S5n{i8{^I zPs{7%@!FTQG@K|a)4!8ihp+s3rpN@I88-toq|Z zandGe`Fp+2DmnWE1!Q1}{O!vb>zIdZk<<~nzt~(2Hu;sLkKaqOf5#P235 z;VA=4<+i$lNqD~v`q-yT?Fuwr_*9W#t#vNug9HxZh0^8zv(HftPCf%72-YspipVBo zd(gBJp%;hL?nb1W zo2`ccM4yjW&|e|l@1?9s{)i6x?|<7vzt6DF?86rO4y|+sjJ8%imW7-I=kJCb{cFd^ zSgj-brIitovaWqH-Tr$n)`43lZ|_yrF#1G6(WDS=eFfB1Mc#EZv)j?eC?=vRTKSe@ z^t?ni8VQF-5AUsCBa$n3{G&*3^LuICpc~b@KdK`JGx2ies*4@2VbiqE>*Ck6D~gUl z2$wH#pL(Zcd8jK|uaxWZyAAaurt4UN5C)^@JEyX}3HztNGNzy(zXdb92>v=S9#<~1 z(xG?N;{U}d!WaKpU{<#DIIaE9rCtA<#sCeC=^5iBHpfHu-o`YFUH0+(UQ_0@F>TAf+e@Pm96X@kHRz9EUJ-z{{zebwSK%X)5A6*T19VEpJU^u9WFcr6qG%TodL zSl1@xBy>U%l$--GTh9nWih!Hz>I8bd(9SI`*DBNLb&7Rb9E6YKl;DD)jw`h3#&)j} z-(_dEM6Jv{;-4E;-DtHg{H3wt9 zJplaL9qkvl?VMKVK>KE{L_TkyUnKUCtk6T$_4uE`h_3YPM%?vtKEE(8o+$?LUhK?$ zeq}{&bKj_l1PoZ{*m>{l!qfZ3=k3-*Fzt^+reZ_?LXgUosf4avtp~7aMqfog(2G)E zqW-gx%Qi)8N_qF#_QGwY+tdRtL$-bu3A#Y6CLV^YHRCcTBZ$(u9fUF!{Kc=$waQgU zbMe&t?%L59>kyvwmY#U=DRXrxBQxq$BU+dMc7H3*{si&%V;16)EMMvuucpM)2E2LR z?U7Cs!#!uj`kwWg8$ZrJOV+pSYmuncn+o7RK-$pd4+Whkn=93mYtQ@qMt|l<;#2Oq zhrQm6bx+(Vh5iGQmEq{z{HEKJ^|;w7j?Ar6VZEJOtkr|>RPBYDI@ z0N^IaJLg9`AAgrCN@JFzpkgboG(9|(50&jNheb%naxV1qQ_Qn+Y1s|PMvELn@E_;N zwwI<$-a50<;m4ZxT%6Uqy-tX;mYn!cIhVK75evWK4&{EguiUsoy;4jXUoNe4NY5Tap`>|F1iA34;K8DLWnm7_c z32*6Z$?`)IsA=Kj9HdLCA)Yij@ml8dOZyJG{d{-*;R)WQqqym8%gvMJPkdhBhO|pw zDzWM41-!1Y7qUbdt(Pit)SFO{;*a(}MbDY8iDVd?OA}($eku98GUT>X=qaaeUT+)- zFD~l?Au(5k&X?5_rKZ^K8v5~B`?FA|mkH6B+rIZ{&i;anWW8sM65n?tP|=Bpf47&3 z_zBLgC{OVpveakJyk~FphOSW#u_60g+kjgs+_#Ztv1kWOL+X zNmGBw&GfaZI_5^JW>{y_K}mE>-}3yC?rlrViLGqM(+qH!bA(X%+fZY#+xjizK$p(Q z*7@(Cd@N~XK-FZ6c>pJ}$!Jwxijhy{BY#tOUbN)VQ`fY_!US9OEQ(+($^p?d-p#}j zk4CHKn`*Jh(uF6k$$?WG%L;jnU*WcfJdbdDV@~4`qE)@dq`H&Uk!u$%EH#lylij-# zc7{O?Jd0F%#^`D3-Vl7!QKEv(yK_ye(4B6#UT>^>(Qs=0`dSrD-?X;MuygnJ7W`Te z>7xLNl#teAZ(9Nv*SIE;Ue`9iiD7zQb(37$@9rnidusa2(S>d21J&uC+|rVU54`cY zX|;l@S(JV;Hn$hA~Wa0$okFQ-;5REfL=-P>l-pJ&(u?K zZp>z-^_jI0{p5a`FNtN|+V41ecY`_)S1c{#6T|W|=zu2Dab|-w4wRWZCMM{orj-lB zqX!c~+$LVDQZXdA0}{f^g00!1{M7AjGik); z^~=1b0(jSnPLb-Q@ypyA1KP- zGYG%s9K!hhwe=G-8}HM_ZcuNj&+2thd2n;9o3{(kf!Km;ncZHX&nE`4es(DDj(h3$ zgn0A2wN1+x8E!nz0f38R&Q&7KI2MoR@51sRghvVOVAP$&X1|LGc&--dYx$i{XB6OL5rg{#by(5s{ z$R#2#Oq4zil%xUJeb5QwT_d;l53Ld>v(0AE9t2$HzFg0%#P-}*hk`QJG0xCB-eqQc zv85+$ZwBjWp(-K*G*M6G66@-+4AW(FJL_vFCf{5{jp=+FO8bkyVc+JY^yqvW)+zu(rm>4rsMvl#30`6|3vm z3UL?W?&7QgPJg=Yo_7?~*~PAeAIj`o1)0`F*`Zmf4t zRl(4j?L8b=S7;m;Op2>%kf*`B?Q`V0qneDm{KHY8?g3sh6|Wvy!Tn*EKn~p8PmxRA zsr?=6=-B1KYQkioUNQN_^>uKvvC%v=>A*K{E;c%4Ayg?;lO(LPH7eOJs@}XE6<_1V zFr1OX`CwC8VAuZM6c5nV3fmOX4lFKx^h*8+XKSIvki6q$gTz}Kbk@23q(nEs(Ok>6 z66?U?0|qL-_f`DROf)oB3iv^P!eKTctkNNHHrr?9X_aI9B~ud*Km&)&g6g_OT3qUw znmtyI5W1Ps7-!4KYT?wjakve32q zA>SS>_48$7C4J;Xm};;Fpj7ON6O|)8?rcgHwa@f5wi{nVCrwsByNS|KebA5;XDTp_ zEQLrcGZ(J;8C4t+spLff%J~w-b{zenEp9oxP6CF-pBhX+(fqGEGOrUCuck6Au zcl85i1v96ojXZ~{bIt_78U*Q5k&kCxuPNz z67@S?Ww1@Djbh)1A?7o(3DM|qSZ^>MsfFET%6K}vn<-X zn*`7PxFRQkZNuq=Gr);IY zO3@mchn2r+pWT)0DCu45qFOe%)5BD5sn9!#zC|RN!BHq?NU4&s6^8UUWtTGuFdHi3 zTN2YgWtEHx~X7z!^~+w zAUe!VVgHc0seoXCt`mG1+Fxk62ywfx74zx2)7={MjdhtV^TcK?Q{XhT^RGxkMF zlL!%opGD67Gi2&%4|>6hI?z|z{SAA1_&bxmg@&3Xvr7LN>nHzvO3@wc%k7r=bjZ{- zgq(_*obuMvg;ZBMDM2m56kJ`r2U@lVO&9R(uYqE1Gx``c`AG>}g$82f;bj*4@)1?p zug_AKh_9vhCH9U1!A16Ak7@Egw!|WqX&5{?-DV1&sN;JhN&_?;(TzKa#qHRfl(ENJq$%6e)`cns^#(-=f7 zb(k!?DFO|jpd!d0)bd}n%Qfma@4WXGaAsl8GGqxIg&aVvk|gXS6a#2Efkd;PPxB2ntY3p3|tUe9MYaWHy(2!wqfJVx;;-jA`sBE7Ua>blNIR8Ah)VW%#7kqa;Nng1_!n5-eSs)aRz< zEtU}5n0^gMsv5`iJa_i36-g7dA828ZI)ci`gC_Aq0Y@3T^Q=34E8Re~d>&0Utr(-S zmwYgcs+s_ed*pso6LImc`pg5r(TZ{XY80Z<7UWAQiTb4PBBLs&zgyf%Euhx+^cy`{ z8C<7x?~XmDgPlF-gG?acpslyl+Lj|0biXp01-AimIt zbs*t9u=TWdjlak#eani&%^_Q@Y5A%R8`BpC+tr^AgRV}p(iGBAY=nfM{uHlC0*+>I zg7WW~fl`Bu&lhI4OEY;CvAFb7s?sokN9t1gN*(iZbTLB;ACoKx_wZ&PSQm?&0AMem z7Bo$YbJycIHAF{?h}dPdP;`!Z^+@ege;3 zB{)ij6>PnK@-7givM_P(Kisl;g}MR1N}|hNa$wvWD0M6$R7EHxv2*+Ef}@wDz8YKT zP+qWvBT8k!4lf@E?O#KS&1wLs6xXlmG?>gzTS_CMJ5Ep)agdnYVms2kXZS!u*l4n( z3K&xyv1bqim1cexinH7D_^mi?(PxJe2}0=m8ZEH1?I;JBk{#u*9Lec%c5Yn3_w9gz z`>p8#ka(^M9yX~Ea*W0<aMk2iFReL^u@G(oavIl;+Zhh{RL0*g8k-vZ(=fxgsNn*dBaxf{>~dkYsCO)I18l! z=>M^F6+m${L3(l55InfMdvIGUxVr`q?ryw*+^BJKX+vSM};u?W=v$ zv#npx&U6pmol`n?p^U|C823f_in_yuf?Jh1QMl0jILw}DZS+;LY_w0DoT*!vP>>fJ zVJx81)%XY8pBJ?Hktelzgoi?pAMv?jGZ#9wq-O~7a7W{xg2nUgdNsI)>_!r9{Zr>s zu~VD#xFo#C*rWxg)+L373->;Ii}9o5D}2w#7`Xr^+)5)22U+9kj{N|puWg{!d@p-j zkc~LW)E{M~tE}y{>U+z%EoM--hQKO9Md!lH z`I@GbIW$d93*|Vr{iwj_vcf`t>OJ&i`w1pOChlN<+ZeAYK{x`cU5an%xm7x3n*=PG ziyGF_sbWv}lT|%B6f_Fw2<9^P!sqQ#%)Jwqisi`+Y$)W<#}iZvezku+n5t>QBDZVc zsHOJ;h#)Y}B>;H%ZDTA?CsZ2!9LxB9kKfni6QZ+AJQx$xk}$LT1TevgkO z8^A80#kJ@s<`_|u7p%)NLPCj~#8v{+fP}89K_ZV>SimH*J|M_mB7B+?J;&8$zp#s} zFx8Eh{0f7cY}S`PW{VGM`BF$`GNvF!kXE`kE|l}P@K=Xl4t+A(-&$B)17%fKZDssH z^pQv$0l)F+(YYRNo&xz$v^O61)T~_Yr$@~s-aEKx;!RXKqMx%VL_A;zzO5uqGYRuz}P&S3zSI|_Q7fDkP=k$wz@2-LO7 zz{NGFk2^DhBggwF&@UD3pNEO-B2CU%cm5NIxek?NZa8{yE!&5E*9j;MnRYL>)=x%H zZjE(%Y@r|d8}tH`t!Ab$xj8(F`c6TEpCyn0BImaHS)!Hy#I)!Zh}>C6cv8FKhuIU6+SANW$=^%a8o znCJ>>5x}A*h?B577QO9}i53dqjECrC7VIhW_%Nehf90pkpwf_6BJ3q#$v(Fyu8?%J z6^il?EgXtQ9h7XBP&J9;xcIS;9-51dO1g~S4hzzEY!FzqPge!M1CEgKo6${Yv=rC$c( zaAEX5XIu1E040XfNPGAZ%AwPC&Cnn`Uh0*;9l+*|G{*v7R`fyAICA)OcK5(M-MRl=~P18C2vWG*S zOoP+oCF}U>I>wcWN)BT}bNylLZ6{!2PVg(X>C>}#FAGMp)@tB7opUlO)%lm7!7*-% zT)hdpVa0TACp;?OK>URbzsNcYbQD&^&_|w*$hcF?B63&S3krzMPRt_1v)cS#_}|$S z1+P@}t45%f1N+RJL<|1~8WYFWm$aDZ!>GiuzfpdMxQtr0N!qf=zI2>)O1c;iggpSA z?3z6`HBwe;O(^?Ujw+cacSp)&@D-I@GRhdjf-z|IU!XoV$lYS_p;0G~Gucd`mMdm9 z@j@Ev;**~AtT}QvmU-*n5GQ;>s&j7s@4b-?wxvB@_%C?~w+bbgeJ za`q{@)kqZcj3a>|)N?e66G(Mj+^+d9#fg45*~Bb7CM$C;y5IZ==5i#mLte?@G(-VH zIOYoRXs4h3Z1o)aly>slj7PCft@`*Kl` zt;^uTjt&E}^Kn4#0@A>tk^)#$g%9-KzKW;7Z*b%ed_iUijY^sZD` zMG3vZboX^z{n@1)eyWav3s-g^lC2o|UjZ^Kb+I}uLk+g^C8>0Q)qG)NDI&tZw=9-L z0yuP~iV+%U&JKFA8ZW0zK_!3P%@j8Ifhrb(%ukXJcWd09&!xRKIQ*EHptwT91!-O= z!Mn0!QXs?HNs_Wd%eFtvHel>(%2<47$&pW=cKMiQwUyyG~c?WxUUnrKr2yff4-4^tN4he`*W7>e3tQhAybX%t0moR-1 zJNEbE+=5PFr+}GmA@&Wv@9)o_fYvRAJub7wA3_`@Mn&TI6aq$84qHQpT)!x(n$q6} zdsT27Sq3;GT9XnTjyMVCMG_a()U_Ni-8xA0b+QeS6DijJow>7SP}T2FdmH(#cyw5T zY0Ok>=g?>!ACg-3wCn=p5Y-)*e<=@?N-P%l{aL@Gg_dQBs(4`?>DsK-+7)HoJVV=d zd@yvJ`?ymRHVt&&^fe(;m}t|6J{Ik0`8L2DYfkzXo3P1;Ac+Xca)CuhyaWESS$4)I z{%67Fdh#T>m#*Th(88%!zZbi}rhl3!h03KLA~ELQDCIfZdu;Wl)8oMW2vtC7ItX}4X|I+(3%BGQ*TE~xum7U4<7dM<#>ieAHZc}$&P z{eT({ho-6gb(WQ1aXyi5j|dzPDdRVPF)Jv46jO7Fb-LiQ8WqCAqOyp|xR%?}5tSAQ zCf!YhZYDzG;BOFnxWqzlwq39Abu9CF7>RlIGs80~$dInh>DrvpR)KT zuZl3ot(U)6zjO{JmTt=ZE#?KQdN+mR{kb$lIX=5$I}KsG%^dGU##bX{Fca3ik10sK za`U^uSnl!!K%}q6+s|zz(LO`Q)7h3n6b26Tb}Rrge=H zNRTXLSqi>)a)uK7oH;&^$h|~wGEk*&&QXioYgN}9`&Y>~=;m?qzC<4pTqEkQbJK*t zcCRw$6-HD$(%!->nc!u~2(LTRVU_Srn4gf7)Z2HoybT8HfLW~_d<5-yzML4{VO_Tn zxv@W$%*Jd`zu5Dt#`}IgW4Qhqdb;_iC;rE3@o6GX>q`lRJe2+U;_w4DS*uK64?6lY z*4CRx2aT-uP}ZBa@XkTY;u|CE8#o@P-7uaeJuBS6j^wXvM;BJcsKlA{`BgkU;G)xicEOXP(fa2o0uYv*T*~61+``p2iS1n>?%K-UmskObJkchtXtqXSl zPMCSe{>XYeU+DVAeHGuBbljcVYvANu>2@-Blf`K5o+qOHA<(>KI}N9c#Z4ZnH)fMM z+i^O_C(+oZ!~Fi7rae<@et)pl)|rXz0;Ape%MH==GA;9x zOLjmp^rUXy82LzbXl>h#&a2&&)Rirlk>_4j^rjIP2@5Kie2^F4V>>pT#zZrQSqIE! z%@u7$bF|1DVfl=Tuc=#-AX>I;N>ZIWl<}xVX5jr>89)76V|Q=7+)Kd~sf+vy*JbS~PSZ4%hC|q%{uMh84V$f^SHmsbDGu1Mg(YL=}A|i^XC(V&t98hu_ zZ~1Q0?bJ}IU2r|V4FKrx?LJ4(C+!BXN>94S8Enf=W&+MI>(^<^6)O*#w98l9OXf2R zc`};?6e`^{&o37Ar%#Soe@P&54}o}CNw$lJtEg}NFxpo8P;rpume^r_new`11j$L7 zw#{rzf-Uov8-_u=j#)v4Yl=`-^~(4ANovN?7Q3FmZ`~?}NxOk@-J*thu?H(h?<7my+jG9Rsi>Hglg609rv&BW7N{ecX05XoM zMoo^FtFwg$ZLnUw&Cc%KEyym)wl%8%c$B7N)hzG}XPbAq>#2(G+Gwd;c)xIPz?>V2 z31Rcjki^NDBN}invf|mB*ijCNo|_x@&cR&?ZWAXLT^_4(Bqp%-)slE|Q@|R?j4R;e zl3gJzOQ;?)0Ke3Ez$koJ5jGaF)|Sl3K3=JIJKf&Z(a={`49Fqc*x_6uJd(E^CiU~5 z2)SoB(zoY#uX?oZ+=&%X=u^%r$ z?!sWFSP0M35so|5p2}r|@RwsHMyAjBsJAR+Xx{W*!VqjiIxxfXkZ-nqHTMF8v&o>@; z)1l8~>ret2~eCn*eJDYKK)xw%HEZ&!P9~(KaTfbG5i+-!&m#=wOUE&c& zO80CE;S~Lc_A_C*g7JH&XAAJdcyR$Sxlw{I-U&hrMT`7^uOFu- z?{50!H2V#lOBITy7EB@v6jJ5s_FOy@ok0mRUnvgpkZf+1CZ1-F4hgx7FRlZh~U&6)za`-IobJ985vDqZINC-lQ;?n^6918NDE zYZy4;Ou|oc_3wFO)SluP?gW3ekf&GCzr}}_%-c*ZN|E4E#T1uDou*4V;#umbcy~4a zupy|QJX^yN%Yx1#;)o+-m|!o`bN%+jS<&)oFG#AdYHipWQoBICyJ0D_rcy05rAgB* zMB4(>irrA7riP`Dt4j-VEDG3dIj=iu-CUG%A-~-rs<*v`-iB;AR&;`rlz$W*L}&{; zV%to}SSeQNPX5l7AgOFUvaDg&{fs&zbNP1+n|ymG*NFLofaC~f%<1=UT$X^s)W^!q zUW~h>mnfextc5>+mbnMcjQ(L{KM;kDuW8rZ1D?A2G}!KY-xKzfWzlLLR5oggh`V6L zGD>?*PM-}sz7v#UuQRjlL}{|u(AJcSBwQYw$M;sTpe?z(1k+=cJzG&2l@8Xtxlt+H z&|r!F24W;E7n*ZGUBh{x!~ONcB{!;DR<4t*#%|V)>x|C{jIcpVSoRJrCcIvpzJ+^g zKOo28P2fBJPPecKIev9&!@mI6m%>+pjb0nTRjZ*^)>WeXHXYBm%XPJQnABEy>Wf1~ z*Ux(fc=siBAQ6MTeJp9+Jta3IbSYNTS@$d`aWQ2sKJ^O{&0b-< zLiD6tb7cO+pMMNa@tgbgi}r-tW%}I}x0Mxr$7IW45HkxbD|Tp zU?K}boQ2u-2`f}awKOF7A4hax{T-l?xKp&%=y*-raH5K}JyK<9V`Xtb;g+G|d3|NC zLXJ@(s?azL+bXuCg={x3#qoK!r&jI;cb$J8=@FM16mddA70y`&8W@M6-x{>&b#kcC z>Ez7X4`_KYN_ZDF-Ryz!HcMZT`#CTwuN090Y5EvaV7Tux#h=N3iMJreB0dF^8Q;pr z%bo=fWLEg2f4HtMa!Qbkc4<5566YX`b*SKJC9FF99lE>Mk^Ftecv<6o^<{eO;=QQ3 zdM*|HsNy`3bJnX+Y*|i8=7in;E*>lWVztEe+JL^0OzdQ>aBugoO1lyf60nlGtDZ@N z)-@EI><^zMpi;vtxH+=tker%MaI?#e&{Cbc!Je9?53eOE0@7^Hl`5u9;l>1Mo|-yO zF2|@vDX?d~I%Qjk5HC~Kiv`G1bn>6+r4roiw zKfWidj!i3jvJ^l{8-Kl%M^~-Jt~;!d<@iWc_q%;Ib0MYN&t?1BFLvf+9ABRVvyXl$Zi{QnRLJALB zl5=iVsnNj2rz#FJWB7<;*l|h%H&1;L_b1QVGch|Ac!=4rDeNJ$t|sre@HJ2f5}VUi z+?X1>VKzE*DQS)i};h`o$*S4!l&BQO?q2(>!T^l%$#z+Q6vzZJj(7j zy#T7@THWxIZ8;H?f`5&;)a%Mmh+NSY%Y!!9?9NXy;H{BtgP~4vZ z>m~Cj)jfj7&&^C!)ovGm#y96-Lcq;Y*=IK>dV{C)cHIq+JE^>@g7OfxiM1ci{EY*e z3tpAbY%b82y5Tq#7i1aP|4J#2a>m(`w9WVhcU2Rr5;n++KV!pX}6*5k7Yoa@l zlhr+)fjw--DW-zZakw5wbD(IH;wVCv!G5|>km^GO+FI0y?rDA&GY%d^&x@%!@n>1$Tgvv~?}k}TTgA4iQAatmON&z1uLMTpdVl^#TjP1A=Xst8 zO_LiBq6*6%{TfWOB3UoC(PMIMPT3~JNKG^GFU%Z7YT{D#fQM*ioAO8}BMFDBTqUsx zWJe%>_W3yl0v_8cBG2FkL~|9L&X_J6ktze<>~;(j^RD3SpdoB&=bOYWUIfnRE}zq1 zR+klAx7c7iDQ|&*B!!ygbzckVD5x8+Q+e6T{K#CZ4I*l4tKU+R))Ay{N2i zHSu(>Ge3c|Wvy5>O?Zud2?cGCYceu>B3grjjV3|%27G{TlE5&0nM|1!oeUiu;t)MX zEaKov;`arK0&lq=Cj}%0gaz0I#04umYgoEiQE$4G;`No4QgrwJgEdntwFH9fW_O&L zA|e&>l!P@P#sKZkygg2t{`~Iw9Kn z<`YKL`Tzb~ZyagBTwgQyF|8xIqpCvJkf)NPS(_ZcIWe5c;olqx4(QOGFglMpspXM> z(yEmDn1sG=4jAiRgMV|FzNr^ZF=Cc}(~4GkntbNEuU#sQA1r&b+$V6VczDYiJhJVW z4QPfb@785LsKrfq&-ya5yk+`k0|j{^Dy$j(wrv0*8UzPMS(}6g`8UI4bgw19Zo}<; ztV3U`Xgx2&)3)#p*WL>qf270ho$}pwpeemg<{qXUmc3OLExu0jpQH&Ey=B?YEYF^J z9F}d{r@nu**9}rvVIrUvod-16of|RRecXS)yPTBm=GT2&in)cncR3;ZF`J|EyvT6h zF{%2pXnE{G+xk@5T=TjfX8-1KE_AcK=H=gt|28!>|9)=T^nT7>{eF;sKR)>V-NrBK zE$VdOkU`VG`F{zaa2MTmyYE$gED3kLZyKJtd|v<9MOlAe>|648>3Z3Zvwyc4*8J!| z(R)dwDL1-UdG6kfesds#jB2X>em->+uw}{hG0CAOk`^Uy{uYC4=K8)U|KaBRvguIr zv2M2Z@mjocS<^9Adp2{r-F5r6y;kthy*UZ#A?Eh9$zJ_t$$R70^o+3<<8STyzFDpD z+{#n*B+`|2{9&o4`rn|**)f)lffGjdyw4wx=zAW~D$f{Ox^Fh@&+%KGAGGnByW1qy z*8v{vgdf)wr>CK}9o+j`2bmvFS^tb`==Zl-$RPZ%6vj>XrH&&vJMjJ4h}fiSg1cK! zbgbJz^gdvjr}6!~95UC6RRwDVsd2$S3|-9Bzh z?;$Abj~I|0D<8RVrSJXN@T_?ZD!pFxbtv(2U8tBN7C}tL43LFlL^XQna<=3B(=w#0 zIwMa;-9&JjAr1@7KJ4;0I39Ar4*!fW@r%THsr`AFJe<0$WDv>&O9o7;YUo0{jaNb` zJ2wZ8b{Nem4RZd%IDx)I?LI@>7n|iLg9u~2J4`jgZh|ZH#vFQy zYK>BFlz;y`utaxUH7a3YMp;;HRPqjyNn5XgVd1t(2a&NE(y^>4|OtA4`gf zt(5#=f_XDqFjW1!*~PiWC*>5p!@Hl7ma1-2V>Jra7K7&a+uv2d6~^~0aE|IYFFUAC zRivO9ZS`f9nq<`~rJDCFyvKnv*|@q=5qscsGe9#^HeghyhqjN^ak-L$s_5sf`R|72 zEcaj7y-A9q>X`HN{HR8B{GzfW?5;o@gks86m`$09~-^LNmNN+;V*ZAx9)gIRF$@)3@l3D?$ZQcG#7R4 zIT{$~-RUT2zc|QQHuGg()OqPr(yw9C|s7zolbkCB!>kWU5SuL z+3U2qd^4aTub$V7@h410>qirXmBs#!d--jU>oVX;Ls&$^!n$G^gsv}s{liEea+cs@ z%XA=vvpn8|OhA6b{azXshpeH^r=L@ngB5EE@s-@>g&Oyq>6|x*&N?0(qsZ#@YF=Kx zkM>F|w7(u(2#;7!Hz=o;>vH!y13~;~h(FgMHlIeI&GGUd*@f%Bhut@h*B3QXqju{l ztJKAlZ(bsNV_mVW#ylXo9Gf0q>NBvU*n!p8h7tIjI8{HB(#0zqgC&+`U6By-V*gt;td(UFuf-GUA&M1;=xv1el`mFqv<}= zgaGo42r<_pbA`@TTkBVUsula~;Y1AT+rMpiXOr>$>mEYc@KvE zr_W0#;;IBXo%-p2H-_H~Ym`)hCoqO%t7VI=faE?Owwo}y*b~x@)$l$w=Ak~ecT`9~zHOh_B$|L5hbn4O+1s@(!sXSu#bNJY;?u?ICGAb~ zL>u{Y0oz7vb)u{JG1esYcGtDD&)vF?!%^8@tI@`+SWF%MfkuOkMF44{2`K$Z89w)) zJx@>vguN^BOqMSaocGw#`KQ$0FxI5b^rPiDKd%Z;rU|}|Q!?+{FVZv`s9Xxn<4ucr z7vy_KgmNA4p6e6DS<kJRpjIfJ zFw9n)U6M8a07ygt4&rwPZ^Gu-z5F$-1-C*MK4mecxMbzOl8x48y}V>7c}wgNE6YF` zLpHw}$np%o%&wQ)b=K={9QbCdt+;cWT>GipGH!F`!@Wcq(~}w-I~IjHr4q$D+cTtc z8wRBJC|=RYC7LcTyQl{+$K1|#_xdaX!r#%R8)*^zC`9IJ@g9EsUJm~zltg)8He8T4=(Z*&(vFif}M^FKZAh|(nT?)`T&F($KgH5lRaPu^LJ+)&m;o4 z%30JN5n8*QCZF8ei<_7`@>t)JwfxT8mOwMp$p*HUZ4ks#@U~CtiqPSGb&haN`Io>s ziI<{jd@DvP&+v+a2ejzy3-MnNkGwSco3}00L8)8(twP(?!DOg{(0(ti#;WnhL(uKw z0qY&JLMf+u6~ft}KEq4R+jZSHP{nh3zHAH4V5o2pJY`#}(Sa$ZEjhxNe^>!xm8F5F z+LE&i4=kXZY0;i8cvIn=k;ovBD(jH|0EYBvgyrdrS_@Iv58<$v>rf8{kS$hOYMWM- zC9{N_v8~fA!vo4=s{Jd(wHFBrev~hQ_XYb2<+&>r@#2#3MWz15Pjo||ji0dhfw+Mm zj3)j(!3L4lapNJ**q7{MTAwgR6OH1IUizXOv)A3<+rD$@?LR21Xx;?PP6sv(9iua4 z8T33lK54qqnCbhI1Xs#CZ@~k(yT38w1SK**kc5ksGmI9HmfFxByRp}^fXcsxp|G<@E`GAL2+N@-I@ z__Dw1hNRhP5wBAZ6Q}^yMN*=jmx>d`UGTNUnZW5AQzV#|9Gf0mqUAPi^N-bLs{ZnF zG8$kmD=HFa^!L}rTi8!NsaF2(O;V~VZR)a4)EywQ{pxJTL$fpzs!llJM2fnKu3R<* zR32TCBmkhDR`Dd7ohA#ZMK^pTgJu173vkq>Qca}{uAC}HkNb6dU>lQ$`~_fuf!j&2 z?WCfZuUEDF0u{PfGpQ2pj3$(B)9_?5l=g<%L^uh&=`8bq1!qM=d2W5W{ zbOUA#bmVNHs)Fqouc<5-x_$fIQpvm47*42=rP?o4w;8}&EY3!J+k`aBYHDsoEodtZ zQNks=9)?RjfIyZwkZ`jSkHAq1tPES5UmKnXU~T1~G?>Bw{j7HqKV329voe_qGdw=-fCaPSCL%k-X~ROOX32 z0z^)>t`Kp0Lk*0?>sK>-CJfSNeIdgc6|PF%f>KB=katD^fOKxle{cx)#6?mHh8)t) zXwT&lsZu318;1My_%vX2xSInKZX?j6%=MN|d06a9@Cy#V)X9PT+4B)6YN(D{IGLfz z<_mRz`17??3b7ivA+`>%fYBPNX!b^Yvfd6H|H#%)KuhZ0R^(FlPSoBX)JCK4*$6y9 zcWUdnE+nQ!Bc;a8p2hTa7uc)!QUqKZORqA#VW0kRsTm}-;?m#u%!f-C@8?{2g~>0#*R>iq1h`7K7M zK=Urp3e-*wFhfgFI9v~T+YjF%ClO2hytM#PVY*H(a$qmxWpbiPwn8V~om?T0+G%pZ zrA12-up&^IYN&t2>(@2VjwVC#p2KQI1#m`F9u}hmSp}{^&D~X>-LA{irO3_+iqb*P zBdF+myB)0g;u+=mao#@6Ch#Y7`|27Z4E}wQhc!67saXl z7m%YgYl86LdnggH)1P1d0)V3mV4lOj%q0hOi%XwU%g!%m|-n%S5@d^BCg`a?LfXi@Ah4g#$uItC=d z)SX0&rb}Vej=;=?gRo^MW2sU_NlSv3`_}7wlN>6Sv*E2zw|RPQL}B~hFV9ARKy%>> zbxDq!~k%iGgure-LSv?G5dA@W_6Y4GwAj{ z5$EdNGDo>Iff4$%{}Qrr%!!Le>DG}>M6t&_{2$g!wkbIsVDRaTp7#^Ux-WHN-!ore z7t8g79I0dh;#oCIhLFsQlW99=j5LoRry+&HCBR9=(4z63WgO2aHLI42iHo}2kq0F2 zwzlxL|Ml#toCj!8{_3x7(9o>us>=rIT!nb#vKLM|Xii+hblwc~Rs&ufKtc>VGyDC$ zCpp7z4Tu#KVnA#O0g<+gyd>_GsmAy2r3Ewce|fy*(FJ3(%!mV^dTFB%O)2)9 z`7=pA{Tj2CbLp_C2Pf6lzPOHTet5hjfdZi7>^JtCSd&g2HLDzNV-Pt!kOJkJC{umw zEAM!7aZbbA_2z;OG)MiJWS{L$-8;wVK;?nfugPxjL$`j0ZQ&m1sgi#E&d;4FBChN1 zz2g#M+f|iD-Xi&75m9#o?*_Vsf{WVwQi2DQ-JE$d0|lv~AA-$TVv<(StB1kh+YNdw z|3|;bI%JI2SzR{r$UBgDI$0+UdN);3o!;UzAvIYM2NM)ir&VllKtjkpL`+V1kZ|5Y^F6gJdXwto$r+qTX z#fT(i-|;KnFiSY_#O^tar@a3RXzX@jH($G4f{_nWG_q&psjaa5CQiQ<;r4dnT0J+x z2+5nS2Q=nC$vdtu>3tF{o}h&|N z090nD#mJ4TNjI8=D9~OT8fG!8LdGz&ml@g{Adl z570z7e3bd2);Ol{AP2BUF;93$Tk2M?d3AW@0_g8=btT=&;|Ew=x%|W`#)p0S6^R1h zlf4Ww^T1c{#fTc&?9kPuKO5w%L(RwYZu2$=yGmD-kDqVlf(@An&QH(D5EL4{m6q6i zK%+D)r$?>Y97d?fCUvdSvW+XNB$~B~dC;_)Eqe6VM^g~Zpo#O#&pk9Q6?z!;H66|E z1~tl===HMr{l};&`|9|;?BA1e!5yoH;C}}Fb>k6=M$HO%9XRD+1G@Ue-PV(}Tc`y{ z0qjK`iA&%g^UXmMzb9tT?Cpyjx0X>IW}#ZZ_u^phB=4s zc+>Wsk&I#NouEGsEjP?RavagJs36lpB?VvvUJJd6+qM@1He{cGpb(N;|*QI@xDgzHDO50yi0T#kYK0hm9 zTvcQ0om@IZM&ofF608ED;>|-`MyL>9>jOfc4-9QJ_)kv{cG0C8ZYuF$I{7!dUh0On zoZa^4*#gsRGm+wyi8q5=PBhK8JBQzFE-La<&oyy*EohZ`BuvOY797ByB)dNu}(pQ$SOVlDe;3odOc70ZHtBQjoz3+0}0QX5s=msp} zya#U>%hg9i@gbcO=oYn->*wOeAjL>ossl_cB>& zy+lxab!sloaeRI}n$7~Or)@miz3(2?gvkB41eWKm9HEN6q%~e!Wz`J$WVt(m`0}=3 zglfor#;pfg0SNHwA}+EfKR)OD^p?k-@&(HsHY1lcyRPnbYf~~Rro48qVh>s>>{5%P z{ubf|zmfzV7vrVgGfcnkWZ?oGQ4+PWR%X_b-P4}N4?=D(8o&^_ag=Cc>vu%y1^B#7 zKs?S&Vsi@HonSw@x30emJkxO{B1d6M6)s{6hdR=oCy(E=4#*&U4p(8){`LM0%>bhP z!i;s>m2e3-NNS8o4p{rHF80rR1z~i^owrjA>4v}+uP0X0`l%5X&_r}lEux7{H`)W# zD#vo#nn!~9Jr$da`YCDnjcb~5-?ODQEwGl#^b3R*lS5_6+z<%)vHEa49f&Gimj?Z~^4{#m@dNg6U!7XXm!j~H6-v`BE-Ld! z(sjd)`z$yOAzq^aCB?c17iDu@`=d^rROI-6J)-_Lb#(x8%*I8KP7AB~*4Dn_HUbe| z5z}NuX(F(mkAT+K$r&Ys)VS=^RP9TVryb&- zuDuc9y^#m1d_q;f4r(-}i<>WDn!-hO12tC9pACH6z&$S^-Bv%O_&K@9(iAPvEE_!) zjiq!~qGE(bI1LiyyJxoiqA{X|0hggMe0{PUFh`K`vpGK2pJ5mrR1I)qoS_Ue=_H}* zYe}uhwpXgFhk79g64}n~<>2RK+z7dgVdn|Cn?~5Y_l0MBupSnP6Jx{4SC5m;NfWhOfg@MNoq% zwW1c3V*+HyC_2i-n&-qxQp+}UYB1I8SlxOg>Flgy;mf?IM*%JwpW}u)D$G!^eFr^^ zJOd=00t@*3kgZ_NoC1yBh|f`knpmFMLui7;Tn;cMGd{%TJxKD2FxksEO*Aynp=$`x z4akaoScj5&xF;_*!7B|KO`9gHw5kijg_3W(9lugt>xs5u`)jmy&}cy;`uWJ+!J2>f(ssBk7z}gzqLsOHDx*> zJDvadiEhx;WdGTIomf;X%8gIT$SjdCx|;poDH>esXe_~$t@c#?{=~<>@cT1eO*S%Y zn&AwUH+Jo6_sQ9ZdMR{u>x5MI6Y~IlepR+UkvQFVOnR6uY+UJi8gJpx^tC;ThZg#atwSi(dW>Du3wukCJ2 zm*z22_;?ODgL~RmscAMEJ-xt4$z1ZI#&-a`5PH} zY&fOLDeqAJ++604#_hLgV_(-{Wa7~Z;_E$aNe4%feI#$de)Y=ZQA=EL)1*DT^B|9)Xpp%etq1t5cVkKLz zRGIDpF7=v<^Hwa%l~o?u$732`*L z$3XUVlHm(iEUa{87Rgqqr&)5^zZ zI&_K*78WzyY$FIk(QV8iqc{9L9cyQ@>3yu4=37aSUZLXN}FYulSD1-+1+(g)FYF(Xprnb38I z8Q4dSL*oXA_2++?Idl6982{8b+m>ENNC#!!>4dL6oE{{P+j;QLJBdht((B4PQB{6l zx5S21tr}#YS>^($PP81eIIPviOMq7ul=)58j-gAxt}+^BDnRe+J&N+ddt)jH7w`p% zeZoQz`(*qbvCVxi*+dLU!HX=%X$;}9n4W!+oB6YvBFM?Y3gO1iE)3GRMTm7T(y&#d zNs)6Ei$2vFhgw#}Edo&tcVCo2Kn^+Gz4-gfbE{FD0&JQLCX+9=pj&U^b*yM({$sTE z%ra8@FKuFDy7$#@Y>3Y+Saiar_mRF5UwH<-(LU86e zqH092+Yo?oS$Xce@Ki!)$j!syXGt&q_Jwn8M^W@AP#&p7JOmXRB`9O$f zyvaWU{7zxR1?XY-i`@P$H@v;VyF|fYb3;K~(o|7AB>24+97k~ypaCm0e_`>GU{gW^ z9bvBj+25$CkpUGo**i+05(*1xgH7#pN1U&ZcplNTHKIokz9)B|S=EZRaeOnl@`P1{ z4zcWjRYOM|T-TELhd#<5Ogeb#Ari*16+$m;IU`B=0Vu(kd1#!+9r-Tz3j=Jjn`R)m zK@^2Fhby6~V3^qdC8|pzxbPe!sUo3}W;$qC?r8Ubu+eghoG?@=11-1zPf6KPw?Ye8 zv_8JLMB6MF65Eo5Snm<=|Ff!Nkg+7&5)#`2kf2IffORkRo}HRH5W4r*HB$J_TTvds zK!pD+8_cfgn{FFHAV!a_kcD+~ZO_R{OMgO1iDMs--WP%6Cd8pITM&o) zVJ{eV+VJ>MQXy79^%avqG?=Cs&MA}9Zvn#Bfv`GQB79}ORbu=T@T)CpHOg{<>-((N((88v&p>;TadwhptN6?x$~T!fCdb_LvlD5So)pmMpMY#MRQubp z5l-h+ez&awRlRG{3oLlY0vCt zY;7B{0*xP;U3_YM|2b*v=bZtuEmc_R;>>vk(m@Fc@YCWnhtN;fVLbeH$;6f}`L7XH zhlk;z7QJ-|W*HQJ>o3!d6%V>pjP|tCw$Qz5d>-88ee+-jQ-iq|JOm z;21>%YH$M0x8rW7mKgrIvOrnN@%dFkx;}ky;P=GD6+(qDIqLLOq6G>vBaiU$1 ziW%Hb)}vi6WK-gEMLu@bAcpUNkE4^mQTUwdLM$RvP=<|5ayd1WLM$NQ1lfW|{6OTb-TD$A>N)- z_D#EFNqL)n0&r-Y;qkRFDn&B>=d}soVe@?osodOKd$_jae&~zMoqYyHj4+^E63@XK zno=~pVZmD_Ou09|Sl34ji5d{hfn4h=g{%~QXsl+mos~4W0voJQmKxaz*>DiLE$Fsh zWSj!K_$7OAMnY>SgYz;iJ}*C~cjYOpDd{gToEm-UB4`UK z$VfmdPPWZd3rHwz_`yyt=M?2BNrx-1`ng>e17>gm75LfuJCF1j4D)6iM&k?lMgzoe z3z?mxyjHo`qo~3MDj$AVNjmE4;*vO3=xw3IkJ6HRFcDP>5KR`CRt9oE|NVaD70Q4d z)*&1hYK3#HMt5KiL30W&(yFyBL+tvo$^0cv9<7t#&p*n<* zoxAe0Otne2S#9}16-P{!BF9Yryl5v|DrmZw7h=t&LgJ24S={toB1D$sIXTVz85!#z ze%3W*z}M_I7}U(<{L({2IZFhDdyIdLZa|;I=O?)ErP*s*?L%i{Qc}13+MPGjsE%QU zzLT`rNz`vgYe3N22z-}XI|LVDumUp|?IPaU<^_TCjL*VK$7X5@4SH;!xxf9+Q#`Pk zGj=1RezrEsUk1lmbV@68VDs1c;e6P2s%vGZ-*olN2qdyUFGW@~`$LjimeH=Lj;WjZ z1h9+c@{FR=sdT7=w_ioUsSpTUrZ%$lj}Q3WAgRmGwDaWdSKm`Zjv7Wmz7>2;_I_n+ z3v?D!3?BGZ#V`pw*;7%jd{qyY`fDuAaKwStDX2s3&gB&bUze5xxb2NM-2({UQD}o~ zM0U&7VFVJcDpz*6^Ig)NYbE0$;TWug#!)~eocfy&hjst#zx;%>A!?f~8V(0HIIH2+ zJL+F5aXKOAbZ3)kS+plKc0z?%7EJd2G^U%%tl_h&C&WS>)R}*1+{m`WWiratI9tO5 zTYbRVr-8tthO9aKYIe!$i_+bSNCEl0A6OK|2S6F~BE>_-iudzX?+ zS`e5UH>SE4OH8itJldt@oOSXFZjFT+>X5YVa--Gj(Gn!|#O2D!><&TzfvrCqczFH* zo+!lx!#J0V5H17r@GZyh^|8@NGqPU_T;A0#<%uI8PxKskFc;zd%NUXbqvL$&Ma_1>5 zOIJeMbh29icn;OOf5QR*rD!XSVvgHXZvJL4S28MpullS#6hX7}lpp!+Q3no9+XdDv z$9hnJ-oBu=QLd{M5H0|`IgO+eDfB748C`;aCfm47$=Oo~cCrblrI-=MntvD1RAiQ# z=S`yeEW^8y5*v3t&fr`~qX@$g)gq`6_YD*UMJ=^0HCBgEev(WGK~QUGM4BlyjUR*r zyz}@7%5xpski2c9yUVjchm8V1N-f;c==ZE3H^t-TQ{!*zy6n7Cdbz`VU|Vt*7q!_I zjP+5M=&~0H4+!T2`}v$ug#ND`jtExVI=T}EaCY(NIccvqD{=)~;z#<_wvK|WFz3v9 z19$e?XKt{R^D3FUO^MGaqIB+q4!NMpfu3z+aF zCth2N%jAXo9w(0xC+iA%b*~h&1UELPJot?HbbGf^xtn02Z6)|*qb!@5rLTNw0_t&Jl z{r!9`k0uFI%{Z?;X^W9AU6b@aIyc+4Fh=h$9AS0H^RZo8s#6;9vve`_duP(c6_{BKA+opK77D{tB z1beFLH^o~eiq=-;IQIEXZo0ZEv2F)h*0Q@+Dpls zo-6w|W)FfcT;+05> zRM{AnlET8G0A#P}x`)!_Q^aJ+`C5<1R0^0*Pp%|;mG&9G>FZ7m;Q1;jVX+|d5c8XZ zh^X`IbsnKKquWso4zLjm4r{1GsPiqTINLf6gVlO@@v&P}=KAcGQ@O@WeBelr7djQ! z)hqLv>no1&eH+iFkw1S;GXeisk=lrfJ^Xx{{&VF)OU4tcL*Kz0r++dsUSG(;@+m)r zgIqAfjuKE znuzGl_{kDJM#01MIK0HM`oqtG1!y=tH^aUxAaFd0eVLOud|sBnihBk_8_923a|zlw4qW<_z53;~gZQV4 zemeuM*-e;a!9!xJ_&NfReTPdlpvROx<6Lr(9G!J4`d(Pl64P11x-OQhW8n&6p~y0X zcYQtG`Kv{S7iJs@#qc-PcORBl=IE=A^>P9VQlS)GM@TSd?ulKPF1! zfb!n7{1ufNWL&WkE(A*3Qxj4n6?`EoP^;HaHM>xW?wiCT@!#SCB6IzjKOK>wp!BEL zl&(Cd^yz21SsfAhBB=1%^O`g%(E+c&OvMx8$h7=6K$Qd@8%DnXc_@8CCy|1+ zM`%}V!c)3-Nw12JH4{uzMgt8gTSndv4;Q#A=DeACkiqsT+ikMGecpO0mq}L2ypHTJ z7piCj&&t&K92K|s8NSbS>264LE@+fgriu;#O*3?e7)ncEEkKiHC zoynhFQ@Sr&D)0WOncegbX&hkT)ulfztckJ3$1cj@{1`HlvD%zoyx`;bT zrGVH-gL=Ti#0vasZr_B-yY}S;3>#8~>@D`JZ`W`or0cK9*$$uX_vRrat`y8)8CUm? zN`u%8*f!n!bLMJ&b`=?IfqIYna?P)4&bQfTj46udb;Ybp<9mqI&t1wT8JZKF9Aa8T z)}EAfp@5HkI4mku&iUkmuflLIr#b(Ko};)#S$*^2iL%GhA2{^qd)Xz%U{hqhHJ30f-d2EN?4+KiN zA2C5(zpRWP#L3dr`iEH0mAs?;IJ3!6cp8Vzb z$w|T|FM#ncj#3;J0W0k&omiaMaB|&Ctv$NZ0~+KGJIhnR+76m8Uo;Qe!IAIb;2{<# z7Z&rDKs!^4!o{Z^+%p53{R7#J-$y*A6UgKK?vJe7x%nFMdB(d@#MSYh-J7g$SNAcVDiI(EAZM92wP|9xS3;|G@vG1^{OCqrDf@SL@3`1D|wX zUh#=93%2zmQ^7r6;?WM*rgu)K__CAjvahWC&ufO%TIaE=_2-ZJN2boK)h zZH7m`&LuVfEiKM#_T5g-Wir|b$GE4e+ekR)NlAF*`zV(kHGOC4&)cHpr`+HAa%dl5 zEU|_9_2+%cZv7-uMbeW}!nPJYkasGa5WWDw?wOzStLNa$I2HaHVL55|;0w-cnz)v3 zI-aifRPK~Xyyj6uUsqy9twT1+Kw`AL{gG(;;iDumr=ZCzDJ{o#c*S@o9*#WK^Ue3%VDKc zoGT}?I!xVK(w4v5k*Qt1sL8IpnCxh`>hN@}4}MlloW;ChkpcjJJDb~$h|s7HkeuC} z6NKGk)We_BplnT_U=kpDRK*_;m^EjJT;5Rk03VJxVTlA+-lpPa`UjrCdQg1oU(?i_ zYEr3isE&CwxrF3SpSh)b;}ti_EgB-K#0{J7^?R>DTU6?Pxta#MW-TNJcwu*3O=!XD z$YJo*jPK=b2v6zf=o)Sm`f=#cKwR2 zE+$`2_SYu9fr_Tr(4Ww_Gpb={+a_F*hFzgfDfT#+W~;=d4Y_13F{Wwp__(7FrGzl% z8eCQN`<$76Riy8{=M$MzL$J4=s3+B!AcNHJxKgR~_HjA5bc7@(edJBGjdMBtN10SF$wT)WC&P*K=RtMmsrZ(?<_bst!iTuygjA;JxFjO!1 z6&krCQLR=IMskqcLj7!x6aTIG(nS)tC4851+V{(pEw-E^Sy6+q*52^&iYI5LP|Ds0m@3@m0PbG#kX*_8NMcYy^GK-=5zyuLXJW zj-*;Xg$?K6t3WS>l?G&N3_1lsHGjra9L`Qh3h@EhuFbun6%p&$AfeLN$w4ZA3~EoW zx*9I-3mY15hFh@TJ?_vWo7Ut#ANUCNHvM4S%l1TWpG%@5V&Btg@ktz-R$j!G-LSFJXy2}* zlyV3S@^$vu-H>qh$Vq}h%Hb6U=n-oo7M!y)0w2jwHud>Q9=pdhr{A z9j8^N6xJ(r`* z%Q5w#ZExY5$=03pj^32TkB^WZ6rENCjaIRZd(+R@e?;#zpI+U<5m;q>)(2L2;s{w} z`$=PYqkBVyMTWPomzFipx(@O2p%vw(VYn*G9aNsf+hWh_q+c_cDRU|_-Dh($1U4;Q zS4AoDW%wGF3%afMs;7pYM|YTTy2Nwld3dPU&L3SmY^PX4>0%z_9u7|bF= zi#4|xx&J0=#Cz>Q}pbh7A`6zzK^tWxCJ%RPyt8)Vu2=s$LSpO)KIC z=|=7jHqGNnakZ@vgb$~Y-_N$mdeNSTXxB^Iq`l_L$G7zw&G)%%_42o#m7fi!w_4*p z4TyjE-6i6dJg~ z5l#~$A!^0$gC_dmo#ywhtd7iuR4*Sz>b~pS+WqW-I*85jH8}YZsjQ*K69W>0V6zo_dk~k@^{FP~A?N$S{q@eM)yuXmb^m z+t6Bb+BG<%)>bm>Q?j7=^I!q}W6Xa+RRu5Rkq9gQzTcl$EOGXlfQ!*}ICQJZ{o`xz zX}u63&hEQin*u=ZN%y`3DJSpEL$>90D~aqMgGpjVBgmWDRGwPB4=|5jP+F+0ZINjuiDoLM9 zlX^yzblfP$=382!w|bN5YMXeCXqwtGeWBh<7olyYgZwj`tCk#T&O&G)Gi){2py)vq z;PiAaxi=3AT~lf%TmxPZe~RTkK52HgN^`y+q15QhG65`QYz>W>)9PH!Db>Sofow&6 zLExl|={^nx4&9EmEGi%oi%S@QsYmaN6Vb)UNg0HN?WHv@0FsWf8w2>uk^a) zBHWkLJ3ZTu-x?gXRtKbOZJHcnHGR&qe0nD0zaUEi2eS(|ajT%_(R3Uu9}TCOVl5lo zFu^U)ere$1GI>AXL9)wtFvF#)ib?zSXCw*2s?$v~Qi|8PNNq^LE5zH_p97v(@A3lE zfrT_)j3o)x!L6mpWY;bF$K$Kgd&w~empfA;4agsQVZ7#~;yd}(*ws~%_ zrWbeOiZ>>uP$vT*Q-^%*0c$ae_oed0k8~!gkIl)gN7Ov^jd-hMTmL9f$xuX$s=$FV zOd>3s*8+rUCh_VGOvK~&s?%KLOmD5^jS8%A{OYVpkFm4ZT#i6JmE2p6`~~O@(y^B{ zm_(cW(`#DyV|45?R&JG{1a;XPAKfAe(AoDxQXQngBmEem$MatINXsJ*eWo0;T)Hf* zE=y=tO1x*C7jw#{-Lh)Ai22Yv8SXgj?3{Jv)PWe z4F8?ql_~S(?{OT}1~;ad%-+IYnxJUXcdB?XWqd?3qhDb0@O;%6V$@DU#+G?PZQtmT z%4x+2^1PL#hbJWw##YMH2sOe&#@YK67+cknbiKNL4rV()e4_9XB-fkYUd)*$n<6j~t zy@h@88FFd%_jK#HZv3N?4@U-_qz~4No)0A(k6III zZZAW|-|Kmt^*;M{RziqLLO@^-GTa*x_Fy=Fhc&6OwcJb0UShLPK6J*GL03yh(i1Ba z7FWBixWOeMGC!?urF*bn5h$Tv#k)3LRpWKbV+BH(zq0>C(INHsGf07mVC}B$VKTZX z49j7TU&MBQI_Z*3d2a`qurf?j`R8bs_I*o>!}-@Vk0#O`)YwVlgJ^mOc-r9Azty?z zGA6szHHW0usx3E-G#ku+{{#L#C*iCy>k_PB{Q}9;ZOfsNh%Jvlt9KUnt)QAA?56FT z5wW&ky|WFEiYN5Wio{pzHMdUH&%XLO5*-^Sa8>bA>Oll`n@jta_R=V{m)E=#ExT_m z_jtt7N0aTwo=0jU20C|Ai-U%5Zb=-7h<%qz46;2{ix6>29jyC@@`Ty%YP}!WXUBh_ zF;c+*z7Z$Cx%Lhfq|`>}2}fn|sH#;Lu;j9@Maw=1_M;#EdrIB){vIxXwJT}0#O7ww zep-c?X0((gFci1m-79kH5u)@M#L{x+k`_m9kerC@EJMSN*Bt N5FY!lirFG1ZR< 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 literal 0 HcmV?d00001 diff --git a/research/r437-composed-bit-independent-audit/price.py b/research/r437-composed-bit-independent-audit/price.py new file mode 100644 index 0000000000..94872724d7 --- /dev/null +++ b/research/r437-composed-bit-independent-audit/price.py @@ -0,0 +1,89 @@ +"""Exact root bracket of the bit price on a paid child histogram (brief cross-check; cf. PR #3668). + +Price equation, as stated by the selected chain's moment engine on main +(research/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/moment.py), with +the inherited 10^-16 bad-class fallback: + sum_r (r n_r)/(m W) (m/r)^a + (32 m N)/(10^16 W) m^a = 1, N = sum_r n_r. +c is the largest 10^-24 grid point below the root. The bounds below are separate rational +enclosures: atanh series for log with a geometric tail, Taylor series for exp with its tail. +""" +from fractions import Fraction as Q + + +def ln_bounds(x): + """Rational lower/upper bounds of ln(x) for rational x >= 1.""" + assert x >= 1 + k = 0 + while x >= 2: + x /= 2 + k += 1 + + def atanh2(y): + z = (y - 1) / (y + 1) + s, t = Q(0), z + for j in range(80): + s += t / (2 * j + 1) + t *= z * z + return 2 * s, 2 * (s + t / (161 * (1 - z * z))) + lo, hi = atanh2(x) + l2, u2 = atanh2(Q(2)) + return lo + k * l2, hi + k * u2 + + +def exp_bounds(x): + assert 0 <= x < 1 + s = t = Q(1) + for j in range(1, 30): + t = t * x / j + s += t + return s, s + t * x / 30 / (1 - x / 31) + + +def moment(hist, m, W, a): + lo = hi = Q(0) + N = sum(hist.values()) + terms = [(Q(r * n, m * W), Q(m, r)) for r, n in hist.items()] + [(Q(32 * m * N, 10**16 * W), Q(m))] + for p, base in terms: + l, u = ln_bounds(base) + lo += p * exp_bounds(a * l)[0] + hi += p * exp_bounds(a * u)[1] + return lo, hi + + +def bracket(hist, m, W, c): + lo_at_c = moment(hist, m, W, c) + next_grid = c + Q(1, 10**24) + at_next = moment(hist, m, W, next_grid) + return dict(c=str(c), next_grid=str(next_grid), moment_upper_at_c_below_one=lo_at_c[1] < 1, + moment_lower_at_next_grid_above_one=at_next[0] > 1) + + +def precision(cf, cb, children, maxchild, R, v=111, K=4, L=9, T=32, m=64, W=28416, local_adds=0): + """Precision fields of the inherited nine-stage invoice (main: global_k.py prefix bound and + #510 assemble9.py coefficient formula), as an envelope: every non-prefix term is bounded above + generously (route factors up to 2^40, ports up to 120, doubled), so the reported bit lengths + hold for any such values. The ROW constants 9909 + 252 are inherited, not derived here.""" + prefix = 2 ** (6 * (K - 1)) * cf ** (K + 1) * cb ** K + depth = 1 + while not 2 * maxchild ** depth < m ** depth: + depth += 1 + + def others(V, route): + unit = L * T * local_adds + 6 * (K - 1) * V * T + cee = 9 * L * T + J = 8 * T * L * (2 * V + R) + 8 * (2 * K * V * T) + 2 * L * T * R + 2 * cee + high = 16 * (m * m + 1) ** 2 + selectors = 2 * L * T * ((W - 1) + R * m * (route + 144 + 2 + (m - 1) + m)) + return (unit + J * high + J * (W + 9) + children * (8 * m * m + 8 + 128 * (2 * m) ** 3) + + 16 * m ** 3 + cee + selectors + 1) + lo = prefix + others(v, 0) + hi = prefix + 2 * others(120, 2 ** 40) + two_lo = (lo + 1) ** depth * (children + 1) ** depth + two_hi = (hi + 1) ** depth * (children + 1) ** depth + pb = prefix.bit_length() + return dict(prefix_bits=pb, charged_prefix_bits=192 if pb <= 192 else 64 * ((pb + 63) // 64), + coefficient_bits=[lo.bit_length(), hi.bit_length()], + two_level_bits=[two_lo.bit_length(), two_hi.bit_length()], + charged_two_level_bits=512 if two_hi.bit_length() <= 512 else None, + halving_depth=depth, halving_inequality=[2 * maxchild ** depth, m ** depth], + row_coefficient=depth * (m * m + 1) + 9909 + 252) diff --git a/research/r437-composed-bit-independent-audit/records.py b/research/r437-composed-bit-independent-audit/records.py index 357c7f60e2..4af4ad097f 100644 --- a/research/r437-composed-bit-independent-audit/records.py +++ b/research/r437-composed-bit-independent-audit/records.py @@ -56,7 +56,8 @@ def pack(records): def replay(word, geo, records, reverse): """F2 replay of a record stream. Reverse orientation: records in reverse order, every MOVE undone (a strict climb of the orthogonal complement), coefficients negated, COPY/ERASE - exchanged around the same centre. Returns (bad columns, profile, adds, copies).""" + exchanged around the same centre. Returns (bad columns, profile, adds, copies, max + cancellation-free row l1 norm).""" v, R = word['v'], word['R'] n = 2 * v + R centre = n @@ -65,6 +66,8 @@ def replay(word, geo, records, reverse): cur = list(word['final'] if reverse else word['start']) + [-1] val = [1 << i for i in range(n)] + [0] hist, adds, copies, held = Counter(), 0, 0, None + norm = [1] * n + [0] # cancellation-free row l1 bound, as in the selected caller + maxnorm = 1 for op, x, y, c, f, z in (reversed(records) if reverse else records): if op == 0: old, new = (c, y) if reverse else (y, c) @@ -79,16 +82,18 @@ def replay(word, geo, records, reverse): need(c in (1, -1), 'coefficient') if c & 1: val[x] ^= val[y] + norm[x] += abs(c) * norm[y] + maxnorm = max(maxnorm, norm[x]) adds += 1 elif op == (3 if reverse else 2): need(held is None and y == centre and cur[x] == c and val[centre] == 0, 'COPY discipline') - held, cur[centre], val[centre] = x, f, val[x] + held, cur[centre], val[centre], norm[centre] = x, f, val[x], norm[x] hist[abs(dim(c) - dim(f))] += 1 copies += 1 else: need(held == x and y == centre and cur[x] == c and cur[centre] == f and val[centre] == val[x], 'ERASE discipline') - held, cur[centre], val[centre] = None, -1, 0 + held, cur[centre], val[centre], norm[centre] = None, -1, 0, 0 need(held is None and cur[:n] == list(word['start'] if reverse else word['final']), 'end frames') bad = [i for i in range(n) if val[i] != (1 << i) ^ ((1 << (i - v)) if v <= i < 2 * v else 0)] - return bad, dict(sorted(hist.items())), adds, copies + return bad, dict(sorted(hist.items())), adds, copies, maxnorm diff --git a/research/r437-composed-bit-independent-audit/verify.py b/research/r437-composed-bit-independent-audit/verify.py index 7f282c19f0..08c6e94b99 100644 --- a/research/r437-composed-bit-independent-audit/verify.py +++ b/research/r437-composed-bit-independent-audit/verify.py @@ -27,6 +27,8 @@ check_pullback, forward, load, need, paths, profile, pullback, rebuild_DC, reverse_orientation) import compose # noqa: E402 +import hosting # noqa: E402 +import price # noqa: E402 import records # noqa: E402 from compose import apply # noqa: E402 @@ -35,6 +37,12 @@ R438 = 'research/r437-composed-bit-independent-audit/inputs/FINAL-R438-WORD.json.gz' R437 = 'research/r437-composed-bit-independent-audit/inputs/R437-COMPOSED-WORD.json.gz' RECORDS = 'research/r437-composed-bit-independent-audit/inputs/R437-RECORDS.bin.gz' +TEMPLATE = 'research/r437-composed-bit-independent-audit/inputs/R437-GLOBAL-TEMPLATE.json.gz' +SEL589 = 'research/e8-bit-p111-tuned/data/selection9-p111.json' +CERT1043 = 'research/bit-boundary-persistence/CERTIFICATE.json' +C_R437 = (868314126713557740143, 500000000000000000000000) +C_589 = (1733427039589844234749, 10**24) +C_1043 = (433544072119966441673, 250000000000000000000000) def sha(path): @@ -292,9 +300,102 @@ def run(): pr_stream_sha256=hashlib.sha256(raw).hexdigest(), pr_stream_bytes=len(raw), records=len(theirs), independent_lowering_byte_equal=records.pack(mine) == raw, kinds={k: x for k, x in sorted(collections.Counter(r[0] for r in theirs).items())}, - forward=dict(bad_columns=len(fwd[0]), profile=fwd[1], adds=fwd[2], copies=fwd[3]), - reverse=dict(bad_columns=len(rev[0]), profile=rev[1], adds=rev[2], copies=rev[3])) + forward=dict(bad_columns=len(fwd[0]), profile=fwd[1], adds=fwd[2], copies=fwd[3], + cancellation_free_row_l1=fwd[4], bits=fwd[4].bit_length()), + reverse=dict(bad_columns=len(rev[0]), profile=rev[1], adds=rev[2], copies=rev[3], + cancellation_free_row_l1=rev[4], bits=rev[4].bit_length())) res['mutants'] = mutants(w589, node, geo) + + # Stretch: hosted template -> whole paid profile -> price bracket (bounded; see README) + with open(os.path.join(ROOT, TEMPLATE), 'rb') as fh: + tpl = json.loads(gzip.decompress(fh.read())) + hres = hosting.check(tpl, r437, geo, theirs, res['words']['R437_pr']['profile']) + hres['template_canonical_sha256'] = hashlib.sha256(canonical(tpl)).hexdigest() + hres['template_source_record_sha256'] = tpl['source_record_sha256'] + res['hosting'] = hres + # hosting controls (each must break at least one hosting check) + hk = ('windows_rederived_equal', 'every_occurrence_once', 'stage_inside_window', 'offsets_disjoint_within_rank', + 'remainders_equal_published', 'owners_match_slots_and_blocks') + hmut = [] + slots0 = tpl['hosting']['slots'] + def overlap(sl): + first = {} + for i, x in enumerate(sl): + if (x[0], x[1]) in first: + sl[i] = x[:2] + [sl[first[x[0], x[1]]][2]] + x[3:] + return + first[x[0], x[1]] = i + for label, edit in ( + ('slot_moved_outside_window', lambda sl: sl.__setitem__(0, [6] + sl[0][1:])), + ('slot_offsets_overlap', overlap), + ('slot_dropped', lambda sl: sl.pop()), + ('idle_rank_changed', None)): + t2 = dict(tpl) + t2['hosting'] = dict(tpl['hosting'], slots=[list(x) for x in slots0]) + if edit: + edit(t2['hosting']['slots']) + else: + t2['schedule'] = [dict(e, rank=e['rank'] + 1) if e.get('idx') == 6 else e for e in tpl['schedule']] + try: + r2 = hosting.check(t2, r437, geo, theirs, res['words']['R437_pr']['profile']) + broken = [k for k in hk if not r2[k]] + (['whole_profile'] if r2['whole_profile'] != hres['whole_profile'] else []) + except Reject as e: + broken = ['rejected: %s' % e] + hmut.append(dict(mutant=label, rejected=bool(broken), broken=broken)) + res['hosting_mutants'] = hmut + F = price.Q + res['price'] = dict(R437=price.bracket(hres['whole_profile'], tpl['m'], tpl['live'], F(*C_R437))) + wp = hres['whole_profile'] + # price control: one rank-2 child relabelled as rank 3 (32 such children = one per replica) must move c + bad = dict(wp) + bad[2] -= 32 + bad[3] += 32 + b2 = price.bracket(bad, tpl['m'], tpl['live'], F(*C_R437)) + res['price']['control_one_child_per_replica_relabelled_rejected'] = not ( + b2['moment_upper_at_c_below_one'] and b2['moment_lower_at_next_grid_above_one']) + res['precision_R437'] = price.precision(res['records']['forward']['cancellation_free_row_l1'], + res['records']['reverse']['cancellation_free_row_l1'], + sum(wp.values()), max(wp), r437['R'], local_adds=24208) + res['precision_R437']['children'] = sum(wp.values()) + # positive control 1: selected #589 from main only (word -> local profile; selection9-p111.json + # patterns -> idle remainders on the same nine windows) must give the selected bit value + sel = json.load(open(os.path.join(ROOT, SEL589)))['bit'] + win = hosting.windows(hosting.nine_stage_schedule()) + idle589 = collections.Counter() + per_stage = collections.Counter() + legal = True + for idx, pat, copies in sel['patterns']: + idle589[win[idx][1] - sum(pat)] += copies + cover = collections.Counter() + capacity = collections.Counter() + for idx, pat, copies in sel['patterns']: + cover[idx] += copies + capacity[idx] += copies * len(pat) + for idx, w, st, cnt in sel['stages']: + legal &= st in win[idx][2] and w == 8 + per_stage[st] += cnt + capacity[idx] -= cnt + legal &= all(cover[idx] == 2 * v for idx, (p, r, st) in win.items() if r) and not +capacity and not -capacity + idle589 = {k: x for k, x in idle589.items() if k} + whole589 = collections.Counter() + for k, x in res['words']['selected589']['profile'].items(): + whole589[int(k)] += 288 * x + for k, x in idle589.items(): + whole589[k] += 32 * x + res['price']['selected589_control'] = dict( + idle_children_per_replica=dict(sorted(idle589.items())), stages_legal=legal, + every_stage_hosts_all_helpers=all(per_stage[st] == w589['R'] for st in range(9)), + whole_profile=dict(sorted(whole589.items())), + bracket=price.bracket(dict(whole589), 64, 28416, F(*C_589))) + # positive control 2: #1043's published hosted profile splits over the rebuilt E470 local profile + cert = json.load(open(os.path.join(ROOT, CERT1043)))['hosted']['candidate']['invoice']['bit_profile'] + cert = {int(k): x for k, x in cert.items()} + loc470 = {int(k): x for k, x in res['words']['C470_rebuilt_1043']['profile'].items()} + idle470 = {k: cert.get(k, 0) - 288 * loc470.get(k, 0) for k in set(cert) | set(loc470)} + res['price']['c1043_control'] = dict( + idle_children_per_replica={k: x // 32 for k, x in sorted(idle470.items()) if x}, + split_exact=all(x >= 0 and x % 32 == 0 for x in idle470.values()), + bracket=price.bracket(cert, 64, 28416, F(*C_1043))) # Bounded cross-check of the published whole profile (PR #3647 README/COMPOSED-PROOF): split it # into 288 local calls of the audited local profile plus a per-replica idle remainder. The # remainder itself (matching, owners, hosting) is NOT rederived here. @@ -334,7 +435,26 @@ def run(): and res['records']['independent_lowering_byte_equal'] and res['records']['pr_stream_sha256'] == 'caeb2eb0e417992788c32c1f5812ada60b46d1dfdba9f4ac376299b2dede13cb' and all(res['records'][o]['bad_columns'] == 0 and res['records'][o]['profile'] == res['words']['R437_pr']['profile'] - for o in ('forward', 'reverse'))) + for o in ('forward', 'reverse')) + and all(res['hosting'][k] for k in ('windows_rederived_equal', 'every_occurrence_once', 'stage_inside_window', + 'width_matches_word', 'copy_in_range', 'offsets_disjoint_within_rank', + 'remainders_equal_published', 'owners_match_slots_and_blocks', + 'local_programs_equal_records')) + and res['hosting']['banks'] == 0 and res['hosting']['hosted_occurrences'] == 125856 + and res['hosting']['whole_profile'] == res['whole_profile_split']['claimed'] + and res['hosting']['template_source_record_sha256'] == res['records']['pr_stream_sha256'] + and all(b['moment_upper_at_c_below_one'] and b['moment_lower_at_next_grid_above_one'] + for b in (res['price']['R437'], res['price']['selected589_control']['bracket'], + res['price']['c1043_control']['bracket'])) + and res['price']['selected589_control']['stages_legal'] + and res['price']['selected589_control']['every_stage_hosts_all_helpers'] + and res['price']['c1043_control']['split_exact'] + and res['hosting']['schedule_equals_main_recipe'] + and res['price']['control_one_child_per_replica_relabelled_rejected'] + and all(m['rejected'] for m in res['hosting_mutants']) + and res['precision_R437']['prefix_bits'] == 177 and res['precision_R437']['coefficient_bits'] == [177, 177] + and res['precision_R437']['two_level_bits'] == [393, 393] and res['precision_R437']['charged_two_level_bits'] == 512 + and res['precision_R437']['row_coefficient'] == 18355 and res['precision_R437']['halving_depth'] == 2) res['status'] = 'PASS_INDEPENDENT_R437_WORD_AUDIT' if ok else 'FAIL' return res, time.process_time() - t0 From 117e0b3dc2addae4679860307314f5d3499b5c6b Mon Sep 17 00:00:00 2001 From: Sagar Thakrar <18622288+thakrarsagar@users.noreply.github.com> Date: Sun, 18 Oct 2026 21:18:52 +0530 Subject: [PATCH 3/7] Check exact rational projector identities on every R437 climb A second frame method for the R437 audit: exact orthogonal projectors for all 636 frames (rank and trace equal the frame dimension), P_A P_B = P_B P_A = P_A on all 2,384 climb pairs, and the address-exchange identity D_(P_B-P_A) D_(P_A) = D_(P_B) on the 27 transitions of the changed registers. Replaces the native-projector open question with a census question on the E464 pattern. Co-Authored-By: Claude Opus 5.5 --- .../README.md | 26 ++-- .../RESULT.json | 117 ++++++++++++++++++ .../TASK.json | 12 +- .../VERIFY.json | 2 +- .../native.py | 80 ++++++++++++ .../verify.py | 8 ++ 6 files changed, 230 insertions(+), 15 deletions(-) create mode 100644 research/r437-composed-bit-independent-audit/native.py diff --git a/research/r437-composed-bit-independent-audit/README.md b/research/r437-composed-bit-independent-audit/README.md index b599e3fc55..87c95df9f2 100644 --- a/research/r437-composed-bit-independent-audit/README.md +++ b/research/r437-composed-bit-independent-audit/README.md @@ -123,6 +123,15 @@ gate whose destination is a source or helper, at the full frame. (70,596 memberships). The finite hypotheses H1–H5 of the selected interleaved lemma and its U/J conclusions hold. D0 and C are equal to the rebuilt ones. + - **Second frame method: exact projectors.** For each frame, the exact + rational orthogonal projector P_F is built from its lines. Its rank and + trace equal the frame dimension for all 636 frames. All 2,384 distinct + climbs A → B of R437 satisfy P_A P_B = P_B P_A = P_A. + - **Address exchange.** Write D_U = [[I−U, U], [U, I−U]] for the + address-half exchange. On the 27 transitions of the changed registers + (receiver 444, SOURCE77 and the GL roles 340/241/349), + D_(P_B−P_A) D_(P_A) = D_(P_B) is checked literally. This identity follows + from the nesting in general: X = P_B − P_A satisfies X P_A = 0. 2. **Composition.** Applying E464 and E470 literally to #589 and rebuilding D0 and C gives the PR's R437 word. All fields are equal; only the `stats` metadata differs (`extra_carriers` 10 → 8). E464 alone gives the PR's R438 @@ -266,9 +275,9 @@ These are **not** checked: and route formulas, not against a physical register machine. The private centre reserve (physical = 28,416 + 9) and the cover classes are not checked. -- **Native transport.** The rational projector identities (D_F, P_A P_B) that - PR #3647's R437-LOCAL proof states are not checked beyond the frame - nesting/dimension model. +- **Native transport.** Only the projector and address-exchange identities + above are checked. The physical register machine, data precision and cover + classes are not. - **Inherited formulas.** The invoice formula, the 10^-16 fallback, the ROW constants and the price equation are used as stated in the selected sources, not re-derived. @@ -298,11 +307,12 @@ binds. The bit side would bind only if the pending complex chain the dirt pattern of a captured total. First step: state the native capture lemma's hypotheses as used by selected #589, and check them on these two captures. -2. **Do the native projector identities hold for the changed paths?** The paths - are receiver 444 (0 → 186 → 509) and the GL node at frame 506. First step: - build the exact rational projectors of frames 0, 79, 186, 506 and 509 from - the E8 lines, and check P_A P_B = P_A and D_(B−A) D_A = D_B on these - transitions. +2. **Does the E464 pattern recur?** In E464, a carrier's clean contribution + is recovered from the output roles of the single node that reads it, so the + carrier can be deleted. Which other carriers of #589 or R437 have that + property? First step: a read-only census of carriers with one birth whose + reads are confined to one node frame. This is an expansion question: record + the family's five-point expansion decision before any construction round. 3. **Which admission dependencies remain?** For PR #3647 to supply the bit side, the complex chain PR #3653/PR #3682 must first make the bit side binding. After that, maintainers must accept the inherited interfaces. First step: diff --git a/research/r437-composed-bit-independent-audit/RESULT.json b/research/r437-composed-bit-independent-audit/RESULT.json index 319910a880..15103fd5c6 100644 --- a/research/r437-composed-bit-independent-audit/RESULT.json +++ b/research/r437-composed-bit-independent-audit/RESULT.json @@ -458,6 +458,123 @@ "rejected": true } ], + "native": { + "address_exchange_identity_on_focus": true, + "climb_pairs": 2384, + "focus_transitions": [ + [ + 0, + 11 + ], + [ + 0, + 56 + ], + [ + 0, + 60 + ], + [ + 0, + 186 + ], + [ + 11, + 115 + ], + [ + 56, + 116 + ], + [ + 60, + 123 + ], + [ + 79, + 186 + ], + [ + 115, + 506 + ], + [ + 116, + 506 + ], + [ + 123, + 506 + ], + [ + 186, + 509 + ], + [ + 348, + 511 + ], + [ + 351, + 515 + ], + [ + 361, + 516 + ], + [ + 386, + 560 + ], + [ + 392, + 513 + ], + [ + 506, + 348 + ], + [ + 506, + 351 + ], + [ + 506, + 361 + ], + [ + 509, + 386 + ], + [ + 509, + 392 + ], + [ + 511, + 1 + ], + [ + 513, + 1 + ], + [ + 515, + 1 + ], + [ + 516, + 1 + ], + [ + 560, + 1 + ] + ], + "frames_projected": 636, + "nested_projector_identity": true, + "projector_rank_equals_dim": true + }, "pins": { "research/bit-boundary-persistence/CERTIFICATE.json": "32c6cd6103006d627909cabdaf5083238c661a6582016a8b21075bd01c892eff", "research/bit-boundary-persistence/FRAME-PATHS.json": "0d347b9e4d8a8336a707565deceb1d505cd138c97a56831643583b83d91c3b4f", diff --git a/research/r437-composed-bit-independent-audit/TASK.json b/research/r437-composed-bit-independent-audit/TASK.json index c9db2bdefd..212019250f 100644 --- a/research/r437-composed-bit-independent-audit/TASK.json +++ b/research/r437-composed-bit-independent-audit/TASK.json @@ -46,13 +46,13 @@ ] }, "scope_status": "changed", - "actual_scope": "Independently audit PR #3647 (head 36ff4414)'s composed R437 bit supplier: the helper464 joint GL deletion composed with #1043's helper470 deletion, against single-change controls #589+E464 (the PR's R438) and #589+E470 (#1043's R438, rebuilt). Word level: the exact F2 identity on all 659 inputs with arbitrary dirty helpers, by a forward replay and a reverse pull-back, plus the literal reverse orientation; literal reconstruction of R437 from selected #589; aligned-trace non-interaction; SOURCE77 frame-186 chronology and all SOURCE write boundaries; the local profile and its deltas. Stretch, completed: byte binding of the PR's records and the template's local programs; the parent schedule and idle windows from main's recipe and hosting rule; legality of the 3,933 slots per replica and all 288 calls' owners; the whole paid profile; the invoice precision envelope; and an independent exact price bracket for c, with positive controls reproducing selected #589's a and #1043's c. Plus 18 word mutants, 4 hosting mutants and 1 price mutant, all rejected, and one positive control.", + "actual_scope": "Independently audit PR #3647 (head 36ff4414)'s composed R437 bit supplier: the helper464 joint GL deletion composed with #1043's helper470 deletion, against single-change controls #589+E464 (the PR's R438) and #589+E470 (#1043's R438, rebuilt). Word level: the exact F2 identity on all 659 inputs with arbitrary dirty helpers, by a forward replay and a reverse pull-back, plus the literal reverse orientation; literal reconstruction of R437 from selected #589; aligned-trace non-interaction; SOURCE77 frame-186 chronology and all SOURCE write boundaries; the local profile and its deltas; exact rational projector identities as a second frame method. Stretch, completed: byte binding of the PR's records and the template's local programs; the parent schedule and idle windows from main's recipe and hosting rule; legality of the 3,933 slots per replica and all 288 calls' owners; the whole paid profile; the invoice precision envelope; and an independent exact price bracket for c, with positive controls reproducing selected #589's a and #1043's c. Plus 18 word mutants, 4 hosting mutants and 1 price mutant, all rejected, and one positive control.", "scope_change_reason": "The card's default object is a complex-moment/assembly claim. Orientation found that the selected #589 bit cap a/(1+a) = 0.0017304274698236 is only 8.57e-9 above the pending complex chain PR3653/PR3682 (kappa 0.0017304189). If that chain is admitted, the bit primitive binds and gains need an admitted better bit supplier. PR #3647 is the highest open bit claim (c = 0.001736628253427115) and had author checks only (PR3668 checks only histogram-to-c arithmetic). The card's method, reconstructing a coordinated change against its single-change controls, is applied to that supplier.", "bottleneck_link": "Under the selected chain's inherited semantics, PR #3647's bit supplier c = 0.001736628253427115 (cap 0.0017336176) now has an independent finite check from the literal word through hosting to the price root. If the pending complex chain PR3653/PR3682 is admitted, the bit side binds and this is the highest checked bit supplier. Remaining items before admission are the native capture/transport and physical-owner semantics and the inherited assumptions. Today the complex primitive binds, so there is no kappa change.", "budget_minutes": 180, "stop_rule": "Stop at the first of: a confirmed discrepancy (minimize with mutants); a full PASS of identity, composition, controls, chronology, profile and mutants with both methods agreeing; word semantics not pinned within about 60 min (hand off); or a PR head change (re-pin once). Outcome: full PASS of the core within the semantics budget. The bounded hosted-invoice stretch (at most 60 min) also completed inside the experiment window: hosting, profile, precision envelope and price bracket. c is reproduced under the inherited semantics, not admitted.", "outcome": "completed", - "evidence": "PASS_INDEPENDENT_R437_WORD_AUDIT (RESULT.json). Word: R437 (659 inputs) and controls #589 (661), #589+E464 = PR R438 (660) and #589+E470 = #1043 R438 (660, rebuilt) all map (x,y,h) to (x,y+x,h) over F2 with legal nested climbs and FULL/t-perp final frames. Forward replay and reverse pull-back agree entrywise; the reverse orientation passes; H1-H5/U/J hold; D0/C equal the rebuilt ones. #589+E464+E470 equals the PR's R437 except stats metadata. The E470 control reproduces #1043's FRAME-PATHS.json, D0 18,085->18,030 and its profile. E470 changes no projected value; E464 changes no clean column, only helper 340's dirt column at A2044/A2047/A2068/A2070 and their C inverses. The composed trace equals the E464 control's with h470 deleted at all 5,369 aligned gates. Profile {1:1320,2:1344,3:77,4:43,5:102,6:11,7:18}, mass 5,113, ADDs 24,208; deltas additive. All 966 SOURCE write gates and all SOURCE climbs match #589; x77 is clean at the frame-186 read, reached at A426. Records: the PR stream (27,132 records, sha caeb2eb0...) is byte-identical to an independent lowering, replays in both orientations (norms 49,347/1,113,998), and equals the template's local programs. Hosting: the schedule equals main's recipe; the windows are rederived; 3,933 slots per replica are legal and disjoint; remainders give idle {2:431,4:444,6:444,7:666,34:2,42:11}; 288 calls' owners match the slots and data routes; 125,856 hosted, 0 banks. Whole profile {1:380160,2:400864,3:22176,4:26592,5:29376,6:17376,7:26496,34:64,42:352}, mass 1,808,352, deficit 10,272. Precision: prefix 177 (192), coefficient 177, two-level 393 (512), depth 2, ROW 18,355. Price: c = 868314126713557740143/5e23 brackets with the next 1e-24 point failing. Controls: selected #589 a = 0.001733427039589844234749 from main-only inputs and #1043 c = 0.001734176288479865766692 are reproduced. The early-read mutant passes F2 identity and legality and is rejected only by the chronology check.", + "evidence": "PASS_INDEPENDENT_R437_WORD_AUDIT (RESULT.json). Word: R437 (659 inputs) and controls #589 (661), #589+E464 = PR R438 (660) and #589+E470 = #1043 R438 (660, rebuilt) all map (x,y,h) to (x,y+x,h) over F2 with legal nested climbs and FULL/t-perp final frames. Forward replay and reverse pull-back agree entrywise; the reverse orientation passes; H1-H5/U/J hold; D0/C equal the rebuilt ones. #589+E464+E470 equals the PR's R437 except stats metadata. The E470 control reproduces #1043's FRAME-PATHS.json, D0 18,085->18,030 and its profile. E470 changes no projected value; E464 changes no clean column, only helper 340's dirt column at A2044/A2047/A2068/A2070 and their C inverses. The composed trace equals the E464 control's with h470 deleted at all 5,369 aligned gates. Profile {1:1320,2:1344,3:77,4:43,5:102,6:11,7:18}, mass 5,113, ADDs 24,208; deltas additive. All 966 SOURCE write gates and all SOURCE climbs match #589; x77 is clean at the frame-186 read, reached at A426. Exact rational projectors: ranks equal dims for all 636 frames; P_A P_B = P_B P_A = P_A on all 2,384 climb pairs; the address-exchange identity holds on the 27 changed-register transitions. Records: the PR stream (27,132 records, sha caeb2eb0...) is byte-identical to an independent lowering, replays in both orientations (norms 49,347/1,113,998), and equals the template's local programs. Hosting: the schedule equals main's recipe; the windows are rederived; 3,933 slots per replica are legal and disjoint; remainders give idle {2:431,4:444,6:444,7:666,34:2,42:11}; 288 calls' owners match the slots and data routes; 125,856 hosted, 0 banks. Whole profile {1:380160,2:400864,3:22176,4:26592,5:29376,6:17376,7:26496,34:64,42:352}, mass 1,808,352, deficit 10,272. Precision: prefix 177 (192), coefficient 177, two-level 393 (512), depth 2, ROW 18,355. Price: c = 868314126713557740143/5e23 brackets with the next 1e-24 point failing. Controls: selected #589 a = 0.001733427039589844234749 from main-only inputs and #1043 c = 0.001734176288479865766692 are reproduced. The early-read mutant passes F2 identity and legality and is rejected only by the chronology check.", "author": "Sagar Thakrar (thakrarsagar)", "ai_assistance": "Substantial AI assistance from Claude (Anthropic, Claude Opus 5.5): design, code, checks and write-up in an automated research loop. No human or formal-kernel review is claimed.", "open_questions": [ @@ -63,10 +63,10 @@ "blocked_by": "Locating the native capture lemma statement in the selected sources." }, { - "question": "Do the native rational projector identities (P_A P_B = P_A, D_(B-A) D_A = D_B) hold on the changed paths: receiver 444 (0 -> 186 -> 509) and the GL node at frame 506?", - "why_it_matters": "This package checks the frame nesting/dimension model and F2 values, not the physical rational transport that PR #3647's R437-LOCAL proof states.", - "first_step": "Build exact rational projectors for frames 0, 79, 186, 506 and 509 from the E8 lines and check both identities on these transitions.", - "blocked_by": "None." + "question": "Does the E464 pattern recur: which other carriers of #589/R437 have a clean contribution recoverable from the output roles of the single node that reads them?", + "why_it_matters": "E464 is the new mechanism in PR #3647. A census would show whether it is isolated or a family, which bears on whether further bit-supplier gains of this kind exist.", + "first_step": "Run a read-only census of carriers with one birth whose reads are confined to one node frame, and record the five-point expansion decision before any construction round.", + "blocked_by": "The expansion gate; no construction is authorized by this audit." }, { "question": "Which admission dependencies remain for PR #3647 as the bit supplier once the bit side binds?", diff --git a/research/r437-composed-bit-independent-audit/VERIFY.json b/research/r437-composed-bit-independent-audit/VERIFY.json index f6ec7847df..5a2837d57d 100644 --- a/research/r437-composed-bit-independent-audit/VERIFY.json +++ b/research/r437-composed-bit-independent-audit/VERIFY.json @@ -18,7 +18,7 @@ "{package}/verify.py" ], "timeout_seconds": 300, - "checks": "Source pins; frame closure; for #589, #589+E464 (PR R438), #589+E470 (#1043 R438 rebuilt) and PR R437: F2 identity on all inputs by forward replay and reverse pull-back (entrywise agreement), reverse orientation, H1-H5/U/J, rebuilt D0/C; literal composition equals the PR's R437; #1043 FRAME-PATHS equality; aligned-trace non-interaction; SOURCE write boundaries and chronology; profile deltas; byte equality of the PR record stream with an independent lowering, record replay in both orientations, and template local programs; schedule from main's recipe, idle windows by the selected rule, slot legality, owners of 288 calls, remainders and the whole paid profile; invoice precision envelope; exact price bracket for c, with selected #589 and #1043 positive controls; 18 word mutants, 4 hosting mutants, 1 price mutant and one positive control; receipt equality with RESULT.json." + "checks": "Source pins; frame closure; for #589, #589+E464 (PR R438), #589+E470 (#1043 R438 rebuilt) and PR R437: F2 identity on all inputs by forward replay and reverse pull-back (entrywise agreement), reverse orientation, H1-H5/U/J, rebuilt D0/C; literal composition equals the PR's R437; #1043 FRAME-PATHS equality; exact rational projector identities on all climbs; aligned-trace non-interaction; SOURCE write boundaries and chronology; profile deltas; byte equality of the PR record stream with an independent lowering, record replay in both orientations, and template local programs; schedule from main's recipe, idle windows by the selected rule, slot legality, owners of 288 calls, remainders and the whole paid profile; invoice precision envelope; exact price bracket for c, with selected #589 and #1043 positive controls; 18 word mutants, 4 hosting mutants, 1 price mutant and one positive control; receipt equality with RESULT.json." } ] } diff --git a/research/r437-composed-bit-independent-audit/native.py b/research/r437-composed-bit-independent-audit/native.py new file mode 100644 index 0000000000..40c84677d5 --- /dev/null +++ b/research/r437-composed-bit-independent-audit/native.py @@ -0,0 +1,80 @@ +"""Exact rational projectors of the frames (second method for frame dimension and nesting). + +P_F is the orthogonal projector (form = dot/2, so dot-orthogonal) onto the Q-span of +frame F's E8 lines: P = L^T (L L^T)^-1 L for a row basis L. For a climb A -> B the native +transport identities P_A P_B = P_B P_A = P_A are checked exactly; with D_U the address-half +exchange [[I-U, U], [U, I-U]], they imply D_(P_B-P_A) D_(P_A) = D_(P_B) (written argument in +README), which is also checked literally on the changed receiver and SOURCE77 paths. +""" +from fractions import Fraction as Q + + +def matmul(a, b): + return [[sum(a[i][k] * b[k][j] for k in range(len(b))) for j in range(len(b[0]))] for i in range(len(a))] + + +def basis(rows): + out = [] + for r in rows: + v = [Q(x) for x in r] + for b, p in out: + if v[p]: + f = v[p] / b[p] + v = [x - f * y for x, y in zip(v, b)] + p = next((i for i, x in enumerate(v) if x), None) + if p is not None: + out.append((v, p)) + return [v for v, _ in out] + + +def inverse(m): + n = len(m) + a = [list(r) + [Q(int(i == j)) for j in range(n)] for i, r in enumerate(m)] + for c in range(n): + p = next(i for i in range(c, n) if a[i][c]) + a[c], a[p] = a[p], a[c] + inv = 1 / a[c][c] + a[c] = [x * inv for x in a[c]] + for i in range(n): + if i != c and a[i][c]: + f = a[i][c] + a[i] = [x - f * y for x, y in zip(a[i], a[c])] + return [r[n:] for r in a] + + +def projector(lines, frame, dim=8): + L = basis([lines[i] for i in frame]) + if not L: + return [[Q(0)] * dim for _ in range(dim)], 0 + G = matmul(L, [list(c) for c in zip(*L)]) + P = matmul(matmul([list(c) for c in zip(*L)], inverse(G)), L) + return P, len(L) + + +def D(U): + n = len(U) + I = [[Q(int(i == j)) for j in range(n)] for i in range(n)] + IU = [[I[i][j] - U[i][j] for j in range(n)] for i in range(n)] + return [IU[i] + U[i] for i in range(n)] + [U[i] + IU[i] for i in range(n)] + + +def check(word, climbs, geo, focus): + lines = [list(map(int, x)) for x in word['lines']] + cache = {} + + def P(f): + if f not in cache: + cache[f] = projector(lines, word['frames'][f]) + return cache[f] + rank_ok = all(P(f)[1] == geo.dim[f] and sum(P(f)[0][i][i] for i in range(8)) == geo.dim[f] + for f in {x for _, a, b, _ in climbs for x in (a, b)}) + pairs = sorted({(a, b) for _, a, b, _ in climbs}) + nest_ok = all(matmul(P(a)[0], P(b)[0]) == P(a)[0] and matmul(P(b)[0], P(a)[0]) == P(a)[0] for a, b in pairs) + d_ok = True + for a, b in focus: + pa, pb = P(a)[0], P(b)[0] + diff = [[pb[i][j] - pa[i][j] for j in range(8)] for i in range(8)] + d_ok &= matmul(D(diff), D(pa)) == D(pb) + return dict(frames_projected=len(cache), climb_pairs=len(pairs), projector_rank_equals_dim=rank_ok, + nested_projector_identity=nest_ok, focus_transitions=[list(x) for x in focus], + address_exchange_identity_on_focus=d_ok) diff --git a/research/r437-composed-bit-independent-audit/verify.py b/research/r437-composed-bit-independent-audit/verify.py index 08c6e94b99..f8ff17f1d8 100644 --- a/research/r437-composed-bit-independent-audit/verify.py +++ b/research/r437-composed-bit-independent-audit/verify.py @@ -28,6 +28,7 @@ reverse_orientation) import compose # noqa: E402 import hosting # noqa: E402 +import native # noqa: E402 import price # noqa: E402 import records # noqa: E402 from compose import apply # noqa: E402 @@ -248,6 +249,11 @@ def run(): for name, w in words: res['words'][name], side[name] = word_checks(name, w, geo) _, cl589, _ = side['selected589'] + # second frame method: exact rational projectors for every climb of the R437 word; the changed + # paths (receiver 444, SOURCE77, GL node roles 340/241/349) also get the address-exchange identity + _, cl437, _ = side['R437_pr'] + focus = sorted({(a, b) for r, a, b, _ in cl437 if r in (444, 77, 340, 241, 349)}) + res['native'] = native.check(r437, cl437, geo, focus) _, cl470, _ = side['C470_rebuilt_1043'] res['frame_paths_1043'] = dict( selected589_equals_baseline=[p for _, p in sorted(paths(w589, cl589).items())] == fp['baseline'], @@ -450,6 +456,8 @@ def overlap(sl): and res['price']['selected589_control']['every_stage_hosts_all_helpers'] and res['price']['c1043_control']['split_exact'] and res['hosting']['schedule_equals_main_recipe'] + and all(res['native'][k] for k in ('projector_rank_equals_dim', 'nested_projector_identity', + 'address_exchange_identity_on_focus')) and res['price']['control_one_child_per_replica_relabelled_rejected'] and all(m['rejected'] for m in res['hosting_mutants']) and res['precision_R437']['prefix_bits'] == 177 and res['precision_R437']['coefficient_bits'] == [177, 177] From 3dbdc8cb93274432169cacc558a3403cd53e977c Mon Sep 17 00:00:00 2001 From: Sagar Thakrar <18622288+thakrarsagar@users.noreply.github.com> Date: Sun, 18 Oct 2026 21:20:09 +0530 Subject: [PATCH 4/7] Pin the R437 template digest and note vendored-input licensing Check the canonical template content digest published in PR #3647's EXPECTED.json, and state in the README that inputs/ holds byte-preserved copies of PR #3647's Apache-2.0 files (records gzip-wrapped). Co-Authored-By: Claude Opus 5.5 --- research/r437-composed-bit-independent-audit/README.md | 5 +++++ research/r437-composed-bit-independent-audit/verify.py | 2 ++ 2 files changed, 7 insertions(+) diff --git a/research/r437-composed-bit-independent-audit/README.md b/research/r437-composed-bit-independent-audit/README.md index 87c95df9f2..466b1394c1 100644 --- a/research/r437-composed-bit-independent-audit/README.md +++ b/research/r437-composed-bit-independent-audit/README.md @@ -337,6 +337,11 @@ binds. The bit side would bind only if the pending complex chain ## Provenance +The four files in [inputs/](inputs/) are byte-preserved copies of PR #3647's +Apache-2.0 package files. The record stream is wrapped in gzip, and the verifier +checks its uncompressed SHA256. That package's LICENSE and UPSTREAM-NOTICE.md +carry their notices and predecessor credits. + Prepared by Sagar Thakrar (thakrarsagar) with substantial AI assistance from Claude (Anthropic, Claude Opus 5.5). Base commit `20ecf2891d80b5acf18d980b2164fb44ea7faa90`. The checks are finite exact diff --git a/research/r437-composed-bit-independent-audit/verify.py b/research/r437-composed-bit-independent-audit/verify.py index f8ff17f1d8..667dd0d177 100644 --- a/research/r437-composed-bit-independent-audit/verify.py +++ b/research/r437-composed-bit-independent-audit/verify.py @@ -449,6 +449,8 @@ def overlap(sl): and res['hosting']['banks'] == 0 and res['hosting']['hosted_occurrences'] == 125856 and res['hosting']['whole_profile'] == res['whole_profile_split']['claimed'] and res['hosting']['template_source_record_sha256'] == res['records']['pr_stream_sha256'] + # canonical template content digest published in PR #3647's EXPECTED.json + and res['hosting']['template_canonical_sha256'] == '2e868ff427654e47df34779299545c53aa05b8c96697ee126e80e7bc6a50990a' and all(b['moment_upper_at_c_below_one'] and b['moment_lower_at_next_grid_above_one'] for b in (res['price']['R437'], res['price']['selected589_control']['bracket'], res['price']['c1043_control']['bracket'])) From 6f3785780303fe936fa1c844eeecf88beaa12220 Mon Sep 17 00:00:00 2001 From: Sagar Thakrar <18622288+thakrarsagar@users.noreply.github.com> Date: Sun, 18 Oct 2026 21:20:54 +0530 Subject: [PATCH 5/7] Correct the R437 audit's stated runtime Co-Authored-By: Claude Opus 5.5 --- research/r437-composed-bit-independent-audit/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/research/r437-composed-bit-independent-audit/README.md b/research/r437-composed-bit-independent-audit/README.md index 466b1394c1..7beecceecb 100644 --- a/research/r437-composed-bit-independent-audit/README.md +++ b/research/r437-composed-bit-independent-audit/README.md @@ -32,7 +32,7 @@ frontier, and it does not admit PR #3647. Physical-owner, native-transport and all-size assumptions stay as inherited (see Scope). The selected record stays `0.001672660197076918`. The complex side binds today. -Reproduce from the repository root (standard library only, about 10 s): +Reproduce from the repository root (standard library only, about 15 s): ```sh python3 -I -B research/r437-composed-bit-independent-audit/verify.py From b40f5b02739e066710e624ca3385c743b79fbbee Mon Sep 17 00:00:00 2001 From: Sagar Thakrar <18622288+thakrarsagar@users.noreply.github.com> Date: Sun, 18 Oct 2026 22:00:05 +0530 Subject: [PATCH 6/7] Correct the R437 audit's binding consequence and close review gaps The earlier relevance claim compared #589's retained cap a/(1+a) with PR3653's modern-outer kappa (a mixed-convention 8.57e-9 gap). Under either consistent convention the bit side keeps about 3.0e-6 of headroom, so the complex side would still bind after PR3653/PR3682; the claim is withdrawn and the package is presented as independent verification only. Also: cite concurrent PR3690 and related PRs; surface the h477/h478 dirt admission item; bind every call's local_hash to its local program; check #1043's CERTIFICATE profile/ADDs/gates against the rebuilt control; add the payload-prefix (93 < 104 bits) and ROW (< 20161) caps; replace the 32-child price control with two single-child mutants; pin global_k.py, assemble9.py and columns_h/k.cpp; state the GL node's provenance, the F2-only record replay, the full window rule and the chronology criterion; record the window-6 merge observation as an open question. Co-Authored-By: Claude Opus 5.5 --- .../README.md | 222 +++++++++++++----- .../RESULT.json | 30 ++- .../SOURCES.json | 24 ++ .../TASK.json | 24 +- .../VERIFY.json | 2 +- .../hosting.py | 10 +- .../price.py | 11 +- .../verify.py | 57 +++-- 8 files changed, 287 insertions(+), 93 deletions(-) diff --git a/research/r437-composed-bit-independent-audit/README.md b/research/r437-composed-bit-independent-audit/README.md index 7beecceecb..65831ed278 100644 --- a/research/r437-composed-bit-independent-audit/README.md +++ b/research/r437-composed-bit-independent-audit/README.md @@ -14,9 +14,15 @@ passes**: with arbitrary dirty contents. The two edits compose with no interaction beyond the single-change controls. The SOURCE77 read at frame 186 is in chronological order, and the literal word gives the claimed local profile. +- **One new admission item.** E464 (the helper464 GL edit) changes the + arbitrary-dirt content, though not the clean content, of the two captured + retained totals h477 and h478, through helper 340's column. PR #3647 does + not state this. Whether the inherited capture contract is neutral to that + dirt pattern is not checked here ([Open question 1](#open-next-questions)). - **Records and hosting.** The PR's 27,132-record stream is byte-identical to an independent lowering of the word. The hosted template's 125,856 helper - placements satisfy the selected chain's idle-hosting rule. + placements satisfy the selected chain's idle-hosting rule, and all 288 calls + are bound to the audited local programs. - **Price.** The whole paid profile and the invoice's precision fields follow from these. The price root gives **c = 868314126713557740143/5·10^23 = 0.001736628253427115480286**, and the @@ -30,7 +36,8 @@ under the selected chain's inherited semantics: word format, hosting rule, invoice formula and price equation. It makes no κ claim and changes no frontier, and it does not admit PR #3647. Physical-owner, native-transport and all-size assumptions stay as inherited (see Scope). The selected record stays -`0.001672660197076918`. The complex side binds today. +`0.001672660197076918`. The complex side binds today, and it would still bind +if the pending complex chain PR #3653/PR #3682 were admitted (see below). Reproduce from the repository root (standard library only, about 15 s): @@ -44,14 +51,54 @@ recomputes everything and requires byte equality with the committed ## Why it matters, and to whom -The selected #589 bit supplier caps the retained balanced transfer at -a/(1+a) = 0.0017304274698236. The pending complex chain of PR #3653 and -PR #3682 claims κ = 0.0017304189, which is 8.57e-9 below that cap. **If that -chain is admitted, the bit primitive binds**, and further gains need an -admitted better bit supplier. PR #3647 makes the highest open bit claim, with -cap c/(1+c) = 0.0017336176. Before this package it had author checks only. -PR #3668 (jwr404) checks the histogram-to-c arithmetic on the *published* -histogram. Here that histogram is rederived from the word and the template. +**This package has no near-term κ consequence.** PR #3647's c = 0.0017366283 +is the highest open bit-supplier value we found. This package is an +independent finite check of it, for the intake of PR #3647 and of the PRs +that build on it (#3668, #3690). It would matter for κ only after a complex +gain of about 3.0e-6 beyond the pending chain; past that point the bit +supplier caps κ. + +The bit side does not bind today, and it would not bind if the pending complex +chain PR #3653 (rohanarun) / PR #3682 (zxv) were admitted. That chain's complex +root is C = 0.0017304188998 (PR #3653 head `607a09ff`, +`research/retimed-t488-composition/numerics/README.md`). Under either +consistent outer convention the bit side keeps about 3.0e-6 of headroom +(exact rational arithmetic, rounded here): + +| Outer convention | Complex side | Selected #589 bit side | Headroom | With PR #3647's c | +|---|---:|---:|---:|---:| +| retained transfer, κ = a/(1+a) (the selected record) | C/(1+C) = 0.0017274297 | 0.0017304275 | 2.998e-6 | 0.0017336176 (6.188e-6) | +| modern outer used by #3653: κ = C − 10^-46 − 10^-70, and the bit enters only as bit root > effective exponent | 0.0017304189 | 0.0017334270 | 3.008e-6 | 0.0017366283 (6.209e-6) | + +The modern-outer row matches the two modern-outer ledgers archived on main +(`research/half-stage-evacuation/evidence/OUTER-LEDGER.json` and +`research/rank7-t740-carrier-skips/evidence/OUTER-LEDGER.json`). In both, +κ + `actual_bit_above_effective` equals the #589 bit root 0.0017334270 +up to 10^-46. + +> **Correction.** An earlier draft of this package, and this loop's #1166 +> claim, compared #589's retained cap a/(1+a) = 0.0017304275 with #3653's +> modern-outer κ = 0.0017304189. That 8.57e-9 gap mixes two conventions. The +> draft concluded that the bit side would bind once the chain was admitted; +> that conclusion was wrong and is withdrawn. + +**Other checks of PR #3647.** + +- The author's own verifiers. +- **PR #3668** (jwr404) checks the histogram-to-c arithmetic on the + *published* histogram. +- **PR #3690** (zxv, head `03c141ef`, opened 2026-10-18 15:26Z while this + audit was running) serves a different purpose: the ordinary coupling at + c = 1/576. Using predecessor and author code, it reconstructs the 903,456 + paid requests from the actual R437 word, owners and residual idles. It also + passes the 7,814,016 local-call events through the retained chronology + controller and reruns the author's cold verifier. It therefore overlaps this + package's paid-profile reconstruction. + +What this package adds is a reimplementation that imports nothing: the word +identity by two methods, both single-change controls, SOURCE chronology, the +record lowering, hosting legality under the selected rule, and the c bracket +with main-only positive controls, each with mutants. ## What was audited @@ -76,10 +123,16 @@ histogram. Here that histogram is rederived from the word and the template. - word format: `research/e8-bit-p111-tuned/code/xcheck_p.py` and `code/pwordl.py`; - record and event layout, parent recipe, idle ranks and prefix bound: the - nine-stage caller `vendor/pr510/…/global_k.py`; - - invoice coefficient formula: `vendor/pr510/e8-r480-nine-stage/code/assemble9.py`; + nine-stage caller + `research/e8-bit-p111-tuned/vendor/pr510/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/global_k.py`; + - invoice coefficient formula and ROW cap: + `research/e8-bit-p111-tuned/vendor/pr510/e8-r480-nine-stage/code/assemble9.py`; + - payload-prefix cap: `research/e8-bit-carrier-skeleton/code/bit/checkers/columns_h.cpp` + and `columns_k.cpp`, as run by the selected `verify.sh`; - idle-hosting rule: `research/e8-bit-carrier-skeleton/code/hub/idle-axis-hosting/hosting_core.py`; - - price equation: `…/e8-r740-replica32/code/engines/moment.py`. + - price equation: `research/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/moment.py`. + + Each of these files is pinned by Git blob and SHA256 in SOURCES.json. **No code from PR #3647, #1043 or main is imported or run.** Each rule is reimplemented here from its source text. @@ -88,13 +141,18 @@ histogram. Here that histogram is rederived from the word and the template. | Edit | Removed | Added | |---|---|---| -| E464 (PR #3647 ancestry) | `A[224] = [56, h464, [x54]]`; the three-gate D4 node `A[1986..1988]` at frame 506, two of whose gates read h464 | ten gates at frame 506 on h340, h241 and h349, which read x6, x56, h233, h319, h322, h462 and h463 (25 operands) | +| E464 (PR #3647 ancestry) | `A[224] = [56, h464, [x54]]`; the three-gate D4 node `A[1986..1988]` at frame 506, two of whose gates read h464 | ten gates at frame 506 on the role registers h340, h241 and h349. They read x6, x56, h233, h319, h322, h462 and h463 (18 operands) and the role registers themselves (7), 25 operands in all | | E470 (#1043) | `A[230] = [79, h470, [x77]]` and `A[1993] = [79, h444, [h470]]` | `[186, h444, [x77]]` in place of `A[1993]` | In both edits the deleted helper is removed, higher ids are renumbered, D0 is rebuilt from the raw word, and C is rebuilt as the literal reverse of every A/B gate whose destination is a source or helper, at the full frame. +The ten GL gates are **taken as data** from the PR's R438 word (its +`A[1985..1994]`); they are not re-synthesized here. The composition check +therefore confirms the deletions, the renumbering and the D0/C rebuild. The +node's own correctness comes from the identity check. + ## Results (all exact; numbers from RESULT.json) | Word | Inputs | Gates D/A/B/C | Scalar ADDs | Local profile | Mass | @@ -127,20 +185,21 @@ gate whose destination is a source or helper, at the full frame. rational orthogonal projector P_F is built from its lines. Its rank and trace equal the frame dimension for all 636 frames. All 2,384 distinct climbs A → B of R437 satisfy P_A P_B = P_B P_A = P_A. - - **Address exchange.** Write D_U = [[I−U, U], [U, I−U]] for the - address-half exchange. On the 27 transitions of the changed registers - (receiver 444, SOURCE77 and the GL roles 340/241/349), - D_(P_B−P_A) D_(P_A) = D_(P_B) is checked literally. This identity follows - from the nesting in general: X = P_B − P_A satisfies X P_A = 0. + The address-exchange identity D_(P_B−P_A) D_(P_A) = D_(P_B) is also + evaluated on the 27 changed-register transitions. It follows from the + nesting in general, so it adds no separate coverage. 2. **Composition.** Applying E464 and E470 literally to #589 and rebuilding D0 and C gives the PR's R437 word. All fields are equal; only the `stats` metadata differs (`extra_carriers` 10 → 8). E464 alone gives the PR's R438 - word. E470 alone reproduces #1043's published results: + word (with the GL node taken from it, as above). E470 alone reproduces + #1043's published results: - every frame path in its `FRAME-PATHS.json` (660 candidate and 661 baseline - paths); - - its D0 change from 18,085 to 18,030 ADDs; - - its 2,573-gate C; - - its profile table. + paths), machine-checked; + - its local profile `{1:1321, 2:1344, 3:78, 4:44, 5:102, 6:11, 7:18}`, its + 24,248 ADDs and its gate counts 111/2074/712/2573, machine-checked against + its `CERTIFICATE.json`; + - its D0 count of 18,030 ADDs (from #589's 18,085), which equals the value + stated in its PROOF.md. This one is compared by hand. 3. **No interaction.** Traces are aligned gate by gate across about 5,350 common gates per comparison. The deleted helpers' columns are projected away, and survivors are renamed. @@ -184,14 +243,17 @@ gate whose destination is a source or helper, at the full frame. columns with 24,208 ADDs, 9 rank-7 COPYs and the local profile. The cancellation-free row bounds are 49,347 forward (16 bits) and 1,113,998 reverse (21 bits). The template's forward and reverse local programs equal - the events derived from this stream. + the events derived from this stream. The replay is over F2. Coefficient + signs are bound by the byte equality with the independent lowering and by + the local-program comparison, not by the replay itself. 6. **Hosting.** - **Schedule and windows.** The template's parent schedule equals the one derived here from main's nine-stage recipe, including idle ranks 14, 7, 28, 7, 42, 7, 42, 28, 14 and 0. Under the selected rule, its nine - idle windows are recomputed and equal the template's. The rule: a stage - may use a pair's idle child only if it runs strictly after the pair's last - local or bridge touch and is not on that pair. + idle windows are recomputed and equal the template's. The rule: a stage's + local sweep may use a pair's idle child only if, in the schedule, it runs + strictly after the pair's last local or bridge touch and strictly before + the idle child, and it is not on that pair. - **Slots.** Each replica has 3,933 slots. Each (stage, helper) occurrence appears exactly once, with width 8 as the word requires. Its stage lies in its window, and its offsets are disjoint inside the child's rank. @@ -200,8 +262,11 @@ gate whose destination is a source or helper, at the full frame. - **Owners.** All 288 calls (9 stages × 32 replicas) match the slots and the selected data route. The data families form the call's pair block, with the sides swapped in reverse sweeps. Each hosted helper sits in a - different pair's idle child at its slot. In total 125,856 occurrences are - hosted, with 0 banks and 7,814,016 local events. + different pair's idle child at its slot. Each call's `local_hash` equals + the SHA256 of its orientation's local program (160 forward, 128 reverse). + In total 125,856 occurrences are hosted. The template's bank counters are + 0, which the owners check already implies. The 7,814,016 local events are + a count (288 × 27,132), not a separate check. 7. **Whole paid profile and invoice.** 288 × the local profile plus 32 × the idle children gives `{1:380160, 2:400864, 3:22176, 4:26592, 5:29376, 6:17376, 7:26496, 34:64, 42:352}`. @@ -212,9 +277,14 @@ gate whose destination is a source or helper, at the full frame. - the coefficient has 177 bits; - the two-level coefficient has 393 bits, charged 512; - halving depth 2, with 2·42² = 3,528 < 4,096; - - ROW = 2·(64² + 1) + 9,909 + 252 = 18,355 < 20,161. - - The ROW constants 9,909 and 252 are inherited. + - ROW = 2·(64² + 1) + 9,909 + 252 = 18,355, below the inherited cap 20,161 + asserted in `assemble9.py`; + - local payload prefix 64 · 49,347³ · 1,113,998² has 93 bits, under the + 2^104 cap of the selected chain's `columns_h.cpp`/`columns_k.cpp` + checkers. Selected #589's published value, in `tune/EXPECTED.json`, is + also 93. + + The ROW constants 9,909 and 252 and both caps are inherited. 8. **Price.** The equation is `Σ r·n_r/(m·W) (m/r)^a + 32·m·N/(10^16·W) m^a = 1` with m = 64 and W = 28,416, including the inherited bad-class fallback. It is solved with @@ -247,13 +317,18 @@ gate whose destination is a source or helper, at the full frame. | two slots made to overlap | disjointness and owner checks fail | | a slot dropped | occurrence, remainder, owner and profile checks fail | | one idle rank changed | window, remainder and profile checks fail | -| one rank-2 child per replica relabelled as rank 3 in the whole profile | the c bracket fails | +| one rank-2 child of the whole profile relabelled as rank 3 | the bound at c fails | +| one rank-42 child of the whole profile relabelled as rank 34 | the bound at the next grid point fails | | the composed word itself (positive control) | accepted | -The early-read row shows that the identity check alone does not enforce SOURCE -chronology. The chronology comparison with #589 is a separate, load-bearing -check. In the price bracket, each next grid point acts as a built-in negative -control. +The early-read row shows that the identity and legality checks alone would +not detect a moved SOURCE climb. The audit adopts equality with #589's SOURCE +chronology as a **sufficient inherited condition**. It does not show that an +earlier climb would break the inherited contract. In the price bracket, each +next grid point acts as a built-in negative control. The verifier requires +each mutant's rejected flag to match its expectation, and each price mutant +to fail the expected bound. The rejection reasons are pinned through byte +equality with RESULT.json. ## Scope, inherited assumptions and unresolved obligations @@ -265,7 +340,7 @@ These results are checked: - SOURCE write boundaries and chronology against #589; - the local profile and ADD counts; - the byte binding of the records and the template's local programs to the - word; + word, and of every call to its local program; - the hosting slot assignment under the selected idle rule; - the whole paid profile, the invoice precision fields and the price root. @@ -275,12 +350,13 @@ These are **not** checked: and route formulas, not against a physical register machine. The private centre reserve (physical = 28,416 + 9) and the cover classes are not checked. -- **Native transport.** Only the projector and address-exchange identities - above are checked. The physical register machine, data precision and cover - classes are not. +- **Native transport.** Only the projector identities above are checked. The + physical register machine, data precision and cover classes are not. Nor is + the capture contract's neutrality to the changed h477/h478 dirt + (Open question 1). - **Inherited formulas.** The invoice formula, the 10^-16 fallback, the ROW - constants and the price equation are used as stated in the selected sources, - not re-derived. + constants and caps, the payload cap and the price equation are used as + stated in the selected sources, not re-derived. - **Route factors.** The geometry's `max_route_factors` term is covered only by the envelope; any value below 2^40 gives the same bit lengths. - **Inherited assumptions.** These are unchanged from selected #589: the @@ -292,8 +368,8 @@ These are **not** checked: This is a finite certificate for one local supplier instance and its hosted invoice. It is not a scoped all-size proof or a multiplication theorem, and it does not admit PR #3647. It also makes no κ claim. Today the complex primitive -binds. The bit side would bind only if the pending complex chain -(PR #3653/PR #3682) were admitted. +binds, and it would still bind, with about 3.0e-6 of bit headroom, if the +pending complex chain (PR #3653/PR #3682) were admitted. ## Open next questions @@ -313,11 +389,24 @@ binds. The bit side would bind only if the pending complex chain property? First step: a read-only census of carriers with one birth whose reads are confined to one node frame. This is an expansion question: record the family's five-point expansion decision before any construction round. -3. **Which admission dependencies remain?** For PR #3647 to supply the bit side, - the complex chain PR #3653/PR #3682 must first make the bit side binding. - After that, maintainers must accept the inherited interfaces. First step: - reconcile this package's checks with the PR #3653/#3682 review state when - that chain is reviewed. +3. **Which admission dependencies remain for PR #3647?** No complex claim we + know of would make the bit side bind, so this is not urgent. It becomes + relevant once a complex gain of more than about 3.0e-6 beyond PR #3653/#3682 + is in view. First step: in the intake review of #3647, #3668 and #3690, + map this package's checks and Open question 1 against the inherited + interface list. +4. **Is PR #3647's hosting price-optimal under the audited rule?** In window 6 + the PR places its two stage-6 leftovers (helpers 421 and 422) in separate + copies 209 and 210, giving per-replica remainders `{34:2, 42:11}`. Moving + slot `[6,210,0,8,6,422]` to `[6,209,8,8,6,422]` gives `{26:1, 42:12}` at the + same rank mass. The root then rises from 0.0017366282534 to + 0.0017366460420 (+1.78e-8). One AI review pass found this. It was + re-checked locally with this package's slot checks and price engine; that + run is not shipped. Only slot legality and the price equation were + checked: the call owners were not regenerated, and the physical layer was + not checked. It is an observation for PR #3647's author, not an audit + claim. First step: regenerate the owners for the merged slot and rerun + the owners check. ## Predecessors and credit @@ -332,18 +421,37 @@ binds. The bit side would bind only if the pending complex chain NOTICEs): every semantic rule used here. - **PR #3668** (jwr404): histogram-to-c arithmetic on the published histogram. This package rederives the histogram instead. +- **PR #3690** (zxv): concurrent paid-request reconstruction and ordinary + coupling for R437, built on predecessor and author code. Its overlap with + this package is described under "Why it matters". +- **Related and not audited.** PR #3645 (RossRichardson, R429 at `99b901c9`) + and PR #3672 (jwr404, at `8f735782`) are local R438 variants, and neither + claims a c. The complex chain is PR #3653 (rohanarun) and PR #3682 (zxv), + cited only for its root. - This loop's earlier audit, PR #3687, supplied the audit pattern only. It covered a different, complex supplier. ## Provenance -The four files in [inputs/](inputs/) are byte-preserved copies of PR #3647's -Apache-2.0 package files. The record stream is wrapped in gzip, and the verifier -checks its uncompressed SHA256. That package's LICENSE and UPSTREAM-NOTICE.md -carry their notices and predecessor credits. +The four files in [inputs/](inputs/) are byte-preserved copies of files from +PR #3647 by ai-nanachi (head `36ff4414`, package +`research/bit-p111-r437-gl464-470-20261018`), used under Apache-2.0. The +record stream is wrapped in gzip, and the verifier checks its uncompressed +SHA256. The inherited predecessor credits are listed in that package's +UPSTREAM-NOTICE.md (Git blob `90ac2537`) and its LICENSE (blob `261eeb9e`). +Those files are not on main yet, so the credit is restated here. + +These inputs are pinned in the `snapshot` rows of [SOURCES.json](SOURCES.json), +not by `head:` pins. The PR is unmerged and its files are not at the base +commit. Each snapshot row records the source PR, commit, path, Git blob and +SHA256, and `verify.py` checks every SHA256 before use. The generic runner +ignores the `snapshot` key, so that binding is enforced by this package's +verifier. Prepared by Sagar Thakrar (thakrarsagar) with substantial AI assistance from Claude (Anthropic, Claude Opus 5.5). Base commit `20ecf2891d80b5acf18d980b2164fb44ea7faa90`. The checks are finite exact -computations in Python 3 (standard library). No human or formal-kernel review -is claimed. Apache-2.0. +computations in Python 3 (standard library). The package was reviewed by four +independent AI review passes in the same loop (one round: reproducibility, +mathematics/accounting, provenance, referee), and their fixes are applied +here. No human or formal-kernel review is claimed. Apache-2.0. diff --git a/research/r437-composed-bit-independent-audit/RESULT.json b/research/r437-composed-bit-independent-audit/RESULT.json index 15103fd5c6..3b7a8149a0 100644 --- a/research/r437-composed-bit-independent-audit/RESULT.json +++ b/research/r437-composed-bit-independent-audit/RESULT.json @@ -1,4 +1,9 @@ { + "c1043_certificate_vs_rebuilt": { + "adds_equal": true, + "gates_equal": true, + "local_profile_equal": true + }, "compensation_facts": { "e464_D0_is_589_D0_with_column_deleted": false, "e470_D0_is_589_D0_with_column_deleted": true, @@ -139,9 +144,10 @@ "hosting": { "banks": 0, "calls": 288, + "calls_bound_to_local_programs": true, "copy_in_range": true, "deficit": 10272, - "emitted_local_events": 7814016, + "emitted_local_events_count": 7814016, "every_occurrence_once": true, "hosted_occurrences": 125856, "idle_children_per_replica": { @@ -598,7 +604,10 @@ 3528, 4096 ], + "payload_below_2_104": true, + "payload_prefix_bits": 93, "prefix_bits": 177, + "row_below_inherited_cap_20161": true, "row_coefficient": 18355, "two_level_bits": [ 393, @@ -631,7 +640,6 @@ }, "split_exact": true }, - "control_one_child_per_replica_relabelled_rejected": true, "selected589_control": { "bracket": { "c": "1733427039589844234749/1000000000000000000000000", @@ -660,6 +668,24 @@ } } }, + "price_mutants": [ + { + "expected_failing_bound": "moment_upper_at_c_below_one", + "failing_bound": [ + "moment_upper_at_c_below_one" + ], + "mutant": "one_rank2_child_as_rank3", + "rejected": true + }, + { + "expected_failing_bound": "moment_lower_at_next_grid_above_one", + "failing_bound": [ + "moment_lower_at_next_grid_above_one" + ], + "mutant": "one_rank42_child_as_rank34", + "rejected": true + } + ], "profile_delta": { "additive": true, "composed": { diff --git a/research/r437-composed-bit-independent-audit/SOURCES.json b/research/r437-composed-bit-independent-audit/SOURCES.json index 2dba175e8e..98188fe070 100644 --- a/research/r437-composed-bit-independent-audit/SOURCES.json +++ b/research/r437-composed-bit-independent-audit/SOURCES.json @@ -67,6 +67,30 @@ "usage": "provenance", "git_blob": "7d697cb45203fe72d97037403d6da41f71f3b7fd", "sha256": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482" + }, + { + "path": "research/e8-bit-p111-tuned/vendor/pr510/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/global_k.py", + "usage": "provenance", + "git_blob": "3df12bd632f1fdba825ced57110a1fee82eb2857", + "sha256": "6368196a393ac25bb2918880e4c4bd31ed733b762c27b6873ab391cbc0c5c3c8" + }, + { + "path": "research/e8-bit-p111-tuned/vendor/pr510/e8-r480-nine-stage/code/assemble9.py", + "usage": "provenance", + "git_blob": "238226c568742dd5723b03eabae564a2eaa2bda9", + "sha256": "4bf6768224a3fac81ccda26df24f3763f9a4fbc35ad62bef2888595cdae519fe" + }, + { + "path": "research/e8-bit-carrier-skeleton/code/bit/checkers/columns_h.cpp", + "usage": "provenance", + "git_blob": "00c5a3a5d81d083582f60f33dd2e7bea5049c37f", + "sha256": "d1297f9052be4f2496e1ff2a77e4db2c0cdbd7d460d489b4c03e50bf317238ce" + }, + { + "path": "research/e8-bit-carrier-skeleton/code/bit/checkers/columns_k.cpp", + "usage": "provenance", + "git_blob": "42bb232fbec4de703e70cc13dc2f39a3b43a3a01", + "sha256": "1c344d18fcd494eeca93e259f10cafae7705780e6592f6dcb35b34752dab9bc2" } ], "snapshot": [ diff --git a/research/r437-composed-bit-independent-audit/TASK.json b/research/r437-composed-bit-independent-audit/TASK.json index 212019250f..db67ea0239 100644 --- a/research/r437-composed-bit-independent-audit/TASK.json +++ b/research/r437-composed-bit-independent-audit/TASK.json @@ -46,15 +46,15 @@ ] }, "scope_status": "changed", - "actual_scope": "Independently audit PR #3647 (head 36ff4414)'s composed R437 bit supplier: the helper464 joint GL deletion composed with #1043's helper470 deletion, against single-change controls #589+E464 (the PR's R438) and #589+E470 (#1043's R438, rebuilt). Word level: the exact F2 identity on all 659 inputs with arbitrary dirty helpers, by a forward replay and a reverse pull-back, plus the literal reverse orientation; literal reconstruction of R437 from selected #589; aligned-trace non-interaction; SOURCE77 frame-186 chronology and all SOURCE write boundaries; the local profile and its deltas; exact rational projector identities as a second frame method. Stretch, completed: byte binding of the PR's records and the template's local programs; the parent schedule and idle windows from main's recipe and hosting rule; legality of the 3,933 slots per replica and all 288 calls' owners; the whole paid profile; the invoice precision envelope; and an independent exact price bracket for c, with positive controls reproducing selected #589's a and #1043's c. Plus 18 word mutants, 4 hosting mutants and 1 price mutant, all rejected, and one positive control.", - "scope_change_reason": "The card's default object is a complex-moment/assembly claim. Orientation found that the selected #589 bit cap a/(1+a) = 0.0017304274698236 is only 8.57e-9 above the pending complex chain PR3653/PR3682 (kappa 0.0017304189). If that chain is admitted, the bit primitive binds and gains need an admitted better bit supplier. PR #3647 is the highest open bit claim (c = 0.001736628253427115) and had author checks only (PR3668 checks only histogram-to-c arithmetic). The card's method, reconstructing a coordinated change against its single-change controls, is applied to that supplier.", - "bottleneck_link": "Under the selected chain's inherited semantics, PR #3647's bit supplier c = 0.001736628253427115 (cap 0.0017336176) now has an independent finite check from the literal word through hosting to the price root. If the pending complex chain PR3653/PR3682 is admitted, the bit side binds and this is the highest checked bit supplier. Remaining items before admission are the native capture/transport and physical-owner semantics and the inherited assumptions. Today the complex primitive binds, so there is no kappa change.", + "actual_scope": "Independently audit PR #3647 (head 36ff4414)'s composed R437 bit supplier: the helper464 joint GL deletion composed with #1043's helper470 deletion, against single-change controls #589+E464 (the PR's R438) and #589+E470 (#1043's R438, rebuilt). Word level: the exact F2 identity on all 659 inputs with arbitrary dirty helpers, by a forward replay and a reverse pull-back, plus the literal reverse orientation; literal reconstruction of R437 from selected #589; aligned-trace non-interaction; SOURCE77 frame-186 chronology and all SOURCE write boundaries; the local profile and its deltas; exact rational projector identities as a second frame method. Stretch, completed: byte binding of the PR's records and the template's local programs; the parent schedule and idle windows from main's recipe and hosting rule; legality of the 3,933 slots per replica, and all 288 calls' owners and local-program hashes; the whole paid profile; the invoice precision envelope including the payload-prefix and ROW caps; and an independent exact price bracket for c, with positive controls reproducing selected #589's a and #1043's c. Plus 18 word mutants, 4 hosting mutants and 2 single-child price mutants, all rejected, and one positive control.", + "scope_change_reason": "The card's default object is a complex-moment/assembly claim (#2979). The loop's picker drew the bit-mechanisms track, and PR #3647 makes the highest open bit-supplier value (c = 0.001736628253427115). Apart from the author's own checks, it had only arithmetic or author-code checks: PR3668 checks the histogram-to-c arithmetic, and the concurrent PR3690 (opened during this audit) reconstructs paid requests with predecessor and author code. The card's method, reconstructing a coordinated change against its single-change controls, is applied to that supplier. Correction: orientation originally justified the switch by claiming the bit side would bind if PR3653/PR3682 were admitted. That rested on a mixed-convention comparison (an 8.57e-9 gap between #589's retained cap a/(1+a) and #3653's modern-outer kappa) and is withdrawn. Under either consistent convention the bit side keeps about 3.0e-6 of headroom.", + "bottleneck_link": "Under the selected chain's inherited semantics, PR #3647's bit supplier c = 0.001736628253427115 (retained cap 0.0017336176; modern-outer bit value 0.0017366283) now has an independent finite check from the literal word through hosting to the price root. There is no near-term kappa consequence. The complex primitive binds today, and it would still bind if PR3653/PR3682 were admitted: the bit headroom is 2.998e-6 under the retained transfer and 3.008e-6 under the modern outer. The bit supplier caps kappa only after a further complex gain of about 3.0e-6, and this check then applies to the highest open bit value. It also surfaces one new admission item: E464 changes the dirt pattern of the captured totals h477/h478.", "budget_minutes": 180, "stop_rule": "Stop at the first of: a confirmed discrepancy (minimize with mutants); a full PASS of identity, composition, controls, chronology, profile and mutants with both methods agreeing; word semantics not pinned within about 60 min (hand off); or a PR head change (re-pin once). Outcome: full PASS of the core within the semantics budget. The bounded hosted-invoice stretch (at most 60 min) also completed inside the experiment window: hosting, profile, precision envelope and price bracket. c is reproduced under the inherited semantics, not admitted.", "outcome": "completed", - "evidence": "PASS_INDEPENDENT_R437_WORD_AUDIT (RESULT.json). Word: R437 (659 inputs) and controls #589 (661), #589+E464 = PR R438 (660) and #589+E470 = #1043 R438 (660, rebuilt) all map (x,y,h) to (x,y+x,h) over F2 with legal nested climbs and FULL/t-perp final frames. Forward replay and reverse pull-back agree entrywise; the reverse orientation passes; H1-H5/U/J hold; D0/C equal the rebuilt ones. #589+E464+E470 equals the PR's R437 except stats metadata. The E470 control reproduces #1043's FRAME-PATHS.json, D0 18,085->18,030 and its profile. E470 changes no projected value; E464 changes no clean column, only helper 340's dirt column at A2044/A2047/A2068/A2070 and their C inverses. The composed trace equals the E464 control's with h470 deleted at all 5,369 aligned gates. Profile {1:1320,2:1344,3:77,4:43,5:102,6:11,7:18}, mass 5,113, ADDs 24,208; deltas additive. All 966 SOURCE write gates and all SOURCE climbs match #589; x77 is clean at the frame-186 read, reached at A426. Exact rational projectors: ranks equal dims for all 636 frames; P_A P_B = P_B P_A = P_A on all 2,384 climb pairs; the address-exchange identity holds on the 27 changed-register transitions. Records: the PR stream (27,132 records, sha caeb2eb0...) is byte-identical to an independent lowering, replays in both orientations (norms 49,347/1,113,998), and equals the template's local programs. Hosting: the schedule equals main's recipe; the windows are rederived; 3,933 slots per replica are legal and disjoint; remainders give idle {2:431,4:444,6:444,7:666,34:2,42:11}; 288 calls' owners match the slots and data routes; 125,856 hosted, 0 banks. Whole profile {1:380160,2:400864,3:22176,4:26592,5:29376,6:17376,7:26496,34:64,42:352}, mass 1,808,352, deficit 10,272. Precision: prefix 177 (192), coefficient 177, two-level 393 (512), depth 2, ROW 18,355. Price: c = 868314126713557740143/5e23 brackets with the next 1e-24 point failing. Controls: selected #589 a = 0.001733427039589844234749 from main-only inputs and #1043 c = 0.001734176288479865766692 are reproduced. The early-read mutant passes F2 identity and legality and is rejected only by the chronology check.", + "evidence": "PASS_INDEPENDENT_R437_WORD_AUDIT (RESULT.json). Word: R437 (659 inputs) and controls #589 (661), #589+E464 = PR R438 (660) and #589+E470 = #1043 R438 (660, rebuilt) all map (x,y,h) to (x,y+x,h) over F2 with legal nested climbs and FULL/t-perp final frames. Forward replay and reverse pull-back agree entrywise; the reverse orientation passes; H1-H5/U/J hold; D0/C equal the rebuilt ones. #589+E464+E470 equals the PR's R437 except stats metadata. The E470 control reproduces #1043's FRAME-PATHS.json and its CERTIFICATE.json local profile, 24,248 ADDs and gates 111/2074/712/2573 (machine-checked), and D0 18,085->18,030 (equals PROOF.md; compared by hand). The ten GL gates are taken as data from the PR's R438 word. E470 changes no projected value; E464 changes no clean column, only helper 340's dirt column at A2044/A2047/A2068/A2070 and their C inverses. The composed trace equals the E464 control's with h470 deleted at all 5,369 aligned gates. Profile {1:1320,2:1344,3:77,4:43,5:102,6:11,7:18}, mass 5,113, ADDs 24,208; deltas additive. All 966 SOURCE write gates and all SOURCE climbs match #589; x77 is clean at the frame-186 read, reached at A426. Exact rational projectors: ranks equal dims for all 636 frames; P_A P_B = P_B P_A = P_A on all 2,384 climb pairs; Records: the PR stream (27,132 records, sha caeb2eb0...) is byte-identical to an independent lowering, replays over F2 in both orientations (norms 49,347/1,113,998; signs bound by the byte equality), and equals the template's local programs; all 288 calls' local_hash values equal the programs' SHA256. Hosting: the schedule equals main's recipe; the windows are rederived; 3,933 slots per replica are legal and disjoint; remainders give idle {2:431,4:444,6:444,7:666,34:2,42:11}; 288 calls' owners match the slots and data routes; 125,856 hosted. Whole profile {1:380160,2:400864,3:22176,4:26592,5:29376,6:17376,7:26496,34:64,42:352}, mass 1,808,352, deficit 10,272. Precision: prefix 177 (192), coefficient 177, two-level 393 (512), depth 2, ROW 18,355 < inherited cap 20,161, payload prefix 93 bits < 104. Price: c = 868314126713557740143/5e23 brackets with the next 1e-24 point failing. Controls: selected #589 a = 0.001733427039589844234749 from main-only inputs and #1043 c = 0.001734176288479865766692 are reproduced. Single-child price mutants fail the expected bound (2->3 at c; 42->34 at the next grid point). The early-read mutant passes F2 identity and legality and is rejected only by the chronology comparison, which the audit adopts as a sufficient inherited condition.", "author": "Sagar Thakrar (thakrarsagar)", - "ai_assistance": "Substantial AI assistance from Claude (Anthropic, Claude Opus 5.5): design, code, checks and write-up in an automated research loop. No human or formal-kernel review is claimed.", + "ai_assistance": "Substantial AI assistance from Claude (Anthropic, Claude Opus 5.5): design, code, checks and write-up in an automated research loop. Reviewed by four independent AI review passes in the same loop (one round), whose fixes are applied. No human or formal-kernel review is claimed.", "open_questions": [ { "question": "Is the dirt-only change to two COPY sources contract-neutral? E464 changes the arbitrary-dirt content of retained totals h477/h478 by helper 340's column while their clean rows are unchanged.", @@ -69,10 +69,16 @@ "blocked_by": "The expansion gate; no construction is authorized by this audit." }, { - "question": "Which admission dependencies remain for PR #3647 as the bit supplier once the bit side binds?", - "why_it_matters": "The relevance is conditional on the complex chain PR3653/PR3682. A checked local supplier is not an admitted one.", - "first_step": "Reconcile this package's checks with the PR3653/PR3682 review state and the inherited-interface list when that chain is reviewed.", - "blocked_by": "Review of PR3653/PR3682." + "question": "Which admission dependencies remain for PR #3647 as a bit supplier?", + "why_it_matters": "A checked local supplier is not an admitted one. This is not urgent: no known complex claim makes the bit side bind (about 3.0e-6 of headroom remains after PR3653/PR3682).", + "first_step": "In the intake review of #3647, #3668 and #3690, map this package's checks and open question 1 against the inherited interface list.", + "blocked_by": "Maintainer intake of PR #3647." + }, + { + "question": "Is PR #3647's hosting price-optimal under the audited rule? Merging the two stage-6 leftovers (helpers 421 and 422) into copy 209 of window 6 gives remainders {26:1, 42:12} instead of {34:2, 42:11} at the same mass, and raises the root by about 1.78e-8 (to 0.0017366460420).", + "why_it_matters": "It is a small, mechanism-free gain for the PR's author. It was found by one AI review pass and re-checked locally (not shipped) for slot legality and the price equation only.", + "first_step": "Regenerate the call owners for the merged slot, rerun the owners check and the physical-layer checks, then reprice.", + "blocked_by": "Owners and the physical layer for the merged slot are not checked." } ] } diff --git a/research/r437-composed-bit-independent-audit/VERIFY.json b/research/r437-composed-bit-independent-audit/VERIFY.json index 5a2837d57d..7411ff43ee 100644 --- a/research/r437-composed-bit-independent-audit/VERIFY.json +++ b/research/r437-composed-bit-independent-audit/VERIFY.json @@ -18,7 +18,7 @@ "{package}/verify.py" ], "timeout_seconds": 300, - "checks": "Source pins; frame closure; for #589, #589+E464 (PR R438), #589+E470 (#1043 R438 rebuilt) and PR R437: F2 identity on all inputs by forward replay and reverse pull-back (entrywise agreement), reverse orientation, H1-H5/U/J, rebuilt D0/C; literal composition equals the PR's R437; #1043 FRAME-PATHS equality; exact rational projector identities on all climbs; aligned-trace non-interaction; SOURCE write boundaries and chronology; profile deltas; byte equality of the PR record stream with an independent lowering, record replay in both orientations, and template local programs; schedule from main's recipe, idle windows by the selected rule, slot legality, owners of 288 calls, remainders and the whole paid profile; invoice precision envelope; exact price bracket for c, with selected #589 and #1043 positive controls; 18 word mutants, 4 hosting mutants, 1 price mutant and one positive control; receipt equality with RESULT.json." + "checks": "Source pins; frame closure; for #589, #589+E464 (PR R438), #589+E470 (#1043 R438 rebuilt) and PR R437: F2 identity on all inputs by forward replay and reverse pull-back (entrywise agreement), reverse orientation, H1-H5/U/J, rebuilt D0/C; literal composition equals the PR's R437; #1043 FRAME-PATHS equality; exact rational projector identities on all climbs; aligned-trace non-interaction; SOURCE write boundaries and chronology; profile deltas; byte equality of the PR record stream with an independent lowering, record replay in both orientations, and template local programs; schedule from main's recipe, idle windows by the selected rule, slot legality, owners and local-program hashes of 288 calls, remainders and the whole paid profile; invoice precision envelope with the payload-prefix and ROW caps; exact price bracket for c, with selected #589 and #1043 positive controls; #1043 CERTIFICATE profile, ADDs and gates vs the rebuilt control; 18 word mutants, 4 hosting mutants, 2 single-child price mutants and one positive control; receipt equality with RESULT.json." } ] } diff --git a/research/r437-composed-bit-independent-audit/hosting.py b/research/r437-composed-bit-independent-audit/hosting.py index 3daa96f018..54c3947297 100644 --- a/research/r437-composed-bit-independent-audit/hosting.py +++ b/research/r437-composed-bit-independent-audit/hosting.py @@ -11,6 +11,8 @@ Each of the 2v (side, port) data families of p receives one copy of the child; a hosted residual owns coordinates [off, off + w) of one copy, and that child keeps the remaining rank. """ +import hashlib +import json from collections import Counter, defaultdict from wordsem import need @@ -188,13 +190,17 @@ def check(template, word, geo, records, local_profile): good_calls &= sorted(data_fams) == list(range(block, block + V2)) res['owners_match_slots_and_blocks'] = good_calls res['hosted_occurrences'] = hosted + # template bank counters (a count read from the template; the owners check already implies none) res['banks'] = sum(template['banks_per_stage'].values()) + sum(template['hosting']['banks_per_stage'].values()) - res['emitted_local_events'] = len(calls) * len(records) + res['emitted_local_events_count'] = len(calls) * len(records) - # 6. local programs bound to the audited record stream (both orientations) + # 6. local programs bound to the audited record stream (both orientations), and every call + # bound to the program of its orientation by its local_hash lp = template['local_programs'] res['local_programs_equal_records'] = all(lp[k] == events_from_records(records, k == 'reverse') for k in ('forward', 'reverse')) + digest = {k: hashlib.sha256(json.dumps(lp[k], separators=(',', ':')).encode()).hexdigest() for k in lp} + res['calls_bound_to_local_programs'] = all(c['local_hash'] == digest[c['orientation']] for c in calls) # 7. whole paid profile = calls x local profile + replicas x idle remainders whole = Counter() diff --git a/research/r437-composed-bit-independent-audit/price.py b/research/r437-composed-bit-independent-audit/price.py index 94872724d7..70b1f436a0 100644 --- a/research/r437-composed-bit-independent-audit/price.py +++ b/research/r437-composed-bit-independent-audit/price.py @@ -62,7 +62,9 @@ def precision(cf, cb, children, maxchild, R, v=111, K=4, L=9, T=32, m=64, W=2841 """Precision fields of the inherited nine-stage invoice (main: global_k.py prefix bound and #510 assemble9.py coefficient formula), as an envelope: every non-prefix term is bounded above generously (route factors up to 2^40, ports up to 120, doubled), so the reported bit lengths - hold for any such values. The ROW constants 9909 + 252 are inherited, not derived here.""" + hold for any such values. The ROW constants 9909 + 252 and the ROW cap 20161 (assemble9.py) + are inherited, not derived here. The local payload-prefix cap 64 cf^3 cb^2 < 2^104 is the + one in the selected chain's columns_h.cpp/columns_k.cpp checkers.""" prefix = 2 ** (6 * (K - 1)) * cf ** (K + 1) * cb ** K depth = 1 while not 2 * maxchild ** depth < m ** depth: @@ -81,9 +83,12 @@ def others(V, route): two_lo = (lo + 1) ** depth * (children + 1) ** depth two_hi = (hi + 1) ** depth * (children + 1) ** depth pb = prefix.bit_length() - return dict(prefix_bits=pb, charged_prefix_bits=192 if pb <= 192 else 64 * ((pb + 63) // 64), + payload = 64 * cf ** 3 * cb ** 2 + row = depth * (m * m + 1) + 9909 + 252 + return dict(payload_prefix_bits=payload.bit_length(), payload_below_2_104=payload < 2 ** 104, + prefix_bits=pb, charged_prefix_bits=192 if pb <= 192 else 64 * ((pb + 63) // 64), coefficient_bits=[lo.bit_length(), hi.bit_length()], two_level_bits=[two_lo.bit_length(), two_hi.bit_length()], charged_two_level_bits=512 if two_hi.bit_length() <= 512 else None, halving_depth=depth, halving_inequality=[2 * maxchild ** depth, m ** depth], - row_coefficient=depth * (m * m + 1) + 9909 + 252) + row_coefficient=row, row_below_inherited_cap_20161=row < 20161) diff --git a/research/r437-composed-bit-independent-audit/verify.py b/research/r437-composed-bit-independent-audit/verify.py index 667dd0d177..cff1f086bf 100644 --- a/research/r437-composed-bit-independent-audit/verify.py +++ b/research/r437-composed-bit-independent-audit/verify.py @@ -2,10 +2,12 @@ Usage (repository root): python3 -I -B research/r437-composed-bit-independent-audit/verify.py [--write] -Inputs: the selected #589 word and #1043's FRAME-PATHS.json from main, plus PR #3647's -R438 (helper464 GL) word, R437 word and R437 record stream vendored under inputs/ (all -sha256-pinned in SOURCES.json). -Semantics: wordsem.py (written for this audit from the format of the selected #589 package). +Inputs: from main, the selected #589 word, its selection9-p111.json hosting patterns and #1043's +FRAME-PATHS.json and CERTIFICATE.json; from PR #3647, the R438 (helper464 GL) word, the R437 word, +the R437 record stream and the hosted template, vendored under inputs/ (all sha256-pinned in +SOURCES.json). +Semantics: wordsem.py, records.py, hosting.py and price.py, written for this audit from the +selected #589 chain's sources on main (see README); nothing from PR #3647, #1043 or main is imported. Without --write the computed result must equal the committed RESULT.json. Standard library only. Sagar Thakrar (thakrarsagar), with substantial AI assistance from Claude (Anthropic, Claude Opus 5.5). Apache-2.0. @@ -352,16 +354,25 @@ def overlap(sl): F = price.Q res['price'] = dict(R437=price.bracket(hres['whole_profile'], tpl['m'], tpl['live'], F(*C_R437))) wp = hres['whole_profile'] - # price control: one rank-2 child relabelled as rank 3 (32 such children = one per replica) must move c - bad = dict(wp) - bad[2] -= 32 - bad[3] += 32 - b2 = price.bracket(bad, tpl['m'], tpl['live'], F(*C_R437)) - res['price']['control_one_child_per_replica_relabelled_rejected'] = not ( - b2['moment_upper_at_c_below_one'] and b2['moment_lower_at_next_grid_above_one']) + # price controls: relabel a single child of the whole profile; a worse child must break the + # bound at c, a better one the bound at the next grid point + res['price_mutants'] = [] + for label, src, dst, side in (('one_rank2_child_as_rank3', 2, 3, 'moment_upper_at_c_below_one'), + ('one_rank42_child_as_rank34', 42, 34, 'moment_lower_at_next_grid_above_one')): + bad = dict(wp) + bad[src] -= 1 + bad[dst] = bad.get(dst, 0) + 1 + b2 = price.bracket(bad, tpl['m'], tpl['live'], F(*C_R437)) + res['price_mutants'].append(dict(mutant=label, rejected=not (b2['moment_upper_at_c_below_one'] and + b2['moment_lower_at_next_grid_above_one']), + failing_bound=[k for k in ('moment_upper_at_c_below_one', + 'moment_lower_at_next_grid_above_one') + if not b2[k]], expected_failing_bound=side)) + local_adds = res['words']['R437_pr']['scalar_adds']['total'] + need(local_adds == res['records']['forward']['adds'] == 24208, 'local ADD count') res['precision_R437'] = price.precision(res['records']['forward']['cancellation_free_row_l1'], res['records']['reverse']['cancellation_free_row_l1'], - sum(wp.values()), max(wp), r437['R'], local_adds=24208) + sum(wp.values()), max(wp), r437['R'], local_adds=local_adds) res['precision_R437']['children'] = sum(wp.values()) # positive control 1: selected #589 from main only (word -> local profile; selection9-p111.json # patterns -> idle remainders on the same nine windows) must give the selected bit value @@ -394,7 +405,14 @@ def overlap(sl): whole_profile=dict(sorted(whole589.items())), bracket=price.bracket(dict(whole589), 64, 28416, F(*C_589))) # positive control 2: #1043's published hosted profile splits over the rebuilt E470 local profile - cert = json.load(open(os.path.join(ROOT, CERT1043)))['hosted']['candidate']['invoice']['bit_profile'] + certj = json.load(open(os.path.join(ROOT, CERT1043))) + cert = certj['hosted']['candidate']['invoice']['bit_profile'] + lc = certj['hosted']['candidate']['parent']['local_checks']['forward'] + c470w = res['words']['C470_rebuilt_1043'] + res['c1043_certificate_vs_rebuilt'] = dict( + local_profile_equal={int(k): x for k, x in lc['profile'].items()} == {int(k): x for k, x in c470w['profile'].items()}, + adds_equal=lc['adds'] == c470w['scalar_adds']['total'], + gates_equal=certj['native']['candidate']['interface']['gates'] == c470w['gates']) cert = {int(k): x for k, x in cert.items()} loc470 = {int(k): x for k, x in res['words']['C470_rebuilt_1043']['profile'].items()} idle470 = {k: cert.get(k, 0) - 288 * loc470.get(k, 0) for k in set(cert) | set(loc470)} @@ -402,9 +420,8 @@ def overlap(sl): idle_children_per_replica={k: x // 32 for k, x in sorted(idle470.items()) if x}, split_exact=all(x >= 0 and x % 32 == 0 for x in idle470.values()), bracket=price.bracket(cert, 64, 28416, F(*C_1043))) - # Bounded cross-check of the published whole profile (PR #3647 README/COMPOSED-PROOF): split it - # into 288 local calls of the audited local profile plus a per-replica idle remainder. The - # remainder itself (matching, owners, hosting) is NOT rederived here. + # Arithmetic split of the profile published in PR #3647's README/COMPOSED-PROOF into 288 local + # calls plus a per-replica idle remainder; hosting.check above rederives the remainder itself. claimed = {1: 380160, 2: 400864, 3: 22176, 4: 26592, 5: 29376, 6: 17376, 7: 26496, 34: 64, 42: 352} loc = {int(k): x for k, x in res['words']['R437_pr']['profile'].items()} calls, replicas = 9 * 32, 32 @@ -445,7 +462,7 @@ def overlap(sl): and all(res['hosting'][k] for k in ('windows_rederived_equal', 'every_occurrence_once', 'stage_inside_window', 'width_matches_word', 'copy_in_range', 'offsets_disjoint_within_rank', 'remainders_equal_published', 'owners_match_slots_and_blocks', - 'local_programs_equal_records')) + 'local_programs_equal_records', 'calls_bound_to_local_programs')) and res['hosting']['banks'] == 0 and res['hosting']['hosted_occurrences'] == 125856 and res['hosting']['whole_profile'] == res['whole_profile_split']['claimed'] and res['hosting']['template_source_record_sha256'] == res['records']['pr_stream_sha256'] @@ -460,11 +477,13 @@ def overlap(sl): and res['hosting']['schedule_equals_main_recipe'] and all(res['native'][k] for k in ('projector_rank_equals_dim', 'nested_projector_identity', 'address_exchange_identity_on_focus')) - and res['price']['control_one_child_per_replica_relabelled_rejected'] + and all(m['rejected'] and m['failing_bound'] == [m['expected_failing_bound']] for m in res['price_mutants']) + and all(res['c1043_certificate_vs_rebuilt'].values()) and all(m['rejected'] for m in res['hosting_mutants']) and res['precision_R437']['prefix_bits'] == 177 and res['precision_R437']['coefficient_bits'] == [177, 177] and res['precision_R437']['two_level_bits'] == [393, 393] and res['precision_R437']['charged_two_level_bits'] == 512 - and res['precision_R437']['row_coefficient'] == 18355 and res['precision_R437']['halving_depth'] == 2) + and res['precision_R437']['row_coefficient'] == 18355 and res['precision_R437']['halving_depth'] == 2 + and res['precision_R437']['row_below_inherited_cap_20161'] and res['precision_R437']['payload_below_2_104']) res['status'] = 'PASS_INDEPENDENT_R437_WORD_AUDIT' if ok else 'FAIL' return res, time.process_time() - t0 From aa0bd9fbc8700506b1fafcc55bca9bd32aced7d9 Mon Sep 17 00:00:00 2001 From: Sagar Thakrar <18622288+thakrarsagar@users.noreply.github.com> Date: Sun, 18 Oct 2026 22:45:51 +0530 Subject: [PATCH 7/7] Calibrate the R437 audit's capture-dirt item and tidy review nits Add a machine-checked helper-dirt census of the retained totals at the scatter: all nine #589 captures already carry 42-66 helper-dirt columns, and E464 only swaps the deleted h464's column for h340's in h477/h478 at unchanged counts (46/43); E470 drops h470's column from h475. The README, TASK.json and Open question 1 now present this as an item to confirm at intake (likely neutral), not a new kind of capture. Also assert the template's m/W equal the inherited 64/28416, reword the D0-vs-PROOF.md note (not machine-checked), fix the #3645/#3672 credit, helper-index notation, the c fraction, the snapshot-pin rationale, the correction note, add #3645's shelf-life caveat, and record seven AI review passes in two rounds. Co-Authored-By: Claude Opus 5.5 --- .../README.md | 122 +++++++++++------- .../RESULT.json | 59 +++++++++ .../TASK.json | 16 +-- .../VERIFY.json | 2 +- .../verify.py | 18 +++ 5 files changed, 161 insertions(+), 56 deletions(-) diff --git a/research/r437-composed-bit-independent-audit/README.md b/research/r437-composed-bit-independent-audit/README.md index 65831ed278..b9c9743a6c 100644 --- a/research/r437-composed-bit-independent-audit/README.md +++ b/research/r437-composed-bit-independent-audit/README.md @@ -14,18 +14,25 @@ passes**: with arbitrary dirty contents. The two edits compose with no interaction beyond the single-change controls. The SOURCE77 read at frame 186 is in chronological order, and the literal word gives the claimed local profile. -- **One new admission item.** E464 (the helper464 GL edit) changes the - arbitrary-dirt content, though not the clean content, of the two captured - retained totals h477 and h478, through helper 340's column. PR #3647 does - not state this. Whether the inherited capture contract is neutral to that - dirt pattern is not checked here ([Open question 1](#open-next-questions)). +- **One item to confirm at intake (likely neutral).** In selected #589 all + nine captured retained totals already carry arbitrary helper dirt at the + COPY, 42 to 66 helper columns each. Two of them, h477 and h478, carried the + deleted h464's column. E464 (the helper464 GL edit) replaces it with + h340's, so they keep 46 and 43 dirt columns and their clean rows. E470 + likewise drops h470's column from h475. The edit therefore changes which + dirty helper feeds two already-dirty captures; it adds no new kind of + capture. PR #3647 does not mention the swap. The record replay checks the + COPY/ERASE discipline over every dirt column. Whether the inherited capture + contract depends on which helpers' dirt reaches a total is not checked here + ([Open question 1](#open-next-questions)). If the discard is linear in + arbitrary helper contents, as PR #3647 states, the item closes. - **Records and hosting.** The PR's 27,132-record stream is byte-identical to an independent lowering of the word. The hosted template's 125,856 helper placements satisfy the selected chain's idle-hosting rule, and all 288 calls are bound to the audited local programs. - **Price.** The whole paid profile and the invoice's precision fields follow from these. The price root gives - **c = 868314126713557740143/5·10^23 = 0.001736628253427115480286**, and the + **c = 868314126713557740143/(5·10^23) = 0.001736628253427115480286**, and the next 10^-24 grid point fails. - **Controls.** The same price engine reproduces the selected #589 value `0.001733427039589844234749` from main-only inputs, and #1043's @@ -52,11 +59,13 @@ recomputes everything and requires byte equality with the committed ## Why it matters, and to whom **This package has no near-term κ consequence.** PR #3647's c = 0.0017366283 -is the highest open bit-supplier value we found. This package is an +is the highest priced open bit-supplier value we found. This package is an independent finite check of it, for the intake of PR #3647 and of the PRs that build on it (#3668, #3690). It would matter for κ only after a complex gain of about 3.0e-6 beyond the pending chain; past that point the bit -supplier caps κ. +supplier caps κ. The value may not stay the highest: PR #3645's unpriced +R429 word claims local rank mass 4,989, below R437's 5,113, so a hosted and +priced R429 may exceed this c. Neither is admitted. The bit side does not bind today, and it would not bind if the pending complex chain PR #3653 (rohanarun) / PR #3682 (zxv) were admitted. That chain's complex @@ -76,11 +85,11 @@ The modern-outer row matches the two modern-outer ledgers archived on main κ + `actual_bit_above_effective` equals the #589 bit root 0.0017334270 up to 10^-46. -> **Correction.** An earlier draft of this package, and this loop's #1166 -> claim, compared #589's retained cap a/(1+a) = 0.0017304275 with #3653's -> modern-outer κ = 0.0017304189. That 8.57e-9 gap mixes two conventions. The -> draft concluded that the bit side would bind once the chain was admitted; -> that conclusion was wrong and is withdrawn. +> **Correction.** This loop's #1166 claim for this audit compared #589's +> retained cap a/(1+a) = 0.0017304275 with #3653's modern-outer +> κ = 0.0017304189, and concluded that the bit side would bind once the chain +> was admitted. That 8.57e-9 gap mixes two conventions; the conclusion is +> withdrawn. **Other checks of PR #3647.** @@ -198,17 +207,28 @@ node's own correctness comes from the identity check. - its local profile `{1:1321, 2:1344, 3:78, 4:44, 5:102, 6:11, 7:18}`, its 24,248 ADDs and its gate counts 111/2074/712/2573, machine-checked against its `CERTIFICATE.json`; - - its D0 count of 18,030 ADDs (from #589's 18,085), which equals the value - stated in its PROOF.md. This one is compared by hand. + - its D0 count of 18,030 ADDs (from #589's 18,085), computed here. Its + equality with the value stated in #1043's PROOF.md is not + machine-checked. 3. **No interaction.** Traces are aligned gate by gate across about 5,350 common gates per comparison. The deleted helpers' columns are projected away, and survivors are renamed. - **E470** changes no value at all. - - **E464** changes no clean (x or y) column anywhere. It changes only helper - 340's arbitrary-dirt column, at four A gates of #589: `A[2044]` (h340), - `A[2047]` (h241), and `A[2068]` and `A[2070]`, which write the retained - totals h477 and h478. The same column also changes at the four literal - inverses of these gates in C. + - **E464** changes no clean (x or y) column anywhere. With the deleted + helpers' columns projected away, the values differ only in column 340 + (helper h340's arbitrary contents), at four A gates of #589: `A[2044]` + (h340), `A[2047]` (h241), and `A[2068]` and `A[2070]`, which write the + retained totals h477 and h478. The same column also changes at the four + literal inverses of these gates in C. At the two capture writes, h340's + column takes the place of the deleted h464's column, which the + projection drops. + - **Capture census.** At the scatter, the nine retained totals of #589 + carry 42 to 66 helper-dirt columns each + (`{42, 44, 46, 63, 66, 46, 43, 62, 59}` for h472…h480). h475 carries + h470's column, and h477 and h478 carry h464's. In R437 the counts are + the same except h475 (now h473), which drops to 62 with h470's column + gone. h477 and h478 (now h475 and h476) swap h464's column for h340's + and keep 46 and 43. No other column changes. - **Composed word.** Its trace equals the E464 control's trace with h470's column deleted, at all 5,369 aligned gates. It equals the E470 control's trace with h464's column deleted, except at exactly those eight gates. @@ -287,7 +307,8 @@ node's own correctness comes from the identity check. The ROW constants 9,909 and 252 and both caps are inherited. 8. **Price.** The equation is `Σ r·n_r/(m·W) (m/r)^a + 32·m·N/(10^16·W) m^a = 1` with m = 64 and - W = 28,416, including the inherited bad-class fallback. It is solved with + W = 28,416 (read from the template and asserted equal to these inherited + values), including the inherited bad-class fallback. It is solved with separate rational log/exp enclosures. At a = c the moment is < 1, and at c + 10^-24 it is > 1, for c = **0.001736628253427115480286**. The same engine gives two positive @@ -351,9 +372,9 @@ These are **not** checked: centre reserve (physical = 28,416 + 9) and the cover classes are not checked. - **Native transport.** Only the projector identities above are checked. The - physical register machine, data precision and cover classes are not. Nor is - the capture contract's neutrality to the changed h477/h478 dirt - (Open question 1). + physical register machine, data precision and cover classes are not. Nor + is it checked that the capture contract is independent of which helpers' + dirt reaches a captured total (Open question 1). - **Inherited formulas.** The invoice formula, the 10^-16 fallback, the ROW constants and caps, the payload cap and the price equation are used as stated in the selected sources, not re-derived. @@ -375,14 +396,16 @@ pending complex chain (PR #3653/PR #3682) were admitted. [TASK.json](TASK.json) structures these. -1. **Is the dirt-only change to two COPY sources contract-neutral?** E464 - changes the arbitrary-dirt content of the retained totals h477 and h478 (two - rank-7 captures) by helper 340's column, while their clean rows are - unchanged. The question is whether the inherited capture contract (one paid - transform plus linear private-stream discard) is provably independent of - the dirt pattern of a captured total. First step: state the native capture - lemma's hypotheses as used by selected #589, and check them on these two - captures. +1. **Does the inherited capture contract depend on which helpers' dirt + reaches a captured total?** Selected #589 already captures dirty totals: + each of its nine retained totals carries 42 to 66 helper-dirt columns at + the COPY. In two of them (h477 and h478, rank-7 captures), E464 swaps the + deleted h464's column for h340's at the same counts, with clean rows + unchanged. If the native capture lemma that #589 already needs (one paid + transform plus linear private-stream discard) is linear in arbitrary + helper contents, as PR #3647 states, the item closes. First step: state + that lemma's hypotheses as used by selected #589 and check whether any of + them names particular helpers. 2. **Does the E464 pattern recur?** In E464, a carrier's clean contribution is recovered from the output roles of the single node that reads it, so the carrier can be deleted. Which other carriers of #589 or R437 have that @@ -396,7 +419,8 @@ pending complex chain (PR #3653/PR #3682) were admitted. map this package's checks and Open question 1 against the inherited interface list. 4. **Is PR #3647's hosting price-optimal under the audited rule?** In window 6 - the PR places its two stage-6 leftovers (helpers 421 and 422) in separate + the PR places its two stage-6 leftovers (helper indices 421 and 422, + registers 643 and 644) in separate copies 209 and 210, giving per-replica remainders `{34:2, 42:11}`. Moving slot `[6,210,0,8,6,422]` to `[6,209,8,8,6,422]` gives `{26:1, 42:12}` at the same rank mass. The root then rises from 0.0017366282534 to @@ -424,10 +448,10 @@ pending complex chain (PR #3653/PR #3682) were admitted. - **PR #3690** (zxv): concurrent paid-request reconstruction and ordinary coupling for R437, built on predecessor and author code. Its overlap with this package is described under "Why it matters". -- **Related and not audited.** PR #3645 (RossRichardson, R429 at `99b901c9`) - and PR #3672 (jwr404, at `8f735782`) are local R438 variants, and neither - claims a c. The complex chain is PR #3653 (rohanarun) and PR #3682 (zxv), - cited only for its root. +- **Related and not audited.** PR #3645 (RossRichardson, `99b901c9`) reduces + #1043's R438 to a local R429 word, and PR #3672 (jwr404, `8f735782`) checks + the arithmetic of that R429 profile. Neither claims a c. The complex chain + is PR #3653 (rohanarun) and PR #3682 (zxv), cited only for its root. - This loop's earlier audit, PR #3687, supplied the audit pattern only. It covered a different, complex supplier. @@ -441,17 +465,21 @@ SHA256. The inherited predecessor credits are listed in that package's UPSTREAM-NOTICE.md (Git blob `90ac2537`) and its LICENSE (blob `261eeb9e`). Those files are not on main yet, so the credit is restated here. -These inputs are pinned in the `snapshot` rows of [SOURCES.json](SOURCES.json), -not by `head:` pins. The PR is unmerged and its files are not at the base -commit. Each snapshot row records the source PR, commit, path, Git blob and -SHA256, and `verify.py` checks every SHA256 before use. The generic runner -ignores the `snapshot` key, so that binding is enforced by this package's -verifier. +These inputs are bound by the `snapshot` rows of [SOURCES.json](SOURCES.json), +not by `head:` pins. A `head:` pin requires the vendored path to equal the PR +path, and the record stream is stored gzip-wrapped. Each snapshot row records +the source PR, commit, path, Git blob and SHA256, and `verify.py` checks every +SHA256 before use. The generic runner ignores the `snapshot` key, so that +binding is enforced by this package's verifier. Prepared by Sagar Thakrar (thakrarsagar) with substantial AI assistance from Claude (Anthropic, Claude Opus 5.5). Base commit `20ecf2891d80b5acf18d980b2164fb44ea7faa90`. The checks are finite exact -computations in Python 3 (standard library). The package was reviewed by four -independent AI review passes in the same loop (one round: reproducibility, -mathematics/accounting, provenance, referee), and their fixes are applied -here. No human or formal-kernel review is claimed. Apache-2.0. +computations in Python 3 (standard library). The package was reviewed by +seven independent AI review passes in the same loop, in two rounds (round 1: +reproducibility, mathematics/accounting, provenance, referee; round 2: +mathematics/accounting, reproducibility, referee). Their findings are +addressed here. Two suggested texts were not adopted: a replacement sentence +that repeated the mixed-convention comparison, and keeping a 32-child price +mutant beside the two single-child ones. No human or formal-kernel review is +claimed. Apache-2.0. diff --git a/research/r437-composed-bit-independent-audit/RESULT.json b/research/r437-composed-bit-independent-audit/RESULT.json index 3b7a8149a0..100b9cd1ee 100644 --- a/research/r437-composed-bit-independent-audit/RESULT.json +++ b/research/r437-composed-bit-independent-audit/RESULT.json @@ -4,6 +4,65 @@ "gates_equal": true, "local_profile_equal": true }, + "capture_dirt": { + "R437_pr_columns": { + "470": 42, + "471": 44, + "472": 46, + "473": 62, + "474": 66, + "475": 46, + "476": 43, + "477": 62, + "478": 59 + }, + "changes_vs_589": [ + { + "added": [ + 340 + ], + "deleted_helper_columns_dropped": [ + 464 + ], + "removed": [], + "total_589": 477, + "total_R437": 475 + }, + { + "added": [ + 340 + ], + "deleted_helper_columns_dropped": [ + 464 + ], + "removed": [], + "total_589": 478, + "total_R437": 476 + } + ], + "selected589_columns": { + "472": 42, + "473": 44, + "474": 46, + "475": 63, + "476": 66, + "477": 46, + "478": 43, + "479": 62, + "480": 59 + }, + "selected589_totals_carrying_deleted_helpers": { + "475": [ + 470 + ], + "477": [ + 464 + ], + "478": [ + 464 + ] + } + }, "compensation_facts": { "e464_D0_is_589_D0_with_column_deleted": false, "e470_D0_is_589_D0_with_column_deleted": true, diff --git a/research/r437-composed-bit-independent-audit/TASK.json b/research/r437-composed-bit-independent-audit/TASK.json index db67ea0239..9cbcceed6b 100644 --- a/research/r437-composed-bit-independent-audit/TASK.json +++ b/research/r437-composed-bit-independent-audit/TASK.json @@ -47,19 +47,19 @@ }, "scope_status": "changed", "actual_scope": "Independently audit PR #3647 (head 36ff4414)'s composed R437 bit supplier: the helper464 joint GL deletion composed with #1043's helper470 deletion, against single-change controls #589+E464 (the PR's R438) and #589+E470 (#1043's R438, rebuilt). Word level: the exact F2 identity on all 659 inputs with arbitrary dirty helpers, by a forward replay and a reverse pull-back, plus the literal reverse orientation; literal reconstruction of R437 from selected #589; aligned-trace non-interaction; SOURCE77 frame-186 chronology and all SOURCE write boundaries; the local profile and its deltas; exact rational projector identities as a second frame method. Stretch, completed: byte binding of the PR's records and the template's local programs; the parent schedule and idle windows from main's recipe and hosting rule; legality of the 3,933 slots per replica, and all 288 calls' owners and local-program hashes; the whole paid profile; the invoice precision envelope including the payload-prefix and ROW caps; and an independent exact price bracket for c, with positive controls reproducing selected #589's a and #1043's c. Plus 18 word mutants, 4 hosting mutants and 2 single-child price mutants, all rejected, and one positive control.", - "scope_change_reason": "The card's default object is a complex-moment/assembly claim (#2979). The loop's picker drew the bit-mechanisms track, and PR #3647 makes the highest open bit-supplier value (c = 0.001736628253427115). Apart from the author's own checks, it had only arithmetic or author-code checks: PR3668 checks the histogram-to-c arithmetic, and the concurrent PR3690 (opened during this audit) reconstructs paid requests with predecessor and author code. The card's method, reconstructing a coordinated change against its single-change controls, is applied to that supplier. Correction: orientation originally justified the switch by claiming the bit side would bind if PR3653/PR3682 were admitted. That rested on a mixed-convention comparison (an 8.57e-9 gap between #589's retained cap a/(1+a) and #3653's modern-outer kappa) and is withdrawn. Under either consistent convention the bit side keeps about 3.0e-6 of headroom.", - "bottleneck_link": "Under the selected chain's inherited semantics, PR #3647's bit supplier c = 0.001736628253427115 (retained cap 0.0017336176; modern-outer bit value 0.0017366283) now has an independent finite check from the literal word through hosting to the price root. There is no near-term kappa consequence. The complex primitive binds today, and it would still bind if PR3653/PR3682 were admitted: the bit headroom is 2.998e-6 under the retained transfer and 3.008e-6 under the modern outer. The bit supplier caps kappa only after a further complex gain of about 3.0e-6, and this check then applies to the highest open bit value. It also surfaces one new admission item: E464 changes the dirt pattern of the captured totals h477/h478.", + "scope_change_reason": "The card's default object is a complex-moment/assembly claim (#2979). The loop's picker drew the bit-mechanisms track, and PR #3647 makes the highest open bit-supplier value (c = 0.001736628253427115). Apart from the author's own checks, it had only arithmetic or author-code checks: PR3668 checks the histogram-to-c arithmetic, and the concurrent PR3690 (opened during this audit) reconstructs paid requests with predecessor and author code. The card's method, reconstructing a coordinated change against its single-change controls, is applied to that supplier. Correction: this package's task selection was first justified by the claim that the bit side would bind if PR3653/PR3682 were admitted. That rested on a mixed-convention comparison (an 8.57e-9 gap between #589's retained cap a/(1+a) and #3653's modern-outer kappa) and is withdrawn. Under either consistent convention the bit side keeps about 3.0e-6 of headroom.", + "bottleneck_link": "Under the selected chain's inherited semantics, PR #3647's bit supplier c = 0.001736628253427115 (retained cap 0.0017336176; modern-outer bit value 0.0017366283) now has an independent finite check from the literal word through hosting to the price root. There is no near-term kappa consequence. The complex primitive binds today, and it would still bind if PR3653/PR3682 were admitted: the bit headroom is 2.998e-6 under the retained transfer and 3.008e-6 under the modern outer. The bit supplier caps kappa only after a further complex gain of about 3.0e-6, and this check then applies to the highest open bit value. It also records one item to confirm at intake, likely neutral: all nine captured retained totals of selected #589 already carry 42-66 helper-dirt columns at the COPY, and E464 only swaps which helper's column (the deleted h464's for h340's) reaches two of them, h477/h478, at unchanged counts 46/43.", "budget_minutes": 180, "stop_rule": "Stop at the first of: a confirmed discrepancy (minimize with mutants); a full PASS of identity, composition, controls, chronology, profile and mutants with both methods agreeing; word semantics not pinned within about 60 min (hand off); or a PR head change (re-pin once). Outcome: full PASS of the core within the semantics budget. The bounded hosted-invoice stretch (at most 60 min) also completed inside the experiment window: hosting, profile, precision envelope and price bracket. c is reproduced under the inherited semantics, not admitted.", "outcome": "completed", - "evidence": "PASS_INDEPENDENT_R437_WORD_AUDIT (RESULT.json). Word: R437 (659 inputs) and controls #589 (661), #589+E464 = PR R438 (660) and #589+E470 = #1043 R438 (660, rebuilt) all map (x,y,h) to (x,y+x,h) over F2 with legal nested climbs and FULL/t-perp final frames. Forward replay and reverse pull-back agree entrywise; the reverse orientation passes; H1-H5/U/J hold; D0/C equal the rebuilt ones. #589+E464+E470 equals the PR's R437 except stats metadata. The E470 control reproduces #1043's FRAME-PATHS.json and its CERTIFICATE.json local profile, 24,248 ADDs and gates 111/2074/712/2573 (machine-checked), and D0 18,085->18,030 (equals PROOF.md; compared by hand). The ten GL gates are taken as data from the PR's R438 word. E470 changes no projected value; E464 changes no clean column, only helper 340's dirt column at A2044/A2047/A2068/A2070 and their C inverses. The composed trace equals the E464 control's with h470 deleted at all 5,369 aligned gates. Profile {1:1320,2:1344,3:77,4:43,5:102,6:11,7:18}, mass 5,113, ADDs 24,208; deltas additive. All 966 SOURCE write gates and all SOURCE climbs match #589; x77 is clean at the frame-186 read, reached at A426. Exact rational projectors: ranks equal dims for all 636 frames; P_A P_B = P_B P_A = P_A on all 2,384 climb pairs; Records: the PR stream (27,132 records, sha caeb2eb0...) is byte-identical to an independent lowering, replays over F2 in both orientations (norms 49,347/1,113,998; signs bound by the byte equality), and equals the template's local programs; all 288 calls' local_hash values equal the programs' SHA256. Hosting: the schedule equals main's recipe; the windows are rederived; 3,933 slots per replica are legal and disjoint; remainders give idle {2:431,4:444,6:444,7:666,34:2,42:11}; 288 calls' owners match the slots and data routes; 125,856 hosted. Whole profile {1:380160,2:400864,3:22176,4:26592,5:29376,6:17376,7:26496,34:64,42:352}, mass 1,808,352, deficit 10,272. Precision: prefix 177 (192), coefficient 177, two-level 393 (512), depth 2, ROW 18,355 < inherited cap 20,161, payload prefix 93 bits < 104. Price: c = 868314126713557740143/5e23 brackets with the next 1e-24 point failing. Controls: selected #589 a = 0.001733427039589844234749 from main-only inputs and #1043 c = 0.001734176288479865766692 are reproduced. Single-child price mutants fail the expected bound (2->3 at c; 42->34 at the next grid point). The early-read mutant passes F2 identity and legality and is rejected only by the chronology comparison, which the audit adopts as a sufficient inherited condition.", + "evidence": "PASS_INDEPENDENT_R437_WORD_AUDIT (RESULT.json). Word: R437 (659 inputs) and controls #589 (661), #589+E464 = PR R438 (660) and #589+E470 = #1043 R438 (660, rebuilt) all map (x,y,h) to (x,y+x,h) over F2 with legal nested climbs and FULL/t-perp final frames. Forward replay and reverse pull-back agree entrywise; the reverse orientation passes; H1-H5/U/J hold; D0/C equal the rebuilt ones. #589+E464+E470 equals the PR's R437 except stats metadata. The E470 control reproduces #1043's FRAME-PATHS.json and its CERTIFICATE.json local profile, 24,248 ADDs and gates 111/2074/712/2573 (machine-checked), and D0 18,085->18,030 (computed; its equality with the value stated in PROOF.md is not machine-checked). The ten GL gates are taken as data from the PR's R438 word. E470 changes no projected value; E464 changes no clean column; with deleted columns projected away only column 340 differs, at A2044/A2047/A2068/A2070 and their C inverses. Capture census: #589's nine retained totals carry {42,44,46,63,66,46,43,62,59} helper-dirt columns at the scatter; in R437 h477/h478 swap h464's column for h340's (46/43 kept) and h475 loses h470's (63->62); nothing else changes. The composed trace equals the E464 control's with h470 deleted at all 5,369 aligned gates. Profile {1:1320,2:1344,3:77,4:43,5:102,6:11,7:18}, mass 5,113, ADDs 24,208; deltas additive. All 966 SOURCE write gates and all SOURCE climbs match #589; x77 is clean at the frame-186 read, reached at A426. Exact rational projectors: ranks equal dims for all 636 frames; P_A P_B = P_B P_A = P_A on all 2,384 climb pairs. Records: the PR stream (27,132 records, sha caeb2eb0...) is byte-identical to an independent lowering, replays over F2 in both orientations (norms 49,347/1,113,998; signs bound by the byte equality), and equals the template's local programs; all 288 calls' local_hash values equal the programs' SHA256. Hosting: the schedule equals main's recipe; the windows are rederived; 3,933 slots per replica are legal and disjoint; remainders give idle {2:431,4:444,6:444,7:666,34:2,42:11}; 288 calls' owners match the slots and data routes; 125,856 hosted. Whole profile {1:380160,2:400864,3:22176,4:26592,5:29376,6:17376,7:26496,34:64,42:352}, mass 1,808,352, deficit 10,272. Precision: prefix 177 (192), coefficient 177, two-level 393 (512), depth 2, ROW 18,355 < inherited cap 20,161, payload prefix 93 bits < 104. Price (m = 64, W = 28,416 read from the template and asserted): c = 868314126713557740143/(5e23) brackets with the next 1e-24 point failing. Controls: selected #589 a = 0.001733427039589844234749 from main-only inputs and #1043 c = 0.001734176288479865766692 are reproduced. Single-child price mutants fail the expected bound (2->3 at c; 42->34 at the next grid point). The early-read mutant passes F2 identity and legality and is rejected only by the chronology comparison, which the audit adopts as a sufficient inherited condition.", "author": "Sagar Thakrar (thakrarsagar)", - "ai_assistance": "Substantial AI assistance from Claude (Anthropic, Claude Opus 5.5): design, code, checks and write-up in an automated research loop. Reviewed by four independent AI review passes in the same loop (one round), whose fixes are applied. No human or formal-kernel review is claimed.", + "ai_assistance": "Substantial AI assistance from Claude (Anthropic, Claude Opus 5.5): design, code, checks and write-up in an automated research loop. Reviewed by seven independent AI review passes in the same loop, in two rounds (four in round 1, three in round 2); findings are addressed, and two suggested texts were not adopted (a replacement sentence repeating the mixed-convention comparison, and keeping a 32-child price mutant). No human or formal-kernel review is claimed.", "open_questions": [ { - "question": "Is the dirt-only change to two COPY sources contract-neutral? E464 changes the arbitrary-dirt content of retained totals h477/h478 by helper 340's column while their clean rows are unchanged.", - "why_it_matters": "The rank-7 captures rely on the inherited 'one paid transform plus linear private-stream discard' contract. If that contract depended on the dirt pattern of a captured total, the GL edit would need a separate native argument.", - "first_step": "State the native capture lemma's hypotheses as used by selected #589 and check them on the two affected captures.", + "question": "Does the inherited capture contract depend on which helpers' dirt reaches a captured total? Selected #589's nine retained totals already carry 42-66 helper-dirt columns at the COPY; in two of them (h477/h478) E464 swaps the deleted h464's column for h340's at unchanged counts 46/43, with clean rows unchanged.", + "why_it_matters": "The rank-7 captures rely on the inherited 'one paid transform plus linear private-stream discard' contract, which #589 already needs for dirty captures. If it is linear in arbitrary helper contents, as PR #3647 states, the item closes; only if it named particular helpers would the GL edit need a separate native argument.", + "first_step": "State the native capture lemma's hypotheses as used by selected #589 and check whether any of them names particular helpers.", "blocked_by": "Locating the native capture lemma statement in the selected sources." }, { @@ -75,7 +75,7 @@ "blocked_by": "Maintainer intake of PR #3647." }, { - "question": "Is PR #3647's hosting price-optimal under the audited rule? Merging the two stage-6 leftovers (helpers 421 and 422) into copy 209 of window 6 gives remainders {26:1, 42:12} instead of {34:2, 42:11} at the same mass, and raises the root by about 1.78e-8 (to 0.0017366460420).", + "question": "Is PR #3647's hosting price-optimal under the audited rule? Merging the two stage-6 leftovers (helper indices 421 and 422, registers 643 and 644) into copy 209 of window 6 gives remainders {26:1, 42:12} instead of {34:2, 42:11} at the same mass, and raises the root by about 1.78e-8 (to 0.0017366460420).", "why_it_matters": "It is a small, mechanism-free gain for the PR's author. It was found by one AI review pass and re-checked locally (not shipped) for slot legality and the price equation only.", "first_step": "Regenerate the call owners for the merged slot, rerun the owners check and the physical-layer checks, then reprice.", "blocked_by": "Owners and the physical layer for the merged slot are not checked." diff --git a/research/r437-composed-bit-independent-audit/VERIFY.json b/research/r437-composed-bit-independent-audit/VERIFY.json index 7411ff43ee..acd588497d 100644 --- a/research/r437-composed-bit-independent-audit/VERIFY.json +++ b/research/r437-composed-bit-independent-audit/VERIFY.json @@ -18,7 +18,7 @@ "{package}/verify.py" ], "timeout_seconds": 300, - "checks": "Source pins; frame closure; for #589, #589+E464 (PR R438), #589+E470 (#1043 R438 rebuilt) and PR R437: F2 identity on all inputs by forward replay and reverse pull-back (entrywise agreement), reverse orientation, H1-H5/U/J, rebuilt D0/C; literal composition equals the PR's R437; #1043 FRAME-PATHS equality; exact rational projector identities on all climbs; aligned-trace non-interaction; SOURCE write boundaries and chronology; profile deltas; byte equality of the PR record stream with an independent lowering, record replay in both orientations, and template local programs; schedule from main's recipe, idle windows by the selected rule, slot legality, owners and local-program hashes of 288 calls, remainders and the whole paid profile; invoice precision envelope with the payload-prefix and ROW caps; exact price bracket for c, with selected #589 and #1043 positive controls; #1043 CERTIFICATE profile, ADDs and gates vs the rebuilt control; 18 word mutants, 4 hosting mutants, 2 single-child price mutants and one positive control; receipt equality with RESULT.json." + "checks": "Source pins; frame closure; for #589, #589+E464 (PR R438), #589+E470 (#1043 R438 rebuilt) and PR R437: F2 identity on all inputs by forward replay and reverse pull-back (entrywise agreement), reverse orientation, H1-H5/U/J, rebuilt D0/C; literal composition equals the PR's R437; #1043 FRAME-PATHS equality; exact rational projector identities on all climbs; aligned-trace non-interaction; helper-dirt census of the retained totals at the scatter (#589 vs R437); SOURCE write boundaries and chronology; profile deltas; byte equality of the PR record stream with an independent lowering, record replay in both orientations, and template local programs; schedule from main's recipe, idle windows by the selected rule, slot legality, owners and local-program hashes of 288 calls, remainders and the whole paid profile; invoice precision envelope with the payload-prefix and ROW caps; template m/W asserted equal to the inherited 64/28416; exact price bracket for c, with selected #589 and #1043 positive controls; #1043 CERTIFICATE profile, ADDs and gates vs the rebuilt control; 18 word mutants, 4 hosting mutants, 2 single-child price mutants and one positive control; receipt equality with RESULT.json." } ] } diff --git a/research/r437-composed-bit-independent-audit/verify.py b/research/r437-composed-bit-independent-audit/verify.py index cff1f086bf..8f33361c7d 100644 --- a/research/r437-composed-bit-independent-audit/verify.py +++ b/research/r437-composed-bit-independent-audit/verify.py @@ -281,6 +281,23 @@ def run(): composed_vs_589=compare(T589, T437, dcomp, rencomp, v), composed_vs_C464=compare(T464, T437, [469], lambda r: r - (r > 469), v), composed_vs_C470=compare(T470, T437, [464], lambda r: r - (r > 464), v)) + # Helper-dirt census of the retained totals at the scatter (the COPY sources), for scale: how + # much arbitrary dirt each capture already carries in #589, and which columns the edits swap. + def capture_dirt(w): + val = forward(w, geo, sections=('D', 'A'), frames_on=False)[0] + return [(q, [b for b in bits(val[q]) if b >= 2 * v]) for q in w['ret']] + cd589, cd437 = capture_dirt(w589), capture_dirt(r437) + need([rencomp(q) for q, _ in cd589] == [q for q, _ in cd437], 'retained totals do not correspond') + res['capture_dirt'] = dict( + selected589_columns={q: len(c) for q, c in cd589}, + R437_pr_columns={q: len(c) for q, c in cd437}, + selected589_totals_carrying_deleted_helpers={q: [b for b in c if b in dcomp] for q, c in cd589 + if any(b in dcomp for b in c)}, + changes_vs_589=[dict(total_589=q0, total_R437=q1, deleted_helper_columns_dropped=[b for b in c0 if b in dcomp], + removed=sorted(set(rencomp(b) for b in c0 if b not in dcomp) - set(c1)), + added=sorted(set(c1) - set(rencomp(b) for b in c0 if b not in dcomp))) + for (q0, c0), (q1, c1) in zip(cd589, cd437) + if [rencomp(b) for b in c0 if b not in dcomp] != c1]) # SOURCE77 late read and source chronology h589, sc589 = source_history(T589, C589, v) h437, sc437 = source_history(T437, C437, v) @@ -351,6 +368,7 @@ def overlap(sl): broken = ['rejected: %s' % e] hmut.append(dict(mutant=label, rejected=bool(broken), broken=broken)) res['hosting_mutants'] = hmut + need(tpl['m'] == 64 and tpl['live'] == 28416, 'template m/W differ from the inherited 64/28416') F = price.Q res['price'] = dict(R437=price.bracket(hres['whole_profile'], tpl['m'], tpl['live'], F(*C_R437))) wp = hres['whole_profile']