Skip to main content

propaq

Docs CI PyPI License: MIT

Fast Heisenberg-picture propagation for quantum circuit simulation, with a parallel Rust backend!

propaq features the following:

  • Hybrid Schrodinger-Heisenberg simulation for quantum circuits, with functionality for both Pauli and Majorana propagation.
  • Support for both Pauli and Majorana propagation, with integration with Qiskit and Cirq.
  • Support for custom, composable noise models and truncation policies, written in C, Rust, AOT Julia, or Python via a plugin ABI.
  • Support to define fast paths for custom unitary gates.
  • Logging and profiling capabilities for propagation runs, as well as lazy I/O operations for saving and loading results.
  • Extrapolation methods for estimating expectation values in the limit of zero noise and/or zero truncation error.
  • Surrogate/Symbolic propagation for computing expectation values of parameterized circuits, i.e. for variational quantum algorithms.

propaq implements the algorithms described in:

M. S. Rudolph, T. Jones, Y. Teng, A. Angrisani, and Z. Holmes, “Pauli Propagation: A Computational Framework for Simulating Quantum Systems,” May 27, 2025, arXiv: arXiv:2505.21606. doi: 10.48550/arXiv.2505.21606.

A. Miller et al., "Simulation of Fermionic circuits using Majorana Propagation," Dec. 16, 2025, arXiv: arXiv:2503.18939. doi: 10.48550/arXiv.2503.18939.

Installation

pip install propaq

Requires Python 3.10+ and a pre-built wheel for your platform (Linux x86-64, macOS, Windows).

For development, clone the repo and install with:

pip install -e .[dev]   

which will install the Rust toolchain and build the Rust backend from source via maturin. You can also build the Rust backend manually with maturin develop or maturin build and then install the resulting wheel with pip install dist/propaq-*.whl.

Quick start

import numpy as np
from qiskit import QuantumCircuit
from qiskit.circuit.library import XXPlusYYGate, RZGate, SwapGate
from qiskit.quantum_info import SparsePauliOp

from propaq.circuits import MajoranaCircuit
from propaq.datatypes import MajoranaTermSum
from propaq.noise import UniformNoiseModel, TruncationPolicy
from propaq.propagators import MajoranaPropagator

# Build a random 4-qubit circuit
qc = QuantumCircuit(4)
qc.append(XXPlusYYGate(np.pi / 4, 0.0), [0, 1])
qc.append(RZGate(np.pi / 3), [2])
qc.append(SwapGate(), [2, 3])

# Observable: sum of single-site X operators
observable = SparsePauliOp.from_list([
    ("XIII", 1.0), ("IXII", 1.0), ("IIXI", 1.0), ("IIIX", 1.0)
])

# Convert to propaq types
mc = MajoranaCircuit.from_qiskit(qc, n_modes=2 * qc.num_qubits)
mts = MajoranaTermSum.from_sparse_pauli_op(observable)

# Build propagator with noise and truncation
prop = MajoranaPropagator(
    noise=UniformNoiseModel(damping=0.001),
    truncation=TruncationPolicy(weight_cutoff=10, coeff_cutoff=1e-5, truncation_range=(None, 10_000_000)),
)

# Back-propagate and evaluate
result = prop.expectation_value(mts, mc, initial_state=0)
print("Expectation value:", result.expectation_value)

For a more detailed introduction, see the example notebooks in the documentation.

Citation

If you use propaq in your research, please cite:

</code></pre>
<h2><a href="#user-content-license" aria-hidden="true" class="anchor" id="user-content-license"></a>License</h2>
<pre><code class="language-md">MIT License

Copyright (c) 2026 Hrishikesh Belagali

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

propaq-0.1.2-cp312-cp312-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.12Windows x86-64

propaq-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

propaq-0.1.2-cp312-cp312-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

propaq-0.1.2-cp311-cp311-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.11Windows x86-64

propaq-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

propaq-0.1.2-cp311-cp311-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

propaq-0.1.2-cp310-cp310-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.10Windows x86-64

propaq-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

propaq-0.1.2-cp310-cp310-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

Details for the file propaq-0.1.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: propaq-0.1.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for propaq-0.1.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 37759c4716795f4c579060c7fe8f183bfbe235b2dd895962401d08cfadce255d
MD5 bbac8acbfa000e7cc661ee3414c25947
BLAKE2b-256 5a6675723ba6de96f94a484ea5cf93728d50b794b9129d7ad47d95949db920f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.2-cp312-cp312-win_amd64.whl:

Publisher: workflow.yml on hkbelagali/propaq

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file propaq-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for propaq-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7e93b9abf86e65720220bb54e9ac53ed03915b7525e9f30d771023fc5d7f822f
MD5 f1c6e4aab8d0b1f6a304255b0089e3bf
BLAKE2b-256 70e97f84b13ddeff970b19ab46d851f74f7bba22ab2be05614276e25b619cd78

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yml on hkbelagali/propaq

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file propaq-0.1.2-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for propaq-0.1.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7ca72c242fdb2cf4465200ce320991a9e581ed94371d7d126c2ab0b8bccbe7aa
MD5 f96e8253f52b624f90a37c6fae4e45ba
BLAKE2b-256 467889942ec6f6480ab4c0067fa7f272adf7e40d7f022ce091760fde43485e3d

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.2-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: workflow.yml on hkbelagali/propaq

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file propaq-0.1.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: propaq-0.1.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for propaq-0.1.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8bf005ff1cba01be9d6b669abb929dadec616c96528c52a0affad6d07dd6a701
MD5 25db4142635f42ea2df4bff6956081c4
BLAKE2b-256 09ca343e5622eaf2594dd10bb76d8883945e8abe0b6de3e4a46c29071a13204c

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.2-cp311-cp311-win_amd64.whl:

Publisher: workflow.yml on hkbelagali/propaq

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file propaq-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for propaq-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1cb65df9096fc35246b984bfb5dfdc60cb7314c7892c69bc7537282a46cf0611
MD5 71351fb3f3fe238f25f42cc8761ccbd6
BLAKE2b-256 88d1f48c7f4dfabdc84dedae0ce6b13f21577de985dbc34ad123aeb63d0ef1cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yml on hkbelagali/propaq

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file propaq-0.1.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for propaq-0.1.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 57c5ecb2c8c993f9b1f1d7c9ba025d1abdd7115baa349812c90855544f34f17e
MD5 3054a9cf52de2695af4e801ae8bb1906
BLAKE2b-256 8ebe7ee363f7a8588235a2bfe510e3fcbb4d91bf250fd926630f2de618c486ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.2-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: workflow.yml on hkbelagali/propaq

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file propaq-0.1.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: propaq-0.1.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for propaq-0.1.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 424db2c973a7291fd25e845fc0ebd4e3e913da0bdb0b6a9e9931c1e1612fe463
MD5 274e6ff60b9cad5544bd9e6ee8d2de81
BLAKE2b-256 ea49d76a025b18636721e7f62999305a9542b907e96d4f129fe62702d07aa177

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.2-cp310-cp310-win_amd64.whl:

Publisher: workflow.yml on hkbelagali/propaq

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file propaq-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for propaq-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 578787fd66f0efb7bac2c9a2dc387c53242f6533585c06364d56f6e431563cc2
MD5 cebfa606e81d815f8ac3164ef154dde5
BLAKE2b-256 63d2ac146fa8d46ecf3ca31b6c5d9e1e66b0f988fea5d6babd9c2d8ce6c788d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: workflow.yml on hkbelagali/propaq

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file propaq-0.1.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for propaq-0.1.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dea65e210405544ca2f2be763d5ebd18e8e336ba9131028b7afd9652514a7567
MD5 44e7258e19711cc8a6a0b3b9889caa2c
BLAKE2b-256 b28788f69ff84980b47641686244c3e63cc1fec2627ac36275889b9f497d11e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.2-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: workflow.yml on hkbelagali/propaq

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.5

9 files

0.1.4

9 files

0.1.3

9 files

This release

0.1.2 This release

9 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page