Skip to content

Conversation

alexanderivrii
Copy link
Member

@alexanderivrii alexanderivrii commented Jun 15, 2025

Summary

Fixes #14602.

Details and comments

The ElidePermutations transpiler pass removes swap gates and permutation gates from the circuit, tracking the current permutation of the qubits using the internal variable mapping. Previously, this mapping was not updated correctly in the presence of permutation gates, leading to incorrect output circuits and updates to the pass manager's property set (namely, to "virtual_permutation_layout").

The correct update rule should be $$M [ Q [i] ] \leftarrow M [Q [ P[i] ] ]$$ for $i=1,\dots,k$, where $M$ is the current mapping within the ElidePermutations pass, $Q$ is the set of qubits the permutation gate is defined on, and $P$ is the "permutation pattern" of the permutation gate (stating which qubits get mapped to positions $0$, $1$, etc. when the permutation gate is applied).

@alexanderivrii alexanderivrii requested a review from a team as a code owner June 15, 2025 12:39
@qiskit-bot
Copy link
Collaborator

One or more of the following people are relevant to this code:

  • @Qiskit/terra-core

@alexanderivrii alexanderivrii added the Changelog: Bugfix Include in the "Fixed" section of the changelog label Jun 15, 2025
@coveralls
Copy link

Pull Request Test Coverage Report for Build 15663284429

Details

  • 5 of 5 (100.0%) changed or added relevant lines in 1 file are covered.
  • 18 unchanged lines in 3 files lost coverage.
  • Overall coverage decreased (-0.008%) to 87.996%

Files with Coverage Reduction New Missed Lines %
crates/transpiler/src/passes/unitary_synthesis.rs 1 94.57%
crates/qasm2/src/lex.rs 5 91.73%
crates/qasm2/src/parse.rs 12 97.15%
Totals Coverage Status
Change from base Build 15635869582: -0.008%
Covered Lines: 83152
Relevant Lines: 94495

💛 - Coveralls

@mtreinish mtreinish added the stable backport potential The bug might be minimal and/or import enough to be port to stable label Jun 15, 2025
@mtreinish mtreinish added this to the 2.0.3 milestone Jun 15, 2025
@mtreinish mtreinish added this pull request to the merge queue Jun 16, 2025
@mtreinish
Copy link
Member

@Mergifyio backport stable/2.0 stable/1.4

Copy link
Contributor

mergify bot commented Jun 16, 2025

backport stable/2.0 stable/1.4

✅ Backports have been created

Merged via the queue into Qiskit:main with commit 96fda18 Jun 16, 2025
28 checks passed
mergify bot pushed a commit that referenced this pull request Jun 16, 2025
…14603)

* fixing ElidePermutations and adding tests

* release notes

(cherry picked from commit 96fda18)
mergify bot pushed a commit that referenced this pull request Jun 16, 2025
…14603)

* fixing ElidePermutations and adding tests

* release notes

(cherry picked from commit 96fda18)
mergify bot pushed a commit that referenced this pull request Jun 16, 2025
…14603)

* fixing ElidePermutations and adding tests

* release notes

(cherry picked from commit 96fda18)
github-merge-queue bot pushed a commit that referenced this pull request Jun 16, 2025
…14603) (#14623)

* fixing ElidePermutations and adding tests

* release notes

(cherry picked from commit 96fda18)

Co-authored-by: Alexander Ivrii <alexi@il.ibm.com>
github-merge-queue bot pushed a commit that referenced this pull request Jun 16, 2025
…14603) (#14621)

* fixing ElidePermutations and adding tests

* release notes

(cherry picked from commit 96fda18)

Co-authored-by: Alexander Ivrii <alexi@il.ibm.com>
github-merge-queue bot pushed a commit that referenced this pull request Jun 19, 2025
…14603) (#14622)

* fixing ElidePermutations and adding tests

* release notes

(cherry picked from commit 96fda18)

Co-authored-by: Alexander Ivrii <alexi@il.ibm.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changelog: Bugfix Include in the "Fixed" section of the changelog stable backport potential The bug might be minimal and/or import enough to be port to stable
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ElidePermutations does not work correctly with PermutationGates
4 participants