All Projects → iic-jku → qcec

iic-jku / qcec

Licence: MIT license
MQT QCEC - A tool for Quantum Circuit Equivalence Checking

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to qcec

ddsim
MQT DDSIM - A quantum circuit simulator based on decision diagrams written in C++
Stars: ✭ 45 (-29.69%)
Mutual labels:  tum, quantum-computing, decision-diagrams, quantum-circuits, mqt, jku
QuantumClifford.jl
Clifford circuits, graph states, and other quantum Stabilizer formalism tools.
Stars: ✭ 48 (-25%)
Mutual labels:  quantum-computing, quantum-circuits
UniversalQCompiler
Synthesizing arbitrary quantum computations
Stars: ✭ 53 (-17.19%)
Mutual labels:  quantum-computing, quantum-circuits
Cirq
A python framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.
Stars: ✭ 3,115 (+4767.19%)
Mutual labels:  quantum-computing, quantum-circuits
Md5 File
return an md5sum of a given file
Stars: ✭ 176 (+175%)
Mutual labels:  verification
Whileycompiler
The Whiley Compiler (WyC)
Stars: ✭ 181 (+182.81%)
Mutual labels:  verification
Laravel2step
Laravel 2-Step verification is a package to add 2-Step user authentication to any Laravel project easily. It is configurable and customizable. It uses notifications to send the user an email with a 4-digit verification code. Laravel 2-Step Authentication Verification for Laravel. Can be used in out the box with Laravel's authentication scaffolding or integrated into other projects.
Stars: ✭ 175 (+173.44%)
Mutual labels:  verification
Fstar
A Proof-oriented Programming Language
Stars: ✭ 2,171 (+3292.19%)
Mutual labels:  verification
tket
Source code for the TKET quantum compiler, Python bindings and utilities
Stars: ✭ 172 (+168.75%)
Mutual labels:  quantum-computing
lecture-download
🎓 Download lecture recordings from streams.tum.de and lecturio
Stars: ✭ 26 (-59.37%)
Mutual labels:  tum
Flint
The Flint Programming Language for Smart Contracts
Stars: ✭ 228 (+256.25%)
Mutual labels:  verification
Scilla
Scilla - A Smart Contract Intermediate Level Language
Stars: ✭ 186 (+190.63%)
Mutual labels:  verification
TUMGAD
Exercise generator and helpful materials for the Introduction to Algorithms and Data Structures 📚
Stars: ✭ 27 (-57.81%)
Mutual labels:  tum
YaoBase.jl
Abstract type and interface definition for quantum circuit blocks.
Stars: ✭ 17 (-73.44%)
Mutual labels:  quantum-computing
Symbiotic
Symbiotic is a tool for finding bugs in computer programs based on instrumentation, program slicing and KLEE
Stars: ✭ 212 (+231.25%)
Mutual labels:  verification
Antiddos System
🛡️⚔️ Protect your web app from DDOS attack or the Dead Ping + CAPTCHA VERIFICATION in one line!
Stars: ✭ 173 (+170.31%)
Mutual labels:  verification
sqaod
Solvers/annealers for simulated quantum annealing on CPU and CUDA(NVIDIA GPU).
Stars: ✭ 66 (+3.13%)
Mutual labels:  quantum-computing
Alive
Alive: Automatic LLVM's Instcombine Verifier
Stars: ✭ 204 (+218.75%)
Mutual labels:  verification
Alive2
Automatic verification of LLVM optimizations
Stars: ✭ 199 (+210.94%)
Mutual labels:  verification
Stainless
Verification framework and tool for higher-order Scala programs
Stars: ✭ 241 (+276.56%)
Mutual labels:  verification

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 [email protected] 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

Footnotes

  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).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].