Skip to main content

A tool for Quantum Circuit Equivalence Checking

Project description

PyPI OS License: MIT 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 .

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

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)

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

[^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.0.0rc6.tar.gz (1.8 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.0.0rc6-cp310-cp310-win_amd64.whl (602.6 kB view details)

Uploaded CPython 3.10Windows x86-64

mqt.qcec-2.0.0rc6-cp310-cp310-musllinux_1_1_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

mqt.qcec-2.0.0rc6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (859.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

mqt.qcec-2.0.0rc6-cp310-cp310-macosx_11_0_arm64.whl (631.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

mqt.qcec-2.0.0rc6-cp310-cp310-macosx_10_15_x86_64.whl (946.5 kB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

mqt.qcec-2.0.0rc6-cp39-cp39-win_amd64.whl (602.7 kB view details)

Uploaded CPython 3.9Windows x86-64

mqt.qcec-2.0.0rc6-cp39-cp39-musllinux_1_1_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

mqt.qcec-2.0.0rc6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (860.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

mqt.qcec-2.0.0rc6-cp39-cp39-macosx_11_0_arm64.whl (631.7 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

mqt.qcec-2.0.0rc6-cp39-cp39-macosx_10_15_x86_64.whl (946.6 kB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

mqt.qcec-2.0.0rc6-cp38-cp38-win_amd64.whl (602.4 kB view details)

Uploaded CPython 3.8Windows x86-64

mqt.qcec-2.0.0rc6-cp38-cp38-musllinux_1_1_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

mqt.qcec-2.0.0rc6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (859.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

mqt.qcec-2.0.0rc6-cp38-cp38-macosx_11_0_arm64.whl (631.7 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

mqt.qcec-2.0.0rc6-cp38-cp38-macosx_10_15_x86_64.whl (946.7 kB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

mqt.qcec-2.0.0rc6-cp37-cp37m-win_amd64.whl (615.5 kB view details)

Uploaded CPython 3.7mWindows x86-64

mqt.qcec-2.0.0rc6-cp37-cp37m-musllinux_1_1_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ x86-64

mqt.qcec-2.0.0rc6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (870.6 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

mqt.qcec-2.0.0rc6-cp37-cp37m-macosx_10_15_x86_64.whl (941.0 kB view details)

Uploaded CPython 3.7mmacOS 10.15+ x86-64

File details

Details for the file mqt.qcec-2.0.0rc6.tar.gz.

File metadata

  • Download URL: mqt.qcec-2.0.0rc6.tar.gz
  • Upload date:
  • Size: 1.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for mqt.qcec-2.0.0rc6.tar.gz
Algorithm Hash digest
SHA256 663024bb7cb1460e852da09dfeb39622ff2cadac49538acee2d6242803909f16
MD5 a11dea5c18473398856f3b338c11b226
BLAKE2b-256 9ac3698b4eb5fad595d4b1f3f7d0b15998d2396d40fe2ca37075719d6af452fa

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc6-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2a704404189afaf9d683cc004be9b449bdbaf55c97542cca88c494e7e8f0499a
MD5 27fbf1545cd3e9dfdb9d54515ea063ed
BLAKE2b-256 5d79bd776bd87d36e51ac4fda90e5134965118dac9e64f239142100542348b06

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc6-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f2fe2ffed0798d9af84264c035c8dce3cba5d914cb363bc3b5ae231c1488c587
MD5 498a7ff6c7ab4571dbe0b05f508d4431
BLAKE2b-256 e72ec0d885cd3886b18c2375b9caced0c27165c9fb851707373b4f9d2f1978ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ba04548bfcce1ec4f51a7e60e76166cf9ae78ee01375ac04f9dd705d2b2b5c5f
MD5 2929e110e845049dc597d3ac613f9e60
BLAKE2b-256 185db36073f06e8f67cb742c0372bf40370274d2696e179df4da2de41acd238e

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc6-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9fc35fdcb008d00d308460cb2726ac94a8b6bd633c1d643dd8acd70167e33022
MD5 72da0b4251dd7e1eb05a663b9e7469ea
BLAKE2b-256 c67d79318c0202282f0d185434628a2d6afa00c12d4777f335ce985aff0a2a01

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc6-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 67101f26d55d35af868bc164a25e6d6318ce04c18c876afa2dc780a1fbdd75da
MD5 413cc18c88ec0936a34be7dcd60f426a
BLAKE2b-256 2316c8273c0bd5bcf41fdfd527de1eb5666b3455eca6a8dad46400d90efc7a45

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc6-cp39-cp39-win_amd64.whl.

File metadata

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

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 976ce5a92ea64804a150b821bdbde1eb5d6b970cfdafaacd8ca56e27deb6e2aa
MD5 8939b37e59b51144ae861c087ec22a89
BLAKE2b-256 43edd9e2ab650312996b81fb73ed14d8d811e2f994e598e738ea2905c3658533

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc6-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2583f5d362120b9394858bf8e0fee485ebc7288e8fa9c9f703c2e0f20b00fc4d
MD5 ea61f26553226b3bbb583da99dd3d28e
BLAKE2b-256 ce2dabfcfc9f84b42d5fea593ad60e9f3ea758d309d75f40af7f1d14c164aef1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 29c839a1cd2f6ae3f9eb115f4e8993c4bacf45de33911d664df1a205011751a4
MD5 f996941da2824635d43a0beffd0f05eb
BLAKE2b-256 421c780fe65e42616e43f6a2d8b7cf087b77efea08cf46a8164c63da2a87282f

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc6-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 628307a056efeae173a8c8e51807925034aeb5a44b626623a6ffaa6974ea5f51
MD5 d858bc0966fc337068bb6a9c4312b88f
BLAKE2b-256 117551711ae0c73da84fd52d844b96960d0042852f27d616bbd2b0661bfba864

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc6-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b1ae8ba30e8f289ddd70ead0ed808ce07a42f105f03dc272a0d7481814da8bcc
MD5 d9b38dc15fe1299fe443c257b0f61467
BLAKE2b-256 ca9df1941b4aa222e3c75fd7b792a60085f8999bd69ba8b4014c236159d31bb6

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc6-cp38-cp38-win_amd64.whl.

File metadata

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

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 70f8df61db88a18055c789920f9a7a87f44b79b85a9260bb4f72fff926796535
MD5 f88dbf08020a34fb3a4ce307dc8dc945
BLAKE2b-256 2f4b1209a3c3614814522486fb75ea113738df499a6e8897f84f888e2ad4b44d

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc6-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 46cd7d386006e85e41754a136e7b79ed782d8be6ba8a53ecaee4ae196029c4ec
MD5 39343593ea007a0deca05f0c9ff50c88
BLAKE2b-256 9b77882d924f16a0fb0bf18af1c21129d234730342f5950ab62d1165504a3c68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c017ae0024ab96566d6e1cd93e1147683cfbfbf76c275a06b287ebd3ea48f32d
MD5 b5e74da5831fa4bb814ad7cbe3240914
BLAKE2b-256 66719d56827503abdddc0ac7fb58fa02efdf3d283cc2d9a26ddd26945d6bfcd6

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc6-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 646a72dfeb757d7275e988f997b4e83353b8557f53011138665510d07ccb4186
MD5 af6bea1e1eab331b6d1259b115095b18
BLAKE2b-256 0913e00590ba69febffb7ed6a77e9000749c696b610ea9f319dbd31b8bcac1ec

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc6-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 207bc2e80962858e9e292c213c41e574ea2a02a45d72d4766b4771dbdfe26436
MD5 501751ef758d95af139f3eaf1f0b4b28
BLAKE2b-256 0a770a6ea3dfb27857a6b96bd6caba9cc7b1f83a90c3ef814f02bd5ca57d0f32

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc6-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: mqt.qcec-2.0.0rc6-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 615.5 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 11a15a5589fab8cdbe490e8f34b17f709bd2da3179d007a86dcebd7e9bff5754
MD5 b63d457ef9099c5cd38afb5d59207c4a
BLAKE2b-256 c2002c477121e2f03c1047d2ecedafb7ea03fd30738b002e0e34db6f8d4b508b

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc6-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 189128b2d429e4c31d17e45fd142463214d76be0013ecbddf8974a7d7d7de930
MD5 5a2180d64520c6aca7f12339fddafabd
BLAKE2b-256 1f176f490cff9ee1f969c6f533bd84dd14c9820ac5a4f8c5e784454b1e8fedaf

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6fb39d9dc555c5daf761ae7d69a3fe4d5c964dca07af701481cc1d2a1b81c2a2
MD5 18fbaf4c3940a954fc0ca6f83c1c32da
BLAKE2b-256 1ef5fd200d3ca767254f0a65d04209c2d3cfd7fc809b7057fbe9e1cef2476ba3

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc6-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc6-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b565ba6630f0cf330b8cb921e36c5342d6571f2c526192255f58ed8c84ab3963
MD5 fced9262b9ce46db877f04b44569152f
BLAKE2b-256 5b82d24eab64004e913c6998aae714d40de60ddbb9f077085462b498ffc4b9dd

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