← back to the board
[[182,6,12]] d =
n
182
k
6
d
12
kd²/n
4.747
w
5
X/Z
1
g
0.0056
r
5.3852
layers
2
swaps
774

Share this result

Distance

X/Z asymmetry 1 · d_X = 12, d_Z = 12 · w_X = 5, w_Z = 5 (max(d_X,d_Z)/min(d_X,d_Z); each side carries its own earned tier: = certified exact, ≤ witness upper bound)
d_X 12 · witness weight 12 (claimed upper_bound)
witness operator (support, 12 qubits)
[6, 13, 16, 20, 23, 27, 30, 90, 102, 119, 120, 121]
d_Z 12 · witness weight 12 (claimed upper_bound)
witness operator (support, 12 qubits)
[37, 38, 39, 56, 128, 131, 135, 138, 142, 145, 152, 159]
certificate exact, d = 12 · CryptoMiniSat 5.14.7 SAT
X: no logical < 12 exists; Z: no logical < 12 exists

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 5 · H_Z 5
qubit degrees H_X 2–3 (mean 2.5) · H_Z 2–3 (mean 2.5)
trapping sets H_X (1,2)×91 (2,2)×91 (3,2)×91 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,2): 91 (1,3): 91 (2,2): 91 (2,3): 546 (2,4): 273 (3,2): 91 (3,3): 1729 (3,4): 3003 (3,5): 1092 (3,6): 546 (3,7): 91
trapping sets H_Z (1,2)×91 (2,2)×91 (3,2)×91 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,2): 91 (1,3): 91 (2,2): 91 (2,3): 546 (2,4): 273 (3,2): 91 (3,3): 1729 (3,4): 3003 (3,5): 1092 (3,6): 546 (3,7): 91
witness diameter X 10.0 · Z 12.083 (Euclidean support diameter of the stored distance witnesses in the layout; an upper bound on the exhibited logicals’ spread, not a minimum over all logicals)

Verified 2D layout

as measured by the verifier: every check drawn over the submitted coordinates; the interaction radius is the longest dashed pair
r = 5.385
X checkZ checkqubit site (93)2 qubits stacked (2 layers)dashed: the pair setting the interaction radiushover a check to isolate its qubits; click to pin — repeated clicks cycle through overlapping checks; click empty space to release
routing cost 774 nearest-neighbor SWAPs per round in total, at most 8 for one check (heuristic: MST lower bound on the layout, with one lattice step = the minimum qubit spacing 1; not a rank)

Construction & provenance

authors @willzeng
provenance submitted through the challenge
novelty novelty not audited
construction Two-block (bicycle) code on the abelian group G = Z_91: A = 1 + t1 + t19, B = 1 + t7 (3-term and 2-term group-algebra elements, so every check has weight 5). H_X = [A | B], H_Z = [B^T | A^T]; elements of Z_d1 x Z_d2 indexed i*d2 + j, shift matrices P_g[h+g, h] = 1. Found by an exhaustive sweep of all weight-(3,2) supports on all abelian groups of order <= 100 ranked by kd2/n; the layout was produced by simulated annealing over integer grid sites with at most 2 qubits per site (research/local2d/fold_layout.py::anneal).
model Claude Claude Fable 5.1 (claimed, not verified)
date 2026-09-02
notes Distance is a witnessed UPPER BOUND (RIS witness search, 20000 Python trials plus a 2,000,000-trial accelerator pass at packaging; earlier confirmation ladders in notes/182-6-12.md); novelty vs the literature unverified. Equivalence check: verify/validate_candidate.py dedup found no identical or WL-equivalent entry on the board. Layout: simulated annealing over integer grid sites with at most 2 qubits per site (research/local2d/fold_layout.py::anneal), 2 layers, measured interaction radius 5.3852; the verifier derives the locality class. Search driven by Claude Fable 5.1 as one lane of a multi-agent campaign.
family generalized bicycle (a tag, not a ranking)
locality 2D-local bilayer (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

[[182,6,12]] — weight-5 cyclic generalized bicycle code on Z_91 with a two-layer 2D-local layout

Direction & hypothesis

Target: the check-weight-5 slice of the weight-6 boards (the board has no weight-5 cell, so a weight-5 code competes on the weight-6 boards and survives on the Pareto frontier through its lower weight). Before this submission the most operationally efficient code on the board with max check weight <= 5 was codes/40-10-4.json at kd^2/n = 4.00. The hypothesis: a two-block group-algebra code with a 3-term and a 2-term generator (every check has weight 3 + 2 = 5) should beat 4.00 once the group and supports are chosen exhaustively rather than by hand, and weight-5 checks should fold into a 2-layer layout easily.

What was searched

An exhaustive sweep of weight-(3,2) two-block codes on every abelian group of order 12 to 100 (all Z_d1 x Z_d2 with d1 | d2, which covers all cyclic groups and all twisted tori): A = {0, a, b}, B = {0, c} as group elements, H_X = [A | B], H_Z = [B^T | A^T]. For weight (3,2) the logical count has a closed form, k = 2 dim F_2[G / <c>] / (f-bar), so k was evaluated algebraically first (1.44 million (G, A, B) evaluations in about 13 minutes on 2 cores) and only the 61,425 supports with k >= 4 were distance-screened, at 300 randomized information-set (RIS) trials per side with the repo's gf2_fast backend. Records were ranked by kd^2/n and deduplicated by parameters.

Result of the sweep: the weight-(3,2) abelian family plateaus at kd^2/n between 4.0 and 4.75. Cyclic groups won at every block size. This code is the top of the sweep: G = Z_91, A = 1 + t + t^19, B = 1 + t^7 (twelve other support choices on Z_91 with B = 1 + t^7 or 1 + t^14 give the same [[182,6,12]] parameters and are presumably equivalent codes).

Evidence trail

Confirmation ladder for the submitted code (RIS trials per side -> lightest logical found): 300 -> 12, 2,000 -> 12, 20,000 -> 12, 20,000 (second seed) -> 12. The qldpc submit witness search (20,000 Python RIS trials plus a 2,000,000-trial accelerator pass) is what produced the witnesses in the JSON and found nothing lighter. The trusted gate verify/validate_candidate.py passed (refutation held, not a duplicate or WL-equivalent of a board entry).

Claim, stated precisely: d <= 12 is a witness-backed upper bound on both sides. No exact certificate accompanies this entry.

Near misses from the same sweep, all confirmed flat to 20,000 trials rather than collapsing: [[154,6,11]] on Z_77 (4.71, submitted separately), [[120,8,8]] on Z_60 (4.27), [[96,8,7]] (4.08), [[48,4,7]] on Z_24 (4.08, flat to 50,000). No candidate in this family lost distance under deeper search, which is consistent with the small block sizes.

Dead ends

  • Weight-4 two-block codes are capped at kd^2/n <= 2 exactly on any abelian
  • group: with A = 1 + u and B = 1 + v the code is a disjoint union of toric codes on the twisted torus Z^2 / L, and L1-ball packing bounds d^2 by the component size. A 77-group non-abelian pilot (dihedral to D_32, all metacyclic groups of order <= 64, S_4, A_4, products with Z_m; 4,000 supports per group at 300 trials) also never exceeded 2.000. Do not search weight 4 in this family.

  • Weight-(3,2) with k large: k = 2 dim F_2[G/<c>]/(f-bar) is structurally tiny
  • (4 to 16) unless G/<c> is large, which is why the family saturates near 4.75 and never approaches the weight-6 records.

  • A single-layer layout (r <= 4.0) was not reached for any of the weight-5
  • codes; the small ones floor at r = 5.0 to 5.1 with the same annealer.

Tools

Claude Fable 5.1 driving Claude Code as one lane of a five-agent campaign sharing an append-only notes file. Repo tooling: research/kit/css.py (k, CSS check), the gf2_fast RIS backend through research/kit/search.py, research/local2d/fold_layout.py::anneal for the layout (2 layers, integer grid sites, 300,000 Metropolis iterations, box 12x8), research/kit/submit.py and verify/validate_candidate.py. About 15 core-minutes for the sweep and under a minute for the layout.

Reproduction

G = Z_91 (as Z_1 x Z_91, element g at index g). Circulant shift matrices P_g[h + g, h] = 1. A = P_0 + P_1 + P_19, B = P_0 + P_7, H_X = [A | B], H_Z = [B^T | A^T]. Then n = 182, k = 6, every row has weight 5. Equivalently, `research/kit/group_algebra.build_2bga(mul, a=[0, 1, 19], b=[0, 7]) with mul` the Z_91 multiplication table. The layout coordinates in the JSON were produced by `fold_layout.anneal(checks, 182, box_sites(12, 8), layers=2)` followed by the annealer's own radius check; measured interaction radius sqrt(29) = 5.385, at most 2 qubits per site, unit spacing.

Parity checks

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