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

Uploaded Source

Built Distributions

mqt.qcec-2.1.0rc3-cp311-cp311-win_amd64.whl (819.9 kB view details)

Uploaded CPython 3.11 Windows x86-64

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

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11 macOS 10.15+ x86-64

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

Uploaded CPython 3.10 Windows x86-64

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

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10 macOS 10.15+ x86-64

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

Uploaded CPython 3.9 Windows x86-64

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

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.9 macOS 10.15+ x86-64

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

Uploaded CPython 3.8 Windows x86-64

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

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.8 macOS 10.15+ x86-64

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

Uploaded CPython 3.7m Windows x86-64

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

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

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

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: mqt.qcec-2.1.0rc3.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.0rc3.tar.gz
Algorithm Hash digest
SHA256 3c7c5993019e9249eb14aef59e0829df49e011d08fc8dd1ee2ea02b49f6c3cd3
MD5 55a83944ad21ca366fffa912fa0401dc
BLAKE2b-256 dd483e67dd440d51331d93b3c191cec50515fa00076384cbc8dc123db9ac6ad1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ed199da71300ee21db3b4f4052b9161fdab379d4c1aca5556c4094a9195a9009
MD5 fb8a244bbbf6577da3c51675ecdf14be
BLAKE2b-256 073515f0dc39de5c631e74f1e2bce4271fc975fe77e365158845263f531abb40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f284879cfafcc8197f0e2f790e537d5590d337b64139fa10d6056289eb074fd4
MD5 3a7ea611ccfb03c1b08f03bc39f4db60
BLAKE2b-256 eb039ffadee09d0b7496bc9cfdce4a03822e0163cb327cf1999dbc814153ea38

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc3-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5b1b5c48397b9e233aedbadd4807b9aff5e1697505bfd3aada8b09abf76852ca
MD5 031bde8553333afd9a39d492cf4be046
BLAKE2b-256 a7be22f0d4417442668aeca3902e51e13d7a659ae9619919a021e8a9e5a6b13f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3f7179e010877ca5298576a46a307bedcb5cfab1c0c230a2f00f42f820732a92
MD5 091915ac175658c74deeb91cbaffa5e3
BLAKE2b-256 c002e54741bada7f72bc9e5b70e53cee92af42bdfff3d2609033f51e21289da1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 059f96b1dd247248d14ea4d709ed8575e9e6f9252143c7741a61cdd9b59a721f
MD5 fdc42b0fb964264d7050855b3b9128a6
BLAKE2b-256 cdd4d00abe98e3247f2a851dd51164fc12ae456504c3d4ce0f57bacc6d4cdc64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc3-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3387358ea2c2db62e607ff656d48eda6b979a6430ad2373f5b95918d24d99bb7
MD5 a1ab1a6b89322baccbb67c048f899a45
BLAKE2b-256 f1c8f6f79becf6ca33d5ed77d31814a60035034fd9dd46f64081f564f011b3ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 940d8b885b9c2961acecf77229f0a37e478e02ea5ed02b42147218851fc81b56
MD5 1ba6883cd292f1a0996397e401dacfa7
BLAKE2b-256 c83a6bb142ed153b0701784e77ffb436139b4c995179e84afc00293d9f8834de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 82ea389a49264acca482d26aab9a9db3f0184704228ffc61651ade4a50ee6b5b
MD5 e119f934aa2d30a4ed2cad6b3dbe10bb
BLAKE2b-256 bc2199e1046e0d307cb43f78246bf3d4da121b46085db2bf930146a04e54b6ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc3-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 4d053488f01bf93da328af09d9e1642960bc3257b1e73d29b01a69146d393fb6
MD5 4322617079e80a18b4cca183e112ee39
BLAKE2b-256 45331c2331ded005bd6ae0cf160d3ff36c084ca2f49506896091bfd5b21c86de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 080b46bc13f6d511ec03ca9f29a2ae5b4b5f3b325b84b0ae888e16bda3bfa568
MD5 2e3de9df56492664b27fad4eff653641
BLAKE2b-256 8c30c0304a99528db98e21a07d81d0d06cc79672eaba7f7e868729e3b4809caa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 80763cc5cada42e5dd16b938005ce72cb6c17a3bd923522ca85a7cf61ef6ae95
MD5 e589d0efdb8f706fcc2d08a753cf50ca
BLAKE2b-256 6486945df8eba3dcd46e730cdb1f22507404dbb9c0eb50d40050291436dbf0b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc3-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 1dff14e6d2d6efe538ad3993d0d776e0500fdb96304ad5dee85d62ae62dc0782
MD5 ccf4ad0afc0f29402da0abe810bfaefe
BLAKE2b-256 10ddbd1e359335b98d80c4d8ec3cbc5c4c75836118cf8f8b6e6a0e0be3740242

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc3-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 2ae3004e0060ca137f6c951408b33dc53abbba93d56b1d2fa78d3579e1224733
MD5 233bf7d16f7621f4146d06b8d9d00fff
BLAKE2b-256 509bdfd4f51958f03df9cf7e10a11abc83c515111e3a7db59d1d70fb6a58c622

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4f4923888878cb6bb307688284f3fb232f52440c2ff15a44379f814472c2216d
MD5 524d11c817ee84c1753326784df569db
BLAKE2b-256 9a3db2f40cb7388015c71e43e16fea66527dcd6916344a81bbfc4c2eb953104c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mqt.qcec-2.1.0rc3-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 bd6b37bf37a9644c53f2ac48515604ffd332e7b14e89899dd603cd33f2c4387b
MD5 c3773cc28411c43a9572b54bcf732fbb
BLAKE2b-256 2218aee6bc204680b55952c484864d3e19f3f33ae18b121bb091bc8397a222c5

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