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).

The core install pulls in only numpy, scipy, qiskit and tqdm. Framework integrations are opt-in extras:

pip install "propaq[cirq,ffsim,openfermion,hybrid]"
Extra Enables
cirq Building circuits from Cirq, and register_cirq_gate
ffsim The from_ffsim_* circuit constructors and MajoranaTermSum.from_ffsim
openfermion Converting OpenFermion fermionic operators into propaq observables
hybrid propaq.hybrid: hybrid Schrodinger-Heisenberg expectation values against a quimb MPS

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 target/wheels/propaq-*.whl. We also recommend installing pre-commit hooks via

pre-commit install

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),
)

# 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 documentation:

Building the docs locally

pip install -e ".[docs]"
mkdocs serve

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.4-cp312-cp312-win_amd64.whl (3.0 MB view details)

Uploaded CPython 3.12Windows x86-64

propaq-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

propaq-0.1.4-cp312-cp312-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

propaq-0.1.4-cp311-cp311-win_amd64.whl (3.0 MB view details)

Uploaded CPython 3.11Windows x86-64

propaq-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

propaq-0.1.4-cp311-cp311-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

propaq-0.1.4-cp310-cp310-win_amd64.whl (3.0 MB view details)

Uploaded CPython 3.10Windows x86-64

propaq-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

propaq-0.1.4-cp310-cp310-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: propaq-0.1.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 3.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.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 41dcf7486575856d0ffe9537c9177f87eae1d1d312f58b4e62003cf407e90a1a
MD5 a778627eb409068f1179eac7706c7796
BLAKE2b-256 9edf6b25fd411f033d4560622d3a1dfe75656f53400312648c1dfb9b4f3299d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.4-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.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for propaq-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 560ae515869a12482557465746128f2aa979980701e1fa3c84db7b16bfb47b8a
MD5 e05e1a7dc256d2d4dec80d8cbad1b3da
BLAKE2b-256 c31f7d894c3c2c66b52eff5646f0158edeb979e4bcef9b6a00b6cd473088eb19

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.4-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.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for propaq-0.1.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 16fe91c2c444f5e6b137d257f1db42b0489bda9bc5d315d84cff1a7cf2f6995b
MD5 b6982b6b908e0b4aec7325afad2fe7c6
BLAKE2b-256 3b0bf3bfabbf38ac7a2256e054352eca67b2eedb9571d39eb60560acfb41e12c

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.4-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.4-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: propaq-0.1.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 3.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.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0a4b5fda2a1c03367750cb6f61cf88a283b716d0e27200a0463a88f4ea4630b2
MD5 32d48f4b1d63a6d4d8456f81cd3a7b87
BLAKE2b-256 16561ed7ec391d1112cbe7d9d298bb71e50981d95d14c4661c9fb70f2e703a3a

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.4-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.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for propaq-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cb4a4d2d4384dadbd5901c5f42db4aa0917efbe1d8851f01c001052303b14023
MD5 f470c9b05a76be0173d78d42a41d3b3d
BLAKE2b-256 0a53a84ed33963b82c6df6cb3ff67ecb2c83b8171a074dd4c36cca75ad6dda9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.4-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.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for propaq-0.1.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06751d7e7b614194b2c92c5818b1af9558d0723ddbdd05ebbe9d89b6af4afed3
MD5 2736e85242a8be2c90066948338c524b
BLAKE2b-256 0bb5157ebd86da087a87985ceae7b3dca7cdebb1f4044a4c03cf59c2b12c03a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.4-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.4-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: propaq-0.1.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 3.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.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5aea671ae89798d49449b701021ae5b4c74099b22f26490d12e20236476435ef
MD5 250bcd44068d3a52fa8f3f678f62c546
BLAKE2b-256 30c0c3d46549c939291f0b677ecc8218269c2404362bf0a2671c7a72c8204459

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.4-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.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for propaq-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 64c08785ffc047bc0f5a053a4fb0dc1515e8afe2bde84c6e925045b5e8ca5305
MD5 474effc1fdbe15ca37d47c8f9de127b2
BLAKE2b-256 5e02d058fc2a345210d0a4ea2312ba1b32f3a5dffadbff182ad5fb7cb22c2273

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.4-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.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for propaq-0.1.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1ac212760c10842929ab4c969148a40a15b5ceb11f51d04a23552ceb50dff609
MD5 d1efe4d3c5a883472de567b9631566f5
BLAKE2b-256 57d99342609706f200f3fd314c085ddc7071a9ab18781681db7df16f88025674

See more details on using hashes here.

Provenance

The following attestation bundles were made for propaq-0.1.4-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

This release

0.1.4 This release

9 files

0.1.3

9 files

0.1.2

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