Cell weight-6 x unrestricted, CSS board, n between 300 and 400. Before this filing the weight-6 frontier there held 310-10-22, 330-22-9, 330-68-6, 340-16-18, 360-12-24, 360-20-20, 360-38-8 and 382-36-10: every weight-6 entry with k >= 24 had d <= 10, and every one with d >= 12 had k <= 20. The hypothesis was that two-block group-algebra (2BGA) codes on non-abelian groups of order 150 to 200, which reach parameters the abelian bivariate bicycle torus does not, could put a k >= 24, d >= 12 point into that gap at check weight 6. [[378,24,16]] does, with room: no board entry has n <= 378, k >= 24, d >= 16 and check weight <= 6, and neither [[378,22,16]] nor [[378,24,14]] is dominated either. Its kd^2/n = 16.25 is above every weight-6 entry with k >= 20 on the board.
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), dropping a candidate as soon as its running bound stopped advancing. An earlier serial sweep of 10,000 draws at 300 <= n <= 400 (seed 31) had found the weaker [[378,24,12]] on C_21 ⋊ C_9 (= C_3 x (C_7 ⋊ C_9)), which this code dominates; a [[384,24,12]] on ZSZ(48,4,17) and a [[392,24,12]] bivariate bicycle on Z_14 x Z_14 also held through 2,000,000 trials and are dominated by it too.
Witness-backed upper bound d <= 16, not an exact distance. The bound was 16 at 400 trials and never moved; both sides have a weight-16 logical.
| stage | trials per candidate | lightest logical | |---|---|---| | screen (gf2_fast, seed from fingerprint) | 400 | 16 | | confirm | 20,000 | 16 | | confirm | 200,000 | 16 | | confirm | 2,000,000 | 16 | | numpy lightest_logical, both sides, seeds 51 / 52 | 1,500 | X 16, Z 16 | | deep ladder, 3 fresh seeds (47788, 55707, 63626), gf2_fast | 10,000,000 each | 16, 16, 16 (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). The dominated [[378,24,12]] on C_21 ⋊ C_9 was corroborated separately at 3 x 10,000,000 fresh-seed trials (d <= 12 at every rung) and not filed.
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. With the k prefilter (200,000 draws, 185 with k >= 12) the best were the dominated [[392,24,12]] and a [[336,20,12]].
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.6 CPU-hours on this code; about 8 CPU-hours on the sweeps above.
The group is research/kit/nonabelian_lp.py's zsz(63, 3, 58), i.e. research/kit/group_algebra.py's metacyclic(63, 3, 58): C_63 ⋊ C_3 with y x y^-1 = x^58, element x^i y^j at index 3 i + j, identity at 0 (58 has order 3 mod 63, so the group is non-abelian of order 189, with elements of order 63; it is not isomorphic to the C_21 ⋊ C_9 of the dominated [[378,24,12]]). With x = (1, 0), y = (0, 1):
a = 1 + x^5 y + x^35 y (indices 0, 16, 106), b = 1 + x^5 y^2 + x^15 (indices 0, 17, 45).
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(63, 3, 58) HX, HZ = build_2bga(mul, [0, 16, 106], [0, 17, 45]) # n = 378, k = 24 assert compute_k(HX, HZ) == 24
Check sets match codes/378-24-16.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-16 logical; the numpy lightest_logical at 1,500 trials with seeds 51 (X) and 52 (Z) gives the two witnesses in the JSON.