Cell weight-6 x unrestricted, CSS board, n between 221 and 300. The weight-6 frontier there ran 224-18-12, 224-12-16, 234-26-7, 240-16-14, 254-14-16, 270-30-7, 288-16-16, 288-12-18, 294-10-20: at n <= 300 every weight-6 entry with k >= 20 had d <= 7, and every one with d >= 10 had k <= 18. The hypothesis was that two-block group-algebra (2BGA) codes on non-abelian groups of order 111 to 150 could put a k = 20, d = 10 point into that corner at check weight 6. [[252,20,10]] does: no board entry has n <= 252, k >= 20, d >= 10 and check weight <= 6.
Random-support 2BGA codes H_X = [L(a) | R(b)], H_Z = [R(b)^T | L(a)^T] with a, b three group elements each, both containing the identity (no loss of generality: multiplying a or b by a group element permutes qubits and checks). The group menu was every non-abelian group of order 111 to 200 the kit builds from Cayley-table constructors: dihedral D_n, metacyclic C_n ⋊_r C_k (up to two actions r per (n, k)), C_m x D_k, C_m x A4, C_m x S4, C_m x A5, D_a x D_b, C_m x (C_n ⋊ C_k) for eight small metacyclic factors, S5, and the split metacyclic presentations ZSZ(l1, l2, q) of research/kit/nonabelian_lp.py.
Random supports almost never give usable k (a generic weight-3 element is invertible on the higher-dimensional irreducible blocks of F_2[G]), so the sweep ran a parallel k prefilter: 200,000 draws at 222 <= n <= 400 (seed 51), of which 198,731 had k < 14 and 888 were direct sums; the k histogram of the 381 kept was 14:90, 16:159, 18:49, 20:38, 24:37, 28:3, 32:3, 44:2. Those 381 went through research/kit/search.screen with the gf2_fast backend at 400 trials; 6 advanced the board frontier at screen depth and were confirmed at 20,000 / 200,000 / 2,000,000 fast trials (research/kit/surrogate.distance_rand_witness, pair depth 8). A second sweep of 400,000 draws restricted to 222 <= n <= 300 with k >= 16 (seed 61) found the same (n, k, d) point on two further presentations of the same order-126 group, which is what one expects when the code is a property of the group rather than of the draw.
Witness-backed upper bound d <= 10, not an exact distance. The bound was 10 at 400 trials and never moved; both sides have a weight-10 logical.
| stage | trials per candidate | lightest logical | |---|---|---| | screen (gf2_fast, seed from fingerprint) | 400 | 10 | | confirm | 20,000 | 10 | | confirm | 200,000 | 10 | | confirm | 2,000,000 | 10 | | numpy lightest_logical, both sides, seeds 51 / 52 | 1,500 | X 10, Z 10 | | deep ladder, 3 fresh seeds (47789, 55708, 63627), gf2_fast | 10,000,000 each | 10, 10, 10 (X side) |
verify/validate_candidate.py (through research/kit/coordination.py's gate wrapper) returned passed: true, board_advancing: true, `d_only_gain: false`, label "advances the weight-6 x unrestricted board". Literature novelty is unverified; board-relative novelty comes from verify/validate_candidate.py (fingerprint and Weisfeiler-Leman dedup against every board entry found nothing).
Two other draws on groups of the same order, MC(21,6,2) and C6 x (C7 ⋊ C3), reached the same [[252,20,10]] through 2,000,000 trials and were not filed separately (same parameters, same cell).
check weight 6 (weight-3 a and b): at odd m from 111 to 200 and deg g >= 8 there are essentially no weight-3 multiples of g (the residue table x^i mod g gives none for almost every (m, g)); the few that exist are lifts from a subring Z_{m/s} and give direct sums. Weight-4 multiples exist in quantity only for deg g <= 22, and 4,000 of those at 300 <= n <= 400 (k 20 to 100) produced nothing that advanced the weight-8 frontier even at 400 trials.
400: 15,629 had k < 18; the 4 screen-depth survivors collapsed to d <= 17 by 20,000 trials (dominated by 252-20-21, 292-22-23, 336-24-24, 378-32-19).
300 <= n <= 400) and 8 (5,000 draws): 7,971 and 4,981 had k < 12 / 16; nothing advanced.
weight 8), 5,000 draws on groups of order 45 to 80, nothing advancing; weight-(2,2) entries (check weight 6) give k = |G| + 6 at d = 6 (e.g. [[400,86,6]]), which the board's 258-88-6 already dominates.
S5 x C2, S6, A5 x C3, A5 x C2, S4 x C_m: 3,000 draws, 2,869 had k < 12, nothing advancing.
Model: Claude Fable 5.1 (Claude Code agent, contributor-driven workflow). Compute: one Brev n2d-highcpu-64 box; gf2_fast at 30 threads for the confirmation rungs and the ladder, 40 forked processes for the generate + rank prefilter. Kit modules: research/kit/nonabelian_lp.py (zsz), research/kit/group_algebra.py (metacyclic, build_2bga), research/kit/search.py (screen), research/kit/surrogate.py (distance_rand_witness, lightest_logical), research/kit/prescreen.py (direct-sum and board dedup), research/kit/submit.py, research/kit/coordination.py. About 0.3 CPU-hours on this code; about 8 CPU-hours on the sweeps above.
The group is research/kit/nonabelian_lp.py's zsz(21, 6, 8), i.e. research/kit/group_algebra.py's metacyclic(21, 6, 8): C_21 ⋊ C_6 with y x y^-1 = x^8, element x^i y^j at index 6 i + j, identity at 0. Since 8 = -1 mod 3 and 8 = 1 mod 7, the action inverts the 3-part of C_21 and fixes the 7-part, so the group is C_21 x S_3 (order 126). With x = (1, 0), y = (0, 1):
a = 1 + x^8 + x^20 y^3 (indices 0, 48, 123), b = 1 + x^11 y^2 + x^19 y^4 (indices 0, 68, 118).
import sys; sys.path[:0] = ["research/kit", "verify"] from nonabelian_lp import zsz from group_algebra import build_2bga from css import compute_k mul = zsz(21, 6, 8) HX, HZ = build_2bga(mul, [0, 48, 123], [0, 68, 118]) # n = 252, k = 20 assert compute_k(HX, HZ) == 20
Check sets match codes/252-20-10.json row for row in this order. Witness search: `surrogate.distance_rand_witness(HX, HZ, trials=2_000_000, seed=51000003 + 2_000_000, backend="fast", pair_depth=8)` returns a weight-10 logical; the numpy lightest_logical at 1,500 trials with seeds 51 (X) and 52 (Z) gives the two witnesses in the JSON.