← back to the board
[[90,12,11]] d ≤
n
90
k
12
d
11
kd²/n
16.133
w
9
X/Z
1
g
0.0096
r
6.4031
layers
2
swaps
547

Share this result

Distance

X/Z asymmetry 1 · d_X ≤ 11, d_Z ≤ 11 · w_X = 9, w_Z = 9 (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 @mathysrennela · research/kit/surrogate.lightest_logical · found at 2000 trials · survived 2000 trials · 2026-10-12
witness operator (support, 11 qubits)
[0, 14, 16, 19, 30, 32, 37, 40, 47, 59, 85]
d_Z 11 · witness weight 11 (claimed upper_bound)
witness found by @mathysrennela · research/kit/surrogate.lightest_logical · found at 2000 trials · survived 2000 trials · 2026-10-12
witness operator (support, 11 qubits)
[6, 9, 12, 13, 23, 24, 38, 61, 64, 71, 82]
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 4 · H_Z 4 (shortest cycle of each side’s Tanner graph; longer is friendlier to belief propagation)
check weights H_X 9 · H_Z 9
qubit degrees H_X 3–6 (mean 4.5) · H_Z 3–6 (mean 4.5)
trapping sets H_X (1,3)×45 (2,4)×135 (3,3)×45 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,3): 45 (1,6): 45 (2,4): 135 (2,5): 90 (2,7): 630 (2,8): 90 (2,10): 495 (3,3): 45 (3,4): 90 (3,5): 405 (3,6): 1215 (3,7): 495 (3,8): 5850 (3,9): 4185 (3,10): 1215 (3,11): 11745 (3,12): 2835 (3,13): 810 (3,14): 4680 (3,16): 360
trapping sets H_Z (1,3)×45 (2,4)×135 (3,3)×45 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,3): 45 (1,6): 45 (2,4): 135 (2,5): 90 (2,7): 630 (2,8): 90 (2,10): 495 (3,3): 45 (3,4): 90 (3,5): 405 (3,6): 1215 (3,7): 495 (3,8): 5850 (3,9): 4185 (3,10): 1215 (3,11): 11745 (3,12): 2835 (3,13): 810 (3,14): 4680 (3,16): 360
witness diameter X 6.4031 · Z 6.4031 (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
layout contributed by @MathysRennela · Simulated annealing over integer-grid site assignments with the repo's own research/local2d/fold_layout.search_layout, single layer at radius 4 then two layers at 7, plus a divisor scan of the two-block index convention Z_l x Z_m which gives the tighter embedding here; radius and per-site occupancy re-measured with the verifier's own rule. · 2026-10-13
r = 6.403
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 547 nearest-neighbor SWAPs per round in total, at most 10 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 Lee, Gideon
provenance literature baseline
construction Two-block group-algebra code C(a,b) over C15 x C3 = SmallGroup(45, 2) (order 45), elements numbered as in GAP Elements(SmallGroup(order,id)) with element 0 the identity. n = 2|G| = 90; H_X = [L(a)|R(b)], H_Z = [R(b)^T|L(a)^T]; a = {0, 2, 12, 21, 23, 32}, b = {0, 11, 38} as element indices. Check weight 9. Parameters and blocks taken from the public code database of arXiv:2610.13880v1 (Lee, 'Bicycle Race'), github.com/gideonlsx/bicycle-race.
model Mimo-V2.6-Flash (claimed, not verified)
date 2026-10-12
notes Parameters and construction taken from the public database of arXiv:2610.13880v1. Distance is an upper bound certified by the witnesses attached here. Parameters and blocks taken from the public code database of arXiv:2610.13880v1 (Lee, 'Bicycle Race'), github.com/gideonlsx/bicycle-race @ aed705a, CC BY 4.0; rebuilt here with the repo's own group data. Distance is an upper bound certified by the attached witnesses, not the paper's exact distance.
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

[[90,12,11]] — two-block group-algebra code over C15 x C3

Direction & hypothesis

Cell weight-9plus x unrestricted, CSS board. The argument is coverage, not discovery: this code is published in arXiv:2610.13880v1 (Lee, "Bicycle Race"), and nothing on the board occupied this (n, k, d, w) point. It advances the four-axis Pareto frontier by moving into a cell that was empty at these parameters.

What was searched

Not a search for new codes. The arXiv:2610.13880v1 database (github.com/gideonlsx/bicycle-race @ aed705a, CC BY 4.0, 12,448 records) was rebuilt here from its group and block data, then screened against every CSS entry on main under the site's Pareto rule (n <=, k >=, d >=, w <= with at least one strict) within the same weight class. Records whose parameters the paper already tabulates, and candidates claimed by other open filings, were removed first. Distances were re-searched locally:

  • X side: research/kit/surrogate.lightest_logical at 2,000 trials
  • Z side: research/kit/surrogate.lightest_logical at 2,000 trials

Evidence trail

Witness-backed upper bound, not an exact distance. The attached X and Z operators were found by the searches above and re-checked by the verifier's own criteria (in ker(opposite) and outside rowspace(own)). verify/validate_candidate.py reports passed: true and board_advancing: true, with d_only_gain: false.

The paper states an exact distance for this record, verified there with a second exact engine plus GAP rebuild and independent upper-bound attacks. That exactness is not claimed here; the board records what the witness certifies.

Dead ends

  • Direct sums of two board codes: rejected, CONTRIBUTING.md requires a single
  • connected Tanner graph and a connected stabilizer group.

  • Fitting a single-layer 2D layout to reach the local-2d cells: searched with
  • research/local2d/fold_layout.search_layout, best radii 10–13 against a ceiling of 4.0, so these codes stay unrestricted.

  • Hypergraph products of two parents from this pool: connectivity passes, but n
  • multiplies (two ~250-qubit parents give n = 80,010).

Tools

Model: Mimo-V2.6-Flash (self-reported, provenance.model), driving OpenCode. Rebuild: research/kit/group_algebra.build_2bga from the database's data/groups.jsonl Cayley table. Witness search: research/kit/surrogate (numpy backend, 2,000 trials/side screening) with the gf2_fast accelerator for longer runs. Gate: research/kit/coordination.py gate, which runs verify/validate_candidate.py unchanged. Search run by @mathysrennela.

Reproduction

from group_algebra import build_2bga
# a and b are element indices from github.com/gideonlsx/bicycle-race @ aed705a data/codes.jsonl
HX, HZ = build_2bga(mul, a, b)   # mul from data/groups.jsonl, n = 2|G| = 90

Parameters are also spelled out in provenance.construction of codes/90-12-11.json.

Parity checks

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