← back to the board
[[96,21,6]] d ≤
n
96
k
21
d
6
kd²/n
7.875
w
7
X/Z
1
g
0.0039
r
6.7082
layers
2
swaps
540

Share this result

Distance

X/Z asymmetry 1 · d_X ≤ 6, d_Z ≤ 6 · w_X = 7, w_Z = 7 (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)
[48, 51, 53, 77, 78, 89]
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)
[58, 62, 70, 78, 85, 88]
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 7 · H_Z 7
qubit degrees H_X 1–4 (mean 2.698) · H_Z 1–4 (mean 2.771)
trapping sets H_X (1,1)×6 (2,1)×10 (3,1)×26 (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): 37 (1,3): 33 (1,4): 20 (2,1): 10 (2,2): 74 (2,3): 187 (2,4): 249 (2,5): 185 (2,6): 72 (3,1): 26 (3,2): 178 (3,3): 720 (3,4): 1763 (3,5): 2823 (3,6): 2526 (3,7): 1291 (3,8): 402 (3,9): 157 (3,10): 27
trapping sets H_Z (1,1)×8 (2,1)×10 (3,1)×22 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,1): 8 (1,2): 29 (1,3): 36 (1,4): 23 (2,1): 10 (2,2): 47 (2,3): 165 (2,4): 287 (2,5): 181 (2,6): 108 (3,1): 22 (3,2): 122 (3,3): 560 (3,4): 1623 (3,5): 2706 (3,6): 3162 (3,7): 1488 (3,8): 632 (3,9): 162 (3,10): 65
witness diameter X 3.6056 · Z 6.0828 (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.708
X checkZ checkqubit site (49)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 540 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 @vprusso
provenance submitted through the challenge
novelty novelty not audited
construction Priced construction calculus C-DELETE-CHECK of codes/96-20-6.json ([[96,20,6]], max check weight 7; a weight-7 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-20-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 ≤ 8 (computed)

How this code was found

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

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

Direction & hypothesis

2D-local bilayer weight-8 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-20-6.json ([[96,20,6]], max check weight 7; a weight-7 generalized bicycle code contributed by Mathys Rennela). Deleting X check a1 raises k from 20 to 21 and keeps the witnessed distance bound at 6; n = 96 and the max check weight 7 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,21,6]] at max check weight 7. 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-20-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 37 (max weight 7) · Z-checks 38 (max weight 7)
H_X (37 checks, sparse supports)
[1, 22, 35, 48, 49, 59, 67] [2, 26, 38, 48, 50, 57, 66] [3, 4, 29, 51, 65, 69, 74] [4, 13, 30, 49, 52, 66, 75] [3, 5, 41, 50, 53, 67, 71] [6, 33, 42, 49, 50, 54, 64] [7, 8, 36, 51, 55, 73, 81] [8, 20, 37, 50, 52, 56, 82] [7, 9, 45, 53, 54, 57, 75] [10, 11, 39, 51, 58, 70, 80] [11, 24, 40, 52, 54, 59, 71] [10, 12, 46, 49, 53, 60, 82] [5, 13, 14, 61, 79, 83, 87] [0, 14, 41, 55, 62, 80, 88] [13, 15, 16, 58, 63, 81, 85] [14, 16, 29, 57, 59, 64, 82] [17, 18, 43, 55, 58, 65, 78] [18, 31, 44, 53, 56, 59, 66] [17, 19, 47, 52, 57, 60, 67] [9, 20, 21, 61, 68, 86, 91] [1, 21, 45, 58, 62, 69, 92] [20, 22, 23, 63, 65, 70, 88] [21, 23, 36, 60, 64, 66, 71] [12, 24, 25, 61, 72, 84, 90] [2, 25, 46, 62, 65, 73, 85] [24, 26, 27, 55, 63, 74, 92] [25, 27, 39, 56, 64, 67, 75] [3, 16, 28, 68, 76, 90, 94] [0, 29, 30, 72, 77, 91, 93] [5, 28, 30, 70, 73, 78, 92] [19, 31, 32, 68, 72, 79, 89] [6, 32, 47, 63, 69, 73, 80] [31, 33, 34, 62, 70, 74, 81] [32, 34, 43, 48, 71, 75, 82] [7, 23, 35, 72, 76, 83, 95] [1, 36, 37, 77, 79, 84, 94] [4, 15, 41, 84, 86, 89, 95]
H_Z (38 checks, sparse supports)
[0, 1, 2, 34, 48, 62, 77] [1, 4, 6, 12, 49, 69, 84] [2, 5, 6, 8, 50, 73, 87] [3, 7, 10, 44, 51, 53, 76] [4, 8, 11, 19, 51, 52, 89] [5, 9, 12, 18, 53, 61, 78] [0, 6, 9, 11, 54, 80, 91] [7, 14, 17, 26, 55, 57, 83] [0, 8, 18, 27, 55, 56, 93] [2, 9, 16, 19, 57, 68, 85] [10, 15, 17, 21, 58, 60, 86] [1, 11, 16, 18, 58, 59, 94] [0, 12, 19, 23, 60, 72, 88] [13, 20, 24, 47, 52, 61, 63] [14, 21, 25, 33, 61, 62, 64] [15, 22, 26, 32, 48, 63, 89] [6, 16, 23, 27, 63, 64, 76] [3, 17, 22, 25, 65, 67, 90] [2, 4, 18, 23, 65, 66, 95] [1, 5, 19, 27, 67, 79, 92] [20, 28, 31, 39, 56, 68, 70] [3, 21, 32, 40, 68, 69, 71] [10, 22, 30, 33, 49, 70, 93] [5, 11, 23, 34, 70, 71, 83] [24, 29, 31, 35, 59, 72, 74] [7, 25, 30, 32, 72, 73, 75] [3, 26, 33, 37, 50, 74, 94] [4, 9, 27, 34, 74, 75, 86] [28, 35, 38, 43, 48, 76, 78] [29, 36, 39, 42, 51, 64, 77] [17, 30, 37, 40, 52, 77, 78] [13, 31, 36, 38, 66, 79, 81] [10, 14, 32, 37, 79, 80, 82] [7, 15, 33, 40, 54, 81, 95] [8, 12, 16, 34, 81, 82, 90] [13, 35, 42, 46, 49, 83, 85] [24, 36, 41, 43, 55, 71, 84] [13, 39, 43, 45, 58, 75, 87]
Code ID 96-21-6-b · download JSON · raw on GitHub