Validation coverage matrix¶
English · 简体中文
This document records “where each algorithm’s evidence lives”, corresponding
line by line with the “how correctness is proven” of validation-plan.md and
the “what is implemented” of algorithm-coverage.md (see the division of
labor in validation-plan.md §6). validation.md / validation.json keep
carrying the per-version acceptance-snapshot duty; this table describes the
live coverage state of the current development version, and new algorithms or
new witnesses must synchronize it (maintenance rules in the final section).
Per-algorithm interface and validation details live on each algorithm page
(../zh/manual/algorithms/index.html).
Categories and acceptance criteria follow validation-plan.md §2 (C1 exact
discrete, C2 approximate continuous, C3 probability distribution, C4
heuristic/optimization, C5 data access, C6 composition skeleton); stages
(V1–V4) are in §5 of the same document. The three evidence layers mean
structural validity, small-scale numerical witnesses, and bindability (plan
general principles §1).
Witness primitives (tests/core/witness.py)¶
tests/core/witness.py provides four assertion primitives shared across
algorithms; every primitive takes a unittest.TestCase instance as its first
argument and raises AssertionError on failure. The file name lacks the
test_ prefix, so unittest discover never collects it; the self-tests of its
correctness live in tests/core/test_witness.py (four test classes —
UnitaryWitnessTests, UncomputationWitnessTests,
BindInvariantWitnessTests, BlockEqualsWitnessTests — 11 cases in total).
Primitive |
Signature |
Purpose |
Conventions |
|---|---|---|---|
|
|
Sampled witness of W†W = I: each basis-state column normalized (Σ|a|²=1) and pairwise orthogonal |
|
|
|
Uncomputation witness: the simulator forces uncomputation at LocalExit, and the primitive converts |
Returns the state of |
|
|
The candidate implementations of the same abstract slot must give consistent observable distributions |
|
|
|
The BE’s (0,0) block is cross-checked column by column against the dense matrix (multiplying |
Relies only on the |
The helper block_column(be, column) is exported separately so callers can
reuse it in custom assertions (e.g. test_matches_pauli_encoding_block in
test_lowrank.py builds the other side’s BE itself and cross-checks row by
row).
Coverage matrix¶
infrastructure / data-access layer (C5)¶
Module |
Algorithms |
Class |
Structural evidence |
Numerical evidence |
Binding evidence |
Gap |
Stage |
|---|---|---|---|---|---|---|---|
|
C5 |
|
|
The same class’s |
Triple-binding consistency parametrization (V4 rollout) |
V4 |
|
|
C5 |
|
The same class’s |
Both |
Triple-binding parametrization (V4) |
V4 |
|
|
C5 |
|
|
— |
Explicit witness of the fixed-point quantization error bound not yet added |
V2 |
|
|
C5/C1 |
|
The same class’s |
|
alias triple-binding consistency (gate/qram currently lack an independent scenario) |
V4 |
Exact discrete algorithms (C1)¶
Module |
Algorithms |
Class |
Structural evidence |
Numerical evidence |
Binding evidence |
Gap |
Stage |
|---|---|---|---|---|---|---|---|
|
C1 |
|
The same class’s |
— |
— |
V1 |
|
|
C1 |
|
|
— |
— |
V1 |
|
|
C1 |
|
|
— |
— |
V1 |
|
|
C1 |
|
|
— |
Already noted as not extrapolating to full Shor (original wording kept) |
— |
|
|
C1 |
|
|
— |
— |
V1 |
|
|
C1 |
|
|
— |
— |
V1 |
|
|
C1 |
|
|
|
Johnson graphs require new witnesses (element distinctness) |
V3 |
Approximate continuous algorithms (C2)¶
Module |
Algorithms |
Class |
Structural evidence |
Numerical evidence |
Binding evidence |
Gap |
Stage |
|---|---|---|---|---|---|---|---|
|
C2 |
|
|
— |
— |
V1 |
|
|
phase synthesis, inversion, filtering, HS simulation, fixed-point search |
C2 |
|
|
— |
Convergence scans missing; the ill-conditioned negative cases (degree ≳ 16 or too-low precision) are partially covered by the parametrized input_validation tests, and a separate batch parametrization of “ill-conditioned inputs must raise” is still to be added |
V2 |
|
C2 |
|
Stage ordering covered indirectly by |
— |
Trotter order-error-rate scan |
V2 |
|
|
C2 |
|
The same class’s |
|
— |
V1 |
|
|
C2 |
|
|
|
End-to-end cross-check against the HHL paper’s reference values (could enter the catalog) |
V3 |
|
|
C2 |
|
|
The schedule-independence witnesses of |
Band-polynomial precision calibration and transition-band complex-amplitude cross-checks; the amplitude-estimation channel of the VTAA schedule |
V3 |
|
|
QODE problem and the solvers LCHS, CBMD, Schrödingerization, Carleman |
C2 |
|
|
The same class’s registration and contract checks |
A unified “analytically solvable ODE family” convergence benchmark |
V2 |
|
C2 |
|
|
|
End-to-end catalog case for SDE and LCHS |
V3 |
|
|
C2 |
|
The same class’s |
|
— (V1 added the |
V1 |
|
|
C2 |
|
|
Across BE bindings via the |
α tightness witnesses: V1 added |
V1 |
Probability-distribution algorithms (C3)¶
Module |
Algorithms |
Class |
Structural evidence |
Numerical evidence |
Binding evidence |
Gap |
Stage |
|---|---|---|---|---|---|---|---|
|
C3 |
|
|
— |
The QAE confidence-interval claim is unwitnessed (only the point estimate is verified) |
V2 |
|
|
C3 |
|
|
— |
— |
V1 |
|
|
C3 |
|
|
|
— |
V1 |
|
|
C3 |
|
|
|
— (V1 added |
V1 |
|
|
C3 |
|
|
Covered via the |
— |
V1 |
Heuristic/optimization algorithms (C4)¶
Module |
Algorithms |
Class |
Structural evidence |
Numerical evidence |
Binding evidence |
Gap |
Stage |
|---|---|---|---|---|---|---|---|
|
C4 |
|
|
— |
The strong witness of “reaching the optimal cut on small instances” |
V3 |
|
|
C4 |
|
|
|
The identity boundary was already fixed with ≥/≤ tolerances |
V1 |
Application layer¶
Module |
Contents |
Class |
Structural evidence |
Numerical evidence |
Binding evidence |
Gap |
Stage |
|---|---|---|---|---|---|---|---|
|
C6 |
|
|
|
— |
V1 |
|
|
33-case cross-check catalog |
C6 |
|
|
|
New algorithms (qsvt inversion, MNRS search, integration, qpca) not yet registered |
V3 |
Cross-cutting mechanisms¶
Mechanism |
Implementation |
Self-tests |
|---|---|---|
Witness primitives |
|
|
Core static and unit tests |
|
See the structural/numerical/binding evidence columns of each module above |
Maintenance rules¶
When adding an algorithm or a new witness, synchronize this table’s module/algorithms/gap/stage columns, and the witness-primitives section if a new primitive is introduced.
A new algorithm must also add its page under
docs/zh/manual/algorithms/(template in the “Algorithm pages” section ofdocs/development/writing-docs.md).Table style matches
algorithm-coverage.md: module names follow the actual files undersrc/oracq/; algorithm names reuse the public symbols exported by the corresponding module.Categories (C1–C6) are filled in per the acceptance criteria of
validation-plan.md§2; when the same algorithm falls under different categories for different witnesses, take the dominant one and explain in the gap column.Evidence-layer locations are written uniformly in the
tests/core/<file>.py:<TestClass>form (with a.<test_method>suffix when needed), so readers can jump straight to the test class.Stages (V1–V4) follow
validation-plan.md§5; note “—” for anything that belongs to no stage.