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

Uploaded Source

Built Distributions

mqt.qcec-2.2.1-cp311-cp311-win_amd64.whl (806.9 kB view details)

Uploaded CPython 3.11 Windows x86-64

mqt.qcec-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (697.6 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

mqt.qcec-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (634.0 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.11 macOS 11.0+ ARM64

mqt.qcec-2.2.1-cp311-cp311-macosx_10_15_x86_64.whl (882.6 kB view details)

Uploaded CPython 3.11 macOS 10.15+ x86-64

mqt.qcec-2.2.1-cp310-cp310-win_amd64.whl (807.0 kB view details)

Uploaded CPython 3.10 Windows x86-64

mqt.qcec-2.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (698.1 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

mqt.qcec-2.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (634.2 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

mqt.qcec-2.2.1-cp310-cp310-macosx_11_0_arm64.whl (801.2 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

mqt.qcec-2.2.1-cp310-cp310-macosx_10_15_x86_64.whl (882.6 kB view details)

Uploaded CPython 3.10 macOS 10.15+ x86-64

mqt.qcec-2.2.1-cp39-cp39-win_amd64.whl (807.4 kB view details)

Uploaded CPython 3.9 Windows x86-64

mqt.qcec-2.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (696.2 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

mqt.qcec-2.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (634.7 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

mqt.qcec-2.2.1-cp39-cp39-macosx_11_0_arm64.whl (801.2 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

mqt.qcec-2.2.1-cp39-cp39-macosx_10_15_x86_64.whl (882.7 kB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

mqt.qcec-2.2.1-cp38-cp38-win_amd64.whl (833.4 kB view details)

Uploaded CPython 3.8 Windows x86-64

mqt.qcec-2.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (697.2 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

mqt.qcec-2.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (633.2 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.8 macOS 11.0+ ARM64

mqt.qcec-2.2.1-cp38-cp38-macosx_10_15_x86_64.whl (882.5 kB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: mqt.qcec-2.2.1.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.1.tar.gz
Algorithm Hash digest
SHA256 7c295db959c1d074420e929583e24b894c9ed37c156cc0685c47212d4b07d45b
MD5 bbbea8ec36ce3ea9942dcff1d1cbdb0f
BLAKE2b-256 afdb5a178478cff4da71b2c7dcc73a19f380d8f4dbd35cda8f6d76c3567d4d45

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mqt.qcec-2.2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 806.9 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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a7a5fa83d3b1f67fedbc25ec8e80de500b2a60397fffef3d48928ddaf532e96e
MD5 c82f7674c11925c40ae1ad82b276570c
BLAKE2b-256 6a07de3c133da4df7b79ead356716dc07f72cafc88104323181220d82737f022

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b8e45b2ccf2300435d9acfec21ccf002826b6afa6991cfed2f2bb91e0d7b008e
MD5 124a5c321042d7bd0a11ec8163f52dac
BLAKE2b-256 a6b6d6560285c3b4925c11a4e0440f1f26abaf724a9c59c434fc0db0add71749

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bdd7c4ca6776457bb96e967fadcc9d4a5559195240433dd66610babbec9d7839
MD5 e8722764864d7f502c433f1e4bbfd000
BLAKE2b-256 86c06c415ac75c1655b0143a12ce847af26142e58622326d3ebd7b056e01517f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 35ca281f040d154934d60175ebbcd7b61a860167d76b54fbb180b43ef52925cc
MD5 f879e0199f058addae0597fbdaac9388
BLAKE2b-256 7f8136bdbdd2674fa11875b58782ca6219d9d0c4d088184f9e3ba08f7b2a2790

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.1-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 8c4079eceb14009d65b35adb85694ac6c3cc77fd06f7c790e6d12731ebfd7e82
MD5 e4cf3c9a119e6ca2b326ebe90b0298e3
BLAKE2b-256 3ec2d2184d1a78f515a1391b3650bee84a7c7687fbe88a2c1f62010e746f05fa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mqt.qcec-2.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 807.0 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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 47dcc28843b87a617240daae61ef90f2c9ace71778d867d5580e6c3a0eb402b9
MD5 22a741a7d9d10d3c627d6dd7d4c1adb0
BLAKE2b-256 1528890bac0f05ec31f86e117165e197cc5e34fec4724e560db8cf60c3cbb601

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 21f1889b77598e79905e12c25c175219ef4ce9990570889f2beee68f96f4e3b8
MD5 0775f3bf7af59981ee13cea539488e22
BLAKE2b-256 a87b4af541c48f8c0bbcb9ef3ca92eb3b60315818fd37e9289f729f3af614d77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e9025bd8fed085eb39615a99613b9a613b1ab5b5cb9e6c2f783b9dc55395cc47
MD5 5d1c538f7e5250831586b7a47fbdcb48
BLAKE2b-256 39597675b0509ed097b1c9a1fd8eb2d9db0df3c448501814f6ac153a73093fc1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7a3f123f33a4c408f3ecaaf91a871372d14ae47bf8934a0895e899a93454d147
MD5 a8a88146c9d97f12db13fab8d95cd67f
BLAKE2b-256 f11013ed8f6a48bd7a4b14d183fbc9ae6263411332ceabff73240c194bce14e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.1-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 56e0c379b5d158073216700eceabc82f7e79fb8504f82e916143363f476fb757
MD5 bb64c44aaf8d456d509d3950bab35de1
BLAKE2b-256 2e9a06686ef3c69396365be980c275e54cd9f82cd459ef964ce0d30480609d89

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mqt.qcec-2.2.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 807.4 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.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 c63aa746c3e490cc8657a4a05573aaf58be781fc031fef90071a46d5d7dd0ba3
MD5 61f431d057fb6ea6b7ab9448416246c5
BLAKE2b-256 db3843b19663e8e35c09fa185df68ced8268fd5a649911a75af832d8f92806d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e91a114e939a53a053c33cb9ebb769372307bc1c29f961199a8731af93628202
MD5 450a8e8e7aa7d19a2fca9667224883f8
BLAKE2b-256 72139e1ea726b006f993b60eeb8496f86b384dd30c01775bec4f7cef019b58e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6b519d60cd78c3283aabec5162567718d4f6008053a2eb5461789157c171c3a9
MD5 3a3cd00267a76dc789b0edaa90a1a116
BLAKE2b-256 7f8aeac2076d2b637c3176253953b3fa13b2341aaba17b1b6df8a5e42ce9cee8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8dc7401af208ed32bf0efbfd28e1f48949b67bf66458c8ddfc68e40757293b0a
MD5 a7aad1429bca8e335eb42752d44b7336
BLAKE2b-256 c5d9383221988d5d6faa02658577ec8b51c402ee6945dc10f2883dd086c150b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 4561f8ac580ccb4df2c2087a1b1d2273562a7a84be244f26b304dac4d79d7a88
MD5 1839045aabc49f33ffbc5b5aebd32feb
BLAKE2b-256 a341af1861de4699e08a0bbebc37dc6b69834c3cac7c9ed72cf7589fec684345

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mqt.qcec-2.2.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 833.4 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.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 db9781e2fc2e12f9593936d0b5df0a777fbfb2e50d7ecc6b79f9c2d314d9dded
MD5 e9298b110023bd82b85d03cd96a374ac
BLAKE2b-256 7b47077d773f6093f79f3a7b4fe03ab59570c635a4fc1ac9fa8b36cae77e0c51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6209cb76d41919c7f0c55047c0e9293bd4a158ae75b7df0e165724d0bfe4bee0
MD5 b993d2ead47161347eac43f2d6f1c007
BLAKE2b-256 2fb6c6725a29204ca03444aaacbe39ee6ac695620aaff95307e77ffd777d9108

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ffa30a9784a26cd180138913010b06fe928d4d09ab5ccc32912bfec74260f398
MD5 0fd7742ff2bf0eb592405878aa51bbcb
BLAKE2b-256 021f994c3db650e653dc753d7b780db12cfb83fec008c88add79434aa81a79f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6b907936a85b3bf8a6740f90f543dec6f52eec5e7f0a671215d6ced2b81914b9
MD5 e8a057e18a05fa77e7e2ec72275807fa
BLAKE2b-256 2dce30c2b2ff81753ca372d044c68638d155f002c5c8d6a79bbe68d303ea23ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 436d24393757437025aefac2572fe0e9cbbf41e1f8f98cf923d8ce421f5d03ac
MD5 d347e4384299135a3eb9cfcc45058370
BLAKE2b-256 11a9547d4abde5809b0b65441abb8ef06cb04c5207ab1ff3182ca930b7f71875

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