← back to the board
[[150,30,10]] d =
n
150
k
30
d
10
kd²/n
20.0
w
9
X/Z
1
g
0.0083
r
7.0
layers
2
swaps
1002

Share this result

Distance

X/Z asymmetry 1 · d_X = 10, d_Z = 10 · w_X = 9, w_Z = 9 (max(d_X,d_Z)/min(d_X,d_Z); each side carries its own earned tier: = certified exact, ≤ witness upper bound)
d_X 10 · witness weight 10 (claimed exact)
witness operator (support, 10 qubits)
[66, 74, 78, 81, 82, 88, 101, 102, 112, 118]
d_Z 10 · witness weight 10 (claimed exact)
witness operator (support, 10 qubits)
[24, 60, 61, 63, 66, 73, 75, 82, 84, 85]
certificate exact, d = 10 · CryptoMiniSat 5.14 SAT
X: no logical < 10 exists (CryptoMiniSat, XOR + sequential-counter cardinality); Z: no logical < 10 exists (CryptoMiniSat, XOR + sequential-counter cardinality)

Diagnostics

computed by the verifier from the parity checks, the layout, and the stored witnesses; shown as evidence, not used for ranking
girth H_X 4 · H_Z 4 (shortest cycle of each side’s Tanner graph; longer is friendlier to belief propagation)
check weights H_X 9 · H_Z 9
qubit degrees H_X 3–6 (mean 3.6) · H_Z 3–6 (mean 3.6)
trapping sets H_X (1,3)×120 (2,2)×30 (3,1)×60 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,3): 120 (1,6): 30 (2,2): 30 (2,4): 840 (2,5): 75 (2,7): 930 (2,10): 180 (3,1): 60 (3,3): 480 (3,4): 55 (3,5): 7140 (3,6): 2815 (3,7): 1015 (3,8): 19330 (3,9): 1570 (3,10): 1850 (3,11): 9375 (3,12): 270 (3,13): 790 (3,14): 990 (3,16): 60
trapping sets H_Z (1,3)×120 (2,4)×900 (3,3)×540 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,3): 120 (1,6): 30 (2,4): 900 (2,5): 75 (2,7): 930 (2,8): 15 (2,10): 150 (3,3): 540 (3,4): 85 (3,5): 7380 (3,6): 2555 (3,7): 1375 (3,8): 20000 (3,9): 1810 (3,10): 2030 (3,11): 8240 (3,12): 210 (3,13): 650 (3,14): 930 (3,16): 30
witness diameter X 10.2956 · Z 7.0711 (Euclidean support diameter of the stored distance witnesses in the layout; an upper bound on the exhibited logicals’ spread, not a minimum over all logicals)

Verified 2D layout

as measured by the verifier: every check drawn over the submitted coordinates; the interaction radius is the longest dashed pair
layout contributed by @MathysRennela · Hinge-cost simulated annealing over integer/half/quarter-integer lattice sites (penalty 1e6 x sum of squared cap violations at radius 7.0 + squared diameters; min site spacing 1.0, capacity 2/site), 12 jobs seeds 0-3; research/local2d/hinge_anneal.py · 2026-09-25
r = 7
X checkZ checkqubit site (81)2 qubits stacked (2 layers)dashed: the pair setting the interaction radiushover a check to isolate its qubits; click to pin — repeated clicks cycle through overlapping checks; click empty space to release
routing cost 1002 nearest-neighbor SWAPs per round in total, at most 13 for one check (heuristic: MST lower bound on the layout, with one lattice step = the minimum qubit spacing 1; not a rank)

Construction & provenance

authors @yifanhong
provenance submitted through the challenge
novelty known parameter set; see provenance notes
construction Balanced/lifted product over Z_15 semidirect-product_11 Z_2, with weight-3 group-ring entries a=1+x11+x12y, b=1+y+x6y, c=1+x3+x11, d=1+x6+x14y; reproduced from arXiv:2607.27644v1.
model GPT 5.6 Sol (claimed, not verified)
date 2026-08-02
notes Published in Table 8 (Appendix A) of arXiv:2607.27644v1; fresh QDistEvol witnesses reproduced for this contribution. Layout added 2026-09-25 by @MathysRennela: bilayer coordinates with interaction radius 7.0 (research/local2d/hinge_anneal.py).
family balanced product (a tag, not a ranking)
locality 2D-local bilayer (computed from the layout)
weight class weight > 8 (computed)

How this code was found

the research note submitted with this code · raw markdown · all notes

[[150,30,10]] ZSZ-LP balanced-product code

Primary reference: arXiv:2607.27644v1, Table 8 (Appendix A).

Direction & hypothesis

The paper targets constant-rate, weight-9 qLDPC codes at block lengths below 1000. It builds a balanced product from two rate-1/2 classical ZSZ-2BGA codes over a non-abelian semidirect-product group. Non-abelian lifts avoid the constant-distance obstruction proved in the paper for abelian group algebras.

What was searched

This is a reproduction of a published candidate, not a new parameter search. The paper's search pipeline was:

  • Group selection: fix a metacyclic group ZSZ(ℓ₁,ℓ₂,q) with q^ℓ₂ ≡ 1 (mod ℓ₁). Favor ℓ₁ ≫ ℓ₂ so the commutator-subgroup distance bound is not too small, and avoid group actions rich in low-order elements.
  • Classical seed generation: independently sample weight-3 group-algebra pairs (a,b) and (c,d), defining the rate-1/2 classical seed checks H_left=(L[a] L[b]) and H_right=(R[c] R[d]).
  • Classical filtering: apply the cheap filters first. Compute each seed's Tanner girth, retain seeds meeting the chosen girth-6 or girth-8 threshold, then estimate classical distance with QDistEvol and retain seeds meeting the distance threshold. The search sometimes relaxed girth when the next-girth ensemble had substantially worse distance.
  • Balanced product: form pairwise products of surviving left and right seeds. Use different pairs on the two sides because the symmetric choice a=c and b=d forces quantum Tanner girth 4.
  • Quantum filtering: filter by both X- and Z-Tanner girth and count minimum-length cycles. Order survivors by short-cycle count, then run progressively deeper QDistEvol X/Z distance searches until candidates clear the target.
  • Final confirmation: recheck finalists with 1,000,000 QDistEvol iterations distributed over multiple CPUs, or use the pySATDist SAT solver for exact distance.

The Appendix A candidate comes from the broader efficiency–length ensemble. That sweep enumerated ZSZ groups of order 12 through 200 (code lengths 60 through 1000), exhaustively considered presentations for n<100, omitted the girth filters to favor distance, ranked the classical seeds by estimated distance, and formed every balanced product of the best 16 left and best 16 right seeds—at most 256 products per length. Quantum distances were screened with 20,000 QDistEvol iterations and near-frontier points were independently refined with at least 100,000 iterations.

Evidence trail

The parity checks were regenerated from the four published trinomials. GF(2) ranks reproduce k=30, and H_X H_Z^T has zero nonzero entries. Fresh QDistEvol runs found and independently checked a weight-10 X logical after 5000 iterations (seed 3617813910) and a weight-10 Z logical after 5000 iterations (seed 4129071886). Each witness has zero commuting-check syndrome and increases the corresponding stabilizer rank by one. The submitted distance status is exact (pySATDist in the paper); exact claims remain upper bounds on the public board until challenge maintainers run server certification.

Dead ends

The reference reports three structural failure modes used to prune the search: abelian lifts have constant-distance logicals, choosing identical left/right trinomials forces Tanner girth 4, and small commutator subgroups bound constituent distance. The broad search also found that aggressive short-cycle minimization generally reduced distance, motivating separate efficiency-length and cycle-length ensembles.

Tools

Model/harness: GPT 5.6 Sol via OpenAI Codex. The reproduction used the paper's Python ZSZ regular-representation/lifted-product implementation, binar for independent GF(2) ranks, and codedistance QDistEvol for fresh witnesses. The audit and packaging ran locally in the paper repository and a clean checkout of the qLDPC Challenge verifier.

Reproduction

Use ZSZ parameters (ell1, ell2, q)=(15, 2, 11) and group relation yx=x^11y. Set a=1+x^11+x^12y, b=1+y+x^6y, c=1+x^3+x^11, d=1+x^6+x^14y. Form H_left=(L[a] L[b]) and H_right=(R[c] R[d]), then use the five-block balanced-product matrices in arXiv:2607.27644v1. The submitted JSON contains the resulting sparse checks and logical witnesses.

Independently rediscovered as a mitten code

The mitten codes of arXiv:2607.28795 (Bhardwaj et al., Table I) include a [[150,30,10]] weight-9 instance built as a lifted product over C5 x S3. The challenge verifier's Weisfeiler-Leman dedup gate flags it as equivalent to this entry, so the two papers, published within days of each other in July 2026, arrived at the same code up to relabeling.

The reason is that the two groups are the same. Writing Z15 = Z3 x Z5 by CRT, the action x -> 11x of this entry's ZSZ(15,2,11) splits across the factors: 11 = -1 (mod 3) inverts the 3-part, and 11 = 1 (mod 5) fixes the 5-part (with 11^2 = 1 mod 15, so the order-2 action is valid). Hence

Z15 x|_11 Z2 = (Z3 x|_-1 Z2) x Z5 = S3 x C5,

which is the mitten group. Independently: both tables have order 30, are non-abelian, and share the element-order profile (1:1, 2:3, 3:2, 5:4, 10:12, 15:8); the three involutions alone identify C5 x S3 among the four groups of order 30 (D30 has 15, C3 x D10 has 5, C30 is abelian).

So the balanced/lifted product over ZSZ(15,2,11) and the mitten lifted product over C5 x S3 are the same construction in different notation. This entry keeps priority; the mitten seeding of arXiv:2607.28795 therefore contributes five codes to the board rather than six (issue #377).

Parity checks

X-checks 60 (max weight 9) · Z-checks 60 (max weight 9)
H_X (60 checks, sparse supports)
[0, 7, 8, 60, 61, 79, 120, 126, 142] [1, 6, 9, 60, 61, 78, 121, 123, 127] [2, 10, 29, 62, 71, 83, 122, 128, 144] [3, 11, 28, 63, 70, 82, 123, 125, 129] [4, 12, 21, 63, 64, 75, 124, 130, 146] [5, 13, 20, 62, 65, 74, 125, 127, 131] [6, 13, 14, 66, 67, 85, 126, 132, 148] [7, 12, 15, 66, 67, 84, 127, 129, 133] [5, 8, 16, 68, 77, 89, 120, 128, 134] [4, 9, 17, 69, 76, 88, 129, 131, 135] [10, 18, 27, 69, 70, 81, 122, 130, 136] [11, 19, 26, 68, 71, 80, 131, 133, 137] [12, 19, 20, 61, 72, 73, 124, 132, 138] [13, 18, 21, 60, 72, 73, 133, 135, 139] [11, 14, 22, 65, 74, 83, 126, 134, 140] [10, 15, 23, 64, 75, 82, 135, 137, 141] [3, 16, 24, 75, 76, 87, 128, 136, 142] [2, 17, 25, 74, 77, 86, 137, 139, 143] [18, 25, 26, 67, 78, 79, 130, 138, 144] [19, 24, 27, 66, 78, 79, 139, 141, 145] [17, 20, 28, 71, 80, 89, 132, 140, 146] [16, 21, 29, 70, 81, 88, 141, 143, 147] [0, 9, 22, 63, 81, 82, 134, 142, 148] [1, 8, 23, 62, 80, 83, 143, 145, 149] [1, 2, 24, 73, 84, 85, 120, 136, 144] [0, 3, 25, 72, 84, 85, 121, 145, 147] [4, 23, 26, 65, 77, 86, 122, 138, 146] [5, 22, 27, 64, 76, 87, 123, 147, 149] [6, 15, 28, 69, 87, 88, 124, 140, 148] [7, 14, 29, 68, 86, 89, 121, 125, 149] [30, 37, 38, 90, 91, 109, 120, 132, 149] [31, 36, 39, 90, 91, 108, 121, 128, 133] [32, 40, 59, 92, 101, 113, 121, 122, 134] [33, 41, 58, 93, 100, 112, 123, 130, 135] [34, 42, 51, 93, 94, 105, 123, 124, 136] [35, 43, 50, 92, 95, 104, 125, 132, 137] [36, 43, 44, 96, 97, 115, 125, 126, 138] [37, 42, 45, 96, 97, 114, 127, 134, 139] [35, 38, 46, 98, 107, 119, 127, 128, 140] [34, 39, 47, 99, 106, 118, 129, 136, 141] [40, 48, 57, 99, 100, 111, 129, 130, 142] [41, 49, 56, 98, 101, 110, 131, 138, 143] [42, 49, 50, 91, 102, 103, 131, 132, 144] [43, 48, 51, 90, 102, 103, 133, 140, 145] [41, 44, 52, 95, 104, 113, 133, 134, 146] [40, 45, 53, 94, 105, 112, 135, 142, 147] [33, 46, 54, 105, 106, 117, 135, 136, 148] [32, 47, 55, 104, 107, 116, 137, 144, 149] [48, 55, 56, 97, 108, 109, 120, 137, 138] [49, 54, 57, 96, 108, 109, 121, 139, 146] [47, 50, 58, 101, 110, 119, 122, 139, 140] [46, 51, 59, 100, 111, 118, 123, 141, 148] [30, 39, 52, 93, 111, 112, 124, 141, 142] [31, 38, 53, 92, 110, 113, 120, 125, 143] [31, 32, 54, 103, 114, 115, 126, 143, 144] [30, 33, 55, 102, 114, 115, 122, 127, 145] [34, 53, 56, 95, 107, 116, 128, 145, 146] [35, 52, 57, 94, 106, 117, 124, 129, 147] [36, 45, 58, 99, 117, 118, 130, 147, 148] [37, 44, 59, 98, 116, 119, 126, 131, 149]
H_Z (60 checks, sparse supports)
[0, 8, 24, 30, 48, 53, 120, 142, 145] [1, 25, 29, 31, 32, 49, 121, 143, 144] [2, 10, 26, 32, 50, 55, 122, 137, 144] [1, 3, 27, 33, 34, 51, 123, 136, 145] [4, 12, 28, 34, 52, 57, 124, 129, 146] [3, 5, 29, 35, 36, 53, 125, 128, 147] [0, 6, 14, 36, 54, 59, 121, 126, 148] [1, 5, 7, 37, 38, 55, 120, 127, 149] [2, 8, 16, 31, 38, 56, 120, 128, 143] [3, 7, 9, 39, 40, 57, 121, 129, 142] [4, 10, 18, 33, 40, 58, 122, 130, 135] [5, 9, 11, 41, 42, 59, 123, 131, 134] [6, 12, 20, 30, 35, 42, 124, 127, 132] [7, 11, 13, 31, 43, 44, 125, 126, 133] [8, 14, 22, 32, 37, 44, 126, 134, 149] [9, 13, 15, 33, 45, 46, 127, 135, 148] [10, 16, 24, 34, 39, 46, 128, 136, 141] [11, 15, 17, 35, 47, 48, 129, 137, 140] [12, 18, 26, 36, 41, 48, 130, 133, 138] [13, 17, 19, 37, 49, 50, 131, 132, 139] [14, 20, 28, 38, 43, 50, 125, 132, 140] [15, 19, 21, 39, 51, 52, 124, 133, 141] [0, 16, 22, 40, 45, 52, 134, 142, 147] [17, 21, 23, 41, 53, 54, 135, 143, 146] [2, 18, 24, 42, 47, 54, 136, 139, 144] [19, 23, 25, 43, 55, 56, 137, 138, 145] [4, 20, 26, 44, 49, 56, 131, 138, 146] [21, 25, 27, 45, 57, 58, 130, 139, 147] [6, 22, 28, 46, 51, 58, 123, 140, 148] [23, 27, 29, 30, 47, 59, 122, 141, 149] [60, 68, 84, 90, 108, 113, 120, 121, 133] [61, 85, 89, 91, 92, 109, 120, 121, 132] [62, 70, 86, 92, 110, 115, 122, 125, 143] [61, 63, 87, 93, 94, 111, 123, 124, 142] [64, 72, 88, 94, 112, 117, 124, 135, 147] [63, 65, 89, 95, 96, 113, 125, 134, 146] [60, 66, 74, 96, 114, 119, 126, 127, 139] [61, 65, 67, 97, 98, 115, 126, 127, 138] [62, 68, 76, 91, 98, 116, 128, 131, 149] [63, 67, 69, 99, 100, 117, 129, 130, 148] [64, 70, 78, 93, 100, 118, 123, 130, 141] [65, 69, 71, 101, 102, 119, 122, 131, 140] [66, 72, 80, 90, 95, 102, 132, 133, 145] [67, 71, 73, 91, 103, 104, 132, 133, 144] [68, 74, 82, 92, 97, 104, 125, 134, 137] [69, 73, 75, 93, 105, 106, 124, 135, 136] [70, 76, 84, 94, 99, 106, 129, 136, 147] [71, 75, 77, 95, 107, 108, 128, 137, 146] [72, 78, 86, 96, 101, 108, 121, 138, 139] [73, 77, 79, 97, 109, 110, 120, 138, 139] [74, 80, 88, 98, 103, 110, 131, 140, 143] [75, 79, 81, 99, 111, 112, 130, 141, 142] [60, 76, 82, 100, 105, 112, 123, 135, 142] [77, 81, 83, 101, 113, 114, 122, 134, 143] [62, 78, 84, 102, 107, 114, 127, 144, 145] [79, 83, 85, 103, 115, 116, 126, 144, 145] [64, 80, 86, 104, 109, 116, 137, 146, 149] [81, 85, 87, 105, 117, 118, 136, 147, 148] [66, 82, 88, 106, 111, 118, 129, 141, 148] [83, 87, 89, 90, 107, 119, 128, 140, 149]
Code ID 150-30-10 · download JSON · raw on GitHub