From 34f7eff4e2d4ab7c249a6505bc04a2d6aa41dea9 Mon Sep 17 00:00:00 2001 From: Gareth Davidson Date: Tue, 13 Oct 2026 14:48:42 +0100 Subject: [PATCH 1/2] research: certify R439 helper matching floor with an admitted one-ADD gap --- .../r439-helper-matching/CERTIFICATE.json | 21 + research/r439-helper-matching/CLAIM.json | 48 + research/r439-helper-matching/EXPECTED.json | 2915 +++++ research/r439-helper-matching/LICENSE | 201 + research/r439-helper-matching/NOMINATION.json | 10910 ++++++++++++++++ research/r439-helper-matching/NOTICE.md | 69 + research/r439-helper-matching/PROOF.md | 157 + research/r439-helper-matching/README.md | 170 + research/r439-helper-matching/SOURCES.json | 62 + research/r439-helper-matching/VALIDATION.md | 90 + research/r439-helper-matching/build.py | 88 + .../r439-helper-matching/candidate.json.gz | Bin 0 -> 39115 bytes research/r439-helper-matching/common.py | 69 + .../r439-helper-matching/floor-word.json.gz | Bin 0 -> 39075 bytes research/r439-helper-matching/native.py | 116 + research/r439-helper-matching/nominate.py | 149 + research/r439-helper-matching/test_package.py | 100 + .../vendor/pr817/README.md | 226 + .../vendor/pr915/CERTIFICATE.json | 2775 ++++ .../r439-helper-matching/vendor/pr915/LICENSE | 201 + .../vendor/pr915/NOTICE.md | 60 + .../vendor/pr915/PROOF.md | 130 + .../vendor/pr915/README.md | 144 + .../vendor/pr915/candidate.json.gz | Bin 0 -> 38950 bytes .../vendor/pr926/CERTIFICATE.json | 1562 +++ .../vendor/pr926/EXPECTED.json | 1762 +++ .../r439-helper-matching/vendor/pr926/LICENSE | 201 + .../vendor/pr926/NOTICE.md | 65 + .../vendor/pr926/PROOF.md | 141 + .../vendor/pr926/README.md | 150 + .../vendor/pr926/SOURCES.json | 51 + .../vendor/pr926/candidate.json.gz | Bin 0 -> 39065 bytes research/r439-helper-matching/verify.py | 516 + 33 files changed, 23149 insertions(+) create mode 100644 research/r439-helper-matching/CERTIFICATE.json create mode 100644 research/r439-helper-matching/CLAIM.json create mode 100644 research/r439-helper-matching/EXPECTED.json create mode 100644 research/r439-helper-matching/LICENSE create mode 100644 research/r439-helper-matching/NOMINATION.json create mode 100644 research/r439-helper-matching/NOTICE.md create mode 100644 research/r439-helper-matching/PROOF.md create mode 100644 research/r439-helper-matching/README.md create mode 100644 research/r439-helper-matching/SOURCES.json create mode 100644 research/r439-helper-matching/VALIDATION.md create mode 100644 research/r439-helper-matching/build.py create mode 100644 research/r439-helper-matching/candidate.json.gz create mode 100644 research/r439-helper-matching/common.py create mode 100644 research/r439-helper-matching/floor-word.json.gz create mode 100644 research/r439-helper-matching/native.py create mode 100644 research/r439-helper-matching/nominate.py create mode 100644 research/r439-helper-matching/test_package.py create mode 100644 research/r439-helper-matching/vendor/pr817/README.md create mode 100644 research/r439-helper-matching/vendor/pr915/CERTIFICATE.json create mode 100644 research/r439-helper-matching/vendor/pr915/LICENSE create mode 100644 research/r439-helper-matching/vendor/pr915/NOTICE.md create mode 100644 research/r439-helper-matching/vendor/pr915/PROOF.md create mode 100644 research/r439-helper-matching/vendor/pr915/README.md create mode 100644 research/r439-helper-matching/vendor/pr915/candidate.json.gz create mode 100644 research/r439-helper-matching/vendor/pr926/CERTIFICATE.json create mode 100644 research/r439-helper-matching/vendor/pr926/EXPECTED.json create mode 100644 research/r439-helper-matching/vendor/pr926/LICENSE create mode 100644 research/r439-helper-matching/vendor/pr926/NOTICE.md create mode 100644 research/r439-helper-matching/vendor/pr926/PROOF.md create mode 100644 research/r439-helper-matching/vendor/pr926/README.md create mode 100644 research/r439-helper-matching/vendor/pr926/SOURCES.json create mode 100644 research/r439-helper-matching/vendor/pr926/candidate.json.gz create mode 100644 research/r439-helper-matching/verify.py diff --git a/research/r439-helper-matching/CERTIFICATE.json b/research/r439-helper-matching/CERTIFICATE.json new file mode 100644 index 0000000000..3e6191705c --- /dev/null +++ b/research/r439-helper-matching/CERTIFICATE.json @@ -0,0 +1,21 @@ +{ + "B": 10548832, + "D_adds": 5729, + "F": 70083, + "baseline_sha256": "5642fd0e35a1acc11acff8d0c08350c1617e95f310d4d35ad63a651f9eeeba0b", + "candidate_sha256": "06808b6a98689bba6095fd96c0602fa585dc114bf33073f30acce34b1fdff18d", + "floor_word_sha256": "8948c509341735070c46de5ecb723f8e4294c22b14470ad7c3140875ab10971f", + "format": "r439-helper-matching/1", + "greedy_sha256": "fdb1a0dfafe5392e01fb87f5813737db0f15682c5cb98fc224d4d4cdbc806dd2", + "helper_pairs": 199, + "middle_weight": 4719, + "native_ADDs": 11949, + "nine_stage_prefix_bits": 192, + "nomination_sha256": "cc74c21e757542d73ffb82b2a58a69a31dbfa4260916426f52dc998dbb527ca4", + "parent_sha256": "6aec2c6f91c87a7440af10cdeb90b8814501224a86de14d4033ae3ffa00899da", + "payload_bits": 101, + "saved_beyond_greedy": 31, + "saved_beyond_parent": 1259, + "seed": 4, + "target_shears": 306 +} diff --git a/research/r439-helper-matching/CLAIM.json b/research/r439-helper-matching/CLAIM.json new file mode 100644 index 0000000000..cc0664bd4a --- /dev/null +++ b/research/r439-helper-matching/CLAIM.json @@ -0,0 +1,48 @@ +{ + "assignment_seed": 4, + "drawn_at_utc": "2026-10-13T13:11:39.515987+00:00", + "track": "bit supplier", + "source": "secrets.randbelow(100), OS randomness", + "pass": 12, + "base": "91a2094f2e022930069e8cfdc810a3ea1b81cd09", + "branch": "research/pass12-bit-seed04", + "status": "claimed", + "claimed_at_utc": "2026-10-13T13:17:36.187221+00:00", + "candidate_selection": "Seed 4 modulo 3 selects candidate 1. Seed 4 fixes secondary nomination ordering.", + "candidates": [ + { + "object": "Restored decoder stars in the selected R439 full-frame A totals", + "chosen": false, + "reason": "PR708/753 cover the predecessor mechanism; a new R439 transplant is less informative than closing the exact matching gap." + }, + { + "object": "Exact disjoint helper matching around the fixed PR915 target basis, including the 192-bit prefix budget", + "chosen": true, + "method": "Certify the unrestricted pairing cost with integer vertex/odd-set prices; nominate one seed-4 matching and one lexicographic forward-cost matching, then exhaust all one-pair deletions of nominated optima if needed." + }, + { + "object": "Reduce the selected frame267 fixed positive-transfer circuit", + "chosen": false, + "reason": "Fresh PR925 supplies a complete 12-ADD minimum in that class; larger computation alone would reopen a closed search." + } + ], + "statement": "Improve and bound the disjoint helper-pair class around the exact frozen PR915 target basis. Compare selected PR589, PR915, PR926 and the new fully charged candidate separately.", + "domain": "All 439*438/2 = 96,141 unordered helper pairs, both orientations; 1,885 positive undirected edges. At most three maximum-weight matching nominations total, including the completed lexicographic calibration, followed by all one-pair deletions of those nominations. No target-basis changes or overlapping helper shears.", + "optimistic_complete_cost": "The preliminary maximum-weight pairing saves 1,260 ADDs beyond PR915, giving D=5,728 and a complete word of 11,948. It has F=73,603, B=10,518,760 and a 193-bit nine-stage bound, so it is not admitted. PR926 costs 11,980 and has a 192-bit bound.", + "admission": "Recompute every combined word. Require 64*F^3*B^2 < 2^104 and 2^18*F^5*B^4 < 2^192. No inherited parent bound, free restoration or addition of standalone savings.", + "stopping_rule": "Complete the matching certificate and the declared bounded nomination/deletion family. If no admitted improvement exists, retain the exact floor and explicit budget obstruction as scoped evidence; do not claim global precision-constrained optimality.", + "expected_finish": "Approximately 90 minutes, with the final quarter reserved for verification and handoff.", + "coordination": "No pinned sprint coordination issue exists; open non-PR issues are #650 and #913. Claim recorded locally.", + "overlap": { + "open_prs": 720, + "through_pr": 929, + "related": "PR716 and PR817 certify R420 target matchings; PR926 uses a greedy R439 helper matching and explicitly leaves matching optimality open. PR923/925 concern separate phase-A/B blocks. No matching certificate for this frozen R439 matrix was found." + }, + "predecessors": { + "915": "e9daefe320a0043000bd9746664ed02c3287d056", + "926": "0f216a345c37bc71cc0e22030ef11ec31b26a69e", + "817": "3147cac35c659152d36db1e0e60b9ce4b152c008", + "716": "afeb452f58ff0cbf109172335e2ba282aac3dcde" + }, + "scope": "Finite bit construction and exact restricted pairing bound. Semantic D acceptance and full hosted reconstruction/invoice remain integration obligations. No new kappa, unrestricted optimum or measured runtime claim." +} diff --git a/research/r439-helper-matching/EXPECTED.json b/research/r439-helper-matching/EXPECTED.json new file mode 100644 index 0000000000..bd46063b14 --- /dev/null +++ b/research/r439-helper-matching/EXPECTED.json @@ -0,0 +1,2915 @@ +{ + "bills": { + "baseline": { + "B": 1113070, + "D_adds": 18085, + "F": 49347, + "native_ADDs": 24305, + "nine_stage_prefix_bits": 177, + "payload_bits": 93 + }, + "candidate": { + "B": 10548832, + "D_adds": 5729, + "F": 70083, + "native_ADDs": 11949, + "nine_stage_prefix_bits": 192, + "payload_bits": 101 + }, + "floor": { + "B": 10518760, + "D_adds": 5728, + "F": 73603, + "native_ADDs": 11948, + "nine_stage_prefix_bits": 193, + "payload_bits": 102 + }, + "greedy": { + "B": 10562318, + "D_adds": 5760, + "F": 71907, + "native_ADDs": 11980, + "nine_stage_prefix_bits": 192, + "payload_bits": 102 + }, + "parent": { + "B": 9534616, + "D_adds": 6988, + "F": 49347, + "native_ADDs": 13208, + "nine_stage_prefix_bits": 189, + "payload_bits": 100 + } + }, + "boundary_columns": 661, + "boundary_words_and_directions": 10, + "bounded_family": { + "admitted_words": 17, + "complete_words_priced": 601, + "literal_prefix_instructions_checked": 14390692, + "nominations": 3, + "selected": { + "ADDs": 11949, + "B": 10548832, + "F": 70083, + "admitted": true, + "gain": 1259, + "nine_bits": 192, + "nomination": 2, + "payload_bits": 101, + "removed_index": 196 + }, + "single_pair_deletions": 598 + }, + "candidate_sha256": "06808b6a98689bba6095fd96c0602fa585dc114bf33073f30acce34b1fdff18d", + "certificate_sha256": "9c5bca5b628c2c0392c1118be08bbb6f57de65444e4149444940090219cb1a7e", + "controls": { + "paid_neutral_helper_pair": 2, + "rejected": [ + "omitted odd-set prices", + "underpriced vertex", + "even set charged as odd", + "boolean dual price", + "overlapping matching", + "boolean helper index", + "missing target preparation", + "missing helper preparation", + "missing helper restoration", + "missing target restoration", + "omitted mixed term", + "nonzero D frame", + "D source access", + "unpaid helper restoration", + "inherited parent forward bound", + "arithmetic optimum falsely admitted", + "strict local ceiling equality", + "strict nine-stage ceiling equality", + "unrelated cleanup change" + ] + }, + "discovery_proxy": { + "helper_columns": 439, + "lexicographic_multiplier": 24250, + "maximum_cost": 1584, + "pivot": 291 + }, + "dual": { + "census_sha256": "0246432b2dc71203907d75f0ae6d9520a2a24a1c5326a1e57c6616dd8c21c07a", + "complete_ADD_floor": 11948, + "doubled_objective": 2520, + "exact_maximum_saving": 1260, + "largest_odd_set": 7, + "odd_sets": 19, + "oriented_pair_scores": 192282, + "positive_edges": 1885, + "tight_edges": 347, + "unordered_pairs": 96141, + "vertex_prices": 439 + }, + "matrix": { + "coefficients": 48729, + "mixed_term_nonzeros": 7343 + }, + "native": { + "baseline": { + "common_frame_ADDs": 24305, + "copies": 9, + "erasures": 9, + "paid_histogram": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "rank_mass": 5129, + "records": 27234, + "staged": { + "11": { + "bridge_additions": 2664, + "controls_rejected": 24, + "formal_columns_checked": 1549, + "fresh_center_copies": 99, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 93, + "payload_prefix_upper": "9528119495320518471870892800", + "reverse_fresh_center_copies": 45, + "signed_lift_prefix": [ + { + "bits": 16, + "cancellation_free_signed_row_l1_upper": "49347", + "reverse": false + }, + { + "bits": 21, + "cancellation_free_signed_row_l1_upper": "1113070", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 8 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 9 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 10 + } + ] + }, + "5": { + "bridge_additions": 666, + "controls_rejected": 6, + "formal_columns_checked": 883, + "fresh_center_copies": 45, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 93, + "payload_prefix_upper": "9528119495320518471870892800", + "reverse_fresh_center_copies": 18, + "signed_lift_prefix": [ + { + "bits": 16, + "cancellation_free_signed_row_l1_upper": "49347", + "reverse": false + }, + { + "bits": 21, + "cancellation_free_signed_row_l1_upper": "1113070", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 4 + } + ] + }, + "9": { + "bridge_additions": 1998, + "controls_rejected": 18, + "formal_columns_checked": 1327, + "fresh_center_copies": 81, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 93, + "payload_prefix_upper": "9528119495320518471870892800", + "reverse_fresh_center_copies": 36, + "signed_lift_prefix": [ + { + "bits": 16, + "cancellation_free_signed_row_l1_upper": "49347", + "reverse": false + }, + { + "bits": 21, + "cancellation_free_signed_row_l1_upper": "1113070", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 8 + } + ] + } + } + }, + "candidate": { + "common_frame_ADDs": 11949, + "copies": 9, + "erasures": 9, + "paid_histogram": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "rank_mass": 5129, + "records": 14878, + "staged": { + "11": { + "bridge_additions": 2664, + "controls_rejected": 24, + "formal_columns_checked": 1549, + "fresh_center_copies": 99, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 101, + "payload_prefix_upper": "2451471101600792727738016530432", + "reverse_fresh_center_copies": 45, + "signed_lift_prefix": [ + { + "bits": 17, + "cancellation_free_signed_row_l1_upper": "70083", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "10548832", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": false, + "stage": 8 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": true, + "stage": 9 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": false, + "stage": 10 + } + ] + }, + "5": { + "bridge_additions": 666, + "controls_rejected": 6, + "formal_columns_checked": 883, + "fresh_center_copies": 45, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 101, + "payload_prefix_upper": "2451471101600792727738016530432", + "reverse_fresh_center_copies": 18, + "signed_lift_prefix": [ + { + "bits": 17, + "cancellation_free_signed_row_l1_upper": "70083", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "10548832", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": false, + "stage": 4 + } + ] + }, + "9": { + "bridge_additions": 1998, + "controls_rejected": 18, + "formal_columns_checked": 1327, + "fresh_center_copies": 81, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 101, + "payload_prefix_upper": "2451471101600792727738016530432", + "reverse_fresh_center_copies": 36, + "signed_lift_prefix": [ + { + "bits": 17, + "cancellation_free_signed_row_l1_upper": "70083", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "10548832", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 11949, + "signed_inverse": false, + "stage": 8 + } + ] + } + } + }, + "floor": { + "common_frame_ADDs": 11948, + "copies": 9, + "erasures": 9, + "paid_histogram": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "rank_mass": 5129, + "records": 14877, + "staged": { + "11": { + "bridge_additions": 2664, + "controls_rejected": 24, + "formal_columns_checked": 1549, + "fresh_center_copies": 99, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 102, + "payload_prefix_upper": "2823550859833921946859842252800", + "reverse_fresh_center_copies": 45, + "signed_lift_prefix": [ + { + "bits": 17, + "cancellation_free_signed_row_l1_upper": "73603", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "10518760", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": false, + "stage": 8 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": true, + "stage": 9 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": false, + "stage": 10 + } + ] + }, + "5": { + "bridge_additions": 666, + "controls_rejected": 6, + "formal_columns_checked": 883, + "fresh_center_copies": 45, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 102, + "payload_prefix_upper": "2823550859833921946859842252800", + "reverse_fresh_center_copies": 18, + "signed_lift_prefix": [ + { + "bits": 17, + "cancellation_free_signed_row_l1_upper": "73603", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "10518760", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": false, + "stage": 4 + } + ] + }, + "9": { + "bridge_additions": 1998, + "controls_rejected": 18, + "formal_columns_checked": 1327, + "fresh_center_copies": 81, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 102, + "payload_prefix_upper": "2823550859833921946859842252800", + "reverse_fresh_center_copies": 36, + "signed_lift_prefix": [ + { + "bits": 17, + "cancellation_free_signed_row_l1_upper": "73603", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "10518760", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 11948, + "signed_inverse": false, + "stage": 8 + } + ] + } + } + }, + "greedy": { + "common_frame_ADDs": 11980, + "copies": 9, + "erasures": 9, + "paid_histogram": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "rank_mass": 5129, + "records": 14909, + "staged": { + "11": { + "bridge_additions": 2664, + "controls_rejected": 24, + "formal_columns_checked": 1549, + "fresh_center_copies": 99, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 102, + "payload_prefix_upper": "2654678678257550221373682862848", + "reverse_fresh_center_copies": 45, + "signed_lift_prefix": [ + { + "bits": 17, + "cancellation_free_signed_row_l1_upper": "71907", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "10562318", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 8 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 9 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 10 + } + ] + }, + "5": { + "bridge_additions": 666, + "controls_rejected": 6, + "formal_columns_checked": 883, + "fresh_center_copies": 45, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 102, + "payload_prefix_upper": "2654678678257550221373682862848", + "reverse_fresh_center_copies": 18, + "signed_lift_prefix": [ + { + "bits": 17, + "cancellation_free_signed_row_l1_upper": "71907", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "10562318", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 4 + } + ] + }, + "9": { + "bridge_additions": 1998, + "controls_rejected": 18, + "formal_columns_checked": 1327, + "fresh_center_copies": 81, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 102, + "payload_prefix_upper": "2654678678257550221373682862848", + "reverse_fresh_center_copies": 36, + "signed_lift_prefix": [ + { + "bits": 17, + "cancellation_free_signed_row_l1_upper": "71907", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "10562318", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 8 + } + ] + } + } + }, + "parent": { + "common_frame_ADDs": 13208, + "copies": 9, + "erasures": 9, + "paid_histogram": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "rank_mass": 5129, + "records": 16137, + "staged": { + "11": { + "bridge_additions": 2664, + "controls_rejected": 24, + "formal_columns_checked": 1549, + "fresh_center_copies": 99, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 100, + "payload_prefix_upper": "699147249763640764132165496832", + "reverse_fresh_center_copies": 45, + "signed_lift_prefix": [ + { + "bits": 16, + "cancellation_free_signed_row_l1_upper": "49347", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "9534616", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 8 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 9 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 10 + } + ] + }, + "5": { + "bridge_additions": 666, + "controls_rejected": 6, + "formal_columns_checked": 883, + "fresh_center_copies": 45, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 100, + "payload_prefix_upper": "699147249763640764132165496832", + "reverse_fresh_center_copies": 18, + "signed_lift_prefix": [ + { + "bits": 16, + "cancellation_free_signed_row_l1_upper": "49347", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "9534616", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 4 + } + ] + }, + "9": { + "bridge_additions": 1998, + "controls_rejected": 18, + "formal_columns_checked": 1327, + "fresh_center_copies": 81, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 100, + "payload_prefix_upper": "699147249763640764132165496832", + "reverse_fresh_center_copies": 36, + "signed_lift_prefix": [ + { + "bits": 16, + "cancellation_free_signed_row_l1_upper": "49347", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "9534616", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 8 + } + ] + } + } + } + }, + "nine_stage_prefix_bound": { + "baseline": { + "admitted": true, + "bits": 177, + "bound": "117742596540718658156527847560864213734191286190080000" + }, + "candidate": { + "admitted": true, + "bits": 192, + "bound": "5488085212775758317051376589272999430811861761916709896192" + }, + "floor": { + "admitted": false, + "bits": 193, + "bound": "6932273484999365734971059944361293861657011673806929920000" + }, + "formula": "2^18 * F^5 * B^4", + "greedy": { + "admitted": true, + "bits": 192, + "bound": "6272385284143355252940491378432965655169900286360795742208" + }, + "parent": { + "admitted": true, + "bits": 189, + "bound": "633952218342189222305933054575935669674977721489175871488" + }, + "source_charge_bits": 192 + }, + "nomination_sha256": "cc74c21e757542d73ffb82b2a58a69a31dbfa4260916426f52dc998dbb527ca4", + "precision_constrained_ADD_interval": [ + 11948, + 11949 + ], + "predecessor_files": { + "vendor/pr817/README.md": "0f0ac2a905e30958d033c415304db9412947f7c6b30669b4f1d488aaddeb1c57", + "vendor/pr915/CERTIFICATE.json": "a9958d9a933b57dcb9f7e5cf8e9694c0762f055a1cdab9f8ab42b2c6561fc4d7", + "vendor/pr915/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/pr915/NOTICE.md": "efbb1d2b2c85cbdbb7b048e2b7405e0654dfa40ddf6a1e94f11df313bdedb638", + "vendor/pr915/PROOF.md": "ddb5c3affbef52fa37af13b291bf089ca16f9dfe976e5a5590188b128b262425", + "vendor/pr915/README.md": "0c606598a6366bc0e6840d853c28237f8e5fe5866d89765d79815f973224f1fd", + "vendor/pr915/candidate.json.gz": "ac30266144f8772ec8cd629153993aa9eb692fe745a9f95015a1b7fa88977a2e", + "vendor/pr926/CERTIFICATE.json": "3abb601be609f117361e17ce5ada5477d4493ee6aec9070c749089ec923e1848", + "vendor/pr926/EXPECTED.json": "17c580fbbd7a5e52f978d5ede778e8f34acf4a8cfb1e1eb3209bfaab3c8e7e9c", + "vendor/pr926/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/pr926/NOTICE.md": "9b5f63f17823a04b48c3e8065b4e32fe8ce1e861117cec11bd8c6f1376800d12", + "vendor/pr926/PROOF.md": "c664aca1a79e55efac4af1160008f9d5377b0ef4be8dba2630512f7be6baafd7", + "vendor/pr926/README.md": "88ae71c23df68050e036fdec201f356c5e0ffc10e4da3b561b04b0aa99464c7c", + "vendor/pr926/SOURCES.json": "6334cb185db0568919f5fcce85edaad1ceec1ffaf3e4ac08e6e9e819a8017eb1", + "vendor/pr926/candidate.json.gz": "6ac771545e823c054e005429c405dbb2c01ff80fce181b714e1af5e28b6b7cb2" + }, + "source_checks": { + "baseline": { + "conclusions": { + "C_is_U_inverse": true, + "J_identity": true, + "K_equals_D": true, + "U_block_form": true + }, + "full": { + "columns": 661, + "gates": { + "A": 2075, + "B": 712, + "C": 2574, + "D": 111 + }, + "scatter_terms": 527, + "totals": [ + { + "frame": 510, + "hyperplane_of_punctured_line": [ + 0, + 1, + 1, + 0, + -1, + 0, + 0, + 1 + ], + "rank": 7, + "register": 472 + }, + { + "frame": 511, + "hyperplane_of_punctured_line": [ + 0, + 1, + -1, + 0, + -1, + 0, + 0, + -1 + ], + "rank": 7, + "register": 473 + }, + { + "frame": 512, + "hyperplane_of_punctured_line": [ + 0, + 1, + 1, + 0, + 0, + -1, + -1, + 0 + ], + "rank": 7, + "register": 474 + }, + { + "frame": 513, + "hyperplane_of_punctured_line": [ + 0, + 1, + -1, + 0, + 0, + 1, + -1, + 0 + ], + "rank": 7, + "register": 475 + }, + { + "frame": 514, + "hyperplane_of_punctured_line": [ + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ], + "rank": 7, + "register": 476 + }, + { + "frame": 515, + "hyperplane_of_punctured_line": [ + 1, + 1, + -1, + 1, + 0, + 0, + 0, + 0 + ], + "rank": 7, + "register": 477 + }, + { + "frame": 516, + "hyperplane_of_punctured_line": [ + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1 + ], + "rank": 7, + "register": 478 + }, + { + "frame": 517, + "hyperplane_of_punctured_line": [ + 0, + 0, + 1, + 1, + 0, + 0, + 1, + -1 + ], + "rank": 7, + "register": 479 + }, + { + "frame": 518, + "hyperplane_of_punctured_line": [ + 0, + 1, + 0, + -1, + 0, + -1, + 0, + -1 + ], + "rank": 7, + "register": 480 + } + ] + }, + "hypotheses": { + "H1_no_target_feeds_z": true, + "H2_D_frame0_targets_from_helpers": true, + "H3_A_z_only_scatter_targets_B_split": true, + "H4_C_literal_reverse_at_full": true, + "H5_V_identity": true + }, + "info": { + "B_target_reads_of_registers_rewritten_earlier_in_B": 111, + "B_z_operand_kinds": { + "helper<-helper": 3, + "helper<-source": 13, + "source<-helper": 108, + "source<-source": 375 + }, + "B_z_operand_kinds_by_dim": { + "dim4:helper<-source": 13, + "dim4:source<-source": 375, + "dim6:helper<-helper": 3, + "dim6:source<-helper": 108 + }, + "B_z_write_frame_dims": { + "4": 388, + "6": 111 + }, + "B_z_writes_after_a_target_read_of_the_same_register": 454, + "cleanup_gates": 2574, + "helper_writes_B": 16, + "source_writes_A": 0, + "source_writes_B": 483, + "sources_rewritten_B": 108, + "target_reads_of_targets": 0, + "z_gates_A": 2075, + "z_gates_B": 499 + }, + "labels": { + "frames": 636, + "gram_det": 1, + "labels": 111, + "lattice_rank": 8, + "punctured": 9, + "root_lines": 120 + } + }, + "candidate": { + "conclusions": { + "C_is_U_inverse": true, + "J_identity": true, + "K_equals_D": false, + "U_block_form": true + }, + "full": { + "columns": 661, + "gates": { + "A": 2075, + "B": 712, + "C": 2574, + "D": 1121 + }, + "scatter_terms": 527, + "totals": [ + { + "frame": 510, + "hyperplane_of_punctured_line": [ + 0, + 1, + 1, + 0, + -1, + 0, + 0, + 1 + ], + "rank": 7, + "register": 472 + }, + { + "frame": 511, + "hyperplane_of_punctured_line": [ + 0, + 1, + -1, + 0, + -1, + 0, + 0, + -1 + ], + "rank": 7, + "register": 473 + }, + { + "frame": 512, + "hyperplane_of_punctured_line": [ + 0, + 1, + 1, + 0, + 0, + -1, + -1, + 0 + ], + "rank": 7, + "register": 474 + }, + { + "frame": 513, + "hyperplane_of_punctured_line": [ + 0, + 1, + -1, + 0, + 0, + 1, + -1, + 0 + ], + "rank": 7, + "register": 475 + }, + { + "frame": 514, + "hyperplane_of_punctured_line": [ + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ], + "rank": 7, + "register": 476 + }, + { + "frame": 515, + "hyperplane_of_punctured_line": [ + 1, + 1, + -1, + 1, + 0, + 0, + 0, + 0 + ], + "rank": 7, + "register": 477 + }, + { + "frame": 516, + "hyperplane_of_punctured_line": [ + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1 + ], + "rank": 7, + "register": 478 + }, + { + "frame": 517, + "hyperplane_of_punctured_line": [ + 0, + 0, + 1, + 1, + 0, + 0, + 1, + -1 + ], + "rank": 7, + "register": 479 + }, + { + "frame": 518, + "hyperplane_of_punctured_line": [ + 0, + 1, + 0, + -1, + 0, + -1, + 0, + -1 + ], + "rank": 7, + "register": 480 + } + ] + }, + "hypotheses": { + "H1_no_target_feeds_z": true, + "H2_D_frame0_targets_from_helpers": false, + "H3_A_z_only_scatter_targets_B_split": true, + "H4_C_literal_reverse_at_full": true, + "H5_V_identity": true + }, + "info": { + "B_target_reads_of_registers_rewritten_earlier_in_B": 111, + "B_z_operand_kinds": { + "helper<-helper": 3, + "helper<-source": 13, + "source<-helper": 108, + "source<-source": 375 + }, + "B_z_operand_kinds_by_dim": { + "dim4:helper<-source": 13, + "dim4:source<-source": 375, + "dim6:helper<-helper": 3, + "dim6:source<-helper": 108 + }, + "B_z_write_frame_dims": { + "4": 388, + "6": 111 + }, + "B_z_writes_after_a_target_read_of_the_same_register": 454, + "cleanup_gates": 2574, + "helper_writes_B": 16, + "source_writes_A": 0, + "source_writes_B": 483, + "sources_rewritten_B": 108, + "target_reads_of_targets": 0, + "z_gates_A": 2075, + "z_gates_B": 499 + }, + "labels": { + "frames": 636, + "gram_det": 1, + "labels": 111, + "lattice_rank": 8, + "punctured": 9, + "root_lines": 120 + } + }, + "floor": { + "conclusions": { + "C_is_U_inverse": true, + "J_identity": true, + "K_equals_D": false, + "U_block_form": true + }, + "full": { + "columns": 661, + "gates": { + "A": 2075, + "B": 712, + "C": 2574, + "D": 1121 + }, + "scatter_terms": 527, + "totals": [ + { + "frame": 510, + "hyperplane_of_punctured_line": [ + 0, + 1, + 1, + 0, + -1, + 0, + 0, + 1 + ], + "rank": 7, + "register": 472 + }, + { + "frame": 511, + "hyperplane_of_punctured_line": [ + 0, + 1, + -1, + 0, + -1, + 0, + 0, + -1 + ], + "rank": 7, + "register": 473 + }, + { + "frame": 512, + "hyperplane_of_punctured_line": [ + 0, + 1, + 1, + 0, + 0, + -1, + -1, + 0 + ], + "rank": 7, + "register": 474 + }, + { + "frame": 513, + "hyperplane_of_punctured_line": [ + 0, + 1, + -1, + 0, + 0, + 1, + -1, + 0 + ], + "rank": 7, + "register": 475 + }, + { + "frame": 514, + "hyperplane_of_punctured_line": [ + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ], + "rank": 7, + "register": 476 + }, + { + "frame": 515, + "hyperplane_of_punctured_line": [ + 1, + 1, + -1, + 1, + 0, + 0, + 0, + 0 + ], + "rank": 7, + "register": 477 + }, + { + "frame": 516, + "hyperplane_of_punctured_line": [ + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1 + ], + "rank": 7, + "register": 478 + }, + { + "frame": 517, + "hyperplane_of_punctured_line": [ + 0, + 0, + 1, + 1, + 0, + 0, + 1, + -1 + ], + "rank": 7, + "register": 479 + }, + { + "frame": 518, + "hyperplane_of_punctured_line": [ + 0, + 1, + 0, + -1, + 0, + -1, + 0, + -1 + ], + "rank": 7, + "register": 480 + } + ] + }, + "hypotheses": { + "H1_no_target_feeds_z": true, + "H2_D_frame0_targets_from_helpers": false, + "H3_A_z_only_scatter_targets_B_split": true, + "H4_C_literal_reverse_at_full": true, + "H5_V_identity": true + }, + "info": { + "B_target_reads_of_registers_rewritten_earlier_in_B": 111, + "B_z_operand_kinds": { + "helper<-helper": 3, + "helper<-source": 13, + "source<-helper": 108, + "source<-source": 375 + }, + "B_z_operand_kinds_by_dim": { + "dim4:helper<-source": 13, + "dim4:source<-source": 375, + "dim6:helper<-helper": 3, + "dim6:source<-helper": 108 + }, + "B_z_write_frame_dims": { + "4": 388, + "6": 111 + }, + "B_z_writes_after_a_target_read_of_the_same_register": 454, + "cleanup_gates": 2574, + "helper_writes_B": 16, + "source_writes_A": 0, + "source_writes_B": 483, + "sources_rewritten_B": 108, + "target_reads_of_targets": 0, + "z_gates_A": 2075, + "z_gates_B": 499 + }, + "labels": { + "frames": 636, + "gram_det": 1, + "labels": 111, + "lattice_rank": 8, + "punctured": 9, + "root_lines": 120 + } + }, + "greedy": { + "conclusions": { + "C_is_U_inverse": true, + "J_identity": true, + "K_equals_D": false, + "U_block_form": true + }, + "full": { + "columns": 661, + "gates": { + "A": 2075, + "B": 712, + "C": 2574, + "D": 1107 + }, + "scatter_terms": 527, + "totals": [ + { + "frame": 510, + "hyperplane_of_punctured_line": [ + 0, + 1, + 1, + 0, + -1, + 0, + 0, + 1 + ], + "rank": 7, + "register": 472 + }, + { + "frame": 511, + "hyperplane_of_punctured_line": [ + 0, + 1, + -1, + 0, + -1, + 0, + 0, + -1 + ], + "rank": 7, + "register": 473 + }, + { + "frame": 512, + "hyperplane_of_punctured_line": [ + 0, + 1, + 1, + 0, + 0, + -1, + -1, + 0 + ], + "rank": 7, + "register": 474 + }, + { + "frame": 513, + "hyperplane_of_punctured_line": [ + 0, + 1, + -1, + 0, + 0, + 1, + -1, + 0 + ], + "rank": 7, + "register": 475 + }, + { + "frame": 514, + "hyperplane_of_punctured_line": [ + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ], + "rank": 7, + "register": 476 + }, + { + "frame": 515, + "hyperplane_of_punctured_line": [ + 1, + 1, + -1, + 1, + 0, + 0, + 0, + 0 + ], + "rank": 7, + "register": 477 + }, + { + "frame": 516, + "hyperplane_of_punctured_line": [ + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1 + ], + "rank": 7, + "register": 478 + }, + { + "frame": 517, + "hyperplane_of_punctured_line": [ + 0, + 0, + 1, + 1, + 0, + 0, + 1, + -1 + ], + "rank": 7, + "register": 479 + }, + { + "frame": 518, + "hyperplane_of_punctured_line": [ + 0, + 1, + 0, + -1, + 0, + -1, + 0, + -1 + ], + "rank": 7, + "register": 480 + } + ] + }, + "hypotheses": { + "H1_no_target_feeds_z": true, + "H2_D_frame0_targets_from_helpers": false, + "H3_A_z_only_scatter_targets_B_split": true, + "H4_C_literal_reverse_at_full": true, + "H5_V_identity": true + }, + "info": { + "B_target_reads_of_registers_rewritten_earlier_in_B": 111, + "B_z_operand_kinds": { + "helper<-helper": 3, + "helper<-source": 13, + "source<-helper": 108, + "source<-source": 375 + }, + "B_z_operand_kinds_by_dim": { + "dim4:helper<-source": 13, + "dim4:source<-source": 375, + "dim6:helper<-helper": 3, + "dim6:source<-helper": 108 + }, + "B_z_write_frame_dims": { + "4": 388, + "6": 111 + }, + "B_z_writes_after_a_target_read_of_the_same_register": 454, + "cleanup_gates": 2574, + "helper_writes_B": 16, + "source_writes_A": 0, + "source_writes_B": 483, + "sources_rewritten_B": 108, + "target_reads_of_targets": 0, + "z_gates_A": 2075, + "z_gates_B": 499 + }, + "labels": { + "frames": 636, + "gram_det": 1, + "labels": 111, + "lattice_rank": 8, + "punctured": 9, + "root_lines": 120 + } + }, + "parent": { + "conclusions": { + "C_is_U_inverse": true, + "J_identity": true, + "K_equals_D": false, + "U_block_form": true + }, + "full": { + "columns": 661, + "gates": { + "A": 2075, + "B": 712, + "C": 2574, + "D": 723 + }, + "scatter_terms": 527, + "totals": [ + { + "frame": 510, + "hyperplane_of_punctured_line": [ + 0, + 1, + 1, + 0, + -1, + 0, + 0, + 1 + ], + "rank": 7, + "register": 472 + }, + { + "frame": 511, + "hyperplane_of_punctured_line": [ + 0, + 1, + -1, + 0, + -1, + 0, + 0, + -1 + ], + "rank": 7, + "register": 473 + }, + { + "frame": 512, + "hyperplane_of_punctured_line": [ + 0, + 1, + 1, + 0, + 0, + -1, + -1, + 0 + ], + "rank": 7, + "register": 474 + }, + { + "frame": 513, + "hyperplane_of_punctured_line": [ + 0, + 1, + -1, + 0, + 0, + 1, + -1, + 0 + ], + "rank": 7, + "register": 475 + }, + { + "frame": 514, + "hyperplane_of_punctured_line": [ + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ], + "rank": 7, + "register": 476 + }, + { + "frame": 515, + "hyperplane_of_punctured_line": [ + 1, + 1, + -1, + 1, + 0, + 0, + 0, + 0 + ], + "rank": 7, + "register": 477 + }, + { + "frame": 516, + "hyperplane_of_punctured_line": [ + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1 + ], + "rank": 7, + "register": 478 + }, + { + "frame": 517, + "hyperplane_of_punctured_line": [ + 0, + 0, + 1, + 1, + 0, + 0, + 1, + -1 + ], + "rank": 7, + "register": 479 + }, + { + "frame": 518, + "hyperplane_of_punctured_line": [ + 0, + 1, + 0, + -1, + 0, + -1, + 0, + -1 + ], + "rank": 7, + "register": 480 + } + ] + }, + "hypotheses": { + "H1_no_target_feeds_z": true, + "H2_D_frame0_targets_from_helpers": false, + "H3_A_z_only_scatter_targets_B_split": true, + "H4_C_literal_reverse_at_full": true, + "H5_V_identity": true + }, + "info": { + "B_target_reads_of_registers_rewritten_earlier_in_B": 111, + "B_z_operand_kinds": { + "helper<-helper": 3, + "helper<-source": 13, + "source<-helper": 108, + "source<-source": 375 + }, + "B_z_operand_kinds_by_dim": { + "dim4:helper<-source": 13, + "dim4:source<-source": 375, + "dim6:helper<-helper": 3, + "dim6:source<-helper": 108 + }, + "B_z_write_frame_dims": { + "4": 388, + "6": 111 + }, + "B_z_writes_after_a_target_read_of_the_same_register": 454, + "cleanup_gates": 2574, + "helper_writes_B": 16, + "source_writes_A": 0, + "source_writes_B": 483, + "sources_rewritten_B": 108, + "target_reads_of_targets": 0, + "z_gates_A": 2075, + "z_gates_B": 499 + }, + "labels": { + "frames": 636, + "gram_det": 1, + "labels": 111, + "lattice_rank": 8, + "punctured": 9, + "root_lines": 120 + } + } + }, + "source_files": { + "research/e8-bit-carrier-skeleton/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "research/e8-bit-carrier-skeleton/NOTICE.md": "5f4b7fcbf99f572be28b6da612ce775363908cdfc7810f7aca167be01c86e49a", + "research/e8-bit-carrier-skeleton/code/bit/checkers/columns_k.cpp": "1c344d18fcd494eeca93e259f10cafae7705780e6592f6dcb35b34752dab9bc2", + "research/e8-bit-carrier-skeleton/code/bit/checkers/json.hpp": "aaf127c04cb31c406e5b04a63f1ae89369fccde6d8fa7cdda1ed4f32dfc5de63", + "research/e8-bit-carrier-skeleton/code/bit/checkers/legality_h.cpp": "6c1ef2b24e57781d6951c172a1024fc4300e6fd392c9d6672079a7806ab663b3", + "research/e8-bit-carrier-skeleton/code/bit/export_records.py": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3", + "research/e8-bit-carrier-skeleton/code/bit/regression/stage_cohort.py": "6c288f6f234b528c1a7c0a4adfb724e91e0fe6b18c8dffad96af3f973de1829a", + "research/e8-bit-carrier-skeleton/portable-include/bits/stdc++.h": "420094be2af295eed03a983dd66debbbe9cfb78d8252859f4498a615a0074b99", + "research/e8-bit-p111-tuned/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "research/e8-bit-p111-tuned/NOTICE.md": "5b88eb2b7de76aa2a3288ee3c7a08d18a5eadfa82f5e7a99e207d232aed71221", + "research/e8-bit-p111-tuned/code/xcheck_p.py": "af3decc877e27c00001cf56f50c6c09566e8e101297ab34c7860aed96a06d80e", + "research/e8-bit-p111-tuned/tune/EXPECTED.json": "b9f0e5ca038abe837b0007c8fe006f366a6f02009244ac57705a8a200e2301f4", + "research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f", + "research/e8-bit-p111-tuned/vendor/pr510/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/global_k.py": "6368196a393ac25bb2918880e4c4bd31ed733b762c27b6873ab391cbc0c5c3c8" + }, + "status": "PASS_R439_HELPER_MATCHING" +} diff --git a/research/r439-helper-matching/LICENSE b/research/r439-helper-matching/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/r439-helper-matching/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/research/r439-helper-matching/NOMINATION.json b/research/r439-helper-matching/NOMINATION.json new file mode 100644 index 0000000000..a4c4a240c1 --- /dev/null +++ b/research/r439-helper-matching/NOMINATION.json @@ -0,0 +1,10910 @@ +{ + "lexicographic_multiplier": 24250, + "networkx": "3.6.1", + "networkx_matching_source_sha256": "41930910962d79c5da2da89788ead7819730daccb2858d72df3df7c55d893ee1", + "nominations": [ + { + "ADDs": 11948, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1260, + "nine_bits": 193, + "pairs": [ + [ + 3, + 106 + ], + [ + 8, + 231 + ], + [ + 9, + 237 + ], + [ + 11, + 20 + ], + [ + 12, + 30 + ], + [ + 14, + 235 + ], + [ + 16, + 26 + ], + [ + 18, + 1 + ], + [ + 22, + 233 + ], + [ + 25, + 21 + ], + [ + 27, + 17 + ], + [ + 31, + 7 + ], + [ + 33, + 206 + ], + [ + 40, + 193 + ], + [ + 41, + 192 + ], + [ + 42, + 314 + ], + [ + 44, + 197 + ], + [ + 46, + 56 + ], + [ + 52, + 62 + ], + [ + 53, + 219 + ], + [ + 54, + 217 + ], + [ + 57, + 47 + ], + [ + 58, + 38 + ], + [ + 59, + 39 + ], + [ + 60, + 213 + ], + [ + 63, + 214 + ], + [ + 64, + 87 + ], + [ + 67, + 176 + ], + [ + 72, + 68 + ], + [ + 78, + 188 + ], + [ + 79, + 189 + ], + [ + 80, + 74 + ], + [ + 81, + 100 + ], + [ + 83, + 172 + ], + [ + 84, + 160 + ], + [ + 85, + 170 + ], + [ + 86, + 181 + ], + [ + 91, + 70 + ], + [ + 92, + 180 + ], + [ + 93, + 43 + ], + [ + 94, + 171 + ], + [ + 101, + 144 + ], + [ + 102, + 132 + ], + [ + 104, + 308 + ], + [ + 108, + 148 + ], + [ + 109, + 107 + ], + [ + 110, + 120 + ], + [ + 112, + 124 + ], + [ + 113, + 142 + ], + [ + 115, + 151 + ], + [ + 116, + 157 + ], + [ + 117, + 121 + ], + [ + 122, + 103 + ], + [ + 123, + 158 + ], + [ + 125, + 146 + ], + [ + 129, + 155 + ], + [ + 131, + 149 + ], + [ + 134, + 98 + ], + [ + 139, + 99 + ], + [ + 140, + 111 + ], + [ + 141, + 156 + ], + [ + 154, + 105 + ], + [ + 161, + 186 + ], + [ + 166, + 69 + ], + [ + 167, + 82 + ], + [ + 168, + 61 + ], + [ + 169, + 191 + ], + [ + 173, + 89 + ], + [ + 174, + 77 + ], + [ + 175, + 185 + ], + [ + 177, + 66 + ], + [ + 178, + 75 + ], + [ + 182, + 73 + ], + [ + 183, + 179 + ], + [ + 187, + 95 + ], + [ + 190, + 71 + ], + [ + 195, + 201 + ], + [ + 196, + 32 + ], + [ + 198, + 24 + ], + [ + 199, + 50 + ], + [ + 202, + 37 + ], + [ + 203, + 36 + ], + [ + 204, + 119 + ], + [ + 205, + 221 + ], + [ + 207, + 268 + ], + [ + 208, + 35 + ], + [ + 209, + 51 + ], + [ + 211, + 143 + ], + [ + 212, + 55 + ], + [ + 216, + 45 + ], + [ + 220, + 34 + ], + [ + 222, + 253 + ], + [ + 223, + 49 + ], + [ + 225, + 4 + ], + [ + 226, + 238 + ], + [ + 227, + 28 + ], + [ + 228, + 29 + ], + [ + 229, + 239 + ], + [ + 230, + 2 + ], + [ + 232, + 23 + ], + [ + 234, + 15 + ], + [ + 236, + 5 + ], + [ + 240, + 251 + ], + [ + 247, + 257 + ], + [ + 248, + 246 + ], + [ + 249, + 130 + ], + [ + 252, + 287 + ], + [ + 256, + 242 + ], + [ + 258, + 245 + ], + [ + 259, + 10 + ], + [ + 260, + 281 + ], + [ + 263, + 264 + ], + [ + 265, + 270 + ], + [ + 266, + 96 + ], + [ + 267, + 6 + ], + [ + 269, + 88 + ], + [ + 271, + 128 + ], + [ + 273, + 126 + ], + [ + 274, + 114 + ], + [ + 275, + 127 + ], + [ + 277, + 262 + ], + [ + 280, + 261 + ], + [ + 282, + 0 + ], + [ + 283, + 224 + ], + [ + 284, + 152 + ], + [ + 285, + 133 + ], + [ + 286, + 135 + ], + [ + 288, + 153 + ], + [ + 290, + 76 + ], + [ + 292, + 145 + ], + [ + 293, + 347 + ], + [ + 294, + 276 + ], + [ + 296, + 332 + ], + [ + 298, + 415 + ], + [ + 300, + 331 + ], + [ + 304, + 321 + ], + [ + 305, + 341 + ], + [ + 307, + 19 + ], + [ + 309, + 346 + ], + [ + 312, + 348 + ], + [ + 315, + 351 + ], + [ + 318, + 349 + ], + [ + 319, + 360 + ], + [ + 320, + 162 + ], + [ + 322, + 90 + ], + [ + 323, + 359 + ], + [ + 327, + 364 + ], + [ + 330, + 361 + ], + [ + 333, + 297 + ], + [ + 335, + 200 + ], + [ + 336, + 295 + ], + [ + 337, + 306 + ], + [ + 338, + 302 + ], + [ + 339, + 303 + ], + [ + 343, + 118 + ], + [ + 345, + 310 + ], + [ + 352, + 316 + ], + [ + 353, + 317 + ], + [ + 354, + 313 + ], + [ + 355, + 324 + ], + [ + 356, + 163 + ], + [ + 362, + 329 + ], + [ + 365, + 326 + ], + [ + 366, + 325 + ], + [ + 368, + 425 + ], + [ + 369, + 424 + ], + [ + 370, + 423 + ], + [ + 371, + 409 + ], + [ + 372, + 421 + ], + [ + 373, + 438 + ], + [ + 375, + 435 + ], + [ + 376, + 436 + ], + [ + 377, + 437 + ], + [ + 378, + 433 + ], + [ + 382, + 430 + ], + [ + 384, + 427 + ], + [ + 386, + 407 + ], + [ + 387, + 406 + ], + [ + 390, + 403 + ], + [ + 391, + 420 + ], + [ + 392, + 416 + ], + [ + 393, + 417 + ], + [ + 395, + 419 + ], + [ + 396, + 137 + ], + [ + 397, + 414 + ], + [ + 400, + 412 + ], + [ + 401, + 413 + ], + [ + 404, + 389 + ], + [ + 405, + 159 + ], + [ + 408, + 385 + ], + [ + 410, + 398 + ], + [ + 411, + 399 + ], + [ + 418, + 394 + ], + [ + 422, + 402 + ], + [ + 426, + 367 + ], + [ + 428, + 380 + ], + [ + 429, + 381 + ], + [ + 432, + 379 + ], + [ + 434, + 374 + ] + ], + "payload_bits": 102, + "variant": "lexicographic" + }, + { + "ADDs": 11948, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1260, + "nine_bits": 193, + "pairs": [ + [ + 3, + 106 + ], + [ + 8, + 231 + ], + [ + 9, + 237 + ], + [ + 11, + 20 + ], + [ + 12, + 30 + ], + [ + 14, + 235 + ], + [ + 16, + 26 + ], + [ + 18, + 1 + ], + [ + 22, + 233 + ], + [ + 25, + 21 + ], + [ + 27, + 17 + ], + [ + 31, + 7 + ], + [ + 33, + 206 + ], + [ + 40, + 193 + ], + [ + 41, + 192 + ], + [ + 42, + 314 + ], + [ + 44, + 197 + ], + [ + 46, + 56 + ], + [ + 52, + 62 + ], + [ + 53, + 219 + ], + [ + 54, + 217 + ], + [ + 57, + 47 + ], + [ + 58, + 38 + ], + [ + 59, + 39 + ], + [ + 60, + 213 + ], + [ + 63, + 214 + ], + [ + 64, + 87 + ], + [ + 72, + 68 + ], + [ + 79, + 189 + ], + [ + 80, + 74 + ], + [ + 81, + 100 + ], + [ + 83, + 172 + ], + [ + 84, + 160 + ], + [ + 85, + 170 + ], + [ + 86, + 181 + ], + [ + 88, + 78 + ], + [ + 91, + 70 + ], + [ + 92, + 180 + ], + [ + 93, + 43 + ], + [ + 94, + 171 + ], + [ + 101, + 144 + ], + [ + 102, + 132 + ], + [ + 104, + 308 + ], + [ + 108, + 148 + ], + [ + 109, + 107 + ], + [ + 110, + 120 + ], + [ + 112, + 124 + ], + [ + 113, + 142 + ], + [ + 115, + 151 + ], + [ + 116, + 157 + ], + [ + 117, + 121 + ], + [ + 122, + 103 + ], + [ + 123, + 158 + ], + [ + 125, + 146 + ], + [ + 129, + 155 + ], + [ + 134, + 98 + ], + [ + 139, + 99 + ], + [ + 140, + 111 + ], + [ + 141, + 156 + ], + [ + 149, + 131 + ], + [ + 154, + 105 + ], + [ + 161, + 186 + ], + [ + 166, + 69 + ], + [ + 167, + 82 + ], + [ + 168, + 61 + ], + [ + 169, + 191 + ], + [ + 173, + 89 + ], + [ + 174, + 77 + ], + [ + 175, + 185 + ], + [ + 176, + 67 + ], + [ + 177, + 66 + ], + [ + 178, + 75 + ], + [ + 182, + 73 + ], + [ + 183, + 179 + ], + [ + 187, + 95 + ], + [ + 190, + 71 + ], + [ + 195, + 201 + ], + [ + 196, + 32 + ], + [ + 198, + 24 + ], + [ + 199, + 50 + ], + [ + 202, + 37 + ], + [ + 203, + 36 + ], + [ + 204, + 119 + ], + [ + 205, + 221 + ], + [ + 207, + 268 + ], + [ + 208, + 35 + ], + [ + 209, + 51 + ], + [ + 211, + 143 + ], + [ + 212, + 55 + ], + [ + 216, + 45 + ], + [ + 220, + 34 + ], + [ + 222, + 248 + ], + [ + 223, + 49 + ], + [ + 225, + 4 + ], + [ + 226, + 238 + ], + [ + 227, + 28 + ], + [ + 228, + 29 + ], + [ + 230, + 2 + ], + [ + 232, + 23 + ], + [ + 234, + 15 + ], + [ + 236, + 5 + ], + [ + 239, + 229 + ], + [ + 240, + 251 + ], + [ + 249, + 130 + ], + [ + 252, + 287 + ], + [ + 253, + 246 + ], + [ + 256, + 242 + ], + [ + 257, + 247 + ], + [ + 258, + 245 + ], + [ + 259, + 10 + ], + [ + 263, + 264 + ], + [ + 265, + 270 + ], + [ + 266, + 96 + ], + [ + 267, + 6 + ], + [ + 271, + 128 + ], + [ + 273, + 126 + ], + [ + 274, + 114 + ], + [ + 275, + 127 + ], + [ + 277, + 262 + ], + [ + 280, + 261 + ], + [ + 281, + 260 + ], + [ + 282, + 0 + ], + [ + 283, + 224 + ], + [ + 284, + 152 + ], + [ + 285, + 133 + ], + [ + 286, + 150 + ], + [ + 288, + 153 + ], + [ + 290, + 76 + ], + [ + 291, + 19 + ], + [ + 292, + 145 + ], + [ + 293, + 347 + ], + [ + 294, + 276 + ], + [ + 296, + 332 + ], + [ + 298, + 334 + ], + [ + 300, + 331 + ], + [ + 304, + 321 + ], + [ + 305, + 341 + ], + [ + 309, + 346 + ], + [ + 311, + 188 + ], + [ + 312, + 348 + ], + [ + 318, + 349 + ], + [ + 319, + 360 + ], + [ + 320, + 162 + ], + [ + 322, + 90 + ], + [ + 323, + 359 + ], + [ + 330, + 361 + ], + [ + 333, + 297 + ], + [ + 335, + 200 + ], + [ + 336, + 295 + ], + [ + 337, + 306 + ], + [ + 338, + 302 + ], + [ + 339, + 303 + ], + [ + 343, + 398 + ], + [ + 345, + 310 + ], + [ + 351, + 315 + ], + [ + 352, + 316 + ], + [ + 353, + 317 + ], + [ + 354, + 313 + ], + [ + 355, + 324 + ], + [ + 356, + 163 + ], + [ + 362, + 329 + ], + [ + 364, + 327 + ], + [ + 365, + 326 + ], + [ + 366, + 325 + ], + [ + 368, + 425 + ], + [ + 370, + 423 + ], + [ + 371, + 409 + ], + [ + 372, + 421 + ], + [ + 375, + 435 + ], + [ + 376, + 436 + ], + [ + 377, + 437 + ], + [ + 378, + 433 + ], + [ + 382, + 430 + ], + [ + 384, + 427 + ], + [ + 386, + 407 + ], + [ + 390, + 403 + ], + [ + 391, + 420 + ], + [ + 392, + 416 + ], + [ + 396, + 415 + ], + [ + 397, + 414 + ], + [ + 400, + 412 + ], + [ + 401, + 413 + ], + [ + 404, + 389 + ], + [ + 405, + 159 + ], + [ + 406, + 387 + ], + [ + 408, + 385 + ], + [ + 410, + 118 + ], + [ + 411, + 399 + ], + [ + 417, + 393 + ], + [ + 418, + 394 + ], + [ + 419, + 395 + ], + [ + 422, + 402 + ], + [ + 424, + 369 + ], + [ + 426, + 367 + ], + [ + 428, + 380 + ], + [ + 429, + 381 + ], + [ + 432, + 379 + ], + [ + 434, + 374 + ], + [ + 438, + 373 + ] + ], + "payload_bits": 102, + "variant": "seed4" + }, + { + "ADDs": 11948, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1260, + "nine_bits": 193, + "pairs": [ + [ + 9, + 237 + ], + [ + 11, + 20 + ], + [ + 12, + 30 + ], + [ + 14, + 235 + ], + [ + 16, + 26 + ], + [ + 18, + 1 + ], + [ + 22, + 233 + ], + [ + 25, + 21 + ], + [ + 27, + 17 + ], + [ + 31, + 7 + ], + [ + 33, + 206 + ], + [ + 40, + 193 + ], + [ + 41, + 192 + ], + [ + 44, + 197 + ], + [ + 46, + 56 + ], + [ + 52, + 62 + ], + [ + 53, + 219 + ], + [ + 54, + 217 + ], + [ + 57, + 47 + ], + [ + 58, + 38 + ], + [ + 59, + 39 + ], + [ + 60, + 213 + ], + [ + 63, + 214 + ], + [ + 64, + 87 + ], + [ + 67, + 176 + ], + [ + 72, + 68 + ], + [ + 79, + 189 + ], + [ + 80, + 74 + ], + [ + 83, + 172 + ], + [ + 84, + 160 + ], + [ + 85, + 170 + ], + [ + 86, + 181 + ], + [ + 91, + 70 + ], + [ + 92, + 180 + ], + [ + 93, + 43 + ], + [ + 94, + 171 + ], + [ + 101, + 144 + ], + [ + 102, + 132 + ], + [ + 104, + 308 + ], + [ + 108, + 148 + ], + [ + 109, + 107 + ], + [ + 110, + 120 + ], + [ + 112, + 124 + ], + [ + 113, + 142 + ], + [ + 115, + 151 + ], + [ + 116, + 157 + ], + [ + 117, + 121 + ], + [ + 122, + 103 + ], + [ + 123, + 158 + ], + [ + 125, + 146 + ], + [ + 129, + 155 + ], + [ + 131, + 149 + ], + [ + 134, + 98 + ], + [ + 139, + 99 + ], + [ + 140, + 111 + ], + [ + 141, + 156 + ], + [ + 154, + 105 + ], + [ + 161, + 186 + ], + [ + 166, + 69 + ], + [ + 167, + 82 + ], + [ + 168, + 61 + ], + [ + 169, + 191 + ], + [ + 173, + 89 + ], + [ + 174, + 77 + ], + [ + 175, + 185 + ], + [ + 177, + 66 + ], + [ + 178, + 75 + ], + [ + 182, + 73 + ], + [ + 183, + 179 + ], + [ + 187, + 95 + ], + [ + 188, + 78 + ], + [ + 190, + 71 + ], + [ + 195, + 201 + ], + [ + 196, + 32 + ], + [ + 198, + 24 + ], + [ + 199, + 50 + ], + [ + 202, + 37 + ], + [ + 203, + 36 + ], + [ + 204, + 119 + ], + [ + 205, + 221 + ], + [ + 207, + 268 + ], + [ + 208, + 35 + ], + [ + 209, + 51 + ], + [ + 211, + 143 + ], + [ + 212, + 55 + ], + [ + 216, + 45 + ], + [ + 220, + 34 + ], + [ + 222, + 248 + ], + [ + 223, + 49 + ], + [ + 225, + 4 + ], + [ + 226, + 238 + ], + [ + 227, + 28 + ], + [ + 228, + 29 + ], + [ + 229, + 239 + ], + [ + 230, + 2 + ], + [ + 231, + 3 + ], + [ + 232, + 23 + ], + [ + 234, + 15 + ], + [ + 236, + 5 + ], + [ + 240, + 251 + ], + [ + 247, + 257 + ], + [ + 249, + 130 + ], + [ + 250, + 318 + ], + [ + 252, + 287 + ], + [ + 253, + 246 + ], + [ + 254, + 100 + ], + [ + 256, + 242 + ], + [ + 258, + 245 + ], + [ + 259, + 10 + ], + [ + 260, + 281 + ], + [ + 263, + 264 + ], + [ + 265, + 270 + ], + [ + 266, + 96 + ], + [ + 267, + 6 + ], + [ + 269, + 88 + ], + [ + 271, + 128 + ], + [ + 273, + 126 + ], + [ + 274, + 114 + ], + [ + 275, + 127 + ], + [ + 277, + 262 + ], + [ + 280, + 261 + ], + [ + 282, + 0 + ], + [ + 283, + 224 + ], + [ + 284, + 152 + ], + [ + 285, + 133 + ], + [ + 286, + 135 + ], + [ + 288, + 153 + ], + [ + 290, + 76 + ], + [ + 292, + 145 + ], + [ + 293, + 347 + ], + [ + 294, + 276 + ], + [ + 296, + 332 + ], + [ + 298, + 415 + ], + [ + 300, + 331 + ], + [ + 303, + 65 + ], + [ + 304, + 321 + ], + [ + 305, + 341 + ], + [ + 307, + 19 + ], + [ + 309, + 346 + ], + [ + 312, + 348 + ], + [ + 314, + 42 + ], + [ + 315, + 351 + ], + [ + 319, + 360 + ], + [ + 320, + 162 + ], + [ + 322, + 90 + ], + [ + 323, + 106 + ], + [ + 327, + 364 + ], + [ + 330, + 361 + ], + [ + 333, + 297 + ], + [ + 335, + 200 + ], + [ + 336, + 295 + ], + [ + 337, + 306 + ], + [ + 338, + 302 + ], + [ + 343, + 398 + ], + [ + 344, + 313 + ], + [ + 345, + 310 + ], + [ + 352, + 316 + ], + [ + 353, + 317 + ], + [ + 354, + 349 + ], + [ + 355, + 324 + ], + [ + 356, + 163 + ], + [ + 359, + 81 + ], + [ + 362, + 329 + ], + [ + 365, + 326 + ], + [ + 366, + 325 + ], + [ + 368, + 425 + ], + [ + 369, + 424 + ], + [ + 370, + 423 + ], + [ + 371, + 409 + ], + [ + 372, + 421 + ], + [ + 373, + 438 + ], + [ + 375, + 435 + ], + [ + 376, + 436 + ], + [ + 377, + 437 + ], + [ + 378, + 433 + ], + [ + 382, + 430 + ], + [ + 384, + 427 + ], + [ + 386, + 407 + ], + [ + 387, + 406 + ], + [ + 390, + 403 + ], + [ + 391, + 420 + ], + [ + 392, + 416 + ], + [ + 393, + 417 + ], + [ + 395, + 419 + ], + [ + 396, + 137 + ], + [ + 397, + 414 + ], + [ + 400, + 412 + ], + [ + 401, + 413 + ], + [ + 404, + 389 + ], + [ + 405, + 159 + ], + [ + 408, + 385 + ], + [ + 410, + 118 + ], + [ + 411, + 399 + ], + [ + 418, + 394 + ], + [ + 422, + 402 + ], + [ + 426, + 367 + ], + [ + 428, + 150 + ], + [ + 429, + 381 + ], + [ + 432, + 379 + ], + [ + 434, + 374 + ] + ], + "payload_bits": 102, + "variant": "forward_proxy" + } + ], + "positive_edges": 1885, + "primary_dual": { + "odd_sets": [ + { + "price_2": 8, + "vertices": [ + 371, + 409, + 422 + ] + }, + { + "price_2": 8, + "vertices": [ + 96, + 118, + 266 + ] + }, + { + "price_2": 2, + "vertices": [ + 300, + 331, + 430 + ] + }, + { + "price_2": 6, + "vertices": [ + 73, + 182, + 186 + ] + }, + { + "price_2": 6, + "vertices": [ + 78, + 88, + 188 + ] + }, + { + "price_2": 4, + "vertices": [ + 94, + 171, + 183 + ] + }, + { + "price_2": 4, + "vertices": [ + 316, + 371, + 402, + 409, + 422 + ] + }, + { + "price_2": 8, + "vertices": [ + 101, + 144, + 272 + ] + }, + { + "price_2": 4, + "vertices": [ + 70, + 81, + 91 + ] + }, + { + "price_2": 6, + "vertices": [ + 307, + 401, + 413 + ] + }, + { + "price_2": 4, + "vertices": [ + 1, + 18, + 52, + 62, + 215 + ] + }, + { + "price_2": 2, + "vertices": [ + 34, + 51, + 204, + 209, + 220 + ] + }, + { + "price_2": 2, + "vertices": [ + 78, + 83, + 88, + 172, + 188 + ] + }, + { + "price_2": 4, + "vertices": [ + 339, + 372, + 421 + ] + }, + { + "price_2": 2, + "vertices": [ + 317, + 385, + 408 + ] + }, + { + "price_2": 2, + "vertices": [ + 181, + 400, + 412 + ] + }, + { + "price_2": 4, + "vertices": [ + 195, + 201, + 211 + ] + }, + { + "price_2": 2, + "vertices": [ + 1, + 18, + 36, + 52, + 62, + 203, + 215 + ] + }, + { + "price_2": 2, + "vertices": [ + 64, + 87, + 164 + ] + } + ], + "vertex_prices_2": [ + 6, + 6, + 6, + 4, + 5, + 9, + 1, + 13, + 0, + 12, + 0, + 3, + 10, + 0, + 7, + 11, + 11, + 7, + 6, + 2, + 5, + 8, + 6, + 8, + 4, + 8, + 11, + 7, + 8, + 5, + 10, + 13, + 13, + 5, + 6, + 11, + 8, + 13, + 19, + 19, + 8, + 11, + 10, + 3, + 6, + 6, + 12, + 4, + 0, + 6, + 10, + 6, + 10, + 6, + 9, + 11, + 6, + 6, + 19, + 1, + 4, + 3, + 18, + 11, + 10, + 0, + 7, + 6, + 12, + 13, + 8, + 4, + 12, + 9, + 8, + 6, + 2, + 5, + 2, + 14, + 8, + 2, + 9, + 12, + 13, + 5, + 1, + 4, + 2, + 5, + 5, + 4, + 7, + 1, + 5, + 1, + 8, + 0, + 14, + 9, + 4, + 4, + 7, + 12, + 5, + 8, + 2, + 8, + 4, + 0, + 8, + 5, + 8, + 12, + 13, + 10, + 3, + 1, + 4, + 8, + 8, + 1, + 6, + 15, + 8, + 9, + 12, + 2, + 3, + 19, + 2, + 18, + 7, + 16, + 12, + 0, + 0, + 0, + 0, + 9, + 5, + 4, + 12, + 10, + 12, + 5, + 9, + 0, + 2, + 10, + 0, + 10, + 13, + 4, + 8, + 19, + 4, + 3, + 15, + 1, + 13, + 3, + 4, + 1, + 0, + 0, + 1, + 7, + 3, + 11, + 11, + 9, + 2, + 7, + 5, + 3, + 6, + 7, + 6, + 5, + 7, + 1, + 5, + 3, + 0, + 1, + 3, + 3, + 2, + 14, + 4, + 11, + 11, + 8, + 0, + 12, + 13, + 8, + 4, + 10, + 4, + 2, + 13, + 10, + 2, + 6, + 5, + 2, + 11, + 12, + 0, + 2, + 11, + 4, + 11, + 0, + 6, + 9, + 0, + 6, + 6, + 6, + 2, + 6, + 5, + 5, + 5, + 8, + 3, + 15, + 6, + 6, + 8, + 6, + 11, + 7, + 11, + 12, + 5, + 15, + 2, + 0, + 3, + 0, + 0, + 4, + 2, + 4, + 2, + 2, + 0, + 6, + 4, + 2, + 0, + 0, + 3, + 4, + 10, + 2, + 8, + 2, + 2, + 1, + 1, + 5, + 8, + 1, + 2, + 0, + 7, + 3, + 0, + 12, + 11, + 2, + 3, + 2, + 0, + 0, + 2, + 8, + 6, + 5, + 13, + 6, + 2, + 4, + 2, + 0, + 4, + 0, + 3, + 5, + 3, + 8, + 12, + 4, + 4, + 0, + 5, + 0, + 3, + 2, + 3, + 9, + 7, + 0, + 5, + 10, + 6, + 0, + 1, + 4, + 8, + 8, + 4, + 1, + 2, + 1, + 4, + 3, + 5, + 2, + 3, + 1, + 1, + 9, + 0, + 2, + 4, + 5, + 12, + 4, + 0, + 2, + 8, + 7, + 3, + 0, + 0, + 1, + 0, + 2, + 0, + 6, + 10, + 5, + 1, + 4, + 0, + 8, + 2, + 1, + 2, + 3, + 1, + 0, + 0, + 2, + 1, + 8, + 2, + 0, + 9, + 5, + 1, + 6, + 2, + 7, + 5, + 4, + 6, + 1, + 14, + 7, + 5, + 10, + 5, + 6, + 0, + 9, + 5, + 0, + 4, + 5, + 5, + 1, + 0, + 7, + 11, + 7, + 8, + 6, + 2, + 7, + 4, + 4, + 8, + 2, + 5, + 2, + 4, + 11, + 7, + 1, + 1, + 5, + 5, + 4, + 2, + 2, + 1, + 0, + 4, + 8, + 8, + 6, + 2, + 7, + 7, + 2, + 2, + 5, + 3, + 2, + 6, + 4, + 2, + 9, + 5, + 0, + 6, + 5, + 14, + 7, + 5, + 10, + 1 + ] + }, + "proxy_cost": [ + 14, + 0, + 0, + 66, + 198, + 0, + 14, + 4, + 66, + 0, + 14, + 0, + 22, + 4, + 198, + 12, + 594, + 0, + 0, + 22, + 0, + 66, + 174, + 0, + 22, + 66, + 594, + 0, + 0, + 168, + 0, + 4, + 594, + 12, + 48, + 0, + 0, + 48, + 12, + 30, + 24, + 0, + 198, + 30, + 48, + 66, + 34, + 44, + 16, + 198, + 0, + 24, + 0, + 0, + 90, + 594, + 34, + 0, + 0, + 16, + 30, + 36, + 0, + 24, + 22, + 66, + 0, + 1584, + 66, + 57, + 44, + 42, + 66, + 64, + 0, + 14, + 6, + 22, + 238, + 48, + 0, + 4, + 8, + 34, + 16, + 112, + 0, + 0, + 68, + 408, + 66, + 48, + 42, + 0, + 0, + 84, + 34, + 8, + 16, + 12, + 48, + 198, + 0, + 16, + 4, + 90, + 34, + 0, + 0, + 6, + 198, + 0, + 8, + 0, + 48, + 30, + 12, + 0, + 34, + 0, + 198, + 4, + 8, + 0, + 16, + 0, + 44, + 198, + 48, + 198, + 0, + 16, + 0, + 8, + 30, + 22, + 0, + 16, + 4, + 12, + 0, + 48, + 6, + 8, + 198, + 4, + 0, + 8, + 34, + 16, + 22, + 16, + 0, + 0, + 90, + 198, + 90, + 12, + 34, + 0, + 16, + 56, + 0, + 66, + 22, + 14, + 420, + 8, + 198, + 66, + 112, + 220, + 34, + 408, + 22, + 12, + 1584, + 28, + 14, + 66, + 66, + 18, + 64, + 110, + 66, + 12, + 72, + 12, + 0, + 48, + 42, + 66, + 102, + 24, + 198, + 4, + 594, + 90, + 44, + 34, + 36, + 0, + 48, + 0, + 24, + 0, + 12, + 36, + 0, + 24, + 12, + 4, + 594, + 30, + 24, + 0, + 60, + 48, + 48, + 102, + 48, + 0, + 0, + 198, + 12, + 42, + 124, + 0, + 128, + 98, + 0, + 0, + 0, + 226, + 12, + 42, + 0, + 0, + 240, + 98, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 14, + 0, + 0, + 22, + 4, + 0, + 0, + 0, + 8, + 0, + 0, + 0, + 16, + 0, + 44, + 44, + 198, + 30, + 14, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 8, + 0, + 34, + 0, + 0, + 0, + 22, + 0, + 12, + 16, + 0, + 0, + 0, + 0, + 0, + 34, + 0, + 22, + 66, + 14, + 0, + 6, + 12, + 4, + 0, + 0, + 0, + 198, + 0, + 0, + 30, + 16, + 0, + 4, + 0, + 0, + 14, + 66, + 4, + 0, + 16, + 34, + 0, + 6, + 0, + 8, + 34, + 0, + 0, + 0, + 0, + 0, + 6, + 22, + 66, + 42, + 0, + 0, + 198, + 0, + 0, + 0, + 4, + 12, + 12, + 0, + 30, + 16, + 0, + 0, + 0, + 0, + 42, + 198, + 4, + 0, + 8, + 0, + 6, + 0, + 34, + 16, + 42, + 60, + 0, + 0, + 48, + 198, + 66, + 8, + 32, + 16, + 0, + 0, + 8, + 396, + 0, + 68, + 12, + 0, + 0, + 0, + 66, + 0, + 12, + 0, + 0, + 0, + 48, + 24, + 0, + 0, + 90, + 594, + 0, + 18, + 36, + 48, + 0, + 12, + 0, + 66, + 0, + 0, + 48, + 594, + 0, + 12, + 36, + 90, + 0, + 0, + 48, + 24, + 0, + 0, + 264, + 64, + 0, + 0, + 120, + 56, + 0, + 1188, + 0, + 102, + 24, + 16, + 0, + 8, + 80, + 24, + 0, + 88 + ], + "proxy_pivot": 291, + "seed": 4, + "selected": { + "ADDs": 11949, + "B": 10548832, + "F": 70083, + "admitted": true, + "gain": 1259, + "nine_bits": 192, + "nomination": 2, + "payload_bits": 101, + "removed_index": 196 + }, + "selected_pairs": [ + [ + 9, + 237 + ], + [ + 11, + 20 + ], + [ + 12, + 30 + ], + [ + 14, + 235 + ], + [ + 16, + 26 + ], + [ + 18, + 1 + ], + [ + 22, + 233 + ], + [ + 25, + 21 + ], + [ + 27, + 17 + ], + [ + 31, + 7 + ], + [ + 33, + 206 + ], + [ + 40, + 193 + ], + [ + 41, + 192 + ], + [ + 44, + 197 + ], + [ + 46, + 56 + ], + [ + 52, + 62 + ], + [ + 53, + 219 + ], + [ + 54, + 217 + ], + [ + 57, + 47 + ], + [ + 58, + 38 + ], + [ + 59, + 39 + ], + [ + 60, + 213 + ], + [ + 63, + 214 + ], + [ + 64, + 87 + ], + [ + 67, + 176 + ], + [ + 72, + 68 + ], + [ + 79, + 189 + ], + [ + 80, + 74 + ], + [ + 83, + 172 + ], + [ + 84, + 160 + ], + [ + 85, + 170 + ], + [ + 86, + 181 + ], + [ + 91, + 70 + ], + [ + 92, + 180 + ], + [ + 93, + 43 + ], + [ + 94, + 171 + ], + [ + 101, + 144 + ], + [ + 102, + 132 + ], + [ + 104, + 308 + ], + [ + 108, + 148 + ], + [ + 109, + 107 + ], + [ + 110, + 120 + ], + [ + 112, + 124 + ], + [ + 113, + 142 + ], + [ + 115, + 151 + ], + [ + 116, + 157 + ], + [ + 117, + 121 + ], + [ + 122, + 103 + ], + [ + 123, + 158 + ], + [ + 125, + 146 + ], + [ + 129, + 155 + ], + [ + 131, + 149 + ], + [ + 134, + 98 + ], + [ + 139, + 99 + ], + [ + 140, + 111 + ], + [ + 141, + 156 + ], + [ + 154, + 105 + ], + [ + 161, + 186 + ], + [ + 166, + 69 + ], + [ + 167, + 82 + ], + [ + 168, + 61 + ], + [ + 169, + 191 + ], + [ + 173, + 89 + ], + [ + 174, + 77 + ], + [ + 175, + 185 + ], + [ + 177, + 66 + ], + [ + 178, + 75 + ], + [ + 182, + 73 + ], + [ + 183, + 179 + ], + [ + 187, + 95 + ], + [ + 188, + 78 + ], + [ + 190, + 71 + ], + [ + 195, + 201 + ], + [ + 196, + 32 + ], + [ + 198, + 24 + ], + [ + 199, + 50 + ], + [ + 202, + 37 + ], + [ + 203, + 36 + ], + [ + 204, + 119 + ], + [ + 205, + 221 + ], + [ + 207, + 268 + ], + [ + 208, + 35 + ], + [ + 209, + 51 + ], + [ + 211, + 143 + ], + [ + 212, + 55 + ], + [ + 216, + 45 + ], + [ + 220, + 34 + ], + [ + 222, + 248 + ], + [ + 223, + 49 + ], + [ + 225, + 4 + ], + [ + 226, + 238 + ], + [ + 227, + 28 + ], + [ + 228, + 29 + ], + [ + 229, + 239 + ], + [ + 230, + 2 + ], + [ + 231, + 3 + ], + [ + 232, + 23 + ], + [ + 234, + 15 + ], + [ + 236, + 5 + ], + [ + 240, + 251 + ], + [ + 247, + 257 + ], + [ + 249, + 130 + ], + [ + 250, + 318 + ], + [ + 252, + 287 + ], + [ + 253, + 246 + ], + [ + 254, + 100 + ], + [ + 256, + 242 + ], + [ + 258, + 245 + ], + [ + 259, + 10 + ], + [ + 260, + 281 + ], + [ + 263, + 264 + ], + [ + 265, + 270 + ], + [ + 266, + 96 + ], + [ + 267, + 6 + ], + [ + 269, + 88 + ], + [ + 271, + 128 + ], + [ + 273, + 126 + ], + [ + 274, + 114 + ], + [ + 275, + 127 + ], + [ + 277, + 262 + ], + [ + 280, + 261 + ], + [ + 282, + 0 + ], + [ + 283, + 224 + ], + [ + 284, + 152 + ], + [ + 285, + 133 + ], + [ + 286, + 135 + ], + [ + 288, + 153 + ], + [ + 290, + 76 + ], + [ + 292, + 145 + ], + [ + 293, + 347 + ], + [ + 294, + 276 + ], + [ + 296, + 332 + ], + [ + 298, + 415 + ], + [ + 300, + 331 + ], + [ + 303, + 65 + ], + [ + 304, + 321 + ], + [ + 305, + 341 + ], + [ + 307, + 19 + ], + [ + 309, + 346 + ], + [ + 312, + 348 + ], + [ + 314, + 42 + ], + [ + 315, + 351 + ], + [ + 319, + 360 + ], + [ + 320, + 162 + ], + [ + 322, + 90 + ], + [ + 323, + 106 + ], + [ + 327, + 364 + ], + [ + 330, + 361 + ], + [ + 333, + 297 + ], + [ + 335, + 200 + ], + [ + 336, + 295 + ], + [ + 337, + 306 + ], + [ + 338, + 302 + ], + [ + 343, + 398 + ], + [ + 344, + 313 + ], + [ + 345, + 310 + ], + [ + 352, + 316 + ], + [ + 353, + 317 + ], + [ + 354, + 349 + ], + [ + 355, + 324 + ], + [ + 356, + 163 + ], + [ + 359, + 81 + ], + [ + 362, + 329 + ], + [ + 365, + 326 + ], + [ + 366, + 325 + ], + [ + 368, + 425 + ], + [ + 369, + 424 + ], + [ + 370, + 423 + ], + [ + 371, + 409 + ], + [ + 372, + 421 + ], + [ + 373, + 438 + ], + [ + 375, + 435 + ], + [ + 376, + 436 + ], + [ + 377, + 437 + ], + [ + 378, + 433 + ], + [ + 382, + 430 + ], + [ + 384, + 427 + ], + [ + 386, + 407 + ], + [ + 387, + 406 + ], + [ + 390, + 403 + ], + [ + 391, + 420 + ], + [ + 392, + 416 + ], + [ + 393, + 417 + ], + [ + 395, + 419 + ], + [ + 396, + 137 + ], + [ + 397, + 414 + ], + [ + 400, + 412 + ], + [ + 401, + 413 + ], + [ + 404, + 389 + ], + [ + 405, + 159 + ], + [ + 408, + 385 + ], + [ + 410, + 118 + ], + [ + 411, + 399 + ], + [ + 418, + 394 + ], + [ + 422, + 402 + ], + [ + 426, + 367 + ], + [ + 429, + 381 + ], + [ + 432, + 379 + ], + [ + 434, + 374 + ] + ], + "trials": [ + { + "ADDs": 11948, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1260, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": -1 + }, + { + "ADDs": 11951, + "B": 10518760, + "F": 73471, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 0 + }, + { + "ADDs": 11951, + "B": 10518760, + "F": 73471, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 1 + }, + { + "ADDs": 11960, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 2 + }, + { + "ADDs": 11952, + "B": 10481216, + "F": 73603, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 3 + }, + { + "ADDs": 11958, + "B": 10518760, + "F": 73559, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 4 + }, + { + "ADDs": 11955, + "B": 10502958, + "F": 73207, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 5 + }, + { + "ADDs": 11959, + "B": 10518760, + "F": 72415, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 6 + }, + { + "ADDs": 11957, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 7 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 73255, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 8 + }, + { + "ADDs": 11956, + "B": 10518760, + "F": 73471, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 9 + }, + { + "ADDs": 11955, + "B": 10475422, + "F": 73603, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 10 + }, + { + "ADDs": 11961, + "B": 10518760, + "F": 73595, + "admitted": false, + "gain": 1247, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 11 + }, + { + "ADDs": 11953, + "B": 10509276, + "F": 73579, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 12 + }, + { + "ADDs": 11956, + "B": 10518760, + "F": 73555, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 13 + }, + { + "ADDs": 11959, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 14 + }, + { + "ADDs": 11957, + "B": 10498798, + "F": 73207, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 15 + }, + { + "ADDs": 11955, + "B": 10512954, + "F": 73507, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 16 + }, + { + "ADDs": 11957, + "B": 10518760, + "F": 73535, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 17 + }, + { + "ADDs": 11965, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1243, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 18 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 19 + }, + { + "ADDs": 11957, + "B": 10514186, + "F": 73423, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 20 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 21 + }, + { + "ADDs": 11967, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1241, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 22 + }, + { + "ADDs": 11958, + "B": 10517462, + "F": 73571, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 23 + }, + { + "ADDs": 11952, + "B": 10517730, + "F": 73543, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 24 + }, + { + "ADDs": 11959, + "B": 10518760, + "F": 73555, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 25 + }, + { + "ADDs": 11956, + "B": 10505330, + "F": 73559, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 26 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 70435, + "admitted": true, + "gain": 1254, + "nine_bits": 192, + "nomination": 0, + "payload_bits": 101, + "removed_index": 27 + }, + { + "ADDs": 11960, + "B": 10518760, + "F": 73471, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 28 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 73127, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 29 + }, + { + "ADDs": 11962, + "B": 10518760, + "F": 73507, + "admitted": false, + "gain": 1246, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 30 + }, + { + "ADDs": 11956, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 31 + }, + { + "ADDs": 11951, + "B": 10518030, + "F": 73595, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 32 + }, + { + "ADDs": 11956, + "B": 10518760, + "F": 73535, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 33 + }, + { + "ADDs": 11961, + "B": 10518760, + "F": 73571, + "admitted": false, + "gain": 1247, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 34 + }, + { + "ADDs": 11956, + "B": 10518760, + "F": 73379, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 35 + }, + { + "ADDs": 11949, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 36 + }, + { + "ADDs": 11956, + "B": 10518760, + "F": 73507, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 37 + }, + { + "ADDs": 11955, + "B": 10518760, + "F": 73519, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 38 + }, + { + "ADDs": 11950, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 39 + }, + { + "ADDs": 11957, + "B": 10510026, + "F": 73603, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 40 + }, + { + "ADDs": 11960, + "B": 10518760, + "F": 73207, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 41 + }, + { + "ADDs": 11955, + "B": 10514182, + "F": 73603, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 42 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73595, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 43 + }, + { + "ADDs": 11951, + "B": 10516708, + "F": 73603, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 44 + }, + { + "ADDs": 11952, + "B": 10485804, + "F": 73591, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 45 + }, + { + "ADDs": 11956, + "B": 10333540, + "F": 73207, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 46 + }, + { + "ADDs": 11956, + "B": 10518760, + "F": 73587, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 47 + }, + { + "ADDs": 11960, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 48 + }, + { + "ADDs": 11958, + "B": 10478398, + "F": 73543, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 49 + }, + { + "ADDs": 11951, + "B": 10518760, + "F": 73579, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 50 + }, + { + "ADDs": 11949, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 51 + }, + { + "ADDs": 11957, + "B": 10518760, + "F": 73587, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 52 + }, + { + "ADDs": 11963, + "B": 10512538, + "F": 73603, + "admitted": false, + "gain": 1245, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 53 + }, + { + "ADDs": 11957, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 54 + }, + { + "ADDs": 11967, + "B": 10518760, + "F": 73207, + "admitted": false, + "gain": 1241, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 55 + }, + { + "ADDs": 11962, + "B": 10517770, + "F": 73571, + "admitted": false, + "gain": 1246, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 56 + }, + { + "ADDs": 11961, + "B": 10518760, + "F": 73543, + "admitted": false, + "gain": 1247, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 57 + }, + { + "ADDs": 11957, + "B": 10506150, + "F": 73579, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 58 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 59 + }, + { + "ADDs": 11952, + "B": 10518760, + "F": 73507, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 60 + }, + { + "ADDs": 11956, + "B": 10518760, + "F": 73423, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 61 + }, + { + "ADDs": 11951, + "B": 10511066, + "F": 73491, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 62 + }, + { + "ADDs": 11955, + "B": 10518760, + "F": 72763, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 63 + }, + { + "ADDs": 11956, + "B": 10516118, + "F": 73587, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 64 + }, + { + "ADDs": 11951, + "B": 10389572, + "F": 73207, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 65 + }, + { + "ADDs": 11959, + "B": 10510846, + "F": 73471, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 66 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 72787, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 67 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73559, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 68 + }, + { + "ADDs": 11950, + "B": 10512116, + "F": 73579, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 69 + }, + { + "ADDs": 11955, + "B": 10518760, + "F": 73547, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 70 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 73575, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 71 + }, + { + "ADDs": 11958, + "B": 10513890, + "F": 73475, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 72 + }, + { + "ADDs": 11952, + "B": 10493300, + "F": 73383, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 73 + }, + { + "ADDs": 11950, + "B": 10514302, + "F": 73579, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 74 + }, + { + "ADDs": 11952, + "B": 10518760, + "F": 73519, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 75 + }, + { + "ADDs": 11957, + "B": 10518760, + "F": 73595, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 76 + }, + { + "ADDs": 11961, + "B": 10518760, + "F": 72415, + "admitted": false, + "gain": 1247, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 77 + }, + { + "ADDs": 11952, + "B": 10494756, + "F": 73515, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 78 + }, + { + "ADDs": 11958, + "B": 10518760, + "F": 73535, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 79 + }, + { + "ADDs": 11961, + "B": 10518760, + "F": 73507, + "admitted": false, + "gain": 1247, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 80 + }, + { + "ADDs": 11958, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 81 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73555, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 82 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 83 + }, + { + "ADDs": 11950, + "B": 10518760, + "F": 73531, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 84 + }, + { + "ADDs": 11959, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 85 + }, + { + "ADDs": 11958, + "B": 10518760, + "F": 73555, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 86 + }, + { + "ADDs": 11954, + "B": 10517942, + "F": 73595, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 87 + }, + { + "ADDs": 11959, + "B": 10518760, + "F": 72415, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 88 + }, + { + "ADDs": 11954, + "B": 10503738, + "F": 73483, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 89 + }, + { + "ADDs": 11955, + "B": 10512150, + "F": 73507, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 90 + }, + { + "ADDs": 11950, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 91 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 73207, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 92 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73519, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 93 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73355, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 94 + }, + { + "ADDs": 11956, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 95 + }, + { + "ADDs": 11952, + "B": 10503086, + "F": 73347, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 96 + }, + { + "ADDs": 11963, + "B": 10518760, + "F": 73407, + "admitted": false, + "gain": 1245, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 97 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 98 + }, + { + "ADDs": 11956, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 99 + }, + { + "ADDs": 11959, + "B": 10518760, + "F": 73579, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 100 + }, + { + "ADDs": 11958, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 101 + }, + { + "ADDs": 11952, + "B": 10511164, + "F": 73603, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 102 + }, + { + "ADDs": 11952, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 103 + }, + { + "ADDs": 11950, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 104 + }, + { + "ADDs": 11950, + "B": 10516900, + "F": 73603, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 105 + }, + { + "ADDs": 11952, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 106 + }, + { + "ADDs": 11951, + "B": 10517504, + "F": 73603, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 107 + }, + { + "ADDs": 11955, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 108 + }, + { + "ADDs": 11949, + "B": 10518760, + "F": 73575, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 109 + }, + { + "ADDs": 11956, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 110 + }, + { + "ADDs": 11949, + "B": 10518760, + "F": 73595, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 111 + }, + { + "ADDs": 11954, + "B": 10505442, + "F": 73603, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 112 + }, + { + "ADDs": 11960, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 113 + }, + { + "ADDs": 11949, + "B": 10517538, + "F": 73587, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 114 + }, + { + "ADDs": 11949, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 115 + }, + { + "ADDs": 11951, + "B": 10353996, + "F": 73571, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 116 + }, + { + "ADDs": 11960, + "B": 10518760, + "F": 73515, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 117 + }, + { + "ADDs": 11960, + "B": 10462896, + "F": 73515, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 118 + }, + { + "ADDs": 11950, + "B": 10518760, + "F": 73207, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 119 + }, + { + "ADDs": 11950, + "B": 10518760, + "F": 73575, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 120 + }, + { + "ADDs": 11950, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 121 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 122 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 123 + }, + { + "ADDs": 11961, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1247, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 124 + }, + { + "ADDs": 11959, + "B": 10518760, + "F": 73587, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 125 + }, + { + "ADDs": 11949, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 126 + }, + { + "ADDs": 11951, + "B": 10502138, + "F": 73603, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 127 + }, + { + "ADDs": 11951, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 128 + }, + { + "ADDs": 11952, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 129 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73579, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 130 + }, + { + "ADDs": 11951, + "B": 10518760, + "F": 73571, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 131 + }, + { + "ADDs": 11960, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 132 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 133 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 73535, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 134 + }, + { + "ADDs": 11951, + "B": 10518760, + "F": 73575, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 135 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 136 + }, + { + "ADDs": 11949, + "B": 10518760, + "F": 73579, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 137 + }, + { + "ADDs": 11958, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 138 + }, + { + "ADDs": 11949, + "B": 10518760, + "F": 73207, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 139 + }, + { + "ADDs": 11956, + "B": 10518760, + "F": 73543, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 140 + }, + { + "ADDs": 11951, + "B": 10518760, + "F": 73595, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 141 + }, + { + "ADDs": 11949, + "B": 10515086, + "F": 73603, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 142 + }, + { + "ADDs": 11952, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 143 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73471, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 144 + }, + { + "ADDs": 11950, + "B": 10518760, + "F": 73595, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 145 + }, + { + "ADDs": 11957, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 146 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 73587, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 147 + }, + { + "ADDs": 11952, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 148 + }, + { + "ADDs": 11951, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 149 + }, + { + "ADDs": 11956, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 150 + }, + { + "ADDs": 11955, + "B": 10518760, + "F": 73591, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 151 + }, + { + "ADDs": 11951, + "B": 10518760, + "F": 73559, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 152 + }, + { + "ADDs": 11949, + "B": 10518760, + "F": 73471, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 153 + }, + { + "ADDs": 11951, + "B": 10518760, + "F": 73207, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 154 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 155 + }, + { + "ADDs": 11951, + "B": 10509310, + "F": 73571, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 156 + }, + { + "ADDs": 11949, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 157 + }, + { + "ADDs": 11951, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 158 + }, + { + "ADDs": 11951, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 159 + }, + { + "ADDs": 11949, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 160 + }, + { + "ADDs": 11950, + "B": 10514238, + "F": 73603, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 161 + }, + { + "ADDs": 11951, + "B": 10518760, + "F": 73535, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 162 + }, + { + "ADDs": 11949, + "B": 10518760, + "F": 73571, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 163 + }, + { + "ADDs": 11950, + "B": 10518760, + "F": 73483, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 164 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 165 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 166 + }, + { + "ADDs": 11958, + "B": 10518760, + "F": 73507, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 167 + }, + { + "ADDs": 11954, + "B": 10514326, + "F": 73207, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 168 + }, + { + "ADDs": 11949, + "B": 10518760, + "F": 73471, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 169 + }, + { + "ADDs": 11955, + "B": 10518760, + "F": 73539, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 170 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73571, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 171 + }, + { + "ADDs": 11958, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 172 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 173 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73467, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 174 + }, + { + "ADDs": 11952, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 175 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 176 + }, + { + "ADDs": 11949, + "B": 10518760, + "F": 73471, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 177 + }, + { + "ADDs": 11959, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 178 + }, + { + "ADDs": 11955, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 179 + }, + { + "ADDs": 11956, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 180 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 73507, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 181 + }, + { + "ADDs": 11955, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 182 + }, + { + "ADDs": 11950, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 183 + }, + { + "ADDs": 11952, + "B": 10516918, + "F": 73423, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 184 + }, + { + "ADDs": 11952, + "B": 10518760, + "F": 73567, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 185 + }, + { + "ADDs": 11952, + "B": 10518760, + "F": 73531, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 186 + }, + { + "ADDs": 11955, + "B": 10518760, + "F": 73579, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 187 + }, + { + "ADDs": 11949, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 188 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 189 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 72415, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 190 + }, + { + "ADDs": 11950, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 191 + }, + { + "ADDs": 11950, + "B": 10518760, + "F": 73555, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 192 + }, + { + "ADDs": 11953, + "B": 10518760, + "F": 73475, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 193 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 73491, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 194 + }, + { + "ADDs": 11949, + "B": 10518760, + "F": 71227, + "admitted": true, + "gain": 1259, + "nine_bits": 192, + "nomination": 0, + "payload_bits": 102, + "removed_index": 195 + }, + { + "ADDs": 11957, + "B": 10518760, + "F": 73603, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 196 + }, + { + "ADDs": 11954, + "B": 10518760, + "F": 73571, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 197 + }, + { + "ADDs": 11962, + "B": 10518760, + "F": 73587, + "admitted": false, + "gain": 1246, + "nine_bits": 193, + "nomination": 0, + "payload_bits": 102, + "removed_index": 198 + }, + { + "ADDs": 11948, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1260, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": -1 + }, + { + "ADDs": 11951, + "B": 10529954, + "F": 73195, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 0 + }, + { + "ADDs": 11951, + "B": 10529954, + "F": 73195, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 1 + }, + { + "ADDs": 11960, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 2 + }, + { + "ADDs": 11952, + "B": 10492410, + "F": 73327, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 3 + }, + { + "ADDs": 11958, + "B": 10529954, + "F": 73283, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 4 + }, + { + "ADDs": 11955, + "B": 10514152, + "F": 72931, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 5 + }, + { + "ADDs": 11959, + "B": 10529954, + "F": 72139, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 6 + }, + { + "ADDs": 11957, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 7 + }, + { + "ADDs": 11954, + "B": 10529954, + "F": 72979, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 8 + }, + { + "ADDs": 11956, + "B": 10529954, + "F": 73195, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 9 + }, + { + "ADDs": 11955, + "B": 10486616, + "F": 73327, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 10 + }, + { + "ADDs": 11961, + "B": 10529954, + "F": 73319, + "admitted": false, + "gain": 1247, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 11 + }, + { + "ADDs": 11953, + "B": 10520470, + "F": 73303, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 12 + }, + { + "ADDs": 11956, + "B": 10529954, + "F": 73279, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 13 + }, + { + "ADDs": 11959, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 14 + }, + { + "ADDs": 11957, + "B": 10509992, + "F": 72931, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 15 + }, + { + "ADDs": 11955, + "B": 10524148, + "F": 73231, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 16 + }, + { + "ADDs": 11957, + "B": 10529954, + "F": 73259, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 17 + }, + { + "ADDs": 11965, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1243, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 18 + }, + { + "ADDs": 11954, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 19 + }, + { + "ADDs": 11957, + "B": 10525380, + "F": 73147, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 20 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 21 + }, + { + "ADDs": 11967, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1241, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 22 + }, + { + "ADDs": 11958, + "B": 10528656, + "F": 73295, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 23 + }, + { + "ADDs": 11952, + "B": 10528924, + "F": 73267, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 24 + }, + { + "ADDs": 11959, + "B": 10529954, + "F": 73279, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 25 + }, + { + "ADDs": 11956, + "B": 10516524, + "F": 73283, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 26 + }, + { + "ADDs": 11960, + "B": 10529954, + "F": 73195, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 27 + }, + { + "ADDs": 11962, + "B": 10529954, + "F": 73231, + "admitted": false, + "gain": 1246, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 28 + }, + { + "ADDs": 11956, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 29 + }, + { + "ADDs": 11951, + "B": 10529224, + "F": 73319, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 30 + }, + { + "ADDs": 11956, + "B": 10529954, + "F": 73259, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 31 + }, + { + "ADDs": 11961, + "B": 10529954, + "F": 73295, + "admitted": false, + "gain": 1247, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 32 + }, + { + "ADDs": 11956, + "B": 10529954, + "F": 73103, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 33 + }, + { + "ADDs": 11949, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 34 + }, + { + "ADDs": 11954, + "B": 10527080, + "F": 73191, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 35 + }, + { + "ADDs": 11956, + "B": 10529954, + "F": 73231, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 36 + }, + { + "ADDs": 11955, + "B": 10529954, + "F": 73243, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 37 + }, + { + "ADDs": 11950, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 38 + }, + { + "ADDs": 11957, + "B": 10521220, + "F": 73327, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 39 + }, + { + "ADDs": 11960, + "B": 10529954, + "F": 72931, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 40 + }, + { + "ADDs": 11955, + "B": 10525376, + "F": 73327, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 41 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73319, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 42 + }, + { + "ADDs": 11951, + "B": 10527902, + "F": 73327, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 43 + }, + { + "ADDs": 11952, + "B": 10496998, + "F": 73315, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 44 + }, + { + "ADDs": 11956, + "B": 10344734, + "F": 72931, + "admitted": true, + "gain": 1252, + "nine_bits": 192, + "nomination": 1, + "payload_bits": 102, + "removed_index": 45 + }, + { + "ADDs": 11956, + "B": 10529954, + "F": 73311, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 46 + }, + { + "ADDs": 11960, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 47 + }, + { + "ADDs": 11958, + "B": 10489592, + "F": 73267, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 48 + }, + { + "ADDs": 11951, + "B": 10529954, + "F": 73303, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 49 + }, + { + "ADDs": 11949, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 50 + }, + { + "ADDs": 11957, + "B": 10529954, + "F": 73311, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 51 + }, + { + "ADDs": 11963, + "B": 10523732, + "F": 73327, + "admitted": false, + "gain": 1245, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 52 + }, + { + "ADDs": 11957, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 53 + }, + { + "ADDs": 11967, + "B": 10529954, + "F": 72931, + "admitted": false, + "gain": 1241, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 54 + }, + { + "ADDs": 11961, + "B": 10529954, + "F": 73267, + "admitted": false, + "gain": 1247, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 55 + }, + { + "ADDs": 11957, + "B": 10517344, + "F": 73303, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 56 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 57 + }, + { + "ADDs": 11952, + "B": 10529954, + "F": 73231, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 58 + }, + { + "ADDs": 11962, + "B": 10529954, + "F": 73295, + "admitted": false, + "gain": 1246, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 59 + }, + { + "ADDs": 11956, + "B": 10529954, + "F": 73147, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 60 + }, + { + "ADDs": 11951, + "B": 10522260, + "F": 73215, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 61 + }, + { + "ADDs": 11955, + "B": 10529954, + "F": 72487, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 62 + }, + { + "ADDs": 11956, + "B": 10527312, + "F": 73311, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 63 + }, + { + "ADDs": 11951, + "B": 10400766, + "F": 72931, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 64 + }, + { + "ADDs": 11959, + "B": 10522040, + "F": 73195, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 65 + }, + { + "ADDs": 11954, + "B": 10529954, + "F": 72511, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 66 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73283, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 67 + }, + { + "ADDs": 11950, + "B": 10523310, + "F": 73303, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 68 + }, + { + "ADDs": 11954, + "B": 10529954, + "F": 70159, + "admitted": true, + "gain": 1254, + "nine_bits": 192, + "nomination": 1, + "payload_bits": 101, + "removed_index": 69 + }, + { + "ADDs": 11955, + "B": 10529954, + "F": 73271, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 70 + }, + { + "ADDs": 11954, + "B": 10529954, + "F": 73299, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 71 + }, + { + "ADDs": 11958, + "B": 10525084, + "F": 73199, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 72 + }, + { + "ADDs": 11952, + "B": 10504494, + "F": 73107, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 73 + }, + { + "ADDs": 11950, + "B": 10525496, + "F": 73303, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 74 + }, + { + "ADDs": 11952, + "B": 10529954, + "F": 73243, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 75 + }, + { + "ADDs": 11957, + "B": 10529954, + "F": 73319, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 76 + }, + { + "ADDs": 11961, + "B": 10529954, + "F": 72139, + "admitted": false, + "gain": 1247, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 77 + }, + { + "ADDs": 11952, + "B": 10505950, + "F": 73239, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 78 + }, + { + "ADDs": 11958, + "B": 10529954, + "F": 73259, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 79 + }, + { + "ADDs": 11961, + "B": 10529954, + "F": 73231, + "admitted": false, + "gain": 1247, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 80 + }, + { + "ADDs": 11958, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 81 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73279, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 82 + }, + { + "ADDs": 11954, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 83 + }, + { + "ADDs": 11950, + "B": 10529954, + "F": 73255, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 84 + }, + { + "ADDs": 11959, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 85 + }, + { + "ADDs": 11958, + "B": 10529954, + "F": 73279, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 86 + }, + { + "ADDs": 11954, + "B": 10529136, + "F": 73319, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 87 + }, + { + "ADDs": 11959, + "B": 10529954, + "F": 72139, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 88 + }, + { + "ADDs": 11954, + "B": 10514932, + "F": 73207, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 89 + }, + { + "ADDs": 11955, + "B": 10523344, + "F": 73231, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 90 + }, + { + "ADDs": 11950, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 91 + }, + { + "ADDs": 11954, + "B": 10529954, + "F": 72931, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 92 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73243, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 93 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73079, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 94 + }, + { + "ADDs": 11956, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 95 + }, + { + "ADDs": 11952, + "B": 10514280, + "F": 73071, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 96 + }, + { + "ADDs": 11954, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 97 + }, + { + "ADDs": 11956, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 98 + }, + { + "ADDs": 11959, + "B": 10529954, + "F": 73303, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 99 + }, + { + "ADDs": 11958, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 100 + }, + { + "ADDs": 11963, + "B": 10529954, + "F": 73131, + "admitted": false, + "gain": 1245, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 101 + }, + { + "ADDs": 11952, + "B": 10522358, + "F": 73327, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 102 + }, + { + "ADDs": 11950, + "B": 10528094, + "F": 73327, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 103 + }, + { + "ADDs": 11952, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 104 + }, + { + "ADDs": 11950, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 105 + }, + { + "ADDs": 11951, + "B": 10528698, + "F": 73327, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 106 + }, + { + "ADDs": 11952, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 107 + }, + { + "ADDs": 11955, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 108 + }, + { + "ADDs": 11949, + "B": 10529954, + "F": 73299, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 109 + }, + { + "ADDs": 11949, + "B": 10529954, + "F": 73319, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 110 + }, + { + "ADDs": 11954, + "B": 10516636, + "F": 73327, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 111 + }, + { + "ADDs": 11960, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 112 + }, + { + "ADDs": 11949, + "B": 10528732, + "F": 73311, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 113 + }, + { + "ADDs": 11951, + "B": 10365190, + "F": 73295, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 114 + }, + { + "ADDs": 11960, + "B": 10529954, + "F": 73239, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 115 + }, + { + "ADDs": 11960, + "B": 10474090, + "F": 73239, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 116 + }, + { + "ADDs": 11950, + "B": 10529954, + "F": 72931, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 117 + }, + { + "ADDs": 11950, + "B": 10529954, + "F": 73299, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 118 + }, + { + "ADDs": 11950, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 119 + }, + { + "ADDs": 11956, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 120 + }, + { + "ADDs": 11954, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 121 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 122 + }, + { + "ADDs": 11961, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1247, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 123 + }, + { + "ADDs": 11959, + "B": 10529954, + "F": 73311, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 124 + }, + { + "ADDs": 11949, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 125 + }, + { + "ADDs": 11951, + "B": 10513332, + "F": 73327, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 126 + }, + { + "ADDs": 11951, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 127 + }, + { + "ADDs": 11949, + "B": 10529954, + "F": 73283, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 128 + }, + { + "ADDs": 11952, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 129 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73303, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 130 + }, + { + "ADDs": 11951, + "B": 10529954, + "F": 73295, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 131 + }, + { + "ADDs": 11960, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 132 + }, + { + "ADDs": 11950, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 133 + }, + { + "ADDs": 11954, + "B": 10529954, + "F": 73259, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 134 + }, + { + "ADDs": 11951, + "B": 10529954, + "F": 73299, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 135 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 136 + }, + { + "ADDs": 11958, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 137 + }, + { + "ADDs": 11949, + "B": 10520644, + "F": 73327, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 138 + }, + { + "ADDs": 11949, + "B": 10529954, + "F": 72931, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 139 + }, + { + "ADDs": 11951, + "B": 10529954, + "F": 73319, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 140 + }, + { + "ADDs": 11949, + "B": 10526280, + "F": 73327, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 141 + }, + { + "ADDs": 11952, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 142 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73195, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 143 + }, + { + "ADDs": 11950, + "B": 10529954, + "F": 73319, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 144 + }, + { + "ADDs": 11954, + "B": 10529954, + "F": 73311, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 145 + }, + { + "ADDs": 11952, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 146 + }, + { + "ADDs": 11951, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 147 + }, + { + "ADDs": 11956, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 148 + }, + { + "ADDs": 11955, + "B": 10529954, + "F": 73315, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 149 + }, + { + "ADDs": 11951, + "B": 10529954, + "F": 73283, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 150 + }, + { + "ADDs": 11949, + "B": 10529954, + "F": 73195, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 151 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 72931, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 152 + }, + { + "ADDs": 11954, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 153 + }, + { + "ADDs": 11956, + "B": 10529954, + "F": 73267, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 154 + }, + { + "ADDs": 11951, + "B": 10520504, + "F": 73295, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 155 + }, + { + "ADDs": 11949, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 156 + }, + { + "ADDs": 11951, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 157 + }, + { + "ADDs": 11951, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 158 + }, + { + "ADDs": 11949, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 159 + }, + { + "ADDs": 11950, + "B": 10525432, + "F": 73327, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 160 + }, + { + "ADDs": 11957, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 161 + }, + { + "ADDs": 11951, + "B": 10529954, + "F": 73259, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 162 + }, + { + "ADDs": 11949, + "B": 10529954, + "F": 73295, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 163 + }, + { + "ADDs": 11950, + "B": 10529954, + "F": 73207, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 164 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 165 + }, + { + "ADDs": 11958, + "B": 10529954, + "F": 73231, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 166 + }, + { + "ADDs": 11954, + "B": 10525520, + "F": 72931, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 167 + }, + { + "ADDs": 11955, + "B": 10529954, + "F": 73263, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 168 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73295, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 169 + }, + { + "ADDs": 11958, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 170 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 171 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73191, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 172 + }, + { + "ADDs": 11952, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 173 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 174 + }, + { + "ADDs": 11959, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 175 + }, + { + "ADDs": 11955, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 176 + }, + { + "ADDs": 11956, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 177 + }, + { + "ADDs": 11954, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 178 + }, + { + "ADDs": 11952, + "B": 10528112, + "F": 73147, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 179 + }, + { + "ADDs": 11952, + "B": 10529954, + "F": 73291, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 180 + }, + { + "ADDs": 11952, + "B": 10529954, + "F": 73255, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 181 + }, + { + "ADDs": 11955, + "B": 10529954, + "F": 73303, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 182 + }, + { + "ADDs": 11949, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 183 + }, + { + "ADDs": 11949, + "B": 10529954, + "F": 73195, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 184 + }, + { + "ADDs": 11954, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 185 + }, + { + "ADDs": 11951, + "B": 10529954, + "F": 72139, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 186 + }, + { + "ADDs": 11950, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 187 + }, + { + "ADDs": 11954, + "B": 10529954, + "F": 73231, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 188 + }, + { + "ADDs": 11950, + "B": 10529954, + "F": 73279, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 189 + }, + { + "ADDs": 11955, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 190 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73199, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 191 + }, + { + "ADDs": 11953, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 192 + }, + { + "ADDs": 11954, + "B": 10529954, + "F": 73215, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 193 + }, + { + "ADDs": 11949, + "B": 10529954, + "F": 70951, + "admitted": true, + "gain": 1259, + "nine_bits": 192, + "nomination": 1, + "payload_bits": 101, + "removed_index": 194 + }, + { + "ADDs": 11957, + "B": 10529954, + "F": 73327, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 195 + }, + { + "ADDs": 11954, + "B": 10529954, + "F": 73295, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 196 + }, + { + "ADDs": 11962, + "B": 10529954, + "F": 73311, + "admitted": false, + "gain": 1246, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 197 + }, + { + "ADDs": 11949, + "B": 10529954, + "F": 73151, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 1, + "payload_bits": 102, + "removed_index": 198 + }, + { + "ADDs": 11948, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1260, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": -1 + }, + { + "ADDs": 11960, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 0 + }, + { + "ADDs": 11952, + "B": 10511288, + "F": 72459, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 1 + }, + { + "ADDs": 11958, + "B": 10548832, + "F": 72415, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 2 + }, + { + "ADDs": 11955, + "B": 10533030, + "F": 72063, + "admitted": true, + "gain": 1253, + "nine_bits": 192, + "nomination": 2, + "payload_bits": 102, + "removed_index": 3 + }, + { + "ADDs": 11959, + "B": 10548832, + "F": 71271, + "admitted": true, + "gain": 1249, + "nine_bits": 192, + "nomination": 2, + "payload_bits": 102, + "removed_index": 4 + }, + { + "ADDs": 11957, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 5 + }, + { + "ADDs": 11954, + "B": 10548832, + "F": 72111, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 6 + }, + { + "ADDs": 11956, + "B": 10548832, + "F": 72327, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 7 + }, + { + "ADDs": 11955, + "B": 10505494, + "F": 72459, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 8 + }, + { + "ADDs": 11961, + "B": 10548832, + "F": 72451, + "admitted": false, + "gain": 1247, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 9 + }, + { + "ADDs": 11953, + "B": 10539348, + "F": 72435, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 10 + }, + { + "ADDs": 11956, + "B": 10548832, + "F": 72411, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 11 + }, + { + "ADDs": 11959, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 12 + }, + { + "ADDs": 11955, + "B": 10543026, + "F": 72363, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 13 + }, + { + "ADDs": 11957, + "B": 10548832, + "F": 72391, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 14 + }, + { + "ADDs": 11965, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1243, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 15 + }, + { + "ADDs": 11954, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 16 + }, + { + "ADDs": 11957, + "B": 10544258, + "F": 72279, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 17 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 18 + }, + { + "ADDs": 11967, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1241, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 19 + }, + { + "ADDs": 11958, + "B": 10547534, + "F": 72427, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 20 + }, + { + "ADDs": 11952, + "B": 10547802, + "F": 72399, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 21 + }, + { + "ADDs": 11959, + "B": 10548832, + "F": 72411, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 22 + }, + { + "ADDs": 11956, + "B": 10535402, + "F": 72415, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 23 + }, + { + "ADDs": 11954, + "B": 10548832, + "F": 69291, + "admitted": true, + "gain": 1254, + "nine_bits": 192, + "nomination": 2, + "payload_bits": 101, + "removed_index": 24 + }, + { + "ADDs": 11960, + "B": 10548832, + "F": 72327, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 25 + }, + { + "ADDs": 11962, + "B": 10548832, + "F": 72363, + "admitted": false, + "gain": 1246, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 26 + }, + { + "ADDs": 11956, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 27 + }, + { + "ADDs": 11956, + "B": 10548832, + "F": 72391, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 28 + }, + { + "ADDs": 11961, + "B": 10548832, + "F": 72427, + "admitted": false, + "gain": 1247, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 29 + }, + { + "ADDs": 11956, + "B": 10548832, + "F": 72235, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 30 + }, + { + "ADDs": 11949, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 31 + }, + { + "ADDs": 11956, + "B": 10548832, + "F": 72363, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 32 + }, + { + "ADDs": 11955, + "B": 10548832, + "F": 72375, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 33 + }, + { + "ADDs": 11950, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 34 + }, + { + "ADDs": 11957, + "B": 10540098, + "F": 72459, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 35 + }, + { + "ADDs": 11960, + "B": 10548832, + "F": 72063, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 36 + }, + { + "ADDs": 11955, + "B": 10544254, + "F": 72459, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 37 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72451, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 38 + }, + { + "ADDs": 11951, + "B": 10546780, + "F": 72459, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 39 + }, + { + "ADDs": 11952, + "B": 10515876, + "F": 72447, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 40 + }, + { + "ADDs": 11956, + "B": 10363612, + "F": 72063, + "admitted": true, + "gain": 1252, + "nine_bits": 192, + "nomination": 2, + "payload_bits": 102, + "removed_index": 41 + }, + { + "ADDs": 11956, + "B": 10548832, + "F": 72443, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 42 + }, + { + "ADDs": 11960, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 43 + }, + { + "ADDs": 11958, + "B": 10508470, + "F": 72399, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 44 + }, + { + "ADDs": 11951, + "B": 10548832, + "F": 72435, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 45 + }, + { + "ADDs": 11949, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 46 + }, + { + "ADDs": 11957, + "B": 10548832, + "F": 72443, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 47 + }, + { + "ADDs": 11963, + "B": 10542610, + "F": 72459, + "admitted": false, + "gain": 1245, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 48 + }, + { + "ADDs": 11957, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 49 + }, + { + "ADDs": 11967, + "B": 10548832, + "F": 72063, + "admitted": false, + "gain": 1241, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 50 + }, + { + "ADDs": 11962, + "B": 10547842, + "F": 72427, + "admitted": false, + "gain": 1246, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 51 + }, + { + "ADDs": 11961, + "B": 10548832, + "F": 72399, + "admitted": false, + "gain": 1247, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 52 + }, + { + "ADDs": 11957, + "B": 10536222, + "F": 72435, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 53 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 54 + }, + { + "ADDs": 11952, + "B": 10548832, + "F": 72363, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 55 + }, + { + "ADDs": 11956, + "B": 10548832, + "F": 72279, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 56 + }, + { + "ADDs": 11951, + "B": 10541138, + "F": 72347, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 57 + }, + { + "ADDs": 11955, + "B": 10548832, + "F": 71619, + "admitted": true, + "gain": 1253, + "nine_bits": 192, + "nomination": 2, + "payload_bits": 102, + "removed_index": 58 + }, + { + "ADDs": 11956, + "B": 10546190, + "F": 72443, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 59 + }, + { + "ADDs": 11951, + "B": 10419644, + "F": 72063, + "admitted": true, + "gain": 1257, + "nine_bits": 192, + "nomination": 2, + "payload_bits": 102, + "removed_index": 60 + }, + { + "ADDs": 11959, + "B": 10540918, + "F": 72327, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 61 + }, + { + "ADDs": 11954, + "B": 10548832, + "F": 71643, + "admitted": true, + "gain": 1254, + "nine_bits": 192, + "nomination": 2, + "payload_bits": 102, + "removed_index": 62 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72415, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 63 + }, + { + "ADDs": 11950, + "B": 10542188, + "F": 72435, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 64 + }, + { + "ADDs": 11955, + "B": 10548832, + "F": 72403, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 65 + }, + { + "ADDs": 11954, + "B": 10548832, + "F": 72431, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 66 + }, + { + "ADDs": 11958, + "B": 10543962, + "F": 72331, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 67 + }, + { + "ADDs": 11952, + "B": 10523372, + "F": 72239, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 68 + }, + { + "ADDs": 11950, + "B": 10544374, + "F": 72435, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 69 + }, + { + "ADDs": 11954, + "B": 10543084, + "F": 72459, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 70 + }, + { + "ADDs": 11952, + "B": 10548832, + "F": 72375, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 71 + }, + { + "ADDs": 11957, + "B": 10548832, + "F": 72451, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 72 + }, + { + "ADDs": 11961, + "B": 10548832, + "F": 71271, + "admitted": true, + "gain": 1247, + "nine_bits": 192, + "nomination": 2, + "payload_bits": 102, + "removed_index": 73 + }, + { + "ADDs": 11952, + "B": 10524828, + "F": 72371, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 74 + }, + { + "ADDs": 11958, + "B": 10548832, + "F": 72391, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 75 + }, + { + "ADDs": 11961, + "B": 10548832, + "F": 72363, + "admitted": false, + "gain": 1247, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 76 + }, + { + "ADDs": 11958, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 77 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72411, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 78 + }, + { + "ADDs": 11954, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 79 + }, + { + "ADDs": 11950, + "B": 10548832, + "F": 72387, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 80 + }, + { + "ADDs": 11959, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 81 + }, + { + "ADDs": 11958, + "B": 10548832, + "F": 72411, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 82 + }, + { + "ADDs": 11954, + "B": 10548014, + "F": 72451, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 83 + }, + { + "ADDs": 11959, + "B": 10548832, + "F": 71271, + "admitted": true, + "gain": 1249, + "nine_bits": 192, + "nomination": 2, + "payload_bits": 102, + "removed_index": 84 + }, + { + "ADDs": 11954, + "B": 10533810, + "F": 72339, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 85 + }, + { + "ADDs": 11955, + "B": 10542222, + "F": 72363, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 86 + }, + { + "ADDs": 11950, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 87 + }, + { + "ADDs": 11954, + "B": 10548832, + "F": 72063, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 88 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72375, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 89 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72211, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 90 + }, + { + "ADDs": 11956, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 91 + }, + { + "ADDs": 11952, + "B": 10533158, + "F": 72203, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 92 + }, + { + "ADDs": 11963, + "B": 10548832, + "F": 72263, + "admitted": false, + "gain": 1245, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 93 + }, + { + "ADDs": 11954, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 94 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 95 + }, + { + "ADDs": 11956, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 96 + }, + { + "ADDs": 11959, + "B": 10548832, + "F": 72435, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 97 + }, + { + "ADDs": 11958, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 98 + }, + { + "ADDs": 11952, + "B": 10541236, + "F": 72459, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 99 + }, + { + "ADDs": 11952, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 100 + }, + { + "ADDs": 11950, + "B": 10546972, + "F": 72459, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 101 + }, + { + "ADDs": 11949, + "B": 10523080, + "F": 72459, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 102 + }, + { + "ADDs": 11952, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 103 + }, + { + "ADDs": 11950, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 104 + }, + { + "ADDs": 11950, + "B": 10548102, + "F": 72459, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 105 + }, + { + "ADDs": 11951, + "B": 10547576, + "F": 72459, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 106 + }, + { + "ADDs": 11955, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 107 + }, + { + "ADDs": 11949, + "B": 10548832, + "F": 72431, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 108 + }, + { + "ADDs": 11956, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 109 + }, + { + "ADDs": 11949, + "B": 10548832, + "F": 72451, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 110 + }, + { + "ADDs": 11954, + "B": 10535514, + "F": 72459, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 111 + }, + { + "ADDs": 11960, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 112 + }, + { + "ADDs": 11949, + "B": 10547610, + "F": 72443, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 113 + }, + { + "ADDs": 11949, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 114 + }, + { + "ADDs": 11951, + "B": 10384068, + "F": 72427, + "admitted": true, + "gain": 1257, + "nine_bits": 192, + "nomination": 2, + "payload_bits": 102, + "removed_index": 115 + }, + { + "ADDs": 11960, + "B": 10548832, + "F": 72371, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 116 + }, + { + "ADDs": 11960, + "B": 10492968, + "F": 72371, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 117 + }, + { + "ADDs": 11950, + "B": 10548832, + "F": 72063, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 118 + }, + { + "ADDs": 11950, + "B": 10548832, + "F": 72431, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 119 + }, + { + "ADDs": 11950, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 120 + }, + { + "ADDs": 11954, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 121 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 122 + }, + { + "ADDs": 11961, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1247, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 123 + }, + { + "ADDs": 11959, + "B": 10548832, + "F": 72443, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 124 + }, + { + "ADDs": 11949, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 125 + }, + { + "ADDs": 11951, + "B": 10532210, + "F": 72459, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 126 + }, + { + "ADDs": 11951, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 127 + }, + { + "ADDs": 11952, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 128 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72435, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 129 + }, + { + "ADDs": 11951, + "B": 10548832, + "F": 72427, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 130 + }, + { + "ADDs": 11960, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1248, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 131 + }, + { + "ADDs": 11954, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 132 + }, + { + "ADDs": 11954, + "B": 10548832, + "F": 72391, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 133 + }, + { + "ADDs": 11949, + "B": 10533478, + "F": 72327, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 134 + }, + { + "ADDs": 11951, + "B": 10548832, + "F": 72431, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 135 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 136 + }, + { + "ADDs": 11949, + "B": 10548832, + "F": 72435, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 137 + }, + { + "ADDs": 11958, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 138 + }, + { + "ADDs": 11949, + "B": 10548832, + "F": 72063, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 139 + }, + { + "ADDs": 11957, + "B": 10545652, + "F": 72459, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 140 + }, + { + "ADDs": 11956, + "B": 10548832, + "F": 72399, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 141 + }, + { + "ADDs": 11949, + "B": 10545158, + "F": 72459, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 142 + }, + { + "ADDs": 11952, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 143 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72327, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 144 + }, + { + "ADDs": 11950, + "B": 10548832, + "F": 72451, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 145 + }, + { + "ADDs": 11957, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 146 + }, + { + "ADDs": 11954, + "B": 10548832, + "F": 72443, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 147 + }, + { + "ADDs": 11952, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 148 + }, + { + "ADDs": 11951, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 149 + }, + { + "ADDs": 11956, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 150 + }, + { + "ADDs": 11955, + "B": 10548832, + "F": 72447, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 151 + }, + { + "ADDs": 11951, + "B": 10548832, + "F": 72415, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 152 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72063, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 153 + }, + { + "ADDs": 11950, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 154 + }, + { + "ADDs": 11954, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 155 + }, + { + "ADDs": 11951, + "B": 10539382, + "F": 72427, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 156 + }, + { + "ADDs": 11949, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 157 + }, + { + "ADDs": 11951, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 158 + }, + { + "ADDs": 11951, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 159 + }, + { + "ADDs": 11949, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 160 + }, + { + "ADDs": 11950, + "B": 10548832, + "F": 72451, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 161 + }, + { + "ADDs": 11950, + "B": 10544310, + "F": 72459, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 162 + }, + { + "ADDs": 11951, + "B": 10548832, + "F": 72391, + "admitted": false, + "gain": 1257, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 163 + }, + { + "ADDs": 11949, + "B": 10548832, + "F": 72427, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 164 + }, + { + "ADDs": 11950, + "B": 10548832, + "F": 72339, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 165 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 166 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 167 + }, + { + "ADDs": 11958, + "B": 10548832, + "F": 72363, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 168 + }, + { + "ADDs": 11954, + "B": 10544398, + "F": 72063, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 169 + }, + { + "ADDs": 11949, + "B": 10548832, + "F": 72327, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 170 + }, + { + "ADDs": 11955, + "B": 10548832, + "F": 72395, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 171 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72427, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 172 + }, + { + "ADDs": 11958, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1250, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 173 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 174 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72323, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 175 + }, + { + "ADDs": 11952, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 176 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 177 + }, + { + "ADDs": 11949, + "B": 10548832, + "F": 72327, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 178 + }, + { + "ADDs": 11959, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1249, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 179 + }, + { + "ADDs": 11955, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 180 + }, + { + "ADDs": 11956, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1252, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 181 + }, + { + "ADDs": 11954, + "B": 10548832, + "F": 72363, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 182 + }, + { + "ADDs": 11955, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 183 + }, + { + "ADDs": 11950, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 184 + }, + { + "ADDs": 11952, + "B": 10546990, + "F": 72279, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 185 + }, + { + "ADDs": 11952, + "B": 10548832, + "F": 72423, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 186 + }, + { + "ADDs": 11952, + "B": 10548832, + "F": 72387, + "admitted": false, + "gain": 1256, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 187 + }, + { + "ADDs": 11955, + "B": 10548832, + "F": 72435, + "admitted": false, + "gain": 1253, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 188 + }, + { + "ADDs": 11949, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1259, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 189 + }, + { + "ADDs": 11954, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 190 + }, + { + "ADDs": 11951, + "B": 10548832, + "F": 71271, + "admitted": true, + "gain": 1257, + "nine_bits": 192, + "nomination": 2, + "payload_bits": 102, + "removed_index": 191 + }, + { + "ADDs": 11950, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 192 + }, + { + "ADDs": 11950, + "B": 10548832, + "F": 72411, + "admitted": false, + "gain": 1258, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 193 + }, + { + "ADDs": 11953, + "B": 10548832, + "F": 72331, + "admitted": false, + "gain": 1255, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 194 + }, + { + "ADDs": 11954, + "B": 10548832, + "F": 72347, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 195 + }, + { + "ADDs": 11949, + "B": 10548832, + "F": 70083, + "admitted": true, + "gain": 1259, + "nine_bits": 192, + "nomination": 2, + "payload_bits": 101, + "removed_index": 196 + }, + { + "ADDs": 11957, + "B": 10548832, + "F": 72459, + "admitted": false, + "gain": 1251, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 197 + }, + { + "ADDs": 11954, + "B": 10548832, + "F": 72427, + "admitted": false, + "gain": 1254, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 198 + }, + { + "ADDs": 11962, + "B": 10548832, + "F": 72443, + "admitted": false, + "gain": 1246, + "nine_bits": 193, + "nomination": 2, + "payload_bits": 102, + "removed_index": 199 + } + ] +} diff --git a/research/r439-helper-matching/NOTICE.md b/research/r439-helper-matching/NOTICE.md new file mode 100644 index 0000000000..ecbc65e831 --- /dev/null +++ b/research/r439-helper-matching/NOTICE.md @@ -0,0 +1,69 @@ +# Notice and attribution + +New material is Apache-2.0. Prepared for **Gareth Davidson (@bitplane)** with +substantial **OpenAI Codex assistance** in research, implementation, proof, +verification and packaging. One AI agent performed the work. Independent +arithmetic implementations do not imply independent human review. + +**Sagar Thakrar (@thakrarsagar), PR716 and PR817**, supplies the prior +fixed-basis matching and exact price-certificate approach. The PR817 README +at `3147cac35c659152d36db1e0e60b9ce4b152c008` is preserved verbatim with its +SHA256 and Git-blob identity. It includes its Apache-2.0 and substantial +OpenAI Codex disclosures. No executable or numerical saving is imported +from PR817. The new result concerns R439 helper columns, includes odd-set +prices, and separates the exact arithmetic floor from the precision budget. + +The matching algorithm and odd-set inequalities are classical, not new +mechanisms claimed here. Optional nomination calls **NetworkX 3.6.1** with +integer weights; its function source SHA256 is +`41930910962d79c5da2da89788ead7819730daccb2858d72df3df7c55d893ee1`. +The [official documentation](https://networkx.org/documentation/stable/reference/algorithms/generated/networkx.algorithms.matching.max_weight_matching.html) +credits **Jack Edmonds** for the blossom/primal-dual methods and **Zvi Galil**, +*Efficient Algorithms for Finding Maximum Matching in Graphs* (1986), for +the algorithmic reference. NetworkX developers retain their BSD license; +no NetworkX algorithm source is copied into this package. A scoped profile +hook reads its final dual variables during optional discovery. Default +verification uses only the resulting integers and the elementary proof in +PROOF.md, with no NetworkX import or solver trust. + +**PR915**, `e9daefe320a0043000bd9746664ed02c3287d056`, provides this +contributor's frozen R439 target basis. **PR926**, +`0f216a345c37bc71cc0e22030ef11ec31b26a69e`, provides the immediate greedy +two-sided comparator and harness. Their word/recipe/proof/notice snapshots +are retained verbatim. PR926's receipt is also retained. I/O, package tests, +native-runner structure and the identified circuit-checking routines are +adapted from PR926; its native harness follows **Sagar Thakrar's +`research/r420-decoder-sharing/native.py`** pattern. The new runner executes +all five words and distinguishes the floor calibration's failed nine-stage +invoice cap from its passing local native checks. + +**Scott Woolsey Biggart**, PR733 and PR713, retains credit for two-sided and +target-basis factoring and the explicit mixed-term obligation; **Greer +Guthrie**, PR694, for disjoint helper bases; **Mikhail R. Gadelha**, PR686, +for the semantic D boundary and restored helper pair; **commdata2338**, +PR794, for guarded target-basis nomination; **Dugongue**, PR476/478 and +earlier PR450, for target-factoring precedents. **navinor**, PR848, records +the unchanged-H2 barrier which this semantic contract explicitly replaces. +Their full lineage and disclosures remain in the parent notices. Relative +links in archival documents refer to their original packages; those source +manifests are preserved for provenance, not treated as imported dependencies. + +The baseline and changed words derive from **DreamingOfClouds's PR589** +(`a5afc8c6169ea61ba7c51dfd3cade02cc7b13b46`) on **eumemic's PR555/543**. +DreamingOfClouds disclosed Claude Opus 5.5 through Claude Code; eumemic's +retained notice discloses Anthropic Claude assistance. Their Apache-2.0 +notices and licenses are immutable source inputs, with transport credit to +Dugongue and Rohan Arun. LICENSE here follows that source lineage. + +The unmodified native tools retain **Dylan Crow / utcorvusvolat-dotcom** +(PR370) for exporter/staging/checker lineage, **DaysSky** (PR381) for bridged +columns, **Zhihao Chen / jacklightChen** (PR386) for the portable header and +common-label interface lineage, **DreamingOfClouds** for nine-stage accounting, +and **Chafik Boukhalfa** and the other credited hosting/audit contributors. +Their original AI disclosures remain in the pinned notices. **Niels Lohmann +and contributors** retain the MIT header in `json.hpp`; **Jacob Sussman** +introduced the E8 unit. + +No priority is claimed for matching, its dual inequalities, basis factoring +or semantic substitution. Exact sources, the finite contribution and the +remaining integration work are recorded separately. diff --git a/research/r439-helper-matching/PROOF.md b/research/r439-helper-matching/PROOF.md new file mode 100644 index 0000000000..26b042144a --- /dev/null +++ b/research/r439-helper-matching/PROOF.md @@ -0,0 +1,157 @@ +# Disjoint helper matching, exact floor and precision gap + +All endpoint algebra is over F2. Integer positive bounds are calculated +separately, without binary cancellation. Equality of two forward integer +operators is not asserted. + +## Fixed recipe and matching reduction + +Let K be the original PR589 helper-to-target matrix and E the exact product +of 306 target transvections frozen by PR915. Its middle matrix is R = EK. +For helper pair `(a,b)`, the physical operation is `s[a] ^= s[b]`. Let H be +the product of all such operations in a disjoint pairing. Disjointness makes +the factors commute, each factor is involutive, and H inverse equals H. + +Apply H to helpers and E to targets, inject R H inverse, then restore E in +reverse chronological order and H in reverse order. The target output is + +```text +E inverse (E y + E K H inverse H s) = y + K s. +``` + +All helpers are restored and sources are untouched. Operands remain at +frame zero. Every non-D field and the complete state/frame boundary before +A are preserved. The original H2 syntax and literal K extractor do not +describe this basis-changing prefix. Their semantic replacement is the +entire arbitrary-input boundary just proved; their implementation remains +unchanged and reports false. All other original interface predicates hold. + +Writing H = I + B and E = I + A gives the necessary middle matrix +`K + AK + KB + AKB`. verify.py computes every coefficient directly from K +and E. Its 7,343 nonzero mixed-term entries cannot be discarded; doing so +fails the full D boundary control. + +Right multiplication by the helper transvection changes column b by column +a. If S_j is the support of column j of R, the fully paid saving is + +```text +g(a,b) = |S_b| - |S_b symmetric_difference S_a| - 2. +``` + +The two ADDs prepare and restore the helper. Accepted pairs have disjoint +endpoints, so no pair changes another pair's columns. Consequently the +exact total saving is the sum of g over the pairing. The fixed target +operations and non-D word cost the same in every member of the class. +For each unordered edge `{a,b}`, define `w(a,b) = max(g(a,b), g(b,a))`. +An oriented pairing has saving at most its undirected matching weight; +choosing a best orientation on each matched edge attains that weight. +Nonpositive edges are unnecessary for the unconstrained maximum. + +## Integer certificate + +NOMINATION.json contains nonnegative doubled vertex prices q_v and positive +doubled odd-set prices z_S. Every S consists of distinct vertices and has +odd cardinality at least three. The independent verifier checks all 96,141 +unordered edges, including edges with nonpositive gain: + +```text +2 w(a,b) <= q_a + q_b + sum(z_S : a and b both belong to S). +``` + +For any matching M, summing gives + +```text +2 weight(M) + <= sum(q_v : v is matched) + sum_S z_S * |M intersect edges(S)| + <= sum_v q_v + sum_S z_S * floor(|S|/2). +``` + +The second inequality uses only nonnegativity, disjoint matching endpoints +and the fact that each internal edge consumes two vertices of S. Odd sets +may overlap: each cardinality bound is separately valid, and their +nonnegative weighted sum remains valid. No solver, matching-polytope theorem, +laminarity assumption or floating arithmetic is needed to verify this bound. + +The 439 vertex prices and 19 odd-set prices give doubled objective **2,520**. +The frozen 199-pair lexicographic witness has exact saving **1,260**, proving +equality. Thus every member of the fixed recipe class costs at least +**13,208 - 1,260 = 11,948 complete ADDs**, and the witness attains that cost +when precision is ignored. The other two nominated matchings independently +attain the same saving. This is an exact class optimum, not a search failure +or a statement about unrestricted XOR circuits. + +The default verifier obtains S_j by set-valued reconstruction from the +original K and frozen E. Discovery instead uses packed columns and NetworkX's +integer matching implementation. The solver's private dual state is captured +only during optional nomination, with version and source hash fixed. The +default checker trusts none of that state without checking every inequality +and an attaining matching. + +## Bounded precision selection + +The three declared nominations use ordinary integer edge weights under +lexicographic or seed-4 insertion order, then a third lexicographic objective. +For the third objective, let c_a be the coefficient of helper a at final +register 291 in the unchanged positive suffix. That register has the largest +ordinary final source/helper value, 49,347. A helper preparation/restoration +increases the positive endpoint bound of its destination a from 1 to 3. +Thus c_a is a useful forward-cost proxy. It is not a claim about which +coordinate maximizes every changed word's complete prefix. + +The third integer edge objective is `L*w(a,b) - c_destination`, with +`L = 1 + sum_a c_a`. Each helper can be a destination at most once, so the +total secondary cost lies between zero and `sum_a c_a`. A unit improvement +in primary saving dominates every possible secondary difference. This +preserves primary matching optimality while preferring a smaller proxy. +When both orientations have equal gain, the lower proxy cost is selected. + +All three nominated optima require 193 nine-stage prefix bits. The bounded +follow-up prices every one-pair deletion, 199 + 199 + 200 = 598 alternatives. +Together with the three originals, exactly 601 words are evaluated. Seventeen +pass both caps. The selected candidate removes pair `(428,150)` from the +third matching. This loses one unit of saving and lowers F from 72,459 to +70,083. Its B remains 10,548,832. + +Candidate D costs `199 + 306 + 4,719 + 306 + 199 = 5,729`, giving 11,949 +complete ADDs. Its saving is 1,259 beyond PR915, 31 beyond PR926 and 12,356 +beyond PR589. The fixed-class precision-constrained minimum is therefore +in the integer interval **[11,948, 11,949]**. Failure of the three nominated +optima does not exclude a different feasible matching at 11,948. Neither +global precision-constrained optimality nor optimality of this discovery +proxy is claimed. + +## Complete bounds and remaining obligations + +The positive interpreter lowers all ADDs, COPYs and ERASEs. For the reverse +word it reverses instruction order and interchanges COPY/ERASE roles. +Every ADD is replaced by nonnegative addition, copies inherit their source +bound, and erasures reset the copy slot. Recording each intermediate +coordinate gives the signed triangle-inequality prefix majorant. It does +not use the F2 endpoint identity to cancel integer growth. + +All 601 words are replayed in both orientations, totaling 14,390,692 literal +instructions. The candidate's F = 70,083 and B = 10,548,832 yield a 101-bit +local bound and a 192-bit nine-stage bound. Both strict inequalities +`64 F^3 B^2 < 2^104` and `2^18 F^5 B^4 < 2^192` hold. The second uses the +source template at K = 4, nb = 6(K-1) = 18. The original 177-bit estimate +and charged 192 bits are reproduced from the pinned invoice. The candidate +uses about 87.43% of that numerical ceiling. + +The arithmetic-floor calibration remains a valid binary circuit and passes +all unchanged local 104-bit native checks. Its 193-bit nine-stage expression +is rejected separately. It is retained as an explicit adverse case, not +published as an admitted improvement. + +Every register's MOVE path, all COPY/ERASE operations, 439 helpers, nine +rank-seven totals and paid histogram are unchanged, with rank mass 5,129. +No additional source access, scratch, recursive child or copied total is +free or omitted. Five complete words are checked on 661 distinct D input +columns in both directions, plus original full-word geometry and native +5/9/11-stage columns. Scalar savings at those stages are 155 / 279 / 341 +beyond PR926, including every occurrence of the new prefix. + +Integration still requires semantic D acceptance, changed whole-hosted +emission and audit, full finite/precision invoices and outer assembly. The +same paid rank profile and this one prefix estimate do not establish those +results. The inherited common-label realization and analytic assumptions +remain in force. diff --git a/research/r439-helper-matching/README.md b/research/r439-helper-matching/README.md new file mode 100644 index 0000000000..1abf2051ac --- /dev/null +++ b/research/r439-helper-matching/README.md @@ -0,0 +1,170 @@ +# Exact R439 helper matching with a one-ADD precision gap + +**Finite bit-circuit construction and exact restricted-class cost bound.** +The complete word uses **11,949 ADDs**, saving **31 beyond PR926** while +reducing both positive prefix maxima. An integer matching certificate proves +an **11,948-ADD floor** for disjoint helper pairs around the frozen PR915 +target basis. The new circuit is within one ADD of that floor and satisfies +the existing precision ceilings. Whether an attaining optimum also meets +those ceilings remains open. No new κ is claimed. + +| Quantity | Selected PR589 | PR915 | PR926 | New candidate | Floor calibration | +|---|---:|---:|---:|---:|---:| +| D ADDs | 18,085 | 6,988 | 5,760 | 5,729 | 5,728 | +| Complete ADDs | 24,305 | 13,208 | 11,980 | 11,949 | 11,948 | +| Native records | 27,234 | 16,137 | 14,909 | 14,878 | 14,877 | +| Forward bound F | 49,347 | 49,347 | 71,907 | 70,083 | 73,603 | +| Reverse bound B | 1,113,070 | 9,534,616 | 10,562,318 | 10,548,832 | 10,518,760 | +| Local payload bits | 93 | 100 | 102 | 101 | 102 | +| Nine-stage prefix bits | 177 | 189 | 192 | 192 | **193: rejected** | + +The candidate has 199 disjoint helper pairs. Its complete D price is +**199 + 306 + 4,719 + 306 + 199 = 5,729 ADDs**. The remaining 6,220 ADDs, +all 439 helpers, nine rank-seven copied totals, every register's MOVE path, +all COPY/ERASE records and paid rank mass 5,129 are retained. Only D changes. +The complete saving against selected PR589 is 12,356 ADDs. + +## Reproduce + +The default verifier needs Python 3.12+, C++17 and Boost headers, with no +matching solver or network access: + +```sh +python3 -I -B research/r439-helper-matching/verify.py +python3 -I -B research/r439-helper-matching/test_package.py +``` + +Set `BOOST_INCLUDE` or `CXX` for nonstandard installations. Expected final line: + +```text +PASS_R439_HELPER_MATCHING: ADDs 11,980 -> 11,949; fixed-class floor 11,948; 601 budgeted words; one-ADD gap; no new kappa +``` + +`--output NEW_DIRECTORY` retains generated words, native records, commands and +logs. `--receipt NEW_FILE` saves the complete report; existing destinations +are refused. `--source-root ROOT` accepts the minimal closure enumerated by +[SOURCES.json](SOURCES.json). The entire report is compared with +[EXPECTED.json](EXPECTED.json). Regenerated gzip files are compared by full +canonical JSON payload. Optimized Python is supported; inherited subprocesses +run with assertions enabled. + +Optional discovery reproduction uses NetworkX 3.6.1 and checks the exact +matching implementation source hash before running: + +```sh +python3 -I -B research/r439-helper-matching/nominate.py --output /tmp/r439-new-nomination +``` + +Its expected marker is `PASS_R439_MATCHING_NOMINATION: three optima; 598 +deletions; 601 priced words`. The solver nominates witnesses and dual prices; +the default verifier establishes the bound using integer arithmetic alone. + +## What is certified + +For the frozen 111 by 439 matrix R = EK from PR915, pairing helpers a and b +changes column b by column a and costs two helper ADDs. Its net saving is +`weight(R[:,b]) - weight(R[:,b] XOR R[:,a]) - 2`. Disjointness makes these +savings additive. Choosing the better orientation gives an undirected +maximum-weight matching problem with 439 vertices and 1,885 positive edges. + +The independent checker recomputes both orientations of **all 96,141 +unordered pairs** using sets. It verifies 439 nonnegative integer vertex +prices and 19 positive prices on odd vertex sets, of sizes three through +seven. Every edge's doubled saving is bounded by its endpoint prices plus +the prices of odd sets containing both endpoints. Their total matching +upper bound is 2,520 in doubled units. An explicit matching saves 1,260, +giving equality and the exact complete-word floor **13,208 - 1,260 = 11,948**. +[PROOF.md](PROOF.md) gives the elementary sum-of-inequalities argument. + +The class fixes E, the non-D word, direct middle-matrix injections, and +disjoint helper transvections with both preparation and restoration paid. +It excludes changing E, overlapping helper shears, general XOR synthesis, +other frame schedules and cross-package composition. The floor ignores +precision. All three nominated optima fail the 192-bit nine-stage ceiling; +that does **not** show every optimum fails it. The precision-constrained +minimum in this class is either **11,948 or 11,949**. + +## Bounded nomination and precision + +OS assignment seed **4** selected this task from the three candidates in +[CLAIM.json](CLAIM.json). Three matching nominations are retained: +lexicographic insertion, seed-4 shuffled insertion, and the same shuffled +graph with a secondary objective reducing helper influence on one forward +coordinate. Each attains the certified arithmetic floor. The secondary +objective is a discovery proxy; no precision-optimality claim is made for it. + +The declared search then checks every single-pair deletion of those three +matchings: **598 deletions and 601 complete words**, including the optima. +Seventeen meet both caps. Exact cost, then prefix bits, F, B and stable +nomination/deletion indices break ties. The selected circuit deletes helper +pair `(428, 150)` from the third optimum, paying one extra ADD overall and +reducing its forward maximum from 72,459 to 70,083. This stops the search; +there are no unreported restarts or broader constrained-optimality claim. + +Every complete alternative is reconstructed and its positive bounds replayed +in both directions, including all copies and erasures: **14,390,692 literal +instructions**. The candidate satisfies + +```text +64 F^3 B^2 = 2451471101600792727738016530432 < 2^104 +2^18 F^5 B^4 = 5488085212775758317051376589272999430811861761916709896192 < 2^192 +``` + +The nine-stage estimate uses about **87.43%** of its ceiling, versus 99.925% +for PR926. The source formula and its 18-bridge exponent are checked, and +the original 177-bit estimate and 192-bit charge are reproduced. This does +not recompute any other global invoice allocation. + +## Circuit evidence and remaining integration + +The generic two-sided construction applies H to helpers, E to targets, +injects E K H inverse, then restores E and H. Its complete boundary is +`(x,y,s) -> (x,y+Ks,s)` for arbitrary dirty helpers and targets. The verifier +checks all 48,729 coefficients of the four-term expansion, including 7,343 +nonzero mixed-term entries, and all 661 input columns in both D directions +for all five words. The original full E8/frame/endpoint checks also pass. + +Fresh unchanged C++ 5/9/11-stage checks cover 883/1,327/1,549 formal columns +per word and reject all 240 omitted-bridge controls. The floor calibration +passes these local 104-bit checks but fails the separately bound 192-bit +nine-stage invoice expression. Nineteen local controls cover dual prices, +disjointness, dirty preparation/restoration, mixed terms, illegal access, +undercharging and exact ceiling equality. A neutral helper pair is accepted +and charged two ADDs. Eight package tests cover pins, strict JSON, receipts, +output preservation and recompression. + +The original syntactic H2 and literal K extraction remain false for all +four changed words; those predicates are unchanged. All other H1/H3/H4/H5 +predicates and source conclusions pass. Integration still needs acceptance +of the semantic D-boundary contract, changed whole-hosted emission and audit, +complete finite/precision invoices, and outer assembly against the selected +complex supplier. The common-label realization and analytic assumptions +remain inherited. This finite result is not a proof of the full multiplication +theorem or a measured runtime improvement. + +## Sources and credit + +Research base: `91a2094f2e022930069e8cfdc810a3ea1b81cd09`. +Publication base: `47481c89fd30a43f8f882eb4b391e89c29273fd0`. +Selected PR589: `a5afc8c6169ea61ba7c51dfd3cade02cc7b13b46`. +Frozen PR915: `e9daefe320a0043000bd9746664ed02c3287d056`. +Greedy comparator PR926: `0f216a345c37bc71cc0e22030ef11ec31b26a69e`. +Main advanced during validation to the reviewed PR890 frontier, +conditional κ = 0.001661957774647029, retaining PR589. All 14 consumed +source files are byte-identical after the rebase. This contribution adds +only its research package; it does not change that selected result or claim +credit for the intervening eighteen-PR integration. + +**Sagar Thakrar's PR716/817** supply the prior exact fixed-basis pairing and +vertex-price certificate approach; the PR817 README is retained at +`3147cac35c659152d36db1e0e60b9ce4b152c008`. This result concerns a different +R439 helper graph and includes odd-set prices, an explicit budget failure +and a one-ADD feasible gap. **Scott Woolsey Biggart's PR733**, **Greer +Guthrie's PR694**, **Mikhail R. Gadelha's PR686**, **commdata2338's PR794**, +and the earlier target-basis lineage retain credit through the parent notices. +**DreamingOfClouds**, **eumemic** and the native verification contributors +retain the original source notices. See [NOTICE.md](NOTICE.md). + +Prepared for **Gareth Davidson (@bitplane)** with substantial **OpenAI Codex +assistance** in research, implementation, proof, verification and packaging. +Apache-2.0; no independent human review is claimed. diff --git a/research/r439-helper-matching/SOURCES.json b/research/r439-helper-matching/SOURCES.json new file mode 100644 index 0000000000..a1df824fe0 --- /dev/null +++ b/research/r439-helper-matching/SOURCES.json @@ -0,0 +1,62 @@ +{ + "base_commit": "47481c89fd30a43f8f882eb4b391e89c29273fd0", + "base_refresh": "All 14 consumed source files are byte-identical after the PR890 integration. The new selected assembly retains PR589; no mathematical input changed.", + "files": { + "research/e8-bit-carrier-skeleton/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "research/e8-bit-carrier-skeleton/NOTICE.md": "5f4b7fcbf99f572be28b6da612ce775363908cdfc7810f7aca167be01c86e49a", + "research/e8-bit-carrier-skeleton/code/bit/checkers/columns_k.cpp": "1c344d18fcd494eeca93e259f10cafae7705780e6592f6dcb35b34752dab9bc2", + "research/e8-bit-carrier-skeleton/code/bit/checkers/json.hpp": "aaf127c04cb31c406e5b04a63f1ae89369fccde6d8fa7cdda1ed4f32dfc5de63", + "research/e8-bit-carrier-skeleton/code/bit/checkers/legality_h.cpp": "6c1ef2b24e57781d6951c172a1024fc4300e6fd392c9d6672079a7806ab663b3", + "research/e8-bit-carrier-skeleton/code/bit/export_records.py": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3", + "research/e8-bit-carrier-skeleton/code/bit/regression/stage_cohort.py": "6c288f6f234b528c1a7c0a4adfb724e91e0fe6b18c8dffad96af3f973de1829a", + "research/e8-bit-carrier-skeleton/portable-include/bits/stdc++.h": "420094be2af295eed03a983dd66debbbe9cfb78d8252859f4498a615a0074b99", + "research/e8-bit-p111-tuned/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "research/e8-bit-p111-tuned/NOTICE.md": "5b88eb2b7de76aa2a3288ee3c7a08d18a5eadfa82f5e7a99e207d232aed71221", + "research/e8-bit-p111-tuned/code/xcheck_p.py": "af3decc877e27c00001cf56f50c6c09566e8e101297ab34c7860aed96a06d80e", + "research/e8-bit-p111-tuned/tune/EXPECTED.json": "b9f0e5ca038abe837b0007c8fe006f366a6f02009244ac57705a8a200e2301f4", + "research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f", + "research/e8-bit-p111-tuned/vendor/pr510/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/global_k.py": "6368196a393ac25bb2918880e4c4bd31ed733b762c27b6873ab391cbc0c5c3c8" + }, + "greedy_comparator": { + "canonical_word_sha256": "fdb1a0dfafe5392e01fb87f5813737db0f15682c5cb98fc224d4d4cdbc806dd2", + "head": "0f216a345c37bc71cc0e22030ef11ec31b26a69e", + "pr": 926 + }, + "harness_adaptation": { + "head": "0f216a345c37bc71cc0e22030ef11ec31b26a69e", + "pr": 926, + "use": "I/O, source/receipt controls and native runner; borrowed checker routines identified in source." + }, + "local_files": { + "vendor/pr817/README.md": "0f0ac2a905e30958d033c415304db9412947f7c6b30669b4f1d488aaddeb1c57", + "vendor/pr915/CERTIFICATE.json": "a9958d9a933b57dcb9f7e5cf8e9694c0762f055a1cdab9f8ab42b2c6561fc4d7", + "vendor/pr915/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/pr915/NOTICE.md": "efbb1d2b2c85cbdbb7b048e2b7405e0654dfa40ddf6a1e94f11df313bdedb638", + "vendor/pr915/PROOF.md": "ddb5c3affbef52fa37af13b291bf089ca16f9dfe976e5a5590188b128b262425", + "vendor/pr915/README.md": "0c606598a6366bc0e6840d853c28237f8e5fe5866d89765d79815f973224f1fd", + "vendor/pr915/candidate.json.gz": "ac30266144f8772ec8cd629153993aa9eb692fe745a9f95015a1b7fa88977a2e", + "vendor/pr926/CERTIFICATE.json": "3abb601be609f117361e17ce5ada5477d4493ee6aec9070c749089ec923e1848", + "vendor/pr926/EXPECTED.json": "17c580fbbd7a5e52f978d5ede778e8f34acf4a8cfb1e1eb3209bfaab3c8e7e9c", + "vendor/pr926/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/pr926/NOTICE.md": "9b5f63f17823a04b48c3e8065b4e32fe8ce1e861117cec11bd8c6f1376800d12", + "vendor/pr926/PROOF.md": "c664aca1a79e55efac4af1160008f9d5377b0ef4be8dba2630512f7be6baafd7", + "vendor/pr926/README.md": "88ae71c23df68050e036fdec201f356c5e0ffc10e4da3b561b04b0aa99464c7c", + "vendor/pr926/SOURCES.json": "6334cb185db0568919f5fcce85edaad1ceec1ffaf3e4ac08e6e9e819a8017eb1", + "vendor/pr926/candidate.json.gz": "6ac771545e823c054e005429c405dbb2c01ff80fce181b714e1af5e28b6b7cb2" + }, + "method_predecessor": { + "README_git_blob": "41dcb4e3a6494d5c33f36a0cf0d411b202811493", + "author": "Sagar Thakrar", + "head": "3147cac35c659152d36db1e0e60b9ce4b152c008", + "pr": 817, + "use": "Exact fixed-basis pairing bound and independently checked price certificate; no executable imported." + }, + "parent": { + "canonical_word_sha256": "6aec2c6f91c87a7440af10cdeb90b8814501224a86de14d4033ae3ffa00899da", + "head": "e9daefe320a0043000bd9746664ed02c3287d056", + "pr": 915 + }, + "research_base_commit": "91a2094f2e022930069e8cfdc810a3ea1b81cd09", + "selected_word_commit": "a5afc8c6169ea61ba7c51dfd3cade02cc7b13b46", + "selected_word_pr": 589 +} diff --git a/research/r439-helper-matching/VALIDATION.md b/research/r439-helper-matching/VALIDATION.md new file mode 100644 index 0000000000..c914f0e2d8 --- /dev/null +++ b/research/r439-helper-matching/VALIDATION.md @@ -0,0 +1,90 @@ +# Executed validation + +Executed on Linux, 2026-10-13, with CPython 3.14.4 and CPython 3.12.3, +GCC C++ 15.2.0, C++17 and Boost 1.83 headers. Boost was extracted outside +the repository from Ubuntu `libboost1.83-dev_1.83.0-5ubuntu5_amd64.deb`, SHA256 +`c17abc5a40a074c3d959655191ebec1561fa25f14f4948f6788be49417d4b234`. + +## Complete replay + +The normal isolated CPython 3.14.4 verifier passed against the entire frozen +EXPECTED.json. The optimized `-I -O -B` CPython 3.12.3 verifier also passed +from an unrelated working directory, using only this package and the 14 +declared main-source files. The minimal closure had no Git metadata and its +path contained spaces. All input files/directories were made read-only; all +outputs were placed elsewhere. Default verification imported no NetworkX. + +Both complete mathematical receipts are identical, canonical SHA256 +`3296fcf8afeefd2f15eeea4fbd3a769dbcf95275ea2b9e2795c69a2a396adcd4`. +Each includes: + +- Every one of 96,141 undirected edge inequalities, covering 192,282 + orientations, with 1,885 positive edges and 347 tight dual inequalities. + The 439 vertex prices and 19 odd-set prices give doubled objective 2,520; + the explicit witness has saving 1,260. +- Set-valued reconstruction of the fixed target basis and all three + arithmetic-optimum matchings. Every complete word and all 598 single-pair + deletions are repriced: 601 cases, 17 admitted, 14,390,692 literal positive + instructions across both orientations. +- All 439 helper unit columns for the secondary discovery proxy, separately + evaluated from literal suffix instructions. +- Both regenerated word payloads and every certificate field, including + the adverse arithmetic-floor calibration. +- All 48,729 direct four-term coefficients for the selected candidate, + including 7,343 nonzero mixed-term entries. +- All 661 separate D input columns in both directions for five complete + words: PR589, PR915, PR926, the floor calibration and the candidate. + The unmodified full E8/frame/endpoint checker also passes each word. + Original H2 and literal K extraction remain false for the four changed + words, with every other hypothesis and conclusion true. +- Fresh compilation of unchanged native legality and 5/9/11-stage checkers. + All five words pass their local 104-bit checks on 883/1,327/1,549 formal + columns, with all 240 omitted-bridge controls rejected. Full MOVE paths, + COPY/ERASE records, paid histogram and rank mass agree. +- Native/literal ADD counts and both positive maxima agree. The separately + source-bound nine-stage expression rejects the floor calibration at + 193 bits and admits the selected candidate at 192 bits. +- Nineteen local mathematical rejection controls and the paid neutral + helper-pair positive control. Eight package tests pass on each interpreter. + +The optional nomination was also rerun with NetworkX 3.6.1, whose matching +function source hash is checked in nominate.py. It reproduces every field +of NOMINATION.json, including all three matchings, the dual, proxy columns, +601 priced alternatives and selection. Source-hashed solver introspection +is discovery machinery; the default proof checker validates its output by +integer inequalities and actual circuit replay. + +## Base refresh and scope + +Research began at `91a2094f2e022930069e8cfdc810a3ea1b81cd09`, selecting PR799. +During final validation, main advanced to +`47481c89fd30a43f8f882eb4b391e89c29273fd0`, selecting the reviewed PR890 +conditional κ = 0.001661957774647029 and retaining PR589. The branch was +rebased before publication. All 14 mathematical/tool inputs are byte-identical +on the new base and their pins pass after rebase. No executable, recipe or +receipt changed during that alignment; only contextual base metadata and +documentation changed. The full replays above therefore apply to the same +consumed bytes. `make selected-record-check` passed before and after rebase. +The scoped staged whitespace check also passed. + +The instructions gist remained at +`4180bf0d4045ffdcd12d75bb1fec91c234420162`. The final queue snapshot contained +708 open PRs through PR937. PR817, PR915 and PR926 retained their pinned +heads. No competing matching certificate for this frozen R439 helper graph +was found. PR933 changes the gate-order/frame search class, with D fixed; +PR936 extends PR904's phase-A window synthesis. Their savings are not composed +here. PR928's proposed directory standard was not part of main. No pinned +sprint coordination issue existed, so the claim is local. + +The result establishes the exact arithmetic floor only for the stated +disjoint-helper recipe class. Its precision-constrained optimum remains +either 11,948 or 11,949 ADDs. The three rejected floor nominations do not +exclude another feasible optimum. Native local success does not discharge +the failed nine-stage charge of the adverse calibration. + +Semantic D acceptance, changed whole-hosted emission/audit, complete +finite/precision invoices and outer assembly remain integration work. +Common-label realization and analytic assumptions remain inherited. +No full repository suite, selected-supplier cold replay, formal full +multiplication theorem, new exponent, measured runtime improvement or hosted +CI success is claimed by these local results. diff --git a/research/r439-helper-matching/build.py b/research/r439-helper-matching/build.py new file mode 100644 index 0000000000..11072b56c3 --- /dev/null +++ b/research/r439-helper-matching/build.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python3 +"""Build the frozen exact-matching recipe, with every helper operation charged. + +Prepared for Gareth Davidson (@bitplane), with OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import copy +import gzip +from pathlib import Path +import runpy + +C = runpy.run_path(str(Path(__file__).resolve().with_name("common.py"))) +need = C["need"] + + +def assemble(parent, pairs): + v, helpers, count = parent["v"], parent["R"], 306 + columns = [0] * helpers + for _, d, sources in parent["D"][count:count + v]: + for source in sources: + columns[source - 2 * v] ^= 1 << (d - v) + for a, b in pairs: + columns[b] ^= columns[a] + preparation = [[0, 2 * v + a, [2 * v + b]] for a, b in pairs] + middle = [[0, v + i, [2 * v + j for j, col in enumerate(columns) if (col >> i) & 1]] + for i in range(v)] + result = copy.deepcopy(parent) + result["D"] = preparation + parent["D"][:count] + middle + parent["D"][count + v:] + preparation[::-1] + return result + + +def positive(word, reverse=False): + """Macro evaluation; the verifier independently lowers individual instructions.""" + v, n = word["v"], 2 * word["v"] + word["R"] + values, largest = [1] * n, 1 + sections = ("C", "B", "scatter", "A", "D") if reverse else ("D", "A", "scatter", "B", "C") + for section in sections: + if section == "scatter": + centers = range(len(word["ret"]) - 1, -1, -1) if reverse else range(len(word["ret"])) + for j in centers: + for i, row in enumerate(word["scatter"]): + if j in row: + values[v + i] += values[word["ret"][j]] + largest = max(largest, values[v + i]) + else: + for _, d, sources in (reversed(word[section]) if reverse else word[section]): + values[d] += sum(values[s] for s in sources) + largest = max(largest, values[d]) + return largest + + +def run(root, output): + C["pins"](root) + output = Path(output) + output.mkdir(parents=True, exist_ok=False) + original = C["load"](Path(root) / C["WORD"]) + parent = C["load"](C["HERE"] / "vendor/pr915/candidate.json.gz") + greedy = C["load"](C["HERE"] / "vendor/pr926/candidate.json.gz") + nomination = C["load"](C["HERE"] / "NOMINATION.json") + pairs = nomination["selected_pairs"] + candidate = assemble(parent, pairs) + floor_word = assemble(parent, nomination["nominations"][0]["pairs"]) + forward, backward = positive(candidate), positive(candidate, True) + d_cost = sum(len(g[2]) for g in candidate["D"]) + total = sum(len(g[2]) for section in "DABC" for g in candidate[section]) + sum(map(len, candidate["scatter"])) + result = dict(format="r439-helper-matching/1", seed=4, baseline_sha256=C["digest"](original), + parent_sha256=C["digest"](parent), greedy_sha256=C["digest"](greedy), + candidate_sha256=C["digest"](candidate), floor_word_sha256=C["digest"](floor_word), + nomination_sha256=C["digest"](nomination), helper_pairs=len(pairs), target_shears=306, + D_adds=d_cost, native_ADDs=total, middle_weight=d_cost - 612 - 2 * len(pairs), + saved_beyond_parent=13208 - total, saved_beyond_greedy=11980 - total, + F=forward, B=backward, payload_bits=(64 * forward ** 3 * backward ** 2).bit_length(), + nine_stage_prefix_bits=((1 << 18) * forward ** 5 * backward ** 4).bit_length()) + C["write"](output / "CERTIFICATE.json", result) + for name, word in (("candidate", candidate), ("floor-word", floor_word)): + with (output / (name + ".json.gz")).open("xb") as stream: + stream.write(gzip.compress(C["canonical"](word), mtime=0)) + print("built", len(pairs), "helper pairs; complete ADDs", total, + "F", forward, "B", backward, "nine-stage bits", result["nine_stage_prefix_bits"], flush=True) + return result + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--source-root", type=Path, default=C["ROOT"]) + parser.add_argument("--output", type=Path, required=True) + args = parser.parse_args() + run(args.source_root, args.output) diff --git a/research/r439-helper-matching/candidate.json.gz b/research/r439-helper-matching/candidate.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..b3befb831854157e14512ac40fa48dbea289d105 GIT binary patch literal 39115 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 F0s#Km5F`Kq literal 0 HcmV?d00001 diff --git a/research/r439-helper-matching/common.py b/research/r439-helper-matching/common.py new file mode 100644 index 0000000000..b4f4fbc803 --- /dev/null +++ b/research/r439-helper-matching/common.py @@ -0,0 +1,69 @@ +"""Small I/O helpers; no circuit or verification logic. Apache-2.0.""" +import gzip +import hashlib +import importlib.util +import json +from pathlib import Path + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +WORD = "research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz" +CHECKER = "research/e8-bit-p111-tuned/code/xcheck_p.py" +HUB = "research/e8-bit-carrier-skeleton" + + +def need(condition, message): + if not condition: + raise ValueError(message) + + +def canonical(value): + return json.dumps(value, sort_keys=True, separators=(",", ":"), allow_nan=False).encode() + + +def digest(value): + return hashlib.sha256(canonical(value)).hexdigest() + + +def pairs(items): + result = {} + for key, value in items: + need(key not in result, "duplicate JSON key: " + key) + result[key] = value + return result + + +def invalid_constant(value): + raise ValueError("invalid JSON constant: " + value) + + +def load(path): + path = Path(path) + data = path.read_bytes() + if path.suffix == ".gz": + data = gzip.decompress(data) + return json.loads(data, object_pairs_hook=pairs, parse_constant=invalid_constant) + + +def write(path, value): + with Path(path).open("x") as stream: + json.dump(value, stream, indent=2, sort_keys=True, allow_nan=False) + stream.write("\n") + + +def pins(root): + manifest = load(HERE / "SOURCES.json") + for name, sha in manifest["files"].items(): + need(hashlib.sha256((Path(root) / name).read_bytes()).hexdigest() == sha, + "source hash mismatch: " + name) + for name, sha in manifest["local_files"].items(): + need(hashlib.sha256((HERE / name).read_bytes()).hexdigest() == sha, + "predecessor proof hash mismatch: " + name) + return manifest + + +def module(name, path): + spec = importlib.util.spec_from_file_location(name, path) + result = importlib.util.module_from_spec(spec) + spec.loader.exec_module(result) + return result diff --git a/research/r439-helper-matching/floor-word.json.gz b/research/r439-helper-matching/floor-word.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..906e935541d6a5d2ca40d2885e21e46b4675b0ee GIT binary patch literal 39075 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 literal 0 HcmV?d00001 diff --git a/research/r439-helper-matching/native.py b/research/r439-helper-matching/native.py new file mode 100644 index 0000000000..8f5f35dcbe --- /dev/null +++ b/research/r439-helper-matching/native.py @@ -0,0 +1,116 @@ +#!/usr/bin/env python3 +"""Unmodified native legality and 5/9/11-stage checks, R439 compensation. + +Harness adapted from Sagar Thakrar's research/r420-decoder-sharing/native.py. +Prepared for Gareth Davidson (@bitplane), with OpenAI Codex assistance. Apache-2.0. +""" +import os +from pathlib import Path +import runpy +import shlex +import struct +import subprocess +import sys + +C = runpy.run_path(str(Path(__file__).resolve().with_name("common.py"))) +need = C["need"] + + +def run(root, words, output): + C["pins"](root) + output = Path(output).resolve() + output.mkdir(parents=True, exist_ok=False) + hub = Path(root).resolve() / C["HUB"] + checker = hub / "code/bit/checkers" + compiler = shlex.split(os.environ.get("CXX", "c++")) + includes = ["-I" + str(hub / "portable-include"), "-I" + str(checker), + "-I" + os.environ.get("BOOST_INCLUDE", "/usr/include")] + commands = [] + + def execute(args, log): + args = [str(x) for x in args] + commands.append(args) + with log.open("x") as stream: + subprocess.run(args, stdout=stream, stderr=subprocess.STDOUT, check=True) + + common = compiler + ["-O2", "-std=c++17", "-DHDIM=8", "-DNCOPY=9"] + includes + execute(common + ["-o", output / "legality", checker / "legality_h.cpp"], + output / "compile-legality.log") + for k in (2, 4, 5): + execute(common + ["-DVPORTS=111", "-DRHELP=439", "-DKPAIRS=" + str(k), + "-o", output / ("columns-" + str(k)), checker / "columns_k.cpp"], + output / ("compile-columns-" + str(k) + ".log")) + python = [sys.executable, "-I", "-B"] + result, nonadd = {}, {} + for label, word in words.items(): + print("native", label, flush=True) + folder = output / label + folder.mkdir() + records, cin, cout = (folder / name for name in ("records", "cin", "cout")) + execute(python + [hub / "code/bit/export_records.py", Path(word).resolve(), records], + folder / "export.log") + execute(python + [hub / "code/bit/regression/stage_cohort.py", records, records, cin, cout], + folder / "stage.log") + execute([output / "legality", cin, cout, cout / "legality.json"], folder / "legality.log") + legality = C["load"](cout / "legality.json") + need(legality["status"] == "PASS_INDEPENDENT_COHORT_LEGALITY_SOURCE_OWNERS_AND_LIFECYCLE", + "native legality") + need(legality["copies"] == legality["erasures"] == 9, "native copy lifecycle") + # Per-register MOVE sequences, including ranks, and unchanged COPY/ERASE blocks. + record_rows = list(struct.iter_unpack("<6i", (records / "249-records.bin").read_bytes())) + movements = {} + for row in record_rows: + if row[0] == 0: + movements.setdefault(str(row[1]), []).append(list(row)) + nonadd[label] = {"moves": movements, "copy_erase": [list(x) for x in record_rows if x[0] in (2, 3)]} + columns_receipts = {} + for k in (2, 4, 5): + name = "columns-" + str(k) + execute([output / name, cout / "COHORT249-RECORDS.bin", cout / (name + ".json")], + folder / (name + ".log")) + columns = C["load"](cout / (name + ".json")) + expected_status = ("PASS_NEW_COHORT249_ALL_FIVE_STAGE_FORMAL_COLUMNS_AND_PREFIX_BILL" if k == 2 + else "PASS_NEW_COHORT249_ALL_BRIDGED_STAGE_FORMAL_COLUMNS_AND_PREFIX_BILL") + need(columns["status"] == expected_status, "native columns") + need(columns["formal_columns_checked"] == 2 * k * 111 + 439, "column coverage") + need(len(columns["stages"]) == 2 * k + 1, "stage coverage") + need(columns["bridge_additions"] == 6 * (k - 1) * 111, "bridge cost") + need(columns["fresh_center_copies"] == 9 * (2 * k + 1), "stage COPY cost") + need(columns["payload_prefix_bits"] <= 104, "inherited prefix cap") + controls = columns["negative_controls"] + need(len(controls) == 6 * (k - 1) and all(x["rejected"] is True for x in controls), + "omitted bridge controls") + need(legality["common_frame_ADDs"] == columns["local_scalar_additions"], "ADD agreement") + columns_receipts[str(2 * k + 1)] = {key: columns[key] for key in ( + "formal_columns_checked", "bridge_additions", "fresh_center_copies", "reverse_fresh_center_copies", + "signed_lift_prefix", "payload_prefix_bits", "payload_prefix_upper", "local_raw_H", "stages")} + columns_receipts[str(2 * k + 1)]["controls_rejected"] = len(controls) + result[label] = {key: legality[key] for key in ("records", "common_frame_ADDs", "rank_mass", "paid_histogram", + "copies", "erasures")} + result[label]["staged"] = columns_receipts + expected = {"baseline": (24305, 49347, 1113070, 177), + "parent": (13208, 49347, 9534616, 189), + "greedy": (11980, 71907, 10562318, 192), + "floor": (11948, 73603, 10518760, 193), + "candidate": (11949, 70083, 10548832, 192)} + before = result["baseline"] + for label, (adds, forward, backward, nine_bits) in expected.items(): + after = result[label] + need(C["canonical"](nonadd["baseline"]) == C["canonical"](nonadd[label]), "frame paths changed") + need(after["common_frame_ADDs"] == adds, "native ADD cost") + need(before["records"] - after["records"] == 24305 - adds, "unexpected record changes") + for key in ("rank_mass", "paid_histogram", "copies", "erasures"): + need(before[key] == after[key], "paid resources changed: " + key) + for stage in ("5", "9", "11"): + old, new = before["staged"][stage], after["staged"][stage] + need(old["local_raw_H"] == new["local_raw_H"], "local raw ranks changed") + bounds = [int(x["cancellation_free_signed_row_l1_upper"]) for x in new["signed_lift_prefix"]] + need(bounds == [forward, backward], "literal/native positive bound agreement") + value = (1 << 18) * bounds[0] ** 5 * bounds[1] ** 4 + need(value.bit_length() == nine_bits, "nine-stage prefix bound") + # The floor word is an explicit adverse calibration: it passes the + # unchanged local 104-bit native checks but fails the 192-bit invoice cap. + need((value < 1 << 192) == (label != "floor"), "nine-stage admission") + C["write"](output / "commands.json", commands) + C["write"](output / "native-report.json", result) + return result diff --git a/research/r439-helper-matching/nominate.py b/research/r439-helper-matching/nominate.py new file mode 100644 index 0000000000..8d537c2f75 --- /dev/null +++ b/research/r439-helper-matching/nominate.py @@ -0,0 +1,149 @@ +#!/usr/bin/env python3 +"""Optional bounded discovery replay; certificate verification needs no solver. + +Uses NetworkX 3.6.1's Edmonds/Galil matching implementation without modifying it. +Prepared for Gareth Davidson (@bitplane), with OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import hashlib +import inspect +from pathlib import Path +import random +import runpy +import sys + +C = runpy.run_path(str(Path(__file__).resolve().with_name("common.py"))) +need = C["need"] +SOURCE_SHA = "41930910962d79c5da2da89788ead7819730daccb2858d72df3df7c55d893ee1" + + +def suffix(word, values): + values = list(values) + for section in ("A", "scatter", "B", "C"): + if section == "scatter": + for i, row in enumerate(word["scatter"]): + values[word["v"] + i] += sum(values[word["ret"][j]] for j in row) + else: + for _, d, sources in word[section]: + values[d] += sum(values[s] for s in sources) + return values + + +def run(root, output): + import networkx as nx + C["pins"](root) + need(nx.__version__ == "3.6.1", "nomination requires NetworkX 3.6.1") + source_hash = hashlib.sha256(inspect.getsource(nx.algorithms.matching.max_weight_matching).encode()).hexdigest() + need(source_hash == SOURCE_SHA, "matching implementation source changed") + output = Path(output) + output.mkdir(parents=True, exist_ok=False) + build = C["module"]("matching_builder", C["HERE"] / "build.py") + parent = C["load"](C["HERE"] / "vendor/pr915/candidate.json.gz") + v, helpers, count = parent["v"], parent["R"], 306 + n = 2 * v + helpers + columns = [0] * helpers + for _, d, sources in parent["D"][count:count + v]: + for s in sources: + columns[s - 2 * v] ^= 1 << (d - v) + tail = suffix(parent, [1] * n) + pivot = max(list(range(v)) + list(range(2 * v, n)), key=lambda j: tail[j]) + cost = [] + for j in range(helpers): + vector = [0] * n + vector[2 * v + j] = 1 + cost.append(suffix(parent, vector)[pivot]) + edges = [] + for a in range(helpers): + for b in range(a + 1, helpers): + distance = (columns[a] ^ columns[b]).bit_count() + ab, ba = columns[b].bit_count() - distance - 2, columns[a].bit_count() - distance - 2 + if max(ab, ba) > 0: + edges.append((a, b, ab, ba)) + + def charges(pairs): + word = build.assemble(parent, pairs) + forward, backward = build.positive(word), build.positive(word, True) + total = 6220 + sum(len(g[2]) for g in word["D"]) + local, nine = 64 * forward ** 3 * backward ** 2, (1 << 18) * forward ** 5 * backward ** 4 + return dict(ADDs=total, gain=13208 - total, F=forward, B=backward, + payload_bits=local.bit_length(), nine_bits=nine.bit_length(), + admitted=local < 1 << 104 and nine < 1 << 192) + + nominations, primary_dual = [], None + multiplier = 1 + sum(cost) + for variant in ("lexicographic", "seed4", "forward_proxy"): + rng = random.Random(4) + nodes, ordered_edges = list(range(helpers)), list(edges) + if variant != "lexicographic": + rng.shuffle(nodes) + rng.shuffle(ordered_edges) + graph, orientation = nx.Graph(), {} + graph.add_nodes_from(nodes) + for a, b, ab, ba in ordered_edges: + if ab > ba: + pair = (a, b) + elif ba > ab: + pair = (b, a) + elif variant == "lexicographic": + pair = (a, b) + elif variant == "seed4": + pair = (a, b) if rng.getrandbits(1) else (b, a) + else: + pair = min(((a, b), (b, a)), key=lambda p: (cost[p[0]], p)) + orientation[a, b] = pair + weight = max(ab, ba) + if variant == "forward_proxy": + weight = weight * multiplier - cost[pair[0]] + graph.add_edge(a, b, weight=weight) + captured = {} + + def profile(frame, event, argument): + # Source-hashed discovery introspection only. The default verifier + # independently validates these plain integers, not solver internals. + if event == "return" and frame.f_code.co_name == "max_weight_matching" and "dualvar" in frame.f_locals: + local = frame.f_locals + captured["vertex_prices_2"] = [local["dualvar"][i] for i in range(helpers)] + captured["odd_sets"] = [dict(vertices=sorted(b.leaves()), price_2=2 * z) + for b, z in local["blossomdual"].items() if z] + + previous = sys.getprofile() + sys.setprofile(profile) + try: + matching = nx.max_weight_matching(graph) + finally: + sys.setprofile(previous) + pairs = sorted(orientation[min(a, b), max(a, b)] for a, b in matching) + nominations.append(dict(variant=variant, pairs=pairs, **charges(pairs))) + need(captured, "matching dual was not captured") + if variant == "lexicographic": + primary_dual = captured + print(variant, "pairs", len(pairs), "ADDs", nominations[-1]["ADDs"], flush=True) + + trials, best = [], None + for ni, nomination in enumerate(nominations): + for removed in range(-1, len(nomination["pairs"])): + pairs = [pair for i, pair in enumerate(nomination["pairs"]) if i != removed] + bill = charges(pairs) + row = dict(nomination=ni, removed_index=removed, **bill) + trials.append(row) + key = (bill["ADDs"], bill["nine_bits"], bill["F"], bill["B"], ni, removed) + if bill["admitted"] and (best is None or key < best[0]): + best = key, pairs, row + need(best is not None, "no admitted candidate in bounded family") + result = dict(networkx=nx.__version__, seed=4, networkx_matching_source_sha256=source_hash, + positive_edges=len(edges), proxy_pivot=pivot, proxy_cost=cost, + lexicographic_multiplier=multiplier, nominations=nominations, primary_dual=primary_dual, + trials=trials, selected=best[2], selected_pairs=best[1]) + C["write"](output / "NOMINATION.json", result) + need(C["canonical"](result) == C["canonical"](C["load"](C["HERE"] / "NOMINATION.json")), + "nomination differs from committed record") + print("PASS_R439_MATCHING_NOMINATION: three optima; 598 deletions; 601 priced words", flush=True) + return result + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--source-root", type=Path, default=C["ROOT"]) + parser.add_argument("--output", type=Path, required=True) + args = parser.parse_args() + run(args.source_root, args.output) diff --git a/research/r439-helper-matching/test_package.py b/research/r439-helper-matching/test_package.py new file mode 100644 index 0000000000..305cbe8605 --- /dev/null +++ b/research/r439-helper-matching/test_package.py @@ -0,0 +1,100 @@ +#!/usr/bin/env python3 +"""Fast source/receipt/output controls, separate from mathematical replay. Apache-2.0.""" +import gzip +from pathlib import Path +import runpy +import shutil +import subprocess +import sys +import tempfile +import unittest + +C = runpy.run_path(str(Path(__file__).resolve().with_name("common.py"))) +V = runpy.run_path(str(C["HERE"] / "verify.py")) +B = runpy.run_path(str(C["HERE"] / "build.py")) + + +class PackageControls(unittest.TestCase): + def setUp(self): + self.temp = tempfile.TemporaryDirectory(prefix="r439 package controls ") + self.addCleanup(self.temp.cleanup) + self.path = Path(self.temp.name) + + def closure(self): + root = self.path / "source closure" + manifest = C["load"](C["HERE"] / "SOURCES.json") + for name in manifest["files"]: + target = root / name + target.parent.mkdir(parents=True, exist_ok=True) + shutil.copyfile(C["ROOT"] / name, target) + return root + + def rejected_cli(self, *args, reason): + result = subprocess.run([sys.executable, "-I", "-O", "-B", str(C["HERE"] / "verify.py"), + *map(str, args)], text=True, capture_output=True) + self.assertNotEqual(result.returncode, 0) + self.assertIn(reason, result.stderr) + + def test_typed_receipt(self): + with self.assertRaisesRegex(ValueError, "different"): + V["same"]({"value": 1}, {"value": True}, "different") + + def test_strict_json(self): + for i, text in enumerate(('{"x":0,"x":1}', '{"x":NaN}', '{"x":Infinity}')): + with self.subTest(text=text): + path = self.path / (str(i) + ".json") + path.write_text(text) + with self.assertRaises(ValueError): + C["load"](path) + + def test_changed_source(self): + root = self.closure() + word = root / C["WORD"] + word.write_bytes(word.read_bytes() + b"changed") + with self.assertRaisesRegex(ValueError, "source hash mismatch"): + C["pins"](root) + + def test_missing_source(self): + root = self.closure() + (root / C["CHECKER"]).unlink() + with self.assertRaises(FileNotFoundError): + C["pins"](root) + + def test_builder_output_preserved(self): + output = self.path / "existing output" + output.mkdir() + marker = output / "keep" + marker.write_text("unchanged") + with self.assertRaises(FileExistsError): + B["run"](C["ROOT"], output) + self.assertEqual(marker.read_text(), "unchanged") + self.assertEqual([p.name for p in output.iterdir()], ["keep"]) + + def test_verifier_output_preserved(self): + output = self.path / "existing output" + output.mkdir() + marker = output / "keep" + marker.write_text("unchanged") + self.rejected_cli("--output", output, reason="output already exists") + self.assertEqual(marker.read_text(), "unchanged") + + def test_verifier_receipt_preserved(self): + receipt = self.path / "existing receipt.json" + receipt.write_text("unchanged") + self.rejected_cli("--receipt", receipt, reason="receipt already exists") + self.assertEqual(receipt.read_text(), "unchanged") + + def test_recompression_preserves_every_field(self): + original = C["load"](C["HERE"] / "candidate.json.gz") + encoded = C["canonical"](original) + containers = [gzip.compress(encoded, compresslevel=level, mtime=mtime) + for level, mtime in ((1, 0), (9, 123456789))] + self.assertNotEqual(*containers) + for i, data in enumerate(containers): + path = self.path / (str(i) + ".json.gz") + path.write_bytes(data) + V["same"](original, C["load"](path), "payload changed") + + +if __name__ == "__main__": + unittest.main() diff --git a/research/r439-helper-matching/vendor/pr817/README.md b/research/r439-helper-matching/vendor/pr817/README.md new file mode 100644 index 0000000000..41dcb4e3a6 --- /dev/null +++ b/research/r439-helper-matching/vendor/pr817/README.md @@ -0,0 +1,226 @@ +# An exact target-pair optimum for the composed R420 word + +This is a finite bit-circuit improvement and a restricted optimality certificate. +It replaces the greedy target matching in Alluri's pending PR681 composition +with 58 pairs that attain the exact optimum for that matching class. + +The complete local word falls from **18,378 to 18,362 binary ADDs**. Both positive +prefix maxima remain exactly **253,149 forward and 4,334,338 reverse**. The +payload bound remains +`64 * 253149^3 * 4334338^2 = 19505369118995241654063407203584 < 2^104`. +There is **no new kappa** and no global circuit-optimality claim. + +The new optimum saves **eight ADDs beyond PR733's existing pairing applied to +the same PR681 body**, whose complete cost is 18,370. The 16-ADD comparison is +against the actually published PR681 word, which uses a different greedy +matching. Both baselines are explicit in the verifier. + +The main contribution is the closed optimization gap. The fixed PR694 helper +basis permits at most **1,442** further ADD savings from disjoint target-pair +substitutions. The two pending greedy constructions attain 1,426 and 1,434. +`OPTIMUM.json` supplies an attaining matching and 120 nonnegative integer +prices. A solver-free checker verifies all 7,140 edge inequalities and equality +of the primal and dual totals. A separate column-incidence implementation +checks the same certificate without importing the first checker. + +## Exact comparisons + +All figures count preparation, helper reads, target mixing and restoration. +These are counts of scalar operations, not measured multiplication runtimes. + +| Construction | D ADDs | Complete local ADDs | Local payload bits | +| --- | ---: | ---: | ---: | +| Selected PR543 R420 | 19,922 | 26,916 | 100 | +| PR694 helper pairs | 12,988 | 19,982 | 102 | +| PR733 two-sided composition | 11,554 | 18,548 | 103 | +| PR681 composed word | 11,562 | 18,378 | 104 | +| PR733's existing matching on the same PR681 body | 11,554 | 18,370 | 104 | +| This matching on the PR681 body | 11,546 | 18,362 | 104 | + +The improvement over the actually published PR681 word is **16**; the gain +beyond the strongest prior fixed-KQ matching on the same body is **eight**. +The 8,554 figure is the cumulative reduction +from PR543 and includes all predecessors. Applying the same matching to PR733's +unchanged body gives a local count of 18,540, only eight below that predecessor. +The submitted native and hosted replay uses the PR681 body. No pending selected +frontier proposal is promoted or displaced. +The 18,370 same-body comparator is reconstructed from PR733's pinned 57-pair +recipe, with the identical helper-recipe hash, exact full endpoints, frame +paths and both prefix bounds checked. It has not received a separate third +hosted replay; the fresh native/hosted runs compare published PR681 with the +submitted word. + +Fresh hosted replay gives **6,144,768 -> 6,140,160 emitted local-invocation +events**, a further 4,608 reduction across 288 expanded calls. This counter +excludes separately charged bridge and schedule work, including 69,120 bridge +ADDs. Those charges are unchanged; no complete-machine instruction total is +claimed. Both versions need 196 raw prefix bits, +charged at **256**, and 432 two-level bits, charged at **512**. Those are +PR681's enlarged charges; this result does not recover the selected word's +192-bit prefix allocation. + +The final overlap refresh through PR799 found +[PR794](https://github.com/CrocSwap/integer-mult-bounds/pull/794) at +`6be7364e0245c5a1c931cb1c43b3da991b755850`. Its successive target-basis +factorization reports 19,037 local ADDs with a **192-bit** hosted prefix charge. +That is a different operation-count/precision tradeoff and a larger target +circuit class. This certificate does not supersede it. PR789/790 change other +phase-B blocks; they are not composed here. PR799's larger conditional kappa +uses different complex and bit suppliers and is outside this fixed R420 class. + +The PR681 baseline is reconstructed from its exact component recipes. Its +entire local bit receipt, including the canonical word, scalar stream, native +record digest, both prefix maxima and the complete paid profile, must equal +the original committed PR681 receipt before this checker accepts the comparison. + +## Reproduce + +From the repository root, Python 3.10 or later with the standard library: + +```sh +python3 -I -B research/r420-optimal-composed-pairs/verify.py +python3 -I -B research/r420-optimal-composed-pairs/independent_check.py +``` + +Expected final lines: + +```text +PASS_R420_OPTIMAL_COMPOSED_PAIRS optimum=1442 pairs=58 edges=7140 ADDs=18378->18362 payload_bits=104 columns=660 controls=13 no_new_kappa +PASS_R420_COLUMN_MATCHING optimum=1442 coefficients=50400 edges=7140 boolean_columns=540 D_ADDs=11546 controls=4 +``` + +`--out /absolute/fresh/directory` retains both words, original-exporter records +and `LOCAL.json`. Existing output directories are refused. Normal commands +compare the entire deterministic receipt with `CERTIFICATE.json`. The authoring +option `--record /fresh/file.json` writes a candidate receipt and deliberately +does not print a certificate PASS. + +For fresh unchanged C++17/Boost cohort checks, append `--native`. For the complete +nine-stage parent, hosted and invoice replay, use: + +```sh +BOOST_INCLUDE=/directory/containing/boost python3 -I -B research/r420-optimal-composed-pairs/verify.py --hosted --out /absolute/fresh/output +``` + +The hosted command also needs NumPy, SciPy and SymPy, as the retained PR543 chain +does. `native.py` and `hosted.py` are byte-for-byte PR681 drivers, credited there +to Alluri and Ali Romman. They compile the original checkers and consume the +actual new word. They do not substitute stored predecessor outputs. +The caller compares every deterministic native/hosted receipt field with the +shipped receipts, excluding only runtime seconds. It also rejects a missing +helper restoration with each of the three native column checkers. The hosted +driver's PR484 outer calculation is a historical arithmetic control, not a +fresh selected PR626 complex-supplier or outer-assembly replay. + +## The exact class and proof + +Write the accepted helper-to-target matrix as `K`. Fix all 201 oriented, +disjoint helper pairs from Greer Guthrie's PR694 recipe. Their temporary helper +change is `Q`, with `Q^-1 = Q`. The matrix read during the middle becomes +`M = KQ`. Preparing and restoring these helpers costs 402 ADDs. The direct +middle costs 12,586 ADDs, so the helper-only D cost is 12,988. + +For two distinct targets `a,b`, prepare `y_b += y_a`, inject `M_a` into target +`a` and `M_a XOR M_b` into target `b`, then restore `y_b += y_a`. Arbitrary +initial target values are preserved and the result adds `M_a,M_b` as required. +If `w_i` is the number of nonzero helper coefficients in row `i`, the net +saving in orientation `a -> b` is + +```text +g(a,b) = w_b - weight(M_a XOR M_b) - 2. +``` + +The two operations subtracted are the target preparation and restoration. +Disjoint target pairs do not alter one another's rows. Thus a pairing has +exactly the sum of its oriented savings. For each unordered edge define +`w_ab = max(0, g(a,b), g(b,a))`. + +Let the supplied integer prices be `q_i`. The checker verifies +`q_a + q_b >= 2*w_ab` on every one of the 7,140 unordered pairs, `q_i >= 0`, +and `sum(q_i) = 2,884`. For any disjoint matching, summing its inequalities +counts each price at most once, so its saving is at most `2,884/2 = 1,442`. +The 58 supplied oriented pairs attain 1,442. This proves the optimum even +when unmatched targets and either orientation are allowed. It is an exact +finite mathematical certificate, independent of a solver's reported gap. + +The charged new D cost is +`201 + 58 + 11028 + 58 + 201 = 11546`. +The middle is `PKQ`; keeping `PK` from an untransformed matrix is invalid. +The verifier executes the full D operator on arbitrary target and helper +inputs, then checks all 660 inputs of the whole word in both directions. +The independent checker builds columns, counts pair incidences and runs every +one of the 540 literal Boolean target/helper input columns of D separately. +The remaining 120 source inputs are untouched by D. + +The class fixes `Q`, the non-D circuit, direct middle-row injection and the +disjoint-pair recipe. It excludes different helper bases, overlapping pairs, +target trees, general XOR synthesis and changed frames or copied totals. +The dual bound ignores precision constraints, but the attaining word passes +the existing precision cap. Consequently it is also optimal in this exact +fixed-body pairing class subject to that cap. No optimum is claimed outside +that class or for the choice of the helper basis itself. + +## Scope, controls and provenance + +The temporary target/helper bases violate literal H2's helper-only D syntax. +The original H2 guard and literal K extractor still reject them. The canonical +body with the original D passes every H1-H5 hypothesis; exact equality of the +complete D boundary map supplies the semantic substitution. No predecessor +checker is edited or weakened. All frame paths, 420 helpers, nine COPY/ERASE +lifecycles and paid rank mass 5,112 are retained. + +Controls omit helper or target preparation/restoration, remove a middle read, +move D off frame zero, corrupt the dual or pair scores, reuse an original-K +certificate, and omit cleanup. A neutral pair is accepted as an endpoint but +charged two ADDs. The second checker separately rejects four certificate +mutations. Detailed native/hosted results and package-integrity tests are in +`VALIDATION.md`. + +Exact base is `66849e1475c930fd7732b1a0067ffee7e1e95f60`. The selected assembly +remains PR626, `660de893d27bb7abd1d5b01b1640207528a5c851`, conditional kappa +`0.001635527380375392`, using PR543 +`2065fe4f72a914d907f1046603f5a36f17018535`. +The immediate composed source is PR681 +`e536f6fc8aad65adef8ac4682d13625598a5c3f9`; PR733 is +`dfe84e09298abc5c5e0074afda59a821e10abfb4`. +`SOURCES.json` pins the imported bytes and Git blobs and the inherited replay +files. Compressed main inputs are compared by decompressed payload. + +Assignment seed **11** came from one OS-random draw. `CLAIM.json` records the +three candidate scopes and overlap scan. SciPy/HiGHS nominated one matching +after seed-11 edge ordering, and a linear program nominated the vertex prices. +These floating computations are discovery only. The frozen integer certificate +checks the complete stated domain, with no search-based impossibility claim. +One earlier unseeded target probe and one helper-matching probe were discarded +before selecting the final artifact. The helper probe's solver optimum is not +certified or asserted here. There was no pinned coordination issue. + +The inherited all-size/compiler/common-label/mutable-basis, physical hosting, +precision/tape/exact-recovery and analytic assumptions remain. A finite replay +does not prove the full multiplication theorem. Full repository regeneration, +selected-frontier cold replay, Lean and remote CI are not claimed. The selected +frontier and `upstream/` are unchanged. + +## Credit + +Prepared for **Sagar Thakrar / @thakrarsagar**, with substantial **OpenAI Codex +assistance** in implementation, proof analysis, verification and writing. +There is no independent human-review claim. Apache-2.0 applies to the additions. + +This extends Alluri's [PR681](https://github.com/CrocSwap/integer-mult-bounds/pull/681) +composition. The helper basis is Greer Guthrie's +[PR694](https://github.com/CrocSwap/integer-mult-bounds/pull/694), following +PR686. The two-sided composition is Scott Woolsey Biggart's +[PR733](https://github.com/CrocSwap/integer-mult-bounds/pull/733), following his +PR713 target factoring and the earlier PR476/450 lineage. Sagar Thakrar's +[PR716](https://github.com/CrocSwap/integer-mult-bounds/pull/716) supplied the +vertex-price certificate method for the different original-K pairing problem. +No priority for these mechanisms or the certificate method is claimed. + +The fixed body retains yongjae321's PR670, x0hu's PR674, Ali Romman's PR688, +mtpsl's PR691 and Sagar Thakrar's PR708. The accepted supplier is eumemic's +PR543/493, with Dylan Crow's exporter/checker lineage, DreamingOfClouds' retained +totals and hosting chain, Zhihao Chen's scalar interface, and all contributors +credited in the original PR681 notice, retained unchanged under `vendor/`. +Concurrent PR754 cleanup synthesis and PR759/774 target forests concern larger +or different classes and are neither imported nor superseded. diff --git a/research/r439-helper-matching/vendor/pr915/CERTIFICATE.json b/research/r439-helper-matching/vendor/pr915/CERTIFICATE.json new file mode 100644 index 0000000000..880e461a02 --- /dev/null +++ b/research/r439-helper-matching/vendor/pr915/CERTIFICATE.json @@ -0,0 +1,2775 @@ +{ + "B": 9534616, + "D_adds": 6988, + "F": 49347, + "baseline_sha256": "5642fd0e35a1acc11acff8d0c08350c1617e95f310d4d35ad63a651f9eeeba0b", + "candidate_sha256": "6aec2c6f91c87a7440af10cdeb90b8814501224a86de14d4033ae3ffa00899da", + "format": "r439-compensation/1", + "forward_cap": 49347, + "forward_rejections": 0, + "native_ADDs": 13208, + "nine_stage_prefix_bits": 189, + "pair_scores": 3748470, + "payload_bits": 100, + "positive_pairs": 218204, + "reverse_cap": 16913320, + "reverse_rejections": 0, + "seed": 10, + "steps": [ + { + "B": 1125980, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 20006, + "destination": 57, + "gain": 187, + "source": 50 + }, + { + "B": 1125980, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 68090, + "destination": 0, + "gain": 176, + "source": 5 + }, + { + "B": 1125980, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 38804, + "destination": 66, + "gain": 173, + "source": 60 + }, + { + "B": 1125980, + "F": 49347, + "delta_forward": 24, + "delta_reverse": 54594, + "destination": 46, + "gain": 172, + "source": 62 + }, + { + "B": 1125980, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 70342, + "destination": 11, + "gain": 170, + "source": 9 + }, + { + "B": 1125980, + "F": 49347, + "delta_forward": 26, + "delta_reverse": 61738, + "destination": 72, + "gain": 145, + "source": 54 + }, + { + "B": 1401222, + "F": 49347, + "delta_forward": 68, + "delta_reverse": 308996, + "destination": 27, + "gain": 117, + "source": 52 + }, + { + "B": 1401222, + "F": 49347, + "delta_forward": 94, + "delta_reverse": 270976, + "destination": 47, + "gain": 112, + "source": 68 + }, + { + "B": 1401222, + "F": 49347, + "delta_forward": 80, + "delta_reverse": 326324, + "destination": 23, + "gain": 111, + "source": 102 + }, + { + "B": 1401222, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 51118, + "destination": 56, + "gain": 108, + "source": 69 + }, + { + "B": 1565750, + "F": 49347, + "delta_forward": 92, + "delta_reverse": 439770, + "destination": 50, + "gain": 104, + "source": 5 + }, + { + "B": 1565750, + "F": 49347, + "delta_forward": 90, + "delta_reverse": 306610, + "destination": 62, + "gain": 103, + "source": 60 + }, + { + "B": 1565750, + "F": 49347, + "delta_forward": 78, + "delta_reverse": 229206, + "destination": 85, + "gain": 101, + "source": 34 + }, + { + "B": 1565750, + "F": 49347, + "delta_forward": 96, + "delta_reverse": 409882, + "destination": 92, + "gain": 100, + "source": 5 + }, + { + "B": 1565750, + "F": 49347, + "delta_forward": 86, + "delta_reverse": 261842, + "destination": 63, + "gain": 99, + "source": 52 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 86, + "delta_reverse": 460638, + "destination": 5, + "gain": 97, + "source": 74 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 90, + "delta_reverse": 384884, + "destination": 68, + "gain": 96, + "source": 9 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 85928, + "destination": 6, + "gain": 96, + "source": 3 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 96, + "delta_reverse": 522854, + "destination": 10, + "gain": 94, + "source": 13 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 104, + "delta_reverse": 660064, + "destination": 59, + "gain": 87, + "source": 51 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 90, + "delta_reverse": 296298, + "destination": 29, + "gain": 87, + "source": 101 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 86, + "delta_reverse": 350098, + "destination": 73, + "gain": 85, + "source": 40 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 86, + "delta_reverse": 303614, + "destination": 60, + "gain": 85, + "source": 54 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 72, + "delta_reverse": 283474, + "destination": 21, + "gain": 84, + "source": 91 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 24, + "delta_reverse": 79474, + "destination": 65, + "gain": 84, + "source": 67 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 82870, + "destination": 63, + "gain": 83, + "source": 47 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 88, + "delta_reverse": 469912, + "destination": 17, + "gain": 83, + "source": 54 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 102, + "delta_reverse": 494472, + "destination": 103, + "gain": 82, + "source": 2 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 88, + "delta_reverse": 358298, + "destination": 108, + "gain": 82, + "source": 7 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 8, + "delta_reverse": 39986, + "destination": 103, + "gain": 91, + "source": 108 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 82, + "delta_reverse": 403608, + "destination": 98, + "gain": 80, + "source": 25 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 96, + "delta_reverse": 476370, + "destination": 104, + "gain": 80, + "source": 107 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 6, + "delta_reverse": 28496, + "destination": 104, + "gain": 97, + "source": 10 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 100, + "delta_reverse": 499080, + "destination": 52, + "gain": 79, + "source": 97 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 76, + "delta_reverse": 330384, + "destination": 15, + "gain": 79, + "source": 94 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 98, + "delta_reverse": 449894, + "destination": 14, + "gain": 79, + "source": 90 + }, + { + "B": 2026388, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 31184, + "destination": 14, + "gain": 84, + "source": 98 + }, + { + "B": 2481858, + "F": 49347, + "delta_forward": 94, + "delta_reverse": 455470, + "destination": 74, + "gain": 79, + "source": 77 + }, + { + "B": 2481858, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 43320, + "destination": 87, + "gain": 88, + "source": 74 + }, + { + "B": 2481858, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 67228, + "destination": 47, + "gain": 76, + "source": 48 + }, + { + "B": 2481858, + "F": 49347, + "delta_forward": 104, + "delta_reverse": 397206, + "destination": 42, + "gain": 76, + "source": 39 + }, + { + "B": 2481858, + "F": 49347, + "delta_forward": 82, + "delta_reverse": 255372, + "destination": 99, + "gain": 76, + "source": 24 + }, + { + "B": 2481858, + "F": 49347, + "delta_forward": 6, + "delta_reverse": 17538, + "destination": 29, + "gain": 98, + "source": 99 + }, + { + "B": 2481858, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 46502, + "destination": 85, + "gain": 75, + "source": 73 + }, + { + "B": 2481858, + "F": 49347, + "delta_forward": 104, + "delta_reverse": 629712, + "destination": 9, + "gain": 75, + "source": 97 + }, + { + "B": 2481858, + "F": 49347, + "delta_forward": 86, + "delta_reverse": 261360, + "destination": 32, + "gain": 74, + "source": 83 + }, + { + "B": 2481858, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 27852, + "destination": 73, + "gain": 75, + "source": 32 + }, + { + "B": 2481858, + "F": 49347, + "delta_forward": 106, + "delta_reverse": 546396, + "destination": 36, + "gain": 72, + "source": 30 + }, + { + "B": 2481858, + "F": 49347, + "delta_forward": 98, + "delta_reverse": 387432, + "destination": 2, + "gain": 72, + "source": 7 + }, + { + "B": 2481858, + "F": 49347, + "delta_forward": 98, + "delta_reverse": 449760, + "destination": 81, + "gain": 70, + "source": 86 + }, + { + "B": 2481858, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 62270, + "destination": 42, + "gain": 87, + "source": 81 + }, + { + "B": 2481858, + "F": 49347, + "delta_forward": 86, + "delta_reverse": 282526, + "destination": 102, + "gain": 69, + "source": 94 + }, + { + "B": 2939320, + "F": 49347, + "delta_forward": 102, + "delta_reverse": 457462, + "destination": 77, + "gain": 69, + "source": 54 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 82, + "delta_reverse": 411424, + "destination": 54, + "gain": 68, + "source": 35 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 70, + "delta_reverse": 217488, + "destination": 16, + "gain": 68, + "source": 88 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 52324, + "destination": 99, + "gain": 86, + "source": 16 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 98, + "delta_reverse": 348380, + "destination": 100, + "gain": 68, + "source": 28 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 6, + "delta_reverse": 12262, + "destination": 100, + "gain": 94, + "source": 98 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 82, + "delta_reverse": 399392, + "destination": 33, + "gain": 68, + "source": 35 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 49236, + "destination": 33, + "gain": 88, + "source": 74 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 39668, + "destination": 23, + "gain": 67, + "source": 21 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 35060, + "destination": 21, + "gain": 67, + "source": 15 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 60, + "delta_reverse": 214930, + "destination": 40, + "gain": 66, + "source": 45 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 112, + "delta_reverse": 617644, + "destination": 51, + "gain": 65, + "source": 55 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 112, + "delta_reverse": 830384, + "destination": 70, + "gain": 65, + "source": 55 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 82380, + "destination": 70, + "gain": 94, + "source": 59 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 70, + "delta_reverse": 218864, + "destination": 20, + "gain": 64, + "source": 95 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 150604, + "destination": 98, + "gain": 85, + "source": 20 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 52, + "delta_reverse": 327186, + "destination": 89, + "gain": 62, + "source": 3 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 66, + "delta_reverse": 237630, + "destination": 37, + "gain": 59, + "source": 31 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 4, + "delta_reverse": 12110, + "destination": 37, + "gain": 99, + "source": 81 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 104, + "delta_reverse": 443012, + "destination": 80, + "gain": 59, + "source": 75 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 72688, + "destination": 36, + "gain": 95, + "source": 80 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 88, + "delta_reverse": 324818, + "destination": 12, + "gain": 58, + "source": 8 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 49100, + "destination": 10, + "gain": 87, + "source": 12 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 86, + "delta_reverse": 380634, + "destination": 84, + "gain": 57, + "source": 82 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 70862, + "destination": 84, + "gain": 93, + "source": 80 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 112, + "delta_reverse": 590422, + "destination": 13, + "gain": 56, + "source": 86 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 104, + "delta_reverse": 325166, + "destination": 30, + "gain": 56, + "source": 41 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 84, + "delta_reverse": 337630, + "destination": 109, + "gain": 54, + "source": 4 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 8, + "delta_reverse": 39986, + "destination": 109, + "gain": 91, + "source": 108 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 114, + "delta_reverse": 627244, + "destination": 39, + "gain": 54, + "source": 86 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 72, + "delta_reverse": 263540, + "destination": 110, + "gain": 53, + "source": 105 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 6, + "delta_reverse": 19772, + "destination": 110, + "gain": 95, + "source": 12 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 80, + "delta_reverse": 519220, + "destination": 43, + "gain": 53, + "source": 58 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 86, + "delta_reverse": 416108, + "destination": 97, + "gain": 52, + "source": 88 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 58, + "delta_reverse": 218122, + "destination": 58, + "gain": 52, + "source": 59 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 104, + "delta_reverse": 616732, + "destination": 34, + "gain": 51, + "source": 94 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 44, + "delta_reverse": 164238, + "destination": 90, + "gain": 50, + "source": 48 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 66, + "delta_reverse": 328980, + "destination": 25, + "gain": 61, + "source": 90 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 88, + "delta_reverse": 463620, + "destination": 71, + "gain": 49, + "source": 53 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 96030, + "destination": 71, + "gain": 96, + "source": 59 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 100, + "delta_reverse": 483454, + "destination": 41, + "gain": 48, + "source": 44 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 65022, + "destination": 41, + "gain": 93, + "source": 80 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 68, + "delta_reverse": 304426, + "destination": 86, + "gain": 46, + "source": 3 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 72, + "delta_reverse": 242556, + "destination": 102, + "gain": 45, + "source": 19 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 94, + "delta_reverse": 296840, + "destination": 101, + "gain": 44, + "source": 88 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 78, + "delta_reverse": 284924, + "destination": 26, + "gain": 44, + "source": 96 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 45870, + "destination": 15, + "gain": 65, + "source": 26 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 82, + "delta_reverse": 249524, + "destination": 78, + "gain": 44, + "source": 45 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 27852, + "destination": 78, + "gain": 75, + "source": 32 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 58, + "delta_reverse": 208700, + "destination": 101, + "gain": 43, + "source": 12 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 84, + "delta_reverse": 336618, + "destination": 55, + "gain": 43, + "source": 90 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 66, + "delta_reverse": 141618, + "destination": 69, + "gain": 42, + "source": 60 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 40902, + "destination": 62, + "gain": 72, + "source": 69 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 102, + "delta_reverse": 619006, + "destination": 75, + "gain": 41, + "source": 82 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 6, + "delta_reverse": 25210, + "destination": 30, + "gain": 116, + "source": 75 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 90, + "delta_reverse": 330906, + "destination": 18, + "gain": 35, + "source": 93 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 6, + "delta_reverse": 14286, + "destination": 16, + "gain": 96, + "source": 18 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 102, + "delta_reverse": 468770, + "destination": 28, + "gain": 35, + "source": 53 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 82, + "delta_reverse": 572820, + "destination": 61, + "gain": 32, + "source": 3 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 90, + "delta_reverse": 276324, + "destination": 91, + "gain": 32, + "source": 96 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 74, + "delta_reverse": 256786, + "destination": 91, + "gain": 43, + "source": 19 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 56470, + "destination": 91, + "gain": 63, + "source": 102 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 78, + "delta_reverse": 344898, + "destination": 22, + "gain": 32, + "source": 59 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 90, + "delta_reverse": 358554, + "destination": 106, + "gain": 31, + "source": 1 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 6, + "delta_reverse": 19504, + "destination": 108, + "gain": 93, + "source": 106 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 64, + "delta_reverse": 219362, + "destination": 7, + "gain": 30, + "source": 48 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 84, + "delta_reverse": 458976, + "destination": 107, + "gain": 29, + "source": 38 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 94, + "delta_reverse": 399172, + "destination": 24, + "gain": 28, + "source": 96 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 60, + "delta_reverse": 152018, + "destination": 81, + "gain": 28, + "source": 69 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 86, + "delta_reverse": 599896, + "destination": 51, + "gain": 28, + "source": 3 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 104, + "delta_reverse": 522932, + "destination": 49, + "gain": 27, + "source": 64 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 128886, + "destination": 59, + "gain": 92, + "source": 49 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 94, + "delta_reverse": 328294, + "destination": 4, + "gain": 27, + "source": 1 + }, + { + "B": 3350744, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 40020, + "destination": 2, + "gain": 97, + "source": 4 + }, + { + "B": 3834238, + "F": 49347, + "delta_forward": 96, + "delta_reverse": 483494, + "destination": 35, + "gain": 26, + "source": 96 + }, + { + "B": 3834238, + "F": 49347, + "delta_forward": 112, + "delta_reverse": 755530, + "destination": 44, + "gain": 26, + "source": 88 + }, + { + "B": 3834238, + "F": 49347, + "delta_forward": 88, + "delta_reverse": 319368, + "destination": 94, + "gain": 25, + "source": 38 + }, + { + "B": 3834238, + "F": 49347, + "delta_forward": 98, + "delta_reverse": 375270, + "destination": 107, + "gain": 24, + "source": 86 + }, + { + "B": 3834238, + "F": 49347, + "delta_forward": 64, + "delta_reverse": 257610, + "destination": 13, + "gain": 61, + "source": 107 + }, + { + "B": 3834238, + "F": 49347, + "delta_forward": 98, + "delta_reverse": 456898, + "destination": 76, + "gain": 24, + "source": 86 + }, + { + "B": 3834238, + "F": 49347, + "delta_forward": 98, + "delta_reverse": 445470, + "destination": 8, + "gain": 23, + "source": 1 + }, + { + "B": 3834238, + "F": 49347, + "delta_forward": 92, + "delta_reverse": 484490, + "destination": 75, + "gain": 22, + "source": 3 + }, + { + "B": 3834238, + "F": 49347, + "delta_forward": 92, + "delta_reverse": 656518, + "destination": 19, + "gain": 22, + "source": 3 + }, + { + "B": 3834238, + "F": 49347, + "delta_forward": 72, + "delta_reverse": 263650, + "destination": 106, + "gain": 23, + "source": 19 + }, + { + "B": 3834238, + "F": 49347, + "delta_forward": 72, + "delta_reverse": 226642, + "destination": 83, + "gain": 22, + "source": 48 + }, + { + "B": 3834238, + "F": 49347, + "delta_forward": 100, + "delta_reverse": 393388, + "destination": 79, + "gain": 22, + "source": 86 + }, + { + "B": 3834238, + "F": 49347, + "delta_forward": 62, + "delta_reverse": 339578, + "destination": 40, + "gain": 21, + "source": 58 + }, + { + "B": 3834238, + "F": 49347, + "delta_forward": 60, + "delta_reverse": 203566, + "destination": 12, + "gain": 21, + "source": 26 + }, + { + "B": 3834238, + "F": 49347, + "delta_forward": 86, + "delta_reverse": 496518, + "destination": 82, + "gain": 20, + "source": 52 + }, + { + "B": 3834238, + "F": 49347, + "delta_forward": 86, + "delta_reverse": 504854, + "destination": 38, + "gain": 18, + "source": 77 + }, + { + "B": 3889268, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 55030, + "destination": 54, + "gain": 83, + "source": 38 + }, + { + "B": 3889268, + "F": 49347, + "delta_forward": 12, + "delta_reverse": 20404, + "destination": 48, + "gain": 16, + "source": 66 + }, + { + "B": 3889268, + "F": 49347, + "delta_forward": 60, + "delta_reverse": 179546, + "destination": 18, + "gain": 20, + "source": 48 + }, + { + "B": 3889268, + "F": 49347, + "delta_forward": 10, + "delta_reverse": 12310, + "destination": 72, + "gain": 15, + "source": 62 + }, + { + "B": 3889268, + "F": 49347, + "delta_forward": 112, + "delta_reverse": 603802, + "destination": 93, + "gain": 15, + "source": 97 + }, + { + "B": 3889268, + "F": 49347, + "delta_forward": 112, + "delta_reverse": 642698, + "destination": 95, + "gain": 14, + "source": 45 + }, + { + "B": 3889268, + "F": 49347, + "delta_forward": 92, + "delta_reverse": 671724, + "destination": 39, + "gain": 14, + "source": 49 + }, + { + "B": 3889268, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 39166, + "destination": 3, + "gain": 14, + "source": 66 + }, + { + "B": 3889268, + "F": 49347, + "delta_forward": 98, + "delta_reverse": 557124, + "destination": 9, + "gain": 14, + "source": 93 + }, + { + "B": 3944612, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 55344, + "destination": 57, + "gain": 13, + "source": 65 + }, + { + "B": 3944612, + "F": 49347, + "delta_forward": 96, + "delta_reverse": 463650, + "destination": 67, + "gain": 13, + "source": 80 + }, + { + "B": 3944612, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 32676, + "destination": 66, + "gain": 13, + "source": 65 + }, + { + "B": 3944612, + "F": 49347, + "delta_forward": 66, + "delta_reverse": 240858, + "destination": 7, + "gain": 12, + "source": 106 + }, + { + "B": 3944612, + "F": 49347, + "delta_forward": 10, + "delta_reverse": 29242, + "destination": 93, + "gain": 12, + "source": 70 + }, + { + "B": 3944612, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 62376, + "destination": 0, + "gain": 11, + "source": 11 + }, + { + "B": 3944612, + "F": 49347, + "delta_forward": 86, + "delta_reverse": 333582, + "destination": 60, + "gain": 11, + "source": 67 + }, + { + "B": 4437804, + "F": 49347, + "delta_forward": 72, + "delta_reverse": 370964, + "destination": 80, + "gain": 11, + "source": 58 + }, + { + "B": 4437804, + "F": 49347, + "delta_forward": 88, + "delta_reverse": 355286, + "destination": 49, + "gain": 14, + "source": 80 + }, + { + "B": 4437804, + "F": 49347, + "delta_forward": 80, + "delta_reverse": 319618, + "destination": 52, + "gain": 20, + "source": 49 + }, + { + "B": 4437804, + "F": 49347, + "delta_forward": 82, + "delta_reverse": 377072, + "destination": 20, + "gain": 18, + "source": 49 + }, + { + "B": 4437804, + "F": 49347, + "delta_forward": 12, + "delta_reverse": 30072, + "destination": 52, + "gain": 10, + "source": 70 + }, + { + "B": 4437804, + "F": 49347, + "delta_forward": 94, + "delta_reverse": 564958, + "destination": 83, + "gain": 10, + "source": 77 + }, + { + "B": 4437804, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 43074, + "destination": 4, + "gain": 10, + "source": 6 + }, + { + "B": 4437804, + "F": 49347, + "delta_forward": 124, + "delta_reverse": 488432, + "destination": 90, + "gain": 10, + "source": 7 + }, + { + "B": 4437804, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 68678, + "destination": 11, + "gain": 10, + "source": 6 + }, + { + "B": 4437804, + "F": 49347, + "delta_forward": 112, + "delta_reverse": 570730, + "destination": 64, + "gain": 10, + "source": 96 + }, + { + "B": 4437804, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 31446, + "destination": 46, + "gain": 9, + "source": 56 + }, + { + "B": 4437804, + "F": 49347, + "delta_forward": 92, + "delta_reverse": 463686, + "destination": 89, + "gain": 9, + "source": 92 + }, + { + "B": 4437804, + "F": 49347, + "delta_forward": 8, + "delta_reverse": 20750, + "destination": 14, + "gain": 9, + "source": 98 + }, + { + "B": 4437804, + "F": 49347, + "delta_forward": 10, + "delta_reverse": 10496, + "destination": 62, + "gain": 9, + "source": 46 + }, + { + "B": 5071832, + "F": 49347, + "delta_forward": 116, + "delta_reverse": 634028, + "destination": 88, + "gain": 9, + "source": 105 + }, + { + "B": 5071832, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 29886, + "destination": 67, + "gain": 9, + "source": 56 + }, + { + "B": 5071832, + "F": 49347, + "delta_forward": 74, + "delta_reverse": 365482, + "destination": 39, + "gain": 9, + "source": 58 + }, + { + "B": 5071832, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 41942, + "destination": 77, + "gain": 8, + "source": 70 + }, + { + "B": 5071832, + "F": 49347, + "delta_forward": 10, + "delta_reverse": 32210, + "destination": 73, + "gain": 8, + "source": 78 + }, + { + "B": 5071832, + "F": 49347, + "delta_forward": 122, + "delta_reverse": 568606, + "destination": 53, + "gain": 8, + "source": 24 + }, + { + "B": 5071832, + "F": 49347, + "delta_forward": 10, + "delta_reverse": 118938, + "destination": 55, + "gain": 8, + "source": 71 + }, + { + "B": 5071832, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 40332, + "destination": 27, + "gain": 8, + "source": 6 + }, + { + "B": 5071832, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 25328, + "destination": 32, + "gain": 7, + "source": 56 + }, + { + "B": 5071832, + "F": 49347, + "delta_forward": 10, + "delta_reverse": 12048, + "destination": 6, + "gain": 7, + "source": 0 + }, + { + "B": 5071832, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 16078, + "destination": 69, + "gain": 7, + "source": 6 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 63544, + "destination": 80, + "gain": 7, + "source": 47 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 16766, + "destination": 22, + "gain": 7, + "source": 6 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 72664, + "destination": 18, + "gain": 7, + "source": 47 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 76, + "delta_reverse": 429824, + "destination": 68, + "gain": 7, + "source": 58 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 10, + "delta_reverse": 26788, + "destination": 9, + "gain": 7, + "source": 0 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 25328, + "destination": 12, + "gain": 7, + "source": 56 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 127830, + "destination": 20, + "gain": 6, + "source": 59 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 57296, + "destination": 38, + "gain": 6, + "source": 70 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 12, + "delta_reverse": 121456, + "destination": 78, + "gain": 6, + "source": 85 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 52322, + "destination": 9, + "gain": 6, + "source": 59 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 17752, + "destination": 56, + "gain": 6, + "source": 72 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 10, + "delta_reverse": 24366, + "destination": 15, + "gain": 6, + "source": 23 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 8, + "delta_reverse": 44080, + "destination": 103, + "gain": 6, + "source": 109 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 22, + "delta_reverse": 80728, + "destination": 32, + "gain": 5, + "source": 65 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 38980, + "destination": 74, + "gain": 5, + "source": 6 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 22, + "delta_reverse": 80728, + "destination": 101, + "gain": 5, + "source": 65 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 25580, + "destination": 1, + "gain": 5, + "source": 6 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 12, + "delta_reverse": 43796, + "destination": 76, + "gain": 4, + "source": 57 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 67676, + "destination": 74, + "gain": 4, + "source": 59 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 12, + "delta_reverse": 35656, + "destination": 101, + "gain": 4, + "source": 57 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 57554, + "destination": 13, + "gain": 4, + "source": 54 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 121378, + "destination": 51, + "gain": 4, + "source": 70 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 18498, + "destination": 19, + "gain": 4, + "source": 72 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 18482, + "destination": 102, + "gain": 4, + "source": 72 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 134440, + "destination": 49, + "gain": 4, + "source": 59 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 20970, + "destination": 17, + "gain": 4, + "source": 72 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 138022, + "destination": 89, + "gain": 4, + "source": 71 + }, + { + "B": 5198920, + "F": 49347, + "delta_forward": 94, + "delta_reverse": 467430, + "destination": 68, + "gain": 8, + "source": 89 + }, + { + "B": 5453532, + "F": 49347, + "delta_forward": 94, + "delta_reverse": 321716, + "destination": 68, + "gain": 5, + "source": 80 + }, + { + "B": 5631746, + "F": 49347, + "delta_forward": 56, + "delta_reverse": 178214, + "destination": 68, + "gain": 38, + "source": 52 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 8, + "delta_reverse": 10826, + "destination": 68, + "gain": 9, + "source": 0 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 155846, + "destination": 22, + "gain": 4, + "source": 70 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 86, + "delta_reverse": 448574, + "destination": 92, + "gain": 7, + "source": 22 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 31778, + "destination": 75, + "gain": 4, + "source": 33 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 18482, + "destination": 95, + "gain": 4, + "source": 72 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 12, + "delta_reverse": 35656, + "destination": 32, + "gain": 4, + "source": 57 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 45072, + "destination": 3, + "gain": 4, + "source": 99 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 21552, + "destination": 56, + "gain": 4, + "source": 62 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 167166, + "destination": 40, + "gain": 4, + "source": 71 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 57548, + "destination": 61, + "gain": 3, + "source": 47 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 79888, + "destination": 67, + "gain": 3, + "source": 41 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 23986, + "destination": 79, + "gain": 3, + "source": 6 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 96, + "delta_reverse": 411978, + "destination": 79, + "gain": 6, + "source": 76 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 80, + "delta_reverse": 166172, + "destination": 79, + "gain": 11, + "source": 69 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 30, + "delta_reverse": 102866, + "destination": 79, + "gain": 49, + "source": 81 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 10, + "delta_reverse": 53630, + "destination": 79, + "gain": 10, + "source": 42 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 8, + "delta_reverse": 24964, + "destination": 79, + "gain": 8, + "source": 57 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 96, + "delta_reverse": 426974, + "destination": 94, + "gain": 3, + "source": 5 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 18482, + "destination": 94, + "gain": 4, + "source": 72 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 46832, + "destination": 94, + "gain": 3, + "source": 87 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 30336, + "destination": 50, + "gain": 3, + "source": 98 + }, + { + "B": 5642572, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 23986, + "destination": 75, + "gain": 3, + "source": 6 + }, + { + "B": 5711836, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 69264, + "destination": 58, + "gain": 3, + "source": 63 + }, + { + "B": 5711836, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 77636, + "destination": 60, + "gain": 3, + "source": 41 + }, + { + "B": 5711836, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 49740, + "destination": 20, + "gain": 3, + "source": 47 + }, + { + "B": 5711836, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 58240, + "destination": 31, + "gain": 3, + "source": 41 + }, + { + "B": 5711836, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 74718, + "destination": 77, + "gain": 3, + "source": 84 + }, + { + "B": 5711836, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 39562, + "destination": 50, + "gain": 3, + "source": 6 + }, + { + "B": 5759924, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 48088, + "destination": 88, + "gain": 3, + "source": 47 + }, + { + "B": 5824606, + "F": 49347, + "delta_forward": 108, + "delta_reverse": 338234, + "destination": 3, + "gain": 3, + "source": 50 + }, + { + "B": 5824606, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 46430, + "destination": 68, + "gain": 3, + "source": 6 + }, + { + "B": 5824606, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 50928, + "destination": 5, + "gain": 2, + "source": 36 + }, + { + "B": 5824606, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 22806, + "destination": 77, + "gain": 2, + "source": 62 + }, + { + "B": 5824606, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 49096, + "destination": 43, + "gain": 2, + "source": 33 + }, + { + "B": 5824606, + "F": 49347, + "delta_forward": 88, + "delta_reverse": 571610, + "destination": 34, + "gain": 2, + "source": 40 + }, + { + "B": 5824606, + "F": 49347, + "delta_forward": 14, + "delta_reverse": 39046, + "destination": 18, + "gain": 2, + "source": 57 + }, + { + "B": 5824606, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 52686, + "destination": 34, + "gain": 2, + "source": 59 + }, + { + "B": 5824606, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 22806, + "destination": 60, + "gain": 2, + "source": 62 + }, + { + "B": 5824606, + "F": 49347, + "delta_forward": 132, + "delta_reverse": 713358, + "destination": 28, + "gain": 2, + "source": 55 + }, + { + "B": 5824606, + "F": 49347, + "delta_forward": 64, + "delta_reverse": 330058, + "destination": 28, + "gain": 22, + "source": 58 + }, + { + "B": 5824606, + "F": 49347, + "delta_forward": 98, + "delta_reverse": 844844, + "destination": 28, + "gain": 10, + "source": 61 + }, + { + "B": 5824606, + "F": 49347, + "delta_forward": 88, + "delta_reverse": 411802, + "destination": 28, + "gain": 12, + "source": 51 + }, + { + "B": 5824606, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 58464, + "destination": 20, + "gain": 2, + "source": 36 + }, + { + "B": 5824606, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 101916, + "destination": 28, + "gain": 2, + "source": 70 + }, + { + "B": 5824606, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 226728, + "destination": 28, + "gain": 2, + "source": 71 + }, + { + "B": 5890714, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 22036, + "destination": 47, + "gain": 2, + "source": 72 + }, + { + "B": 5906288, + "F": 49347, + "delta_forward": 28, + "delta_reverse": 60250, + "destination": 49, + "gain": 5, + "source": 47 + }, + { + "B": 5906288, + "F": 49347, + "delta_forward": 22, + "delta_reverse": 66332, + "destination": 87, + "gain": 2, + "source": 54 + }, + { + "B": 5906288, + "F": 49347, + "delta_forward": 8, + "delta_reverse": 20468, + "destination": 87, + "gain": 10, + "source": 33 + }, + { + "B": 5906288, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 133584, + "destination": 19, + "gain": 2, + "source": 78 + }, + { + "B": 5906288, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 22806, + "destination": 86, + "gain": 2, + "source": 62 + }, + { + "B": 5945182, + "F": 49347, + "delta_forward": 12, + "delta_reverse": 54468, + "destination": 75, + "gain": 2, + "source": 109 + }, + { + "B": 5945182, + "F": 49347, + "delta_forward": 22, + "delta_reverse": 66376, + "destination": 77, + "gain": 2, + "source": 54 + }, + { + "B": 6431574, + "F": 49347, + "delta_forward": 98, + "delta_reverse": 581148, + "destination": 93, + "gain": 2, + "source": 9 + }, + { + "B": 6617956, + "F": 49347, + "delta_forward": 42, + "delta_reverse": 186382, + "destination": 93, + "gain": 60, + "source": 89 + }, + { + "B": 6932878, + "F": 49347, + "delta_forward": 98, + "delta_reverse": 314922, + "destination": 93, + "gain": 14, + "source": 68 + }, + { + "B": 7410460, + "F": 49347, + "delta_forward": 146, + "delta_reverse": 477582, + "destination": 6, + "gain": 8, + "source": 93 + }, + { + "B": 7569520, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 159060, + "destination": 70, + "gain": 2, + "source": 71 + }, + { + "B": 7702630, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 133110, + "destination": 59, + "gain": 8, + "source": 70 + }, + { + "B": 8016030, + "F": 49347, + "delta_forward": 24, + "delta_reverse": 156700, + "destination": 68, + "gain": 2, + "source": 59 + }, + { + "B": 8016030, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 66680, + "destination": 25, + "gain": 2, + "source": 36 + }, + { + "B": 8016030, + "F": 49347, + "delta_forward": 22, + "delta_reverse": 62440, + "destination": 24, + "gain": 2, + "source": 54 + }, + { + "B": 8016030, + "F": 49347, + "delta_forward": 106, + "delta_reverse": 612232, + "destination": 82, + "gain": 2, + "source": 61 + }, + { + "B": 8016030, + "F": 49347, + "delta_forward": 96, + "delta_reverse": 427224, + "destination": 82, + "gain": 2, + "source": 20 + }, + { + "B": 8016030, + "F": 49347, + "delta_forward": 130, + "delta_reverse": 501870, + "destination": 102, + "gain": 2, + "source": 68 + }, + { + "B": 8016030, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 19668, + "destination": 64, + "gain": 2, + "source": 72 + }, + { + "B": 8329430, + "F": 49347, + "delta_forward": 24, + "delta_reverse": 156700, + "destination": 89, + "gain": 2, + "source": 59 + }, + { + "B": 8329430, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 37438, + "destination": 25, + "gain": 1, + "source": 66 + }, + { + "B": 8329430, + "F": 49347, + "delta_forward": 110, + "delta_reverse": 444568, + "destination": 5, + "gain": 1, + "source": 74 + }, + { + "B": 8329430, + "F": 49347, + "delta_forward": 24, + "delta_reverse": 56966, + "destination": 94, + "gain": 1, + "source": 87 + }, + { + "B": 8329430, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 74022, + "destination": 95, + "gain": 1, + "source": 0 + }, + { + "B": 8329430, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 64262, + "destination": 83, + "gain": 1, + "source": 2 + }, + { + "B": 8329430, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 58258, + "destination": 7, + "gain": 1, + "source": 0 + }, + { + "B": 8392926, + "F": 49347, + "delta_forward": 42, + "delta_reverse": 63496, + "destination": 48, + "gain": 1, + "source": 56 + }, + { + "B": 8392926, + "F": 49347, + "delta_forward": 156, + "delta_reverse": 485090, + "destination": 45, + "gain": 1, + "source": 6 + }, + { + "B": 8469752, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 76826, + "destination": 80, + "gain": 1, + "source": 63 + }, + { + "B": 8526718, + "F": 49347, + "delta_forward": 24, + "delta_reverse": 56966, + "destination": 65, + "gain": 1, + "source": 87 + }, + { + "B": 8526718, + "F": 49347, + "delta_forward": 46, + "delta_reverse": 130198, + "destination": 69, + "gain": 2, + "source": 65 + }, + { + "B": 8564436, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 37718, + "destination": 105, + "gain": 1, + "source": 98 + }, + { + "B": 8564436, + "F": 49347, + "delta_forward": 24, + "delta_reverse": 56966, + "destination": 3, + "gain": 1, + "source": 87 + }, + { + "B": 9534616, + "F": 49347, + "delta_forward": 156, + "delta_reverse": 485090, + "destination": 63, + "gain": 1, + "source": 6 + }, + { + "B": 9534616, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 37314, + "destination": 26, + "gain": 1, + "source": 0 + }, + { + "B": 9534616, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 103420, + "destination": 41, + "gain": 1, + "source": 84 + }, + { + "B": 9534616, + "F": 49347, + "delta_forward": 20, + "delta_reverse": 81212, + "destination": 36, + "gain": 6, + "source": 41 + }, + { + "B": 9534616, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 86628, + "destination": 49, + "gain": 1, + "source": 84 + }, + { + "B": 9534616, + "F": 49347, + "delta_forward": 118, + "delta_reverse": 684184, + "destination": 96, + "gain": 2, + "source": 49 + }, + { + "B": 9534616, + "F": 49347, + "delta_forward": 30, + "delta_reverse": 68928, + "destination": 96, + "gain": 3, + "source": 47 + }, + { + "B": 9534616, + "F": 49347, + "delta_forward": 32, + "delta_reverse": 78442, + "destination": 38, + "gain": 1, + "source": 47 + }, + { + "B": 9534616, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 45428, + "destination": 55, + "gain": 1, + "source": 46 + }, + { + "B": 9534616, + "F": 49347, + "delta_forward": 24, + "delta_reverse": 56966, + "destination": 50, + "gain": 1, + "source": 87 + }, + { + "B": 9534616, + "F": 49347, + "delta_forward": 16, + "delta_reverse": 61730, + "destination": 24, + "gain": 1, + "source": 11 + }, + { + "B": 9534616, + "F": 49347, + "delta_forward": 24, + "delta_reverse": 56966, + "destination": 67, + "gain": 1, + "source": 87 + }, + { + "B": 9534616, + "F": 49347, + "delta_forward": 18, + "delta_reverse": 45532, + "destination": 60, + "gain": 1, + "source": 46 + } + ], + "stopping_reason": "no admissible strict-gain ordered pair" +} diff --git a/research/r439-helper-matching/vendor/pr915/LICENSE b/research/r439-helper-matching/vendor/pr915/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/r439-helper-matching/vendor/pr915/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/research/r439-helper-matching/vendor/pr915/NOTICE.md b/research/r439-helper-matching/vendor/pr915/NOTICE.md new file mode 100644 index 0000000000..bd410b07fd --- /dev/null +++ b/research/r439-helper-matching/vendor/pr915/NOTICE.md @@ -0,0 +1,60 @@ +# Notice and attribution + +New code and documentation are Apache-2.0. Prepared for Gareth Davidson +(@bitplane), with substantial OpenAI Codex assistance. One AI agent performed +the work; algorithmic independence does not mean independent human review. + +The input and modified candidate derive from **DreamingOfClouds's PR589** +(`a5afc8c6169ea61ba7c51dfd3cade02cc7b13b46`), tuning **eumemic's PR555/543** +punctured E8 construction. DreamingOfClouds used Claude Opus 5.5 (Anthropic) +via Claude Code; eumemic's retained notice discloses Anthropic Claude +assistance. PR589 uses transport mechanisms from Dugongue's PR541/548 and +rohanarun's PR542. The original notices and licenses for the tuned word and +carrier skeleton are immutable source inputs. LICENSE here is copied from +the tuned-word package. The candidate changes only D. + +**commdata2338's PR794**, at +`6be7364e0245c5a1c931cb1c43b3da991b755850`, supplies the guarded target-basis +method and exact incremental positive-vector formula. Its README is retained +verbatim in `provenance/PR794-README.md`, with Git-blob/SHA256 pins in +SOURCES.json. Relative links there refer to the original PR794 package. +PR794 discloses OpenAI Codex (GPT-6 Astra) assistance in mathematics/code and +Claude Code packaging. No PR794 executable is imported here. The new result +is its application to the selected R439 matrix, the actual circuit/bill, and +independent literal bounds at every accepted step. + +Earlier basis and semantic-interface credit: + +- **Mikhail R. Gadelha**, PR686: semantic D-boundary substitution and a + restored helper pair. +- **Greer Guthrie**, PR694: simultaneous helper-basis construction. +- **Scott Woolsey Biggart**, PR713, and **Sagar Thakrar**, PR716: target-side + compensation pair constructions, with substantial OpenAI Codex assistance. +- **Dugongue**, PR476/478: reversible target-factoring precedent. +- **navinor**, PR848: the selected R439 sharing barrier under unchanged + syntactic H2. This submission states the changed contract explicitly. + +`common.py`, `test_package.py` and the native harness are adapted from this +contributor's PR904 mathematical commit +`33b9175c345bcd0f21b95d29f37cb95fffd5a134`. The native harness follows +**Sagar Thakrar's `research/r420-decoder-sharing/native.py`** validation pattern. +The new harness admits the explicitly priced reverse-bound increase, retains +all geometry/lifecycle/column checks, and runs 5/9/11 stages on both words. + +Unchanged in-tree owning code retains the full original notices: + +- **eumemic**: punctured independent checker and carrier skeleton. +- **Dylan Crow / utcorvusvolat-dotcom**, PR370, with Anthropic Claude + assistance: exporter, staging and generalized native cohort checker lineage. +- **DaysSky**, PR381, assisted with Claude: bridged-stage `columns_k.cpp`. +- **Zhihao Chen / jacklightChen**, PR386, with OpenAI Codex assistance: + portable header; also the mutable-source/common-label scalar-interface lineage. +- **DreamingOfClouds**: nine-stage accounting and the retained global template; + **Chafik Boukhalfa** and other credited predecessors: hosted compilation, + physical routes and audits. +- **Niels Lohmann and contributors**: `json.hpp`, retaining its MIT header. +- **Jacob Sussman**: the E8 unit. + +No claim is made to priority for basis factoring, the semantic-prefix contract, +or its incremental-bound method. Source pins and the exact finite contribution +are recorded separately from the inherited full multiplication assumptions. diff --git a/research/r439-helper-matching/vendor/pr915/PROOF.md b/research/r439-helper-matching/vendor/pr915/PROOF.md new file mode 100644 index 0000000000..2230d1e1b6 --- /dev/null +++ b/research/r439-helper-matching/vendor/pr915/PROOF.md @@ -0,0 +1,130 @@ +# Restored target basis and its complete bound + +Fix the selected PR589 word and the exact sources in SOURCES.json. Let K be +the 111×439 binary matrix of the old D helper reads, with target rows 0..110 +and helper columns 0..438. Physical targets are 111..221 and helpers 222..660. +The 111 source registers are untouched throughout D. + +## F2 prefix substitution + +For d≠s, let T(d,s) be the elementary target transvection adding coordinate s +to d. It is its own inverse over F2. For a sequence T₁,…,Tₘ in chronological +order, let E=Tₘ⋯T₁ and compute R=EK by the identical sequence of row XORs. +The emitted prefix performs: + +1. T₁,…,Tₘ on the actual arbitrary target vector y; +2. all helper-to-target additions specified by R; +3. Tₘ,…,T₁ on the actual targets. + +Its output is `E⁻¹(Ey+EKs)=y+Ks`, and every source and helper stays unchanged. +The entrance cannot be omitted just because helpers are the quantities being +compensated: without it, the output would be `E⁻¹y+Ks`. The explicit control +in verify.py passes all helper columns after this omission but fails target +columns. The inverse order is necessary because successive shears overlap. + +Every emitted gate is at frame zero, and reads/writes only targets and helpers +which start there. No MOVE, COPY, private register or recursive child is added. +The state and frames at the entrance to A equal the original state and frames. +Every non-D field is verified identical, so the unchanged remainder receives +identical inputs. This proves prefix substitution into the original interface +under its inherited common-label realization assumptions. + +Literal H2 originally allowed only helper donors in D. Target transvections +therefore fail H2, and direct extraction of K from D's helper lists is invalid. +The semantic replacement is the complete frame-zero boundary map above, checked +independently on all 661 input columns. The old predicates remain unchanged +and explicitly false for the candidate. This is the same semantic substitution +framework credited to PR686 and the target-side PR713/716/794 lineage. + +## Search cost + +Suppose the current row supports of R are Sᵢ. A new target shear d←s changes +only row d to `S_d Δ S_s` and adds one entrance and one restoration gate. +Its exact gain is + +``` +|S_d| - |S_d Δ S_s| - 2. +``` + +Only strictly positive gains are accepted. The 306 accepted shears leave +6,376 helper injections. Thus D costs 306+6,376+306=6,988, against 18,085. +The other 6,220 local additions remain byte-for-byte in the original fields, +giving 13,208 native ADDs and 11,097 saved. The candidate is fully specified by +the literal recipe, not by a rank-only or optimistic operation estimate. + +All paid resources are unchanged: 439 helpers, nine copied totals of rank +seven, rank mass 5,129 and histogram +`{1:1323,2:1342,3:79,4:44,5:102,6:11,7:19}`. The native harness checks each +register's complete MOVE path and every COPY/ERASE record. At 5/9/11 stages, +unchanged bridge costs are 666/1,998/2,664 and fresh-copy counts 45/81/99. +The corresponding ADD savings are 55,485/99,873/122,067. + +## Exact positive update used by nomination + +This argument and its use as an admission guard follow PR794. Replace each +XOR by nonnegative integer addition. Let P be the positive entrance matrix +and Q the positive reverse-order restoration matrix. They generally are not +integer inverses. For incoming nonnegative target bounds a and fixed helper +bounds h, the output bound is `Q(Pa+Rh)`, where R is the current binary read +matrix, interpreted as a 0/1 integer matrix. + +Append a shear d←s, with positive matrix G=I+e_d e_sᵀ. Then P′=GP, +Q′=QG, and row d of the binary R′ is S_d Δ S_s. The new bound is +`QG(GPa+R′h)`. Using `G²=I+2e_d e_sᵀ` and expanding row d gives exactly + +``` +new_bound - old_bound + = 2 Q[:,d] ((Pa)[s] + sum(h[j] for j in S_s minus S_d)). +``` + +All factors are nonnegative. Updating Q only requires adding its column d to +column s. The builder maintains this formula for the actual forward and reverse +entry bounds. The independent verifier does not use this update to accept +steps: it reconstructs and literally executes each of the 306 complete partial +words in both orientations, including fresh-center copies and erasures. + +Within D every positive target coordinate is monotone, so its maximum occurs +at the D endpoint. The unchanged remainder never reads a target as an ADD +source; its target increments can therefore be precomputed independently of +D. The forward maximum is the larger of the unchanged source/helper maximum +and the new D target endpoint plus the fixed tail increment. In reverse order, +the unchanged reversed tail fixes D's input bound vector; D comes last. These +observations justify the exact incremental full-word admission tests. + +## Precision guards and limits + +The guard fixes F≤49,347. It sets B≤16,913,320, the smaller of the exact integer +cutoffs from + +``` +64 F^3 B^2 < 2^104, +2^18 F^5 B^4 < 2^192. +``` + +The second expression is the pinned source template's +`2^nb F^(K+1) B^K` at K=4, with nb=6(K−1)=18 bridges. The verifier binds the +expression and bridge relation to the source AST and checks that the baseline +reproduces its recorded 177-bit bound and 192-bit charge. + +Literal native replay yields F=49,347 and B=9,534,616. The local payload bound +is 699,147,249,763,640,764,132,165,496,832 (100 bits). The nine-stage bound is +633,952,218,342,189,222,305,933,054,575,935,669,674,977,721,489,175,871,488 +(189 bits). Both fit the stated existing ceilings. The reverse bound is +larger than the baseline and is charged explicitly. No candidate was rejected +by either guard during this particular nomination. + +The verified bound concerns the signed lift's finite cancellation-free +prefix estimate. It does not establish unchanged unrounded invoice coefficients, +all other charged allocations, a full hosted reconstruction, or a new exponent. +The other assumptions of the selected construction remain those recorded in +its maintainer review. This prefix estimate alone does not justify a complete +machine implementation or the analytic multiplication bound. + +## Completed domain + +All 12,210 ordered pairs are scored at each of 307 iterations, including the +terminal iteration: 3,748,470 scores. Seed 10 fixes tie priority. The declared +1,000-step cap is not reached. The final matrix has maximum next-shear net gain +zero, verified independently on all pairs. This certifies termination for the +specified one-step improvement rule. Zero-gain detours, non-greedy histories, +simultaneous row/column changes and global circuit optimality are outside scope. diff --git a/research/r439-helper-matching/vendor/pr915/README.md b/research/r439-helper-matching/vendor/pr915/README.md new file mode 100644 index 0000000000..4259b0ceab --- /dev/null +++ b/research/r439-helper-matching/vendor/pr915/README.md @@ -0,0 +1,144 @@ +# Selected R439 compensation through a restored target basis + +**Finite bit-circuit construction; no new κ.** Applying the target-basis +method of PR713/716/794 to the selected PR589 word saves **11,097 additions**: +the full local word falls from **24,305 to 13,208 ADDs**. All target +preparation, helper reads and target restoration are paid. Helpers, copies, +frame paths and paid recursive ranks stay unchanged. + +The positive reverse bound increases. The candidate needs **100 local payload +bits** under the inherited 104-bit ceiling. The source nine-stage expression +`2^18 F^5 B^4` needs **189 bits**, within the existing **192-bit prefix charge**. +A full changed-word hosted invoice and supplier integration are separate work. + +| Quantity | Selected PR589 | Candidate | +|---|---:|---:| +| D target preparation / restoration | 0 / 0 | 306 / 306 | +| D helper injections | 18,085 | 6,376 | +| Complete D ADDs | **18,085** | **6,988** | +| Other local ADDs | 6,220 | 6,220 | +| Complete native ADDs | **24,305** | **13,208** | +| Exported records | 27,234 | 16,137 | +| Forward positive bound F | 49,347 | 49,347 | +| Reverse positive bound B | 1,113,070 | 9,534,616 | +| Local payload bits | 93 | 100 | +| Nine-stage prefix bits / charge | 177 / 192 | 189 / 192 | +| Helpers / retained copies / paid rank mass | 439 / 9 / 5,129 | 439 / 9 / 5,129 | + +## Required interface change + +Only the frame-zero D prefix changes. For the original binary compensation +matrix K, the new D applies an invertible target basis E, adds helpers along +`R = E K`, and undoes E in literal reverse order. Thus + +```text +E^-1 (E y + R s) = y + K s. +``` + +This holds for arbitrary target inputs y and arbitrary helper dirt s. D never +writes a source or helper. Every non-D field is identical to PR589. + +**The original syntactic H2 and its direct K extractor reject this word.** +Their false results are retained in the receipt; the source checker is +unchanged. The replacement contract is a legal frame-zero D with complete +operator `(x,y,s) -> (x,y+Ks,s)`. The proof of prefix substitution is in +[PROOF.md](PROOF.md), following the semantic D-boundary work of PR686 and +the target-side constructions of PR713/716/794. The original H1/H3/H4/H5, +all other interface conclusions, complete geometry, frame legality and full +arbitrary-input endpoint pass. Maintainer acceptance and source binding of +this semantic contract are required for integration. + +The identity is over F2. The signed integer lifts have newly computed +cancellation-free bounds; no equality of the forward integer matrices is +asserted. The existing common-label, mutable-source and realization assumptions +remain inherited. + +## Reproduce + +Use Python 3.12+, a C++17 compiler and Boost headers: + +```sh +python3 -I -B research/r439-target-compensation/verify.py +python3 -I -B research/r439-target-compensation/test_package.py -v +``` + +Expected main marker: + +```text +PASS_R439_TARGET_COMPENSATION: D=18085->6988 ADDs=24305->13208 steps=306 nine_bits=189; semantic D; no new kappa +``` + +`CXX` selects the compiler; `BOOST_INCLUDE` selects a directory containing +`boost/` if it is outside `/usr/include`. No Python packages, Git metadata or +network are needed. `--output NEW_DIRECTORY` retains logs, regenerated data +and fresh native binaries; `--receipt NEW_JSON` writes the full deterministic +receipt. Both refuse existing paths. Without these options, outputs are +temporary and nothing is written to the package. `--source-root` supports a +relocated minimal closure of the 14 in-tree inputs in [SOURCES.json](SOURCES.json). +The pinned PR794 proof is retained verbatim under `provenance/`. + +The verifier repeats the nomination, compares every decoded candidate field, +reconstructs the recipe using independent set-valued rows, and literally +replays the complete positive word in **both directions for all 306 accepted +steps** (9,643,960 instructions). It checks **661 separate Boolean input +columns** on baseline/candidate D in both directions. All full source checks +then run, with exactly the two expected syntactic rejections recorded. + +Unchanged native legality and 5/9/11-stage checkers accept both complete words +on **883 / 1,327 / 1,549 columns** per word. All **96 omitted-bridge controls** +reject. Fourteen local controls cover missing entrance/restoration, wrong undo +order, missing helper injection, frame/operand/receipt faults, unrelated edits +and precision overruns. A missing entire entrance passes helper-only checking +and fails arbitrary-target checking. A cancelling target pair is accepted +semantically and charged two ADDs. Eight package tests cover source corruption, +typed JSON, recompression and output preservation. Executed portability checks +are recorded in [VALIDATION.md](VALIDATION.md). + +The nine-stage prefix expression is bound to the pinned source AST, bridge +exponent and PR589 baseline receipt. Its new bound is +`633952218342189222305933054575935669674977721489175871488` (189 bits). +This check does not reconstruct the hosted parent or its complete finite invoice. + +## Bounded search and prior work + +OS seed **10** selected the bit track and the compensation candidate among +three tasks. The [local claim](CLAIM.json) records the domain, stopped searches +and overlap review. Each iteration scores all 12,210 ordered target pairs, +charging two basis gates for a row change. Seed 10 fixes tie order. The search +accepts the highest-gain pair satisfying exact forward and reverse guards; +it stops at no eligible gain or 1,000 accepted steps. + +This run stops after **306 steps and 3,748,470 pair scores**, with **218,204 +positive scores across the successive matrices**. No prefix guard rejected a +nominee in this run. Independent enumeration of all 12,210 final pairs gives +maximum additional gain **zero**. This is a local stopping certificate for +one additional paid row shear. Neutral detours, multi-step improvements, +helper-basis changes and globally optimal circuits are outside the search. + +**commdata2338's PR794** supplies the guarded target-basis method and exact +incremental bound argument, on historical R420. **Scott Woolsey Biggart's +PR713** and **Sagar Thakrar's PR716** give earlier target-pair constructions; +**Mikhail R. Gadelha's PR686** and **Greer Guthrie's PR694** supply the semantic +D-boundary/helper-basis lineage. This contribution applies that mechanism to +the selected punctured R439 matrix, supplies the 11,097-ADD reduction and +replays all accepted-step bounds independently. It claims no priority for +basis factoring or the semantic contract. + +PR848 explains why R439 sharing is blocked by the unchanged H2 syntax; this +uses the explicitly stated semantic replacement. PR904 changes A/B windows +and leaves D unchanged. No combined candidate with PR904 or any other circuit +PR is certified. The selected #799 κ stays `1661634653669567/10^18`. + +Base: `f567884aeb8851b6e794af1184119a3bfbe1e631`. +Word: **DreamingOfClouds's PR589 tuning of eumemic's PR555**, +`a5afc8c6169ea61ba7c51dfd3cade02cc7b13b46`. +Integration requires acceptance of the semantic D boundary and a full updated +hosted reconstruction and invoice. The selected construction's other assumptions +are recorded in the [maintainer review](../../docs/research/community-frontier799-review.md). +These finite checks do not prove that the construction compiles correctly for +every input size or establish the analytic reduction used by the multiplication +theorem. The selected construction is unchanged; no runtime improvement is measured. + +Prepared for **Gareth Davidson (@bitplane), with substantial OpenAI Codex +assistance**. One AI agent performed the work; no independent human review +is claimed. Apache-2.0. See [NOTICE.md](NOTICE.md). diff --git a/research/r439-helper-matching/vendor/pr915/candidate.json.gz b/research/r439-helper-matching/vendor/pr915/candidate.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..7f1f188f516ca4661f419dc72114751abf3cc920 GIT binary patch literal 38950 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 literal 0 HcmV?d00001 diff --git a/research/r439-helper-matching/vendor/pr926/CERTIFICATE.json b/research/r439-helper-matching/vendor/pr926/CERTIFICATE.json new file mode 100644 index 0000000000..bdbe161603 --- /dev/null +++ b/research/r439-helper-matching/vendor/pr926/CERTIFICATE.json @@ -0,0 +1,1562 @@ +{ + "B": 10562318, + "D_adds": 5760, + "F": 71907, + "baseline_sha256": "5642fd0e35a1acc11acff8d0c08350c1617e95f310d4d35ad63a651f9eeeba0b", + "candidate_sha256": "fdb1a0dfafe5392e01fb87f5813737db0f15682c5cb98fc224d4d4cdbc806dd2", + "census_sha256": "0994d83fb946309c93f499b329cca99f7dfc0a8e3d2cd03b5b571e5ab74bb306", + "format": "r439-two-sided/1", + "guard_rejections": [], + "helper_pairs": 192, + "max_pair_gain": 19, + "middle_weight": 4764, + "native_ADDs": 11980, + "nine_stage_prefix_bits": 192, + "overlap_skips": 2106, + "pair_scores": 192282, + "parent_sha256": "6aec2c6f91c87a7440af10cdeb90b8814501224a86de14d4033ae3ffa00899da", + "payload_bits": 102, + "positive_pairs": 2298, + "saved_beyond_parent": 1228, + "seed": 5, + "steps": [ + { + "B": 9534616, + "F": 49743, + "a": 129, + "b": 155, + "gain": 19, + "middle_weight": 6355 + }, + { + "B": 9534616, + "F": 49743, + "a": 58, + "b": 38, + "gain": 19, + "middle_weight": 6334 + }, + { + "B": 9534616, + "F": 49743, + "a": 52, + "b": 62, + "gain": 17, + "middle_weight": 6315 + }, + { + "B": 9534616, + "F": 49939, + "a": 239, + "b": 229, + "gain": 15, + "middle_weight": 6298 + }, + { + "B": 9540838, + "F": 49939, + "a": 123, + "b": 158, + "gain": 15, + "middle_weight": 6281 + }, + { + "B": 9541828, + "F": 49971, + "a": 131, + "b": 149, + "gain": 14, + "middle_weight": 6265 + }, + { + "B": 9541828, + "F": 50067, + "a": 79, + "b": 189, + "gain": 14, + "middle_weight": 6249 + }, + { + "B": 9541828, + "F": 50083, + "a": 434, + "b": 374, + "gain": 14, + "middle_weight": 6233 + }, + { + "B": 9541828, + "F": 50143, + "a": 134, + "b": 98, + "gain": 13, + "middle_weight": 6218 + }, + { + "B": 9541828, + "F": 50143, + "a": 284, + "b": 152, + "gain": 13, + "middle_weight": 6203 + }, + { + "B": 9541828, + "F": 50175, + "a": 84, + "b": 160, + "gain": 13, + "middle_weight": 6188 + }, + { + "B": 9541828, + "F": 50183, + "a": 31, + "b": 7, + "gain": 13, + "middle_weight": 6173 + }, + { + "B": 9541828, + "F": 50279, + "a": 202, + "b": 37, + "gain": 13, + "middle_weight": 6158 + }, + { + "B": 9541828, + "F": 51467, + "a": 196, + "b": 32, + "gain": 13, + "middle_weight": 6143 + }, + { + "B": 9541828, + "F": 51467, + "a": 9, + "b": 237, + "gain": 12, + "middle_weight": 6129 + }, + { + "B": 9541828, + "F": 51599, + "a": 72, + "b": 68, + "gain": 12, + "middle_weight": 6115 + }, + { + "B": 9541828, + "F": 51995, + "a": 101, + "b": 144, + "gain": 12, + "middle_weight": 6101 + }, + { + "B": 9541828, + "F": 51995, + "a": 113, + "b": 142, + "gain": 12, + "middle_weight": 6087 + }, + { + "B": 9541828, + "F": 51995, + "a": 296, + "b": 332, + "gain": 12, + "middle_weight": 6073 + }, + { + "B": 9541828, + "F": 51995, + "a": 266, + "b": 96, + "gain": 12, + "middle_weight": 6059 + }, + { + "B": 9541828, + "F": 52083, + "a": 273, + "b": 126, + "gain": 12, + "middle_weight": 6045 + }, + { + "B": 9597692, + "F": 52171, + "a": 274, + "b": 114, + "gain": 12, + "middle_weight": 6031 + }, + { + "B": 9597692, + "F": 52219, + "a": 63, + "b": 214, + "gain": 11, + "middle_weight": 6018 + }, + { + "B": 9597692, + "F": 52235, + "a": 285, + "b": 133, + "gain": 11, + "middle_weight": 6005 + }, + { + "B": 9597692, + "F": 52295, + "a": 43, + "b": 39, + "gain": 11, + "middle_weight": 5992 + }, + { + "B": 9597692, + "F": 53483, + "a": 212, + "b": 55, + "gain": 11, + "middle_weight": 5979 + }, + { + "B": 9597692, + "F": 53483, + "a": 41, + "b": 192, + "gain": 11, + "middle_weight": 5966 + }, + { + "B": 9597692, + "F": 53483, + "a": 208, + "b": 35, + "gain": 11, + "middle_weight": 5953 + }, + { + "B": 9605606, + "F": 53615, + "a": 169, + "b": 191, + "gain": 11, + "middle_weight": 5940 + }, + { + "B": 9605606, + "F": 53639, + "a": 234, + "b": 15, + "gain": 11, + "middle_weight": 5927 + }, + { + "B": 9605606, + "F": 53639, + "a": 390, + "b": 403, + "gain": 11, + "middle_weight": 5914 + }, + { + "B": 9605606, + "F": 54827, + "a": 16, + "b": 26, + "gain": 11, + "middle_weight": 5901 + }, + { + "B": 9605606, + "F": 54895, + "a": 199, + "b": 50, + "gain": 10, + "middle_weight": 5889 + }, + { + "B": 9610476, + "F": 55023, + "a": 182, + "b": 73, + "gain": 10, + "middle_weight": 5877 + }, + { + "B": 9610476, + "F": 55023, + "a": 203, + "b": 36, + "gain": 10, + "middle_weight": 5865 + }, + { + "B": 9610476, + "F": 55023, + "a": 377, + "b": 437, + "gain": 10, + "middle_weight": 5853 + }, + { + "B": 9610476, + "F": 55023, + "a": 309, + "b": 346, + "gain": 10, + "middle_weight": 5841 + }, + { + "B": 9610476, + "F": 55119, + "a": 371, + "b": 409, + "gain": 10, + "middle_weight": 5829 + }, + { + "B": 9650838, + "F": 55179, + "a": 115, + "b": 151, + "gain": 10, + "middle_weight": 5817 + }, + { + "B": 9650838, + "F": 55223, + "a": 12, + "b": 30, + "gain": 10, + "middle_weight": 5805 + }, + { + "B": 9650838, + "F": 55271, + "a": 209, + "b": 51, + "gain": 10, + "middle_weight": 5793 + }, + { + "B": 9650838, + "F": 55271, + "a": 236, + "b": 5, + "gain": 10, + "middle_weight": 5781 + }, + { + "B": 9650838, + "F": 55279, + "a": 195, + "b": 211, + "gain": 9, + "middle_weight": 5770 + }, + { + "B": 9654018, + "F": 55279, + "a": 314, + "b": 42, + "gain": 9, + "middle_weight": 5759 + }, + { + "B": 9654018, + "F": 55279, + "a": 18, + "b": 1, + "gain": 9, + "middle_weight": 5748 + }, + { + "B": 9654018, + "F": 55295, + "a": 122, + "b": 103, + "gain": 9, + "middle_weight": 5737 + }, + { + "B": 9662752, + "F": 55295, + "a": 94, + "b": 171, + "gain": 9, + "middle_weight": 5726 + }, + { + "B": 9662752, + "F": 55295, + "a": 429, + "b": 381, + "gain": 9, + "middle_weight": 5715 + }, + { + "B": 9662752, + "F": 55363, + "a": 46, + "b": 205, + "gain": 9, + "middle_weight": 5704 + }, + { + "B": 9667326, + "F": 55543, + "a": 54, + "b": 217, + "gain": 9, + "middle_weight": 5693 + }, + { + "B": 9679936, + "F": 55567, + "a": 139, + "b": 99, + "gain": 9, + "middle_weight": 5682 + }, + { + "B": 9679936, + "F": 55567, + "a": 364, + "b": 327, + "gain": 9, + "middle_weight": 5671 + }, + { + "B": 9679936, + "F": 55567, + "a": 125, + "b": 146, + "gain": 9, + "middle_weight": 5660 + }, + { + "B": 9679936, + "F": 55903, + "a": 29, + "b": 69, + "gain": 8, + "middle_weight": 5650 + }, + { + "B": 9693366, + "F": 55947, + "a": 64, + "b": 87, + "gain": 8, + "middle_weight": 5640 + }, + { + "B": 9696008, + "F": 55947, + "a": 66, + "b": 82, + "gain": 8, + "middle_weight": 5630 + }, + { + "B": 9696008, + "F": 56171, + "a": 85, + "b": 170, + "gain": 8, + "middle_weight": 5620 + }, + { + "B": 9696008, + "F": 56171, + "a": 227, + "b": 28, + "gain": 8, + "middle_weight": 5610 + }, + { + "B": 9696008, + "F": 56231, + "a": 351, + "b": 315, + "gain": 8, + "middle_weight": 5600 + }, + { + "B": 9696008, + "F": 56363, + "a": 25, + "b": 21, + "gain": 8, + "middle_weight": 5590 + }, + { + "B": 9696008, + "F": 56543, + "a": 154, + "b": 105, + "gain": 8, + "middle_weight": 5580 + }, + { + "B": 9696008, + "F": 56543, + "a": 392, + "b": 416, + "gain": 8, + "middle_weight": 5570 + }, + { + "B": 9696008, + "F": 56543, + "a": 80, + "b": 74, + "gain": 8, + "middle_weight": 5560 + }, + { + "B": 9696008, + "F": 56543, + "a": 232, + "b": 23, + "gain": 8, + "middle_weight": 5550 + }, + { + "B": 9696008, + "F": 56543, + "a": 336, + "b": 295, + "gain": 8, + "middle_weight": 5540 + }, + { + "B": 9696008, + "F": 56591, + "a": 40, + "b": 193, + "gain": 8, + "middle_weight": 5530 + }, + { + "B": 9696008, + "F": 56607, + "a": 112, + "b": 124, + "gain": 8, + "middle_weight": 5520 + }, + { + "B": 9696008, + "F": 56607, + "a": 260, + "b": 281, + "gain": 8, + "middle_weight": 5510 + }, + { + "B": 9696008, + "F": 56703, + "a": 91, + "b": 70, + "gain": 8, + "middle_weight": 5500 + }, + { + "B": 9696008, + "F": 56771, + "a": 83, + "b": 172, + "gain": 8, + "middle_weight": 5490 + }, + { + "B": 9881228, + "F": 57167, + "a": 110, + "b": 120, + "gain": 8, + "middle_weight": 5480 + }, + { + "B": 9881228, + "F": 57191, + "a": 404, + "b": 389, + "gain": 7, + "middle_weight": 5471 + }, + { + "B": 9924566, + "F": 57191, + "a": 27, + "b": 17, + "gain": 7, + "middle_weight": 5462 + }, + { + "B": 9930372, + "F": 57287, + "a": 44, + "b": 197, + "gain": 7, + "middle_weight": 5453 + }, + { + "B": 9946174, + "F": 57683, + "a": 14, + "b": 235, + "gain": 7, + "middle_weight": 5444 + }, + { + "B": 9946174, + "F": 57695, + "a": 337, + "b": 306, + "gain": 7, + "middle_weight": 5435 + }, + { + "B": 9946174, + "F": 57695, + "a": 419, + "b": 395, + "gain": 7, + "middle_weight": 5426 + }, + { + "B": 9946174, + "F": 57695, + "a": 258, + "b": 316, + "gain": 7, + "middle_weight": 5417 + }, + { + "B": 9946174, + "F": 57695, + "a": 391, + "b": 420, + "gain": 7, + "middle_weight": 5408 + }, + { + "B": 9946174, + "F": 57695, + "a": 369, + "b": 415, + "gain": 7, + "middle_weight": 5399 + }, + { + "B": 9946174, + "F": 57779, + "a": 92, + "b": 180, + "gain": 7, + "middle_weight": 5390 + }, + { + "B": 9946174, + "F": 57779, + "a": 270, + "b": 119, + "gain": 7, + "middle_weight": 5381 + }, + { + "B": 9950752, + "F": 57779, + "a": 102, + "b": 132, + "gain": 7, + "middle_weight": 5372 + }, + { + "B": 9957362, + "F": 57875, + "a": 220, + "b": 34, + "gain": 7, + "middle_weight": 5363 + }, + { + "B": 9957362, + "F": 57939, + "a": 375, + "b": 435, + "gain": 7, + "middle_weight": 5354 + }, + { + "B": 9957362, + "F": 58051, + "a": 426, + "b": 367, + "gain": 6, + "middle_weight": 5346 + }, + { + "B": 9957362, + "F": 58867, + "a": 173, + "b": 89, + "gain": 6, + "middle_weight": 5338 + }, + { + "B": 9957362, + "F": 58935, + "a": 300, + "b": 430, + "gain": 6, + "middle_weight": 5330 + }, + { + "B": 9957362, + "F": 62103, + "a": 176, + "b": 67, + "gain": 6, + "middle_weight": 5322 + }, + { + "B": 9957362, + "F": 62131, + "a": 178, + "b": 75, + "gain": 6, + "middle_weight": 5314 + }, + { + "B": 9957362, + "F": 62607, + "a": 78, + "b": 188, + "gain": 6, + "middle_weight": 5306 + }, + { + "B": 9957362, + "F": 62607, + "a": 282, + "b": 0, + "gain": 6, + "middle_weight": 5298 + }, + { + "B": 9957362, + "F": 62703, + "a": 393, + "b": 417, + "gain": 6, + "middle_weight": 5290 + }, + { + "B": 9961796, + "F": 63099, + "a": 372, + "b": 421, + "gain": 6, + "middle_weight": 5282 + }, + { + "B": 9961796, + "F": 63099, + "a": 345, + "b": 310, + "gain": 6, + "middle_weight": 5274 + }, + { + "B": 9976818, + "F": 63219, + "a": 216, + "b": 45, + "gain": 6, + "middle_weight": 5266 + }, + { + "B": 9976818, + "F": 63615, + "a": 223, + "b": 49, + "gain": 6, + "middle_weight": 5258 + }, + { + "B": 9976818, + "F": 63631, + "a": 330, + "b": 361, + "gain": 6, + "middle_weight": 5250 + }, + { + "B": 9976818, + "F": 63663, + "a": 432, + "b": 379, + "gain": 6, + "middle_weight": 5242 + }, + { + "B": 9976818, + "F": 63663, + "a": 230, + "b": 2, + "gain": 6, + "middle_weight": 5234 + }, + { + "B": 9976818, + "F": 63663, + "a": 53, + "b": 219, + "gain": 6, + "middle_weight": 5226 + }, + { + "B": 9976818, + "F": 64011, + "a": 22, + "b": 233, + "gain": 6, + "middle_weight": 5218 + }, + { + "B": 9976818, + "F": 64011, + "a": 408, + "b": 385, + "gain": 6, + "middle_weight": 5210 + }, + { + "B": 9976818, + "F": 64011, + "a": 305, + "b": 341, + "gain": 5, + "middle_weight": 5203 + }, + { + "B": 9976818, + "F": 64043, + "a": 376, + "b": 436, + "gain": 5, + "middle_weight": 5196 + }, + { + "B": 9976818, + "F": 64043, + "a": 57, + "b": 47, + "gain": 5, + "middle_weight": 5189 + }, + { + "B": 9976818, + "F": 64171, + "a": 422, + "b": 402, + "gain": 5, + "middle_weight": 5182 + }, + { + "B": 9976818, + "F": 64171, + "a": 378, + "b": 433, + "gain": 5, + "middle_weight": 5175 + }, + { + "B": 9976818, + "F": 65359, + "a": 410, + "b": 398, + "gain": 5, + "middle_weight": 5168 + }, + { + "B": 9976818, + "F": 65359, + "a": 231, + "b": 3, + "gain": 5, + "middle_weight": 5161 + }, + { + "B": 9976818, + "F": 65403, + "a": 174, + "b": 77, + "gain": 5, + "middle_weight": 5154 + }, + { + "B": 9976818, + "F": 65651, + "a": 226, + "b": 238, + "gain": 5, + "middle_weight": 5147 + }, + { + "B": 9977636, + "F": 65667, + "a": 147, + "b": 143, + "gain": 5, + "middle_weight": 5140 + }, + { + "B": 9977636, + "F": 65667, + "a": 370, + "b": 423, + "gain": 5, + "middle_weight": 5133 + }, + { + "B": 9981136, + "F": 65667, + "a": 251, + "b": 118, + "gain": 5, + "middle_weight": 5126 + }, + { + "B": 9981136, + "F": 65667, + "a": 407, + "b": 386, + "gain": 5, + "middle_weight": 5119 + }, + { + "B": 9981136, + "F": 65675, + "a": 104, + "b": 308, + "gain": 5, + "middle_weight": 5112 + }, + { + "B": 9981136, + "F": 65807, + "a": 322, + "b": 90, + "gain": 5, + "middle_weight": 5105 + }, + { + "B": 9981136, + "F": 65831, + "a": 293, + "b": 347, + "gain": 5, + "middle_weight": 5098 + }, + { + "B": 9981136, + "F": 65831, + "a": 283, + "b": 224, + "gain": 5, + "middle_weight": 5091 + }, + { + "B": 9981136, + "F": 65831, + "a": 140, + "b": 111, + "gain": 5, + "middle_weight": 5084 + }, + { + "B": 9990620, + "F": 65855, + "a": 33, + "b": 206, + "gain": 5, + "middle_weight": 5077 + }, + { + "B": 9990620, + "F": 65939, + "a": 225, + "b": 4, + "gain": 5, + "middle_weight": 5070 + }, + { + "B": 10004594, + "F": 65975, + "a": 400, + "b": 181, + "gain": 4, + "middle_weight": 5064 + }, + { + "B": 10030054, + "F": 66195, + "a": 183, + "b": 179, + "gain": 4, + "middle_weight": 5058 + }, + { + "B": 10063010, + "F": 66207, + "a": 109, + "b": 107, + "gain": 4, + "middle_weight": 5052 + }, + { + "B": 10063010, + "F": 66279, + "a": 401, + "b": 413, + "gain": 4, + "middle_weight": 5046 + }, + { + "B": 10063010, + "F": 66279, + "a": 247, + "b": 257, + "gain": 4, + "middle_weight": 5040 + }, + { + "B": 10100554, + "F": 66279, + "a": 11, + "b": 20, + "gain": 4, + "middle_weight": 5034 + }, + { + "B": 10100554, + "F": 66279, + "a": 333, + "b": 297, + "gain": 4, + "middle_weight": 5028 + }, + { + "B": 10103474, + "F": 66287, + "a": 145, + "b": 100, + "gain": 4, + "middle_weight": 5022 + }, + { + "B": 10169470, + "F": 66467, + "a": 156, + "b": 141, + "gain": 4, + "middle_weight": 5016 + }, + { + "B": 10171312, + "F": 66647, + "a": 397, + "b": 414, + "gain": 4, + "middle_weight": 5010 + }, + { + "B": 10171312, + "F": 66647, + "a": 320, + "b": 162, + "gain": 4, + "middle_weight": 5004 + }, + { + "B": 10171312, + "F": 66647, + "a": 252, + "b": 287, + "gain": 4, + "middle_weight": 4998 + }, + { + "B": 10171312, + "F": 66731, + "a": 190, + "b": 71, + "gain": 4, + "middle_weight": 4992 + }, + { + "B": 10195316, + "F": 66819, + "a": 198, + "b": 24, + "gain": 4, + "middle_weight": 4986 + }, + { + "B": 10196346, + "F": 66879, + "a": 60, + "b": 213, + "gain": 4, + "middle_weight": 4980 + }, + { + "B": 10196346, + "F": 66879, + "a": 384, + "b": 427, + "gain": 4, + "middle_weight": 4974 + }, + { + "B": 10208598, + "F": 67023, + "a": 186, + "b": 161, + "gain": 3, + "middle_weight": 4969 + }, + { + "B": 10208598, + "F": 67023, + "a": 354, + "b": 313, + "gain": 3, + "middle_weight": 4964 + }, + { + "B": 10373362, + "F": 67055, + "a": 271, + "b": 128, + "gain": 3, + "middle_weight": 4959 + }, + { + "B": 10373362, + "F": 67123, + "a": 365, + "b": 326, + "gain": 3, + "middle_weight": 4954 + }, + { + "B": 10373362, + "F": 67147, + "a": 157, + "b": 116, + "gain": 3, + "middle_weight": 4949 + }, + { + "B": 10502550, + "F": 67543, + "a": 168, + "b": 61, + "gain": 3, + "middle_weight": 4944 + }, + { + "B": 10502550, + "F": 67551, + "a": 318, + "b": 349, + "gain": 3, + "middle_weight": 4939 + }, + { + "B": 10502550, + "F": 67551, + "a": 335, + "b": 200, + "gain": 3, + "middle_weight": 4934 + }, + { + "B": 10502550, + "F": 67551, + "a": 290, + "b": 76, + "gain": 3, + "middle_weight": 4929 + }, + { + "B": 10503806, + "F": 67551, + "a": 256, + "b": 242, + "gain": 3, + "middle_weight": 4924 + }, + { + "B": 10503806, + "F": 67551, + "a": 355, + "b": 324, + "gain": 3, + "middle_weight": 4919 + }, + { + "B": 10505666, + "F": 67551, + "a": 108, + "b": 130, + "gain": 3, + "middle_weight": 4914 + }, + { + "B": 10505666, + "F": 67583, + "a": 294, + "b": 276, + "gain": 3, + "middle_weight": 4909 + }, + { + "B": 10505666, + "F": 67611, + "a": 304, + "b": 321, + "gain": 3, + "middle_weight": 4904 + }, + { + "B": 10505666, + "F": 67655, + "a": 338, + "b": 302, + "gain": 3, + "middle_weight": 4899 + }, + { + "B": 10522288, + "F": 67655, + "a": 288, + "b": 153, + "gain": 3, + "middle_weight": 4894 + }, + { + "B": 10522288, + "F": 67655, + "a": 424, + "b": 298, + "gain": 3, + "middle_weight": 4889 + }, + { + "B": 10522288, + "F": 67679, + "a": 175, + "b": 86, + "gain": 2, + "middle_weight": 4885 + }, + { + "B": 10522288, + "F": 67679, + "a": 253, + "b": 246, + "gain": 2, + "middle_weight": 4881 + }, + { + "B": 10522288, + "F": 67679, + "a": 396, + "b": 350, + "gain": 2, + "middle_weight": 4877 + }, + { + "B": 10522288, + "F": 67687, + "a": 323, + "b": 106, + "gain": 2, + "middle_weight": 4873 + }, + { + "B": 10546868, + "F": 67703, + "a": 167, + "b": 88, + "gain": 2, + "middle_weight": 4869 + }, + { + "B": 10546868, + "F": 67731, + "a": 277, + "b": 262, + "gain": 2, + "middle_weight": 4865 + }, + { + "B": 10546868, + "F": 67731, + "a": 254, + "b": 245, + "gain": 2, + "middle_weight": 4861 + }, + { + "B": 10546868, + "F": 67731, + "a": 222, + "b": 248, + "gain": 2, + "middle_weight": 4857 + }, + { + "B": 10546868, + "F": 67731, + "a": 411, + "b": 399, + "gain": 2, + "middle_weight": 4853 + }, + { + "B": 10546868, + "F": 68127, + "a": 275, + "b": 127, + "gain": 2, + "middle_weight": 4849 + }, + { + "B": 10546868, + "F": 68247, + "a": 368, + "b": 221, + "gain": 2, + "middle_weight": 4845 + }, + { + "B": 10546868, + "F": 68319, + "a": 207, + "b": 268, + "gain": 2, + "middle_weight": 4841 + }, + { + "B": 10551326, + "F": 68343, + "a": 187, + "b": 95, + "gain": 2, + "middle_weight": 4837 + }, + { + "B": 10551326, + "F": 68391, + "a": 418, + "b": 394, + "gain": 2, + "middle_weight": 4833 + }, + { + "B": 10551326, + "F": 68391, + "a": 280, + "b": 261, + "gain": 2, + "middle_weight": 4829 + }, + { + "B": 10551326, + "F": 68399, + "a": 359, + "b": 81, + "gain": 2, + "middle_weight": 4825 + }, + { + "B": 10555848, + "F": 68399, + "a": 362, + "b": 329, + "gain": 2, + "middle_weight": 4821 + }, + { + "B": 10555848, + "F": 68399, + "a": 405, + "b": 159, + "gain": 1, + "middle_weight": 4818 + }, + { + "B": 10557070, + "F": 68415, + "a": 267, + "b": 6, + "gain": 1, + "middle_weight": 4815 + }, + { + "B": 10557070, + "F": 68547, + "a": 387, + "b": 406, + "gain": 1, + "middle_weight": 4812 + }, + { + "B": 10557070, + "F": 68723, + "a": 438, + "b": 373, + "gain": 1, + "middle_weight": 4809 + }, + { + "B": 10557070, + "F": 68723, + "a": 356, + "b": 163, + "gain": 1, + "middle_weight": 4806 + }, + { + "B": 10557070, + "F": 68859, + "a": 382, + "b": 331, + "gain": 1, + "middle_weight": 4803 + }, + { + "B": 10557070, + "F": 71235, + "a": 428, + "b": 380, + "gain": 1, + "middle_weight": 4800 + }, + { + "B": 10557070, + "F": 71235, + "a": 286, + "b": 150, + "gain": 1, + "middle_weight": 4797 + }, + { + "B": 10557070, + "F": 71267, + "a": 366, + "b": 325, + "gain": 1, + "middle_weight": 4794 + }, + { + "B": 10557070, + "F": 71295, + "a": 259, + "b": 250, + "gain": 1, + "middle_weight": 4791 + }, + { + "B": 10560744, + "F": 71295, + "a": 319, + "b": 360, + "gain": 1, + "middle_weight": 4788 + }, + { + "B": 10560744, + "F": 71339, + "a": 291, + "b": 19, + "gain": 1, + "middle_weight": 4785 + }, + { + "B": 10560744, + "F": 71339, + "a": 241, + "b": 240, + "gain": 1, + "middle_weight": 4782 + }, + { + "B": 10560744, + "F": 71347, + "a": 263, + "b": 264, + "gain": 1, + "middle_weight": 4779 + }, + { + "B": 10560744, + "F": 71479, + "a": 339, + "b": 303, + "gain": 1, + "middle_weight": 4776 + }, + { + "B": 10560744, + "F": 71479, + "a": 117, + "b": 121, + "gain": 1, + "middle_weight": 4773 + }, + { + "B": 10562318, + "F": 71511, + "a": 352, + "b": 48, + "gain": 1, + "middle_weight": 4770 + }, + { + "B": 10562318, + "F": 71511, + "a": 353, + "b": 317, + "gain": 1, + "middle_weight": 4767 + }, + { + "B": 10562318, + "F": 71907, + "a": 312, + "b": 348, + "gain": 1, + "middle_weight": 4764 + } + ], + "stopping_reason": "completed one sorted disjoint greedy pass on all positive ordered pairs", + "target_shears": 306 +} diff --git a/research/r439-helper-matching/vendor/pr926/EXPECTED.json b/research/r439-helper-matching/vendor/pr926/EXPECTED.json new file mode 100644 index 0000000000..eed21b81f5 --- /dev/null +++ b/research/r439-helper-matching/vendor/pr926/EXPECTED.json @@ -0,0 +1,1762 @@ +{ + "baseline_sha256": "5642fd0e35a1acc11acff8d0c08350c1617e95f310d4d35ad63a651f9eeeba0b", + "bills": { + "baseline": { + "B": 1113070, + "D_adds": 18085, + "F": 49347, + "native_ADDs": 24305, + "nine_stage_prefix_bits": 177, + "payload_bits": 93 + }, + "candidate": { + "B": 10562318, + "D_adds": 5760, + "F": 71907, + "native_ADDs": 11980, + "nine_stage_prefix_bits": 192, + "payload_bits": 102 + }, + "parent": { + "B": 9534616, + "D_adds": 6988, + "F": 49347, + "native_ADDs": 13208, + "nine_stage_prefix_bits": 189, + "payload_bits": 100 + } + }, + "boundary_columns": 661, + "boundary_words_and_directions": 6, + "candidate_sha256": "fdb1a0dfafe5392e01fb87f5813737db0f15682c5cb98fc224d4d4cdbc806dd2", + "certificate_sha256": "fa9f0223ec67a7f6f448d33448814f455705a31a4bab19bb03d54e33d1b6829d", + "controls": { + "paid_neutral_helper_pair": 2, + "rejected": [ + "missing target preparation passes helper-only columns", + "missing helper preparation passes clean-helper inputs", + "missing helper restoration", + "missing target restoration", + "omitted mixed term", + "stale one-sided middle matrix", + "wrong direction of helper-column change", + "target restoration in forward order", + "nonzero D frame", + "D writes source", + "D reads source", + "helper reads target", + "unpaid helper restoration", + "inherited parent forward bound", + "local payload ceiling equality", + "nine-stage overrun below local cap", + "overlapping helper pairs", + "boolean helper index", + "unrelated cleanup change" + ] + }, + "matrix": { + "coefficients_checked": 48729, + "helper_only_D_cost_for_same_pairs": 14156, + "helper_only_middle_weight_for_same_pairs": 13772, + "mixed_term_nonzeros": 7031 + }, + "native": { + "baseline": { + "common_frame_ADDs": 24305, + "copies": 9, + "erasures": 9, + "paid_histogram": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "rank_mass": 5129, + "records": 27234, + "staged": { + "11": { + "bridge_additions": 2664, + "controls_rejected": 24, + "formal_columns_checked": 1549, + "fresh_center_copies": 99, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 93, + "payload_prefix_upper": "9528119495320518471870892800", + "reverse_fresh_center_copies": 45, + "signed_lift_prefix": [ + { + "bits": 16, + "cancellation_free_signed_row_l1_upper": "49347", + "reverse": false + }, + { + "bits": 21, + "cancellation_free_signed_row_l1_upper": "1113070", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 8 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 9 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 10 + } + ] + }, + "5": { + "bridge_additions": 666, + "controls_rejected": 6, + "formal_columns_checked": 883, + "fresh_center_copies": 45, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 93, + "payload_prefix_upper": "9528119495320518471870892800", + "reverse_fresh_center_copies": 18, + "signed_lift_prefix": [ + { + "bits": 16, + "cancellation_free_signed_row_l1_upper": "49347", + "reverse": false + }, + { + "bits": 21, + "cancellation_free_signed_row_l1_upper": "1113070", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 4 + } + ] + }, + "9": { + "bridge_additions": 1998, + "controls_rejected": 18, + "formal_columns_checked": 1327, + "fresh_center_copies": 81, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 93, + "payload_prefix_upper": "9528119495320518471870892800", + "reverse_fresh_center_copies": 36, + "signed_lift_prefix": [ + { + "bits": 16, + "cancellation_free_signed_row_l1_upper": "49347", + "reverse": false + }, + { + "bits": 21, + "cancellation_free_signed_row_l1_upper": "1113070", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 24305, + "signed_inverse": false, + "stage": 8 + } + ] + } + } + }, + "candidate": { + "common_frame_ADDs": 11980, + "copies": 9, + "erasures": 9, + "paid_histogram": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "rank_mass": 5129, + "records": 14909, + "staged": { + "11": { + "bridge_additions": 2664, + "controls_rejected": 24, + "formal_columns_checked": 1549, + "fresh_center_copies": 99, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 102, + "payload_prefix_upper": "2654678678257550221373682862848", + "reverse_fresh_center_copies": 45, + "signed_lift_prefix": [ + { + "bits": 17, + "cancellation_free_signed_row_l1_upper": "71907", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "10562318", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 8 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 9 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 10 + } + ] + }, + "5": { + "bridge_additions": 666, + "controls_rejected": 6, + "formal_columns_checked": 883, + "fresh_center_copies": 45, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 102, + "payload_prefix_upper": "2654678678257550221373682862848", + "reverse_fresh_center_copies": 18, + "signed_lift_prefix": [ + { + "bits": 17, + "cancellation_free_signed_row_l1_upper": "71907", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "10562318", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 4 + } + ] + }, + "9": { + "bridge_additions": 1998, + "controls_rejected": 18, + "formal_columns_checked": 1327, + "fresh_center_copies": 81, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 102, + "payload_prefix_upper": "2654678678257550221373682862848", + "reverse_fresh_center_copies": 36, + "signed_lift_prefix": [ + { + "bits": 17, + "cancellation_free_signed_row_l1_upper": "71907", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "10562318", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 11980, + "signed_inverse": false, + "stage": 8 + } + ] + } + } + }, + "parent": { + "common_frame_ADDs": 13208, + "copies": 9, + "erasures": 9, + "paid_histogram": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "rank_mass": 5129, + "records": 16137, + "staged": { + "11": { + "bridge_additions": 2664, + "controls_rejected": 24, + "formal_columns_checked": 1549, + "fresh_center_copies": 99, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 100, + "payload_prefix_upper": "699147249763640764132165496832", + "reverse_fresh_center_copies": 45, + "signed_lift_prefix": [ + { + "bits": 16, + "cancellation_free_signed_row_l1_upper": "49347", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "9534616", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 8 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 9 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 10 + } + ] + }, + "5": { + "bridge_additions": 666, + "controls_rejected": 6, + "formal_columns_checked": 883, + "fresh_center_copies": 45, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 100, + "payload_prefix_upper": "699147249763640764132165496832", + "reverse_fresh_center_copies": 18, + "signed_lift_prefix": [ + { + "bits": 16, + "cancellation_free_signed_row_l1_upper": "49347", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "9534616", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 4 + } + ] + }, + "9": { + "bridge_additions": 1998, + "controls_rejected": 18, + "formal_columns_checked": 1327, + "fresh_center_copies": 81, + "local_raw_H": [ + [ + 1, + 1323 + ], + [ + 2, + 1342 + ], + [ + 3, + 79 + ], + [ + 4, + 44 + ], + [ + 5, + 102 + ], + [ + 6, + 11 + ], + [ + 7, + 19 + ] + ], + "payload_prefix_bits": 100, + "payload_prefix_upper": "699147249763640764132165496832", + "reverse_fresh_center_copies": 36, + "signed_lift_prefix": [ + { + "bits": 16, + "cancellation_free_signed_row_l1_upper": "49347", + "reverse": false + }, + { + "bits": 24, + "cancellation_free_signed_row_l1_upper": "9534616", + "reverse": true + } + ], + "stages": [ + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 0 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 1 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 2 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 3 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 4 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 5 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 6 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": true, + "stage": 7 + }, + { + "fresh_copies": 9, + "scalar_additions": 13208, + "signed_inverse": false, + "stage": 8 + } + ] + } + } + } + }, + "nine_stage_prefix_bound": { + "baseline": { + "bits": 177, + "bound": "117742596540718658156527847560864213734191286190080000" + }, + "candidate": { + "bits": 192, + "bound": "6272385284143355252940491378432965655169900286360795742208" + }, + "formula": "2^18 * F^5 * B^4", + "parent": { + "bits": 189, + "bound": "633952218342189222305933054575935669674977721489175871488" + }, + "source_charge_bits": 192 + }, + "parent_sha256": "6aec2c6f91c87a7440af10cdeb90b8814501224a86de14d4033ae3ffa00899da", + "predecessor_files": { + "vendor/pr733/README.md": "af2d829749b369ef4bcda42a3fbaef20652121663a61f7242fb988e0f63e2d1c", + "vendor/pr915/CERTIFICATE.json": "a9958d9a933b57dcb9f7e5cf8e9694c0762f055a1cdab9f8ab42b2c6561fc4d7", + "vendor/pr915/EXPECTED.json": "5607287aab393ed6e95a76f69c1a2c02ef271a6ae901e2448ad7858a501884ba", + "vendor/pr915/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/pr915/NOTICE.md": "efbb1d2b2c85cbdbb7b048e2b7405e0654dfa40ddf6a1e94f11df313bdedb638", + "vendor/pr915/PROOF.md": "ddb5c3affbef52fa37af13b291bf089ca16f9dfe976e5a5590188b128b262425", + "vendor/pr915/README.md": "0c606598a6366bc0e6840d853c28237f8e5fe5866d89765d79815f973224f1fd", + "vendor/pr915/SOURCES.json": "abee8b99a79fce8a53ea7522ec490200ad0585093684b13883af1dec337158f0", + "vendor/pr915/candidate.json.gz": "ac30266144f8772ec8cd629153993aa9eb692fe745a9f95015a1b7fa88977a2e" + }, + "recipe": { + "guard_rejections": 0, + "helper_pairs": 192, + "literal_prefix_instructions_checked": 4760850, + "max_pair_gain": 19, + "middle_weight": 4764, + "overlap_skips": 2106, + "pair_scores": 192282, + "positive_pairs": 2298, + "saved_beyond_parent": 1228, + "target_shears": 306 + }, + "source_checks": { + "baseline": { + "conclusions": { + "C_is_U_inverse": true, + "J_identity": true, + "K_equals_D": true, + "U_block_form": true + }, + "full": { + "columns": 661, + "gates": { + "A": 2075, + "B": 712, + "C": 2574, + "D": 111 + }, + "scatter_terms": 527, + "totals": [ + { + "frame": 510, + "hyperplane_of_punctured_line": [ + 0, + 1, + 1, + 0, + -1, + 0, + 0, + 1 + ], + "rank": 7, + "register": 472 + }, + { + "frame": 511, + "hyperplane_of_punctured_line": [ + 0, + 1, + -1, + 0, + -1, + 0, + 0, + -1 + ], + "rank": 7, + "register": 473 + }, + { + "frame": 512, + "hyperplane_of_punctured_line": [ + 0, + 1, + 1, + 0, + 0, + -1, + -1, + 0 + ], + "rank": 7, + "register": 474 + }, + { + "frame": 513, + "hyperplane_of_punctured_line": [ + 0, + 1, + -1, + 0, + 0, + 1, + -1, + 0 + ], + "rank": 7, + "register": 475 + }, + { + "frame": 514, + "hyperplane_of_punctured_line": [ + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ], + "rank": 7, + "register": 476 + }, + { + "frame": 515, + "hyperplane_of_punctured_line": [ + 1, + 1, + -1, + 1, + 0, + 0, + 0, + 0 + ], + "rank": 7, + "register": 477 + }, + { + "frame": 516, + "hyperplane_of_punctured_line": [ + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1 + ], + "rank": 7, + "register": 478 + }, + { + "frame": 517, + "hyperplane_of_punctured_line": [ + 0, + 0, + 1, + 1, + 0, + 0, + 1, + -1 + ], + "rank": 7, + "register": 479 + }, + { + "frame": 518, + "hyperplane_of_punctured_line": [ + 0, + 1, + 0, + -1, + 0, + -1, + 0, + -1 + ], + "rank": 7, + "register": 480 + } + ] + }, + "hypotheses": { + "H1_no_target_feeds_z": true, + "H2_D_frame0_targets_from_helpers": true, + "H3_A_z_only_scatter_targets_B_split": true, + "H4_C_literal_reverse_at_full": true, + "H5_V_identity": true + }, + "info": { + "B_target_reads_of_registers_rewritten_earlier_in_B": 111, + "B_z_operand_kinds": { + "helper<-helper": 3, + "helper<-source": 13, + "source<-helper": 108, + "source<-source": 375 + }, + "B_z_operand_kinds_by_dim": { + "dim4:helper<-source": 13, + "dim4:source<-source": 375, + "dim6:helper<-helper": 3, + "dim6:source<-helper": 108 + }, + "B_z_write_frame_dims": { + "4": 388, + "6": 111 + }, + "B_z_writes_after_a_target_read_of_the_same_register": 454, + "cleanup_gates": 2574, + "helper_writes_B": 16, + "source_writes_A": 0, + "source_writes_B": 483, + "sources_rewritten_B": 108, + "target_reads_of_targets": 0, + "z_gates_A": 2075, + "z_gates_B": 499 + }, + "labels": { + "frames": 636, + "gram_det": 1, + "labels": 111, + "lattice_rank": 8, + "punctured": 9, + "root_lines": 120 + } + }, + "candidate": { + "conclusions": { + "C_is_U_inverse": true, + "J_identity": true, + "K_equals_D": false, + "U_block_form": true + }, + "full": { + "columns": 661, + "gates": { + "A": 2075, + "B": 712, + "C": 2574, + "D": 1107 + }, + "scatter_terms": 527, + "totals": [ + { + "frame": 510, + "hyperplane_of_punctured_line": [ + 0, + 1, + 1, + 0, + -1, + 0, + 0, + 1 + ], + "rank": 7, + "register": 472 + }, + { + "frame": 511, + "hyperplane_of_punctured_line": [ + 0, + 1, + -1, + 0, + -1, + 0, + 0, + -1 + ], + "rank": 7, + "register": 473 + }, + { + "frame": 512, + "hyperplane_of_punctured_line": [ + 0, + 1, + 1, + 0, + 0, + -1, + -1, + 0 + ], + "rank": 7, + "register": 474 + }, + { + "frame": 513, + "hyperplane_of_punctured_line": [ + 0, + 1, + -1, + 0, + 0, + 1, + -1, + 0 + ], + "rank": 7, + "register": 475 + }, + { + "frame": 514, + "hyperplane_of_punctured_line": [ + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ], + "rank": 7, + "register": 476 + }, + { + "frame": 515, + "hyperplane_of_punctured_line": [ + 1, + 1, + -1, + 1, + 0, + 0, + 0, + 0 + ], + "rank": 7, + "register": 477 + }, + { + "frame": 516, + "hyperplane_of_punctured_line": [ + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1 + ], + "rank": 7, + "register": 478 + }, + { + "frame": 517, + "hyperplane_of_punctured_line": [ + 0, + 0, + 1, + 1, + 0, + 0, + 1, + -1 + ], + "rank": 7, + "register": 479 + }, + { + "frame": 518, + "hyperplane_of_punctured_line": [ + 0, + 1, + 0, + -1, + 0, + -1, + 0, + -1 + ], + "rank": 7, + "register": 480 + } + ] + }, + "hypotheses": { + "H1_no_target_feeds_z": true, + "H2_D_frame0_targets_from_helpers": false, + "H3_A_z_only_scatter_targets_B_split": true, + "H4_C_literal_reverse_at_full": true, + "H5_V_identity": true + }, + "info": { + "B_target_reads_of_registers_rewritten_earlier_in_B": 111, + "B_z_operand_kinds": { + "helper<-helper": 3, + "helper<-source": 13, + "source<-helper": 108, + "source<-source": 375 + }, + "B_z_operand_kinds_by_dim": { + "dim4:helper<-source": 13, + "dim4:source<-source": 375, + "dim6:helper<-helper": 3, + "dim6:source<-helper": 108 + }, + "B_z_write_frame_dims": { + "4": 388, + "6": 111 + }, + "B_z_writes_after_a_target_read_of_the_same_register": 454, + "cleanup_gates": 2574, + "helper_writes_B": 16, + "source_writes_A": 0, + "source_writes_B": 483, + "sources_rewritten_B": 108, + "target_reads_of_targets": 0, + "z_gates_A": 2075, + "z_gates_B": 499 + }, + "labels": { + "frames": 636, + "gram_det": 1, + "labels": 111, + "lattice_rank": 8, + "punctured": 9, + "root_lines": 120 + } + }, + "parent": { + "conclusions": { + "C_is_U_inverse": true, + "J_identity": true, + "K_equals_D": false, + "U_block_form": true + }, + "full": { + "columns": 661, + "gates": { + "A": 2075, + "B": 712, + "C": 2574, + "D": 723 + }, + "scatter_terms": 527, + "totals": [ + { + "frame": 510, + "hyperplane_of_punctured_line": [ + 0, + 1, + 1, + 0, + -1, + 0, + 0, + 1 + ], + "rank": 7, + "register": 472 + }, + { + "frame": 511, + "hyperplane_of_punctured_line": [ + 0, + 1, + -1, + 0, + -1, + 0, + 0, + -1 + ], + "rank": 7, + "register": 473 + }, + { + "frame": 512, + "hyperplane_of_punctured_line": [ + 0, + 1, + 1, + 0, + 0, + -1, + -1, + 0 + ], + "rank": 7, + "register": 474 + }, + { + "frame": 513, + "hyperplane_of_punctured_line": [ + 0, + 1, + -1, + 0, + 0, + 1, + -1, + 0 + ], + "rank": 7, + "register": 475 + }, + { + "frame": 514, + "hyperplane_of_punctured_line": [ + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ], + "rank": 7, + "register": 476 + }, + { + "frame": 515, + "hyperplane_of_punctured_line": [ + 1, + 1, + -1, + 1, + 0, + 0, + 0, + 0 + ], + "rank": 7, + "register": 477 + }, + { + "frame": 516, + "hyperplane_of_punctured_line": [ + 1, + 0, + 0, + 1, + 1, + 0, + 0, + 1 + ], + "rank": 7, + "register": 478 + }, + { + "frame": 517, + "hyperplane_of_punctured_line": [ + 0, + 0, + 1, + 1, + 0, + 0, + 1, + -1 + ], + "rank": 7, + "register": 479 + }, + { + "frame": 518, + "hyperplane_of_punctured_line": [ + 0, + 1, + 0, + -1, + 0, + -1, + 0, + -1 + ], + "rank": 7, + "register": 480 + } + ] + }, + "hypotheses": { + "H1_no_target_feeds_z": true, + "H2_D_frame0_targets_from_helpers": false, + "H3_A_z_only_scatter_targets_B_split": true, + "H4_C_literal_reverse_at_full": true, + "H5_V_identity": true + }, + "info": { + "B_target_reads_of_registers_rewritten_earlier_in_B": 111, + "B_z_operand_kinds": { + "helper<-helper": 3, + "helper<-source": 13, + "source<-helper": 108, + "source<-source": 375 + }, + "B_z_operand_kinds_by_dim": { + "dim4:helper<-source": 13, + "dim4:source<-source": 375, + "dim6:helper<-helper": 3, + "dim6:source<-helper": 108 + }, + "B_z_write_frame_dims": { + "4": 388, + "6": 111 + }, + "B_z_writes_after_a_target_read_of_the_same_register": 454, + "cleanup_gates": 2574, + "helper_writes_B": 16, + "source_writes_A": 0, + "source_writes_B": 483, + "sources_rewritten_B": 108, + "target_reads_of_targets": 0, + "z_gates_A": 2075, + "z_gates_B": 499 + }, + "labels": { + "frames": 636, + "gram_det": 1, + "labels": 111, + "lattice_rank": 8, + "punctured": 9, + "root_lines": 120 + } + } + }, + "source_files": { + "research/e8-bit-carrier-skeleton/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "research/e8-bit-carrier-skeleton/NOTICE.md": "5f4b7fcbf99f572be28b6da612ce775363908cdfc7810f7aca167be01c86e49a", + "research/e8-bit-carrier-skeleton/code/bit/checkers/columns_k.cpp": "1c344d18fcd494eeca93e259f10cafae7705780e6592f6dcb35b34752dab9bc2", + "research/e8-bit-carrier-skeleton/code/bit/checkers/json.hpp": "aaf127c04cb31c406e5b04a63f1ae89369fccde6d8fa7cdda1ed4f32dfc5de63", + "research/e8-bit-carrier-skeleton/code/bit/checkers/legality_h.cpp": "6c1ef2b24e57781d6951c172a1024fc4300e6fd392c9d6672079a7806ab663b3", + "research/e8-bit-carrier-skeleton/code/bit/export_records.py": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3", + "research/e8-bit-carrier-skeleton/code/bit/regression/stage_cohort.py": "6c288f6f234b528c1a7c0a4adfb724e91e0fe6b18c8dffad96af3f973de1829a", + "research/e8-bit-carrier-skeleton/portable-include/bits/stdc++.h": "420094be2af295eed03a983dd66debbbe9cfb78d8252859f4498a615a0074b99", + "research/e8-bit-p111-tuned/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "research/e8-bit-p111-tuned/NOTICE.md": "5b88eb2b7de76aa2a3288ee3c7a08d18a5eadfa82f5e7a99e207d232aed71221", + "research/e8-bit-p111-tuned/code/xcheck_p.py": "af3decc877e27c00001cf56f50c6c09566e8e101297ab34c7860aed96a06d80e", + "research/e8-bit-p111-tuned/tune/EXPECTED.json": "b9f0e5ca038abe837b0007c8fe006f366a6f02009244ac57705a8a200e2301f4", + "research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f", + "research/e8-bit-p111-tuned/vendor/pr510/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/global_k.py": "6368196a393ac25bb2918880e4c4bd31ed733b762c27b6873ab391cbc0c5c3c8" + }, + "status": "PASS_R439_TWO_SIDED_COMPENSATION" +} diff --git a/research/r439-helper-matching/vendor/pr926/LICENSE b/research/r439-helper-matching/vendor/pr926/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/r439-helper-matching/vendor/pr926/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/research/r439-helper-matching/vendor/pr926/NOTICE.md b/research/r439-helper-matching/vendor/pr926/NOTICE.md new file mode 100644 index 0000000000..19b5b9f61e --- /dev/null +++ b/research/r439-helper-matching/vendor/pr926/NOTICE.md @@ -0,0 +1,65 @@ +# Notice and attribution + +New code and documentation are Apache-2.0. Prepared for Gareth Davidson +(@bitplane), with substantial OpenAI Codex assistance in research, +implementation, proof, verification and packaging. One AI agent performed +the work. Algorithmic independence does not imply independent human review. + +**Scott Woolsey Biggart (@swbiggart), PR733**, at +`dfe84e09298abc5c5e0074afda59a821e10abfb4`, supplies the prior two-sided binary +basis composition and the explicit mixed-term verification obligation. Its +README is retained verbatim under `vendor/pr733/`, with SHA256 and Git-blob +pins in SOURCES.json. It discloses substantial OpenAI Codex assistance. No +PR733 executable or numerical saving is imported. This package changes the +selected R439 word around a fixed overlapping target basis and checks the +complete nine-stage prefix guard after every accepted helper pair. + +**PR915**, at `e9daefe320a0043000bd9746664ed02c3287d056`, is this contributor's +immediate target-basis parent. Its word, recipe, receipt, proof, README, +notice, source manifest and license are retained verbatim. I/O utilities, +package tests, native-runner structure and some verification routines are +adapted from that contribution. The native harness follows **Sagar Thakrar's +`research/r420-decoder-sharing/native.py`** validation pattern. This version +checks all three complete words and charges both increased positive bounds. +Relative links in archival vendored documents refer to their original +packages; the parent source manifest is preserved for provenance, not used +to claim that all of its historical dependencies are imported here. + +The original word derives from **DreamingOfClouds's PR589** +(`a5afc8c6169ea61ba7c51dfd3cade02cc7b13b46`), tuning **eumemic's PR555/543**. +DreamingOfClouds disclosed Claude Opus 5.5 via Claude Code; eumemic's retained +notice discloses Anthropic Claude assistance. Transport precedents include +Dugongue's PR541/548 and rohanarun's PR542. The immutable in-tree notices and +licenses for the tuned word and carrier skeleton are pinned inputs. LICENSE +here is copied from that Apache-2.0 lineage. Only D changes in the candidate. + +Prior mechanisms and semantic-interface credit remain with: + +- **Mikhail R. Gadelha**, PR686: restored helper pairs and semantic D-boundary + substitution. +- **Greer Guthrie**, PR694: simultaneous disjoint helper-basis construction. +- **Scott Woolsey Biggart**, PR713, and **Sagar Thakrar**, PR716: target-basis + compensation, with OpenAI Codex assistance. +- **commdata2338**, PR794: guarded target-basis search and positive-vector + bounds, inherited through PR915; its incremental implementation is not + used by this new helper-pair search. +- **Dugongue**, PR476/478: reversible target-factoring precedent. +- **navinor**, PR848: the selected R439 sharing barrier under unchanged H2. + This package explicitly requires a semantic replacement for H2. +- **Ross Richardson**, concurrent PR917: a two-sided compensation example + for historical CK over another field. No code or saving is imported. + +The unmodified owning tools retain their cumulative notices: **eumemic** for +the punctured checker and carrier skeleton; **Dylan Crow / +utcorvusvolat-dotcom** (PR370) for exporter, staging and native checker +lineage; **DaysSky** (PR381) for bridged-stage checks; **Zhihao Chen / +jacklightChen** (PR386) for the portable header and common-label interface +lineage; **DreamingOfClouds** for nine-stage accounting and the global +template; **Chafik Boukhalfa** and other credited contributors for hosted +compilation, physical routes and audits. Their original AI disclosures +remain in the source notices. **Niels Lohmann and contributors** retain the +MIT header in `json.hpp`. **Jacob Sussman** introduced the E8 unit. + +No priority is claimed for basis factoring, the mixed-term identity or the +semantic-prefix contract. Source pins, the finite construction and remaining +integration obligations are recorded separately. diff --git a/research/r439-helper-matching/vendor/pr926/PROOF.md b/research/r439-helper-matching/vendor/pr926/PROOF.md new file mode 100644 index 0000000000..21952a5faf --- /dev/null +++ b/research/r439-helper-matching/vendor/pr926/PROOF.md @@ -0,0 +1,141 @@ +# Exact two-sided prefix substitution and complete cost + +All endpoint matrices in this section act over F2. Integer positive prefix +bounds are checked separately; equality of the forward integer operators is +not claimed. Fix the input hashes in SOURCES.json and the 111 target rows and +439 helper columns of the selected PR589 compensation matrix K. Physical +targets are registers 111 through 221; helpers are 222 through 660. + +## Restored arbitrary-input boundary + +Let E be the product of PR915's 306 target transvections in their actual +execution order. If T1 is executed first, E = T306 ... T1. Let H be the +product of helper transvections `helper[a] ^= helper[b]` for the 192 disjoint +pairs in CERTIFICATE.json. Each transvection is its own inverse over F2. +Disjointness implies that the helper transvections commute and H inverse = H. +The target transvections need not commute; E inverse is executed by reversing +their order. + +The emitted D acts on arbitrary `(x, y, s)` as follows: + +1. Helpers become Hs. +2. Targets become Ey. +3. Targets become Ey + (E K H inverse)(Hs) = Ey + EKs. +4. Applying E inverse to targets gives y + Ks. +5. Applying H inverse to helpers restores s. + +Sources x are never read or written in D. All D operands start and remain at +frame zero. Every helper is restored before A, and targets have the same +value and frame as after the original D. All non-D fields are identical, so +the entire unchanged suffix receives the original boundary state. This is +the exact semantic substitution needed under the inherited realization +assumptions. + +The original H2 only permits helper-to-target additions. It is false for +both PR915 and this word. The original literal K extractor is also false. +We retain both predicates unchanged and require them to be reported false. +The replacement contract is the complete legal D boundary above. H1, H3, +H4 and H5, and all other source-checker conclusions, remain true. Acceptance +of the replacement contract is a maintainer review obligation. + +## Column orientation, mixed term and savings + +For a helper transvection a <- b, H has entry (a,b) in addition to I. Right +multiplication changes **column b by column a**. Thus its paid gain on the +current transformed matrix R = EK is + +```text +weight(R[:,b]) - weight(R[:,b] XOR R[:,a]) - 2. +``` + +The two charged ADDs prepare and restore the actual helper. Because accepted +pairs use disjoint helper indices, the columns of a later admissible pair +have not changed. Their initial pair score is therefore still exact. The +builder sorts all positive scores by `(-gain, tie, a, b)` and walks the list +once. A trial is admitted only after the complete combined word satisfies +both positive-bound ceilings. The independent verifier uses sets for pair +scores and explicit literal instructions for the full positive replay. + +Write A = E-I and B = H-I. Then + +```text +E K H = K + A K + K B + A K B. +``` + +For each row i and column j, the independent check computes these four +terms directly using E's row supports and the original K. Since helper +pairs are disjoint, column j of B has at most one nonzero entry. This checks +all 111 * 439 = 48,729 coefficients without using the builder's packed-column +updates. The mixed term AKB has 7,031 nonzero coefficients. Removing exactly +that term from the emitted middle produces a different full D operator. + +The exact middle weight decreases from 6,376 to 4,764, saving 1,612 helper +reads. Preparing and restoring 192 helpers costs 384 ADDs, leaving a net +gain of 1,228. The fixed target preparation and restoration cost 612. Hence + +```text +D = 192 + 306 + 4,764 + 306 + 192 = 5,760 ADDs. +complete word = 5,760 + 6,220 = 11,980 ADDs. +``` + +The same helper pairs used alone on K would have middle weight 13,772 and D +cost 14,156, saving 3,929 against the original D. Adding that standalone +saving to PR915's 11,097 would suggest 15,026, which is incorrect for this +composition. Its actual saving against PR589 is 12,325. This is why the +combined matrix and full bill are rebuilt. + +## Full-word positive bounds and resources + +Replace each signed scalar ADD by addition of nonnegative input bounds. +Copies inherit their source bound and erasures reset the copy slot. Record +the greatest coordinate at every prefix, separately for the forward word +and its reverse, interchanging copy and erasure roles. This triangle- +inequality calculation bounds signed execution; it does not use F2 +cancellation. Each instruction is counted and each temporary copy is paid. + +The builder computes whole-macro bounds, whose coordinate maxima occur at +their final positive addition because donors are distinct from destinations +and unchanged during a macro. The verifier lowers all individual additions, +copies and erasures. The unchanged C++ native checker gives a third replay. +All agree on F = 71,907 and B = 10,562,318 for the candidate. Both exceed +their parent values and are charged rather than inherited. + +Every accepted partial word obeys `64 F^3 B^2 < 2^104` and +`2^18 F^5 B^4 < 2^192`. These caps were declared before nomination. The local +bound is 102 bits, and the nine-stage bound is 192 bits. The latter is +strictly below 2^192 by +`4716451243325510895298044774700760932455158103238770688`. +Only about 0.075% of that numerical ceiling remains. verify.py binds the +nine-stage formula to the source's `2^nb F^(K+1) B^K`, at K = 4 and +nb = 6(K-1) = 18, and reproduces its baseline 177-bit receipt. + +There are 439 existing helpers and nine retained rank-seven totals. Every +register's MOVE path, the COPY/ERASE subsequence and the paid histogram +`{1:1323, 2:1342, 3:79, 4:44, 5:102, 6:11, 7:19}` remain unchanged; the rank +mass is 5,129. No source access, scratch register, frame change, recursive +child or copied total is added. At 5/9/11 stages the new ADD savings beyond +PR915 are 6,140 / 11,052 / 13,508. Against PR589 they are +61,625 / 110,925 / 135,575. Existing bridge costs are 666 / 1,998 / 2,664, +and fresh-copy counts are 45 / 81 / 99. + +## Coverage and remaining work + +The finite search completes all 192,282 ordered pairs and the single sorted +greedy pass. There are 2,298 positive pairs, 192 accepted pairs, 2,106 overlap +skips and no bound rejects. No neutral detours, matching optimum, target +reselection or general circuit optimality is asserted. + +Exact boundary tests cover every source, target and helper column in both +directions for the original, parent and candidate words. In particular, +omitting target preparation can pass helper-only columns but changes dirty +targets; omitting helper preparation can pass clean-helper inputs but changes +dirty inputs. Controls explicitly demonstrate both failures. Disjoint helper +undo order is immaterial, so the order-failure control concerns the +overlapping target basis. + +The finite native checks do not emit the whole hosted supplier or recompute +its complete invoice. Integration must accept the semantic D contract, +rebuild and audit that hosted supplier, recompute all finite costs and +precision allocations, and rerun the outer assembly. These are the remaining +obligations for using this candidate in a conditional bound. The inherited +common-label realization and analytic assumptions remain in force. diff --git a/research/r439-helper-matching/vendor/pr926/README.md b/research/r439-helper-matching/vendor/pr926/README.md new file mode 100644 index 0000000000..3b57242ade --- /dev/null +++ b/research/r439-helper-matching/vendor/pr926/README.md @@ -0,0 +1,150 @@ +# Two-sided compensation for the selected R439 word + +**Finite bit-circuit construction.** Adding 192 disjoint helper pairs around +the frozen target basis from [PR915](https://github.com/CrocSwap/integer-mult-bounds/pull/915) +saves **1,228 further native ADDs**, including both preparation and restoration. +The complete word costs **11,980 ADDs**, compared with 13,208 in PR915 and +24,305 in the selected PR589 word. The saving against PR589 is 12,325 ADDs. + +| Quantity | Selected PR589 | Frozen PR915 | This composition | +|---|---:|---:|---:| +| D ADDs | 18,085 | 6,988 | 5,760 | +| Complete native ADDs | 24,305 | 13,208 | 11,980 | +| Exported records | 27,234 | 16,137 | 14,909 | +| Forward positive prefix F | 49,347 | 49,347 | 71,907 | +| Reverse positive prefix B | 1,113,070 | 9,534,616 | 10,562,318 | +| Local payload bound, bits | 93 | 100 | 102 | +| Nine-stage prefix bound, bits | 177 | 189 | 192 | +| Helpers / copied totals / rank mass | 439 / 9 / 5,129 | same | same | + +The complete D bill is **192 + 306 + 4,764 + 306 + 192 = 5,760**. Every +non-D field is identical to PR589. The native checks compare each register's +ordered MOVE path and all COPY/ERASE records; every paid resource is retained. +Helpers are temporarily changed during D and restored before A. The full D +boundary remains `(x, y, s) -> (x, y + K s, s)` for arbitrary targets and dirt. + +The original syntactic H2 and literal extraction of K remain **false**, as in +PR915. The old checker is unchanged. Integration requires acceptance of the +semantic D-boundary substitution and a complete updated hosted reconstruction +and invoice. All other H1/H3/H4/H5 predicates and decomposed conclusions pass. +This package does not change the selected frontier or claim a new exponent. + +## Reproduce + +Python 3.12 or later, C++17, and Boost headers are required. From the repository +root, run: + +```sh +python3 -I -B research/r439-two-sided-compensation/verify.py +python3 -I -B research/r439-two-sided-compensation/test_package.py +``` + +Set `BOOST_INCLUDE` to a nonstandard Boost include directory, and `CXX` to +the compiler if needed. The first command rebuilds the search certificate, +compares the entire canonical JSON word, performs independent mathematical +checks, compiles the unchanged native checkers, and compares every receipt +field with [EXPECTED.json](EXPECTED.json). Its final line is: + +```text +PASS_R439_TWO_SIDED_COMPENSATION: ADDs 24,305 -> 13,208 -> 11,980; 192 helper pairs; nine-stage prefix 192 bits; semantic D; no new kappa +``` + +Optional `--output NEW_DIRECTORY` retains all generated words, native records, +commands and logs. `--receipt NEW_FILE` saves the complete report. Existing +destinations are refused. `--source-root ROOT` accepts the minimal source +closure enumerated by [SOURCES.json](SOURCES.json). Normal and optimized +Python are supported: owning Python subprocesses run without optimization so +their existing assertions remain enabled. Regenerated gzip containers are +compared by canonical payload, not compression bytes. + +## Construction and distinct contribution + +Let K be the original 111 by 439 matrix, E the frozen product of PR915's 306 +target transvections, and H the new product of disjoint helper transvections. +The new middle is **E K H inverse**. The complete prefix applies H to helpers, +E to targets, the middle injections, E inverse to targets, and H inverse to +helpers. The helper pairs are disjoint, so H inverse equals H. E is generally +not an involution; its operations are restored in reverse order. + +This applies the two-sided method from **Scott Woolsey Biggart's +[PR733](https://github.com/CrocSwap/integer-mult-bounds/pull/733)** to the selected +R439 matrix with a fixed, overlapping target basis. It scores the actual +transformed matrix and checks the complete 192-bit nine-stage prefix ceiling +after each admitted pair. No PR733 executable or saving is imported. Its +verbatim [README](vendor/pr733/README.md) preserves the prior proof and credit. +The mixed term contains 7,031 nonzero coefficients; omitting it fails the D +operator. [PROOF.md](PROOF.md) gives the algebra and complete cost argument. + +The seed-5 assignment and the three considered tasks are in +[CLAIM.json](CLAIM.json). The completed search scores all **192,282 ordered +helper pairs** once on the frozen matrix. A seed-5 64-bit tie key is drawn for +every pair, including nonpositive ones. Of 2,298 positive pairs, the sorted +greedy pass accepts 192 and skips 2,106 for overlap; no bound rejects occur. +The maximum individual gain is 19 ADDs. Search stops at the end of that pass. +It makes no claim about optimal matchings, target-basis reselection, neutral +detours, or globally optimal circuits. + +## Evidence and precision cost + +The independent verifier uses set-valued supports instead of the builder's +packed columns. It recomputes every pair score and literally executes both +positive orientations of all 192 partial words: 4,760,850 ADD/COPY/ERASE +instructions. A separate coefficient calculation checks all 48,729 entries of +`K + (E-I)K + K(H-I) + (E-I)K(H-I)`. + +All three complete D words are checked on 661 distinct Boolean input columns +in both directions. The unmodified owning checker also checks full-word E8 +labels, geometry, frame legality, restoration and endpoint columns. Native +5/9/11-stage checks cover 883/1,327/1,549 formal columns per word and reject all +144 omitted-bridge controls. Nineteen local controls address preparation, +restoration, mixed terms, wrong column orientation, illegal access, stale +bounds and accounting; a cancelling helper pair is accepted and charged two +ADDs. Eight package tests cover source pins, strict/typed JSON, safe output +handling and gzip recompression. These are independent algorithms where +stated, with shared source data and retained owning tools; no separate human +review is claimed. + +Both larger positive bounds are charged explicitly: + +```text +64 F^3 B^2 = 2654678678257550221373682862848 < 2^104 +2^18 F^5 B^4 = 6272385284143355252940491378432965655169900286360795742208 < 2^192 +``` + +The nine-stage expression is bound to the pinned source formula and its +18-bridge relation. The baseline reproduces the source's 177-bit estimate and +192-bit charge. The candidate uses about **99.925% of that ceiling**, so the +remaining margin is small. A 192-bit result still satisfies the strict +inequality; the verifier compares integers directly. No other global invoice +allocation is inferred from this check. + +## Pins, scope and attribution + +Base: `91a2094f2e022930069e8cfdc810a3ea1b81cd09`. +Selected bit source: PR589, `a5afc8c6169ea61ba7c51dfd3cade02cc7b13b46`. +Frozen parent: PR915, `e9daefe320a0043000bd9746664ed02c3287d056`. +Two-sided predecessor: PR733, `dfe84e09298abc5c5e0074afda59a821e10abfb4`. +The current selected assembly remains PR799. The new follow-up review batch +on this base is triage, and this package makes no claim of batch approval. + +PR915's word, recipe, complete receipt, proof, notice and source manifest are +retained verbatim. We reconstruct its target recipe, check its actual word and +native bill, and do not independently re-review its historical search coverage. +No API/network access is needed for reproduction. [NOTICE.md](NOTICE.md) +retains attribution to DreamingOfClouds, eumemic, commdata2338, Mikhail R. +Gadelha, Greer Guthrie, Scott Woolsey Biggart, Sagar Thakrar and the owning +verification lineage. Ross Richardson's concurrent PR917 provides a separate +two-sided complex-side example; no code or saving is imported from it. + +The remaining integration work is concrete: review the semantic interface; +emit and audit the changed whole hosted supplier; recompute its full finite +invoice and precision allocations; then rerun outer assembly against the +selected complex supplier. The unchanged frame/rank profile alone does not +establish those results. The common-label realization and analytic assumptions +remain those in the selected maintainer review. This finite construction is +not a formal proof of the full multiplication theorem or a measured runtime +speedup. + +Prepared for **Gareth Davidson (@bitplane)** with substantial **OpenAI Codex +assistance** in research, implementation, proof, verification and packaging. +Apache-2.0. diff --git a/research/r439-helper-matching/vendor/pr926/SOURCES.json b/research/r439-helper-matching/vendor/pr926/SOURCES.json new file mode 100644 index 0000000000..a616606b9e --- /dev/null +++ b/research/r439-helper-matching/vendor/pr926/SOURCES.json @@ -0,0 +1,51 @@ +{ + "base_commit": "91a2094f2e022930069e8cfdc810a3ea1b81cd09", + "files": { + "research/e8-bit-carrier-skeleton/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "research/e8-bit-carrier-skeleton/NOTICE.md": "5f4b7fcbf99f572be28b6da612ce775363908cdfc7810f7aca167be01c86e49a", + "research/e8-bit-carrier-skeleton/code/bit/checkers/columns_k.cpp": "1c344d18fcd494eeca93e259f10cafae7705780e6592f6dcb35b34752dab9bc2", + "research/e8-bit-carrier-skeleton/code/bit/checkers/json.hpp": "aaf127c04cb31c406e5b04a63f1ae89369fccde6d8fa7cdda1ed4f32dfc5de63", + "research/e8-bit-carrier-skeleton/code/bit/checkers/legality_h.cpp": "6c1ef2b24e57781d6951c172a1024fc4300e6fd392c9d6672079a7806ab663b3", + "research/e8-bit-carrier-skeleton/code/bit/export_records.py": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3", + "research/e8-bit-carrier-skeleton/code/bit/regression/stage_cohort.py": "6c288f6f234b528c1a7c0a4adfb724e91e0fe6b18c8dffad96af3f973de1829a", + "research/e8-bit-carrier-skeleton/portable-include/bits/stdc++.h": "420094be2af295eed03a983dd66debbbe9cfb78d8252859f4498a615a0074b99", + "research/e8-bit-p111-tuned/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "research/e8-bit-p111-tuned/NOTICE.md": "5b88eb2b7de76aa2a3288ee3c7a08d18a5eadfa82f5e7a99e207d232aed71221", + "research/e8-bit-p111-tuned/code/xcheck_p.py": "af3decc877e27c00001cf56f50c6c09566e8e101297ab34c7860aed96a06d80e", + "research/e8-bit-p111-tuned/tune/EXPECTED.json": "b9f0e5ca038abe837b0007c8fe006f366a6f02009244ac57705a8a200e2301f4", + "research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f", + "research/e8-bit-p111-tuned/vendor/pr510/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/global_k.py": "6368196a393ac25bb2918880e4c4bd31ed733b762c27b6873ab391cbc0c5c3c8" + }, + "harness_adaptation": { + "head": "e9daefe320a0043000bd9746664ed02c3287d056", + "notice": "I/O, package tests and native runner adapted from own previous contribution; native harness lineage includes Sagar Thakrar.", + "pr": 915 + }, + "local_files": { + "vendor/pr733/README.md": "af2d829749b369ef4bcda42a3fbaef20652121663a61f7242fb988e0f63e2d1c", + "vendor/pr915/CERTIFICATE.json": "a9958d9a933b57dcb9f7e5cf8e9694c0762f055a1cdab9f8ab42b2c6561fc4d7", + "vendor/pr915/EXPECTED.json": "5607287aab393ed6e95a76f69c1a2c02ef271a6ae901e2448ad7858a501884ba", + "vendor/pr915/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/pr915/NOTICE.md": "efbb1d2b2c85cbdbb7b048e2b7405e0654dfa40ddf6a1e94f11df313bdedb638", + "vendor/pr915/PROOF.md": "ddb5c3affbef52fa37af13b291bf089ca16f9dfe976e5a5590188b128b262425", + "vendor/pr915/README.md": "0c606598a6366bc0e6840d853c28237f8e5fe5866d89765d79815f973224f1fd", + "vendor/pr915/SOURCES.json": "abee8b99a79fce8a53ea7522ec490200ad0585093684b13883af1dec337158f0", + "vendor/pr915/candidate.json.gz": "ac30266144f8772ec8cd629153993aa9eb692fe745a9f95015a1b7fa88977a2e" + }, + "parent": { + "canonical_word_sha256": "6aec2c6f91c87a7440af10cdeb90b8814501224a86de14d4033ae3ffa00899da", + "head": "e9daefe320a0043000bd9746664ed02c3287d056", + "path": "research/r439-target-compensation/", + "pr": 915, + "scope": "Freeze and replay the actual target-basis word; do not infer or re-review its search claims." + }, + "predecessor": { + "author": "Scott Woolsey Biggart", + "git_blob": "e808135b923977318601cfbbb914507844ab0eed", + "head": "dfe84e09298abc5c5e0074afda59a821e10abfb4", + "pr": 733, + "use": "Two-sided binary conjugation and explicit mixed-term check. No executable imported." + }, + "selected_word_commit": "a5afc8c6169ea61ba7c51dfd3cade02cc7b13b46", + "selected_word_pr": 589 +} diff --git a/research/r439-helper-matching/vendor/pr926/candidate.json.gz b/research/r439-helper-matching/vendor/pr926/candidate.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..0a192829589d6cbcec0f32695a928d24e6c33549 GIT binary patch literal 39065 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 af9HSw-`m@NoYxTk_x}Kg11wnRb^-uG=9lXL literal 0 HcmV?d00001 diff --git a/research/r439-helper-matching/verify.py b/research/r439-helper-matching/verify.py new file mode 100644 index 0000000000..fdf9db5c9f --- /dev/null +++ b/research/r439-helper-matching/verify.py @@ -0,0 +1,516 @@ +#!/usr/bin/env python3 +"""Exact matching bound, bounded precision alternatives and complete R439 replay. + +Circuit I/O, boundary, positive and owning-checker routines adapted from PR926. +Prepared for Gareth Davidson (@bitplane), with OpenAI Codex assistance. Apache-2.0. +""" +import argparse +import ast +import copy +from pathlib import Path +import runpy +import subprocess +import sys +import tempfile + +C = runpy.run_path(str(Path(__file__).resolve().with_name("common.py"))) +need = C["need"] + + +def same(a, b, message): + need(C["canonical"](a) == C["canonical"](b), message) + + +def guards(forward, backward): + need(64 * forward ** 3 * backward ** 2 < 1 << 104, "local payload guard") + need((1 << 18) * forward ** 5 * backward ** 4 < 1 << 192, "nine-stage guard") + + +def d_atoms(word): + v, n = word["v"], 2 * word["v"] + word["R"] + result = [] + for frame, d, sources in word["D"]: + need(type(frame) is int and frame == 0, "D frame zero") + need(type(d) is int and v <= d < n, "D may not write sources") + need(sources and len(set(sources)) == len(sources), "D nonempty distinct donors") + need(all(type(s) is int and v <= s < n and s != d for s in sources), "D legal donor") + need(d < 2 * v or all(s >= 2 * v for s in sources), "D helper may not read target") + result.extend((d, s) for s in sources) + return result + + +def stream(word): + """Literal ADD/COPY/ERASE instructions, independent of builder macro evaluation.""" + v, temp = word["v"], 2 * word["v"] + word["R"] + instructions = [] + for section in ("D", "A"): + for _, d, sources in word[section]: + instructions.extend((1, d, s) for s in sources) + for j, center in enumerate(word["ret"]): + instructions.append((2, temp, center)) + for target, coefficients in enumerate(word["scatter"]): + if j in coefficients: + instructions.append((1, v + target, temp)) + instructions.append((3, temp, center)) + for section in ("B", "C"): + for _, d, sources in word[section]: + instructions.extend((1, d, s) for s in sources) + return instructions + + +def positive(instructions, size, reverse=False): + values, largest = [1] * size, 1 + for kind, d, s in (reversed(instructions) if reverse else instructions): + if reverse and kind != 1: + kind = 5 - kind + if kind == 1: + values[d] += values[s] + elif kind == 2: + values[d] = values[s] + else: + values[d] = 0 + largest = max(largest, values[d]) + return largest + + +def bill(word): + literal = stream(word) + size = 2 * word["v"] + word["R"] + 1 + forward, backward = positive(literal, size), positive(literal, size, True) + return dict(D_adds=len(d_atoms(word)), native_ADDs=sum(k == 1 for k, _, _ in literal), + F=forward, B=backward, payload_bits=(64 * forward ** 3 * backward ** 2).bit_length(), + nine_stage_prefix_bits=((1 << 18) * forward ** 5 * backward ** 4).bit_length()) + + +def check_bill(word, certificate): + for key, value in bill(word).items(): + same(value, certificate[key], "literal bill: " + key) + + +def boundary_columns(word, reverse=False): + """One byte-valued replay for each of the 661 separate input columns.""" + n = 2 * word["v"] + word["R"] + operations = d_atoms(word) + if reverse: + operations.reverse() + output = [] + for column in range(n): + values = bytearray(n) + values[column] = 1 + for d, s in operations: + values[d] ^= values[s] + output.append(bytes(values)) + return output + + +def outside_d(original, candidate): + same({k: v for k, v in original.items() if k != "D"}, + {k: v for k, v in candidate.items() if k != "D"}, "non-D field changed") + + +def original_rows(original): + v = original["v"] + rows = [set() for _ in range(v)] + for frame, d, sources in original["D"]: + need(frame == 0 and v <= d < 2 * v and all(s >= 2 * v for s in sources), "old D shape") + for s in sources: + rows[d - v].symmetric_difference_update({s - 2 * v}) + return rows + + +def frozen_parent(original, parent): + """Derive E and EK from the pinned target recipe, without accepting search claims.""" + certificate = C["load"](C["HERE"] / "vendor/pr915/CERTIFICATE.json") + same(C["digest"](parent), certificate["candidate_sha256"], "parent digest") + outside_d(original, parent) + v = original["v"] + rows, e_rows, target = original_rows(original), [{i} for i in range(v)], [] + for step in certificate["steps"]: + d, s = step["destination"], step["source"] + need(type(d) is int and type(s) is int and 0 <= d < v and 0 <= s < v and d != s, + "parent target shear") + rows[d].symmetric_difference_update(rows[s]) + e_rows[d].symmetric_difference_update(e_rows[s]) + target.append([0, v + d, [v + s]]) + middle = [[0, v + i, [2 * v + j for j in sorted(row)]] for i, row in enumerate(rows)] + same(target + middle + target[::-1], parent["D"], "frozen parent reconstruction") + check_bill(parent, certificate) + need(len(target) == 306, "parent target count") + return rows, e_rows, target + + +def reconstruct(parent, rows, target, pairs): + v = parent["v"] + transformed = [set(row) for row in rows] + for a, b in pairs: + for row in transformed: + if a in row: + row.symmetric_difference_update({b}) + helpers = [[0, 2 * v + a, [2 * v + b]] for a, b in pairs] + middle = [[0, v + i, [2 * v + j for j in sorted(row)]] for i, row in enumerate(transformed)] + result = copy.deepcopy(parent) + result["D"] = helpers + target + middle + target[::-1] + helpers[::-1] + return result, transformed + + +def source_checks(root, words): + owner = C["module"]("pinned_r439", Path(root) / C["CHECKER"]) + receipts = {} + for name, word in words.items(): + _, labels, full, hypotheses, conclusions, info = owner.check(word) + wanted_h = {key: True for key in hypotheses} + wanted_c = {key: True for key in conclusions} + if name != "baseline": + wanted_h["H2_D_frame0_targets_from_helpers"] = False + wanted_c["K_equals_D"] = False + same(hypotheses, wanted_h, "unexpected source interface predicates") + same(conclusions, wanted_c, "unexpected source conclusion predicates") + receipts[name] = dict(labels=labels, full=full, hypotheses=hypotheses, conclusions=conclusions, info=info) + return receipts + + +def validate_pairs(pairs, count): + used = set() + for pair in pairs: + need(isinstance(pair, (list, tuple)) and len(pair) == 2, "pair shape") + a, b = pair + need(type(a) is int and type(b) is int, "noninteger helper index") + need(0 <= a < count and 0 <= b < count and a != b, "helper pair range") + need(a not in used and b not in used, "overlapping helper pair") + used.update((a, b)) + + +def matching_gain(columns, pairs): + validate_pairs(pairs, len(columns)) + return sum(len(columns[b]) - len(columns[b].symmetric_difference(columns[a])) - 2 for a, b in pairs) + + +def dual_check(columns, dual, witness): + """Elementary integer upper bound: each vertex once, each odd set at most floor(size/2).""" + q, sets = dual["vertex_prices_2"], dual["odd_sets"] + count = len(columns) + need(len(q) == count and all(type(x) is int and x >= 0 for x in q), "nonnegative integer vertex prices") + priced_sets = [] + for row in sets: + vertices, price = row["vertices"], row["price_2"] + need(type(price) is int and price > 0, "positive integer odd-set price") + need(len(vertices) >= 3 and len(vertices) % 2 == 1, "odd-set size") + need(all(type(v) is int and 0 <= v < count for v in vertices) + and len(set(vertices)) == len(vertices), "odd-set vertices") + priced_sets.append((set(vertices), price)) + census, positive, tight = [], 0, 0 + for a in range(count): + for b in range(a + 1, count): + distance = len(columns[a].symmetric_difference(columns[b])) + ab, ba = len(columns[b]) - distance - 2, len(columns[a]) - distance - 2 + weight = max(ab, ba) + price = q[a] + q[b] + sum(z for vertices, z in priced_sets if a in vertices and b in vertices) + need(price >= 2 * weight, "dual edge inequality") + census.append([a, b, ab, ba]) + positive += weight > 0 + tight += price == 2 * weight + objective_2 = sum(q) + sum(z * (len(vertices) // 2) for vertices, z in priced_sets) + gain = matching_gain(columns, witness) + need(objective_2 == 2 * gain, "primal/dual equality") + need(gain == 1260, "fixed-class saving") + return dict(unordered_pairs=len(census), oriented_pair_scores=2 * len(census), + positive_edges=positive, tight_edges=tight, vertex_prices=len(q), odd_sets=len(sets), + largest_odd_set=max(len(s) for s, _ in priced_sets), doubled_objective=objective_2, + exact_maximum_saving=gain, complete_ADD_floor=13208 - gain, + census_sha256=C["digest"](census)) + + +def proxy_check(parent, nomination): + """Independent literal suffix columns for the optional discovery objective.""" + v, n = parent["v"], 2 * parent["v"] + parent["R"] + blank = copy.deepcopy(parent) + blank["D"] = [] + instructions = stream(blank) + + def final(values): + values = list(values) + [0] + for kind, d, s in instructions: + if kind == 1: + values[d] += values[s] + elif kind == 2: + values[d] = values[s] + else: + values[d] = 0 + return values + + ordinary = final([1] * n) + pivot = max(list(range(v)) + list(range(2 * v, n)), key=lambda j: ordinary[j]) + costs = [] + for j in range(parent["R"]): + values = [0] * n + values[2 * v + j] = 1 + costs.append(final(values)[pivot]) + same(pivot, nomination["proxy_pivot"], "proxy pivot") + same(costs, nomination["proxy_cost"], "all helper proxy columns") + same(1 + sum(costs), nomination["lexicographic_multiplier"], "lexicographic multiplier") + return dict(pivot=pivot, helper_columns=len(costs), maximum_cost=max(costs), + lexicographic_multiplier=1 + sum(costs)) + + +def compact_bill(word): + full = bill(word) + forward, backward = full["F"], full["B"] + admitted = (64 * forward ** 3 * backward ** 2 < 1 << 104 + and (1 << 18) * forward ** 5 * backward ** 4 < 1 << 192) + return dict(ADDs=full["native_ADDs"], gain=13208 - full["native_ADDs"], F=forward, B=backward, + payload_bits=full["payload_bits"], nine_bits=full["nine_stage_prefix_bits"], admitted=admitted) + + +def bounded_family(parent, rows, target, nomination, columns): + need(type(nomination["seed"]) is int and nomination["seed"] == 4, "nomination seed") + nominations = nomination["nominations"] + same([r["variant"] for r in nominations], ["lexicographic", "seed4", "forward_proxy"], "three nomination policies") + trials, best, instructions_checked = [], None, 0 + for ni, nominated in enumerate(nominations): + need(matching_gain(columns, nominated["pairs"]) == 1260, "each nomination attains arithmetic floor") + for removed in range(-1, len(nominated["pairs"])): + pairs = [pair for i, pair in enumerate(nominated["pairs"]) if i != removed] + word, _ = reconstruct(parent, rows, target, pairs) + charge = compact_bill(word) + instructions_checked += 2 * len(stream(word)) + if removed == -1: + same(charge, {k: value for k, value in nominated.items() if k not in ("variant", "pairs")}, + "full optimum word bill") + need(charge["admitted"] is False and charge["nine_bits"] == 193, "nominated optimum fails nine-stage cap") + row = dict(nomination=ni, removed_index=removed, **charge) + trials.append(row) + key = (charge["ADDs"], charge["nine_bits"], charge["F"], charge["B"], ni, removed) + if charge["admitted"] and (best is None or key < best[0]): + best = key, pairs, row + same(trials, nomination["trials"], "all bounded-family charges") + need(best is not None, "bounded family has no admitted word") + same(best[1], nomination["selected_pairs"], "selected matching") + same(best[2], nomination["selected"], "selected full cost and bounds") + return dict(nominations=len(nominations), single_pair_deletions=len(trials) - len(nominations), + complete_words_priced=len(trials), admitted_words=sum(r["admitted"] for r in trials), + literal_prefix_instructions_checked=instructions_checked, selected=best[2]) + + +def matrix_check(original, e_rows, pairs, middle): + v, helpers = original["v"], original["R"] + rows = original_rows(original) + k = [[int(j in rows[i]) for j in range(helpers)] for i in range(v)] + a_rows = [row.symmetric_difference({i}) for i, row in enumerate(e_rows)] + predecessor = {b: a for a, b in pairs} + mixed = [set() for _ in range(v)] + for i in range(v): + for j in range(helpers): + base = k[i][j] + left = sum(k[t][j] for t in a_rows[i]) % 2 + right = k[i][predecessor[j]] if j in predecessor else 0 + cross = sum(k[t][predecessor[j]] for t in a_rows[i]) % 2 if j in predecessor else 0 + need((base + left + right + cross) % 2 == int(j in middle[i]), "four-term coefficient") + if cross: + mixed[i].add(j) + return dict(coefficients=v * helpers, mixed_term_nonzeros=sum(map(len, mixed))), mixed + + +def nine_stage_bound(root, native): + source = ("research/e8-bit-p111-tuned/vendor/pr510/e8-r480-nine-stage/" + "vendor/e8-r715-eleven-stage-whole/code/global_k.py") + tree = ast.parse((Path(root) / source).read_text()) + formulas = [node.value for node in ast.walk(tree) if isinstance(node, ast.Assign) + and any(isinstance(t, ast.Name) and t.id == "prefix" for t in node.targets)] + expected = ast.parse("(1 << nb) * cf ** (K + 1) * cb ** K", mode="eval").body + need(len(formulas) == 1 and ast.dump(formulas[0]) == ast.dump(expected), "source prefix formula") + bridge = ast.parse("nb == 6 * (K - 1)", mode="eval").body + need(any(isinstance(node, ast.Compare) and ast.dump(node) == ast.dump(bridge) + for node in ast.walk(tree)), "source bridge exponent") + admitted = C["load"](Path(root) / "research/e8-bit-p111-tuned/tune/EXPECTED.json")["nine"]["bit"] + need(admitted["charged_prefix_bits"] == 192, "source nine-stage charge") + output = {"formula": "2^18 * F^5 * B^4", "source_charge_bits": 192} + for name in ("baseline", "parent", "greedy", "floor", "candidate"): + bounds = native[name]["staged"]["9"]["signed_lift_prefix"] + forward, backward = [int(x["cancellation_free_signed_row_l1_upper"]) for x in bounds] + value = (1 << 18) * forward ** 5 * backward ** 4 + fits = value < 1 << 192 + need(fits == (name != "floor"), "nine-stage admission for " + name) + output[name] = {"bound": str(value), "bits": value.bit_length(), "admitted": fits} + need(output["baseline"]["bits"] == admitted["prefix_bits"] == 177, "source baseline prefix") + return output + + +def controls(original, candidate, floor_word, certificate, nomination, columns, baseline_columns, middle, mixed): + rejected = [] + + def reject(name, action, message): + try: + action() + except ValueError as error: + need(message in str(error), "unexpected control failure: " + name + ": " + str(error)) + rejected.append(name) + else: + raise ValueError("control accepted: " + name) + + def boundary(word): + need(boundary_columns(word) == baseline_columns, "D boundary mismatch") + + dual, witness = nomination["primary_dual"], nomination["nominations"][0]["pairs"] + wrong = copy.deepcopy(dual) + wrong["odd_sets"] = [] + reject("omitted odd-set prices", lambda: dual_check(columns, wrong, witness), "dual edge inequality") + wrong = copy.deepcopy(dual) + index = next(i for i, value in enumerate(wrong["vertex_prices_2"]) if value) + wrong["vertex_prices_2"][index] -= 1 + reject("underpriced vertex", lambda: dual_check(columns, wrong, witness), "dual edge inequality") + wrong = copy.deepcopy(dual) + wrong["odd_sets"][0]["vertices"].pop() + reject("even set charged as odd", lambda: dual_check(columns, wrong, witness), "odd-set size") + wrong = copy.deepcopy(dual) + wrong["vertex_prices_2"][0] = True + reject("boolean dual price", lambda: dual_check(columns, wrong, witness), "integer vertex prices") + pairs = copy.deepcopy(nomination["selected_pairs"]) + pairs[1][0] = pairs[0][0] + reject("overlapping matching", lambda: validate_pairs(pairs, original["R"]), "overlapping") + pairs = copy.deepcopy(nomination["selected_pairs"]) + pairs[0][0] = True + reject("boolean helper index", lambda: validate_pairs(pairs, original["R"]), "noninteger") + h, m, v = certificate["helper_pairs"], certificate["target_shears"], original["v"] + changed = copy.deepcopy(candidate) + del changed["D"][h:h + m] + actual = boundary_columns(changed) + need(actual[2 * v:] == baseline_columns[2 * v:], "helper-only target-preparation control premise") + reject("missing target preparation", lambda: boundary(changed), "D boundary") + changed = copy.deepcopy(candidate) + del changed["D"][:h] + actual = boundary_columns(changed) + need(actual[:2 * v] == baseline_columns[:2 * v], "clean-helper preparation control premise") + reject("missing helper preparation", lambda: boundary(changed), "D boundary") + changed = copy.deepcopy(candidate) + changed["D"].pop() + reject("missing helper restoration", lambda: boundary(changed), "D boundary") + changed = copy.deepcopy(candidate) + changed["D"].pop(-h - 1) + reject("missing target restoration", lambda: boundary(changed), "D boundary") + changed = copy.deepcopy(candidate) + for i, row in enumerate(middle): + changed["D"][h + m + i][2] = [2 * v + j for j in sorted(row.symmetric_difference(mixed[i]))] + reject("omitted mixed term", lambda: boundary(changed), "D boundary") + changed = copy.deepcopy(candidate) + changed["D"][0][0] = 1 + reject("nonzero D frame", lambda: d_atoms(changed), "D frame") + changed = copy.deepcopy(candidate) + changed["D"][0][2] = [0] + reject("D source access", lambda: d_atoms(changed), "D legal donor") + changed = copy.deepcopy(certificate) + changed["D_adds"] -= h + reject("unpaid helper restoration", lambda: check_bill(candidate, changed), "literal bill: D_adds") + changed = copy.deepcopy(certificate) + changed["F"] = 49347 + reject("inherited parent forward bound", lambda: check_bill(candidate, changed), "literal bill: F") + floor_bill = bill(floor_word) + reject("arithmetic optimum falsely admitted", lambda: guards(floor_bill["F"], floor_bill["B"]), "nine-stage") + reject("strict local ceiling equality", lambda: guards(1, 1 << 49), "local payload") + reject("strict nine-stage ceiling equality", lambda: guards(1 << 2, 1 << 41), "nine-stage") + changed = copy.deepcopy(candidate) + changed["C"].pop() + reject("unrelated cleanup change", lambda: outside_d(original, changed), "non-D") + neutral = copy.deepcopy(candidate) + neutral["D"][:0] = [[0, 2 * v, [2 * v + 1]], [0, 2 * v, [2 * v + 1]]] + need(boundary_columns(neutral) == baseline_columns, "neutral helper pair endpoint") + need(len(d_atoms(neutral)) == len(d_atoms(candidate)) + 2, "neutral helper pair cost") + return {"rejected": rejected, "paid_neutral_helper_pair": 2} + + +def run(root, output): + root, output = Path(root).resolve(), Path(output).resolve() + manifest = C["pins"](root) + output.mkdir(parents=True, exist_ok=False) + original = C["load"](root / C["WORD"]) + parent = C["load"](C["HERE"] / "vendor/pr915/candidate.json.gz") + greedy = C["load"](C["HERE"] / "vendor/pr926/candidate.json.gz") + candidate = C["load"](C["HERE"] / "candidate.json.gz") + floor_word = C["load"](C["HERE"] / "floor-word.json.gz") + certificate = C["load"](C["HERE"] / "CERTIFICATE.json") + nomination = C["load"](C["HERE"] / "NOMINATION.json") + need(certificate["format"] == "r439-helper-matching/1" and type(certificate["seed"]) is int + and certificate["seed"] == 4, "certificate format/seed") + for label, word in (("baseline", original), ("parent", parent), ("greedy", greedy), ("candidate", candidate), + ("floor_word", floor_word)): + same(C["digest"](word), certificate[label + "_sha256"], label + " digest") + outside_d(original, word) + same(C["digest"](parent), manifest["parent"]["canonical_word_sha256"], "manifest parent digest") + same(C["digest"](greedy), manifest["greedy_comparator"]["canonical_word_sha256"], "manifest comparator digest") + same(C["digest"](nomination), certificate["nomination_sha256"], "nomination digest") + rows, e_rows, target = frozen_parent(original, parent) + columns = [{i for i, row in enumerate(rows) if j in row} for j in range(original["R"])] + print("independent 96,141-edge integer vertex/odd-set certificate", flush=True) + dual = dual_check(columns, nomination["primary_dual"], nomination["nominations"][0]["pairs"]) + same(dual["positive_edges"], nomination["positive_edges"], "positive edge census") + print("all 601 complete bounded-family words; literal positive instructions", flush=True) + family = bounded_family(parent, rows, target, nomination, columns) + proxy = proxy_check(parent, nomination) + selected_pairs = nomination["selected_pairs"] + rebuilt, middle = reconstruct(parent, rows, target, selected_pairs) + same(rebuilt, candidate, "candidate literal recipe") + same(reconstruct(parent, rows, target, nomination["nominations"][0]["pairs"])[0], floor_word, "floor word recipe") + greedy_certificate = C["load"](C["HERE"] / "vendor/pr926/CERTIFICATE.json") + greedy_pairs = [[step["a"], step["b"]] for step in greedy_certificate["steps"]] + validate_pairs(greedy_pairs, original["R"]) + same(reconstruct(parent, rows, target, greedy_pairs)[0], greedy, "greedy comparator recipe") + check_bill(greedy, greedy_certificate) + check_bill(candidate, certificate) + need(certificate["helper_pairs"] == len(selected_pairs) == 199 and certificate["target_shears"] == 306, + "complete basis operation counts") + need(certificate["middle_weight"] == sum(map(len, middle)) == 4719, "middle weight") + need(certificate["saved_beyond_parent"] == 1259 and certificate["saved_beyond_greedy"] == 31, "complete savings") + matrix, mixed = matrix_check(original, e_rows, selected_pairs, middle) + print("rebuild both artifacts; all five D words on 661 columns in both directions", flush=True) + generated = output / "regenerated" + subprocess.run([sys.executable, "-I", "-B", C["HERE"] / "build.py", "--source-root", root, + "--output", generated], check=True) + for name in ("candidate.json.gz", "floor-word.json.gz", "CERTIFICATE.json"): + same(C["load"](generated / name), C["load"](C["HERE"] / name), "regeneration: " + name) + words = dict(baseline=original, parent=parent, greedy=greedy, floor=floor_word, candidate=candidate) + baseline_columns = boundary_columns(original) + for word in words.values(): + for reverse in (False, True): + need(boundary_columns(word, reverse) == baseline_columns, "arbitrary-input D boundary") + source = source_checks(root, words) + negative = controls(original, candidate, floor_word, certificate, nomination, columns, baseline_columns, middle, mixed) + print("unchanged native legality and 5/9/11-stage replay: five complete words", flush=True) + paths = {"baseline": root / C["WORD"], "parent": C["HERE"] / "vendor/pr915/candidate.json.gz", + "greedy": C["HERE"] / "vendor/pr926/candidate.json.gz", "floor": C["HERE"] / "floor-word.json.gz", + "candidate": C["HERE"] / "candidate.json.gz"} + native = C["module"]("r439_matching_native", C["HERE"] / "native.py").run(root, paths, output / "native") + bills = {name: bill(word) for name, word in words.items()} + for name in words: + need(bills[name]["native_ADDs"] == native[name]["common_frame_ADDs"], "literal/native ADD cost") + bounds = native[name]["staged"]["9"]["signed_lift_prefix"] + same([bills[name]["F"], bills[name]["B"]], + [int(x["cancellation_free_signed_row_l1_upper"]) for x in bounds], "literal/native positive bounds") + need(bills["candidate"]["F"] < bills["greedy"]["F"] and bills["candidate"]["B"] < bills["greedy"]["B"], + "both prefix maxima improve beyond comparator") + return dict(status="PASS_R439_HELPER_MATCHING", source_files=manifest["files"], predecessor_files=manifest["local_files"], + dual=dual, bounded_family=family, discovery_proxy=proxy, matrix=matrix, + boundary_columns=661, boundary_words_and_directions=10, bills=bills, + candidate_sha256=C["digest"](candidate), certificate_sha256=C["digest"](certificate), + nomination_sha256=C["digest"](nomination), source_checks=source, controls=negative, native=native, + nine_stage_prefix_bound=nine_stage_bound(root, native), + precision_constrained_ADD_interval=[dual["complete_ADD_floor"], bills["candidate"]["native_ADDs"]]) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--source-root", type=Path, default=C["ROOT"]) + parser.add_argument("--output", type=Path) + parser.add_argument("--receipt", type=Path) + parser.add_argument("--expected", type=Path, default=C["HERE"] / "EXPECTED.json") + args = parser.parse_args() + if args.output: + need(not args.output.exists(), "output already exists") + if args.receipt: + need(not args.receipt.exists(), "receipt already exists") + expected = C["load"](args.expected) + with tempfile.TemporaryDirectory(prefix="r439-matching-") as temp: + report = run(args.source_root, args.output or Path(temp) / "run") + same(report, expected, "receipt differs from EXPECTED.json") + if args.receipt: + C["write"](args.receipt, report) + print("PASS_R439_HELPER_MATCHING: ADDs 11,980 -> 11,949; fixed-class floor 11,948; " + "601 budgeted words; one-ADD gap; no new kappa") From 8af78333709a2eafd84463a7dc91467be5618b49 Mon Sep 17 00:00:00 2001 From: Gareth Davidson Date: Tue, 13 Oct 2026 14:50:50 +0100 Subject: [PATCH 2/2] docs: record pass 12 matching result and PR941 handoff --- research/r439-helper-matching/CLAIM.json | 40 ++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/research/r439-helper-matching/CLAIM.json b/research/r439-helper-matching/CLAIM.json index cc0664bd4a..d2382d8739 100644 --- a/research/r439-helper-matching/CLAIM.json +++ b/research/r439-helper-matching/CLAIM.json @@ -6,7 +6,7 @@ "pass": 12, "base": "91a2094f2e022930069e8cfdc810a3ea1b81cd09", "branch": "research/pass12-bit-seed04", - "status": "claimed", + "status": "submitted", "claimed_at_utc": "2026-10-13T13:17:36.187221+00:00", "candidate_selection": "Seed 4 modulo 3 selects candidate 1. Seed 4 fixes secondary nomination ordering.", "candidates": [ @@ -44,5 +44,41 @@ "817": "3147cac35c659152d36db1e0e60b9ce4b152c008", "716": "afeb452f58ff0cbf109172335e2ba282aac3dcde" }, - "scope": "Finite bit construction and exact restricted pairing bound. Semantic D acceptance and full hosted reconstruction/invoice remain integration obligations. No new kappa, unrestricted optimum or measured runtime claim." + "scope": "Finite bit construction and exact restricted pairing bound. Semantic D acceptance and full hosted reconstruction/invoice remain integration obligations. No new kappa, unrestricted optimum or measured runtime claim.", + "completed_at_utc": "2026-10-13T13:50:49.944418+00:00", + "publication_base": "47481c89fd30a43f8f882eb4b391e89c29273fd0", + "result": { + "pr": 941, + "url": "https://github.com/CrocSwap/integer-mult-bounds/pull/941", + "mathematical_head": "34f7eff4e2d4ab7c249a6505bc04a2d6aa41dea9", + "complete_ADDs": { + "selected_PR589": 24305, + "fixed_PR915": 13208, + "greedy_PR926": 11980, + "candidate": 11949, + "arithmetic_floor": 11948 + }, + "D_ADDs": 5729, + "helper_pairs": 199, + "middle_weight": 4719, + "saving_beyond_greedy": 31, + "F": 70083, + "B": 10548832, + "local_payload_bits": 101, + "nine_stage_prefix_bits": 192, + "exact_bound": "439 doubled vertex prices and 19 odd-set prices cover all 96,141 edges; primal and dual saving equal 1,260. The precision-constrained class minimum lies in [11,948, 11,949].", + "bounded_search": "Three arithmetic optima fail the nine-stage cap. All 598 single-pair deletions are priced; 17 of 601 total words fit. No exclusion of every arithmetic optimum is claimed.", + "validation": "Complete receipts match on ordinary CPython 3.14.4 and isolated optimized read-only CPython 3.12.3. All five words pass original endpoints and native 5/9/11-stage local checks; 240 bridge controls, 19 local controls, 8 package tests pass. The floor calibration separately fails the nine-stage cap. Optional nomination reproduces every field.", + "integration": "Requires semantic D acceptance, changed whole-hosted emission/audit, complete finite/precision invoices and outer assembly. No new kappa or unrestricted optimum.", + "hosted_CI": "Separate from local validation; no hosted success claimed." + }, + "final_refresh": { + "upstream": "47481c89fd30a43f8f882eb4b391e89c29273fd0", + "open_prs": 708, + "through_pr": 937, + "gist_revision": "4180bf0d4045ffdcd12d75bb1fec91c234420162", + "source_preservation": "All 14 consumed source files match the new main byte for byte; selected-record checks pass before and after rebase.", + "selection": "Main advanced to PR890, kappa 0.001661957774647029, retaining PR589. This contribution does not claim that improvement.", + "overlap": "PR933 concerns gate order/reframing with fixed D; PR936 extends phase-A prefix synthesis. Neither is composed here." + } }