← back to the board
[[89,8,10]] d ≤
n
89
k
8
d
10
kd²/n
8.98876
w
7
X/Z
1.1
g
0.0044
r
6.7082
layers
2
swaps
463

Share this result

Distance

X/Z asymmetry 1.1 · d_X ≤ 11, d_Z ≤ 10 · 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 11 · witness weight 11 (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, 11 qubits)
[5, 7, 10, 11, 18, 39, 42, 47, 53, 69, 79]
d_Z 10 · witness weight 10 (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, 10 qubits)
[1, 16, 30, 31, 41, 50, 60, 68, 84, 87]
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 6–7 (mean 6.927)
qubit degrees H_X 1–4 (mean 3.146) · H_Z 1–4 (mean 3.191)
trapping sets H_X (1,1)×1 (2,2)×12 (3,1)×2 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,1): 1 (1,2): 14 (1,3): 45 (1,4): 29 (2,2): 12 (2,3): 64 (2,4): 283 (2,5): 358 (2,6): 123 (3,1): 2 (3,2): 14 (3,3): 154 (3,4): 687 (3,5): 2570 (3,6): 4156 (3,7): 3058 (3,8): 1007 (3,9): 342 (3,10): 56
trapping sets H_Z (1,1)×2 (2,2)×10 (3,2)×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): 2 (1,2): 12 (1,3): 42 (1,4): 33 (2,2): 10 (2,3): 58 (2,4): 239 (2,5): 374 (2,6): 162 (3,2): 16 (3,3): 132 (3,4): 566 (3,5): 2085 (3,6): 4090 (3,7): 3593 (3,8): 1219 (3,9): 427 (3,10): 90
witness diameter X 7.2801 · 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.708
X checkZ checkqubit site (45)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 463 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 E-PEEL of codes/90-8-11.json ([[90,8,11]], max check weight 7; a generalized-bicycle entry by @MathysRennela): delete qubit 39 (0-based index in the parent file) together with its unique X check a2, and relabel the surviving qubits in increasing order of their parent indices. 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 E-PEEL child of board entry 90-8-11. 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

[[89,8,10]] priced calculus E-PEEL of codes/90-8-11.json

Direction & hypothesis

Unrestricted weight-8 CSS cell. The priced construction calculus was applied one move deep to every CSS entry on the board, and this code is the E-PEEL of codes/90-8-11.json ([[90,8,11]], max check weight 7; a generalized-bicycle entry by @MathysRennela). Peeling qubit 39 with the one X check that touches it keeps k = 8 and lowers the witnessed distance bound by one, from 11 to 10, while dropping one qubit. Max check weight stays 7. The layout is the parent's with the peeled qubit 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 [[89,8,10]] at max check weight 7. 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) | 10 | | 1,000,000 (seed 101) | 10 | | 1,000,000 (seed 102) | 10 | | 10,000,000 (seed 103) | 10 |

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 <= 11 (upper_bound), Z: d <= 10 (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/90-8-11.json, delete qubit 39 (0-based index in that file) together with its unique X check a2, 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, and relabel the surviving qubits in increasing order of their parent indices; in github.com/unitaryfoundation/code-calculus @ 1b9a942 this is apply_operation(state, {'op': 'E-PEEL', 'qubit': 39, 'sector': 'X', 'row_id': 'a2'}). Then run research/audits/leader_audit.py ladder on the result with --ladder 1000000:101,102 to reproduce the confirmation rungs; the witnesses in the entry are the ones those runs validated.

Parity checks

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