From bb36fc65ee0b161229169505f4840c436c5ca2b9 Mon Sep 17 00:00:00 2001 From: Clear1nsight <22630354+Clear1nsight@users.noreply.github.com> Date: Wed, 11 Nov 2026 14:22:27 +1100 Subject: [PATCH 1/3] Reuse #7147 selected replay navigation for onboarding This is the exact documentation prerequisite retained by #7156. It points the onboarding check to the selected #7000/#7001 review. Credit to Rohan Arun and the source authors. --- docs/ci-verification.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/ci-verification.md b/docs/ci-verification.md index 63ba3e9aa8..52b62d0481 100644 --- a/docs/ci-verification.md +++ b/docs/ci-verification.md @@ -1,8 +1,25 @@ # CI verification -## Current selected-family replay: #6030 +## Current selected-family replay: #7000 with #7001 The [selected record](../certificates/selected-result.json) binds conditional +κ = 0.00363005817 to the [application review](research/pr-intake-evidence/pr7000-application/PROOF-REVIEW.md), +[validation receipts](research/pr-intake-evidence/pr7000-application/VALIDATION.json), +and [explicit source closure](../certificates/frontier7000-source.json). +`make frontier7000-verify` follows that exact-source selected replay. The review +reuses eleven authenticated preceding executions and records seven fresh serial +application, scalar and complete native-catalogue executions. The earlier +monolithic timeout is retained separately and is not completed coverage. +Consult the receipts for exact commands, source heads and limits. + +The five inherited framework assumptions remain. No complete uniform word, +literal multiplier execution, independent human proof or formal-kernel proof +is asserted. Routine research submissions do not need to rerun this +selected-family replay. The sections below preserve historical checkpoints. + +## Historical selected-family replay: #6030 + +The [historical checkpoint](../certificates/checkpoints/frontier6030.json) binds conditional κ = 0.003125804 to the [proof review](research/pr-intake-evidence/pr6030-audit/PROOF-REVIEW.md), [validation receipts](research/pr-intake-evidence/pr6030-audit/VALIDATION.json), and [explicit source closure](../certificates/frontier6030-source.json). From d2e54af81f9dda6487636b79d4964a2385d89b2b Mon Sep 17 00:00:00 2001 From: Clear1nsight <22630354+Clear1nsight@users.noreply.github.com> Date: Wed, 11 Nov 2026 21:53:51 +1100 Subject: [PATCH 2/3] Replay the historical selected check at its inspected commit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The PR #6292 rejection census and package plan are statements about 2485805. Load its exact sources and planner in a private sparse checkout, keeping all source hashes, 19 expected rejections, nine package selections and the empty-plan control. Subsequent edits to the live Makefile and CI guide no longer invalidate this historical check. The original audit is by unpaidmoon, building on Dennis’s historical replay gate. The pinned repository view follows the precedent of Matarener’s PR #5434. Repair prepared with substantial OpenAI Codex assistance. --- .../historical-selected-replay-gap/README.md | 6 +- .../SOURCES.json | 60 +++++++++--------- .../VERIFY.json | 31 +-------- .../historical-selected-replay-gap/verify.py | 63 ++++++++++++++----- 4 files changed, 82 insertions(+), 78 deletions(-) diff --git a/research/historical-selected-replay-gap/README.md b/research/historical-selected-replay-gap/README.md index 55d8cc3b49..36d9a873ca 100644 --- a/research/historical-selected-replay-gap/README.md +++ b/research/historical-selected-replay-gap/README.md @@ -69,7 +69,11 @@ python3 -B scripts/research_package.py --package research/historical-selected-re The direct command prints `PASS_HISTORICAL_SELECTED_REPLAY_GAP`. A registered replay prints `PASS_REGISTERED_RESEARCH_PACKAGE`. Both require Git history -containing the two inspected commits. +containing the two inspected commits and the source and manifest objects at +`2485805a6d47f36ea83ddde6327d453ac82d44dc`. The verifier uses a temporary +sparse checkout of that commit, checks the declared source digests there, and +uses its planner and manifest inventory. The recorded rejections and selection +therefore remain reproducible after later changes to the live Makefile or CI guide. ## Open next questions diff --git a/research/historical-selected-replay-gap/SOURCES.json b/research/historical-selected-replay-gap/SOURCES.json index c1010eec95..62bb8b3950 100644 --- a/research/historical-selected-replay-gap/SOURCES.json +++ b/research/historical-selected-replay-gap/SOURCES.json @@ -4,13 +4,13 @@ "files": [ { "path": "Makefile", - "usage": "input", + "usage": "provenance", "git_blob": "0d683a06b9e7ee162496108ce9a7c5d2ee94fccf", "sha256": "4f2d4f2dcd15139ec82658a975f85ed300897385f85799218539f4c8d60567da" }, { "path": "certificates/partial-swap-network.json", - "usage": "input", + "usage": "provenance", "git_blob": "eccafa830c16170c36faf93045ddf1f638f7bcd4", "sha256": "4c0b9d37e1034b2076e30a70f8e514416298c462d9ee98bc87fe6556b14df786" }, @@ -22,7 +22,7 @@ }, { "path": "docs/ci-verification.md", - "usage": "input", + "usage": "provenance", "git_blob": "63ba3e9aa8bdc5e942b56e34244b92b16f854085", "sha256": "c7d3027e9ad8bcbff68f07aa9576b30fb2f3c76c44d876d40c7fdbf4a3e2228a" }, @@ -34,163 +34,163 @@ }, { "path": "research/clifford-state-performance/SOURCE.json", - "usage": "input", + "usage": "provenance", "git_blob": "6f98a0061a5104dfab82c9e806f819b41811f684", "sha256": "396d0f08df24952248140d5c65c51b8c902ef1c580892ff7ea182890530f67ee" }, { "path": "research/community-batch1047-audit/CONTENT-COVERAGE.json", - "usage": "input", + "usage": "provenance", "git_blob": "5e0f92af463ec12c5e1dcc3effd44081a88af647", "sha256": "07a9daeaf2bda308a92e9a4684f13d5fc766c7772d74801fceb7f4599fdab226" }, { "path": "research/community-batch1099-audit/CONTENT-COVERAGE.json", - "usage": "input", + "usage": "provenance", "git_blob": "9e13266bf85e627f1b7dc225e9530ea69fd2c7f0", "sha256": "421e1211fb1897c45621dc6801c276e53f2e6f335583c9c9049e535f87c0a3b1" }, { "path": "research/community-batch932-audit/CONTENT-COVERAGE.json", - "usage": "input", + "usage": "provenance", "git_blob": "cc4d03eb59b9ab3f952735f7e88ff18c2d15d7af", "sha256": "184629cac91a5cfaca50330a88596008b824221433867dcf8117539c913c284a" }, { "path": "research/community-batch970-audit/CONTENT-COVERAGE.json", - "usage": "input", + "usage": "provenance", "git_blob": "8b9f4111badf7de5d97684799560b55110e9da79", "sha256": "23188ed920e38a54006cb883e181585620821c63bf7e8b5e05d32719417cc37e" }, { "path": "research/community-frontier741-audit/CONTENT-COVERAGE.json", - "usage": "input", + "usage": "provenance", "git_blob": "a5300d4e7a5381a3f443fc54c768ca6f0f236d68", "sha256": "3c820fb30e1b4d9bcfc6a7ab524375e5b2abd66b940af2c509146104f0bcd79c" }, { "path": "research/community-frontier890-audit/CONTENT-COVERAGE.json", - "usage": "input", + "usage": "provenance", "git_blob": "d7ff6d777b01d69b6ce84caf25d3b7e4a4d2f211", "sha256": "6b185a9902652f893f3ebd8ada92d2f11b6de6533a9a4d11718a8a4496101128" }, { "path": "research/community-hyperplane599-audit/SOURCE.json", - "usage": "input", + "usage": "provenance", "git_blob": "546f37d326d10a99910ae8f908e71ef768524d98", "sha256": "65099d764bfcc39bda5e4d9966783611b094c3522dbdd1435cd498d657a8ef8e" }, { "path": "research/community-k492-audit/SOURCE.json", - "usage": "input", + "usage": "provenance", "git_blob": "e538481e4cb16ed936d3195f2dfb5b5a9ca0a76b", "sha256": "2c0f4fa5bc150d05658af2e7c54c4d2c337dd52b7efd3d69530ae73bcbdf452a" }, { "path": "research/community-reconciliation92-audit/MANIFEST.json", - "usage": "input", + "usage": "provenance", "git_blob": "2a2e93685173d5f13cbb5abe740f5d90352e0228", "sha256": "5f501f3c118131e7d069f30ad77186eb2ad6961f9680a0ef105f4514ed41808a" }, { "path": "research/partial-swap-digest/baseline.py", - "usage": "input", + "usage": "provenance", "git_blob": "a2f0190704db83bd8ef48e46e723c49b925804fe", "sha256": "81e9af92cdf38243a540cdcff2062778e449467848d444da37a9553c12ca4c34" }, { "path": "research/r420-two-sided-basis/SOURCES.json", - "usage": "input", + "usage": "provenance", "git_blob": "5d718e11e62f4bcadecf1e02d6b61f87dbe190b0", "sha256": "d9810b0d139c5a1211fd2c1f0d142187cc1fca30026e1e7bc4f9ecfacf1596d1" }, { "path": "research/skip-clones/SOURCE.json", - "usage": "input", + "usage": "provenance", "git_blob": "8d1bb3b9c8189e35e5d8bfdfa632d7473e8be0d5", "sha256": "0b68e63e35a97ce6b0cdb6e291b88ebaa8f2dd4afb70b2498f10ee89428258dc" }, { "path": "research/split-skip/SOURCE.json", - "usage": "input", + "usage": "provenance", "git_blob": "2ab610b6ea2edd2865fda793ef2168b0c76afb4f", "sha256": "7c2b4646a3ecfef6f881da5c43e4bd0fa9a4d1b00548b8ab458d897e16735134" }, { "path": "scripts/historical-ci-inputs/Makefile", - "usage": "input", + "usage": "provenance", "git_blob": "aff68409021c9d401a6f8013b9dfd7dbcc30f2a8", "sha256": "ea8830dd79da493e2d75baf753d733ff7efbcf2b4794afe41fae0ac8f3055646" }, { "path": "scripts/historical-ci-inputs/ledger-batch932-run_isolated_tests.py", - "usage": "input", + "usage": "provenance", "git_blob": "65db599ab0b1dea0312c4ca048e0bd0f44c3736f", "sha256": "96ea543e6c707424afe247e77bd86c82152f90fc76a0773c4232145da5cdf8d1" }, { "path": "scripts/historical-ci-inputs/ledger-batch932-test_isolated_test_runner.py", - "usage": "input", + "usage": "provenance", "git_blob": "34820a8f24678f918f4d0e7a35380d8013fc3495", "sha256": "628391b6abfbc8674ceec1751867a4392f2cc0b5b66886243e139af86cf355ac" }, { "path": "scripts/historical-ci-inputs/ledger-batch970-verify_selected_result.py", - "usage": "input", + "usage": "provenance", "git_blob": "c755b76e0d44ba4917aa94440ebe54daefce5b2a", "sha256": "d7fd929726b326aeeaf0a3996475adec88eee9aac09ae0bebeeaa0bc1fc8f199" }, { "path": "scripts/historical-ci-inputs/ledger-frontier741-ci-verification.md", - "usage": "input", + "usage": "provenance", "git_blob": "7f3c012504187917a728b9fe87043f0fc8cd006a", "sha256": "a854022e0e1d5d4db4d60e586be3ea56005013ef14a1fc06d02bc06e8529c4b0" }, { "path": "scripts/historical-ci-inputs/partial-swap-context.json", - "usage": "input", + "usage": "provenance", "git_blob": "ad65114886bf34a4fd27e79f3be502389e689faa", "sha256": "833a9642f33aeab2ffea17ec9c6b82e0a953f90192b2c82e10bef21538dccba9" }, { "path": "scripts/historical-ci-inputs/partial-swap-network.json", - "usage": "input", + "usage": "provenance", "git_blob": "52075f2463f60af5e16571347f24274fce73a1ea", "sha256": "f3c4be597b2f2136da4ae2cc80c7454f63c90aa01f84e5b8131cee4dd55de815" }, { "path": "scripts/partial_swap/shared.py", - "usage": "input", + "usage": "provenance", "git_blob": "44a0e454c70f9c4b98e258b8443612e6a119904b", "sha256": "5a0646a50b9f3e8ea55168620a78e8853b0ab810517cefc8cfb8696aedee278a" }, { "path": "scripts/replay_historical_check.py", - "usage": "input", + "usage": "provenance", "git_blob": "1e92fff2782970ef71378f594f2350d245a4db26", "sha256": "5467619c78183d3adc82b0cb55af28e5c1a01fca2b0588677816244b53e2bafd" }, { "path": "scripts/research_package.py", - "usage": "input", + "usage": "provenance", "git_blob": "091b4c8f58bac9a9580d76025b887dc5c873d05f", "sha256": "e1256016e7f51827d04fa2179255989f639ae1d97afaa9c16265f85a0c6abd70" }, { "path": "scripts/run_isolated_tests.py", - "usage": "input", + "usage": "provenance", "git_blob": "a96ab35b315ce492e7fbbfd6c5ae211aa066b541", "sha256": "49eb56dd0fc0d8d8ffdb209970a7adf2176223580646f575d5c22e59543b381c" }, { "path": "scripts/verify_selected_result.py", - "usage": "input", + "usage": "provenance", "git_blob": "6882a4700e410dec569b51ae2eaf1a19cc019195", "sha256": "d6b305eac5b9bdb8172c469ad30a1655a60fa0aceac8b1bf610e1b73f51babd8" }, { "path": "tests/test_isolated_test_runner.py", - "usage": "input", + "usage": "provenance", "git_blob": "343b24abf6719b81805eba5a84c74e57634c8288", "sha256": "3a5470d0b139828b90e19bf9583ddeafcd69f8e34f2824664eb3a2958a52e34d" } diff --git a/research/historical-selected-replay-gap/VERIFY.json b/research/historical-selected-replay-gap/VERIFY.json index 98553e72ed..ab7efa3471 100644 --- a/research/historical-selected-replay-gap/VERIFY.json +++ b/research/historical-selected-replay-gap/VERIFY.json @@ -4,36 +4,7 @@ "python": "3.12", "requirements": [], "inputs": [ - "Makefile", - "certificates/partial-swap-network.json", - "docs/ci-verification.md", - "research/clifford-state-performance/SOURCE.json", - "research/community-batch1047-audit/CONTENT-COVERAGE.json", - "research/community-batch1099-audit/CONTENT-COVERAGE.json", - "research/community-batch932-audit/CONTENT-COVERAGE.json", - "research/community-batch970-audit/CONTENT-COVERAGE.json", - "research/community-frontier741-audit/CONTENT-COVERAGE.json", - "research/community-frontier890-audit/CONTENT-COVERAGE.json", - "research/community-hyperplane599-audit/SOURCE.json", - "research/community-k492-audit/SOURCE.json", - "research/community-reconciliation92-audit/MANIFEST.json", - "research/partial-swap-digest/baseline.py", - "research/r420-two-sided-basis/SOURCES.json", - "research/skip-clones/SOURCE.json", - "research/split-skip/SOURCE.json", - "scripts/historical-ci-inputs/Makefile", - "scripts/historical-ci-inputs/ledger-batch932-run_isolated_tests.py", - "scripts/historical-ci-inputs/ledger-batch932-test_isolated_test_runner.py", - "scripts/historical-ci-inputs/ledger-batch970-verify_selected_result.py", - "scripts/historical-ci-inputs/ledger-frontier741-ci-verification.md", - "scripts/historical-ci-inputs/partial-swap-context.json", - "scripts/historical-ci-inputs/partial-swap-network.json", - "scripts/partial_swap/shared.py", - "scripts/replay_historical_check.py", - "scripts/research_package.py", - "scripts/run_isolated_tests.py", - "scripts/verify_selected_result.py", - "tests/test_isolated_test_runner.py" + "scripts/research_package.py" ], "commands": [ { diff --git a/research/historical-selected-replay-gap/verify.py b/research/historical-selected-replay-gap/verify.py index 83b995941a..9d266c5a4e 100644 --- a/research/historical-selected-replay-gap/verify.py +++ b/research/historical-selected-replay-gap/verify.py @@ -6,8 +6,10 @@ """ import hashlib import importlib.util +import json import subprocess import sys +import tempfile from pathlib import Path ROOT = Path(__file__).resolve().parents[2] @@ -61,31 +63,47 @@ def require(ok, message): raise SystemExit(message) -def load_checker(): - path = ROOT / "scripts/replay_historical_check.py" - spec = importlib.util.spec_from_file_location("historical_selected_replay_gap_checker", path) +def load_module(path): + spec = importlib.util.spec_from_file_location(path.stem, path) module = importlib.util.module_from_spec(spec) spec.loader.exec_module(module) return module +def checkout_snapshot(snapshot, sources, runner, env): + paths = [runner.canonical_relative_path(row["path"]) for row in sources["files"]] + git = ["git", "-c", "maintenance.auto=false", "-c", "gc.auto=0", + "-c", "core.autocrlf=false"] + subprocess.run([*git, "clone", "--quiet", "--shared", "--no-tags", "--no-checkout", + "--", str(ROOT), str(snapshot)], cwd=ROOT, env=env, check=True) + subprocess.run([*git, "update-ref", "--no-deref", "HEAD", INSPECTED], + cwd=snapshot, env=env, check=True) + # The pinned planner reads omitted manifests from the sparse HEAD/index. + patterns = "".join(f"/{path.as_posix()}\n" for path in paths) + subprocess.run([*git, "sparse-checkout", "set", "--no-cone", "--stdin"], + cwd=snapshot, env=env, input=patterns.encode("utf-8"), check=True) + subprocess.run([*git, "read-tree", "-mu", "HEAD"], cwd=snapshot, env=env, check=True) + for path, row in zip(paths, sources["files"], strict=True): + require(hashlib.sha256((snapshot / path).read_bytes()).hexdigest() == row["sha256"], + "historical checkout source digest changed: " + path.as_posix()) + + def entries(checker): for name, config in checker.CONFIG.items(): for entry in [config, *config.get("additional_inputs", [])]: yield name, entry -def reject(checker, entry): +def reject(root, checker, entry): try: - checker.authenticated_input(ROOT, entry) + checker.authenticated_input(root, entry) except ValueError as exc: return str(exc) raise SystemExit("historical input was admitted: " + entry["path"]) -def main(): - require(not sys.flags.optimize, "assertions must stay enabled") - checker = load_checker() +def check_snapshot(root, env): + checker = load_module(root / "scripts/replay_historical_check.py") selected = [entry for name, entry in entries(checker) if name == "tooling-ledger" and entry["path"] == SELECTED_PATH] require(len(selected) == 1, "selected-result checker overlay is not unique") @@ -94,7 +112,7 @@ def main(): require(entry["accepted_live_sha256"] == [SELECTED_ACCEPTED], "accepted selected-checker successors changed") frozen = (checker.INPUTS / entry["input"]).read_bytes() - live = (ROOT / SELECTED_PATH).read_bytes() + live = (root / SELECTED_PATH).read_bytes() require(hashlib.sha256(frozen).hexdigest() == SELECTED_PIN, "frozen selected checker bytes changed") require(hashlib.sha256(live).hexdigest() == SELECTED_LIVE, "live selected checker digest changed") require(SELECTED_LIVE not in (SELECTED_PIN, SELECTED_ACCEPTED), "live checker was already admitted") @@ -102,7 +120,7 @@ def main(): # live successor, not a broken comparison. require(SELECTED_PIN in (SELECTED_PIN, *entry["accepted_live_sha256"]), "pin membership control failed") - require(reject(checker, entry) == REJECTIONS[SELECTED_PATH][1], + require(reject(root, checker, entry) == REJECTIONS[SELECTED_PATH][1], "selected checker rejection text changed") counts = {path: 0 for path in REJECTIONS} @@ -110,7 +128,7 @@ def main(): for _name, item in entries(checker): if item["path"] not in REJECTIONS: continue - message = reject(checker, item) + message = reject(root, checker, item) counts[item["path"]] += 1 messages.setdefault(item["path"], message) for path, (count, message) in REJECTIONS.items(): @@ -118,20 +136,31 @@ def main(): require(messages[path] == message, "rejection text changed for " + path) require(sum(counts.values()) == 19, "rejection total changed") ci = [item for _name, item in entries(checker) if item["path"] == CI_PATH] - require(len(ci) == 1 and hashlib.sha256((ROOT / CI_PATH).read_bytes()).hexdigest() == CI_LIVE, + require(len(ci) == 1 and hashlib.sha256((root / CI_PATH).read_bytes()).hexdigest() == CI_LIVE, "selected CI note digest changed") diff = subprocess.check_output( - ["git", "diff", "--name-only", PARENT, INSPECTED], cwd=ROOT, text=True) + ["git", "diff", "--name-only", PARENT, INSPECTED], cwd=root, env=env, text=True) changed = sorted(name for name in diff.splitlines() if name) require(changed == CHANGED, "inspected commit diff changed") - sys.path.insert(0, str(ROOT / "scripts")) - from research_package import plan_details - details = plan_details(ROOT, set(changed)) + planner = load_module(root / "scripts/research_package.py") + details = planner.plan_details(root, set(changed)) require([row["package"] for row in details] == PLAN_PACKAGES, "helper plan selection changed") matched = {name for row in details for names in row["causes"].values() for name in names} require(sorted(set(changed) - matched) == UNMATCHED, "unmatched plan paths changed") - require(plan_details(ROOT, set()) == [], "empty change set selected a package") + require(planner.plan_details(root, set()) == [], "empty change set selected a package") + + +def main(): + require(not sys.flags.optimize, "assertions must stay enabled") + sources = json.loads(Path(__file__).with_name("SOURCES.json").read_bytes()) + require(sources["base_commit"] == INSPECTED, "historical checkout base changed") + runner = load_module(ROOT / "scripts/research_package.py") + env = runner.git_source_env() + with tempfile.TemporaryDirectory(prefix="historical-selected-replay-") as temporary: + snapshot = Path(temporary) / "snapshot" + checkout_snapshot(snapshot, sources, runner, env) + check_snapshot(snapshot, env) print("PASS_HISTORICAL_SELECTED_REPLAY_GAP") print("selected_checker_live=" + SELECTED_LIVE) print("rejections=19 distinct_paths=7 plan_packages=9") From ceb27ae824a8e7913d1d17a6430c1569704c1e15 Mon Sep 17 00:00:00 2001 From: ToikY <27568617+ToikY@users.noreply.github.com> Date: Wed, 11 Nov 2026 13:00:26 -0800 Subject: [PATCH 3/3] Bound fixed-chronology rank-137 productive-root splits --- .../LOCAL-PINS.json | 18 + .../p104-rank137-productive-root-bound/NOTICE | 10 + .../PROOF.md | 70 ++++ .../PROVENANCE.json | 77 +++++ .../README.md | 71 ++++ .../SOURCES.json | 18 + .../TASK.json | 84 +++++ .../VERIFY.json | 19 ++ .../7113/check_odd_caller_exact_grid.py | 132 ++++++++ .../7113/check_odd_physical_binding.py | 82 +++++ .../dependencies/7298/RESULT.json | 97 ++++++ .../dependencies/7298/pricing.py | 82 +++++ .../dependencies/7298/verify.py | 253 ++++++++++++++ .../dependencies/r52/projector.py | 116 +++++++ .../complex/source/inputs/CALLER.json.gz | Bin 0 -> 11215 bytes .../source/inputs/EARLY-RESULT.json.gz | Bin 0 -> 2087 bytes .../complex/source/inputs/WORD.json.gz | Bin 0 -> 381696 bytes .../engines/column_forward.py | 159 +++++++++ .../engines/column_reverse.py | 191 +++++++++++ .../engines/compare_columns.py | 39 +++ .../engines/coordinate.py | 261 ++++++++++++++ .../engines/laurent.py | 319 ++++++++++++++++++ .../engines/reverse.py | 140 ++++++++ .../receipts/SHA256.json | 11 + .../replay.py | 169 ++++++++++ 25 files changed, 2418 insertions(+) create mode 100644 research/p104-rank137-productive-root-bound/LOCAL-PINS.json create mode 100644 research/p104-rank137-productive-root-bound/NOTICE create mode 100644 research/p104-rank137-productive-root-bound/PROOF.md create mode 100644 research/p104-rank137-productive-root-bound/PROVENANCE.json create mode 100644 research/p104-rank137-productive-root-bound/README.md create mode 100644 research/p104-rank137-productive-root-bound/SOURCES.json create mode 100644 research/p104-rank137-productive-root-bound/TASK.json create mode 100644 research/p104-rank137-productive-root-bound/VERIFY.json create mode 100644 research/p104-rank137-productive-root-bound/dependencies/7113/check_odd_caller_exact_grid.py create mode 100644 research/p104-rank137-productive-root-bound/dependencies/7113/check_odd_physical_binding.py create mode 100644 research/p104-rank137-productive-root-bound/dependencies/7298/RESULT.json create mode 100644 research/p104-rank137-productive-root-bound/dependencies/7298/pricing.py create mode 100644 research/p104-rank137-productive-root-bound/dependencies/7298/verify.py create mode 100644 research/p104-rank137-productive-root-bound/dependencies/r52/projector.py create mode 100644 research/p104-rank137-productive-root-bound/dependencies/round30/complex/source/inputs/CALLER.json.gz create mode 100644 research/p104-rank137-productive-root-bound/dependencies/round30/complex/source/inputs/EARLY-RESULT.json.gz create mode 100644 research/p104-rank137-productive-root-bound/dependencies/round30/complex/source/inputs/WORD.json.gz create mode 100644 research/p104-rank137-productive-root-bound/engines/column_forward.py create mode 100644 research/p104-rank137-productive-root-bound/engines/column_reverse.py create mode 100644 research/p104-rank137-productive-root-bound/engines/compare_columns.py create mode 100644 research/p104-rank137-productive-root-bound/engines/coordinate.py create mode 100644 research/p104-rank137-productive-root-bound/engines/laurent.py create mode 100644 research/p104-rank137-productive-root-bound/engines/reverse.py create mode 100644 research/p104-rank137-productive-root-bound/receipts/SHA256.json create mode 100644 research/p104-rank137-productive-root-bound/replay.py diff --git a/research/p104-rank137-productive-root-bound/LOCAL-PINS.json b/research/p104-rank137-productive-root-bound/LOCAL-PINS.json new file mode 100644 index 0000000000..b1f6c8e3a5 --- /dev/null +++ b/research/p104-rank137-productive-root-bound/LOCAL-PINS.json @@ -0,0 +1,18 @@ +{ + "dependencies/7113/check_odd_caller_exact_grid.py": "abd5a5fd011b71e5b382cbc058855594d4f2fe7b049f375506675c0303180f54", + "dependencies/7113/check_odd_physical_binding.py": "5c80c3b0415a7f91d216395248dd6f13297eed637732098e1ca8fb0548951b98", + "dependencies/7298/RESULT.json": "aaf594b981f37e7dbddb12fd052d9286cf5c8c95c8d5265ab6426408f6e58cc5", + "dependencies/7298/pricing.py": "f4d0b6c9314b838d882d6d06020f24881c19a3fda97a7c00df87b1e920785182", + "dependencies/7298/verify.py": "4a4291c9019ef23c664ae9646b076dc57054b49f5c5ffd21908aa9f0edf19902", + "dependencies/r52/projector.py": "acc29bb66913fd7ba0baef848805f5ab64bea5428f5225397aac5d84a1f9fadd", + "dependencies/round30/complex/source/inputs/CALLER.json.gz": "58beaf24e01c0589ecd5d1676d6d27e75b779f089d0674eda11725465ffc04e1", + "dependencies/round30/complex/source/inputs/EARLY-RESULT.json.gz": "9851ebaa4b4404be1f5670b8a8dfc6ee96a8e19e85731edd4a71d52bbfa9c793", + "dependencies/round30/complex/source/inputs/WORD.json.gz": "2c523ce6fdd6092d758fedc3602a0bcedb692b9766f1e41f903351ba4dee1756", + "engines/column_forward.py": "6aad2af3e48cafc560e198fec62e936f166a4d9b036d6da31859823b4b158934", + "engines/column_reverse.py": "1d3e86eabd2d296be125fea55faf5dd750e5312448beca4cb555e854653fc5a1", + "engines/compare_columns.py": "ea56c6577ecaa3fa4c479b084e502b2521eb03e61f11d38ff345cbaa7b92bf5b", + "engines/coordinate.py": "ea24845a63453a99c03ef045be8ecbbd91bca41e823988bf398f896ca355e4b2", + "engines/laurent.py": "2dbf3dc231e4f1773513ef51e897888698555d1980511ae36a1d933f3760d78e", + "engines/reverse.py": "d763b974585a439472bcaacf0913fc5c8469ea24212545287a3a359526ff51cd", + "receipts/SHA256.json": "0338bff578c5598dbd0175b3ea81a5f051b8208f724bea848b811f79addd1f28" +} diff --git a/research/p104-rank137-productive-root-bound/NOTICE b/research/p104-rank137-productive-root-bound/NOTICE new file mode 100644 index 0000000000..c6e85a5565 --- /dev/null +++ b/research/p104-rank137-productive-root-bound/NOTICE @@ -0,0 +1,10 @@ +Apache-2.0. + +#7113 supplies the signed caller and retained exact Laurent and +physical-binding references. #7277 supplies the literal native word +and complete comparable invoice. #7298 supplies the invoice and +directed arithmetic. The projector arithmetic was previously +published with #7315 on a distinct Type B problem. Round 54 and +Round 55 supply the exact coordinate and even-basis exclusions, +including independent replays. OpenAI Codex and subagents materially +assisted. diff --git a/research/p104-rank137-productive-root-bound/PROOF.md b/research/p104-rank137-productive-root-bound/PROOF.md new file mode 100644 index 0000000000..ccfc40d2ae --- /dev/null +++ b/research/p104-rank137-productive-root-bound/PROOF.md @@ -0,0 +1,70 @@ +# Positive partitions of the two Type A rank-137 roots + +The literal signed #7113 operator is diagonal at its endpoint. The two +root entries in scope are \(q^{-1}\prod_{j=1}^{17}D_j\). The proposed +factorization assigns a squarefree subset of \(m\) stages and an +indicator \(c\in\{0,1\}\) for the signed central axis to the prefix. +Its ranks are \(8m+c\) and \(8(17-m)+1-c\), both positive. +The 34 rank classes account for 262,142 ordered positive factorizations +per root. At each class the signed invoice adds 96 productive fields +at each new rank and removes 96 rank-137 fields. All 110,536 original +paid positions and the 17 native copies stay in the complete invoice. + +Write \(H_r=r^{1-\kappa}\) at the exact old crossing upper. The +one-root credit is \(96(H_{8m+c}+H_{137-(8m+c)}-H_{137})\). Its largest +directed upper is at ranks 65 and 72. Grant the two root choices full +compatibility, once each, for the whole optimistic upper. This gives +about 65.2479130965 raw units. Both price receipts retain all paid terms +and save this directed test before support. + +## Coordinate-isolated cuts + +Let \(A\) be the literal prefix at a cut. For a coordinate split of +logical root \(r\) at physical slot \(p\), its signed prefix row +\(e_p^T A\) and column \(A e_r\) must isolate at \(r\) and \(p\), +respectively. At body values one and \(q=\pm1\), this requires +reciprocal isolated prefix row and inverse column in the same +physical slot at both signs. The body-one gate checks 9,568 +root-boundary keys. Four endpoint controls and 241 interior cases +pass that necessary condition. + +For each interior case the full Gaussian Laurent replay checks row +and column isolation and requires a single monomial with a positive +complement. It also verifies all 72 original signed endpoint rows. +Distinct body stages have separate base-256 digits with maximum +literal multiplicity 35, so packed exponents preserve their formal +identity. All 241 cases isolate the coordinate. Seventy-five have +zero prefix rank, 144 have zero suffix rank, and 22 have two +monomials. The reverse rational engine starts from both prescribed +root endpoints and recovers their identities, agreeing on every +interior classification. + +## Invertible even midcut bases + +Grant an invertible midcut matrix \(B\) whose entries are arbitrary +Gaussian rational functions of the even phase in the ordinary +coefficient ring, independent of all body stages. The required +isolated productive field has one squarefree paid monomial \(M\). +The equation \(BAe_r=M e_p\) implies +\[ + A e_r=M B^{-1}e_p. +\] +Every nonzero term anywhere in the full old prefix column must +therefore have the same squarefree body mask and the same parity +of its central exponent. The even residual may contain both +powers \(q^0\) and \(q^2\). Both complementary ranks must be positive. + +The exact reverse rational and forward signed integer-grid replays +check this necessary condition for both roots at every literal cut. +The comparison binds each decision, occupied row set, term count, +and any common mask, parity and ranks. All 9,568 decisions match. +The controls include a valid multicomponent even residual with +ranks 65 and 72, false single-row or single-column isolation, +mixed stages and phases, nonsquarefree stage factors and zero-rank +endpoints. Mutation controls reject altered caller and body-one +inputs before support output. + +No candidate reaches a native or compiler build. The exclusion +covers the fixed word and paid caller stock, with a one-root split +at a literal cut and the stated within-port basis contract. More +general interfaces and separately paid modifications remain open. diff --git a/research/p104-rank137-productive-root-bound/PROVENANCE.json b/research/p104-rank137-productive-root-bound/PROVENANCE.json new file mode 100644 index 0000000000..cb5252a8f1 --- /dev/null +++ b/research/p104-rank137-productive-root-bound/PROVENANCE.json @@ -0,0 +1,77 @@ +{ + "files": { + "dependencies/7113/check_odd_caller_exact_grid.py": { + "commit": "07a76c5e2738882c0cb322278e56f6cae3c9885d", + "git_blob": "1bbc6f149f7ae3e1d68ab79642a642a94054428e", + "path": "research/signed-caller-8x9/replay/supplier7112/short-caller/check_odd_caller_exact_grid.py", + "sha256": "abd5a5fd011b71e5b382cbc058855594d4f2fe7b049f375506675c0303180f54", + "source": "https://github.com/CrocSwap/integer-mult-bounds/blob/07a76c5e2738882c0cb322278e56f6cae3c9885d/research/signed-caller-8x9/replay/supplier7112/short-caller/check_odd_caller_exact_grid.py", + "uncompress": false + }, + "dependencies/7113/check_odd_physical_binding.py": { + "commit": "07a76c5e2738882c0cb322278e56f6cae3c9885d", + "git_blob": "def1e6a18439bd40d1b12af04c6347bbf6b74c55", + "path": "research/signed-caller-8x9/replay/supplier7112/short-caller/check_odd_physical_binding.py", + "sha256": "5c80c3b0415a7f91d216395248dd6f13297eed637732098e1ca8fb0548951b98", + "source": "https://github.com/CrocSwap/integer-mult-bounds/blob/07a76c5e2738882c0cb322278e56f6cae3c9885d/research/signed-caller-8x9/replay/supplier7112/short-caller/check_odd_physical_binding.py", + "uncompress": false + }, + "dependencies/7298/RESULT.json": { + "commit": "c522451caf287bb3c16eaece72be4c263315dca4", + "git_blob": "c66ad2ed50e6f70c2c60cbb5b8b222dcd1b64a6f", + "path": "research/adjacent-owned-add-exchange-bound/RESULT.json", + "sha256": "aaf594b981f37e7dbddb12fd052d9286cf5c8c95c8d5265ab6426408f6e58cc5", + "source": "https://github.com/CrocSwap/integer-mult-bounds/blob/c522451caf287bb3c16eaece72be4c263315dca4/research/adjacent-owned-add-exchange-bound/RESULT.json", + "uncompress": false + }, + "dependencies/7298/pricing.py": { + "commit": "c522451caf287bb3c16eaece72be4c263315dca4", + "git_blob": "40ec194017bda1d524bba4f07b188c53281419d0", + "path": "research/adjacent-owned-add-exchange-bound/pricing.py", + "sha256": "f4d0b6c9314b838d882d6d06020f24881c19a3fda97a7c00df87b1e920785182", + "source": "https://github.com/CrocSwap/integer-mult-bounds/blob/c522451caf287bb3c16eaece72be4c263315dca4/research/adjacent-owned-add-exchange-bound/pricing.py", + "uncompress": false + }, + "dependencies/7298/verify.py": { + "commit": "c522451caf287bb3c16eaece72be4c263315dca4", + "git_blob": "a45510da2548ec701c7719e6205f079318bbd930", + "path": "research/adjacent-owned-add-exchange-bound/verify.py", + "sha256": "4a4291c9019ef23c664ae9646b076dc57054b49f5c5ffd21908aa9f0edf19902", + "source": "https://github.com/CrocSwap/integer-mult-bounds/blob/c522451caf287bb3c16eaece72be4c263315dca4/research/adjacent-owned-add-exchange-bound/verify.py", + "uncompress": false + }, + "dependencies/r52/projector.py": { + "commit": "c2d17f4fb4d3afb979bf8c1dc487d1a632c4f6b8", + "git_blob": "2a0413369ddc22568d77d964a18d02bcc783490d", + "path": "research/p104-even-idle-projector-bound/engines/independent_singleton.py", + "sha256": "acc29bb66913fd7ba0baef848805f5ab64bea5428f5225397aac5d84a1f9fadd", + "source": "https://github.com/CrocSwap/integer-mult-bounds/blob/c2d17f4fb4d3afb979bf8c1dc487d1a632c4f6b8/research/p104-even-idle-projector-bound/engines/independent_singleton.py", + "uncompress": false + }, + "dependencies/round30/complex/source/inputs/CALLER.json.gz": { + "commit": "07a76c5e2738882c0cb322278e56f6cae3c9885d", + "git_blob": "9451ceaf6e8e037894680b549f3ef41c21b260d7", + "path": "research/signed-caller-8x9/expected/ODD-TYPE-AB-CALLER.json", + "sha256": "255d89f38cd45e38e5770f559bc43dc217e989032359768cdc7e8cdfd64b47bc", + "source": "https://github.com/CrocSwap/integer-mult-bounds/blob/07a76c5e2738882c0cb322278e56f6cae3c9885d/research/signed-caller-8x9/expected/ODD-TYPE-AB-CALLER.json", + "uncompress": true + }, + "dependencies/round30/complex/source/inputs/EARLY-RESULT.json.gz": { + "commit": "ed090b57ed88f8859e5ff4643645099e6ba856ea", + "git_blob": "ef86c8ec8ed0a2042017a6f42515e70dd15cfffd", + "path": "research/p104-terminal-cut-rechart/EARLY-RESULT.json", + "sha256": "691025fe95c7938a6da211244d4d5b6187d88a9de1acff0862eeb7f0ce7deaa7", + "source": "https://github.com/CrocSwap/integer-mult-bounds/blob/ed090b57ed88f8859e5ff4643645099e6ba856ea/research/p104-terminal-cut-rechart/EARLY-RESULT.json", + "uncompress": true + }, + "dependencies/round30/complex/source/inputs/WORD.json.gz": { + "commit": "ed090b57ed88f8859e5ff4643645099e6ba856ea", + "git_blob": "077bf48c35db0ddafae81f1bfa0ffacc30894b2b", + "path": "research/p104-terminal-cut-rechart/WORD.json.gz", + "sha256": "2c523ce6fdd6092d758fedc3602a0bcedb692b9766f1e41f903351ba4dee1756", + "source": "https://github.com/CrocSwap/integer-mult-bounds/blob/ed090b57ed88f8859e5ff4643645099e6ba856ea/research/p104-terminal-cut-rechart/WORD.json.gz", + "uncompress": false + } + }, + "schema_version": 1 +} diff --git a/research/p104-rank137-productive-root-bound/README.md b/research/p104-rank137-productive-root-bound/README.md new file mode 100644 index 0000000000..bd2438d26b --- /dev/null +++ b/research/p104-rank137-productive-root-bound/README.md @@ -0,0 +1,71 @@ +# Type A rank-137 productive root bound + +**NO VERIFIED GAIN. Exact conditional κ change 0%.** The two Type A +rank-137 roots at roles 0 and 18 admit no positive literal-cut split +under either the coordinate or invertible ordinary even-basis scope. +The compatible saving upper after support is zero in both scopes. + +The fixed comparison uses #7277 at ed090b57ed88f8859e5ff4643645099e6ba856ea +and the exact 17-stage #7113 signed caller at +07a76c5e2738882c0cb322278e56f6cae3c9885d. All paid jobs, the native word, +and other productive roots stay fixed. Each root has 96 Type A ports. +The complete price grants at most about 32.6239565482 raw units for +one split and 65.2479130965 for both, before added costs. One added +rank-one paid job across the 96 ports would cost 96. The exact +directed intervals and baseline invoice are regenerated before support. + +The coordinate gate checks both roots at all 4,784 boundaries and both +body-one phase signs. The full signed Laurent gate exhausts its 241 +interior witnesses. Seventy-five have zero prefix rank, 144 have zero +suffix rank, and 22 have two Laurent terms. The independent reverse +replay agrees on each disposition. The later gate permits invertible +even midcut bases throughout one port. Its independent forward and +reverse replays agree on all 9,568 keys. There are 8,383 mixed body +masks, 913 mixed central parities, and 272 zero-rank sides. No case +survives or remains unresolved. [Proof](PROOF.md) + +## Replay + +From a clean checkout, use CPython 3.12 and assertions enabled. + +~~~sh +python3.12 -I -B research/p104-rank137-productive-root-bound/replay.py +python3.12 -B scripts/research_package.py --package research/p104-rank137-productive-root-bound +~~~ + +The standalone command authenticates every bundled input, regenerates +nine exact plaintext receipts, and runs the positive and mutation +controls. Pass --out fresh-receipts to save all nine regenerated files. +The exact receipt hashes are recorded in receipts/SHA256.json. Source +byte and Git blob provenance appears in PROVENANCE.json, separate +from the local path-keyed authentication in LOCAL-PINS.json. The +wrapper verifies the unpacked bytes of bundled compressed sources. +Expected output begins with PASS_TYPE_A_RANK137_ROOT_BOUND. + +## Open next questions + +- Can a changed caller expose a positive common body factor while + keeping the complete invoice favorable? Pin one changed caller and + price all additions before checking its full root columns. The + existing 96-port rank-one debit exceeds the optimistic credit of + this fixed stock. +- Cross-port mixing, body-dependent midcut maps, changes to other + caller events, and other productive roots need a separate price + and support scope. Any positive support still needs physical field + stock, compiler and all-width signed verification. + +#7113 provides the literal signed caller and phase interface. #7277 +provides the exact native word and complete comparison invoice. #7298 +provides the directed complete invoice reconstruction. #7315 provides +the prior projector arithmetic used by the body-one gate on a different +Type B paid-idle problem. #7313 studies charged rank-six native helper +splits. #7314 changes a funded native helper return and donor route. +Round 54 supplies the exact coordinate and Laurent forward replays. +Round 55 supplies the broader column proof and independent forward and +reverse comparisons. OpenAI Codex and subagents materially assisted. +[#7113](https://github.com/CrocSwap/integer-mult-bounds/pull/7113) · +[#7277](https://github.com/CrocSwap/integer-mult-bounds/pull/7277) · +[#7298](https://github.com/CrocSwap/integer-mult-bounds/pull/7298) · +[#7313](https://github.com/CrocSwap/integer-mult-bounds/pull/7313) · +[#7314](https://github.com/CrocSwap/integer-mult-bounds/pull/7314) · +[#7315](https://github.com/CrocSwap/integer-mult-bounds/pull/7315) diff --git a/research/p104-rank137-productive-root-bound/SOURCES.json b/research/p104-rank137-productive-root-bound/SOURCES.json new file mode 100644 index 0000000000..e8c2f265cd --- /dev/null +++ b/research/p104-rank137-productive-root-bound/SOURCES.json @@ -0,0 +1,18 @@ +{ + "base_commit": "e54523517d0f03e58352e647c403a5af3e525a57", + "files": [ + { + "git_blob": "75d77b328ea02ded535e7f23aee5b1e55d0bb1a8", + "path": "certificates/selected-result.json", + "sha256": "154c3d30455d778fd3343b6b4851f0fa4665f0f7625b0adb3675e2bafbbf6bf1", + "usage": "provenance" + }, + { + "git_blob": "3404fbdd5e7529a0674eef26114b5071e4586cec", + "path": "docs/research/agent-task-catalog.json", + "sha256": "ead6cdc9d0af6d58e8a49744d8ec8c7c15e13d2ba93c276c434bcf9b51b93a81", + "usage": "provenance" + } + ], + "schema_version": 1 +} diff --git a/research/p104-rank137-productive-root-bound/TASK.json b/research/p104-rank137-productive-root-bound/TASK.json new file mode 100644 index 0000000000..68876ce22f --- /dev/null +++ b/research/p104-rank137-productive-root-bound/TASK.json @@ -0,0 +1,84 @@ +{ + "actual_scope": "Both Type A rank-137 roots, roles 0 and 18, at every literal boundary of the exact #7113 caller and #7277 invoice. Keep all paid jobs fixed. Check coordinate root splitting and the relaxation to invertible q-even midcut mixing within the same port.", + "ai_assistance": "OpenAI Codex and subagents materially assisted proof, implementation, independent audit and packaging.", + "author": "Rank-137 productive root research", + "base_commit": "e54523517d0f03e58352e647c403a5af3e525a57", + "bottleneck_link": "Determine whether the two Type A rank-137 roots admit a positive productive partition while retaining every paid caller job.", + "budget_minutes": 7, + "evidence": "Complete directed rank partition price, both body-one signs, exact signed Laurent forward and reverse replay, and all 9,568 independently matched column dispositions.", + "open_questions": [ + { + "blocked_by": "New rank-one work across the 96 ports exceeds the optimistic fixed-stock credit. Changed interfaces still require exact physical and compiler verification.", + "first_step": "Pin one changed caller, compute the fully charged price upper, and test its exact two root columns before constructing a physical split.", + "question": "Can a changed caller expose a positive common body factor while paying for the change?", + "why_it_matters": "The fixed 17-stage caller has no surviving literal cut for either rank-137 root." + } + ], + "original_card": { + "acceptance_gate": "A source-bound arbitrary-input identity and legal producer/consumer boundary with the complete paid and productive target invoice, including restoration, ownership, native alignment and extra charges. Price under the actual current model; historical ceiling.py assumptions must be established before use. A favorable optimistic relaxation keeps a route open but is not a completed supplier. A scoped local result remains useful; expansion requires the family-level budget gate.", + "allowed_variations": [ + "One exact source head, helper/cut region or quantified proposition and changed hypothesis; check live handoffs first. Different seeds are not different scopes." + ], + "bottleneck_link": "Judge the actual current supplier contract and complete signed target/paid bill; frozen-profile ceilings require an applicability proof.", + "existing_checks": [ + { + "evidence": "research/qq16-caller-install/README.md", + "remaining": "Complete matched physical protocol bill, or changed source-compatible demand/circuit; no affordable supplier yet.", + "scope": "PR #4166: author-checked installed producer/service/return/bridge connection; native-component comparison loses.", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129", + "source_commit": "0b082d22a0e9a442d264ab0633e35ef26c790630", + "status": "author-checked" + }, + { + "evidence": "docs/research/pr-intake-evidence/pr5599-completion/PROOF-REVIEW.md", + "remaining": "The next experiment must identify uncovered source-specific work. Successor archive intake does not transfer this admission.", + "scope": "Selected PR5599: complete helper-subspace construction and independent caller replay; five framework assumptions remain.", + "selected_record_sha256": "2a0220e866417774606e0f991e41b9c1d26b1f43b97857238cf478dbc7d330b5", + "source_commit": "09dd0965711ca7eeb169057a420abab1c9052137", + "status": "reviewed" + } + ], + "first_experiment": "Choose an exact caller and a new demand/interface hypothesis. Read the scoped #5617/#5631/#5649/#5747 and #5720/#5745 objections before rebuilding an excluded schedule. Compare the complete matched source/consumer protocols including all retained helper outputs. For an active-mode injection, first check #5745: its canonical delivery claim repays the eight removed centre jobs. Audit that exact claim or change its channel/feedback hypothesis; do not repeat the same free-injection search. Stop if the full favorable budget fails or the required restored output is unobservable.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_selected_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read revision 8, the selected review and live exact-source handoffs. Then follow this card's bounded first_experiment.", + "scope": "Source-bound orientation only, not a supplier replay or theorem proof." + }, + "id": "joint-query-controller", + "methods": [ + "Construct and independently check one source-bound instance of the stated first experiment.", + "Seek an exact counterexample or target-specific complete-budget obstruction to that same proposed change." + ], + "overlap_terms": [ + "query demand", + "active mode", + "5720", + "5745", + "5747", + "caller" + ], + "question": "Can a changed query demand or caller remove real work while satisfying native chronology and restoration?", + "scope_change_triggers": [ + "Changing source head, helper/cut domain, operation alphabet or caller boundary without recording the new scope.", + "Treating an archived proposal or local numerical pass as complete supplier admission." + ], + "starting_points": [ + "docs/research/current-priorities.md", + "docs/research/research-family-status.md", + "certificates/selected-result.json", + "docs/research/pr-intake-evidence/pr5599-completion/PROOF-REVIEW.md" + ] + }, + "outcome": "negative-result", + "priority_revision": 8, + "schema_version": 1, + "scope_change_reason": "Shift from paid Type B idle work to a productive Type A root partition without changing existing paid work.", + "scope_status": "changed", + "stop_rule": "Save complete directed price, exhaust all 9,568 root-boundary cases and all coordinate Laurent survivors within the declared caps, and stop if no necessary support remains.", + "task_id": "joint-query-controller" +} diff --git a/research/p104-rank137-productive-root-bound/VERIFY.json b/research/p104-rank137-productive-root-bound/VERIFY.json new file mode 100644 index 0000000000..8dc754d09f --- /dev/null +++ b/research/p104-rank137-productive-root-bound/VERIFY.json @@ -0,0 +1,19 @@ +{ + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/replay.py" + ], + "checks": "Regenerate the signed price, both coordinate support replays, all independent column classifications and frozen receipt hashes. Run positive and mutation controls.", + "timeout_seconds": 290 + } + ], + "inputs": [], + "python": "3.12", + "requirements": [], + "schema_version": 1, + "status": "ready" +} diff --git a/research/p104-rank137-productive-root-bound/dependencies/7113/check_odd_caller_exact_grid.py b/research/p104-rank137-productive-root-bound/dependencies/7113/check_odd_caller_exact_grid.py new file mode 100644 index 0000000000..1bbc6f149f --- /dev/null +++ b/research/p104-rank137-productive-root-bound/dependencies/7113/check_odd_caller_exact_grid.py @@ -0,0 +1,132 @@ +"""Fixed-grid signed Laurent replay with exact caller odd denominators.""" +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +from pathlib import Path +import json +from math import prod + +root=Path(__file__).resolve().parent +cpath=root/"ODD-TYPE-AB-CALLER.json" +C=json.loads(cpath.read_bytes()) +primes=(2,3,5) +def debt(q): + d=Q(q).denominator + out=[] + for p in primes: + n=0 + while d%p==0:d//=p;n+=1 + out.append(n) + assert d==1 + return out +def plus(a,b):return [x+y for x,y in zip(a,b)] +def vmax(a,b):return list(map(max,a,b)) +def valuation_budget(): + D=[[0]*len(primes) for _ in range(C["roles"])] + peak=[0]*len(primes) + for e in C["events"]: + if e[0]=="J": + _,_,(u,v,x,y),(s,t,al,be)=e + assert al=="-1" and be=="1/2" and abs(Q(C["types"]["A"]["alpha2"]))==1 + D[v]=vmax(D[u],D[v]);D[x]=vmax(D[x],D[y]) + tmp=vmax(D[s],D[t]);D[s],D[t]=tmp,plus(tmp,[1,0,0]) + else: + _,op,r,*a=e + if op=="SWAP":D[r],D[a[0]]=D[a[0]],D[r] + elif op=="QUERY":D[r]=vmax(D[r],D[a[0]]) + elif op=="LAMBDA":D[r]=plus(D[r],[1,0,0]) + elif op=="ADD": + d=plus(D[a[0]],debt(a[1])) + peak=vmax(peak,d) + D[r]=vmax(D[r],d) + elif op=="SCALE":D[r]=plus(D[r],debt(a[0])) + else:assert op in ("IDLE_ONE","IDLE_ODD") + for d in D:peak=vmax(peak,d) + return peak + +def replay(ds): + M=prod(p**e for p,e in zip(primes,ds)) + rows=[{(j,0,0):(M,0)} for j in range(C["roles"])] + peak=0 + checks=0 + def field_add(out,x,ar=1,ai=0,den=1,q=0,m=0): + nonlocal checks + for (j,k,s),(a,b) in x.items(): + u,v=a*ar-b*ai,a*ai+b*ar + if den!=1: + u,ru=divmod(u,den);v,rv=divmod(v,den) + if ru or rv:raise ArithmeticError("Nonintegral caller coefficient") + checks+=1 + key=(j,(k+q)%4,s+m) + c,d=out.get(key,(0,0)) + uv=(c+u,d+v) + if uv==(0,0):out.pop(key,None) + else:out[key]=uv + def mapped(x,ar=1,ai=0,den=1,q=0,m=0): + y={};field_add(y,x,ar,ai,den,q,m);return y + def mulrank(j): + return 1<<(8*(j-1)) + for e in C["events"]: + if e[0]=="J": + _,j,(u,v,x,y),(s,t,al,be)=e + m=mulrank(j) + field_add(rows[v],rows[u],q=-1) + field_add(rows[x],rows[y],int(C["types"]["A"]["alpha2"]),q=1) + for r in (u,v,x,y):rows[r]=mapped(rows[r],m=m) + A=mapped(rows[s],m=m);field_add(A,rows[t],-1,q=1,m=m) + B=mapped(rows[t],den=2,m=m);field_add(B,rows[s],den=2,q=-1,m=m) + rows[s],rows[t]=A,B + else: + _,op,r,*a=e + if op=="SWAP":rows[r],rows[a[0]]=rows[a[0]],rows[r] + elif op=="QUERY":field_add(rows[r],rows[a[0]],q=a[1]) + elif op=="LAMBDA": + x=rows[r];rows[r]=mapped(x,1,a[0],2) + field_add(rows[r],x,1,-a[0],2,q=2) + elif op=="ADD": + q=Q(a[1]);field_add(rows[r],rows[a[0]],q.numerator,den=q.denominator) + elif op=="SCALE": + q=Q(a[0]);rows[r]=mapped(rows[r],q.numerator,den=q.denominator) + else: + assert op in ("IDLE_ONE","IDLE_ODD") + rows[r]=mapped(rows[r],q=a[1] if op=="IDLE_ODD" else 0,m=sum(map(mulrank,a[0]))) + peak=max(peak,sum(map(len,rows))) + for ty,t in C["types"].items(): + for j,(q,z,*bits) in enumerate(t["diagonal"],t["offset"]): + assert z==0 + assert rows[j]=={(j,q%4,sum(v<<(8*k) for k,v in enumerate(bits))):(M,0)} + return checks,peak + +ds=valuation_budget() +checks,peak=replay(ds) +odd=prod(p**e for p,e in zip(primes[1:],ds[1:])) +assert odd>1 +# Locate the least exact odd-scale exponents on this interpreter. Since +# the coefficient grid requirements are per prime, monotonicity permits +# independent integer binary searches while holding the other primes fixed. +bound=ds.copy() +for i in range(1,len(ds)): + lo,hi=-1,ds[i] + while hi-lo>1: + mid=(lo+hi)//2 + test=ds.copy();test[i]=mid + try:replay(test) + except ArithmeticError:lo=mid + else:hi=mid + ds[i]=hi +checks,peak=replay(ds) +odd=prod(p**e for p,e in zip(primes[1:],ds[1:])) +assert odd>1 +for i in range(1,len(ds)): + if ds[i]: + short=ds.copy();short[i]-=1 + try:replay(short) + except ArithmeticError:pass + else:raise AssertionError("odd-grid rejection control") +rec={"caller_sha256":sha256(cpath.read_bytes()).hexdigest(),"prime_order":list(primes), + "safe_valuation_bound":bound,"grid_exponents":ds,"caller_odd_scale":str(odd), + "caller_odd_scale_bits":odd.bit_length(),"preproduct_exact_divisions":checks, + "peak_terms":peak, + "scope":"Independent integer Laurent caller endpoint and pre-product divisibility. Valuation bound propagates complete field operators whose Gaussian coefficients have only power-of-two denominators, so odd factors are sourced only from the charged scalar operations. Fixed conversion and storage bounds still needed."} +with (root/"ODD-CALLER-EXACT-GRID.json").open("x") as f:json.dump(rec,f,indent=2) +print("PASS odd caller grid",bound,ds,"scale bits",odd.bit_length(),"checked",checks,flush=True) diff --git a/research/p104-rank137-productive-root-bound/dependencies/7113/check_odd_physical_binding.py b/research/p104-rank137-productive-root-bound/dependencies/7113/check_odd_physical_binding.py new file mode 100644 index 0000000000..def1e6a184 --- /dev/null +++ b/research/p104-rank137-productive-root-bound/dependencies/7113/check_odd_physical_binding.py @@ -0,0 +1,82 @@ +"""Check physical phase-polynomial substitution and exact paid occurrence binding.""" +from pathlib import Path +from hashlib import sha256 +from collections import Counter +import gzip +import json + +root=Path(__file__).resolve().parent +source=root/"upstream_application.py" +phase=root/"DATA-PHASES.json" +assert sha256(source.read_bytes()).hexdigest()=="d98987db98553dc55bfc80e3ca47abfcd51c57af6f8cda61101391d8eae94184" +assert sha256(phase.read_bytes()).hexdigest()=="c5916ff312678f12aba403847643fbbc29f643acec60bdf836fa56cd3e8251fa" +cpath=root/"ODD-TYPE-AB-CALLER.json" +caller=json.loads(cpath.read_bytes()) +rec=json.loads((root/"ODD-TYPE-AB-REPLAY.json").read_text()) +assert sha256(cpath.read_bytes()).hexdigest()==rec["caller_sha256"] +word=json.loads(gzip.decompress((root.parent/"WORD.json.gz").read_bytes())) +sha=sha256(json.dumps(word,sort_keys=True,separators=(",",":")).encode()).hexdigest() +assert sha==rec["source_word_sha256"] +r=json.loads((root.parent/"RESULT.json").read_text()) +stages=caller["stages"] +ambient=9+8*stages +helper_count=sum(r["native"]["helpers"].values()) +main_count=sum(d["roles"]*len(d["ports"]) for d in caller["types"].values()) +a=source.read_text() +a=a[:a.index("def inverse(matrix):")] +def patch(old,new,count=1): + global a + assert a.count(old)==count,(old,a.count(old)) + a=a.replace(old,new) +patch("range(153)","range(expected_ambient)",2) +patch("caller['ambient_rank'] == 153 and caller['stages'] == 18","caller['ambient_rank'] == expected_ambient and caller['stages'] == expected_stages") +patch("list(range(1,19))","list(range(1,expected_stages+1))",2) +patch("len(helpers) == 1080","len(helpers) == expected_helpers") +patch("len(owners) == 3952","len(owners) == expected_mains") +patch("all(0 <= r < 38 for r in plane_a)","all(r in type_owners(caller, 'A') for r in plane_a)") +patch("all(38 <= r < 76 for r in plane_b[:2])","all(r in type_owners(caller, 'B') for r in plane_b[:2])") +patch("word['public']+51","word['public']+word['owned_fields']") +patch("op in ('QUERY','IDLE_ONE')","op in ('QUERY','IDLE_ONE','IDLE_ODD')") +patch("all(1 <= s <= 18 for s in selected)","all(1 <= s <= expected_stages for s in selected)") +patch("rank = 8*len(selected); idle_uses += len(kind['ports'])","""rank = 8*len(selected); idle_uses += len(kind['ports']) + if op == 'IDLE_ODD': + need(len(selected)==1 and a[1:]==[-1], 'one complete signed child') + rank += 1 + stage=selected[0] + for pi in kind['ports']: + q=word['ports'][pi] + axes=[q]+[1 << (9+8*(stage-1)+j) for j in range(8)] + need(all(dot(x,y)==(i==j) for i,x in enumerate(axes) for j,y in enumerate(axes)), + 'signed rank-nine axes are independent and orthonormal') + pos=terms((x,1) for x in axes) + signed=sub(pos,terms([(q,2)])) + need(translation(sub(pos,signed))==q,'exact negative central phase correction')""") +patch("len(selection)==18","len(selection)==expected_stages") +patch("ambient=153, native_calls=18, native_public=1480, fresh_helpers=19440", + "ambient=expected_ambient, native_calls=expected_stages, native_public=word['public'], fresh_helpers=expected_helpers*expected_stages") +patch("reserved_native_banks=18*51","reserved_native_banks=expected_stages*word['owned_fields']") +def type_owners(C,t): + x=C["types"][t] + return range(x["offset"],x["offset"]+x["roles"]) +env=dict(globals(),__file__=str(source),expected_ambient=ambient,expected_stages=stages, + expected_helpers=helper_count,expected_mains=main_count) +exec(compile(a,str(source),"exec"),env) +invoice={"P":rec["paid"],"T":rec["target"]} +f=env["complex_application"] +phases=json.loads(phase.read_bytes()) +result=f(word,caller,{"invoice":invoice},phases) +bad=next(i for i,e in enumerate(caller["events"]) if e[0]=="J") +caller["events"][bad][2][0]=caller["events"][bad][2][1] +try: + f(word,caller,{"invoice":invoice},phases) +except ValueError as e: + assert str(e)=="A owners" +else: + raise AssertionError("alias control") +record={"native_sha256":sha,"caller_sha256":rec["caller_sha256"], + "source_reviewer_sha256":sha256(source.read_bytes()).hexdigest(), + "patched_application_sha256":sha256(a.encode()).hexdigest(), + "occurrence_and_geometry":result,"aliased_main_rejected":True, + "scope":"Current caller port and ownership substitution, full phase-polynomial native contact identities on disjoint stage axes, whole signed idle/output geometry, and ordered paid positions. Retains the standard nested chart and local operator premises and requires separate full native replay and complete fixed-tape tariff application."} +with (root/"ODD-PHYSICAL-BINDING.json").open("x") as out:json.dump(record,out,indent=2) +print("PASS exact physical binding",result["paid_positions"],result["native_contact_boundaries"],result["productive_fields"],flush=True) diff --git a/research/p104-rank137-productive-root-bound/dependencies/7298/RESULT.json b/research/p104-rank137-productive-root-bound/dependencies/7298/RESULT.json new file mode 100644 index 0000000000..c66ad2ed50 --- /dev/null +++ b/research/p104-rank137-productive-root-bound/dependencies/7298/RESULT.json @@ -0,0 +1,97 @@ +{ + "bit": { + "add_pairs": 30551, + "checked_edges": 62474, + "copies": 36, + "eligible": 0, + "normalized_neighbors": 31265, + "saving_upper": "0", + "shared_owned": 246, + "target": "10018846261809/2500000000000000", + "target_margin_upper": "-150259748047868384659982093203238820648182213480307/2500000000000000000000000000000000000000000000000", + "unresolved": 0 + }, + "complex": { + "cases": [ + { + "complete_upper": "-270628787660064862669178534471473339574581160716573/2000000000000000000000000000000000000000000000000", + "events": [ + [ + 34511, + 34513 + ], + [ + 36306, + 36308 + ], + [ + 41987, + 41989 + ] + ], + "new_ranks": [ + 4, + 4 + ], + "old_ranks": [ + 0, + 0 + ] + }, + { + "complete_upper": "-5299092335389733735192584095979599221603492103289/156250000000000000000000000000000000000000000000", + "events": [ + [ + 33139, + 33141 + ], + [ + 44255, + 44257 + ] + ], + "new_ranks": [ + 1, + 2 + ], + "old_ranks": [ + 0, + 1 + ] + }, + { + "complete_upper": "-844193076311159197372651950923578810446691810127887/5000000000000000000000000000000000000000000000000", + "events": [ + [ + 39852, + 39854 + ] + ], + "new_ranks": [ + 5, + 6 + ], + "old_ranks": [ + 0, + 1 + ] + } + ], + "copies": 17, + "counts": { + "all": 65118, + "different_charts": 4625, + "excluded": 14, + "shared_owned": 20 + }, + "probe": "91141748217473298207420876011401/25000000000000000000000000000000000", + "unresolved": 0 + }, + "controls": { + "cross_operands_rejected": true, + "nonnested_rank_not_dimension_gap": true, + "same_source_and_destination_commute": true, + "self_add_rejected": true + }, + "status": "PASS_ADJACENT_OWNED_ADD_EXCHANGE_BOUND" +} diff --git a/research/p104-rank137-productive-root-bound/dependencies/7298/pricing.py b/research/p104-rank137-productive-root-bound/dependencies/7298/pricing.py new file mode 100644 index 0000000000..40ec194017 --- /dev/null +++ b/research/p104-rank137-productive-root-bound/dependencies/7298/pricing.py @@ -0,0 +1,82 @@ +"""Directed interval arithmetic and the retained signed BIT invoice.""" +from collections import Counter +from fractions import Fraction +from functools import cache + +TARGET = "10018846261809/2500000000000000" +SCALE = 10**49 + + +def rounded(x, upper): + scaled = SCALE*x + if upper: + return Fraction(-((-scaled.numerator) // scaled.denominator), SCALE) + return Fraction(scaled.numerator // scaled.denominator, SCALE) + + +@cache +def log_bounds(x): + z = (x-1)/(x+1) + terms = 60 + exact_partial = 2*sum(z**(2*i+1)/(2*i+1) for i in range(terms)) + tail = 2*z**(2*terms+1)/((2*terms+1)*(1-z*z)) + return rounded(exact_partial, False), rounded(exact_partial+tail, True) + + +@cache +def power_bounds(rank, k): + binary = 2**(rank.bit_length()-1) + shift = binary.bit_length()-1 + l2, u2 = log_bounds(Fraction(2)) + lo, hi = log_bounds(Fraction(rank, binary)) + lo, hi = k*(lo+shift*l2), k*(hi+shift*u2) + assert 0 <= lo <= hi < 1 + + def exponential(z, terms): + total = term = Fraction(1) + for i in range(1, terms+1): + term *= -z/i + total += term + return total + + return rounded(rank*exponential(hi, 35), False), rounded(rank*exponential(lo, 34), True) + + +def cost(hist, k): + lower = upper = Fraction(0) + for r, n in hist.items(): + a, b = (n*x for x in power_bounds(r, k)) + lower += min(a, b) + upper += max(a, b) + return lower, upper + + +def profile(invoice, native, word, ranks): + copies = invoice["native_calls"] + assert copies == len(invoice["native_instances"]) == 36 + assert {tuple((r["stage"], r["copy"])) for r in invoice["native_instances"]} == { + (stage, which) for stage in range(1, 19) for which in (0, 1) + } + assert all(r["ports"] == 111 for r in invoice["native_instances"]) + assert native == Counter({int(r): n for r, n in invoice["native_paid"].items()}) + assert sum(native.values()) == 2871 + caller_paid = {1: 444, **{r: 444 for r in range(7, 57, 7)}} + assert invoice["event_counts"]["QUERY"]*111 == caller_paid[1] + assert invoice["event_counts"]["IDLE_ONE"]*111 == 8*444 + full_paid = Counter({r: copies*n for r, n in native.items()}) + full_paid.update(caller_paid) + + helpers = Counter(ranks[word["final"][j]]-ranks[word["start"][j]] + for j in range(222, word["public"])) + assert helpers == Counter({int(r): n for r, n in invoice["native_helpers"].items()}) + caller_targets = {**{r: 444 for r in range(8, 65, 7)}, 127: 222} + full_targets = Counter({r: copies*n for r, n in helpers.items()}) + full_targets.update(caller_targets) + assert full_paid == Counter({int(r): n for r, n in invoice["paid"].items()}) + assert full_targets == Counter({int(r): n for r, n in invoice["targets"].items()}) + assert sum(full_paid.values()) == invoice["paid_jobs"] + assert sum(full_targets.values()) == invoice["productive_fields"] + signed = full_targets.copy() + signed.subtract(full_paid) + assert sum(r*n for r, n in signed.items()) == invoice["rank_surplus"] + return signed, copies diff --git a/research/p104-rank137-productive-root-bound/dependencies/7298/verify.py b/research/p104-rank137-productive-root-bound/dependencies/7298/verify.py new file mode 100644 index 0000000000..a45510da25 --- /dev/null +++ b/research/p104-rank137-productive-root-bound/dependencies/7298/verify.py @@ -0,0 +1,253 @@ +"""Replay the exact adjacent shared-owned ADD census on both native words.""" +from argparse import ArgumentParser +from collections import Counter, defaultdict +from fractions import Fraction as Q +from functools import cache +from hashlib import sha1, sha256 +from itertools import pairwise +from pathlib import Path +import gzip +import json +import runpy + +HERE=Path(__file__).resolve().parent +BIT='research/paired-query-only-bit/' +PRICING=runpy.run_path(str(HERE/'pricing.py')) + + +def read(path,pin): + raw=path.read_bytes() + if raw.startswith(b'\x1f\x8b') and pin.get('uncompress',False): + raw=gzip.decompress(raw) + blob=sha1(f'blob {len(raw)}\0'.encode()+raw).hexdigest() + if sha256(raw).hexdigest()!=pin['sha256'] or blob!=pin['git_blob']: + raise ValueError('Changed input: '+path.name) + return raw + + +def rank(rows): + pivots={} + for x in rows: + while x and x.bit_length() in pivots: + x^=pivots[x.bit_length()] + if x: + pivots[x.bit_length()]=x + return len(pivots) + + +def commutes(a,b,c,d): + return a!=b and c!=d and a!=d and c!=b + + +def complex_scan(word,caller,early): + frames=word['frames'] + n=word['public'] + dims=list(map(len,frames)) + program=word['program'] + assert all(rank(f)==r for f,r in zip(frames,dims,strict=True)) + + @cache + def distance(a,b): + return 2*rank(frames[a]+frames[b])-dims[a]-dims[b] + + chains={} + at={} + scalar=[] + native=Counter() + for t,(tag,d,*args) in enumerate(program): + if tag=='MOVE': + a,b,owned=args + r=distance(a,b) + assert owned==(d>=n) and r==abs(dims[a]-dims[b])>0 + native[r]+=1 + continue + scalar.append(t) + if tag=='INIT': + assert d not in chains + chains[d]=[] + for role in {d,args[0]} if tag in ('ADD','COPY') else {d}: + if role>=n: + seq=chains[role] + at[t,role]=seq,len(seq) + seq.append(t) + if tag=='CLEAR': + del chains[d] + assert not chains and sum(native.values())==6280 + stages=[e[1] for e in caller['events'] if e[0]=='J'] + assert stages==list(range(1,18)) + copies=len(stages) + paid=Counter({r:copies*v for r,v in native.items()}) + main=set(word['live'])|{x+112 for x in word['live']}|set(word['hosted']['X2']+word['hosted']['Y2']) + helper=Counter(dims[b]-dims[a] for r,(a,b) in enumerate(zip(word['initial'],word['final'],strict=True)) if r not in main) + targets=Counter({r:copies*v for r,v in helper.items()}) + for info in caller['types'].values(): + for sign,offset,*bits in info['diagonal']: + assert (sign,offset,len(bits))==(-1,0,copies) + targets[1+8*sum(bits)]+=len(info['ports']) + for e in caller['events']: + if e[0]=='J': + continue + kind,tag,_,*args=e + if tag=='QUERY': + paid[1]+=len(caller['types'][kind]['ports']) + if tag in ('IDLE_ONE','IDLE_ODD'): + paid[8*len(args[0])+int(tag=='IDLE_ODD')]+=len(caller['types'][kind]['ports']) + assert dict(paid)=={int(r):v for r,v in early['invoice']['P'].items()} + assert dict(targets)=={int(r):v for r,v in early['invoice']['T'].items()} + assert sum(paid.values())==110536 and sum(targets.values())==22461 + net=targets.copy() + net.subtract(paid) + assert sum(r*v for r,v in net.items())==1424 + k=Q(early['price']['independent_raw_bracket'][1]) + base=PRICING['cost'](net,k) + assert base[1]<0 + counts=Counter() + rows=defaultdict(list) + for t,u in pairwise(scalar): + p,q=program[t],program[u] + if p[0]!=q[0] or p[0]!='ADD': + continue + counts['all']+=1 + a,b,f=p[1],p[2],p[-1] + c,d,g=q[1],q[2],q[-1] + if f==g: + continue + counts['different_charts']+=1 + shared={a,b}&{c,d} + if not any(role>=n for role in shared): + continue + counts['shared_owned']+=1 + if min(shared)0 and j+1=n for r in set(a[1:3])&set(b[1:3]))] + eligible=[(a,b) for a,b in owned if a[-1]!=b[-1]] + assert len(scalar)-1==31265 and len(all_pairs)==30551 and len(owned)==246 and not eligible + margin=PRICING['cost'](signed,Q(PRICING['TARGET']))[1] + assert margin<0 + return {'normalized_neighbors':len(scalar)-1,'add_pairs':len(all_pairs),'shared_owned':len(owned), + 'checked_edges':edges,'eligible':len(eligible),'unresolved':0,'copies':copies, + 'target':PRICING['TARGET'],'target_margin_upper':str(margin),'saving_upper':'0'} + + +def controls(): + assert commutes(0,2,1,2) and commutes(0,1,0,2) + assert not commutes(0,1,1,2) and not commutes(0,1,1,0) + assert not commutes(0,0,1,2) + assert 2*rank([1,2,1,4])-4==2 + return {'same_source_and_destination_commute':True,'cross_operands_rejected':True, + 'self_add_rejected':True,'nonnested_rank_not_dimension_gap':True} + + +def unique_keys(entries): + out={} + for k,v in entries: + if k in out: + raise ValueError('Duplicate manifest key: '+k) + out[k]=v + return out + + +def run(root): + p=json.loads((HERE/'PROVENANCE.json').read_bytes(),object_pairs_hook=unique_keys) + c={} + for k,pin in p['bundled'].items(): + raw=read(HERE/k,pin) + c[k]=json.loads(gzip.decompress(raw) if raw.startswith(b'\x1f\x8b') else raw) + rows=json.loads((HERE/'SOURCES.json').read_bytes(),object_pairs_hook=unique_keys)['files'] + pins=unique_keys((row['path'],row) for row in rows) + bitword=BIT+'retained/inputs/BIT-NATIVE-WORD.json.gz' + invoice=BIT+'EFREE-RESULT.json' + return {'status':'PASS_ADJACENT_OWNED_ADD_EXCHANGE_BOUND','controls':controls(), + 'complex':complex_scan(c['inputs/WORD.json.gz'],c['inputs/CALLER.json.gz'],c['inputs/EARLY-RESULT.json.gz']), + 'bit':bit_scan(json.loads(gzip.decompress(read(root/bitword,pins[bitword]))), + json.loads(read(root/invoice,pins[invoice])))} + + +if __name__=='__main__': + assert __debug__ + parser=ArgumentParser(description=__doc__) + parser.add_argument('--root',type=Path,default=Path.cwd()) + args=parser.parse_args() + result=json.dumps(run(args.root),sort_keys=True,indent=2)+'\n' + frozen=HERE/'RESULT.json' + if frozen.is_file(): + assert result==frozen.read_text() + print(result,end='') diff --git a/research/p104-rank137-productive-root-bound/dependencies/r52/projector.py b/research/p104-rank137-productive-root-bound/dependencies/r52/projector.py new file mode 100644 index 0000000000..2a0413369d --- /dev/null +++ b/research/p104-rank137-productive-root-bound/dependencies/r52/projector.py @@ -0,0 +1,116 @@ +"""Independent exact rational prefix-conjugate projector test.""" +from argparse import ArgumentParser +from fractions import Fraction as Q +from hashlib import sha256 +from itertools import combinations +import json +from pathlib import Path +from signal import SIGALRM, alarm, signal + +CALLER = '255d89f38cd45e38e5770f559bc43dc217e989032359768cdc7e8cdfd64b47bc' + + +def basis(n): + return [[Q(i == j) for i in range(n)] for j in range(n)] + + +def mix(a,b,c,d): + return [c*x+d*y for x,y in zip(a,b,strict=True)] + + +def canonical(row,col): + assert sum(x*y for x,y in zip(row,col,strict=True)) == 1 + pivot = next(x for x in row if x) + return tuple(x/pivot for x in row),tuple(x*pivot for x in col) + + +def controls(): + R,C = basis(2),basis(2) + original = canonical(R[0],C[0]) + R.reverse() + C.reverse() + assert canonical(R[1],C[1]) == original + R[1] = mix(R[1],R[0],Q(1),Q(-2)) + C[0] = mix(C[0],C[1],Q(1),Q(2)) + assert canonical(R[1],C[1]) != original + return ['swap_projector_relabel','signed_shear_changes_projector'] + + +def sample(c,q): + ty = c['types']['B'] + offset,n = ty['offset'],ty['roles'] + R,C = basis(n),basis(n) + found = {} + for i,e in enumerate(c['events']): + if e[0]=='J': + s,t,alpha,beta = e[3] + s,t = s-offset,t-offset + a,b,cc,d = Q(1),Q(alpha)*q,1/(2*q),Q(beta) + assert a*d-b*cc == 1 + row_s,row_t = R[s],R[t] + col_s,col_t = C[s],C[t] + R[s],R[t] = mix(row_s,row_t,a,b),mix(row_s,row_t,cc,d) + C[s],C[t] = mix(col_s,col_t,d,-cc),mix(col_s,col_t,-b,a) + continue + if e[0]!='B': + continue + _,op,r,*args = e + r -= offset + if op=='IDLE_ONE': + if len(args[0])==1: + found[i] = (r+offset,args[0][0],canonical(R[r],C[r])) + continue + if op=='SWAP': + s = args[0]-offset + R[r],R[s] = R[s],R[r] + C[r],C[s] = C[s],C[r] + elif op in ('QUERY','ADD'): + s = args[0]-offset + k = q**args[1] if op=='QUERY' else Q(args[1]) + R[r] = mix(R[r],R[s],Q(1),k) + C[s] = mix(C[s],C[r],Q(1),-k) + else: + assert op in ('LAMBDA','IDLE_ODD','SCALE') + k = Q(1) if op=='LAMBDA' else q**args[1] if op=='IDLE_ODD' else Q(args[0]) + assert k + R[r] = [x*k for x in R[r]] + C[r] = [x/k for x in C[r]] + assert len(found)==34 + for j,diag in enumerate(ty['diagonal']): + want = q**diag[0] + assert R[j] == [Q(k == j)*want for k in range(n)] + for k in range(n): + assert sum(a*b for a,b in zip(R[j],C[k],strict=True)) == (j==k) + return found + + +def run(c): + plus,minus = [sample(c,Q(q)) for q in (1,-1)] + assert list(plus)==list(minus) + checked = [] + for first,second in combinations(plus,2): + r,a,x = plus[first] + s,b,y = plus[second] + assert (r,a)==minus[first][:2] and (s,b)==minus[second][:2] + if a==b: + continue + p = x==y + m = minus[first][2]==minus[second][2] + checked.append({'clocks':[first,second],'roles':[r,s],'stages':[a,b], + 'plus':p,'minus':m}) + assert len(checked)==544 + return {'caller_sha256':CALLER,'checked':len(checked),'controls':controls(), + 'both_survivors':sum(r['plus'] and r['minus'] for r in checked), + 'rows':checked} + + +if __name__ == '__main__': + p = ArgumentParser(description=__doc__) + p.add_argument('caller',type=Path) + a = p.parse_args() + signal(SIGALRM,lambda *_: (_ for _ in ()).throw(TimeoutError('exact prefix watchdog'))) + alarm(25) + raw = a.caller.read_bytes() + assert sha256(raw).hexdigest()==CALLER + print(json.dumps(run(json.loads(raw)),indent=2,sort_keys=True)) + alarm(0) diff --git a/research/p104-rank137-productive-root-bound/dependencies/round30/complex/source/inputs/CALLER.json.gz b/research/p104-rank137-productive-root-bound/dependencies/round30/complex/source/inputs/CALLER.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..290ef7c9c52553e421350ea76ac73eb98d1f187b GIT binary patch literal 11215 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 PMn*AXLoONv`|LZDAJ$_iWZB7Aj|ZO zHnOeC@=Sw8{`;OQ+mfmABw1``f%?IaNQ%54=iYlRf4!Q`vb&;-*ddi<<8d_&G!8^*P#C4cKTv_`t{>^4Q++!t8)Q~x@f ziJOr8e7Jsgrl0uvxKUXb)w(~>E9FTCtMPYhE+1QN*G*N&Hoq&H{-ZBwx{P%<5m7kr zt@KU=g*RN9*=9rG?!Yw!uoNtTWb2030Y4KA3<+DBwAvw0r@~rapl z!rdS69w?6kqLDqVbDS}ul93$Ns;>kHS44n77!ZmD+`$&mfkWLO(|D!9BJ9(8^F0$z zMiU4rq&(tkfIOnKCIflk52!1gLyAOYf(0xgjcQLwOxh~tUNHB+Ads`U5r$BBl@?N< z1|TPy0RDuO3NvVhx(Em1G(#3PK=HG5t6tC>bCpJpHC7>23e+QDM*%dz3#v4T1A~W? zqjZ0U?Z0cVW`G+^45o{36|0JDuO%YHf=9s30o=%gWmx#fa79+`g@b@AzCauTTd*eT z6No|ZT%?Et5tIxS2jDm4GzY`?t~S}lRJ7f9eSsM=5ZBgU_PY+1wBA1EakYwNPu|=3 z3!dT!qUi%cU@bR-LR95O_uN{1V%Uxi0KMH88GZr@6|Xk6^-Aa>-f&6 zpi3AA91G?Kl9KTe@cr-}SSpp^=6$cr(D8nlS_>I^v=zC@fzn;D9+=|zZZ6mk*>ilS zOP2FzXJ|QH5iVGcQ`$J-E?CadXb3wM%k`ES9qMSJsqaHhC#FPWBTQn=xNf>ndAr>r zPSM0y9a9)FfOFF~`y)0N1^4;QzF+p!DK6pzC=ic;f9Rt~*?p{=*zTt8kv=iKl8K?U zOU$a2PHg5yVjxW^kV2w7sYG`xU7~qitzuWLV=uQjrO?MsT;@$IKJxa*{j#R0mQy{r zaY{5n)lXFMBcVL%LWwSa}LSsH>7!4Pl?P)h<4@b}FMzGeRQY1f8jD zhtnsp$WK>X&n2#Tdcu5SfJCJvj#=Y*>OM6Qp+V)SHh1Ic#d=XO6F*$pAR(UL@WH7o z)EcgB=fwt;6`To#TN9ytgLez3ZpjBO+fJi|b0aC3=$+LS=5~Vn{GiBabf8|}YVT0_ zN%OrAhM0+&w0Lm6D`Qn3gdRkY;4KtT<>YOD-2f3R==6A;RL)5*UII<41dT&WZ}3x- z?c=(rHp|%NZL#@?BE8!k1Ky9driq*7`T5zZjl269UwYlec6QeS=fe$aJu7;`5SO#& z{?o21i+Wbx7i~9N7tQYcO0U{WL2!*rknSwSx<0eV0FM zvD)LT!*#%{Xc{29=pA)+)Glk9A! zt(U_s>fi(NQUyn7_&kUu{^4GQ+M$VW62RoN0TlR>ghxOn9OfKfIDiRCX^gho!iA16 z!i;=5@|iinDgd+EIN%i=1dX3&+*oBLIIu^42ghMDYL)Yrw9~;500q$$Uu>yB+$us^ zPxMl~Kytf|G*MRT!@aP$0c}3#PT6pAeWa8(0c|iQ)a$uBpUmU`5Wlwmxc@k9Rh)rU9#dY!*|``7&4Ki~ZLI{(MpzyGH{CwoL( z=ezqt^^7lD@{OopiN&IzLPfiZD=UMypzxwxELT#mq7UV2VOHKQRx7pCd{t-EDn=no RWU|j!zX7oRttn#~002MZ1rh)N literal 0 HcmV?d00001 diff --git a/research/p104-rank137-productive-root-bound/dependencies/round30/complex/source/inputs/WORD.json.gz b/research/p104-rank137-productive-root-bound/dependencies/round30/complex/source/inputs/WORD.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..077bf48c35db0ddafae81f1bfa0ffacc30894b2b GIT binary patch literal 381696 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

XOZh+uUOZ}_MOmdIFyLvnwHEaHPZM%i1L3*A~F0 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

QpqekB38~) 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 and any(value) + present = True + exponents.add(exponent) + parities.add(q&1) + terms+=1 + if present: + occupied.append(r) + assert terms + result = {'column_rows':occupied,'terms':terms} + if len(exponents)>1: + return result | {'status':'mixed_body_exponents'} + if len(parities)>1: + return result | {'status':'mixed_central_parity'} + exponent,=exponents + central,=parities + body = list(exponent.to_bytes(N,'little')) + if any(v>1 for v in body): + return result | {'status':'non_squarefree_body'} + r=8*sum(body)+central + assert 0<=r<=137 + return result | {'body':body,'central_parity':central,'ranks':[r,137-r], + 'status':'positive_column_only' if 0=deadline: + break + if b: + model['apply'](rows,events[b-1]) + for r in ROOTS: + records.append({'root':r,'boundary':b,**classify(rows,r)}) + complete = len(records)==LIMIT + ending = [] + if complete: + full=sum(1<<(8*j) for j in range(N)) + assert rows==[{(i,3,full):(grid,0)} if i in ROOTS else {} for i in range(c['roles'])] + ending=list(ROOTS) + counts=dict(Counter(row['status'] for row in records)) + unvisited=[[r,b] for b in range(len(records)//2,len(events)+1) for r in ROOTS] + assert len(records)+len(unvisited)==LIMIT + save(out,dict(head=HEAD,caller_head=CALLER_HEAD,pins=PINS,controls=check,seconds_cap=seconds, + cases_visited=len(records),counts=counts,unvisited=unvisited, + roots_starting_endpoints_checked=list(ROOTS),roots_final_endpoints_checked=ending, + max_stage_occurrences=max(stage_counts.values()),integer_grid_bits=grid.bit_length(), + survivors=[r for r in records if r['status']=='positive_column_only'],records=records)) + print(json.dumps({'counts':counts,'visited':len(records),'unvisited':len(unvisited), + 'endpoints':ending},sort_keys=True)) + + +def main(): + p=ArgumentParser() + p.add_argument('dependencies',type=Path,nargs='?',default=Path(__file__).resolve().parent/'dependencies') + p.add_argument('out',type=Path,nargs='?') + p.add_argument('--seconds',type=int,default=45,choices=range(3,46),metavar='3..45') + p.add_argument('--controls-only',action='store_true') + a=p.parse_args() + if a.controls_only: + print(json.dumps(controls())) + return + if a.out is None or a.out.exists(): + p.error('a fresh output file is required') + + def timeout(*_): + raise TimeoutError('hard runner deadline') + + signal(SIGALRM,timeout) + alarm(a.seconds) + try: + run(a.dependencies,a.out,monotonic()+min(42,a.seconds-1),a.seconds) + except TimeoutError: + save(a.out,dict(head=HEAD,status='hard_timeout',unverified=LIMIT,seconds_cap=a.seconds)) + raise SystemExit(2) + finally: + alarm(0) + + +if __name__=='__main__': + assert __debug__ + main() diff --git a/research/p104-rank137-productive-root-bound/engines/column_reverse.py b/research/p104-rank137-productive-root-bound/engines/column_reverse.py new file mode 100644 index 0000000000..f6a6aa3348 --- /dev/null +++ b/research/p104-rank137-productive-root-bound/engines/column_reverse.py @@ -0,0 +1,191 @@ +"""All-cut non-coordinate rank-137 root column gate on the signed #7113 caller.""" + +import argparse +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +import json +from pathlib import Path +import runpy +from time import monotonic + +CALLER = "255d89f38cd45e38e5770f559bc43dc217e989032359768cdc7e8cdfd64b47bc" +HEAD = "ed090b57ed88f8859e5ff4643645099e6ba856ea" +CALLER_HEAD = "07a76c5e2738882c0cb322278e56f6cae3c9885d" +PINS = { + "lead/run/PRICE.json": "8df5a1b86b5c2429f1581dcf4216d51e45f4297fa94fabc7f9847b128d7568e2", + "independent/reverse.py": "d763b974585a439472bcaacf0913fc5c8469ea24212545287a3a359526ff51cd", + "independent/RESULT.json": "fc1124d08396cbd205424106e3053529a46648b036d3076bdd979f931fef6c30", +} +ROOTS = (0,18) +ZERO = (0,)*17 +ONE = (1,)*17 +LIMIT = 9568 + + +def checked(path,pin): + raw = path.read_bytes() + if sha256(raw).hexdigest() != pin: + raise ValueError(f"Changed source {path.name}") + return raw + + +def save(path,data): + raw = (json.dumps(data,sort_keys=True,indent=2)+"\n").encode() + temp = path.with_suffix(".tmp") + temp.write_bytes(raw) + temp.replace(path) + return sha256(raw).hexdigest() + + +def identify(rows): + occupied = [r for r,row in enumerate(rows) if row] + terms = [(r,q,body,scalar) for r in occupied for (q,body),scalar in sorted(rows[r].items())] + assert terms and all(0 <= q < 4 and len(body) == 17 and any(scalar) for _,q,body,scalar in terms) + origin,phase,body,_ = terms[0] + base = {"column_rows":occupied,"terms":len(terms)} + first = [origin,phase,list(body)] + for r,q,m,_ in terms: + if m != body: + return {**base,"status":"mixed_body_exponents","conflicting_terms":[first,[r,q,list(m)]]} + for r,q,m,_ in terms: + if (q-phase)%2: + return {**base,"status":"mixed_central_parity","conflicting_terms":[first,[r,q,list(m)]]} + if any(x not in (0,1) for x in body): + return {**base,"status":"non_squarefree_body","common_term":first} + central = phase%2 + prefix_rank = 8*sum(body)+central + ranks = [prefix_rank,137-prefix_rank] + base.update(body=body,central_parity=central,ranks=ranks) + if not 0 < prefix_rank < 137: + return {**base,"status":"zero_rank_side"} + coefficients = [[r,(q-central)%4,*map(str,scalar)] for r,q,m,scalar in terms] + assert all(q in (0,2) for _,q,_,_ in coefficients) + return {**base,"status":"positive_column_only","ordinary_even_coefficients":coefficients} + + +def controls(reverse): + body = (1,)*8+(0,)*9 + active = [{(1,body):(Q(1),Q(0)),(3,body):(Q(0),Q(1,2))}, + {(3,body):(Q(-3,2),Q(1,3))}] + positive = identify(active) + assert positive["status"] == "positive_column_only" and positive["ranks"] == [65,72] + assert len(positive["column_rows"]) == 2 and len(positive["ordinary_even_coefficients"]) == 3 + assert identify([*active,{(2,body):(Q(1),Q(0))}])["status"] == "mixed_central_parity" + assert identify([*active,{(3,ZERO):(Q(1),Q(0))}])["status"] == "mixed_body_exponents" + assert identify([{(1,(2,)+(0,)*16):(Q(1),Q(0))}])["status"] == "non_squarefree_body" + assert identify([{(2,ZERO):(Q(1),Q(0))}])["status"] == "zero_rank_side" + assert identify([{(3,ONE):(Q(1),Q(0))}])["status"] == "zero_rank_side" + return [*reverse["control"](),"noncoordinate_even_residual_positive","mixed_body_rejected", + "mixed_central_parity_rejected","repeated_body_rejected","zero_rank_both_sides"] + + +def price_record(frozen): + assert (frozen["head"],frozen["caller_head"],frozen["copies"],frozen["ports_per_root"]) == ( + HEAD,CALLER_HEAD,17,96) + assert tuple(frozen["root_roles"]) == ROOTS + assert sum(frozen["original_paid"].values()) == 110536 + assert sum(frozen["original_productive"].values()) == 22461 + assert not frozen["paid_delta"] + rows = frozen["stage_partition_classes"] + assert len(rows) == 34 and len({r["ranks"][0] for r in rows}) == 34 + assert sum(r["stage_subset_multiplicity"] for r in rows) == 262142 + assert all(sum(row["ranks"]) == 137 and min(row["ranks"]) > 0 for row in rows) + assert all(Q(row["complete_margin_interval"][0]) > 0 for row in rows) + maximum = max(Q(row["credit_interval"][1]) for row in rows) + assert 32 < maximum < 33 + assert Q(frozen["baseline_interval"][1])+maximum-96 < 0 + assert Q(frozen["baseline_interval"][1])+2*maximum-96 < 0 + return { + "head":HEAD,"caller_head":CALLER_HEAD,"input_pins":{"caller":CALLER,**PINS}, + "scope":{"roots":ROOTS,"boundaries_per_root":4784,"case_cap":LIMIT,"hard_seconds":45}, + "old_invoice":frozen, + "one_root_maximum_credit_upper":str(maximum), + "both_roots_optimistic_credit_upper":str(2*maximum), + "single_new_rank_one_job_debit_at_96_ports":"96", + "one_root_margin_upper_with_one_rank_one_debit": + str(Q(frozen["baseline_interval"][1])+maximum-96), + "both_roots_margin_upper_with_one_rank_one_debit": + str(Q(frozen["baseline_interval"][1])+2*maximum-96), + "all_extra_ordinary_and_physical_work_granted_free_in_optimistic_quote":True, + "predeclared_followup":{"max_cases":3,"paired_row_inverse_seconds":45, + "priced_compiler_ownership_seconds":90}, + } + + +def audit(caller,reverse,known,deadline): + events = caller["events"] + kind = caller["types"]["A"] + assert len(events) == 4783 and kind["roles"] == 36 and len(kind["ports"]) == 96 + assert (Q(kind["alpha2"]),Q(kind["beta2"])) == (Q(-1),Q(0)) + expected = [(r,k) for r in ROOTS for k in reversed(range(len(events)+1))] + assert len(expected) == LIMIT + lookup = {(r["root"],r["boundary"]):r for r in known["records"]} + assert len(lookup) == 241 and not known["positive_column_only"] + matched = 0 + records = [] + completed_roots = [] + for r in ROOTS: + assert kind["diagonal"][r][:2] == [-1,0] and tuple(kind["diagonal"][r][2:]) == ONE + rows = [{} for _ in range(kind["roles"])] + rows[r] = {(3,ONE):(Q(1),Q(0))} + for boundary in reversed(range(len(events)+1)): + if monotonic() >= deadline: + break + key = r,boundary + row = {"root":r,"boundary":boundary,**identify(rows)} + if key in lookup: + prior = lookup[key] + again = reverse["case"](rows,prior["slot"]) + assert again == {k:v for k,v in prior.items() if k not in ("root","boundary","slot")} + matched += 1 + records.append(row) + if boundary: + reverse["undo"](rows,events[boundary-1],Q(kind["alpha2"])) + else: + assert rows[r] == {(0,ZERO):(Q(1),Q(0))} + assert all(not row for i,row in enumerate(rows) if i != r) + completed_roots.append(r) + continue + break + assert [(r["root"],r["boundary"]) for r in records] == expected[:len(records)] + if len(records) == LIMIT: + assert matched == len(lookup) and completed_roots == list(ROOTS) + return { + "counts":dict(Counter(r["status"] for r in records)), + "cases_visited":len(records),"unvisited":expected[len(records):], + "old_coordinate_controls_matched":matched,"initial_endpoints_recovered":completed_roots, + "survivors":[r for r in records if r["status"] == "positive_column_only"], + "records":records, + } + + +def main(): + start = monotonic() + if not __debug__: + raise RuntimeError("Assertions required") + p = argparse.ArgumentParser(description=__doc__) + p.add_argument("--caller",type=Path,required=True) + p.add_argument("--r54",type=Path,required=True) + p.add_argument("--out",type=Path,required=True) + p.add_argument("--seconds",type=float,default=42) + p.add_argument("--price-only",action="store_true") + args = p.parse_args() + assert 0 < args.seconds <= 42 + raw_caller = checked(args.caller,CALLER) + sources = {name:checked(args.r54/name,pin) for name,pin in PINS.items()} + args.out.mkdir(parents=True,exist_ok=True) + price_sha = save(args.out/"PRICE.json",price_record(json.loads(sources["lead/run/PRICE.json"]))) + if args.price_only: + return + reverse = runpy.run_path(str((args.r54/"independent/reverse.py").resolve())) + known = json.loads(sources["independent/RESULT.json"]) + assert known["caller_sha256"] == CALLER + checks = controls(reverse) + result = audit(json.loads(raw_caller),reverse,known,start+args.seconds) + save(args.out/"SUPPORT.json",{"head":HEAD,"caller_sha256":CALLER,"price_sha256":price_sha, + "controls":checks,**result}) + + +if __name__ == "__main__": + main() diff --git a/research/p104-rank137-productive-root-bound/engines/compare_columns.py b/research/p104-rank137-productive-root-bound/engines/compare_columns.py new file mode 100644 index 0000000000..ba546c6507 --- /dev/null +++ b/research/p104-rank137-productive-root-bound/engines/compare_columns.py @@ -0,0 +1,39 @@ +"""Compare the independent forward result to the exact sealed R55 lead receipt.""" +from argparse import ArgumentParser +from hashlib import sha256 +import json +from pathlib import Path + +LEAD = '2ea6101e185bf2fd792c5d18530b878fa61a5ddb61403782d05034ab33ff2b00' + + +def main(): + p=ArgumentParser() + p.add_argument('forward',type=Path) + p.add_argument('lead',type=Path) + a=p.parse_args() + raw=a.lead.read_bytes() + assert sha256(raw).hexdigest()==LEAD + local,peer=json.loads(a.forward.read_bytes()),json.loads(raw) + assert local['head']==peer['head'] and local['pins']['CALLER.json']==peer['caller_sha256'] + assert local['cases_visited']==peer['cases_visited']==9568 + assert not local['unvisited'] and not peer['unvisited'] + assert local['counts']==peer['counts'] and not local['survivors'] and not peer['survivors'] + + def keyed(report): + rows={(r['root'],r['boundary']):r for r in report['records']} + assert len(rows)==len(report['records'])==9568 + return rows + + observed,expected=keyed(local),keyed(peer) + assert observed.keys()==expected.keys() + for key,row in observed.items(): + assert all(row[k]==expected[key][k] for k in ( + 'status','column_rows','terms','body','central_parity','ranks') if k in row), key + print(json.dumps({'matched_case_keys':len(observed),'counts':local['counts'], + 'lead_support_sha256':LEAD},sort_keys=True)) + + +if __name__=='__main__': + assert __debug__ + main() diff --git a/research/p104-rank137-productive-root-bound/engines/coordinate.py b/research/p104-rank137-productive-root-bound/engines/coordinate.py new file mode 100644 index 0000000000..6ecec74aa7 --- /dev/null +++ b/research/p104-rank137-productive-root-bound/engines/coordinate.py @@ -0,0 +1,261 @@ +"""Price and exact body-one isolation for the two Type A rank-137 roots.""" +from argparse import ArgumentParser +from collections import Counter +from fractions import Fraction as Q +import gzip +from hashlib import sha256 +import json +from math import comb +from pathlib import Path +import runpy +from signal import SIGALRM, alarm, signal +from time import monotonic + +HEAD = 'ed090b57ed88f8859e5ff4643645099e6ba856ea' +CALLER_HEAD = '07a76c5e2738882c0cb322278e56f6cae3c9885d' +SOURCE = 'round30/complex/source/inputs/' +PINS = { + SOURCE+'WORD.json.gz': '2c523ce6fdd6092d758fedc3602a0bcedb692b9766f1e41f903351ba4dee1756', + SOURCE+'CALLER.json': '255d89f38cd45e38e5770f559bc43dc217e989032359768cdc7e8cdfd64b47bc', + SOURCE+'EARLY-RESULT.json': '691025fe95c7938a6da211244d4d5b6187d88a9de1acff0862eeb7f0ce7deaa7', + '7298/RESULT.json': 'aaf594b981f37e7dbddb12fd052d9286cf5c8c95c8d5265ab6426408f6e58cc5', + '7298/verify.py': '4a4291c9019ef23c664ae9646b076dc57054b49f5c5ffd21908aa9f0edf19902', + '7298/pricing.py': 'f4d0b6c9314b838d882d6d06020f24881c19a3fda97a7c00df87b1e920785182', + 'r52/projector.py': 'acc29bb66913fd7ba0baef848805f5ab64bea5428f5225397aac5d84a1f9fadd', + '7113/check_odd_caller_exact_grid.py': 'abd5a5fd011b71e5b382cbc058855594d4f2fe7b049f375506675c0303180f54', + '7113/check_odd_physical_binding.py': '5c80c3b0415a7f91d216395248dd6f13297eed637732098e1ca8fb0548951b98', +} +ROOTS = (0,18) + + +def decode(raw): + def unique(pairs): + result = dict(pairs) + assert len(result) == len(pairs), 'duplicate JSON key' + return result + return json.loads(raw,object_pairs_hook=unique) + + +def save(out,name,obj): + tmp = out/(name+'.tmp') + tmp.write_text(json.dumps(obj,indent=2,sort_keys=True)+'\n') + tmp.replace(out/name) + + +def authenticate(root): + files = {} + for name,h in PINS.items(): + raw = (root/name).read_bytes() + assert sha256(raw).hexdigest()==h, ('changed input',name) + files[name] = raw + return files + + +def partitions(stages): + return [(m,c,8*m+c,8*(stages-m)+1-c,comb(stages,m)) + for m in range(stages+1) for c in (0,1) + if 8*m+c and 8*(stages-m)+1-c] + + +def price(root, files, out): + word = decode(gzip.decompress(files[SOURCE+'WORD.json.gz'])) + c = decode(files[SOURCE+'CALLER.json']) + early = decode(files[SOURCE+'EARLY-RESULT.json']) + predecessor = runpy.run_path(str(root/'7298/verify.py')) + replay = predecessor['complex_scan'](word,c,early) + assert json.loads(json.dumps(replay))==decode(files['7298/RESULT.json'])['complex'] + k = Q(replay['probe']) + assert replay['copies']==17 and k==Q(early['price']['independent_raw_bracket'][1]) + paid,productive = (Counter({int(r):v for r,v in early['invoice'][key].items()}) for key in ('P','T')) + assert (sum(paid.values()),sum(productive.values()),productive[137])==(110536,22461,208) + a = c['types']['A'] + assert (a['roles'],a['offset'],len(set(a['ports'])),c['stages'])==(36,0,96,17) + assert len(a['ports'])==96 and len(a['diagonal'])==36 + assert tuple(i for i,d in enumerate(a['diagonal']) if d==[-1,0]+[1]*17)==ROOTS + assert len(c['events'])+1==4784 + net = productive.copy() + net.subtract(paid) + assert sum(r*v for r,v in net.items())==1424 + cost = predecessor['PRICING']['cost'] + baseline = cost(net,k) + assert baseline[1]<0 + rows = [] + for m,central,p,s,count in partitions(17): + delta = Counter() + delta[p] += 96 + delta[s] += 96 + delta[137] -= 96 + changed = net.copy() + changed.update(delta) + credit,margin = cost(delta,k),cost(changed,k) + assert credit[0]>0 and margin[0]>0 and p+s==137 + rows.append(dict(prefix_stage_count=m,prefix_central_axis=bool(central),ranks=[p,s], + stage_subset_multiplicity=count,productive_delta=dict(delta), + credit_interval=list(map(str,credit)),complete_margin_interval=list(map(str,margin)))) + assert len(rows)==34 and sum(r['stage_subset_multiplicity'] for r in rows)==262142 + best = max(Q(row['credit_interval'][1]) for row in rows) + save(out,'PRICE.json',dict(head=HEAD,caller_head=CALLER_HEAD,pins=PINS,root_roles=ROOTS, + crossing_upper=str(k),copies=17,ports_per_root=96,baseline_interval=list(map(str,baseline)), + original_paid=dict(paid),original_productive=dict(productive),paid_delta={}, + stage_partition_classes=rows,ordered_factorizations_per_root=262142, + whole_compatible_optimistic_credit_upper=str(2*best), + optimistic_complete_margin_upper=str(baseline[1]+2*best), + whole_rule='At most one split per rank-137 root; grant compatibility and all added costs free for the upper.')) + return c + + +def isolated(rows,columns,r): + found = {} + for p,(row,col) in enumerate(zip(rows,columns,strict=True)): + a,b = row[r],col[r] + if not a or not b: + continue + if any(x for i,x in enumerate(row) if i!=r) or any(x for i,x in enumerate(col) if i!=r): + continue + assert a*b==1 + found[p] = [str(a),str(b)] + assert len(found)<=1 + return found + + +def step(rows,cols,event,q,alpha,mix): + def add(d,s,value): + rows[d] = mix(rows[d],rows[s],Q(1),value) + cols[s] = mix(cols[s],cols[d],Q(1),-value) + + if event[0]=='J': + _,_,(u,v,x,y),_ = event + assert len({u,v,x,y})==4 + add(v,u,1/q) + add(x,y,alpha*q) + elif event[0]=='A': + _,op,r,*args = event + if op in ('ADD','QUERY'): + s,value = args + assert s!=r + add(r,s,Q(value) if op=='ADD' else q**value) + elif op=='SWAP': + s, = args + rows[r],rows[s] = rows[s],rows[r] + cols[r],cols[s] = cols[s],cols[r] + elif op in ('SCALE','IDLE_ODD'): + value = Q(args[0]) if op=='SCALE' else q**args[1] + assert value + rows[r] = [value*x for x in rows[r]] + cols[r] = [x/value for x in cols[r]] + else: + assert op in ('LAMBDA','IDLE_ONE') + return False + else: + assert event[0]=='B' + return False + return True + + +def controls(basis,mix): + rows,cols = basis(3),basis(3) + assert isolated(rows,cols,0)=={0:['1','1']} + step(rows,cols,['A','SWAP',0,1],Q(1),Q(-1),mix) + assert isolated(rows,cols,0)=={1:['1','1']} + step(rows,cols,['A','SCALE',1,'-3/2'],Q(-1),Q(-1),mix) + assert isolated(rows,cols,0)=={1:['-3/2','-2/3']} + step(rows,cols,['A','ADD',2,1,'-1'],Q(1),Q(-1),mix) + assert not isolated(rows,cols,0) + rows,cols = basis(3),basis(3) + step(rows,cols,['A','ADD',0,2,'1'],Q(1),Q(-1),mix) + assert not isolated(rows,cols,0) + assert sum(x[-1] for x in partitions(17))==262142 and len(partitions(17))==34 + return ['exact_identity_and_permuted_slot','signed_reciprocal_scale', + 'column_only_and_row_only_both_insufficient','positive_partition_counts'] + + +def scan(c,engine,out,deadline,seconds): + n=36 + basis,mix = engine['basis'],engine['mix'] + control = controls(basis,mix) + phases = {q:(basis(n),basis(n)) for q in (Q(1),Q(-1))} + alpha = Q(c['types']['A']['alpha2']) + assert alpha==-1 + events = c['events'] + classification = Counter() + witnesses = [] + visited = 0 + state_epoch = 0 + snapshot = {} + for boundary in range(len(events)+1): + if monotonic()>=deadline: + break + if boundary: + changes = [step(R,C,events[boundary-1],q,alpha,mix) for q,(R,C) in phases.items()] + assert changes[0]==changes[1] + if changes[0]: + state_epoch += 1 + if not boundary or changes[0]: + snapshot={r:{q:isolated(R,C,r) for q,(R,C) in phases.items()} for r in ROOTS} + for r in ROOTS: + plus,minus = snapshot[r][Q(1)],snapshot[r][Q(-1)] + common = plus.keys() & minus.keys() + if not common: + classification['not_isolated_in_a_common_slot'] += 1 + continue + slot, = common + edge = boundary in (0,len(events)) + classification['endpoint_control' if edge else 'interior_support_only'] += 1 + witnesses.append(dict(boundary=boundary,root=r,slot=slot,q_plus=plus[slot], + q_minus=minus[slot],body_one_state_epoch=state_epoch,endpoint=edge)) + visited += 1 + if visited==len(events)+1: + for q,(R,C) in phases.items(): + assert R==[[q*x for x in row] for row in basis(n)] + assert C==[[q*x for x in row] for row in basis(n)] + assert classification['endpoint_control']==4 + assert sum(classification.values())==visited*len(ROOTS) + save(out,'BODY1.json',dict(head=HEAD,caller_head=CALLER_HEAD,pins=PINS,seconds_cap=seconds, + body_specialization=1,q_specializations=[1,-1],controls=control, + boundaries_total=len(events)+1,boundaries_visited=visited,root_cases_visited=visited*2, + unresolved_boundary_interval=None if visited==len(events)+1 else [visited,len(events)], + unresolved_roots=ROOTS,counts=dict(classification),witnesses=witnesses, + price_sha256=sha256((out/'PRICE.json').read_bytes()).hexdigest(), + note='Isolation is a necessary support gate. Full signed Laurent factorization and fully charged stock still pending.')) + + +def main(): + p=ArgumentParser() + p.add_argument('dependencies',type=Path,nargs='?',default=Path(__file__).resolve().parent/'dependencies') + p.add_argument('out',type=Path,nargs='?') + p.add_argument('--seconds',type=int,default=30,choices=range(2,31),metavar='2..30') + p.add_argument('--controls-only',action='store_true') + p.add_argument('--price-only',action='store_true') + a=p.parse_args() + if a.out is None and not a.controls_only: + p.error('fresh output directory required') + if a.out is not None: + a.out.mkdir() + + def timeout(*_): + raise TimeoutError('hard runner deadline') + + signal(SIGALRM,timeout) + alarm(a.seconds) + start=monotonic() + try: + files=authenticate(a.dependencies) + engine=runpy.run_path(str(a.dependencies/'r52/projector.py')) + if a.controls_only: + print(json.dumps(controls(engine['basis'],engine['mix']))) + else: + caller=price(a.dependencies,files,a.out) + if not a.price_only: + scan(caller,engine,a.out,start+a.seconds-1,a.seconds) + except TimeoutError: + if a.out is not None: + save(a.out,'TIMEOUT.json',dict(head=HEAD,unverified_root_cases=9568,status='hard_timeout', + price_saved=(a.out/'PRICE.json').exists())) + raise SystemExit(2) + finally: + alarm(0) + + +if __name__=='__main__': + assert __debug__ + main() diff --git a/research/p104-rank137-productive-root-bound/engines/laurent.py b/research/p104-rank137-productive-root-bound/engines/laurent.py new file mode 100644 index 0000000000..c0d2872d85 --- /dev/null +++ b/research/p104-rank137-productive-root-bound/engines/laurent.py @@ -0,0 +1,319 @@ +"""Exact signed Laurent root-factorization gate for the Round 54 cut stock.""" +from argparse import ArgumentParser +from collections import Counter, defaultdict +from fractions import Fraction as Q +from hashlib import sha256 +import json +from math import lcm, prod +from pathlib import Path +from signal import SIGALRM, alarm, signal +from time import monotonic + +HEAD = 'ed090b57ed88f8859e5ff4643645099e6ba856ea' +CALLER = '7113/CALLER.json' +REFERENCE = '7113/check_odd_caller_exact_grid.py' +BODY = 'r54/BODY1.json' +PRICE = 'r54/PRICE.json' +PINS = { + CALLER: '255d89f38cd45e38e5770f559bc43dc217e989032359768cdc7e8cdfd64b47bc', + REFERENCE: 'abd5a5fd011b71e5b382cbc058855594d4f2fe7b049f375506675c0303180f54', + BODY: 'aed2b0c41cf13c50eea98dac41c05d584fd7358da0ddfff876c2a0ca9e8d4d2a', + PRICE: '8df5a1b86b5c2429f1581dcf4216d51e45f4297fa94fabc7f9847b128d7568e2', +} + + +def decode(raw): + def unique(pairs): + result = dict(pairs) + assert len(result)==len(pairs), 'duplicate JSON key' + return result + return json.loads(raw,object_pairs_hook=unique) + + +def write(out,name,obj): + tmp=out/(name+'.tmp') + tmp.write_text(json.dumps(obj,indent=2,sort_keys=True)+'\n') + tmp.replace(out/name) + + +def body(j): + return 1 << (8*(j-1)) + + +def monomial(q=0,m=0,value=1): + c=Q(value) + return ((c.numerator,0,c.denominator,q,m),) + + +def compile_events(c): + events = [] + occurrences = Counter() + alpha = Q(c['types']['A']['alpha2']) + for e in c['events']: + if e[0]=='J': + _,j,(u,v,x,y),(s,t,a,b)=e + assert (Q(a),Q(b))==(Q(-1),Q(1,2)) + assert len({u,v,x,y,s,t})==6 + operations=[('ADD',v,u,monomial(q=-1)),('ADD',x,y,monomial(q=1,value=alpha)), + ('ADD',s,t,monomial(q=1,value=-1)),('ADD',t,s,monomial(q=-1,value=Q(1,2)))] + operations += [('SCALE',r,r,monomial(m=body(j))) for r in (u,v,x,y,s,t)] + occurrences[j]+=1 + else: + _,op,r,*args=e + if op=='SWAP': + s,=args + operations=[('SWAP',r,s,())] + elif op=='ADD': + s,value=args + operations=[('ADD',r,s,monomial(value=value))] + elif op=='QUERY': + s,q=args + operations=[('ADD',r,s,monomial(q=q))] + elif op=='LAMBDA': + a,=args + operations=[('SCALE',r,r,((1,a,2,0,0),(1,-a,2,2,0)))] + elif op=='SCALE': + operations=[('SCALE',r,r,monomial(value=args[0]))] + else: + assert op in ('IDLE_ONE','IDLE_ODD') + stages=args[0] + assert len(stages)==len(set(stages)) + occurrences.update(stages) + operations=[('SCALE',r,r,monomial(q=args[1] if op=='IDLE_ODD' else 0, + m=sum(body(j) for j in stages)))] + events.append(operations) + assert set(occurrences)==set(range(1,c['stages']+1)) and max(occurrences.values())<256 + # Each original factor occurs at most once along a coefficient path. + # Using their product as a common grid makes both sweep directions exact. + grid=prod(lcm(*(term[2] for term in factor)) for ops in events for _,_,_,factor in ops) + return events,grid,occurrences + + +def add_scaled(dst,src,factor): + for a,b,den,q,m in factor: + for (i,k,d),(x,y) in src.items(): + rr,re=divmod(a*x-b*y,den) + ii,im=divmod(a*y+b*x,den) + assert not re and not im, 'inexact integer grid division' + key=(i,(k+q)%4,d+m) + u,v=dst.get(key,(0,0)) + value=(u+rr,v+ii) + if value==(0,0): + dst.pop(key,None) + else: + dst[key]=value + + +def apply(rows,operations,transpose=False): + for op,r,s,factor in reversed(operations) if transpose else operations: + if op=='SWAP': + rows[r],rows[s]=rows[s],rows[r] + elif op=='SCALE': + image={} + add_scaled(image,rows[r],factor) + rows[r]=image + else: + assert op=='ADD' and r!=s + if transpose: + r,s=s,r + add_scaled(rows[r],rows[s],factor) + + +def basis(n,grid): + return [{(i,0,0):(grid,0)} for i in range(n)] + + +def factorization(phase,degree,n): + digits=[(degree>>(8*j))&255 for j in range(n)] + if degree>>(8*n) or any(x>1 for x in digits): + return 'body_stages_outside_factorization',None + if phase not in (0,3): + return 'central_axis_outside_factorization',None + m=sum(digits) + left,right=8*m+(phase==3),8*(n-m)+(phase==0) + if not left or not right: + return 'zero_rank_side',None + return 'positive_factorization',([j+1 for j,v in enumerate(digits) if v],left,right) + + +def assess(rows,root,slot,n): + row=rows[slot] + outside_row=sorted({i for i,_,_ in row if i!=root}) + outside_column=[r for r,v in enumerate(rows) if r!=slot and any(i==root for i,_,_ in v)] + result=dict(outside_row_columns=outside_row,outside_column_rows=outside_column) + if outside_row or outside_column: + result['status']='row_and_column_nonisolated' if outside_row and outside_column else ( + 'row_nonisolated' if outside_row else 'column_nonisolated') + return result + if len(row)!=1: + result.update(status='isolated_not_monomial',isolated_terms=len(row)) + return result + (i,phase,degree),value=next(iter(row.items())) + assert i==root and value!=(0,0) + status,witness=factorization(phase,degree,n) + result.update(status=status,phase=phase,degree=degree,scaled_scalar=value) + if witness: + stages,r,s=witness + result.update(prefix_stages=stages,suffix_stages=[j for j in range(1,n+1) if j not in stages],ranks=[r,s]) + return result + + +def check_body_one(rows,case,grid): + r,p=case['root'],case['slot'] + for q,field in ((1,'q_plus'),(-1,'q_minus')): + collapsed=defaultdict(lambda:(0,0)) + for (i,k,_),(a,b) in rows[p].items(): + x,y=collapsed[i] + collapsed[i]=(x+q**k*a,y+q**k*b) + assert {i:v for i,v in collapsed.items() if v!=(0,0)}=={r:(Q(case[field][0])*grid,0)} + for s,row in enumerate(rows[:36]): + if s==p: + continue + a=b=0 + for (i,k,_),(x,y) in row.items(): + if i==r: + a+=q**k*x + b+=q**k*y + assert (a,b)==(0,0) + + +def controls(): + rows=basis(3,4) + apply(rows,[('SCALE',0,0,monomial(q=3,m=body(1)))]) + assert assess(rows,0,0,17)['ranks']==[9,128] + apply(rows,[('ADD',1,0,monomial(value=Q(-1,2)))]) + assert assess(rows,0,0,17)['status']=='column_nonisolated' + rows=basis(3,4) + apply(rows,[('ADD',0,1,monomial(value=Q(1,2)))]) + assert assess(rows,0,0,17)['status']=='row_nonisolated' + assert factorization(0,2*body(1),17)[0]=='body_stages_outside_factorization' + assert factorization(2,body(1),17)[0]=='central_axis_outside_factorization' + assert factorization(0,0,17)[0]=='zero_rank_side' + rows=basis(3,4) + apply(rows,[('ADD',0,1,monomial(q=-1,value=Q(1,2)))],transpose=True) + assert rows[1][0,3,0]==(2,0) + return ['positive_complementary_partition','row_and_column_nonisolation_controls', + 'duplicate_stage_wrong_phase_and_zero_rank_rejected','transpose_signed_division'] + + +def load(root): + files={} + for name,h in PINS.items(): + raw=(root/name).read_bytes() + assert sha256(raw).hexdigest()==h,('changed dependency',name) + files[name]=raw + return [decode(files[name]) for name in (CALLER,BODY,PRICE)] + + +def run(root,out,seconds,start): + control=controls() + c,body_receipt,price=load(root) + assert body_receipt['head']==price['head']==HEAD and body_receipt['price_sha256']==PINS[PRICE] + assert body_receipt['root_cases_visited']==9568 and body_receipt['unresolved_boundary_interval'] is None + cases=[r for r in body_receipt['witnesses'] if not r['endpoint']] + keys=[(r['boundary'],r['root'],r['slot']) for r in cases] + assert len(keys)==len(set(keys))==body_receipt['counts']['interior_support_only']==241 + assert all(0=deadline: + break + apply(rows,events[boundary-1]) + for case in schedule.get(boundary,()): + r,p=case['root'],case['slot'] + check_body_one(rows,case,grid) + result=assess(rows,r,p,n) + key=(boundary,r,p) + result.update(boundary=boundary,root=r,slot=p) + decisions[key]=result + if result['status']=='positive_factorization': + quoted=price_class[len(result['prefix_stages']),result['phase']==3] + assert quoted['ranks']==result['ranks'] + result['optimistic_complete_margin_interval']=quoted['complete_margin_interval'] + result['optimistic_credit_interval']=quoted['credit_interval'] + x,y=result['scaled_scalar'] + result['prefix_scalar']=[str(Q(x,grid)),str(Q(y,grid))] + result['suffix_scalar']=[str(Q(grid*x,x*x+y*y)),str(Q(-grid*y,x*x+y*y))] + result['suffix_checked']=False + candidates[key]=result + else: + for ty in c['types'].values(): + for i,(q,z,*bits) in enumerate(ty['diagonal'],ty['offset']): + assert z==0 and len(bits)==n and set(bits)<={0,1} + degree=sum(v*body(j) for j,v in enumerate(bits,1)) + assert rows[i]=={(i,q%4,degree):(grid,0)},('old signed endpoint mismatch',i) + endpoint=True + if candidates: + todo=defaultdict(list) + for key,row in candidates.items(): + todo[key[0]].append(row) + full=sum(body(j) for j in range(1,n+1)) + adjoint=basis(c['roles'],grid) + for k in range(len(events),min(todo)-1,-1): + if monotonic()>=deadline: + break + for row in todo.get(k,()): + p,r=row['slot'],row['root'] + x,y=map(Q,row['suffix_scalar']) + want={(r,(3-row['phase'])%4,full-row['degree']):(x*grid,y*grid)} + assert adjoint[p]==want,('signed suffix factor mismatch',k,r,p) + row['suffix_checked']=True + if k>min(todo): + apply(adjoint,events[k-1],transpose=True) + unresolved=[key for key in keys if key not in decisions or key in candidates and not candidates[key]['suffix_checked']] + witnessed=[row for row in candidates.values() if row['suffix_checked']] + complete=endpoint and not unresolved + counts=dict(Counter(row['status'] for row in decisions.values())) + report=dict(head=HEAD,pins=PINS,controls=control,seconds_cap=seconds,initial_cases=241, + tested=len(decisions),unresolved=unresolved,full_old_endpoint_checked=endpoint, + body_one_specializations_reconciled=len(decisions),grid_bits=grid.bit_length(), + max_stage_occurrences=max(stage_counts.values()),counts=counts,rows=list(decisions.values()), + witnessed=witnessed,exhausted=complete, + status='support_only' if witnessed else 'excluded' if complete else 'incomplete') + write(out,'RESULT.json',report) + print(json.dumps({k:report[k] for k in ('tested','unresolved','full_old_endpoint_checked','counts','status')},sort_keys=True)) + + +def main(): + p=ArgumentParser() + p.add_argument('dependencies',type=Path,nargs='?',default=Path(__file__).resolve().parent/'dependencies') + p.add_argument('out',type=Path,nargs='?') + p.add_argument('--seconds',type=int,default=90,choices=range(3,91),metavar='3..90') + p.add_argument('--controls-only',action='store_true') + a=p.parse_args() + if a.controls_only: + print(json.dumps(controls())) + return + if a.out is None: + p.error('fresh output directory required') + a.out.mkdir() + + def limit(*_): + raise TimeoutError('hard runner deadline') + + signal(SIGALRM,limit) + alarm(a.seconds) + try: + run(a.dependencies,a.out,a.seconds,monotonic()) + except TimeoutError: + write(a.out,'TIMEOUT.json',dict(head=HEAD,status='hard_timeout',unverified=241,seconds_cap=a.seconds)) + raise SystemExit(2) + finally: + alarm(0) + + +if __name__=='__main__': + assert __debug__ + main() diff --git a/research/p104-rank137-productive-root-bound/engines/reverse.py b/research/p104-rank137-productive-root-bound/engines/reverse.py new file mode 100644 index 0000000000..10da94b40d --- /dev/null +++ b/research/p104-rank137-productive-root-bound/engines/reverse.py @@ -0,0 +1,140 @@ +"""Reconstruct selected exact signed prefix columns by inverting the caller.""" +from argparse import ArgumentParser +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +import json +from pathlib import Path +from signal import SIGALRM, alarm, signal + +CALLER_SHA = '255d89f38cd45e38e5770f559bc43dc217e989032359768cdc7e8cdfd64b47bc' +ZERO = (0,)*17 +ONE = (1,)*17 +ROOTS = (0,18) + + +def update(out,source,real=Q(1),imag=Q(0),q=0,stages=ZERO): + for (phase,body),(a,b) in source.items(): + key = (phase+q)%4, tuple(x+y for x,y in zip(body,stages,strict=True)) + c,d = out.get(key,(0,0)) + value = c+real*a-imag*b,d+imag*a+real*b + if any(value): + out[key] = value + else: + out.pop(key,None) + + +def mapped(source,**kw): + out = {} + update(out,source,**kw) + return out + + +def negative_stages(mask): + stages = [0]*17 + for stage in mask: + assert 1 <= stage <= 17 and not stages[stage-1] + stages[stage-1] = -1 + return tuple(stages) + + +def undo(rows,event,alpha): + if event[0]=='J': + _,stage,(u,v,x,y),_ = event + for r in (u,v,x,y): + rows[r] = mapped(rows[r],stages=negative_stages([stage])) + update(rows[v],rows[u],real=Q(-1),q=-1) + update(rows[x],rows[y],real=-alpha,q=1) + return + if event[0]!='A': + return + _,op,r,*args = event + if op=='SWAP': + s = args[0] + rows[r],rows[s] = rows[s],rows[r] + elif op in ('QUERY','ADD'): + update(rows[r],rows[args[0]],real=-Q(args[1]) if op=='ADD' else Q(-1),q=args[1] if op=='QUERY' else 0) + elif op=='SCALE': + rows[r] = mapped(rows[r],real=1/Q(args[0])) + elif op=='LAMBDA': + sign = args[0] + assert sign in (-1,1) + source = rows[r] + rows[r] = mapped(source,real=Q(1,2),imag=Q(-sign,2)) + update(rows[r],source,real=Q(1,2),imag=Q(sign,2),q=2) + else: + assert op=='IDLE_ONE' + rows[r] = mapped(rows[r],stages=negative_stages(args[0])) + + +def case(rows,slot): + if [i for i,v in enumerate(rows) if v] != [slot]: + return {'decision':'multiple_or_different_slot'} + cell = rows[slot] + if len(cell)!=1: + return {'decision':'not_monomial','terms':len(cell)} + (phase,stages),scalar = next(iter(cell.items())) + out = {'phase':phase,'body':list(stages),'coefficient':list(map(str,scalar))} + if any(v not in (0,1) for v in stages): + return dict(out,decision='not_body_partition') + first = 8*sum(stages)+(phase%2) + out['ranks'] = [first,137-first] + return dict(out,decision='positive_column_only' if 0 < first < 137 else 'zero_rank_side') + + +def control(): + v = {(0,ZERO):(Q(1),Q(0))} + before = [v,{}] + rows = [v.copy(),{}] + undo(rows,['A','LAMBDA',0,1],Q(1)) + undo(rows,['A','LAMBDA',0,-1],Q(1)) + assert rows==before + undo(rows,['A','QUERY',1,0,1],Q(1)) + assert case(rows,0)['decision']=='multiple_or_different_slot' + assert case([v],0)['decision']=='zero_rank_side' + monomial = {(3,(1,)*8+(0,)*9):(Q(1),Q(0))} + assert case([monomial],0)['ranks']==[65,72] + assert case([monomial],0)['decision']=='positive_column_only' + return ['lambda_inverse','nonisolated_column','zero_rank_control','positive_65_72_control'] + + +def run(caller,prior,prior_hash): + assert prior['root_cases_visited']==9568 and prior['counts']['interior_support_only']==241 + events=caller['events']; kind=caller['types']['A']; alpha=Q(kind['alpha2']) + cases = [x for x in prior['witnesses'] if not x['endpoint']] + assert len(cases)==241 and {x['root'] for x in cases}==set(ROOTS) + report=[] + for r in ROOTS: + row = kind['diagonal'][r] + assert row[0]==-1 and row[1]==0 and tuple(row[2:])==ONE + rows = [{} for _ in range(kind['roles'])] + rows[r] = {(3,ONE):(Q(1),Q(0))} + boundary = {x['boundary']:x['slot'] for x in cases if x['root']==r} + assert len(boundary)==sum(x['root']==r for x in cases) + for i in reversed(range(len(events))): + if i+1 in boundary: + slot=boundary[i+1] + report.append(dict(root=r,boundary=i+1,slot=slot,**case(rows,slot))) + undo(rows,events[i],alpha) + assert rows[r]=={(0,ZERO):(Q(1),Q(0))} and all(not v for i,v in enumerate(rows) if i!=r) + assert len(report)==241 + return {'caller_sha256':CALLER_SHA,'body_one_sha256':prior_hash,'controls':control(), + 'endpoints_recovered':len(ROOTS),'counts':dict(Counter(row['decision'] for row in report)), + 'positive_column_only':[r for r in report if r['decision']=='positive_column_only'],'records':report} + + +if __name__=='__main__': + assert __debug__ + p=ArgumentParser(description=__doc__) + p.add_argument('caller',type=Path) + p.add_argument('body_one',type=Path) + p.add_argument('--body-one-sha',required=True) + a=p.parse_args() + def limit(*_): + raise TimeoutError('independent reverse runner watchdog') + signal(SIGALRM,limit) + alarm(60) + c,b = a.caller.read_bytes(),a.body_one.read_bytes() + assert sha256(c).hexdigest()==CALLER_SHA and sha256(b).hexdigest()==a.body_one_sha + print(json.dumps(run(json.loads(c),json.loads(b),a.body_one_sha),indent=2,sort_keys=True)) + alarm(0) diff --git a/research/p104-rank137-productive-root-bound/receipts/SHA256.json b/research/p104-rank137-productive-root-bound/receipts/SHA256.json new file mode 100644 index 0000000000..4b0bbc97a7 --- /dev/null +++ b/research/p104-rank137-productive-root-bound/receipts/SHA256.json @@ -0,0 +1,11 @@ +{ + "r54-body-one.json": "aed2b0c41cf13c50eea98dac41c05d584fd7358da0ddfff876c2a0ca9e8d4d2a", + "r54-compare.json": "8e9ae2276ac0236a626845206b9cbce6b7863c1ca3ebc5946d038bdc1a70073f", + "r54-laurent.json": "d5ee301d1cf3c56f674b749a4325ef8b06a704f82ba8c6905f639aa9612ab9b0", + "r54-price.json": "8df5a1b86b5c2429f1581dcf4216d51e45f4297fa94fabc7f9847b128d7568e2", + "r54-reverse.json": "fc1124d08396cbd205424106e3053529a46648b036d3076bdd979f931fef6c30", + "r55-compare.json": "fc4e0cb30348630b39de74ba0dddb54472953b94e74c4aa2067ea2f0641b7f64", + "r55-forward.json": "6f1d9f474523dd3cff2ddcc5b68c76a1b78de70ed49137a4df2838bcbe76e138", + "r55-price.json": "5e3b860a59b4878543175bad8a5431babf8946cc01523d6120d745e7cae3a431", + "r55-reverse.json": "2ea6101e185bf2fd792c5d18530b878fa61a5ddb61403782d05034ab33ff2b00" +} diff --git a/research/p104-rank137-productive-root-bound/replay.py b/research/p104-rank137-productive-root-bound/replay.py new file mode 100644 index 0000000000..2f039f2274 --- /dev/null +++ b/research/p104-rank137-productive-root-bound/replay.py @@ -0,0 +1,169 @@ +"""Replay the coordinate and even-basis rank-137 root exclusions.""" +from argparse import ArgumentParser +from collections import Counter +import gzip +from hashlib import sha1, sha256 +import json +from pathlib import Path, PurePosixPath +import shutil +import subprocess +import sys +from tempfile import TemporaryDirectory + +HERE = Path(__file__).resolve().parent +ENGINE = HERE / "engines" + + +def unique(pairs): + result = dict(pairs) + if len(result) != len(pairs): + raise ValueError("duplicate JSON key") + return result + + +def load(path): + return json.loads(path.read_bytes(), object_pairs_hook=unique) + + +def authenticate(scratch): + pins = load(HERE / "LOCAL-PINS.json") + for name, digest in pins.items(): + rel = PurePosixPath(name) + if rel.is_absolute() or ".." in rel.parts or rel.as_posix() != name: + raise ValueError(f"invalid dependency path {name}") + if sha256((HERE / rel).read_bytes()).hexdigest() != digest: + raise ValueError(f"changed dependency {name}") + shutil.copytree(HERE / "dependencies", scratch / "dependencies") + provenance = load(HERE / "PROVENANCE.json")["files"] + assert len(provenance) == 9 + for name, pin in provenance.items(): + assert name in pins + raw = (HERE / name).read_bytes() + if pin["uncompress"]: + raw = gzip.decompress(raw) + (scratch / name).with_suffix("").write_bytes(raw) + assert sha256(raw).hexdigest() == pin["sha256"], name + assert sha1(f"blob {len(raw)}\0".encode()+raw).hexdigest() == pin["git_blob"], name + + +def invoke(name, *args, check=True): + argv = [sys.executable, "-I", "-B", str(ENGINE / name), *map(str,args)] + return subprocess.run(argv, check=check, capture_output=True) + + +def coordinate_compare(forward, reverse): + def key(r): + return r["root"], r["boundary"], r["slot"] + + by_key = {key(r):r for r in forward["rows"]} + assert len(by_key) == len(forward["rows"]) == len(reverse["records"]) == 241 + assert by_key.keys() == {key(r) for r in reverse["records"]} + for row in reverse["records"]: + other = by_key[key(row)] + if row["decision"] == "not_monomial": + assert other["status"] == "isolated_not_monomial" and row["terms"] == other["isolated_terms"] == 2 + else: + assert row["decision"] == other["status"] == "zero_rank_side" + assert row["phase"] == other["phase"] + assert sum(z << (8*j) for j,z in enumerate(row["body"])) == other["degree"] + return dict(exact_dispositions_match=True, cases=len(by_key), + status=dict(Counter(r["status"] for r in by_key.values()))) + + +def replay(scratch, emit): + authenticate(scratch) + expected = load(HERE / "receipts/SHA256.json") + generated = {} + + def record(label, source): + raw = source.read_bytes() if isinstance(source,Path) else source + assert sha256(raw).hexdigest() == expected[label], label + generated[label] = raw + return json.loads(raw, object_pairs_hook=unique) + + deps = scratch / "dependencies" + caller = deps / "round30/complex/source/inputs/CALLER.json" + base = scratch / "r54" + coordinate = base / "lead/run" + coordinate.parent.mkdir(parents=True) + invoke("coordinate.py", deps, coordinate, "--seconds", 30) + price54 = record("r54-price.json", coordinate / "PRICE.json") + body = record("r54-body-one.json", coordinate / "BODY1.json") + assert price54["ordered_factorizations_per_root"] == 262142 + assert not price54["paid_delta"] and len(price54["stage_partition_classes"]) == 34 + assert body["root_cases_visited"] == 9568 and body["unresolved_boundary_interval"] is None + assert body["counts"]["interior_support_only"] == 241 + + (deps / "r54").mkdir() + for name in ("PRICE.json","BODY1.json"): + shutil.copyfile(coordinate / name, deps / "r54" / name) + shutil.copyfile(caller, deps / "7113/CALLER.json") + laurent = scratch / "laurent" + invoke("laurent.py", deps, laurent, "--seconds", 90) + forward54 = record("r54-laurent.json", laurent / "RESULT.json") + assert forward54["full_old_endpoint_checked"] and forward54["exhausted"] + assert not forward54["unresolved"] and not forward54["witnessed"] + + independently = base / "independent" + independently.mkdir() + shutil.copyfile(ENGINE / "reverse.py", independently / "reverse.py") + reverse_raw = invoke("reverse.py", caller, coordinate / "BODY1.json", + "--body-one-sha", expected["r54-body-one.json"]).stdout + reverse54 = record("r54-reverse.json", reverse_raw) + (independently / "RESULT.json").write_bytes(reverse_raw) + assert reverse54["endpoints_recovered"] == 2 and not reverse54["positive_column_only"] + match54 = coordinate_compare(forward54,reverse54) + record("r54-compare.json", (json.dumps(match54,sort_keys=True)+"\n").encode()) + assert match54["status"] == {"isolated_not_monomial":22,"zero_rank_side":219} + + lead55 = scratch / "r55-reverse" + invoke("column_reverse.py", "--caller", caller, "--r54", base, "--out", lead55, "--seconds", 42) + record("r55-price.json", lead55 / "PRICE.json") + reverse55 = record("r55-reverse.json", lead55 / "SUPPORT.json") + assert reverse55["initial_endpoints_recovered"] == [0,18] + assert reverse55["cases_visited"] == 9568 and not reverse55["unvisited"] and not reverse55["survivors"] + + fdeps = scratch / "forward-inputs" + fdeps.mkdir() + shutil.copyfile(caller, fdeps / "CALLER.json") + shutil.copyfile(deps / "7113/check_odd_caller_exact_grid.py", fdeps / "check_odd_caller_exact_grid.py") + shutil.copyfile(ENGINE / "laurent.py", fdeps / "forward_engine.py") + forward55 = scratch / "r55-forward.json" + invoke("column_forward.py", fdeps, forward55, "--seconds", 45) + observed = record("r55-forward.json", forward55) + assert observed["roots_final_endpoints_checked"] == [0,18] + match55 = record("r55-compare.json", + invoke("compare_columns.py", forward55, lead55 / "SUPPORT.json").stdout) + assert match55["matched_case_keys"] == 9568 and match55["counts"] == { + "mixed_body_exponents":8383,"mixed_central_parity":913,"zero_rank_side":272} + + # Input mutations are confined to the disposable scratch closure. + altered = deps / "r54/BODY1.json" + altered.write_bytes(altered.read_bytes()+b"\n") + bad = scratch / "bad-coordinate" + failed = invoke("laurent.py", deps, bad, "--seconds", 10, check=False) + assert failed.returncode == 1 and b"changed dependency" in failed.stderr + assert not (bad / "RESULT.json").exists() + altered = fdeps / "CALLER.json" + altered.write_bytes(altered.read_bytes()+b"\n") + bad = scratch / "bad-column.json" + failed = invoke("column_forward.py", fdeps, bad, "--seconds", 10, check=False) + assert failed.returncode == 1 and b"changed input" in failed.stderr and not bad.exists() + + assert generated.keys() == expected.keys() + if emit is not None: + emit.mkdir() + for label, raw in generated.items(): + (emit / label).write_bytes(raw) + print("PASS_TYPE_A_RANK137_ROOT_BOUND coordinate_cases=9568 exact_coordinate_cases=241 " + "even_basis_cases=9568 matched=9568 unresolved=0 saving_upper=0 kappa_change=0") + + +if __name__ == "__main__": + assert __debug__, "assertions are required" + assert sys.version_info[:2] == (3,12), "Python 3.12 required" + parser = ArgumentParser(description=__doc__) + parser.add_argument("--out", type=Path) + args = parser.parse_args() + with TemporaryDirectory(prefix="p104-rank137-root-") as temp: + replay(Path(temp),args.out)