← back to the board
[[64,14,4]] d =
n
64
k
14
d
4
kd²/n
3.5
w
8
X/Z
1
g
0.0547
r
4.0
layers
1
swaps
79

Share this result

Distance

X/Z asymmetry 1 · d_X = 4, d_Z = 4 · w_X = 8, w_Z = 8 (max(d_X,d_Z)/min(d_X,d_Z); each side carries its own earned tier: = certified exact, ≤ witness upper bound)
d_X 4 · witness weight 4 (claimed upper_bound)
witness operator (support, 4 qubits)
[6, 7, 13, 14]
d_Z 4 · witness weight 4 (claimed upper_bound)
witness operator (support, 4 qubits)
[6, 15, 29, 39]
certificate exact, d = 4 · scipy/HiGHS cutoff IP
X: no logical < 4 exists; Z: no logical < 4 exists

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 4–8 (mean 6.12) · H_Z 4–8 (mean 6.28)
qubit degrees H_X 1–5 (mean 2.391) · H_Z 1–5 (mean 2.453)
trapping sets H_X (1,1)×9 (2,1)×30 (3,1)×149 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,1): 9 (1,2): 28 (1,3): 21 (1,4): 5 (1,5): 1 (2,1): 30 (2,2): 92 (2,3): 128 (2,4): 75 (2,5): 30 (2,6): 6 (3,1): 149 (3,2): 367 (3,3): 611 (3,4): 699 (3,5): 518 (3,6): 246 (3,7): 91 (3,8): 23 (3,9): 3
trapping sets H_Z (1,1)×10 (2,1)×31 (3,1)×122 (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): 27 (1,3): 18 (1,4): 6 (1,5): 3 (2,1): 31 (2,2): 83 (2,3): 125 (2,4): 73 (2,5): 35 (2,6): 15 (3,1): 122 (3,2): 348 (3,3): 602 (3,4): 684 (3,5): 546 (3,6): 311 (3,7): 103 (3,8): 32 (3,9): 4
witness diameter X 2.2361 · Z 4.1231 (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/64-14-4/ · canonical noise recipe, 4 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)
[3238, 3239]
d_circ^Z 2 · fault-set witness of 2 mechanisms (claimed upper_bound)
witness fault set (mechanism indices in the committed .dem, 2)
[127, 128]
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 = 4
X checkZ checkqubit site (64)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 79 nearest-neighbor SWAPs per round in total, at most 5 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 @vprusso
provenance submitted through the challenge
novelty novelty not audited
construction SAT search (research/local_sat.py build_local_cnf, n_side=8, G=25, max_weight=8, t=3 detection, anchor radius 2.0, shared_t3 encoding, lazy exact detection, CaDiCaL 1.9.5 via python-sat) over 2D-local CSS codes on an 8x8 grid; each check is anchored at a grid site and acts within radius 2.0 of it, so the interaction radius is at most 4.0 by construction. Model index 0 of the enumeration; distance is a witness-backed upper bound.
model Claude Claude Fable 5.1 (Claude Code) (claimed, not verified)
date 2026-10-04
family local-sat-css (a tag, not a ranking)
locality 2D-local single (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

[[64,14,4]]: 2D-local weight-8 CSS code with d=4 from a t=3 SAT search on an 8x8 grid

Direction & hypothesis

Cell: weight-8 x local-2d-single. Issue #2703 lists 8x8 weight-8 t=3 as a rung the 2D-local SAT campaign (issue #2024) never entered, pending an encoding change, since a model the post-check rejects there costs a full solve. For a full-rank model k = n - 2G, and the weight-6 cell at this grid has k = 12 from G = 26 (codes/64-12-4.json), so G = 25 at weight 8 asks for k >= 14, one more than the cell's [[49,13,4]] at n = 49.

What was searched

research/local_sat.py `build_local_cnf(8, 25, 8, 3, 2.0, shared_t3=True, nonempty_rows=True)`: 8x8 grid, 25 checks per side anchored within radius 2.0 (interaction radius at most 4.0 by construction), row weight at most 8 and at least 1, CSS commutation, nonzero syndrome for every Pauli error of weight at most 3. Driven by research/sat_rungs.py with the lazy exact detection of enumerate_local_sat_codes(exact_on_reject=True): a model the post-check rejects adds the exact detection constraint for the error it missed rather than a blocking clause. No model was rejected; the first model returned passed the post-check with k = 14 and d_ub = 4 and is the code here. CaDiCaL 1.9.5 via python-sat, conflict cap 20,000,000 per solve, 3 h wall cap; first solve SAT after 4,780 s, peak RSS 19.4 GB with the streamed build.

Evidence trail

Detection of every weight <= 3 error gives d >= 4; an exhaustive enumeration after staging of every X-type and every Z-type error of weight at most 3 (43,744 supports per side, plain GF(2) column sums) found none with zero syndrome, so d >= 4 holds independently of the SAT encoding. research/kit/submit.make_submission (20,000 RIS trials per side) embedded a weight-4 X-logical on qubits 6, 7, 13, 14 and a weight-4 Z-logical on qubits 6, 15, 29, 39, so d = 4 exactly; the file carries confidence upper_bound as the kit labels it. verify/validate_candidate.py: verifier ok (weight class weight-8, locality class local-2d-single, interaction radius 4.0), no lighter logical in 5,060 RIS trials, no exact or WL-equivalent board duplicate, label "advances the weight-8 x local-2d-single board". Check weights: X-rows four of weight 4, five of 5, five of 6, six of 7, five of 8; Z-rows five of weight 4, one of 5, seven of 6, six of 7, six of 8. kd^2/n = 3.5. In its cell it trades n for k against codes/49-13-4.json and both stay on the frontier; it has the same n and d as the weight-6 codes/64-12-4.json with two more logical qubits, at check weight 8 rather than 6.

Dead ends

The counting bound G >= 2n/(w+1) gives G >= 15 at weight 8 on 64 qubits, so it says nothing about G = 25. The same rung at G = 24 (k >= 16) has not been run. The other weight-8 rungs of #2703 at 5x5 (G = 7, k >= 11) walled at 20,000,000 conflicts on the same build without a model.

Tools

research/local_sat.py, research/sat_rungs.py, research/kit/submit.py, research/kit/surrogate.py, verify/validate_candidate.py. CaDiCaL 1.9.5 via python-sat 1.9.dev15 (Cadical195), CPython 3.13, one core, 1 h 20 min to the first model, RSS 19.4 GB.

Reproduction

python research/sat_rungs.py --side 8 --G 25 --w 8 --t 3 --k-min 14 \
    --solver cadical195 --conflicts 20000000 --wall-hours 3 --out-dir models

CaDiCaL is deterministic for a fixed clause order; the first model is the code in this file (fingerprint 748fe3787f7009c4). The record of the run is the 8x8 G=25 w8 t=3 line of research/audits/sat-rungs.jsonl.

Parity checks

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