Propagation Algorithm
How an operator is pushed through a circuit — gate application, truncation, and reading off expectation values and gradients.
This page explains how operator propagation works at a high level: how an operator is pushed through a circuit, how a single gate updates each monomial, how the growth of terms is controlled by truncation, and how expectation values and gradients are read off the result. It builds on the definitions in Notation, and the method is described in full in (Miller et al., 2025).
Overview
Operator propagation avoids ever storing the full, exponentially large quantum state. Instead, an operator, either the observable or the state, is expanded as a real-coefficient sum of Majorana monomials,
and that sum is pushed through the circuit one gate at a time. Given an observable , a reference state , and a parameterised circuit , the goal is to compute the expectation value
We usually work in the Heisenberg picture, propagating the observable backwards through the circuit while keeping the reference state fixed. One can equally evolve the state forward in the Schrödinger picture.
Circuit and gates
The circuit is a product of gates, each a Majorana rotation generated by a Hermitian monomial :
with real angles . Back-propagation applies the gates in reverse order, updating the observable as
starting from and collecting all surviving monomials after each step.
Applying a gate
Because the gate generator and every propagated term are even monomials, a single gate sends each monomial into one of three cases, governed entirely by whether it commutes with the generator:
If commutes with the generator it passes through unchanged. If it anticommutes it branches into the original monomial (the cosine branch) and a single new monomial (the sine branch); recall from Notation that the product of two anticommuting monomials is again a single monomial. When it is time to truncate, the sine branch may be discarded, in which case the truncation step discards it and only the cosine branch survives.
Applied across a whole circuit, the surviving branches grow the observable as a tree - each branching gate can up to double the number of active terms. That exponential growth is exactly what truncation keeps in check.
Truncation: controlling growth
Without truncation, the number of terms typically grows exponentially with the number of branching gates, making exact simulation intractable. A truncation rule is a map on the operator space that discards terms failing a retention criterion, applied after every gate:
Two criteria are central.
Length truncation
The primary control discards monomials whose length exceeds a cutoff , with one important exception: a fully paired monomial - one whose support consists entirely of complete pairs on a mode (see Notation) - is always kept, no matter how long it is. Writing for the set of paired monomials,
The length cutoff bounds the number of tracked terms to for a system of size at fixed — there are at most monomials of length . It is well motivated in many scenarios (Miller et al., 2025): short monomials tend to dominate expectation values, and in the Majorana setting length truncation comes with provable guarantees on the approximation error and cost for typical unstructured circuits. The same idea applies in the Pauli picture (see Notation).
Keeping the paired monomials is what makes this safe in the Heisenberg picture. As shown in Reading off the expectation value below, only paired monomials survive the trace against a computational-basis state or Slater determinant, while every unpaired monomial contributes nothing.
Coefficient truncation
A complementary rule discards monomials whose coefficients fall below a threshold, suppressing numerically negligible terms that would otherwise accumulate over a long sequence of gates. Conversely, a term whose coefficient exceeds an upper threshold can be kept even when it is beyond the length cutoff.
Reading off the expectation value
Once every gate has been applied, the expectation value is obtained by evaluating the evolved observable against the reference state (currently a single Slater determinant or computational-basis state). The key simplification comes from the Majorana basis: distinct Hermitian monomials are orthogonal under the trace, . So for an evolved observable and a reference state , the trace collapses to a product over shared terms:
Only monomials present in both the evolved observable and the reference state contribute. Since the reference state is a sum of paired monomials (see Notation), the algorithm never sums over the exponentially many terms of the full state - it only needs the handful of paired monomials that overlap with the surviving observable.
Surrogate graphs, gradients, and optimisation
In variational workflows one must evaluate and its gradient repeatedly, across many parameter updates, so cheap re-evaluation is essential. To this end the evolution paths of the monomials in through the circuit are recorded as a surrogate graph. Once built, the graph is replayed to compute and at new parameter values without re-propagating the monomials - propagating and evaluating become separate steps, and only the (cheap) evaluation is repeated inside the optimisation loop. Note that storing the surrogate graph can be memory intensive for large circuits.
See also
- Notation - the Majorana basis, monomials, commutation rule, and pairing structure this page relies on.
- Interface - how to express operators and circuits as input.
- Python API - the full API reference for driving a simulation.