Skip to main content

A tool for Quantum Circuit Equivalence Checking

Project description

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.

(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 and a minimum CMake version of 3.14. 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).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mqt.qcec-2.1.0rc1.tar.gz (1.7 MB view details)

Uploaded Source

Built Distributions

mqt.qcec-2.1.0rc1-cp311-cp311-win_amd64.whl (819.9 kB view details)

Uploaded CPython 3.11 Windows x86-64

mqt.qcec-2.1.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (885.6 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mqt.qcec-2.1.0rc1-cp311-cp311-macosx_10_15_x86_64.whl (977.7 kB view details)

Uploaded CPython 3.11 macOS 10.15+ x86-64

mqt.qcec-2.1.0rc1-cp310-cp310-win_amd64.whl (819.9 kB view details)

Uploaded CPython 3.10 Windows x86-64

mqt.qcec-2.1.0rc1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (885.4 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mqt.qcec-2.1.0rc1-cp310-cp310-macosx_10_15_x86_64.whl (977.7 kB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

mqt.qcec-2.1.0rc1-cp39-cp39-win_amd64.whl (820.5 kB view details)

Uploaded CPython 3.9 Windows x86-64

mqt.qcec-2.1.0rc1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (886.0 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mqt.qcec-2.1.0rc1-cp39-cp39-macosx_10_15_x86_64.whl (977.8 kB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

mqt.qcec-2.1.0rc1-cp38-cp38-win_amd64.whl (820.4 kB view details)

Uploaded CPython 3.8 Windows x86-64

mqt.qcec-2.1.0rc1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (885.6 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mqt.qcec-2.1.0rc1-cp38-cp38-macosx_10_15_x86_64.whl (977.8 kB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

mqt.qcec-2.1.0rc1-cp37-cp37m-win_amd64.whl (852.9 kB view details)

Uploaded CPython 3.7m Windows x86-64

mqt.qcec-2.1.0rc1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (896.9 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

mqt.qcec-2.1.0rc1-cp37-cp37m-macosx_10_15_x86_64.whl (972.0 kB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

Details for the file mqt.qcec-2.1.0rc1.tar.gz.

File metadata

  • Download URL: mqt.qcec-2.1.0rc1.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.15

File hashes

Hashes for mqt.qcec-2.1.0rc1.tar.gz
Algorithm Hash digest
SHA256 afa68c0514c42c076f485541a1289e6a3664c3a6aeb397c93581ac33f095be52
MD5 fb9a46d84010267f974403969f4a889a
BLAKE2b-256 ae893cc9484a899d4826e0c01b08fb04fdae53b76b9a3092b9697c345e126146

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fb9fd91dd50a822bf97766d874d789815da77cf923fbbc95b6b5e28526941488
MD5 f49bd8bb35a3edabf10b2b6a7f1eb22c
BLAKE2b-256 e458c54c5641980572843dfb381508f16065679c44c61b444f5e34c817e17c98

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 876fb5f104ba1370a9be52801fb2e4dd53c4418fa08cb6f62fcf68624167a4d4
MD5 8bd05c6b334061ad9136fbf511fabcfd
BLAKE2b-256 3988b909298b6837d8344b71772883ab104e386d1cf4dab6a4319e4849a97ed2

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc1-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc1-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 48ac199bfb20f65fe51db7976a69388b64d6e991cd258cd6eead430c1d174e4b
MD5 13c89eb5f45e9872c61e6764ddabd7f3
BLAKE2b-256 6c61283504ebfac29c237ff1dd43887d59d79c2935228477ca0d7bb40a0d1292

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c1a158e63bac1da4e25a43f8ce795f2186c6aa5f170d9e8893723cc2ddbc53dc
MD5 17dbbb110f2f52a76c52f3f08a4feeb0
BLAKE2b-256 1b0e29f49467736c2b7619697f2fbce41d9162e00b27fbe7cee24dbc71a2e2f7

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c3a3d29be4fca16f76b7eee9015b61d2964f591119b8bedd4222060f71075b91
MD5 f2f9b64c693e32b24fee1b38f190fdee
BLAKE2b-256 5ea9059bd7c900fcbcd3b76500d2c123d77da9c168700f69ae0b797efb7fff68

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc1-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc1-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 dc443eefaad47ce45503cda1fee9f5d1639fc7750e85050022f86cb9bfdd25c4
MD5 1164b62e63d8f30558fffd87ffc3fee6
BLAKE2b-256 d037cc3c45209fe5900e3430ed4dcd010415e352c56041f74d42a56da5ec8b61

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e1e3547520ef79c62ad6ea358ba70ee8e43551efab4cb04cb81d46b2841ab560
MD5 0952874b45d0b8f7e8772286199bc913
BLAKE2b-256 b39f5e71502417a6e5a816db7c995d828e4b6f9913c206cdbaac2a9aada10fe6

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aac2516cfadda376cb17f0ccb57fea2b2227ea93d64cbc3ef5b4740e790d404a
MD5 e6eb903a3d88525ab89ba6b7182efe7b
BLAKE2b-256 31e4fa1be964b0dc9ea725c0e730594fc269a312a67f5a396329234229e1570d

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc1-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 751d24e15c4350120bf1f07becc8aa4936bb9bbc4cae39ac6f29323934382a33
MD5 ea250ff15e6fa07275942c6eafcb16dc
BLAKE2b-256 821efd55fa007aa6d7edd240e6ce160d0a7fa5bba39acc1b494e5d18b038fe75

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc1-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 207c6742bdb13d2d44c0f6f064a4cc5c162acf440c0770a15d6636cca1e3f718
MD5 889bf610d1223eeba60623e2d0dc34a6
BLAKE2b-256 f7cbd394a82837a45351c039c68c9d1149c66de3efb636c48bbb89fe46020841

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f14daa45e8e272bdd6bcc5bf396c0c2b1ad5556a3a4886950b477d7f4c7ae82d
MD5 86cf80b484781332242c286812e48c38
BLAKE2b-256 6713a71867dc8644acf16d91d4474b9dd19b1902f6adda331583d63ea8ffe9a7

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc1-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e0339507f8c1a800f1bbc4edb604b530d33f8136eb72fa98cfa8e9a37649b50d
MD5 01148d7a8f5a9d96fb50ea79925db2da
BLAKE2b-256 c8b0ff9f87b5f9b33fb807dab90098f8a157991ca5c0a50b3f130bc9d0b426a9

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc1-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 fddcc79bc00051c06aa939985efdbda222dd6b3208e02fc9a4cd300b80e231f5
MD5 2f7746fa294d78bf288e7e5586ffb783
BLAKE2b-256 8a16ca95fdf23ba54002f5920b9462805f796a7fd4946b6a56e76d0483619372

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 344011bf94896ce92254a3bd7f4dd68f99627edab3c92dc45b91cc500ad9b3c6
MD5 948cf7688a8265c135fb088f77076ae5
BLAKE2b-256 dc62c4d8a0dd559c0367deb7c8a56eb30d3d242f4668725bb61c2c881be6c850

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc1-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e28d878d84d647e08dd8768acd45e7fa92af2b9b532ef2641c676d46e61b5192
MD5 c213c0239aa7727bcbbc90169cbff268
BLAKE2b-256 9dde0a8d3787a16b7fc01a4f470df2a03e2ac6a7db377ea57994e40b6886f62a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page