Honeycomb Floquet code

Essence

The object. Put one qubit on every vertex of a honeycomb torus. Every edge has a direction label x, y, or z and carries the corresponding two-qubit measurement XX, YY, or ZZ. A proper three-coloring of the hexagons gives a second, independent edge label: the color missing from the two faces beside that edge. At round r, measure all edges with missing color r. Those edges form a perfect matching, so the measurements within one round commute even though adjacent edge operators from different rounds anticommute.

That ordered, period-three measurement schedule is the code. The edge operators are not a static stabilizer group. Instead, past outcomes define an instantaneous stabilizer group (ISG) that is updated whenever the next matching is measured. On the shipped 3 x 3 torus, the constructor tracks the startup ranks

9, 12, 14, 16, 16, 16, ...

after successive rounds. The steady rank is 16 on 18 qubits, so two logical qubits survive indefinitely. The reproduction script recomputes this profile, the two-logical-qubit 6 x 6 instance, every perfect matching, and the plaquette backbone; see the schedule and ISG derivation. The executable transcript is shipped as pedagogy/reproduce.py.

The invariant. Multiply the six directional edge operators around one hexagon. At each vertex two different Pauli letters meet, leaving the third; the product is a weight-six plaquette Pauli. It commutes with every edge measurement and therefore survives all three rounds. On the 3 x 3 torus the nine plaquette products have rank eight. Combining them with any steady-round matching gives rank sixteen, with one shared dependency. This permanent backbone plus one moving matching is the algebraic skeleton of the ISG.

The post-struggle sentence. Honeycomb protection comes from measuring three incompatible perfect matchings in the right order: invariant plaquette products remember the syndrome, while the currently measured matching continually redraws a toric-code frame around two logical qubits.

Design problem

Weight-two parity measurements are attractive because several hardware architectures can implement them more directly than high-weight stabilizer measurements. The obstruction is immediate. Two honeycomb edges meeting at a vertex carry different Pauli letters, so their two-qubit operators anticommute. No static stabilizer code can contain every edge operator.

The static-subsystem shortcut also fails. If all edge operators are declared gauge generators, their center contains the plaquette products but the parent subsystem group does not carry the two logical qubits generated by the Floquet protocol. The information lives in the order of measurements and in the outcome-dependent update rule, not in the common center alone. This is the foundational distinction made by Hastings and Haah.

The schedule solves three constraints simultaneously:

  1. every round must be a perfect matching, so its measurements commute and touch every qubit exactly once;
  2. the incoming matching must replace, rather than accumulate with, the anticommuting part of the previous ISG;
  3. products of outcomes across time must expose stable plaquette information for a decoder.

The plaquette three-coloring supplies the needed matchings. Crucially, the round label is not the edge-direction label. Each shipped round contains equal numbers of XX, YY, and ZZ measurements. Grouping by direction instead produces a valid-looking three-round schedule with the wrong steady-state logical count. The wrong-schedule counterexample is therefore part of the definition, not a coding-style warning.

The bargain is sharp: the code gains topological memory from weight-two measurements, but syndrome information is spread over time. A decoder must know the schedule, measurement circuit, detector definitions, and noise normalization. A static parity-check matrix is insufficient.

Derivation chain

1. Separate direction from round. For L1 x L2 unit cells there are two vertices per cell and hence n = 2 L1 L2 qubits. The three geometric directions determine Pauli type. A three-coloring of faces determines round. For every edge, the two adjacent face colors are distinct; the unused color is its round label.

2. Prove that a round is measurable. At a trivalent vertex, the three incident edges separate the three pairs of neighboring face colors, so their missing colors are all different. Exactly one edge of each round label meets the vertex. Each round is therefore a disjoint union of edges covering every qubit once: a perfect matching. The constructor checks this exact support condition before returning a Schedule.

3. Build the invariant plaquettes. Let W_p be the product of the six directional edge operators around face p. A boundary edge overlaps W_p at two endpoints and contributes two local anticommutations. A non-boundary edge touching the face meets it at one vertex, but W_p carries the same Pauli letter there as that outward edge. Both cases commute. Thus every W_p commutes with every measurement in every round. The plaquette calculation gives the explicit 3 x 3 words and the single global dependency.

4. Update the ISG rather than append checks. Suppose an incoming measured Pauli anticommutes with old ISG generators. Choose one such generator as a pivot, multiply it into the other anticommuting generators so they commute with the measurement, and replace the pivot by the measured Pauli. This preserves mutual commutation and is exactly the sign-free rule implemented by ISGTracker.measure. After startup, each round replaces the moving matching while the plaquette subgroup remains.

5. Count what survives the whole sequence. The static snapshot returned by constructor.py has rank sixteen and therefore k = 18 - 16 = 2. Independently, the schedule verifier evolves full periods until the rank profile repeats and computes dynamic_k = n - periodic_rank = 2. Equality of the two counts is a consistency check. A wrong schedule can have a plausible snapshot at one time and a different long-time count, so the Atlas records both properties.

6. Contract the latest matching. Fuse the two physical qubits on each just-measured edge into one effective qubit. Under a depth-one local Clifford change of basis, the moving checks and plaquette products become star and plaquette stabilizers of a coarser toric lattice. This explains two torus logical qubits at each steady time. The map changes from round to round, which is why the full protocol carries a nontrivial anyon automorphism rather than being one frozen toric code. The full dictionary lives on the instantaneous toric-frame page.

7. Turn outcomes into detectors. An individual edge outcome is random gauge information. A plaquette value is inferred from a prescribed product of outcomes gathered at different times; comparing successive inferred values produces a detection event. Physical faults become edges or hyperedges in a spacetime detector model. The detector and distance page separates this circuit fault distance from any static snapshot distance.

Multiple pictures

Why these parameters

Why n = 2 L1 L2. The chosen periodic cell contains one A and one B vertex. constructor.py enumerates exactly L1 L2 cells and creates three edges per cell, giving a trivalent graph with 2 L1 L2 vertices.

Why both lengths are multiples of three. The dual graph of honeycomb faces is triangular. In the constructor's torus convention, the coloring c(i,j) = i - j mod 3 must return to itself around both periodic handles. The two winding conditions require L1 = 0 mod 3 and L2 = 0 mod 3. The reproduction script exhausts all dimensions from two through nine and confirms that the constraint solver finds a proper coloring exactly for those pairs. Invalid sizes fail loudly instead of returning a different schedule.

Why period three. Three face colors produce three missing-color edge classes, and every vertex meets one edge from each class. Fewer classes cannot partition all three incident directions into perfect matchings while retaining the same plaquette-color construction.

Why k = dynamic_k = 2 on the torus. Nine plaquettes have rank eight. At a steady time, the current matching has rank nine, and its span intersects the plaquette span in one global relation. The ISG rank is therefore 8 + 9 - 1 = 16; subtracting from eighteen leaves two. The 6 x 6 instance independently reaches rank seventy on seventy-two qubits. These are recomputed facts, not parameter formulas copied from a paper.

Why no d appears in instances.yaml. The exact distance of the frozen ISG is not the operational distance of a noisy periodic measurement protocol. Floquet fault distance minimizes over undetectable, non-benign spacetime error histories and depends on the circuit and observation window. The present verifier has no such computation, so the entry leaves d unknown rather than mislabeling a snapshot distance. The formal gap is explained on the distance page.

Failure modes

Operations story

The unmodified memory schedule already performs a logical-frame action. In the instantaneous toric description, one period exchanges electric and magnetic anyon labels. A winding representative that is electric in one frame must therefore be redressed and interpreted as magnetic in the next. Two periods restore the anyon label, although outcome-dependent Pauli-frame updates still have to be tracked. This is a measurement-based topological Clifford automorphism, not a transversal gate on a fixed block.

More elaborate operations change geometry or schedule:

These mechanisms and their assumptions are separated on the logical-operations page. The six-lens sweep searched through 2026-07-26 and found no complete universal, fully benchmarked gate set for the unmodified planar Hastings-Haah memory. Results for Floquet color codes or Floquet-Bacon-Shor are neighboring protocols, not native honeycomb operations.

Litmus questions

Q1: Why do repeated incompatible measurements not accumulate until k = 0? A: An incoming measurement is not blindly appended to the ISG. When it anticommutes with old generators, the update rule replaces one pivot and multiplies that pivot into the other anticommuting rows. The rank-eight plaquette subgroup survives, while the moving matching is exchanged for the new one. Direct evolution reaches rank sixteen and then repeats, leaving two logical qubits.

Q2: What are the two different labels on an edge? A: Its geometric direction chooses the Pauli letter X, Y, or Z. The missing color of its two adjacent plaquettes chooses measurement round 0, 1, or 2. Confusing these labels produces the direction-grouped counterexample. Every correct round in the shipped 3 x 3 schedule contains three measurements of each Pauli type.

Q3: Why is dynamic_k needed when the snapshot already reports k = 2? A: Snapshot k counts the centralizer quotient of one frozen ISG. dynamic_k first evolves the repeated schedule to its periodic rank and asks how many qubits survive the entire sequence. Their agreement certifies this constructor; wrong schedules can make the two notions diverge or stabilize at the wrong family scaling.

Q4: Can the toric-code distance be quoted as the Honeycomb fault distance? A: No. The local Clifford contraction describes an instantaneous stabilizer frame. Circuit fault distance classifies complete spacetime error histories modulo benign errors, including faulty measurements and temporal boundaries. Until that detector circuit is specified and analyzed, the Atlas leaves d unclaimed.

Q5: What did the hardware evidence establish as of the 2026-07-26 literature sweep? A: The literal IBM experiment measured Honeycomb plaquette stabilizers and reported syndrome-change behavior, but it did not demonstrate a repeatedly protected logical memory or distance scaling. Majorana, photonic, fabrication-defect, and dynamic-circuit results in the sweep are proposals or simulations. The realization ledger keeps those boundaries explicit.