Sequential Quantum Gate Decomposer  v1.9.6
Powerful decomposition of general unitarias into one- and two-qubit gates gates
phase31_sequential_correctness_validation.py
Go to the documentation of this file.
1 #!/usr/bin/env python3
2 """Stage-A Phase 3.1 sequential / internal reference gate (six cases).
3 
4 Run with:
5  python benchmarks/density_matrix/correctness_evidence/phase31_sequential_correctness_validation.py
6 """
7 
8 from __future__ import annotations
9 
10 from benchmarks.density_matrix.correctness_evidence.common import (
11  CORRECTNESS_EVIDENCE_PHASE31_CASE_SCHEMA_VERSION,
12  phase31_correctness_evidence_output_dir,
13 )
14 from benchmarks.density_matrix.correctness_evidence.records import (
15  build_phase31_correctness_evidence_positive_records,
16 )
17 from benchmarks.density_matrix.correctness_evidence.validation_support import (
18  assemble_positive_case_bundle,
19 )
20 from benchmarks.density_matrix.validation_scaffold import (
21  require_bundle_fields,
22  run_case_slice_cli,
23 )
24 
25 SUITE_NAME = "correctness_evidence_phase31_sequential_correctness"
26 ARTIFACT_FILENAME = "phase31_sequential_correctness_bundle.json"
27 DEFAULT_OUTPUT_DIR = phase31_correctness_evidence_output_dir("sequential_correctness")
28 ARTIFACT_CORE_FIELDS = (
29  "suite_name",
30  "status",
31  "record_schema_version",
32  "software",
33  "selected_candidate",
34  "summary",
35  "cases",
36 )
37 
38 
39 def build_cases() -> list[dict]:
41 
42 
43 def build_artifact_bundle(cases: list[dict]) -> dict:
44  internal_passes = sum(case["internal_reference_pass"] for case in cases)
45  supported_runtime_cases = sum(case["supported_runtime_case"] for case in cases)
46  status = (
47  "pass"
48  if len(cases) == 6
49  and internal_passes == len(cases)
50  and supported_runtime_cases == len(cases)
51  else "fail"
52  )
53  summary = {
54  "package_kind": "phase31_stage_a_bounded",
55  "total_cases": len(cases),
56  "supported_runtime_cases": supported_runtime_cases,
57  "internal_reference_passes": internal_passes,
58  "actual_fused_cases": sum(case["actual_fused_execution"] for case in cases),
59  }
61  SUITE_NAME,
62  status,
63  summary,
64  cases,
65  record_schema_version=CORRECTNESS_EVIDENCE_PHASE31_CASE_SCHEMA_VERSION,
66  )
67  require_bundle_fields(bundle, ARTIFACT_CORE_FIELDS, "Phase 3.1 sequential correctness bundle")
68  return bundle
69 
70 
71 def main(argv: list[str] | None = None) -> int:
72  return run_case_slice_cli(
73  argv,
74  build_cases=build_cases,
75  build_artifact_bundle=build_artifact_bundle,
76  artifact_filename=ARTIFACT_FILENAME,
77  default_output_dir=DEFAULT_OUTPUT_DIR,
78  description=__doc__ or "",
79  output_dir_help="Directory to write the Phase 3.1 sequential correctness bundle into.",
80  quiet_report=lambda b: print(
81  "supported_runtime_cases={supported_runtime_cases}, internal_reference_passes={internal_reference_passes}".format(
82  **b["summary"]
83  )
84  ),
85  )
86 
87 
88 if __name__ == "__main__":
89  raise SystemExit(main())
def build_phase31_correctness_evidence_positive_records()
def phase31_correctness_evidence_output_dir