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 0x7fe30d9b8eb0>) 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: