From 0e885fa8fd5695338305564a9ae85e1b865da3da Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Mon, 1 Jun 2026 01:07:37 +0000 Subject: [PATCH 01/19] =?UTF-8?q?WIP:=20Runtime/TestClaim=20Manager=20?= =?UTF-8?q?=E2=80=94=20authority=20over=20T-22=20eval=20execution,=20T-38?= =?UTF-8?q?=20str?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/v4-testclaim-corpus-eval.sh | 46 ++++++++++++++++++- .../v4_workflow_ci_runner_dag_smoke_test.rs | 23 ++++++++++ 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/scripts/v4-testclaim-corpus-eval.sh b/scripts/v4-testclaim-corpus-eval.sh index 9a9af04d6f8..72c13e95223 100755 --- a/scripts/v4-testclaim-corpus-eval.sh +++ b/scripts/v4-testclaim-corpus-eval.sh @@ -85,12 +85,14 @@ check_generated_rust_receipt() { local fixture_rs="${rust_out}/src/v4_test_claim_manual_eval_runtime_mvp.rs" local runner_rs="${rust_out}/src/v4_test_claim_workflow_testclaim_corpus_runner.rs" local roster_rs="${rust_out}/src/v4_test_claim_manual_manual_corpus_roster.rs" + local corpus_eval_rs="${rust_out}/src/v4_test_claim_workflow_manual_corpus_eval.rs" require_file "$eval_rs" require_file "$fixture_rs" require_file "$runner_rs" require_file "$roster_rs" + require_file "$corpus_eval_rs" - python3 - "$eval_rs" "$fixture_rs" "$runner_rs" "$roster_rs" <<'PY' + python3 - "$eval_rs" "$fixture_rs" "$runner_rs" "$roster_rs" "$corpus_eval_rs" <<'PY' from __future__ import annotations import sys @@ -388,10 +390,52 @@ def check_modeled_runner(runner_rs: Path, roster_rs: Path) -> None: check(roster_rs, roster_required) +def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: + source = corpus_eval_rs.read_text() + for name in [ + "manual_corpus_all_pass", + "manual_corpus_gate", + "witness_manual_corpus_gate_closed", + ]: + require(source, f"pub fn {name}", corpus_eval_rs, f"generated corpus eval function {name}") + + all_pass_body = generated_function(source, "manual_corpus_all_pass", corpus_eval_rs) + require_order( + all_pass_body, + [ + "let tally = corpus_report_tally(report);", + "tally.fail == Nat::Zero", + "tally.deferred == Nat::Zero", + ], + corpus_eval_rs, + "generated zero Fail/Deferred tally predicate", + ) + gate_body = generated_function(source, "manual_corpus_gate", corpus_eval_rs) + require_order( + gate_body, + [ + "manual_corpus_report_has_evidence(report.clone())", + "manual_corpus_all_pass(report)", + "false", + ], + corpus_eval_rs, + "generated non-empty roster gate before all-pass tally", + ) + require_order( + generated_function(source, "witness_manual_corpus_gate_closed", corpus_eval_rs), + [ + "manual_corpus_gate(run_manual_testclaim_corpus_eval())", + ], + corpus_eval_rs, + "generated witness folds modeled TestClaimRun roster", + ) + + try: check_generated_eval(Path(sys.argv[1])) check_generated_fixture(Path(sys.argv[2])) check_modeled_runner(Path(sys.argv[3]), Path(sys.argv[4])) + check_generated_corpus_eval(Path(sys.argv[5])) except ReceiptError as err: raise SystemExit(f"error: {err}") from err PY diff --git a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs index 2381fc70e32..a39310c37ed 100644 --- a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs +++ b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs @@ -26,6 +26,9 @@ const CI_YML_PATH: &str = ".github/workflows/ci.yml"; const CI_WORKFLOW_DAG: &str = include_str!("../../../../../dsl/gunbc/ci_github_actions_workflow.dag"); const CI_WORKFLOW_DAG_PATH: &str = "dsl/gunbc/ci_github_actions_workflow.dag"; +const TESTCLAIM_CORPUS_EVAL_SCRIPT: &str = + include_str!("../../../../../scripts/v4-testclaim-corpus-eval.sh"); +const TESTCLAIM_CORPUS_EVAL_SCRIPT_PATH: &str = "scripts/v4-testclaim-corpus-eval.sh"; const M1_BINDING_TEST_FILTER: &str = "v4_workflow_ci_runner_dag_smoke_test::v4_workflow_ci_m1_rust_emit_probe_modeled_and_bound_to_ci_yml"; const BANKRUPTCY_TIER0_BINDING_TEST_FILTER: &str = @@ -1391,3 +1394,23 @@ fn v4_workflow_ci_t38_dissolution_step_modeled_and_wired() { "{CI_DAG_PATH}: CiCommand sum type must exist" ); } + +#[test] +fn v4_workflow_ci_t38_script_checks_generated_manual_corpus_eval_receipt() { + for needle in [ + "src/v4_test_claim_workflow_manual_corpus_eval.rs", + "check_generated_corpus_eval", + "manual_corpus_all_pass", + "manual_corpus_gate", + "witness_manual_corpus_gate_closed", + "corpus_report_tally(report);", + "tally.fail == Nat::Zero", + "tally.deferred == Nat::Zero", + "manual_corpus_gate(run_manual_testclaim_corpus_eval())", + ] { + assert!( + TESTCLAIM_CORPUS_EVAL_SCRIPT.contains(needle), + "{TESTCLAIM_CORPUS_EVAL_SCRIPT_PATH}: missing generated corpus-eval receipt probe `{needle}`" + ); + } +} From 525a79a8ccdb7a687bf7631dc7a784d1407c018f Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Mon, 1 Jun 2026 01:16:08 +0000 Subject: [PATCH 02/19] fix(t38): require generated corpus tally conjunction --- scripts/v4-testclaim-corpus-eval.sh | 10 ++++++++++ .../v4_workflow_ci_runner_dag_smoke_test.rs | 2 ++ 2 files changed, 12 insertions(+) diff --git a/scripts/v4-testclaim-corpus-eval.sh b/scripts/v4-testclaim-corpus-eval.sh index 72c13e95223..c9fdc2acc9b 100755 --- a/scripts/v4-testclaim-corpus-eval.sh +++ b/scripts/v4-testclaim-corpus-eval.sh @@ -96,6 +96,7 @@ check_generated_rust_receipt() { from __future__ import annotations import sys +import re from pathlib import Path @@ -410,6 +411,15 @@ def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: corpus_eval_rs, "generated zero Fail/Deferred tally predicate", ) + normalized_all_pass = "".join(all_pass_body.split()) + fail_deferred_conjunction = re.compile( + r"(?:\(*tally\.fail==Nat::Zero\)*)&&(?:\(*tally\.deferred==Nat::Zero\)*)" + ) + if not fail_deferred_conjunction.search(normalized_all_pass): + raise ReceiptError( + f"{corpus_eval_rs}: manual_corpus_all_pass must directly conjoin " + "tally.fail == Nat::Zero && tally.deferred == Nat::Zero" + ) gate_body = generated_function(source, "manual_corpus_gate", corpus_eval_rs) require_order( gate_body, diff --git a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs index a39310c37ed..3fd6fa3537f 100644 --- a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs +++ b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs @@ -1406,6 +1406,8 @@ fn v4_workflow_ci_t38_script_checks_generated_manual_corpus_eval_receipt() { "corpus_report_tally(report);", "tally.fail == Nat::Zero", "tally.deferred == Nat::Zero", + "fail_deferred_conjunction", + "&&(?:\\(*tally\\.deferred==Nat::Zero", "manual_corpus_gate(run_manual_testclaim_corpus_eval())", ] { assert!( From 54c1c030d9dd4a5b0fe085cd3d3341fdb3d2ad1b Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Mon, 1 Jun 2026 01:42:07 +0000 Subject: [PATCH 03/19] =?UTF-8?q?WIP:=20Runtime/TestClaim=20Manager=20?= =?UTF-8?q?=E2=80=94=20authority=20over=20T-22=20eval=20execution,=20T-38?= =?UTF-8?q?=20str?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/v4-testclaim-corpus-eval.sh | 8 +++----- .../integration/v4_workflow_ci_runner_dag_smoke_test.rs | 5 ++--- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/scripts/v4-testclaim-corpus-eval.sh b/scripts/v4-testclaim-corpus-eval.sh index c9fdc2acc9b..abf488d01ef 100755 --- a/scripts/v4-testclaim-corpus-eval.sh +++ b/scripts/v4-testclaim-corpus-eval.sh @@ -405,20 +405,18 @@ def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: all_pass_body, [ "let tally = corpus_report_tally(report);", - "tally.fail == Nat::Zero", - "tally.deferred == Nat::Zero", ], corpus_eval_rs, - "generated zero Fail/Deferred tally predicate", + "generated tally source for zero Fail/Deferred predicate", ) normalized_all_pass = "".join(all_pass_body.split()) fail_deferred_conjunction = re.compile( - r"(?:\(*tally\.fail==Nat::Zero\)*)&&(?:\(*tally\.deferred==Nat::Zero\)*)" + r"tally\.fail[^&|;]*[Zz]ero[^&|;]*&&[^&|;]*tally\.deferred[^&|;]*[Zz]ero" ) if not fail_deferred_conjunction.search(normalized_all_pass): raise ReceiptError( f"{corpus_eval_rs}: manual_corpus_all_pass must directly conjoin " - "tally.fail == Nat::Zero && tally.deferred == Nat::Zero" + "the zero Fail check with the zero Deferred check via &&" ) gate_body = generated_function(source, "manual_corpus_gate", corpus_eval_rs) require_order( diff --git a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs index 3fd6fa3537f..edef5769584 100644 --- a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs +++ b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs @@ -1404,10 +1404,9 @@ fn v4_workflow_ci_t38_script_checks_generated_manual_corpus_eval_receipt() { "manual_corpus_gate", "witness_manual_corpus_gate_closed", "corpus_report_tally(report);", - "tally.fail == Nat::Zero", - "tally.deferred == Nat::Zero", "fail_deferred_conjunction", - "&&(?:\\(*tally\\.deferred==Nat::Zero", + "tally\\.fail[^&|;]*[Zz]ero", + "&&[^&|;]*tally\\.deferred[^&|;]*[Zz]ero", "manual_corpus_gate(run_manual_testclaim_corpus_eval())", ] { assert!( From c04adadf235d4551da05b2f66ad9548e795b2749 Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Mon, 1 Jun 2026 02:03:35 +0000 Subject: [PATCH 04/19] =?UTF-8?q?WIP:=20Runtime/TestClaim=20Manager=20?= =?UTF-8?q?=E2=80=94=20authority=20over=20T-22=20eval=20execution,=20T-38?= =?UTF-8?q?=20str?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/v4-testclaim-corpus-eval.sh | 19 ++++++++++--------- .../v4_workflow_ci_runner_dag_smoke_test.rs | 3 +++ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/scripts/v4-testclaim-corpus-eval.sh b/scripts/v4-testclaim-corpus-eval.sh index abf488d01ef..5210cb0bfef 100755 --- a/scripts/v4-testclaim-corpus-eval.sh +++ b/scripts/v4-testclaim-corpus-eval.sh @@ -419,16 +419,17 @@ def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: "the zero Fail check with the zero Deferred check via &&" ) gate_body = generated_function(source, "manual_corpus_gate", corpus_eval_rs) - require_order( - gate_body, - [ - "manual_corpus_report_has_evidence(report.clone())", - "manual_corpus_all_pass(report)", - "false", - ], - corpus_eval_rs, - "generated non-empty roster gate before all-pass tally", + normalized_gate = "".join(gate_body.split()) + gate_order = re.compile( + r"manual_corpus_report_has_evidence\([^)]*report[^)]*\)" + r".*manual_corpus_all_pass\([^)]*report[^)]*\)" + r".*false" ) + if not gate_order.search(normalized_gate): + raise ReceiptError( + f"{corpus_eval_rs}: manual_corpus_gate must check non-empty roster " + "evidence before manual_corpus_all_pass and retain a false fallback" + ) require_order( generated_function(source, "witness_manual_corpus_gate_closed", corpus_eval_rs), [ diff --git a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs index edef5769584..be786814924 100644 --- a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs +++ b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs @@ -1407,6 +1407,9 @@ fn v4_workflow_ci_t38_script_checks_generated_manual_corpus_eval_receipt() { "fail_deferred_conjunction", "tally\\.fail[^&|;]*[Zz]ero", "&&[^&|;]*tally\\.deferred[^&|;]*[Zz]ero", + "gate_order", + "manual_corpus_report_has_evidence\\([^)]*report", + "manual_corpus_all_pass\\([^)]*report", "manual_corpus_gate(run_manual_testclaim_corpus_eval())", ] { assert!( From 26223dabad7f7df282855de850b9ae4f8743a03a Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Mon, 1 Jun 2026 02:11:54 +0000 Subject: [PATCH 05/19] fix(t38): match modeled manual corpus gate --- scripts/v4-testclaim-corpus-eval.sh | 12 ++++++------ .../v4_workflow_ci_runner_dag_smoke_test.rs | 5 +++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/scripts/v4-testclaim-corpus-eval.sh b/scripts/v4-testclaim-corpus-eval.sh index 5210cb0bfef..6bdc1f53882 100755 --- a/scripts/v4-testclaim-corpus-eval.sh +++ b/scripts/v4-testclaim-corpus-eval.sh @@ -420,15 +420,15 @@ def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: ) gate_body = generated_function(source, "manual_corpus_gate", corpus_eval_rs) normalized_gate = "".join(gate_body.split()) - gate_order = re.compile( - r"manual_corpus_report_has_evidence\([^)]*report[^)]*\)" - r".*manual_corpus_all_pass\([^)]*report[^)]*\)" + inline_empty_gate = re.compile( + r"is_empty\([^)]*report[^)]*entries[^)]*\)" r".*false" + r".*manual_corpus_all_pass\([^)]*report[^)]*\)" ) - if not gate_order.search(normalized_gate): + if not inline_empty_gate.search(normalized_gate): raise ReceiptError( - f"{corpus_eval_rs}: manual_corpus_gate must check non-empty roster " - "evidence before manual_corpus_all_pass and retain a false fallback" + f"{corpus_eval_rs}: manual_corpus_gate must mirror the modeled inline " + "is_empty(report.entries) false fallback before manual_corpus_all_pass" ) require_order( generated_function(source, "witness_manual_corpus_gate_closed", corpus_eval_rs), diff --git a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs index be786814924..934f5dc353d 100644 --- a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs +++ b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs @@ -1407,8 +1407,9 @@ fn v4_workflow_ci_t38_script_checks_generated_manual_corpus_eval_receipt() { "fail_deferred_conjunction", "tally\\.fail[^&|;]*[Zz]ero", "&&[^&|;]*tally\\.deferred[^&|;]*[Zz]ero", - "gate_order", - "manual_corpus_report_has_evidence\\([^)]*report", + "inline_empty_gate", + "is_empty\\([^)]*report[^)]*entries", + ".*false", "manual_corpus_all_pass\\([^)]*report", "manual_corpus_gate(run_manual_testclaim_corpus_eval())", ] { From 17fa2136864fe5a2fba310b108eb6432f09472bc Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Mon, 1 Jun 2026 02:56:30 +0000 Subject: [PATCH 06/19] =?UTF-8?q?WIP:=20Runtime/TestClaim=20Manager=20?= =?UTF-8?q?=E2=80=94=20authority=20over=20T-22=20eval=20execution,=20T-38?= =?UTF-8?q?=20str?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/v4-testclaim-corpus-eval.sh | 4 ++-- .../integration/v4_workflow_ci_runner_dag_smoke_test.rs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/v4-testclaim-corpus-eval.sh b/scripts/v4-testclaim-corpus-eval.sh index 6bdc1f53882..0110e38f835 100755 --- a/scripts/v4-testclaim-corpus-eval.sh +++ b/scripts/v4-testclaim-corpus-eval.sh @@ -411,7 +411,7 @@ def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: ) normalized_all_pass = "".join(all_pass_body.split()) fail_deferred_conjunction = re.compile( - r"tally\.fail[^&|;]*[Zz]ero[^&|;]*&&[^&|;]*tally\.deferred[^&|;]*[Zz]ero" + r"tally\.fail={2}[^&|;=!]*[Zz]ero[^&|;]*&&[^&|;]*tally\.deferred={2}[^&|;=!]*[Zz]ero" ) if not fail_deferred_conjunction.search(normalized_all_pass): raise ReceiptError( @@ -421,7 +421,7 @@ def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: gate_body = generated_function(source, "manual_corpus_gate", corpus_eval_rs) normalized_gate = "".join(gate_body.split()) inline_empty_gate = re.compile( - r"is_empty\([^)]*report[^)]*entries[^)]*\)" + r"(? Date: Mon, 1 Jun 2026 02:57:59 +0000 Subject: [PATCH 07/19] =?UTF-8?q?WIP:=20Runtime/TestClaim=20Manager=20?= =?UTF-8?q?=E2=80=94=20authority=20over=20T-22=20eval=20execution,=20T-38?= =?UTF-8?q?=20str?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/v4-testclaim-corpus-eval.sh | 8 ++++---- .../v4_workflow_ci_runner_dag_smoke_test.rs | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/v4-testclaim-corpus-eval.sh b/scripts/v4-testclaim-corpus-eval.sh index 0110e38f835..ef24911ef6d 100755 --- a/scripts/v4-testclaim-corpus-eval.sh +++ b/scripts/v4-testclaim-corpus-eval.sh @@ -411,7 +411,8 @@ def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: ) normalized_all_pass = "".join(all_pass_body.split()) fail_deferred_conjunction = re.compile( - r"tally\.fail={2}[^&|;=!]*[Zz]ero[^&|;]*&&[^&|;]*tally\.deferred={2}[^&|;=!]*[Zz]ero" + r"tally\.fail={2}[^&|;=!]*(?:Nat::)?[Zz]ero\b[^&|;]*&&" + r"[^&|;]*tally\.deferred={2}[^&|;=!]*(?:Nat::)?[Zz]ero\b" ) if not fail_deferred_conjunction.search(normalized_all_pass): raise ReceiptError( @@ -421,9 +422,8 @@ def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: gate_body = generated_function(source, "manual_corpus_gate", corpus_eval_rs) normalized_gate = "".join(gate_body.split()) inline_empty_gate = re.compile( - r"(? Date: Mon, 1 Jun 2026 02:59:01 +0000 Subject: [PATCH 08/19] Tighten generated corpus eval receipt probes --- scripts/v4-testclaim-corpus-eval.sh | 4 ++-- .../tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/v4-testclaim-corpus-eval.sh b/scripts/v4-testclaim-corpus-eval.sh index ef24911ef6d..32990bcd2ec 100755 --- a/scripts/v4-testclaim-corpus-eval.sh +++ b/scripts/v4-testclaim-corpus-eval.sh @@ -411,8 +411,8 @@ def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: ) normalized_all_pass = "".join(all_pass_body.split()) fail_deferred_conjunction = re.compile( - r"tally\.fail={2}[^&|;=!]*(?:Nat::)?[Zz]ero\b[^&|;]*&&" - r"[^&|;]*tally\.deferred={2}[^&|;=!]*(?:Nat::)?[Zz]ero\b" + r"tally\.fail={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b[^&|;]*&&" + r"[^&|;]*tally\.deferred={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b" ) if not fail_deferred_conjunction.search(normalized_all_pass): raise ReceiptError( diff --git a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs index 33e73fadf90..8a1bff89627 100644 --- a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs +++ b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs @@ -1405,9 +1405,9 @@ fn v4_workflow_ci_t38_script_checks_generated_manual_corpus_eval_receipt() { "witness_manual_corpus_gate_closed", "corpus_report_tally(report);", "fail_deferred_conjunction", - "tally\\.fail={2}[^&|;=!]*(?:Nat::)?[Zz]ero\\b", + "tally\\.fail={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\\b", "&&", - "tally\\.deferred={2}[^&|;=!]*(?:Nat::)?[Zz]ero\\b", + "tally\\.deferred={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\\b", "inline_empty_gate", "if(? Date: Mon, 1 Jun 2026 03:02:24 +0000 Subject: [PATCH 09/19] Merge origin/main into T-38 receipt follow-up --- scripts/v4-testclaim-corpus-eval.sh | 5 ----- .../integration/v4_workflow_ci_runner_dag_smoke_test.rs | 6 ------ 2 files changed, 11 deletions(-) diff --git a/scripts/v4-testclaim-corpus-eval.sh b/scripts/v4-testclaim-corpus-eval.sh index 8132813d4d8..32990bcd2ec 100755 --- a/scripts/v4-testclaim-corpus-eval.sh +++ b/scripts/v4-testclaim-corpus-eval.sh @@ -411,13 +411,8 @@ def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: ) normalized_all_pass = "".join(all_pass_body.split()) fail_deferred_conjunction = re.compile( -<<<<<<< HEAD r"tally\.fail={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b[^&|;]*&&" r"[^&|;]*tally\.deferred={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b" -======= - r"tally\.fail={2}[^&|;=!]*(?:Nat::)?[Zz]ero\b[^&|;]*&&" - r"[^&|;]*tally\.deferred={2}[^&|;=!]*(?:Nat::)?[Zz]ero\b" ->>>>>>> origin/main ) if not fail_deferred_conjunction.search(normalized_all_pass): raise ReceiptError( diff --git a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs index 416642915cb..caab03c27d8 100644 --- a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs +++ b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs @@ -1340,15 +1340,9 @@ fn v4_workflow_ci_t38_script_checks_generated_manual_corpus_eval_receipt() { "witness_manual_corpus_gate_closed", "corpus_report_tally(report);", "fail_deferred_conjunction", -<<<<<<< HEAD "tally\\.fail={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\\b", "&&", "tally\\.deferred={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\\b", -======= - "tally\\.fail={2}[^&|;=!]*(?:Nat::)?[Zz]ero\\b", - "&&", - "tally\\.deferred={2}[^&|;=!]*(?:Nat::)?[Zz]ero\\b", ->>>>>>> origin/main "inline_empty_gate", "if(? Date: Mon, 1 Jun 2026 03:41:30 +0000 Subject: [PATCH 10/19] =?UTF-8?q?WIP:=20Runtime/TestClaim=20Manager=20?= =?UTF-8?q?=E2=80=94=20authority=20over=20T-22=20eval=20execution,=20T-38?= =?UTF-8?q?=20str?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/v4-testclaim-corpus-eval.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/v4-testclaim-corpus-eval.sh b/scripts/v4-testclaim-corpus-eval.sh index 32990bcd2ec..e2abbfebdcf 100755 --- a/scripts/v4-testclaim-corpus-eval.sh +++ b/scripts/v4-testclaim-corpus-eval.sh @@ -411,8 +411,8 @@ def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: ) normalized_all_pass = "".join(all_pass_body.split()) fail_deferred_conjunction = re.compile( - r"tally\.fail={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b[^&|;]*&&" - r"[^&|;]*tally\.deferred={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b" + r"tally\.fail={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b[^&|;=]*&&" + r"[^&|;]*tally\.deferred={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b[^&|;=]*(?:;|\})" ) if not fail_deferred_conjunction.search(normalized_all_pass): raise ReceiptError( From e5d810db8bdf47816fd902ea1824cb5c66f75dae Mon Sep 17 00:00:00 2001 From: Brian Searls Date: Mon, 1 Jun 2026 03:42:42 +0000 Subject: [PATCH 11/19] Test inverted corpus tally receipt rejection --- .../v4_workflow_ci_runner_dag_smoke_test.rs | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs index caab03c27d8..10dbb85886f 100644 --- a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs +++ b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs @@ -1341,8 +1341,10 @@ fn v4_workflow_ci_t38_script_checks_generated_manual_corpus_eval_receipt() { "corpus_report_tally(report);", "fail_deferred_conjunction", "tally\\.fail={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\\b", + "[^&|;=]*&&", "&&", "tally\\.deferred={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\\b", + "[^&|;=]*(?:;|\\})", "inline_empty_gate", "if(? Date: Mon, 1 Jun 2026 04:47:32 +0000 Subject: [PATCH 12/19] =?UTF-8?q?WIP:=20Runtime/TestClaim=20Manager=20?= =?UTF-8?q?=E2=80=94=20authority=20over=20T-22=20eval=20execution,=20T-38?= =?UTF-8?q?=20str?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/v4-testclaim-corpus-eval.sh | 12 +++++- .../v4_workflow_ci_runner_dag_smoke_test.rs | 37 ++++++++++++++----- 2 files changed, 38 insertions(+), 11 deletions(-) diff --git a/scripts/v4-testclaim-corpus-eval.sh b/scripts/v4-testclaim-corpus-eval.sh index e2abbfebdcf..ffed00b2410 100755 --- a/scripts/v4-testclaim-corpus-eval.sh +++ b/scripts/v4-testclaim-corpus-eval.sh @@ -410,9 +410,17 @@ def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: "generated tally source for zero Fail/Deferred predicate", ) normalized_all_pass = "".join(all_pass_body.split()) + inverted_zero_comparison = re.compile( + r"!\(*tally\.(?:fail|deferred)={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b\)*" + ) + if inverted_zero_comparison.search(normalized_all_pass): + raise ReceiptError( + f"{corpus_eval_rs}: manual_corpus_all_pass must not negate " + "the zero Fail or zero Deferred check" + ) fail_deferred_conjunction = re.compile( - r"tally\.fail={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b[^&|;=]*&&" - r"[^&|;]*tally\.deferred={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b[^&|;=]*(?:;|\})" + r"(? Date: Mon, 1 Jun 2026 05:26:30 +0000 Subject: [PATCH 13/19] =?UTF-8?q?WIP:=20Runtime/TestClaim=20Manager=20?= =?UTF-8?q?=E2=80=94=20authority=20over=20T-22=20eval=20execution,=20T-38?= =?UTF-8?q?=20str?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/v4-testclaim-corpus-eval.sh | 3 ++- .../v4_workflow_ci_runner_dag_smoke_test.rs | 25 ++++++++++++------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/scripts/v4-testclaim-corpus-eval.sh b/scripts/v4-testclaim-corpus-eval.sh index ffed00b2410..6bcc4cb3391 100755 --- a/scripts/v4-testclaim-corpus-eval.sh +++ b/scripts/v4-testclaim-corpus-eval.sh @@ -411,7 +411,8 @@ def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: ) normalized_all_pass = "".join(all_pass_body.split()) inverted_zero_comparison = re.compile( - r"!\(*tally\.(?:fail|deferred)={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b\)*" + r"(? Date: Mon, 1 Jun 2026 05:28:00 +0000 Subject: [PATCH 14/19] =?UTF-8?q?WIP:=20Runtime/TestClaim=20Manager=20?= =?UTF-8?q?=E2=80=94=20authority=20over=20T-22=20eval=20execution,=20T-38?= =?UTF-8?q?=20str?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v4_workflow_ci_runner_dag_smoke_test.rs | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs index f560aa93530..fd8be8bac9a 100644 --- a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs +++ b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs @@ -1367,10 +1367,10 @@ fn v4_workflow_ci_t38_script_receipt_rejects_inverted_zero_predicates() { r#" import re - inverted_zero_comparison = re.compile( - r"(? Date: Mon, 1 Jun 2026 07:05:24 +0000 Subject: [PATCH 15/19] =?UTF-8?q?WIP:=20Runtime/TestClaim=20Manager=20?= =?UTF-8?q?=E2=80=94=20authority=20over=20T-22=20eval=20execution,=20T-38?= =?UTF-8?q?=20str?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/v4-testclaim-corpus-eval.sh | 6 +-- .../v4_workflow_ci_runner_dag_smoke_test.rs | 52 +++++++++++-------- 2 files changed, 32 insertions(+), 26 deletions(-) diff --git a/scripts/v4-testclaim-corpus-eval.sh b/scripts/v4-testclaim-corpus-eval.sh index 6bcc4cb3391..fa95da5c3ce 100755 --- a/scripts/v4-testclaim-corpus-eval.sh +++ b/scripts/v4-testclaim-corpus-eval.sh @@ -411,7 +411,7 @@ def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: ) normalized_all_pass = "".join(all_pass_body.split()) inverted_zero_comparison = re.compile( - r"(? None: "the zero Fail or zero Deferred check" ) fail_deferred_conjunction = re.compile( - r"(? Date: Mon, 1 Jun 2026 07:06:46 +0000 Subject: [PATCH 16/19] Tighten T-38 receipt smoke needle --- .../tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs index 491fe20ee66..e24ebcbfea4 100644 --- a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs +++ b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs @@ -1340,7 +1340,7 @@ fn v4_workflow_ci_t38_script_checks_generated_manual_corpus_eval_receipt() { "witness_manual_corpus_gate_closed", "corpus_report_tally(report);", "inverted_zero_comparison", - "(? Date: Mon, 1 Jun 2026 08:50:35 +0000 Subject: [PATCH 17/19] =?UTF-8?q?WIP:=20Runtime/TestClaim=20Manager=20?= =?UTF-8?q?=E2=80=94=20authority=20over=20T-22=20eval=20execution,=20T-38?= =?UTF-8?q?=20str?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/v4-testclaim-corpus-eval.sh | 4 ++-- .../integration/v4_workflow_ci_runner_dag_smoke_test.rs | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/scripts/v4-testclaim-corpus-eval.sh b/scripts/v4-testclaim-corpus-eval.sh index fa95da5c3ce..5206f7aa1c3 100755 --- a/scripts/v4-testclaim-corpus-eval.sh +++ b/scripts/v4-testclaim-corpus-eval.sh @@ -418,10 +418,10 @@ def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: raise ReceiptError( f"{corpus_eval_rs}: manual_corpus_all_pass must not negate " "the zero Fail or zero Deferred check" - ) + ) fail_deferred_conjunction = re.compile( r"(?:^|;)\(*tally\.fail={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b\)*&&" - r"\(*tally\.deferred={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b\)*(?:;|\})" + r"\(*tally\.deferred={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b\)*\}" ) if not fail_deferred_conjunction.search(normalized_all_pass): raise ReceiptError( diff --git a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs index e24ebcbfea4..225818fe6a2 100644 --- a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs +++ b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs @@ -1346,7 +1346,7 @@ fn v4_workflow_ci_t38_script_checks_generated_manual_corpus_eval_receipt() { "\\)*&&", "&&", "tally\\.deferred={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\\b", - "\\)*(?:;|\\})", + "\\)*\\}", "inline_empty_gate", "if(? Date: Mon, 1 Jun 2026 09:47:27 +0000 Subject: [PATCH 18/19] Anchor T-38 tally receipt to body tail --- scripts/v4-testclaim-corpus-eval.sh | 2 +- .../integration/v4_workflow_ci_runner_dag_smoke_test.rs | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/scripts/v4-testclaim-corpus-eval.sh b/scripts/v4-testclaim-corpus-eval.sh index 5206f7aa1c3..53c971866e6 100755 --- a/scripts/v4-testclaim-corpus-eval.sh +++ b/scripts/v4-testclaim-corpus-eval.sh @@ -421,7 +421,7 @@ def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: ) fail_deferred_conjunction = re.compile( r"(?:^|;)\(*tally\.fail={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b\)*&&" - r"\(*tally\.deferred={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b\)*\}" + r"\(*tally\.deferred={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b\)*\}$" ) if not fail_deferred_conjunction.search(normalized_all_pass): raise ReceiptError( diff --git a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs index 225818fe6a2..15ae23c2559 100644 --- a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs +++ b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs @@ -1346,7 +1346,7 @@ fn v4_workflow_ci_t38_script_checks_generated_manual_corpus_eval_receipt() { "\\)*&&", "&&", "tally\\.deferred={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\\b", - "\\)*\\}", + "\\)*\\}$", "inline_empty_gate", "if(? Date: Mon, 1 Jun 2026 11:07:10 +0000 Subject: [PATCH 19/19] =?UTF-8?q?WIP:=20Runtime/TestClaim=20Manager=20?= =?UTF-8?q?=E2=80=94=20authority=20over=20T-22=20eval=20execution,=20T-38?= =?UTF-8?q?=20str?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/v4-testclaim-corpus-eval.sh | 8 +++++++- .../v4_workflow_ci_runner_dag_smoke_test.rs | 11 +++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/scripts/v4-testclaim-corpus-eval.sh b/scripts/v4-testclaim-corpus-eval.sh index 53c971866e6..71b70a47b59 100755 --- a/scripts/v4-testclaim-corpus-eval.sh +++ b/scripts/v4-testclaim-corpus-eval.sh @@ -409,6 +409,12 @@ def check_generated_corpus_eval(corpus_eval_rs: Path) -> None: corpus_eval_rs, "generated tally source for zero Fail/Deferred predicate", ) + explicit_return = re.compile(r"\breturn\b") + if explicit_return.search(all_pass_body): + raise ReceiptError( + f"{corpus_eval_rs}: manual_corpus_all_pass must return " + "the zero Fail and zero Deferred check as its final expression" + ) normalized_all_pass = "".join(all_pass_body.split()) inverted_zero_comparison = re.compile( r"(? None: raise ReceiptError( f"{corpus_eval_rs}: manual_corpus_all_pass must not negate " "the zero Fail or zero Deferred check" - ) + ) fail_deferred_conjunction = re.compile( r"(?:^|;)\(*tally\.fail={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b\)*&&" r"\(*tally\.deferred={2}[^&|;=!A-Za-z0-9_:]*(?:Nat::)?[Zz]ero\b\)*\}$" diff --git a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs index 15ae23c2559..403c7ad045c 100644 --- a/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs +++ b/src/v3/compiler/tests/integration/v4_workflow_ci_runner_dag_smoke_test.rs @@ -1339,6 +1339,8 @@ fn v4_workflow_ci_t38_script_checks_generated_manual_corpus_eval_receipt() { "manual_corpus_gate", "witness_manual_corpus_gate_closed", "corpus_report_tally(report);", + "explicit_return", + "\\breturn\\b", "inverted_zero_comparison", "(?