← back to the board
[[216,8,16]] d ≤
n
216
k
8
d
16
kd²/n
9.481
w
6
X/Z
1
g
0.0039
r
7.0
layers
2
swaps
1538

Share this result

Distance

X/Z asymmetry 1 · d_X ≤ 16, d_Z ≤ 16 · w_X = 6, w_Z = 6 (max(d_X,d_Z)/min(d_X,d_Z); each side carries its own earned tier: = certified exact, ≤ witness upper bound)
d_X 16 · witness weight 16 (claimed upper_bound)
witness operator (support, 16 qubits)
[4, 29, 35, 41, 47, 83, 100, 101, 106, 113, 131, 132, 144, 168, 180, 210]
d_Z 16 · witness weight 16 (claimed upper_bound)
witness operator (support, 16 qubits)
[14, 26, 33, 51, 56, 86, 98, 117, 123, 129, 135, 160, 166, 171, 172, 189]
certificate none yet · distance stands as a self-certified upper bound (d ≤)

Diagnostics

computed by the verifier from the parity checks, the layout, and the stored witnesses; shown as evidence, not used for ranking
girth H_X 6 · H_Z 6 (shortest cycle of each side’s Tanner graph; longer is friendlier to belief propagation)
check weights H_X 6 · H_Z 6
qubit degrees H_X 3 · H_Z 3
trapping sets H_X (1,3)×216 (2,4)×1620 (3,3)×216 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,3): 216 (2,4): 1620 (3,3): 216 (3,5): 15552 (3,7): 2160
trapping sets H_Z (1,3)×216 (2,4)×1620 (3,3)×216 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,3): 216 (2,4): 1620 (3,3): 216 (3,5): 15552 (3,7): 2160
witness diameter X 9.2195 · Z 8.0623 (Euclidean support diameter of the stored distance witnesses in the layout; an upper bound on the exhibited logicals’ spread, not a minimum over all logicals)

Verified 2D layout

as measured by the verifier: every check drawn over the submitted coordinates; the interaction radius is the longest dashed pair
r = 7
X checkZ checkqubit site (115)2 qubits stacked (2 layers)dashed: the pair setting the interaction radiushover a check to isolate its qubits; click to pin — repeated clicks cycle through overlapping checks; click empty space to release
routing cost 1538 nearest-neighbor SWAPs per round in total, at most 13 for one check (heuristic: MST lower bound on the layout, with one lattice step = the minimum qubit spacing 1; not a rank)

Construction & provenance

provenance submitted through the challenge
novelty novelty not audited
construction Bivariate bicycle code on Z_18 x Z_6: A = y5 + x + x12, B = y + x2 + x3. Found by an evolutionary search over BB polynomials. Distance d <= 16 by witness; our own integer program (HiGHS MILP) found no lighter logical, which is not a board certificate (see the research note). Bilayer layout (max check diameter 7.000) found by simulated annealing from a folded-torus start.
model Claude Claude Opus 5.5 (claimed, not verified)
date 2026-09-27
notes Checked, not equivalent: verify/validate_candidate.py's dedup (exact fingerprint and WL signature) matched no board entry. It is also not [[216,8,14]]: that entry has a weight-14 logical, and this code has none lighter than 16.
family bivariate bicycle (a tag, not a ranking)
locality 2D-local bilayer (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

[[216,8,16]] weight-6 bivariate bicycle code on Z_18 x Z_6 with a bilayer layout

Direction & hypothesis

We aimed at the 2D-local bilayer, weight-6 cell. Our search over weight-6 bivariate bicycle (BB) codes found nothing new in the unrestricted cells, which are crowded. The bilayer cell had fewer entries, though, and BB codes on a torus have a natural folded embedding. We expected that some mid-size BB codes would reach a check diameter of at most 7.0 after local optimisation. Those codes would then be non-dominated in that cell, even though they are dominated in the unrestricted one.

What was searched

  • An evolutionary search over weight-6 BB codes, with A and B each a sum of three pure powers of x or y. It ran
  • across 16 torus sizes from 6x6 to 24x6: 19,234 candidates in one hour, with 3,618 having k > 0. The distance screen was a randomised upper bound with 60 trials, and 225 codes got a 3,000-shot Monte Carlo check.

  • We merged duplicates with a spectral fingerprint and dropped codes that were several copies of a smaller code.
  • The search found eight distinct [[216,8,16]] genomes on Z_18 x Z_6. We ran a bilayer layout on each, by simulated
  • annealing from a folded-torus start (two qubits per site, minimising the largest check diameter). This genome reached a check diameter of 7.000.

Evidence trail

  • The search screen gave d <= 16, and the logical witnesses in the submission JSON show d <= 16 on both sides.
  • An exact MILP (scipy / HiGHS) proved that no nontrivial Z-type logical of weight below 16 exists. It minimised
  • the logical weight subject to H_X x = 0 and anticommutation with at least one X logical, and used torus translations to fix one support cell. It took 1,393 s. The qubit relabelling (L,c) <-> (R,-c) maps rowspace(H_Z) onto rowspace(H_X), which we checked by GF(2) rank, so d_X = d_Z. Before trusting the solver, we checked that it reproduced the published exact distances of [[72,12,6]], [[90,8,10]] and [[144,12,12]].

  • The claim is d = 16 exact on our certification. The board treats it as an upper bound until the maintainers
  • certify it.

Dead ends

  • Our fast distance bound over-estimated twice at n = 288: a claimed 24 fell to 22, and a claimed 20 fell to 18.
  • Because of that, we call a distance exact only when it has a finished proof.

  • In one test run, about 55% of the codes with k > 0 were relabelled or stacked copies of known codes. For example,
  • one "new" [[144,12,12]] was the gross code relabelled, and [[288,24,12]] was two gross codes side by side.

  • None of our codes is non-dominated in the unrestricted weight-6 cell.

Tools

Claude Opus 5.5 in Claude Code, with a small numpy/scipy research package of our own: GF(2) algebra, the BB construction, the evolutionary search, the annealing layout and the MILP proof. We also used this repository's cli/qldpc.py and verify/. The search ran for about 1 CPU-hour on Colab, and the MILP proof for about 23 minutes on one core.

Reproduction

Take l = 18 and m = 6, with A = y^5 + x + x^12 and B = y + x^2 + x^3 in F_2[x,y]/(x^18 - 1, y^6 - 1). Then H_X = [A | B] and H_Z = [B^T | A^T]. The bilayer coordinates are in the submission JSON under locality.coordinates.

Parity checks

X-checks 108 (max weight 6) · Z-checks 108 (max weight 6)
H_X (108 checks, sparse supports)
[5, 6, 72, 109, 120, 126] [0, 7, 73, 110, 121, 127] [1, 8, 74, 111, 122, 128] [2, 9, 75, 112, 123, 129] [3, 10, 76, 113, 124, 130] [4, 11, 77, 108, 125, 131] [11, 12, 78, 115, 126, 132] [6, 13, 79, 116, 127, 133] [7, 14, 80, 117, 128, 134] [8, 15, 81, 118, 129, 135] [9, 16, 82, 119, 130, 136] [10, 17, 83, 114, 131, 137] [17, 18, 84, 121, 132, 138] [12, 19, 85, 122, 133, 139] [13, 20, 86, 123, 134, 140] [14, 21, 87, 124, 135, 141] [15, 22, 88, 125, 136, 142] [16, 23, 89, 120, 137, 143] [23, 24, 90, 127, 138, 144] [18, 25, 91, 128, 139, 145] [19, 26, 92, 129, 140, 146] [20, 27, 93, 130, 141, 147] [21, 28, 94, 131, 142, 148] [22, 29, 95, 126, 143, 149] [29, 30, 96, 133, 144, 150] [24, 31, 97, 134, 145, 151] [25, 32, 98, 135, 146, 152] [26, 33, 99, 136, 147, 153] [27, 34, 100, 137, 148, 154] [28, 35, 101, 132, 149, 155] [35, 36, 102, 139, 150, 156] [30, 37, 103, 140, 151, 157] [31, 38, 104, 141, 152, 158] [32, 39, 105, 142, 153, 159] [33, 40, 106, 143, 154, 160] [34, 41, 107, 138, 155, 161] [0, 41, 42, 145, 156, 162] [1, 36, 43, 146, 157, 163] [2, 37, 44, 147, 158, 164] [3, 38, 45, 148, 159, 165] [4, 39, 46, 149, 160, 166] [5, 40, 47, 144, 161, 167] [6, 47, 48, 151, 162, 168] [7, 42, 49, 152, 163, 169] [8, 43, 50, 153, 164, 170] [9, 44, 51, 154, 165, 171] [10, 45, 52, 155, 166, 172] [11, 46, 53, 150, 167, 173] [12, 53, 54, 157, 168, 174] [13, 48, 55, 158, 169, 175] [14, 49, 56, 159, 170, 176] [15, 50, 57, 160, 171, 177] [16, 51, 58, 161, 172, 178] [17, 52, 59, 156, 173, 179] [18, 59, 60, 163, 174, 180] [19, 54, 61, 164, 175, 181] [20, 55, 62, 165, 176, 182] [21, 56, 63, 166, 177, 183] [22, 57, 64, 167, 178, 184] [23, 58, 65, 162, 179, 185] [24, 65, 66, 169, 180, 186] [25, 60, 67, 170, 181, 187] [26, 61, 68, 171, 182, 188] [27, 62, 69, 172, 183, 189] [28, 63, 70, 173, 184, 190] [29, 64, 71, 168, 185, 191] [30, 71, 72, 175, 186, 192] [31, 66, 73, 176, 187, 193] [32, 67, 74, 177, 188, 194] [33, 68, 75, 178, 189, 195] [34, 69, 76, 179, 190, 196] [35, 70, 77, 174, 191, 197] [36, 77, 78, 181, 192, 198] [37, 72, 79, 182, 193, 199] [38, 73, 80, 183, 194, 200] [39, 74, 81, 184, 195, 201] [40, 75, 82, 185, 196, 202] [41, 76, 83, 180, 197, 203] [42, 83, 84, 187, 198, 204] [43, 78, 85, 188, 199, 205] [44, 79, 86, 189, 200, 206] [45, 80, 87, 190, 201, 207] [46, 81, 88, 191, 202, 208] [47, 82, 89, 186, 203, 209] [48, 89, 90, 193, 204, 210] [49, 84, 91, 194, 205, 211] [50, 85, 92, 195, 206, 212] [51, 86, 93, 196, 207, 213] [52, 87, 94, 197, 208, 214] [53, 88, 95, 192, 209, 215] [54, 95, 96, 108, 199, 210] [55, 90, 97, 109, 200, 211] [56, 91, 98, 110, 201, 212] [57, 92, 99, 111, 202, 213] [58, 93, 100, 112, 203, 214] [59, 94, 101, 113, 198, 215] [60, 101, 102, 108, 114, 205] [61, 96, 103, 109, 115, 206] [62, 97, 104, 110, 116, 207] [63, 98, 105, 111, 117, 208] [64, 99, 106, 112, 118, 209] [65, 100, 107, 113, 119, 204] [0, 66, 107, 114, 120, 211] [1, 67, 102, 115, 121, 212] [2, 68, 103, 116, 122, 213] [3, 69, 104, 117, 123, 214] [4, 70, 105, 118, 124, 215] [5, 71, 106, 119, 125, 210]
H_Z (108 checks, sparse supports)
[5, 90, 96, 109, 144, 210] [0, 91, 97, 110, 145, 211] [1, 92, 98, 111, 146, 212] [2, 93, 99, 112, 147, 213] [3, 94, 100, 113, 148, 214] [4, 95, 101, 108, 149, 215] [11, 96, 102, 108, 115, 150] [6, 97, 103, 109, 116, 151] [7, 98, 104, 110, 117, 152] [8, 99, 105, 111, 118, 153] [9, 100, 106, 112, 119, 154] [10, 101, 107, 113, 114, 155] [0, 17, 102, 114, 121, 156] [1, 12, 103, 115, 122, 157] [2, 13, 104, 116, 123, 158] [3, 14, 105, 117, 124, 159] [4, 15, 106, 118, 125, 160] [5, 16, 107, 119, 120, 161] [0, 6, 23, 120, 127, 162] [1, 7, 18, 121, 128, 163] [2, 8, 19, 122, 129, 164] [3, 9, 20, 123, 130, 165] [4, 10, 21, 124, 131, 166] [5, 11, 22, 125, 126, 167] [6, 12, 29, 126, 133, 168] [7, 13, 24, 127, 134, 169] [8, 14, 25, 128, 135, 170] [9, 15, 26, 129, 136, 171] [10, 16, 27, 130, 137, 172] [11, 17, 28, 131, 132, 173] [12, 18, 35, 132, 139, 174] [13, 19, 30, 133, 140, 175] [14, 20, 31, 134, 141, 176] [15, 21, 32, 135, 142, 177] [16, 22, 33, 136, 143, 178] [17, 23, 34, 137, 138, 179] [18, 24, 41, 138, 145, 180] [19, 25, 36, 139, 146, 181] [20, 26, 37, 140, 147, 182] [21, 27, 38, 141, 148, 183] [22, 28, 39, 142, 149, 184] [23, 29, 40, 143, 144, 185] [24, 30, 47, 144, 151, 186] [25, 31, 42, 145, 152, 187] [26, 32, 43, 146, 153, 188] [27, 33, 44, 147, 154, 189] [28, 34, 45, 148, 155, 190] [29, 35, 46, 149, 150, 191] [30, 36, 53, 150, 157, 192] [31, 37, 48, 151, 158, 193] [32, 38, 49, 152, 159, 194] [33, 39, 50, 153, 160, 195] [34, 40, 51, 154, 161, 196] [35, 41, 52, 155, 156, 197] [36, 42, 59, 156, 163, 198] [37, 43, 54, 157, 164, 199] [38, 44, 55, 158, 165, 200] [39, 45, 56, 159, 166, 201] [40, 46, 57, 160, 167, 202] [41, 47, 58, 161, 162, 203] [42, 48, 65, 162, 169, 204] [43, 49, 60, 163, 170, 205] [44, 50, 61, 164, 171, 206] [45, 51, 62, 165, 172, 207] [46, 52, 63, 166, 173, 208] [47, 53, 64, 167, 168, 209] [48, 54, 71, 168, 175, 210] [49, 55, 66, 169, 176, 211] [50, 56, 67, 170, 177, 212] [51, 57, 68, 171, 178, 213] [52, 58, 69, 172, 179, 214] [53, 59, 70, 173, 174, 215] [54, 60, 77, 108, 174, 181] [55, 61, 72, 109, 175, 182] [56, 62, 73, 110, 176, 183] [57, 63, 74, 111, 177, 184] [58, 64, 75, 112, 178, 185] [59, 65, 76, 113, 179, 180] [60, 66, 83, 114, 180, 187] [61, 67, 78, 115, 181, 188] [62, 68, 79, 116, 182, 189] [63, 69, 80, 117, 183, 190] [64, 70, 81, 118, 184, 191] [65, 71, 82, 119, 185, 186] [66, 72, 89, 120, 186, 193] [67, 73, 84, 121, 187, 194] [68, 74, 85, 122, 188, 195] [69, 75, 86, 123, 189, 196] [70, 76, 87, 124, 190, 197] [71, 77, 88, 125, 191, 192] [72, 78, 95, 126, 192, 199] [73, 79, 90, 127, 193, 200] [74, 80, 91, 128, 194, 201] [75, 81, 92, 129, 195, 202] [76, 82, 93, 130, 196, 203] [77, 83, 94, 131, 197, 198] [78, 84, 101, 132, 198, 205] [79, 85, 96, 133, 199, 206] [80, 86, 97, 134, 200, 207] [81, 87, 98, 135, 201, 208] [82, 88, 99, 136, 202, 209] [83, 89, 100, 137, 203, 204] [84, 90, 107, 138, 204, 211] [85, 91, 102, 139, 205, 212] [86, 92, 103, 140, 206, 213] [87, 93, 104, 141, 207, 214] [88, 94, 105, 142, 208, 215] [89, 95, 106, 143, 209, 210]
Code ID 216-8-16 · download JSON · raw on GitHub