2 """Summary consistency validation for the correctness-evidence package. 4 Interprets the shared correctness package bundle and verifies that downstream 5 rollups and closure flags stay consistent with the underlying per-case evidence. 8 python benchmarks/density_matrix/correctness_evidence/summary_consistency_validation.py 11 from __future__
import annotations
14 from pathlib
import Path
16 from benchmarks.density_matrix.correctness_evidence.correctness_bundle_validation
import (
17 build_artifact_bundle
as build_correctness_package_bundle,
19 from benchmarks.density_matrix.correctness_evidence.common
import (
20 CORRECTNESS_EVIDENCE_SUMMARY_SCHEMA_VERSION,
21 build_correctness_evidence_software_metadata,
22 correctness_evidence_output_dir,
23 write_artifact_bundle,
25 from benchmarks.density_matrix.correctness_evidence.records
import (
26 correctness_evidence_counted_supported_case,
28 from benchmarks.density_matrix.validation_scaffold
import require_bundle_fields
30 SUITE_NAME =
"correctness_evidence_summary_consistency" 31 ARTIFACT_FILENAME =
"summary_consistency_bundle.json" 33 ARTIFACT_CORE_FIELDS = (
46 correctness_package = build_correctness_package_bundle()
47 cases = correctness_package[
"cases"]
48 negative_cases = correctness_package[
"negative_cases"]
50 summary_consistency_pass = (
51 correctness_package[
"summary"][
"total_cases"] == len(cases)
52 and correctness_package[
"summary"][
"counted_supported_cases"] == counted_supported_cases
53 and correctness_package[
"summary"][
"unsupported_boundary_cases"] == len(negative_cases)
55 main_correctness_claim_completed = (
56 counted_supported_cases == len(cases)
57 and len(negative_cases) > 0
58 and all(case[
"status"] ==
"unsupported" for case
in negative_cases)
61 "suite_name": SUITE_NAME,
62 "status":
"pass" if summary_consistency_pass
else "fail",
63 "schema_version": CORRECTNESS_EVIDENCE_SUMMARY_SCHEMA_VERSION,
65 "selected_candidate": correctness_package[
"selected_candidate"],
68 "Only mandatory, complete, supported evidence may close the main " 69 "correctness claim for this package." 71 "boundary_visibility_rule": (
72 "Excluded, unsupported, or deferred evidence must remain visible " 73 "as claim-boundary evidence in downstream summaries." 77 "summary_consistency_pass": summary_consistency_pass,
78 "main_correctness_claim_completed": main_correctness_claim_completed,
79 "counted_supported_cases": counted_supported_cases,
80 "excluded_supported_cases": len(cases) - counted_supported_cases,
81 "unsupported_boundary_cases": len(negative_cases),
82 "planner_entry_boundary_cases": sum(
83 case[
"boundary_stage"] ==
"planner_entry" for case
in negative_cases
85 "descriptor_generation_boundary_cases": sum(
86 case[
"boundary_stage"] ==
"descriptor_generation" 87 for case
in negative_cases
89 "runtime_stage_boundary_cases": sum(
90 case[
"boundary_stage"] ==
"runtime_stage" for case
in negative_cases
93 "required_artifacts": [
95 "artifact_id":
"correctness_package",
96 "suite_name": correctness_package[
"suite_name"],
97 "status": correctness_package[
"status"],
98 "schema_version": correctness_package[
"schema_version"],
106 def main(argv: list[str] |
None =
None) -> int:
107 parser = argparse.ArgumentParser(description=__doc__)
111 default=DEFAULT_OUTPUT_DIR,
112 help=
"Directory to write the summary consistency bundle into.",
117 help=
"Suppress console output.",
119 args = parser.parse_args(argv)
126 "summary_consistency_pass={summary_consistency_pass}, main_correctness_claim_completed={main_correctness_claim_completed}".format(
130 print(
"Wrote {}".format(output_path))
132 return 0
if bundle[
"status"] ==
"pass" else 1
135 if __name__ ==
"__main__":
136 raise SystemExit(
main())
def correctness_evidence_output_dir
def correctness_evidence_counted_supported_case
def build_artifact_bundle()
def write_artifact_bundle
def build_correctness_evidence_software_metadata()
def require_bundle_fields