← back to the board
[[270,10,24]] d ≤
n
270
k
10
d
24
kd²/n
21.333
w
8
X/Z
1

Share this result

Distance

X/Z asymmetry 1 · d_X ≤ 24, d_Z ≤ 24 · 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 24 · witness weight 24 (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, 24 qubits)
[1, 19, 22, 27, 28, 30, 35, 42, 50, 65, 69, 92, 98, 104, 107, 121, 128, 166, 171, 220, 228, 231, 236, 250]
d_Z 24 · witness weight 24 (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, 24 qubits)
[4, 10, 26, 37, 48, 50, 56, 69, 74, 93, 96, 99, 104, 110, 113, 118, 126, 135, 185, 192, 234, 242, 254, 262]
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)×270 (2,6)×3780 (3,6)×2295 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,4): 270 (2,6): 3780 (3,6): 2295 (3,8): 72495 (3,10): 7560
trapping sets H_Z (1,4)×270 (2,6)×3780 (3,6)×2295 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,4): 270 (2,6): 3780 (3,6): 2295 (3,8): 72495 (3,10): 7560

Construction & provenance

authors @vprusso
provenance submitted through the challenge
novelty novelty not audited
construction Periodic bivariate-bicycle code on Z_27 x Z_5 (n = 2*l*m = 270): x = S_27 tensor I_5, y = I_27 tensor S_5 (cyclic shifts), qubit index i*m + j in each block; A = x0y0 + x1y3 + x5y2 + x15y3, B = x0y0 + x2y3 + x10y0 + x16y4; H_X = [A|B], H_Z = [B^T|A^T] (research/kit/bb.py build_bb(27, 5, [[0, 0], [1, 3], [5, 2], [15, 3]], [[0, 0], [2, 3], [10, 0], [16, 4]])). gcd(27, 5) = 1, so Z_27 x Z_5 is cyclic of order 135 and the code is the cyclic generalized-bicycle code over Z_135 with a(z) = z0 + z28 + z32 + z123, b(z) = z0 + z10 + z83 + z124 (CRT relabeling x^a y^b -> z^t, t = a mod 27, t = b mod 5).
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

[[270,10,24]] weight-8 coprime bivariate-bicycle code

Construction

Periodic bivariate-bicycle code on Z_27 x Z_5 (n = 2*l*m = 270): x = S_27 tensor I_5, y = I_27 tensor S_5 (cyclic shifts), qubit index i*m + j in each block; A = x^0y^0 + x^1y^3 + x^5y^2 + x^15y^3, B = x^0y^0 + x^2y^3 + x^10y^0 + x^16y^4; H_X = [A|B], H_Z = [B^T|A^T] (research/kit/bb.py build_bb(27, 5, [[0, 0], [1, 3], [5, 2], [15, 3]], [[0, 0], [2, 3], [10, 0], [16, 4]])). gcd(27, 5) = 1, so Z_27 x Z_5 is cyclic of order 135 and the code is the cyclic generalized-bicycle code over Z_135 with a(z) = z^0 + z^28 + z^32 + z^123, b(z) = z^0 + z^10 + z^83 + z^124 (CRT relabeling x^a y^b -> z^t, t = a mod 27, t = b mod 5).

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 | 24 | | 2,000 | 27 | | 20,000 | 24 | | 300,000,000 | X 24, Z 24 |

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=27, m=5, A_terms=[[0, 0], [1, 3], [5, 2], [15, 3]], B_terms=[[0, 0], [2, 3], [10, 0], [16, 4]])

Parity checks

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