← back to the board
[[112,12,8]] d =
n
112
k
12
d
8
kd²/n
6.857
w
6
X/Z
1

Share this result

Distance

X/Z asymmetry 1 · d_X = 8, d_Z = 8 · 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 8 · witness weight 8 (claimed upper_bound)
witness operator (support, 8 qubits)
[8, 12, 28, 48, 52, 59, 62, 64]
d_Z 8 · witness weight 8 (claimed upper_bound)
witness operator (support, 8 qubits)
[49, 51, 54, 57, 73, 89, 93, 105]
certificate exact, d = 8 · scipy/HiGHS MILP
X: no logical < 8 exists; Z: no logical < 8 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 6 · H_Z 6
qubit degrees H_X 3 · H_Z 3
trapping sets H_X (1,3)×112 (2,4)×840 (3,3)×224 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,3): 112 (2,4): 840 (3,3): 224 (3,5): 7728 (3,7): 1120
trapping sets H_Z (1,3)×112 (2,4)×840 (3,3)×224 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,3): 112 (2,4): 840 (3,3): 224 (3,5): 7728 (3,7): 1120

Construction & provenance

authors @vprusso
provenance submitted through the challenge
novelty novelty not audited
construction Two-block group-algebra code on the abelian group Z_28 x Z_2 as built by research/kit/group_algebra.py cyclic_product(28, 2) (element tuple (i, j) at index i*2 + j); supports a = [0, 2, 7] (left regular representation) and b = [0, 4, 40] (right regular representation); H_X = [L(a) | R(b)], H_Z = [R(b)^T | L(a)^T] (research/kit/group_algebra.py build_2bga).
model Claude Claude Fable 5.1 (claimed, not verified)
date 2026-09-20
notes Found by a random support sweep over weight-6 two-block group-algebra codes with n <= 160 (a sweep script kept with the search run (not committed; method in the research note)). Distance is a witness-backed upper bound; surrogate ladder [(200000, 8), (1000000, 8)] trials per side. Advances the weight-6 x unrestricted board; novelty vs the literature unverified.
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

[[112,12,8]] weight-6 generalized bicycle code on Z_28 x Z_2

Direction & hypothesis

Track cell unrestricted x weight-6, small n (n <= 160). At k = 12 the board went [[72,12,6]], [[108,12,7]], [[126,12,10]], [[144,12,12]]: nothing with n < 126, k >= 12 and d >= 8. The designed-k mechanism (fix k by construction, spend the search on d) from the 2026-07-14 fieldnote was applied to abelian two-block group-algebra codes of weight 3+3: for abelian G the dimension is k = 2 dim(ker L(a) intersect ker L(b)), so kernels of all normalized weight-3 supports can be tabulated once per group and paired to hit k >= 8 exactly, with the surrogate spent only on pairs that could land on the frontier.

What was searched

a sweep script kept with the search run (sweep_designed.py, not committed; the method is described above), four runs on 2 threads: N = 72..80 (18360 pairs screened, 0 hits), N = 63..71 plus a partial Z_62 (about 9000 screened; Z_62 gave [[124,10,10]] 416 times and [[124,10,8]] 649 times, no d >= 11), N = 36..49 (23901 screened, 0 hits) and N = 50..61 (about 12000 screened before the budget stopped it). Groups: Z_N and Z_l x Z_m with gcd(l, m) > 1. Per group at most 400 supports with kernel dimension >= 4 and at most 3000 pairs with k >= 8, a nondomination threshold need >= 5, and a and b generating G (disconnected Tanner graphs are rejected by the verifier). Ladder 600 -> 5000 -> 20000 gf2_fast RIS trials per side, need enforced at each rung. On Z_28 x Z_2 (384 supports, 2664 pairs) 432 pairs reached [[112,12,8]]; on Z_14 x Z_4 339 pairs did; none reached d = 9.

Evidence trail

Ladder for the staged pair a = {(0,0), (1,0), (3,1)}, b = {(0,0), (2,0), (20,0)} (indices 0, 2, 7 and 0, 4, 40 in cyclic_product(28, 2) order): 600 -> 8, 5000 -> 8, 20000 -> 8, 200000 -> 8, 1000000 -> 8 trials per side, flat. The gate found no lighter logical in its own refutation pass and labelled the code "advances the weight-6 x unrestricted board". Witness-backed upper bound d <= 8 (X and Z witnesses both weight 8); not certified exact.

Fills the k = 12 gap between [[108,12,7]] and [[126,12,10]]; beats no frontier entry outright. It dominates the [[120,10,8]] found earlier in this run (Z_60, 2+4 split), which was therefore not staged.

Dead ends

  • Random-support sweep (the random-support sweep, 401k samples): 91 percent have
  • k < 4; the connected survivors were the k = 10 fills [[124,10,10]] and [[120,10,8]]. A random [[112,12,8]] on Z_14 x Z_4 with A = {(0,0),(11,1),(6,2)}, B = {(0,0),(3,1),(2,2)} was disconnected (all of A and B lie in the index-2 subgroup x + y even): two copies of [[56,6,8]].

  • Designed-k runs found nothing at N in 36..49 or 63..80: at n = 72..98 the
  • thresholds (d >= 7 at k = 12, d >= 8 at k = 10, d >= 9 at k = 8) were not reached by any of 23901 connected k >= 8 pairs, so [[72,12,6]] and [[90,10,7]] were not beaten by weight-6 abelian 2BGA in this sample.

  • High kernel dimension for a weight-3 support usually means the support lies
  • in a proper subgroup: 60 to 85 percent of k >= 8 pairs were discarded as disconnected.

Tools

Claude Fable 5.1 (Claude Code, unattended workflow). research/kit (group_algebra, css, surrogate with gf2_fast at 2 threads, submit); gate verify/validate_candidate.py. About 25 CPU-minutes of screening across the designed-k runs, 40 s deep refutation for the finalist.

Reproduction

import sys; sys.path.insert(0, "research/kit") from group_algebra import cyclic_product, build_2bga mul, _ = cyclic_product(28, 2) HX, HZ = build_2bga(mul, [0, 2, 7], [0, 4, 40])

In polynomial form over F_2[x, y]/(x^28 - 1, y^2 - 1): a = 1 + x + x^3 y, b = 1 + x^2 + x^20, H_X = [A | B], H_Z = [B^T | A^T].

Parity checks

X-checks 56 (max weight 6) · Z-checks 56 (max weight 6)
H_X (56 checks, sparse supports)
[0, 51, 54, 56, 72, 108] [1, 50, 55, 57, 73, 109] [0, 2, 53, 58, 74, 110] [1, 3, 52, 59, 75, 111] [2, 4, 55, 56, 60, 76] [3, 5, 54, 57, 61, 77] [1, 4, 6, 58, 62, 78] [0, 5, 7, 59, 63, 79] [3, 6, 8, 60, 64, 80] [2, 7, 9, 61, 65, 81] [5, 8, 10, 62, 66, 82] [4, 9, 11, 63, 67, 83] [7, 10, 12, 64, 68, 84] [6, 11, 13, 65, 69, 85] [9, 12, 14, 66, 70, 86] [8, 13, 15, 67, 71, 87] [11, 14, 16, 68, 72, 88] [10, 15, 17, 69, 73, 89] [13, 16, 18, 70, 74, 90] [12, 17, 19, 71, 75, 91] [15, 18, 20, 72, 76, 92] [14, 19, 21, 73, 77, 93] [17, 20, 22, 74, 78, 94] [16, 21, 23, 75, 79, 95] [19, 22, 24, 76, 80, 96] [18, 23, 25, 77, 81, 97] [21, 24, 26, 78, 82, 98] [20, 25, 27, 79, 83, 99] [23, 26, 28, 80, 84, 100] [22, 27, 29, 81, 85, 101] [25, 28, 30, 82, 86, 102] [24, 29, 31, 83, 87, 103] [27, 30, 32, 84, 88, 104] [26, 31, 33, 85, 89, 105] [29, 32, 34, 86, 90, 106] [28, 33, 35, 87, 91, 107] [31, 34, 36, 88, 92, 108] [30, 35, 37, 89, 93, 109] [33, 36, 38, 90, 94, 110] [32, 37, 39, 91, 95, 111] [35, 38, 40, 56, 92, 96] [34, 39, 41, 57, 93, 97] [37, 40, 42, 58, 94, 98] [36, 41, 43, 59, 95, 99] [39, 42, 44, 60, 96, 100] [38, 43, 45, 61, 97, 101] [41, 44, 46, 62, 98, 102] [40, 45, 47, 63, 99, 103] [43, 46, 48, 64, 100, 104] [42, 47, 49, 65, 101, 105] [45, 48, 50, 66, 102, 106] [44, 49, 51, 67, 103, 107] [47, 50, 52, 68, 104, 108] [46, 51, 53, 69, 105, 109] [49, 52, 54, 70, 106, 110] [48, 53, 55, 71, 107, 111]
H_Z (56 checks, sparse supports)
[0, 4, 40, 56, 58, 63] [1, 5, 41, 57, 59, 62] [2, 6, 42, 58, 60, 65] [3, 7, 43, 59, 61, 64] [4, 8, 44, 60, 62, 67] [5, 9, 45, 61, 63, 66] [6, 10, 46, 62, 64, 69] [7, 11, 47, 63, 65, 68] [8, 12, 48, 64, 66, 71] [9, 13, 49, 65, 67, 70] [10, 14, 50, 66, 68, 73] [11, 15, 51, 67, 69, 72] [12, 16, 52, 68, 70, 75] [13, 17, 53, 69, 71, 74] [14, 18, 54, 70, 72, 77] [15, 19, 55, 71, 73, 76] [0, 16, 20, 72, 74, 79] [1, 17, 21, 73, 75, 78] [2, 18, 22, 74, 76, 81] [3, 19, 23, 75, 77, 80] [4, 20, 24, 76, 78, 83] [5, 21, 25, 77, 79, 82] [6, 22, 26, 78, 80, 85] [7, 23, 27, 79, 81, 84] [8, 24, 28, 80, 82, 87] [9, 25, 29, 81, 83, 86] [10, 26, 30, 82, 84, 89] [11, 27, 31, 83, 85, 88] [12, 28, 32, 84, 86, 91] [13, 29, 33, 85, 87, 90] [14, 30, 34, 86, 88, 93] [15, 31, 35, 87, 89, 92] [16, 32, 36, 88, 90, 95] [17, 33, 37, 89, 91, 94] [18, 34, 38, 90, 92, 97] [19, 35, 39, 91, 93, 96] [20, 36, 40, 92, 94, 99] [21, 37, 41, 93, 95, 98] [22, 38, 42, 94, 96, 101] [23, 39, 43, 95, 97, 100] [24, 40, 44, 96, 98, 103] [25, 41, 45, 97, 99, 102] [26, 42, 46, 98, 100, 105] [27, 43, 47, 99, 101, 104] [28, 44, 48, 100, 102, 107] [29, 45, 49, 101, 103, 106] [30, 46, 50, 102, 104, 109] [31, 47, 51, 103, 105, 108] [32, 48, 52, 104, 106, 111] [33, 49, 53, 105, 107, 110] [34, 50, 54, 57, 106, 108] [35, 51, 55, 56, 107, 109] [0, 36, 52, 59, 108, 110] [1, 37, 53, 58, 109, 111] [2, 38, 54, 56, 61, 110] [3, 39, 55, 57, 60, 111]
Code ID 112-12-8 · download JSON · raw on GitHub