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

Uploaded CPython 3.12Windows x86-64

propaq-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.12macOS 11.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

propaq-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

propaq-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (26.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

propaq-0.1.3-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.3-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: propaq-0.1.3-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.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 79c2e463a5937ec58a39361ca21e7ff6901f16039b1e50f23f22bb60e4a251d6
MD5 6d92d65d032cc97e16af61c92eb66e59
BLAKE2b-256 f3d05949916d0d4d02ee9c7f923943b1df45cdd2f895ac3651054ba2e374af38

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for propaq-0.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 373baec7998259c1645c7fd8b343822b8d4e18040962c73bbd9ec59b4210d8f0
MD5 b58fbecd6c3e8a29fa33c44d0f4911c6
BLAKE2b-256 8c117ea6acf02868566c9f861a9a2e7ec6da3a821d5ff80c914936e411c6edd7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for propaq-0.1.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 10d5e0c18de89e5a4797d0fd354f8eb3c90d11d4c8eecd68b5b46ebe6b934458
MD5 c33a39873e50c8a942515a6b08517b7c
BLAKE2b-256 20c1bfaf6ed9b097ccf20dc11664c7b1c74ef476cf54c61574055f2bc632bca3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: propaq-0.1.3-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.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c84b317d4edf68968a89bc001c69850fcf75823c460cd536e83c6a3b8733c7dd
MD5 5b648ba67ead5d41d65e8df75617a1e2
BLAKE2b-256 8f9a6f3d9d5fb61d7a8eec99b6ab114d8c2abfec2d219c028864c818e5189fc1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for propaq-0.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 177c7c0320dea6182d1867fd01318591774aa68f6a9fd2ee48fd0749b122407d
MD5 77a170ab76e36e221122900bf8038554
BLAKE2b-256 56fc4546476b7ec1d1a63d51fe75e9b83c186e0495424a37e9b9b6197c8db2c7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for propaq-0.1.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7b0438df82a0a5e3d63bbdb68a6f5fcecf15c65e8b520fc5e598dd670840ff73
MD5 0f6e3af74a38407371c303e85454c3b7
BLAKE2b-256 fb2a18d5bec21e30d2435a4e8448a022acb678378d4025b0e9de866981e009b0

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: propaq-0.1.3-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.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bb73fa6f816b245298f7a5ec928858f137f55a0a087b61fbcb273b57dd1827e9
MD5 141667427cde51d88ff997bd9b18d852
BLAKE2b-256 1ccc8b4c64abc125f789f59e319f65f9f4a348fc995c0605c3983f490195f19a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for propaq-0.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bad8f65e39e90793e694672563c880b1c25795657b21607bd6962c813f711aa3
MD5 4ebd04a5e0788a5cc2d57a77c745a4a6
BLAKE2b-256 9ec9b9f1f767831feef721b821238823194a38bb63c8dd9a039e0518eaed8ca7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for propaq-0.1.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 407b02e09c49b79609fffbf9f99100419985dfbd5a09ef55fc8f6e56a450236f
MD5 4f1982eef252bb8e1987583444420dda
BLAKE2b-256 a6b9e96cc6e4c49029122440591d50f5855f9be305ca0bff9d0effa3704a4c4f

See more details on using hashes here.

Provenance

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

This release

0.1.3 This release

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