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

Uploaded Source

Built Distributions

mqt.qcec-2.2.2-cp311-cp311-win_amd64.whl (805.6 kB view details)

Uploaded CPython 3.11 Windows x86-64

mqt.qcec-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (696.7 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mqt.qcec-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (634.2 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

mqt.qcec-2.2.2-cp311-cp311-macosx_11_0_arm64.whl (801.1 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

mqt.qcec-2.2.2-cp311-cp311-macosx_10_15_x86_64.whl (882.5 kB view details)

Uploaded CPython 3.11 macOS 10.15+ x86-64

mqt.qcec-2.2.2-cp310-cp310-win_amd64.whl (805.5 kB view details)

Uploaded CPython 3.10 Windows x86-64

mqt.qcec-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (698.0 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mqt.qcec-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (634.4 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

mqt.qcec-2.2.2-cp310-cp310-macosx_11_0_arm64.whl (801.1 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

mqt.qcec-2.2.2-cp310-cp310-macosx_10_15_x86_64.whl (882.5 kB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

mqt.qcec-2.2.2-cp39-cp39-win_amd64.whl (806.2 kB view details)

Uploaded CPython 3.9 Windows x86-64

mqt.qcec-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (697.9 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mqt.qcec-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (634.2 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

mqt.qcec-2.2.2-cp39-cp39-macosx_11_0_arm64.whl (801.1 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

mqt.qcec-2.2.2-cp39-cp39-macosx_10_15_x86_64.whl (882.6 kB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

mqt.qcec-2.2.2-cp38-cp38-win_amd64.whl (820.3 kB view details)

Uploaded CPython 3.8 Windows x86-64

mqt.qcec-2.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (697.7 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mqt.qcec-2.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (634.1 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

mqt.qcec-2.2.2-cp38-cp38-macosx_11_0_arm64.whl (801.1 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

mqt.qcec-2.2.2-cp38-cp38-macosx_10_15_x86_64.whl (882.4 kB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

File details

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

File metadata

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

File hashes

Hashes for mqt.qcec-2.2.2.tar.gz
Algorithm Hash digest
SHA256 350c0b5cf880f1e7b8ad08278e2467c37a69967bc96155c050f1b15dbe5d4f8c
MD5 e236c6ca2e2a65b829eebd267377af39
BLAKE2b-256 be81d7f30640b2f8ba3f334f02570c51cba86c1ce6eb407b8566f1191c065229

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mqt.qcec-2.2.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1ec01c227a126693e2578dad41b841250df8a1a2c8486ada8339fa2e9607ccdc
MD5 187d236a0ef0afe8a9893484aa88ecc6
BLAKE2b-256 f455c13e7840f468848c8d81dc2952e99df1fd19e037f095515bad361b391288

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 be51534aece9957fbcd0ebe7595fddf5a7496a299d5263ff152d2a81aeeb91b7
MD5 acd86c68cd46d2b5d2a41042aec53a30
BLAKE2b-256 48b976014e39666d9aad6af806197e43164c3744d99ccd7687ee8ac002134f37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4ffb58f8e6a8641baeb4465ddb5b053a4c7fc0a91897275826d4283d7e630a78
MD5 332ccd2e9b7d7c34f01baba0d2693d97
BLAKE2b-256 f66c0470be3fee162ba7d9c0b936b9415864d549ab89b2bd543016fef76e4741

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 60d1ea8745c1c8d8e45f3ee07dbf81a34b6f303aeb81ff087f3593f11d565f7c
MD5 dc10de82174f86d9f1d70258aed3b0f6
BLAKE2b-256 62b07b91a09208445adab8535f8485e2742567da6ccca58db5d2a35445439dcc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.2-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 ae2ad6246a7f45cf59c60435ea6574adcbb969a3426098321c8dda07d05a63f1
MD5 1d0a51a1b37b933f1f7e2e944b32681c
BLAKE2b-256 13eef2d60521c6fa40b6f97c4eca5648175156f9ce0f4924702f594899a67dd1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mqt.qcec-2.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d06907998f66866d713db0a37288ddafb5327274ca512dd498068d99e8d0c0c2
MD5 3827e56f43feb0955c7b6ac0d0874740
BLAKE2b-256 a5772af84dc084445b2a136a61a7e9f55f3f7d8bf2c6332d4eff66692848f138

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8669f4a950e7db54109ce5989aefc1c8dea3e7918188035ffdf37e63144a8470
MD5 4310a800766723efc6af4966fcde7f3c
BLAKE2b-256 fc68d079283a9835e625995495fd55c8a3f99e59ba8219134d7d4991045a7120

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 90b76b93cf2cdf1371bd700c55ca8ca03261c292974d7a509f1e9c055f2229d3
MD5 078cc737e6d88ef52f6157f6016ca173
BLAKE2b-256 9b4de4230f65e5c01c9c88603c5ecf756697c106568af7315a653b91e72cd2ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 00406f595f4e807a2de65156fda398cd3ca23ec28d80561f49230ae16101cc0a
MD5 f814d9fba9050e0fa5fc45afdf993629
BLAKE2b-256 214765a0cf10dcabb105bfaa9a4de0959df4d580ebba8cfcc22f3e96660dac1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.2-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 160c4c4986759187173100a9384dae9c0399175f9742f5df0aae50c86056ff2a
MD5 4d72d5c9bc9a0e25ec250afc522d3082
BLAKE2b-256 2b18fe30ceb3fd423133fc1a5fd0617422c3a6f7d35885e98df9387d723dfe4e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mqt.qcec-2.2.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 088ce77596c080982438c116f2a2a1f3d1a9c19fd7b49a662c82b0e209da587c
MD5 da3463e1be850580ee0cd0dcd6e19b11
BLAKE2b-256 9ee685ed3b02ffcccdae80cdff87ec4cd136f157902e13430d71fb1790b200f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9adf316301f10f705945e43c402d9668606f7ffba5b604b985fc2f1428a25bb2
MD5 032fded10a7d734dcb47e7c8d3307b9a
BLAKE2b-256 5fc48abf30b9141b200621673395861b05b9d2451ed924e4141174566b139d89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 74d5a71ae343286600e6c9fd40746a2c0b5ad77d07009567bf3ea34fa3727151
MD5 130551ea45cadcca313d9d98746059fa
BLAKE2b-256 36885aa7b3ec1cabc371826aafb3462a90b622d18f4a44334acb4d1f5e379ef0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 19615f84c60e091465233431b8f8eff109436f62371fc0b879a7e7795f2c11d9
MD5 66fd8ab5c0275e2724cbbe4a8d06a938
BLAKE2b-256 3f14a80adadb2e8c4decfd7b211f071ce14a47f6e2307a02b5caf4881fb81853

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.2-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 72f7f70564c8e67ce6a4cd98563f0330ee43198b2db2b32a0de89d7087693291
MD5 f50e853f4cfcd6abe5180cf4eb23ce09
BLAKE2b-256 ba46c7e418a96276ca657d8178af3c61e45066ebc15fed784fbdc082ebb86c80

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mqt.qcec-2.2.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 cdb15088de1d02575d6b395bb31aebd707f7c5df020661cc9dd587933aa6f735
MD5 5e10bb7c9505ac24204c5ec6c32c788c
BLAKE2b-256 afc8273e7eadbae0229a14e1d0341d11a75e8feaf3f65f3ad0d3bc7c67f4987d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 be9384f1d0bd03335063700d7bb50a3b9f801ab618cc76731a2482b4860ed3db
MD5 6d200c4baeacc95b32b25b640cb9daf5
BLAKE2b-256 45d5f035d38d044e5cca32a11048941b9e47aed11e81f76293dd36da711cc0f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c3519c9639ac77ae480a04eba01a138316440c1274b3f4d70784a3404ffc5e00
MD5 e010ad2bf758c84b9ede6eee2a65d8e7
BLAKE2b-256 1c460154ffe35ce3dd72b25f62cbecc61f644ccbcaf4809da7fc47967c200d36

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8835302592320b78c6271fb79b0e041bac945bed19d3f140e82568c2b10aaff5
MD5 97fe4f6dbc3f8691ae634e7c4a9e732f
BLAKE2b-256 e0afc9dd7c6fbed43a636fabf05841da8623feb8c6bb1281910d9ab7d1091edc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.2-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e3055c37ae73f9aadced05f6b088cb32048faf1479f9c56d3ddd9d04cc31102c
MD5 a92f45f2bc85938812e12cc4179dcd54
BLAKE2b-256 72fe130402ad44567f246951d057f5323227b2263c1877f705642b782029f796

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