← back to the board
[[210,10,16]] d ≤
n
210
k
10
d
16
kd²/n
12.19
w
6
X/Z
1

Share this result

Distance

X/Z asymmetry 1 · d_X ≤ 16, d_Z ≤ 16 · 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 16 · witness weight 16 (claimed upper_bound)
witness operator (support, 16 qubits)
[3, 20, 35, 37, 40, 62, 78, 87, 108, 110, 123, 140, 161, 163, 171, 181]
d_Z 16 · witness weight 16 (claimed upper_bound)
witness operator (support, 16 qubits)
[3, 38, 42, 46, 48, 52, 54, 112, 131, 133, 134, 137, 145, 156, 192, 203]
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)×210 (2,4)×1575 (3,3)×210 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,3): 210 (2,4): 1575 (3,3): 210 (3,5): 15120 (3,7): 2100
trapping sets H_Z (1,3)×210 (2,4)×1575 (3,3)×210 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,3): 210 (2,4): 1575 (3,3): 210 (3,5): 15120 (3,7): 2100

Construction & provenance

authors @vprusso
provenance submitted through the challenge
novelty novelty not audited
construction Cyclic generalized-bicycle code over Z_105 (n = 2m = 210): a(x) = 1 + x2 + x10, b(x) = 1 + x25 + x83; H_X = [circ(a)|circ(b)], H_Z = [circ(b)^T|circ(a)^T], where circ(v) has first row v and row i = v rolled by i (research/cyclic_gb.py build_cyclic_gb(105, a, b) with a, b the 0/1 first rows). k = 2 deg gcd(a, b, x105 + 1).
model Claude Claude Fable 5.1 (claimed, not verified)
date 2026-09-24
notes Found by an LER-objective search over weight-6 two-block codes (100 <= n <= 300, k >= 8): circuit-level logical error rate at 3 rounds under the board's depolarizing recipe, interleaved two-block schedule, decoded with CUDA-Q QEC nv-qldpc-decoder (BP+OSD-CS order 10). At p = 0.002, 100000 shots per basis: Z memory 8 failures, X memory 8 failures, against 10 copies of the distance-5 rotated surface code (490 physical qubits, same builder and decoder) with 976 and 967 failures. Distance: RIS at 20,000 trials (gf2_fast) and a 300,000,000-trial verify/ris_gpu.py pass per side; upper bounds. Details in the accompanying note. The trusted gate reports no exact duplicate and no WL-equivalent entry on the board. A second [[210,10,16]] code from the same search (a(x) = 1 + x^31 + x^86, b(x) = 1 + x^22 + x^26) shares this code's WL signature and is not filed separately.
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

[[210,10,16]] weight-6 cyclic generalized-bicycle code on Z_105

Direction & hypothesis

This code was found by a search whose objective was the circuit-level logical error rate against the surface code, not the (n, k, d) parameters; the parameters were a screen, the error rate was the score. Objective: at 3 syndrome rounds under the board's depolarizing recipe at p = 0.002, interleaved two-block schedule, both memories, a logical error rate per round below that of k copies of the rotated surface code at equal or greater physical qubit count (data plus ancilla), with separated 95 percent Poisson intervals. The target board cell is weight-6 x unrestricted (no layout). Hypothesis: weight-6 two-block codes with k >= 8 and d >= 10 at 100 <= n <= 300 beat the matched surface baseline at this rate because the baseline's distance is set by the qubit budget (k10-d5: 10 copies of d = 5, 490 qubits against the candidate's 420), and the decoder is the same BP+OSD configuration for both.

What was searched

Bivariate-bicycle codes with 3-term A and B over Z_l x Z_m (158 tori, 394,947 random pairs with both supports normalized to contain the identity, 34,476 disconnected pairs discarded, 358,370 with k < 8 by GF(2) rank, 2,101 kept) and cyclic generalized-bicycle codes with trinomial pairs over Z_m (82 values of m, 16,612 trinomials sharing a factor of degree at least 4 with x^m + 1, 114,913 pairs drawn, 52,847 with k < 8, 983 kept after canonical dedup). Board duplicates were removed with the gate's exact fingerprint and, once d was screened, its WL signature (280 dropped). Funnel: RIS at 2,000 trials (keep d >= 10; 1728 of 2794), RIS at 20,000 trials (1728 kept), interleaved 3-round circuit with the tier checks (1401 built), GPU decode of 10,000 shots per basis at p = 0.002 against the matched surface baseline (77 of 77 beat it in both bases), then 100,000 shots per basis at p = 0.001 and 0.002 and a 300,000,000-trial ris_gpu pass per side.

Evidence trail

RIS ladder for the submitted code (lightest logical found, both sides):

| RIS trials per side | seed | lightest logical found | |---|---|---| | 2,000 | 345843734 | 16 | | 20,000 | 1954101756 | 16 | | 300,000,000 (GPU, verify/ris_gpu.py) | 1277812487 | X 16, Z 16 |

Claim: d <= 16, a witness-backed upper bound.

Logical error rate per round at 3 rounds (exact 95 percent Poisson intervals on the failure count; the surface baseline is 10 copies of the distance-5 rotated surface code, 490 physical qubits, geometric interleaved schedule, same noise recipe and decoder):

| p | basis | candidate | surface baseline | ratio | separated | |---|---|---|---|---|---| | 0.002 | Z | 2.67e-05 [1.15e-05, 5.25e-05] (8/100000) | 3.27e-03 [3.07e-03, 3.49e-03] (976/100000) | 0.008 | yes | | 0.002 | X | 2.67e-05 [1.15e-05, 5.25e-05] (8/100000) | 3.24e-03 [3.04e-03, 3.46e-03] (967/100000) | 0.008 | yes | | 0.001 | Z | 0 [0, 1.23e-05] (0/100000) | 4.87e-04 [4.11e-04, 5.73e-04] (146/100000) | 0.000 | yes | | 0.001 | X | 0 [0, 1.23e-05] (0/100000) | 4.87e-04 [4.11e-04, 5.73e-04] (146/100000) | 0.000 | yes |

Stage-4 screen (10,000 shots per basis at p = 0.002): Z 2 vs 95, X 2 vs 106 failures.

Objective at p = 0.002: met (both bases separated: True).

Gate verdict (verify/validate_candidate.py, refute off): passed = True, labels: advances the weight-6 x unrestricted board; literature novelty UNVERIFIED. Duplicate check: exact None, WL None. Board cell ['weight-6', 'unrestricted']: board_advancing = True.

A second [[210,10,16]] code from the same search, a(x) = 1 + x^31 + x^86 and b(x) = 1 + x^22 + x^26 over Z_105, has the same measured error rate within the intervals (Z 8 and X 9 failures at p = 0.002) and shares this code's WL signature under the gate's check; it is not filed separately.

Dead ends

Of the candidates that reached the GPU screen, 0 did not beat their surface baseline in both bases at 10,000 shots; 47 produced no deterministic interleaved schedule or failed a tier check other than the two budget caps (the caps bound the board verifier's cost, are recorded per circuit, and did not disqualify); 0 fell below d = 10 between 2,000 and 20,000 RIS trials.

Tools

Claude (Claude Code, model Fable 5.1) as the agent in an unattended search on a rented NVIDIA A40. Repo tooling: research/kit/bb.py and research/cyclic_gb.py (construction), research/kit/css.py and verify/gf2_fast.cpp (k and the RIS distance screen, distance_rand_witness and circulant_gb_witness), verify/qldpc_verify.py fingerprint and WL signature (dedup against the board), an interleaved two-block circuit builder on top of the circuit_autogen.py of PR 1859 with the tier checks of verify/circuit_verify.py, a rotated-surface-code baseline (k copies of the distance-d rotated surface code at the matched qubit budget) built with the same interleaved builder, CUDA-Q QEC 0.8.0 nv-qldpc-decoder (BP min-sum 30 iterations, scale 0.625, OSD combination sweep order 10, the configuration validated against bposd-cs-10), verify/ris_gpu.py on the A40 for the deep rung, and verify/validate_candidate.py for the verdict.

Reproduction

import sys; sys.path.insert(0, "research")
from cyclic_gb import build_cyclic_gb
m = 105; a = [0] * m; b = [0] * m
for e in [0, 2, 10]: a[e] = 1
for e in [0, 25, 83]: b[e] = 1
HX, HZ = build_cyclic_gb(m, a, b)   # [[210,10]]

Circuits: the interleaved two-block schedule of the circuit_autogen.py of PR 1859 at 3 rounds (7.0 CX layers per round). Decoding: strip the noise, reapply circuit_tools.apply_noise at p, derive the DEM, sample with stim seed as recorded in the receipts, decode with nv-qldpc-decoder as configured above; a failure is any logical observable decoded wrong.

Parity checks

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