From cd016e5dcd5ba28dafa3f3b4eeef003a38e6a11b Mon Sep 17 00:00:00 2001 From: Sagar Thakrar Date: Tue, 13 Oct 2026 22:55:34 +0530 Subject: [PATCH] Finite bit construction: phase-B block programs on the R439 helper-star D (no new kappa) Splice PR1015's nine multi-write block programs and PR923's frame-520 program into the incorporated PR967 helper-star word (11,783 -> 11,515 ADDs). The smaller block transfers lower both positive bounds and clear the 192-bit nine-stage guard, so the unchanged seed-19 star pass rerun on the same parent admits 15 more stars (D 5,563 -> 5,548; 11,500 ADDs). Exact F2, frame-path, owner-checker and exporter verification with eight controls. --- .../CERTIFICATE.json | 342 ++ research/r439-bsection-stars-seed01/CLAIM.md | 12 + research/r439-bsection-stars-seed01/README.md | 95 + .../r439-bsection-stars-seed01/SOURCES.json | 29 + research/r439-bsection-stars-seed01/build.py | 109 + .../candidate.json.gz | Bin 0 -> 38439 bytes .../candidate_search.json | 1680 +++++++++ .../composition.json.gz | Bin 0 -> 38362 bytes .../inputs/PR1015-CANDIDATE.json | 3205 +++++++++++++++++ .../pair_control.json.gz | Bin 0 -> 38387 bytes .../pair_control_search.json | 1344 +++++++ research/r439-bsection-stars-seed01/verify.py | 319 ++ 12 files changed, 7135 insertions(+) create mode 100644 research/r439-bsection-stars-seed01/CERTIFICATE.json create mode 100644 research/r439-bsection-stars-seed01/CLAIM.md create mode 100644 research/r439-bsection-stars-seed01/README.md create mode 100644 research/r439-bsection-stars-seed01/SOURCES.json create mode 100644 research/r439-bsection-stars-seed01/build.py create mode 100644 research/r439-bsection-stars-seed01/candidate.json.gz create mode 100644 research/r439-bsection-stars-seed01/candidate_search.json create mode 100644 research/r439-bsection-stars-seed01/composition.json.gz create mode 100644 research/r439-bsection-stars-seed01/inputs/PR1015-CANDIDATE.json create mode 100644 research/r439-bsection-stars-seed01/pair_control.json.gz create mode 100644 research/r439-bsection-stars-seed01/pair_control_search.json create mode 100644 research/r439-bsection-stars-seed01/verify.py diff --git a/research/r439-bsection-stars-seed01/CERTIFICATE.json b/research/r439-bsection-stars-seed01/CERTIFICATE.json new file mode 100644 index 0000000000..2cff2738f7 --- /dev/null +++ b/research/r439-bsection-stars-seed01/CERTIFICATE.json @@ -0,0 +1,342 @@ +{ + "status": "PASS_R439_BSECTION_STARS", + "base_commit": "2921874911956718fcaaaf9396fe8267b3cfa9f0", + "assignment_seed": 1, + "blocks": [ + { + "frame": 506, + "registers": 10, + "original_gates": 26, + "new_gates": 21, + "boolean_inputs": 1024, + "integer_transfer_equal": true, + "reverse_transfer_total": [ + 89, + 65 + ], + "source": "PR1015" + }, + { + "frame": 507, + "registers": 10, + "original_gates": 35, + "new_gates": 24, + "boolean_inputs": 1024, + "integer_transfer_equal": true, + "reverse_transfer_total": [ + 174, + 82 + ], + "source": "PR1015" + }, + { + "frame": 519, + "registers": 12, + "original_gates": 42, + "new_gates": 27, + "boolean_inputs": 4096, + "integer_transfer_equal": true, + "reverse_transfer_total": [ + 407, + 145 + ], + "source": "PR1015" + }, + { + "frame": 508, + "registers": 11, + "original_gates": 37, + "new_gates": 21, + "boolean_inputs": 2048, + "integer_transfer_equal": true, + "reverse_transfer_total": [ + 169, + 55 + ], + "source": "PR1015" + }, + { + "frame": 520, + "registers": 12, + "original_gates": 41, + "new_gates": 29, + "boolean_inputs": 4096, + "integer_transfer_equal": true, + "reverse_transfer_total": [ + 368, + 108 + ], + "source": "PR923" + }, + { + "frame": 509, + "registers": 11, + "original_gates": 31, + "new_gates": 21, + "boolean_inputs": 2048, + "integer_transfer_equal": true, + "reverse_transfer_total": [ + 94, + 52 + ], + "source": "PR1015" + }, + { + "frame": 521, + "registers": 12, + "original_gates": 47, + "new_gates": 30, + "boolean_inputs": 4096, + "integer_transfer_equal": true, + "reverse_transfer_total": [ + 405, + 147 + ], + "source": "PR1015" + }, + { + "frame": 522, + "registers": 12, + "original_gates": 43, + "new_gates": 29, + "boolean_inputs": 4096, + "integer_transfer_equal": true, + "reverse_transfer_total": [ + 319, + 129 + ], + "source": "PR1015" + }, + { + "frame": 523, + "registers": 12, + "original_gates": 45, + "new_gates": 26, + "boolean_inputs": 4096, + "integer_transfer_equal": true, + "reverse_transfer_total": [ + 229, + 81 + ], + "source": "PR1015" + }, + { + "frame": 524, + "registers": 12, + "original_gates": 41, + "new_gates": 26, + "boolean_inputs": 4096, + "integer_transfer_equal": true, + "reverse_transfer_total": [ + 233, + 73 + ], + "source": "PR1015" + } + ], + "block_gates": [ + 388, + 254 + ], + "words": { + "helper_star": { + "literal": { + "native_ADDs": 11783, + "D_adds": 5563, + "F": 72847, + "B": 10394084, + "local_bits": 102, + "nine_stage_bits": 192 + }, + "exporter": { + "adds": 11783, + "copies": 9, + "erasures": 9, + "forward": 72847, + "reverse": 10394084, + "payload_bits": 102, + "record_sha256": "4970411c56f2c7f7463c70f28d17c4bc517175b12259e7b5c4063e37c2abd856" + }, + "copy_ranks": [ + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7 + ], + "columns": 661, + "directions": 2 + }, + "composition": { + "literal": { + "native_ADDs": 11515, + "D_adds": 5563, + "F": 24625, + "B": 5846566, + "local_bits": 95, + "nine_stage_bits": 181 + }, + "exporter": { + "adds": 11515, + "copies": 9, + "erasures": 9, + "forward": 24625, + "reverse": 5846566, + "payload_bits": 95, + "record_sha256": "3ef472637d6d99f03bb0b92a88bd5109632b9ddc621362ff1ed49a9b502c3335" + }, + "copy_ranks": [ + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7 + ], + "columns": 661, + "directions": 2 + }, + "candidate": { + "literal": { + "native_ADDs": 11500, + "D_adds": 5548, + "F": 25717, + "B": 5911840, + "local_bits": 95, + "nine_stage_bits": 182 + }, + "exporter": { + "adds": 11500, + "copies": 9, + "erasures": 9, + "forward": 25717, + "reverse": 5911840, + "payload_bits": 95, + "record_sha256": "80bb888427eb8bf158dd4279aa56340d20cf573c296f15632b22afabedf0967d" + }, + "copy_ranks": [ + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7 + ], + "columns": 661, + "directions": 2 + }, + "pair_control": { + "literal": { + "native_ADDs": 11715, + "D_adds": 5763, + "F": 24563, + "B": 5892602, + "local_bits": 95, + "nine_stage_bits": 181 + }, + "exporter": { + "adds": 11715, + "copies": 9, + "erasures": 9, + "forward": 24563, + "reverse": 5892602, + "payload_bits": 95, + "record_sha256": "da348d2ac45dd28670464c7237a89125ae7480397857b16bc1c0303a2892e9b0" + }, + "copy_ranks": [ + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7, + 7 + ], + "columns": 661, + "directions": 2 + } + }, + "search": { + "original": { + "edges": 221, + "guard_rejections": 24, + "D_adds": 5563, + "ADDs": 11783 + }, + "spliced": { + "edges": 236, + "guard_rejections": 0, + "D_adds": 5548, + "ADDs": 11500, + "two_leaf_stars": 74 + }, + "pair_control_ADDs": 11715 + }, + "owner_reference": { + "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 + }, + "conclusions": { + "U_block_form": true, + "J_identity": true, + "K_equals_D": false, + "C_is_U_inverse": true + } + }, + "controls": [ + [ + "mutated block source", + "F2 block map 506" + ], + [ + "dropped block gate", + "F2 block map 507" + ], + [ + "block gate at frame zero", + "illegal frame move" + ], + [ + "stale cleanup", + "literal cleanup rule" + ], + [ + "omitted cleanup gate", + "boundary" + ], + [ + "new stars without the spliced blocks", + "nine-stage precision guard" + ], + [ + "omitted star restoration", + "D boundary" + ], + [ + "guard equality is not strict", + "local precision guard" + ] + ], + "payload_sha256": { + "composition": "42ca09ed2996737f9280f27688176ab4401b22600586df0e29f7460528568b55", + "candidate": "62fc64481911bec4c18643c0c6ac7d31091f09c081a9223096839a7150185be8", + "pair_control": "0bdfccdfa63cdba6b24a52dd06021af7cbf7159bb74b85c020b4a94d18da2e62" + }, + "new_kappa_claim": false +} diff --git a/research/r439-bsection-stars-seed01/CLAIM.md b/research/r439-bsection-stars-seed01/CLAIM.md new file mode 100644 index 0000000000..c76eb00d16 --- /dev/null +++ b/research/r439-bsection-stars-seed01/CLAIM.md @@ -0,0 +1,12 @@ +# Sprint claim (recorded locally; no pinned coordination issue exists) + +- Track 00–19 (bit supplier); OS-random seed 1 (`secrets.randbelow(100)`). +- Base `2921874911956718fcaaaf9396fe8267b3cfa9f0`. +- Object: compose the best recorded R439 phase-B block programs (PR1015 ×9, PR923 frame 520) with the + incorporated PR967 helper-star D, and price the freed precision-guard headroom with the unchanged + seed-19 star pass. +- Method: deterministic splice + unchanged builder; exact F2/frame/owner/exporter verification. +- Overlap checked before submission against open PRs through #1060: #1015 and #989 compose blocks on + the 24k PR589 word only; #1040/#1047 are single D edits on the 11,783 word; #1045/#941 are a separate + helper-matching line. None composes phase-B blocks with the helper-star D. +- Stopping rule: one composition and one rerun of the existing pass; no new search. diff --git a/research/r439-bsection-stars-seed01/README.md b/research/r439-bsection-stars-seed01/README.md new file mode 100644 index 0000000000..188175a52b --- /dev/null +++ b/research/r439-bsection-stars-seed01/README.md @@ -0,0 +1,95 @@ +# R439: phase-B block programs on the helper-star D, and the guard headroom they free + +**Finite bit-circuit construction; no new κ.** The selected result, the selected bit supplier and +`upstream/` are unchanged; the bit side does not bind. + +The incorporated helper-star word (PR967, `research/r439-helper-stars-seed19`) rebuilt only D and kept +PR589's phase-B blocks. The shortest recorded block programs were built on the 24k-ADD PR589 word and +were explicitly left uncomposed with the D-substitution line (PR1015; batch-952 review). This package +composes them and prices one consequence: + +| complete local word | ADDs | D ADDs | F | B | local / nine-stage bits (caps 104 / 192) | +|---|---:|---:|---:|---:|---| +| helper stars (main) | 11,783 | 5,563 | 72,847 | 10,394,084 | 102 / **192** | +| + ten spliced phase-B blocks | **11,515** | 5,563 | 24,625 | 5,846,566 | 95 / 181 | +| + same seed-19 star pass rerun | **11,500** | 5,548 | 25,717 | 5,911,840 | 95 / 182 | +| pair control (degree one, rerun) | 11,715 | 5,763 | 24,563 | 5,892,602 | 95 / 181 | + +1. **Composition (−268).** Nine PR1015 multi-write programs and the incorporated PR923 frame-520 + program replace the ten phase-B blocks: 388 → 254 gates, with C rebuilt by the literal-cleanup + rule. Every replacement has the original F2 block map (all 2^n inputs). Every replacement also + has an equal integer transfer and a smaller reverse transfer. D is byte-identical to the + helper-star word. +2. **Freed guard (−15 more).** The helper-star word sits at bit-length 192 under the 2^192 + nine-stage cap. Its seed-19 greedy pass rejected 24 nominees on that guard. With the spliced + blocks, both positive bounds fall (F 72,847 → 24,625). The **unchanged** builder + (`research/r439-helper-stars-seed19/build.py`, called as a library) is rerun on the same PR915 + parent with the same blocks spliced. That pass makes 0 guard rejections and admits 236 edges + instead of 221, giving D 5,563 → 5,548. + +For both words, PR589's A, scatter, copied totals, register frame paths, nine COPY/ERASE pairs and paid +profile `{1:1323, 2:1342, 3:79, 4:44, 5:102, 6:11, 7:19}` (rank mass 5,129) are unchanged. The pinned +owner checker gives the same H1–H5 pattern as the incorporated helper-star word. Only the two flags +that line already carries are false: syntactic `H2_D_frame0_targets_from_helpers` and `K_equals_D`. + +## Reproduce + +```sh +python3 -I -B research/r439-bsection-stars-seed01/verify.py +python3 -I -O -B research/r439-bsection-stars-seed01/verify.py +``` + +Expected (about 20 s each, standard library only): + +```text +PASS_R439_BSECTION_STARS blocks=10 gates=388->254 ADDs=11783->11515->11500 guard_rejections=24->0 columns=661 controls=8 no_new_kappa +``` + +The verifier does the following: + +* rebuilds all three payloads and both search receipts deterministically and compares them byte-wise; +* replays all 661 formal columns through the literal COPY/ERASE stream in both directions for four + words (helper star, composition, candidate, pair control); +* checks the D dirty boundary against PR589; +* runs the pinned `xcheck_p.py` owner checker; +* recomputes the paid profile from frame paths and copy ranks; +* bills the pinned `export_records.py` records, whose bounds equal the literal-stream bounds here; +* checks both precision guards; +* confirms that the original search still gives 11,783 with 24 rejections; +* rejects eight controls, listed below. + +| control | rejected by | +|---|---| +| mutated block source | F2 block map | +| dropped block gate | F2 block map | +| block gate at frame zero | illegal frame move | +| stale (pre-splice) cleanup | literal-cleanup rule; it is F2-exact but costs more ADDs | +| omitted cleanup gate | boundary | +| the 236-edge D without the spliced blocks | nine-stage guard | +| omitted star restoration | D boundary | +| 105-bit local bound | local guard | + +The sixth control is the key one: the extra stars are admissible only because of the composition. + +## Scope and what is not claimed + +* **No κ change.** The bit supplier does not bind, and this word is not proposed as the selected + supplier. Hosted invoice, supplier binding and outer assembly were not run. +* **Native replay not run.** The 5/9/11-stage C++/Boost replay was not run here because Boost + headers were unavailable. Exact F2 endpoints, frame paths, exporter records and the owner checker + were run. +* **No optimality claim.** The block programs are best-found results of their searches, not minima. + The star pass is one deterministic greedy pass. +* **Not composed.** Open single-step D edits on the 11,783 word (#1040: −3; #1047: −14) were not + tested on top of this word. Neither was the separate PR941/#1045 helper-matching line. + +## Credit and disclosure + +The block programs are by Aaron Wang (PR1015, open; `inputs/PR1015-CANDIDATE.json` is copied unchanged +from head `7588c797`) and Ross Richardson (PR923, frame 520, incorporated). The helper-star builder and +D are from PR967 (`research/r439-helper-stars-seed19`, prepared for @theon199). That work generalizes +Gareth Davidson's PR926 pairs on the PR915 target basis. The underlying word comes from DreamingOfClouds' +PR589 on eumemic's PR555, and the checkers come from the retained supplier lineage. Track 00–19 (bit +supplier), OS-random seed **1**, base `2921874911956718fcaaaf9396fe8267b3cfa9f0`. + +Prepared by Sagar Thakrar with substantial assistance from Anthropic Claude (Claude Code). Apache-2.0. diff --git a/research/r439-bsection-stars-seed01/SOURCES.json b/research/r439-bsection-stars-seed01/SOURCES.json new file mode 100644 index 0000000000..8c02baa7fc --- /dev/null +++ b/research/r439-bsection-stars-seed01/SOURCES.json @@ -0,0 +1,29 @@ +{ + "base_commit": "2921874911956718fcaaaf9396fe8267b3cfa9f0", + "files": { + "inputs/PR1015-CANDIDATE.json": "388c2a0db00dbe77b67649af7293e577cf3869da7ae0d0341e17ecff2b16c84c", + "research/r439-frame520/candidate.json": "18cb7f41f6451f3af3559e8c09fb323ec6d1003de82ab4f0cff5d59c070ed208", + "research/r439-frame520/RECEIPT.json": "449b4c698edf4ba377bf41582c4cb8245aee6888b45e48c823270fbe9392bcfb", + "research/r439-helper-stars-seed19/build.py": "c14c75c73fab605ab9fc133d6c146bd3d14a5e8a0ed85db1247981c4959f9ac7", + "research/r439-helper-stars-seed19/common.py": "a596d898017d8832e7bcb987fc12cccbd2c88a7ad760c10a1329b0a8ea21edec", + "research/r439-helper-stars-seed19/candidate.json.gz": "d8b08885e8ce9868200b2645189d15ed18a27fc2742e54990b3257a0ca4df6b8", + "research/r439-helper-stars-seed19/CERTIFICATE.json": "35bdbd763e29791e4fa43d99d764d536fa284e89023bb9da482d2f3ba80ce333", + "research/r439-target-compensation/candidate.json.gz": "ac30266144f8772ec8cd629153993aa9eb692fe745a9f95015a1b7fa88977a2e", + "research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz": "e3e301e62bc2b41dbf1ceac0acf3d35824ebeab1848c5a2142d4577b109da52f", + "research/e8-bit-p111-tuned/code/xcheck_p.py": "af3decc877e27c00001cf56f50c6c09566e8e101297ab34c7860aed96a06d80e", + "research/e8-bit-carrier-skeleton/code/bit/export_records.py": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3" + }, + "sources": { + "PR589_word": "research/e8-bit-p111-tuned (merged PR589, unchanged)", + "PR915_parent": "research/r439-target-compensation (incorporated)", + "PR967_helper_stars": "research/r439-helper-stars-seed19 (incorporated; builder reused as a library, unchanged)", + "PR923_frame520": "research/r439-frame520 (incorporated)", + "PR1015": { + "head": "7588c797f4a4e9f2b9fc663cfa6e35afcac05e06", + "path": "research/r439-bsection-multwrite/CANDIDATE.json", + "status": "open PR; file copied unchanged to inputs/" + } + }, + "runtime": "Python 3.10+ standard library", + "not_run": "native 5/9/11-stage C++/Boost replay (Boost headers unavailable here)" +} diff --git a/research/r439-bsection-stars-seed01/build.py b/research/r439-bsection-stars-seed01/build.py new file mode 100644 index 0000000000..0c9e3253e5 --- /dev/null +++ b/research/r439-bsection-stars-seed01/build.py @@ -0,0 +1,109 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 +# Prepared by Sagar Thakrar with substantial Anthropic Claude assistance. +"""Compose the shortest recorded R439 phase-B block programs with the helper-star D line. + +composition = main's PR967 helper-star word (11,783 ADDs) with nine PR1015 multi-write block + programs and the incorporated PR923 frame-520 program spliced into B, and the + literal cleanup C rebuilt. D is unchanged. +candidate = the unchanged seed-19 helper-star search (main's research/r439-helper-stars-seed19/ + build.py, called as a library) rerun on the same PR915 target-compensation parent + after the same B splice. Smaller block transfers relax the precision guard, so the + identical gain-ordered pass admits stars it previously rejected. +pair_control = the same rerun restricted to disjoint pairs (degree one). + +Deterministic; standard library only. +""" +import argparse, copy, gzip, hashlib, json, runpy +from pathlib import Path + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +STARS = 'research/r439-helper-stars-seed19/' +PARENT = 'research/r439-target-compensation/candidate.json.gz' +F520 = 'research/r439-frame520/candidate.json' +PR1015 = HERE / 'inputs/PR1015-CANDIDATE.json' +# frame -> (first, stop) slice of B in the PR589 word; identical in every word of this line +BLOCKS = {506: (102, 128), 507: (128, 163), 519: (163, 205), 508: (205, 242), 520: (242, 283), + 509: (283, 314), 521: (314, 361), 522: (361, 404), 523: (404, 449), 524: (449, 490)} + + +def need(ok, msg): + if not ok: + raise ValueError(msg) + + +def canonical(x): + return json.dumps(x, sort_keys=True, separators=(',', ':')).encode() + + +def digest(x): + return hashlib.sha256(canonical(x)).hexdigest() + + +def load(path): + data = Path(path).read_bytes() + return json.loads(gzip.decompress(data) if str(path).endswith('.gz') else data) + + +def pins(root): + manifest = load(HERE / 'SOURCES.json') + for path, sha in manifest['files'].items(): + p = (HERE / path) if path.startswith('inputs/') else (root / path) + need(hashlib.sha256(p.read_bytes()).hexdigest() == sha, 'source pin: ' + path) + return manifest + + +def programs(root): + """Ten replacement block programs: PR1015 for nine frames, PR923 for frame 520.""" + cand = load(PR1015) + out = {} + for b in cand['blocks']: + need(tuple(b['slice']) == BLOCKS[b['frame']], 'PR1015 slice %d' % b['frame']) + out[b['frame']] = dict(source='PR1015', gates=b['gates']) + f520 = load(root / F520) + need(f520['frame'] == 520 and f520['candidate_gate_count'] == len(f520['candidate_ops']) == 29, 'PR923 frame 520') + out[520] = dict(source='PR923', gates=f520['candidate_ops']) + need(sorted(out) == sorted(BLOCKS), 'block inventory') + return out + + +def cleanup(w): + full = next(i for i, f in enumerate(w['frames']) if len(f) == w['v']) + return [[full, d, list(ss)] for _, d, ss in reversed(w['A'] + w['B']) if d < w['v'] or d >= 2 * w['v']] + + +def splice(word, progs): + w = copy.deepcopy(word) + for frame in sorted(BLOCKS, key=lambda f: -BLOCKS[f][0]): + a, b = BLOCKS[frame] + w['B'][a:b] = copy.deepcopy(progs[frame]['gates']) + w['C'] = cleanup(w) + return w + + +def build(root): + stars = runpy.run_path(str(root / STARS / 'build.py')) + progs = programs(root) + composition = splice(load(root / STARS / 'candidate.json.gz'), progs) + parent = splice(load(root / PARENT), progs) + candidate, cert = stars['search'](parent, 2) + pair, pair_cert = stars['search'](parent, 1) + for c in (cert, pair_cert): + c['parent_note'] = 'PR915 target-compensation parent with the ten spliced B blocks and rebuilt C' + return dict(composition=composition, candidate=candidate, pair_control=pair, + candidate_search=cert, pair_control_search=pair_cert) + + +if __name__ == '__main__': + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--output', type=Path, required=True) + a = ap.parse_args() + pins(ROOT) + out = build(ROOT) + a.output.mkdir(parents=True, exist_ok=False) + for name in ('composition', 'candidate', 'pair_control'): + (a.output / (name + '.json.gz')).write_bytes(gzip.compress(canonical(out[name]), mtime=0)) + for name in ('candidate_search', 'pair_control_search'): + (a.output / (name + '.json')).write_text(json.dumps(out[name], indent=1, sort_keys=True) + '\n') + print({k: out[k + '_search']['native_ADDs'] for k in ('candidate', 'pair_control')}) diff --git a/research/r439-bsection-stars-seed01/candidate.json.gz b/research/r439-bsection-stars-seed01/candidate.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..9a17b4920334878d6c949191f6931bd97126fe3c GIT binary patch literal 38439 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 literal 0 HcmV?d00001 diff --git a/research/r439-bsection-stars-seed01/candidate_search.json b/research/r439-bsection-stars-seed01/candidate_search.json new file mode 100644 index 0000000000..97f5d9f0d3 --- /dev/null +++ b/research/r439-bsection-stars-seed01/candidate_search.json @@ -0,0 +1,1680 @@ +{ + "B": 5911840, + "D_adds": 5548, + "F": 25717, + "candidate_sha256": "62fc64481911bec4c18643c0c6ac7d31091f09c081a9223096839a7150185be8", + "census_sha256": "502cb555e8cd41aa38233cf0ec9ae177310cf720931eb8d0fb0a2ea7459fa8dc", + "format": "r439-helper-stars/1", + "guard_rejections": [], + "helper_components": 162, + "helper_edges": 236, + "local_bound": "38044005158586490435359539200", + "max_leaves": 2, + "middle_weight": 4464, + "native_ADDs": 11500, + "nine_stage_bound": "3601903994416905225984905662960686510006596408442880000", + "ordered_pairs": 192282, + "overlap_skips": 2062, + "parent_note": "PR915 target-compensation parent with the ten spliced B blocks and rebuilt C", + "parent_sha256": "04b84d21552f194d64985aa888b5c43945c35b2874bdda0f4970f3e61cb3bb26", + "positive_pairs": 2298, + "saved_beyond_PR915": 1708, + "seed": 19, + "steps": [ + { + "B": 5371088, + "F": 16841, + "a": 58, + "b": 38, + "gain": 19 + }, + { + "B": 5371088, + "F": 16841, + "a": 129, + "b": 155, + "gain": 19 + }, + { + "B": 5371088, + "F": 16841, + "a": 52, + "b": 62, + "gain": 17 + }, + { + "B": 5371088, + "F": 17265, + "a": 239, + "b": 229, + "gain": 15 + }, + { + "B": 5377038, + "F": 17265, + "a": 123, + "b": 158, + "gain": 15 + }, + { + "B": 5377038, + "F": 17265, + "a": 434, + "b": 374, + "gain": 14 + }, + { + "B": 5377038, + "F": 17433, + "a": 79, + "b": 189, + "gain": 14 + }, + { + "B": 5377716, + "F": 17433, + "a": 131, + "b": 149, + "gain": 14 + }, + { + "B": 5377716, + "F": 17433, + "a": 134, + "b": 98, + "gain": 13 + }, + { + "B": 5377716, + "F": 17461, + "a": 202, + "b": 37, + "gain": 13 + }, + { + "B": 5377716, + "F": 17537, + "a": 196, + "b": 32, + "gain": 13 + }, + { + "B": 5377716, + "F": 17537, + "a": 31, + "b": 7, + "gain": 13 + }, + { + "B": 5377716, + "F": 17537, + "a": 284, + "b": 152, + "gain": 13 + }, + { + "B": 5377716, + "F": 17537, + "a": 84, + "b": 160, + "gain": 13 + }, + { + "B": 5377716, + "F": 17613, + "a": 296, + "b": 332, + "gain": 12 + }, + { + "B": 5377716, + "F": 17613, + "a": 9, + "b": 237, + "gain": 12 + }, + { + "B": 5377716, + "F": 17613, + "a": 101, + "b": 144, + "gain": 12 + }, + { + "B": 5377716, + "F": 17613, + "a": 266, + "b": 96, + "gain": 12 + }, + { + "B": 5377716, + "F": 17613, + "a": 273, + "b": 126, + "gain": 12 + }, + { + "B": 5451168, + "F": 17613, + "a": 274, + "b": 114, + "gain": 12 + }, + { + "B": 5451168, + "F": 17613, + "a": 113, + "b": 142, + "gain": 12 + }, + { + "B": 5451168, + "F": 17613, + "a": 72, + "b": 68, + "gain": 12 + }, + { + "B": 5451168, + "F": 17613, + "a": 43, + "b": 39, + "gain": 11 + }, + { + "B": 5451168, + "F": 17613, + "a": 41, + "b": 192, + "gain": 11 + }, + { + "B": 5456246, + "F": 17613, + "a": 169, + "b": 191, + "gain": 11 + }, + { + "B": 5456246, + "F": 17613, + "a": 234, + "b": 15, + "gain": 11 + }, + { + "B": 5456246, + "F": 17613, + "a": 285, + "b": 133, + "gain": 11 + }, + { + "B": 5456246, + "F": 17689, + "a": 212, + "b": 55, + "gain": 11 + }, + { + "B": 5456246, + "F": 17689, + "a": 134, + "b": 151, + "gain": 11 + }, + { + "B": 5456246, + "F": 17689, + "a": 208, + "b": 35, + "gain": 11 + }, + { + "B": 5456246, + "F": 18033, + "a": 16, + "b": 26, + "gain": 11 + }, + { + "B": 5456246, + "F": 18093, + "a": 63, + "b": 214, + "gain": 11 + }, + { + "B": 5473080, + "F": 18093, + "a": 52, + "b": 1, + "gain": 11 + }, + { + "B": 5473080, + "F": 18397, + "a": 390, + "b": 403, + "gain": 11 + }, + { + "B": 5473080, + "F": 18429, + "a": 209, + "b": 34, + "gain": 10 + }, + { + "B": 5473080, + "F": 18461, + "a": 209, + "b": 51, + "gain": 10 + }, + { + "B": 5474830, + "F": 18461, + "a": 266, + "b": 118, + "gain": 10 + }, + { + "B": 5474830, + "F": 18461, + "a": 12, + "b": 30, + "gain": 10 + }, + { + "B": 5474830, + "F": 18461, + "a": 377, + "b": 437, + "gain": 10 + }, + { + "B": 5477884, + "F": 18521, + "a": 182, + "b": 73, + "gain": 10 + }, + { + "B": 5482542, + "F": 18521, + "a": 199, + "b": 50, + "gain": 10 + }, + { + "B": 5482542, + "F": 18521, + "a": 346, + "b": 309, + "gain": 10 + }, + { + "B": 5486652, + "F": 18521, + "a": 236, + "b": 5, + "gain": 10 + }, + { + "B": 5491586, + "F": 18521, + "a": 203, + "b": 36, + "gain": 10 + }, + { + "B": 5491586, + "F": 18521, + "a": 371, + "b": 409, + "gain": 10 + }, + { + "B": 5491586, + "F": 18521, + "a": 195, + "b": 201, + "gain": 9 + }, + { + "B": 5491586, + "F": 18521, + "a": 125, + "b": 146, + "gain": 9 + }, + { + "B": 5500974, + "F": 18521, + "a": 364, + "b": 327, + "gain": 9 + }, + { + "B": 5500974, + "F": 18597, + "a": 42, + "b": 314, + "gain": 9 + }, + { + "B": 5500974, + "F": 18597, + "a": 46, + "b": 205, + "gain": 9 + }, + { + "B": 5519322, + "F": 18597, + "a": 139, + "b": 99, + "gain": 9 + }, + { + "B": 5519322, + "F": 18597, + "a": 429, + "b": 381, + "gain": 9 + }, + { + "B": 5520340, + "F": 18597, + "a": 195, + "b": 211, + "gain": 9 + }, + { + "B": 5520340, + "F": 18597, + "a": 122, + "b": 103, + "gain": 9 + }, + { + "B": 5525558, + "F": 18597, + "a": 94, + "b": 171, + "gain": 9 + }, + { + "B": 5525558, + "F": 18597, + "a": 46, + "b": 56, + "gain": 9 + }, + { + "B": 5529412, + "F": 18597, + "a": 54, + "b": 217, + "gain": 9 + }, + { + "B": 5529412, + "F": 18761, + "a": 110, + "b": 120, + "gain": 8 + }, + { + "B": 5529412, + "F": 18761, + "a": 232, + "b": 23, + "gain": 8 + }, + { + "B": 5529412, + "F": 18761, + "a": 154, + "b": 105, + "gain": 8 + }, + { + "B": 5529412, + "F": 18761, + "a": 392, + "b": 416, + "gain": 8 + }, + { + "B": 5532054, + "F": 18761, + "a": 167, + "b": 82, + "gain": 8 + }, + { + "B": 5533560, + "F": 18761, + "a": 83, + "b": 78, + "gain": 8 + }, + { + "B": 5533560, + "F": 18761, + "a": 315, + "b": 351, + "gain": 8 + }, + { + "B": 5533560, + "F": 18761, + "a": 64, + "b": 87, + "gain": 8 + }, + { + "B": 5533560, + "F": 18761, + "a": 260, + "b": 281, + "gain": 8 + }, + { + "B": 5533560, + "F": 18761, + "a": 187, + "b": 69, + "gain": 8 + }, + { + "B": 5533560, + "F": 18761, + "a": 91, + "b": 70, + "gain": 8 + }, + { + "B": 5533560, + "F": 18761, + "a": 336, + "b": 295, + "gain": 8 + }, + { + "B": 5533560, + "F": 18929, + "a": 25, + "b": 21, + "gain": 8 + }, + { + "B": 5533560, + "F": 18957, + "a": 170, + "b": 85, + "gain": 8 + }, + { + "B": 5542074, + "F": 18957, + "a": 80, + "b": 74, + "gain": 8 + }, + { + "B": 5542074, + "F": 18957, + "a": 83, + "b": 172, + "gain": 8 + }, + { + "B": 5553886, + "F": 18957, + "a": 203, + "b": 18, + "gain": 8 + }, + { + "B": 5553886, + "F": 18957, + "a": 227, + "b": 28, + "gain": 8 + }, + { + "B": 5553886, + "F": 19377, + "a": 112, + "b": 124, + "gain": 8 + }, + { + "B": 5553886, + "F": 19437, + "a": 40, + "b": 193, + "gain": 8 + }, + { + "B": 5553886, + "F": 19437, + "a": 337, + "b": 306, + "gain": 7 + }, + { + "B": 5553886, + "F": 19437, + "a": 44, + "b": 197, + "gain": 7 + }, + { + "B": 5553886, + "F": 19437, + "a": 369, + "b": 415, + "gain": 7 + }, + { + "B": 5553886, + "F": 19465, + "a": 375, + "b": 435, + "gain": 7 + }, + { + "B": 5553886, + "F": 19465, + "a": 270, + "b": 119, + "gain": 7 + }, + { + "B": 5553886, + "F": 19465, + "a": 404, + "b": 389, + "gain": 7 + }, + { + "B": 5553886, + "F": 19465, + "a": 258, + "b": 316, + "gain": 7 + }, + { + "B": 5553886, + "F": 19465, + "a": 395, + "b": 419, + "gain": 7 + }, + { + "B": 5576322, + "F": 19561, + "a": 14, + "b": 235, + "gain": 7 + }, + { + "B": 5580900, + "F": 19561, + "a": 102, + "b": 132, + "gain": 7 + }, + { + "B": 5580900, + "F": 19741, + "a": 92, + "b": 180, + "gain": 7 + }, + { + "B": 5580900, + "F": 19741, + "a": 391, + "b": 420, + "gain": 7 + }, + { + "B": 5580900, + "F": 19817, + "a": 196, + "b": 61, + "gain": 7 + }, + { + "B": 5589350, + "F": 19817, + "a": 27, + "b": 17, + "gain": 7 + }, + { + "B": 5590384, + "F": 19817, + "a": 58, + "b": 100, + "gain": 7 + }, + { + "B": 5590384, + "F": 19817, + "a": 177, + "b": 66, + "gain": 7 + }, + { + "B": 5590384, + "F": 19817, + "a": 258, + "b": 245, + "gain": 7 + }, + { + "B": 5594458, + "F": 19877, + "a": 182, + "b": 186, + "gain": 6 + }, + { + "B": 5594458, + "F": 19877, + "a": 64, + "b": 164, + "gain": 6 + }, + { + "B": 5608086, + "F": 19877, + "a": 216, + "b": 45, + "gain": 6 + }, + { + "B": 5608086, + "F": 20117, + "a": 426, + "b": 367, + "gain": 6 + }, + { + "B": 5617108, + "F": 20461, + "a": 421, + "b": 372, + "gain": 6 + }, + { + "B": 5621394, + "F": 20489, + "a": 417, + "b": 393, + "gain": 6 + }, + { + "B": 5621394, + "F": 20585, + "a": 223, + "b": 49, + "gain": 6 + }, + { + "B": 5624688, + "F": 20613, + "a": 170, + "b": 161, + "gain": 6 + }, + { + "B": 5624688, + "F": 20613, + "a": 432, + "b": 379, + "gain": 6 + }, + { + "B": 5624688, + "F": 20781, + "a": 79, + "b": 166, + "gain": 6 + }, + { + "B": 5624688, + "F": 20857, + "a": 67, + "b": 176, + "gain": 6 + }, + { + "B": 5624688, + "F": 21037, + "a": 22, + "b": 233, + "gain": 6 + }, + { + "B": 5624688, + "F": 21165, + "a": 408, + "b": 385, + "gain": 6 + }, + { + "B": 5624688, + "F": 21165, + "a": 80, + "b": 179, + "gain": 6 + }, + { + "B": 5624688, + "F": 21165, + "a": 53, + "b": 219, + "gain": 6 + }, + { + "B": 5624688, + "F": 21225, + "a": 178, + "b": 75, + "gain": 6 + }, + { + "B": 5624688, + "F": 21225, + "a": 199, + "b": 24, + "gain": 6 + }, + { + "B": 5634074, + "F": 21225, + "a": 72, + "b": 20, + "gain": 6 + }, + { + "B": 5634074, + "F": 21225, + "a": 331, + "b": 430, + "gain": 6 + }, + { + "B": 5634074, + "F": 21225, + "a": 371, + "b": 402, + "gain": 6 + }, + { + "B": 5638176, + "F": 21225, + "a": 236, + "b": 106, + "gain": 6 + }, + { + "B": 5638176, + "F": 21225, + "a": 345, + "b": 310, + "gain": 6 + }, + { + "B": 5644836, + "F": 21225, + "a": 131, + "b": 147, + "gain": 6 + }, + { + "B": 5644836, + "F": 21393, + "a": 173, + "b": 89, + "gain": 6 + }, + { + "B": 5644836, + "F": 21393, + "a": 230, + "b": 2, + "gain": 6 + }, + { + "B": 5644836, + "F": 21561, + "a": 282, + "b": 0, + "gain": 6 + }, + { + "B": 5644836, + "F": 21561, + "a": 434, + "b": 349, + "gain": 6 + }, + { + "B": 5644836, + "F": 21561, + "a": 330, + "b": 361, + "gain": 6 + }, + { + "B": 5644836, + "F": 21561, + "a": 88, + "b": 188, + "gain": 6 + }, + { + "B": 5644836, + "F": 21561, + "a": 305, + "b": 433, + "gain": 5 + }, + { + "B": 5644836, + "F": 21561, + "a": 369, + "b": 298, + "gain": 5 + }, + { + "B": 5644836, + "F": 21561, + "a": 208, + "b": 198, + "gain": 5 + }, + { + "B": 5644836, + "F": 21561, + "a": 174, + "b": 77, + "gain": 5 + }, + { + "B": 5644836, + "F": 21561, + "a": 104, + "b": 308, + "gain": 5 + }, + { + "B": 5644836, + "F": 21733, + "a": 322, + "b": 90, + "gain": 5 + }, + { + "B": 5644836, + "F": 21793, + "a": 376, + "b": 436, + "gain": 5 + }, + { + "B": 5644836, + "F": 21793, + "a": 140, + "b": 111, + "gain": 5 + }, + { + "B": 5644836, + "F": 22021, + "a": 204, + "b": 220, + "gain": 5 + }, + { + "B": 5644836, + "F": 22021, + "a": 231, + "b": 3, + "gain": 5 + }, + { + "B": 5644836, + "F": 22097, + "a": 42, + "b": 210, + "gain": 5 + }, + { + "B": 5656414, + "F": 22097, + "a": 94, + "b": 183, + "gain": 5 + }, + { + "B": 5656414, + "F": 22097, + "a": 226, + "b": 238, + "gain": 5 + }, + { + "B": 5659388, + "F": 22097, + "a": 57, + "b": 47, + "gain": 5 + }, + { + "B": 5659388, + "F": 22097, + "a": 407, + "b": 386, + "gain": 5 + }, + { + "B": 5659388, + "F": 22097, + "a": 391, + "b": 297, + "gain": 5 + }, + { + "B": 5659388, + "F": 22097, + "a": 305, + "b": 405, + "gain": 5 + }, + { + "B": 5659388, + "F": 22173, + "a": 410, + "b": 398, + "gain": 5 + }, + { + "B": 5667186, + "F": 22625, + "a": 225, + "b": 4, + "gain": 5 + }, + { + "B": 5667186, + "F": 22625, + "a": 293, + "b": 347, + "gain": 5 + }, + { + "B": 5667186, + "F": 22625, + "a": 370, + "b": 423, + "gain": 5 + }, + { + "B": 5671910, + "F": 22625, + "a": 33, + "b": 206, + "gain": 5 + }, + { + "B": 5671910, + "F": 22625, + "a": 283, + "b": 224, + "gain": 5 + }, + { + "B": 5671910, + "F": 22625, + "a": 384, + "b": 427, + "gain": 4 + }, + { + "B": 5673752, + "F": 22625, + "a": 397, + "b": 414, + "gain": 4 + }, + { + "B": 5678470, + "F": 22625, + "a": 48, + "b": 107, + "gain": 4 + }, + { + "B": 5678470, + "F": 22625, + "a": 260, + "b": 318, + "gain": 4 + }, + { + "B": 5678470, + "F": 22853, + "a": 350, + "b": 143, + "gain": 4 + }, + { + "B": 5691544, + "F": 22853, + "a": 276, + "b": 115, + "gain": 4 + }, + { + "B": 5691544, + "F": 22853, + "a": 320, + "b": 162, + "gain": 4 + }, + { + "B": 5695058, + "F": 22853, + "a": 141, + "b": 156, + "gain": 4 + }, + { + "B": 5695058, + "F": 22853, + "a": 292, + "b": 145, + "gain": 4 + }, + { + "B": 5695058, + "F": 22853, + "a": 257, + "b": 247, + "gain": 4 + }, + { + "B": 5695058, + "F": 22853, + "a": 252, + "b": 287, + "gain": 4 + }, + { + "B": 5710166, + "F": 22853, + "a": 273, + "b": 256, + "gain": 4 + }, + { + "B": 5710166, + "F": 22853, + "a": 377, + "b": 313, + "gain": 4 + }, + { + "B": 5710166, + "F": 23021, + "a": 401, + "b": 413, + "gain": 4 + }, + { + "B": 5710166, + "F": 23149, + "a": 408, + "b": 317, + "gain": 4 + }, + { + "B": 5710166, + "F": 23149, + "a": 228, + "b": 29, + "gain": 4 + }, + { + "B": 5714680, + "F": 23149, + "a": 91, + "b": 81, + "gain": 4 + }, + { + "B": 5714680, + "F": 23329, + "a": 190, + "b": 71, + "gain": 4 + }, + { + "B": 5714680, + "F": 23497, + "a": 401, + "b": 307, + "gain": 4 + }, + { + "B": 5722422, + "F": 23497, + "a": 400, + "b": 181, + "gain": 4 + }, + { + "B": 5728386, + "F": 23497, + "a": 240, + "b": 251, + "gain": 4 + }, + { + "B": 5728386, + "F": 23497, + "a": 400, + "b": 412, + "gain": 4 + }, + { + "B": 5750100, + "F": 23497, + "a": 154, + "b": 128, + "gain": 4 + }, + { + "B": 5762378, + "F": 23557, + "a": 40, + "b": 218, + "gain": 4 + }, + { + "B": 5763408, + "F": 23557, + "a": 60, + "b": 213, + "gain": 4 + }, + { + "B": 5763408, + "F": 23617, + "a": 304, + "b": 321, + "gain": 3 + }, + { + "B": 5763408, + "F": 23617, + "a": 226, + "b": 271, + "gain": 3 + }, + { + "B": 5763408, + "F": 23865, + "a": 116, + "b": 157, + "gain": 3 + }, + { + "B": 5763408, + "F": 23865, + "a": 288, + "b": 153, + "gain": 3 + }, + { + "B": 5763408, + "F": 23865, + "a": 140, + "b": 121, + "gain": 3 + }, + { + "B": 5763408, + "F": 23897, + "a": 335, + "b": 200, + "gain": 3 + }, + { + "B": 5764122, + "F": 23897, + "a": 108, + "b": 148, + "gain": 3 + }, + { + "B": 5768644, + "F": 23897, + "a": 429, + "b": 329, + "gain": 3 + }, + { + "B": 5768644, + "F": 23897, + "a": 365, + "b": 326, + "gain": 3 + }, + { + "B": 5768644, + "F": 23897, + "a": 338, + "b": 302, + "gain": 3 + }, + { + "B": 5768644, + "F": 23973, + "a": 212, + "b": 207, + "gain": 3 + }, + { + "B": 5775298, + "F": 23973, + "a": 290, + "b": 76, + "gain": 3 + }, + { + "B": 5775298, + "F": 23973, + "a": 355, + "b": 324, + "gain": 3 + }, + { + "B": 5781372, + "F": 23973, + "a": 231, + "b": 8, + "gain": 3 + }, + { + "B": 5782608, + "F": 23973, + "a": 108, + "b": 130, + "gain": 3 + }, + { + "B": 5782608, + "F": 23973, + "a": 84, + "b": 95, + "gain": 3 + }, + { + "B": 5782608, + "F": 23973, + "a": 270, + "b": 265, + "gain": 3 + }, + { + "B": 5788892, + "F": 24033, + "a": 178, + "b": 168, + "gain": 2 + }, + { + "B": 5788892, + "F": 24033, + "a": 222, + "b": 253, + "gain": 2 + }, + { + "B": 5788892, + "F": 24261, + "a": 350, + "b": 396, + "gain": 2 + }, + { + "B": 5788892, + "F": 24357, + "a": 223, + "b": 275, + "gain": 2 + }, + { + "B": 5788892, + "F": 24357, + "a": 53, + "b": 215, + "gain": 2 + }, + { + "B": 5788892, + "F": 24357, + "a": 392, + "b": 135, + "gain": 2 + }, + { + "B": 5804854, + "F": 24533, + "a": 277, + "b": 262, + "gain": 2 + }, + { + "B": 5812148, + "F": 24533, + "a": 333, + "b": 334, + "gain": 2 + }, + { + "B": 5812148, + "F": 24533, + "a": 252, + "b": 243, + "gain": 2 + }, + { + "B": 5817288, + "F": 24533, + "a": 411, + "b": 399, + "gain": 2 + }, + { + "B": 5817288, + "F": 24533, + "a": 222, + "b": 248, + "gain": 2 + }, + { + "B": 5817288, + "F": 24533, + "a": 280, + "b": 261, + "gain": 2 + }, + { + "B": 5817288, + "F": 24533, + "a": 331, + "b": 300, + "gain": 2 + }, + { + "B": 5817288, + "F": 24533, + "a": 368, + "b": 221, + "gain": 2 + }, + { + "B": 5817288, + "F": 24533, + "a": 175, + "b": 185, + "gain": 2 + }, + { + "B": 5831376, + "F": 24533, + "a": 101, + "b": 127, + "gain": 2 + }, + { + "B": 5831376, + "F": 24533, + "a": 432, + "b": 359, + "gain": 2 + }, + { + "B": 5834166, + "F": 24593, + "a": 418, + "b": 394, + "gain": 2 + }, + { + "B": 5834166, + "F": 24593, + "a": 175, + "b": 86, + "gain": 2 + }, + { + "B": 5834166, + "F": 24593, + "a": 257, + "b": 249, + "gain": 2 + }, + { + "B": 5834166, + "F": 24593, + "a": 12, + "b": 19, + "gain": 2 + }, + { + "B": 5834166, + "F": 24593, + "a": 368, + "b": 425, + "gain": 2 + }, + { + "B": 5834166, + "F": 24669, + "a": 410, + "b": 343, + "gain": 1 + }, + { + "B": 5834166, + "F": 24669, + "a": 406, + "b": 438, + "gain": 1 + }, + { + "B": 5834166, + "F": 24669, + "a": 338, + "b": 159, + "gain": 1 + }, + { + "B": 5834166, + "F": 24745, + "a": 428, + "b": 150, + "gain": 1 + }, + { + "B": 5834166, + "F": 24745, + "a": 283, + "b": 138, + "gain": 1 + }, + { + "B": 5848104, + "F": 24917, + "a": 303, + "b": 65, + "gain": 1 + }, + { + "B": 5848104, + "F": 24917, + "a": 263, + "b": 264, + "gain": 1 + }, + { + "B": 5856180, + "F": 24917, + "a": 43, + "b": 59, + "gain": 1 + }, + { + "B": 5856180, + "F": 24917, + "a": 356, + "b": 163, + "gain": 1 + }, + { + "B": 5856180, + "F": 25087, + "a": 259, + "b": 10, + "gain": 1 + }, + { + "B": 5859830, + "F": 25087, + "a": 406, + "b": 387, + "gain": 1 + }, + { + "B": 5859830, + "F": 25087, + "a": 366, + "b": 325, + "gain": 1 + }, + { + "B": 5874666, + "F": 25259, + "a": 322, + "b": 339, + "gain": 1 + }, + { + "B": 5874980, + "F": 25259, + "a": 33, + "b": 242, + "gain": 1 + }, + { + "B": 5883706, + "F": 25259, + "a": 378, + "b": 341, + "gain": 1 + }, + { + "B": 5887380, + "F": 25259, + "a": 319, + "b": 360, + "gain": 1 + }, + { + "B": 5887380, + "F": 25429, + "a": 259, + "b": 250, + "gain": 1 + }, + { + "B": 5887380, + "F": 25429, + "a": 104, + "b": 117, + "gain": 1 + }, + { + "B": 5887380, + "F": 25429, + "a": 312, + "b": 348, + "gain": 1 + }, + { + "B": 5887380, + "F": 25429, + "a": 267, + "b": 6, + "gain": 1 + }, + { + "B": 5887380, + "F": 25429, + "a": 370, + "b": 424, + "gain": 1 + }, + { + "B": 5911840, + "F": 25429, + "a": 290, + "b": 272, + "gain": 1 + }, + { + "B": 5911840, + "F": 25461, + "a": 335, + "b": 299, + "gain": 1 + }, + { + "B": 5911840, + "F": 25537, + "a": 428, + "b": 380, + "gain": 1 + }, + { + "B": 5911840, + "F": 25537, + "a": 293, + "b": 13, + "gain": 1 + }, + { + "B": 5911840, + "F": 25717, + "a": 92, + "b": 184, + "gain": 1 + } + ], + "stopping_rule": "one complete gain-ordered pass; no retargeting, restart, or neutral move", + "target_shears": 306, + "two_leaf_stars": 74 +} diff --git a/research/r439-bsection-stars-seed01/composition.json.gz b/research/r439-bsection-stars-seed01/composition.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..d95fc2bf795fd9ef8d8bae9d70693c5e64948cec GIT binary patch literal 38362 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 literal 0 HcmV?d00001 diff --git a/research/r439-bsection-stars-seed01/inputs/PR1015-CANDIDATE.json b/research/r439-bsection-stars-seed01/inputs/PR1015-CANDIDATE.json new file mode 100644 index 0000000000..16532f2d8d --- /dev/null +++ b/research/r439-bsection-stars-seed01/inputs/PR1015-CANDIDATE.json @@ -0,0 +1,3205 @@ +{ + "schema": "r439-bsection-multwrite/1", + "base_commit": "007664306fff84fbb1c9a1b4053b69f439764034", + "source": "research/e8-bit-p111-tuned/tune/bitE8mut-p111-tuned.json.gz", + "search": { + "track": "bit supplier (00-19)", + "assignment_seed": 16, + "class": "all programs of single-source additive gates dest += src on the block's own registers realizing the exact integer transfer matrix; equivalently all legal nonnegative row/column subtraction paths to the identity", + "method": "6000 min-excess greedy reductions with random tie-breaks, 4000 uniform random legal trajectories (cap 90), then a width-6000 beam below the incumbent", + "seed_rule": "random.Random(20261013 + frame) per block (CPython Mersenne Twister)", + "stopping_rule": "all trajectories and the beam phase complete for every block; no adaptive stopping", + "coverage": "all ten phase-B blocks of the pinned tuned word", + "minimality_claimed": false + }, + "blocks": [ + { + "frame": 506, + "slice": [ + 102, + 128 + ], + "registers": [ + 5, + 6, + 9, + 46, + 47, + 48, + 52, + 54, + 56, + 58 + ], + "original_gates": 26, + "new_gates": 21, + "gates": [ + [ + 506, + 52, + [ + 58 + ] + ], + [ + 506, + 52, + [ + 54 + ] + ], + [ + 506, + 47, + [ + 48 + ] + ], + [ + 506, + 58, + [ + 48 + ] + ], + [ + 506, + 48, + [ + 5 + ] + ], + [ + 506, + 47, + [ + 46 + ] + ], + [ + 506, + 5, + [ + 9 + ] + ], + [ + 506, + 52, + [ + 56 + ] + ], + [ + 506, + 52, + [ + 6 + ] + ], + [ + 506, + 9, + [ + 6 + ] + ], + [ + 506, + 46, + [ + 56 + ] + ], + [ + 506, + 52, + [ + 5 + ] + ], + [ + 506, + 52, + [ + 47 + ] + ], + [ + 506, + 56, + [ + 52 + ] + ], + [ + 506, + 5, + [ + 52 + ] + ], + [ + 506, + 54, + [ + 52 + ] + ], + [ + 506, + 58, + [ + 52 + ] + ], + [ + 506, + 47, + [ + 52 + ] + ], + [ + 506, + 9, + [ + 52 + ] + ], + [ + 506, + 46, + [ + 54 + ] + ], + [ + 506, + 48, + [ + 9 + ] + ] + ], + "all_registers_touched": true, + "histogram": [ + [ + 21, + 6000 + ], + [ + 26, + 4 + ], + [ + 27, + 6 + ], + [ + 28, + 11 + ], + [ + 29, + 14 + ], + [ + 30, + 31 + ], + [ + 31, + 50 + ], + [ + 32, + 68 + ], + [ + 33, + 87 + ], + [ + 34, + 110 + ], + [ + 35, + 126 + ], + [ + 36, + 174 + ], + [ + 37, + 177 + ], + [ + 38, + 212 + ], + [ + 39, + 224 + ], + [ + 40, + 229 + ], + [ + 41, + 206 + ], + [ + 42, + 219 + ], + [ + 43, + 162 + ], + [ + 44, + 131 + ], + [ + 45, + 108 + ], + [ + 46, + 70 + ], + [ + 47, + 39 + ], + [ + 48, + 32 + ], + [ + 49, + 23 + ], + [ + 50, + 10 + ], + [ + 51, + 4 + ], + [ + 52, + 4 + ], + [ + 53, + 3 + ] + ], + "dead_ends": 1466, + "beam_states": 1129511 + }, + { + "frame": 507, + "slice": [ + 128, + 163 + ], + "registers": [ + 0, + 3, + 11, + 61, + 62, + 63, + 68, + 69, + 72, + 465 + ], + "original_gates": 35, + "new_gates": 24, + "gates": [ + [ + 507, + 3, + [ + 62 + ] + ], + [ + 507, + 465, + [ + 69 + ] + ], + [ + 507, + 69, + [ + 62 + ] + ], + [ + 507, + 68, + [ + 11 + ] + ], + [ + 507, + 68, + [ + 63 + ] + ], + [ + 507, + 63, + [ + 0 + ] + ], + [ + 507, + 69, + [ + 11 + ] + ], + [ + 507, + 61, + [ + 72 + ] + ], + [ + 507, + 61, + [ + 0 + ] + ], + [ + 507, + 62, + [ + 3 + ] + ], + [ + 507, + 11, + [ + 3 + ] + ], + [ + 507, + 465, + [ + 63 + ] + ], + [ + 507, + 63, + [ + 72 + ] + ], + [ + 507, + 68, + [ + 61 + ] + ], + [ + 507, + 62, + [ + 69 + ] + ], + [ + 507, + 61, + [ + 62 + ] + ], + [ + 507, + 63, + [ + 62 + ] + ], + [ + 507, + 3, + [ + 68 + ] + ], + [ + 507, + 62, + [ + 68 + ] + ], + [ + 507, + 69, + [ + 68 + ] + ], + [ + 507, + 465, + [ + 3 + ] + ], + [ + 507, + 72, + [ + 3 + ] + ], + [ + 507, + 11, + [ + 69 + ] + ], + [ + 507, + 0, + [ + 69 + ] + ] + ], + "all_registers_touched": true, + "histogram": [ + [ + 24, + 1 + ], + [ + 26, + 3081 + ], + [ + 27, + 2329 + ], + [ + 28, + 468 + ], + [ + 29, + 137 + ], + [ + 30, + 17 + ], + [ + 31, + 33 + ], + [ + 32, + 59 + ], + [ + 33, + 89 + ], + [ + 34, + 149 + ], + [ + 35, + 141 + ], + [ + 36, + 169 + ], + [ + 37, + 121 + ], + [ + 38, + 112 + ], + [ + 39, + 99 + ], + [ + 40, + 61 + ], + [ + 41, + 41 + ], + [ + 42, + 29 + ], + [ + 43, + 21 + ], + [ + 44, + 5 + ], + [ + 45, + 3 + ], + [ + 46, + 1 + ], + [ + 47, + 2 + ] + ], + "dead_ends": 2833, + "beam_states": 1135275 + }, + { + "frame": 519, + "slice": [ + 163, + 205 + ], + "registers": [ + 15, + 23, + 30, + 41, + 49, + 53, + 59, + 70, + 75, + 82, + 91, + 96 + ], + "original_gates": 42, + "new_gates": 27, + "gates": [ + [ + 519, + 49, + [ + 75 + ] + ], + [ + 519, + 49, + [ + 41 + ] + ], + [ + 519, + 30, + [ + 49 + ] + ], + [ + 519, + 59, + [ + 53 + ] + ], + [ + 519, + 53, + [ + 41 + ] + ], + [ + 519, + 41, + [ + 82 + ] + ], + [ + 519, + 53, + [ + 75 + ] + ], + [ + 519, + 59, + [ + 30 + ] + ], + [ + 519, + 15, + [ + 91 + ] + ], + [ + 519, + 30, + [ + 75 + ] + ], + [ + 519, + 96, + [ + 23 + ] + ], + [ + 519, + 82, + [ + 70 + ] + ], + [ + 519, + 59, + [ + 82 + ] + ], + [ + 519, + 75, + [ + 82 + ] + ], + [ + 519, + 82, + [ + 96 + ] + ], + [ + 519, + 82, + [ + 15 + ] + ], + [ + 519, + 30, + [ + 82 + ] + ], + [ + 519, + 82, + [ + 53 + ] + ], + [ + 519, + 96, + [ + 59 + ] + ], + [ + 519, + 91, + [ + 59 + ] + ], + [ + 519, + 15, + [ + 96 + ] + ], + [ + 519, + 70, + [ + 15 + ] + ], + [ + 519, + 49, + [ + 15 + ] + ], + [ + 519, + 23, + [ + 15 + ] + ], + [ + 519, + 41, + [ + 15 + ] + ], + [ + 519, + 75, + [ + 70 + ] + ], + [ + 519, + 53, + [ + 49 + ] + ] + ], + "all_registers_touched": true, + "histogram": [ + [ + 27, + 99 + ], + [ + 28, + 416 + ], + [ + 29, + 632 + ], + [ + 30, + 847 + ], + [ + 31, + 971 + ], + [ + 39, + 1 + ], + [ + 40, + 5 + ], + [ + 41, + 11 + ], + [ + 42, + 15 + ], + [ + 43, + 13 + ], + [ + 44, + 20 + ], + [ + 45, + 26 + ], + [ + 46, + 28 + ], + [ + 47, + 30 + ], + [ + 48, + 28 + ], + [ + 49, + 18 + ], + [ + 50, + 9 + ], + [ + 51, + 14 + ], + [ + 52, + 12 + ], + [ + 53, + 5 + ], + [ + 54, + 1 + ], + [ + 55, + 1 + ] + ], + "dead_ends": 6798, + "beam_states": 2400139 + }, + { + "frame": 508, + "slice": [ + 205, + 242 + ], + "registers": [ + 19, + 27, + 35, + 43, + 57, + 65, + 66, + 74, + 89, + 97, + 466 + ], + "original_gates": 37, + "new_gates": 21, + "gates": [ + [ + 508, + 43, + [ + 97 + ] + ], + [ + 508, + 74, + [ + 19 + ] + ], + [ + 508, + 35, + [ + 74 + ] + ], + [ + 508, + 35, + [ + 43 + ] + ], + [ + 508, + 66, + [ + 57 + ] + ], + [ + 508, + 89, + [ + 35 + ] + ], + [ + 508, + 89, + [ + 27 + ] + ], + [ + 508, + 66, + [ + 35 + ] + ], + [ + 508, + 43, + [ + 66 + ] + ], + [ + 508, + 66, + [ + 65 + ] + ], + [ + 508, + 65, + [ + 89 + ] + ], + [ + 508, + 27, + [ + 66 + ] + ], + [ + 508, + 97, + [ + 27 + ] + ], + [ + 508, + 43, + [ + 65 + ] + ], + [ + 508, + 35, + [ + 97 + ] + ], + [ + 508, + 57, + [ + 89 + ] + ], + [ + 508, + 97, + [ + 19 + ] + ], + [ + 508, + 35, + [ + 89 + ] + ], + [ + 508, + 74, + [ + 43 + ] + ], + [ + 508, + 466, + [ + 43 + ] + ], + [ + 508, + 43, + [ + 19 + ] + ] + ], + "all_registers_touched": true, + "histogram": [ + [ + 21, + 1 + ], + [ + 25, + 824 + ], + [ + 26, + 2735 + ], + [ + 27, + 954 + ], + [ + 33, + 1 + ], + [ + 34, + 6 + ], + [ + 35, + 7 + ], + [ + 36, + 11 + ], + [ + 37, + 21 + ], + [ + 38, + 31 + ], + [ + 39, + 48 + ], + [ + 40, + 60 + ], + [ + 41, + 82 + ], + [ + 42, + 102 + ], + [ + 43, + 126 + ], + [ + 44, + 135 + ], + [ + 45, + 117 + ], + [ + 46, + 129 + ], + [ + 47, + 133 + ], + [ + 48, + 126 + ], + [ + 49, + 122 + ], + [ + 50, + 91 + ], + [ + 51, + 65 + ], + [ + 52, + 52 + ], + [ + 53, + 49 + ], + [ + 54, + 26 + ], + [ + 55, + 26 + ], + [ + 56, + 13 + ], + [ + 57, + 15 + ], + [ + 58, + 5 + ], + [ + 59, + 3 + ], + [ + 60, + 2 + ], + [ + 61, + 2 + ], + [ + 62, + 2 + ] + ], + "dead_ends": 3879, + "beam_states": 1776921 + }, + { + "frame": 520, + "slice": [ + 242, + 283 + ], + "registers": [ + 21, + 26, + 36, + 44, + 51, + 55, + 64, + 71, + 80, + 84, + 94, + 102 + ], + "original_gates": 41, + "new_gates": 37, + "gates": [ + [ + 520, + 102, + [ + 21 + ] + ], + [ + 520, + 94, + [ + 84 + ] + ], + [ + 520, + 51, + [ + 80 + ] + ], + [ + 520, + 55, + [ + 44 + ] + ], + [ + 520, + 84, + [ + 36 + ] + ], + [ + 520, + 84, + [ + 64 + ] + ], + [ + 520, + 44, + [ + 94 + ] + ], + [ + 520, + 64, + [ + 51 + ] + ], + [ + 520, + 44, + [ + 26 + ] + ], + [ + 520, + 55, + [ + 71 + ] + ], + [ + 520, + 94, + [ + 55 + ] + ], + [ + 520, + 44, + [ + 102 + ] + ], + [ + 520, + 55, + [ + 84 + ] + ], + [ + 520, + 55, + [ + 51 + ] + ], + [ + 520, + 94, + [ + 36 + ] + ], + [ + 520, + 84, + [ + 44 + ] + ], + [ + 520, + 51, + [ + 36 + ] + ], + [ + 520, + 94, + [ + 64 + ] + ], + [ + 520, + 64, + [ + 36 + ] + ], + [ + 520, + 64, + [ + 44 + ] + ], + [ + 520, + 84, + [ + 80 + ] + ], + [ + 520, + 36, + [ + 80 + ] + ], + [ + 520, + 80, + [ + 26 + ] + ], + [ + 520, + 80, + [ + 102 + ] + ], + [ + 520, + 102, + [ + 94 + ] + ], + [ + 520, + 94, + [ + 21 + ] + ], + [ + 520, + 21, + [ + 26 + ] + ], + [ + 520, + 26, + [ + 51 + ] + ], + [ + 520, + 51, + [ + 44 + ] + ], + [ + 520, + 44, + [ + 36 + ] + ], + [ + 520, + 26, + [ + 102 + ] + ], + [ + 520, + 84, + [ + 71 + ] + ], + [ + 520, + 44, + [ + 55 + ] + ], + [ + 520, + 80, + [ + 55 + ] + ], + [ + 520, + 21, + [ + 94 + ] + ], + [ + 520, + 36, + [ + 44 + ] + ], + [ + 520, + 71, + [ + 51 + ] + ] + ], + "all_registers_touched": true, + "histogram": [ + [ + 37, + 1 + ], + [ + 40, + 3 + ], + [ + 41, + 4 + ], + [ + 42, + 4 + ], + [ + 43, + 6 + ], + [ + 44, + 11 + ], + [ + 45, + 19 + ], + [ + 46, + 5 + ], + [ + 47, + 6 + ], + [ + 48, + 4 + ], + [ + 49, + 2 + ], + [ + 50, + 1 + ], + [ + 51, + 2 + ] + ], + "dead_ends": 9932, + "beam_states": 2173010 + }, + { + "frame": 509, + "slice": [ + 283, + 314 + ], + "registers": [ + 17, + 22, + 33, + 38, + 50, + 60, + 67, + 77, + 87, + 92, + 468 + ], + "original_gates": 31, + "new_gates": 21, + "gates": [ + [ + 509, + 87, + [ + 77 + ] + ], + [ + 509, + 87, + [ + 38 + ] + ], + [ + 509, + 468, + [ + 33 + ] + ], + [ + 509, + 38, + [ + 33 + ] + ], + [ + 509, + 77, + [ + 33 + ] + ], + [ + 509, + 87, + [ + 22 + ] + ], + [ + 509, + 87, + [ + 50 + ] + ], + [ + 509, + 87, + [ + 92 + ] + ], + [ + 509, + 87, + [ + 60 + ] + ], + [ + 509, + 87, + [ + 67 + ] + ], + [ + 509, + 468, + [ + 38 + ] + ], + [ + 509, + 33, + [ + 87 + ] + ], + [ + 509, + 17, + [ + 33 + ] + ], + [ + 509, + 33, + [ + 22 + ] + ], + [ + 509, + 92, + [ + 33 + ] + ], + [ + 509, + 38, + [ + 17 + ] + ], + [ + 509, + 67, + [ + 17 + ] + ], + [ + 509, + 77, + [ + 17 + ] + ], + [ + 509, + 60, + [ + 17 + ] + ], + [ + 509, + 468, + [ + 92 + ] + ], + [ + 509, + 50, + [ + 67 + ] + ] + ], + "all_registers_touched": true, + "histogram": [ + [ + 21, + 1 + ], + [ + 22, + 1427 + ], + [ + 23, + 4573 + ], + [ + 30, + 2 + ], + [ + 31, + 8 + ], + [ + 32, + 8 + ], + [ + 33, + 9 + ], + [ + 34, + 7 + ], + [ + 35, + 21 + ], + [ + 36, + 26 + ], + [ + 37, + 43 + ], + [ + 38, + 56 + ], + [ + 39, + 69 + ], + [ + 40, + 73 + ], + [ + 41, + 80 + ], + [ + 42, + 106 + ], + [ + 43, + 93 + ], + [ + 44, + 108 + ], + [ + 45, + 119 + ], + [ + 46, + 130 + ], + [ + 47, + 122 + ], + [ + 48, + 126 + ], + [ + 49, + 105 + ], + [ + 50, + 76 + ], + [ + 51, + 70 + ], + [ + 52, + 42 + ], + [ + 53, + 42 + ], + [ + 54, + 28 + ], + [ + 55, + 14 + ], + [ + 56, + 7 + ], + [ + 57, + 6 + ], + [ + 58, + 1 + ], + [ + 59, + 3 + ] + ], + "dead_ends": 2400, + "beam_states": 1423579 + }, + { + "frame": 521, + "slice": [ + 314, + 361 + ], + "registers": [ + 10, + 13, + 32, + 34, + 39, + 42, + 76, + 79, + 83, + 85, + 104, + 107 + ], + "original_gates": 47, + "new_gates": 30, + "gates": [ + [ + 521, + 10, + [ + 107 + ] + ], + [ + 521, + 13, + [ + 85 + ] + ], + [ + 521, + 76, + [ + 42 + ] + ], + [ + 521, + 79, + [ + 104 + ] + ], + [ + 521, + 79, + [ + 76 + ] + ], + [ + 521, + 79, + [ + 13 + ] + ], + [ + 521, + 83, + [ + 32 + ] + ], + [ + 521, + 83, + [ + 34 + ] + ], + [ + 521, + 83, + [ + 10 + ] + ], + [ + 521, + 83, + [ + 79 + ] + ], + [ + 521, + 10, + [ + 39 + ] + ], + [ + 521, + 39, + [ + 83 + ] + ], + [ + 521, + 104, + [ + 34 + ] + ], + [ + 521, + 34, + [ + 39 + ] + ], + [ + 521, + 104, + [ + 107 + ] + ], + [ + 521, + 76, + [ + 107 + ] + ], + [ + 521, + 107, + [ + 13 + ] + ], + [ + 521, + 107, + [ + 79 + ] + ], + [ + 521, + 32, + [ + 42 + ] + ], + [ + 521, + 79, + [ + 10 + ] + ], + [ + 521, + 13, + [ + 34 + ] + ], + [ + 521, + 34, + [ + 42 + ] + ], + [ + 521, + 42, + [ + 83 + ] + ], + [ + 521, + 10, + [ + 83 + ] + ], + [ + 521, + 85, + [ + 79 + ] + ], + [ + 521, + 32, + [ + 34 + ] + ], + [ + 521, + 76, + [ + 10 + ] + ], + [ + 521, + 34, + [ + 104 + ] + ], + [ + 521, + 104, + [ + 10 + ] + ], + [ + 521, + 107, + [ + 34 + ] + ] + ], + "all_registers_touched": true, + "histogram": [ + [ + 30, + 1 + ], + [ + 31, + 337 + ], + [ + 32, + 131 + ], + [ + 42, + 1 + ], + [ + 43, + 7 + ], + [ + 44, + 8 + ], + [ + 45, + 9 + ], + [ + 46, + 12 + ], + [ + 47, + 6 + ], + [ + 48, + 8 + ], + [ + 49, + 13 + ], + [ + 50, + 16 + ], + [ + 51, + 11 + ], + [ + 52, + 12 + ], + [ + 53, + 7 + ], + [ + 54, + 5 + ], + [ + 55, + 3 + ], + [ + 56, + 5 + ], + [ + 57, + 4 + ], + [ + 58, + 3 + ], + [ + 59, + 1 + ], + [ + 60, + 2 + ], + [ + 61, + 1 + ] + ], + "dead_ends": 9398, + "beam_states": 2657812 + }, + { + "frame": 522, + "slice": [ + 361, + 404 + ], + "registers": [ + 1, + 7, + 24, + 25, + 28, + 29, + 98, + 99, + 100, + 101, + 106, + 108 + ], + "original_gates": 43, + "new_gates": 29, + "gates": [ + [ + 522, + 101, + [ + 7 + ] + ], + [ + 522, + 29, + [ + 24 + ] + ], + [ + 522, + 29, + [ + 98 + ] + ], + [ + 522, + 29, + [ + 101 + ] + ], + [ + 522, + 1, + [ + 108 + ] + ], + [ + 522, + 29, + [ + 99 + ] + ], + [ + 522, + 28, + [ + 100 + ] + ], + [ + 522, + 7, + [ + 25 + ] + ], + [ + 522, + 7, + [ + 108 + ] + ], + [ + 522, + 108, + [ + 24 + ] + ], + [ + 522, + 108, + [ + 29 + ] + ], + [ + 522, + 29, + [ + 1 + ] + ], + [ + 522, + 100, + [ + 25 + ] + ], + [ + 522, + 29, + [ + 25 + ] + ], + [ + 522, + 108, + [ + 98 + ] + ], + [ + 522, + 108, + [ + 99 + ] + ], + [ + 522, + 106, + [ + 29 + ] + ], + [ + 522, + 29, + [ + 100 + ] + ], + [ + 522, + 25, + [ + 7 + ] + ], + [ + 522, + 28, + [ + 106 + ] + ], + [ + 522, + 1, + [ + 28 + ] + ], + [ + 522, + 98, + [ + 28 + ] + ], + [ + 522, + 24, + [ + 28 + ] + ], + [ + 522, + 100, + [ + 28 + ] + ], + [ + 522, + 99, + [ + 28 + ] + ], + [ + 522, + 25, + [ + 28 + ] + ], + [ + 522, + 101, + [ + 24 + ] + ], + [ + 522, + 7, + [ + 1 + ] + ], + [ + 522, + 108, + [ + 25 + ] + ] + ], + "all_registers_touched": true, + "histogram": [ + [ + 29, + 1534 + ], + [ + 41, + 2 + ], + [ + 42, + 7 + ], + [ + 43, + 12 + ], + [ + 44, + 15 + ], + [ + 45, + 12 + ], + [ + 46, + 18 + ], + [ + 47, + 27 + ], + [ + 48, + 18 + ], + [ + 49, + 17 + ], + [ + 50, + 27 + ], + [ + 51, + 25 + ], + [ + 52, + 26 + ], + [ + 53, + 25 + ], + [ + 54, + 18 + ], + [ + 55, + 13 + ], + [ + 56, + 7 + ], + [ + 57, + 7 + ], + [ + 58, + 6 + ], + [ + 59, + 5 + ], + [ + 60, + 2 + ], + [ + 62, + 2 + ], + [ + 63, + 1 + ], + [ + 64, + 1 + ], + [ + 66, + 1 + ] + ], + "dead_ends": 8172, + "beam_states": 2586714 + }, + { + "frame": 523, + "slice": [ + 404, + 449 + ], + "registers": [ + 2, + 4, + 14, + 16, + 18, + 20, + 88, + 90, + 93, + 95, + 103, + 109 + ], + "original_gates": 45, + "new_gates": 26, + "gates": [ + [ + 523, + 18, + [ + 88 + ] + ], + [ + 523, + 93, + [ + 16 + ] + ], + [ + 523, + 93, + [ + 18 + ] + ], + [ + 523, + 2, + [ + 4 + ] + ], + [ + 523, + 2, + [ + 93 + ] + ], + [ + 523, + 14, + [ + 90 + ] + ], + [ + 523, + 20, + [ + 95 + ] + ], + [ + 523, + 103, + [ + 109 + ] + ], + [ + 523, + 103, + [ + 2 + ] + ], + [ + 523, + 20, + [ + 14 + ] + ], + [ + 523, + 2, + [ + 20 + ] + ], + [ + 523, + 20, + [ + 103 + ] + ], + [ + 523, + 95, + [ + 18 + ] + ], + [ + 523, + 4, + [ + 2 + ] + ], + [ + 523, + 14, + [ + 18 + ] + ], + [ + 523, + 93, + [ + 103 + ] + ], + [ + 523, + 109, + [ + 18 + ] + ], + [ + 523, + 90, + [ + 103 + ] + ], + [ + 523, + 18, + [ + 20 + ] + ], + [ + 523, + 93, + [ + 2 + ] + ], + [ + 523, + 20, + [ + 88 + ] + ], + [ + 523, + 14, + [ + 18 + ] + ], + [ + 523, + 109, + [ + 18 + ] + ], + [ + 523, + 88, + [ + 18 + ] + ], + [ + 523, + 95, + [ + 18 + ] + ], + [ + 523, + 16, + [ + 20 + ] + ] + ], + "all_registers_touched": true, + "histogram": [ + [ + 26, + 716 + ], + [ + 37, + 1 + ], + [ + 39, + 2 + ], + [ + 40, + 2 + ], + [ + 41, + 13 + ], + [ + 42, + 9 + ], + [ + 43, + 27 + ], + [ + 44, + 24 + ], + [ + 45, + 42 + ], + [ + 46, + 50 + ], + [ + 47, + 56 + ], + [ + 48, + 53 + ], + [ + 49, + 43 + ], + [ + 50, + 44 + ], + [ + 51, + 47 + ], + [ + 52, + 50 + ], + [ + 53, + 41 + ], + [ + 54, + 34 + ], + [ + 55, + 30 + ], + [ + 56, + 26 + ], + [ + 57, + 17 + ], + [ + 58, + 17 + ], + [ + 59, + 7 + ], + [ + 60, + 6 + ], + [ + 61, + 4 + ], + [ + 62, + 4 + ], + [ + 63, + 4 + ], + [ + 64, + 1 + ], + [ + 65, + 1 + ], + [ + 66, + 1 + ], + [ + 67, + 1 + ] + ], + "dead_ends": 8627, + "beam_states": 2884409 + }, + { + "frame": 524, + "slice": [ + 449, + 490 + ], + "registers": [ + 8, + 12, + 31, + 37, + 40, + 45, + 73, + 78, + 81, + 86, + 105, + 110 + ], + "original_gates": 41, + "new_gates": 26, + "gates": [ + [ + 524, + 8, + [ + 86 + ] + ], + [ + 524, + 8, + [ + 105 + ] + ], + [ + 524, + 110, + [ + 12 + ] + ], + [ + 524, + 12, + [ + 73 + ] + ], + [ + 524, + 73, + [ + 86 + ] + ], + [ + 524, + 40, + [ + 73 + ] + ], + [ + 524, + 105, + [ + 37 + ] + ], + [ + 524, + 110, + [ + 8 + ] + ], + [ + 524, + 40, + [ + 45 + ] + ], + [ + 524, + 31, + [ + 78 + ] + ], + [ + 524, + 73, + [ + 8 + ] + ], + [ + 524, + 31, + [ + 81 + ] + ], + [ + 524, + 31, + [ + 37 + ] + ], + [ + 524, + 78, + [ + 31 + ] + ], + [ + 524, + 110, + [ + 31 + ] + ], + [ + 524, + 31, + [ + 40 + ] + ], + [ + 524, + 73, + [ + 31 + ] + ], + [ + 524, + 45, + [ + 110 + ] + ], + [ + 524, + 40, + [ + 110 + ] + ], + [ + 524, + 12, + [ + 110 + ] + ], + [ + 524, + 81, + [ + 40 + ] + ], + [ + 524, + 37, + [ + 40 + ] + ], + [ + 524, + 78, + [ + 40 + ] + ], + [ + 524, + 8, + [ + 40 + ] + ], + [ + 524, + 86, + [ + 40 + ] + ], + [ + 524, + 105, + [ + 78 + ] + ] + ], + "all_registers_touched": true, + "histogram": [ + [ + 26, + 1 + ], + [ + 27, + 267 + ], + [ + 28, + 2260 + ], + [ + 29, + 3473 + ], + [ + 34, + 1 + ], + [ + 35, + 1 + ], + [ + 37, + 1 + ], + [ + 38, + 6 + ], + [ + 39, + 5 + ], + [ + 40, + 16 + ], + [ + 41, + 13 + ], + [ + 42, + 24 + ], + [ + 43, + 30 + ], + [ + 44, + 38 + ], + [ + 45, + 36 + ], + [ + 46, + 45 + ], + [ + 47, + 37 + ], + [ + 48, + 44 + ], + [ + 49, + 37 + ], + [ + 50, + 37 + ], + [ + 51, + 27 + ], + [ + 52, + 31 + ], + [ + 53, + 17 + ], + [ + 54, + 8 + ], + [ + 55, + 7 + ], + [ + 56, + 10 + ], + [ + 57, + 4 + ], + [ + 58, + 2 + ], + [ + 59, + 3 + ], + [ + 60, + 1 + ], + [ + 61, + 3 + ], + [ + 64, + 1 + ] + ], + "dead_ends": 3515, + "beam_states": 2357916 + } + ] +} diff --git a/research/r439-bsection-stars-seed01/pair_control.json.gz b/research/r439-bsection-stars-seed01/pair_control.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..16972bc96de0c81321eb2feef70766c403017016 GIT binary patch literal 38387 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 K+Oc57XaWGF> i) & 1 for i in range(n)] + y = list(x) + for d, s in o: + x[d] ^= x[s] + for d, s in m: + y[d] ^= y[s] + need(x == y, 'F2 block map %d' % frame) + + def transfer(ops): + cols = [] + for c in range(n): + v = [int(i == c) for i in range(n)] + for d, s in ops: + v[d] += v[s] + cols.append(v) + return cols + return dict(frame=frame, registers=n, original_gates=len(old), new_gates=len(gates), + boolean_inputs=1 << n, integer_transfer_equal=transfer(o) == transfer(m), + reverse_transfer_total=[sum(map(sum, transfer(o[::-1]))), sum(map(sum, transfer(m[::-1])))]) + + +# ------------------------------------------------------------------ words + +def stream(w): + out = [('add', d, s) for sec in ('D', 'A') for _, d, ss in w[sec] for s in ss] + tmp = 2 * w['v'] + w['R'] + for j, centre in enumerate(w['ret']): + out.append(('copy', tmp, centre)) + out += [('add', w['v'] + i, tmp) for i, ss in enumerate(w['scatter']) if j in ss] + out.append(('erase', tmp, centre)) + out += [('add', d, s) for sec in ('B', 'C') for _, d, ss in w[sec] for s in ss] + return out + + +def flip(kind): + return {'copy': 'erase', 'erase': 'copy'}.get(kind, kind) + + +def literal_rows(w, reverse=False): + n = 2 * w['v'] + w['R'] + rows = [{i} for i in range(n)] + [set()] + ins = stream(w) + for kind, d, s in (reversed(ins) if reverse else ins): + kind = flip(kind) if reverse else kind + if kind == 'add': + rows[d] ^= rows[s] + elif kind == 'copy': + need(not rows[d], 'copy into a live temporary') + rows[d] = set(rows[s]) + else: + need(rows[d] == rows[s], 'erase of a changed copy') + rows[d] = set() + need(not rows[-1], 'temporary not erased') + return rows[:-1] + + +def literal_bounds(w): + peaks = [] + for reverse in (False, True): + val = [1] * (2 * w['v'] + w['R'] + 1) + peak = 1 + ins = stream(w) + for kind, d, s in (reversed(ins) if reverse else ins): + kind = flip(kind) if reverse else kind + val[d] = val[d] + val[s] if kind == 'add' else (val[s] if kind == 'copy' else 0) + peak = max(peak, val[d]) + peaks.append(peak) + F, B = peaks + return dict(native_ADDs=sum(k == 'add' for k, _, _ in stream(w)), D_adds=sum(len(g[2]) for g in w['D']), + F=F, B=B, local_bits=(64 * F**3 * B**2).bit_length(), nine_stage_bits=((1 << 18) * F**5 * B**4).bit_length()) + + +def guard(bill): + need(bill['local_bits'] <= 104, 'local precision guard') + need(bill['nine_stage_bits'] <= 192, 'nine-stage precision guard') + + +def d_rows(w): + rows = [{i} for i in range(2 * w['v'] + w['R'])] + for f, d, ss in w['D']: + need(f == 0 and w['v'] <= d, 'D shape') + for s in ss: + rows[d] ^= rows[s] + return rows + + +def frame_paths(w): + fs = [frozenset(f) for f in w['frames']] + ps = [[f] for f in w['start']] + for sec in 'DABC': + for f, d, ss in w[sec]: + for r in (d, *ss): + if ps[r][-1] != f: + need(fs[ps[r][-1]] < fs[f], 'illegal frame move') + ps[r].append(f) + for r, f in enumerate(w['final']): + if ps[r][-1] != f: + need(fs[ps[r][-1]] < fs[f], 'illegal final move') + ps[r].append(f) + return ps + + +def exporter(w, out): + out.mkdir(parents=True) + (out / 'word.json.gz').write_bytes(gzip.compress(canonical(w), mtime=0)) + subprocess.run([sys.executable, '-I', '-B', str(ROOT / EXPORTER), str(out / 'word.json.gz'), str(out / 'rec')], + check=True, capture_output=True, text=True) + raw = (out / 'rec/249-records.bin').read_bytes() + need(len(raw) % 24 == 0, 'record alignment') + rec = list(struct.iter_unpack('<6i', raw)) + bounds = [] + for reverse in (False, True): + norm, peak, open_ = [1] * (2 * w['v'] + w['R'] + 1), 1, False + for op, a, b, c, _, _ in (reversed(rec) if reverse else rec): + if op == 0: + continue + if reverse and op in (2, 3): + op = 5 - op + if op == 1: + norm[a] += abs(c) * norm[b] + peak = max(peak, norm[a]) + elif op == 2: + need(not open_, 'nested copy') + norm[b], open_ = norm[a], True + elif op == 3: + need(open_, 'erase without copy') + norm[b], open_ = 0, False + else: + raise ValueError('record opcode') + need(not open_, 'unclosed copy') + bounds.append(peak) + payload = 64 * bounds[0]**3 * bounds[1]**2 + need(payload < 1 << 104, 'exporter payload cap') + return dict(adds=sum(x[0] == 1 for x in rec), copies=sum(x[0] == 2 for x in rec), + erasures=sum(x[0] == 3 for x in rec), forward=bounds[0], reverse=bounds[1], + payload_bits=payload.bit_length(), record_sha256=hashlib.sha256(raw).hexdigest()) + + +def owner(w): + spec = importlib.util.spec_from_file_location('r439_owner', ROOT / CHECKER) + mod = importlib.util.module_from_spec(spec) + spec.loader.exec_module(mod) + dim, labels, flow, hyp, con, _ = mod.check(w) + prof = Counter(dim.fdim[b] - dim.fdim[a] for p in frame_paths(w) for a, b in itertools.pairwise(p)) + prof.update(t['rank'] for t in flow['totals']) + return dict(hypotheses=hyp, conclusions=con, profile={k: prof[k] for k in sorted(prof)}, + copy_ranks=[t['rank'] for t in flow['totals']]) + + +def word_checks(name, w, original, reference_owner, work): + for k in original: + if k not in ('B', 'C', 'D'): + need(w[k] == original[k], '%s field %s changed' % (name, k)) + need(w['C'] == cleanup(w), name + ' literal cleanup') + need(frame_paths(w) == frame_paths(original), name + ' register frame paths') + want = [{i, i - w['v']} if w['v'] <= i < 2 * w['v'] else {i} for i in range(2 * w['v'] + w['R'])] + for reverse in (False, True): + need(literal_rows(w, reverse) == want, '%s complete boundary (%s)' % (name, 'reverse' if reverse else 'forward')) + need(d_rows(w) == d_rows(original), name + ' D dirty boundary') + own = owner(w) + need({k: own[k] for k in ('hypotheses', 'conclusions')} == reference_owner, name + ' owner pattern') + need(own['profile'] == PROFILE and sum(r * c for r, c in own['profile'].items()) == 5129, name + ' paid profile') + bill = literal_bounds(w) + guard(bill) + ex = exporter(w, work / name) + need(ex['adds'] == bill['native_ADDs'] and ex['copies'] == ex['erasures'] == 9, name + ' exporter bill') + return dict(literal=bill, exporter=ex, copy_ranks=own['copy_ranks'], columns=len(want), directions=2) + + +# ------------------------------------------------------------------ controls + +def controls(original, hs, words, progs, work): + out = [] + + def reject(label, fn): + try: + fn() + except ValueError as e: + out.append([label, str(e)[:60]]) + return + raise ValueError('negative control accepted: ' + label) + f0 = 506 + g = copy.deepcopy(progs[f0]['gates']) + regs = sorted({d for _, d, _ in original['B'][BLOCKS[f0][0]:BLOCKS[f0][1]]}) + g[0][2] = [next(r for r in regs if r not in (g[0][1], g[0][2][0]))] + reject('mutated block source', lambda: block_check(original, f0, g)) + reject('dropped block gate', lambda: block_check(original, 507, progs[507]['gates'][:-1])) + bad = copy.deepcopy(words['composition']) + bad['B'][BLOCKS[519][0]][0] = 0 + reject('block gate at frame zero', lambda: frame_paths(bad)) + # The old cleanup inverts the same F2 block maps, so it is exact but not the literal cleanup; + # its extra ADDs are why the inherited literal-cleanup rule, not the endpoint, rejects it. + stale = copy.deepcopy(words['composition']) + stale['C'] = hs['C'] + need(literal_rows(stale) == literal_rows(words['composition']), 'stale-cleanup premise') + need(literal_bounds(stale)['native_ADDs'] > literal_bounds(words['composition'])['native_ADDs'], 'stale-cleanup cost') + reject('stale cleanup', lambda: need(stale['C'] == cleanup(stale), 'literal cleanup rule')) + bad = copy.deepcopy(words['composition']) + bad['C'].pop() + reject('omitted cleanup gate', lambda: need(literal_rows(bad) == literal_rows(words['composition']), 'boundary')) + unspliced = copy.deepcopy(original) + unspliced['D'] = words['candidate']['D'] + reject('new stars without the spliced blocks', lambda: guard(literal_bounds(unspliced))) + bad = copy.deepcopy(words['candidate']) + bad['D'].pop() + reject('omitted star restoration', lambda: need(d_rows(bad) == d_rows(original), 'D boundary')) + reject('guard equality is not strict', lambda: guard(dict(local_bits=105, nine_stage_bits=1))) + return out + + +# ------------------------------------------------------------------ driver + +def run(work, check_expected=True): + manifest = Bd['pins'](ROOT) + built = Bd['build'](ROOT) + for name in ('composition', 'candidate', 'pair_control'): + need(canonical(load(HERE / (name + '.json.gz'))) == canonical(built[name]), 'committed payload ' + name) + for name in ('candidate_search', 'pair_control_search'): + need(load(HERE / (name + '.json')) == built[name], 'committed search receipt ' + name) + original = load(ROOT / WORD) + hs = load(ROOT / 'research/r439-helper-stars-seed19/candidate.json.gz') + progs = Bd['programs'](ROOT) + blocks = [block_check(original, f, progs[f]['gates']) | dict(source=progs[f]['source']) for f in sorted(BLOCKS, key=lambda f: BLOCKS[f][0])] + ref = owner(hs) + reference = {k: ref[k] for k in ('hypotheses', 'conclusions')} + need([k for k, v in reference['hypotheses'].items() if not v] == ['H2_D_frame0_targets_from_helpers'] + and [k for k, v in reference['conclusions'].items() if not v] == ['K_equals_D'], 'helper-star reference pattern') + need(built['composition']['D'] == hs['D'], 'composition keeps the helper-star D') + words = dict(helper_star=hs, composition=built['composition'], candidate=built['candidate'], pair_control=built['pair_control']) + checks = {name: word_checks(name, w, original, reference, work) for name, w in words.items()} + need(checks['helper_star']['literal']['native_ADDs'] == 11783, 'helper-star bill') + stars = runpy.run_path(str(ROOT / 'research/r439-helper-stars-seed19/build.py')) + _, original_search = stars['search'](load(ROOT / 'research/r439-target-compensation/candidate.json.gz'), 2) + need(original_search['native_ADDs'] == 11783, 'original search reproduces 11,783') + cs = built['candidate_search'] + report = dict( + status='PASS_R439_BSECTION_STARS', base_commit=manifest['base_commit'], assignment_seed=1, + blocks=blocks, block_gates=[sum(b['original_gates'] for b in blocks), sum(b['new_gates'] for b in blocks)], + words=checks, + search=dict(original=dict(edges=original_search['helper_edges'], guard_rejections=len(original_search['guard_rejections']), + D_adds=original_search['D_adds'], ADDs=original_search['native_ADDs']), + spliced=dict(edges=cs['helper_edges'], guard_rejections=len(cs['guard_rejections']), + D_adds=cs['D_adds'], ADDs=cs['native_ADDs'], two_leaf_stars=cs['two_leaf_stars']), + pair_control_ADDs=built['pair_control_search']['native_ADDs']), + owner_reference=reference, controls=controls(original, hs, words, progs, work), + payload_sha256={k: digest(built[k]) for k in ('composition', 'candidate', 'pair_control')}, + new_kappa_claim=False) + if check_expected: + need(load(HERE / 'CERTIFICATE.json') == json.loads(json.dumps(report)), 'certificate mismatch') + return report + + +if __name__ == '__main__': + if not __debug__: # the inherited owner checker uses assertions + raise SystemExit(subprocess.call([sys.executable, '-I', '-B', __file__, *sys.argv[1:]])) + ap = argparse.ArgumentParser(description=__doc__) + ap.add_argument('--write-certificate', action='store_true') + a = ap.parse_args() + with tempfile.TemporaryDirectory(prefix='r439-bstars-') as tmp: + rep = run(Path(tmp), check_expected=not a.write_certificate) + if a.write_certificate: + (HERE / 'CERTIFICATE.json').write_text(json.dumps(rep, indent=1) + '\n') + w = rep['words'] + print('PASS_R439_BSECTION_STARS blocks=%d gates=%d->%d ADDs=%d->%d->%d guard_rejections=%d->%d columns=%d controls=%d no_new_kappa' % ( + len(rep['blocks']), *rep['block_gates'], w['helper_star']['literal']['native_ADDs'], + w['composition']['literal']['native_ADDs'], w['candidate']['literal']['native_ADDs'], + rep['search']['original']['guard_rejections'], rep['search']['spliced']['guard_rejections'], + w['candidate']['columns'], len(rep['controls'])))