← back to the board
[[60,4,8]] d =
n
60
k
4
d
8
kd²/n
4.267
w
5
X/Z
1
g
0.0252
r
3.6056
layers
2
swaps
116

Share this result

Distance

X/Z asymmetry 1 · d_X = 8, d_Z = 8 · 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 8 · witness weight 8 (claimed upper_bound)
witness operator (support, 8 qubits)
[12, 15, 26, 29, 39, 41, 53, 59]
d_Z 8 · witness weight 8 (claimed upper_bound)
witness operator (support, 8 qubits)
[7, 9, 27, 29, 32, 39, 42, 49]
certificate exact, d = 8 · CryptoMiniSat 5.14.7 SAT
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 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)×30 (2,2)×30 (3,2)×30 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,2): 30 (1,3): 30 (2,2): 30 (2,3): 180 (2,4): 90 (3,2): 30 (3,3): 580 (3,4): 990 (3,5): 330 (3,6): 180 (3,7): 30
trapping sets H_Z (1,2)×30 (2,2)×30 (3,2)×30 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,2): 30 (1,3): 30 (2,2): 30 (2,3): 180 (2,4): 90 (3,2): 30 (3,3): 580 (3,4): 990 (3,5): 330 (3,6): 180 (3,7): 30
witness diameter X 5.0 · Z 3.0 (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 = 3.606
X checkZ checkqubit site (31)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 116 nearest-neighbor SWAPs per round in total, at most 5 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 group-algebra (2BGA) code (Lin-Pryadko) on the non-abelian metacyclic group C_3 x| C_10 (action i -> 2^j i mod 3; kit group_algebra.metacyclic(3,10,2), element (i,j) at index i*10+j): a = {g_0, g_18, g_20} (element indices [0, 18, 20]), b = {g_0, g_3} (indices [0, 3]); H_X = [L(a) | R(b)], H_Z = [R(b)^T | L(a)^T], so every check has weight 5. Found by a screen of all |a|=3, |b|=2 supports on small non-abelian groups ranked by kd2/n; layout by simulated annealing on integer grid sites, <= 2 qubits per site.
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/60-4-8.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 3.6056; 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

[[60,4,8]] — weight-5 two-block group-algebra code on the non-abelian metacyclic group C_3 x| C_10, two-layer 2D-local layout

Direction & hypothesis

Target: the check-weight-5 slice of the weight-6 boards at small n. The board has no weight-5 cell; a weight-5 code competes on the weight-6 boards and holds a Pareto position through its lower weight. Before this campaign no code on the board with max check weight <= 5 exceeded kd^2/n = 4.00 (codes/40-10-4.json), and nothing in the 2D-local bilayer weight-6 cell with n <= 60 had k >= 4 and d >= 8. Hypothesis: the abelian weight-(3,2) family saturates near 4.75 (see the [[182,6,12]] note), and non-abelian groups might reach the same efficiency at smaller n.

What was searched

Two-block group-algebra (2BGA, Lin-Pryadko) codes H_X = [L(a) | R(b)], H_Z = [R(b)^T | L(a)^T] with |a| = 3 and |b| = 2 (check weight 5) on 60 non-abelian groups of order <= 48: dihedral groups, all metacyclic groups C_n x| C_k with r^k = 1 mod n, S_4, A_4, and products of these with cyclic groups. Per group, 6,000 random (a, b) supports, deduplicated, k computed exactly, then 300 RIS trials per side (gf2_fast), ranked by kd^2/n. The winner, at 4.267, is this code on MC(3,10,2) = C_3 x| C_10 with the action i -> 2^j i mod 3; thirteen distinct (a, b) supports on that group give the same [[60,4,8]] parameters (presumably equivalent codes). The runner-up was [[96,4,10]] on C_3 x| C_16 at 4.17.

Evidence trail

Confirmation ladder (RIS trials per side -> lightest logical): 300 -> 8, 2,000 -> 8, 20,000 -> 8. The qldpc submit witness search (20,000 Python RIS trials plus a 2,000,000-trial accelerator pass) produced the witnesses in the JSON and found nothing lighter. At n = 60 this search depth is far beyond the fieldnotes' trial-depth floors. verify/validate_candidate.py passed: refutation held, not a duplicate or WL-equivalent of any board entry.

Claim, stated precisely: d <= 8 on both sides is a **witness-backed upper bound**. An exact certificate (verify/certify.py) is cheap at this size and is the natural next step; it has not been run for this entry.

Dead ends

  • Weight-4 2BGA codes: a 77-group non-abelian pilot (dihedral to D_32, all
  • metacyclic groups of order <= 64, S_4, A_4, D_k x Z_m; 4,000 supports each) never exceeded kd^2/n = 2.000, matching the abelian bound (a weight-4 abelian two-block code is a disjoint union of toric codes, so kd^2/n <= 2).

  • Weight-5 non-abelian groups sit on the same plateau as the abelian ones
  • (4.0 to 4.8): the non-abelian structure buys smaller n, not higher efficiency.

  • A single-layer layout (r <= 4.0) was not found; the annealer floors near
  • r = 5 with one layer for the codes of this size.

Tools

Claude Fable 5.1 driving Claude Code, one lane of a five-agent campaign with a shared append-only notes file. Repo tooling: research/kit/group_algebra.py (metacyclic, build_2bga), research/kit/css.py, the gf2_fast RIS backend via research/kit/search.py, research/local2d/fold_layout.py::anneal (2 layers, integer grid sites, boxes 6x5, 8x4, 7x5, 6x6 with 3 seeds each; best r = sqrt(13) = 3.606 in the 6x6 box), research/kit/submit.py, verify/validate_candidate.py. About 20 core-minutes for the pilot, under a minute for the layout.

Reproduction

mul = research.kit.group_algebra.metacyclic(3, 10, 2) (element (i, j) at index i*10 + j, identity at 0). `HX, HZ = build_2bga(mul, a=[0, 18, 20], b=[0, 3])`, i.e. a = {g_0, g_18, g_20} and b = {g_0, g_3} as element indices, H_X = [L(a) | R(b)], H_Z = [R(b)^T | L(a)^T]. Then n = 60, k = 4, every row has weight 5. Layout: fold_layout.anneal(checks, 60, box_sites(6, 6), layers=2); measured interaction radius sqrt(13) = 3.606, at most 2 qubits per site, unit spacing.

Parity checks

X-checks 30 (max weight 5) · Z-checks 30 (max weight 5)
H_X (30 checks, sparse supports)
[0, 10, 22, 30, 37] [1, 11, 23, 31, 38] [2, 12, 24, 32, 39] [3, 13, 25, 30, 33] [4, 14, 26, 31, 34] [5, 15, 27, 32, 35] [6, 16, 28, 33, 36] [7, 17, 29, 34, 37] [8, 18, 20, 35, 38] [9, 19, 21, 36, 39] [2, 10, 20, 40, 47] [3, 11, 21, 41, 48] [4, 12, 22, 42, 49] [5, 13, 23, 40, 43] [6, 14, 24, 41, 44] [7, 15, 25, 42, 45] [8, 16, 26, 43, 46] [9, 17, 27, 44, 47] [0, 18, 28, 45, 48] [1, 19, 29, 46, 49] [0, 12, 20, 50, 57] [1, 13, 21, 51, 58] [2, 14, 22, 52, 59] [3, 15, 23, 50, 53] [4, 16, 24, 51, 54] [5, 17, 25, 52, 55] [6, 18, 26, 53, 56] [7, 19, 27, 54, 57] [8, 10, 28, 55, 58] [9, 11, 29, 56, 59]
H_Z (30 checks, sparse supports)
[0, 3, 30, 48, 50] [1, 4, 31, 49, 51] [2, 5, 32, 40, 52] [3, 6, 33, 41, 53] [4, 7, 34, 42, 54] [5, 8, 35, 43, 55] [6, 9, 36, 44, 56] [0, 7, 37, 45, 57] [1, 8, 38, 46, 58] [2, 9, 39, 47, 59] [10, 13, 30, 40, 58] [11, 14, 31, 41, 59] [12, 15, 32, 42, 50] [13, 16, 33, 43, 51] [14, 17, 34, 44, 52] [15, 18, 35, 45, 53] [16, 19, 36, 46, 54] [10, 17, 37, 47, 55] [11, 18, 38, 48, 56] [12, 19, 39, 49, 57] [20, 23, 38, 40, 50] [21, 24, 39, 41, 51] [22, 25, 30, 42, 52] [23, 26, 31, 43, 53] [24, 27, 32, 44, 54] [25, 28, 33, 45, 55] [26, 29, 34, 46, 56] [20, 27, 35, 47, 57] [21, 28, 36, 48, 58] [22, 29, 37, 49, 59]
Code ID 60-4-8 · download JSON · raw on GitHub