Pauli Propagation
The pauli-prop package provides a Rust-accelerated Python interface for performing Pauli propagation.
Pauli propagation is a framework for approximating the evolution of operators in the Pauli basis under the action of other operators, such as quantum circuit gates and noise channels [1-5]. This approach can be effective when the operators involved are expected to remain sparse in the Pauli basis.
The subroutines in this package may be used to implement error mitigation techniques such as lightcone shading [6] and propagated noise absorption [7], operator backpropagation [8] for circuit depth reduction, and classical simulation of expectation values [1-5].
Documentation
All documentation is available at https://quantum.cloud.ibm.com/docs/addons/pauli-prop.
Installation
We encourage installing this package via pip, when possible:
pip install 'pauli-prop'
For more installation information refer to these installation instructions.
Getting started
A simple guide to help you get started quickly with this package is available in the quickstart guide.
Use case examples
Pauli propagation can be used as a lower-level engine to implement a variety of techniques. Some examples of where this has been used are:
- Lightcone shading to reduce the sampling overhead of probabilistic error cancellation (PEC) for mitigating expectation values in a 1- and 2D transverse field Ising model [6]
- Absorbing noise model information into a target observable to mitigate expectation values in a 2D transverse field Ising model [7]
- Trimming trailing gates to produce lower-depth Trotter circuits for the time-evolution of a 2D spin model [8]
Technical discussion
Software details
- Rust-accelerated Python interface
- Support for noisy simulations [tutorial 3]]
- Ability to truncate operator terms during evolution based on an absolute coefficient tolerance, a fixed number of terms in the evolving operator, or a combination of both.
- Ability to perform Pauli propagation in both the Schrödinger and Heisenberg frameworks.
- Novel technique for approximating the conjugation of two Pauli-sum operators. This heuristic implementation greedily generates contributions to the product expected to be most significant. See section B of [7] for more information.
- Current implementation is single-threaded
Computational requirements
Both the memory and time cost for Pauli propagation routines generally scale with the size to which the evolved operator is allowed to grow.
propagate_through_rotation_gates: As the Pauli operator is propagated in the Pauli basis under
the action of a sequence of $N$ Pauli rotation gates of an $M$-qubit circuit, the number of terms
will grow as $\mathcal{O}(2^{N})$ towards a maximum of $4^M$ unique Pauli components. To control
the memory usage, the operator is truncated after application of each gate, which introduces some
error proportional to the magnitudes of the truncated terms' coefficients. The memory requirements
are generally linear in the size of the evolved operator and runtime scales linearly in both the
operator size and the number of gates.
propagate_through_operator: Conjugates one operator in the Pauli basis by another by greedily
accumulating terms in the sum, $\sum_{i,j,k}G^{\dagger}_iO_jG_k$, where $i,j,k$ are sparse indices
over the Pauli basis. This implementation sorts the coefficients in each operator by descending
magnitude then searches the 3D index space for the terms with the largest coefficients, starting
with the origin, $(0, 0, 0)$, and accumulating $(i,j,k)$ triplets up to a specified cutoff. The time
spent searching can often be made negligible by increasing the search step size in $(i,j,k)$ space,
which provides a cubic speedup for this subroutine. In our profiling, significant time can be spent
sorting the operators and performing Pauli multiplication to generate the terms in the new operator.
Contributing
The source code is available on GitHub.
The developer guide is located at CONTRIBUTING.md in the root of this project's repository. By participating, you are expected to uphold Qiskit's code of conduct.
Citing this package
If you use this package in your research, use the CITATION.bib file in this project’s repository to cite the appropriate reference(s).
License
Deprecation policy
We follow semantic versioning. We may occasionally make breaking changes in order to improve the user experience. When possible, we will keep old interfaces and mark them as deprecated, as long as they can co-exist with the new ones. Each substantial improvement, breaking change, or deprecation will be documented in the release notes.
References
[1] Tomislav Begušić, Johnnie Gray, Garnet Kin-Lic Chan, Fast and converged classical simulations of evidence for the utility of quantum computing before fault tolerance, arXiv:2308.05077 [quant-ph].
[2] Nicolas Loizeau, et al., Quantum many-body simulations with PauliStrings.jl, arXiv:2410.09654 [quant-ph].
[3] Manuel S. Rudolph, et al., Pauli Propagation: A Computational Framework for Simulating Quantum Systems, arXiv:2505.21606 [quant-ph].
[4] Hrant Gharibyan, et al., A Practical Guide to using Pauli Path Simulators for Utility-Scale Quantum Experiments, arXiv:2507.10771 [quant-ph].
[5] Lukas Broers, et al., Scalable Simulation of Quantum Many-Body Dynamics with Or-Represented Quantum Algebra, arXiv:2506.13241 [quant-ph].
[6] Andrew Eddins, Minh C. Tran, Patrick Rall, Lightcone shading for classically accelerated quantum error mitigation, arXiv:2409.04401 [quant-ph].
[7] Andrew Eddins, et al., Computing noise-canceling observables via Pauli propagation, arXiv:2606.20441 [quant-ph].
[8] Bryce Fuller, et al., Improved Quantum Computation using Operator Backpropagation, arXiv:2502.01897 [quant-ph].
Metadata
Release files for pauli-prop 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pauli_prop-0.2.1.tar.gz | 637.2 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| pauli_prop-0.2.1-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| pauli_prop-0.2.1-cp310-abi3-manylinux_2_28_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| pauli_prop-0.2.1-cp310-abi3-manylinux_2_28_aarch64.whl | CPython 3.10 | abi3 | Linux glibc 2.28+ ARM64 | Details |
| pauli_prop-0.2.1-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
| pauli_prop-0.2.1-cp310-abi3-macosx_10_12_x86_64.whl | CPython 3.10 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 2.1 MB
Release files / pauli_prop-0.2.1.tar.gz
| Download URL | pauli_prop-0.2.1.tar.gz |
|---|---|
| Size | 637.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
61a9821de24c0e0f3223d92f1c2e0fc30fa4f4bbf372c1805c8087295c991e1d
|
|
BLAKE2b-256 checksum How to use checksums |
fef74ad5be2ffaa20d546c74e49dbb7d549ce1a8f3138bcae8c1643b2a0351ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.
Transparency logRelease files / pauli_prop-0.2.1-cp310-abi3-win_amd64.whl
| Download URL | pauli_prop-0.2.1-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 206.0 kB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
ce5942ba9bd9e31c8c4a90849a873ca2ba0565f741f811e2ee8da2c3776588c7
|
|
BLAKE2b-256 checksum How to use checksums |
708ab4d1c6faf83525cbe73a6dc1ecdb23cfdb29663e1594c90584f63f4f8baf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.
Transparency logRelease files / pauli_prop-0.2.1-cp310-abi3-manylinux_2_28_x86_64.whl
| Download URL | pauli_prop-0.2.1-cp310-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 350.4 kB |
| Tags | CPython 3.10 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
807b3a8bc788bf68150bf8c22a99e21eae001d36029c653a9f126f647a02a8c5
|
|
BLAKE2b-256 checksum How to use checksums |
a93cb4dc0016026df1e47f6a6ca4fb730fac59fe07ff9ac393fde561c8e217ee
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.
Transparency logRelease files / pauli_prop-0.2.1-cp310-abi3-manylinux_2_28_aarch64.whl
| Download URL | pauli_prop-0.2.1-cp310-abi3-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 338.6 kB |
| Tags | CPython 3.10 Linux glibc 2.28+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
66380cecc03e6b63fe1c8521f4fc18e9d1b44f555e075978283f0d628619f575
|
|
BLAKE2b-256 checksum How to use checksums |
34828a547105f21537bae8423ae57db8a753b563fed7bf45a3bd37ad5c75eecb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.
Transparency logRelease files / pauli_prop-0.2.1-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | pauli_prop-0.2.1-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 304.4 kB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
205f5f59fbebdabb1a4f005d84ba4f5da0dcc1ee57cfec8c70bde41aed1c436c
|
|
BLAKE2b-256 checksum How to use checksums |
828d7ac58027ef802b492a3d346d944783772e00743fe1bc122a776490ccad68
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.
Transparency logRelease files / pauli_prop-0.2.1-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | pauli_prop-0.2.1-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 312.6 kB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
25de86807121035de959dbb61eb429b5c252543fc1809772ba33dd80dfd80221
|
|
BLAKE2b-256 checksum How to use checksums |
b8c2ed2f1c56cac85b21a7d60b7f335646deb5638df226023f466bf66db86237
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.
Transparency log