Issue #2992 asks for the halved CPM pair-partition codes of arXiv:2609.30069 (Definition 1 with the reversing fold of Proposition 4). The paper's (4,10) family lists [[90,21,11]], [[140,31,15]], and [[200,43,20]] with exact distances but publishes no generators, and its data repository (ultra-high-rate-qec/design-principles-data) was empty on 2026-10-11. The construction is fixed up to an exponent array E, so the family can be searched directly: n = 5P and k = P + 3 for every accepted template, and the distance is whatever the search finds. Nothing on the board sat near these (n, k) at these distances, so an instance with a verified bound close to the paper's value is a board entry even where it falls short of the paper's claim.
The parent is a pair-partition CPM code with J = 4 check blocks and L = 10 qubit blocks of size P. X checks come from E: row (j, s) has a 1 at qubit (l, s - E[j][l] mod P) for each l. Z checks come from D[j][l] = -E[j][l xor 1] mod P in the same way. E must satisfy the paper's pair-partition rule: each off-diagonal cell (i < j) carries a perfect matching M on the L block columns, edge-disjoint from the matchings already placed in its row and column, and E[i,u] + E[j,u xor 1] = E[i,v] + E[j,v xor 1] mod P for every matched pair {u, v}. The search draws M at random, solves the resulting homogeneous integer system for E with sympy, and reduces a random integer combination of the kernel basis mod P.
The reversing fold identifies qubit t of block l with qubit -t mod P of block l xor 1. Each parent X check then becomes one stabilizer generator on the 5P surviving qubits (blocks 0, 2, 4, 6, 8): an X leg on each surviving block's position and a Z leg on each partner position, with coinciding legs merging to Y. Every generator has weight at most 10. The 4P generators span a group of rank 4P - 3, hence k = P + 3.
A Perlmutter run over the (4,10), P = 19 template: 533,859 templates screened with up to 3,000 Pauli-weight RIS trials each, 158 of which read 11 or 12. Of those, 15 survived the deeper unframed passes at 11, and all 15 held 11 under 852 random per-qubit symplectic frames x 1,000,000 gf2_fast trials on the symplectic doubling (Perlmutter job 59676168, 2026-10-11). This entry is the first of the 15; the other 14 are parameter twins and are not filed.
[0, 34, 37, 41, 45, 59, 92] (positions in both carry Y), stored in the JSON; it commutes with every generator and lies outside the stabilizer group, as the gate re-checks.
minimizes |x| + |z|, so a logical with Y legs looks heavier than its Pauli weight and can be missed. The frame screen draws a random single-qubit symplectic frame per qubit, runs the doubled search, maps each find back, and scores it by Pauli weight. On a P = 40 twin of this family, 12 frames x 500,000 trials found Pauli weight 15 where 100,000,000 unframed trials read 19, so unframed non-refutations of these codes are weak evidence.
verify/validate_candidate.py against main bc93ef2d, 2026-10-13):passed, no exact or WL duplicate, refuter found nothing lighter, board_advancing true, dominated_by: [], cell `weight-9plus x unrestricted` on the stabilizer board.
No board entry of any type at n <= 95 and k >= 22 reaches d >= 9; the best is [[92,25,8]]. On the stabilizer board the cell weight-9plus x unrestricted had nothing near this (n, k).
The paper's Table VII has no P = 19 row (its lifts are 14, 18, 20, 22, and up), so there is no published value at this (n, k).
it or its appendices, and the data repository is empty. Whether the gap to the paper's exact value comes from the template search (the paper does not say how its E were chosen) or from our distance estimate (an upper bound) is open. The V1 result on #2992 records this; the box there is left unticked.
only loosely; the ranking that fed the frame screen came from it, so better templates may have been screened out early.
Template search halved_pp.py (genesis campaign scripts; the reproduction below is self-contained), verify/heuristic_distance.py Pauli RIS, verify/gf2_fast with the frame screen on Perlmutter (NERSC gen0030), verify/validate_candidate.py. Claude Fable 5.1 (Claude Code) working for @vprusso.
import numpy as np
def halved_checks(P, E):
J, L = len(E), len(E[0])
HX = np.zeros((J * P, L * P), dtype=np.int8)
for j in range(J):
for l in range(L):
for s in range(P):
HX[j * P + s, l * P + (s - E[j][l]) % P] = 1
checks = []
for h in HX:
x, z = [], []
for ri, l in enumerate(range(0, L, 2)):
for t in range(P):
if h[l * P + t]:
x.append(ri * P + t)
if h[(l ^ 1) * P + (-t) % P]:
z.append(ri * P + t)
checks.append({"X": x, "Z": z})
return checks
E = [[7, 8, 0, 14, 7, 10, 7, 9, 17, 7], [18, 8, 15, 15, 16, 16, 2, 16, 3, 13], [13, 3, 15, 16, 5, 14, 6, 0, 9, 9], [18, 9, 13, 7, 12, 9, 10, 1, 12, 5]]
S = halved_checks(19, E) # the 4P generators of codes/95-22-11.json, in order