← back to the board
[[300,12,25]] d ≤
n
300
k
12
d
25
kd²/n
25.0
w
8
X/Z
1

Share this result

Distance

X/Z asymmetry 1 · d_X ≤ 25, d_Z ≤ 25 · 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 25 · witness weight 25 (claimed upper_bound)
witness found by @vprusso · verify/ris_gpu.py (build/ris_gpu, NVIDIA A40) · found at 3×108 trials · survived 3×108 trials · 2026-09-27
witness operator (support, 25 qubits)
[16, 19, 46, 49, 76, 79, 106, 109, 136, 139, 165, 175, 176, 195, 205, 206, 225, 235, 236, 255, 265, 266, 285, 295, 296]
d_Z 25 · witness weight 25 (claimed upper_bound)
witness found by @vprusso · verify/ris_gpu.py (build/ris_gpu, NVIDIA A40) · found at 3×108 trials · survived 3×108 trials · 2026-09-27
witness operator (support, 25 qubits)
[5, 18, 26, 35, 48, 56, 65, 78, 86, 95, 108, 116, 125, 138, 146, 153, 164, 183, 194, 213, 224, 243, 254, 273, 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 8 · H_Z 8
qubit degrees H_X 4 · H_Z 4
trapping sets H_X (1,4)×300 (2,6)×4200 (3,6)×2100 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,4): 300 (2,6): 4200 (3,6): 2100 (3,8): 81900 (3,10): 8400
trapping sets H_Z (1,4)×300 (2,6)×4200 (3,6)×2100 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,4): 300 (2,6): 4200 (3,6): 2100 (3,8): 81900 (3,10): 8400

Construction & provenance

authors @vprusso
provenance submitted through the challenge
novelty novelty not audited
construction Periodic bivariate-bicycle code on Z_25 x Z_6 (n = 2*l*m = 300): x = S_25 tensor I_6, y = I_25 tensor S_6 (cyclic shifts), qubit index i*m + j in each block; A = x0y0 + x14y5 + x15y1 + x17y0, B = x0y0 + x7y3 + x15y5 + x23y0; H_X = [A|B], H_Z = [B^T|A^T] (research/kit/bb.py build_bb(25, 6, [[0, 0], [14, 5], [15, 1], [17, 0]], [[0, 0], [7, 3], [15, 5], [23, 0]])). gcd(25, 6) = 1, so Z_25 x Z_6 is cyclic of order 150 and the code is the cyclic generalized-bicycle code over Z_150 with a(z) = z0 + z42 + z89 + z115, b(z) = z0 + z48 + z57 + z65 (CRT relabeling x^a y^b -> z^t, t = a mod 25, t = b mod 6).
model Claude Claude Fable 5.1 (Claude Code) (claimed, not verified)
date 2026-09-27
family other (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

[[300,12,25]] weight-8 coprime bivariate-bicycle code

Construction

Periodic bivariate-bicycle code on Z_25 x Z_6 (n = 2*l*m = 300): x = S_25 tensor I_6, y = I_25 tensor S_6 (cyclic shifts), qubit index i*m + j in each block; A = x^0y^0 + x^14y^5 + x^15y^1 + x^17y^0, B = x^0y^0 + x^7y^3 + x^15y^5 + x^23y^0; H_X = [A|B], H_Z = [B^T|A^T] (research/kit/bb.py build_bb(25, 6, [[0, 0], [14, 5], [15, 1], [17, 0]], [[0, 0], [7, 3], [15, 5], [23, 0]])). gcd(25, 6) = 1, so Z_25 x Z_6 is cyclic of order 150 and the code is the cyclic generalized-bicycle code over Z_150 with a(z) = z^0 + z^42 + z^89 + z^115, b(z) = z^0 + z^48 + z^57 + z^65 (CRT relabeling x^a y^b -> z^t, t = a mod 25, t = b mod 6).

Every check has weight exactly 8.

Distance evidence

The distance is a witness-backed upper bound. Every witness in the submission was validated against the published check matrices before filing.

| trials per side | lightest logical found | |---|---| | 300 | 32 | | 2,000 | 29 | | 20,000 | 26 | | 300,000,000 | X 25, Z 25 |

The deeper passes did not lower the claim.

What is not claimed

This code carries no circuit-level or logical-error-rate measurement. It came from a search whose objective was a memory-experiment comparison against the rotated surface code, but it did not reach that stage, so nothing here speaks to its performance under a decoder. The submission is a claim about n, k, d, and check weight only.

The distance is an upper bound, not a certificate. A lighter logical operator would refute it, and the witnesses are published so that anyone can try.

Reproduction

import sys; sys.path.insert(0, "research/kit")
from bb import build_bb
HX, HZ = build_bb(l=25, m=6, A_terms=[[0, 0], [14, 5], [15, 1], [17, 0]], B_terms=[[0, 0], [7, 3], [15, 5], [23, 0]])

Parity checks

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