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

[^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.0rc9.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.0.0rc9-cp311-cp311-win_amd64.whl (800.7 kB view details)

Uploaded CPython 3.11Windows x86-64

mqt.qcec-2.0.0rc9-cp311-cp311-musllinux_1_1_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

mqt.qcec-2.0.0rc9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (863.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

mqt.qcec-2.0.0rc9-cp311-cp311-macosx_11_0_arm64.whl (635.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mqt.qcec-2.0.0rc9-cp311-cp311-macosx_10_15_x86_64.whl (952.3 kB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

mqt.qcec-2.0.0rc9-cp310-cp310-win_amd64.whl (800.7 kB view details)

Uploaded CPython 3.10Windows x86-64

mqt.qcec-2.0.0rc9-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.0rc9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (863.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

mqt.qcec-2.0.0rc9-cp310-cp310-macosx_11_0_arm64.whl (635.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

mqt.qcec-2.0.0rc9-cp310-cp310-macosx_10_15_x86_64.whl (952.4 kB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

mqt.qcec-2.0.0rc9-cp39-cp39-win_amd64.whl (800.7 kB view details)

Uploaded CPython 3.9Windows x86-64

mqt.qcec-2.0.0rc9-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.0rc9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (864.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

mqt.qcec-2.0.0rc9-cp39-cp39-macosx_11_0_arm64.whl (635.7 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

mqt.qcec-2.0.0rc9-cp39-cp39-macosx_10_15_x86_64.whl (952.5 kB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

mqt.qcec-2.0.0rc9-cp38-cp38-win_amd64.whl (800.8 kB view details)

Uploaded CPython 3.8Windows x86-64

mqt.qcec-2.0.0rc9-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.0rc9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (863.7 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

mqt.qcec-2.0.0rc9-cp38-cp38-macosx_11_0_arm64.whl (635.7 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

mqt.qcec-2.0.0rc9-cp38-cp38-macosx_10_15_x86_64.whl (952.4 kB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

mqt.qcec-2.0.0rc9-cp37-cp37m-win_amd64.whl (834.9 kB view details)

Uploaded CPython 3.7mWindows x86-64

mqt.qcec-2.0.0rc9-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.0rc9-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (875.5 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

mqt.qcec-2.0.0rc9-cp37-cp37m-macosx_10_15_x86_64.whl (948.0 kB view details)

Uploaded CPython 3.7mmacOS 10.15+ x86-64

File details

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

File metadata

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

File hashes

Hashes for mqt.qcec-2.0.0rc9.tar.gz
Algorithm Hash digest
SHA256 9fe55a6e65412dfb7f9cc1593d35262f71c28361e5e3a01e3e203536b76591ce
MD5 bfefdf54bb7a941a5b8c0c23aef85063
BLAKE2b-256 9e507ea5b3f36c1a48945aa7291c7732295611051321f292196673948348c6bd

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc9-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d421b872ebefeec6bf7968d3c9af51e400f6e1bcc745c63181b91b2d810397a6
MD5 dae87c85a9842dae136a8b2609bf6233
BLAKE2b-256 e34c9d53e8e752a8b30cfda197ee0fe2e3eb53ea3dd917b236a2cc87ab63ed39

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc9-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 00eab5c17a3a964cacc5fb7de79f9841cc7bbc5da088d9c42f2e234f2186a2eb
MD5 e1a0595d34027c182b3a7dac4bd792f0
BLAKE2b-256 2194405368be60bf061e9f00cc18ca8565f5baa54bec27fb9c8c972d099757cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 589abcf0daa1a70f7423cdb7bda7ddba509e36f86eee0aa83fa1a103877260ff
MD5 20322f849e97561b3016afa20716c0fc
BLAKE2b-256 11132b4254234a9f995ff60e58ec138b336bc9877859377b02453d849173f8a9

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc9-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5a48286d828a4e2b7b9a976834b91b15f48f6b12840714d6120ad9de3da1f8f0
MD5 95f15f3f6454dd5bc91688589a6ee968
BLAKE2b-256 8fafbc0f48ce92c1aabcbd312f2329ea06e0f6c735398f1b782a241c77bedf75

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.0.0rc9-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 1bc0f6d5033cbbbabfd66cd5c9559cd189cf1ff942d8123c2c05907f8b374bf1
MD5 198da479c375e9f53f7dad37d1993487
BLAKE2b-256 71cf7eebe1f05a8908114a72b0541139d09aef832c9d62fa6dfb14bfae13ffc8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2cd8e527a244834a4ea63b5ac3445fe4f4f9c497316409bfeebb1979dde565d4
MD5 6098c8ba711e79f1404c15ff2b536f1f
BLAKE2b-256 22c73bec5fcb087c51a35484b4f5ef347a7c90a42de80d208aa45661bc0059cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2c3703f87f7aa626d6650ce1bff0180c398e620b8d76ec4403359cc07ac11b66
MD5 1d8524e51431e89ed30c3ecbfeeb93e9
BLAKE2b-256 564dab4f01328260a9790cfc94b577ab33560e1ce8d3ff7db8e9fe3937dd1e7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3029af7fc51e73de433ec995709ff51398d188c0e08e80055ffe58b93be4d94b
MD5 267d98f62e812d2e6eb388ebb0fdad94
BLAKE2b-256 3f251410132a861a50a467b98655e5718cbaea381158401a45f2e65cf6e294e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f9c292aad5906ac8cc83306149cebb3282650100425eaa7d0fe824a6a61d56f5
MD5 4ba5235f03b50678e1b83596daa54ed5
BLAKE2b-256 f4bc1d6baa338f229f2f5350562dbe3911072ab80d59ded562d619e82cb23cf7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 84c0991f83686cd3f3eef8828f6aa7085ce680a7beb293762c279807578f416d
MD5 e5dc3c86f9545b1b8332f273837ff489
BLAKE2b-256 0884b00e07c71bf7bdc160ff984412b8cf5d7fd9859fc7d11c25f0ede8fdb39a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 4d2fac0fb3665b5985c2ce00b2b947b064428f93b16e25c0dd3a66977402556c
MD5 54c5e7b5a2a7537d2da8bfaf5bf6ebe1
BLAKE2b-256 3e4ea9fbf64803a37ba701121b00a9a2285086eaa0c6d48ed14f8f98309f7993

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d281a93cbf3a853b99a421b6c03fae289117638c8a323b344378b80d808fe8f0
MD5 a6bb030df797a2f0c0a7695dfbbd6585
BLAKE2b-256 f4896bc091312ab4d3523f11ac33573936f11afd8739c465ce2f97471224b19b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f024f44d0223a8d21accc85f36efc974326a3905bec1edef09fac08ce7a011a1
MD5 6c005cfc8d7bf18a02bcf6717320f4bb
BLAKE2b-256 4ecaa87cd89f5685e1b4a5e2e6b0db4c4bdab45ff25c6e0ae392d2ee6edf74c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 634d1eed24fc4c720added2c13d6e963dc8bc43d35cc675e95ce9eabb4162ecc
MD5 9190a5b9398f4b3483cae91cb9fbcba9
BLAKE2b-256 471d51baf172bd3517f0baab016cc6e1ef925d5649cb504c23d54ca4b0a65815

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c2f4038d49f2414a1bb4b228bafad057ec13741d42b7f3c599a3b186bde026f9
MD5 c979e8bca904d98db41162aa770f5418
BLAKE2b-256 7d4d5fcf2b5cbbcce0270ee39852c7a6343c44b672242510ae05c3895bda22f4

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 70573e605b0885406771f0e744f7b5b4cecdd5f547d9012d92eaa102b6d1cb4d
MD5 52b063abcb465a6184385d4331074801
BLAKE2b-256 b2722d27a9f213863c4953d47ba91171c55d2ab815ef4ae1adb0349b0ad86168

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 445b7c91c74e58c31d68720194d93270aab23e1b17791ee46dbd0bb46777a1de
MD5 c3e1be8f2062da376c7f37ea72f869e3
BLAKE2b-256 95e4f897497974578dc19675dc388f0cf3f25511e8bb79584d22c72af032c279

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ff4803849f07928991b0e9b48ebae0fbf6f90f289cac6b037b9846760ceeb336
MD5 037c6d663e73068d96e6037cae9fa4fe
BLAKE2b-256 ed8a477bce604ad18f7c617b6837a88d26a60af64b571ce81491cd360139adfd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b5417f1d31f455de46b1ca6f0ee1c21a180f8840172ab80796defa935dae5871
MD5 114cd39351fd0b4d60f4e14440eafa5f
BLAKE2b-256 9fdb9cca7ad3c8c1761c247a8836a7007952cd99616c39f2d6e6a776096b5e2a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 55914a22fb74e90128fc8f8d3ed89b32ff09fa430673a77c975460571cb60a16
MD5 1e89b2e89dcb50c843b3e0b01fdbc1eb
BLAKE2b-256 658a7bab1529237b1d32bf407d00119e17c6b1f31eee7b1f4d2ffe3da64c3811

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 73c9c37f64c076952f8033161fcd0c95fd18bdb67679452ddcdc6aba10afe88b
MD5 555d276ddfdd7584d0bdb43830894c59
BLAKE2b-256 891aaddc63a897e2cfc9331482a649bd5bda176159c970c41b17a3dc972a202d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ae978f64fde189bc1384c871416a44682b4ea7030fcfcf9077373b082a08f5d2
MD5 f631a9dbe96a193acaedbdfbcb83d985
BLAKE2b-256 2ccc496c96898b0e20b58d2211944a233bb22491d6a1031fd1aa8ac5c704bc58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 48c0ff3aa275f9dab0f6de4cee44e22199bf77c5a24ec619e3fb0fdfd2067748
MD5 2bd1a0f66515a8a147874c65d4e73e78
BLAKE2b-256 009558f10e2dc192f7bd66ae663818658451ef7959847883a1dafb451c673568

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0rc9-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 19d59088d4d46c8bf3289d747d93c0c8a32768ff3e1778eacacb0281a6b0aecc
MD5 2b2471c9974ac32540233f7a8039db53
BLAKE2b-256 fc3c23a3cb098978c11a54adc7c2a266001aa84829dba7f58ba8bf3a68fb7cd3

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