-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Set-up a most basic circuit equivalence checker #5700
Conversation
What can be done to perform CI testing to the Aer option of the equivalence checker? I see four options:
|
Following the discussion in #5783, I'll modify the tests to skip Aer if not installed. |
@chriseclectic @ajavadia @1ucian0 @burgholzer Ready for a new cycle of review. Note that some of the previous review comments were not addressed in the code but in answers in #5692. |
phase (str): Options are 'global' - ignoring global phase; | ||
or 'equal' - not ignoring global phase. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
phase (str): Options are 'global' - ignoring global phase; | |
or 'equal' - not ignoring global phase. | |
up_to_global_phase (bool): Option ignoring global phase or not. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please see #5700 (comment)
I'm curious: why trap |
@ecpeterson Which |
I mean the unknown raise that's trapped here: https://github.com/Qiskit/qiskit-terra/pull/5700/files#diff-0bd9ce629c038afb2f5894b7da1497a43a7121518abd96f859dbd4a309b0e376R136 . |
@ecpeterson Essentially yes (save the user work etc.). The idea is that the equivalence checker doesn't crash but always return a result. If something went wrong, this will be reflected in the result. |
does this PR closes #761 ? |
Have there been recent updates about this PR or circuit equivalence in general? |
Please excuse the shameless plug here: If you are interested in an easy-to-use and scalable equivalence checker that works out of the box with Qiskit, have a look at MQT QCEC (https://github.com/cda-tum/mqt-qcec, Verifying the equivalence of two Qiskit circuits is as easy as from mqt.qcec import verify
res = verify(qc1, qc2) Note that the tool uses dedicated data structures (decision diagrams and ZX calculus) plus dedicated verification schemes to make the verification way more scalable than the simple construction and comparison of the circuits' unitaries. More information can be found in the documentation at https://mqt.rtfd.io/projects/qcec |
Summary
The first pull request in the list: #5692 (comment)
Details and comments
Still in progress, to be ready requires: