Skip to main content

PyPI OS License: MIT CI Python CI Bindings Documentation codecov

MQT QCEC - A tool for Quantum Circuit Equivalence Checking

A tool for quantum circuit equivalence checking developed as part of the Munich Quantum Toolkit (MQT)1 by the Chair for Design Automation at the Technical University of Munich. It builds upon our quantum functionality representation (QFR), our decision diagram (DD) package, and our ZX-diagram package .

Documentation

If you have any questions, feel free to contact us via quantum.cda@xcit.tum.de or by creating an issue on GitHub.

Getting Started

QCEC is available via PyPI for Linux, macOS, and Windows and supports Python 3.8 to 3.11.

(venv) $ pip install mqt.qcec

The following code gives an example on the usage:

from mqt import qcec

# verify the equivalence of two circuits provided as qasm files
result = qcec.verify("circ1.qasm", "circ2.qasm")

# print the result
print(result.equivalence)

Detailed documentation on all available methods, options, and input formats is available at ReadTheDocs.

System Requirements and Building

The implementation is compatible with any C++17 compiler, a minimum CMake version of 3.19, and Python 3.8+. Please refer to the documentation on how to build the project.

Building (and running) is continuously tested under Linux, macOS, and Windows using the latest available system versions for GitHub Actions.

References

QCEC has been developed based on methods proposed in the following papers:

a L. Burgholzer and R. Wille, "Advanced Equivalence Checking for Quantum Circuits," Transactions on CAD of Integrated Circuits and Systems (TCAD), 2021

a L. Burgholzer, R. Raymond, and R. Wille, "Verifying Results of the IBM Qiskit Quantum Circuit Compilation Flow," in IEEE International Conference on Quantum Computing (QCE), 2020

a L. Burgholzer, R. Kueng, and R. Wille, "Random Stimuli Generation for the Verification of Quantum Circuits," in Asia and South Pacific Design Automation Conference (ASP-DAC), 2021

a L. Burgholzer and R. Wille, "Handling Non-Unitaries in Quantum Circuit Equivalence Checking," in Design Automation Conference (DAC), 2022

a T. Peham, L. Burgholzer, and R. Wille, "Equivalence Checking of Quantum Circuits with the ZX-Calculus," in Journal of Emerging and Selected Topics in Circuits and Systems (JETCAS), 2022

a T. Peham, L. Burgholzer, and R. Wille, "Equivalence Checking of Parameterized Quantum Circuits: Verifying the Compilation of Variational Quantum Algorithms," in Asia and South Pacific Design Automation Conference (ASP-DAC), 2023

  1. The Munich Quantum Toolkit was formerly known under the acronym JKQ and developed by the Institute for Integrated Circuits at the Johannes Kepler University Linz). ↩

Metadata

Release files for mqt-qcec 2.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mqt-qcec 2.2.0
File Size Uploaded
mqt.qcec-2.2.0.tar.gz 1.7 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for mqt-qcec 2.2.0
File
mqt.qcec-2.2.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
mqt.qcec-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
mqt.qcec-2.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
mqt.qcec-2.2.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
mqt.qcec-2.2.0-cp311-cp311-macosx_10_15_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.15+ x86-64 Details
mqt.qcec-2.2.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
mqt.qcec-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
mqt.qcec-2.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
mqt.qcec-2.2.0-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
mqt.qcec-2.2.0-cp310-cp310-macosx_10_15_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.15+ x86-64 Details
mqt.qcec-2.2.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
mqt.qcec-2.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
mqt.qcec-2.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ ARM64 Details
mqt.qcec-2.2.0-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
mqt.qcec-2.2.0-cp39-cp39-macosx_10_15_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.15+ x86-64 Details
mqt.qcec-2.2.0-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
mqt.qcec-2.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
mqt.qcec-2.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ ARM64 Details
mqt.qcec-2.2.0-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details
mqt.qcec-2.2.0-cp38-cp38-macosx_10_15_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.15+ x86-64 Details

Total release size: 17.0 MB

Release files / mqt.qcec-2.2.0.tar.gz

Download URL mqt.qcec-2.2.0.tar.gz
Size 1.7 MB
Tags Source
SHA-256 checksum
How to use checksums
cc63d8be937019bda1808cfef25e446d04e6d8de14642cf3592620ba15b7359e
BLAKE2b-256 checksum
How to use checksums
fa608125a1b7f43d940fac94cbd7f342873d433fc9d36a24e8bb53b511d51283
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release files / mqt.qcec-2.2.0-cp311-cp311-win_amd64.whl

Download URL mqt.qcec-2.2.0-cp311-cp311-win_amd64.whl
Size 806.2 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
10c3b1c04e5e6087ed35241fbe62abedac0559aaf060132d429cac5a1178381e
BLAKE2b-256 checksum
How to use checksums
77a05d08718821480e8c24f8fd9d2c8a779386008042390e4645cd00ff6ec7c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release files / mqt.qcec-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mqt.qcec-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 696.2 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
10b611d3f0ca9a929b78dad37859695931ced802ff2f1d6b36cf56cb7e65758b
BLAKE2b-256 checksum
How to use checksums
f2d27b0c82e7f72fedae2f31c81f8d7ec26627a638e3727c0729587a20694f08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release files / mqt.qcec-2.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mqt.qcec-2.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 632.6 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
25d2a9364d3242f7ecff1711cdd25b8a10ee023d27aec481da4a781f39ba8b73
BLAKE2b-256 checksum
How to use checksums
b91f8829b528797196ea8d6ee0d15cc1e500e1f8341b305e716d4460fd332419
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9

Release files / mqt.qcec-2.2.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL mqt.qcec-2.2.0-cp311-cp311-macosx_11_0_arm64.whl
Size 800.2 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9d621ec1cc215364218cb2ff086aeb3d579f124ee12f6ff34727e2203c0695b6
BLAKE2b-256 checksum
How to use checksums
1f72ebcf2e9717d81959fe95983b058059364a8ebb115741eaa9e3b19978fad2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9

Release files / mqt.qcec-2.2.0-cp311-cp311-macosx_10_15_x86_64.whl

Download URL mqt.qcec-2.2.0-cp311-cp311-macosx_10_15_x86_64.whl
Size 881.5 kB
Tags CPython 3.11 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
18768d4d14b9b425a38b978fc072174aa105f8f5ff60d992057275cb5ec83bc3
BLAKE2b-256 checksum
How to use checksums
d2720ab130e816255cd9a7e99fbd20dc4857ddcc90e1a5a6bee6d8ccd093362c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release files / mqt.qcec-2.2.0-cp310-cp310-win_amd64.whl

Download URL mqt.qcec-2.2.0-cp310-cp310-win_amd64.whl
Size 806.2 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
43aba59cc1c548486c2f90c0e02d1cc2a1bfe0275277841b349cddba472377e2
BLAKE2b-256 checksum
How to use checksums
a5e40405830bf72771daab59f65fc650b042a76641cf0e968f54114bcca1fad7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release files / mqt.qcec-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mqt.qcec-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 697.2 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
3e5cc72ec8510cf2e07663532b84dbd134afb1d504fcdfa40b5a71b4afc31b4e
BLAKE2b-256 checksum
How to use checksums
74bfec029101aa9ff6d7df3c54f7100e25a00db0b9689ce55e59ccd5a6876b85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release files / mqt.qcec-2.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mqt.qcec-2.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 632.3 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
b626fd5b70b305b31e1fc9df28cac324b08e27bdff8f05acee5720d8e9713913
BLAKE2b-256 checksum
How to use checksums
bf3ec79c0b053c6e710a01f5322794604957fdcf73f573deae695fdffa66a67e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9

Release files / mqt.qcec-2.2.0-cp310-cp310-macosx_11_0_arm64.whl

Download URL mqt.qcec-2.2.0-cp310-cp310-macosx_11_0_arm64.whl
Size 800.2 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
bfbb3095e7ef2f5153847db375afc7a3e6b006fdc9b3b02281d591c064f66598
BLAKE2b-256 checksum
How to use checksums
97eb981fb30d5dc1eb1aed1d6fe88d4d435d9625d89ead1a81906607d7304f12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9

Release files / mqt.qcec-2.2.0-cp310-cp310-macosx_10_15_x86_64.whl

Download URL mqt.qcec-2.2.0-cp310-cp310-macosx_10_15_x86_64.whl
Size 881.6 kB
Tags CPython 3.10 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
3d921856443b60f072d1f634260ee4329d6c39ec4c15a5abad74a612586362ac
BLAKE2b-256 checksum
How to use checksums
1a9d54f23cff0827891c6f58a7df2c128e06c5e777d540a6955ef02e131e537f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release files / mqt.qcec-2.2.0-cp39-cp39-win_amd64.whl

Download URL mqt.qcec-2.2.0-cp39-cp39-win_amd64.whl
Size 806.7 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
8283e27843dcb20943b6c8ea269ea7bd2103ebc7cea86440ba7db9effed482bd
BLAKE2b-256 checksum
How to use checksums
b6c2ce820b4655fb8b2f50cf35a4aaa86685a5c8d4ad55713d9027e2f7ff1c25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release files / mqt.qcec-2.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mqt.qcec-2.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 697.5 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b509e0e2c2dc6ad1ccb563c69dd048d46b3b4b4e53b068cbf5e5bc0fd759a1a7
BLAKE2b-256 checksum
How to use checksums
5363b488b717bd111c8aa3442e7440bbce823ce44e364c3c0416fac63887ace1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release files / mqt.qcec-2.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mqt.qcec-2.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 633.7 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
23894d335626695f5c5ca95beb7b654bfa66d33f9c0e0d68e6e6788f4befb784
BLAKE2b-256 checksum
How to use checksums
792099ba2419f4f39712680c43b60a7aa4aa35449dc3031e57db1473fd38e59c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9

Release files / mqt.qcec-2.2.0-cp39-cp39-macosx_11_0_arm64.whl

Download URL mqt.qcec-2.2.0-cp39-cp39-macosx_11_0_arm64.whl
Size 800.3 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2ac12be760b01f62a169c43700c5c35b96d2c4c4c7b11813cd7adcb2f880b5df
BLAKE2b-256 checksum
How to use checksums
a9f6e0ff1513127c53b471c91fa0a65eef540ff7a35e46ed38014609c4d58079
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9

Release files / mqt.qcec-2.2.0-cp39-cp39-macosx_10_15_x86_64.whl

Download URL mqt.qcec-2.2.0-cp39-cp39-macosx_10_15_x86_64.whl
Size 881.7 kB
Tags CPython 3.9 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
40f19a63558c470fd9f38b96d6f1096a77f6aa30c8d547cbfa6d3dad8726f4f1
BLAKE2b-256 checksum
How to use checksums
663d295fcd32bf8642812aa64f762480b64b62b9fbc85d527cabea4d3688420b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release files / mqt.qcec-2.2.0-cp38-cp38-win_amd64.whl

Download URL mqt.qcec-2.2.0-cp38-cp38-win_amd64.whl
Size 832.9 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
74ba2bfe147b8041fce757e97fca4405229b85d50f2b609bbfc974f756b46ba7
BLAKE2b-256 checksum
How to use checksums
4422ddfbf4616e963c2a4db157be496495280795ca3741355032d1718023f2d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release files / mqt.qcec-2.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mqt.qcec-2.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 696.8 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
783d533e1386b38c38557a1b99d9d763d82e7752b730ae75bf2f80a5d56fc4d2
BLAKE2b-256 checksum
How to use checksums
7d4bc25fd081b5aed588b495fdc93da0a1ec8cb6de2b94ce04324ad5645713a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release files / mqt.qcec-2.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mqt.qcec-2.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 631.8 kB
Tags CPython 3.8 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
03061e517afbdfe53da6aceb9dfb0993d4b2b75ec671fe249fc4582686339254
BLAKE2b-256 checksum
How to use checksums
d296fcd3721b8450a5885e92784bd6dce90826b6cbc1c489f98018f0c45dc6cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9

Release files / mqt.qcec-2.2.0-cp38-cp38-macosx_11_0_arm64.whl

Download URL mqt.qcec-2.2.0-cp38-cp38-macosx_11_0_arm64.whl
Size 800.2 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9463cc5b20ea9f0734408f90d6c1e7fc521d59d3836520566a01613856c2f153
BLAKE2b-256 checksum
How to use checksums
2089f26ffb8fa8bbeefafedbb65d19ffef70b2182f2ccbb2dfcc3466a40d4ef7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.9

Release files / mqt.qcec-2.2.0-cp38-cp38-macosx_10_15_x86_64.whl

Download URL mqt.qcec-2.2.0-cp38-cp38-macosx_10_15_x86_64.whl
Size 881.6 kB
Tags CPython 3.8 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
d228f160d2e4f6a08ead4be34f9ea6e36be41ccbf388fff3ebf31d0fe56d7b26
BLAKE2b-256 checksum
How to use checksums
072b8abeed266c878abdb42fa9954586c5092366775b605e94866253c521f097
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.1

Release history Release notifications | RSS feed

3.9.0

31 release files

3.6.1

25 release files

3.6.0

25 release files

3.4.0

25 release files

3.3.0

43 release files

3.1.0

37 release files

2.8.2

31 release files

2.8.1

43 release files

2.7.1

50 release files

2.6.0

36 release files

2.5.0

36 release files

2.4.5

36 release files

2.4.4

36 release files

2.4.1

36 release files

2.4.0

36 release files

2.3.1

36 release files

2.3.0

26 release files

2.2.2

21 release files

This release

2.2.0 This release

21 release files

2.1.2

35 release files

2.1.1

35 release files

2.0.0

25 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page