← back to the board
[[288,8,20]] d ≤
n
288
k
8
d
20
kd²/n
11.111
w
6
X/Z
1

Share this result

Distance

X/Z asymmetry 1 · d_X ≤ 20, d_Z ≤ 20 · 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 20 · witness weight 20 (claimed upper_bound)
witness operator (support, 20 qubits)
[1, 10, 14, 19, 20, 23, 25, 38, 97, 143, 155, 169, 174, 181, 185, 194, 225, 237, 256, 282]
d_Z 20 · witness weight 20 (claimed upper_bound)
witness operator (support, 20 qubits)
[12, 28, 45, 49, 51, 80, 94, 113, 125, 183, 187, 188, 193, 198, 210, 213, 223, 225, 240, 263]
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

Construction & provenance

authors Cruz-Benito, Juan and Cross, Andrew W. and Kremer, David and Faro, Ismael
provenance literature baseline
construction Bivariate bicycle code on Z_18 x Z_8 (l=18, m=8): A = 1 + x y4 + x14 y, B = 1 + x y2 + x2 y7, H_X = [A | B], H_Z = [B^T | A^T], x = S_18 (x) I_8, y = I_18 (x) S_8, qubit index i*8 + j for cell (i, j). Catalog class Y, (18,8), mixed-monomial Campaign 4 of arXiv:2606.02418; rebuilt with research/kit/bb.py.
model classical construction (no AI model)
date 2026
notes Literature baseline, seeded 2026-09-17. Listed in the CSS catalog of arXiv:2606.02418 (n = 288 table, class Y, (l, m) = (18, 8), mixed-monomial Campaign 4) at d = 20, kd^2/n = 11.1. The catalog's per-code records (github.com/qiskit-community/qcode-discovery @ d12bea2c, results/campaign4_milp_verified.jsonl and results/campaign4_reverified.jsonl) mark this distance a MILP incumbent rather than proven optimal: all 16 logicals returned weight-20 incumbents at 300 s and again at 3000 s per logical, and the authors' 300k-trial BP-OSD attack found nothing lighter. Recorded here as a witness-backed upper bound (d <= 20 on both sides: weight-20 logicals found by the kit at 4000 RIS trials per side, and 3 x 1M accelerator trials found nothing lighter) pending this repo's own server certification. Reproduction validated: research/kit/bb.py with the listed exponents reproduces the catalog's check matrices row for row. In the unrestricted weight-6 cells this baseline strictly dominates the board's planar [[288,8,12]] (same n, k and check weight, d 20 against 12); it carries no layout, so it does not enter the 2D-local cells and [[288,8,12]] keeps its local cell.
family bivariate bicycle (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

[[288,8,20]]: literature baseline, weight-6 bivariate bicycle code from the qcode-discovery catalog

Direction & hypothesis

Baseline seeding, not a search. TRACKS.md lists the LLM-search CSS catalog of arXiv:2606.02418 among the families not yet seeded, so a code that leads a cell on the board may already be matched or beaten by a published catalog entry. This entry seeds the catalog's [[288,8,20]], the highest-kd^2/n code at (n, k) = (288, 8) in the catalog (kd^2/n = 11.1, check weight 6). The catalog lists it in the n = 288 table as equivalence class Y, (l, m) = (18, 8), A = 1 + x y^4 + x^14 y, B = 1 + x y^2 + x^2 y^7, a mixed-monomial Campaign 4 code.

What was searched

Nothing. The polynomials come from the published catalog; the only work here is the reproduction and the witness search below.

Evidence trail

Distance claim in the source. The catalog table reports d = 20. The repository behind the paper (github.com/qiskit-community/qcode-discovery @ d12bea2c, results/campaign4_milp_verified.jsonl line 794 and results/campaign4_reverified.jsonl line 29) records the stage as milp_incumbent with exact: false: all 16 logicals returned weight-20 incumbents and none was proven optimal, at 300 s per logical and again at 3000 s per logical (48,003 s total). The authors' 300k-trial BP-OSD attack (results/bp_osd_attack_batch2.json) found nothing lighter than 20. So the published value is an upper bound d <= 20 that two independent methods failed to refute, not an exact distance. The board records it accordingly.

Witnesses here. research/kit/submit.make_submission at 4000 RIS trials per side (seeds 0 and 1) found weight-20 logicals on both sides. Three further 1,000,000-trial two-sided passes with the gf2_fast accelerator (seeds 1, 11, 12; about 52 s each) found nothing lighter than 20 either. The gate (verify/validate_candidate.py) passed: verifier ok, 8000-trial refutation found nothing lighter (seed 1125959518), no exact or WL-equivalent board entry. Both sides are upper_bound; the exact tier awaits server certification, which at k = 8 and d = 20 is outside the envelope CONTRIBUTING.md documents.

Board placement. Computed with site/build.py's cells and pareto against 663 entries: in the unrestricted cells at weight <= 6 the code strictly dominates eleven weight-6 board entries, all 2D-local codes that also appear in the unrestricted cells: [[288,8,12]], [[300,8,13]], [[332,6,14]], [[336,6,14]], [[372,8,15]], [[373,8,15]], [[392,8,15]], [[410,8,16]], [[450,8,16]], [[454,8,17]] and [[457,8,17]]; at weight <= 8 it additionally dominates [[294,8,19]] (weight 8). It carries no layout, so it does not enter the 2D-local cells and [[288,8,12]] keeps its local cell. It is itself strictly dominated by the board's [[270,8,20]] twisted-torus BB baseline (arXiv:2503.03827; fewer qubits, same k, d and check weight), so it sits on no frontier. It is recorded for provenance: the catalog is now represented on the board rather than only cited as a bar.

Dead ends

None specific to this entry. One caution for anyone seeding more of the catalog: results/consolidated_pareto.json and the derived summary files carry a single d field, and the per-code stage (milp_exact versus milp_incumbent) is only in the campaign jsonl files and the paper's supplementary text. Read the stage before writing exact anywhere.

Tools

No model; hand reproduction. research/kit/bb.py (build_bb) for the matrices, research/kit/submit.py for packaging and the numpy RIS witness search, gf2_fast (built with make fast) for the 1M-trial passes, verify/qldpc_verify.py and verify/validate_candidate.py for the gates. About 5 CPU-minutes in total.

Reproduction

from bb import build_bb            # research/kit on sys.path
HX, HZ = build_bb(18, 8, [(0, 0), (1, 4), (14, 1)], [(0, 0), (1, 2), (2, 7)])

Conventions as in research/kit/bb.py: x = S_18 (x) I_8, y = I_18 (x) S_8, monomial x^a y^b = S_18^a (x) S_8^b, qubit index i*8 + j for cell (i, j), H_X = [A | B], H_Z = [B^T | A^T], n = 2 * 18 * 8 = 288. The catalog's own check matrices (built from the same (ell, m, A, B) by the repository's evaluator) match codes/288-8-20.json row for row, in the same order.

Parity checks

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