Two halves, and neither works without the other. The code loses 20 qubits, and the layout loses a layer. The reduction has to be *held back* for the de-stack to be possible at all, which is the part worth reading.
Let S be any element of the row space of H_X — an element of the stabilizer group, not necessarily a published generator — with support T, and let a ∈ T. Replace one generator of the subset summing to S by S (the span is unchanged: that generator equals S plus the rest of the subset); add S into every other X row meeting a; then apply the CNOT fan-out from a to T \ {a}, which acts on the check matrices as H_X[:, b] ^= H_X[:, a] and H_Z[:, a] ^= H_Z[:, b].
Only S still meets a, so it becomes the weight-1 stabilizer X_a and every other X row is untouched; and column a of H_Z becomes the XOR of its entries over T, which commutation forces to be 0. Qubit a is disentangled and is deleted: n → n-1, k unchanged, and the Z rows only lose an index, so their weights and support diameters cannot rise.
|S| picks the regime through the clearing step R ^= S: at |S| = 1 nothing is added anywhere, so weight, radius and distance are preserved exactly with no search (the row-space form of the weight-1 cleanup of arXiv:2504.08887 Sec. III D step 4, which boundary_engine._cleanup implements only for a *literal* weight-1 generator row); at |S| = 2 a row's weight changes by 0 or −2; at |S| ≥ 3 a row can grow.
Accepted here: |S| = 1 four times, |S| = 2 five, |S| = 3 five, |S| = 4 once, |S| = 5 once, |S| = 6 four.
The source sits on a spacing-1 square lattice with two qubits per site. This code sits on one, via (site (i,j), slot c) → (i+j, j−i+c). The site part is a 45° rotation scaled by √2; the slot separates co-sited qubits by one unit. The map is injective — a collision needs i+j = i'+j' and j−i = j'−i'+1, whose sum gives 2j = 2j'+1 — so every site carries exactly one qubit, at spacing exactly 1.
Whether it fits the single-layer radius cap of 4 is a constraint problem. A check pair at site displacement (a,b) lands at (a+b, b−a+dc) with dc = c_u − c_v ∈ {−1,0,1}, and the dependence on dc is not symmetric in its sign:
| site displacement | lands at | which dc break the cap | |---|---|---| | (±2,±2), a+b = ±4 | (±4, dc) | both dc = ±1 → the two qubits must share a slot | | (2,−2), (−2,2) | (0, ∓4+dc) | one sign only | | (2,−1), (−1,2), … | (1, −3+dc), … | one sign only |
Equalities mixed with implications is 2-SAT over one boolean per site (does this site swap its two slots), solved with the implication graph and Tarjan's SCC. For this code it is satisfiable, and the realised layout has radius exactly 4.0000, one qubit per site, minimum site spacing exactly 1.0000.
I first wrote this as a union-find with parity, treating every critical pair as an equality. That is wrong, and it declared a reduced code feasible and then produced a layout of radius 4.1231; the tooling now re-verifies every clause against the returned assignment so a solver bug reports itself instead of passing as a result.
For every reduction of this source that was allowed to use the full bilayer slack, the 2-SAT instance is unsatisfiable — 187 to 189 sites forced both ways, a proof rather than a failed search. An |S| ≥ 3 graft buys a qubit with check diameter, and check diameter is exactly what pays for a single layer. So the reduction here is capped at the source's own check diameter of 2.8284 rather than at the bilayer cap of 7.0, and it is run with the 2-SAT condition enforced after every accepted graft. That combination converges at n = 372 — and 372, not 373 or 374, is what this needed: my own codes/373-8-15.json sits in the same cell.
Fresh-seed RIS ladder: 15 at 20k → 200k → 1M → 5M → 20M trials per rung, independent seeds, both sides searched jointly. Nothing lighter than 15 appeared. The in-loop screens are a filter, not the evidence. Distance is a witness-backed upper bound — on this project a [[682,10,38]] candidate survived three fresh seeds to five million trials and then fell at twenty million, so a flat ladder is not a proof. (A MILP certification is running; if it completes I will report it, and if it finds something lighter I will say so.)
verify/validate_candidate.py passes: board_advancing: true, dominated_by: [], no duplicate and no WL-equivalent entry, cell weight-6 × local-2d-single.
Max check weight 6 throughout. Interaction radius 4.0000 on one layer, against 2.8284 on the source's two. kd²/n 4.592 → 4.839. It dominates codes/392-8-15.json and my own codes/373-8-15.json on (n, k, d, w).
The construction is @mathysrennela's codes/392-8-15.json. The reduction, the layout and the 2-SAT argument are mine; the single-layer sublattice map is the one I introduced with [[450,8,16]] (#912).