← back to the board
[[288,12,16]] d ≤
n
288
k
12
d
16
kd²/n
10.667
w
6
X/Z
1
g
0.0044
r
7.0
layers
2
swaps
2043

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)
[34, 49, 50, 66, 103, 124, 125, 141, 156, 165, 176, 185, 231, 234, 251, 254]
d_Z 16 · witness weight 16 (claimed upper_bound)
witness operator (support, 16 qubits)
[10, 13, 25, 34, 63, 66, 79, 88, 100, 103, 132, 141, 193, 215, 268, 284]
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)×288 (2,4)×2160 (3,3)×288 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,3): 288 (2,4): 2160 (3,3): 288 (3,5): 20736 (3,7): 2880
trapping sets H_Z (1,3)×288 (2,4)×2160 (3,3)×288 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,3): 288 (2,4): 2160 (3,3): 288 (3,5): 20736 (3,7): 2880
witness diameter X 11.3137 · Z 8.544 (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 (148)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 2043 nearest-neighbor SWAPs per round in total, at most 12 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_24 x Z_6: A = y3 + x + x14, B = y + y2 + 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.
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

[[288,12,16]] weight-6 bivariate bicycle code on Z_24 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. Near n = 300, the bilayer entries had either k <= 8 with larger d, or k = 12 with d <= 14. A k = 12, d = 16 code with a check diameter of at most 7.0 would sit between them.

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 several distinct [[288,12,16]] genomes on Z_24 x Z_6. We ran a bilayer layout on them, 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,867 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.

  • The [[288,24,12]] code the search reported was two gross codes side by side, and one "new" [[144,12,12]] was the
  • gross code relabelled. In one test run, about 55% of the codes with k > 0 were copies of this kind.

  • 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 31 minutes on one core.

Reproduction

Take l = 24 and m = 6, with A = y^3 + x + x^14 and B = y + y^2 + x^3 in F_2[x,y]/(x^24 - 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 144 (max weight 6) · Z-checks 144 (max weight 6)
H_X (144 checks, sparse supports)
[3, 6, 84, 145, 146, 162] [4, 7, 85, 146, 147, 163] [5, 8, 86, 147, 148, 164] [0, 9, 87, 148, 149, 165] [1, 10, 88, 144, 149, 166] [2, 11, 89, 144, 145, 167] [9, 12, 90, 151, 152, 168] [10, 13, 91, 152, 153, 169] [11, 14, 92, 153, 154, 170] [6, 15, 93, 154, 155, 171] [7, 16, 94, 150, 155, 172] [8, 17, 95, 150, 151, 173] [15, 18, 96, 157, 158, 174] [16, 19, 97, 158, 159, 175] [17, 20, 98, 159, 160, 176] [12, 21, 99, 160, 161, 177] [13, 22, 100, 156, 161, 178] [14, 23, 101, 156, 157, 179] [21, 24, 102, 163, 164, 180] [22, 25, 103, 164, 165, 181] [23, 26, 104, 165, 166, 182] [18, 27, 105, 166, 167, 183] [19, 28, 106, 162, 167, 184] [20, 29, 107, 162, 163, 185] [27, 30, 108, 169, 170, 186] [28, 31, 109, 170, 171, 187] [29, 32, 110, 171, 172, 188] [24, 33, 111, 172, 173, 189] [25, 34, 112, 168, 173, 190] [26, 35, 113, 168, 169, 191] [33, 36, 114, 175, 176, 192] [34, 37, 115, 176, 177, 193] [35, 38, 116, 177, 178, 194] [30, 39, 117, 178, 179, 195] [31, 40, 118, 174, 179, 196] [32, 41, 119, 174, 175, 197] [39, 42, 120, 181, 182, 198] [40, 43, 121, 182, 183, 199] [41, 44, 122, 183, 184, 200] [36, 45, 123, 184, 185, 201] [37, 46, 124, 180, 185, 202] [38, 47, 125, 180, 181, 203] [45, 48, 126, 187, 188, 204] [46, 49, 127, 188, 189, 205] [47, 50, 128, 189, 190, 206] [42, 51, 129, 190, 191, 207] [43, 52, 130, 186, 191, 208] [44, 53, 131, 186, 187, 209] [51, 54, 132, 193, 194, 210] [52, 55, 133, 194, 195, 211] [53, 56, 134, 195, 196, 212] [48, 57, 135, 196, 197, 213] [49, 58, 136, 192, 197, 214] [50, 59, 137, 192, 193, 215] [57, 60, 138, 199, 200, 216] [58, 61, 139, 200, 201, 217] [59, 62, 140, 201, 202, 218] [54, 63, 141, 202, 203, 219] [55, 64, 142, 198, 203, 220] [56, 65, 143, 198, 199, 221] [0, 63, 66, 205, 206, 222] [1, 64, 67, 206, 207, 223] [2, 65, 68, 207, 208, 224] [3, 60, 69, 208, 209, 225] [4, 61, 70, 204, 209, 226] [5, 62, 71, 204, 205, 227] [6, 69, 72, 211, 212, 228] [7, 70, 73, 212, 213, 229] [8, 71, 74, 213, 214, 230] [9, 66, 75, 214, 215, 231] [10, 67, 76, 210, 215, 232] [11, 68, 77, 210, 211, 233] [12, 75, 78, 217, 218, 234] [13, 76, 79, 218, 219, 235] [14, 77, 80, 219, 220, 236] [15, 72, 81, 220, 221, 237] [16, 73, 82, 216, 221, 238] [17, 74, 83, 216, 217, 239] [18, 81, 84, 223, 224, 240] [19, 82, 85, 224, 225, 241] [20, 83, 86, 225, 226, 242] [21, 78, 87, 226, 227, 243] [22, 79, 88, 222, 227, 244] [23, 80, 89, 222, 223, 245] [24, 87, 90, 229, 230, 246] [25, 88, 91, 230, 231, 247] [26, 89, 92, 231, 232, 248] [27, 84, 93, 232, 233, 249] [28, 85, 94, 228, 233, 250] [29, 86, 95, 228, 229, 251] [30, 93, 96, 235, 236, 252] [31, 94, 97, 236, 237, 253] [32, 95, 98, 237, 238, 254] [33, 90, 99, 238, 239, 255] [34, 91, 100, 234, 239, 256] [35, 92, 101, 234, 235, 257] [36, 99, 102, 241, 242, 258] [37, 100, 103, 242, 243, 259] [38, 101, 104, 243, 244, 260] [39, 96, 105, 244, 245, 261] [40, 97, 106, 240, 245, 262] [41, 98, 107, 240, 241, 263] [42, 105, 108, 247, 248, 264] [43, 106, 109, 248, 249, 265] [44, 107, 110, 249, 250, 266] [45, 102, 111, 250, 251, 267] [46, 103, 112, 246, 251, 268] [47, 104, 113, 246, 247, 269] [48, 111, 114, 253, 254, 270] [49, 112, 115, 254, 255, 271] [50, 113, 116, 255, 256, 272] [51, 108, 117, 256, 257, 273] [52, 109, 118, 252, 257, 274] [53, 110, 119, 252, 253, 275] [54, 117, 120, 259, 260, 276] [55, 118, 121, 260, 261, 277] [56, 119, 122, 261, 262, 278] [57, 114, 123, 262, 263, 279] [58, 115, 124, 258, 263, 280] [59, 116, 125, 258, 259, 281] [60, 123, 126, 265, 266, 282] [61, 124, 127, 266, 267, 283] [62, 125, 128, 267, 268, 284] [63, 120, 129, 268, 269, 285] [64, 121, 130, 264, 269, 286] [65, 122, 131, 264, 265, 287] [66, 129, 132, 144, 271, 272] [67, 130, 133, 145, 272, 273] [68, 131, 134, 146, 273, 274] [69, 126, 135, 147, 274, 275] [70, 127, 136, 148, 270, 275] [71, 128, 137, 149, 270, 271] [72, 135, 138, 150, 277, 278] [73, 136, 139, 151, 278, 279] [74, 137, 140, 152, 279, 280] [75, 132, 141, 153, 280, 281] [76, 133, 142, 154, 276, 281] [77, 134, 143, 155, 276, 277] [0, 78, 141, 156, 283, 284] [1, 79, 142, 157, 284, 285] [2, 80, 143, 158, 285, 286] [3, 81, 138, 159, 286, 287] [4, 82, 139, 160, 282, 287] [5, 83, 140, 161, 282, 283]
H_Z (144 checks, sparse supports)
[4, 5, 126, 147, 204, 282] [0, 5, 127, 148, 205, 283] [0, 1, 128, 149, 206, 284] [1, 2, 129, 144, 207, 285] [2, 3, 130, 145, 208, 286] [3, 4, 131, 146, 209, 287] [10, 11, 132, 144, 153, 210] [6, 11, 133, 145, 154, 211] [6, 7, 134, 146, 155, 212] [7, 8, 135, 147, 150, 213] [8, 9, 136, 148, 151, 214] [9, 10, 137, 149, 152, 215] [16, 17, 138, 150, 159, 216] [12, 17, 139, 151, 160, 217] [12, 13, 140, 152, 161, 218] [13, 14, 141, 153, 156, 219] [14, 15, 142, 154, 157, 220] [15, 16, 143, 155, 158, 221] [0, 22, 23, 156, 165, 222] [1, 18, 23, 157, 166, 223] [2, 18, 19, 158, 167, 224] [3, 19, 20, 159, 162, 225] [4, 20, 21, 160, 163, 226] [5, 21, 22, 161, 164, 227] [6, 28, 29, 162, 171, 228] [7, 24, 29, 163, 172, 229] [8, 24, 25, 164, 173, 230] [9, 25, 26, 165, 168, 231] [10, 26, 27, 166, 169, 232] [11, 27, 28, 167, 170, 233] [12, 34, 35, 168, 177, 234] [13, 30, 35, 169, 178, 235] [14, 30, 31, 170, 179, 236] [15, 31, 32, 171, 174, 237] [16, 32, 33, 172, 175, 238] [17, 33, 34, 173, 176, 239] [18, 40, 41, 174, 183, 240] [19, 36, 41, 175, 184, 241] [20, 36, 37, 176, 185, 242] [21, 37, 38, 177, 180, 243] [22, 38, 39, 178, 181, 244] [23, 39, 40, 179, 182, 245] [24, 46, 47, 180, 189, 246] [25, 42, 47, 181, 190, 247] [26, 42, 43, 182, 191, 248] [27, 43, 44, 183, 186, 249] [28, 44, 45, 184, 187, 250] [29, 45, 46, 185, 188, 251] [30, 52, 53, 186, 195, 252] [31, 48, 53, 187, 196, 253] [32, 48, 49, 188, 197, 254] [33, 49, 50, 189, 192, 255] [34, 50, 51, 190, 193, 256] [35, 51, 52, 191, 194, 257] [36, 58, 59, 192, 201, 258] [37, 54, 59, 193, 202, 259] [38, 54, 55, 194, 203, 260] [39, 55, 56, 195, 198, 261] [40, 56, 57, 196, 199, 262] [41, 57, 58, 197, 200, 263] [42, 64, 65, 198, 207, 264] [43, 60, 65, 199, 208, 265] [44, 60, 61, 200, 209, 266] [45, 61, 62, 201, 204, 267] [46, 62, 63, 202, 205, 268] [47, 63, 64, 203, 206, 269] [48, 70, 71, 204, 213, 270] [49, 66, 71, 205, 214, 271] [50, 66, 67, 206, 215, 272] [51, 67, 68, 207, 210, 273] [52, 68, 69, 208, 211, 274] [53, 69, 70, 209, 212, 275] [54, 76, 77, 210, 219, 276] [55, 72, 77, 211, 220, 277] [56, 72, 73, 212, 221, 278] [57, 73, 74, 213, 216, 279] [58, 74, 75, 214, 217, 280] [59, 75, 76, 215, 218, 281] [60, 82, 83, 216, 225, 282] [61, 78, 83, 217, 226, 283] [62, 78, 79, 218, 227, 284] [63, 79, 80, 219, 222, 285] [64, 80, 81, 220, 223, 286] [65, 81, 82, 221, 224, 287] [66, 88, 89, 144, 222, 231] [67, 84, 89, 145, 223, 232] [68, 84, 85, 146, 224, 233] [69, 85, 86, 147, 225, 228] [70, 86, 87, 148, 226, 229] [71, 87, 88, 149, 227, 230] [72, 94, 95, 150, 228, 237] [73, 90, 95, 151, 229, 238] [74, 90, 91, 152, 230, 239] [75, 91, 92, 153, 231, 234] [76, 92, 93, 154, 232, 235] [77, 93, 94, 155, 233, 236] [78, 100, 101, 156, 234, 243] [79, 96, 101, 157, 235, 244] [80, 96, 97, 158, 236, 245] [81, 97, 98, 159, 237, 240] [82, 98, 99, 160, 238, 241] [83, 99, 100, 161, 239, 242] [84, 106, 107, 162, 240, 249] [85, 102, 107, 163, 241, 250] [86, 102, 103, 164, 242, 251] [87, 103, 104, 165, 243, 246] [88, 104, 105, 166, 244, 247] [89, 105, 106, 167, 245, 248] [90, 112, 113, 168, 246, 255] [91, 108, 113, 169, 247, 256] [92, 108, 109, 170, 248, 257] [93, 109, 110, 171, 249, 252] [94, 110, 111, 172, 250, 253] [95, 111, 112, 173, 251, 254] [96, 118, 119, 174, 252, 261] [97, 114, 119, 175, 253, 262] [98, 114, 115, 176, 254, 263] [99, 115, 116, 177, 255, 258] [100, 116, 117, 178, 256, 259] [101, 117, 118, 179, 257, 260] [102, 124, 125, 180, 258, 267] [103, 120, 125, 181, 259, 268] [104, 120, 121, 182, 260, 269] [105, 121, 122, 183, 261, 264] [106, 122, 123, 184, 262, 265] [107, 123, 124, 185, 263, 266] [108, 130, 131, 186, 264, 273] [109, 126, 131, 187, 265, 274] [110, 126, 127, 188, 266, 275] [111, 127, 128, 189, 267, 270] [112, 128, 129, 190, 268, 271] [113, 129, 130, 191, 269, 272] [114, 136, 137, 192, 270, 279] [115, 132, 137, 193, 271, 280] [116, 132, 133, 194, 272, 281] [117, 133, 134, 195, 273, 276] [118, 134, 135, 196, 274, 277] [119, 135, 136, 197, 275, 278] [120, 142, 143, 198, 276, 285] [121, 138, 143, 199, 277, 286] [122, 138, 139, 200, 278, 287] [123, 139, 140, 201, 279, 282] [124, 140, 141, 202, 280, 283] [125, 141, 142, 203, 281, 284]
Code ID 288-12-16 · download JSON · raw on GitHub