Equivalence Checking Manager

This is the main class of QCEC that allows to check the equivalence of quantum circuits based on the methods proposed in [2]. It features many configuration options that orchestrate the whole procedure. This page describes all the relevant methods of the Equivalence Checking Manager.

class EquivalenceCheckingManager

Main class for orchestrating the equivalence check

Constructing an instance

The simplest way of constructing an EquivalenceCheckingManager is to just pass it the two circuits whose equivalence shall be checked.

ecm = EquivalenceCheckingManager(circ1=qc1, circ2=qc2)

This constructs the manager using all the default options. The circuits to be verified can be provided in various ways:

It can be further configured by passing a Configuration object to the constructor.

EquivalenceCheckingManager.__init__(self: mqt.qcec.pyqcec.EquivalenceCheckingManager, circ1: object, circ2: object, config: mqt.qcec.pyqcec.Configuration = <mqt.qcec.pyqcec.Configuration object at 0x7fec08f635b0>) None

Create an equivalence checking manager for two circuits and configure it with a Configuration object.

Configuration after instantiation

In addition, the Configuration of the manager can be altered after its construction. To this end, several convenience functions are provided which allow to modify the individual options:

Running the equivalence check

Once the manager has been constructed and (optionally) configured, the equivalence check can be started by calling run().

EquivalenceCheckingManager.run(self: mqt.qcec.pyqcec.EquivalenceCheckingManager) None

Execute the equivalence check as configured.

Obtaining the results

After the run has completed, several results can be obtained: