Quantum computing · Experiment

Quantum error correction with the toric code

Atom Computing and Collaborators

arXiv:2606.04079v1 ↗PDF ↗Submitted 2 June 2026

Question
Can neutral-atom logical memories sustain repeated error correction while replacing lost atoms?
Result
Twisted toric-code memories on 32 and 64 atoms (\([[16,1,(4,3)]]\) and \([[32,1,(6,4)]]\)) run for up to 90 and 70 syndrome cycles with atom reloading. Over four to eight cycles, the larger code has the lower logical error.

The paper in detail

The experiment runs a toric-code memory on a twisted torus. A \(2\times2\) integer matrix in Hermite normal form, \(M=\begin{pmatrix}a&b\\0&c\end{pmatrix}\), defines the lattice \(\Gamma=\{xM:x\in\mathbb Z^2\}\), and points of the plane that differ by an element of \(\Gamma\) are identified. The fundamental domain has \(ac=\det M\) vertices, each carrying a horizontal and a vertical edge qubit, so \(n=2\det M\). X-type vertex checks and Z-type plaquette checks have weight 4. The shortest non-contractible loop sets the distance, \(d=\min_{v\in\Gamma\setminus\{0\}}\|v\|_1\). The codes use \(M=\begin{pmatrix}1&2\\0&8\end{pmatrix}\) and \(M=\begin{pmatrix}1&3\\0&16\end{pmatrix}\), giving \([[16,1,(4,3)]]\) and \([[32,1,(6,4)]]\) with \((d_X,d_Z)\) listed. The torus encodes two qubits; one is treated as a gauge qubit.

Each syndrome cycle initializes fresh atoms, applies four layers of CZ gates, and measures the former data atoms, so data and ancilla roles swap once per cycle. X- and Z-type checks are interleaved to avoid hook errors, and a dynamical-decoupling echo sits at mid-cycle. Imaging distinguishes a lost atom from either qubit state. Lost atoms are replaced from a storage zone, which is refilled every 10 cycles from a magneto-optical trap 30 cm below the array.

The logical error per cycle \(\epsilon\) is fitted from \(\mathrm{LER}(c)=\tfrac12\bigl(1-(1-2\epsilon)^c\bigr)\). Without reloading, \(\epsilon^Z=0.74\%\) for the 16-qubit code and \(0.56\%\) for the 32-qubit code. The suppression factors over four cycles are \(\Lambda^Z=1.9\), \(\Lambda^X=1.20\) and \(\Lambda^{\mathrm{avg}}=1.30\). With reloading, the smaller code runs for 90 cycles and the larger for 70, with fitted \(\epsilon^Z\approx0.63\text{–}0.64\%\) and \(\epsilon^X\approx3\%\). A separate repetition-code memory reaches logical lifetimes of 44 s (\(d=3\)) and 225 s (\(d=7\)), against physical lifetimes of 10–16 s. Decoding uses minimum-weight perfect matching (PyMatching) on a Stim error model reweighted shot by shot for atom loss.

Transferable methods

  1. Rotate data and ancilla roles

    In each cycle the fresh atoms end up holding the code state, while the old data atoms carry the syndrome and are measured. Every atom is therefore measured, and can be cooled or replaced, once every two cycles.

    The paper says the exchange is compiled into the gates but does not spell out the circuit. The standard identity behind such schemes (an editorial illustration) is that a SWAP next to an entangling gate costs at most one extra gate. Since \(\mathrm{SWAP}=\mathrm{CNOT}_{a\to b}\,\mathrm{CNOT}_{b\to a}\,\mathrm{CNOT}_{a\to b}\) and \(\mathrm{CNOT}_{a\to b}^2=I\), \[\mathrm{SWAP}\cdot\mathrm{CNOT}_{a\to b}=\mathrm{CNOT}_{a\to b}\,\mathrm{CNOT}_{b\to a}.\] Appending a swap to the last data–ancilla coupling of a check therefore leaves the syndrome on the old data atom and the data on the old ancilla, for one more two-qubit gate. On CZ hardware, that gate is a CZ between Hadamards.

    Why rotate? With fixed roles a data atom is never measured, so loss and heating accumulate undetected. The paper reports the detection probability rising steeply without swapping and staying near 0.2 with it. With rotation, every atom is measured every second cycle, so the age of any undetected loss is at most two cycles. The price is that each measured atom has undergone 8 two-qubit gates since its previous measurement, rather than 4.

    How to reuse it

    When a register suffers leakage or loss that only measurement reveals, ask whether the circuit can move the code state so that every physical carrier is measured periodically. The swap-absorption identity bounds the extra gate cost, and the rotation period bounds how long damage can go undetected.

  2. Make replenishment part of the computation

    A separate storage zone supplies replacement atoms and is itself replenished during operation. Detected losses are converted into weighted Pauli errors, so the decoder can use them.

    A lost atom is not a Pauli error, but its effect can be modelled by one. If an atom vanishes before a CZ, the gate acts like a control in an unknown basis state: its partner receives either nothing or a \(Z\), and the lost atom has no \(\langle Z\rangle\) to report. For each CZ between initialization and measurement, the paper adds a \(Z\) error on the partner with probability \[\epsilon_t=\tfrac12L_t,\] where \(L_t\) is the likelihood that the atom was lost at gate \(t\). It also assigns a 50% readout error to the lost atom. Matching decoders weight each error mechanism by \(w=\log\frac{1-\epsilon}{\epsilon}\), so these shot-specific probabilities make edges near a known loss cheap, and the decoder prefers explanations there.

    Why the per-cycle fit has its form: if each cycle independently flips the logical value with probability \(\epsilon\), the logical value is wrong after \(c\) cycles exactly when an odd number of flips occurred. Since \(\sum_k\binom ck\epsilon^k(1-\epsilon)^{c-k}(-1)^k=(1-2\epsilon)^c\), \[\Pr[\text{odd}]=\tfrac12\bigl(1-(1-2\epsilon)^c\bigr).\] A constant \(\epsilon\) is a model assumption, and the paper notes that the larger code’s data do not follow one.

    The reservoir is a scheduling constraint (editorial budget). If each cycle loses \(\ell\) atoms on average and a reservoir of \(R\) sites is refilled every \(T\) cycles to a filling fraction \(f\), sustained operation needs \(fR\ge\ell T\), plus margin for fluctuations. The paper uses \(T=10\) cycles with roughly 50% loading. Each refill costs about 1.6% contrast and raises the detection probability for about three cycles, so refilling also has an error cost in the budget.

    How to reuse it

    Convert any heralded but non-Pauli fault into a Pauli error model with shot-specific probabilities, and let the decoder’s weights carry that side information. Budget reservoirs like any other resource. Transfer requires transport, measurement and loading that preserve coherence in the remaining register. Replacement restores the atom count but does not itself correct the errors induced on neighbouring qubits.

Source: Figure 1; Sections II–IV; Supplement SIII.1. Based on the linked paper version. Derivations marked as editorial, and suggested uses in other problems, are editorial guidance rather than results of the paper.

Context & limitations

Why it matters. Addresses sustained operation and atom loss, practical obstacles to scalable logical memories.

Limitations. The larger code’s advantage is modest (\(\Lambda\approx1.3\) averaged over bases), and the distance comparison covers at most eight cycles. The larger code’s data do not follow a fixed error per cycle, and the simulations omit coherent errors, heating and reload errors. The result does not demonstrate arbitrary-depth fault-tolerant computation.

Description based on the full text of the linked arXiv version, read 2026-10-19; equations follow the paper’s notation.