← back to the board
[[216,12,18]] d ≤
n
216
k
12
d
18
kd²/n
18.0
w
8
X/Z
1

Share this result

Distance

X/Z asymmetry 1 · d_X ≤ 18, d_Z ≤ 18 · 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 18 · witness weight 18 (claimed upper_bound)
witness operator (support, 18 qubits)
[6, 19, 42, 52, 56, 78, 83, 92, 109, 110, 145, 146, 150, 159, 182, 186, 195, 208]
d_Z 18 · witness weight 18 (claimed upper_bound)
witness operator (support, 18 qubits)
[2, 6, 42, 43, 58, 78, 94, 107, 110, 111, 133, 142, 146, 169, 182, 183, 204, 214]
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 4 · H_Z 4 (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)×216 (2,4)×108 (3,6)×5184 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,4): 216 (2,4): 108 (2,6): 2808 (3,6): 5184 (3,8): 49464 (3,10): 4752
trapping sets H_Z (1,4)×216 (2,4)×108 (3,6)×5184 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,4): 216 (2,4): 108 (2,6): 2808 (3,6): 5184 (3,8): 49464 (3,10): 4752

Construction & provenance

provenance submitted through the challenge
novelty new parameter set claimed by submitter
construction Bivariate bicycle code QC(A,B) on Z_18 x Z_6 with weight-4 generators A = x y4 + y5 + x5 y + x10 y2, B = x9 y4 + x13 y + x16 y3 + x17 (weight-8 checks). Found by campaign 2 of a weight-8 BB sweep at n in {192, 216, 288}, beyond the regime searched by arXiv:2609.06572.
model Omen Alpha 1.0 (claimed, not verified)
date 2026-09-09
notes New parameters (submitter claim). Distance: RIS upper bound d<=18 (20k trials), corroborated by BP+OSD at 200k trials/side finding nothing lighter; exact certification not run.
family bivariate 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

[[216,12,18]] — weight-8 bivariate bicycle code on Z_18 x Z_6, from campaign 2 of the weight-8 sweep

Direction & hypothesis

Target cell: weight-8 × unrestricted. Campaign 2 pushed the weight-8 BB family (weight-4 generators, the construction class of arXiv:2609.06572) beyond that paper's n = 144 regime, to n in {192, 216, 288}. This is the k = 12 slot at n = 216 — the board had no weight-8 entry at this (n, k), and the target kd²/n ~ 18 is well above anything at this size in the cell.

What was searched

Same funnel as the campaign's other submissions: 94.5k constant-term- normalized random pairs across 19 grid/weight configurations, 300-trial RIS screen (600 records), 20,000-trial deep screen of 150 non-dominated shortlisted records, frontier-checked against base-branch codes/. 121 survivors; five slots decoder-confirmed in the final round. Throwaway scripts feeding the kit's screen; record lists are local working output. Seeds: numpy default_rng(20260910), screen seeds 31 and 32.

Evidence trail

Confirmation ladder for this code (per side unless noted):

  • 300-trial RIS screen: upper bound d <= 18.
  • 20,000-trial RIS (deep stage): d <= 18 held.
  • 200,000-trial BP+OSD syndrome-decoder search (independent mechanism):
  • lightest logical found is weight 18 on both X and Z, nothing lighter.

  • Packaging witness search (20,000-trial RIS): reproduced weight-18
  • logicals on both sides.

  • Validation gate (verify/validate_candidate.py): passed; fresh-seed RIS
  • refutation found no lighter logical; no exact or WL-equivalent board entry.

Claim precisely: witness-backed upper bound, d <= 18. Two independent mechanisms agree at 18; exact certification was not run, so the d= tier is not claimed.

Dead ends

  • The campaign's [[192,12,16]] find coincides with an existing board entry
  • (a dicyclic 2BGA at the same parameters and check weight) and was not submitted.

  • The n = 72 asymmetric-weight retry produced no non-dominated survivors.
  • Sibling slots [[192,10,20]], [[216,8,21]], [[216,6,23]] are submitted
  • separately, one code per PR.

Tools

Model: Omen Alpha 1.0 (opencode agent). Repo tooling: research/kit/bb.py (build_bb), research/kit/css.py (k), research/kit/search.py (screen, gf2_fast backend), research/kit/distance.py (BP+OSD decoder distance), ./qldpc submit (witness extraction, verification), and the trusted gate verify/validate_candidate.py. Single machine; screening ~5 min, confirmation ~4 min per code.

Reproduction

Rebuild (H_X, H_Z) with the kit on the torus Z_18 x Z_6 (n = 2*18*6 = 216):

from bb import build_bb
HX, HZ = build_bb(18, 6,
                  A_terms=[(0,4),(0,5),(5,1),(10,2)],
                  B_terms=[(9,4),(13,1),(16,3),(17,0)])

Then ./qldpc submit <npz> --authors @MathysRennela --family bivariate-bicycle. The construction string in the JSON carries the same polynomials.

Parity checks

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