Welcome to QCEC’s documentation!¶
QCEC is a tool for quantum circuit equivalence checking developed as part of the Munich Quantum Toolkit (MQT) by the Chair for Design Automation at the Technical University of Munich. It builds upon MQT Core, which forms the backbone of the MQT.
We recommend you to start with the installation instructions. Then proceed to the quickstart guide and read the reference documentation. If you are interested in the theory behind QCEC, have a look at the publications in the publication list.
We appreciate any feedback and contributions to the project. If you want to contribute, you can find more information in the Contribution guide. If you are having trouble with the installation or the usage of QCEC, please let us know at our Support page.
- Library
- Verify
- Verify Compilation
- Equivalence Checking Manager
EquivalenceCheckingManager
- Constructing an instance
- Configuration after instantiation
EquivalenceCheckingManager.set_parallel()
EquivalenceCheckingManager.set_nthreads()
EquivalenceCheckingManager.set_timeout()
EquivalenceCheckingManager.set_construction_checker()
EquivalenceCheckingManager.set_simulation_checker()
EquivalenceCheckingManager.set_alternating_checker()
EquivalenceCheckingManager.set_zx_checker()
EquivalenceCheckingManager.set_tolerance()
EquivalenceCheckingManager.fuse_single_qubit_gates()
EquivalenceCheckingManager.reconstruct_swaps()
EquivalenceCheckingManager.reorder_operations()
EquivalenceCheckingManager.set_application_scheme()
EquivalenceCheckingManager.set_construction_application_scheme()
EquivalenceCheckingManager.set_simulation_application_scheme()
EquivalenceCheckingManager.set_alternating_application_scheme()
EquivalenceCheckingManager.set_gate_cost_profile()
EquivalenceCheckingManager.set_construction_gate_cost_profile()
EquivalenceCheckingManager.set_simulation_gate_cost_profile()
EquivalenceCheckingManager.set_alternating_gate_cost_profile()
EquivalenceCheckingManager.set_trace_threshold()
EquivalenceCheckingManager.set_fidelity_threshold()
EquivalenceCheckingManager.set_max_sims()
EquivalenceCheckingManager.set_state_type()
EquivalenceCheckingManager.set_seed()
EquivalenceCheckingManager.store_cex_input()
EquivalenceCheckingManager.store_cex_output()
- Running the equivalence check
- Obtaining the results
- Configuration
Configuration
- Execution
Configuration.Execution
Configuration.Execution.nthreads
Configuration.Execution.numerical_tolerance
Configuration.Execution.parallel
Configuration.Execution.run_alternating_checker
Configuration.Execution.run_construction_checker
Configuration.Execution.run_simulation_checker
Configuration.Execution.run_zx_checker
Configuration.Execution.timeout
- Timeout Handling
- Optimizations
Configuration.Optimizations
Configuration.Optimizations.backpropagate_output_permutation
Configuration.Optimizations.elide_permutations
Configuration.Optimizations.fuse_single_qubit_gates
Configuration.Optimizations.reconstruct_swaps
Configuration.Optimizations.remove_diagonal_gates_before_measure
Configuration.Optimizations.reorder_operations
Configuration.Optimizations.transform_dynamic_circuit
- Application
- Functionality
- Simulation
- Parameterized
ConfigurationOptions
ConfigurationOptions.additional_instantiations
ConfigurationOptions.alternating_scheme
ConfigurationOptions.backpropagate_output_permutation
ConfigurationOptions.check_partial_equivalence
ConfigurationOptions.construction_scheme
ConfigurationOptions.elide_permutations
ConfigurationOptions.fidelity_threshold
ConfigurationOptions.fuse_single_qubit_gates
ConfigurationOptions.max_sims
ConfigurationOptions.nthreads
ConfigurationOptions.numerical_tolerance
ConfigurationOptions.parallel
ConfigurationOptions.parameterized_tolerance
ConfigurationOptions.profile
ConfigurationOptions.reconstruct_swaps
ConfigurationOptions.remove_diagonal_gates_before_measure
ConfigurationOptions.reorder_operations
ConfigurationOptions.run_alternating_checker
ConfigurationOptions.run_construction_checker
ConfigurationOptions.run_simulation_checker
ConfigurationOptions.run_zx_checker
ConfigurationOptions.seed
ConfigurationOptions.simulation_scheme
ConfigurationOptions.state_type
ConfigurationOptions.store_cex_input
ConfigurationOptions.store_cex_output
ConfigurationOptions.timeout
ConfigurationOptions.trace_threshold
ConfigurationOptions.transform_dynamic_circuit
augment_config_from_kwargs()
- Application Scheme
- State Types for Simulation
- Notions of Equivalence
EquivalenceCriterionName
EquivalenceCriterion
EquivalenceCriterion.equivalent
EquivalenceCriterion.equivalent_up_to_global_phase
EquivalenceCriterion.equivalent_up_to_phase
EquivalenceCriterion.name
EquivalenceCriterion.no_information
EquivalenceCriterion.not_equivalent
EquivalenceCriterion.probably_equivalent
EquivalenceCriterion.probably_not_equivalent
EquivalenceCriterion.value
- Results