← back to the board
[[214,2,25]] d ≤
n
214
k
2
d
25
kd²/n
5.841
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 exact)
witness operator (support, 25 qubits)
[11, 26, 30, 34, 38, 47, 49, 68, 76, 89, 95, 110, 113, 114, 128, 129, 136, 148, 170, 175, 186, 187, 197, 198, 213]
d_Z 25 · witness weight 25 (claimed exact)
witness operator (support, 25 qubits)
[6, 7, 8, 22, 34, 44, 52, 54, 65, 71, 75, 92, 95, 98, 113, 129, 138, 141, 147, 152, 174, 178, 182, 188, 202]
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 2–6 (mean 4.0) · H_Z 2–6 (mean 4.0)
trapping sets H_X (1,2)×107 (2,2)×107 (3,2)×107 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,2): 107 (1,6): 107 (2,2): 107 (2,6): 1284 (2,10): 1605 (3,2): 107 (3,6): 7704 (3,8): 1284 (3,10): 34026 (3,12): 6099 (3,14): 31458 (3,16): 2140
trapping sets H_Z (1,2)×107 (2,2)×107 (3,2)×107 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,2): 107 (1,6): 107 (2,2): 107 (2,6): 1284 (2,10): 1605 (3,2): 107 (3,6): 7704 (3,8): 1284 (3,10): 34026 (3,12): 6099 (3,14): 31458 (3,16): 2140

Construction & provenance

authors @seunomonije
provenance submitted through the challenge
novelty novelty not audited
construction Generalized bicycle on the circulant ring Z_107: H_X = [B^T | A^T], H_Z = [A | B] with A = circ(a), B = circ(b), a = [0, 9, 13, 21, 27, 59], b = [0, 1]. Found by search over GB polynomial supports; distance proven exact by exhaustive DFS refutation (EMPTY at W = 24, 316,311,844,431 nodes).
model exhaustive verification (exhaustive-qec verifier 0.1.0) (claimed, not verified)
date 2026-08-14
notes Distance certified exhaustively, not estimated. Full method, evidence and a re-runnable notebook: https://github.com/qernelkit/verifiable-qec-experiments/blob/main/experiments/qldpc_challenge/qldpc_challenge.ipynb
family generalized 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

[[214,2,25]] — generalized bicycle on Z_107, distance certified by exhaustive search

Direction & hypothesis

The unrestricted weight-6 cell thins out badly at high distance: the board's best distance at this blocklength and check weight is 28. Generalized bicycle codes at low k buy distance cheaply, and the open question was never *finding* a candidate with a large ISD estimate — it was being able to stand behind the number. This submission targets that gap: a deep-distance entry whose distance is proven rather than estimated.

What was searched

Generalized bicycle codes over the circulant ring Z_ell, parameterised by the two polynomial supports (a, b). Candidates were enumerated over supports at each ell, screened with an information-set-decoding style minimum-weight search, and only then handed to exhaustive certification. This code is the ell = 107 entry of that campaign.

Evidence trail

Two independent halves, both re-checkable:

  • Upper bound. A nontrivial logical of weight 25 on each side, found by
  • QDistRndMW ISD at 200,000 trials and re-verified before use: in ker(H), outside the stabilizer rowspace, weight exactly 25. Both witnesses are in this file's distance block.

  • Lower bound. Exhaustive canonical DFS over every support of weight
  • <= 24, which found no nontrivial logical: EMPTY at W = 24, 316,311,844,431 nodes, checksum xor64:976fa0c487996613, about 6.7 GPU-hours.

No logical below weight 25 exists and one of weight 25 does, so d = 25 exactly.

One sector's exhaustion suffices here, and that is a proof rather than a convention: the qubit permutation pi(j) = (-j mod ell) with the two circulant blocks exchanged maps rowspace(H_X) onto rowspace(H_Z) and back, so the code is isomorphic to its own sector swap and d_X = d_Z. The permutation is three lines to re-derive and is checked in the notebook linked below.

Claim stated precisely: d = 25, exact, on both sectors. The board displays an exact claim as an upper bound until a maintainer certifies it, which is the correct default; the evidence above is what a certifier would be re-running.

Dead ends

The honest limit of this approach is cost, and it is steep: exhaustion cost grows like beta^W, and beta is set by check weight rather than blocklength. At weight 6 that put this code at 6.7 GPU-hours, and the same method is already out of reach for the high-check-weight entries at the top of the board — a weight-28 code measured beta >= 11 and still rising, which prices its refutation far past any hardware. Deep distance is reachable here *because* the checks are light.

Tools

Exhaustive certification engine (matrix-free, check-driven DFS; CUDA and a dependency-free CPU engine with identical semantics), ISD witness search via QDistRndMW. No AI model produced this code — the provenance.model field records the verification method, since the search and the proof are both exhaustive rather than learned.

Reproduction

H_X = [B^T | A^T], H_Z = [A | B] over Z_107, with A = circ(a), B = circ(b), a = [0, 9, 13, 21, 27, 59], b = [0, 1].

Method, evidence and a notebook that rebuilds this code from those supports, re-derives (n, k) over GF(2), re-verifies both witnesses and replays the exhaustion record:

https://github.com/qernelkit/verifiable-qec-experiments/blob/main/experiments/qldpc_challenge/qldpc_challenge.ipynb

Parity checks

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