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

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.2.0.tar.gz (1.7 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

mqt.qcec-2.2.0-cp311-cp311-win_amd64.whl (806.2 kB view details)

Uploaded CPython 3.11Windows x86-64

mqt.qcec-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (696.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

mqt.qcec-2.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (632.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

mqt.qcec-2.2.0-cp311-cp311-macosx_11_0_arm64.whl (800.2 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mqt.qcec-2.2.0-cp311-cp311-macosx_10_15_x86_64.whl (881.5 kB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

mqt.qcec-2.2.0-cp310-cp310-win_amd64.whl (806.2 kB view details)

Uploaded CPython 3.10Windows x86-64

mqt.qcec-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (697.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

mqt.qcec-2.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (632.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

mqt.qcec-2.2.0-cp310-cp310-macosx_11_0_arm64.whl (800.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

mqt.qcec-2.2.0-cp310-cp310-macosx_10_15_x86_64.whl (881.6 kB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

mqt.qcec-2.2.0-cp39-cp39-win_amd64.whl (806.7 kB view details)

Uploaded CPython 3.9Windows x86-64

mqt.qcec-2.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (697.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

mqt.qcec-2.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (633.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

mqt.qcec-2.2.0-cp39-cp39-macosx_11_0_arm64.whl (800.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

mqt.qcec-2.2.0-cp39-cp39-macosx_10_15_x86_64.whl (881.7 kB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

mqt.qcec-2.2.0-cp38-cp38-win_amd64.whl (832.9 kB view details)

Uploaded CPython 3.8Windows x86-64

mqt.qcec-2.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (696.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

mqt.qcec-2.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (631.8 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

mqt.qcec-2.2.0-cp38-cp38-macosx_11_0_arm64.whl (800.2 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

mqt.qcec-2.2.0-cp38-cp38-macosx_10_15_x86_64.whl (881.6 kB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

File details

Details for the file mqt.qcec-2.2.0.tar.gz.

File metadata

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

File hashes

Hashes for mqt.qcec-2.2.0.tar.gz
Algorithm Hash digest
SHA256 cc63d8be937019bda1808cfef25e446d04e6d8de14642cf3592620ba15b7359e
MD5 1bce7af1f95284acb80854a5ef1448ac
BLAKE2b-256 fa608125a1b7f43d940fac94cbd7f342873d433fc9d36a24e8bb53b511d51283

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.2.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: mqt.qcec-2.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 806.2 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for mqt.qcec-2.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 10c3b1c04e5e6087ed35241fbe62abedac0559aaf060132d429cac5a1178381e
MD5 a789e9e1c84ce90174f31bb8ea886bd4
BLAKE2b-256 77a05d08718821480e8c24f8fd9d2c8a779386008042390e4645cd00ff6ec7c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 10b611d3f0ca9a929b78dad37859695931ced802ff2f1d6b36cf56cb7e65758b
MD5 7e7114b523c6f0b12208984c95d55b5d
BLAKE2b-256 f2d27b0c82e7f72fedae2f31c81f8d7ec26627a638e3727c0729587a20694f08

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 25d2a9364d3242f7ecff1711cdd25b8a10ee023d27aec481da4a781f39ba8b73
MD5 e0eada7764b030ea33ab6835f159aa2a
BLAKE2b-256 b91f8829b528797196ea8d6ee0d15cc1e500e1f8341b305e716d4460fd332419

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d621ec1cc215364218cb2ff086aeb3d579f124ee12f6ff34727e2203c0695b6
MD5 888418b036f9a866cce31ecc4e303b8b
BLAKE2b-256 1f72ebcf2e9717d81959fe95983b058059364a8ebb115741eaa9e3b19978fad2

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.2.0-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.2.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 18768d4d14b9b425a38b978fc072174aa105f8f5ff60d992057275cb5ec83bc3
MD5 d80642880b3cca341c6309c0d49117a1
BLAKE2b-256 d2720ab130e816255cd9a7e99fbd20dc4857ddcc90e1a5a6bee6d8ccd093362c

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.2.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: mqt.qcec-2.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 806.2 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for mqt.qcec-2.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 43aba59cc1c548486c2f90c0e02d1cc2a1bfe0275277841b349cddba472377e2
MD5 d9eb69fba85e5230720dc841278f4ea0
BLAKE2b-256 a5e40405830bf72771daab59f65fc650b042a76641cf0e968f54114bcca1fad7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3e5cc72ec8510cf2e07663532b84dbd134afb1d504fcdfa40b5a71b4afc31b4e
MD5 e3adc3f16e13108a05c9087e41b21e7d
BLAKE2b-256 74bfec029101aa9ff6d7df3c54f7100e25a00db0b9689ce55e59ccd5a6876b85

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b626fd5b70b305b31e1fc9df28cac324b08e27bdff8f05acee5720d8e9713913
MD5 e4236b7d556d255e4fb8c969049650d1
BLAKE2b-256 bf3ec79c0b053c6e710a01f5322794604957fdcf73f573deae695fdffa66a67e

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bfbb3095e7ef2f5153847db375afc7a3e6b006fdc9b3b02281d591c064f66598
MD5 7e4c3277764684533bff3d3aefb2746c
BLAKE2b-256 97eb981fb30d5dc1eb1aed1d6fe88d4d435d9625d89ead1a81906607d7304f12

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.2.0-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.2.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3d921856443b60f072d1f634260ee4329d6c39ec4c15a5abad74a612586362ac
MD5 853a18bdbd17fb2b018bd30897abc53a
BLAKE2b-256 1a9d54f23cff0827891c6f58a7df2c128e06c5e777d540a6955ef02e131e537f

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.2.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: mqt.qcec-2.2.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 806.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for mqt.qcec-2.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8283e27843dcb20943b6c8ea269ea7bd2103ebc7cea86440ba7db9effed482bd
MD5 92ea9795c6b0801bd338ef5af68626a3
BLAKE2b-256 b6c2ce820b4655fb8b2f50cf35a4aaa86685a5c8d4ad55713d9027e2f7ff1c25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b509e0e2c2dc6ad1ccb563c69dd048d46b3b4b4e53b068cbf5e5bc0fd759a1a7
MD5 858da38b9cc94050f1b2e58fcf9e741b
BLAKE2b-256 5363b488b717bd111c8aa3442e7440bbce823ce44e364c3c0416fac63887ace1

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 23894d335626695f5c5ca95beb7b654bfa66d33f9c0e0d68e6e6788f4befb784
MD5 48b4443ef82ec311c9c720ac7cedd3f2
BLAKE2b-256 792099ba2419f4f39712680c43b60a7aa4aa35449dc3031e57db1473fd38e59c

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.2.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2ac12be760b01f62a169c43700c5c35b96d2c4c4c7b11813cd7adcb2f880b5df
MD5 91f7c1b6d57c08c61e56baf747a23e9a
BLAKE2b-256 a9f6e0ff1513127c53b471c91fa0a65eef540ff7a35e46ed38014609c4d58079

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.2.0-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.2.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 40f19a63558c470fd9f38b96d6f1096a77f6aa30c8d547cbfa6d3dad8726f4f1
MD5 f5351b3ea121b1a914e60df21941eba0
BLAKE2b-256 663d295fcd32bf8642812aa64f762480b64b62b9fbc85d527cabea4d3688420b

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.2.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: mqt.qcec-2.2.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 832.9 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for mqt.qcec-2.2.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 74ba2bfe147b8041fce757e97fca4405229b85d50f2b609bbfc974f756b46ba7
MD5 aec411acfc5feab3af706b2940c9acc7
BLAKE2b-256 4422ddfbf4616e963c2a4db157be496495280795ca3741355032d1718023f2d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 783d533e1386b38c38557a1b99d9d763d82e7752b730ae75bf2f80a5d56fc4d2
MD5 a3b0c8c90db82ca6cba3dad70f8c8339
BLAKE2b-256 7d4bc25fd081b5aed588b495fdc93da0a1ec8cb6de2b94ce04324ad5645713a8

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 03061e517afbdfe53da6aceb9dfb0993d4b2b75ec671fe249fc4582686339254
MD5 ffbdcc10b3c834dee061169ea321d3f3
BLAKE2b-256 d296fcd3721b8450a5885e92784bd6dce90826b6cbc1c489f98018f0c45dc6cc

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.2.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.2.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9463cc5b20ea9f0734408f90d6c1e7fc521d59d3836520566a01613856c2f153
MD5 7a13ef3c43c4f4701e8cef74edd6046d
BLAKE2b-256 2089f26ffb8fa8bbeefafedbb65d19ffef70b2182f2ccbb2dfcc3466a40d4ef7

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.2.0-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.2.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d228f160d2e4f6a08ead4be34f9ea6e36be41ccbf388fff3ebf31d0fe56d7b26
MD5 9d8123680f666a6abf4e65ad44f4cbbd
BLAKE2b-256 072b8abeed266c878abdb42fa9954586c5092366775b605e94866253c521f097

See more details on using hashes here.

Supported by

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