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.1

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.1
File Size Uploaded
mqt.qcec-2.2.1.tar.gz 1.7 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for mqt-qcec 2.2.1
File
mqt.qcec-2.2.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
mqt.qcec-2.2.1-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.1-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.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
mqt.qcec-2.2.1-cp311-cp311-macosx_10_15_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.15+ x86-64 Details
mqt.qcec-2.2.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
mqt.qcec-2.2.1-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.1-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.1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
mqt.qcec-2.2.1-cp310-cp310-macosx_10_15_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.15+ x86-64 Details
mqt.qcec-2.2.1-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
mqt.qcec-2.2.1-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.1-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.1-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
mqt.qcec-2.2.1-cp39-cp39-macosx_10_15_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.15+ x86-64 Details
mqt.qcec-2.2.1-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
mqt.qcec-2.2.1-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.1-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.1-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details
mqt.qcec-2.2.1-cp38-cp38-macosx_10_15_x86_64.whl CPython 3.8 CPython 3.8 macOS 10.15+ x86-64 Details

Total release size: 17.1 MB

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

Download URL mqt.qcec-2.2.1.tar.gz
Size 1.7 MB
Tags Source
SHA-256 checksum
How to use checksums
7c295db959c1d074420e929583e24b894c9ed37c156cc0685c47212d4b07d45b
BLAKE2b-256 checksum
How to use checksums
afdb5a178478cff4da71b2c7dcc73a19f380d8f4dbd35cda8f6d76c3567d4d45
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.1-cp311-cp311-win_amd64.whl

Download URL mqt.qcec-2.2.1-cp311-cp311-win_amd64.whl
Size 806.9 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
a7a5fa83d3b1f67fedbc25ec8e80de500b2a60397fffef3d48928ddaf532e96e
BLAKE2b-256 checksum
How to use checksums
6a07de3c133da4df7b79ead356716dc07f72cafc88104323181220d82737f022
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.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mqt.qcec-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 697.6 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b8e45b2ccf2300435d9acfec21ccf002826b6afa6991cfed2f2bb91e0d7b008e
BLAKE2b-256 checksum
How to use checksums
a6b6d6560285c3b4925c11a4e0440f1f26abaf724a9c59c434fc0db0add71749
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.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mqt.qcec-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 634.0 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
bdd7c4ca6776457bb96e967fadcc9d4a5559195240433dd66610babbec9d7839
BLAKE2b-256 checksum
How to use checksums
86c06c415ac75c1655b0143a12ce847af26142e58622326d3ebd7b056e01517f
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.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL mqt.qcec-2.2.1-cp311-cp311-macosx_11_0_arm64.whl
Size 801.1 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
35ca281f040d154934d60175ebbcd7b61a860167d76b54fbb180b43ef52925cc
BLAKE2b-256 checksum
How to use checksums
7f8136bdbdd2674fa11875b58782ca6219d9d0c4d088184f9e3ba08f7b2a2790
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.1-cp311-cp311-macosx_10_15_x86_64.whl

Download URL mqt.qcec-2.2.1-cp311-cp311-macosx_10_15_x86_64.whl
Size 882.6 kB
Tags CPython 3.11 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
8c4079eceb14009d65b35adb85694ac6c3cc77fd06f7c790e6d12731ebfd7e82
BLAKE2b-256 checksum
How to use checksums
3ec2d2184d1a78f515a1391b3650bee84a7c7687fbe88a2c1f62010e746f05fa
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.1-cp310-cp310-win_amd64.whl

Download URL mqt.qcec-2.2.1-cp310-cp310-win_amd64.whl
Size 807.0 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
47dcc28843b87a617240daae61ef90f2c9ace71778d867d5580e6c3a0eb402b9
BLAKE2b-256 checksum
How to use checksums
1528890bac0f05ec31f86e117165e197cc5e34fec4724e560db8cf60c3cbb601
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.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mqt.qcec-2.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 698.1 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
21f1889b77598e79905e12c25c175219ef4ce9990570889f2beee68f96f4e3b8
BLAKE2b-256 checksum
How to use checksums
a87b4af541c48f8c0bbcb9ef3ca92eb3b60315818fd37e9289f729f3af614d77
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.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mqt.qcec-2.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 634.2 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
e9025bd8fed085eb39615a99613b9a613b1ab5b5cb9e6c2f783b9dc55395cc47
BLAKE2b-256 checksum
How to use checksums
39597675b0509ed097b1c9a1fd8eb2d9db0df3c448501814f6ac153a73093fc1
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.1-cp310-cp310-macosx_11_0_arm64.whl

Download URL mqt.qcec-2.2.1-cp310-cp310-macosx_11_0_arm64.whl
Size 801.2 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7a3f123f33a4c408f3ecaaf91a871372d14ae47bf8934a0895e899a93454d147
BLAKE2b-256 checksum
How to use checksums
f11013ed8f6a48bd7a4b14d183fbc9ae6263411332ceabff73240c194bce14e0
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.1-cp310-cp310-macosx_10_15_x86_64.whl

Download URL mqt.qcec-2.2.1-cp310-cp310-macosx_10_15_x86_64.whl
Size 882.6 kB
Tags CPython 3.10 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
56e0c379b5d158073216700eceabc82f7e79fb8504f82e916143363f476fb757
BLAKE2b-256 checksum
How to use checksums
2e9a06686ef3c69396365be980c275e54cd9f82cd459ef964ce0d30480609d89
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.1-cp39-cp39-win_amd64.whl

Download URL mqt.qcec-2.2.1-cp39-cp39-win_amd64.whl
Size 807.4 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
c63aa746c3e490cc8657a4a05573aaf58be781fc031fef90071a46d5d7dd0ba3
BLAKE2b-256 checksum
How to use checksums
db3843b19663e8e35c09fa185df68ced8268fd5a649911a75af832d8f92806d6
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.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mqt.qcec-2.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 696.2 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e91a114e939a53a053c33cb9ebb769372307bc1c29f961199a8731af93628202
BLAKE2b-256 checksum
How to use checksums
72139e1ea726b006f993b60eeb8496f86b384dd30c01775bec4f7cef019b58e7
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.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mqt.qcec-2.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 634.7 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
6b519d60cd78c3283aabec5162567718d4f6008053a2eb5461789157c171c3a9
BLAKE2b-256 checksum
How to use checksums
7f8aeac2076d2b637c3176253953b3fa13b2341aaba17b1b6df8a5e42ce9cee8
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.1-cp39-cp39-macosx_11_0_arm64.whl

Download URL mqt.qcec-2.2.1-cp39-cp39-macosx_11_0_arm64.whl
Size 801.2 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8dc7401af208ed32bf0efbfd28e1f48949b67bf66458c8ddfc68e40757293b0a
BLAKE2b-256 checksum
How to use checksums
c5d9383221988d5d6faa02658577ec8b51c402ee6945dc10f2883dd086c150b4
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.1-cp39-cp39-macosx_10_15_x86_64.whl

Download URL mqt.qcec-2.2.1-cp39-cp39-macosx_10_15_x86_64.whl
Size 882.7 kB
Tags CPython 3.9 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
4561f8ac580ccb4df2c2087a1b1d2273562a7a84be244f26b304dac4d79d7a88
BLAKE2b-256 checksum
How to use checksums
a341af1861de4699e08a0bbebc37dc6b69834c3cac7c9ed72cf7589fec684345
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.1-cp38-cp38-win_amd64.whl

Download URL mqt.qcec-2.2.1-cp38-cp38-win_amd64.whl
Size 833.4 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
db9781e2fc2e12f9593936d0b5df0a777fbfb2e50d7ecc6b79f9c2d314d9dded
BLAKE2b-256 checksum
How to use checksums
7b47077d773f6093f79f3a7b4fe03ab59570c635a4fc1ac9fa8b36cae77e0c51
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.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL mqt.qcec-2.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 697.2 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
6209cb76d41919c7f0c55047c0e9293bd4a158ae75b7df0e165724d0bfe4bee0
BLAKE2b-256 checksum
How to use checksums
2fb6c6725a29204ca03444aaacbe39ee6ac695620aaff95307e77ffd777d9108
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.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL mqt.qcec-2.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 633.2 kB
Tags CPython 3.8 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
ffa30a9784a26cd180138913010b06fe928d4d09ab5ccc32912bfec74260f398
BLAKE2b-256 checksum
How to use checksums
021f994c3db650e653dc753d7b780db12cfb83fec008c88add79434aa81a79f4
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.1-cp38-cp38-macosx_11_0_arm64.whl

Download URL mqt.qcec-2.2.1-cp38-cp38-macosx_11_0_arm64.whl
Size 801.1 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
6b907936a85b3bf8a6740f90f543dec6f52eec5e7f0a671215d6ced2b81914b9
BLAKE2b-256 checksum
How to use checksums
2dce30c2b2ff81753ca372d044c68638d155f002c5c8d6a79bbe68d303ea23ba
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.1-cp38-cp38-macosx_10_15_x86_64.whl

Download URL mqt.qcec-2.2.1-cp38-cp38-macosx_10_15_x86_64.whl
Size 882.5 kB
Tags CPython 3.8 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
436d24393757437025aefac2572fe0e9cbbf41e1f8f98cf923d8ce421f5d03ac
BLAKE2b-256 checksum
How to use checksums
11a9547d4abde5809b0b65441abb8ef06cb04c5207ab1ff3182ca930b7f71875
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.1 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