← back to the board
[[96,17,6]] d ≤
n
96
k
17
d
6
kd²/n
6.375
w
6
X/Z
1
g
0.0047
r
6.0828
layers
2
swaps
456

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 found by @vprusso · research/kit/surrogate.lightest_logical · found at 2000 trials · survived 2000 trials · 2026-11-03
witness operator (support, 6 qubits)
[5, 13, 29, 58, 69, 77]
d_Z 6 · witness weight 6 (claimed upper_bound)
witness found by @vprusso · research/kit/surrogate.lightest_logical · found at 2000 trials · survived 2000 trials · 2026-11-03
witness operator (support, 6 qubits)
[14, 17, 39, 58, 60, 94]
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 6 · H_Z 6
qubit degrees H_X 1–3 (mean 2.438) · H_Z 1–3 (mean 2.5)
trapping sets H_X (1,1)×4 (2,1)×7 (3,1)×18 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,1): 4 (1,2): 46 (1,3): 46 (2,1): 7 (2,2): 107 (2,3): 265 (2,4): 206 (3,1): 18 (3,2): 273 (3,3): 1113 (3,4): 2068 (3,5): 1355 (3,6): 287 (3,7): 174
trapping sets H_Z (1,1)×4 (2,1)×9 (3,1)×20 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,1): 4 (1,2): 40 (1,3): 52 (2,1): 9 (2,2): 85 (2,3): 243 (2,4): 263 (3,1): 20 (3,2): 199 (3,3): 888 (3,4): 2155 (3,5): 1808 (3,6): 268 (3,7): 258
witness diameter X 6.4031 · Z 8.0623 (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 = 6.083
X checkZ checkqubit site (48)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 456 nearest-neighbor SWAPs per round in total, at most 11 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 Priced construction calculus C-DELETE-CHECK of codes/96-16-6.json ([[96,16,6]], max check weight 6; a weight-6 generalized bicycle code contributed by Mathys Rennela): delete X check a1 (rows numbered in file order after dropping dependent rows, as machine/priced_calculus.py labels them) and keep every qubit at its parent index. Consumer: github.com/unitaryfoundation/code-calculus @ 1b9a942, machine/priced_calculus.py.
model Claude Claude Fable 5.1 (claimed, not verified)
date 2026-11-04
notes Single-step priced-calculus C-DELETE-CHECK child of board entry 96-16-6. verify/validate_candidate.py found no board entry sharing this code's fingerprint or Weisfeiler-Leman signature, local-Hadamard images included.
family generalized bicycle (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

[[96,17,6]] priced calculus C-DELETE-CHECK of codes/96-16-6.json

Direction & hypothesis

2D-local bilayer weight-6 CSS cell, through the layout inherited from the parent. The priced construction calculus was applied one move deep to every CSS entry on the board, and this code is the C-DELETE-CHECK of codes/96-16-6.json ([[96,16,6]], max check weight 6; a weight-6 generalized bicycle code contributed by Mathys Rennela). Deleting X check a1 raises k from 16 to 17 and keeps the witnessed distance bound at 6; n = 96 and the max check weight 6 are unchanged. The layout is the parent's unchanged, since no qubit was removed; the verifier re-measured its radius and layer count.

What was searched

Every C-DELETE-CHECK, E-PEEL, and E-PUNCTURE move on each of the 2,783 CSS board entries as of 2026-11-02, 1,684,787 moves in all, with the consumer at github.com/unitaryfoundation/code-calculus @ 1b9a942. Children with a bare qubit, a disconnected Tanner graph, a Weisfeiler-Leman signature equal to a board entry or to an earlier child, or parameters already dominated inside the parent's cell were dropped before any search, leaving 334,191 distinct children. Children with n <= 60 and an inherited distance bound of at least 2, and children with 61 <= n <= 100 and a bound of at least 5, were screened with research/kit/surrogate.lightest_logical at 2,000 RIS trials per side; the survivors the kit's novelty pre-check called board-advancing were staged with research/kit/submit.py and gated with verify/validate_candidate.py, one representative per distinct (n, k, d, max weight, locality) point. This code is that representative for [[96,17,6]] at max check weight 6. The thirteen points audited first went to the board on 2026-11-04 (PRs #4588 to #4600); this one is from the remainder, re-checked against the board of 2026-11-04 with the gate's structural, deduplication, and novelty stages before the ladder below was run. The screen distance is a witness-backed upper bound; the rungs below are the independent confirmation runs on the staged file.

Evidence trail

Confirmation ladder for the submitted code, each rung a fresh seed unless marked otherwise, reading the lightest logical found:

| budget (trials/side) | lightest logical | | ---: | ---: | | 2,000 (staging screen, seeds 1 and 2) | 6 | | 1,000,000 (seed 101) | 6 | | 1,000,000 (seed 102) | 6 | | 10,000,000 (seed 103) | 6 |

4 fresh-seed rung(s) agree at the best bound, the deepest of them at 10,000,000 trials per side. The submitted witness reproduces it: X: d <= 6 (upper_bound), Z: d <= 6 (upper_bound).

Dead ends

None recorded for this candidate.

Tools

Model: Claude Fable 5.1 (Claude Code). Repo tooling: research/kit/coordination.py, research/kit/submit.py, research/kit/surrogate.py, research/audits/leader_audit.py. The local verdict is verify/validate_candidate.py; the bundle was assembled by research/kit/promote.py.

Reproduction

Load codes/96-16-6.json and delete X check a1, where the X rows are numbered a1, a2, ... in file order after dropping rows dependent on earlier ones, as CodeState.from_challenge in machine/priced_calculus.py labels them; every qubit keeps its index. In github.com/unitaryfoundation/code-calculus @ 1b9a942 this is apply_operation(state, {'op': 'C-DELETE-CHECK', 'row_id': 'a1'}). Then run research/audits/leader_audit.py ladder on the result with --ladder 1000000:101,102 10000000:103 to reproduce the confirmation rungs; the witnesses in the entry are the ones those runs validated.

Parity checks

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