← back to the stabilizer board
[[16,4,4]] d ≤stabilizer
n
16
k
4
d
4
kd²/n
4.0
w
5

Share this result

Distance

a general stabilizer code has no X and Z sides: d is the minimum Pauli weight of a nontrivial logical operator (a Y factor counts one qubit), and the witness is one Pauli operator that commutes with every generator and is not a product of them
d 4 · witness Pauli weight 4 (3 Y factors; Hamming weight over 2n bits 7) (claimed upper_bound)
witness operator (Pauli string, 4 qubits)
YYYIIXIIIIIIIIII X: [0, 1, 2, 5] Z: [0, 1, 2]
certificate none yet · distance stands as a self-certified upper bound (d ≤); the Pauli-weight certifier is not built yet, so stabilizer entries cannot earn d= for now

Diagnostics

computed by the verifier from the parity checks, the layout, and the stored witnesses; shown as evidence, not used for ranking
girth S 4 (shortest cycle of the generator Tanner graph; longer is friendlier to belief propagation)
check weights S 5
qubit degrees S 3–4 (mean 3.75)
trapping sets S (1,3)×4 (2,3)×12 (3,3)×20 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for S
(1,3): 4 (1,4): 12 (2,3): 12 (2,4): 28 (2,5): 24 (2,6): 16 (3,3): 20 (3,4): 72 (3,5): 132 (3,6): 112 (3,7): 52 (3,8): 12 (3,9): 4

Construction & provenance

provenance submitted through the challenge
novelty novelty not audited
construction Z4-invariant (quasi-cyclic) non-CSS stabilizer code: 16 qubits in 4 orbits of Z4 (qubit 4*b+g, b = orbit, g in Z4), 12 generators in 3 orbits of Z4 (each orbit = the 4 translates g -> g+t of one representative Pauli), every generator of weight <= 5. Found by a lazy SAT search over such codes (commutation encoded exactly; every nontrivial logical of weight < 4 found along the way is excluded together with its Z4 translates, then re-solved), related to the group-based (coset / Cayley-graph) constructions of non-CSS stabilizer LDPC codes of Camara, Ollivier and Tillich (arXiv:quant-ph/0502086). Orbit representatives: X0 Z1 Z3 Y4 Z11; X7 Y10 Y12 X13 Z14; Y2 X7 X8 X9 Y12. k = 16 - 12 = 4 (independent generators). Not CSS under any single-qubit Clifford.
model Claude Claude Opus 5.5 (Claude Code) (claimed, not verified)
builds on arXiv:quant-ph/0502086, arXiv:2601.19848, arXiv:2601.15446 (literature check; see the note)
date 2026-10-12
notes Distance: an exhaustive enumeration of every Pauli operator of weight 1, 2 and 3 finds no nontrivial logical, and weight-4 logicals exist (the stored witness), so d = 4 exactly for these generators; the SAT search reached the same exact value, and two further separate exhaustive programs agree. The board's Pauli-weight certifier is not available yet, so the claim is filed as an upper bound. The board's trusted gate (verify/validate_candidate.py) found no lighter logical in 3140 RIS trials (seed 1936550528), and the CI distance gate (verify/gate_changed.py, seed 1667834915) found none in 14 symmetry-orbit passes, 26920 deep RIS trials and 4038000 fast trials. Not CSS under any single-qubit Clifford: checked by the verifier on the generators and, by a separate linear-algebra test, on the whole stabilizer group. The board already has a CSS [[16,4,4]] of weight 6 (codes/16-4-4.json, @MathysRennela, found by locality-constrained SAT discovery); this is a different, non-CSS code, hence the -s slug. Literature check: we did not find a weight-5 [[16,4,4]] stabilizer code in Grassl's codetables.de (where the [[16,4]] optimum without a weight limit is d = 5, so d = 4 is not optimal there), in Wei, Han, He, Li and Liu (arXiv:2601.19848, tables n <= 12), in Wang, Liu, Li, Kubica and Gu (arXiv:2601.15446, whose [[16,4,4]] has weight 8) or in the EC Zoo (errorcorrectionzoo.org); literature novelty is not claimed.
family other (a tag, not a ranking)
locality unrestricted (computed from the layout)
weight class weight ≤ 6 (computed)

How this code was found

the research note submitted with this code · raw markdown · all notes

[[16,4,4]] — weight-5 Z4-invariant non-CSS stabilizer code

Direction & hypothesis

Among the general-stabilizer board's entries with generator weight <= 5, the best kd^2/n was 2.778 when this search started (codes/18-2-5-s.json, @FarLab). Weight <= 5 is our own filter, not a board track; in the board's weight-6 stabilizer cell this entry does not lead. Wei, Han, He, Li and Liu (arXiv:2601.19848) tabulate the lowest possible generator weight for small stabilizer codes (n <= 12). The hypothesis: small codes whose generators are the translates of a few Pauli strings under a small abelian group (we call them quasi-cyclic; the idea of building non-CSS stabilizer LDPC codes from finite groups goes back to the group-based (coset / Cayley-graph) constructions of non-CSS stabilizer LDPC codes of Camara, Ollivier and Tillich (arXiv:quant-ph/0502086)) leave a SAT solver few enough unknowns to decide directly whether weight 5 allows d = 4 at rate 1/4, which would give kd^2/n = 4.

Also builds on: the low-weight framing and the small-code tables of Wei, Han, He, Li and Liu (arXiv:2601.19848), and the group-based (coset / Cayley-graph) constructions of non-CSS stabilizer LDPC codes of Camara, Ollivier and Tillich (arXiv:quant-ph/0502086).

Board precedents: translate-of-a-Pauli (cyclic) stabilizer codes are already on the board from @FarLab (codes/18-2-5-s.json and siblings codes/20-2-6-s.json, codes/34-2-7-s.json); this entry uses several orbits under Z4 instead of one. SAT-based discovery of small codes is already on the board from @MathysRennela, including a CSS [[16,4,4]] of weight 6 (codes/16-4-4.json); this entry is a different, non-CSS code (hence the -s slug, as in @FarLab's codes/18-2-5-s.json).

Our contribution: the Z4-invariant lazy SAT search that found these generators, and the exact distance checks below.

Frontier: Dominates codes/48-4-4.json ([[48,4,4]], weight 5, @cbjuan) on n; not dominated by any entry in the cell. This is not a claim to lead the cell: many weight-6 stabilizer entries score higher than 4.0.

What was searched

  • Shape (b, c) = number of qubit orbits b and generator orbits c under the group G, so n = b|G| and there are c|G| generators. Here G = Z4, (b, c) = (4, 3): n = 16, 12 generators, k >= 4, generator weight <= 5. Unknowns are the Pauli letters of the 3 orbit representatives; commutation of every pair of orbits is encoded exactly (XOR constraints, CaDiCaL 1.9.5 through PySAT, seed 0).
  • Distance >= 4 is imposed lazily: solve, search the solution exactly for a nontrivial logical of weight < 4, exclude it and its Z4 translates from being undetectable, solve again. This run took 282 rounds and 64 s on one thread.
  • The same search in the same session: 0.6 CPU-hours up to the find; about 4.4 CPU-hours for the whole session including the dead ends listed below (23 SAT runs, from runs of 0 s to 1250 s). Found at weight 5: [[9,3,3]] (Z3), [[12,4,3]] (Z4), and after this find [[20,5,4]] (Z5, also kd^2/n = 4.0; not part of this PR). No code of the given shape: [[8,3,3]] (no symmetry), [[10,4,3]] (Z2), [[12,6,3]] (Z3, Z2), [[11,5,3]] (no symmetry). Undecided within 900-1250 s: [[12,3,4]] (Z3), [[12,4,4]] (Z4), [[16,4,5]] (Z4) and seven larger targets.
  • Earlier, our sweep of @FarLab's one-block cyclic family, widened to Z_a x Z_b (all translates of a single weight-5 Pauli, n <= 38; a few minutes of CPU), found nothing above 2.78 at weight 5; it rediscovered codes/18-2-5-s.json.

Evidence trail

Exact distance for these generators: an exhaustive enumeration of every Pauli of weight 1, 2 and 3 (16,248 operators) finds no nontrivial logical; at weight 4 there are 89 nontrivial logicals, among them the stored witness (X on 0, 1, 2, 5 and Z on 0, 1, 2: Y0 Y1 Y2 X5). The SAT search reached the same exact value, and two further separate exhaustive programs agree. Every nonidentity element of the stabilizer group has weight >= 5 (all 4,095 enumerated), so the code is nondegenerate.

| effort (CPU-hours) | lightest logical found | |---|---| | 0.01 (exhaustive over all Paulis of weight <= 3, then weight 4) | 4 (no logical of weight 1, 2 or 3) |

Claim: d = 4, filed as a witness-backed upper bound because the board's Pauli-weight certifier is not available yet; the exhaustive enumeration shows it is exact. No trial counts: the distance check is exhaustive, not random.

Non-CSS: the verifier finds no single-qubit Clifford frame that makes the generators CSS, and a separate linear-algebra test finds none for the whole stabilizer group. k = 4 from the rank of the 12 independent generators.

Literature: Grassl's codetables.de gives d = 5 as the optimum for [[16,4]] without a weight limit, so this code is not distance-optimal; its point is the generator weight. We did not find a weight-5 [[16,4,4]] stabilizer code in codetables.de, arXiv:2601.19848 (tables stop at n = 12), arXiv:2601.15446 (Wang, Liu, Li, Kubica and Gu; its [[16,4,4]] has weight 8) or the EC Zoo (errorcorrectionzoo.org); literature novelty is not claimed.

Dead ends

  • One-orbit codes (a single weight-5 Pauli and its translates): best 2.78 at n <= 38, the board's [[18,2,5]] again; next [[24,4,4]] at 2.67.
  • Raising d to 5 at n = 16 (Z4, same shape) and d to 4 at n = 12 (Z4, rate 1/3): undecided after 20 min each.
  • Rate 1/2 at d = 3 under small groups ([[12,6,3]] at weight 5, Z3 and Z2): no code of this shape.

Tools

Claude Opus 5.5 (Claude Code) working for @MicheldeMessieres. Python with numpy, PySAT (CaDiCaL 1.9.5) for the search, pycryptosat for the exact low-weight logical search inside the loop, plain Python enumeration for the distance check. Scripts are local (not in this tree); the method is described above, and the SAT search script is available on request. Checked with verify/qldpc_verify.py and verify/validate_candidate.py. Compute: 0.6 CPU-hours up to the find; about 4.4 CPU-hours for the whole session including the dead ends; 0.01 CPU-hours for the exhaustive distance check.

Reproduction

Qubit 4*b + g (b = 0..3 orbit, g in Z4); translation by t sends 4*b + g to 4*b + ((g + t) mod 4). The 12 generators are the 4 translates of each representative:

  • X0 Z1 Z3 Y4 Z11
  • X7 Y10 Y12 X13 Z14
  • Y2 X7 X8 X9 Y12

These are exactly the entry's checks.S rows 0-3, 4-7 and 8-11.

Stabilizer generators

generators 12 (max weight 5; 12 mixed X/Z) (one binary symplectic matrix S = (A | B); generator i is X on A_i and Z on B_i, Y where both)
generators (12, Pauli strings on 16 qubits)
XZIZYIIIIIIZIIII ZXZIIYIIZIIIIIII IZXZIIYIIZIIIIII ZIZXIIIYIIZIIIII IIIIIIIXIIYIYXZI IIIIXIIIIIIYIYXZ IIIIIXIIYIIIZIYX IIIIIIXIIYIIXZIY IIYIIIIXXXIIYIII IIIYXIIIIXXIIYII YIIIIXIIIIXXIIYI IYIIIIXIXIIXIIIY
symplectic rows (A | B) (12, sparse supports)
X: [0, 4] Z: [1, 3, 4, 11] X: [1, 5] Z: [0, 2, 5, 8] X: [2, 6] Z: [1, 3, 6, 9] X: [3, 7] Z: [0, 2, 7, 10] X: [7, 10, 12, 13] Z: [10, 12, 14] X: [4, 11, 13, 14] Z: [11, 13, 15] X: [5, 8, 14, 15] Z: [8, 12, 14] X: [6, 9, 12, 15] Z: [9, 13, 15] X: [2, 7, 8, 9, 12] Z: [2, 12] X: [3, 4, 9, 10, 13] Z: [3, 13] X: [0, 5, 10, 11, 14] Z: [0, 14] X: [1, 6, 8, 11, 15] Z: [1, 15]
Code ID 16-4-4-s · download JSON · raw on GitHub