Objective: at 3 syndrome rounds under the board's depolarizing recipe at p = 0.002, interleaved schedule, both memories, a logical error rate per round below that of k copies of the rotated surface code at equal or greater physical qubit count (data plus ancilla), with separated 95 percent Poisson intervals. The target board cell is weight-8 x unrestricted (no layout). This code comes from part 1, weight-6/7 two-block, 300 < n <= 420, k >= 12 of the third LER-objective search, the ground the first two searches (weight-6 two-block codes at n <= 300 with k >= 8; the existing board pool and generated weight-8 lifted-product, pair-partition, and non-abelian two-block codes at n <= 300) did not cover. The baseline's distance is set by the qubit budget (k16-d5: 16 copies of d = 5, 784 qubits against the candidate's 680), and the decoder is the same BP+OSD configuration for both.
Stage 1 admitted 579 candidates from part 1, weight-6/7 two-block, 300 < n <= 420, k >= 12, 707 candidates from part 2, coprime bivariate bicycle, weight 6/8, k >= 8, 24 candidates from part 3, hypergraph product, proven distance (1,310 generator hits with the required k, connected, and d >= 10 at 300 RIS trials; 0 repeats within the search, 0 already candidates of the first two searches, 0 exact board duplicates). Funnel: RIS at 2,000 trials (keep d >= 10; 271 of 271), RIS at 20,000 trials (247 kept), WL dedup against the board (20 dropped), 3-round circuit with the tier checks (257 built), GPU decode of 10,000 shots per basis at p = 0.002 against the matched surface baseline (8 of 13 beat it in both bases), the decoder-based d_circ estimate (8 kept, 0 more than 2 below d), then up to 100,000 shots per basis at p = 0.001 and 0.002 (fitted to a 90-minute GPU budget at the measured throughput) and a 300,000,000-trial ris_gpu pass per side.
Cyclic generalized-bicycle code over Z_170 (n = 2m = 340): a(x) = 1 + x^15 + x^84, b(x) = 1 + x^12 + x^133 + x^164; H_X = [circ(a)|circ(b)], H_Z = [circ(b)^T|circ(a)^T], where circ(v) has first row v and row i = v rolled by i (research/cyclic_gb.py build_cyclic_gb(170, a, b) with a, b the 0/1 first rows). k = 2 deg gcd(a, b, x^170 + 1).
Schedule: interleaved; two-block interleaved (A: 3 terms, B: 4 terms), 8 CX layers per round; terms by bb_decompose translations on Z_1 x Z_170; X-check term slots [6, 1, 7, 2, 3, 5, 4], Z-check term slots [0, 6, 1, 3, 4, 2, 5] over terms A_0..A_2, B_0..B_3; RIS screen at 2 rounds: {'Z': 218, 'X': 213}
RIS ladder for the submitted code (lightest logical found, both sides):
| RIS trials per side | seed | lightest logical found | |---|---|---| | 2,000 | 1164607803 | 22 | | 20,000 | 588050700 | 22 | | 300,000,000 (GPU, verify/ris_gpu.py) | 1593625337 | X 22, Z 22 |
Claim: d <= 22, a witness-backed upper bound.
Decoder-based circuit fault-distance estimate at 3 rounds (a stacked BP+OSD search on the committed DEM, GPU, 2 seeds; our decoder-based estimator, not part of this repo): 64 (per basis {'Z': 72, 'X': 64}); an upper bound on d_circ.
Logical error rate per round at 3 rounds (exact 95 percent Poisson intervals on the failure count; the surface baseline is 16 copies of the distance-5 rotated surface code, 784 physical qubits, geometric interleaved schedule, same noise recipe and decoder):
| p | basis | candidate | surface baseline | ratio | separated | |---|---|---|---|---|---| | 0.002 | Z | 8.00e-05 [5.13e-05, 1.19e-04] (24/100000) | 5.29e-03 [5.02e-03, 5.56e-03] (1569/100000) | 0.015 | yes | | 0.002 | X | 1.27e-04 [8.97e-05, 1.74e-04] (38/100000) | 5.79e-03 [5.51e-03, 6.07e-03] (1716/100000) | 0.022 | yes | | 0.001 | Z | 0 [0, 1.23e-05] (0/100000) | 6.88e-04 [5.97e-04, 7.88e-04] (206/100000) | 0.000 | yes | | 0.001 | X | 0 [0, 1.23e-05] (0/100000) | 7.28e-04 [6.34e-04, 8.31e-04] (218/100000) | 0.000 | yes |
Stage-4 screen (10,000 shots per basis at p = 0.002): Z 5 vs 144, X 4 vs 153 failures.
Objective at p = 0.002: met (both bases separated: True).
Gate verdict (verify/validate_candidate.py, refute off): passed = True, labels: advances the weight-8 x unrestricted board; literature novelty UNVERIFIED. Duplicate check: exact None, WL None. Board cell ['weight-8', 'unrestricted']: board_advancing = True.
Of the candidates that reached the GPU screen, 5 did not beat their surface baseline in both bases at 10,000 shots; 0 had a d_circ estimate more than 2 below d; 0 produced no deterministic schedule or failed a tier check; 0 fell below d = 10 in the RIS ladder. Nearest stage-4 misses (candidate failures vs baseline failures, Z and X):
Claude (Claude Code, model Fable 5.1) as the agent in an unattended search: generation and circuits on the laptop, GPU decoding on RunPod A40 pods. Repo tooling: research/kit/bb.py, research/cyclic_gb.py, research/kit/group_algebra.py, and research/kit/products.py (constructions), research/kit/css.py and verify/gf2_fast.cpp (k and the RIS distance screen), verify/qldpc_verify.py fingerprint and WL signature (dedup against the board), the schedule chain of PR 1859's interleaved two-block builder (research/circuit_autogen.py), a SAT coloring, and the board's sequential builder with verify/circuit_verify.py's tier checks, our decoder-based d_circ estimator (not part of this repo), ler-pilot's rotated-surface matched baseline (pilot.py, build_interleaved.py), CUDA-Q QEC nv-qldpc-decoder (BP min-sum 30 iterations, scale 0.625, OSD combination sweep order 10, the configuration validated against bposd-cs-10), verify/ris_gpu.py on the A40 for the deep rung, verify/sat_certify.py for the exact check of part-3 distances, and verify/validate_candidate.py for the verdict.
import sys; sys.path.insert(0, "research") from cyclic_gb import build_cyclic_gb m = 170; a = [0] * m; b = [0] * m for e in [0, 15, 84]: a[e] = 1 for e in [0, 12, 133, 164]: b[e] = 1 HX, HZ = build_cyclic_gb(m, a, b) # [[340,16]]
Circuits: PR 1859's interleaved two-block builder (research/circuit_autogen.py) at 3 rounds, 8.0 CX layers per round, with the term slots listed under Construction. Decoding: strip the noise, reapply circuit_tools.apply_noise at p, derive the DEM, sample with the stim seed recorded in the receipts, decode with nv-qldpc-decoder as configured above; a failure is any logical observable decoded wrong.