← All comparisons

Fanal vs. AutoQ 2.0

TACAS 2025 · C++ standalone

About AutoQ 2.0

Fully automatic verification of quantum programs using tree automata. C++ standalone tool. Can verify 100-qubit circuits in ~20 minutes without human proof effort.

Verification Paradigm

AspectAutoQ 2.0Fanal
ApproachAutomata-based automatic verificationFoundational interactive theorem proving (ITP)
StyleDeductive: precondition/postcondition/invariant -> automatic checkingDenotational semantics + Hoare logic (planned)
User interactionProvide program, pre/postconditions, loop invariants; tool does the restWrite proofs interactively, aided by tactics
Paradigm analogyComparable to Dafny/KeY for classical programsComparable to Coq/Isabelle for classical programs

State Representation

AspectAutoQ 2.0Fanal
Core modelLevel-Synchronized Tree Automata (LSTAs)Matrix denotational semantics (via Mathlib)
State encodingBinary trees: branches = qubit values, leaves = complex amplitudesExplicit matrices / state vectors over Hilbert spaces
Symbolic variablesLSTA leaf terms with symbolic complex variables constrained by global formulaLean meta-variables; Dirac AST supports embedded Lean terms
Parametric statesNaturally supported: LSTAs represent infinite families via symbolic leavesSupported via universally quantified Lean terms
Mixed statesPure states only (no decoherence, no noise)Can express mixed states via density matrices

Automation

AspectAutoQ 2.0Fanal
DegreeFully automatic (given specs + invariants)Semi-automatic with certified tactics
Gate applicationAlgorithmic LSTA transformationSymbolic evaluation via denotational semantics
Entailment checkingDedicated 'entailment up to scaling' algorithm + Z3dirac_eq / ldirac_eq tactics
Loop handlingAutomatic invariant checking via inductiveness testPlanned: Hoare logic rules with manual proof
MeasurementAlgorithmic LSTA splitting (measured-0 / measured-1 copies)Planned: denotational semantics of measurement

Expressiveness

AspectAutoQ 2.0Fanal
Program languageU | P;P | while (M_i=b) do {P} | if (M_i=b) then {P} else {P}Classical-quantum language with CExpr, labels, Dirac (program syntax planned)
Gate setFixed standard gates (H, S, CX, T, Z, SWAP, Toffoli) + special CKAny operator expressible in Dirac notation / matrix form
Classical controlMeasurement-based branching and loops onlyNative classical expressions (arithmetic, booleans, arrays)
Nested control flowNot supported (non-nested only)No restriction in principle
Properties verifiableSets of reachable pure states (LSTA languages)Any property expressible in Lean's type theory

Scalability

AspectAutoQ 2.0Fanal
Demonstrated scaleUp to 100 qubits (weakly measured Grover's) in ~20 minSmall examples; scalability depends on proof strategy
BottleneckLSTA state-space explosion; entailment test complexityProof term size; matrix computation; tactic performance
Parametric verificationHandles parametric qubit count natively via symbolic LSTAsHandles parametric proofs via universal quantification
WMGrover(50)101 qubits, 849 gates, 11 seconds, 44MBNot yet benchmarked at comparable scale

Trust Base

AspectAutoQ 2.0Fanal
ImplementationStandalone C++ tool (~thousands of lines)Lean 4 library built on Mathlib
Trusted componentsEntire C++ codebase + Z3 solverLean 4 kernel only (~10K lines of C++)
Soundness argumentPaper proofs (Theorems 1-2); implementation unverifiedMachine-checked proofs; Lean kernel verifies every step
Bug riskImplementation bugs in C++, Z3 bugs, paper-to-code gapBugs only possible in Lean 4 kernel (extremely small TCB)

Proof Certificates

AspectAutoQ 2.0Fanal
Certificate outputNone; binary Verified/Failed answerFull Lean proof terms checked by kernel
ReproducibilityRequires re-running the toolProof terms are persistent artifacts
Independent verificationNot possible without re-implementationAny Lean 4 installation can check proofs
AuditabilityMust trust the toolProof structure is inspectable

Case Studies

AspectAutoQ 2.0Fanal
Repeat-Until-Success circuitsAll verified instantly (0.0s, 6-7MB)Not yet
Weakly Measured Grover (3-50 qubits)Verified: 0.0s to 11s, 42-44MBNot yet
Dirac notation reasoningNot in scopeCertified rewriting for plain and labelled Dirac
Shor's algorithmNot demonstratedFinal verification goal

Summary: Key Differences

AspectAutoQ 2.0Fanal
ApproachFully automatic (tree automata)Interactive theorem proving
Trust BaseUnverified C++ implementationLean 4 kernel (fully verified)
Scalability100-qubit circuits in ~20 minDepends on proof complexity
ExpressivenessBounded quantum circuits onlyGeneral classical-quantum programs with loops
User EffortZero (fully automatic)Medium (tactic-assisted proofs)