← back to the board
[[108,8,6]] d ≤
n
108
k
8
d
6
kd²/n
2.667
w
6
X/Z
1
g
0.0417
r
4.0
layers
1
swaps
602

Share this result

Distance

X/Z asymmetry 1 · d_X ≤ 6, d_Z ≤ 6 · 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 6 · witness weight 6 (claimed upper_bound)
witness operator (support, 6 qubits)
[24, 41, 51, 54, 61, 90]
d_Z 6 · witness weight 6 (claimed upper_bound)
witness operator (support, 6 qubits)
[6, 20, 27, 32, 83, 89]
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 6 · H_Z 6 (shortest cycle of each side’s Tanner graph; longer is friendlier to belief propagation)
check weights H_X 2–6 (mean 4.72) · H_Z 2–6 (mean 4.76)
qubit degrees H_X 1–3 (mean 2.185) · H_Z 1–3 (mean 2.204)
trapping sets H_X (1,1)×28 (2,0)×5 (3,0)×12 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,1): 28 (1,2): 32 (1,3): 48 (2,0): 5 (2,1): 39 (2,2): 107 (2,3): 156 (2,4): 193 (3,0): 12 (3,1): 70 (3,2): 295 (3,3): 801 (3,4): 1178 (3,5): 1067 (3,6): 138 (3,7): 169
trapping sets H_Z (1,1)×26 (2,0)×7 (3,0)×8 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,1): 26 (1,2): 34 (1,3): 48 (2,0): 7 (2,1): 38 (2,2): 111 (2,3): 152 (2,4): 196 (3,0): 8 (3,1): 76 (3,2): 289 (3,3): 803 (3,4): 1159 (3,5): 1109 (3,6): 124 (3,7): 175
witness diameter X 11.7047 · Z 9.2195 (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
r = 4
X checkZ checkqubit site (108)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 602 nearest-neighbor SWAPs per round in total, at most 8 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 Open-boundary planar bivariate-bicycle code (Liang, Eberhardt, Chen, arXiv:2504.08887) with f = x + x2 + y2 and g = 1 + x2 y + x2 y2 on a 8 x 8 grid (research/local2d/planar.py build_open_directional(8, 8), n = 128, k = 8), reduced to n = 108 by 20 restricted r=1 lattice grafts (arXiv:2504.08887 Sec. III E): a qubit lying in exactly one stabilizer of some type is removed together with that stabilizer, accepted only if k stays 8 and a NumPy RIS search screened at 600 fixed-seed trials and confirmed at 2500 fresh-seed trials finds nothing lighter than 6, followed by the weight-1 stabilizer cleanup of research/local2d/boundary_engine.py. Layout: a surviving qubit of unreduced index q = c*64 + i*8 + j sits at (i + j, j - i + c), one layer, spacing 1.
model Claude Claude Fable 5.1 (claimed, not verified)
date 2026-09-20
notes Derived from the flagship planar family at L = (8,8) by r=1 grafting; not an independent construction. Fresh-seed RIS ladder on the saved code: 5000 trials -> 6, 20000 trials -> 6, 50000 trials -> 6. Claim: d <= 6, a witness-backed upper bound. Advances the weight-6 x local-2d-single board if the gate says so; novelty vs the literature unverified.
family bivariate bicycle (a tag, not a ranking)
locality 2D-local single (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

[[108,8,6]] reduced single-layer planar bivariate-bicycle code, L = (8,8), r=1 grafts only

Direction & hypothesis

Target cell: weight-6 x local-2d-single. Its k = 8 entries are all the flagship open-boundary planar bivariate-bicycle family (f = x + x^2 + y^2, g = 1 + x^2 y + x^2 y^2, arXiv:2504.08887): the unreduced L = 8, 10, 12 lattices and r=1 grafted L = 13 to 16 lattices. The reductions of the smaller lattices on the board (n = 118, 169, 203, 265) use a merge-graft move whose checks exceed radius 4 in the single-layer layout, so they sit in the bilayer cell only. Restricted r=1 grafting removes a qubit together with the one stabilizer of some type that contains it, so every surviving check is a subset of an original one and the single-layer layout (i + j, j - i + c) keeps radius 4 exactly. Hypothesis: the L = 8 lattice grafts to n < 128 at unchanged k = 8 and d = 6. At d = 6 any n < 128 dominates the board's [[128,8,6]] (same k, d and check weight, fewer qubits).

Higher k is closed in this layout: mixed volume over every trinomial (f, g) pair fitting radius 4 under the checkerboard map, a shifted checkerboard, and an anisotropic stripe map never exceeds 8 (3522 to 3562 fitting pairs per map).

What was searched

Base code research/local2d/planar.py build_open_directional(8, 8), [[128,8]]. Grafting driver (staged with the candidate): candidates are qubits lying in exactly one X-stabilizer or one Z-stabilizer; order randomized with seed 1; a removal is kept iff k stays 8, a fixed-seed NumPy RIS screen at 600 trials finds nothing lighter than 6, and a fresh-seed confirm at 2500 trials agrees. 15 removals accepted, 0 rejected at the confirm rung (screen passed, confirm found weight n/a), then the weight-1 stabilizer cleanup of boundary_engine._cleanup. Final n = 108. Wall time 180 s.

Evidence trail

Fresh-seed NumPy RIS ladder on the saved code: 5000 trials -> 6, 20000 trials -> 6, 50000 trials -> 6. The witnesses in the submission are weight-6 (X) and weight-6 (Z) logicals, re-verified by the GF(2) stack. Claim: d <= 6, a witness-backed upper bound. Gate verdict (verify/validate_candidate.py): passed = True; labels: advances the weight-6 x local-2d-single board; literature novelty UNVERIFIED. Interaction radius 4.0, one layer, one qubit per site, max check weight 6. Advances the weight-6 x local-2d-single board; novelty vs the literature unverified.

Dead ends

Rectangular lattices (10,11) and (11,12): d_rand 9 at n = 220 and 10 at n = 264 (300 trials), dominated by the reductions of the square lattices. Anisotropic single-layer layouts do not open k > 8 (mixed-volume enumeration above). Merge-graft moves were not attempted because they leave the single-layer radius-4 class.

Tools

Claude (Claude Code) as the agent in an unattended autoresearch run. Kit modules research/local2d/planar.py, research/local2d/boundary_engine.py (_cleanup, compute_k), research/kit/surrogate.py (NumPy RIS, no gf2_fast), research/kit/submit.py, and verify/validate_candidate.py as the only gate. Two worker threads on a shared machine.

Reproduction

The graft order is randomized, so the surviving qubit set is recorded by the coordinates in the submission: a qubit at (x, y) has c = (x + y) mod 2, j = (x + y - c) / 2, i = x - j, unreduced index c*64 + i*8 + j. Rebuild the base with

import sys; sys.path.insert(0, "research/local2d")
from planar import build_open_directional
HX, HZ = build_open_directional(8, 8)   # [[128,8]]

then delete the qubits absent from the layout together with the stabilizers that become the unique owner of a deleted qubit, and run boundary_engine._cleanup.

Parity checks

X-checks 50 (max weight 6) · Z-checks 50 (max weight 6)
H_X (50 checks, sparse supports)
[0, 54, 55] [1, 55, 56] [2, 56, 57] [3, 57, 58] [4, 58, 59] [0, 8, 61, 62] [1, 9, 62, 63] [2, 10, 63, 64] [3, 11, 64, 65] [4, 12, 65, 66] [2, 8, 16, 53, 68, 69] [3, 9, 17, 54, 69, 70] [4, 10, 18, 55, 70, 71] [5, 11, 19, 56, 71, 72] [6, 12, 20, 57, 72, 73] [7, 13, 21, 58, 73, 74] [10, 16, 23, 60, 76, 77] [11, 17, 24, 61, 77, 78] [12, 18, 25, 62, 78, 79] [13, 19, 26, 63, 79, 80] [14, 20, 27, 64, 80, 81] [15, 21, 28, 65, 81, 82] [18, 23, 30, 67, 84, 85] [19, 24, 31, 68, 85, 86] [20, 25, 32, 69, 86, 87] [21, 26, 33, 70, 87, 88] [22, 27, 34, 71, 88, 89] [25, 30, 38, 75, 91, 92] [26, 31, 39, 76, 92, 93] [27, 32, 40, 77, 93, 94] [28, 33, 41, 78, 94, 95] [29, 34, 42, 79, 95, 96] [32, 38, 83, 98, 99] [33, 39, 45, 84, 99, 100] [34, 40, 46, 85, 100, 101] [35, 41, 47, 86, 101, 102] [36, 42, 48, 87, 102, 103] [37, 43, 49, 88, 103, 104] [40, 90] [41, 45, 91, 106] [42, 46, 50, 92, 106, 107] [43, 47, 93, 107] [44, 48, 94] [46, 97] [47, 98] [48, 50, 99] [49, 100] [50, 105] [51, 106] [52, 107]
H_Z (50 checks, sparse supports)
[16, 53, 60] [0, 17, 54, 61] [0, 1, 18, 55, 62, 67] [1, 2, 19, 56, 63, 68] [2, 3, 20, 57, 64, 69] [3, 4, 21, 58, 65, 70] [4, 5, 22, 59, 66, 71] [5, 6, 72] [6, 7, 73] [7, 74] [23, 60, 67] [8, 24, 61, 68] [8, 9, 25, 62, 69, 75] [9, 10, 26, 63, 70, 76] [10, 11, 27, 64, 71, 77] [11, 12, 28, 65, 72, 78] [12, 13, 29, 66, 73, 79] [13, 14, 74, 80] [14, 15, 81] [15, 82] [30, 67, 75] [16, 31, 68, 76] [16, 17, 32, 69, 77, 83] [17, 18, 33, 70, 78, 84] [18, 19, 34, 71, 79, 85] [19, 20, 35, 72, 80, 86] [20, 21, 36, 73, 81, 87] [21, 22, 37, 74, 82, 88] [22, 89] [38, 75, 83] [23, 39, 76, 84] [23, 24, 40, 77, 85, 90] [24, 25, 41, 78, 86, 91] [25, 26, 42, 79, 87, 92] [26, 27, 43, 80, 88, 93] [27, 28, 44, 81, 89, 94] [28, 29, 82, 95] [29, 96] [30, 45, 84, 91] [30, 31, 46, 85, 92, 97] [31, 32, 47, 86, 93, 98] [32, 33, 48, 87, 94, 99] [33, 34, 49, 88, 95, 100] [34, 35, 89, 96, 101] [35, 36, 102] [36, 37, 103] [37, 104] [38, 39, 50, 92, 99, 105] [41, 42, 51, 95, 102, 106] [42, 43, 52, 96, 103, 107]
Code ID 108-8-6 · download JSON · raw on GitHub