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.1.0rc2.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.1.0rc2-cp311-cp311-win_amd64.whl (819.9 kB view details)

Uploaded CPython 3.11Windows x86-64

mqt.qcec-2.1.0rc2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (885.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

mqt.qcec-2.1.0rc2-cp311-cp311-macosx_10_15_x86_64.whl (977.7 kB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

mqt.qcec-2.1.0rc2-cp310-cp310-win_amd64.whl (819.9 kB view details)

Uploaded CPython 3.10Windows x86-64

mqt.qcec-2.1.0rc2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (885.4 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

mqt.qcec-2.1.0rc2-cp310-cp310-macosx_10_15_x86_64.whl (977.7 kB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

mqt.qcec-2.1.0rc2-cp39-cp39-win_amd64.whl (820.5 kB view details)

Uploaded CPython 3.9Windows x86-64

mqt.qcec-2.1.0rc2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (886.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

mqt.qcec-2.1.0rc2-cp39-cp39-macosx_10_15_x86_64.whl (977.8 kB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

mqt.qcec-2.1.0rc2-cp38-cp38-win_amd64.whl (820.4 kB view details)

Uploaded CPython 3.8Windows x86-64

mqt.qcec-2.1.0rc2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (885.6 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

mqt.qcec-2.1.0rc2-cp38-cp38-macosx_10_15_x86_64.whl (977.8 kB view details)

Uploaded CPython 3.8macOS 10.15+ x86-64

mqt.qcec-2.1.0rc2-cp37-cp37m-win_amd64.whl (852.9 kB view details)

Uploaded CPython 3.7mWindows x86-64

mqt.qcec-2.1.0rc2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (896.9 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

mqt.qcec-2.1.0rc2-cp37-cp37m-macosx_10_15_x86_64.whl (972.0 kB view details)

Uploaded CPython 3.7mmacOS 10.15+ x86-64

File details

Details for the file mqt.qcec-2.1.0rc2.tar.gz.

File metadata

  • Download URL: mqt.qcec-2.1.0rc2.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.1.0rc2.tar.gz
Algorithm Hash digest
SHA256 38e91d8ffe0e008ca52a9c414c686ad5e682f0d4208449974589c2cabb0f4f70
MD5 13fe8833b4bab4fdd3eacb1f36a51a7f
BLAKE2b-256 12715f8f31e71d9cfa18b3910a88bf59272bdf7a7da37ab1cf7036734022333f

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 af948c531242fba8cf8ea2fc6e3472c2c5a4c7b6af6bbb0efaefbffecfad79d2
MD5 6f0f68f2b4dd5d347db78814b9db4ccc
BLAKE2b-256 e736d8bf41b77ae6ec7b23f9e6b0a1335473e5a221af860a59e807b388d493dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 32ac43654978f0bcb90e7e5affedbafcaa789b004d79acd5fdc9181586caa8d1
MD5 af7767455dafcb0d3d66d51039f73700
BLAKE2b-256 8b2d256e47d99cbd701190820cde049929524b9b8d967b2d103a3f44789d26df

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc2-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc2-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 cbe95483b4c856743ce715013a56eaae3583b95ccd0c20a09e1b020ad876d23d
MD5 5281eef8a9a6f745964869d37585d781
BLAKE2b-256 c3efbedf374a67a3d32ebc5ec5456969153127a73d3304283f98ceb9ca813714

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6088c97f0b55ec19c7de7f5b34a1c27d90aa4cf085a4d4bf261f14f5ef7333db
MD5 41d1c3efe1bf39db4fbfc19d006ee2f7
BLAKE2b-256 4e84d0b08f3e37f5c63eb07bc652183f30035962334f57f60f9f4f94722bd4b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7a80961ef9437ce0335bae5544c40b64097a1b502d0a0cb0c298c26f2dcc2b81
MD5 197b67dae28ac951dbf428838293460a
BLAKE2b-256 7ca90cd6892f7fd1bae2d05a81d3be2b1b866a0719b79a4e804fc20bbf332bc3

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc2-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc2-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b8285b67fb3435bda573256be2a3eb099f67085b3b99924ec13c208310b290e6
MD5 879c9492434cc2fe149287afd4a8b2d6
BLAKE2b-256 7002094b4904ea7f2e2c659ef71e0ed331bab51714c67f526fd4df73738ca8cb

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: mqt.qcec-2.1.0rc2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 820.5 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.1.0rc2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 57923905b9775a28802acfdc17cadc3665a7918dd2b901b04f50821f3c22aa14
MD5 d9975cdeb0ccd027b7835c277221ccdc
BLAKE2b-256 e89aad184c8da5b246075dc80dd3d75c5fe8596531e38befc04701955da1f061

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c11d3a8652ddc50cd1cfc85684de7e2ec0b48896db28fd4ce13061e02b840e87
MD5 862a3f6fe149f125e6d8b14dc5be765c
BLAKE2b-256 f466462d598aa5fde1a667f88a1eb94d6b10a7a670d6b695a2f63e39692ff3ea

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc2-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc2-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 49959e6e4e62f91c9fb02d272995523624cea136b067b528bcc02bdf1b8c0bd6
MD5 d6473a99e7c0a946d3796a1721849cc9
BLAKE2b-256 3b4385a438bf2b109734df7dc12ecc825724a660ea44151bc28d4c4583572d19

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: mqt.qcec-2.1.0rc2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 820.4 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.1.0rc2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 a56975f3a486f8c7089307726f13306e4142849b32b464604e7699c673ddbdd3
MD5 101ac39d2cab56e86bc3b1b5e02d08f1
BLAKE2b-256 bc001a8f79ac8ac4b410383b159503f42f910fb9cf9c2d75615d7f4be97368b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 806bf7fbcbefd0a7d517d6a4c9bd8a957b62ce4dea7a9358eef1fb192627bf1f
MD5 9a2a03116ef5594cfb1f066fb0b4f355
BLAKE2b-256 f5b48474c7cd02d4866fe4be057e430ec972a44ddd9241e52f855dd5ea0fdf1e

See more details on using hashes here.

File details

Details for the file mqt.qcec-2.1.0rc2-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc2-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 fc9f57c4e23cb711c041cedf086f59d0857496c4070e7b75caab15ea5782d902
MD5 f83cdf25671361420161d587e71954b0
BLAKE2b-256 ab8c17163e3f289a51dd5eb69039a610948eb45267756d757fa18bf87b2186d4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mqt.qcec-2.1.0rc2-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 852.9 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.1.0rc2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 f3fe35485513fe107d9f1c171c51d91ff55ae55d629123d9855df6f5c572ca56
MD5 1980305676f6afd6e93d301564645163
BLAKE2b-256 f179063abe074e4d36a56db3c281e3a6c6d7d1a9dfa917eecfb13ecdb3914d61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 702d3d14013c15608f32a8110adb58408065492bd901de72345d17537dcec909
MD5 b612cc5b577bcbf0860e42b2f2c73c19
BLAKE2b-256 afa780a07ac3df3cebd3acdb028dad3dbf02fc3b8caf7a70f8eebf7461d3e888

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc2-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 cb574ccf4ae80fa93c6a12ec9757368e3e66f7a8a9ca00c5a7ffc6e64aa29f02
MD5 b4760f377fe90bc4b29a9ce9235c6602
BLAKE2b-256 d6c8961b29cafe35a52ebddf0f470bb3e23a1ffd97630889da5163bdfbe9760a

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