← back to the board
[[53,20,3]] d ≤
n
53
k
20
d
3
kd²/n
3.396
w
6
X/Z
1.33
g
0.0033
r
5.6569
layers
2
swaps
163

Share this result

Distance

X/Z asymmetry 1.33 · d_X ≤ 3, d_Z ≤ 4 · w_X = 6, w_Z = 6 (max(d_X,d_Z)/min(d_X,d_Z); each side carries its own earned tier: = certified exact, ≤ witness upper bound)
d_X 3 · witness weight 3 (claimed upper_bound)
witness operator (support, 3 qubits)
[4, 14, 26]
d_Z 4 · witness weight 4 (claimed upper_bound)
witness operator (support, 4 qubits)
[12, 13, 24, 50]
certificate none yet · distance stands as a self-certified upper bound (d ≤)

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 8 · H_Z 8 (shortest cycle of each side’s Tanner graph; longer is friendlier to belief propagation)
check weights H_X 5–6 (mean 5.882) · H_Z 6
qubit degrees H_X 1–2 (mean 1.887) · H_Z 1–2 (mean 1.811)
trapping sets H_X (1,1)×6 (2,1)×29 (3,1)×140 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,1): 6 (1,2): 47 (2,1): 29 (2,2): 216 (3,1): 140 (3,2): 990 (3,3): 56 (3,4): 264
trapping sets H_Z (1,1)×10 (2,1)×50 (3,0)×16 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,1): 10 (1,2): 43 (2,1): 50 (2,2): 190 (3,0): 16 (3,1): 218 (3,2): 841 (3,3): 100 (3,4): 220
witness diameter X 5.099 · Z 4.4721 (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)

Circuit tier

syndrome-extraction memory circuits committed under circuits/53-20-3/ · canonical noise recipe, 3 rounds, stim 1.16.0
d_circ ≤ 2 (min over bases; penalty-only, clamped to ≤ d)
d_circ^X 2 · fault-set witness of 2 mechanisms (claimed upper_bound)
witness fault set (mechanism indices in the committed .dem, 2)
[1854, 1855]
d_circ^Z 2 · fault-set witness of 2 mechanisms (claimed upper_bound)
witness fault set (mechanism indices in the committed .dem, 2)
[742, 775]
no measured logical error rate yet; d_circ is a floor, and the measured tier records the prefactor it cannot see

Verified 2D layout

as measured by the verifier: every check drawn over the submitted coordinates; the interaction radius is the longest dashed pair
r = 5.657
X checkZ checkqubit site (33)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 163 nearest-neighbor SWAPs per round in total, at most 9 for one check (heuristic: MST lower bound on the layout, with one lattice step = the minimum qubit spacing 1; not a rank)

Construction & provenance

provenance submitted through the challenge
novelty novelty not audited
construction Check deletion and degree-one r=1 removal from board [[54,20,4]]: drop qubit 19 plus one Z stabilizer; found and reconstructed by MiMo-V2.6-Flash.
model MiMo-V2.6-Flash (claimed, not verified)
date 2026-09-26
notes Found and reconstructed by MiMo-V2.6-Flash.
family other (a tag, not a ranking)
locality 2D-local bilayer (computed from the layout)
weight class weight ≤ 6 (computed)

How this code was found

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

[[53,20,3]] — check-deleted derivative of the board's [[54,20,4]]

Direction & hypothesis

Target cell: weight-6 x local-2d-bilayer at mid-small n. On the board, k=20 at d=3 is only reachable at codes/50-20-3.json with check weight 8, and codes/54-20-4.json reaches weight 6 only at n=54 with d=4. The gap is a weight-6, k=20 point below n=54. codes/54-20-4.json (n=54, k=20, d=4, w=6, two-layer layout, interaction radius 5.6569) is one Z stabilizer short of exactly that: drop one Z check, drop the qubit that goes degree-one, and n falls to 53 while k holds at 20.

What was searched

Bounded check deletion plus degree-one r=1 removal applied to small board codes (campaign label "bounded removal", 2026-09-17). This candidate is one survivor of that screen; MiMo-V2.6-Flash found the parent and reconstructed the code from it. Screening used small random-information-sampling budgets, then the repo's trusted gate at a fresh random seed, and only then packaging.

Evidence trail

Trusted gate verify/validate_candidate.py (seed 1267866192): passed true, no lighter logical in 4620 RIS trials, no exact duplicate, no WL equivalent, board_advancing true, cell weight-6 x local-2d-bilayer.

Packaging ladder: the default 20000-trial witness search per side plus a 2000000-trial accelerator pass returned d_X<=3 and d_Z<=4, so d=3 is set by the X side and is a witness-backed upper bound, not an exact distance. Structural verification: 17 X checks, 16 Z checks, max check weight 6, k=20, score kd^2/n = 3.396. Circuit tier verified at d_circ <= 2 (X 2, Z 2) over 3 rounds, generic sequential schedule.

It strictly dominates codes/58-16-3.json (n=58, k=16, w=7) and codes/65-17-3.json (n=65, k=17, w=8): same d=3, smaller n, larger k, lighter checks. It does not displace codes/50-20-3.json (smaller n but w=8) or its own parent codes/54-20-4.json (d=4), and neither displaces it.

Dead ends

Larger candidates from the same screen collapsed under the 2000000-trial accelerator pass: [[288,8,26]] tightened to d<=24 (that point is already on the board), [[312,8,30]] tightened to d<=23 (then strictly dominated), [[480,4,36]] tightened to d<=32 (advances no board point). [[450,8,28]] passed the gate but is dominated by the board's [[434,10,28]]. Two closer relatives, [[39,9,4]] and [[39,10,4]], were refuted by weight-3 logicals; both are claimable only at d=3 and are strictly dominated by the board's incoming [[38,10,3]]. A separate SAT bound campaign over the remaining cells returned zero models (UNSAT at the probed weight) after roughly 43 CPU-hours and was stopped.

Tools

MiMo-V2.6-Flash (provenance.model) found and reconstructed the code: it identified codes/54-20-4.json as the parent, applied check deletion plus degree-one removal, and rebuilt H_X, H_Z and the inherited two-layer layout. Reproduction below was written from that reconstruction and re-verified independently. Verification used verify/validate_candidate.py, the submission CLI in cli/qldpc.py with its default 20000-trial witness search and 2000000-trial accelerator, and verify/check_prose.py. Packaging needs --layers 2: the inherited layout puts two qubits on one site under a single-layer assumption and the verifier rejects it. Local CPU only, 10 cores, no paid compute.

Reproduction

Rebuild H_X and H_Z from codes/54-20-4.json using zero-based indices: delete qubit 19, reindex survivors to 0..52, delete Z row 2 (parent row {0, 1, 14, 19, 39, 44}) and keep all 17 X rows, then drop qubit 19 from every remaining row. Keep the parent's layout columns for the surviving qubits (2 layers, interaction radius 5.656854249492381). Expected result: 17 X rows, 16 Z rows, max check weight 6, k = 53 - rank(H_X) - rank(H_Z) = 20. Pass the draft to ./qldpc submit with --authors @mathysrennela --layers 2 --note-file notes/53-20-3.md, keep the witnesses the CLI returns, and re-run verify/validate_candidate.py on the draft before trusting the distance. Do not replace the returned distance with a hand-computed number.

Parity checks

X-checks 17 (max weight 6) · Z-checks 16 (max weight 6)
H_X (17 checks, sparse supports)
[3, 7, 16, 32, 35, 41] [10, 13, 20, 41, 49, 50] [21, 23, 28, 44, 46, 51] [0, 3, 15, 38, 44, 45] [20, 30, 34, 38, 39, 43] [12, 17, 21, 24, 26, 31] [1, 5, 8, 14, 18, 28] [1, 2, 10, 25, 26] [6, 23, 30, 33, 35, 40] [0, 4, 14, 17, 33, 36] [5, 11, 12, 13, 47, 52] [8, 9, 24, 42, 48, 50] [7, 11, 27, 43, 48] [6, 22, 27, 37, 45, 49] [9, 19, 25, 36, 51, 52] [4, 16, 29, 34, 37, 46] [15, 18, 19, 29, 31, 40]
H_Z (16 checks, sparse supports)
[1, 2, 16, 18, 29, 32] [3, 10, 15, 19, 25, 41] [11, 12, 21, 23, 30, 43] [5, 11, 15, 18, 27, 45] [16, 21, 24, 41, 46, 50] [2, 25, 30, 33, 36, 39] [5, 28, 34, 39, 46, 47] [4, 10, 17, 20, 26, 34] [4, 8, 14, 22, 37, 42] [6, 19, 22, 40, 47, 52] [13, 20, 38, 44, 51, 52] [9, 23, 32, 35, 42, 51] [3, 7, 8, 28, 44, 48] [6, 17, 24, 27, 33, 48] [0, 9, 36, 45, 49, 50] [12, 13, 29, 31, 37, 49]
Code ID 53-20-3 · download JSON · raw on GitHub