Primary reference: arXiv:2306.16400 (Lin and Pryadko, Quantum two-block group algebra codes), companion enumeration archive github.com/QEC-pages/2BGA-codes @ 403d194c3f98, nonabelian row 64 47 8 9 [ 3 ] [ 2, 15, 26 ].
This is a reproduction, not a search. The code is the archive's; the entry is seeded as a literature baseline attributed to the paper's authors. What is new here is the check that the archive row rebuilds to the published n, k, and check weight, and a witness-backed distance measurement of our own.
Issue #1204's literature cross-check found that the board's codes/128-8-6.json ([[128,8,6]], weight 6, a Liang-Eberhardt-Chen baseline) is strictly dominated at the same n and k by an unseeded 2BGA archive row of equal check weight, and that a surrogate distance search left the archive's distance standing. Issue #3658 asks for those rows to be seeded through the gate as baselines, so the frontier shows the published code rather than the entry it dominates. This is one of them.
No parameter search was run. The archive row was rebuilt from its published data alone:
1. The group table of SmallGroup(64,47) = C16 : C4 was exported with GAP 4.16.1 and the SmallGroups library 1.7.0 through the repository's own research/kit/groups/cayley_table.g, elements in GAP's Elements(G) order with the identity first, into research/kit/groups/smallgroup_64_47.json. 2. a and b are the archive's element index lists (the identity is implicit in the archive's lists), converted to 0-based indices [0, 2] and [0, 1, 14, 25], and the code is research/kit/group_algebra.build_2bga_small_group(64, 47, [0, 2], [0, 1, 14, 25]): H_X = [L(a) | R(b)], H_Z = [R(b)^T | L(a)^T]. 3. n = 128, k = 8, and check weight 6 match the row (the filename of the archive file records total row weight 6 with a of weight 2), and H_X H_Z^T = 0.
The reconstruction convention (1-based GAP element indices, identity implicit unless listed, left action for a and right action for b) was checked before trusting it: the archive rows that research/provenance/derived.json matches to five board entries (96-4-10, 60-4-8, 72-8-8, 192-12-14, 180-4-15) were rebuilt the same way, and each came out permutation-equivalent to its board entry under nauty's canonical form with the permutation verified on the row spaces.
The archive's distance 9 is a QDistRnd probabilistic upper bound. This entry carries its own witnesses from the kit's RIS search, 40,000 trials per side on the NumPy backend at seed 20261017:
| side | witness weight | depth | status | |---|---|---|---| | X | 9 | 40,000 RIS trials, seed 20261017 | upper bound | | Z | 9 | 40,000 RIS trials, seed 20261017 | upper bound |
Each witness was checked against the verifier's criteria before writing (in the kernel of the opposite checks, outside the row space of its own, weight equal to the claimed value). A deeper search with the gf2_fast accelerator, two seeds at 2,000,000 trials each, found nothing lighter than 9. The gate's own refutation pass found nothing lighter either. So the archive says d <= 9 probabilistically and this entry says d <= 9 witnessed; the confidence field records the upper bound, and nothing here is exact until verify/certify.py closes it.
None in the reproduction itself. Two facts about the archive worth knowing for anyone rebuilding rows from it: about 2,000 of its 72,637 rows list the identity explicitly as index 1 and the rest leave it implicit, and the filename weights (wt, wtL) are the way to tell, since the archive's README describes only the implicit form; and several rows are duplicated verbatim across files.
GAP 4.16.1 with the SmallGroups library 1.7.0 (through the passagemath-gap distribution) for the group table; research/kit/group_algebra.py for the construction; research/kit/surrogate.py for the witness search (NumPy backend for the recorded witnesses, gf2_fast for the deeper check); research/kit/submit.py for packaging; research/provenance/iso_common.py (pynauty) for the convention check; and the trusted gate verify/validate_candidate.py. Model: Claude Fable 5.1 (Claude Code), as provenance.model records; it ran the reproduction from the archive data under the submitter's direction.
./qldpc reproduce 128-8-9 --construction replays repro/128-8-9.json, which runs research/kit/rebuild.py --constructor group_algebra.build_2bga_small_group with {"order": 64, "gap_id": 47, "a": [0, 2], "b": [0, 1, 14, 25]} and compares the verifier's fingerprint with the committed entry.