mqt.qcec
A tool for Quantum Circuit Equivalence Checking
What it is and what it does
MQT QCEC is a quantum circuit equivalence checker built on the Munich Quantum Toolkit, designed to determine whether two quantum circuits produce the same computational result. It combines multiple verification strategies—decision-diagram construction, alternating decision-diagram approaches, simulation-based falsification, and ZX-calculus rewriting—coordinated in an automated flow that either proves equivalence or quickly identifies counterexamples. The tool accepts circuits as Qiskit QuantumCircuit objects or OpenQASM files and provides a Python-first API with a single-call `verify()` function.
Beyond basic equivalence checking, it handles compilation flow verification (including layout permutations and measurements), parameterized circuits with symbolic parameters, and partial equivalence for comparing measured output distributions while accounting for ancillary and garbage qubits. The core is implemented in C++20 with decision-diagram engines and a ZX backend, distributed as prebuilt wheels for Linux, macOS, and Windows. It depends on mqt.core, typing_extensions, and numpy.
Use it for:
- Validate that a quantum circuit compiler or transpiler produced a functionally equivalent circuit after optimization or layout mapping.
- Verify parameterized variational quantum algorithms by proving equivalence with symbolic parameters across different implementations.
- Compare measured output distributions from two circuits to check partial equivalence when ancillary qubits or garbage qubits are present.
- Test quantum circuit transformations and rewrites during development to ensure correctness before deployment.
- Benchmark different circuit implementations to confirm they compute the same function before performance analysis.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Verifies whether two quantum circuits are functionally equivalent using decision-diagram construction, simulation-based falsification, ZX-calculus rewriting, and automated checking flows to prove equivalence or find counterexamples.
Yes. MQT QCEC is a specialized, actively maintained tool for a well-defined problem in quantum computing. It has no known vulnerabilities, permissive MIT licensing, prebuilt wheels that minimize install friction, and supports current Python versions (3.10–3.14). Install it if you need to verify quantum circuit equivalence, validate compilation flows, or test parameterized quantum algorithms.
Install
mqt-qcec on PyPI
pip
pip install mqt-qcecuv
uv add mqt-qcecpoetry
poetry add mqt-qcecInstalling mqt.qcec
Before you install
Medium install friction due to C++20 compiled wheels, but prebuilt binaries are available for Linux, macOS, and Windows across multiple architectures. Active maintenance with a recent release (12 days old) and ongoing repository activity.
License in practice
MIT license permits unrestricted use, modification, and distribution with minimal restrictions, making it suitable for both academic and commercial quantum computing work.
Quickstart
pip install mqt.qcec
from mqt import qcec
result = qcec.verify("circ1.qasm", "circ2.qasm")
print(result.equivalence)
Requires Python 3.10 or later; C++20 compiler needed only if building from source.
Verify before relying
- Performance characteristics (runtime, memory usage) for circuits of varying sizes and complexity
- Detailed comparison of the four equivalence checking engines' relative strengths and trade-offs
- Whether parameterized circuit support covers all symbolic parameter types and constraints
- Compatibility and integration depth with Qiskit beyond basic QuantumCircuit passing
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 3 — mqt.core, typing_extensions, numpy |
| Maintenance | actively maintained — 12 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 127,957/month — #11,725 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: mqt_qcec-3.8.0-cp310-cp310-macosx_11_0_arm64.whl; mqt_qcec-3.8.0-cp310-cp310-macosx_11_0_x86_64.whl; mqt_qcec-3.8.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; mqt_qcec-3.8.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; mqt_qcec-3.8.0-cp310-cp310-win_amd64.whl; mqt_qcec-3.8.0-cp310-cp310-win_arm64.whl; mqt_qcec-3.8.0-cp311-cp311-macosx_11_0_arm64.whl; mqt_qcec-3.8.0-cp311-cp311-macosx_11_0_x86_64.whl; mqt_qcec-3.8.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; mqt_qcec-3.8.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; mqt_qcec-3.8.0-cp311-cp311-win_amd64.whl; mqt_qcec-3.8.0-cp311-cp311-win_arm64.whl; mqt_qcec-3.8.0-cp312-abi3-macosx_11_0_arm64.whl; mqt_qcec-3.8.0-cp312-abi3-macosx_11_0_x86_64.whl; mqt_qcec-3.8.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; mqt_qcec-3.8.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; mqt_qcec-3.8.0-cp312-abi3-win_amd64.whl; mqt_qcec-3.8.0-cp312-abi3-win_arm64.whl; mqt_qcec-3.8.0-cp314-cp314t-macosx_11_0_arm64.whl; mqt_qcec-3.8.0-cp314-cp314t-macosx_11_0_x86_64.whl
Keywords: MQT, quantum-computing, design-automation, equivalence-checking, verification
Tags
More Electronic Design Automation (EDA) packages
Parses and elaborates SystemRDL 2.0 register…
permissive · top 15,000 on PyPI
planarityTests whether a graph is planar, computes…
permissive · top 15,000 on PyPI
cocotbcocotb is a Python framework for writing…
permissive · top 15,000 on PyPI
pyslangpyslang provides Python bindings to parse,…
permissive · top 15,000 on PyPI
peakrdl-ipxactConverts between SystemRDL register…
copyleft · top 15,000 on PyPI
klayoutKLayout is a Python package for layout viewing,…
copyleft · top 15,000 on PyPI
qiskitQiskit is an open-source SDK for building and…
permissive · top 5,000 on PyPI
samplomaticSamplomatic generates randomized variants of…
permissive · top 15,000 on PyPI
cirqCirq is a Python framework for writing,…
permissive · top 15,000 on PyPI
cirq-coreCirq-core provides the foundational framework…
permissive · top 15,000 on PyPI
sinterSinter performs fast Monte Carlo sampling of…
permissive · top 15,000 on PyPI
cirq-googleProvides access to Google's Quantum Computing…
permissive · top 15,000 on PyPI
qiskit-connectorAutomates IBM Quantum backend connection,…
permissive · top 15,000 on PyPI
PyMatchingPyMatching is a fast Python/C++ library for…
permissive · top 15,000 on PyPI
zhinst-timing-modelsProvides feedback latency model parameters for…
permissive · top 15,000 on PyPI
qutipQuTiP simulates the dynamics of closed and open…
permissive · top 15,000 on PyPI