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). 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") diff --git a/research/p104-type-b-central-phase-transfer/LOCAL-PINS.json b/research/p104-type-b-central-phase-transfer/LOCAL-PINS.json new file mode 100644 index 0000000000..e551474866 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/LOCAL-PINS.json @@ -0,0 +1,47 @@ +{ + "MATERIALIZE.json": "6d6c3702b4f84f0a638a27bbea7decd2c873d2fa7b7b586be0723de26625d644", + "NOTICE": "6ece355af462c4c46ff1e92cddb69d2a597f97801bc3cf5114a4890ab9b89461", + "PROOF.md": "dbcb25437fe3fac880f0d2fc4bd98573b7aed84be70d50fdf4f8651669ede3b6", + "PROVENANCE.json": "81a3b453fc8134ef77d222fc4f0431554224d71af5dff1d1ca368c7a100ed1d9", + "README.md": "a0ee621f9737b7990441e9d7990731aaf274d4a81c70c90bf47f2e9196a2b610", + "SOURCES.json": "5ae4cfc96aa890b1b06aa0de688e03d9713b2772fb0f9c6ae7e23ad7d49c479d", + "TASK.json": "69a5dccedeb56e64373810e27de4adfceced5369d55edddf31763135e9d1ade8", + "VERIFY.json": "cc857fdac446528d66ccbc5e5d74ed37a4cdbd9828a9b645794f4602a3aa70bf", + "admission/ADMITTED.json": "41b8a189dffeb768e5843446cdc469f9cc2f0aa038d0a593cf2be43aa009a9a3", + "admission/ANCHORED.json": "6378aff76d6d38b3863d039b2d1814db48c3105ffe933e96d9c449e799f624aa", + "admission/ARCHIVE.stdout": "fbfe4d32b4b7614ec0adbcf31d788706c305fa85c88db34822daa3e057b85599", + "admission/COMMIT.stdout": "fd1d72b0397b2e089e9e6ae467c9322a96a08628d7d511c68b417203b5b4cee8", + "admission/DECLARED-SOURCE-PINS.json": "aad96b05ba3fb91051f310120c1d32729d4fd6cf20395943c4aea4fcf1d2d4d4", + "admission/HISTORY.stderr": "c95523eb2c5d47834d66c8568f1d755cf2201e8a23b18ec0e1a5c3fab0eb9b74", + "admission/METADATA.stdout": "5873404cb4424dca918a00d503569f3c29a3190fd029a007e1afb2006399f647", + "admission/REGISTERED.stdout": "4337cb057b7e3ac6871a3742bc257bf2a390c8fc6ea54269a0c02586feb66c76", + "admission/STAGE-caller.json": "a653be3423a20a9aa0b6c532fabf7bf96ea7e5feab6bd3924d171d2b9c5c5f76", + "admission/STAGE-early.json": "cee13f7126ecdd375ad62b4a6773f3ac4182df52bc484dc2944a92ee31cd15f7", + "admission/STAGE-frontier.json": "75b8ceb5547f9828b03d60b7646fc2fdb47a0d02b5715d8f7fb35d7de946694f", + "admission/STAGE-native.json": "36ec25be5eb332a45f36d935fc1d0397e02e0b243ea38cc77d340592a33c478b", + "admission/TREE.txt": "6b7c113f9b02b45024c96eafb88256b76a8d3b3d91a1c1730090ded0d3be7246", + "admission/peer-source/NATIVE-RESULT.json.gz": "b073ca4cae75fe41e0ba330dc931937f9b82b87339255ce8b98e43d24f93ba08", + "admission/peer-source/PROPOSED-CLAIM.json.gz": "0727b62b2151e6e01f6b75161936b3d910e0f698995c14d41d6fc24e9d4e26f5", + "admission/peer-source/RESULT.json.gz": "a85b9456c321b2a9f8a75215ccbef297508c5698679e419b66b264ad6b151f23", + "dependencies/7113/CALLER.json.gz": "7e8038559cd158f6e32ef6d1a3bf15ab6a8ecc2239af32ab1699511ac28e26d9", + "dependencies/7113/check_odd_physical_binding.py": "5c80c3b0415a7f91d216395248dd6f13297eed637732098e1ca8fb0548951b98", + "dependencies/7298/pricing.py": "f4d0b6c9314b838d882d6d06020f24881c19a3fda97a7c00df87b1e920785182", + "dependencies/7314/EARLY-RESULT.json": "b5043855411432b24336ecc443cba9ebfae6392e2045ddd01c87cfe2c51f5f08", + "dependencies/7314/PRICE-ONLY.json": "b757665a3a50324b2ae6649cc89f5b8d9a752c7af996f1ee894a0de47ade94e1", + "dependencies/7314/SOURCES.json": "ac7b4473035af648d6073e78b6c39675e706e8194b346bb55ed62a0adc81d593", + "dependencies/7314/VERIFY.json": "ede7dd2dd3733b9a73f72af9dd7edfe819b49b859c5c76e227ec82cb9c220513", + "dependencies/7314/WORD.json.gz": "c404b9b61220e6cf740d85276df2828bbb4a9d68a4d44b5e283f8d96f78c0fd9", + "dependencies/r44/RESULT.json.gz": "fbf560dfbcba0ae1ae133bcec846226e3d677a0af5a2ce27f6ef82fd16876329", + "dependencies/r52/screen.py": "cdf54b266ac31fd0efe544badbb9840598d4c63c4d3cd363f60ae9a74cc4b256", + "dependencies/r53/PRICE.json.gz": "35319fae6809cace699a95fd170a135b09f8ff8da43f56a2b56f7620148dc3c8", + "engines/compare.py": "9808a330e4a618ad0a1857d9d001ac7f743cc494b7d7038f4a478bf7ee95f09f", + "engines/screen.py": "c0bbd0270eff0a83d903e975ed600de57927addee482bc1764340f40903e93ad", + "engines/transfer.py": "ff14e31cc08849c4fba8f422f7e8327884ac32bef600e24e94b691fc0e4a2c4c", + "receipts/BODY1.json": "7cb8a1bcfa0d7223b03e3505c2cd91df525dc251676f51824cadb29ea6667321", + "receipts/COMPARE.json": "e9379991b74deb29982272b07b0433ed65b95eb3477a79cc83d5c1dfdfea44b8", + "receipts/CONTROLS.json": "1ab958eb28b6a1228203ee28d250feb4203d6c074484f57ed1acd0c8807d6345", + "receipts/EXACT.json": "9e7f77312b724f9b8884c2177ea6a0cd922ecb1a9e9fbee30656117661e2edbf", + "receipts/PRICE.json": "6f3510db09e18278c0f18d8e0cbe1242fc48e999dafc87cb04cc87e240b93819", + "receipts/SUMMARY.json": "2718fdd398420b952a9b395d6796c9e1389f58598f4033fbb6a6b086252e94be", + "replay.py": "98faacb2e8e97a24ee85be2d85ff083f4f2adee3bcf99ffa8f62f56c36352bb5" +} diff --git a/research/p104-type-b-central-phase-transfer/MATERIALIZE.json b/research/p104-type-b-central-phase-transfer/MATERIALIZE.json new file mode 100644 index 0000000000..bbe3bd86f7 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/MATERIALIZE.json @@ -0,0 +1,13 @@ +{ + "dependencies/7113/CALLER.json.gz": "7113/CALLER.json", + "dependencies/7113/check_odd_physical_binding.py": "7113/check_odd_physical_binding.py", + "dependencies/7298/pricing.py": "7298/pricing.py", + "dependencies/7314/EARLY-RESULT.json": "7314/EARLY-RESULT.json", + "dependencies/7314/PRICE-ONLY.json": "7314/PRICE-ONLY.json", + "dependencies/7314/SOURCES.json": "7314/SOURCES.json", + "dependencies/7314/VERIFY.json": "7314/VERIFY.json", + "dependencies/7314/WORD.json.gz": "7314/WORD.json.gz", + "dependencies/r44/RESULT.json.gz": "r44/RESULT.json", + "dependencies/r52/screen.py": "r52/screen.py", + "dependencies/r53/PRICE.json.gz": "r53/PRICE.json" +} diff --git a/research/p104-type-b-central-phase-transfer/NOTICE b/research/p104-type-b-central-phase-transfer/NOTICE new file mode 100644 index 0000000000..226aafee31 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/NOTICE @@ -0,0 +1,2 @@ +Apache-2.0. +#7113 supplies the exact signed caller and singleton idle binding. #7314 and #7277 supply the complete comparator lineage. #7298 supplies directed arithmetic. #7309, #7296, #7295 and #1252 supply related exact scoped precedents. OpenAI Codex and subagents materially assisted. diff --git a/research/p104-type-b-central-phase-transfer/PROOF.md b/research/p104-type-b-central-phase-transfer/PROOF.md new file mode 100644 index 0000000000..98f4abbdfb --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/PROOF.md @@ -0,0 +1,7 @@ +# Necessary two-sided transport + +Let (P_s) and (P_t) be the earlier and later idle coordinate projectors, and (M) the fixed intervening product in column convention. The central phase on a coordinate is (S(P)=I+(q^{-1}-1)P). The two body multipliers at the edited clocks commute with their local phase. They are unchanged and invertible over the Laurent field. Cancel them from the two subword endpoint equations. For either direction of phase transfer, the remaining equality is (S(P_t)M=MS(P_s)). + +At (q=-1) and body variables one this implies (P_tM=MP_s) over the rationals. In particular, the column (Me_s) can be supported only on coordinate (t), and the row (e_t^T M) can be supported only on (s). The equality of their central entries follows from both being (M_{t,s}). A nonzero off-axis entry of either vector disproves the required endpoint identity. The modular replay checks denominator units and uses modulus 65521. A nonzero residue gives a nonzero exact rational coefficient. The independent replay computes both vectors over the rationals and checks the full old endpoint. + +For the price upper, both original idle counts stay paid until one candidate is verified. The rank change preserves paid rank mass. Because (H_r) is strictly concave for (0<\kappa<1), the tariff difference (H_{8m+1}-H_{8m}) decreases with (m), and the optimistic credit grows with mask size. Any disjoint set uses each of the four signed idles at most once and each even partner at most once. The two size-eight and two size-seven partners maximize this favorable gross sum. The obstruction concerns each individual two-job transfer with all other operators fixed. The four-transfer figure is an optimistic price relaxation. Multiple simultaneous transfers, including those with disjoint clocks, could cancel defects and are outside the proof. diff --git a/research/p104-type-b-central-phase-transfer/PROVENANCE.json b/research/p104-type-b-central-phase-transfer/PROVENANCE.json new file mode 100644 index 0000000000..34c9acb946 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/PROVENANCE.json @@ -0,0 +1,85 @@ +{ + "files": { + "admission/peer-source/NATIVE-RESULT.json.gz": { + "commit": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "git_blob": "311051d32ccd7d215461f5724c4efc61bb930b47", + "path": "research/p104-funded-863-return/NATIVE-RESULT.json", + "sha256": "336f463da5afe5b60bfd3b9f0ce8aeea5a5feb1f854613bf4218ba0b28b3371b", + "source": "https://github.com/CrocSwap/integer-mult-bounds/blob/9d0119eb12fbd9fa534b48cd37b68e7099757b91/research/p104-funded-863-return/NATIVE-RESULT.json", + "uncompress": true + }, + "admission/peer-source/PROPOSED-CLAIM.json.gz": { + "commit": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "git_blob": "dc54adae9b9504a4282eed4a37a3b254cd29a8d0", + "path": "research/p104-funded-863-return/PROPOSED-CLAIM.json", + "sha256": "41a08c4b7d0b2de4af22bc778948a143027eb3065fff47b0400b6ded1cc52778", + "source": "https://github.com/CrocSwap/integer-mult-bounds/blob/9d0119eb12fbd9fa534b48cd37b68e7099757b91/research/p104-funded-863-return/PROPOSED-CLAIM.json", + "uncompress": true + }, + "admission/peer-source/RESULT.json.gz": { + "commit": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "git_blob": "5f4d265ce66229590b0648815af2a6d51394a78a", + "path": "research/p104-funded-863-return/RESULT.json", + "sha256": "432191ca572c9221935787ebe392699e3a1ef4512b0bf4fbc704657321cc87ca", + "source": "https://github.com/CrocSwap/integer-mult-bounds/blob/9d0119eb12fbd9fa534b48cd37b68e7099757b91/research/p104-funded-863-return/RESULT.json", + "uncompress": true + }, + "dependencies/7113/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/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/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/7314/EARLY-RESULT.json": { + "commit": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "git_blob": "8cf1ee78a8edd3b62757203f6ac64c2084a2ac67", + "path": "research/p104-funded-863-return/EARLY-RESULT.json", + "sha256": "b5043855411432b24336ecc443cba9ebfae6392e2045ddd01c87cfe2c51f5f08", + "source": "https://github.com/CrocSwap/integer-mult-bounds/blob/9d0119eb12fbd9fa534b48cd37b68e7099757b91/research/p104-funded-863-return/EARLY-RESULT.json", + "uncompress": false + }, + "dependencies/7314/SOURCES.json": { + "commit": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "git_blob": "6b97e903a6df8de437068a0e2907823885928053", + "path": "research/p104-funded-863-return/SOURCES.json", + "sha256": "ac7b4473035af648d6073e78b6c39675e706e8194b346bb55ed62a0adc81d593", + "source": "https://github.com/CrocSwap/integer-mult-bounds/blob/9d0119eb12fbd9fa534b48cd37b68e7099757b91/research/p104-funded-863-return/SOURCES.json", + "uncompress": false + }, + "dependencies/7314/VERIFY.json": { + "commit": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "git_blob": "cc98ee2a5c5a79e670094a6f55c7cacda8fd330c", + "path": "research/p104-funded-863-return/VERIFY.json", + "sha256": "ede7dd2dd3733b9a73f72af9dd7edfe819b49b859c5c76e227ec82cb9c220513", + "source": "https://github.com/CrocSwap/integer-mult-bounds/blob/9d0119eb12fbd9fa534b48cd37b68e7099757b91/research/p104-funded-863-return/VERIFY.json", + "uncompress": false + }, + "dependencies/7314/WORD.json.gz": { + "commit": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "git_blob": "3939a3cc4c516cf2f184bd401fbeb0d61f5cdd40", + "path": "research/p104-funded-863-return/WORD.json.gz", + "sha256": "c404b9b61220e6cf740d85276df2828bbb4a9d68a4d44b5e283f8d96f78c0fd9", + "source": "https://github.com/CrocSwap/integer-mult-bounds/blob/9d0119eb12fbd9fa534b48cd37b68e7099757b91/research/p104-funded-863-return/WORD.json.gz", + "uncompress": false + } + }, + "schema_version": 1 +} diff --git a/research/p104-type-b-central-phase-transfer/README.md b/research/p104-type-b-central-phase-transfer/README.md new file mode 100644 index 0000000000..dae14f48a7 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/README.md @@ -0,0 +1,43 @@ +# Fixed-clock Type B central-phase transfers + +**NO VERIFIED GAIN. Exact conditional κ change 0%.** Every tested transfer of the negative central phase from a rank-nine Type B IDLE_ODD to a larger Type B IDLE_ONE fails on the exact [#7113](https://github.com/CrocSwap/integer-mult-bounds/pull/7113) caller. The two jobs keep their original clocks, roles and body masks. The narrow signed job would become rank eight, and an even job of rank 8m would become signed at rank 8m+1. All other operations and productive fields stay fixed. + +The census covers all 104 pairs of four signed idles and 26 larger even idles of mask sizes two through eight. Fifty-two pairs have disjoint body masks. The modular check and the independent exact rational replay exclude every pair, with zero survivors and zero unresolved cases. + +## Exact price and obstruction + +The price uses independently replayed [#7314](https://github.com/CrocSwap/integer-mult-bounds/pull/7314) at `9d0119eb12fbd9fa534b48cd37b68e7099757b91`, κ = 0.003646221436446, with 17 signed native calls, 110,536 paid positions and 22,461 productive fields. The peer gain over #7277 is exactly 0.000000551507748. The present transfer contributes zero. + +For (H_r=r^{1-\kappa}), the price-only credit across eight Type B ports is `D(m)=8[H9+H_(8m)−H8−H_(8m+1)]` before added charges. The exact prices are directed at the independent crossing upper. At most four transfers can be disjoint, and the four largest distinct even partners give upper `2D(8)+2D(7)`, about 0.22538900255587932 raw units. This grants the original volume and free additional work for the upper. The bound after support is exactly zero for each individual two-job transfer with all other operators fixed. The four-transfer figure is a price relaxation. Simultaneous transfers could cancel defects even at disjoint clocks, and that family remains open. + +The [proof](PROOF.md) cancels unchanged body factors and compares the two-sided transport of the phase projector at (q=-1), body variables one. A nonzero outside coordinate rules out the required identity. The independent rational replay verifies the old 36-role endpoint and every modular exclusion. It independently enumerates the full scope from the literal caller. + +This is a fixed-clock necessary obstruction. Changed surrounding operations, altered roles, additional signed providers, multi-role phase transfer and alternate field-volume models are open. The retained signed binder checks singleton masks. Extending that binder to a multi-stage signed child would require separate uniform ownership, tape, precision and phase evidence even if a different support route survived. + +## Replay + +From a clean checkout with CPython 3.12: + +```sh +python3.12 -B scripts/research_package.py --package research/p104-type-b-central-phase-transfer +``` + +The same check works in a Git-free export and can emit all four receipts plus controls: + +```sh +python3.12 -I -B research/p104-type-b-central-phase-transfer/replay.py --out fresh-receipts +``` + +[PRICE](receipts/PRICE.json), [BODY1](receipts/BODY1.json), [EXACT](receipts/EXACT.json) and [COMPARE](receipts/COMPARE.json) are the four frozen deterministic artifacts. Replay compares each byte for byte and rejects a corrupted caller. [Local pins](LOCAL-PINS.json) bind the bundled closure. [Public provenance](PROVENANCE.json) identifies the source commits, Git blobs and SHA-256 hashes. + +The [admission record](admission/ADMITTED.json) binds the four successful independent #7314 stages and their verified frozen receipts. Source-history validation binds exact base ancestry, committed bytes and modes, and recursive archives. The stock full-history wrapper recorded its shallow-checkout refusal separately. The exact hosted run was queued at this frozen admission checkpoint. This package replays the transfer census and authenticates those existing admission receipts. A fresh #7314 native/caller admission is outside its runtime. + +## Credit + +[#7113](https://github.com/CrocSwap/integer-mult-bounds/pull/7113) supplies the signed caller and singleton signed idle binding. [#7314](https://github.com/CrocSwap/integer-mult-bounds/pull/7314) supplies the independently replayed comparator and [#7277](https://github.com/CrocSwap/integer-mult-bounds/pull/7277) its predecessor and earlier complete invoice. [#7298](https://github.com/CrocSwap/integer-mult-bounds/pull/7298) supplies directed tariff arithmetic. + +[#7309](https://github.com/CrocSwap/integer-mult-bounds/pull/7309) bounds signed idle demotion with the fixed J blocks, [#7296](https://github.com/CrocSwap/integer-mult-bounds/pull/7296) supplies a one-child volume obstruction, [#7295](https://github.com/CrocSwap/integer-mult-bounds/pull/7295) prices fixed-contact lane capacity, and [#1252](https://github.com/CrocSwap/integer-mult-bounds/pull/1252) is the older paid idle rank-repartition precedent. OpenAI Codex and subagents materially assisted the proof, implementations, verification and packaging. + +## Open next questions + +Can a changed literal interval support a central-phase transfer at a positive complete price? First pin one changed interval and its complete paid, ordinary and field-volume bill, then test the exact two-sided projector relation. A surviving route would still need a uniform signed multi-stage binding and full dirty-data restoration at the original volume. diff --git a/research/p104-type-b-central-phase-transfer/SOURCES.json b/research/p104-type-b-central-phase-transfer/SOURCES.json new file mode 100644 index 0000000000..e8c2f265cd --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/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-type-b-central-phase-transfer/TASK.json b/research/p104-type-b-central-phase-transfer/TASK.json new file mode 100644 index 0000000000..36effbb6db --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/TASK.json @@ -0,0 +1,84 @@ +{ + "actual_scope": "Transfer the negative central phase from one original rank-nine Type B IDLE_ODD to one larger original even IDLE_ONE on exact #7113, keeping both clocks, roles and body masks, priced on independently replayed #7314.", + "ai_assistance": "OpenAI Codex and subagents materially assisted proof, implementation, independent audit and packaging.", + "author": "P104 central phase transfer research", + "base_commit": "e54523517d0f03e58352e647c403a5af3e525a57", + "bottleneck_link": "Repartition the central phase between two paid native jobs and require a preserved exact signed caller before attempting an all-width binding.", + "budget_minutes": 7, + "evidence": "Complete signed directed invoice, 104 modular and independent exact rational pair dispositions, closed comparator admission, and reproducible mutation controls.", + "open_questions": [ + { + "blocked_by": "A candidate needs an admitted multi-stage signed idle child at the original volume, all-width phase, and exact dirty-data ownership and restoration.", + "first_step": "Choose one changed interval and price the exact signed rank redistribution with all added work, then test its two-sided projector transport.", + "question": "Can a signed phase be redistributed after changing the surrounding literal mixing at a positive complete price?", + "why_it_matters": "Every fixed two-clock transfer fails the necessary projector condition, even before the all-width provider obligation." + } + ], + "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": "Changes the ranks of two retained paid jobs without deleting either or grouping fields, and tests a fixed-clock signed transfer on the current admitted bill.", + "scope_status": "changed", + "stop_rule": "Price the full disjoint stock before decoding. Exhaust 104 exact pairs or report every unresolved key at the 25-second cap. A support survivor still requires a complete literal all-width paid binding.", + "task_id": "joint-query-controller" +} diff --git a/research/p104-type-b-central-phase-transfer/VERIFY.json b/research/p104-type-b-central-phase-transfer/VERIFY.json new file mode 100644 index 0000000000..c924412715 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/VERIFY.json @@ -0,0 +1,19 @@ +{ + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/replay.py" + ], + "checks": "Authenticate the admitted comparator and exact closure, reproduce four frozen receipts and synthetic controls, compare all 104 modular and rational decisions, and reject a corrupted caller.", + "timeout_seconds": 110 + } + ], + "inputs": [], + "python": "3.12", + "requirements": [], + "schema_version": 1, + "status": "ready" +} diff --git a/research/p104-type-b-central-phase-transfer/admission/ADMITTED.json b/research/p104-type-b-central-phase-transfer/admission/ADMITTED.json new file mode 100644 index 0000000000..d110075c07 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/admission/ADMITTED.json @@ -0,0 +1,48 @@ +{ + "assumptions": [ + "native_all_columns", + "owned_erasure", + "compiler", + "precision_tape", + "analytic_recovery" + ], + "caller_sha256": "255d89f38cd45e38e5770f559bc43dc217e989032359768cdc7e8cdfd64b47bc", + "head": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "hosted": { + "head": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "run": "https://github.com/CrocSwap/integer-mult-bounds/actions/runs/43097104414", + "status": "queued" + }, + "kappa": "0.003646221436446", + "source_history": { + "evidence": { + "path": "ANCHORED.json", + "sha256": "6378aff76d6d38b3863d039b2d1814db48c3105ffe933e96d9c449e799f624aa" + }, + "stock_wrapper": "refused_shallow", + "validation": "exact_anchored_pins" + }, + "stages": { + "caller": { + "exit": 0, + "path": "STAGE-caller.json", + "sha256": "a653be3423a20a9aa0b6c532fabf7bf96ea7e5feab6bd3924d171d2b9c5c5f76" + }, + "early": { + "exit": 0, + "path": "STAGE-early.json", + "sha256": "cee13f7126ecdd375ad62b4a6773f3ac4182df52bc484dc2944a92ee31cd15f7" + }, + "frontier": { + "exit": 0, + "path": "STAGE-frontier.json", + "sha256": "75b8ceb5547f9828b03d60b7646fc2fdb47a0d02b5715d8f7fb35d7de946694f" + }, + "native": { + "exit": 0, + "path": "STAGE-native.json", + "sha256": "36ec25be5eb332a45f36d935fc1d0397e02e0b243ea38cc77d340592a33c478b" + } + }, + "status": "independently_reproduced_comparable" +} diff --git a/research/p104-type-b-central-phase-transfer/admission/ANCHORED.json b/research/p104-type-b-central-phase-transfer/admission/ANCHORED.json new file mode 100644 index 0000000000..eae2e41b61 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/admission/ANCHORED.json @@ -0,0 +1,34 @@ +{ + "base": "e54523517d0f03e58352e647c403a5af3e525a57", + "base_ancestry": "verified", + "evidence": [ + { + "path": "TREE.txt", + "sha256": "6b7c113f9b02b45024c96eafb88256b76a8d3b3d91a1c1730090ded0d3be7246" + }, + { + "path": "METADATA.stdout", + "sha256": "5873404cb4424dca918a00d503569f3c29a3190fd029a007e1afb2006399f647" + }, + { + "path": "COMMIT.stdout", + "sha256": "fd1d72b0397b2e089e9e6ae467c9322a96a08628d7d511c68b417203b5b4cee8" + }, + { + "path": "ARCHIVE.stdout", + "sha256": "fbfe4d32b4b7614ec0adbcf31d788706c305fa85c88db34822daa3e057b85599" + }, + { + "path": "DECLARED-SOURCE-PINS.json", + "sha256": "aad96b05ba3fb91051f310120c1d32729d4fd6cf20395943c4aea4fcf1d2d4d4" + }, + { + "path": "HISTORY.stderr", + "sha256": "c95523eb2c5d47834d66c8568f1d755cf2201e8a23b18ec0e1a5c3fab0eb9b74" + } + ], + "head": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "method": "Exact fetched public head, reachable base, committed bytes and modes, and recursive used source pins", + "stock_full_history_wrapper": "refused_shallow", + "tree": "01407b9d59f3d2c157865cf329bc4682431fffbe" +} diff --git a/research/p104-type-b-central-phase-transfer/admission/ARCHIVE.stdout b/research/p104-type-b-central-phase-transfer/admission/ARCHIVE.stdout new file mode 100644 index 0000000000..a4e78f3738 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/admission/ARCHIVE.stdout @@ -0,0 +1,47 @@ +PASS_ARCHIVE ed090b57ed88f8859e5ff4643645099e6ba856ea 31 git_blob_pins=31 17d5ff1d7a62496624ea10ecee297c69cb5f1cbbca12df38bd5d1a2bfdc51580 inputs/pr7277.tar.gz +PASS_ARCHIVE ff79af7a208132e16d51ceca3e1428444894367e 19 git_blob_pins=19 41e256809f3016c741b802715ea05f45f8cd4a59e7929138e693a195158564cd research/p104-terminal-cut-rechart/inputs/pr7274.tar.gz +PASS_ARCHIVE 215f67247f395c0e15f5ea3980f6a3e4aed155af 29 git_blob_pins=29 04a493b9bacc263d02a8119d833a71542da1774c80ce6e2d2794920dbdf15b68 research/p104-funded-shorter-return/inputs/pr7244.tar.gz +PASS_ARCHIVE b44944c3058d522cbff17836e16240d40d77a927 33 git_blob_pins=33 443c2d55a64a5837335b16e0d16627209a209ac0ab779fb5e010c5bb88c50e77 research/p104-two-cut-funded-split/inputs/pr7156.tar +PASS_ARCHIVE 594d57036057f88f8bacc82e9c203bd4cb3276b9 32 git_blob_pins=0 94eb795f165ab08f1cb60df1fb8b0b7c4945706e8ccdbd4927f97c09ccd3070b research/p104-temporal-chart306-continuation/inputs/pr7155.tar +PASS_ARCHIVE 3b61d41d81a4bc8f78252240c8fb02473dd3d94f 8 git_blob_pins=8 9c1614a4873ad9b72c7050602cd0a8e2c7d2192102a283aed4a9090bb7ebea88 research/p104-temporal-237-595-composition/inputs/pr7147.tar.gz +PASS_ARCHIVE 154ef929894225674df48df2d6ea3b7a7d1f39a0 36 git_blob_pins=36 6258e2e16dd9cc740639ed321523148997aa9179b95c8bedcf2099835f7abcf7 research/p104-temporal-237-595-composition/inputs/pr7148.tar.gz +PASS_ARCHIVE db8f31c4a1d9e191976e2c92951e6d2dea886a27 33 git_blob_pins=33 0a94c51ff855018d08f8a48c0b9748a164652b7492f2b5afcbe102f7202fbda0 research/p104-temporal-chart595-split/inputs/previous7145.tar +PASS_ARCHIVE 9ff298bd6547299dc5b263873bf8a400909e5501 31 git_blob_pins=31 578a8497cbd199d756bd1311bffee103c64d1556ddc915157f2a719105c23719 research/p104-endpoint-temporal-composition/inputs/temporal7143.tar +PASS_ARCHIVE a95783a8c861248a759136d4285ea725499cf231 30 git_blob_pins=30 66f517dd17dbdf1f3963dd183981b3e83129e6d6e80904aa73d8a8b83f22ffe0 research/p104-temporal-chart120-split/inputs/previous-causal-buffer.tar +PASS_ARCHIVE 666fd749ec465de7238633a0c2fd5ee3081477e0 37 git_blob_pins=37 efa1c93816997998dd61d214aa7c4e312a43e131b30a374ffccce2d5ccc91f71 research/p104-causal-buffer-split/inputs/previous-composition.tar +PASS_ARCHIVE 161e482bc2d8c78ecef96135430c60d49b8fc345 25 git_blob_pins=25 585abeb047f4c4b2d84a9a74c167fe9845850ed7521ea9f560031d5d5c82d084 research/p104-output-rechart-composition/inputs/pr7130.tar +PASS_ARCHIVE 020d581d9856b6db83e448c3f20418bc63b72c34 30 git_blob_pins=30 834098d9b40ed09035fe6128b90805517dba7c9332ef191d55c48b40e72bb620 research/p104-nonunit-pivot-split/inputs/pr7123.tar +PASS_ARCHIVE 98aad9eb0e7d7f985622a35c7981695fe680c68a 9 git_blob_pins=9 5c3ed6ee7454f95c02644f3937b6c4efef8af0428ec4a11aa4e7c286d8e148f8 research/p104-recharted-rank8-split/inputs/pr7122.tar +PASS_ARCHIVE 1670baa28f5a9631286591068d7cc2934d2c2d37 25 git_blob_pins=0 dab5a4de50253d47234930cdef7c2f04b4d283acdf3bd8c636cb3279afabc35c research/p104-global-input-rechart/inputs/pr7121.tar +PASS_ARCHIVE b3d68cf1db9bf493ded2d8f4cb922939edc0ef95 26 git_blob_pins=26 6e4e30926d7d554dfee3046eb064d082baa6139fd7c520a6d1c2eb5d3d7c18bf research/p104-unlocked-rank8-split/inputs/pr7120.tar +PASS_ARCHIVE bd244b0e5034cb1b9f72641494c3421f757ec2e4 25 git_blob_pins=25 4b00a38b97ca6eb717ba238a2b69b07256b74c51064c6c74a8ed429f4155cc63 research/p104-chart120-peer-composition/inputs/pr7119.tar +PASS_ARCHIVE 3f6ff8c34b22af12b40c5a8bcee585cd1aafdb9c 25 git_blob_pins=25 d07c3ebc0fd4f6b067bb0053c39520e9ab61fde144a133b34d4991b7e95eabd1 research/p104-funded-reciprocal-split/inputs/pr7118.tar +PASS_ARCHIVE 092255ac8e9ed07ea59fee87c9711a5d72b10750 25 git_blob_pins=25 5dad877e3ecfaada8542c69d1516ecc951086d49cc00fc0647efcaa22defd080 research/p104-funded-residual-split/inputs/pr7117.tar +PASS_ARCHIVE ee4a05f9c926cf85904c81b768d73acaf9e44b54 17 git_blob_pins=17 eff4dc88c670c15f231a60e3cddb8fc61d633d4f9ae2dc47be9597f4c5678d90 research/p104-funded-cohort-split/inputs/pr7116.tar +RETAINED_MANIFEST_REFERENCE research/p104-output-rechart-composition/peer/INPUTS.json research/p104-output-rechart-composition/peer/inputs/pr7123.tar +PASS_ARCHIVE 316b93f25361c0fd1b3a50e1180bd59096c3e45e 30 git_blob_pins=30 d7c449dfb5720e34a6dcf6c8fcd49ca956cbf3a6a66b6833e702b4998f043db7 research/p104-endpoint-temporal-composition/inputs/endpoint7142.tar +PASS_ARCHIVE a95783a8c861248a759136d4285ea725499cf231 30 git_blob_pins=0 66f517dd17dbdf1f3963dd183981b3e83129e6d6e80904aa73d8a8b83f22ffe0 research/p104-endpoint-funded-split/inputs/pr7140.tar +PASS_ARCHIVE 666fd749ec465de7238633a0c2fd5ee3081477e0 37 git_blob_pins=37 efa1c93816997998dd61d214aa7c4e312a43e131b30a374ffccce2d5ccc91f71 research/p104-causal-buffer-split/inputs/previous-composition.tar +PASS_ARCHIVE 161e482bc2d8c78ecef96135430c60d49b8fc345 25 git_blob_pins=25 585abeb047f4c4b2d84a9a74c167fe9845850ed7521ea9f560031d5d5c82d084 research/p104-output-rechart-composition/inputs/pr7130.tar +PASS_ARCHIVE 020d581d9856b6db83e448c3f20418bc63b72c34 30 git_blob_pins=30 834098d9b40ed09035fe6128b90805517dba7c9332ef191d55c48b40e72bb620 research/p104-nonunit-pivot-split/inputs/pr7123.tar +PASS_ARCHIVE 98aad9eb0e7d7f985622a35c7981695fe680c68a 9 git_blob_pins=9 5c3ed6ee7454f95c02644f3937b6c4efef8af0428ec4a11aa4e7c286d8e148f8 research/p104-recharted-rank8-split/inputs/pr7122.tar +PASS_ARCHIVE 1670baa28f5a9631286591068d7cc2934d2c2d37 25 git_blob_pins=0 dab5a4de50253d47234930cdef7c2f04b4d283acdf3bd8c636cb3279afabc35c research/p104-global-input-rechart/inputs/pr7121.tar +PASS_ARCHIVE b3d68cf1db9bf493ded2d8f4cb922939edc0ef95 26 git_blob_pins=26 6e4e30926d7d554dfee3046eb064d082baa6139fd7c520a6d1c2eb5d3d7c18bf research/p104-unlocked-rank8-split/inputs/pr7120.tar +PASS_ARCHIVE bd244b0e5034cb1b9f72641494c3421f757ec2e4 25 git_blob_pins=25 4b00a38b97ca6eb717ba238a2b69b07256b74c51064c6c74a8ed429f4155cc63 research/p104-chart120-peer-composition/inputs/pr7119.tar +PASS_ARCHIVE 3f6ff8c34b22af12b40c5a8bcee585cd1aafdb9c 25 git_blob_pins=25 d07c3ebc0fd4f6b067bb0053c39520e9ab61fde144a133b34d4991b7e95eabd1 research/p104-funded-reciprocal-split/inputs/pr7118.tar +PASS_ARCHIVE 092255ac8e9ed07ea59fee87c9711a5d72b10750 25 git_blob_pins=25 5dad877e3ecfaada8542c69d1516ecc951086d49cc00fc0647efcaa22defd080 research/p104-funded-residual-split/inputs/pr7117.tar +PASS_ARCHIVE ee4a05f9c926cf85904c81b768d73acaf9e44b54 17 git_blob_pins=17 eff4dc88c670c15f231a60e3cddb8fc61d633d4f9ae2dc47be9597f4c5678d90 research/p104-funded-cohort-split/inputs/pr7116.tar +RETAINED_MANIFEST_REFERENCE research/p104-output-rechart-composition/peer/INPUTS.json research/p104-output-rechart-composition/peer/inputs/pr7123.tar +PASS_ARCHIVE 9ff298bd6547299dc5b263873bf8a400909e5501 31 git_blob_pins=31 578a8497cbd199d756bd1311bffee103c64d1556ddc915157f2a719105c23719 research/p104-temporal-chart595-split/inputs/methods7143.tar +PASS_ARCHIVE a95783a8c861248a759136d4285ea725499cf231 30 git_blob_pins=30 66f517dd17dbdf1f3963dd183981b3e83129e6d6e80904aa73d8a8b83f22ffe0 research/p104-temporal-chart120-split/inputs/previous-causal-buffer.tar +PASS_ARCHIVE 666fd749ec465de7238633a0c2fd5ee3081477e0 37 git_blob_pins=37 efa1c93816997998dd61d214aa7c4e312a43e131b30a374ffccce2d5ccc91f71 research/p104-causal-buffer-split/inputs/previous-composition.tar +PASS_ARCHIVE 161e482bc2d8c78ecef96135430c60d49b8fc345 25 git_blob_pins=25 585abeb047f4c4b2d84a9a74c167fe9845850ed7521ea9f560031d5d5c82d084 research/p104-output-rechart-composition/inputs/pr7130.tar +PASS_ARCHIVE 020d581d9856b6db83e448c3f20418bc63b72c34 30 git_blob_pins=30 834098d9b40ed09035fe6128b90805517dba7c9332ef191d55c48b40e72bb620 research/p104-nonunit-pivot-split/inputs/pr7123.tar +PASS_ARCHIVE 98aad9eb0e7d7f985622a35c7981695fe680c68a 9 git_blob_pins=9 5c3ed6ee7454f95c02644f3937b6c4efef8af0428ec4a11aa4e7c286d8e148f8 research/p104-recharted-rank8-split/inputs/pr7122.tar +PASS_ARCHIVE 1670baa28f5a9631286591068d7cc2934d2c2d37 25 git_blob_pins=0 dab5a4de50253d47234930cdef7c2f04b4d283acdf3bd8c636cb3279afabc35c research/p104-global-input-rechart/inputs/pr7121.tar +PASS_ARCHIVE b3d68cf1db9bf493ded2d8f4cb922939edc0ef95 26 git_blob_pins=26 6e4e30926d7d554dfee3046eb064d082baa6139fd7c520a6d1c2eb5d3d7c18bf research/p104-unlocked-rank8-split/inputs/pr7120.tar +PASS_ARCHIVE bd244b0e5034cb1b9f72641494c3421f757ec2e4 25 git_blob_pins=25 4b00a38b97ca6eb717ba238a2b69b07256b74c51064c6c74a8ed429f4155cc63 research/p104-chart120-peer-composition/inputs/pr7119.tar +PASS_ARCHIVE 3f6ff8c34b22af12b40c5a8bcee585cd1aafdb9c 25 git_blob_pins=25 d07c3ebc0fd4f6b067bb0053c39520e9ab61fde144a133b34d4991b7e95eabd1 research/p104-funded-reciprocal-split/inputs/pr7118.tar +PASS_ARCHIVE 092255ac8e9ed07ea59fee87c9711a5d72b10750 25 git_blob_pins=25 5dad877e3ecfaada8542c69d1516ecc951086d49cc00fc0647efcaa22defd080 research/p104-funded-residual-split/inputs/pr7117.tar +PASS_ARCHIVE ee4a05f9c926cf85904c81b768d73acaf9e44b54 17 git_blob_pins=17 eff4dc88c670c15f231a60e3cddb8fc61d633d4f9ae2dc47be9597f4c5678d90 research/p104-funded-cohort-split/inputs/pr7116.tar +RETAINED_MANIFEST_REFERENCE research/p104-output-rechart-composition/peer/INPUTS.json research/p104-output-rechart-composition/peer/inputs/pr7123.tar diff --git a/research/p104-type-b-central-phase-transfer/admission/COMMIT.stdout b/research/p104-type-b-central-phase-transfer/admission/COMMIT.stdout new file mode 100644 index 0000000000..954f40b33a --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/admission/COMMIT.stdout @@ -0,0 +1 @@ +PASS_RESEARCH_COMMIT_BYTES {"commit": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", "files": 30, "package": "research/p104-funded-863-return", "executable_modes_checked": true} diff --git a/research/p104-type-b-central-phase-transfer/admission/DECLARED-SOURCE-PINS.json b/research/p104-type-b-central-phase-transfer/admission/DECLARED-SOURCE-PINS.json new file mode 100644 index 0000000000..16045fd064 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/admission/DECLARED-SOURCE-PINS.json @@ -0,0 +1,35 @@ +{ + "base": "e54523517d0f03e58352e647c403a5af3e525a57", + "declared_sources": [ + { + "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" + }, + { + "git_blob": "3dd1af2285e597676725e85ad4f65e7ad326d695", + "path": "docs/research/pr-intake-evidence/pr7000-application/PROOF-REVIEW.md", + "sha256": "4501502c2ceb9759b20372435fe4beb51082c5a5e2910c1fd5dbe6edca415055", + "usage": "provenance" + }, + { + "git_blob": "39e62cac780b662903582cb5f8684990fa779bb3", + "path": "research/final4610-independent-admission/checks/outer.py", + "sha256": "196be1bc2329500f2c7c995deaf5a82aecc5e27f0fef7805470cb65d187bb1c0", + "usage": "input" + }, + { + "git_blob": "c9b816f8445be9dc19b2259e03e9d8709d18c87a", + "path": "certificates/frontier7000/CLAIM.json", + "sha256": "3f8add8252adb223b60418ec69351a69b6b5edfe601ec1c6b4b65cd9e2afd9b2", + "usage": "input" + } + ] +} diff --git a/research/p104-type-b-central-phase-transfer/admission/HISTORY.stderr b/research/p104-type-b-central-phase-transfer/admission/HISTORY.stderr new file mode 100644 index 0000000000..e313449ead --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/admission/HISTORY.stderr @@ -0,0 +1 @@ +source-history check requires full Git history diff --git a/research/p104-type-b-central-phase-transfer/admission/METADATA.stdout b/research/p104-type-b-central-phase-transfer/admission/METADATA.stdout new file mode 100644 index 0000000000..a6c9fb298a --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/admission/METADATA.stdout @@ -0,0 +1 @@ +PASS_PACKAGE_METADATA_AND_PINS (not a mathematical acceptance check) diff --git a/research/p104-type-b-central-phase-transfer/admission/REGISTERED.stdout b/research/p104-type-b-central-phase-transfer/admission/REGISTERED.stdout new file mode 100644 index 0000000000..4252a0c7f9 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/admission/REGISTERED.stdout @@ -0,0 +1,78 @@ +CHECK Exact complete source closure, predecessor/candidate reconstruction, arbitrary-input native adjoint, complete17-stage invoice and both directed prices. +PASS_EXACT_NATIVE_AND_PRICE_ONLY 0.003646221436446 +CHECK Fresh full forward/adjoint, physical chart columns and phases, ownership, grid, precision, ordinary costs and rejecting controls. +PASS whole source/operator, forward/adjoint, causal charts and fresh native grid +caller 0 terms 77 +caller 500 terms 621 +caller 1000 terms 2648 +caller 1500 terms 3619 +caller 2000 terms 1590 +caller 2500 terms 398 +caller 3000 terms 1918 +caller 3500 terms 1797 +caller 4000 terms 1817 +caller 4500 terms 912 +caller 5000 terms 167 +PASS full ingredient invoice, ordinary, precision, both prices and outer gates +events 76461 public 1501 owned roles 68 paid {1: 4001, 2: 853, 3: 829, 4: 223, 5: 346, 6: 13, 7: 10, 8: 5} owned UP {1: 10, 2: 4, 3: 1, 4: 6, 5: 1, 6: 1} helpers {1: 18, 2: 21, 3: 47, 4: 225, 5: 80, 6: 43, 7: 19, 8: 32, 9: 616} +endpoint bad rows 0 odd certificate S 1125 +PASS_HOST3 decoupled ports 96 hosted ports 8 +gate interpreter agrees with the library on 4 exact state vectors +replayed 76461 events, 2951 chart pairs, 23s +prime 1000000009 seed 11: helper rows bad 0 (of 1101), X rows bad 0, Y rows bad 0, X2 rows bad 0, Y2 rows bad 0 (of 104 ports; 96 with second mains) +tableau on 104 ports: XX!=D 0 YY!=D 0 YX!=Q^-1D 0 XY!=QD 0 | controls matching (must be 0): 0 0 +PASS_PHYSICAL 30s +PASS affected Gaussian chart columns, phase, corruption controls and finite physical replay +PASS_FUNDED_863_RETURN_NATIVE 911397594381/250000000000000 +CHECK Fresh complete signed caller, all physical catalogue maps, compiler, grids, precision, fixed tape and all outer predicates. +PASS two reconstructed invoices and both exact price engines 0.003646221436446 +RUN emit_odd_type_b.py +caller 0 terms 41 +caller 500 terms 1178 +caller 1000 terms 2699 +caller 1500 terms 1262 +caller 2000 terms 881 +caller 2500 terms 2484 +caller 3000 terms 765 +caller 3500 terms 640 +caller 0 terms 41 +caller 500 terms 1178 +caller 1000 terms 2701 +caller 1500 terms 1264 +caller 2000 terms 881 +caller 2500 terms 2485 +caller 3000 terms 765 +caller 3500 terms 641 +PASS exact short type B 3877 events Counter({8: 34, 9: 4, 56: 4, 48: 4, 40: 4, 32: 4, 24: 4, 16: 4, 64: 2}) +RUN emit_odd_type_ab.py +caller 0 terms 73 +caller 500 terms 1076 +caller 1000 terms 2476 +caller 1500 terms 1334 +caller 2000 terms 2078 +caller 2500 terms 1235 +caller 3000 terms 2978 +caller 3500 terms 2335 +caller 4000 terms 1046 +caller 4500 terms 299 +PASS exact short A+B 4783 events 3752 ['1823110718223117168344442278449/500000000000000000000000000000000', '36462214364462343366888845568981/10000000000000000000000000000000000'] +RUN check_odd_caller_exact_grid.py +PASS odd caller grid [381, 69, 62] [381, 3, 2] scale bits 10 checked 176874 +RUN check_odd_physical_binding.py +PASS exact physical binding 110536 13600 22461 +RUN check_odd_precision.py +PASS short precision 406 1215 2430 +RUN check_odd_partial_admission.py +ordinary bill 782663376 +PASS partial signed short gates 782663376 1823110718223/500000000000000 {'strict_count': 54, 'functional_count': 4, 'minimum_margin': '1/1000000000000000000', 'BIT_just_below_effective_rejected': True} +RUN check_odd_fixed_tape_counts.py +PASS finite tariff substitution 43822560 25480464288 precision 2430 +RUN complete catalogue 0 1000 +RUN complete catalogue 1000 2000 +RUN complete catalogue 2000 3000 +RUN complete catalogue 3000 3037 +PASS complete 8+9 component application checks 1823110718223/500000000000000 3037 110536 +PASS_FUNDED_863_RETURN_CALLER 1823110718223/500000000000000 +CHECK Independent outer proposal, all nine savings, strict slack and actual dirty-COPY/BIT controls. +PASS_FUNDED_863_RETURN_FRONTIER_PROPOSAL 1823110718223/500000000000000 +PASS_REGISTERED_RESEARCH_PACKAGE research/p104-funded-863-return outcome=completed diff --git a/research/p104-type-b-central-phase-transfer/admission/STAGE-caller.json b/research/p104-type-b-central-phase-transfer/admission/STAGE-caller.json new file mode 100644 index 0000000000..d6486a8421 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/admission/STAGE-caller.json @@ -0,0 +1,62 @@ +{ + "exit": 0, + "head": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "method": "Completed registered runner with exact frozen-receipt comparison", + "registered_stdout_sha256": "4337cb057b7e3ac6871a3742bc257bf2a390c8fc6ea54269a0c02586feb66c76", + "stage": "caller", + "stdout": [ + "CHECK Fresh complete signed caller, all physical catalogue maps, compiler, grids, precision, fixed tape and all outer predicates.", + "PASS two reconstructed invoices and both exact price engines 0.003646221436446", + "RUN emit_odd_type_b.py", + "caller 0 terms 41", + "caller 500 terms 1178", + "caller 1000 terms 2699", + "caller 1500 terms 1262", + "caller 2000 terms 881", + "caller 2500 terms 2484", + "caller 3000 terms 765", + "caller 3500 terms 640", + "caller 0 terms 41", + "caller 500 terms 1178", + "caller 1000 terms 2701", + "caller 1500 terms 1264", + "caller 2000 terms 881", + "caller 2500 terms 2485", + "caller 3000 terms 765", + "caller 3500 terms 641", + "PASS exact short type B 3877 events Counter({8: 34, 9: 4, 56: 4, 48: 4, 40: 4, 32: 4, 24: 4, 16: 4, 64: 2})", + "RUN emit_odd_type_ab.py", + "caller 0 terms 73", + "caller 500 terms 1076", + "caller 1000 terms 2476", + "caller 1500 terms 1334", + "caller 2000 terms 2078", + "caller 2500 terms 1235", + "caller 3000 terms 2978", + "caller 3500 terms 2335", + "caller 4000 terms 1046", + "caller 4500 terms 299", + "PASS exact short A+B 4783 events 3752 ['1823110718223117168344442278449/500000000000000000000000000000000', '36462214364462343366888845568981/10000000000000000000000000000000000']", + "RUN check_odd_caller_exact_grid.py", + "PASS odd caller grid [381, 69, 62] [381, 3, 2] scale bits 10 checked 176874", + "RUN check_odd_physical_binding.py", + "PASS exact physical binding 110536 13600 22461", + "RUN check_odd_precision.py", + "PASS short precision 406 1215 2430", + "RUN check_odd_partial_admission.py", + "ordinary bill 782663376", + "PASS partial signed short gates 782663376 1823110718223/500000000000000 {'strict_count': 54, 'functional_count': 4, 'minimum_margin': '1/1000000000000000000', 'BIT_just_below_effective_rejected': True}", + "RUN check_odd_fixed_tape_counts.py", + "PASS finite tariff substitution 43822560 25480464288 precision 2430", + "RUN complete catalogue 0 1000", + "RUN complete catalogue 1000 2000", + "RUN complete catalogue 2000 3000", + "RUN complete catalogue 3000 3037", + "PASS complete 8+9 component application checks 1823110718223/500000000000000 3037 110536", + "PASS_FUNDED_863_RETURN_CALLER 1823110718223/500000000000000" + ], + "verified_frozen_receipt": { + "path": "research/p104-funded-863-return/RESULT.json", + "sha256": "432191ca572c9221935787ebe392699e3a1ef4512b0bf4fbc704657321cc87ca" + } +} diff --git a/research/p104-type-b-central-phase-transfer/admission/STAGE-early.json b/research/p104-type-b-central-phase-transfer/admission/STAGE-early.json new file mode 100644 index 0000000000..332c376157 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/admission/STAGE-early.json @@ -0,0 +1,15 @@ +{ + "exit": 0, + "head": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "method": "Completed registered runner with exact frozen-receipt comparison", + "registered_stdout_sha256": "4337cb057b7e3ac6871a3742bc257bf2a390c8fc6ea54269a0c02586feb66c76", + "stage": "early", + "stdout": [ + "CHECK Exact complete source closure, predecessor/candidate reconstruction, arbitrary-input native adjoint, complete17-stage invoice and both directed prices.", + "PASS_EXACT_NATIVE_AND_PRICE_ONLY 0.003646221436446" + ], + "verified_frozen_receipt": { + "path": "research/p104-funded-863-return/EARLY-RESULT.json", + "sha256": "b5043855411432b24336ecc443cba9ebfae6392e2045ddd01c87cfe2c51f5f08" + } +} diff --git a/research/p104-type-b-central-phase-transfer/admission/STAGE-frontier.json b/research/p104-type-b-central-phase-transfer/admission/STAGE-frontier.json new file mode 100644 index 0000000000..5b940c0b6a --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/admission/STAGE-frontier.json @@ -0,0 +1,16 @@ +{ + "exit": 0, + "head": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "method": "Completed registered runner with exact frozen-receipt comparison", + "registered_stdout_sha256": "4337cb057b7e3ac6871a3742bc257bf2a390c8fc6ea54269a0c02586feb66c76", + "stage": "frontier", + "stdout": [ + "CHECK Independent outer proposal, all nine savings, strict slack and actual dirty-COPY/BIT controls.", + "PASS_FUNDED_863_RETURN_FRONTIER_PROPOSAL 1823110718223/500000000000000", + "PASS_REGISTERED_RESEARCH_PACKAGE research/p104-funded-863-return outcome=completed" + ], + "verified_frozen_receipt": { + "path": "research/p104-funded-863-return/PROPOSED-CLAIM.json", + "sha256": "41a08c4b7d0b2de4af22bc778948a143027eb3065fff47b0400b6ded1cc52778" + } +} diff --git a/research/p104-type-b-central-phase-transfer/admission/STAGE-native.json b/research/p104-type-b-central-phase-transfer/admission/STAGE-native.json new file mode 100644 index 0000000000..c829cebce8 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/admission/STAGE-native.json @@ -0,0 +1,37 @@ +{ + "exit": 0, + "head": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "method": "Completed registered runner with exact frozen-receipt comparison", + "registered_stdout_sha256": "4337cb057b7e3ac6871a3742bc257bf2a390c8fc6ea54269a0c02586feb66c76", + "stage": "native", + "stdout": [ + "CHECK Fresh full forward/adjoint, physical chart columns and phases, ownership, grid, precision, ordinary costs and rejecting controls.", + "PASS whole source/operator, forward/adjoint, causal charts and fresh native grid", + "caller 0 terms 77", + "caller 500 terms 621", + "caller 1000 terms 2648", + "caller 1500 terms 3619", + "caller 2000 terms 1590", + "caller 2500 terms 398", + "caller 3000 terms 1918", + "caller 3500 terms 1797", + "caller 4000 terms 1817", + "caller 4500 terms 912", + "caller 5000 terms 167", + "PASS full ingredient invoice, ordinary, precision, both prices and outer gates", + "events 76461 public 1501 owned roles 68 paid {1: 4001, 2: 853, 3: 829, 4: 223, 5: 346, 6: 13, 7: 10, 8: 5} owned UP {1: 10, 2: 4, 3: 1, 4: 6, 5: 1, 6: 1} helpers {1: 18, 2: 21, 3: 47, 4: 225, 5: 80, 6: 43, 7: 19, 8: 32, 9: 616}", + "endpoint bad rows 0 odd certificate S 1125", + "PASS_HOST3 decoupled ports 96 hosted ports 8", + "gate interpreter agrees with the library on 4 exact state vectors", + "replayed 76461 events, 2951 chart pairs, 23s", + "prime 1000000009 seed 11: helper rows bad 0 (of 1101), X rows bad 0, Y rows bad 0, X2 rows bad 0, Y2 rows bad 0 (of 104 ports; 96 with second mains)", + "tableau on 104 ports: XX!=D 0 YY!=D 0 YX!=Q^-1D 0 XY!=QD 0 | controls matching (must be 0): 0 0", + "PASS_PHYSICAL 30s", + "PASS affected Gaussian chart columns, phase, corruption controls and finite physical replay", + "PASS_FUNDED_863_RETURN_NATIVE 911397594381/250000000000000" + ], + "verified_frozen_receipt": { + "path": "research/p104-funded-863-return/NATIVE-RESULT.json", + "sha256": "336f463da5afe5b60bfd3b9f0ce8aeea5a5feb1f854613bf4218ba0b28b3371b" + } +} diff --git a/research/p104-type-b-central-phase-transfer/admission/TREE.txt b/research/p104-type-b-central-phase-transfer/admission/TREE.txt new file mode 100644 index 0000000000..be5ba3cedd --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/admission/TREE.txt @@ -0,0 +1,34 @@ +head=9d0119eb12fbd9fa534b48cd37b68e7099757b91 +tree=01407b9d59f3d2c157865cf329bc4682431fffbe +parent=d2e54af81f9dda6487636b79d4964a2385d89b2b +ab188e5800e43f7eaaa89c6cec47db4700c3fca7 +100644 blob c9b816f8445be9dc19b2259e03e9d8709d18c87a certificates/frontier7000/CLAIM.json +100644 blob 39e62cac780b662903582cb5f8684990fa779bb3 research/final4610-independent-admission/checks/outer.py +100644 blob 8cf1ee78a8edd3b62757203f6ac64c2084a2ac67 research/p104-funded-863-return/EARLY-RESULT.json +100644 blob f25e94b5af3c00f66650f3b5d7ea8b255d65634f research/p104-funded-863-return/ENVIRONMENT.json +100644 blob 535e32faf1ef47c3f94f0158c371a5ec3f0bf401 research/p104-funded-863-return/INPUTS.json +100644 blob 311051d32ccd7d215461f5724c4efc61bb930b47 research/p104-funded-863-return/NATIVE-RESULT.json +100644 blob 14643eaae015e1fc1944b1e5cabb6d14751a7201 research/p104-funded-863-return/NOTICE +100644 blob f75df1b411b6044b88e6f7718a199f8bd443df2c research/p104-funded-863-return/PROOF.md +100644 blob dc54adae9b9504a4282eed4a37a3b254cd29a8d0 research/p104-funded-863-return/PROPOSED-CLAIM.json +100644 blob fa4be3de79983d8668b98bf422b41a3373dd97e1 research/p104-funded-863-return/README.md +100644 blob 8c914c84950c60c0a3232de2356ba21bf88ab26f research/p104-funded-863-return/REFERENCE.json +100644 blob ee74e523d3d74af9a4483e89e9a6eb6812dadcab research/p104-funded-863-return/REPLAY.txt +100644 blob 5f4d265ce66229590b0648815af2a6d51394a78a research/p104-funded-863-return/RESULT.json +100644 blob 6b97e903a6df8de437068a0e2907823885928053 research/p104-funded-863-return/SOURCES.json +100644 blob f3d65174b1f113355d729c6b056cae9e9d9f2d74 research/p104-funded-863-return/TASK.json +100644 blob cc98ee2a5c5a79e670094a6f55c7cacda8fd330c research/p104-funded-863-return/VERIFY.json +100644 blob 7152c37f803fa7abe40c7f58bd1b9fca8487adcb research/p104-funded-863-return/WITNESS.json +100644 blob 3939a3cc4c516cf2f184bd401fbeb0d61f5cdd40 research/p104-funded-863-return/WORD.json.gz +100644 blob 5086291567c04035ed971b4a6c5584f6fbae3e94 research/p104-funded-863-return/adapt.py +100644 blob 8b5581755010c7ce4c9be83f410bdbfaab728675 research/p104-funded-863-return/certificate.py +100644 blob 8af4c466197238dd22dbd10763f11eaf2477824d research/p104-funded-863-return/construct.py +100644 blob f8cb37f00bcd197d77bbb205dae3c1a40c0aa680 research/p104-funded-863-return/derive_grid.py +100644 blob 106de5d91dae49141f5a2317bed104d8ec07b97f research/p104-funded-863-return/frontier.py +100644 blob 5bfb7dc2a181c1ce8c3a29204c10bc5c6c48c6f9 research/p104-funded-863-return/inputs/pr7277.tar.gz +100644 blob 2f93d314459e0aacc48a3072f4c65f36d8b6dbfe research/p104-funded-863-return/packing_reference.py +100644 blob 5ca1d776063db2d674931e4d5f92b8e3c48cd779 research/p104-funded-863-return/price.py +100644 blob 3c4573002537f10b0cffa4a70f4463c1b287acfd research/p104-funded-863-return/source.py +100644 blob a8f8b1fe94d43538d597b5bf17b6eb762f8fdaab research/p104-funded-863-return/verify_caller.py +100644 blob 9f2393f5fe6a1c78637f0542cfeba843413b2735 research/p104-funded-863-return/verify_early.py +100644 blob 48517989abdb534a5f43a1f5e8e1b17e947730dd research/p104-funded-863-return/verify_native.py diff --git a/research/p104-type-b-central-phase-transfer/admission/peer-source/NATIVE-RESULT.json.gz b/research/p104-type-b-central-phase-transfer/admission/peer-source/NATIVE-RESULT.json.gz new file mode 100644 index 0000000000..67d13a7741 Binary files /dev/null and b/research/p104-type-b-central-phase-transfer/admission/peer-source/NATIVE-RESULT.json.gz differ diff --git a/research/p104-type-b-central-phase-transfer/admission/peer-source/PROPOSED-CLAIM.json.gz b/research/p104-type-b-central-phase-transfer/admission/peer-source/PROPOSED-CLAIM.json.gz new file mode 100644 index 0000000000..f0421dac59 Binary files /dev/null and b/research/p104-type-b-central-phase-transfer/admission/peer-source/PROPOSED-CLAIM.json.gz differ diff --git a/research/p104-type-b-central-phase-transfer/admission/peer-source/RESULT.json.gz b/research/p104-type-b-central-phase-transfer/admission/peer-source/RESULT.json.gz new file mode 100644 index 0000000000..2a4ded291f Binary files /dev/null and b/research/p104-type-b-central-phase-transfer/admission/peer-source/RESULT.json.gz differ diff --git a/research/p104-type-b-central-phase-transfer/dependencies/7113/CALLER.json.gz b/research/p104-type-b-central-phase-transfer/dependencies/7113/CALLER.json.gz new file mode 100644 index 0000000000..2479c3a615 Binary files /dev/null and b/research/p104-type-b-central-phase-transfer/dependencies/7113/CALLER.json.gz differ diff --git a/research/p104-type-b-central-phase-transfer/dependencies/7113/check_odd_physical_binding.py b/research/p104-type-b-central-phase-transfer/dependencies/7113/check_odd_physical_binding.py new file mode 100644 index 0000000000..def1e6a184 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/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-type-b-central-phase-transfer/dependencies/7298/pricing.py b/research/p104-type-b-central-phase-transfer/dependencies/7298/pricing.py new file mode 100644 index 0000000000..40ec194017 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/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-type-b-central-phase-transfer/dependencies/7314/EARLY-RESULT.json b/research/p104-type-b-central-phase-transfer/dependencies/7314/EARLY-RESULT.json new file mode 100644 index 0000000000..8cf1ee78a8 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/dependencies/7314/EARLY-RESULT.json @@ -0,0 +1,206 @@ +{ + "gate": { + "BIT_margin": "12046856355393/100000000000000000", + "BIT_pin": "376669/100000000", + "H": "16517900000000000000000", + "alpha": [ + 0.9999999999999998, + 0.9999999999999998 + ], + "claim": "1823110718223/500000000000000", + "compiler_gap": "1/100000000000000000", + "delta": [ + 0.9081461367171214, + 0.9081461367171214 + ], + "derivative_upper": -381546.5927436644, + "gamma": [ + 0.9407393126876238, + 0.9407393126876238 + ], + "input_lift": { + "derivative_upper_on_required_interval": "-2299831290525933154178526076272396899996972093654613095735772838275432653960006518819/2500000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "interval_kappa_cap": "376669/100000000", + "margins": { + "1823110718223/500000000000000": [ + "62199823785454617404050413610879573497101540469470466310265301482514882780289/50000000000000000000000000000000000000000000000000000000000000000000000000000000", + "31099911892727308702025206805439786748550770234735233155132650741257441390639/25000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "364622143644607/100000000000000000": [ + "62199823785455760548283029629425652271182947497890099842961066550326877196323/50000000000000000000000000000000000000000000000000000000000000000000000000000000", + "62199823785455760548283029629425652271182947497890099842961066550326877197293/50000000000000000000000000000000000000000000000000000000000000000000000000000000" + ] + }, + "source_BIT_wide_crude_bound_would_be": "-2299831290525933154178526076272396899996972093654613095735772838275432653960006518819/2500000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + }, + "minimum_log_power": 2237, + "moment_margin_float": { + "1823110718223117168344442278449/500000000000000000000000000000000": [ + 3.035135252901442e-30, + 3.035135252901442e-30 + ], + "364622143644607/100000000000000000": [ + 6.370040979946812e-11, + 6.370040979946812e-11 + ], + "36462214364462343366888845568981/10000000000000000000000000000000000": [ + -3.5727000111902154e-29, + -3.5727000111902154e-29 + ] + }, + "moment_margins": { + "1823110718223117168344442278449/500000000000000000000000000000000": [ + "303513525290144208808809854418722107591720131469279/100000000000000000000000000000000000000000000000000000000000000000000000000000000", + "151756762645072104404404927209361053795860085026633/50000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "364622143644607/100000000000000000": [ + "127400819598936229241387740801953278371059000626763310726662825432647/2000000000000000000000000000000000000000000000000000000000000000000000000000000", + "637004097994681146206938704009766391855295003133816553633314131040793/10000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "36462214364462343366888845568981/10000000000000000000000000000000000": [ + "-3572700011190215606995802912829743599368967798093399/100000000000000000000000000000000000000000000000000000000000000000000000000000000", + "-3572700011190215606995802912829743599368967759501337/100000000000000000000000000000000000000000000000000000000000000000000000000000000" + ] + }, + "outer": { + "BIT_just_below_effective_rejected": true, + "functional_count": 4, + "minimum_margin": "1/1000000000000000000", + "strict_count": 54 + }, + "raw_bracket": [ + "1823110718223117168344442278449/500000000000000000000000000000000", + "36462214364462343366888845568981/10000000000000000000000000000000000" + ], + "tested": "364622143644607/100000000000000000", + "written_log_power": 2238 + }, + "invoice": { + "P": { + "1": 68401, + "16": 416, + "2": 14501, + "24": 416, + "3": 14093, + "32": 416, + "4": 3791, + "40": 416, + "48": 416, + "5": 5882, + "56": 416, + "6": 221, + "64": 208, + "7": 170, + "8": 741, + "9": 32 + }, + "S": 1424, + "T": { + "1": 306, + "137": 208, + "17": 416, + "2": 357, + "25": 416, + "3": 799, + "33": 416, + "4": 3825, + "41": 416, + "49": 416, + "5": 1360, + "57": 416, + "6": 731, + "65": 416, + "7": 323, + "73": 208, + "8": 544, + "9": 10888 + }, + "empty_root_credits": 0 + }, + "native": { + "bad_inputs": [], + "events": 76461, + "helpers": { + "1": 18, + "2": 21, + "3": 47, + "4": 225, + "5": 80, + "6": 43, + "7": 19, + "8": 32, + "9": 616 + }, + "lifetimes": 72, + "owned_peak": 50, + "paid": { + "1": 4001, + "2": 853, + "3": 829, + "4": 223, + "5": 346, + "6": 13, + "7": 10, + "8": 5 + }, + "public": 1501, + "rises": { + "1": 10, + "2": 4, + "3": 1, + "4": 6, + "5": 1, + "6": 1 + } + }, + "native_delta": { + "P": { + "1": 1, + "6": -1 + }, + "T": { + "4": 1, + "9": -1 + } + }, + "packing": { + "ambient_cap": 145, + "claimed_fraction": [ + "244693778492339257344/389839057952880859375", + "122346889246169628672/194919528961181640625" + ], + "raw_ceiling": [ + "6387123125/1099511627776", + "12774246251/2199023255552" + ], + "remainder_rank_mass": 109088 + }, + "pending": [ + "fresh integer grid", + "all affected physical chart maps", + "complete caller replay", + "ordinary and precision bounds", + "full source application" + ], + "price": { + "baseline_rejects_new_claim": true, + "candidate_margin_at_old_upper": [ + "10688821095393814022267370482288894778088114926165761408381908203003902548866221/50000000000000000000000000000000000000000000000000000000000000000000000000000000", + "10688821095393814022267370482288894778088114926165761408381908203003902565843963/50000000000000000000000000000000000000000000000000000000000000000000000000000000" + ], + "claim_decimal": "0.003646221436446", + "gain": "5.51507748E-7", + "gain_exact": "137876937/250000000000000", + "independent_raw_bracket": [ + "0.003646221436446234336688884556898", + "0.00364622143644623433668888455689801" + ], + "previous_claim": "1822834964349/500000000000000", + "raw_bracket": [ + "0.003646221436446234336688884556898", + "0.0036462214364462343366888845568981" + ] + }, + "status": "PASS_EXACT_NATIVE_AND_PRICE_ONLY", + "word_sha256": "0358b9f6e0340fb3e5aa46c747c558b32a5280cbf9cd92c3b9de627dd18a9a4f" +} diff --git a/research/p104-type-b-central-phase-transfer/dependencies/7314/PRICE-ONLY.json b/research/p104-type-b-central-phase-transfer/dependencies/7314/PRICE-ONLY.json new file mode 100644 index 0000000000..7490e9a64d --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/dependencies/7314/PRICE-ONLY.json @@ -0,0 +1,67 @@ +{ + "head": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "input_sha256": { + "lead/dependencies/7298/pricing.py": "f4d0b6c9314b838d882d6d06020f24881c19a3fda97a7c00df87b1e920785182", + "lead/run/PRICE.json": "8df5a1b86b5c2429f1581dcf4216d51e45f4297fa94fabc7f9847b128d7568e2" + }, + "new_at_declared": [ + "908339045548306555673316763041271771209/10000000000000000000000000000000000000000000000000", + "181667809109661311134663352608254367889/2000000000000000000000000000000000000000000000000" + ], + "new_at_high": [ + "-357270001119021587349/10000000000000000000000000000000000000000000000000", + "-357270001119021530951/10000000000000000000000000000000000000000000000000" + ], + "new_at_low": [ + "15175676264507195891/5000000000000000000000000000000000000000000000000", + "7587838132253611993/2500000000000000000000000000000000000000000000000" + ], + "new_crossing": [ + "1823110718223117168344442278449/500000000000000000000000000000000", + "36462214364462343366888845568981/10000000000000000000000000000000000" + ], + "old_at_declared": [ + "-267260601771086017495894390988102290891360644997/1250000000000000000000000000000000000000000000000", + "-2138084814168688139967155127904818327130885091757/10000000000000000000000000000000000000000000000000" + ], + "paid": { + "1": 68401, + "2": 14501, + "3": 14093, + "4": 3791, + "5": 5882, + "6": 221, + "7": 170, + "8": 741, + "9": 32, + "16": 416, + "24": 416, + "32": 416, + "40": 416, + "48": 416, + "56": 416, + "64": 208 + }, + "predecessor_head": "ed090b57ed88f8859e5ff4643645099e6ba856ea", + "productive": { + "1": 306, + "2": 357, + "3": 799, + "4": 3825, + "5": 1360, + "6": 731, + "7": 323, + "8": 544, + "9": 10888, + "17": 416, + "25": 416, + "33": 416, + "41": 416, + "49": 416, + "57": 416, + "65": 416, + "73": 208, + "137": 208 + }, + "scope": "author-declared paid and productive changes; literal replay remains required" +} diff --git a/research/p104-type-b-central-phase-transfer/dependencies/7314/SOURCES.json b/research/p104-type-b-central-phase-transfer/dependencies/7314/SOURCES.json new file mode 100644 index 0000000000..6b97e903a6 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/dependencies/7314/SOURCES.json @@ -0,0 +1,36 @@ +{ + "schema_version": 1, + "base_commit": "e54523517d0f03e58352e647c403a5af3e525a57", + "files": [ + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "75d77b328ea02ded535e7f23aee5b1e55d0bb1a8", + "sha256": "154c3d30455d778fd3343b6b4851f0fa4665f0f7625b0adb3675e2bafbbf6bf1" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "3404fbdd5e7529a0674eef26114b5071e4586cec", + "sha256": "ead6cdc9d0af6d58e8a49744d8ec8c7c15e13d2ba93c276c434bcf9b51b93a81" + }, + { + "path": "docs/research/pr-intake-evidence/pr7000-application/PROOF-REVIEW.md", + "usage": "provenance", + "git_blob": "3dd1af2285e597676725e85ad4f65e7ad326d695", + "sha256": "4501502c2ceb9759b20372435fe4beb51082c5a5e2910c1fd5dbe6edca415055" + }, + { + "path": "research/final4610-independent-admission/checks/outer.py", + "usage": "input", + "git_blob": "39e62cac780b662903582cb5f8684990fa779bb3", + "sha256": "196be1bc2329500f2c7c995deaf5a82aecc5e27f0fef7805470cb65d187bb1c0" + }, + { + "path": "certificates/frontier7000/CLAIM.json", + "usage": "input", + "git_blob": "c9b816f8445be9dc19b2259e03e9d8709d18c87a", + "sha256": "3f8add8252adb223b60418ec69351a69b6b5edfe601ec1c6b4b65cd9e2afd9b2" + } + ] +} diff --git a/research/p104-type-b-central-phase-transfer/dependencies/7314/VERIFY.json b/research/p104-type-b-central-phase-transfer/dependencies/7314/VERIFY.json new file mode 100644 index 0000000000..cc98ee2a5c --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/dependencies/7314/VERIFY.json @@ -0,0 +1,52 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "certificates/frontier7000/CLAIM.json", + "research/final4610-independent-admission/checks/outer.py" + ], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/verify_early.py" + ], + "timeout_seconds": 180, + "checks": "Exact complete source closure, predecessor/candidate reconstruction, arbitrary-input native adjoint, complete17-stage invoice and both directed prices." + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/verify_native.py" + ], + "timeout_seconds": 480, + "checks": "Fresh full forward/adjoint, physical chart columns and phases, ownership, grid, precision, ordinary costs and rejecting controls." + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/verify_caller.py" + ], + "timeout_seconds": 495, + "checks": "Fresh complete signed caller, all physical catalogue maps, compiler, grids, precision, fixed tape and all outer predicates." + }, + { + "argv": [ + "{python}", + "-I", + "-B", + "{package}/frontier.py" + ], + "timeout_seconds": 45, + "checks": "Independent outer proposal, all nine savings, strict slack and actual dirty-COPY/BIT controls." + } + ] +} diff --git a/research/p104-type-b-central-phase-transfer/dependencies/7314/WORD.json.gz b/research/p104-type-b-central-phase-transfer/dependencies/7314/WORD.json.gz new file mode 100644 index 0000000000..3939a3cc4c Binary files /dev/null and b/research/p104-type-b-central-phase-transfer/dependencies/7314/WORD.json.gz differ diff --git a/research/p104-type-b-central-phase-transfer/dependencies/r44/RESULT.json.gz b/research/p104-type-b-central-phase-transfer/dependencies/r44/RESULT.json.gz new file mode 100644 index 0000000000..beae0f64ac Binary files /dev/null and b/research/p104-type-b-central-phase-transfer/dependencies/r44/RESULT.json.gz differ diff --git a/research/p104-type-b-central-phase-transfer/dependencies/r52/screen.py b/research/p104-type-b-central-phase-transfer/dependencies/r52/screen.py new file mode 100644 index 0000000000..8ccb073f0b --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/dependencies/r52/screen.py @@ -0,0 +1,360 @@ +"""Priced Type B idle pairing and bounded signed projector transport.""" + +from argparse import ArgumentParser +from bisect import bisect_left, bisect_right +from collections import Counter, defaultdict +from fractions import Fraction as Q +import gzip +from hashlib import sha256 +from heapq import heapify, heappop, heappush +from itertools import combinations +import json +from math import isqrt +from pathlib import Path +import runpy +from time import monotonic + +HEAD = "ed090b57ed88f8859e5ff4643645099e6ba856ea" +CALLER_HEAD = "07a76c5e2738882c0cb322278e56f6cae3c9885d" +PINS = { + "round30/complex/source/inputs/WORD.json.gz": "2c523ce6fdd6092d758fedc3602a0bcedb692b9766f1e41f903351ba4dee1756", + "round30/complex/source/inputs/CALLER.json": "255d89f38cd45e38e5770f559bc43dc217e989032359768cdc7e8cdfd64b47bc", + "round30/complex/source/inputs/EARLY-RESULT.json": "691025fe95c7938a6da211244d4d5b6187d88a9de1acff0862eeb7f0ce7deaa7", + "7298/verify.py": "4a4291c9019ef23c664ae9646b076dc57054b49f5c5ffd21908aa9f0edf19902", + "7298/pricing.py": "f4d0b6c9314b838d882d6d06020f24881c19a3fda97a7c00df87b1e920785182", + "7298/RESULT.json": "aaf594b981f37e7dbddb12fd052d9286cf5c8c95c8d5265ab6426408f6e58cc5", + "7113/research/signed-caller-8x9/replay/supplier7112/short-caller/check_odd_physical_binding.py": + "5c80c3b0415a7f91d216395248dd6f13297eed637732098e1ca8fb0548951b98", +} +MOD = 65521 +N = 36 +BODIES = (tuple(range(2,19)), (19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89)) +CAP = {"body1":22, "nonunit":22, "structural":42} + + +def unpack(raw): + return json.loads(gzip.decompress(raw) if raw[:2] == b"\x1f\x8b" else raw) + + +def save(out,name,payload): + raw = (json.dumps(payload,sort_keys=True,indent=2)+"\n").encode() + tmp = out/(name+".tmp") + tmp.write_bytes(raw) + tmp.replace(out/name) + return sha256(raw).hexdigest() + + +def authenticate(roots): + files = {} + for key, pin in PINS.items(): + label,path = key.split("/",1) + raw = (roots[label]/path).read_bytes() + if sha256(raw).hexdigest() != pin: + raise ValueError(f"Changed input {key}") + files[key] = raw + return files + + +def maximum_matching(jobs): + groups = defaultdict(list) + for clock,role,stage in jobs: + groups[stage].append(clock) + heap = [(-len(g),s) for s,g in groups.items()] + heapify(heap) + selected = [] + while len(heap) > 1: + na,a = heappop(heap) + nb,b = heappop(heap) + selected.append(sorted((groups[a].pop(),groups[b].pop()))) + if na < -1: + heappush(heap,(na+1,a)) + if nb < -1: + heappush(heap,(nb+1,b)) + counts = Counter(j[2] for j in jobs) + upper = min(len(jobs)//2,len(jobs)-max(counts.values(),default=0)) + assert len(selected) == upper and len({x for pair in selected for x in pair}) == 2*upper + return selected,counts + + +def price(roots): + files = authenticate(roots) + base = "round30/complex/source/inputs/" + word,caller,early = (unpack(files[base+name]) for name in ("WORD.json.gz","CALLER.json","EARLY-RESULT.json")) + old = runpy.run_path(str(roots["7298"]/"verify.py")) + audit = old["complex_scan"](word,caller,early) + assert json.loads(json.dumps(audit)) == unpack(files["7298/RESULT.json"])["complex"] + binding = next(raw for key,raw in files.items() if key.startswith("7113/")) + assert b"rank = 8*len(selected)" in binding + assert (caller["stages"],caller["types"]["B"]["offset"],caller["types"]["B"]["roles"]) == (17,36,36) + ports = len(caller["types"]["B"]["ports"]) + assert ports == 8 + jobs = [(i,e[2]-36,e[3][0]) for i,e in enumerate(caller["events"]) + if e[:2] == ["B","IDLE_ONE"] and len(e[3]) == 1] + assert len(jobs) == 34 and all(0 <= r < N and 1 <= stage <= 17 for _,r,stage in jobs) + cases = [(s[0],t[0]) for s,t in combinations(jobs,2) if s[2] != t[2]] + assert len(cases) == 544 + matching,counts = maximum_matching(jobs) + assert set(map(tuple,matching)) <= set(cases) + kappa = Q(audit["probe"]) + paid = Counter({int(k):v for k,v in early["invoice"]["P"].items()}) + targets = Counter({int(k):v for k,v in early["invoice"]["T"].items()}) + assert (sum(paid.values()),sum(targets.values()),audit["copies"]) == (110536,22461,17) + net = targets.copy() + net.subtract(paid) + delta = {8:2*ports,16:-ports} + changed = net.copy() + changed.update(delta) + cost = old["PRICING"]["cost"] + old_margin,new_margin,credit = cost(net,kappa),cost(changed,kappa),cost(delta,kappa) + assert old_margin[1] < 0 < new_margin[0] and credit[0] > 0 + h8 = old["PRICING"]["power_bounds"](8,kappa) + h16 = old["PRICING"]["power_bounds"](16,kappa) + report = { + "head":HEAD, "caller_head":CALLER_HEAD, "inputs":PINS, "crossing_upper":str(kappa), + "native_copies":audit["copies"], "type_b_ports":ports, "old_complete_paid":paid, + "old_complete_targets":targets, "old_complete_margin":list(map(str,old_margin)), + "one_pair_paid_old_minus_new":delta, "one_pair_complete_margin":list(map(str,new_margin)), + "one_pair_moment_credit":list(map(str,credit)), + "break_even_volume_factor":list(map(str,(2*h8[0]/h16[1],2*h8[1]/h16[0]))), + "whole_compatible_optimistic_upper":str(len(matching)*credit[1]), + "maximum_disjoint_pairs":len(matching), "illustrative_matching":matching, + "stage_counts":counts,"jobs":jobs,"pair_keys":cases, + "new_work_assumed_free_in_price":True, + "predeclared_followup":{"nonunit_body_vectors":BODIES,"nonunit_hard_seconds":25, + "structural_hard_seconds":45,"structural_max_cases":3}, + } + return report,caller + + +def field_scalar(raw): + q = Q(raw) + if q.denominator % MOD == 0: + raise ValueError("Nonunit modular denominator") + return q.numerator*pow(q.denominator,-1,MOD)%MOD + + +def compile_gates(caller,q,body): + gates = [] + for i,event in enumerate(caller["events"]): + kind,op,*args = event + if kind == "J": + s,t,a,b = args[1] + a,b = field_scalar(a),field_scalar(b) + m = body[op-1] + h = (m,m*a*q%MOD,m*b*q%MOD,m*(1+a*b)%MOD) + assert (h[0]*h[3]-h[1]*h[2])%MOD + gates.append((i,"J",s-36,t-36,h)) + elif kind == "B": + d = args[0]-36 + assert 0 <= d < N + if op == "ADD": + gates.append((i,op,d,args[1]-36,field_scalar(args[2]))) + elif op == "QUERY": + gates.append((i,"ADD",d,args[1]-36,pow(q,args[2]%4,MOD))) + elif op == "SWAP": + gates.append((i,op,d,args[1]-36,0)) + elif op == "SCALE": + value = field_scalar(args[1]) + assert value + gates.append((i,op,d,d,value)) + elif op in ("IDLE_ONE","IDLE_ODD"): + value = pow(q,args[2]%4,MOD) if op == "IDLE_ODD" else 1 + for stage in args[1]: + value = value*body[stage-1]%MOD + assert value + if value != 1: + gates.append((i,"SCALE",d,d,value)) + elif op != "LAMBDA": + raise ValueError(op) + return [g[0] for g in gates],gates + + +def transport(gates,initial,row,mod=None,dimension=N): + vec = [0]*dimension + vec[initial] = 1 + mixed = False + for _,op,d,s,c in reversed(gates) if row else gates: + if op == "ADD": + to,frm = (s,d) if row else (d,s) + vec[to] += c*vec[frm] + if mod: + vec[to] %= mod + elif op == "SCALE": + vec[d] *= c + if mod: + vec[d] %= mod + elif op == "SWAP": + vec[d],vec[s] = vec[s],vec[d] + elif op == "J": + a,b,x,y = c + if row: + b,x = x,b + u,v = vec[d],vec[s] + vec[d],vec[s] = (a*u+b*v)%mod,(x*u+y*v)%mod + else: + raise ValueError(op) + if mod is None and sum(bool(x) for x in vec) > 1: + mixed = True + assert any(vec) + return vec,mixed + + +def outside(vec,axis): + return next(([i,v] for i,v in enumerate(vec) if i != axis and v),None) + + +def controls(): + gates = [(0,"ADD",1,0,1),(1,"SCALE",0,0,2),(2,"ADD",1,0,-1)] + assert outside(transport(gates,0,False,MOD,2)[0],0) == [1,MOD-1] + gates[1] = (1,"SCALE",0,0,1) + assert outside(transport(gates,0,False,MOD,2)[0],0) is None + assert outside(transport(gates,0,True,MOD,2)[0],0) is None + assert transport(gates,0,False,None,2)[1] + read = [(0,"ADD",0,1,1)] + assert outside(transport(read,0,True,MOD,2)[0],0) == [1,1] + assert outside(transport(read,0,False,MOD,2)[0],0) is None + match,_ = maximum_matching([(i,0,s) for i,s in enumerate([1,1,1,1,2,3])]) + assert len(match) == 2 + caller = {"events":[["B","IDLE_ONE",36,[1]],["B","ADD",37,36,"1"], + ["B","ADD",37,36,"-1"],["B","IDLE_ONE",36,[2]]]} + assert structural(caller,0,3,0,0) == ("formal_projector_transport",True,None) + caller["events"][2] = ["B","ADD",37,36,"1"] + assert structural(caller,0,3,0,0) == ("unresolved_endpoint",True,3) + return ["body_one_false_positive","genuine_nondiagonal_transient","outside_read_only", + "distinct_mask_matching_does_not_double_spend"] + + +def modular_stage(caller,jobs,cases,bodies,deadline): + compiled = [(v,q,*compile_gates(caller,q,body)) + for v,body in enumerate(bodies) for q in (1,MOD-1)] + records = [] + for left,right in cases: + if monotonic() >= deadline: + break + source,target = jobs[left],jobs[right] + witness = None + for v,q,clocks,gates in compiled: + interval = gates[bisect_right(clocks,left):bisect_left(clocks,right)] + write,_ = transport(interval,source,False,MOD) + read,_ = transport(interval,target,True,MOD) + bad_col,bad_row = outside(write,target),outside(read,source) + if bad_col or bad_row: + witness = {"vector_index":v,"q":1 if q == 1 else -1, + "outside_write":bad_col,"outside_read":bad_row} + break + records.append({"key":[left,right],"witness":witness}) + return records + + +def structural(caller,left,right,source,target): + r = source + block = [] + mixed = False + + def flush(axis): + vec,m1 = transport(block,axis,False) + nz = [i for i,v in enumerate(vec) if v] + if len(nz) != 1: + return None,True + end = nz[0] + dual,m2 = transport(block,end,True) + return (None if outside(dual,axis) else end),m1 or m2 + + for clock,event in enumerate(caller["events"][left+1:right],left+1): + kind,op,*args = event + if kind == "B" and op in ("ADD","SCALE","SWAP"): + d = args[0]-36 + if op == "ADD": + block.append((clock,op,d,args[1]-36,Q(args[2]))) + elif op == "SCALE": + block.append((clock,op,d,d,Q(args[1]))) + else: + block.append((clock,op,d,args[1]-36,0)) + continue + if kind not in ("B","J"): + continue + r,inner = flush(r) + mixed |= inner + block.clear() + if r is None: + return "unresolved_constant_block",mixed,clock + if kind == "J" and r in {args[1][0]-36,args[1][1]-36}: + return "unresolved_active_j",True,clock + if kind == "B" and op == "QUERY" and r in {args[0]-36,args[1]-36}: + return "unresolved_query",True,clock + r,inner = flush(r) + mixed |= inner + if r != target: + return "unresolved_endpoint",mixed,right + return ("formal_projector_transport" if mixed else "diagonal_path_overlap_pending"),mixed,None + + +def previous(out,name,price_sha): + value = json.loads((out/name).read_text()) + assert value["price_sha256"] == price_sha + return value + + +def main(args,start): + roots = {"round30":args.round30,"7298":args.predecessor,"7113":args.caller_root} + pre,caller = price(roots) + out = args.out + if args.stage in ("price","body1"): + price_sha = save(out,"PRICE.json",pre) + else: + frozen = (out/"PRICE.json").read_bytes() + assert unpack(frozen) == json.loads(json.dumps(pre)) + price_sha = sha256(frozen).hexdigest() + if args.stage == "price": + return + jobs = {j[0]:j[1] for j in pre["jobs"]} + cases = pre["pair_keys"] + checks = controls() + assert all(MOD%d for d in range(2,isqrt(MOD)+1)) + prior_unvisited = [] + if args.stage != "body1": + first = previous(out,"BODY1.json",price_sha) + cases = first["survivors"] + prior_unvisited = first["unvisited"] + if args.stage == "structural": + second = previous(out,"NONUNIT.json",price_sha) + cases = second["survivors"] + prior_unvisited = second["unvisited"] + deadline = start+CAP[args.stage] + if args.stage in ("body1","nonunit"): + bodies = ((1,)*17,) if args.stage == "body1" else BODIES + rows = modular_stage(caller,jobs,cases,bodies,deadline) + survivors = [r["key"] for r in rows if r["witness"] is None] + save(out,("BODY1.json" if args.stage == "body1" else "NONUNIT.json"),{ + "stage":args.stage,"price_sha256":price_sha,"prime":MOD,"body_vectors":bodies, + "scope":len(cases),"visited":len(rows),"exclusions":len(rows)-len(survivors), + "survivors":survivors,"unvisited":[*prior_unvisited,*cases[len(rows):]], + "records":rows,"controls":checks, + }) + return + rows = [] + for a,b in cases[:3]: + if monotonic() >= deadline: + break + status,mixed,at = structural(caller,a,b,jobs[a],jobs[b]) + rows.append({"key":[a,b],"status":status,"nondiagonal_transient":mixed,"stop_clock":at}) + save(out,"STRUCTURAL.json",{ + "price_sha256":price_sha,"scope":len(cases),"visited":len(rows),"hard_seconds":45, + "unvisited":[*prior_unvisited,*cases[len(rows):]], + "support_survivors":[r["key"] for r in rows if r["status"] == "formal_projector_transport"], + "unresolved":[r["key"] for r in rows if r["status"] != "formal_projector_transport"], + "records":rows,"controls":checks, + }) + + +if __name__ == "__main__": + start = monotonic() + if not __debug__: + raise RuntimeError("Assertions required") + parser = ArgumentParser(description=__doc__) + for flag in ("round30","predecessor","caller-root","out"): + parser.add_argument("--"+flag,type=lambda x:Path(x).resolve(),required=True) + parser.add_argument("--stage",choices=("price","body1","nonunit","structural"),default="body1") + args = parser.parse_args() + args.out.mkdir(parents=True,exist_ok=True) + main(args,start) diff --git a/research/p104-type-b-central-phase-transfer/dependencies/r53/PRICE.json.gz b/research/p104-type-b-central-phase-transfer/dependencies/r53/PRICE.json.gz new file mode 100644 index 0000000000..6de845b0b0 Binary files /dev/null and b/research/p104-type-b-central-phase-transfer/dependencies/r53/PRICE.json.gz differ diff --git a/research/p104-type-b-central-phase-transfer/engines/compare.py b/research/p104-type-b-central-phase-transfer/engines/compare.py new file mode 100644 index 0000000000..a061449910 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/engines/compare.py @@ -0,0 +1,47 @@ +"""Compare exact and modular Type B central-phase dispositions by pair.""" + +from argparse import ArgumentParser +from hashlib import sha256 +from json import dumps, loads +from pathlib import Path + + +def main(): + parser = ArgumentParser(description=__doc__) + parser.add_argument('price', type=Path) + parser.add_argument('body_one', type=Path) + parser.add_argument('exact', type=Path) + args = parser.parse_args() + price, body, exact = [loads(path.read_bytes()) for path in (args.price, args.body_one, args.exact)] + assert body['price_sha256'] == sha256(args.price.read_bytes()).hexdigest() + assert not body['unvisited'] and not exact['unvisited'] + expected = {tuple(key[:2]) for key in price['pair_keys']} + modular = {tuple(row['key'][:2]): row for row in body['records']} + rational = {(row['odd'], row['even']): row for row in exact['records']} + assert set(modular) == set(rational) == expected + assert len(expected) == len(body['records']) == len(exact['records']) == 104 + for key, row in modular.items(): + verdict = rational[key] + witness = row['witness'] + assert verdict['supports'] == (witness is None) + if witness is None: + continue + for field, side in (('outside_write', 'column_off_axis'), ('outside_read', 'row_off_axis')): + coefficient = witness[field] + if coefficient is not None: + role, residue = coefficient + assert role + 36 in verdict[side] + assert 0 < residue < body['prime'] + report = { + 'matched_pairs': len(expected), + 'disjoint_stage_masks': sum(row['disjoint_stage_masks'] for row in rational.values()), + 'survivors': exact['survivors'], + 'unresolved': 0, + 'input_sha256': {key: sha256(path.read_bytes()).hexdigest() for key, path in ( + ('price', args.price), ('body_one', args.body_one), ('exact', args.exact))}, + } + print(dumps(report, indent=2, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/research/p104-type-b-central-phase-transfer/engines/screen.py b/research/p104-type-b-central-phase-transfer/engines/screen.py new file mode 100644 index 0000000000..82d82fea0c --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/engines/screen.py @@ -0,0 +1,305 @@ +"""Price and test one Type B signed central-axis transfer on the admitted comparator.""" + +import argparse +from bisect import bisect_left, bisect_right +from collections import Counter +from fractions import Fraction as Q +from hashlib import sha256 +import json +from math import isqrt +from pathlib import Path +import runpy +from time import monotonic + +H7277 = "ed090b57ed88f8859e5ff4643645099e6ba856ea" +H7314 = "9d0119eb12fbd9fa534b48cd37b68e7099757b91" +CALLER_HEAD = "07a76c5e2738882c0cb322278e56f6cae3c9885d" +CALLER = "255d89f38cd45e38e5770f559bc43dc217e989032359768cdc7e8cdfd64b47bc" +PINS = { + "7113/CALLER.json": CALLER, + "7113/check_odd_physical_binding.py": "5c80c3b0415a7f91d216395248dd6f13297eed637732098e1ca8fb0548951b98", + "r52/screen.py": "cdf54b266ac31fd0efe544badbb9840598d4c63c4d3cd363f60ae9a74cc4b256", + "7298/pricing.py": "f4d0b6c9314b838d882d6d06020f24881c19a3fda97a7c00df87b1e920785182", + "r44/RESULT.json": "8d17c43c46d0a3a98f2c3c5849f13ac49a86244ffb87ef1b62e7bf4688cd525b", + "r53/PRICE.json": "86f779c3eeb43563793e6ccb2227257ef732b2ca12fbbde2f9099988f903a484", + "7277/WORD.json.gz": "2c523ce6fdd6092d758fedc3602a0bcedb692b9766f1e41f903351ba4dee1756", + "7277/EARLY-RESULT.json": "691025fe95c7938a6da211244d4d5b6187d88a9de1acff0862eeb7f0ce7deaa7", + "7277/PRICE.json": "8df5a1b86b5c2429f1581dcf4216d51e45f4297fa94fabc7f9847b128d7568e2", + "7314/WORD.json.gz": "c404b9b61220e6cf740d85276df2828bbb4a9d68a4d44b5e283f8d96f78c0fd9", + "7314/EARLY-RESULT.json": "b5043855411432b24336ecc443cba9ebfae6392e2045ddd01c87cfe2c51f5f08", + "7314/SOURCES.json": "ac7b4473035af648d6073e78b6c39675e706e8194b346bb55ed62a0adc81d593", + "7314/VERIFY.json": "ede7dd2dd3733b9a73f72af9dd7edfe819b49b859c5c76e227ec82cb9c220513", + "7314/PRICE-ONLY.json": "b757665a3a50324b2ae6649cc89f5b8d9a752c7af996f1ee894a0de47ade94e1", +} +STAGES = {"early","native","caller","frontier"} +ASSUMPTIONS = {"native_all_columns","owned_erasure","compiler","precision_tape","analytic_recovery"} + + +def checked(path,pin): + raw = path.read_bytes() + if sha256(raw).hexdigest() != pin: + raise ValueError(f"Changed SHA-256 for {path.name}") + return raw + + +def duplicate_guard(pairs): + value = dict(pairs) + assert len(value) == len(pairs), "Duplicate key" + return value + + +def load_json(raw): + return json.loads(raw,object_pairs_hook=duplicate_guard) + + +def admission(path,pin): + if path is None or pin is None: + raise ValueError("The pending author invoice needs an independently verified admission receipt") + doc = load_json(checked(path,pin)) + assert (doc["head"],doc["caller_sha256"],doc["status"]) == ( + H7314,CALLER,"independently_reproduced_comparable") + hosted = doc["hosted"] + history = doc["source_history"] + assert hosted["head"] == H7314 and hosted["status"] in ("queued","passed") + assert (history["validation"],history["stock_wrapper"]) in ( + ("full_history","passed"),("exact_anchored_pins","refused_shallow"), + ("exact_anchored_pins","skipped_shallow")) + assert set(doc["assumptions"]) == ASSUMPTIONS + assert set(doc["stages"]) == STAGES + root = path.resolve().parent + seen = set() + for item in doc["stages"].values(): + relative = Path(item["path"]) + local = (root/relative).resolve() + assert not relative.is_absolute() and ".." not in relative.parts and local.is_relative_to(root) + assert local not in seen and item["exit"] == 0 + seen.add(local) + checked(local,item["sha256"]) + evidence = history["evidence"] + relative = Path(evidence["path"]) + local = (root/relative).resolve() + assert not relative.is_absolute() and ".." not in relative.parts and local.is_relative_to(root) + checked(local,evidence["sha256"]) + return {"head":H7314,"sha256":pin,"hosted":hosted,"source_history":history,"stages":doc["stages"]} + + +def inputs(args): + chosen = {key:pin for key,pin in PINS.items() + if key.split("/",1)[0] not in ("7277","7314") or key.startswith(args.comparator+"/")} + values = {key:checked(args.inputs/key,pin) for key,pin in chosen.items()} + if args.comparator == "7277": + assert args.admission is None and args.admission_sha is None + admitted = {"head":H7277,"status":"sealed_independently_reproduced_comparable"} + else: + admitted = admission(args.admission,args.admission_sha) + return chosen,values,admitted + + +def invoice(comparator,values): + early = load_json(values[f"{comparator}/EARLY-RESULT.json"])["invoice"] + paid = Counter({int(k):v for k,v in early["P"].items()}) + targets = Counter({int(k):v for k,v in early["T"].items()}) + assert early["empty_root_credits"] == 0 and early["S"] == 1424 + assert sum(paid.values()) == 110536 and sum(targets.values()) == 22461 + if comparator == "7277": + frozen = load_json(values["7277/PRICE.json"]) + assert frozen["head"] == H7277 and frozen["caller_head"] == CALLER_HEAD and frozen["copies"] == 17 + assert {int(r):v for r,v in frozen["original_paid"].items()} == paid + assert {int(r):v for r,v in frozen["original_productive"].items()} == targets + crossing = Q(frozen["crossing_upper"]) + else: + frozen = load_json(values["7314/PRICE-ONLY.json"]) + assert frozen["head"] == H7314 and frozen["predecessor_head"] == H7277 + assert {int(r):v for r,v in frozen["paid"].items()} == paid + assert {int(r):v for r,v in frozen["productive"].items()} == targets + crossing = Q(frozen["new_crossing"][1]) + net = targets.copy() + net.subtract(paid) + assert sum(r*v for r,v in net.items()) == 1424 + return paid,targets,net,crossing + + +def stock(caller,odd_receipt,even_receipt): + odd,even = {},{} + block = caller["types"]["B"] + assert (block["offset"],block["roles"],len(block["ports"]),caller["stages"]) == (36,36,8,17) + for clock,event in enumerate(caller["events"]): + if event[:2] not in (["B","IDLE_ODD"],["B","IDLE_ONE"]): + continue + role,mask = event[2:4] + assert 36 <= role < 72 and mask and len(set(mask)) == len(mask) + assert all(1 <= j <= 17 for j in mask) + if event[1] == "IDLE_ODD": + assert len(mask) == 1 and event[4:] == [-1] + odd[clock] = (role-36,mask) + elif len(mask) > 1: + even[clock] = (role-36,mask) + assert len(odd) == 4 and len(even) == 26 + assert {str(i):{"role":r+36,"stage":mask[0],"q_power":-1} for i,(r,mask) in odd.items()} == odd_receipt["odd_idles"] + assert [[i,r,sorted(mask)] for i,(r,mask) in even.items()] == [ + row for row in even_receipt["job_masks"] if len(row[2]) > 1] + assert Counter(len(mask) for _,mask in even.values()) == {2:4,3:4,4:4,5:4,6:4,7:4,8:2} + return odd,even + + +def rank_delta(m): + assert m >= 2 + return {9:8,8*m:8,8:-8,8*m+1:-8} + + +def make_price(args,transport,tariff): + pins,values,admitted = inputs(args) + caller = load_json(values["7113/CALLER.json"]) + assert b"len(selected)==1 and a[1:]==[-1]" in values["7113/check_odd_physical_binding.py"] + odd,even = stock(caller,load_json(values["r44/RESULT.json"]),load_json(values["r53/PRICE.json"])) + paid,targets,net,kappa = invoice(args.comparator,values) + cost,power = tariff["cost"],tariff["power_bounds"] + old = cost(net,kappa) + assert old[1] < 0 + quotes = {} + for m in range(2,9): + d = rank_delta(m) + result = net.copy() + result.update(d) + saving,margin = cost(d,kappa),cost(result,kappa) + assert saving[0] > Q(1,100) and margin[0] > 0 + broad = power(8*m+1,kappa) + ninth,old_broad,eighth = (power(r,kappa) for r in (9,8*m,8)) + volume = ((ninth[0]+old_broad[0]-eighth[1])/broad[1], + (ninth[1]+old_broad[1]-eighth[0])/broad[0]) + quotes[m] = {"old_ranks":[9,8*m],"new_ranks":[8,8*m+1],"paid_old_minus_new":d, + "saving_interval":list(map(str,saving)),"complete_margin_interval":list(map(str,margin)), + "promoted_volume_break_even_before_other_costs":list(map(str,volume))} + assert all(Q(quotes[m]["saving_interval"][1]) < Q(quotes[m+1]["saving_interval"][0]) for m in range(2,8)) + chosen = sorted(even,key=lambda i:(-len(even[i][1]),i))[:len(odd)] + assert [len(even[i][1]) for i in chosen] == [8,8,7,7] + upper = sum(Q(quotes[len(even[i][1])]["saving_interval"][1]) for i in chosen) + keys = [[a,b,len(even[b][1])] for a in odd for b in even] + assert len(keys) == 104 and len({(a,b) for a,b,m in keys}) == 104 + price = { + "comparator":args.comparator,"comparator_admission":admitted,"caller_head":CALLER_HEAD, + "source_pins":pins,"complete_paid":paid,"complete_targets":targets,"copies":17, + "type_b_ports":8,"crossing_upper":str(kappa),"old_complete_margin_interval":list(map(str,old)), + "odd_jobs":odd,"even_jobs":even,"pair_keys":keys,"price_by_mask_length":quotes, + "whole_compatible_optimistic_upper":str(upper),"upper_broad_job_choices":chosen, + "extra_costs_granted_free_only_for_upper":True,"paid_multistage_odd_binding":"unproved", + "followup":{"body_one_hard_seconds":25,"nonunit_body_vectors":transport["BODIES"], + "nonunit_hard_seconds":25,"structural_max_cases":3,"structural_hard_seconds":45, + "one_candidate_uniform_binding_seconds":90}, + } + return price,caller,odd,even + + +def support_rows(transport,caller,odd,even,keys,bodies,deadline): + prime = transport["MOD"] + compiled = [transport["compile_gates"](caller,prime-1,v) for v in bodies] + rows = [] + for a,b,m in keys: + if monotonic() >= deadline: + break + left,right = sorted((a,b)) + source,target = (odd[a][0],even[b][0]) if a < b else (even[b][0],odd[a][0]) + witness = None + for phase,(clocks,gates) in enumerate(compiled): + window = gates[bisect_right(clocks,left):bisect_left(clocks,right)] + col,_ = transport["transport"](window,source,False,prime) + row,_ = transport["transport"](window,target,True,prime) + col_out,row_out = transport["outside"](col,target),transport["outside"](row,source) + if col_out or row_out: + witness = {"body_vector":phase,"q":-1,"outside_write":col_out,"outside_read":row_out} + break + rows.append({"key":[a,b,m],"earlier_role":source,"later_role":target,"witness":witness}) + return rows + + +def controls(transport,tariff): + x = Q("0.003645669928698") + assert sum(k*n for k,n in rank_delta(8).items()) == 0 + assert tariff["cost"](rank_delta(2),x)[0] > Q(1,100) + assert tariff["cost"](rank_delta(8),x)[0] > tariff["cost"](rank_delta(2),x)[1] + apply,outside = transport["transport"],transport["outside"] + p = transport["MOD"] + # SWAP carries both projector directions; a transverse ADD defeats one. + swap = [(0,"SWAP",0,1,0)] + assert outside(apply(swap,0,False,p,2)[0],1) is None + assert outside(apply(swap,1,True,p,2)[0],0) is None + assert outside(apply([(0,"ADD",1,0,1)],0,False,p,2)[0],0) == [1,1] + def mul(a,b): + return [[sum(a[i][k]*b[k][j] for k in (0,1)) for j in (0,1)] for i in (0,1)] + phase_left = [[-1,0],[0,1]] + phase_right = [[1,0],[0,-1]] + middle = [[0,1],[1,0]] + body_left = [[2,0],[0,1]] + body_right = [[1,0],[0,3]] + old = mul(body_right,mul(middle,mul(phase_left,body_left))) + new = mul(phase_right,mul(body_right,mul(middle,body_left))) + assert old == new + assert mul(body_right,mul(phase_right,mul(middle,body_left))) == old + return ["mass_neutral_positive_directed_price","full_phase_move_with_nonunit_bodies", + "two_sided_swap_positive","outside_column_negative",*transport["controls"]()] + + +def main(args,start): + for key in ("r52/screen.py","7298/pricing.py"): + checked(args.inputs/key,PINS[key]) + transport = runpy.run_path(str(args.inputs/"r52/screen.py")) + tariff = runpy.run_path(str(args.inputs/"7298/pricing.py")) + checks = controls(transport,tariff) + if args.controls_only: + print(json.dumps({"controls":checks},indent=2,sort_keys=True)) + return + args.out.mkdir(parents=True,exist_ok=True) + pre,caller,odd,even = make_price(args,transport,tariff) + save = transport["save"] + if args.price_only: + save(args.out,"PRICE.json",pre) + return + frozen = (args.out/"PRICE.json").read_bytes() + assert load_json(frozen) == json.loads(json.dumps(pre)), "Price receipt differs from pinned inputs" + pin = sha256(frozen).hexdigest() + assert all(transport["MOD"]%d for d in range(2,isqrt(transport["MOD"])+1)) + keys,unvisited = pre["pair_keys"],[] + if args.nonunit or args.structural: + old = transport["previous"](args.out,"BODY1.json" if args.nonunit else "NONUNIT.json",pin) + keys,unvisited = old["survivors"],old["unvisited"] + if args.structural: + rows = [] + for a,b,m in keys[:3]: + if monotonic() >= start+42: + break + left,right = sorted((a,b)) + source,target = (odd[a][0],even[b][0]) if a < b else (even[b][0],odd[a][0]) + status,mixed,clock = transport["structural"](caller,left,right,source,target) + rows.append({"key":[a,b,m],"status":status,"mixed":mixed,"stop_clock":clock}) + save(args.out,"STRUCTURAL.json",{ + "price_sha256":pin,"scope":len(keys),"visited":len(rows),"unvisited":[*unvisited,*keys[len(rows):]], + "records":rows,"unresolved":[r["key"] for r in rows if r["status"] != "formal_projector_transport"], + "support_survivors":[r["key"] for r in rows if r["status"] == "formal_projector_transport"], + "paid_multistage_odd_binding":"unproved","controls":checks, + }) + return + bodies = transport["BODIES"] if args.nonunit else ((1,)*17,) + rows = support_rows(transport,caller,odd,even,keys,bodies,start+22) + survivors = [row["key"] for row in rows if not row["witness"]] + save(args.out,"NONUNIT.json" if args.nonunit else "BODY1.json",{ + "price_sha256":pin,"scope":len(keys),"visited":len(rows),"exclusions":len(rows)-len(survivors), + "survivors":survivors,"unvisited":[*unvisited,*keys[len(rows):]],"records":rows, + "body_vectors":bodies,"prime":transport["MOD"],"controls":checks, + }) + + +if __name__ == "__main__": + start = monotonic() + if not __debug__: + raise RuntimeError("Assertions required") + p = argparse.ArgumentParser(description=__doc__) + p.add_argument("--inputs",type=lambda x:Path(x).resolve(),required=True) + p.add_argument("--out",type=Path,default=Path("run")) + p.add_argument("--comparator",choices=("7277","7314"),default="7277") + p.add_argument("--admission",type=Path) + p.add_argument("--admission-sha") + mode = p.add_mutually_exclusive_group(required=True) + for flag in ("price-only","support","nonunit","structural","controls-only"): + mode.add_argument("--"+flag,action="store_true") + args = p.parse_args() + main(args,start) diff --git a/research/p104-type-b-central-phase-transfer/engines/transfer.py b/research/p104-type-b-central-phase-transfer/engines/transfer.py new file mode 100644 index 0000000000..c86ca5f81a --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/engines/transfer.py @@ -0,0 +1,141 @@ +"""Exact column and row transport for Type B central-axis transfers.""" + +from argparse import ArgumentParser +from collections import Counter +from fractions import Fraction +from hashlib import sha256 +from itertools import product +from json import dumps, loads +from pathlib import Path +from time import monotonic + +CALLER_SHA = '255d89f38cd45e38e5770f559bc43dc217e989032359768cdc7e8cdfd64b47bc' + + +def basis(count, role): + return [Fraction(i == role) for i in range(count)] + + +def odd_sign(exponent): + return Fraction(1 if exponent % 2 == 0 else -1) + + +def at_unit_body(event, offset): + if event[0] == 'J': + s, t, alpha, beta = event[3] + a, b = -Fraction(alpha), -Fraction(beta) + return 'plane', s - offset, t - offset, (Fraction(1), a, b, 1 + a * b) + if event[0] != 'B': + return None + _, op, r, *args = event + r -= offset + if op == 'SWAP': + return 'swap', r, args[0] - offset, None + if op in {'QUERY', 'ADD'}: + coeff = odd_sign(args[1]) if op == 'QUERY' else Fraction(args[1]) + return 'add', r, args[0] - offset, coeff + if op == 'IDLE_ODD': + return 'scale', r, None, odd_sign(args[1]) + if op == 'SCALE': + return 'scale', r, None, Fraction(args[0]) + assert op in {'IDLE_ONE', 'LAMBDA'} + return None + + +def apply(vector, gate, transpose=False): + op, r, s, coeff = gate + if op == 'swap': + vector[r], vector[s] = vector[s], vector[r] + elif op == 'scale': + vector[r] *= coeff + elif op == 'add': + dest, source = (s, r) if transpose else (r, s) + vector[dest] += coeff * vector[source] + else: + assert op == 'plane' + a, b, c, d = coeff + if transpose: + b, c = c, b + vector[r], vector[s] = a * vector[r] + b * vector[s], c * vector[r] + d * vector[s] + + +def cross_support(gates, count, source, target): + column = basis(count, source) + row = basis(count, target) + for gate in gates: + apply(column, gate) + for gate in reversed(gates): + apply(row, gate, transpose=True) + assert row[source] == column[target] + return ( + tuple(i for i, x in enumerate(column) if i != target and x), + tuple(i for i, x in enumerate(row) if i != source and x), + ) + + +def controls(): + assert cross_support([('swap', 0, 1, None)], 2, 0, 1) == ((), ()) + assert cross_support([('add', 1, 0, Fraction(-2))], 2, 0, 0) == ((1,), ()) + assert cross_support([('add', 0, 1, Fraction(2))], 2, 0, 0) == ((), (1,)) + assert cross_support([('scale', 1, None, Fraction(-1))], 2, 0, 1) == ((0,), (1,)) + + +def run(caller, seconds): + start = monotonic() + kind = caller['types']['B'] + offset, count = kind['offset'], kind['roles'] + events = caller['events'] + gates = [at_unit_body(e, offset) for e in events] + odd = [(i, e[2] - offset, tuple(e[3])) for i, e in enumerate(events) if e[:2] == ['B', 'IDLE_ODD']] + even = [(i, e[2] - offset, tuple(e[3])) for i, e in enumerate(events) + if e[:2] == ['B', 'IDLE_ONE'] and len(e[3]) >= 2] + assert len(odd) == 4 and len(even) == 26 and len(kind['ports']) == 8 + assert all(len(mask) == 1 for _, _, mask in odd) + cases = list(product(odd, even)) + all_gates = tuple(gate for gate in gates if gate is not None) + assert len(cases) == 104 + for role, diagonal in enumerate(kind['diagonal']): + column = basis(count, role) + for gate in all_gates: + apply(column, gate) + assert column == [v * odd_sign(diagonal[0]) for v in basis(count, role)] + rows = [] + for first, second in cases: + if monotonic() - start >= seconds: + break + (lo, source, _), (hi, target, _) = sorted((first, second)) + interior = [gate for gate in gates[lo+1:hi] if gate is not None] + column, row = cross_support(interior, count, source, target) + rows.append({ + 'odd': first[0], 'even': second[0], 'supports': not column and not row, + 'column_off_axis': [i + offset for i in column], 'row_off_axis': [i + offset for i in row], + 'disjoint_stage_masks': set(first[2]).isdisjoint(second[2]), + }) + return { + 'caller_sha256': CALLER_SHA, + 'tested': len(rows), + 'survivors': sum(row['supports'] for row in rows), + 'controls': 4, + 'counts_by_support': dict(Counter(str(row['supports']).lower() for row in rows)), + 'records': rows, + 'unvisited': [[a[0], b[0]] for a, b in cases[len(rows):]], + } + + +def main(): + parser = ArgumentParser(description=__doc__) + parser.add_argument('caller', nargs='?', type=Path) + parser.add_argument('--seconds', type=float, default=25) + parser.add_argument('--controls-only', action='store_true') + args = parser.parse_args() + controls() + if args.controls_only: + return + raw = args.caller.read_bytes() + if sha256(raw).hexdigest() != CALLER_SHA: + raise ValueError('Changed signed caller') + print(dumps(run(loads(raw), args.seconds), indent=2, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/research/p104-type-b-central-phase-transfer/receipts/BODY1.json b/research/p104-type-b-central-phase-transfer/receipts/BODY1.json new file mode 100644 index 0000000000..42032d2e38 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/receipts/BODY1.json @@ -0,0 +1,2226 @@ +{ + "body_vectors": [ + [ + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ] + ], + "controls": [ + "mass_neutral_positive_directed_price", + "full_phase_move_with_nonunit_bodies", + "two_sided_swap_positive", + "outside_column_negative", + "body_one_false_positive", + "genuine_nondiagonal_transient", + "outside_read_only", + "distinct_mask_matching_does_not_double_spend" + ], + "exclusions": 104, + "price_sha256": "6f3510db09e18278c0f18d8e0cbe1242fc48e999dafc87cb04cc87e240b93819", + "prime": 65521, + "records": [ + { + "earlier_role": 32, + "key": [ + 1339, + 1855, + 7 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 1 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 1869, + 7 + ], + "later_role": 2, + "witness": { + "body_vector": 0, + "outside_read": [ + 1, + 2 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 1887, + 6 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 1 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 1940, + 6 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 1, + 65520 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 1997, + 5 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 1 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2027, + 5 + ], + "later_role": 2, + "witness": { + "body_vector": 0, + "outside_read": [ + 1, + 65519 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2061, + 4 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 1 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2099, + 4 + ], + "later_role": 2, + "witness": { + "body_vector": 0, + "outside_read": [ + 1, + 65519 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2141, + 3 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 1 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2187, + 3 + ], + "later_role": 2, + "witness": { + "body_vector": 0, + "outside_read": [ + 1, + 65519 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2237, + 2 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 1 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2291, + 2 + ], + "later_role": 2, + "witness": { + "body_vector": 0, + "outside_read": [ + 1, + 65519 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2324, + 8 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 65513 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2337, + 8 + ], + "later_role": 1, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 65501 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2355, + 7 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 108 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2377, + 7 + ], + "later_role": 16, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 65501 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2403, + 6 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 65413 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2433, + 6 + ], + "later_role": 16, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 20 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2467, + 5 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 108 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2505, + 5 + ], + "later_role": 16, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 65501 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2547, + 4 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 65413 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2593, + 4 + ], + "later_role": 16, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 20 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2643, + 3 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 108 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2697, + 3 + ], + "later_role": 16, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 65501 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2750, + 2 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 20 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 32, + "key": [ + 1339, + 2804, + 2 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 40 + ], + "outside_write": [ + 32, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 1855, + 7 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 1 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 1869, + 7 + ], + "later_role": 2, + "witness": { + "body_vector": 0, + "outside_read": [ + 1, + 2 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 1887, + 6 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 1 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 1940, + 6 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 1, + 65520 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 1997, + 5 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 1 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2027, + 5 + ], + "later_role": 2, + "witness": { + "body_vector": 0, + "outside_read": [ + 1, + 65519 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2061, + 4 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 1 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2099, + 4 + ], + "later_role": 2, + "witness": { + "body_vector": 0, + "outside_read": [ + 1, + 65519 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2141, + 3 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 1 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2187, + 3 + ], + "later_role": 2, + "witness": { + "body_vector": 0, + "outside_read": [ + 1, + 65519 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2237, + 2 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 1 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2291, + 2 + ], + "later_role": 2, + "witness": { + "body_vector": 0, + "outside_read": [ + 1, + 65519 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2324, + 8 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 65513 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2337, + 8 + ], + "later_role": 1, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 65501 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2355, + 7 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 108 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2377, + 7 + ], + "later_role": 16, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 65501 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2403, + 6 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 65413 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2433, + 6 + ], + "later_role": 16, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 20 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2467, + 5 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 108 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2505, + 5 + ], + "later_role": 16, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 65501 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2547, + 4 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 65413 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2593, + 4 + ], + "later_role": 16, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 20 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2643, + 3 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 108 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2697, + 3 + ], + "later_role": 16, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 65501 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2750, + 2 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 20 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 33, + "key": [ + 1340, + 2804, + 2 + ], + "later_role": 0, + "witness": { + "body_vector": 0, + "outside_read": [ + 0, + 40 + ], + "outside_write": [ + 33, + 1 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2970, + 1855, + 7 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 32753 + ], + "q": -1 + } + }, + { + "earlier_role": 2, + "key": [ + 2970, + 1869, + 7 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 65508 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2970, + 1887, + 6 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 32768 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2970, + 1940, + 6 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 32802 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2970, + 1997, + 5 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 32753 + ], + "q": -1 + } + }, + { + "earlier_role": 2, + "key": [ + 2970, + 2027, + 5 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 32556 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2970, + 2061, + 4 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 32768 + ], + "q": -1 + } + }, + { + "earlier_role": 2, + "key": [ + 2970, + 2099, + 4 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 32965 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2970, + 2141, + 3 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 32753 + ], + "q": -1 + } + }, + { + "earlier_role": 2, + "key": [ + 2970, + 2187, + 3 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 32556 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2970, + 2237, + 2 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 32768 + ], + "q": -1 + } + }, + { + "earlier_role": 2, + "key": [ + 2970, + 2291, + 2 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 32965 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2970, + 2324, + 8 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 65505 + ], + "q": -1 + } + }, + { + "earlier_role": 1, + "key": [ + 2970, + 2337, + 8 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 7 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2970, + 2355, + 7 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 65505 + ], + "q": -1 + } + }, + { + "earlier_role": 16, + "key": [ + 2970, + 2377, + 7 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 65434 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2970, + 2403, + 6 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 65505 + ], + "q": -1 + } + }, + { + "earlier_role": 16, + "key": [ + 2970, + 2433, + 6 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 65434 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2970, + 2467, + 5 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 65505 + ], + "q": -1 + } + }, + { + "earlier_role": 16, + "key": [ + 2970, + 2505, + 5 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 65434 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2970, + 2547, + 4 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 65505 + ], + "q": -1 + } + }, + { + "earlier_role": 16, + "key": [ + 2970, + 2593, + 4 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 65434 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2970, + 2643, + 3 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 65505 + ], + "q": -1 + } + }, + { + "earlier_role": 16, + "key": [ + 2970, + 2697, + 3 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 65434 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2970, + 2750, + 2 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 26208 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2970, + 2804, + 2 + ], + "later_role": 34, + "witness": { + "body_vector": 0, + "outside_read": [ + 34, + 1 + ], + "outside_write": [ + 0, + 52417 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2971, + 1855, + 7 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 32753 + ], + "q": -1 + } + }, + { + "earlier_role": 2, + "key": [ + 2971, + 1869, + 7 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 65508 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2971, + 1887, + 6 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 32768 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2971, + 1940, + 6 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 32802 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2971, + 1997, + 5 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 32753 + ], + "q": -1 + } + }, + { + "earlier_role": 2, + "key": [ + 2971, + 2027, + 5 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 32556 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2971, + 2061, + 4 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 32768 + ], + "q": -1 + } + }, + { + "earlier_role": 2, + "key": [ + 2971, + 2099, + 4 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 32965 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2971, + 2141, + 3 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 32753 + ], + "q": -1 + } + }, + { + "earlier_role": 2, + "key": [ + 2971, + 2187, + 3 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 32556 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2971, + 2237, + 2 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 32768 + ], + "q": -1 + } + }, + { + "earlier_role": 2, + "key": [ + 2971, + 2291, + 2 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 32965 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2971, + 2324, + 8 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 65505 + ], + "q": -1 + } + }, + { + "earlier_role": 1, + "key": [ + 2971, + 2337, + 8 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 7 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2971, + 2355, + 7 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 65505 + ], + "q": -1 + } + }, + { + "earlier_role": 16, + "key": [ + 2971, + 2377, + 7 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 65434 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2971, + 2403, + 6 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 65505 + ], + "q": -1 + } + }, + { + "earlier_role": 16, + "key": [ + 2971, + 2433, + 6 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 65434 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2971, + 2467, + 5 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 65505 + ], + "q": -1 + } + }, + { + "earlier_role": 16, + "key": [ + 2971, + 2505, + 5 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 65434 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2971, + 2547, + 4 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 65505 + ], + "q": -1 + } + }, + { + "earlier_role": 16, + "key": [ + 2971, + 2593, + 4 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 65434 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2971, + 2643, + 3 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 65505 + ], + "q": -1 + } + }, + { + "earlier_role": 16, + "key": [ + 2971, + 2697, + 3 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 65434 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2971, + 2750, + 2 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 26208 + ], + "q": -1 + } + }, + { + "earlier_role": 0, + "key": [ + 2971, + 2804, + 2 + ], + "later_role": 35, + "witness": { + "body_vector": 0, + "outside_read": [ + 35, + 1 + ], + "outside_write": [ + 0, + 52417 + ], + "q": -1 + } + } + ], + "scope": 104, + "survivors": [], + "unvisited": [], + "visited": 104 +} diff --git a/research/p104-type-b-central-phase-transfer/receipts/COMPARE.json b/research/p104-type-b-central-phase-transfer/receipts/COMPARE.json new file mode 100644 index 0000000000..b358a42598 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/receipts/COMPARE.json @@ -0,0 +1,11 @@ +{ + "disjoint_stage_masks": 52, + "input_sha256": { + "body_one": "7cb8a1bcfa0d7223b03e3505c2cd91df525dc251676f51824cadb29ea6667321", + "exact": "9e7f77312b724f9b8884c2177ea6a0cd922ecb1a9e9fbee30656117661e2edbf", + "price": "6f3510db09e18278c0f18d8e0cbe1242fc48e999dafc87cb04cc87e240b93819" + }, + "matched_pairs": 104, + "survivors": 0, + "unresolved": 0 +} diff --git a/research/p104-type-b-central-phase-transfer/receipts/CONTROLS.json b/research/p104-type-b-central-phase-transfer/receipts/CONTROLS.json new file mode 100644 index 0000000000..db9eaed1f8 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/receipts/CONTROLS.json @@ -0,0 +1,12 @@ +{ + "controls": [ + "mass_neutral_positive_directed_price", + "full_phase_move_with_nonunit_bodies", + "two_sided_swap_positive", + "outside_column_negative", + "body_one_false_positive", + "genuine_nondiagonal_transient", + "outside_read_only", + "distinct_mask_matching_does_not_double_spend" + ] +} diff --git a/research/p104-type-b-central-phase-transfer/receipts/EXACT.json b/research/p104-type-b-central-phase-transfer/receipts/EXACT.json new file mode 100644 index 0000000000..7e443d8014 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/receipts/EXACT.json @@ -0,0 +1,2510 @@ +{ + "caller_sha256": "255d89f38cd45e38e5770f559bc43dc217e989032359768cdc7e8cdfd64b47bc", + "controls": 4, + "counts_by_support": { + "false": 104 + }, + "records": [ + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": false, + "even": 1855, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": false, + "even": 1869, + "odd": 1339, + "row_off_axis": [ + 37, + 38, + 39 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": false, + "even": 1887, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": false, + "even": 1940, + "odd": 1339, + "row_off_axis": [ + 37, + 38, + 39, + 40, + 41 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": false, + "even": 1997, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": false, + "even": 2027, + "odd": 1339, + "row_off_axis": [ + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": false, + "even": 2061, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": false, + "even": 2099, + "odd": 1339, + "row_off_axis": [ + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": false, + "even": 2141, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": false, + "even": 2187, + "odd": 1339, + "row_off_axis": [ + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": false, + "even": 2237, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": false, + "even": 2291, + "odd": 1339, + "row_off_axis": [ + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": true, + "even": 2324, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": true, + "even": 2337, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": true, + "even": 2355, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": true, + "even": 2377, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": true, + "even": 2403, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": true, + "even": 2433, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": true, + "even": 2467, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": true, + "even": 2505, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": true, + "even": 2547, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": true, + "even": 2593, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": true, + "even": 2643, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": true, + "even": 2697, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": true, + "even": 2750, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64 + ], + "supports": false + }, + { + "column_off_axis": [ + 68 + ], + "disjoint_stage_masks": true, + "even": 2804, + "odd": 1339, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": false, + "even": 1855, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": false, + "even": 1869, + "odd": 1340, + "row_off_axis": [ + 37, + 38, + 39 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": false, + "even": 1887, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": false, + "even": 1940, + "odd": 1340, + "row_off_axis": [ + 37, + 38, + 39, + 40, + 41 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": false, + "even": 1997, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": false, + "even": 2027, + "odd": 1340, + "row_off_axis": [ + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": false, + "even": 2061, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": false, + "even": 2099, + "odd": 1340, + "row_off_axis": [ + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": false, + "even": 2141, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": false, + "even": 2187, + "odd": 1340, + "row_off_axis": [ + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": false, + "even": 2237, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": false, + "even": 2291, + "odd": 1340, + "row_off_axis": [ + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": true, + "even": 2324, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": true, + "even": 2337, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": true, + "even": 2355, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": true, + "even": 2377, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": true, + "even": 2403, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": true, + "even": 2433, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": true, + "even": 2467, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": true, + "even": 2505, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": true, + "even": 2547, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": true, + "even": 2593, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": true, + "even": 2643, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": true, + "even": 2697, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": true, + "even": 2750, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64 + ], + "supports": false + }, + { + "column_off_axis": [ + 69 + ], + "disjoint_stage_masks": true, + "even": 2804, + "odd": 1340, + "row_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39 + ], + "disjoint_stage_masks": true, + "even": 1855, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39 + ], + "disjoint_stage_masks": true, + "even": 1869, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41 + ], + "disjoint_stage_masks": true, + "even": 1887, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41 + ], + "disjoint_stage_masks": true, + "even": 1940, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ], + "disjoint_stage_masks": true, + "even": 1997, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ], + "disjoint_stage_masks": true, + "even": 2027, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "disjoint_stage_masks": true, + "even": 2061, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "disjoint_stage_masks": true, + "even": 2099, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ], + "disjoint_stage_masks": true, + "even": 2141, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ], + "disjoint_stage_masks": true, + "even": 2187, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "disjoint_stage_masks": true, + "even": 2237, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "disjoint_stage_masks": true, + "even": 2291, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53 + ], + "disjoint_stage_masks": false, + "even": 2324, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53 + ], + "disjoint_stage_masks": false, + "even": 2337, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55 + ], + "disjoint_stage_masks": false, + "even": 2355, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55 + ], + "disjoint_stage_masks": false, + "even": 2377, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55, + 56, + 57 + ], + "disjoint_stage_masks": false, + "even": 2403, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55, + 56, + 57 + ], + "disjoint_stage_masks": false, + "even": 2433, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ], + "disjoint_stage_masks": false, + "even": 2467, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ], + "disjoint_stage_masks": false, + "even": 2505, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ], + "disjoint_stage_masks": false, + "even": 2547, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ], + "disjoint_stage_masks": false, + "even": 2593, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + "disjoint_stage_masks": false, + "even": 2643, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + "disjoint_stage_masks": false, + "even": 2697, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 56, + 57, + 58, + 60, + 61, + 62, + 65 + ], + "disjoint_stage_masks": false, + "even": 2750, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 55, + 56, + 57, + 59, + 60, + 61, + 63, + 64 + ], + "disjoint_stage_masks": false, + "even": 2804, + "odd": 2970, + "row_off_axis": [ + 70 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39 + ], + "disjoint_stage_masks": true, + "even": 1855, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39 + ], + "disjoint_stage_masks": true, + "even": 1869, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41 + ], + "disjoint_stage_masks": true, + "even": 1887, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41 + ], + "disjoint_stage_masks": true, + "even": 1940, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ], + "disjoint_stage_masks": true, + "even": 1997, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43 + ], + "disjoint_stage_masks": true, + "even": 2027, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "disjoint_stage_masks": true, + "even": 2061, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45 + ], + "disjoint_stage_masks": true, + "even": 2099, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ], + "disjoint_stage_masks": true, + "even": 2141, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47 + ], + "disjoint_stage_masks": true, + "even": 2187, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "disjoint_stage_masks": true, + "even": 2237, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49 + ], + "disjoint_stage_masks": true, + "even": 2291, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53 + ], + "disjoint_stage_masks": false, + "even": 2324, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53 + ], + "disjoint_stage_masks": false, + "even": 2337, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55 + ], + "disjoint_stage_masks": false, + "even": 2355, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55 + ], + "disjoint_stage_masks": false, + "even": 2377, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55, + 56, + 57 + ], + "disjoint_stage_masks": false, + "even": 2403, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55, + 56, + 57 + ], + "disjoint_stage_masks": false, + "even": 2433, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ], + "disjoint_stage_masks": false, + "even": 2467, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59 + ], + "disjoint_stage_masks": false, + "even": 2505, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ], + "disjoint_stage_masks": false, + "even": 2547, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61 + ], + "disjoint_stage_masks": false, + "even": 2593, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + "disjoint_stage_masks": false, + "even": 2643, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63 + ], + "disjoint_stage_masks": false, + "even": 2697, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 54, + 56, + 57, + 58, + 60, + 61, + 62, + 65 + ], + "disjoint_stage_masks": false, + "even": 2750, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + }, + { + "column_off_axis": [ + 36, + 37, + 52, + 53, + 55, + 56, + 57, + 59, + 60, + 61, + 63, + 64 + ], + "disjoint_stage_masks": false, + "even": 2804, + "odd": 2971, + "row_off_axis": [ + 71 + ], + "supports": false + } + ], + "survivors": 0, + "tested": 104, + "unvisited": [] +} diff --git a/research/p104-type-b-central-phase-transfer/receipts/PRICE.json b/research/p104-type-b-central-phase-transfer/receipts/PRICE.json new file mode 100644 index 0000000000..f19a11a096 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/receipts/PRICE.json @@ -0,0 +1,1159 @@ +{ + "caller_head": "07a76c5e2738882c0cb322278e56f6cae3c9885d", + "comparator": "7314", + "comparator_admission": { + "head": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "hosted": { + "head": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "run": "https://github.com/CrocSwap/integer-mult-bounds/actions/runs/43097104414", + "status": "queued" + }, + "sha256": "41b8a189dffeb768e5843446cdc469f9cc2f0aa038d0a593cf2be43aa009a9a3", + "source_history": { + "evidence": { + "path": "ANCHORED.json", + "sha256": "6378aff76d6d38b3863d039b2d1814db48c3105ffe933e96d9c449e799f624aa" + }, + "stock_wrapper": "refused_shallow", + "validation": "exact_anchored_pins" + }, + "stages": { + "caller": { + "exit": 0, + "path": "STAGE-caller.json", + "sha256": "a653be3423a20a9aa0b6c532fabf7bf96ea7e5feab6bd3924d171d2b9c5c5f76" + }, + "early": { + "exit": 0, + "path": "STAGE-early.json", + "sha256": "cee13f7126ecdd375ad62b4a6773f3ac4182df52bc484dc2944a92ee31cd15f7" + }, + "frontier": { + "exit": 0, + "path": "STAGE-frontier.json", + "sha256": "75b8ceb5547f9828b03d60b7646fc2fdb47a0d02b5715d8f7fb35d7de946694f" + }, + "native": { + "exit": 0, + "path": "STAGE-native.json", + "sha256": "36ec25be5eb332a45f36d935fc1d0397e02e0b243ea38cc77d340592a33c478b" + } + } + }, + "complete_paid": { + "1": 68401, + "2": 14501, + "3": 14093, + "4": 3791, + "5": 5882, + "6": 221, + "7": 170, + "8": 741, + "9": 32, + "16": 416, + "24": 416, + "32": 416, + "40": 416, + "48": 416, + "56": 416, + "64": 208 + }, + "complete_targets": { + "1": 306, + "2": 357, + "3": 799, + "4": 3825, + "5": 1360, + "6": 731, + "7": 323, + "8": 544, + "9": 10888, + "17": 416, + "25": 416, + "33": 416, + "41": 416, + "49": 416, + "57": 416, + "65": 416, + "73": 208, + "137": 208 + }, + "copies": 17, + "crossing_upper": "36462214364462343366888845568981/10000000000000000000000000000000000", + "even_jobs": { + "1855": [ + 0, + [ + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] + ], + "1869": [ + 2, + [ + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] + ], + "1887": [ + 0, + [ + 3, + 4, + 5, + 6, + 7, + 8 + ] + ], + "1940": [ + 0, + [ + 3, + 4, + 5, + 6, + 7, + 8 + ] + ], + "1997": [ + 0, + [ + 4, + 5, + 6, + 7, + 8 + ] + ], + "2027": [ + 2, + [ + 4, + 5, + 6, + 7, + 8 + ] + ], + "2061": [ + 0, + [ + 5, + 6, + 7, + 8 + ] + ], + "2099": [ + 2, + [ + 5, + 6, + 7, + 8 + ] + ], + "2141": [ + 0, + [ + 6, + 7, + 8 + ] + ], + "2187": [ + 2, + [ + 6, + 7, + 8 + ] + ], + "2237": [ + 0, + [ + 7, + 8 + ] + ], + "2291": [ + 2, + [ + 7, + 8 + ] + ], + "2324": [ + 0, + [ + 16, + 15, + 14, + 13, + 12, + 11, + 10, + 9 + ] + ], + "2337": [ + 1, + [ + 16, + 15, + 14, + 13, + 12, + 11, + 10, + 9 + ] + ], + "2355": [ + 0, + [ + 15, + 14, + 13, + 12, + 11, + 10, + 9 + ] + ], + "2377": [ + 16, + [ + 15, + 14, + 13, + 12, + 11, + 10, + 9 + ] + ], + "2403": [ + 0, + [ + 14, + 13, + 12, + 11, + 10, + 9 + ] + ], + "2433": [ + 16, + [ + 14, + 13, + 12, + 11, + 10, + 9 + ] + ], + "2467": [ + 0, + [ + 13, + 12, + 11, + 10, + 9 + ] + ], + "2505": [ + 16, + [ + 13, + 12, + 11, + 10, + 9 + ] + ], + "2547": [ + 0, + [ + 12, + 11, + 10, + 9 + ] + ], + "2593": [ + 16, + [ + 12, + 11, + 10, + 9 + ] + ], + "2643": [ + 0, + [ + 11, + 10, + 9 + ] + ], + "2697": [ + 16, + [ + 11, + 10, + 9 + ] + ], + "2750": [ + 0, + [ + 10, + 9 + ] + ], + "2804": [ + 0, + [ + 10, + 9 + ] + ] + }, + "extra_costs_granted_free_only_for_upper": true, + "followup": { + "body_one_hard_seconds": 25, + "nonunit_body_vectors": [ + [ + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18 + ], + [ + 19, + 23, + 29, + 31, + 37, + 41, + 43, + 47, + 53, + 59, + 61, + 67, + 71, + 73, + 79, + 83, + 89 + ] + ], + "nonunit_hard_seconds": 25, + "one_candidate_uniform_binding_seconds": 90, + "structural_hard_seconds": 45, + "structural_max_cases": 3 + }, + "odd_jobs": { + "1339": [ + 32, + [ + 8 + ] + ], + "1340": [ + 33, + [ + 8 + ] + ], + "2970": [ + 34, + [ + 9 + ] + ], + "2971": [ + 35, + [ + 9 + ] + ] + }, + "old_complete_margin_interval": [ + "-357270001119021587349/10000000000000000000000000000000000000000000000000", + "-357270001119021530951/10000000000000000000000000000000000000000000000000" + ], + "paid_multistage_odd_binding": "unproved", + "pair_keys": [ + [ + 1339, + 1855, + 7 + ], + [ + 1339, + 1869, + 7 + ], + [ + 1339, + 1887, + 6 + ], + [ + 1339, + 1940, + 6 + ], + [ + 1339, + 1997, + 5 + ], + [ + 1339, + 2027, + 5 + ], + [ + 1339, + 2061, + 4 + ], + [ + 1339, + 2099, + 4 + ], + [ + 1339, + 2141, + 3 + ], + [ + 1339, + 2187, + 3 + ], + [ + 1339, + 2237, + 2 + ], + [ + 1339, + 2291, + 2 + ], + [ + 1339, + 2324, + 8 + ], + [ + 1339, + 2337, + 8 + ], + [ + 1339, + 2355, + 7 + ], + [ + 1339, + 2377, + 7 + ], + [ + 1339, + 2403, + 6 + ], + [ + 1339, + 2433, + 6 + ], + [ + 1339, + 2467, + 5 + ], + [ + 1339, + 2505, + 5 + ], + [ + 1339, + 2547, + 4 + ], + [ + 1339, + 2593, + 4 + ], + [ + 1339, + 2643, + 3 + ], + [ + 1339, + 2697, + 3 + ], + [ + 1339, + 2750, + 2 + ], + [ + 1339, + 2804, + 2 + ], + [ + 1340, + 1855, + 7 + ], + [ + 1340, + 1869, + 7 + ], + [ + 1340, + 1887, + 6 + ], + [ + 1340, + 1940, + 6 + ], + [ + 1340, + 1997, + 5 + ], + [ + 1340, + 2027, + 5 + ], + [ + 1340, + 2061, + 4 + ], + [ + 1340, + 2099, + 4 + ], + [ + 1340, + 2141, + 3 + ], + [ + 1340, + 2187, + 3 + ], + [ + 1340, + 2237, + 2 + ], + [ + 1340, + 2291, + 2 + ], + [ + 1340, + 2324, + 8 + ], + [ + 1340, + 2337, + 8 + ], + [ + 1340, + 2355, + 7 + ], + [ + 1340, + 2377, + 7 + ], + [ + 1340, + 2403, + 6 + ], + [ + 1340, + 2433, + 6 + ], + [ + 1340, + 2467, + 5 + ], + [ + 1340, + 2505, + 5 + ], + [ + 1340, + 2547, + 4 + ], + [ + 1340, + 2593, + 4 + ], + [ + 1340, + 2643, + 3 + ], + [ + 1340, + 2697, + 3 + ], + [ + 1340, + 2750, + 2 + ], + [ + 1340, + 2804, + 2 + ], + [ + 2970, + 1855, + 7 + ], + [ + 2970, + 1869, + 7 + ], + [ + 2970, + 1887, + 6 + ], + [ + 2970, + 1940, + 6 + ], + [ + 2970, + 1997, + 5 + ], + [ + 2970, + 2027, + 5 + ], + [ + 2970, + 2061, + 4 + ], + [ + 2970, + 2099, + 4 + ], + [ + 2970, + 2141, + 3 + ], + [ + 2970, + 2187, + 3 + ], + [ + 2970, + 2237, + 2 + ], + [ + 2970, + 2291, + 2 + ], + [ + 2970, + 2324, + 8 + ], + [ + 2970, + 2337, + 8 + ], + [ + 2970, + 2355, + 7 + ], + [ + 2970, + 2377, + 7 + ], + [ + 2970, + 2403, + 6 + ], + [ + 2970, + 2433, + 6 + ], + [ + 2970, + 2467, + 5 + ], + [ + 2970, + 2505, + 5 + ], + [ + 2970, + 2547, + 4 + ], + [ + 2970, + 2593, + 4 + ], + [ + 2970, + 2643, + 3 + ], + [ + 2970, + 2697, + 3 + ], + [ + 2970, + 2750, + 2 + ], + [ + 2970, + 2804, + 2 + ], + [ + 2971, + 1855, + 7 + ], + [ + 2971, + 1869, + 7 + ], + [ + 2971, + 1887, + 6 + ], + [ + 2971, + 1940, + 6 + ], + [ + 2971, + 1997, + 5 + ], + [ + 2971, + 2027, + 5 + ], + [ + 2971, + 2061, + 4 + ], + [ + 2971, + 2099, + 4 + ], + [ + 2971, + 2141, + 3 + ], + [ + 2971, + 2187, + 3 + ], + [ + 2971, + 2237, + 2 + ], + [ + 2971, + 2291, + 2 + ], + [ + 2971, + 2324, + 8 + ], + [ + 2971, + 2337, + 8 + ], + [ + 2971, + 2355, + 7 + ], + [ + 2971, + 2377, + 7 + ], + [ + 2971, + 2403, + 6 + ], + [ + 2971, + 2433, + 6 + ], + [ + 2971, + 2467, + 5 + ], + [ + 2971, + 2505, + 5 + ], + [ + 2971, + 2547, + 4 + ], + [ + 2971, + 2593, + 4 + ], + [ + 2971, + 2643, + 3 + ], + [ + 2971, + 2697, + 3 + ], + [ + 2971, + 2750, + 2 + ], + [ + 2971, + 2804, + 2 + ] + ], + "price_by_mask_length": { + "2": { + "complete_margin_interval": [ + "191169293130670396906442713584462319201385900283/10000000000000000000000000000000000000000000000000", + "191169293130670396906442713584462319201385956681/10000000000000000000000000000000000000000000000000" + ], + "new_ranks": [ + 8, + 17 + ], + "old_ranks": [ + 9, + 16 + ], + "paid_old_minus_new": { + "8": -8, + "9": 8, + "16": 8, + "17": -8 + }, + "promoted_volume_break_even_before_other_costs": [ + "42069186807975017907109010321330640696813535870313/42063212767564684457205683986519961561803523136325", + "168276747231900071628436041285322562787254143481255/168252851070258737828822735946079846247214092545299" + ], + "saving_interval": [ + "1493510102583362475831583702669783752503183497/78125000000000000000000000000000000000000000000", + "5974040410333449903326334810679135010012733989/312500000000000000000000000000000000000000000000" + ] + }, + "3": { + "complete_margin_interval": [ + "304834526570162319802117508624556783427386582171/10000000000000000000000000000000000000000000000000", + "304834526570162319802117508624556783427386638569/10000000000000000000000000000000000000000000000000" + ], + "new_ranks": [ + 8, + 25 + ], + "old_ranks": [ + 9, + 24 + ], + "paid_old_minus_new": { + "8": -8, + "9": 8, + "24": 8, + "25": -8 + }, + "promoted_volume_break_even_before_other_costs": [ + "247121072505851519762213535230811855616901830581283/247082968190030249472238270542189127268833529560095", + "123560536252925759881106767615405927808450915290643/123541484095015124736119135271094563634416764780047" + ], + "saving_interval": [ + "9526078955317572493816172155682087017075255297/312500000000000000000000000000000000000000000000", + "4763039477658786246908086077841043508537627649/156250000000000000000000000000000000000000000000" + ] + }, + "4": { + "complete_margin_interval": [ + "385972732715420141257903319097780691904627585083/10000000000000000000000000000000000000000000000000", + "385972732715420141257903319097780691904627641473/10000000000000000000000000000000000000000000000000" + ], + "new_ranks": [ + 8, + 33 + ], + "old_ranks": [ + 9, + 32 + ], + "paid_old_minus_new": { + "8": -8, + "9": 8, + "32": 8, + "33": -8 + }, + "promoted_volume_break_even_before_other_costs": [ + "325867768287915683355990825659200482656180940450684/325819521696326255838333587744268601319552984304133", + "325867768287915683355990825659200482656180940450687/325819521696326255838333587744268601319552984304131" + ], + "saving_interval": [ + "48246591589427517657237914931881336627956146551/1250000000000000000000000000000000000000000000000", + "12061647897356879414309478732970334156989036639/312500000000000000000000000000000000000000000000" + ] + }, + "5": { + "complete_margin_interval": [ + "449102241918047104064758566753739463187384886539/10000000000000000000000000000000000000000000000000", + "449102241918047104064758566753739463187384942921/10000000000000000000000000000000000000000000000000" + ], + "new_ranks": [ + 8, + 41 + ], + "old_ranks": [ + 9, + 40 + ], + "paid_old_minus_new": { + "8": -8, + "9": 8, + "40": 8, + "41": -8 + }, + "promoted_volume_break_even_before_other_costs": [ + "404541947005988370073124095848629720000699023866745/404485809225748614185116001027740843817660723057513", + "404541947005988370073124095848629720000699023866749/404485809225748614185116001027740843817660723057511" + ], + "saving_interval": [ + "3508611264984743000505926305554761439893800577/78125000000000000000000000000000000000000000000", + "28068890119877944004047410444438091519150404619/625000000000000000000000000000000000000000000000" + ] + }, + "6": { + "complete_margin_interval": [ + "500775415264468804181834483297103919284318429483/10000000000000000000000000000000000000000000000000", + "500775415264468804181834483297103919284318485849/10000000000000000000000000000000000000000000000000" + ], + "new_ranks": [ + 8, + 49 + ], + "old_ranks": [ + 9, + 48 + ], + "paid_old_minus_new": { + "8": -8, + "9": 8, + "48": 8, + "49": -8 + }, + "promoted_volume_break_even_before_other_costs": [ + "80526397461757731404200814895241375946346870258272/80515964640606388304113693343498576489671800674589", + "483158384770546388425204889371448255678081221549637/483095787843638329824682160060991458938030804047531" + ], + "saving_interval": [ + "31298463454029300261364655228398370025208751049/625000000000000000000000000000000000000000000000", + "31298463454029300261364655228398370025208751053/625000000000000000000000000000000000000000000000" + ] + }, + "7": { + "complete_margin_interval": [ + "108902818158350885014893265416077064635187346103/2000000000000000000000000000000000000000000000000", + "544514090791754425074466327080385323175936786889/10000000000000000000000000000000000000000000000000" + ], + "new_ranks": [ + 8, + 57 + ], + "old_ranks": [ + 9, + 56 + ], + "paid_old_minus_new": { + "8": -8, + "9": 8, + "56": 8, + "57": -8 + }, + "promoted_volume_break_even_before_other_costs": [ + "62414093067325626954787914255708050951204203441747/62406530371620185921106324445604750182811217909555", + "561726837605930642593091228301372458560837830975728/561658773344581673289956920010442751645300961185993" + ], + "saving_interval": [ + "2127008167155290722947134091553341110527180929/39062500000000000000000000000000000000000000000", + "13612852269793860626861658185941383107373957947/250000000000000000000000000000000000000000000000" + ] + }, + "8": { + "complete_margin_interval": [ + "582430921987642231576857527631047288587218881699/10000000000000000000000000000000000000000000000000", + "116486184397528446315371505526209457717443787613/2000000000000000000000000000000000000000000000000" + ], + "new_ranks": [ + 8, + 65 + ], + "old_ranks": [ + 9, + 64 + ], + "paid_old_minus_new": { + "8": -8, + "9": 8, + "64": 8, + "65": -8 + }, + "promoted_volume_break_even_before_other_costs": [ + "640254235137638904550954215195766130787808570459277/640181431272390449272007108004767591126595290400652", + "640254235137638904550954215195766130787808570459282/640181431272390449272007108004767591126595290400649" + ], + "saving_interval": [ + "582430921987642231576857527988317289706240469/10000000000000000000000000000000000000000000000", + "72803865248455278947107190998539661213280058633/1250000000000000000000000000000000000000000000000" + ] + } + }, + "source_pins": { + "7113/CALLER.json": "255d89f38cd45e38e5770f559bc43dc217e989032359768cdc7e8cdfd64b47bc", + "7113/check_odd_physical_binding.py": "5c80c3b0415a7f91d216395248dd6f13297eed637732098e1ca8fb0548951b98", + "7298/pricing.py": "f4d0b6c9314b838d882d6d06020f24881c19a3fda97a7c00df87b1e920785182", + "7314/EARLY-RESULT.json": "b5043855411432b24336ecc443cba9ebfae6392e2045ddd01c87cfe2c51f5f08", + "7314/PRICE-ONLY.json": "b757665a3a50324b2ae6649cc89f5b8d9a752c7af996f1ee894a0de47ade94e1", + "7314/SOURCES.json": "ac7b4473035af648d6073e78b6c39675e706e8194b346bb55ed62a0adc81d593", + "7314/VERIFY.json": "ede7dd2dd3733b9a73f72af9dd7edfe819b49b859c5c76e227ec82cb9c220513", + "7314/WORD.json.gz": "c404b9b61220e6cf740d85276df2828bbb4a9d68a4d44b5e283f8d96f78c0fd9", + "r44/RESULT.json": "8d17c43c46d0a3a98f2c3c5849f13ac49a86244ffb87ef1b62e7bf4688cd525b", + "r52/screen.py": "cdf54b266ac31fd0efe544badbb9840598d4c63c4d3cd363f60ae9a74cc4b256", + "r53/PRICE.json": "86f779c3eeb43563793e6ccb2227257ef732b2ca12fbbde2f9099988f903a484" + }, + "type_b_ports": 8, + "upper_broad_job_choices": [ + 2324, + 2337, + 1855, + 1869 + ], + "whole_compatible_optimistic_upper": "8804257912339036380088467620515411046884365523/39062500000000000000000000000000000000000000000" +} diff --git a/research/p104-type-b-central-phase-transfer/receipts/SUMMARY.json b/research/p104-type-b-central-phase-transfer/receipts/SUMMARY.json new file mode 100644 index 0000000000..4f5f4a3dec --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/receipts/SUMMARY.json @@ -0,0 +1,19 @@ +{ + "admission_sha256": "41b8a189dffeb768e5843446cdc469f9cc2f0aa038d0a593cf2be43aa009a9a3", + "comparator": "9d0119eb12fbd9fa534b48cd37b68e7099757b91", + "copies": 17, + "disjoint_stage_masks": 52, + "frozen_hosted_status": "queued", + "kappa": "0.003646221436446", + "kappa_change": "0", + "mutation_exit": 1, + "paid": 110536, + "pairs": 104, + "pre_support_compatible_upper": "8804257912339036380088467620515411046884365523/39062500000000000000000000000000000000000000000", + "productive": 22461, + "support_saving_upper": "0", + "support_scope": "Individual two-job transfer with all other operators fixed. Simultaneous transfers are untested, even at disjoint clocks.", + "support_survivors": 0, + "type_b_ports": 8, + "unresolved": 0 +} diff --git a/research/p104-type-b-central-phase-transfer/replay.py b/research/p104-type-b-central-phase-transfer/replay.py new file mode 100644 index 0000000000..a972eb4016 --- /dev/null +++ b/research/p104-type-b-central-phase-transfer/replay.py @@ -0,0 +1,153 @@ +"""Replay the exact paid-phase census and comparator evidence from a fresh root.""" + +from argparse import ArgumentParser +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 +PEER = "9d0119eb12fbd9fa534b48cd37b68e7099757b91" +STAGES = ("early","native","caller","frontier") + + +def unique(pairs): + result = dict(pairs) + if len(result) != len(pairs): + raise ValueError("Duplicate JSON key") + return result + + +def read(path): + return json.loads(path.read_bytes(),object_pairs_hook=unique) + + +def relative(root,key): + name = PurePosixPath(key) + if name.is_absolute() or ".." in name.parts or name.as_posix() != key: + raise ValueError(f"Invalid relative path {key}") + return root / name + + +def digest(raw): + return sha256(raw).hexdigest() + + +def verify_pins(): + pins = read(HERE/"LOCAL-PINS.json") + for key,pin in pins.items(): + if digest(relative(HERE,key).read_bytes()) != pin: + raise ValueError(f"Changed replay input {key}") + prov = read(HERE/"PROVENANCE.json")["files"] + for key,pin in prov.items(): + assert key in pins + raw = relative(HERE,key).read_bytes() + if pin["uncompress"]: + raw = gzip.decompress(raw) + assert digest(raw) == pin["sha256"], key + assert sha1(f"blob {len(raw)}\0".encode()+raw).hexdigest() == pin["git_blob"], key + return pins + + +def admission(): + root = HERE/"admission" + doc = read(root/"ADMITTED.json") + anchor = read(root/"ANCHORED.json") + assert doc["head"] == anchor["head"] == PEER + assert doc["status"] == "independently_reproduced_comparable" + assert set(doc["stages"]) == set(STAGES) + assert anchor["base_ancestry"] == "verified" + assert anchor["stock_full_history_wrapper"] == doc["source_history"]["stock_wrapper"] + for item in anchor["evidence"]: + assert digest(relative(root,item["path"]).read_bytes()) == item["sha256"] + transcript = digest((root/"REGISTERED.stdout").read_bytes()) + for stage in STAGES: + pin = doc["stages"][stage] + receipt = relative(root,pin["path"]).read_bytes() + assert pin["exit"] == 0 and digest(receipt) == pin["sha256"] + item = json.loads(receipt,object_pairs_hook=unique) + assert item["head"] == PEER and item["stage"] == stage and item["exit"] == 0 + assert item["registered_stdout_sha256"] == transcript + frozen = item["verified_frozen_receipt"] + name = PurePosixPath(frozen["path"]).name + path = (HERE/"dependencies/7314"/name) if stage == "early" else root/"peer-source"/(name+".gz") + raw = path.read_bytes() + if stage != "early": + raw = gzip.decompress(raw) + assert digest(raw) == frozen["sha256"] + assert digest((root/"ANCHORED.json").read_bytes()) == doc["source_history"]["evidence"]["sha256"] + return root/"ADMITTED.json" + + +def materialize(out): + mapping = read(HERE/"MATERIALIZE.json") + assert len(set(mapping.values())) == len(mapping) + for source,target in mapping.items(): + raw = relative(HERE,source).read_bytes() + if source.endswith(".gz") and not target.endswith(".gz"): + raw = gzip.decompress(raw) + path = relative(out,target) + path.parent.mkdir(parents=True,exist_ok=True) + path.write_bytes(raw) + + +def run(script,*args,check=True): + return subprocess.run([sys.executable,"-I","-B",str(HERE/"engines"/script),*map(str,args)], + check=check,capture_output=True,timeout=25) + + +def replay(out): + pins = verify_pins() + admitted = admission() + summary = read(HERE/"receipts/SUMMARY.json") + assert summary["comparator"] == PEER and summary["kappa_change"] == "0" + assert summary["admission_sha256"] == digest(admitted.read_bytes()) + with TemporaryDirectory(prefix="p104-central-transfer-") as directory: + work = Path(directory) + inputs,results = work/"inputs",work/"results" + materialize(inputs) + common = ("--inputs",inputs,"--comparator","7314","--admission",admitted, + "--admission-sha",summary["admission_sha256"]) + run("screen.py",*common,"--out",results,"--price-only") + run("screen.py",*common,"--out",results,"--support") + (results/"EXACT.json").write_bytes(run("transfer.py",inputs/"7113/CALLER.json").stdout) + args = [results/f"{name}.json" for name in ("PRICE","BODY1","EXACT")] + (results/"COMPARE.json").write_bytes(run("compare.py",*args).stdout) + (results/"CONTROLS.json").write_bytes(run("screen.py","--inputs",inputs,"--controls-only").stdout) + for name in ("PRICE","BODY1","EXACT","COMPARE","CONTROLS"): + path = results/f"{name}.json" + assert digest(path.read_bytes()) == pins[f"receipts/{name}.json"], name + price,body,exact,compare = [read(results/f"{name}.json") for name in ("PRICE","BODY1","EXACT","COMPARE")] + assert sum(price["complete_paid"].values()) == summary["paid"] == 110536 + assert sum(price["complete_targets"].values()) == summary["productive"] == 22461 + assert price["whole_compatible_optimistic_upper"] == summary["pre_support_compatible_upper"] + assert price["paid_multistage_odd_binding"] == "unproved" + assert body["scope"] == body["visited"] == body["exclusions"] == exact["tested"] == compare["matched_pairs"] == summary["pairs"] == 104 + assert compare["disjoint_stage_masks"] == summary["disjoint_stage_masks"] == 52 + assert not body["unvisited"] and not body["survivors"] + assert compare["unresolved"] == summary["unresolved"] == 0 + assert compare["survivors"] == summary["support_survivors"] == 0 + assert summary["support_saving_upper"] == "0" + caller = inputs/"7113/CALLER.json" + raw = caller.read_bytes() + caller.write_bytes(bytes((raw[0]^1,))+raw[1:]) + denied = run("screen.py",*common,"--out",work/"mutation","--price-only",check=False) + assert denied.returncode == summary["mutation_exit"] == 1 + assert b"Changed SHA-256 for CALLER.json" in denied.stderr + assert not (work/"mutation/PRICE.json").exists() + if out is not None: + out.mkdir(parents=True,exist_ok=False) + for path in results.iterdir(): + shutil.copyfile(path,out/path.name) + print("PASS_TYPE_B_CENTRAL_PHASE_TRANSFER pairs=104 disjoint_masks=52 survivors=0 unresolved=0 saving_upper=0 kappa_change=0") + + +if __name__ == "__main__": + assert __debug__ and sys.version_info[:2] == (3,12) + parser = ArgumentParser(description=__doc__) + parser.add_argument("--out",type=Path,help="fresh directory for four receipts and controls") + replay(parser.parse_args().out)