← back to the board
[[89,16,6]] d ≤
n
89
k
16
d
6
kd²/n
6.47191
w
7
X/Z
1.17
g
0.0027
r
7.0
layers
2
swaps
489

Share this result

Distance

X/Z asymmetry 1.17 · d_X ≤ 7, 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 7 · witness weight 7 (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, 7 qubits)
[20, 21, 37, 44, 51, 74, 82]
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)
[10, 18, 22, 58, 69, 76]
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.919)
qubit degrees H_X 1–4 (mean 2.831) · H_Z 1–4 (mean 2.876)
trapping sets H_X (1,1)×3 (2,1)×4 (3,1)×7 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,1): 3 (1,2): 28 (1,3): 39 (1,4): 19 (2,1): 4 (2,2): 41 (2,3): 145 (2,4): 304 (2,5): 201 (2,6): 61 (3,1): 7 (3,2): 92 (3,3): 453 (3,4): 1581 (3,5): 2867 (3,6): 2905 (3,7): 1453 (3,8): 551 (3,9): 126 (3,10): 23
trapping sets H_Z (1,1)×4 (2,1)×4 (3,1)×4 (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): 24 (1,3): 40 (1,4): 21 (2,1): 4 (2,2): 34 (2,3): 129 (2,4): 285 (2,5): 239 (2,6): 68 (3,1): 4 (3,2): 83 (3,3): 346 (3,4): 1393 (3,5): 2699 (3,6): 3141 (3,7): 1735 (3,8): 617 (3,9): 156 (3,10): 26
witness diameter X 6.0828 · 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 = 7
X checkZ checkqubit site (46)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 489 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-16-7.json ([[90,16,7]], max check weight 7; a weight-7 generalized bicycle code contributed by Mathys Rennela): delete qubit 31 (0-based index in the parent file) together with its unique X check a20, 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-16-7. 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,16,6]] priced calculus E-PEEL of codes/90-16-7.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 E-PEEL of codes/90-16-7.json ([[90,16,7]], max check weight 7; a weight-7 generalized bicycle code contributed by Mathys Rennela). Peeling qubit 31 with the one X check that touches it keeps k = 16 and lowers the witnessed distance bound by one, from 7 to 6, 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,16,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 <= 7 (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/90-16-7.json, delete qubit 31 (0-based index in that file) together with its unique X check a20, 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': 31, 'sector': 'X', 'row_id': 'a20'}). 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 36 (max weight 7) · Z-checks 37 (max weight 7)
H_X (36 checks, sparse supports)
[0, 20, 26, 44, 51, 63, 86] [1, 9, 31, 45, 52, 56, 78] [2, 28, 33, 44, 46, 71, 88] [0, 3, 29, 47, 54, 59, 72] [4, 14, 36, 48, 57, 62, 83] [5, 16, 38, 45, 49, 59, 84] [1, 6, 17, 46, 50, 60, 65] [7, 34, 39, 46, 51, 55, 81] [2, 8, 35, 47, 52, 62, 79] [3, 9, 36, 53, 63, 68, 80] [10, 22, 41, 48, 54, 65, 87] [4, 11, 23, 49, 55, 66, 71] [12, 24, 42, 47, 49, 56, 70] [5, 13, 25, 50, 51, 57, 68] [6, 14, 26, 52, 58, 69, 74] [7, 15, 40, 48, 52, 59, 64] [8, 16, 41, 53, 60, 71, 85] [4, 9, 17, 61, 72, 77, 86] [18, 30, 43, 50, 54, 62, 76] [11, 20, 31, 57, 64, 75, 79] [12, 21, 32, 44, 53, 57, 65] [13, 22, 33, 58, 59, 66, 77] [0, 14, 23, 60, 67, 78, 82] [15, 24, 43, 55, 60, 68, 73] [10, 16, 25, 61, 69, 79, 88] [11, 17, 26, 54, 70, 80, 84] [18, 27, 37, 45, 58, 63, 71] [19, 28, 38, 64, 65, 72, 82] [1, 20, 29, 66, 73, 83, 85] [21, 30, 39, 47, 61, 66, 74] [3, 23, 31, 46, 69, 76, 87] [18, 24, 32, 64, 69, 77, 81] [19, 25, 33, 62, 70, 78, 85] [27, 34, 42, 50, 67, 72, 79] [6, 29, 36, 49, 75, 81, 88] [27, 32, 39, 48, 73, 78, 84]
H_Z (37 checks, sparse supports)
[0, 2, 21, 42, 44, 47, 67] [1, 5, 27, 43, 45, 50, 73] [2, 6, 7, 31, 46, 52, 75] [3, 8, 12, 30, 47, 53, 76] [4, 10, 15, 39, 48, 55, 61] [5, 11, 12, 36, 49, 57, 80] [6, 13, 18, 34, 50, 58, 81] [0, 7, 13, 38, 51, 59, 82] [1, 8, 14, 15, 52, 60, 83] [9, 16, 21, 37, 45, 53, 61] [3, 10, 18, 26, 54, 63, 69] [7, 11, 19, 24, 55, 64, 70] [1, 12, 19, 41, 56, 65, 85] [4, 13, 20, 21, 57, 66, 86] [14, 22, 27, 40, 48, 58, 67] [3, 5, 15, 22, 59, 68, 87] [6, 16, 23, 24, 49, 60, 69] [17, 25, 30, 42, 50, 61, 70] [4, 8, 18, 33, 62, 71, 77] [0, 9, 19, 27, 63, 72, 78] [15, 20, 28, 32, 44, 64, 73] [6, 10, 21, 28, 65, 74, 88] [11, 22, 29, 30, 54, 66, 75] [23, 34, 43, 55, 67, 76] [9, 13, 24, 56, 68, 77] [14, 25, 31, 32, 57, 69, 78] [12, 26, 33, 37, 44, 58, 70] [2, 11, 16, 27, 71, 79, 84] [3, 17, 28, 34, 46, 72, 80] [24, 29, 35, 39, 47, 73, 81] [14, 19, 30, 35, 62, 74, 82] [18, 31, 38, 40, 45, 64, 76] [17, 22, 32, 38, 65, 77, 84] [1, 23, 33, 39, 46, 66, 78] [8, 20, 25, 34, 51, 79, 85] [7, 32, 36, 41, 48, 53, 81] [5, 26, 39, 51, 74, 84]
Code ID 89-16-6 · download JSON · raw on GitHub