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

Uploaded Source

Built Distributions

mqt.qcec-2.0.0-cp311-cp311-win_amd64.whl (821.9 kB view details)

Uploaded CPython 3.11 Windows x86-64

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

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11 macOS 11.0+ ARM64

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

Uploaded CPython 3.11 macOS 10.15+ x86-64

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

Uploaded CPython 3.10 Windows x86-64

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

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10 macOS 11.0+ ARM64

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

Uploaded CPython 3.10 macOS 10.15+ x86-64

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

Uploaded CPython 3.9 Windows x86-64

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

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.9 macOS 11.0+ ARM64

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

Uploaded CPython 3.9 macOS 10.15+ x86-64

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

Uploaded CPython 3.8 Windows x86-64

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

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.8 macOS 11.0+ ARM64

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

Uploaded CPython 3.8 macOS 10.15+ x86-64

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

Uploaded CPython 3.7m Windows x86-64

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

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

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

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

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

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: mqt.qcec-2.0.0.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.0.0.tar.gz
Algorithm Hash digest
SHA256 3b42b3f93ca471e74caa2ffb4b47c973f6b42623b0fd947fb0e22d20cd84272c
MD5 78a7786c9de25f08bac023007f6a726b
BLAKE2b-256 cd0507b42109e6e1e705e1096ec76925fd0780c184909d28c1ebaaec22f5a907

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mqt.qcec-2.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5f3fd8afcc273e696d5a8e23f00ce75125f6a4683584c95f0a2de374b95f78aa
MD5 1e969997500a9de16fcfa942fe3d652a
BLAKE2b-256 e978e8981e4c33fd3d4d328cfd3694bd2b66c71792093c584a442cb893d9e580

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 62a01fa7a4073c4fa44a1957003874c6d25674a252406d352c167510de62de8f
MD5 00f0fff1d91b81691b61d3bff035c10d
BLAKE2b-256 2b1faf74c7e7fd80f9767aeaf4b8de75f0c5e6f9f01dc750b53c0dd2dc70c967

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c6646c52401e9f3eee8dc64118a48d0236f5c45c9bb894a99e7a564a15ef6901
MD5 f1c32c8c3f1d0c1488ee60a99ced5804
BLAKE2b-256 d204b985ee1f8eb8592a41a71bb2ebc941e7d847c50864ee63d6324665fe5169

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 46816038d7f64c7792a2a338839efad3268a0e1f85c27093f5bda7867d135063
MD5 39158fec483b8a1a5cfca554726af6e8
BLAKE2b-256 b776cbd24010fd133f162ef39cec6821e7cac9dafd4e047ee6416df743bfc452

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 985737a24fdc3797f0eab4dfcfb288fcf870a7050f4823b796511d13d3ff3463
MD5 6867845d78fe2daaaff04129363b0ae6
BLAKE2b-256 8d45842aa21e4c893557564b49be1cc6f380575c8d48547c1ea45e9fbb92dccc

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mqt.qcec-2.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7149efa70919f1c5527bd338786f9fed6ada25d6ced07ba242d789436361294b
MD5 73421fbb1bd96738cfa8c09fd2ed097f
BLAKE2b-256 28a706c5a20ef332e260c7a72525f03292c1acca8858cab9a1a15b621c24a723

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5e7e12f303a74e390c78fabb2f76ae61a38974318e80bd2b6d7da0af274dfd04
MD5 1bdf55b9c79decfa41271d7da463dfb1
BLAKE2b-256 f015b38f976780e437bb4e576b876e6fd619aa2cad7fe3447f8c1e40b8eb5247

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3072760415296c2f6215dee1d4b44bf9a7d1b458fea4ee62f9421176373530ba
MD5 e1141010fba8fd024b39e930e307d204
BLAKE2b-256 2e3f7df5b4c2c03ed782c66d9eaa55a6a4583ae03bf75cb85095bf73e00b394e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f24edd2fe20892034371dd400e93c02e571042b93b59d46ba1ac0804689fb9e3
MD5 4fffee0c1cf9ccd7df88d3350a4f7b96
BLAKE2b-256 2d711278cbc47bbfa85af0f536d7c1698ccf54b347d8e96e66cd3b2e69ed8fec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 61915294d3acf235090dce73670375879be6604e56a23d624dc823c050a667d8
MD5 21571b7f3e3ff03378decabac9a9e10e
BLAKE2b-256 806ae7d1fd1cc143fb83757d91d22cfbeb2bd59bd5f456103fb3bb692596ef36

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mqt.qcec-2.0.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f104958e729eb55e6b21dbad06ef9ddd65c0461e1343c3cd6fca1740cc011198
MD5 25579f89d38bf94527cfb0b71f1b8abd
BLAKE2b-256 53ad4d92878bc37553c569fcf9e4d80fb64921b1511fe17808ffc6bcfaf75884

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9e0b24559d57be72d839575ea4a9ae45aac60168d39b2d78f627af6085eeec74
MD5 d12d1818f579edde51bb0c0fcc0e9b7b
BLAKE2b-256 0255de007bb02384b1e5a50fed41632eb0d904009ab2c10544165ec2ff690bb5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 740ce7dba3735d9716d27c785f77f6c5f405b45cbf5019a73f2bfb6e942800b6
MD5 5501e884faff1a8835d0b85471d875d6
BLAKE2b-256 d653a7853a033d8552bbb7bb58b18e49fb5cce002676aad4be0c42073c70b6f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 edfa7b55b84c80391fef37473321df2462dab9713252cf547175b1478d625465
MD5 d59a248c36ed9beedf801bfceb8bc7b0
BLAKE2b-256 0da629d4c651cbb9548ec22933d43b72692e0012bcc2df63b098769739f2f259

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6dbca005922490ba80a1689196665a1e4d9c7c3a3005622470df77e53a3b6670
MD5 5b660b86c99752deb772877efb3423fa
BLAKE2b-256 f8ab62072bf49b69c0fc3f34ddbfd276afe1b37d3609e120ab527127d19826be

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mqt.qcec-2.0.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 eb68712857eca6118205b5049405f503c84b7fec505c083b1cffefdafb64c7ac
MD5 a5c945ca93c490821d18372c36e2ab2c
BLAKE2b-256 3d4688862abd9e126af114b88a2954bda15216ec057ec986fd5c161576922b2b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3454ef782127b442efb2dfa822cb9de9ae16b220e753bdbe3541ae1f4a646d52
MD5 4359dd640d04249b077ba14cdeba3e0b
BLAKE2b-256 f4fc6177bf182f19fde4267cf166ea377c726b0bd84247e70995ef61d7abde25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e10a4281b0d33ec2a8923ed7dc2fcab217440eb9777f9940c86e89647ef614a7
MD5 a703a5a47d470bae361d03af9f9c7f65
BLAKE2b-256 5609fd9257ae82fbdd243bee94c671f7c2992d1c18df45a203ae230d34e64517

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3efd4aca7dd56d1928076b09f6eec090014ae314f417041e107b8699d351c685
MD5 597f54515b268385fcba6d00463704ca
BLAKE2b-256 fbbe5d4d7fb8b3f2abf8d834f24967b104c1a0be3acab0d17d3d9e26b6d1c422

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d05157b76c25083aa39e715fb203f891d70dba6f838d97f7b2ae2da1ff370833
MD5 eb273d9ba507f5281fadd710e37abfa7
BLAKE2b-256 fe5ad7e11d450732cb04b87c752edf04fd886a2370dc97d13cdac1ee9bbfe145

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for mqt.qcec-2.0.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 f95a65514bd6bd736e0293239346caa494e42efce0fbf7631f332ffac3641aa2
MD5 b0780dbe163821347b23a9caa9219e28
BLAKE2b-256 e61c8ab513cc2b80641fc6ace65019e16ba1f7599a28e0f36c58980c37422da1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 45a00a4892d8cf128801dff4d0a999aa45d70730fcdd05a5719502aef37acd72
MD5 57e77d5a9e4a470de644da6a3a5b80d1
BLAKE2b-256 7bf9f846413355100aa7c38b99866bff7db13d9f386ae3679bef6d1498e9fb9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 86066614c84ea7eb7a721dae3f1e0e0fa44274754bdbeaa0ba93b957a50d881c
MD5 ebc1eca3bfdfc3a19177e33b23aa2695
BLAKE2b-256 d084d13411f2baf94f1a63be9921d1e0922619bbe93a9e220ec7faef1801d97c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.0.0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 62635315291a5acf7955e90a1907d5a1c6bdaaabe9aa98b532f9d928a2ea6683
MD5 ac45aaa0d722a29908bbf69f6922a37f
BLAKE2b-256 626a4962108d674eb2241b4245bfc0b735d60415b0aa89be65a86f667dda3d38

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