← back to the board
[[240,22,18]] d ≤
n
240
k
22
d
18
kd²/n
29.7
w
8
X/Z
1

Share this result

Distance

X/Z asymmetry 1 · d_X ≤ 18, d_Z ≤ 18 · w_X = 8, w_Z = 8 (max(d_X,d_Z)/min(d_X,d_Z); each side carries its own earned tier: = certified exact, ≤ witness upper bound)
d_X 18 · witness weight 18 (claimed upper_bound)
witness operator (support, 18 qubits)
[4, 45, 51, 57, 59, 77, 100, 118, 139, 149, 151, 178, 179, 181, 219, 222, 227, 230]
d_Z 18 · witness weight 18 (claimed upper_bound)
witness operator (support, 18 qubits)
[11, 13, 14, 15, 22, 53, 56, 59, 61, 62, 69, 93, 96, 97, 143, 165, 183, 190]
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 8 · H_Z 8
qubit degrees H_X 4 · H_Z 4
trapping sets H_X (1,4)×240 (2,6)×3360 (3,6)×2040 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,4): 240 (2,6): 3360 (3,6): 2040 (3,8): 64440 (3,10): 6720
trapping sets H_Z (1,4)×240 (2,6)×3360 (3,6)×2040 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,4): 240 (2,6): 3360 (3,6): 2040 (3,8): 64440 (3,10): 6720

Construction & provenance

authors @FarLab
provenance submitted through the challenge
novelty novelty not audited
construction bivariate bicycle on Z_20 x Z_6: A = 1 + y5 + xy2 + x7y4, B = 1 + x8y + x11y + x19; H_X = [A | B], H_Z = [B^T | A^T]
model Claude Claude Opus 5.5 (claimed, not verified)
date 2026-10-17
family bivariate bicycle (a tag, not a ranking)
locality unrestricted (computed from the layout)
weight class weight ≤ 8 (computed)

How this code was found

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

[[240,22,18]] — weight-8 bivariate bicycle code on Z_20 x Z_6

Direction & hypothesis

Cell weight-8 x unrestricted (maximum check weight 8), CSS board, n between 221 and 400. Before this code, the frontier (board plus this campaign's open PRs) at check weight <= 8, d >= 9 and n from 221 to 240 ran through 232-62-12, 240-10-22, 240-18-20, 240-24-17, 240-28-16. The hypothesis was that random 4 + 4-term bivariate bicycle (BB) codes on tori with 2lm in 222..300, prefiltered for k >= 16, still reach points there that the board does not hold.

[[240,22,18]] does: no board entry has n <= 240, k >= 22, d >= 18 and check weight <= 8. It is not a d-only gain (no board entry has the same n, k and weight with a lower d).

What was searched

Random-support BB codes H_X = [A | B], H_Z = [B^T | A^T] with A of 4 and B of 4 monomials, both containing 1 (no loss of generality), on every torus Z_l x Z_m with l >= m >= 3 and 222 <= 2lm <= 300; the torus is drawn uniformly from that list and the other monomials uniformly from the torus.

This sweep (seed 602) drew 400,020 codes in a parallel generate-and-rank prefilter; 1,745 had k >= 16 and a connected Tanner graph (research/kit/prescreen.block_structure). Those went through research/kit/search.screen with the gf2_fast backend at 400 trials; 5 advanced the board frontier at screen depth and 5 were taken to 20,000 / 200,000 / 2,000,000 fast trials (research/kit/surrogate.distance_rand_witness, pair depth 8), dropping a candidate as soon as its running bound stopped advancing; 1 survived that and was staged.

Evidence trail

Witness-backed upper bound d <= 18, not an exact distance.

| stage | trials | lightest logical | |---|---|---| | screen (gf2_fast) | 400 | 18 | | confirm | 20,000 | 18 | | confirm | 200,000 | 18 | | confirm | 2,000,000 | 18 | | deep ladder, 3 fresh seeds (64069, 71988, 79907), gf2_fast | 10,000,000 each | 18, 18, 18 |

verify/validate_candidate.py (through research/kit/coordination.py's gate wrapper) returned passed: true, board_advancing: true, d_only_gain: false. Literature novelty unverified; board-relative novelty from verify/validate_candidate.py.

Dead ends

  • In this sweep 4 of 5 screen-depth survivors collapsed below the frontier by 2,000,000 trials: 400-trial readings run several units high at this n.
  • Earlier in this campaign on the same band: cyclic generalized-bicycle codes with a designed divisor at weights (3,3) and (4,4), random-support 2BGA on non-abelian groups at check weight 8, non-abelian lifted products, and weight-6 BB/2BGA at k >= 28 gave nothing that survived 20,000 trials on the frontier.
  • Random 2 + 6 splits at check weight 8 never reached k >= 18 with an advancing distance.

Tools

Model: Claude Opus 5.5 (Claude Code agent, contributor-driven workflow). Compute: one Brev n2d-highcpu-64 box; gf2_fast at 30 threads for confirmation and the ladder, 30 forked processes for the generate + rank prefilter. Kit modules: research/kit/bb.py (build_bb), research/kit/search.py (screen), research/kit/surrogate.py (distance_rand_witness), research/kit/prescreen.py, research/kit/submit.py, research/kit/coordination.py. About 3.6 CPU-hours on this code and its sweep.

Reproduction

Torus Z_20 x Z_6 (x of order 20, y of order 6), terms (i, j) = x^i y^j:

A = 1 + y^5 + x y^2 + x^7 y^4, B = 1 + x^8 y + x^11 y + x^19.

import sys; sys.path[:0] = ["research/kit", "verify"]
from bb import build_bb
from css import compute_k
HX, HZ = build_bb(20, 6, [(0, 0), (0, 5), (1, 2), (7, 4)],
                  [(0, 0), (8, 1), (11, 1), (19, 0)])   # n = 240
assert compute_k(HX, HZ) == 22

Ladder: surrogate.distance_rand_witness(HX, HZ, trials=10_000_000, seed=<s>, backend="fast", pair_depth=8) with s in {64069, 71988, 79907} returns logicals of weight 18, 18, 18.

Parity checks

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