diff --git a/research/p104-second-fragment-phase-audit/BLIND-FIRST-COMPARISON.json b/research/p104-second-fragment-phase-audit/BLIND-FIRST-COMPARISON.json new file mode 100644 index 0000000000..f6ac4a8bb9 --- /dev/null +++ b/research/p104-second-fragment-phase-audit/BLIND-FIRST-COMPARISON.json @@ -0,0 +1,105 @@ +{ + "status": "PASS_WHOLE_ACTUAL_BLIND_FIRST_CERTIFICATES_EQUAL", + "compared_at": "2026-11-05T10:35:06.966802+00:00", + "bytes": 21141, + "sha256": "31995c0964cb38939efc2f862aab4a7bc1aed5abbde3129029e614aadee77cbb", + "matrices": { + "final606": { + "rows": 34, + "columns": 34, + "cells": 1156, + "terms": 34 + }, + "one_prefix395": { + "rows": 33, + "columns": 33, + "cells": 1089, + "terms": 78 + }, + "prefix402": { + "rows": 34, + "columns": 34, + "cells": 1156, + "terms": 63 + } + }, + "identities": { + "final606_equals_entire_declared_diagonal": true, + "one_prefix395_Pc_equals_S_D10_a": true, + "one_prefix395_bP_equals_S_D10_d": true, + "prefix402_fresh33_row_column_untouched": true, + "prefix402_retired_row_column4_equals_q_inverse_D10": true, + "unit_pairings_and_cut_basis_inverse": true + }, + "controls": [ + { + "accepted": false, + "failure_gate": "endpoint_mismatch", + "id": "drop_normalizer" + }, + { + "accepted": false, + "failure_gate": "endpoint_mismatch", + "id": "flip_normalizer" + }, + { + "accepted": false, + "failure_gate": "endpoint_mismatch", + "id": "drop_inverse" + }, + { + "accepted": false, + "failure_gate": "endpoint_mismatch", + "id": "wrong_inverse_order" + }, + { + "accepted": false, + "failure_gate": "endpoint_mismatch", + "id": "early_fresh" + }, + { + "accepted": false, + "failure_gate": "endpoint_mismatch", + "id": "omit_paid_fragment" + }, + { + "accepted": false, + "failure_gate": "endpoint_mismatch", + "id": "transpose_input_basis" + } + ], + "primary": { + "kind": "PRIMARY", + "started_at": "2026-11-05T10:34:50.591078+00:00", + "finished_at": "2026-11-05T10:34:50.786117+00:00", + "elapsed_seconds": 0.19505241606384516, + "exit_code": 0, + "status": "PASS", + "peak_rss_bytes": 30916608, + "peak_rss_unit": "Darwin bytes", + "python": "/Users/evaayala/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "python_version": "Python 3.12.14", + "certificate_exists": true, + "certificate_sha256": "31995c0964cb38939efc2f862aab4a7bc1aed5abbde3129029e614aadee77cbb", + "certificate_bytes": 21141, + "sealed_byte_readback": true + }, + "oracle": { + "kind": "ORACLE", + "started_at": "2026-11-05T10:34:55.105035+00:00", + "finished_at": "2026-11-05T10:34:55.754235+00:00", + "elapsed_seconds": 0.6492164991796017, + "exit_code": 0, + "status": "PASS", + "peak_rss_bytes": 30867456, + "peak_rss_unit": "Darwin bytes", + "python": "/Users/evaayala/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "python_version": "Python 3.12.14", + "certificate_exists": true, + "certificate_sha256": "31995c0964cb38939efc2f862aab4a7bc1aed5abbde3129029e614aadee77cbb", + "certificate_bytes": 21141, + "sealed_byte_readback": true + }, + "original_source_program_execution": false, + "peer_receipt_exposure_before_both_firsts": false +} diff --git a/research/p104-second-fragment-phase-audit/CASES.json b/research/p104-second-fragment-phase-audit/CASES.json new file mode 100644 index 0000000000..d5f916c709 --- /dev/null +++ b/research/p104-second-fragment-phase-audit/CASES.json @@ -0,0 +1,68 @@ +{ + "schema": "p104-cut401-cases/1", + "controls": [ + { + "id": "drop_normalizer", + "delete": 401 + }, + { + "id": "flip_normalizer", + "replace_index": 401, + "event": [ + "LAMBDA", + 4, + 1 + ] + }, + { + "id": "drop_inverse", + "delete": 402 + }, + { + "id": "wrong_inverse_order", + "swap_indices": [ + 402, + 403 + ] + }, + { + "id": "early_fresh", + "insert_index": 0, + "event": [ + "ADD", + 0, + 33, + "1" + ] + }, + { + "id": "omit_paid_fragment", + "delete": 397 + }, + { + "id": "transpose_input_basis", + "replace_slice": [ + 0, + 3 + ], + "events": [ + [ + "SCALE", + 4, + "-1" + ], + [ + "SCALE", + 5, + "-1" + ], + [ + "ADD", + 4, + 5, + "-2" + ] + ] + } + ] +} diff --git a/research/p104-second-fragment-phase-audit/CERTIFICATE.json b/research/p104-second-fragment-phase-audit/CERTIFICATE.json new file mode 100644 index 0000000000..ddb0c48ab7 --- /dev/null +++ b/research/p104-second-fragment-phase-audit/CERTIFICATE.json @@ -0,0 +1 @@ +{"controls":[{"accepted":false,"failure_gate":"endpoint_mismatch","id":"drop_normalizer"},{"accepted":false,"failure_gate":"endpoint_mismatch","id":"flip_normalizer"},{"accepted":false,"failure_gate":"endpoint_mismatch","id":"drop_inverse"},{"accepted":false,"failure_gate":"endpoint_mismatch","id":"wrong_inverse_order"},{"accepted":false,"failure_gate":"endpoint_mismatch","id":"early_fresh"},{"accepted":false,"failure_gate":"endpoint_mismatch","id":"omit_paid_fragment"},{"accepted":false,"failure_gate":"endpoint_mismatch","id":"transpose_input_basis"}],"identities":{"final606_equals_entire_declared_diagonal":true,"one_prefix395_Pc_equals_S_D10_a":true,"one_prefix395_bP_equals_S_D10_d":true,"prefix402_fresh33_row_column_untouched":true,"prefix402_retired_row_column4_equals_q_inverse_D10":true,"unit_pairings_and_cut_basis_inverse":true},"matrices":{"final606":[[[[[3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[[[3,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[[[3,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[[[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[[[3,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[[[3,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[[[3,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[[[3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[[[3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[1,1,0,1]]],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[1,1,0,1]]],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0],[1,1,0,1]]],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0],[1,1,0,1]]],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1],[1,1,0,1]]],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1],[1,1,0,1]]],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0],[1,1,0,1]]]]],"one_prefix395":[[[[[0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[[[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,1,0,1]],[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,1,-1,1]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,1,1,1]]],[[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[[[1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[[[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,1,0,1]],[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[[[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[2,1,0,1]],[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[[[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,1,0,1]],[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[[[0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[[[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,1,0,1]],[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,2,1,2]]],[[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[[[0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,1,0,1]],[[1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[-1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[[[1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[[[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[1,2,1,2]]]],[[],[],[],[],[],[],[],[],[[[1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[[[1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[[[1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[[[1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[]],[[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,1,1,1]],[[3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,1,-1,1]]]]],"prefix402":[[[[[0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[[[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,1,0,1]],[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[],[[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[[[0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0],[1,1,0,1]],[[1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[[[1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[[[0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,1,0,1]],[[1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[-1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[[[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[]],[[],[],[],[],[],[],[],[],[[[1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[[[1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[[[1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[[[1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[]],[[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,1,1,1]],[[3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,1,-1,1]]],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]]]]},"schema":"p104-cut401-external/1","sources":{"CONTROLLER-ONE-RETIRED.json":"8d7889e817faf1bbf81bb4ed681db039df6e26ecdab5555dff60c3d0e4309030","CONTROLLER-UNRETIRED.json":"8693f74b4559c27dd670f788c6e8c7be8bc7cf9cd6a6abb80455fee86d20bc99","CONTROLLER.json":"543b8728e659561b95e127dad7bd7534645996d7d2c61602bb5d89c89a73944c","RETIREMENT-WITNESSES.json":"272534848a8fe8a9fd523f4daf2747b24a6b26eb9a848d27cafcb22a2e718136"}} diff --git a/research/p104-second-fragment-phase-audit/CLI-REJECTIONS.json b/research/p104-second-fragment-phase-audit/CLI-REJECTIONS.json new file mode 100644 index 0000000000..ffa0f202ef --- /dev/null +++ b/research/p104-second-fragment-phase-audit/CLI-REJECTIONS.json @@ -0,0 +1,524 @@ +{ + "status": "PASS_60_ACTUAL_CLI_REJECTIONS", + "finished_at": "2026-11-05T10:37:56.459480+00:00", + "cases": 15, + "commands": 60, + "rows": [ + { + "case": "wrong_coefficient", + "engine": "primary.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.18122791685163975, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: whole certificate bytes differ", + "input_sha256": "10a662b4182025dfb0ebc7f75f7c349ac0e60ba43887324a192f96bafcc2803b" + }, + { + "case": "wrong_coefficient", + "engine": "primary.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.23242662474513054, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: whole certificate bytes differ", + "input_sha256": "10a662b4182025dfb0ebc7f75f7c349ac0e60ba43887324a192f96bafcc2803b" + }, + { + "case": "wrong_coefficient", + "engine": "oracle.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.6246832916513085, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "10a662b4182025dfb0ebc7f75f7c349ac0e60ba43887324a192f96bafcc2803b" + }, + { + "case": "wrong_coefficient", + "engine": "oracle.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.6863264590501785, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "10a662b4182025dfb0ebc7f75f7c349ac0e60ba43887324a192f96bafcc2803b" + }, + { + "case": "omit_cell", + "engine": "primary.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.1771267494186759, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: whole certificate bytes differ", + "input_sha256": "d8d7f116be013a0ede224c22d11ee7c007df9f8e94476f91130e59dc00f805f6" + }, + { + "case": "omit_cell", + "engine": "primary.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.2202911665663123, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: whole certificate bytes differ", + "input_sha256": "d8d7f116be013a0ede224c22d11ee7c007df9f8e94476f91130e59dc00f805f6" + }, + { + "case": "omit_cell", + "engine": "oracle.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.6237024171277881, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "d8d7f116be013a0ede224c22d11ee7c007df9f8e94476f91130e59dc00f805f6" + }, + { + "case": "omit_cell", + "engine": "oracle.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.6748690828680992, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "d8d7f116be013a0ede224c22d11ee7c007df9f8e94476f91130e59dc00f805f6" + }, + { + "case": "wrong_phase", + "engine": "primary.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.18198500014841557, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: whole certificate bytes differ", + "input_sha256": "2c5b8db47c55eaf26eeedcf6f33e7520a172915ec333422e550daaaf79062aa3" + }, + { + "case": "wrong_phase", + "engine": "primary.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.22166704200208187, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: whole certificate bytes differ", + "input_sha256": "2c5b8db47c55eaf26eeedcf6f33e7520a172915ec333422e550daaaf79062aa3" + }, + { + "case": "wrong_phase", + "engine": "oracle.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.6235836669802666, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "2c5b8db47c55eaf26eeedcf6f33e7520a172915ec333422e550daaaf79062aa3" + }, + { + "case": "wrong_phase", + "engine": "oracle.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.6698195831850171, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "2c5b8db47c55eaf26eeedcf6f33e7520a172915ec333422e550daaaf79062aa3" + }, + { + "case": "off_diagonal", + "engine": "primary.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.1785495411604643, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: whole certificate bytes differ", + "input_sha256": "09ceb0cfe0a3a8a8e734ff724266374dae22e5176821c0fa055f186abed96b9d" + }, + { + "case": "off_diagonal", + "engine": "primary.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.22124579269438982, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: whole certificate bytes differ", + "input_sha256": "09ceb0cfe0a3a8a8e734ff724266374dae22e5176821c0fa055f186abed96b9d" + }, + { + "case": "off_diagonal", + "engine": "oracle.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.625802124850452, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "09ceb0cfe0a3a8a8e734ff724266374dae22e5176821c0fa055f186abed96b9d" + }, + { + "case": "off_diagonal", + "engine": "oracle.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.6678737904876471, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "09ceb0cfe0a3a8a8e734ff724266374dae22e5176821c0fa055f186abed96b9d" + }, + { + "case": "false_flag", + "engine": "primary.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.17676504235714674, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: six true identities", + "input_sha256": "3cf076eacc5e6bd94393836689472124faa1b03c07bd6ff6421496a24a705706" + }, + { + "case": "false_flag", + "engine": "primary.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.21932987589389086, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: six true identities", + "input_sha256": "3cf076eacc5e6bd94393836689472124faa1b03c07bd6ff6421496a24a705706" + }, + { + "case": "false_flag", + "engine": "oracle.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.6305505000054836, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "3cf076eacc5e6bd94393836689472124faa1b03c07bd6ff6421496a24a705706" + }, + { + "case": "false_flag", + "engine": "oracle.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.6829591244459152, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "3cf076eacc5e6bd94393836689472124faa1b03c07bd6ff6421496a24a705706" + }, + { + "case": "missing_control", + "engine": "primary.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.1817464167252183, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: seven ordered controls", + "input_sha256": "e1f8a874e5d5433bafc7c810c04830378e4c28ab912bb2108e8a50a63076571a" + }, + { + "case": "missing_control", + "engine": "primary.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.22308520786464214, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: seven ordered controls", + "input_sha256": "e1f8a874e5d5433bafc7c810c04830378e4c28ab912bb2108e8a50a63076571a" + }, + { + "case": "missing_control", + "engine": "oracle.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.6469445833936334, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "e1f8a874e5d5433bafc7c810c04830378e4c28ab912bb2108e8a50a63076571a" + }, + { + "case": "missing_control", + "engine": "oracle.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.7145814578980207, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "e1f8a874e5d5433bafc7c810c04830378e4c28ab912bb2108e8a50a63076571a" + }, + { + "case": "extra_key", + "engine": "primary.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.19121691770851612, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: packet exact keys", + "input_sha256": "22bbc1cd3303cb53174270be1f0f868eec9d43da1af836519aaed627bf22751d" + }, + { + "case": "extra_key", + "engine": "primary.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.24564283341169357, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: packet exact keys", + "input_sha256": "22bbc1cd3303cb53174270be1f0f868eec9d43da1af836519aaed627bf22751d" + }, + { + "case": "extra_key", + "engine": "oracle.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.6720099998638034, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "22bbc1cd3303cb53174270be1f0f868eec9d43da1af836519aaed627bf22751d" + }, + { + "case": "extra_key", + "engine": "oracle.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.7147143753245473, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "22bbc1cd3303cb53174270be1f0f868eec9d43da1af836519aaed627bf22751d" + }, + { + "case": "boolean_coefficient", + "engine": "primary.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.1923590423539281, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: integer excludes Boolean", + "input_sha256": "cbdbdf00f7baa68f82536051c6eafc2ef53e648bc8be82c869adb1ffdd6df484" + }, + { + "case": "boolean_coefficient", + "engine": "primary.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.240405042655766, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: integer excludes Boolean", + "input_sha256": "cbdbdf00f7baa68f82536051c6eafc2ef53e648bc8be82c869adb1ffdd6df484" + }, + { + "case": "boolean_coefficient", + "engine": "oracle.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.6405567089095712, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "cbdbdf00f7baa68f82536051c6eafc2ef53e648bc8be82c869adb1ffdd6df484" + }, + { + "case": "boolean_coefficient", + "engine": "oracle.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.7133450824767351, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "cbdbdf00f7baa68f82536051c6eafc2ef53e648bc8be82c869adb1ffdd6df484" + }, + { + "case": "wrong_source_hash", + "engine": "primary.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.19226850010454655, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: whole certificate bytes differ", + "input_sha256": "8d762ec907ec5e0ca49d08a93d2d0499c5af393f0eda553a09a7a49bf4252ebb" + }, + { + "case": "wrong_source_hash", + "engine": "primary.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.24148020800203085, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: whole certificate bytes differ", + "input_sha256": "8d762ec907ec5e0ca49d08a93d2d0499c5af393f0eda553a09a7a49bf4252ebb" + }, + { + "case": "wrong_source_hash", + "engine": "oracle.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.6446213331073523, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "8d762ec907ec5e0ca49d08a93d2d0499c5af393f0eda553a09a7a49bf4252ebb" + }, + { + "case": "wrong_source_hash", + "engine": "oracle.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.6805285830050707, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "8d762ec907ec5e0ca49d08a93d2d0499c5af393f0eda553a09a7a49bf4252ebb" + }, + { + "case": "float_token", + "engine": "primary.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.1779154585674405, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: float/nonfinite JSON token", + "input_sha256": "ae9b3e85d02141546d7cac263054e284298e36fe5334644b06a64aafbf4b06ae" + }, + { + "case": "float_token", + "engine": "primary.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.22751637548208237, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: float/nonfinite JSON token", + "input_sha256": "ae9b3e85d02141546d7cac263054e284298e36fe5334644b06a64aafbf4b06ae" + }, + { + "case": "float_token", + "engine": "oracle.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.6377604585140944, + "stderr": "FAIL_CUT401_REVERSE_ROWS: float or nonfinite JSON token", + "input_sha256": "ae9b3e85d02141546d7cac263054e284298e36fe5334644b06a64aafbf4b06ae" + }, + { + "case": "float_token", + "engine": "oracle.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.6777498750016093, + "stderr": "FAIL_CUT401_REVERSE_ROWS: float or nonfinite JSON token", + "input_sha256": "ae9b3e85d02141546d7cac263054e284298e36fe5334644b06a64aafbf4b06ae" + }, + { + "case": "truncated_packet", + "engine": "primary.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.17590124998241663, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: Unterminated string starting at: line 1 column 109 (char 108)", + "input_sha256": "697492cb8cbbc4e550d470da3803848818c05c3b83dabe01fdbd3485dc4d8110" + }, + { + "case": "truncated_packet", + "engine": "primary.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.22125283256173134, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: Unterminated string starting at: line 1 column 109 (char 108)", + "input_sha256": "697492cb8cbbc4e550d470da3803848818c05c3b83dabe01fdbd3485dc4d8110" + }, + { + "case": "truncated_packet", + "engine": "oracle.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.6302333753556013, + "stderr": "FAIL_CUT401_REVERSE_ROWS: Unterminated string starting at: line 1 column 109 (char 108)", + "input_sha256": "697492cb8cbbc4e550d470da3803848818c05c3b83dabe01fdbd3485dc4d8110" + }, + { + "case": "truncated_packet", + "engine": "oracle.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.6730455001816154, + "stderr": "FAIL_CUT401_REVERSE_ROWS: Unterminated string starting at: line 1 column 109 (char 108)", + "input_sha256": "697492cb8cbbc4e550d470da3803848818c05c3b83dabe01fdbd3485dc4d8110" + }, + { + "case": "noncanonical_whitespace", + "engine": "primary.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.17675875034183264, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: whole certificate bytes differ", + "input_sha256": "25cc761392f77a46e45949e30beb154310fd0a831b636d4c431b4f5c7f9bd813" + }, + { + "case": "noncanonical_whitespace", + "engine": "primary.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.22207658272236586, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: whole certificate bytes differ", + "input_sha256": "25cc761392f77a46e45949e30beb154310fd0a831b636d4c431b4f5c7f9bd813" + }, + { + "case": "noncanonical_whitespace", + "engine": "oracle.py", + "optimized": false, + "exit_code": 1, + "elapsed_seconds": 0.6312392503023148, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "25cc761392f77a46e45949e30beb154310fd0a831b636d4c431b4f5c7f9bd813" + }, + { + "case": "noncanonical_whitespace", + "engine": "oracle.py", + "optimized": true, + "exit_code": 1, + "elapsed_seconds": 0.6792357498779893, + "stderr": "FAIL_CUT401_REVERSE_ROWS: whole actual certificate byte mismatch", + "input_sha256": "25cc761392f77a46e45949e30beb154310fd0a831b636d4c431b4f5c7f9bd813" + }, + { + "case": "missing_source", + "engine": "primary.py", + "optimized": false, + "exit_code": 1, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: [Errno 2] No such file or directory: '/private/tmp/contribution-batch-b12-20261105T1010Z/session-01/CLI-REJECTIONS/missing_source/inputs/CONTROLLER.json'" + }, + { + "case": "missing_source", + "engine": "primary.py", + "optimized": true, + "exit_code": 1, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: [Errno 2] No such file or directory: '/private/tmp/contribution-batch-b12-20261105T1010Z/session-01/CLI-REJECTIONS/missing_source/inputs/CONTROLLER.json'" + }, + { + "case": "missing_source", + "engine": "oracle.py", + "optimized": false, + "exit_code": 1, + "stderr": "FAIL_CUT401_REVERSE_ROWS: [Errno 2] No such file or directory: '/private/tmp/contribution-batch-b12-20261105T1010Z/session-01/CLI-REJECTIONS/missing_source/inputs/CONTROLLER.json'" + }, + { + "case": "missing_source", + "engine": "oracle.py", + "optimized": true, + "exit_code": 1, + "stderr": "FAIL_CUT401_REVERSE_ROWS: [Errno 2] No such file or directory: '/private/tmp/contribution-batch-b12-20261105T1010Z/session-01/CLI-REJECTIONS/missing_source/inputs/CONTROLLER.json'" + }, + { + "case": "changed_source", + "engine": "primary.py", + "optimized": false, + "exit_code": 1, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: source byte length: inputs/CONTROLLER.json" + }, + { + "case": "changed_source", + "engine": "primary.py", + "optimized": true, + "exit_code": 1, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: source byte length: inputs/CONTROLLER.json" + }, + { + "case": "changed_source", + "engine": "oracle.py", + "optimized": false, + "exit_code": 1, + "stderr": "FAIL_CUT401_REVERSE_ROWS: source size drift: inputs/CONTROLLER.json" + }, + { + "case": "changed_source", + "engine": "oracle.py", + "optimized": true, + "exit_code": 1, + "stderr": "FAIL_CUT401_REVERSE_ROWS: source size drift: inputs/CONTROLLER.json" + }, + { + "case": "changed_contract", + "engine": "primary.py", + "optimized": false, + "exit_code": 1, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: metadata hash drift: CONTRACT.json" + }, + { + "case": "changed_contract", + "engine": "primary.py", + "optimized": true, + "exit_code": 1, + "stderr": "FAIL_CUT401_FORWARD_SPARSE: metadata hash drift: CONTRACT.json" + }, + { + "case": "changed_contract", + "engine": "oracle.py", + "optimized": false, + "exit_code": 1, + "stderr": "FAIL_CUT401_REVERSE_ROWS: frozen metadata drift: CONTRACT.json" + }, + { + "case": "changed_contract", + "engine": "oracle.py", + "optimized": true, + "exit_code": 1, + "stderr": "FAIL_CUT401_REVERSE_ROWS: frozen metadata drift: CONTRACT.json" + } + ] +} diff --git a/research/p104-second-fragment-phase-audit/CONTRACT.json b/research/p104-second-fragment-phase-audit/CONTRACT.json new file mode 100644 index 0000000000..26093e5722 --- /dev/null +++ b/research/p104-second-fragment-phase-audit/CONTRACT.json @@ -0,0 +1,96 @@ +{ + "schema": "p104-cut401-contract/1", + "source_pr": 6726, + "source_head": "435bbe91fb28cb1d7a569ca70c6c4e9eb302d486", + "ring": "Q(i)[q,D1,...,D18]/(q^4-1), independent commuting stages; NOT physical interface admission", + "key": "20 integers: q exponent reduced0..3, dummy always0,18 nonnegative independent stage exponents", + "coefficient": "[real_numerator,real_denominator,imag_numerator,imag_denominator] reduced Fractions; positive denominators", + "cell": "sorted list of [key,coefficient]; omit zero terms; matrix dense row-major array of cell arrays", + "opcodes": { + "ADD": "[ADD,dst,src,dyadic-string]: dst+=c*src (distinct roles)", + "SCALE": "[SCALE,dst,nonzero-dyadic-string]: dst*=c", + "SWAP": "[SWAP,a,b]: exchange roles", + "QUERY": "[QUERY,dst,src,integer-e]: dst+=q^e*src", + "LOCAL": "[LOCAL,stage,src,dst]: dst+=q^-1*src THEN multiply BOTHsrc,dst by Dstage", + "IDLE": "[IDLE,rolea,roleb,list-stages]: multiply both by product Dstage", + "IDLE_ONE": "[IDLE_ONE,role,list-stages]: multiply role by product Dstage", + "Q_POWER": "[Q_POWER,role,integer-e]: multiply q^e", + "LAMBDA": "[LAMBDA,role,sign\u00b11]: multiply (1+sign*i)/2+(1-sign*i)/2*q\u00b2" + }, + "matrices": { + "final606": { + "file": "CONTROLLER.json", + "take_events": 606, + "roles": 34 + }, + "prefix402": { + "file": "CONTROLLER.json", + "take_events": 402, + "roles": 34 + }, + "one_prefix395": { + "file": "CONTROLLER-ONE-RETIRED.json", + "take_events": 395, + "roles": 33 + } + }, + "identities": [ + "final606_equals_entire_declared_diagonal", + "prefix402_retired_row_column4_equals_q_inverse_D10", + "prefix402_fresh33_row_column_untouched", + "one_prefix395_Pc_equals_S_D10_a", + "one_prefix395_bP_equals_S_D10_d", + "unit_pairings_and_cut_basis_inverse" + ], + "pair": { + "c": { + "4": -1, + "5": 2 + }, + "d": { + "4": -1 + }, + "a": { + "1": -1, + "2": 1 + }, + "b": { + "0": -1, + "2": 1 + }, + "S": "lambda_plus*q^-1", + "body_stage": 10 + }, + "certificate": { + "schema": "p104-cut401-external/1", + "keys": [ + "schema", + "sources", + "matrices", + "identities", + "controls" + ], + "sources": "dict SOURCE three controllers + RETIREMENT-WITNESSES.json filenames to raw SHA256", + "matrices": "dict in matrices descriptor, each full dense exact polynomial matrix", + "identities": "dict every listed identity ->true", + "controls": "ordered list of {id,accepted:false,failure_gate:endpoint_mismatch}" + }, + "json_serialization": "json.dumps(packet,sort_keys=True,separators=(comma,colon),ensure_ascii=True)+newline; CLI --certificate-out PATH computes, --check PATH recomputes and checks exact complete bytes; no extra keys/NaN/duplicate keys", + "limits": { + "roles": 34, + "events": 607, + "stage_count": 18, + "per_engine_seconds": 180, + "forecast_peak_mib": 128, + "one_process_at_time": true, + "no_source_code_imports": true, + "minimum_disk_reserve_gib": 8 + }, + "stop_tests": [ + "missing/ambiguous opcode or phase contract", + "any required identity failure", + "any semantic control accepted", + "growth or resource cap exceeded" + ], + "source_binding": "External SOURCE-PINS.json plus certificate raw source hashes; root seals both exact code and data before first execution; no peer receipt inspection before both firsts." +} diff --git a/research/p104-second-fragment-phase-audit/FILES.json b/research/p104-second-fragment-phase-audit/FILES.json new file mode 100644 index 0000000000..1011b45ef9 --- /dev/null +++ b/research/p104-second-fragment-phase-audit/FILES.json @@ -0,0 +1,22 @@ +{ + "schema_version": 1, + "files": { + "CASES.json": "74f116e973e2fb1cd5653926bd001dc18ddbca3f52f08b14f2d8e3bf3fd0bc34", + "CONTRACT.json": "b0288cba97a7171a41817d32c255c971201b0ef2b32bbfea6c161bed917a216f", + "SOURCE-PINS.json": "1fcb4715775c545350fe2a179e73d11ea02266a3d27ae53d9dd18492d203b5e5", + "inputs/CONTROLLER-ONE-RETIRED.json": "8d7889e817faf1bbf81bb4ed681db039df6e26ecdab5555dff60c3d0e4309030", + "inputs/CONTROLLER-UNRETIRED.json": "8693f74b4559c27dd670f788c6e8c7be8bc7cf9cd6a6abb80455fee86d20bc99", + "inputs/CONTROLLER.json": "543b8728e659561b95e127dad7bd7534645996d7d2c61602bb5d89c89a73944c", + "inputs/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "inputs/NOTICE": "2876ee8a0facf6a79b28fbef7423faa3e47c6b0852df4bcb7d8de6af51827282", + "inputs/PROOF.md": "0d79d6530c6d42cf20a27847ff7a9c57da5fb329507cd288192a28821db50226", + "inputs/RETIREMENT-WITNESSES.json": "272534848a8fe8a9fd523f4daf2747b24a6b26eb9a848d27cafcb22a2e718136", + "inputs/ROOT.json": "b31151c36e39c9267bcc81ec3e13d9d29df9d0c0b404830a9cfb01e21a5b8fc2", + "inputs/TWO-FRAGMENT-NOTICE": "fe9a9cc1c673c523676607dc6aea658a89f79d583dfdf2831fa9472cdbad2e69", + "inputs/algebra.py.txt": "02eb3380715294334710edd3273f267dc048264555bd60fefb86022bc9eda835", + "inputs/caller.py.txt": "e99e4287091c6ce4ec9a563cb9ac6f45be35ff1ef421b4efa8c200cb9d639d6c", + "inputs/scalars.py.txt": "d42f49f61f0d95c47cb1d69fe895fbb4761e083d2503413500140b4fb061d7f3", + "oracle.py": "fe95e662345da7cc7bac1e16df2603ed858bb4be27181cd787a1b5a8c5121449", + "primary.py": "df10845cf30c5148872793cc385019b16b1fda4d1bcde75c3e89711ae4be4154" + } +} diff --git a/research/p104-second-fragment-phase-audit/NOTICE b/research/p104-second-fragment-phase-audit/NOTICE new file mode 100644 index 0000000000..f1aed85449 --- /dev/null +++ b/research/p104-second-fragment-phase-audit/NOTICE @@ -0,0 +1,3 @@ +External second-fragment phase/application audit for ToikY, prepared with substantial OpenAI Codex assistance. New prose/checkers Apache-2.0. Source-aware coordinator/proof role and separate code-disjoint AI engine authors/reviewers; not human or kernel verification. + +Original zxv6726 construction, thu-nmrc6716 common-idle caller, Ali Romman dual-pair retirement and all retained native/helper/compiler/interval/analytic contributors keep their credit. See inputs/NOTICE, inputs/TWO-FRAGMENT-NOTICE and inputs/LICENSE verbatim. No source checker was executed; inert original code text was read only by the source-aware role for the contract. diff --git a/research/p104-second-fragment-phase-audit/ORACLE-FIRST.json b/research/p104-second-fragment-phase-audit/ORACLE-FIRST.json new file mode 100644 index 0000000000..da75994a6c --- /dev/null +++ b/research/p104-second-fragment-phase-audit/ORACLE-FIRST.json @@ -0,0 +1,16 @@ +{ + "kind": "ORACLE", + "started_at": "2026-11-05T10:34:55.105035+00:00", + "finished_at": "2026-11-05T10:34:55.754235+00:00", + "elapsed_seconds": 0.6492164991796017, + "exit_code": 0, + "status": "PASS", + "peak_rss_bytes": 30867456, + "peak_rss_unit": "Darwin bytes", + "python": "/Users/evaayala/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "python_version": "Python 3.12.14", + "certificate_exists": true, + "certificate_sha256": "31995c0964cb38939efc2f862aab4a7bc1aed5abbde3129029e614aadee77cbb", + "certificate_bytes": 21141, + "sealed_byte_readback": true +} diff --git a/research/p104-second-fragment-phase-audit/ORACLE.json b/research/p104-second-fragment-phase-audit/ORACLE.json new file mode 100644 index 0000000000..ddb0c48ab7 --- /dev/null +++ b/research/p104-second-fragment-phase-audit/ORACLE.json @@ -0,0 +1 @@ +{"controls":[{"accepted":false,"failure_gate":"endpoint_mismatch","id":"drop_normalizer"},{"accepted":false,"failure_gate":"endpoint_mismatch","id":"flip_normalizer"},{"accepted":false,"failure_gate":"endpoint_mismatch","id":"drop_inverse"},{"accepted":false,"failure_gate":"endpoint_mismatch","id":"wrong_inverse_order"},{"accepted":false,"failure_gate":"endpoint_mismatch","id":"early_fresh"},{"accepted":false,"failure_gate":"endpoint_mismatch","id":"omit_paid_fragment"},{"accepted":false,"failure_gate":"endpoint_mismatch","id":"transpose_input_basis"}],"identities":{"final606_equals_entire_declared_diagonal":true,"one_prefix395_Pc_equals_S_D10_a":true,"one_prefix395_bP_equals_S_D10_d":true,"prefix402_fresh33_row_column_untouched":true,"prefix402_retired_row_column4_equals_q_inverse_D10":true,"unit_pairings_and_cut_basis_inverse":true},"matrices":{"final606":[[[[[3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[[[3,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[[[3,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[[[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[[[3,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[[[3,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[[[3,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[[[3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[[[3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[1,1,0,1]]],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1],[1,1,0,1]]],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0],[1,1,0,1]]],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0],[1,1,0,1]]],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1],[1,1,0,1]]],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1],[1,1,0,1]]],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0],[1,1,0,1]]]]],"one_prefix395":[[[[[0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[[[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,1,0,1]],[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,1,-1,1]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,1,1,1]]],[[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[[[1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[[[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,1,0,1]],[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[[[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[2,1,0,1]],[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[[[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,1,0,1]],[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[[[0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[[[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,1,0,1]],[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,2,1,2]]],[[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[[[0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,1,0,1]],[[1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[-1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[[[1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[[[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[1,2,1,2]]]],[[],[],[],[],[],[],[],[],[[[1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[[[1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[[[1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[[[1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[]],[[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,1,1,1]],[[3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,1,-1,1]]]]],"prefix402":[[[[[0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[[[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,1,0,1]],[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[],[[[1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[[[0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0],[1,1,0,1]],[[1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[-1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[[[1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[[[0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,1,0,1]],[[1,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[-1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[[[3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[[[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[[[0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[]],[[],[],[],[],[],[],[],[],[[[1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[[[1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[[[1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[[[1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,-1,2]],[[3,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0],[1,2,1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]],[],[]],[[],[],[],[],[],[],[],[[[1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,2,1,2]],[[3,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0],[-1,2,-1,2]]],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,1,1,1]],[[3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0],[-1,1,-1,1]]],[]],[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[1,1,0,1]]]]]},"schema":"p104-cut401-external/1","sources":{"CONTROLLER-ONE-RETIRED.json":"8d7889e817faf1bbf81bb4ed681db039df6e26ecdab5555dff60c3d0e4309030","CONTROLLER-UNRETIRED.json":"8693f74b4559c27dd670f788c6e8c7be8bc7cf9cd6a6abb80455fee86d20bc99","CONTROLLER.json":"543b8728e659561b95e127dad7bd7534645996d7d2c61602bb5d89c89a73944c","RETIREMENT-WITNESSES.json":"272534848a8fe8a9fd523f4daf2747b24a6b26eb9a848d27cafcb22a2e718136"}} diff --git a/research/p104-second-fragment-phase-audit/PRIMARY-FIRST.json b/research/p104-second-fragment-phase-audit/PRIMARY-FIRST.json new file mode 100644 index 0000000000..875b9636e1 --- /dev/null +++ b/research/p104-second-fragment-phase-audit/PRIMARY-FIRST.json @@ -0,0 +1,16 @@ +{ + "kind": "PRIMARY", + "started_at": "2026-11-05T10:34:50.591078+00:00", + "finished_at": "2026-11-05T10:34:50.786117+00:00", + "elapsed_seconds": 0.19505241606384516, + "exit_code": 0, + "status": "PASS", + "peak_rss_bytes": 30916608, + "peak_rss_unit": "Darwin bytes", + "python": "/Users/evaayala/.cache/codex-runtimes/codex-primary-runtime/dependencies/python/bin/python3", + "python_version": "Python 3.12.14", + "certificate_exists": true, + "certificate_sha256": "31995c0964cb38939efc2f862aab4a7bc1aed5abbde3129029e614aadee77cbb", + "certificate_bytes": 21141, + "sealed_byte_readback": true +} diff --git a/research/p104-second-fragment-phase-audit/PROOF.md b/research/p104-second-fragment-phase-audit/PROOF.md new file mode 100644 index 0000000000..05b6578c24 --- /dev/null +++ b/research/p104-second-fragment-phase-audit/PROOF.md @@ -0,0 +1,207 @@ +# Exact second-cut phase and independent application review + +This note derives the scalar/basis implication. Two separately sealed external +engines now compute the actual prefix equations, literal word alignment and +complete final diagonal. Their complete 21,141-byte certificates agree; see +`BLIND-FIRST-COMPARISON.json`. The formal LOCAL contract remains inherited. +The source-aware written-derivation role read no result receipt, independent.py +or verify.py and did not run source or new scientific engines. The coordinator +separately executed the two sealed new engines reported below. The authorized scalars.py, +algebra.py and caller.py were exposed as inert text solely for the exact +instruction/ring contract; caller.py contains construction/replay/control +definitions, so this exposure is disclosed rather than called fully blind. + +Source: zxv6726 head435bbe91fb28cb1d7a569ca70c6c4e9eb302d486. Exact inputs, +original notices/license and contract exposure are in SOURCE-PINS.json. +This is not a new dual-pair surgery lemma, new supplier, new exponent, price +admission or proof of the native physical interface. + +## 1. Literal central ring and ordinary phase factors + +Use the declared ring R=Q(i)[q,D1,...,D18]/(q^4-1), not its specialization +q=i or q^2=1. Here i^2=-1, q is central, and the fresh stage/body variables +commute within this scalar interface. The20-entry exponent serialization has +one central slot, one unused dummy slot and18 actual stage slots. + +Let e_+=(1+q^2)/2 and e_-=(1-q^2)/2. The relation q^4=1 gives +e_+^2=e_+, e_-^2=e_-, e_+e_-=0 and e_++e_-=1. The source LAMBDA gate is + + lambda_plus = (1+i)/2 + (1-i)q^2/2 = e_+ + i e_-, + lambda_minus = (1-i)/2 + (1+i)q^2/2 = e_+ - i e_-. + +Consequently lambda_plus*lambda_minus=e_++e_-=1 and +lambda_plus^2=e_+-e_-=q^2. Since q^-1=q^3 is a unit, the central factor +S=lambda_plus*q^-1 satisfies S^2=lambda_plus^2*q^-2=1. + +These are ordinary symbolic identities under the exact source contract. They +do not show that an arbitrary physical implementation has this action, or that +an ordinary phase can be omitted without paying/realizing its source gate. + +## 2. Input basis and the two unit pairs + +All indices below are zero-based. The second input basis T acts on fields4,5 +as[[-1,0],[2,-1]], identity elsewhere. Chronologically it is SCALE(5,-1), +SCALE(4,-1), ADD(5,4,-2), with later row actions multiplying on the left. +Its determinant is1 and its inverse block is[[-1,0],[-2,-1]]. Hence + + T e4=c=-e4+2e5, e4* T^-1=d=-e4*. + +In particular dc=1. Let a=-e1+e2 and b=-e0*+e2*, so ba=1 as well. +No field32 or33 appears in this basis. Both columns of the input group still +represent arbitrary independent caller inputs; unimodular reparameterization +does not manufacture a copied or owned-zero source. + +Let P denote the stated source ONE-RETIRED prefix through event394 inclusive, +395 events total, with its first retirement/fresh32 history retained. The +literal equations checked independently by both external engines are + + P c = S D10 a, b P = S D10 d. (A) + +For checking(A), embed the vectors at the actual33-field width, or the34-field +width with the new field33 carried by identity. Every omitted coordinate is +zero in these **vectors**, not assumed zero in the arbitrary input array. +The coefficient engines must retain all input32 effects in the complementary +block; they cannot replace its first-handoff history by zero or an old copy. +For the block/suffix argument below use the33 old fields; the34th identity +coordinate is only an equivalent checking embedding until its fresh handoff. + +## 3. The cut basis and exact normalized character + +The three integral cut operations, before its final phase gate, form + + C0=SWAP(2,4) ADD(2,0,-1) ADD(1,2,1). + +Direct action gives C0*a=e4 and e4* C0=b. For example ADD(1,2,1) sends +a's coordinate1 from-1 to0; ADD(2,0,-1) leaves its coordinate2 equal1; +the SWAP then sends that vector to e4. The pivot row is e2*-e0*=b. + +Write Lambda4(-) for the identity with its field4 diagonal multiplied by +lambda_minus. The **full chronological cut basis** is C=Lambda4(-) C0. +Using(A), T e4=c and dT=e4* yields both equations + + C P T e4 = lambda_minus S D10 e4 = q^-1 D10 e4, + e4* C P T = lambda_minus S D10 e4* = q^-1 D10 e4*. + +Thus H=CPT has a genuine row-and-column direct summand + + H = (m) direct-sum K, m=q^-1 D10. (B) + +Both equations are necessary: a successful output column alone does not rule +out old-input contamination of the pivot output. The derivation uses the now independently computed(A), with the source's +row-action/order convention and inherited formal interface. + +Both engines also bind the actual event alignment:395 source prefix events +plus three new input-basis events plus four new cut-basis events give402 +prefix events, ending at index401. They compare the entire literal concatenation +to the frozen final controller. These indices belong to this changed word. + +Without the final lambda_minus gate the isolated character in(B) would be +S D10, not m. The actual inverse ordinary basis is + + C^-1=C0^-1 Lambda4(+). + +Because chronological row actions multiply on the left, this means the plus +phase acts **first** before the reverse integral cut operations. Reversing +that order in the emitted suffix, or applying it to the parked old output +instead of the active fresh port, is not justified by the abstract formula. +It must be compared to the literal word by the independent engines. + +## 4. What is needed to obtain the plain fresh E output + +Let F be the unchanged suffix after P in the first-retired source. Assume its +complete target Delta is diagonal, has the same target t on the old input +group4,5, and has the stated prefix/suffix factorization t=mE at this pivot. +For this source witness E denotes the declared product of the later stage +factors; the literal witness/diagonal supplies its exact exponents. **This full +target identity/factorization is not established just by(A).** + +The equality of the two original targets implies T^-1 Delta T=Delta. +With the ordinary input/output bases included, the complementary suffix is + + B=T^-1 F C^-1, B H=T^-1 F P T=Delta. + +Using(B), B's pivot summand is t/m=E and its pivot row/column has no coupling +to the complement. One formal way to derive this is to localize the +indeterminate body variables D_j. Under the source's legal gate hypotheses +(in particular distinct ports for nilpotent queries), the elementary gates, +phases and stage scalings are invertible there; H has inverse m^-1 direct-sum K^-1, +so B=Delta H^-1 has the stated block form. No body inverse is implemented. +The polynomial ring embeds injectively into that localization even though +the q group algebra has zero divisors: multiplication by an indeterminate +D_j is injective coefficient by coefficient. Therefore the resulting +polynomial coefficient identities descend back to R and permit singular +commuting body-operator specializations under the same interface contract. + +Now leave the old pivot after H parked, and substitute a new arbitrary input +at the active pivot port for **the entire** inverse cut basis and remaining +suffix. Equivalently rename that suffix port from4 to fresh33, without +touching the parked field4. The two resulting outputs are m times the old +independent caller input and E times the new independent input. Every other +input, including32, remains arbitrary and sees its prescribed complementary +target. This is an algebraic fresh-port substitution, not erasure, reset, +copying, use of an inverse m, or a physical-lifetime proof. + +Both engines check the literal word's entire final diagonal, the absence of +fresh33 contacts before the handoff, and parked4 noncontact afterward. Primary +also explicitly binds the next four actual operations to the renamed inverse +cut basis; oracle independently checks both formal basis inverse orders and +rejects the actual changed inverse-order control. These are source-bound +finite identities; their physical ownership/realization remains outside. + +## 5. Rank equivalence must not hide absolute phase + +The actual normalized prefix in(B) is **q^-1 D10**, not qD10. The difference +q^-1-q=q(q^2-1) is nonzero in the full declared ring. For example in the +q=i character, q^-1=-i=-q; in q=+-1 characters they agree. Therefore +testing only q^2=1, or checking a productive rank/moment without the complete +central character, cannot detect the possible sign on the imaginary sectors. + +An economic rank contract can assign q and q^-1 the same physical dimension +or tariff. Such equality of ranks is not literal equality of operators or a +free output normalizer. The source's qD shorthand in the productive +description must be reconciled with the witness's exact exponent-1 character +and any charged output basis. This note identifies that qualification; it +does not allege a source bug before the actual scalar/physical interface and +word are checked. The full formal q^4 model retains the distinction. + +## 6. Evidence boundary and credit + +The written argument proves lambda inversion/involution and the conditional +basis/block implication. The two external engines compute(A), the402-event +prefix and complete final endpoint, plus literal role chronology and seven +semantic controls. They do not replay the invoice,7,488 physical contacts, +all-column native action, actual paid-job funding or physical ownership. +Native LOCAL realization remains an explicit inherited premise. + +Credit zxv6726 for the paid fragments, unimodular witnesses and source word; +thu-nmrc6716a467 common-idle/fresh-input baseline; DreamingOfClouds6702 native +merges; Ali Romman6545 dual pairs,6551 tree rebalancing and retained +5599/5602/5611/5615 causal handoff lineage; Cinna Davis and retained native, +helper, compiler, interval and outer authors. B11S2/PR6720 already reviewed +the general two-sided surgery reasoning at another source cut; B11S6/PR6724 +already reviewed conditional absolute-phase/common-chart implications. +Neither is admission of this changed cut. The classical projector and block +matrix algebra is not new. This source-aware written review uses substantial +OpenAI Codex assistance, without human/kernel certification or a frontier, +assumption, physical-supplier or new-exponent claim. + +## Executed application evidence + +Both separately authored engines passed before either peer receipt was inspected. +The forward implementation evolves sparse field rows; the reverse implementation +transports each output covector through the actual forward event matrices in +reverse chronology. Both preserve Gaussian rational coefficients and all four +central q classes. Complete final606, prefix402 and one_prefix395 matrices +contain1,156+1,156+1,089 cells and34+63+78 nonzero monomials. +The six required identities and seven actual changed-word controls pass. +The first certificates agree byte-for-byte, SHA256 +`31995c0964cb38939efc2f862aab4a7bc1aed5abbde3129029e614aadee77cbb`. + +Sections2–3 equations(A),(B) and the402-event alignment are therefore checked +for the literal frozen word under the declared formal contract. The full final +matrix directly establishes the fresh33 target D11 D12 D13 D14 and all other +serialized outputs, including arbitrary input32. Section4 gives the inherited +abstract surgery interpretation; its old complete-target premise is not +separately re-certified. No physical contact/native action, paid-job tariff, +all-size composition or framework assumption is discharged. The remaining conditional premises name physical and old-source obligations; +they are not inferred from agreement of the new engines. diff --git a/research/p104-second-fragment-phase-audit/README.md b/research/p104-second-fragment-phase-audit/README.md new file mode 100644 index 0000000000..85fa79199a --- /dev/null +++ b/research/p104-second-fragment-phase-audit/README.md @@ -0,0 +1,34 @@ +# Exact phase and arbitrary-input audit of the second paid fragment + +For **zxv PR6726**, exact head `435bbe91fb28cb1d7a569ca70c6c4e9eb302d486`, two new external implementations check the second retirement in the literal606-instruction caller. The isolated old output is **q^-1 D10**, and fresh input33 obtains **D11 D12 D13 D14**. Both old and fresh inputs are arbitrary. The first retirement and arbitrary input32 remain actual context. + +This is an exact formal coefficient identity under the declared commuting native interface, not a physical/native supplier admission or new κ. The original card's complete selected caller/paid gate remains unmet. All five selected assumptions remain: `native_all_columns`, `owned_erasure`, `compiler`, `precision_tape`, `analytic_recovery`. + +## What the new check establishes + +The independent forward-field and reverse-output-covector engines compute every cell of three matrices: final606(34×34), actual finalprefix402(34×34), and sourceone-prefix395(33×33). They preserve exact Gaussian rationals and all four central q classes in Q(i)[q,D1,...,D18]/(q^4−1), with no scalar/body samples or source imports. + +They check both prefix identities Pc=S D10 a and bP=S D10 d, both unit pairings, the actual normalized row **and** column4, untouched fresh33, literal prefix concatenation, role chronology and the entire final diagonal. Primary also binds the actual four-event inverse slice; oracle checks both formal inverse orders and the actual inverse-order fault through the full endpoint. See [PROOF.md](PROOF.md), [CONTRACT.json](CONTRACT.json) and [REVIEW.md](REVIEW.md). + +The literal character q^-1 differs from q on imaginary central sectors. Rank equivalence does not remove the required phase normalization. This audit confirms the serialized formal target; it does not independently reconcile every physical output chart or tariff shorthand. + +## Evidence and replay + +Both implementations were sealed before either first run. Their entire21,141-byte certificates agree, SHA256 `31995c0964cb38939efc2f862aab4a7bc1aed5abbde3129029e614aadee77cbb`: all3,401cells/175nonzero monomials, six identity gates and seven real changed-word controls. First runs took0.1951/0.6492seconds with30,916,608/30,867,456-byte child peakRSS on Python3.12.14/macOS. No peer receipt was inspected before both finished. See [first comparison](BLIND-FIRST-COMPARISON.json). + +Seven controls remove/flip normalization, remove/reorder its inverse, introduce an early fresh contact, omit the paid fragment or transpose the input basis. Each changes the actual complete endpoint, including invertible rank-preserving changes. Fifteen external packet/source/metadata corruptions are rejected through60 actual normal/optimized CLI invocations; [receipt](CLI-REJECTIONS.json). Every normal replay recomputes and compares the **whole actual retained certificate**. + +```sh +python3.12 -B scripts/research_package.py --package research/p104-second-fragment-phase-audit +``` + +Four registered standard-library commands,180seconds each. Standalone source-export replay needs only this directory and Python3.12: `python3.12 -I -B primary.py` and `python3.12 -I -B oracle.py`. Frozen metadata and12 original objects are authenticated by exact bytes, SHA256 and Git blob IDs before interpretation. Original code is retained as inert `.txt` only. The source-aware coordinator/proof role read its replay definitions for the contract; neither new engine author did. Code-disjoint AI checks are not human or proof-kernel verification. + +## Open next questions + +- Independently bind the changed caller to the complete retained physical native port/absolute-phase interface. Start with one exact source-to-physical implication; all-column action, ownership, stock/tapes and precision remain inherited. +- Audit the complete changed target/paid/ordinary-work invoice and its compiler/outer transfer. Correct isolated retirement does not supply the remaining paid gates or an all-size multiplication theorem. Structured steps/blockers are in [TASK.json](TASK.json). + +This takes the released application-review request. PR6720 covers the older cut353; PR6724 covers a generic signature implication. Neither established this changed application. Main7c49fe32/revision8/selected6030 remain the baseline; exact freshness/overlap and timing are recorded in TASK.json. No merge, frontier, assumption or adoption change. + +Credit: zxv6726 paid-fragment construction/witnesses/author checks; thu-nmrc6716a467 common-idle/fresh-input caller; DreamingOfClouds6702; Ali Romman6545 dual pairs,6551 rebalancing,6529 transport and6348/6398/5599/5602/5611/5615 lineage; Rohan Arun6399/6417, ChaloupeMusic6453, Jacob Alan Sussman4268, Cinna Davis and retained native/helper/compiler/interval/analytic contributors. Classical block/projector algebra is not new. ToikY with substantial OpenAI Codex assistance and separate AI implementation/review roles; Apache-2.0. Original notices/license remain verbatim in `inputs/`. diff --git a/research/p104-second-fragment-phase-audit/REVIEW.md b/research/p104-second-fragment-phase-audit/REVIEW.md new file mode 100644 index 0000000000..bc4674ebcf --- /dev/null +++ b/research/p104-second-fragment-phase-audit/REVIEW.md @@ -0,0 +1,40 @@ +# Independent implementation and mathematical review + +Two separate AI code authors completed sealed first runs before inspecting peer receipts. A third source-aware role then independently compared both engines and the actual packet to the original literal contract; each engine author also reviewed the other implementation. No core correction was requested. Full original review notes are retained in the session archive. + +Review checked forward LOCAL add-then-scale and reverse LOCAL scale-then-covector-add, each with exactly one body factor; all four q classes and Gaussian coefficients; source size/Git/SHA binding; arbitrary inputs including32; actual402-prefix/parked4/fresh33 chronology; all3,401cells and seven complete-endpoint controls. Primary has an additional literal inverse-slice guard; oracle proves formal inverse in both orders and checks the full actual word. Unretired32-field data is authenticated context, not an extra replay. + +{ + "result": "PASS_STATIC_REVIEW_NO_CORE_CORRECTION", + "roles": [ + { + "record": "INDEPENDENT-MATH-REVIEW.md", + "sha256": "2734e631c0fe2aa9cf150a4f68af09ec744fc0ff1d753194a7167f8503c94a71", + "bytes": 9874, + "status": "PASS", + "availability": "Full original review retained in local session archive; summary here." + }, + { + "record": "FORWARD-IMPLEMENTATION-REVIEW.md", + "sha256": "889fa24be179dd731ebff379ea5f1b1fb10ebb3263ecd14b22a7c455d1344eaa", + "bytes": 7183, + "status": "PASS", + "availability": "Full original review retained in local session archive; summary here." + }, + { + "record": "REVERSE-IMPLEMENTATION-REVIEW.md", + "sha256": "ce1a299cfa3f1d2bb5ef69b34bdf575aec6194fa69f628682c71c264251c1453", + "bytes": 7170, + "status": "PASS", + "availability": "Full original review retained in local session archive; summary here." + } + ], + "limitations": [ + "Source-aware coordinator/proof exposure to inert original replay definitions disclosed; engine authors code-disjoint and source-code unexposed until both firsts complete.", + "Primary binds actual inverse suffix slice; oracle instead checks formal inverse in both orders plus full literal endpoint and wrong-order control.", + "Unretired controller authenticated as context, not a fourth replayed matrix.", + "Physical/native/pricing/compiler/all-size transfer and all five selected assumptions outside." + ] +} + +No human/kernel acceptance or physical/native/pricing/all-size/assumption admission follows from these AI reviews. diff --git a/research/p104-second-fragment-phase-audit/SOURCE-PINS.json b/research/p104-second-fragment-phase-audit/SOURCE-PINS.json new file mode 100644 index 0000000000..9aadbf7e1f --- /dev/null +++ b/research/p104-second-fragment-phase-audit/SOURCE-PINS.json @@ -0,0 +1,170 @@ +{ + "schema_version": 1, + "status": "EXACT_SOURCE_BYTES_BOUND_NOT_ADMITTED", + "source_pr": 6726, + "source_head": "435bbe91fb28cb1d7a569ca70c6c4e9eb302d486", + "sources": [ + { + "local_path": "inputs/CONTROLLER-UNRETIRED.json", + "source_path": "research/p104-paid-idle-fragmentation/frozen/two-fragment/CONTROLLER-UNRETIRED.json", + "repository": "zxv/integer-mult-bounds", + "git_commit": "435bbe91fb28cb1d7a569ca70c6c4e9eb302d486", + "git_blob": "30d8f94afc279779ef5afb4a4fc6974073d6a30e", + "sha256": "8693f74b4559c27dd670f788c6e8c7be8bc7cf9cd6a6abb80455fee86d20bc99", + "bytes": 37830, + "fresh_download_this_closure": true, + "origin_url": "https://github.com/zxv/integer-mult-bounds/blob/435bbe91fb28cb1d7a569ca70c6c4e9eb302d486/research/p104-paid-idle-fragmentation/frozen/two-fragment/CONTROLLER-UNRETIRED.json", + "usage": "inert literal data/proof/license; no mathematical execution" + }, + { + "local_path": "inputs/CONTROLLER-ONE-RETIRED.json", + "source_path": "research/p104-paid-idle-fragmentation/frozen/two-fragment/CONTROLLER-ONE-RETIRED.json", + "repository": "zxv/integer-mult-bounds", + "git_commit": "435bbe91fb28cb1d7a569ca70c6c4e9eb302d486", + "git_blob": "9a45cbfc72f619f5608d96a02a9372a715131f1e", + "sha256": "8d7889e817faf1bbf81bb4ed681db039df6e26ecdab5555dff60c3d0e4309030", + "bytes": 38900, + "fresh_download_this_closure": true, + "origin_url": "https://github.com/zxv/integer-mult-bounds/blob/435bbe91fb28cb1d7a569ca70c6c4e9eb302d486/research/p104-paid-idle-fragmentation/frozen/two-fragment/CONTROLLER-ONE-RETIRED.json", + "usage": "inert literal data/proof/license; no mathematical execution" + }, + { + "local_path": "inputs/CONTROLLER.json", + "source_path": "research/p104-paid-idle-fragmentation/frozen/two-fragment/CONTROLLER.json", + "repository": "zxv/integer-mult-bounds", + "git_commit": "435bbe91fb28cb1d7a569ca70c6c4e9eb302d486", + "git_blob": "1c16cfbedcc704de405c755a395fca831fc65568", + "sha256": "543b8728e659561b95e127dad7bd7534645996d7d2c61602bb5d89c89a73944c", + "bytes": 39799, + "fresh_download_this_closure": true, + "origin_url": "https://github.com/zxv/integer-mult-bounds/blob/435bbe91fb28cb1d7a569ca70c6c4e9eb302d486/research/p104-paid-idle-fragmentation/frozen/two-fragment/CONTROLLER.json", + "usage": "inert literal data/proof/license; no mathematical execution" + }, + { + "local_path": "inputs/ROOT.json", + "source_path": "research/p104-paid-idle-fragmentation/frozen/two-fragment/ROOT.json", + "repository": "zxv/integer-mult-bounds", + "git_commit": "435bbe91fb28cb1d7a569ca70c6c4e9eb302d486", + "git_blob": "d153188cc7bdc96d80f3f3bdae8e88865ef1d437", + "sha256": "b31151c36e39c9267bcc81ec3e13d9d29df9d0c0b404830a9cfb01e21a5b8fc2", + "bytes": 18792, + "fresh_download_this_closure": false, + "origin_url": "https://github.com/zxv/integer-mult-bounds/blob/435bbe91fb28cb1d7a569ca70c6c4e9eb302d486/research/p104-paid-idle-fragmentation/frozen/two-fragment/ROOT.json", + "usage": "inert literal data/proof/license; no mathematical execution" + }, + { + "local_path": "inputs/scalars.py.txt", + "source_path": "research/p104-paid-idle-fragmentation/frozen/two-fragment/scalars.py", + "repository": "zxv/integer-mult-bounds", + "git_commit": "435bbe91fb28cb1d7a569ca70c6c4e9eb302d486", + "git_blob": "7b3a96488cdf135452d926056e9e95224ea7e047", + "sha256": "d42f49f61f0d95c47cb1d69fe895fbb4761e083d2503413500140b4fb061d7f3", + "bytes": 1563, + "fresh_download_this_closure": true, + "origin_url": "https://github.com/zxv/integer-mult-bounds/blob/435bbe91fb28cb1d7a569ca70c6c4e9eb302d486/research/p104-paid-idle-fragmentation/frozen/two-fragment/scalars.py", + "usage": "inert source contract text; exposed but never imported/compiled/executed" + }, + { + "local_path": "inputs/algebra.py.txt", + "source_path": "research/p104-paid-idle-fragmentation/frozen/two-fragment/algebra.py", + "repository": "zxv/integer-mult-bounds", + "git_commit": "435bbe91fb28cb1d7a569ca70c6c4e9eb302d486", + "git_blob": "a06d6f641685e96b2f150ea6b741930a9ec037f8", + "sha256": "02eb3380715294334710edd3273f267dc048264555bd60fefb86022bc9eda835", + "bytes": 1861, + "fresh_download_this_closure": true, + "origin_url": "https://github.com/zxv/integer-mult-bounds/blob/435bbe91fb28cb1d7a569ca70c6c4e9eb302d486/research/p104-paid-idle-fragmentation/frozen/two-fragment/algebra.py", + "usage": "inert source contract text; exposed but never imported/compiled/executed" + }, + { + "local_path": "inputs/caller.py.txt", + "source_path": "research/p104-paid-idle-fragmentation/frozen/two-fragment/caller.py", + "repository": "zxv/integer-mult-bounds", + "git_commit": "435bbe91fb28cb1d7a569ca70c6c4e9eb302d486", + "git_blob": "002aaa9210960c3a94077e23c49d9983b4565512", + "sha256": "e99e4287091c6ce4ec9a563cb9ac6f45be35ff1ef421b4efa8c200cb9d639d6c", + "bytes": 7391, + "fresh_download_this_closure": true, + "origin_url": "https://github.com/zxv/integer-mult-bounds/blob/435bbe91fb28cb1d7a569ca70c6c4e9eb302d486/research/p104-paid-idle-fragmentation/frozen/two-fragment/caller.py", + "usage": "inert source contract text; exposed but never imported/compiled/executed" + }, + { + "local_path": "inputs/TWO-FRAGMENT-NOTICE", + "source_path": "research/p104-paid-idle-fragmentation/frozen/two-fragment/NOTICE", + "repository": "zxv/integer-mult-bounds", + "git_commit": "435bbe91fb28cb1d7a569ca70c6c4e9eb302d486", + "git_blob": "fed7ebcefa7b00b0af07d87202aa4bfdb665377e", + "sha256": "fe9a9cc1c673c523676607dc6aea658a89f79d583dfdf2831fa9472cdbad2e69", + "bytes": 2342, + "fresh_download_this_closure": true, + "origin_url": "https://github.com/zxv/integer-mult-bounds/blob/435bbe91fb28cb1d7a569ca70c6c4e9eb302d486/research/p104-paid-idle-fragmentation/frozen/two-fragment/NOTICE", + "usage": "inert literal data/proof/license; no mathematical execution" + }, + { + "local_path": "inputs/NOTICE", + "source_path": "research/p104-paid-idle-fragmentation/NOTICE", + "repository": "zxv/integer-mult-bounds", + "git_commit": "435bbe91fb28cb1d7a569ca70c6c4e9eb302d486", + "git_blob": "155b55b4de9a0601bf6bebcf6cb15f8308fb7ef7", + "sha256": "2876ee8a0facf6a79b28fbef7423faa3e47c6b0852df4bcb7d8de6af51827282", + "bytes": 662, + "fresh_download_this_closure": false, + "origin_url": "https://github.com/zxv/integer-mult-bounds/blob/435bbe91fb28cb1d7a569ca70c6c4e9eb302d486/research/p104-paid-idle-fragmentation/NOTICE", + "usage": "inert literal data/proof/license; no mathematical execution" + }, + { + "local_path": "inputs/LICENSE", + "source_path": "research/p104-paid-idle-fragmentation/LICENSE", + "repository": "zxv/integer-mult-bounds", + "git_commit": "435bbe91fb28cb1d7a569ca70c6c4e9eb302d486", + "git_blob": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64", + "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "bytes": 11357, + "fresh_download_this_closure": true, + "origin_url": "https://github.com/zxv/integer-mult-bounds/blob/435bbe91fb28cb1d7a569ca70c6c4e9eb302d486/research/p104-paid-idle-fragmentation/LICENSE", + "usage": "inert literal data/proof/license; no mathematical execution" + }, + { + "local_path": "inputs/PROOF.md", + "source_path": "research/p104-paid-idle-fragmentation/frozen/two-fragment/PROOF.md", + "repository": "zxv/integer-mult-bounds", + "git_commit": "435bbe91fb28cb1d7a569ca70c6c4e9eb302d486", + "git_blob": "1d23498f0dc2db6e76962d6b993063c0781d2999", + "sha256": "0d79d6530c6d42cf20a27847ff7a9c57da5fb329507cd288192a28821db50226", + "bytes": 5305, + "fresh_download_this_closure": false, + "origin_url": "https://github.com/zxv/integer-mult-bounds/blob/435bbe91fb28cb1d7a569ca70c6c4e9eb302d486/research/p104-paid-idle-fragmentation/frozen/two-fragment/PROOF.md", + "usage": "inert literal data/proof/license; no mathematical execution" + }, + { + "local_path": "inputs/RETIREMENT-WITNESSES.json", + "source_path": "research/p104-paid-idle-fragmentation/frozen/two-fragment/RETIREMENT-WITNESSES.json", + "repository": "zxv/integer-mult-bounds", + "git_commit": "435bbe91fb28cb1d7a569ca70c6c4e9eb302d486", + "git_blob": "6403f0e21648c0e7afbb2fc6972af5e6d9018397", + "sha256": "272534848a8fe8a9fd523f4daf2747b24a6b26eb9a848d27cafcb22a2e718136", + "bytes": 2182, + "fresh_download_this_closure": false, + "origin_url": "https://github.com/zxv/integer-mult-bounds/blob/435bbe91fb28cb1d7a569ca70c6c4e9eb302d486/research/p104-paid-idle-fragmentation/frozen/two-fragment/RETIREMENT-WITNESSES.json", + "usage": "inert literal data/proof/license; no mathematical execution" + } + ], + "retained_source_bytes": 167984, + "new_payload_bytes_this_closure": 141043, + "reuse": "ROOT/outerNOTICE/PROOF/witness exact-ref downloads reused from immediately prior scout at the same refreshed immutable head; all listed Git blobs recomputed from inert bytes and matched fresh directory rows where present.", + "source_code_exposure": [ + "scalars.py entire short work/height verifier read for scalar legality contract only", + "algebra.py general matrix/coefficient helpers read for Gaussian rational and modulo4 exponent contract", + "caller.py includes construct/replay/controls definitions: exposed as text to recover every opcode, not invoked or reused as new algorithm" + ], + "excluded": [ + "independent.py", + "verify.py", + "all RESULT/INDEPENDENT receipts", + "source checker execution", + "native/physical all-column replay" + ], + "contract_status": "Formal scalar/opcode contract recovered completely from caller.py/algebra.py; actual native physical realization is an inherited premise. A guessed standalone source6702/caller/SPEC.md path returned404; exact error retained in SOURCE/SPEC-404.json.", + "ring": "Q(i)[q,D1,...,D18]/(q^4-1), with one additional unused dummy exponent slot in the serialized20-vector. D_j commuting formal body variables; q central modulo4.", + "interpretation": "Every new engine must reimplement this declared interface independently; source constructor/replay functions remain inert. No prefix identity, endpoint or numeric bound checked in this closure task." +} diff --git a/research/p104-second-fragment-phase-audit/SOURCES.json b/research/p104-second-fragment-phase-audit/SOURCES.json new file mode 100644 index 0000000000..321a194dcb --- /dev/null +++ b/research/p104-second-fragment-phase-audit/SOURCES.json @@ -0,0 +1,54 @@ +{ + "schema_version": 1, + "base_commit": "7c49fe32c55de02c2c873655c804b16e4c3fef0a", + "files": [ + { + "path": "AGENTS.md", + "usage": "provenance", + "git_blob": "fa006ceb6b6b9d6c0e799f210963f4587ecfb162", + "sha256": "fbee67ab9e0ae4629a35fd9dba69c8f7e29e4a15392eb2d0f75d8768ffb65f40" + }, + { + "path": "autoresearch.md", + "usage": "provenance", + "git_blob": "2fe84a7b30b1e26e60ce0ec4775894eb1831c5d6", + "sha256": "d16f0d3bb4d4b213d06c128db6d6460b0fe9ec1ac5a6c1ea1febf1db40e7b60d" + }, + { + "path": "CONTRIBUTING.md", + "usage": "provenance", + "git_blob": "5185786f2ec00f215019fb5777d70979429690a9", + "sha256": "fcd1a8d0e52342a23b8ffa9e905e85ccc539fb084145ef016dfc93cedfb3d924" + }, + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "3404fbdd5e7529a0674eef26114b5071e4586cec", + "sha256": "ead6cdc9d0af6d58e8a49744d8ec8c7c15e13d2ba93c276c434bcf9b51b93a81" + }, + { + "path": "docs/research/current-priorities.md", + "usage": "provenance", + "git_blob": "6f5d40d13d8f3bdc12ce7954c8c3eb4ab1f8be91", + "sha256": "70f61c8d140ae6e892f2b8f065bba4eae3e76f7a8f55f632fd4e2f9f34039bdc" + }, + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "d59b5035e7b4cbaa9d688a1d32dd0d6eb79c466a", + "sha256": "9b8d0eea95b3bf0dfcb7938a732a6439b87a2685dec2a5ab9e525b3b34debbfa" + }, + { + "path": "docs/research/agent-procedure.md", + "usage": "provenance", + "git_blob": "06b35b9805b5c15d1623edfb20560266a4bbfdfc", + "sha256": "8367063f9f2d48543415451e026f83224ea962b28801bea6904e6e425ed023e4" + }, + { + "path": "docs/research/research-family-status.md", + "usage": "provenance", + "git_blob": "3c19b18ef7225b47f0abcd9d51ae7c83d0cdfd15", + "sha256": "92c8010dfd9fc33e921f70526231f8689e06ea784f1b1387d895344b227f36d7" + } + ] +} diff --git a/research/p104-second-fragment-phase-audit/TASK.json b/research/p104-second-fragment-phase-audit/TASK.json new file mode 100644 index 0000000000..813eac96e1 --- /dev/null +++ b/research/p104-second-fragment-phase-audit/TASK.json @@ -0,0 +1,110 @@ +{ + "schema_version": 1, + "task_id": "joint-query-controller", + "priority_revision": 8, + "base_commit": "7c49fe32c55de02c2c873655c804b16e4c3fef0a", + "original_card": { + "id": "joint-query-controller", + "question": "Can a changed query demand or caller remove real work while satisfying native chronology and restoration?", + "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" + ], + "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." + ], + "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.", + "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." + }, + "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.", + "bottleneck_link": "Judge the actual current supplier contract and complete signed target/paid bill; frozen-profile ceilings require an applicability proof.", + "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." + ], + "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." + ], + "overlap_terms": [ + "query demand", + "active mode", + "5720", + "5745", + "5747", + "caller" + ], + "existing_checks": [ + { + "scope": "PR #4166: author-checked installed producer/service/return/bridge connection; native-component comparison loses.", + "evidence": "research/qq16-caller-install/README.md", + "remaining": "Complete matched physical protocol bill, or changed source-compatible demand/circuit; no affordable supplier yet.", + "status": "author-checked", + "source_commit": "0b082d22a0e9a442d264ab0633e35ef26c790630", + "selected_record_sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" + }, + { + "scope": "Selected PR5599: complete helper-subspace construction and independent caller replay; five framework assumptions remain.", + "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.", + "status": "reviewed", + "source_commit": "09dd0965711ca7eeb169057a420abab1c9052137", + "selected_record_sha256": "2a0220e866417774606e0f991e41b9c1d26b1f43b97857238cf478dbc7d330b5" + } + ] + }, + "scope_status": "changed", + "actual_scope": "External exact-formal application audit of PR6726 second retirement at cut394-to401/pivot4-tofresh33; whole final606 endpoint corroborates absolute phase and all34 arbitrary inputs under the declared commutative native interface.", + "scope_change_reason": "Take the released changed-caller application-review handoff, rather than discharge the card original actual selected all-columns/complete paid supplier gate. That gate remains unmet.", + "bottleneck_link": "Independent target credit requires a literal dual pair and absolute phase at the actual caller; rank-only arithmetic and predecessor audits do not admit this application.", + "time_budget_minutes": 60, + "seed": "fad5874ef0a9442f7f371bdb09e27ce3", + "scope_key": "4d7f1a9510e7821b7134", + "source_head": "435bbe91fb28cb1d7a569ca70c6c4e9eb302d486", + "method": "Separately authored forward-field and reverse-output-covector exact Gaussian-rational polynomial transport; no source/peer code imports; whole actual matrices and seven semantic controls.", + "domain": "Exact 606-instruction34-field caller and actual prefixes402/395 over Q(i)[q,D1..D18]/(q4-1), all34 independent inputs including fresh32. No physical/native or final invoice admission.", + "stop_rule": "Stop on source/identity/control/cap failure; scientific cutoff2026-11-05T10:55:43Z, final15minutes through11:10:43Z; each engine180seconds serial,8GiB diskreserve. Preserve first bytes and failed attempts.", + "outcome": "completed", + "evidence": "Both separately sealed firsts passed; entire21141-byte actual certificates identicalSHA31995c0964cb38939efc2f862aab4a7bc1aed5abbde3129029e614aadee77cbb,3401matrixcells/175terms,6identities/7semanticcontrols.60 actual normal/optimized CLI corruptions rejected; independent math and crossed implementation reviews pass, with coverage distinctions retained.", + "author": "ToikY", + "ai_assistance": "Substantial OpenAI Codex assistance, separate code-disjoint AI engine authors and source-aware written proof/review roles. Root/source-aware role read inert original replay definitions for contract; engine authors did not. No human or proof-kernel acceptance.", + "credit": "zxv6726 paid-fragment construction/witnesses/author-side checks; thu-nmrc6716a467 common-idle/fresh-input caller; DreamingOfClouds6702; Ali Romman6545 dual-pair retirement,6551 rebalancing,6529 transport,6348/6398/5599/5602/5611/5615; Rohan Arun6399/6417; ChaloupeMusic6453; Jacob Alan Sussman4268; Cinna Davis and retained native/compiler/analytic contributors. PR6720 oldercut353 andPR6724 genericphase retain separate credit; neither admitted this changedapplication.", + "open_questions": [ + { + "question": "Does the literal changed caller match the complete retained physical native port and absolute-phase interface?", + "why_it_matters": "Formal commuting coefficient identities alone do not certify actual native/operator action or all columns.", + "first_step": "Pin the exact native source and changed caller port schedule; independently audit one complete source-to-physical interface implication.", + "blocked_by": "Native all-columns/physical charts/ownership/tapes/precision are inherited and not replayed here." + }, + { + "question": "Does the complete changed target/paid invoice and all-size transfer meet its actual caller obligations?", + "why_it_matters": "A correct isolated retirement gives no free target credit or complete multiplication theorem.", + "first_step": "Bind every literal target, paid idle, ordinary normalization and compiler/outer term to the full source invoice.", + "blocked_by": "No complete bill/compiler/precision/stock/owned-erasure/analytic-recovery admission; all five selected assumptions remain." + } + ], + "claim_url": "https://github.com/CrocSwap/integer-mult-bounds/discussions/1166#discussioncomment-19416178", + "overlap": { + "open_bodies": 682, + "complete_nonatomic": true, + "targeted_all_state_queries": [ + "6726", + "paid idle fragmentation", + "394 401" + ], + "source_feedback": "empty at10:38UTC", + "local": "36 materialized notes;8917HEADinventory with8881unsearched paths; canonical ledger/contribution index targeted read, no6726entry", + "discussions": "Visible liveHub/Start; middle board and hidden work UNKNOWN", + "closed_corpus": "targeted indexed search only, not exhaustive" + } +} diff --git a/research/p104-second-fragment-phase-audit/VALIDATION.md b/research/p104-second-fragment-phase-audit/VALIDATION.md new file mode 100644 index 0000000000..c1c5d6643b --- /dev/null +++ b/research/p104-second-fragment-phase-audit/VALIDATION.md @@ -0,0 +1,9 @@ +# Verification amendment after the scientific freeze + +Scientific work froze2026-11-05T10:40:54.951820Z. The original31-file package is preserved at local e0aafd07093fd3183e61aacf00bc965f5a2e8642 and public ff65202e7a0ee2bc02a6eda013d5d75df2f14e9d, tree3d3b78cc1bc9b9664295bb358307e938148a73aa. This amendment adds this document and clarifies PROOF.md opening's role-specific execution statement: the written derivation role did not run engines; the coordinator did run both sealed new engines. No scientific code, contract, source input, case or certificate changes. + +The original31-file committed byte/source-history check, official export and all21declared proof-input checks passed. Four registered normal/optimized commands and four read-only Git-free empty-PATH cold commands recomputed and compared their whole actual certificates. Cold files remained byte-identical. The first cold preparation used systemPython3.9.6 and failed before extraction or any replay on the unsupported filter keyword; the corrected managedPython3.12.14 setup passed. The first export preparation used an invalid make subcommand and was rejected before archive creation; export then passed. Original failures remain local. The first official archive is an uncompressed tar despite its .tar.gz filename; semantic member/byte checks use format autodetection. + +The local global replay planner stopped on missing canonical metadata in the partial clone. One exact missing VERIFY blob was fetched/hash-authenticated as metadata only;4,052 of4,075 historical VERIFY objects remain omitted. A complete local global plan is UNKNOWN, not passing. No historical scientific suite was launched. Original hosted CI status for the final submitted head will be linked in the PR/Discussion handoff; no rerun is requested. + +Final32-file committed-byte/source-history/export readbacks cover this amendment. The21declared actual proof-input bytes are unchanged from the already passing registered/cold replays, so this documentation-only amendment does not claim a new scientific first. Full local review/first/failure/verification receipts are retained in the session archive. All physical/native/full invoice/precision/compiler/owned-erasure/analytic obligations and all five selected assumptions remain outside. diff --git a/research/p104-second-fragment-phase-audit/VERIFY.json b/research/p104-second-fragment-phase-audit/VERIFY.json new file mode 100644 index 0000000000..7251b708f3 --- /dev/null +++ b/research/p104-second-fragment-phase-audit/VERIFY.json @@ -0,0 +1,81 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/p104-second-fragment-phase-audit/BLIND-FIRST-COMPARISON.json", + "research/p104-second-fragment-phase-audit/CASES.json", + "research/p104-second-fragment-phase-audit/CERTIFICATE.json", + "research/p104-second-fragment-phase-audit/CONTRACT.json", + "research/p104-second-fragment-phase-audit/FILES.json", + "research/p104-second-fragment-phase-audit/ORACLE-FIRST.json", + "research/p104-second-fragment-phase-audit/ORACLE.json", + "research/p104-second-fragment-phase-audit/PRIMARY-FIRST.json", + "research/p104-second-fragment-phase-audit/SOURCE-PINS.json", + "research/p104-second-fragment-phase-audit/inputs/CONTROLLER-ONE-RETIRED.json", + "research/p104-second-fragment-phase-audit/inputs/CONTROLLER-UNRETIRED.json", + "research/p104-second-fragment-phase-audit/inputs/CONTROLLER.json", + "research/p104-second-fragment-phase-audit/inputs/LICENSE", + "research/p104-second-fragment-phase-audit/inputs/RETIREMENT-WITNESSES.json", + "research/p104-second-fragment-phase-audit/inputs/ROOT.json", + "research/p104-second-fragment-phase-audit/inputs/TWO-FRAGMENT-NOTICE", + "research/p104-second-fragment-phase-audit/inputs/algebra.py.txt", + "research/p104-second-fragment-phase-audit/inputs/caller.py.txt", + "research/p104-second-fragment-phase-audit/inputs/scalars.py.txt", + "research/p104-second-fragment-phase-audit/oracle.py", + "research/p104-second-fragment-phase-audit/primary.py" + ], + "commands": [ + { + "argv": [ + "{python}", + "-I", + "-W", + "error", + "-B", + "{package}/primary.py" + ], + "timeout_seconds": 180, + "checks": "Authenticate metadata and12 original source byte/Git/size pins; recompute all3401 exact formal matrix cells, six identity gates and seven actual changed-word controls; parse and byte-compare entire actual retained certificate. No original or peer code imports, floats, physical admission or kappa change." + }, + { + "argv": [ + "{python}", + "-I", + "-W", + "error", + "-B", + "-O", + "{package}/primary.py" + ], + "timeout_seconds": 180, + "checks": "Authenticate metadata and12 original source byte/Git/size pins; recompute all3401 exact formal matrix cells, six identity gates and seven actual changed-word controls; parse and byte-compare entire actual retained certificate. No original or peer code imports, floats, physical admission or kappa change." + }, + { + "argv": [ + "{python}", + "-I", + "-W", + "error", + "-B", + "{package}/oracle.py" + ], + "timeout_seconds": 180, + "checks": "Authenticate metadata and12 original source byte/Git/size pins; recompute all3401 exact formal matrix cells, six identity gates and seven actual changed-word controls; parse and byte-compare entire actual retained certificate. No original or peer code imports, floats, physical admission or kappa change." + }, + { + "argv": [ + "{python}", + "-I", + "-W", + "error", + "-B", + "-O", + "{package}/oracle.py" + ], + "timeout_seconds": 180, + "checks": "Authenticate metadata and12 original source byte/Git/size pins; recompute all3401 exact formal matrix cells, six identity gates and seven actual changed-word controls; parse and byte-compare entire actual retained certificate. No original or peer code imports, floats, physical admission or kappa change." + } + ] +} diff --git a/research/p104-second-fragment-phase-audit/inputs/CONTROLLER-ONE-RETIRED.json b/research/p104-second-fragment-phase-audit/inputs/CONTROLLER-ONE-RETIRED.json new file mode 100644 index 0000000000..9a45cbfc72 --- /dev/null +++ b/research/p104-second-fragment-phase-audit/inputs/CONTROLLER-ONE-RETIRED.json @@ -0,0 +1,4210 @@ +{ + "schema": "two-paid-fragments-two-independent-retirements/1", + "roles": 33, + "stages": 18, + "ambient_rank": 153, + "events": [ + [ + "ADD", + 6, + 7, + "1" + ], + [ + "SCALE", + 6, + "-1" + ], + [ + "ADD", + 7, + 6, + "2" + ], + [ + "SWAP", + 6, + 7 + ], + [ + "ADD", + 7, + 6, + "-1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "SWAP", + 0, + 9 + ], + [ + "SWAP", + 1, + 8 + ], + [ + "SWAP", + 8, + 9 + ], + [ + "ADD", + 0, + 8, + "1" + ], + [ + "ADD", + 9, + 1, + "-1" + ], + [ + "LAMBDA", + 8, + -1 + ], + [ + "QUERY", + 8, + 9, + -1 + ], + [ + "LAMBDA", + 8, + 1 + ], + [ + "ADD", + 9, + 1, + "1" + ], + [ + "ADD", + 0, + 8, + "-1" + ], + [ + "IDLE", + 8, + 9, + [ + 1, + 2, + 3, + 4 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 11 + ], + [ + "SWAP", + 0, + 10 + ], + [ + "SWAP", + 10, + 11 + ], + [ + "ADD", + 1, + 10, + "1" + ], + [ + "ADD", + 11, + 0, + "-1" + ], + [ + "LAMBDA", + 10, + -1 + ], + [ + "QUERY", + 10, + 11, + -1 + ], + [ + "LAMBDA", + 10, + 1 + ], + [ + "ADD", + 11, + 0, + "1" + ], + [ + "ADD", + 1, + 10, + "-1" + ], + [ + "IDLE", + 10, + 11, + [ + 1, + 2 + ] + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 1, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 2, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "ADD", + 1, + 10, + "1" + ], + [ + "SCALE", + 10, + "-1" + ], + [ + "ADD", + 10, + 1, + "1" + ], + [ + "SWAP", + 0, + 11 + ], + [ + "SCALE", + 11, + "-1" + ], + [ + "ADD", + 11, + 0, + "1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 0, + 13 + ], + [ + "SWAP", + 1, + 12 + ], + [ + "SWAP", + 12, + 13 + ], + [ + "ADD", + 0, + 12, + "1" + ], + [ + "ADD", + 13, + 1, + "-1" + ], + [ + "LAMBDA", + 12, + -1 + ], + [ + "QUERY", + 12, + 13, + -1 + ], + [ + "LAMBDA", + 12, + 1 + ], + [ + "ADD", + 13, + 1, + "1" + ], + [ + "ADD", + 0, + 12, + "-1" + ], + [ + "IDLE", + 12, + 13, + [ + 3, + 4 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 3, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 4, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 12, + "1" + ], + [ + "SCALE", + 12, + "-1" + ], + [ + "ADD", + 12, + 0, + "1" + ], + [ + "SWAP", + 1, + 13 + ], + [ + "SCALE", + 13, + "-1" + ], + [ + "ADD", + 13, + 1, + "1" + ], + [ + "ADD", + 0, + 8, + "1" + ], + [ + "SCALE", + 8, + "-1" + ], + [ + "ADD", + 8, + 0, + "1" + ], + [ + "SWAP", + 1, + 9 + ], + [ + "SCALE", + 9, + "-1" + ], + [ + "ADD", + 9, + 1, + "1" + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "ADD", + 1, + 7, + "-2" + ], + [ + "ADD", + 0, + 7, + "-1" + ], + [ + "SCALE", + 7, + "-1" + ], + [ + "SCALE", + 6, + "-1" + ], + [ + "ADD", + 7, + 6, + "1" + ], + [ + "SWAP", + 5, + 7 + ], + [ + "SWAP", + 4, + 6 + ], + [ + "SWAP", + 3, + 5 + ], + [ + "SWAP", + 2, + 4 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 3 + ], + [ + "ADD", + 3, + 0, + "2" + ], + [ + "ADD", + 2, + 0, + "1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "SWAP", + 0, + 15 + ], + [ + "SWAP", + 1, + 14 + ], + [ + "SWAP", + 14, + 15 + ], + [ + "ADD", + 0, + 14, + "1" + ], + [ + "ADD", + 15, + 1, + "-1" + ], + [ + "LAMBDA", + 14, + -1 + ], + [ + "QUERY", + 14, + 15, + -1 + ], + [ + "LAMBDA", + 14, + 1 + ], + [ + "ADD", + 15, + 1, + "1" + ], + [ + "ADD", + 0, + 14, + "-1" + ], + [ + "IDLE", + 14, + 15, + [ + 5, + 6, + 7, + 8 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 17 + ], + [ + "SWAP", + 0, + 16 + ], + [ + "SWAP", + 16, + 17 + ], + [ + "ADD", + 1, + 16, + "1" + ], + [ + "ADD", + 17, + 0, + "-1" + ], + [ + "LAMBDA", + 16, + -1 + ], + [ + "QUERY", + 16, + 17, + -1 + ], + [ + "LAMBDA", + 16, + 1 + ], + [ + "ADD", + 17, + 0, + "1" + ], + [ + "ADD", + 1, + 16, + "-1" + ], + [ + "IDLE", + 16, + 17, + [ + 5, + 6 + ] + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 5, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 6, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "ADD", + 1, + 16, + "1" + ], + [ + "SCALE", + 16, + "-1" + ], + [ + "ADD", + 16, + 1, + "1" + ], + [ + "SWAP", + 0, + 17 + ], + [ + "SCALE", + 17, + "-1" + ], + [ + "ADD", + 17, + 0, + "1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 0, + 19 + ], + [ + "SWAP", + 1, + 18 + ], + [ + "SWAP", + 18, + 19 + ], + [ + "ADD", + 0, + 18, + "1" + ], + [ + "ADD", + 19, + 1, + "-1" + ], + [ + "LAMBDA", + 18, + -1 + ], + [ + "QUERY", + 18, + 19, + -1 + ], + [ + "LAMBDA", + 18, + 1 + ], + [ + "ADD", + 19, + 1, + "1" + ], + [ + "ADD", + 0, + 18, + "-1" + ], + [ + "IDLE", + 18, + 19, + [ + 7, + 8 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 7, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 8, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 18, + "1" + ], + [ + "SCALE", + 18, + "-1" + ], + [ + "ADD", + 18, + 0, + "1" + ], + [ + "SWAP", + 1, + 19 + ], + [ + "SCALE", + 19, + "-1" + ], + [ + "ADD", + 19, + 1, + "1" + ], + [ + "ADD", + 0, + 14, + "1" + ], + [ + "SCALE", + 14, + "-1" + ], + [ + "ADD", + 14, + 0, + "1" + ], + [ + "SWAP", + 1, + 15 + ], + [ + "SCALE", + 15, + "-1" + ], + [ + "ADD", + 15, + 1, + "1" + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "IDLE_ONE", + 2, + [ + 5, + 6, + 7, + 8 + ] + ], + [ + "ADD", + 0, + 2, + "1" + ], + [ + "ADD", + 2, + 1, + "-1" + ], + [ + "SWAP", + 2, + 6 + ], + [ + "SWAP", + 2, + 32 + ], + [ + "ADD", + 2, + 1, + "1" + ], + [ + "ADD", + 0, + 2, + "-1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 9, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "IDLE_ONE", + 2, + [ + 9 + ] + ], + [ + "IDLE_ONE", + 3, + [ + 5, + 6, + 7, + 8, + 9 + ] + ], + [ + "SWAP", + 32, + 7 + ], + [ + "SWAP", + 5, + 32 + ], + [ + "SWAP", + 4, + 7 + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "SWAP", + 3, + 32 + ], + [ + "ADD", + 1, + 2, + "-2" + ], + [ + "ADD", + 0, + 2, + "-1" + ], + [ + "SCALE", + 2, + "-1" + ], + [ + "SWAP", + 2, + 7 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 7, + 1, + "-1" + ], + [ + "SWAP", + 1, + 32 + ], + [ + "ADD", + 32, + 0, + "1" + ], + [ + "ADD", + 1, + 0, + "2" + ], + [ + "ADD", + 1, + 7, + "-1" + ], + [ + "ADD", + 1, + 32, + "-1" + ], + [ + "ADD", + 1, + 5, + "-2" + ], + [ + "ADD", + 0, + 5, + "-2" + ], + [ + "ADD", + 1, + 4, + "-2" + ], + [ + "ADD", + 0, + 4, + "-2" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "ADD", + 1, + 2, + "-1" + ], + [ + "SWAP", + 2, + 3 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 5, + 1, + "2" + ], + [ + "ADD", + 4, + 1, + "-2" + ], + [ + "ADD", + 3, + 1, + "-2" + ], + [ + "SWAP", + 1, + 2 + ], + [ + "ADD", + 5, + 0, + "6" + ], + [ + "ADD", + 4, + 0, + "-6" + ], + [ + "ADD", + 3, + 0, + "-6" + ], + [ + "ADD", + 2, + 0, + "2" + ], + [ + "SWAP", + 0, + 2 + ], + [ + "ADD", + 2, + 0, + "1" + ], + [ + "SWAP", + 0, + 2 + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "QUERY", + 0, + 1, + -1 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 5, + 7, + "-4" + ], + [ + "ADD", + 4, + 7, + "4" + ], + [ + "ADD", + 3, + 7, + "4" + ], + [ + "ADD", + 2, + 7, + "-1" + ], + [ + "ADD", + 1, + 7, + "-2" + ], + [ + "ADD", + 0, + 7, + "-2" + ], + [ + "ADD", + 5, + 32, + "-4" + ], + [ + "ADD", + 4, + 32, + "4" + ], + [ + "ADD", + 3, + 32, + "4" + ], + [ + "ADD", + 2, + 32, + "-1" + ], + [ + "ADD", + 1, + 32, + "-2" + ], + [ + "ADD", + 0, + 32, + "-2" + ], + [ + "ADD", + 4, + 5, + "1" + ], + [ + "SCALE", + 5, + "-1" + ], + [ + "ADD", + 3, + 4, + "-4" + ], + [ + "ADD", + 2, + 4, + "2" + ], + [ + "ADD", + 1, + 4, + "2" + ], + [ + "ADD", + 0, + 4, + "2" + ], + [ + "SCALE", + 4, + "-1" + ], + [ + "ADD", + 5, + 4, + "2" + ], + [ + "SWAP", + 4, + 5 + ], + [ + "ADD", + 5, + 4, + "1" + ], + [ + "SWAP", + 4, + 5 + ], + [ + "ADD", + 5, + 4, + "-2" + ], + [ + "ADD", + 1, + 2, + "-2" + ], + [ + "ADD", + 0, + 2, + "-2" + ], + [ + "ADD", + 5, + 2, + "-4" + ], + [ + "ADD", + 4, + 2, + "4" + ], + [ + "ADD", + 3, + 2, + "3" + ], + [ + "SWAP", + 2, + 3 + ], + [ + "ADD", + 3, + 2, + "1" + ], + [ + "SWAP", + 2, + 3 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 3 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 5, + 0, + "2" + ], + [ + "ADD", + 4, + 0, + "-2" + ], + [ + "ADD", + 3, + 0, + "-1" + ], + [ + "ADD", + 2, + 0, + "-2" + ], + [ + "ADD", + 1, + 7, + "-1" + ], + [ + "ADD", + 1, + 32, + "-1" + ], + [ + "ADD", + 1, + 5, + "1" + ], + [ + "ADD", + 1, + 4, + "1" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "ADD", + 1, + 2, + "-1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "ADD", + 3, + 1, + "3" + ], + [ + "SWAP", + 1, + 3 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 5, + 0, + "2" + ], + [ + "ADD", + 4, + 0, + "-2" + ], + [ + "ADD", + 3, + 0, + "-2" + ], + [ + "ADD", + 2, + 0, + "-2" + ], + [ + "ADD", + 1, + 0, + "-4" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "QUERY", + 0, + 1, + -1 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 3, + 7, + "-1" + ], + [ + "ADD", + 1, + 7, + "-3" + ], + [ + "ADD", + 3, + 32, + "-1" + ], + [ + "ADD", + 1, + 32, + "-3" + ], + [ + "ADD", + 3, + 5, + "1" + ], + [ + "ADD", + 1, + 5, + "3" + ], + [ + "ADD", + 3, + 4, + "1" + ], + [ + "ADD", + 1, + 4, + "3" + ], + [ + "ADD", + 1, + 3, + "-3" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "ADD", + 3, + 2, + "1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 3 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 5, + 0, + "2" + ], + [ + "ADD", + 4, + 0, + "-2" + ], + [ + "ADD", + 3, + 0, + "-2" + ], + [ + "ADD", + 2, + 0, + "-2" + ], + [ + "ADD", + 32, + 7, + "1" + ], + [ + "ADD", + 5, + 7, + "1" + ], + [ + "ADD", + 4, + 7, + "-1" + ], + [ + "ADD", + 3, + 7, + "-1" + ], + [ + "ADD", + 2, + 7, + "-1" + ], + [ + "ADD", + 1, + 7, + "-1" + ], + [ + "ADD", + 1, + 32, + "-1" + ], + [ + "SWAP", + 32, + 7 + ], + [ + "ADD", + 1, + 5, + "-2" + ], + [ + "ADD", + 0, + 5, + "-2" + ], + [ + "SWAP", + 5, + 32 + ], + [ + "ADD", + 1, + 4, + "-2" + ], + [ + "ADD", + 0, + 4, + "-2" + ], + [ + "SWAP", + 4, + 5 + ], + [ + "SWAP", + 3, + 4 + ], + [ + "ADD", + 1, + 2, + "-1" + ], + [ + "SWAP", + 2, + 3 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "SWAP", + 1, + 2 + ], + [ + "ADD", + 2, + 0, + "2" + ], + [ + "SWAP", + 0, + 2 + ], + [ + "ADD", + 2, + 0, + "1" + ], + [ + "SWAP", + 0, + 2 + ], + [ + "ADD", + 2, + 0, + "-1" + ], + [ + "SWAP", + 0, + 1 + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "QUERY", + 0, + 1, + -1 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 32, + 7, + "-1" + ], + [ + "ADD", + 5, + 7, + "1" + ], + [ + "ADD", + 4, + 7, + "1" + ], + [ + "ADD", + 3, + 7, + "1" + ], + [ + "ADD", + 2, + 7, + "1" + ], + [ + "ADD", + 1, + 7, + "-2" + ], + [ + "ADD", + 0, + 7, + "-1" + ], + [ + "ADD", + 5, + 32, + "1" + ], + [ + "ADD", + 4, + 32, + "1" + ], + [ + "ADD", + 3, + 32, + "1" + ], + [ + "ADD", + 0, + 32, + "-1" + ], + [ + "SCALE", + 32, + "-1" + ], + [ + "ADD", + 7, + 32, + "-1" + ], + [ + "ADD", + 4, + 5, + "-1" + ], + [ + "ADD", + 3, + 5, + "-1" + ], + [ + "ADD", + 1, + 5, + "2" + ], + [ + "ADD", + 0, + 5, + "1" + ], + [ + "ADD", + 7, + 5, + "-1" + ], + [ + "ADD", + 32, + 5, + "1" + ], + [ + "ADD", + 3, + 4, + "-1" + ], + [ + "ADD", + 0, + 4, + "1" + ], + [ + "SCALE", + 4, + "-1" + ], + [ + "ADD", + 7, + 4, + "1" + ], + [ + "ADD", + 32, + 4, + "-1" + ], + [ + "ADD", + 5, + 4, + "-1" + ], + [ + "ADD", + 0, + 3, + "1" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "ADD", + 7, + 3, + "1" + ], + [ + "ADD", + 32, + 3, + "-1" + ], + [ + "ADD", + 5, + 3, + "-1" + ], + [ + "ADD", + 4, + 3, + "1" + ], + [ + "ADD", + 1, + 2, + "2" + ], + [ + "ADD", + 0, + 2, + "1" + ], + [ + "SCALE", + 2, + "-1" + ], + [ + "ADD", + 7, + 2, + "1" + ], + [ + "ADD", + 32, + 2, + "-1" + ], + [ + "ADD", + 5, + 2, + "-1" + ], + [ + "ADD", + 4, + 2, + "1" + ], + [ + "ADD", + 3, + 2, + "1" + ], + [ + "ADD", + 0, + 1, + "1" + ], + [ + "ADD", + 7, + 1, + "-1" + ], + [ + "ADD", + 32, + 1, + "1" + ], + [ + "ADD", + 5, + 1, + "1" + ], + [ + "ADD", + 4, + 1, + "-1" + ], + [ + "ADD", + 3, + 1, + "-1" + ], + [ + "ADD", + 2, + 1, + "-1" + ], + [ + "ADD", + 7, + 0, + "1" + ], + [ + "ADD", + 32, + 0, + "-1" + ], + [ + "ADD", + 5, + 0, + "-1" + ], + [ + "ADD", + 4, + 0, + "1" + ], + [ + "ADD", + 3, + 0, + "1" + ], + [ + "ADD", + 2, + 0, + "1" + ], + [ + "SWAP", + 0, + 1 + ], + [ + "ADD", + 4, + 5, + "1" + ], + [ + "ADD", + 2, + 5, + "2" + ], + [ + "ADD", + 0, + 5, + "-1" + ], + [ + "ADD", + 2, + 4, + "-4" + ], + [ + "ADD", + 0, + 4, + "2" + ], + [ + "SCALE", + 4, + "-1" + ], + [ + "ADD", + 5, + 4, + "1" + ], + [ + "SWAP", + 3, + 5 + ], + [ + "SCALE", + 2, + "-1" + ], + [ + "SWAP", + 2, + 3 + ], + [ + "SWAP", + 1, + 4 + ], + [ + "ADD", + 3, + 0, + "-2" + ], + [ + "ADD", + 2, + 0, + "1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 10, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "IDLE_ONE", + 2, + [ + 10 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 21 + ], + [ + "SWAP", + 0, + 20 + ], + [ + "SWAP", + 20, + 21 + ], + [ + "ADD", + 1, + 20, + "1" + ], + [ + "ADD", + 21, + 0, + "-1" + ], + [ + "LAMBDA", + 20, + -1 + ], + [ + "QUERY", + 20, + 21, + -1 + ], + [ + "LAMBDA", + 20, + 1 + ], + [ + "ADD", + 21, + 0, + "1" + ], + [ + "ADD", + 1, + 20, + "-1" + ], + [ + "IDLE", + 20, + 21, + [ + 11, + 12, + 13, + 14 + ] + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "SWAP", + 0, + 23 + ], + [ + "SWAP", + 1, + 22 + ], + [ + "SWAP", + 22, + 23 + ], + [ + "ADD", + 0, + 22, + "1" + ], + [ + "ADD", + 23, + 1, + "-1" + ], + [ + "LAMBDA", + 22, + -1 + ], + [ + "QUERY", + 22, + 23, + -1 + ], + [ + "LAMBDA", + 22, + 1 + ], + [ + "ADD", + 23, + 1, + "1" + ], + [ + "ADD", + 0, + 22, + "-1" + ], + [ + "IDLE", + 22, + 23, + [ + 11, + 12 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 11, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 12, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 22, + "1" + ], + [ + "SCALE", + 22, + "-1" + ], + [ + "ADD", + 22, + 0, + "1" + ], + [ + "SWAP", + 1, + 23 + ], + [ + "SCALE", + 23, + "-1" + ], + [ + "ADD", + 23, + 1, + "1" + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "SWAP", + 1, + 25 + ], + [ + "SWAP", + 0, + 24 + ], + [ + "SWAP", + 24, + 25 + ], + [ + "ADD", + 1, + 24, + "1" + ], + [ + "ADD", + 25, + 0, + "-1" + ], + [ + "LAMBDA", + 24, + -1 + ], + [ + "QUERY", + 24, + 25, + -1 + ], + [ + "LAMBDA", + 24, + 1 + ], + [ + "ADD", + 25, + 0, + "1" + ], + [ + "ADD", + 1, + 24, + "-1" + ], + [ + "IDLE", + 24, + 25, + [ + 13, + 14 + ] + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 13, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 14, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "ADD", + 1, + 24, + "1" + ], + [ + "SCALE", + 24, + "-1" + ], + [ + "ADD", + 24, + 1, + "1" + ], + [ + "SWAP", + 0, + 25 + ], + [ + "SCALE", + 25, + "-1" + ], + [ + "ADD", + 25, + 0, + "1" + ], + [ + "ADD", + 1, + 20, + "1" + ], + [ + "SCALE", + 20, + "-1" + ], + [ + "ADD", + 20, + 1, + "1" + ], + [ + "SWAP", + 0, + 21 + ], + [ + "SCALE", + 21, + "-1" + ], + [ + "ADD", + 21, + 0, + "1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "IDLE_ONE", + 2, + [ + 11, + 12, + 13, + 14 + ] + ], + [ + "IDLE_ONE", + 3, + [ + 10, + 11, + 12, + 13, + 14 + ] + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "SWAP", + 3, + 5 + ], + [ + "ADD", + 0, + 2, + "-1" + ], + [ + "SWAP", + 2, + 5 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 5, + 1, + "-1" + ], + [ + "SWAP", + 1, + 4 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 4, + 0, + "-1" + ], + [ + "ADD", + 2, + 0, + "-2" + ], + [ + "SWAP", + 1, + 2 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 1, + 0, + "-1" + ], + [ + "SWAP", + 0, + 27 + ], + [ + "SWAP", + 1, + 26 + ], + [ + "SWAP", + 26, + 27 + ], + [ + "ADD", + 0, + 26, + "1" + ], + [ + "ADD", + 27, + 1, + "-1" + ], + [ + "LAMBDA", + 26, + -1 + ], + [ + "QUERY", + 26, + 27, + -1 + ], + [ + "LAMBDA", + 26, + 1 + ], + [ + "ADD", + 27, + 1, + "1" + ], + [ + "ADD", + 0, + 26, + "-1" + ], + [ + "IDLE", + 26, + 27, + [ + 15, + 16, + 17, + 18 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 29 + ], + [ + "SWAP", + 0, + 28 + ], + [ + "SWAP", + 28, + 29 + ], + [ + "ADD", + 1, + 28, + "1" + ], + [ + "ADD", + 29, + 0, + "-1" + ], + [ + "LAMBDA", + 28, + -1 + ], + [ + "QUERY", + 28, + 29, + -1 + ], + [ + "LAMBDA", + 28, + 1 + ], + [ + "ADD", + 29, + 0, + "1" + ], + [ + "ADD", + 1, + 28, + "-1" + ], + [ + "IDLE", + 28, + 29, + [ + 15, + 16 + ] + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 15, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 16, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "ADD", + 1, + 28, + "1" + ], + [ + "SCALE", + 28, + "-1" + ], + [ + "ADD", + 28, + 1, + "1" + ], + [ + "SWAP", + 0, + 29 + ], + [ + "SCALE", + 29, + "-1" + ], + [ + "ADD", + 29, + 0, + "1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 0, + 31 + ], + [ + "SWAP", + 1, + 30 + ], + [ + "SWAP", + 30, + 31 + ], + [ + "ADD", + 0, + 30, + "1" + ], + [ + "ADD", + 31, + 1, + "-1" + ], + [ + "LAMBDA", + 30, + -1 + ], + [ + "QUERY", + 30, + 31, + -1 + ], + [ + "LAMBDA", + 30, + 1 + ], + [ + "ADD", + 31, + 1, + "1" + ], + [ + "ADD", + 0, + 30, + "-1" + ], + [ + "IDLE", + 30, + 31, + [ + 17, + 18 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 17, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 18, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 30, + "1" + ], + [ + "SCALE", + 30, + "-1" + ], + [ + "ADD", + 30, + 0, + "1" + ], + [ + "SWAP", + 1, + 31 + ], + [ + "SCALE", + 31, + "-1" + ], + [ + "ADD", + 31, + 1, + "1" + ], + [ + "ADD", + 0, + 26, + "1" + ], + [ + "SCALE", + 26, + "-1" + ], + [ + "ADD", + 26, + 0, + "1" + ], + [ + "SWAP", + 1, + 27 + ], + [ + "SCALE", + 27, + "-1" + ], + [ + "ADD", + 27, + 1, + "1" + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "SWAP", + 1, + 2 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 2, + 0, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LAMBDA", + 2, + -1 + ], + [ + "LAMBDA", + 3, + -1 + ], + [ + "LAMBDA", + 4, + -1 + ], + [ + "LAMBDA", + 5, + -1 + ], + [ + "LAMBDA", + 32, + -1 + ], + [ + "LAMBDA", + 7, + -1 + ], + [ + "LAMBDA", + 8, + -1 + ], + [ + "LAMBDA", + 9, + -1 + ], + [ + "LAMBDA", + 10, + -1 + ], + [ + "LAMBDA", + 11, + -1 + ], + [ + "LAMBDA", + 12, + -1 + ], + [ + "LAMBDA", + 13, + -1 + ], + [ + "LAMBDA", + 14, + -1 + ], + [ + "LAMBDA", + 15, + -1 + ], + [ + "LAMBDA", + 16, + -1 + ], + [ + "LAMBDA", + 17, + -1 + ], + [ + "LAMBDA", + 18, + -1 + ], + [ + "LAMBDA", + 19, + -1 + ], + [ + "LAMBDA", + 20, + -1 + ], + [ + "LAMBDA", + 21, + -1 + ], + [ + "LAMBDA", + 22, + -1 + ], + [ + "LAMBDA", + 23, + -1 + ], + [ + "LAMBDA", + 24, + -1 + ], + [ + "LAMBDA", + 25, + -1 + ], + [ + "LAMBDA", + 26, + -1 + ], + [ + "LAMBDA", + 27, + -1 + ], + [ + "LAMBDA", + 28, + -1 + ], + [ + "LAMBDA", + 29, + -1 + ], + [ + "LAMBDA", + 30, + -1 + ], + [ + "LAMBDA", + 31, + -1 + ], + [ + "ADD", + 7, + 32, + "1" + ], + [ + "SWAP", + 32, + 7 + ], + [ + "ADD", + 7, + 32, + "-2" + ], + [ + "SCALE", + 32, + "-1" + ], + [ + "ADD", + 32, + 7, + "-1" + ] + ], + "diagonal": [ + [ + -1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + [ + -1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ] + ], + "nodes": [ + { + "roles": [ + 8, + 9 + ], + "stages": [ + 1, + 2, + 3, + 4 + ] + }, + { + "roles": [ + 10, + 11 + ], + "stages": [ + 1, + 2 + ] + }, + { + "roles": [ + 12, + 13 + ], + "stages": [ + 3, + 4 + ] + }, + { + "roles": [ + 14, + 15 + ], + "stages": [ + 5, + 6, + 7, + 8 + ] + }, + { + "roles": [ + 16, + 17 + ], + "stages": [ + 5, + 6 + ] + }, + { + "roles": [ + 18, + 19 + ], + "stages": [ + 7, + 8 + ] + }, + { + "roles": [ + 20, + 21 + ], + "stages": [ + 11, + 12, + 13, + 14 + ] + }, + { + "roles": [ + 22, + 23 + ], + "stages": [ + 11, + 12 + ] + }, + { + "roles": [ + 24, + 25 + ], + "stages": [ + 13, + 14 + ] + }, + { + "roles": [ + 26, + 27 + ], + "stages": [ + 15, + 16, + 17, + 18 + ] + }, + { + "roles": [ + 28, + 29 + ], + "stages": [ + 15, + 16 + ] + }, + { + "roles": [ + 30, + 31 + ], + "stages": [ + 17, + 18 + ] + } + ] +} diff --git a/research/p104-second-fragment-phase-audit/inputs/CONTROLLER-UNRETIRED.json b/research/p104-second-fragment-phase-audit/inputs/CONTROLLER-UNRETIRED.json new file mode 100644 index 0000000000..30d8f94afc --- /dev/null +++ b/research/p104-second-fragment-phase-audit/inputs/CONTROLLER-UNRETIRED.json @@ -0,0 +1,4098 @@ +{ + "schema": "root8-common-idle-fusion/1", + "roles": 32, + "stages": 18, + "ambient_rank": 153, + "events": [ + [ + "SCALE", + 1, + "-1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "SWAP", + 0, + 9 + ], + [ + "SWAP", + 1, + 8 + ], + [ + "SWAP", + 8, + 9 + ], + [ + "ADD", + 0, + 8, + "1" + ], + [ + "ADD", + 9, + 1, + "-1" + ], + [ + "LAMBDA", + 8, + -1 + ], + [ + "QUERY", + 8, + 9, + -1 + ], + [ + "LAMBDA", + 8, + 1 + ], + [ + "ADD", + 9, + 1, + "1" + ], + [ + "ADD", + 0, + 8, + "-1" + ], + [ + "IDLE", + 8, + 9, + [ + 1, + 2, + 3, + 4 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 11 + ], + [ + "SWAP", + 0, + 10 + ], + [ + "SWAP", + 10, + 11 + ], + [ + "ADD", + 1, + 10, + "1" + ], + [ + "ADD", + 11, + 0, + "-1" + ], + [ + "LAMBDA", + 10, + -1 + ], + [ + "QUERY", + 10, + 11, + -1 + ], + [ + "LAMBDA", + 10, + 1 + ], + [ + "ADD", + 11, + 0, + "1" + ], + [ + "ADD", + 1, + 10, + "-1" + ], + [ + "IDLE", + 10, + 11, + [ + 1, + 2 + ] + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 1, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 2, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "ADD", + 1, + 10, + "1" + ], + [ + "SCALE", + 10, + "-1" + ], + [ + "ADD", + 10, + 1, + "1" + ], + [ + "SWAP", + 0, + 11 + ], + [ + "SCALE", + 11, + "-1" + ], + [ + "ADD", + 11, + 0, + "1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 0, + 13 + ], + [ + "SWAP", + 1, + 12 + ], + [ + "SWAP", + 12, + 13 + ], + [ + "ADD", + 0, + 12, + "1" + ], + [ + "ADD", + 13, + 1, + "-1" + ], + [ + "LAMBDA", + 12, + -1 + ], + [ + "QUERY", + 12, + 13, + -1 + ], + [ + "LAMBDA", + 12, + 1 + ], + [ + "ADD", + 13, + 1, + "1" + ], + [ + "ADD", + 0, + 12, + "-1" + ], + [ + "IDLE", + 12, + 13, + [ + 3, + 4 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 3, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 4, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 12, + "1" + ], + [ + "SCALE", + 12, + "-1" + ], + [ + "ADD", + 12, + 0, + "1" + ], + [ + "SWAP", + 1, + 13 + ], + [ + "SCALE", + 13, + "-1" + ], + [ + "ADD", + 13, + 1, + "1" + ], + [ + "ADD", + 0, + 8, + "1" + ], + [ + "SCALE", + 8, + "-1" + ], + [ + "ADD", + 8, + 0, + "1" + ], + [ + "SWAP", + 1, + 9 + ], + [ + "SCALE", + 9, + "-1" + ], + [ + "ADD", + 9, + 1, + "1" + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "ADD", + 1, + 7, + "-2" + ], + [ + "ADD", + 0, + 7, + "-1" + ], + [ + "SCALE", + 7, + "-1" + ], + [ + "SCALE", + 6, + "-1" + ], + [ + "ADD", + 7, + 6, + "1" + ], + [ + "SWAP", + 5, + 7 + ], + [ + "SWAP", + 4, + 6 + ], + [ + "SWAP", + 3, + 5 + ], + [ + "SWAP", + 2, + 4 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 3 + ], + [ + "ADD", + 3, + 0, + "2" + ], + [ + "ADD", + 2, + 0, + "1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "SWAP", + 0, + 15 + ], + [ + "SWAP", + 1, + 14 + ], + [ + "SWAP", + 14, + 15 + ], + [ + "ADD", + 0, + 14, + "1" + ], + [ + "ADD", + 15, + 1, + "-1" + ], + [ + "LAMBDA", + 14, + -1 + ], + [ + "QUERY", + 14, + 15, + -1 + ], + [ + "LAMBDA", + 14, + 1 + ], + [ + "ADD", + 15, + 1, + "1" + ], + [ + "ADD", + 0, + 14, + "-1" + ], + [ + "IDLE", + 14, + 15, + [ + 5, + 6, + 7, + 8 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 17 + ], + [ + "SWAP", + 0, + 16 + ], + [ + "SWAP", + 16, + 17 + ], + [ + "ADD", + 1, + 16, + "1" + ], + [ + "ADD", + 17, + 0, + "-1" + ], + [ + "LAMBDA", + 16, + -1 + ], + [ + "QUERY", + 16, + 17, + -1 + ], + [ + "LAMBDA", + 16, + 1 + ], + [ + "ADD", + 17, + 0, + "1" + ], + [ + "ADD", + 1, + 16, + "-1" + ], + [ + "IDLE", + 16, + 17, + [ + 5, + 6 + ] + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 5, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 6, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "ADD", + 1, + 16, + "1" + ], + [ + "SCALE", + 16, + "-1" + ], + [ + "ADD", + 16, + 1, + "1" + ], + [ + "SWAP", + 0, + 17 + ], + [ + "SCALE", + 17, + "-1" + ], + [ + "ADD", + 17, + 0, + "1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 0, + 19 + ], + [ + "SWAP", + 1, + 18 + ], + [ + "SWAP", + 18, + 19 + ], + [ + "ADD", + 0, + 18, + "1" + ], + [ + "ADD", + 19, + 1, + "-1" + ], + [ + "LAMBDA", + 18, + -1 + ], + [ + "QUERY", + 18, + 19, + -1 + ], + [ + "LAMBDA", + 18, + 1 + ], + [ + "ADD", + 19, + 1, + "1" + ], + [ + "ADD", + 0, + 18, + "-1" + ], + [ + "IDLE", + 18, + 19, + [ + 7, + 8 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 7, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 8, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 18, + "1" + ], + [ + "SCALE", + 18, + "-1" + ], + [ + "ADD", + 18, + 0, + "1" + ], + [ + "SWAP", + 1, + 19 + ], + [ + "SCALE", + 19, + "-1" + ], + [ + "ADD", + 19, + 1, + "1" + ], + [ + "ADD", + 0, + 14, + "1" + ], + [ + "SCALE", + 14, + "-1" + ], + [ + "ADD", + 14, + 0, + "1" + ], + [ + "SWAP", + 1, + 15 + ], + [ + "SCALE", + 15, + "-1" + ], + [ + "ADD", + 15, + 1, + "1" + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "IDLE_ONE", + 2, + [ + 5, + 6, + 7, + 8 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 9, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "IDLE_ONE", + 2, + [ + 9 + ] + ], + [ + "IDLE_ONE", + 3, + [ + 5, + 6, + 7, + 8, + 9 + ] + ], + [ + "SWAP", + 6, + 7 + ], + [ + "SWAP", + 5, + 6 + ], + [ + "SWAP", + 4, + 7 + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "SWAP", + 3, + 6 + ], + [ + "ADD", + 1, + 2, + "-2" + ], + [ + "ADD", + 0, + 2, + "-1" + ], + [ + "SCALE", + 2, + "-1" + ], + [ + "SWAP", + 2, + 7 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 7, + 1, + "-1" + ], + [ + "SWAP", + 1, + 6 + ], + [ + "ADD", + 6, + 0, + "1" + ], + [ + "ADD", + 1, + 0, + "2" + ], + [ + "ADD", + 1, + 7, + "-1" + ], + [ + "ADD", + 1, + 6, + "-1" + ], + [ + "ADD", + 1, + 5, + "-2" + ], + [ + "ADD", + 0, + 5, + "-2" + ], + [ + "ADD", + 1, + 4, + "-2" + ], + [ + "ADD", + 0, + 4, + "-2" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "ADD", + 1, + 2, + "-1" + ], + [ + "SWAP", + 2, + 3 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 5, + 1, + "2" + ], + [ + "ADD", + 4, + 1, + "-2" + ], + [ + "ADD", + 3, + 1, + "-2" + ], + [ + "SWAP", + 1, + 2 + ], + [ + "ADD", + 5, + 0, + "6" + ], + [ + "ADD", + 4, + 0, + "-6" + ], + [ + "ADD", + 3, + 0, + "-6" + ], + [ + "ADD", + 2, + 0, + "2" + ], + [ + "SWAP", + 0, + 2 + ], + [ + "ADD", + 2, + 0, + "1" + ], + [ + "SWAP", + 0, + 2 + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "QUERY", + 0, + 1, + -1 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 5, + 7, + "-4" + ], + [ + "ADD", + 4, + 7, + "4" + ], + [ + "ADD", + 3, + 7, + "4" + ], + [ + "ADD", + 2, + 7, + "-1" + ], + [ + "ADD", + 1, + 7, + "-2" + ], + [ + "ADD", + 0, + 7, + "-2" + ], + [ + "ADD", + 5, + 6, + "-4" + ], + [ + "ADD", + 4, + 6, + "4" + ], + [ + "ADD", + 3, + 6, + "4" + ], + [ + "ADD", + 2, + 6, + "-1" + ], + [ + "ADD", + 1, + 6, + "-2" + ], + [ + "ADD", + 0, + 6, + "-2" + ], + [ + "ADD", + 4, + 5, + "1" + ], + [ + "SCALE", + 5, + "-1" + ], + [ + "ADD", + 3, + 4, + "-4" + ], + [ + "ADD", + 2, + 4, + "2" + ], + [ + "ADD", + 1, + 4, + "2" + ], + [ + "ADD", + 0, + 4, + "2" + ], + [ + "SCALE", + 4, + "-1" + ], + [ + "ADD", + 5, + 4, + "2" + ], + [ + "SWAP", + 4, + 5 + ], + [ + "ADD", + 5, + 4, + "1" + ], + [ + "SWAP", + 4, + 5 + ], + [ + "ADD", + 5, + 4, + "-2" + ], + [ + "ADD", + 1, + 2, + "-2" + ], + [ + "ADD", + 0, + 2, + "-2" + ], + [ + "ADD", + 5, + 2, + "-4" + ], + [ + "ADD", + 4, + 2, + "4" + ], + [ + "ADD", + 3, + 2, + "3" + ], + [ + "SWAP", + 2, + 3 + ], + [ + "ADD", + 3, + 2, + "1" + ], + [ + "SWAP", + 2, + 3 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 3 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 5, + 0, + "2" + ], + [ + "ADD", + 4, + 0, + "-2" + ], + [ + "ADD", + 3, + 0, + "-1" + ], + [ + "ADD", + 2, + 0, + "-2" + ], + [ + "ADD", + 1, + 7, + "-1" + ], + [ + "ADD", + 1, + 6, + "-1" + ], + [ + "ADD", + 1, + 5, + "1" + ], + [ + "ADD", + 1, + 4, + "1" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "ADD", + 1, + 2, + "-1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "ADD", + 3, + 1, + "3" + ], + [ + "SWAP", + 1, + 3 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 5, + 0, + "2" + ], + [ + "ADD", + 4, + 0, + "-2" + ], + [ + "ADD", + 3, + 0, + "-2" + ], + [ + "ADD", + 2, + 0, + "-2" + ], + [ + "ADD", + 1, + 0, + "-4" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "QUERY", + 0, + 1, + -1 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 3, + 7, + "-1" + ], + [ + "ADD", + 1, + 7, + "-3" + ], + [ + "ADD", + 3, + 6, + "-1" + ], + [ + "ADD", + 1, + 6, + "-3" + ], + [ + "ADD", + 3, + 5, + "1" + ], + [ + "ADD", + 1, + 5, + "3" + ], + [ + "ADD", + 3, + 4, + "1" + ], + [ + "ADD", + 1, + 4, + "3" + ], + [ + "ADD", + 1, + 3, + "-3" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "ADD", + 3, + 2, + "1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 3 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 5, + 0, + "2" + ], + [ + "ADD", + 4, + 0, + "-2" + ], + [ + "ADD", + 3, + 0, + "-2" + ], + [ + "ADD", + 2, + 0, + "-2" + ], + [ + "ADD", + 6, + 7, + "1" + ], + [ + "ADD", + 5, + 7, + "1" + ], + [ + "ADD", + 4, + 7, + "-1" + ], + [ + "ADD", + 3, + 7, + "-1" + ], + [ + "ADD", + 2, + 7, + "-1" + ], + [ + "ADD", + 1, + 7, + "-1" + ], + [ + "ADD", + 1, + 6, + "-1" + ], + [ + "SWAP", + 6, + 7 + ], + [ + "ADD", + 1, + 5, + "-2" + ], + [ + "ADD", + 0, + 5, + "-2" + ], + [ + "SWAP", + 5, + 6 + ], + [ + "ADD", + 1, + 4, + "-2" + ], + [ + "ADD", + 0, + 4, + "-2" + ], + [ + "SWAP", + 4, + 5 + ], + [ + "SWAP", + 3, + 4 + ], + [ + "ADD", + 1, + 2, + "-1" + ], + [ + "SWAP", + 2, + 3 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "SWAP", + 1, + 2 + ], + [ + "ADD", + 2, + 0, + "2" + ], + [ + "SWAP", + 0, + 2 + ], + [ + "ADD", + 2, + 0, + "1" + ], + [ + "SWAP", + 0, + 2 + ], + [ + "ADD", + 2, + 0, + "-1" + ], + [ + "SWAP", + 0, + 1 + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "QUERY", + 0, + 1, + -1 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 6, + 7, + "-1" + ], + [ + "ADD", + 5, + 7, + "1" + ], + [ + "ADD", + 4, + 7, + "1" + ], + [ + "ADD", + 3, + 7, + "1" + ], + [ + "ADD", + 2, + 7, + "1" + ], + [ + "ADD", + 1, + 7, + "-2" + ], + [ + "ADD", + 0, + 7, + "-1" + ], + [ + "ADD", + 5, + 6, + "1" + ], + [ + "ADD", + 4, + 6, + "1" + ], + [ + "ADD", + 3, + 6, + "1" + ], + [ + "ADD", + 0, + 6, + "-1" + ], + [ + "SCALE", + 6, + "-1" + ], + [ + "ADD", + 7, + 6, + "-1" + ], + [ + "ADD", + 4, + 5, + "-1" + ], + [ + "ADD", + 3, + 5, + "-1" + ], + [ + "ADD", + 1, + 5, + "2" + ], + [ + "ADD", + 0, + 5, + "1" + ], + [ + "ADD", + 7, + 5, + "-1" + ], + [ + "ADD", + 6, + 5, + "1" + ], + [ + "ADD", + 3, + 4, + "-1" + ], + [ + "ADD", + 0, + 4, + "1" + ], + [ + "SCALE", + 4, + "-1" + ], + [ + "ADD", + 7, + 4, + "1" + ], + [ + "ADD", + 6, + 4, + "-1" + ], + [ + "ADD", + 5, + 4, + "-1" + ], + [ + "ADD", + 0, + 3, + "1" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "ADD", + 7, + 3, + "1" + ], + [ + "ADD", + 6, + 3, + "-1" + ], + [ + "ADD", + 5, + 3, + "-1" + ], + [ + "ADD", + 4, + 3, + "1" + ], + [ + "ADD", + 1, + 2, + "2" + ], + [ + "ADD", + 0, + 2, + "1" + ], + [ + "SCALE", + 2, + "-1" + ], + [ + "ADD", + 7, + 2, + "1" + ], + [ + "ADD", + 6, + 2, + "-1" + ], + [ + "ADD", + 5, + 2, + "-1" + ], + [ + "ADD", + 4, + 2, + "1" + ], + [ + "ADD", + 3, + 2, + "1" + ], + [ + "ADD", + 0, + 1, + "1" + ], + [ + "ADD", + 7, + 1, + "-1" + ], + [ + "ADD", + 6, + 1, + "1" + ], + [ + "ADD", + 5, + 1, + "1" + ], + [ + "ADD", + 4, + 1, + "-1" + ], + [ + "ADD", + 3, + 1, + "-1" + ], + [ + "ADD", + 2, + 1, + "-1" + ], + [ + "ADD", + 7, + 0, + "1" + ], + [ + "ADD", + 6, + 0, + "-1" + ], + [ + "ADD", + 5, + 0, + "-1" + ], + [ + "ADD", + 4, + 0, + "1" + ], + [ + "ADD", + 3, + 0, + "1" + ], + [ + "ADD", + 2, + 0, + "1" + ], + [ + "SWAP", + 0, + 1 + ], + [ + "ADD", + 4, + 5, + "1" + ], + [ + "ADD", + 2, + 5, + "2" + ], + [ + "ADD", + 0, + 5, + "-1" + ], + [ + "ADD", + 2, + 4, + "-4" + ], + [ + "ADD", + 0, + 4, + "2" + ], + [ + "SCALE", + 4, + "-1" + ], + [ + "ADD", + 5, + 4, + "1" + ], + [ + "SWAP", + 3, + 5 + ], + [ + "SCALE", + 2, + "-1" + ], + [ + "SWAP", + 2, + 3 + ], + [ + "SWAP", + 1, + 4 + ], + [ + "ADD", + 3, + 0, + "-2" + ], + [ + "ADD", + 2, + 0, + "1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 10, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "IDLE_ONE", + 2, + [ + 10 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 21 + ], + [ + "SWAP", + 0, + 20 + ], + [ + "SWAP", + 20, + 21 + ], + [ + "ADD", + 1, + 20, + "1" + ], + [ + "ADD", + 21, + 0, + "-1" + ], + [ + "LAMBDA", + 20, + -1 + ], + [ + "QUERY", + 20, + 21, + -1 + ], + [ + "LAMBDA", + 20, + 1 + ], + [ + "ADD", + 21, + 0, + "1" + ], + [ + "ADD", + 1, + 20, + "-1" + ], + [ + "IDLE", + 20, + 21, + [ + 11, + 12, + 13, + 14 + ] + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "SWAP", + 0, + 23 + ], + [ + "SWAP", + 1, + 22 + ], + [ + "SWAP", + 22, + 23 + ], + [ + "ADD", + 0, + 22, + "1" + ], + [ + "ADD", + 23, + 1, + "-1" + ], + [ + "LAMBDA", + 22, + -1 + ], + [ + "QUERY", + 22, + 23, + -1 + ], + [ + "LAMBDA", + 22, + 1 + ], + [ + "ADD", + 23, + 1, + "1" + ], + [ + "ADD", + 0, + 22, + "-1" + ], + [ + "IDLE", + 22, + 23, + [ + 11, + 12 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 11, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 12, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 22, + "1" + ], + [ + "SCALE", + 22, + "-1" + ], + [ + "ADD", + 22, + 0, + "1" + ], + [ + "SWAP", + 1, + 23 + ], + [ + "SCALE", + 23, + "-1" + ], + [ + "ADD", + 23, + 1, + "1" + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "SWAP", + 1, + 25 + ], + [ + "SWAP", + 0, + 24 + ], + [ + "SWAP", + 24, + 25 + ], + [ + "ADD", + 1, + 24, + "1" + ], + [ + "ADD", + 25, + 0, + "-1" + ], + [ + "LAMBDA", + 24, + -1 + ], + [ + "QUERY", + 24, + 25, + -1 + ], + [ + "LAMBDA", + 24, + 1 + ], + [ + "ADD", + 25, + 0, + "1" + ], + [ + "ADD", + 1, + 24, + "-1" + ], + [ + "IDLE", + 24, + 25, + [ + 13, + 14 + ] + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 13, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 14, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "ADD", + 1, + 24, + "1" + ], + [ + "SCALE", + 24, + "-1" + ], + [ + "ADD", + 24, + 1, + "1" + ], + [ + "SWAP", + 0, + 25 + ], + [ + "SCALE", + 25, + "-1" + ], + [ + "ADD", + 25, + 0, + "1" + ], + [ + "ADD", + 1, + 20, + "1" + ], + [ + "SCALE", + 20, + "-1" + ], + [ + "ADD", + 20, + 1, + "1" + ], + [ + "SWAP", + 0, + 21 + ], + [ + "SCALE", + 21, + "-1" + ], + [ + "ADD", + 21, + 0, + "1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "IDLE_ONE", + 2, + [ + 11, + 12, + 13, + 14 + ] + ], + [ + "IDLE_ONE", + 3, + [ + 10, + 11, + 12, + 13, + 14 + ] + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "SWAP", + 3, + 5 + ], + [ + "ADD", + 0, + 2, + "-1" + ], + [ + "SWAP", + 2, + 5 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 5, + 1, + "-1" + ], + [ + "SWAP", + 1, + 4 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 4, + 0, + "-1" + ], + [ + "ADD", + 2, + 0, + "-2" + ], + [ + "SWAP", + 1, + 2 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 1, + 0, + "-1" + ], + [ + "SWAP", + 0, + 27 + ], + [ + "SWAP", + 1, + 26 + ], + [ + "SWAP", + 26, + 27 + ], + [ + "ADD", + 0, + 26, + "1" + ], + [ + "ADD", + 27, + 1, + "-1" + ], + [ + "LAMBDA", + 26, + -1 + ], + [ + "QUERY", + 26, + 27, + -1 + ], + [ + "LAMBDA", + 26, + 1 + ], + [ + "ADD", + 27, + 1, + "1" + ], + [ + "ADD", + 0, + 26, + "-1" + ], + [ + "IDLE", + 26, + 27, + [ + 15, + 16, + 17, + 18 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 29 + ], + [ + "SWAP", + 0, + 28 + ], + [ + "SWAP", + 28, + 29 + ], + [ + "ADD", + 1, + 28, + "1" + ], + [ + "ADD", + 29, + 0, + "-1" + ], + [ + "LAMBDA", + 28, + -1 + ], + [ + "QUERY", + 28, + 29, + -1 + ], + [ + "LAMBDA", + 28, + 1 + ], + [ + "ADD", + 29, + 0, + "1" + ], + [ + "ADD", + 1, + 28, + "-1" + ], + [ + "IDLE", + 28, + 29, + [ + 15, + 16 + ] + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 15, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 16, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "ADD", + 1, + 28, + "1" + ], + [ + "SCALE", + 28, + "-1" + ], + [ + "ADD", + 28, + 1, + "1" + ], + [ + "SWAP", + 0, + 29 + ], + [ + "SCALE", + 29, + "-1" + ], + [ + "ADD", + 29, + 0, + "1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 0, + 31 + ], + [ + "SWAP", + 1, + 30 + ], + [ + "SWAP", + 30, + 31 + ], + [ + "ADD", + 0, + 30, + "1" + ], + [ + "ADD", + 31, + 1, + "-1" + ], + [ + "LAMBDA", + 30, + -1 + ], + [ + "QUERY", + 30, + 31, + -1 + ], + [ + "LAMBDA", + 30, + 1 + ], + [ + "ADD", + 31, + 1, + "1" + ], + [ + "ADD", + 0, + 30, + "-1" + ], + [ + "IDLE", + 30, + 31, + [ + 17, + 18 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 17, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 18, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 30, + "1" + ], + [ + "SCALE", + 30, + "-1" + ], + [ + "ADD", + 30, + 0, + "1" + ], + [ + "SWAP", + 1, + 31 + ], + [ + "SCALE", + 31, + "-1" + ], + [ + "ADD", + 31, + 1, + "1" + ], + [ + "ADD", + 0, + 26, + "1" + ], + [ + "SCALE", + 26, + "-1" + ], + [ + "ADD", + 26, + 0, + "1" + ], + [ + "SWAP", + 1, + 27 + ], + [ + "SCALE", + 27, + "-1" + ], + [ + "ADD", + 27, + 1, + "1" + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "SWAP", + 1, + 2 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 2, + 0, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LAMBDA", + 2, + -1 + ], + [ + "LAMBDA", + 3, + -1 + ], + [ + "LAMBDA", + 4, + -1 + ], + [ + "LAMBDA", + 5, + -1 + ], + [ + "LAMBDA", + 6, + -1 + ], + [ + "LAMBDA", + 7, + -1 + ], + [ + "LAMBDA", + 8, + -1 + ], + [ + "LAMBDA", + 9, + -1 + ], + [ + "LAMBDA", + 10, + -1 + ], + [ + "LAMBDA", + 11, + -1 + ], + [ + "LAMBDA", + 12, + -1 + ], + [ + "LAMBDA", + 13, + -1 + ], + [ + "LAMBDA", + 14, + -1 + ], + [ + "LAMBDA", + 15, + -1 + ], + [ + "LAMBDA", + 16, + -1 + ], + [ + "LAMBDA", + 17, + -1 + ], + [ + "LAMBDA", + 18, + -1 + ], + [ + "LAMBDA", + 19, + -1 + ], + [ + "LAMBDA", + 20, + -1 + ], + [ + "LAMBDA", + 21, + -1 + ], + [ + "LAMBDA", + 22, + -1 + ], + [ + "LAMBDA", + 23, + -1 + ], + [ + "LAMBDA", + 24, + -1 + ], + [ + "LAMBDA", + 25, + -1 + ], + [ + "LAMBDA", + 26, + -1 + ], + [ + "LAMBDA", + 27, + -1 + ], + [ + "LAMBDA", + 28, + -1 + ], + [ + "LAMBDA", + 29, + -1 + ], + [ + "LAMBDA", + 30, + -1 + ], + [ + "LAMBDA", + 31, + -1 + ] + ], + "diagonal": [ + [ + -1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + [ + -1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1 + ] + ], + "nodes": [ + { + "roles": [ + 8, + 9 + ], + "stages": [ + 1, + 2, + 3, + 4 + ] + }, + { + "roles": [ + 10, + 11 + ], + "stages": [ + 1, + 2 + ] + }, + { + "roles": [ + 12, + 13 + ], + "stages": [ + 3, + 4 + ] + }, + { + "roles": [ + 14, + 15 + ], + "stages": [ + 5, + 6, + 7, + 8 + ] + }, + { + "roles": [ + 16, + 17 + ], + "stages": [ + 5, + 6 + ] + }, + { + "roles": [ + 18, + 19 + ], + "stages": [ + 7, + 8 + ] + }, + { + "roles": [ + 20, + 21 + ], + "stages": [ + 11, + 12, + 13, + 14 + ] + }, + { + "roles": [ + 22, + 23 + ], + "stages": [ + 11, + 12 + ] + }, + { + "roles": [ + 24, + 25 + ], + "stages": [ + 13, + 14 + ] + }, + { + "roles": [ + 26, + 27 + ], + "stages": [ + 15, + 16, + 17, + 18 + ] + }, + { + "roles": [ + 28, + 29 + ], + "stages": [ + 15, + 16 + ] + }, + { + "roles": [ + 30, + 31 + ], + "stages": [ + 17, + 18 + ] + } + ] +} diff --git a/research/p104-second-fragment-phase-audit/inputs/CONTROLLER.json b/research/p104-second-fragment-phase-audit/inputs/CONTROLLER.json new file mode 100644 index 0000000000..1c16cfbedc --- /dev/null +++ b/research/p104-second-fragment-phase-audit/inputs/CONTROLLER.json @@ -0,0 +1,4308 @@ +{ + "schema": "two-paid-fragments-two-independent-retirements/1", + "roles": 34, + "stages": 18, + "ambient_rank": 153, + "events": [ + [ + "SCALE", + 5, + "-1" + ], + [ + "SCALE", + 4, + "-1" + ], + [ + "ADD", + 5, + 4, + "-2" + ], + [ + "ADD", + 6, + 7, + "1" + ], + [ + "SCALE", + 6, + "-1" + ], + [ + "ADD", + 7, + 6, + "2" + ], + [ + "SWAP", + 6, + 7 + ], + [ + "ADD", + 7, + 6, + "-1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "SWAP", + 0, + 9 + ], + [ + "SWAP", + 1, + 8 + ], + [ + "SWAP", + 8, + 9 + ], + [ + "ADD", + 0, + 8, + "1" + ], + [ + "ADD", + 9, + 1, + "-1" + ], + [ + "LAMBDA", + 8, + -1 + ], + [ + "QUERY", + 8, + 9, + -1 + ], + [ + "LAMBDA", + 8, + 1 + ], + [ + "ADD", + 9, + 1, + "1" + ], + [ + "ADD", + 0, + 8, + "-1" + ], + [ + "IDLE", + 8, + 9, + [ + 1, + 2, + 3, + 4 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 11 + ], + [ + "SWAP", + 0, + 10 + ], + [ + "SWAP", + 10, + 11 + ], + [ + "ADD", + 1, + 10, + "1" + ], + [ + "ADD", + 11, + 0, + "-1" + ], + [ + "LAMBDA", + 10, + -1 + ], + [ + "QUERY", + 10, + 11, + -1 + ], + [ + "LAMBDA", + 10, + 1 + ], + [ + "ADD", + 11, + 0, + "1" + ], + [ + "ADD", + 1, + 10, + "-1" + ], + [ + "IDLE", + 10, + 11, + [ + 1, + 2 + ] + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 1, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 2, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "ADD", + 1, + 10, + "1" + ], + [ + "SCALE", + 10, + "-1" + ], + [ + "ADD", + 10, + 1, + "1" + ], + [ + "SWAP", + 0, + 11 + ], + [ + "SCALE", + 11, + "-1" + ], + [ + "ADD", + 11, + 0, + "1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 0, + 13 + ], + [ + "SWAP", + 1, + 12 + ], + [ + "SWAP", + 12, + 13 + ], + [ + "ADD", + 0, + 12, + "1" + ], + [ + "ADD", + 13, + 1, + "-1" + ], + [ + "LAMBDA", + 12, + -1 + ], + [ + "QUERY", + 12, + 13, + -1 + ], + [ + "LAMBDA", + 12, + 1 + ], + [ + "ADD", + 13, + 1, + "1" + ], + [ + "ADD", + 0, + 12, + "-1" + ], + [ + "IDLE", + 12, + 13, + [ + 3, + 4 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 3, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 4, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 12, + "1" + ], + [ + "SCALE", + 12, + "-1" + ], + [ + "ADD", + 12, + 0, + "1" + ], + [ + "SWAP", + 1, + 13 + ], + [ + "SCALE", + 13, + "-1" + ], + [ + "ADD", + 13, + 1, + "1" + ], + [ + "ADD", + 0, + 8, + "1" + ], + [ + "SCALE", + 8, + "-1" + ], + [ + "ADD", + 8, + 0, + "1" + ], + [ + "SWAP", + 1, + 9 + ], + [ + "SCALE", + 9, + "-1" + ], + [ + "ADD", + 9, + 1, + "1" + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "ADD", + 1, + 7, + "-2" + ], + [ + "ADD", + 0, + 7, + "-1" + ], + [ + "SCALE", + 7, + "-1" + ], + [ + "SCALE", + 6, + "-1" + ], + [ + "ADD", + 7, + 6, + "1" + ], + [ + "SWAP", + 5, + 7 + ], + [ + "SWAP", + 4, + 6 + ], + [ + "SWAP", + 3, + 5 + ], + [ + "SWAP", + 2, + 4 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 3 + ], + [ + "ADD", + 3, + 0, + "2" + ], + [ + "ADD", + 2, + 0, + "1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "SWAP", + 0, + 15 + ], + [ + "SWAP", + 1, + 14 + ], + [ + "SWAP", + 14, + 15 + ], + [ + "ADD", + 0, + 14, + "1" + ], + [ + "ADD", + 15, + 1, + "-1" + ], + [ + "LAMBDA", + 14, + -1 + ], + [ + "QUERY", + 14, + 15, + -1 + ], + [ + "LAMBDA", + 14, + 1 + ], + [ + "ADD", + 15, + 1, + "1" + ], + [ + "ADD", + 0, + 14, + "-1" + ], + [ + "IDLE", + 14, + 15, + [ + 5, + 6, + 7, + 8 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 17 + ], + [ + "SWAP", + 0, + 16 + ], + [ + "SWAP", + 16, + 17 + ], + [ + "ADD", + 1, + 16, + "1" + ], + [ + "ADD", + 17, + 0, + "-1" + ], + [ + "LAMBDA", + 16, + -1 + ], + [ + "QUERY", + 16, + 17, + -1 + ], + [ + "LAMBDA", + 16, + 1 + ], + [ + "ADD", + 17, + 0, + "1" + ], + [ + "ADD", + 1, + 16, + "-1" + ], + [ + "IDLE", + 16, + 17, + [ + 5, + 6 + ] + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 5, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 6, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "ADD", + 1, + 16, + "1" + ], + [ + "SCALE", + 16, + "-1" + ], + [ + "ADD", + 16, + 1, + "1" + ], + [ + "SWAP", + 0, + 17 + ], + [ + "SCALE", + 17, + "-1" + ], + [ + "ADD", + 17, + 0, + "1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 0, + 19 + ], + [ + "SWAP", + 1, + 18 + ], + [ + "SWAP", + 18, + 19 + ], + [ + "ADD", + 0, + 18, + "1" + ], + [ + "ADD", + 19, + 1, + "-1" + ], + [ + "LAMBDA", + 18, + -1 + ], + [ + "QUERY", + 18, + 19, + -1 + ], + [ + "LAMBDA", + 18, + 1 + ], + [ + "ADD", + 19, + 1, + "1" + ], + [ + "ADD", + 0, + 18, + "-1" + ], + [ + "IDLE", + 18, + 19, + [ + 7, + 8 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 7, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 8, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 18, + "1" + ], + [ + "SCALE", + 18, + "-1" + ], + [ + "ADD", + 18, + 0, + "1" + ], + [ + "SWAP", + 1, + 19 + ], + [ + "SCALE", + 19, + "-1" + ], + [ + "ADD", + 19, + 1, + "1" + ], + [ + "ADD", + 0, + 14, + "1" + ], + [ + "SCALE", + 14, + "-1" + ], + [ + "ADD", + 14, + 0, + "1" + ], + [ + "SWAP", + 1, + 15 + ], + [ + "SCALE", + 15, + "-1" + ], + [ + "ADD", + 15, + 1, + "1" + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "IDLE_ONE", + 2, + [ + 5, + 6, + 7, + 8 + ] + ], + [ + "ADD", + 0, + 2, + "1" + ], + [ + "ADD", + 2, + 1, + "-1" + ], + [ + "SWAP", + 2, + 6 + ], + [ + "SWAP", + 2, + 32 + ], + [ + "ADD", + 2, + 1, + "1" + ], + [ + "ADD", + 0, + 2, + "-1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 9, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "IDLE_ONE", + 2, + [ + 9 + ] + ], + [ + "IDLE_ONE", + 3, + [ + 5, + 6, + 7, + 8, + 9 + ] + ], + [ + "SWAP", + 32, + 7 + ], + [ + "SWAP", + 5, + 32 + ], + [ + "SWAP", + 4, + 7 + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "SWAP", + 3, + 32 + ], + [ + "ADD", + 1, + 2, + "-2" + ], + [ + "ADD", + 0, + 2, + "-1" + ], + [ + "SCALE", + 2, + "-1" + ], + [ + "SWAP", + 2, + 7 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 7, + 1, + "-1" + ], + [ + "SWAP", + 1, + 32 + ], + [ + "ADD", + 32, + 0, + "1" + ], + [ + "ADD", + 1, + 0, + "2" + ], + [ + "ADD", + 1, + 7, + "-1" + ], + [ + "ADD", + 1, + 32, + "-1" + ], + [ + "ADD", + 1, + 5, + "-2" + ], + [ + "ADD", + 0, + 5, + "-2" + ], + [ + "ADD", + 1, + 4, + "-2" + ], + [ + "ADD", + 0, + 4, + "-2" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "ADD", + 1, + 2, + "-1" + ], + [ + "SWAP", + 2, + 3 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 5, + 1, + "2" + ], + [ + "ADD", + 4, + 1, + "-2" + ], + [ + "ADD", + 3, + 1, + "-2" + ], + [ + "SWAP", + 1, + 2 + ], + [ + "ADD", + 5, + 0, + "6" + ], + [ + "ADD", + 4, + 0, + "-6" + ], + [ + "ADD", + 3, + 0, + "-6" + ], + [ + "ADD", + 2, + 0, + "2" + ], + [ + "SWAP", + 0, + 2 + ], + [ + "ADD", + 2, + 0, + "1" + ], + [ + "SWAP", + 0, + 2 + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "QUERY", + 0, + 1, + -1 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 5, + 7, + "-4" + ], + [ + "ADD", + 4, + 7, + "4" + ], + [ + "ADD", + 3, + 7, + "4" + ], + [ + "ADD", + 2, + 7, + "-1" + ], + [ + "ADD", + 1, + 7, + "-2" + ], + [ + "ADD", + 0, + 7, + "-2" + ], + [ + "ADD", + 5, + 32, + "-4" + ], + [ + "ADD", + 4, + 32, + "4" + ], + [ + "ADD", + 3, + 32, + "4" + ], + [ + "ADD", + 2, + 32, + "-1" + ], + [ + "ADD", + 1, + 32, + "-2" + ], + [ + "ADD", + 0, + 32, + "-2" + ], + [ + "ADD", + 4, + 5, + "1" + ], + [ + "SCALE", + 5, + "-1" + ], + [ + "ADD", + 3, + 4, + "-4" + ], + [ + "ADD", + 2, + 4, + "2" + ], + [ + "ADD", + 1, + 4, + "2" + ], + [ + "ADD", + 0, + 4, + "2" + ], + [ + "SCALE", + 4, + "-1" + ], + [ + "ADD", + 5, + 4, + "2" + ], + [ + "SWAP", + 4, + 5 + ], + [ + "ADD", + 5, + 4, + "1" + ], + [ + "SWAP", + 4, + 5 + ], + [ + "ADD", + 5, + 4, + "-2" + ], + [ + "ADD", + 1, + 2, + "-2" + ], + [ + "ADD", + 0, + 2, + "-2" + ], + [ + "ADD", + 5, + 2, + "-4" + ], + [ + "ADD", + 4, + 2, + "4" + ], + [ + "ADD", + 3, + 2, + "3" + ], + [ + "SWAP", + 2, + 3 + ], + [ + "ADD", + 3, + 2, + "1" + ], + [ + "SWAP", + 2, + 3 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 3 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 5, + 0, + "2" + ], + [ + "ADD", + 4, + 0, + "-2" + ], + [ + "ADD", + 3, + 0, + "-1" + ], + [ + "ADD", + 2, + 0, + "-2" + ], + [ + "ADD", + 1, + 7, + "-1" + ], + [ + "ADD", + 1, + 32, + "-1" + ], + [ + "ADD", + 1, + 5, + "1" + ], + [ + "ADD", + 1, + 4, + "1" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "ADD", + 1, + 2, + "-1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "ADD", + 3, + 1, + "3" + ], + [ + "SWAP", + 1, + 3 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 5, + 0, + "2" + ], + [ + "ADD", + 4, + 0, + "-2" + ], + [ + "ADD", + 3, + 0, + "-2" + ], + [ + "ADD", + 2, + 0, + "-2" + ], + [ + "ADD", + 1, + 0, + "-4" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "QUERY", + 0, + 1, + -1 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 3, + 7, + "-1" + ], + [ + "ADD", + 1, + 7, + "-3" + ], + [ + "ADD", + 3, + 32, + "-1" + ], + [ + "ADD", + 1, + 32, + "-3" + ], + [ + "ADD", + 3, + 5, + "1" + ], + [ + "ADD", + 1, + 5, + "3" + ], + [ + "ADD", + 3, + 4, + "1" + ], + [ + "ADD", + 1, + 4, + "3" + ], + [ + "ADD", + 1, + 3, + "-3" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "ADD", + 3, + 2, + "1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 3 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 5, + 0, + "2" + ], + [ + "ADD", + 4, + 0, + "-2" + ], + [ + "ADD", + 3, + 0, + "-2" + ], + [ + "ADD", + 2, + 0, + "-2" + ], + [ + "ADD", + 32, + 7, + "1" + ], + [ + "ADD", + 5, + 7, + "1" + ], + [ + "ADD", + 4, + 7, + "-1" + ], + [ + "ADD", + 3, + 7, + "-1" + ], + [ + "ADD", + 2, + 7, + "-1" + ], + [ + "ADD", + 1, + 7, + "-1" + ], + [ + "ADD", + 1, + 32, + "-1" + ], + [ + "SWAP", + 32, + 7 + ], + [ + "ADD", + 1, + 5, + "-2" + ], + [ + "ADD", + 0, + 5, + "-2" + ], + [ + "SWAP", + 5, + 32 + ], + [ + "ADD", + 1, + 4, + "-2" + ], + [ + "ADD", + 0, + 4, + "-2" + ], + [ + "SWAP", + 4, + 5 + ], + [ + "SWAP", + 3, + 4 + ], + [ + "ADD", + 1, + 2, + "-1" + ], + [ + "SWAP", + 2, + 3 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "SWAP", + 1, + 2 + ], + [ + "ADD", + 2, + 0, + "2" + ], + [ + "SWAP", + 0, + 2 + ], + [ + "ADD", + 2, + 0, + "1" + ], + [ + "SWAP", + 0, + 2 + ], + [ + "ADD", + 2, + 0, + "-1" + ], + [ + "SWAP", + 0, + 1 + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "QUERY", + 0, + 1, + -1 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 32, + 7, + "-1" + ], + [ + "ADD", + 5, + 7, + "1" + ], + [ + "ADD", + 4, + 7, + "1" + ], + [ + "ADD", + 3, + 7, + "1" + ], + [ + "ADD", + 2, + 7, + "1" + ], + [ + "ADD", + 1, + 7, + "-2" + ], + [ + "ADD", + 0, + 7, + "-1" + ], + [ + "ADD", + 5, + 32, + "1" + ], + [ + "ADD", + 4, + 32, + "1" + ], + [ + "ADD", + 3, + 32, + "1" + ], + [ + "ADD", + 0, + 32, + "-1" + ], + [ + "SCALE", + 32, + "-1" + ], + [ + "ADD", + 7, + 32, + "-1" + ], + [ + "ADD", + 4, + 5, + "-1" + ], + [ + "ADD", + 3, + 5, + "-1" + ], + [ + "ADD", + 1, + 5, + "2" + ], + [ + "ADD", + 0, + 5, + "1" + ], + [ + "ADD", + 7, + 5, + "-1" + ], + [ + "ADD", + 32, + 5, + "1" + ], + [ + "ADD", + 3, + 4, + "-1" + ], + [ + "ADD", + 0, + 4, + "1" + ], + [ + "SCALE", + 4, + "-1" + ], + [ + "ADD", + 7, + 4, + "1" + ], + [ + "ADD", + 32, + 4, + "-1" + ], + [ + "ADD", + 5, + 4, + "-1" + ], + [ + "ADD", + 0, + 3, + "1" + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "ADD", + 7, + 3, + "1" + ], + [ + "ADD", + 32, + 3, + "-1" + ], + [ + "ADD", + 5, + 3, + "-1" + ], + [ + "ADD", + 4, + 3, + "1" + ], + [ + "ADD", + 1, + 2, + "2" + ], + [ + "ADD", + 0, + 2, + "1" + ], + [ + "SCALE", + 2, + "-1" + ], + [ + "ADD", + 7, + 2, + "1" + ], + [ + "ADD", + 32, + 2, + "-1" + ], + [ + "ADD", + 5, + 2, + "-1" + ], + [ + "ADD", + 4, + 2, + "1" + ], + [ + "ADD", + 3, + 2, + "1" + ], + [ + "ADD", + 0, + 1, + "1" + ], + [ + "ADD", + 7, + 1, + "-1" + ], + [ + "ADD", + 32, + 1, + "1" + ], + [ + "ADD", + 5, + 1, + "1" + ], + [ + "ADD", + 4, + 1, + "-1" + ], + [ + "ADD", + 3, + 1, + "-1" + ], + [ + "ADD", + 2, + 1, + "-1" + ], + [ + "ADD", + 7, + 0, + "1" + ], + [ + "ADD", + 32, + 0, + "-1" + ], + [ + "ADD", + 5, + 0, + "-1" + ], + [ + "ADD", + 4, + 0, + "1" + ], + [ + "ADD", + 3, + 0, + "1" + ], + [ + "ADD", + 2, + 0, + "1" + ], + [ + "SWAP", + 0, + 1 + ], + [ + "ADD", + 4, + 5, + "1" + ], + [ + "ADD", + 2, + 5, + "2" + ], + [ + "ADD", + 0, + 5, + "-1" + ], + [ + "ADD", + 2, + 4, + "-4" + ], + [ + "ADD", + 0, + 4, + "2" + ], + [ + "SCALE", + 4, + "-1" + ], + [ + "ADD", + 5, + 4, + "1" + ], + [ + "SWAP", + 3, + 5 + ], + [ + "SCALE", + 2, + "-1" + ], + [ + "SWAP", + 2, + 3 + ], + [ + "SWAP", + 1, + 4 + ], + [ + "ADD", + 3, + 0, + "-2" + ], + [ + "ADD", + 2, + 0, + "1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 10, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "IDLE_ONE", + 2, + [ + 10 + ] + ], + [ + "ADD", + 1, + 2, + "1" + ], + [ + "ADD", + 2, + 0, + "-1" + ], + [ + "SWAP", + 2, + 4 + ], + [ + "LAMBDA", + 4, + -1 + ], + [ + "LAMBDA", + 33, + 1 + ], + [ + "SWAP", + 2, + 33 + ], + [ + "ADD", + 2, + 0, + "1" + ], + [ + "ADD", + 1, + 2, + "-1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 21 + ], + [ + "SWAP", + 0, + 20 + ], + [ + "SWAP", + 20, + 21 + ], + [ + "ADD", + 1, + 20, + "1" + ], + [ + "ADD", + 21, + 0, + "-1" + ], + [ + "LAMBDA", + 20, + -1 + ], + [ + "QUERY", + 20, + 21, + -1 + ], + [ + "LAMBDA", + 20, + 1 + ], + [ + "ADD", + 21, + 0, + "1" + ], + [ + "ADD", + 1, + 20, + "-1" + ], + [ + "IDLE", + 20, + 21, + [ + 11, + 12, + 13, + 14 + ] + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "SWAP", + 0, + 23 + ], + [ + "SWAP", + 1, + 22 + ], + [ + "SWAP", + 22, + 23 + ], + [ + "ADD", + 0, + 22, + "1" + ], + [ + "ADD", + 23, + 1, + "-1" + ], + [ + "LAMBDA", + 22, + -1 + ], + [ + "QUERY", + 22, + 23, + -1 + ], + [ + "LAMBDA", + 22, + 1 + ], + [ + "ADD", + 23, + 1, + "1" + ], + [ + "ADD", + 0, + 22, + "-1" + ], + [ + "IDLE", + 22, + 23, + [ + 11, + 12 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 11, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 12, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 22, + "1" + ], + [ + "SCALE", + 22, + "-1" + ], + [ + "ADD", + 22, + 0, + "1" + ], + [ + "SWAP", + 1, + 23 + ], + [ + "SCALE", + 23, + "-1" + ], + [ + "ADD", + 23, + 1, + "1" + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "SWAP", + 1, + 25 + ], + [ + "SWAP", + 0, + 24 + ], + [ + "SWAP", + 24, + 25 + ], + [ + "ADD", + 1, + 24, + "1" + ], + [ + "ADD", + 25, + 0, + "-1" + ], + [ + "LAMBDA", + 24, + -1 + ], + [ + "QUERY", + 24, + 25, + -1 + ], + [ + "LAMBDA", + 24, + 1 + ], + [ + "ADD", + 25, + 0, + "1" + ], + [ + "ADD", + 1, + 24, + "-1" + ], + [ + "IDLE", + 24, + 25, + [ + 13, + 14 + ] + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 13, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 14, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "ADD", + 1, + 24, + "1" + ], + [ + "SCALE", + 24, + "-1" + ], + [ + "ADD", + 24, + 1, + "1" + ], + [ + "SWAP", + 0, + 25 + ], + [ + "SCALE", + 25, + "-1" + ], + [ + "ADD", + 25, + 0, + "1" + ], + [ + "ADD", + 1, + 20, + "1" + ], + [ + "SCALE", + 20, + "-1" + ], + [ + "ADD", + 20, + 1, + "1" + ], + [ + "SWAP", + 0, + 21 + ], + [ + "SCALE", + 21, + "-1" + ], + [ + "ADD", + 21, + 0, + "1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "ADD", + 1, + 0, + "1" + ], + [ + "IDLE_ONE", + 2, + [ + 11, + 12, + 13, + 14 + ] + ], + [ + "IDLE_ONE", + 3, + [ + 10, + 11, + 12, + 13, + 14 + ] + ], + [ + "SCALE", + 3, + "-1" + ], + [ + "SWAP", + 3, + 5 + ], + [ + "ADD", + 0, + 2, + "-1" + ], + [ + "SWAP", + 2, + 5 + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "ADD", + 5, + 1, + "-1" + ], + [ + "SWAP", + 1, + 33 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 33, + 0, + "-1" + ], + [ + "ADD", + 2, + 0, + "-2" + ], + [ + "SWAP", + 1, + 2 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 1, + 0, + "-1" + ], + [ + "SWAP", + 0, + 27 + ], + [ + "SWAP", + 1, + 26 + ], + [ + "SWAP", + 26, + 27 + ], + [ + "ADD", + 0, + 26, + "1" + ], + [ + "ADD", + 27, + 1, + "-1" + ], + [ + "LAMBDA", + 26, + -1 + ], + [ + "QUERY", + 26, + 27, + -1 + ], + [ + "LAMBDA", + 26, + 1 + ], + [ + "ADD", + 27, + 1, + "1" + ], + [ + "ADD", + 0, + 26, + "-1" + ], + [ + "IDLE", + 26, + 27, + [ + 15, + 16, + 17, + 18 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 1, + 29 + ], + [ + "SWAP", + 0, + 28 + ], + [ + "SWAP", + 28, + 29 + ], + [ + "ADD", + 1, + 28, + "1" + ], + [ + "ADD", + 29, + 0, + "-1" + ], + [ + "LAMBDA", + 28, + -1 + ], + [ + "QUERY", + 28, + 29, + -1 + ], + [ + "LAMBDA", + 28, + 1 + ], + [ + "ADD", + 29, + 0, + "1" + ], + [ + "ADD", + 1, + 28, + "-1" + ], + [ + "IDLE", + 28, + 29, + [ + 15, + 16 + ] + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 15, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 16, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "ADD", + 1, + 28, + "1" + ], + [ + "SCALE", + 28, + "-1" + ], + [ + "ADD", + 28, + 1, + "1" + ], + [ + "SWAP", + 0, + 29 + ], + [ + "SCALE", + 29, + "-1" + ], + [ + "ADD", + 29, + 0, + "1" + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "SWAP", + 0, + 31 + ], + [ + "SWAP", + 1, + 30 + ], + [ + "SWAP", + 30, + 31 + ], + [ + "ADD", + 0, + 30, + "1" + ], + [ + "ADD", + 31, + 1, + "-1" + ], + [ + "LAMBDA", + 30, + -1 + ], + [ + "QUERY", + 30, + 31, + -1 + ], + [ + "LAMBDA", + 30, + 1 + ], + [ + "ADD", + 31, + 1, + "1" + ], + [ + "ADD", + 0, + 30, + "-1" + ], + [ + "IDLE", + 30, + 31, + [ + 17, + 18 + ] + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LOCAL", + 17, + 0, + 1 + ], + [ + "LAMBDA", + 1, + 1 + ], + [ + "SCALE", + 1, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LOCAL", + 18, + 1, + 0 + ], + [ + "LAMBDA", + 0, + 1 + ], + [ + "ADD", + 0, + 30, + "1" + ], + [ + "SCALE", + 30, + "-1" + ], + [ + "ADD", + 30, + 0, + "1" + ], + [ + "SWAP", + 1, + 31 + ], + [ + "SCALE", + 31, + "-1" + ], + [ + "ADD", + 31, + 1, + "1" + ], + [ + "ADD", + 0, + 26, + "1" + ], + [ + "SCALE", + 26, + "-1" + ], + [ + "ADD", + 26, + 0, + "1" + ], + [ + "SWAP", + 1, + 27 + ], + [ + "SCALE", + 27, + "-1" + ], + [ + "ADD", + 27, + 1, + "1" + ], + [ + "ADD", + 0, + 1, + "-1" + ], + [ + "SWAP", + 1, + 2 + ], + [ + "SCALE", + 0, + "-1" + ], + [ + "ADD", + 2, + 0, + "-1" + ], + [ + "LAMBDA", + 0, + -1 + ], + [ + "LAMBDA", + 1, + -1 + ], + [ + "LAMBDA", + 2, + -1 + ], + [ + "LAMBDA", + 3, + -1 + ], + [ + "LAMBDA", + 33, + -1 + ], + [ + "LAMBDA", + 5, + -1 + ], + [ + "LAMBDA", + 32, + -1 + ], + [ + "LAMBDA", + 7, + -1 + ], + [ + "LAMBDA", + 8, + -1 + ], + [ + "LAMBDA", + 9, + -1 + ], + [ + "LAMBDA", + 10, + -1 + ], + [ + "LAMBDA", + 11, + -1 + ], + [ + "LAMBDA", + 12, + -1 + ], + [ + "LAMBDA", + 13, + -1 + ], + [ + "LAMBDA", + 14, + -1 + ], + [ + "LAMBDA", + 15, + -1 + ], + [ + "LAMBDA", + 16, + -1 + ], + [ + "LAMBDA", + 17, + -1 + ], + [ + "LAMBDA", + 18, + -1 + ], + [ + "LAMBDA", + 19, + -1 + ], + [ + "LAMBDA", + 20, + -1 + ], + [ + "LAMBDA", + 21, + -1 + ], + [ + "LAMBDA", + 22, + -1 + ], + [ + "LAMBDA", + 23, + -1 + ], + [ + "LAMBDA", + 24, + -1 + ], + [ + "LAMBDA", + 25, + -1 + ], + [ + "LAMBDA", + 26, + -1 + ], + [ + "LAMBDA", + 27, + -1 + ], + [ + "LAMBDA", + 28, + -1 + ], + [ + "LAMBDA", + 29, + -1 + ], + [ + "LAMBDA", + 30, + -1 + ], + [ + "LAMBDA", + 31, + -1 + ], + [ + "ADD", + 7, + 32, + "1" + ], + [ + "SWAP", + 32, + 7 + ], + [ + "ADD", + 7, + 32, + "-2" + ], + [ + "SCALE", + 32, + "-1" + ], + [ + "ADD", + 32, + 7, + "-1" + ], + [ + "ADD", + 5, + 33, + "2" + ], + [ + "SCALE", + 33, + "-1" + ], + [ + "SCALE", + 5, + "-1" + ] + ], + "diagonal": [ + [ + -1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + [ + -1, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 0, + 0 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1 + ], + [ + -1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 1, + 1, + 0, + 0, + 0, + 0 + ] + ], + "nodes": [ + { + "roles": [ + 8, + 9 + ], + "stages": [ + 1, + 2, + 3, + 4 + ] + }, + { + "roles": [ + 10, + 11 + ], + "stages": [ + 1, + 2 + ] + }, + { + "roles": [ + 12, + 13 + ], + "stages": [ + 3, + 4 + ] + }, + { + "roles": [ + 14, + 15 + ], + "stages": [ + 5, + 6, + 7, + 8 + ] + }, + { + "roles": [ + 16, + 17 + ], + "stages": [ + 5, + 6 + ] + }, + { + "roles": [ + 18, + 19 + ], + "stages": [ + 7, + 8 + ] + }, + { + "roles": [ + 20, + 21 + ], + "stages": [ + 11, + 12, + 13, + 14 + ] + }, + { + "roles": [ + 22, + 23 + ], + "stages": [ + 11, + 12 + ] + }, + { + "roles": [ + 24, + 25 + ], + "stages": [ + 13, + 14 + ] + }, + { + "roles": [ + 26, + 27 + ], + "stages": [ + 15, + 16, + 17, + 18 + ] + }, + { + "roles": [ + 28, + 29 + ], + "stages": [ + 15, + 16 + ] + }, + { + "roles": [ + 30, + 31 + ], + "stages": [ + 17, + 18 + ] + } + ] +} diff --git a/research/p104-second-fragment-phase-audit/inputs/LICENSE b/research/p104-second-fragment-phase-audit/inputs/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/p104-second-fragment-phase-audit/inputs/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/research/p104-second-fragment-phase-audit/inputs/NOTICE b/research/p104-second-fragment-phase-audit/inputs/NOTICE new file mode 100644 index 0000000000..155b55b4de --- /dev/null +++ b/research/p104-second-fragment-phase-audit/inputs/NOTICE @@ -0,0 +1,11 @@ +Paid-fragment construction, integral BIT transfer, associated research findings, +and local packaging: developed with substantial OpenAI Codex assistance for +zxv (https://github.com/zxv). New contributions are Apache-2.0. + +The complete predecessor attribution, notices, and source-specific license +terms remain in frozen/. In particular, frozen/two-fragment/NOTICE preserves +the caller, native, productive-helper, compiler, interval, and analytic lineage. +No predecessor scientific files have been altered for this package. + +All validation is local/author-side evidence. External scientific review and +the five inherited framework assumptions remain outstanding. diff --git a/research/p104-second-fragment-phase-audit/inputs/PROOF.md b/research/p104-second-fragment-phase-audit/inputs/PROOF.md new file mode 100644 index 0000000000..1d23498f0d --- /dev/null +++ b/research/p104-second-fragment-phase-audit/inputs/PROOF.md @@ -0,0 +1,35 @@ +# Conditional κ = 0.00330720 from two paid idle fragments + +This complete construction raises conditional κ from **0.00330420** in [PR6716](https://github.com/CrocSwap/integer-mult-bounds/pull/6716) to **0.00330720**, an absolute increase of **0.00000300** (about **0.09079%**). It retains the five assumptions `native_all_columns`, `owned_erasure`, `compiler`, `precision_tape`, and `analytic_recovery`. It does not claim an unconditional theorem or change the repository's selected frontier. + +The native supplier is unchanged. Its pinned source and full replay are retained in the sibling `sources/pr6716/` and `fragment/RESULT.json`. Native and earlier caller authors retain their recorded credits. The two-pair root, paid fragmentation and new witnesses were developed with OpenAI Codex for [zxv](https://github.com/zxv). + +## Actual caller + +An eight-field shortest root uses nine nilpotent queries and six full sites, at indices **0,1,2,6,7,8**, with ranks **(2,4,4,4,4,2)**. Its two rank-four shared stage supports are `{0,1,6,7}` and `{0,2,4,5}`. Their active native queries are exactly `E01,-E10` in their respective common bases. Both remaining coordinates in each bank are genuine common idle directions. The exact integer root and every basis are in `ROOT.json`; `root_check.py` checks every independent stage and central character. + +The child sizes are **(4,4,1,1,4,4)**. All 18 native invocations, 12 internal binary suppliers, 15 thin queries, all idles, arbitrary public inputs, owned lifetimes and phases are counted. Rotate the two idle banks by determinant-one matrices `[[2,-1],[1,0]]` and `[[-2,-1],[1,0]]`. In each bank, pay one idle direction separately on its two child bodies. The other direction retains its combined job. + +The first equal-target group is fields 6,7. Its exact input column and row are `c=-2e6+e7`, `d=e7^T`. After the first paid fragment, the prefix has the dual identities `Pc=D_B a`, `bP=D_B d`, where `a=-e0+e2`, `b=-e1^T+e2^T`. Both pairings are one. The literal input matrix is `[[-2,-1],[1,0]]`; the cut basis is `ADD(0,2,1); ADD(2,1,-1); SWAP(2,6)`. Retire original field 6 and introduce fresh arbitrary field 32 only into the suffix. This replaces qBC by independent B and qC. + +The second group is fields 4,5. Take `c=-e4+2e5`, `d=-e4^T`. Its prefix has `Pc=S D_D a`, `bP=S D_D d`, with `a=-e1+e2`, `b=-e0^T+e2^T`, and normalized central involution `S=λq^-1`. The input matrix is `[[-1,0],[2,-1]]`. The cut basis is `ADD(1,2,1); ADD(2,0,-1); SWAP(2,4); LAMBDA(4,-1)`. The final ordinary normalization turns the prefix into q^-1 D_D. Retire field 4 and introduce fresh field 33 to the inverse cut basis and suffix. The inverse ordinary normalization is paid and leaves a plain E output. This replaces qDE by independent qD and E. + +All basis coefficients are legal dyadics; the listed scalar input matrices have determinant one. Every added field is arbitrary and untouched before its handoff. No stage factor occurs in an ordinary basis. The dual-pair retirement argument and general lemma are also explained in `../fragment/PROOF.md`. + +## Complete economics and qualification + +At this allocation, each changed target has rank 41 and is replaced by independent ranks 32 and 9. Each changed paid rank-40 idle is replaced by paid ranks 32 and 8. Therefore, relative to this same unfragmented root and allocation, + +``` +ΔT = 208(H32 + H9 - H41), +ΔP = 208(H32 + H8 - H40), +Δ(T-P) = 208((H9-H8)-(H41-H40)) > 0. +``` + +The last inequality follows from strictly decreasing increments of `H(r)=r^t`, for `0>r&1 for j in t['stages']]] + for r in range(next_role):emit('LAMBDA',r,-1) + diagonal=[[targets[r][0],0]+[int(j in targets[r][1])for j in range(1,stage+1)]for r in range(next_role)] + need((stage,next_role)==(18,32),'Complete caller dimensions') + return {'schema':'root8-common-idle-fusion/1','roles':next_role,'stages':stage,'ambient_rank':9+8*stage, + 'events':events,'diagonal':diagonal,'nodes':nodes} + +def replay(word): + n,width=word['roles'],word['stages']+2;zero=(0,)*width + rows=[[{zero:coefficient(1)}if i==j else {}for j in range(n)]for i in range(n)];seen=[] + for event in word['events']: + op=event[0] + if op=='ADD': + _,dst,src,c=event + for a,b in zip(rows[dst],rows[src]):accumulate(a,b,coefficient(c)) + elif op=='SCALE': + _,dst,c=event;rows[dst]=[{key:zmul(coefficient(c),value)for key,value in cell.items()}for cell in rows[dst]] + elif op=='SWAP': + _,a,b=event;rows[a],rows[b]=rows[b],rows[a] + elif op in ('LOCAL','QUERY'): + if op=='LOCAL':_,stage,src,dst=event;exponent=-1;seen.append(stage) + else:_,dst,src,exponent=event + term=(exponent,)+(0,)*(width-1) + for a,b in zip(rows[dst],shifted(rows[src],term)):accumulate(a,b) + if op=='LOCAL': + term=(0,)+tuple(int(s==stage)for s in range(width-1)) + for r in (src,dst):rows[r]=shifted(rows[r],term) + elif op=='Q_POWER':rows[event[1]]=shifted(rows[event[1]],(event[2],)+(0,)*(width-1)) + elif op=='LAMBDA': + _,r,sign=event;need(sign in(-1,1),'Ordinary normalization sign') + old=rows[r];other=shifted(old,(2,)+(0,)*(width-1));rows[r]=[{}for _ in range(n)] + for dst,a,b in zip(rows[r],old,other): + accumulate(dst,a,(Q(1,2),Q(sign,2)));accumulate(dst,b,(Q(1,2),Q(-sign,2))) + elif op in('IDLE','IDLE_ONE'): + roles,stages=(event[1:3],event[3])if op=='IDLE'else([event[1]],event[2]) + need(len(stages)==len(set(stages)),'Distinct whole-idle axes') + term=(0,)+tuple(int(s in stages)for s in range(width-1)) + for r in roles:rows[r]=shifted(rows[r],term) + else:raise ValueError('Unknown caller opcode') + expected=[[{(word['diagonal'][i][0]%4,)+tuple(word['diagonal'][i][1:]):coefficient(1)}if i==j else {}for j in range(n)]for i in range(n)] + need(sorted(seen)==list(range(1,word['stages']+1)),'Every distinct native stage once') + need(rows==expected,'Every arbitrary-input forward coefficient') + return {'inputs':n,'coefficients':n*n,'native_stages':len(seen),'events':len(word['events']), + 'event_sha256':sha256(json.dumps(word['events'],separators=(',',':')).encode()).hexdigest()} + +def controls(word): + controls={} + for op in('LOCAL','QUERY','IDLE','IDLE_ONE','LAMBDA','ADD'): + bad=deepcopy(word);del bad['events'][next(i for i,e in enumerate(bad['events'])if e[0]==op)] + try:replay(bad) + except ValueError as error:controls['missing_'+op.lower()]=str(error) + else:raise ValueError('Missing gate accepted: '+op) + return controls diff --git a/research/p104-second-fragment-phase-audit/inputs/scalars.py.txt b/research/p104-second-fragment-phase-audit/inputs/scalars.py.txt new file mode 100644 index 0000000000..7b3a96488c --- /dev/null +++ b/research/p104-second-fragment-phase-audit/inputs/scalars.py.txt @@ -0,0 +1,31 @@ +"""Fresh ordinary scalar-work and coefficient-height envelope.""" +from collections import Counter +from fractions import Fraction as Q + +def verify(word): + total=height=maximum=0;counts=Counter() + for e in word['events']: + op=e[0];counts[op]+=1 + if op in('ADD','SCALE'): + c=Q(e[-1]);n,d=abs(c.numerator),c.denominator + if not n or d&(d-1):raise ValueError('Nonzero dyadic scalar required') + maximum=max(maximum,abs(c)) + if op=='ADD': + # Binary Horner: form n*x, divide by 2^log2(d), sign, add dst. + component=(n.bit_length()-1)+(n.bit_count()-1)+(d.bit_length()-1)+int(c<0)+1 + work=2*component + else: + if n&(n-1):raise ValueError('Scale must be a dyadic unit') + component=abs((n.bit_length()-1)-(d.bit_length()-1))+int(c<0) + work=2*component + increment=(n+d).bit_length()+(d.bit_length()-1)+1 + elif op=='LAMBDA': + # The retained four-operation two-address-pair implementation. + work,increment=16,8 + elif op=='SWAP':work,increment=8,4 + else:work,increment=0,0 + if work>32 or increment>32:raise ValueError('Fresh 32-unit ordinary envelope fails') + total+=work;height+=increment + return {'real_scalar_units_per_port':total,'coefficient_height_units':height, + 'max_scalar':str(maximum),'per_instruction_envelope':32,'event_census':dict(counts), + 'ordinary_lambdas':counts['LAMBDA'],'uncharged_gaussian_jobs':0} diff --git a/research/p104-second-fragment-phase-audit/oracle.py b/research/p104-second-fragment-phase-audit/oracle.py new file mode 100644 index 0000000000..14789a842f --- /dev/null +++ b/research/p104-second-fragment-phase-audit/oracle.py @@ -0,0 +1,382 @@ +#!/usr/bin/env python3 +"""Independent reverse-output-row transport of literal formal event matrices.""" +import argparse +import copy +from fractions import Fraction +import hashlib +import json +from pathlib import Path +import re +import sys + +HERE = Path(__file__).resolve().parent +METADATA = { + "CONTRACT.json": "b0288cba97a7171a41817d32c255c971201b0ef2b32bbfea6c161bed917a216f", + "CASES.json": "74f116e973e2fb1cd5653926bd001dc18ddbca3f52f08b14f2d8e3bf3fd0bc34", + "SOURCE-PINS.json": "1fcb4715775c545350fe2a179e73d11ea02266a3d27ae53d9dd18492d203b5e5"} +JSON_SOURCES = ("CONTROLLER-UNRETIRED.json", "CONTROLLER-ONE-RETIRED.json", + "CONTROLLER.json", "RETIREMENT-WITNESSES.json") +ZERO_KEY = (0,) * 20 +GZERO = (Fraction(0), Fraction(0)) +GONE = (Fraction(1), Fraction(0)) + + +def need(condition, message): + if not condition: + raise ValueError(message) + + +def integer(value): + need(type(value) is int, "proof integer excludes Boolean") + return value + + +def pairs(items): + result = {} + for key, value in items: + need(key not in result, "duplicate JSON key") + result[key] = value + return result + + +def no_float(_): + raise ValueError("float or nonfinite JSON token") + + +def decode(raw): + need(len(raw) <= 8*1024*1024, "JSON input cap") + return json.loads(raw, object_pairs_hook=pairs, parse_float=no_float, parse_constant=no_float) + + +def load(path): + return decode(path.read_bytes()) + + +def canonical(packet): + return json.dumps(packet, sort_keys=True, separators=(",", ":"), ensure_ascii=True).encode("ascii") + b"\n" + + +def authenticate(base): + for name, expected in METADATA.items(): + need(hashlib.sha256((base/name).read_bytes()).hexdigest() == expected, + "frozen metadata drift: " + name) + pins = load(base/"SOURCE-PINS.json") + need(len(pins["sources"]) == 12, "twelve source objects") + seen = set() + for row in pins["sources"]: + name = row["local_path"] + need(type(name) is str and name.startswith("inputs/") and ".." not in Path(name).parts + and name not in seen, "source path schema") + seen.add(name) + raw = (base/name).read_bytes() + need(len(raw) == integer(row["bytes"]), "source size drift: " + name) + need(hashlib.sha256(raw).hexdigest() == row["sha256"], "source SHA256 drift: " + name) + header = ("blob " + str(len(raw))).encode("ascii") + b"\0" + need(hashlib.sha1(header+raw).hexdigest() == row["git_blob"], "source Git blob drift: " + name) + return {name: hashlib.sha256((base/"inputs"/name).read_bytes()).hexdigest() + for name in JSON_SOURCES} + + +def gadd(a, b): + return (a[0]+b[0], a[1]+b[1]) + + +def gmul(a, b): + return (a[0]*b[0]-a[1]*b[1], a[0]*b[1]+a[1]*b[0]) + + +def add_poly(a, b): + result = a.copy() + for key, value in b.items(): + summed = gadd(result.get(key, GZERO), value) + if summed == GZERO: + result.pop(key, None) + else: + result[key] = summed + need(len(result) <= 100000, "polynomial term cap") + return result + + +def multiply(a, b): + result = {} + for ka, va in a.items(): + for kb, vb in b.items(): + key = ((ka[0]+kb[0]) % 4, 0) + tuple(ka[j]+kb[j] for j in range(2, 20)) + coefficient = gadd(result.get(key, GZERO), gmul(va, vb)) + if coefficient == GZERO: + result.pop(key, None) + else: + result[key] = coefficient + need(len(result) <= 100000, "polynomial product cap") + return result + + +def monomial(exponent=0, stages=(), coefficient=GONE): + key = [0] * 20 + key[0] = integer(exponent) % 4 + for stage in stages: + need(1 <= integer(stage) <= 18, "stage range") + key[stage+1] += 1 + return {} if coefficient == GZERO else {tuple(key): coefficient} + + +def scalar(text): + need(type(text) is str and re.fullmatch(r"[+-]?[0-9]+(?:/[0-9]+)?", text), "rational scalar text") + value = Fraction(text) + need(value != 0 and value.denominator & (value.denominator-1) == 0, "nonzero dyadic scalar") + return monomial(coefficient=(value, Fraction(0))) + + +def lambda_poly(sign): + need(type(sign) is int and sign in (-1, 1), "lambda sign") + half = Fraction(1, 2) + return add_poly(monomial(0, coefficient=(half, sign*half)), + monomial(2, coefficient=(half, -sign*half))) + + +def set_field(row, index, value): + if value: + row[index] = value + else: + row.pop(index, None) + + +def transport_event(row, event, roles): + need(type(event) is list and event and type(event[0]) is str, "event shape") + op = event[0] + indices = {"ADD": (1,2), "SCALE": (1,), "SWAP": (1,2), "QUERY": (1,2), + "LOCAL": (2,3), "IDLE": (1,2), "IDLE_ONE": (1,), + "Q_POWER": (1,), "LAMBDA": (1,)} + sizes = {"ADD":4,"SCALE":3,"SWAP":3,"QUERY":4,"LOCAL":4, + "IDLE":4,"IDLE_ONE":3,"Q_POWER":3,"LAMBDA":3} + need(op in sizes and len(event) == sizes[op], "unknown/ambiguous opcode") + for position in indices[op]: + need(0 <= integer(event[position]) < roles, "event role range") + if len(indices[op]) == 2: + need(event[indices[op][0]] != event[indices[op][1]], "distinct event roles") + if op == "SWAP": + a, b = event[1:] + olda, oldb = row.get(a, {}), row.get(b, {}) + set_field(row, a, oldb) + set_field(row, b, olda) + elif op in ("ADD", "QUERY"): + dst, src = event[1:3] + factor = scalar(event[3]) if op == "ADD" else monomial(integer(event[3])) + set_field(row, src, add_poly(row.get(src, {}), multiply(row.get(dst, {}), factor))) + elif op == "LOCAL": + stage, src, dst = event[1:] + body = monomial(stages=(stage,)) + set_field(row, src, multiply(row.get(src, {}), body)) + set_field(row, dst, multiply(row.get(dst, {}), body)) + set_field(row, src, add_poly(row.get(src, {}), multiply(row.get(dst, {}), monomial(-1)))) + else: + transport_diagonal(row, event) + + +def transport_diagonal(row, event): + op, role = event[:2] + if op == "SCALE": + factor = scalar(event[2]) + elif op == "Q_POWER": + factor = monomial(integer(event[2])) + elif op == "LAMBDA": + factor = lambda_poly(event[2]) + else: + stages = event[3] if op == "IDLE" else event[2] + need(type(stages) is list, "stage-list type") + factor = monomial(stages=stages) + set_field(row, role, multiply(row.get(role, {}), factor)) + if op == "IDLE": + other = event[2] + set_field(row, other, multiply(row.get(other, {}), factor)) + + +def reverse_rows(events, roles): + need(type(events) is list and 0 < len(events) <= 607 and 1 <= roles <= 34, "matrix bounds") + matrix = [] + for output in range(roles): + row = {output: monomial()} + for event in reversed(events): + transport_event(row, event, roles) + matrix.append([row.get(column, {}) for column in range(roles)]) + return matrix + + +def target_matrix(controller): + roles = integer(controller["roles"]) + need(len(controller["diagonal"]) == roles, "declared diagonal size") + result = [[{} for _ in range(roles)] for _ in range(roles)] + for index, raw in enumerate(controller["diagonal"]): + need(type(raw) is list and len(raw) == 20 and integer(raw[1]) == 0, "diagonal dummy/key shape") + need(all(type(value) is int for value in raw) and all(value >= 0 for value in raw[2:]), "diagonal exponent type") + key = (raw[0] % 4, 0, *raw[2:]) + result[index][index] = {key: GONE} + return result + + +def linear(polynomials, coefficients): + result = {} + for index, coefficient in coefficients.items(): + factor = monomial(coefficient=(Fraction(coefficient), Fraction(0))) + result = add_poly(result, multiply(polynomials[int(index)], factor)) + return result + + +def endpoint_gate(actual, expected): + need(actual == expected, "endpoint_mismatch") + + +def event_roles(event): + positions = {"ADD":(1,2),"SCALE":(1,),"SWAP":(1,2),"QUERY":(1,2), + "LOCAL":(2,3),"IDLE":(1,2),"IDLE_ONE":(1,), + "Q_POWER":(1,),"LAMBDA":(1,)} + need(type(event) is list and event and event[0] in positions, "chronology opcode") + return tuple(integer(event[position]) for position in positions[event[0]]) + + +def structural_binding(controller, one, witness): + expected = {"cut_after":394,"handoff_after":401,"pivot":4,"fresh":33, + "prefix_stages":[10]} + for name, value in expected.items(): + need(witness[name] == value, "second witness binding: " + name) + prefix_target = [0] * 20 + prefix_target[0], prefix_target[11] = -1, 1 + suffix_target = [0] * 20 + for stage in range(11, 15): + suffix_target[stage+1] = 1 + need(witness["prefix_target"] == prefix_target, "witness prefix target") + need(witness["suffix_target"] == suffix_target, "witness suffix target") + events = controller["events"] + need(events[:402] == witness["input_basis"] + one["events"][:395] + + witness["cut_basis"], "literal prefix concatenation") + need(all(33 not in event_roles(event) for event in events[:402]), "premature fresh33 contact") + need(all(4 not in event_roles(event) for event in events[402:]), "parked4 suffix contact") + + +def identity_gate(final, prefix, one, controller, contract, witnesses): + endpoint_gate(final, target_matrix(controller)) + retired = monomial(-1, (10,)) + for index in range(34): + need(prefix[4][index] == (retired if index == 4 else {}), "retired row phase") + need(prefix[index][4] == (retired if index == 4 else {}), "retired column phase") + need(prefix[33][index] == (monomial() if index == 33 else {}), "fresh row untouched") + need(prefix[index][33] == (monomial() if index == 33 else {}), "fresh column untouched") + pair = contract["pair"] + factor = multiply(lambda_poly(1), monomial(-1, (10,))) + for index in range(33): + pc = linear(one[index], pair["c"]) + bp = linear([one[j][index] for j in range(33)], pair["b"]) + a = pair["a"].get(str(index), 0) + d = pair["d"].get(str(index), 0) + need(pc == multiply(factor, monomial(coefficient=(Fraction(a), Fraction(0)))), "Pc phase identity") + need(bp == multiply(factor, monomial(coefficient=(Fraction(d), Fraction(0)))), "bP phase identity") + unit_and_inverse(pair, witnesses[1]["cut_basis"]) + return {name: True for name in contract["identities"]} + + +def unit_and_inverse(pair, basis): + dc = sum(value*pair["c"].get(index, 0) for index, value in pair["d"].items()) + ba = sum(value*pair["a"].get(index, 0) for index, value in pair["b"].items()) + need(dc == 1 and ba == 1, "unit pairings") + inverse = [] + for event in reversed(basis): + op = event[0] + if op == "ADD": + inverse.append([op,event[1],event[2],str(-Fraction(event[3]))]) + elif op == "LAMBDA": + inverse.append([op,event[1],-integer(event[2])]) + elif op == "SWAP": + inverse.append(event[:]) + else: + raise ValueError("cut basis opcode") + expected = [[monomial() if i == j else {} for j in range(34)] for i in range(34)] + need(reverse_rows(basis+inverse, 34) == expected, "cut basis inverse") + need(reverse_rows(inverse+basis, 34) == expected, "inverse cut basis") + + +def mutate(events, case): + result = copy.deepcopy(events) + if "delete" in case: + del result[integer(case["delete"])] + elif "replace_index" in case: + result[integer(case["replace_index"])] = case["event"] + elif "swap_indices" in case: + a, b = map(integer, case["swap_indices"]) + result[a], result[b] = result[b], result[a] + elif "insert_index" in case: + result.insert(integer(case["insert_index"]), case["event"]) + else: + start, stop = map(integer, case["replace_slice"]) + result[start:stop] = case["events"] + return result + + +def semantic_controls(controller, cases): + expected = target_matrix(controller) + results = [] + for case in cases["controls"]: + actual = reverse_rows(mutate(controller["events"], case), 34) + try: + endpoint_gate(actual, expected) + except ValueError as error: + need(str(error) == "endpoint_mismatch", "wrong semantic failure") + results.append({"id":case["id"],"accepted":False,"failure_gate":"endpoint_mismatch"}) + else: + raise ValueError("semantic control accepted: " + case["id"]) + need(len(results) == 7, "seven semantic controls") + return results + + +def serialize_matrix(matrix): + return [[[[list(key),[value[0].numerator,value[0].denominator, + value[1].numerator,value[1].denominator]] + for key,value in sorted(cell.items())] for cell in row] for row in matrix] + + +def certificate(base): + sources = authenticate(base) + contract, cases = load(base/"CONTRACT.json"), load(base/"CASES.json") + controllers = {name: load(base/"inputs"/name) for name in JSON_SOURCES[:3]} + matrices = {} + for name, descriptor in contract["matrices"].items(): + data = controllers[descriptor["file"]] + need(integer(data["roles"]) == descriptor["roles"] and integer(data["stages"]) == 18, "controller dimensions") + count = integer(descriptor["take_events"]) + need(count <= len(data["events"]), "prefix event count") + matrices[name] = reverse_rows(data["events"][:count], data["roles"]) + controller = controllers["CONTROLLER.json"] + need(len(controller["events"]) == 606, "final word length") + witnesses = load(base/"inputs/RETIREMENT-WITNESSES.json") + structural_binding(controller, controllers["CONTROLLER-ONE-RETIRED.json"], witnesses[1]) + identities = identity_gate(matrices["final606"], matrices["prefix402"], + matrices["one_prefix395"], controller, contract, witnesses) + controls = semantic_controls(controller, cases) + return {"schema":contract["certificate"]["schema"],"sources":sources, + "matrices":{name:serialize_matrix(matrix) for name,matrix in matrices.items()}, + "identities":identities,"controls":controls} + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--inputs", type=Path, default=HERE) + parser.add_argument("--certificate-out", type=Path) + parser.add_argument("--check", type=Path) + args = parser.parse_args() + need(not(args.certificate_out and args.check), "choose emission or comparison") + packet = certificate(args.inputs) + raw = canonical(packet) + if args.certificate_out: + args.certificate_out.write_bytes(raw) + else: + actual = (args.check or HERE/"ORACLE.json").read_bytes() + decode(actual) + need(actual == raw, "whole actual certificate byte mismatch") + print("PASS_CUT401_REVERSE_ROWS matrices3 controls7 conditional_no_new_kappa") + + +if __name__ == "__main__": + try: + main() + except (OSError,ValueError,KeyError,TypeError,IndexError,ZeroDivisionError) as error: + print("FAIL_CUT401_REVERSE_ROWS: " + str(error), file=sys.stderr) + raise SystemExit(1) diff --git a/research/p104-second-fragment-phase-audit/primary.py b/research/p104-second-fragment-phase-audit/primary.py new file mode 100644 index 0000000000..037834e77b --- /dev/null +++ b/research/p104-second-fragment-phase-audit/primary.py @@ -0,0 +1,473 @@ +#!/usr/bin/env python3 +"""Independent sparse forward transport for the literal cut401 contract.""" +import argparse +from fractions import Fraction +from hashlib import sha256, sha1 +import json +from math import gcd +from pathlib import Path +import sys + +HERE = Path(__file__).resolve().parent +META = { + 'CONTRACT.json': 'b0288cba97a7171a41817d32c255c971201b0ef2b32bbfea6c161bed917a216f', + 'CASES.json': '74f116e973e2fb1cd5653926bd001dc18ddbca3f52f08b14f2d8e3bf3fd0bc34', + 'SOURCE-PINS.json': '1fcb4715775c545350fe2a179e73d11ea02266a3d27ae53d9dd18492d203b5e5', +} +STAGES = 18 +ZERO_KEY = (0,) * 20 +GZERO = (Fraction(0), Fraction(0)) +GONE = (Fraction(1), Fraction(0)) +MAX_TERMS = 100000 +JSON_LIMIT = 4 * 1024 * 1024 +SOURCE_NAMES = {'CONTROLLER.json', 'CONTROLLER-ONE-RETIRED.json', + 'CONTROLLER-UNRETIRED.json', 'RETIREMENT-WITNESSES.json'} + + +def need(condition, message): + if not condition: + raise ValueError(message) + + +def integer(value): + need(type(value) is int, 'integer excludes Boolean') + return value + + +def unique_pairs(pairs): + obj = {} + for key, value in pairs: + need(key not in obj, 'duplicate JSON key') + obj[key] = value + return obj + + +def forbidden_number(_): + raise ValueError('float/nonfinite JSON token') + + +def decode(data): + need(len(data) <= JSON_LIMIT, 'JSON size limit') + return json.loads(data, object_pairs_hook=unique_pairs, + parse_float=forbidden_number, parse_constant=forbidden_number) + + +def canonical(obj): + return json.dumps(obj, sort_keys=True, separators=(',', ':'), + ensure_ascii=True).encode('ascii') + b'\n' + + +def authenticate(inputs_dir): + raw_meta = {} + for name, expected in META.items(): + raw = (HERE / name).read_bytes() + need(sha256(raw).hexdigest() == expected, 'metadata hash drift: ' + name) + raw_meta[name] = raw + contract = decode(raw_meta['CONTRACT.json']) + cases = decode(raw_meta['CASES.json']) + pins = decode(raw_meta['SOURCE-PINS.json']) + need(type(pins) is dict and pins['source_head'] == + '435bbe91fb28cb1d7a569ca70c6c4e9eb302d486', 'exact source head') + need(type(pins['sources']) is list and len(pins['sources']) == 12, 'twelve source pins') + raw_sources = {} + for row in pins['sources']: + name = row['local_path'] + need(type(name) is str and name.startswith('inputs/') and + name[len('inputs/'):] not in ('', '.', '..') and + '/' not in name[len('inputs/'):] and name not in raw_sources, 'unique safe source path') + raw = (inputs_dir / name[len('inputs/'):]).read_bytes() + need(type(row['bytes']) is int and len(raw) == row['bytes'], 'source byte length: ' + name) + need(sha256(raw).hexdigest() == row['sha256'], 'source SHA256: ' + name) + header = b'blob ' + str(len(raw)).encode('ascii') + b'\0' + need(sha1(header + raw).hexdigest() == row['git_blob'], 'source Git blob: ' + name) + raw_sources[name] = raw + # All twelve objects, including inert code text, were authenticated as bytes + # before any literal controller or witness object is parsed. Never execute it. + data = {name: decode(raw_sources['inputs/' + name]) for name in SOURCE_NAMES} + sources = {name: sha256(raw_sources['inputs/' + name]).hexdigest() + for name in sorted(SOURCE_NAMES)} + return contract, cases, data, sources + + +def real_scalar(text): + need(type(text) is str and len(text) <= 128, 'rational scalar string') + try: + value = Fraction(text) + except (ValueError, ZeroDivisionError): + raise ValueError('invalid rational scalar') from None + need(value != 0 and value.denominator & (value.denominator - 1) == 0, 'nonzero dyadic scalar') + return value + + +def mono(q=0, stages=(), coefficient=GONE): + key = [0] * 20 + key[0] = q % 4 + for stage in stages: + need(type(stage) is int and 1 <= stage <= STAGES, 'stage index') + key[stage + 1] += 1 + return {tuple(key): coefficient} if coefficient != GZERO else {} + + +def add_key(a, b): + return ((a[0] + b[0]) % 4, 0) + tuple(a[k] + b[k] for k in range(2, 20)) + + +def gmul(a, b): + return a[0] * b[0] - a[1] * b[1], a[0] * b[1] + a[1] * b[0] + + +def plus(left, right, factor=None): + factor = mono() if factor is None else factor + out = dict(left) + for key, value in right.items(): + for fkey, fvalue in factor.items(): + target = add_key(key, fkey) + part = gmul(value, fvalue) + previous = out.get(target, GZERO) + total = previous[0] + part[0], previous[1] + part[1] + if total == GZERO: + out.pop(target, None) + else: + out[target] = total + need(len(out) <= MAX_TERMS, 'polynomial term limit') + return out + + +def times(poly, factor): + return plus({}, poly, factor) + + +def lambda_poly(sign): + need(type(sign) is int and sign in (-1, 1), 'lambda sign') + return plus(mono(coefficient=(Fraction(1, 2), Fraction(sign, 2))), + mono(q=2, coefficient=(Fraction(1, 2), Fraction(-sign, 2)))) + + +def identity(roles): + return [{row: mono()} for row in range(roles)] + + +def role(value, roles): + need(type(value) is int and 0 <= value < roles, 'role index') + return value + + +def instruction(event, roles): + need(type(event) is list and event and type(event[0]) is str, 'instruction list') + op = event[0] + sizes = {'ADD': 4, 'SCALE': 3, 'SWAP': 3, 'QUERY': 4, 'LOCAL': 4, + 'Q_POWER': 3, 'IDLE': 4, 'IDLE_ONE': 3, 'LAMBDA': 3} + need(op in sizes and len(event) == sizes[op], 'opcode/arity') + if op == 'LOCAL': + need(type(event[1]) is int and 1 <= event[1] <= STAGES, 'local stage') + fields = [role(event[2], roles), role(event[3], roles)] + elif op in ('ADD', 'SWAP', 'QUERY', 'IDLE'): + fields = [role(event[1], roles), role(event[2], roles)] + else: + fields = [role(event[1], roles)] + need(len(fields) == len(set(fields)), 'distinct instruction roles') + if op in ('ADD', 'SCALE'): + real_scalar(event[-1]) + if op in ('QUERY', 'Q_POWER'): + integer(event[-1]) + if op == 'LAMBDA': + need(type(event[2]) is int and event[2] in (-1, 1), 'lambda sign') + if op in ('IDLE', 'IDLE_ONE'): + need(type(event[-1]) is list, 'idle stage list') + for stage in event[-1]: + need(type(stage) is int and 1 <= stage <= STAGES, 'idle stage') + return op, fields + + +def axpy(matrix, dst, src, factor): + out = dict(matrix[dst]) + for col, poly in matrix[src].items(): + value = plus(out.get(col, {}), poly, factor) + if value: + out[col] = value + else: + out.pop(col, None) + matrix[dst] = out + + +def scale_row(matrix, field, factor): + matrix[field] = {col: value for col, poly in matrix[field].items() + if (value := times(poly, factor))} + + +def replay(events, roles, snapshots=()): + need(type(events) is list and len(events) <= 607, 'event limit') + matrix = identity(roles) + saved = {} + for count, event in enumerate(events, 1): + op, fields = instruction(event, roles) + if op == 'ADD': + axpy(matrix, fields[0], fields[1], mono(coefficient=(real_scalar(event[3]), Fraction(0)))) + elif op == 'SCALE': + scale_row(matrix, fields[0], mono(coefficient=(real_scalar(event[2]), Fraction(0)))) + elif op == 'SWAP': + matrix[fields[0]], matrix[fields[1]] = matrix[fields[1]], matrix[fields[0]] + elif op == 'QUERY': + axpy(matrix, fields[0], fields[1], mono(q=event[3])) + elif op == 'LOCAL': + src, dst = fields + axpy(matrix, dst, src, mono(q=-1)) + factor = mono(stages=(event[1],)) + scale_row(matrix, src, factor) + scale_row(matrix, dst, factor) + elif op == 'Q_POWER': + scale_row(matrix, fields[0], mono(q=event[2])) + elif op in ('IDLE', 'IDLE_ONE'): + factor = mono(stages=event[-1]) + for field in fields: + scale_row(matrix, field, factor) + elif op == 'LAMBDA': + scale_row(matrix, fields[0], lambda_poly(event[2])) + need(sum(len(poly) for row in matrix for poly in row.values()) <= MAX_TERMS, + 'matrix term limit') + if count in snapshots: + saved[count] = [{col: dict(poly) for col, poly in row.items()} for row in matrix] + return matrix, saved + + +def key20(value): + need(type(value) is list and len(value) == 20, 'twenty exponent slots') + for item in value: + integer(item) + need(value[1] == 0 and all(x >= 0 for x in value[2:]), 'dummy/stage exponents') + return (value[0] % 4, 0, *value[2:]) + + +def controller(obj, roles, events): + need(type(obj) is dict and obj['roles'] == roles and type(obj['roles']) is int, + 'controller roles') + need(type(obj['stages']) is int and obj['stages'] == STAGES, 'eighteen stages') + need(type(obj['events']) is list and len(obj['events']) == events, 'controller event count') + need(type(obj['diagonal']) is list and len(obj['diagonal']) == roles, 'entire diagonal') + expected = [{i: {key20(key): GONE}} for i, key in enumerate(obj['diagonal'])] + return expected + + +def column_combo(matrix, weights): + return [sum_polys((row.get(int(col), {}), coefficient) for col, coefficient in weights.items()) + for row in matrix] + + +def sum_polys(terms): + out = {} + for poly, coefficient in terms: + need(type(coefficient) is int, 'pair integer') + out = plus(out, poly, mono(coefficient=(Fraction(coefficient), Fraction(0)))) + return out + + +def row_combo(matrix, weights): + return [sum_polys((matrix[int(row)].get(col, {}), coefficient) + for row, coefficient in weights.items()) for col in range(len(matrix))] + + +def pair_vector(weights, size, factor): + return [times(mono(coefficient=(Fraction(weights.get(str(i), 0)), Fraction(0))), factor) + for i in range(size)] + + +def inverse_event(event): + op = event[0] + if op == 'ADD': + return [op, event[1], event[2], str(-real_scalar(event[3]))] + if op == 'SCALE': + return [op, event[1], str(1 / real_scalar(event[2]))] + if op == 'SWAP': + return list(event) + if op == 'LAMBDA': + return [op, event[1], -event[2]] + raise ValueError('unsupported cut inverse opcode') + + +def pairing(left, right): + return sum(left.get(k, 0) * value for k, value in right.items()) + + +def unit_and_cut(contract, final, witnesses): + pair = contract['pair'] + need(pairing(pair['d'], pair['c']) == 1 and pairing(pair['b'], pair['a']) == 1, + 'unit pairings') + need(type(witnesses) is list and len(witnesses) == 2, 'two witnesses') + witness = witnesses[1] + need(witness['cut_after'] == 394 and witness['handoff_after'] == 401 and + witness['pivot'] == 4 and witness['fresh'] == 33, 'second witness indices') + prefix_target = [-1] + [0] * 19 + prefix_target[11] = 1 + suffix_target = [0] * 20 + for stage in range(11, 15): + suffix_target[stage + 1] = 1 + need(witness['prefix_stages'] == [10] and + witness['prefix_target'] == prefix_target and + witness['suffix_target'] == suffix_target, 'second witness targets') + basis = witness['cut_basis'] + need(final['events'][398:402] == basis and final['events'][:3] == witness['input_basis'], + 'literal input/cut binding') + derived = [inverse_event(event) for event in reversed(basis)] + actual = [] + for source in final['events'][402:406]: + event = list(source) + positions = (1, 2) if event[0] in ('ADD', 'SWAP') else (1,) + for pos in positions: + if event[pos] == 33: + event[pos] = 4 + actual.append(event) + need(actual == derived, 'literal inverse order') + result, _ = replay(basis + actual, 34) + need(result == identity(34), 'cut basis inverse') + ordinary, _ = replay(basis[:-1], 34) + need(column_combo(ordinary, pair['a']) == pair_vector({'4': 1}, 34, mono()), + 'ordinary cut sends a to pivot') + need(ordinary[4] == {int(k): mono(coefficient=(Fraction(v), Fraction(0))) + for k, v in pair['b'].items()}, 'ordinary pivot row equals b') + inputs, _ = replay(witness['input_basis'], 34) + need(column_combo(inputs, {'4': 1}) == pair_vector(pair['c'], 34, mono()), + 'input column equals c') + need(row_combo(inputs, pair['d']) == pair_vector({'4': 1}, 34, mono()), + 'input dual row normalization') + + +def mutate(events, case): + changed = [list(event) for event in events] + if 'delete' in case: + del changed[integer(case['delete'])] + elif 'replace_index' in case: + changed[integer(case['replace_index'])] = list(case['event']) + elif 'swap_indices' in case: + a, b = map(integer, case['swap_indices']) + changed[a], changed[b] = changed[b], changed[a] + elif 'insert_index' in case: + changed.insert(integer(case['insert_index']), list(case['event'])) + elif 'replace_slice' in case: + a, b = map(integer, case['replace_slice']) + changed[a:b] = [list(event) for event in case['events']] + else: + raise ValueError('unknown semantic control') + return changed + + +def encode_poly(poly): + return [[list(key), [value[0].numerator, value[0].denominator, + value[1].numerator, value[1].denominator]] + for key, value in sorted(poly.items())] + + +def encode_matrix(matrix): + return [[encode_poly(row.get(col, {})) for col in range(len(matrix))] for row in matrix] + + +def calculate(contract, cases, data, sources): + final = data['CONTROLLER.json'] + expected = controller(final, 34, 606) + one = data['CONTROLLER-ONE-RETIRED.json'] + controller(one, 33, 592) + controller(data['CONTROLLER-UNRETIRED.json'], 32, 576) + witnesses = data['RETIREMENT-WITNESSES.json'] + need(type(witnesses) is list and len(witnesses) == 2, 'two retirement witnesses') + witness = witnesses[1] + need(final['events'][:402] == witness['input_basis'] + one['events'][:395] + + witness['cut_basis'], 'literal entire cut-prefix surgery') + need(all(4 not in instruction(event, 34)[1] for event in final['events'][402:]), + 'parked4 reused after retirement') + full, saved = replay(final['events'], 34, (402,)) + need(full == expected, 'endpoint_mismatch') + prefix = saved[402] + retired = mono(q=-1, stages=(10,)) + need(prefix[4] == {4: retired} and + all(row.get(4, {}) == (retired if i == 4 else {}) for i, row in enumerate(prefix)), + 'retired row/column4') + need(prefix[33] == {33: mono()} and + all(row.get(33, {}) == (mono() if i == 33 else {}) for i, row in enumerate(prefix)), + 'fresh33 row/column') + need(all(33 not in instruction(event, 34)[1] for event in final['events'][:402]), + 'fresh33 first chronology') + one_prefix, _ = replay(one['events'][:395], 33) + body = times(lambda_poly(1), mono(q=-1, stages=(10,))) + pair = contract['pair'] + need(column_combo(one_prefix, pair['c']) == pair_vector(pair['a'], 33, body), + 'one-prefix Pc') + need(row_combo(one_prefix, pair['b']) == pair_vector(pair['d'], 33, body), + 'one-prefix bP') + unit_and_cut(contract, final, witnesses) + need(type(cases['controls']) is list and len(cases['controls']) == 7, 'seven controls') + outcomes = [] + for case in cases['controls']: + altered, _ = replay(mutate(final['events'], case), 34) + need(altered != expected, 'semantic control accepted: ' + case['id']) + outcomes.append({'id': case['id'], 'accepted': False, 'failure_gate': 'endpoint_mismatch'}) + return {'schema': contract['certificate']['schema'], 'sources': sources, + 'matrices': {'final606': encode_matrix(full), 'prefix402': encode_matrix(prefix), + 'one_prefix395': encode_matrix(one_prefix)}, + 'identities': {name: True for name in contract['identities']}, 'controls': outcomes} + + +def validate_packet(obj, contract, cases): + need(type(obj) is dict and set(obj) == set(contract['certificate']['keys']), 'packet exact keys') + need(obj['schema'] == contract['certificate']['schema'], 'packet schema') + need(type(obj['sources']) is dict and set(obj['sources']) == SOURCE_NAMES and + all(type(x) is str for x in obj['sources'].values()), 'packet source hashes') + need(type(obj['matrices']) is dict and set(obj['matrices']) == set(contract['matrices']), + 'three entire matrices') + total = 0 + for name, desc in contract['matrices'].items(): + matrix = obj['matrices'][name] + need(type(matrix) is list and len(matrix) == desc['roles'], 'matrix rows') + for row in matrix: + need(type(row) is list and len(row) == desc['roles'], 'matrix columns') + for cell in row: + need(type(cell) is list, 'polynomial term list') + last = None + for term in cell: + need(type(term) is list and len(term) == 2, 'term pair') + key, coeff = term + normalized = key20(key) + need(key[0] in range(4) and tuple(key) == normalized, 'canonical exponent key') + need(last is None or last < normalized, 'sorted unique monomials') + last = normalized + need(type(coeff) is list and len(coeff) == 4, 'Gaussian rational quartet') + values = [integer(x) for x in coeff] + for num, den in ((values[0], values[1]), (values[2], values[3])): + need(den > 0 and gcd(num, den) == 1, 'reduced rational coefficient') + need(values[0] != 0 or values[2] != 0, 'omit zero terms') + total += 1 + need(total <= 3 * MAX_TERMS, 'packet term limit') + need(type(obj['identities']) is dict and set(obj['identities']) == set(contract['identities']) + and all(type(x) is bool and x for x in obj['identities'].values()), 'six true identities') + need(type(obj['controls']) is list and len(obj['controls']) == 7, 'seven ordered controls') + for row, case in zip(obj['controls'], cases['controls']): + need(type(row) is dict and set(row) == {'id', 'accepted', 'failure_gate'} and + row['id'] == case['id'] and type(row['accepted']) is bool and not row['accepted'] and + row['failure_gate'] == 'endpoint_mismatch', 'control record') + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + group = parser.add_mutually_exclusive_group() + group.add_argument('--certificate-out', type=Path) + group.add_argument('--check', type=Path) + parser.add_argument('--inputs-dir', type=Path, default=HERE / 'inputs') + args = parser.parse_args() + contract, cases, data, sources = authenticate(args.inputs_dir) + packet = calculate(contract, cases, data, sources) + validate_packet(packet, contract, cases) + expected = canonical(packet) + need(len(expected) <= JSON_LIMIT, 'certificate byte limit') + if args.certificate_out: + args.certificate_out.write_bytes(expected) + else: + raw = (args.check or HERE / 'CERTIFICATE.json').read_bytes() + validate_packet(decode(raw), contract, cases) + need(raw == expected, 'whole certificate bytes differ') + print('PASS_CUT401_FORWARD_SPARSE matrices3 identities6 controls7 no_native_admission') + + +if __name__ == '__main__': + try: + main() + except (OSError, ValueError, TypeError, KeyError, IndexError, ZeroDivisionError) as error: + print('FAIL_CUT401_FORWARD_SPARSE: ' + str(error), file=sys.stderr) + raise SystemExit(1)