← back to the board
[[310,20,12]] d ≤
n
310
k
20
d
12
kd²/n
9.29
w
6
X/Z
1

Share this result

Distance

X/Z asymmetry 1 · d_X ≤ 12, d_Z ≤ 12 · 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 12 · witness weight 12 (claimed upper_bound)
witness operator (support, 12 qubits)
[2, 28, 95, 114, 172, 183, 227, 242, 257, 272, 282, 287]
d_Z 12 · witness weight 12 (claimed upper_bound)
witness operator (support, 12 qubits)
[3, 58, 98, 103, 113, 128, 134, 143, 202, 203, 234, 261]
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)×310 (2,4)×2325 (3,3)×217 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,3): 310 (2,4): 2325 (3,3): 217 (3,5): 22599 (3,7): 3100
trapping sets H_Z (1,3)×310 (2,4)×2325 (3,3)×217 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,3): 310 (2,4): 2325 (3,3): 217 (3,5): 22599 (3,7): 3100

Construction & provenance

authors @FarLab
provenance submitted through the challenge
novelty novelty not audited
construction two-block group algebra code on ZSZ(31,5,2) (kit group_algebra Cayley-table indices): a = [0, 100, 140], b = [0, 62, 126]; H_X = [L(a) | R(b)], H_Z = [R(b)^T | L(a)^T]
model Claude Claude Fable 5.1 (claimed, not verified)
date 2026-10-17
family generalized 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

[[310,20,12]] — two-block group-algebra code over C31 ⋊ C5 (ZSZ(31,5,2))

Direction & hypothesis

Cell weight-6 x unrestricted, CSS board, n between 288 and 340. Before this campaign the weight-6 frontier there ran 288-16-16, 288-12-18, 294-10-20, 310-10-22, 330-22-9, 330-68-6 and 340-16-18: at n <= 310 every weight-6 entry with k >= 20 had d <= 10 (and k = 20..30 only appeared at d <= 10 below n = 300). The hypothesis was that two-block group-algebra (2BGA) codes on split metacyclic groups C_l1 ⋊ C_l2 of order 150 to 200 could reach k = 20 at d = 12 below the [[336,24,12]] filed from the same campaign. [[310,20,12]] does: no board entry has n <= 310, k >= 20, d >= 12 and check weight <= 6, and the d - 2 margin holds ([[310,20,10]] is not dominated either).

What was searched

Random-support 2BGA codes H_X = [L(a) | R(b)], H_Z = [R(b)^T | L(a)^T] with a, b three group elements each, both containing the identity (no loss of generality). The group menu was every non-abelian group of order 150 to 200 the kit builds from Cayley-table constructors: dihedral D_n, metacyclic C_n ⋊_r C_k (up to two actions r per (n, k)), C_m x D_k, C_m x A4, C_m x S4, D_a x D_b, C_m x (C_n ⋊ C_k) for eight small metacyclic factors, and the split metacyclic presentations ZSZ(l1, l2, q), l2 <= 8, of research/kit/nonabelian_lp.py.

A generic weight-3 element is invertible on most irreducible blocks of F_2[G], so k >= 20 is rare: the sweep ran a parallel generate-and-rank prefilter over 400,000 draws (seed 62), of which 239 had k >= 20 and a connected Tanner graph. Those went through research/kit/search.screen with the gf2_fast backend at 400 trials; 31 advanced the board frontier at screen depth and were confirmed at 20,000 / 200,000 / 2,000,000 fast trials (research/kit/surrogate.distance_rand_witness, pair depth 8). This code was drawn twice (two different support pairs on ZSZ(31,5,2), both [[310,20,12]] through 2,000,000 trials). The other survivors were [[336,20,16]], [[336,24,12]] and [[378,24,16]], filed separately, and points those dominate ([[360,24,12]], [[378,24,12]]).

Evidence trail

Witness-backed upper bound d <= 12, not an exact distance. The bound was 12 at 400 trials and never moved; both sides have a weight-12 logical.

| stage | trials per candidate | lightest logical | |---|---|---| | screen (gf2_fast, seed from fingerprint) | 400 | 12 | | confirm | 20,000 | 12 | | confirm | 200,000 | 12 | | confirm | 2,000,000 | 12 | | numpy lightest_logical, both sides, seeds 62 / 63 | 1,500 | X 12, Z 12 | | deep ladder, 3 fresh seeds (50423, 58342, 66261), gf2_fast | 10,000,000 each | 12, 12, 12 |

verify/validate_candidate.py (through research/kit/coordination.py's gate wrapper) returned passed: true, board_advancing: true, `d_only_gain: false`, label "advances the weight-6 x unrestricted board". Literature novelty is unverified; board-relative novelty comes from verify/validate_candidate.py (fingerprint and Weisfeiler-Leman dedup against every board entry found nothing).

Dead ends

  • Cyclic generalized-bicycle codes with a designed divisor g | x^m - 1 at
  • check weight 6 (weight-3 a and b): at odd m from 111 to 200 and deg g >= 8 there are essentially no weight-3 multiples of g; the few that exist are lifts from a subring Z_{m/s} and give direct sums.

  • Random-support bivariate bicycle codes at check weight 6: 200,000
  • prefiltered draws (185 with k >= 12) gave only points dominated by the 2BGA finds of this campaign.

  • Non-abelian lifted products with 1 x 2 bases and weight-(2,2) entries
  • (check weight 6) give k = |G| + 6 at d = 6, already dominated by the board's 258-88-6.

  • None of the 27 prefiltered 2BGA draws with k >= 28 (up to k = 48)
  • advanced the frontier even at 400 screen trials.

Tools

Model: Claude Fable 5.1 (Claude Code agent, contributor-driven workflow). Compute: one Brev n2d-highcpu-64 box; gf2_fast at 30 threads for the confirmation rungs and the ladder, 30 forked processes for the generate + rank prefilter. Kit modules: research/kit/nonabelian_lp.py (zsz), research/kit/group_algebra.py (build_2bga), research/kit/search.py (screen), research/kit/surrogate.py (distance_rand_witness, lightest_logical), research/kit/prescreen.py (direct-sum and board dedup), research/kit/submit.py, research/kit/coordination.py. About 0.3 CPU-hours on this code; about 12 CPU-hours on the sweeps above.

Reproduction

The group is research/kit/nonabelian_lp.py's zsz(31, 5, 2): C_31 ⋊ C_5 with y x = x^2 y (2 has order 5 mod 31), element x^i y^j at index 5 i + j, identity at 0; order 155, n = 310. With x = (1, 0), y = (0, 1):

a = 1 + x^20 + x^28 (indices 0, 100, 140), b = 1 + x^12 y^2 + x^25 y (indices 0, 62, 126).

import sys; sys.path[:0] = ["research/kit", "verify"]
from nonabelian_lp import zsz
from group_algebra import build_2bga
from css import compute_k
mul = zsz(31, 5, 2)
HX, HZ = build_2bga(mul, [0, 100, 140], [0, 62, 126])   # n = 310, k = 20
assert compute_k(HX, HZ) == 20

Check sets match codes/310-20-12.json row for row in this order. The numpy surrogate.lightest_logical at 1,500 trials with seeds 62 (X side, pass (HX, HZ)) and 63 (Z side, pass (HZ, HX)) returns a weight-12 logical on each side.

Parity checks

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