-
-
Notifications
You must be signed in to change notification settings - Fork 24
Open
Description
System and Environment Information
- Apple M3 Max with MacOS v15.6.1 and Rocky Linux v8.5 (aarch64)
- MQT QCEC v3.1.0
- Python v3.13.1
Bug Description
What happened?
Given two specific quantum circuits, MQT QCEC's verify method runs endless and therefore does not report any result.
What did you expect to happen instead?
I would expect MQT QCEC's verify method to report that the two provided quantum circuits are either not_equivalent, equivalent, equivalent_up_to_global_phase, equivalent_up_to_phase, probably_equivalent, probably_not_equivalent, or no_information in case something went wrong.
Steps to Reproduce
Executing the following script:
import sys
from qiskit.qasm2 import load, LEGACY_CUSTOM_INSTRUCTIONS
from mqt.qcec import verify
from mqt.qcec.pyqcec import Configuration
# Load files
print("[DEBUG] Loading inputs...")
a = sys.argv[1]
b = sys.argv[2]
a_qc = load(filename=a, custom_instructions=LEGACY_CUSTOM_INSTRUCTIONS)
print(f"[INFO] {a_qc}")
b_qc = load(filename=b, custom_instructions=LEGACY_CUSTOM_INSTRUCTIONS)
print(f"[INFO] {a_qc}")
# Configure MTQ QCEC
print("[DEBUG] Configuring 'MTQ QCEC'...")
config = Configuration()
config.execution.run_construction_checker = False
config.execution.run_alternating_checker = True
config.execution.run_simulation_checker = True
config.execution.run_zx_checker = True
config.functionality.trace_threshold = 1e-13
config.functionality.check_partial_equivalence = False
config.simulation.fidelity_threshold = 1e-13
# Run verify
print("[DEBUG] Running 'verify'...")
v = verify(a_qc, b_qc, config)
print(f"[INFO] {v}")as
python bug-issue-report.py <file> <file>results in the following:
| Command | Result |
|---|---|
python bug-issue-report.py a.txt a.txt |
equivalent (as expected) |
python bug-issue-report.py b.txt b.txt |
equivalent (as expected) |
python bug-issue-report.py a.txt b.txt |
unknown |
python bug-issue-report.py b.txt a.txt |
unknown |
I ran the third and fourth command for an hour and MTQ QCEC's verify did not report result. I also tried both commands with a timeout of 60 seconds, i.e.,
config.execution.timeout = 60but the execution never stopped. (This note could perhaps explain why.)
(You might find the quantum circuits a.txt and b.txt in here and here.)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels