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.3.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.2.3-cp311-cp311-win_amd64.whl (861.6 kB view details)

Uploaded CPython 3.11Windows x86-64

mqt.qcec-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (766.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

mqt.qcec-2.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (709.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

mqt.qcec-2.2.3-cp311-cp311-macosx_11_0_arm64.whl (888.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

mqt.qcec-2.2.3-cp311-cp311-macosx_10_15_x86_64.whl (981.6 kB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

mqt.qcec-2.2.3-cp310-cp310-win_amd64.whl (861.7 kB view details)

Uploaded CPython 3.10Windows x86-64

mqt.qcec-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (769.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

mqt.qcec-2.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (709.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

mqt.qcec-2.2.3-cp310-cp310-macosx_11_0_arm64.whl (887.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

mqt.qcec-2.2.3-cp310-cp310-macosx_10_15_x86_64.whl (981.6 kB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

mqt.qcec-2.2.3-cp39-cp39-win_amd64.whl (862.2 kB view details)

Uploaded CPython 3.9Windows x86-64

mqt.qcec-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (768.9 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

mqt.qcec-2.2.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (710.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

mqt.qcec-2.2.3-cp39-cp39-macosx_11_0_arm64.whl (888.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

mqt.qcec-2.2.3-cp39-cp39-macosx_10_15_x86_64.whl (981.8 kB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

mqt.qcec-2.2.3-cp38-cp38-win_amd64.whl (876.5 kB view details)

Uploaded CPython 3.8Windows x86-64

mqt.qcec-2.2.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (765.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

mqt.qcec-2.2.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (710.1 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

mqt.qcec-2.2.3-cp38-cp38-macosx_11_0_arm64.whl (887.9 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

mqt.qcec-2.2.3-cp38-cp38-macosx_10_15_x86_64.whl (981.5 kB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: mqt.qcec-2.2.3.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.3.tar.gz
Algorithm Hash digest
SHA256 2309e3a4908ef891a6141880f016a414e9b3ba089854d0e71cba5568e03732a1
MD5 2ea037690d8277327a357ad6a6bda27c
BLAKE2b-256 b9864a85d7f5508b9ed2660cbf062f4e840ae1c0135a47f337ecc7e1a6058df4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mqt.qcec-2.2.3-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 861.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.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 327e96e52e8a791e50f1f1f0aacde1d1fdb75dbeaab1d24c0c82a4eb0c104208
MD5 b6ca57e59e64106315ed385af4b17e4a
BLAKE2b-256 2046bf09419bdc5b6703e488e870d515d07a9293543e63a0f4e27a8e9246178c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d7104a4df7a5adae899967ceebb4b34c00cde0d2cce52b71fc25128dc95fb3c6
MD5 a0b9c56ed975a21b5cff10b0c4ad2be9
BLAKE2b-256 5c14a82c12e689c1f04b951b9c6a1b909758f71c0a8b52c4c0c77c619940f3fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 64494b6005b4c0914331aafa1fb995b57334bcaa3d93bf5de304462222944042
MD5 fd2712c5b79954ba5cf91ac837eec37c
BLAKE2b-256 ccf62b38d0ca7547e5980edfbbfec7c92f09d9e9bae48d68cac77e640617d9ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 66ad61d1ad353a5e0bda5ea0191e8d35948635e2d155526b4907584b4354257d
MD5 eb924d35841922a098516689e046cf03
BLAKE2b-256 30ef522db66359a8b8f4eb7667402315006c9bc065df9f62923acac46cd2b249

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.3-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 a2079e931d0434c4dd6d6ccd3afaac1d0cd76c18bad5ecc0c3caef62feb4d582
MD5 42fd8ac12f7e1dc73f28cd35bb7b1c8b
BLAKE2b-256 8cc09589802b3da1ad23d3bf102904f8f75c7ecd2ba2a00bf18f06d1834e198f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mqt.qcec-2.2.3-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 861.7 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.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 93f51f110a8123d76644ae7cc43b1933d9019a8237ad3d739e50cf10445735f5
MD5 db3b6ebcac5bbfadd7614a888def39c5
BLAKE2b-256 b65f1f64d20625ade46df128c58b07744dac78985ae5a7bb84d7a43185ffbe0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 edb8a6936a10ef8a66a3fc789b4bd94a83bc536a42223e26797a131536917b53
MD5 27584a179f1e35cbeec8f6a1a8a6b966
BLAKE2b-256 8e87bad9af8d7645411f974825d8ef7b730027d82568614e89b5d8865894547a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 31b93be35c6d3448218aa9dfcfe4daaad07da188ef8ad560040acdd808b323d2
MD5 2711cc8b52d991289dcf20a70b208d24
BLAKE2b-256 a1d804441257607a213437a5c6575f86d8d45bc7196f90d3b59723ba3ec2fef3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 72b09ba6418ac72cee265ede01b6dca55d7fe0e594599dfddf91b9ac0e0e8167
MD5 6560ab2ab7f523f247a41c4b6283e3f7
BLAKE2b-256 af2621644aa29eced40b995c9d2964ca68fa2f08c88ba2aab2295abb28eac3b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.3-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 9e7e2b94e6fae2cca03a72d214feff5386959001899de76b57c86023b6bdf850
MD5 094c9647be0cd7ae459bf7667342a7f1
BLAKE2b-256 bd8e40394a8aa1fe518b12e55e41b6c78a949932d972756b6c58c4375dcbcde8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mqt.qcec-2.2.3-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 862.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.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a2926c984da85a818810f8ad0bf2a866a0d842e78ce2063c42010ad188cb23ed
MD5 1e47f48488fb62d695e3091e1dd7e0f5
BLAKE2b-256 a4f5caa2320f71d8f415f872611c64ccbf40d711dfed34fd2bba626105b87115

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ba21998a419dc278d420f69c50dc6f6844f6afb94312f4822f45b8827ba911ce
MD5 62b5aac38c53825b92c8506094cf46cf
BLAKE2b-256 38ed142a994d976f1f66d403ada7d01b23e559e4ba432edf77b9f900cd3ab9e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ecdf0e9a8e4d46ac20f408c5f8c2a221b4190088b3626dc5c02a2f77b06110d0
MD5 aeba284bc7c3b12078f5d843af4fd503
BLAKE2b-256 5f95e7e2c27a15e25cc2584699fd1714a018c816fbf1b211861542091acbcad2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c51f8d2a2c830f7892b6a1ab46be6fb9be141ef5f89c92a88b9659893234991e
MD5 ad2270e00224bf9bd114d5652ae88bc7
BLAKE2b-256 11162b2ec34256b8b69d3d11ffd4996805a6f56563957b9deddcf3ebdb9d5e1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.3-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 9028d7c326c48773188594217560cc8cc047a3d5ddebc9ae9d65de62b1f9f448
MD5 b0e6fdcd1a8ef0d09ff1eabd4caa1010
BLAKE2b-256 9c7df48662a142dc7bbf3b9d78927fe0216f25cb6e3c509f34a5758d30623068

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mqt.qcec-2.2.3-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 876.5 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.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 3291afc1190d4be66cbbad9e7dd4da01ce00fcef23163f50df3ad567325effb9
MD5 f31cca3e93e20f9d7aa7cfcef12e9854
BLAKE2b-256 f392ce019d6a3cf1ab8542817e6e886f03d14d0bb3438f99c0c657b8eaedc546

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6d03e31a33eac6238e484e31bd1437f9435b2b5fff0b72832494c8d062bcff63
MD5 911395393429f2c330fc14dc7f8c1717
BLAKE2b-256 1e84ac7e77e59b0964bf63d80dabd61e2ade68ece664303ec42ce0b2ba557cb6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b690473fee56097d646f63454cc5e97f67d6214239aa58e9ae833801b7728e4c
MD5 7572a16f5de337a817e2b79631263f44
BLAKE2b-256 a3a85ab43f1a1081ce3dfdd70c54bd5ea1eafe42f24371efdfd221b12b390f8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e9508718bf4e5d01353ec950a6e23465997f5b7ad7c22edc25b100987019c687
MD5 7f315167f377e75aa0b6ac4aff8dde57
BLAKE2b-256 54124e0d59340798a765fadbbd0c6c4e504b85818d9a2119fece163d49bbb969

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.2.3-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 28f09d37dfaa7e15456859f86d9ab652d6f5b48fbff7fde203e5be79c44514ba
MD5 027712d7a086667dc475cdcbe1e84d07
BLAKE2b-256 a2eef01f98e21d6c9b3671d2dc1f4a0b31335f24a896028158b39454d4be6e77

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