Add Clifford-to-transvection decomposition from arXiv:2102.11380 - #118
Open
Marcus P S (marcusps) wants to merge 7 commits into
Open
Marcus P S (marcusps) wants to merge 7 commits into
Marcus P S (marcusps) wants to merge 7 commits into
Conversation
Catch up
Implement a linear-size decomposition of a Clifford into Clifford transvections (pi/4 Pauli exponents) reproducing its symplectic (conjugation) action, plus the centralizer generators (the paper's headline application), in the paulimer crate. - paulimer::clifford::clifford_to_transvections: greedy O'Meara-style reduction producing O(n) factors that reproduce the symplectic action (signs and global phase are not tracked; contrast the sign-exact, O(n^2) clifford_to_pauli_exponents). Not guaranteed strictly minimal; exact r/r+1 minimality via congruence triangulation is a follow-up. - paulimer::clifford::clifford_centralizer: generators of Paulis fixed up to sign under conjugation (kernel of the residue map over GF(2), via binar). - Python bindings CliffordUnitary.to_transvections() / .centralizer() with .pyi stubs. - Extensive Rust (unit + proptest) and Python (hypothesis) tests: symplectic round trip, linear factor bound, no-shorter-than-minimum, and centralizer conjugation-fixedness. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This was referenced Jul 17, 2026
Marcus P S (marcusps)
marked this pull request as ready for review
July 17, 2026 04:34
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Apply the conventions established while addressing @jmbr's review on the phased-outcome / decomposition stack (PRs microsoft#115/microsoft#116) to the transvection decomposition, anticipating the same feedback here: - Replace the seed + internal-RNG proptests (`seed in any::<u64>()` feeding `CliffordUnitary::random`) with a `Gate`-sequence `Strategy`, mirroring phased_clifford_dense.rs and measure_with_hint_sign_test.rs, so a failing input shrinks to a minimal gate sequence instead of an opaque seed. The deterministic sweep (which needs no shrinking) keeps using a seeded RNG. - Derive `qubit_count` inside `next_transvection` from `working.num_qubits()` instead of threading it as a parameter, matching the earlier "derive qubit count" tidy on the Gaussian-elimination decomposition. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 16f923fe-a72a-4430-97b0-b7677f48dfb7
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Published reference
Implements the greedy O’Meara-style reduction from the transvection framework of Decomposition of Clifford Gates (arXiv:2102.11380). The contract is deliberately unphased: it reproduces the symplectic action, not Pauli-image signs or global phase.
Review series
This is the first of two dependent PRs for Clifford transvection decomposition and is independent of the phased outcome-complete simulation PRs. Review and merge this PR before the strict-minimum decomposition follow-up.