← back to the board
[[190,78,3]] d =
n
190
k
78
d
3
kd²/n
3.695
w
18
X/Z
1

Share this result

Distance

X/Z asymmetry 1 · d_X = 3, d_Z = 3 · w_X = 17, w_Z = 18 (max(d_X,d_Z)/min(d_X,d_Z); each side carries its own earned tier: = certified exact, ≤ witness upper bound)
d_X 3 · witness weight 3 (claimed upper_bound)
witness found by @dorakingx · gf2_fast RIS ladder (verify/gf2_fast.cpp), both sides searched jointly · found at 2×104 trials · survived 2×107 trials · 2026-09-15
witness operator (support, 3 qubits)
[175, 176, 179]
d_Z 3 · witness weight 3 (claimed upper_bound)
witness found by @dorakingx · gf2_fast RIS in the packaging search; the ladder searched both sides jointly · found at 4000 trials · survived 2×107 trials · 2026-09-15
witness operator (support, 3 qubits)
[17, 149, 155]
certificate exact, d = 3 · CryptoMiniSat 5.14.7 SAT
X: no logical < 3 exists; Z: no logical < 3 exists

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 16–17 (mean 16.533) · H_Z 5–18 (mean 11.89)
qubit degrees H_X 1–5 (mean 2.611) · H_Z 1–43 (mean 5.132)
trapping sets H_X (1,1)×30 (2,1)×450 (3,0)×930 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,1): 30 (1,2): 60 (1,3): 60 (1,4): 34 (1,5): 6 (2,1): 450 (2,2): 840 (2,3): 736 (2,4): 304 (2,5): 96 (2,6): 64 (2,7): 16 (3,0): 930 (3,1): 4200 (3,2): 7584 (3,3): 7152 (3,4): 4628 (3,5): 3698 (3,6): 2976 (3,7): 1904 (3,8): 848 (3,9): 208 (3,10): 24
trapping sets H_Z (1,1)×56 (2,1)×187 (3,0)×124 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,1): 56 (1,2): 72 (1,3): 21 (1,14): 4 (1,15): 8 (1,16): 18 (1,17): 7 (1,28): 2 (1,30): 1 (1,43): 1 (2,1): 187 (2,2): 118 (2,13): 9 (2,14): 192 (2,15): 472 (2,16): 719 (2,17): 446 (2,18): 100 (2,19): 8 (2,20): 2 (2,26): 15 (2,27): 61 (2,28): 138 (2,29): 116 (2,30): 121 (2,31): 58 (2,32): 5 (2,40): 2 (2,41): 22 (2,42): 55 (2,43): 60 (2,44): 16 (2,45): 4 (3,0): 124 (3,1): 212 (3,2): 338 (3,3): 830 (3,4): 634 (3,5): 158 (3,6): 6 (3,7): 1 (3,13): 1070 (3,14): 5910 (3,15): 12604 (3,16): 17010 (3,17): 13356 (3,18): 6240 (3,19): 2067 (3,20): 664 (3,21): 242 (3,22): 79 (3,23): 13 (3,24): 67 (3,25): 463 (3,26): 1802 (3,27): 4535 (3,28): 7781 (3,29): 9290 (3,30): 8748 (3,31): 5193 (3,32): 1750 (3,33): 346 (3,34): 40 (3,35): 2 (3,37): 3 (3,38): 54 (3,39): 374 (3,40): 1352 (3,41): 2967 (3,42): 3952 (3,43): 3068 (3,44): 1543 (3,45): 583 (3,46): 134 (3,47): 22 (3,48): 2

Construction & provenance

authors @dorakingx
provenance submitted through the challenge
novelty novelty not audited
construction Reduction of the board's codes/201-78-3.json ([[201,78,3]]) by 11 qubits at unchanged k, unchanged check-weight class and unchanged locality class, by one move applied to a fixpoint: graft a qubit away using a low-weight element of the stabilizer ROW SPACE. Let S be an element of the row space of H_X with support T and let a be in T. Replace one generator of the subset summing to S by S itself -- the span is unchanged, that generator being S plus the rest of the subset -- and add S into every other X row meeting a, so that a survives only in S. Then apply the CNOT fan-out from a to T\{a}, which acts on the check matrices as H_X[:, b] ^= H_X[:, a] and H_Z[:, a] ^= H_Z[:, b] for each b in T\{a}. Only S still meets a, so the first substitution turns S into the weight-1 stabilizer X_a and leaves every other X row alone; the second zeroes column a of H_Z, because commutation forces every Z row to meet T an even number of times. Qubit a is then disentangled and is deleted: n -> n-1, k unchanged, and the Z rows only LOSE an index, so their weights and support diameters cannot rise. The weight of S separates three regimes, and the difference is entirely in the clearing step R ^= S. |S| = 1: nothing is added anywhere, so the weights, the radius AND THE DISTANCE are all preserved exactly, and no distance search is needed -- this is the row-space form of the weight-1 stabilizer cleanup of Liang, Eberhardt and Chen (arXiv:2504.08887 Sec. III D step 4), which the implementation in research/local2d/boundary_engine.py applies only to literal weight-1 generator ROWS. |S| = 2: R loses a and toggles one other index, so its weight changes by 0 or -2 and can never rise. |S| >= 3: R can grow, so every touched row is checked against the code's weight class and its locality radius, measured in the source's own layout. This generalises the capped merge-graft I introduced with [[454,8,17]], which only ever built S from the generators a single qubit happens to lie in. Here the accepted grafts were |S| = 5: 3, |S| = 6: 1, |S| = 7: 6, |S| = 8: 1. Low-weight row-space elements are enumerated as sums of at most three checks with a connected overlap pattern. Every graft with |S| >= 2 was accepted only if k was unchanged and a bit-packed RIS search found nothing lighter than 3, screened once and confirmed twice with independent seeds; those in-loop rungs are a filter, not the evidence. QUBIT POSITIONS ARE THE SOURCE'S: every surviving qubit keeps the coordinate it has in codes/201-78-3.json, so the layout is inherited rather than re-derived, and the reduction only deletes. The surviving qubits' indices into the source numbering are [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]... (full list implied by the coordinates in this file).
model Claude Claude Opus 5 (Claude Code) (claimed, not verified)
date 2026-09-15
notes Derived from codes/201-78-3.json, not an independent construction; the source's authors are @mathysrennela and the reduction is mine. The gate reports no exact duplicate and no WL-equivalent entry. It dominates [[201,78,3]] on (n, k, d, w), which therefore leaves the frontier of every cell the two share. Distance is a witness-backed upper bound: the deepest null result is 20000000 fresh-seed RIS trials. Literature novelty is unverified.
family hypergraph product (a tag, not a ranking)
locality unrestricted (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

[[190,78,3]] — reduction of the board's [[201,78,3]]

Where the qubits came from

codes/201-78-3.json is @mathysrennela's construction; this is a reduction of it, following the precedent @mathysrennela set with codes/240-12-12-graft.json. 11 qubits come out under the general form of the move below, and the accepted grafts were |S| = 5 three times, |S| = 6 once, |S| = 7 six times, |S| = 8 once.

The move

Let S be any element of the row space of H_X — an element of the stabilizer group, not necessarily one of the published generators — with support T, and let a ∈ T.

1. Replace one generator of the subset summing to S by S itself. The span is unchanged: that generator equals S plus the rest of the subset. 2. Add S into every other X row meeting a, so a survives only in S. 3. Apply the CNOT fan-out from a to T \ {a}, which acts on the check matrices as H_X[:, b] ^= H_X[:, a] and H_Z[:, a] ^= H_Z[:, b].

After step 2 only S meets a, so step 3 turns S into the weight-1 stabilizer X_a and leaves every other X row alone; and column a of H_Z becomes the XOR of its entries over T, which commutation forces to be 0. Qubit a is disentangled and is deleted: n → n-1, k unchanged, and the Z rows only lose an index, so their weights and support diameters cannot rise.

The weight of S selects the regime, entirely through the clearing step R ^= S:

  • |S| = 1 — nothing is added anywhere, so weight, radius and distance are all
  • preserved exactly and no distance search is needed. This is the row-space form of the weight-1 stabilizer cleanup of Liang, Eberhardt and Chen (arXiv:2504.08887 Sec. III D step 4); research/local2d/boundary_engine.py fires only on a *literal* weight-1 generator ROW, and row-space membership is strictly weaker.

  • |S| = 2 — the row loses a and toggles one other index, so its weight changes by 0
  • or −2 and can never rise.

  • |S| ≥ 3 — the row can grow, so every touched row is checked against the code's weight
  • class and its locality radius, measured in the source's own layout.

Low-weight row-space elements are enumerated as sums of at most three checks with a connected overlap pattern.

Verification

Fresh-seed RIS ladder: 3 at 20k → 200k → 1M → 5M → 20M trials per rung, independent seeds, both sides searched jointly. Nothing lighter than 3 appeared. Each graft was also screened and confirmed twice in the loop with independent seeds; those rungs are a filter, not the evidence. The distance is a witness-backed upper bound — on this project a [[682,10,38]] candidate survived three fresh seeds to five million trials and then fell at twenty million, so a flat ladder is not a proof.

verify/validate_candidate.py passes: board_advancing: true, dominated_by: [], no duplicate and no WL-equivalent entry, cell weight-9plus × unrestricted.

Numbers

Max check weight 19 throughout. Interaction radius unchanged at 0, so the reduced code is no less local than the source; layers unchanged. Qubit positions are the source's — every surviving qubit keeps the coordinate it has in codes/201-78-3.json, and the reduction only deletes. kd²/n 3.493 → 3.695.

It dominates 201-78-3 on (n, k, d, w).

Parity checks

X-checks 30 (max weight 17) · Z-checks 82 (max weight 18)
H_X (30 checks, sparse supports)
[0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156, 168, 180] [1, 13, 25, 37, 49, 61, 73, 85, 97, 109, 121, 133, 145, 157, 169, 181] [2, 14, 26, 38, 50, 62, 74, 86, 98, 110, 122, 134, 146, 158, 170, 182, 186] [3, 15, 27, 39, 51, 63, 75, 87, 99, 111, 123, 135, 147, 159, 171, 183, 186] [4, 16, 28, 40, 52, 64, 76, 88, 100, 112, 124, 136, 148, 160, 172, 184, 186] [5, 17, 29, 41, 53, 65, 77, 89, 101, 113, 125, 137, 149, 161, 173, 185, 186] [6, 12, 30, 36, 54, 60, 78, 84, 102, 108, 126, 132, 150, 156, 174, 180, 187] [7, 13, 31, 37, 55, 61, 79, 85, 103, 109, 127, 133, 151, 157, 175, 181, 187] [8, 14, 32, 38, 56, 62, 80, 86, 104, 110, 128, 134, 152, 158, 176, 182] [9, 15, 33, 39, 57, 63, 81, 87, 105, 111, 129, 135, 153, 159, 177, 183] [10, 16, 34, 40, 58, 64, 82, 88, 106, 112, 130, 136, 154, 160, 178, 184, 187] [11, 17, 35, 41, 59, 65, 83, 89, 107, 113, 131, 137, 155, 161, 179, 185, 187] [18, 24, 30, 36, 66, 72, 78, 84, 114, 120, 126, 132, 162, 168, 174, 180, 188] [19, 25, 31, 37, 67, 73, 79, 85, 115, 121, 127, 133, 163, 169, 175, 181, 188] [20, 26, 32, 38, 68, 74, 80, 86, 116, 122, 128, 134, 164, 170, 176, 182] [21, 27, 33, 39, 69, 75, 81, 87, 117, 123, 129, 135, 165, 171, 177, 183] [22, 28, 34, 40, 70, 76, 82, 88, 118, 124, 130, 136, 166, 172, 178, 184, 188] [23, 29, 35, 41, 71, 77, 83, 89, 119, 125, 131, 137, 167, 173, 179, 185, 188] [42, 48, 54, 60, 66, 72, 78, 84, 138, 144, 150, 156, 162, 168, 174, 180] [43, 49, 55, 61, 67, 73, 79, 85, 139, 145, 151, 157, 163, 169, 175, 181] [44, 50, 56, 62, 68, 74, 80, 86, 140, 146, 152, 158, 164, 170, 176, 182, 189] [45, 51, 57, 63, 69, 75, 81, 87, 141, 147, 153, 159, 165, 171, 177, 183, 189] [46, 52, 58, 64, 70, 76, 82, 88, 142, 148, 154, 160, 166, 172, 178, 184, 189] [47, 53, 59, 65, 71, 77, 83, 89, 143, 149, 155, 161, 167, 173, 179, 185, 189] [90, 96, 102, 108, 114, 120, 126, 132, 138, 144, 150, 156, 162, 168, 174, 180] [91, 97, 103, 109, 115, 121, 127, 133, 139, 145, 151, 157, 163, 169, 175, 181] [92, 98, 104, 110, 116, 122, 128, 134, 140, 146, 152, 158, 164, 170, 176, 182] [93, 99, 105, 111, 117, 123, 129, 135, 141, 147, 153, 159, 165, 171, 177, 183] [94, 100, 106, 112, 118, 124, 130, 136, 142, 148, 154, 160, 166, 172, 178, 184] [95, 101, 107, 113, 119, 125, 131, 137, 143, 149, 155, 161, 167, 173, 179, 185]
H_Z (82 checks, sparse supports)
[1, 3, 5, 115, 117, 119, 121, 123, 125] [2, 3, 4, 5, 186] [7, 9, 11, 67, 69, 71, 79, 81, 83] [6, 7, 10, 11, 187] [13, 15, 17, 67, 69, 71, 79, 81, 83, 115, 117, 119, 121, 123, 125] [0, 1, 4, 5, 12, 13, 16, 17, 187] [8, 9, 10, 11, 14, 15, 16, 17, 186] [19, 21, 23, 67, 69, 71, 115, 117, 119, 163, 165, 167] [18, 19, 22, 23, 188] [20, 21, 22, 23, 68, 69, 70, 71, 189] [25, 27, 29, 67, 69, 71, 121, 123, 125, 163, 165, 167] [0, 1, 4, 5, 24, 25, 28, 29, 188] [26, 27, 28, 29, 68, 69, 70, 71, 186, 189] [31, 33, 35, 79, 81, 83, 115, 117, 119, 163, 165, 167] [30, 31, 34, 35, 187, 188] [8, 9, 10, 11, 32, 33, 34, 35, 68, 69, 70, 71, 189] [37, 39, 41, 79, 81, 83, 121, 123, 125, 163, 165, 167] [0, 1, 4, 5, 36, 37, 40, 41, 187, 188] [8, 9, 10, 11, 38, 39, 40, 41, 68, 69, 70, 71, 186, 189] [43, 45, 47, 115, 117, 119, 163, 165, 167] [42, 43, 46, 47, 66, 67, 70, 71, 188] [44, 45, 46, 47, 189] [49, 51, 53, 121, 123, 125, 163, 165, 167] [0, 1, 4, 5, 48, 49, 52, 53, 66, 67, 70, 71, 188] [50, 51, 52, 53, 186, 189] [55, 57, 59, 67, 69, 71, 79, 81, 83, 115, 117, 119, 163, 165, 167] [54, 55, 58, 59, 66, 67, 70, 71, 187, 188] [8, 9, 10, 11, 56, 57, 58, 59, 189] [61, 63, 65, 67, 69, 71, 79, 81, 83, 121, 123, 125, 163, 165, 167] [0, 1, 4, 5, 60, 61, 64, 65, 66, 67, 70, 71, 187, 188] [8, 9, 10, 11, 62, 63, 64, 65, 186, 189] [67, 69, 71, 73, 75, 77, 115, 117, 119, 121, 123, 125] [0, 1, 4, 5, 66, 67, 70, 71, 72, 73, 76, 77] [68, 69, 70, 71, 74, 75, 76, 77, 186] [66, 67, 70, 71, 78, 79, 82, 83, 187] [8, 9, 10, 11, 68, 69, 70, 71, 80, 81, 82, 83] [79, 81, 83, 85, 87, 89, 115, 117, 119, 121, 123, 125] [0, 1, 4, 5, 66, 67, 70, 71, 84, 85, 88, 89, 187] [8, 9, 10, 11, 68, 69, 70, 71, 86, 87, 88, 89, 186] [79, 81, 83, 91, 93, 95, 175, 177, 179] [0, 1, 4, 5, 90, 91, 94, 95, 108, 109, 112, 113, 187] [92, 93, 94, 95, 146, 147, 148, 149, 186, 189] [79, 81, 83, 97, 99, 101, 115, 117, 119, 121, 123, 125, 175, 177, 179] [96, 97, 100, 101, 108, 109, 112, 113, 187] [98, 99, 100, 101, 146, 147, 148, 149, 189] [67, 69, 71, 103, 105, 107, 175, 177, 179] [0, 1, 4, 5, 102, 103, 106, 107, 108, 109, 112, 113] [8, 9, 10, 11, 104, 105, 106, 107, 146, 147, 148, 149, 186, 189] [67, 69, 71, 109, 111, 113, 115, 117, 119, 121, 123, 125, 175, 177, 179] [8, 9, 10, 11, 110, 111, 112, 113, 146, 147, 148, 149, 189] [0, 1, 4, 5, 108, 109, 112, 113, 114, 115, 118, 119, 187, 188] [68, 69, 70, 71, 116, 117, 118, 119, 146, 147, 148, 149, 186] [108, 109, 112, 113, 120, 121, 124, 125, 187, 188] [68, 69, 70, 71, 122, 123, 124, 125, 146, 147, 148, 149] [115, 117, 119, 127, 129, 131, 163, 165, 167, 175, 177, 179] [0, 1, 4, 5, 108, 109, 112, 113, 126, 127, 130, 131, 188] [8, 9, 10, 11, 68, 69, 70, 71, 128, 129, 130, 131, 146, 147, 148, 149, 186] [121, 123, 125, 133, 135, 137, 163, 165, 167, 175, 177, 179] [108, 109, 112, 113, 132, 133, 136, 137, 188] [8, 9, 10, 11, 68, 69, 70, 71, 134, 135, 136, 137, 146, 147, 148, 149] [79, 81, 83, 115, 117, 119, 139, 141, 143, 163, 165, 167, 175, 177, 179] [0, 1, 4, 5, 66, 67, 70, 71, 108, 109, 112, 113, 138, 139, 142, 143, 187, 188] [140, 141, 142, 143, 146, 147, 148, 149, 186] [79, 81, 83, 121, 123, 125, 145, 147, 149, 163, 165, 167, 175, 177, 179] [66, 67, 70, 71, 108, 109, 112, 113, 144, 145, 148, 149, 187, 188] [67, 69, 71, 115, 117, 119, 151, 153, 155, 163, 165, 167, 175, 177, 179] [0, 1, 4, 5, 66, 67, 70, 71, 108, 109, 112, 113, 150, 151, 154, 155, 188] [8, 9, 10, 11, 146, 147, 148, 149, 152, 153, 154, 155, 186] [67, 69, 71, 121, 123, 125, 157, 159, 161, 163, 165, 167, 175, 177, 179] [66, 67, 70, 71, 108, 109, 112, 113, 156, 157, 160, 161, 188] [8, 9, 10, 11, 146, 147, 148, 149, 158, 159, 160, 161] [67, 69, 71, 79, 81, 83, 163, 165, 167, 175, 177, 179] [0, 1, 4, 5, 66, 67, 70, 71, 108, 109, 112, 113, 162, 163, 166, 167, 187] [68, 69, 70, 71, 146, 147, 148, 149, 164, 165, 166, 167, 186, 189] [67, 69, 71, 79, 81, 83, 115, 117, 119, 121, 123, 125, 169, 171, 173, 175, 177, 179] [66, 67, 70, 71, 108, 109, 112, 113, 168, 169, 172, 173, 187] [68, 69, 70, 71, 146, 147, 148, 149, 170, 171, 172, 173, 189] [0, 1, 4, 5, 66, 67, 70, 71, 108, 109, 112, 113, 174, 175, 178, 179] [8, 9, 10, 11, 68, 69, 70, 71, 146, 147, 148, 149, 176, 177, 178, 179, 186, 189] [115, 117, 119, 121, 123, 125, 175, 177, 179, 181, 183, 185] [66, 67, 70, 71, 108, 109, 112, 113, 180, 181, 184, 185] [8, 9, 10, 11, 68, 69, 70, 71, 146, 147, 148, 149, 182, 183, 184, 185, 189]
Code ID 190-78-3 · download JSON · raw on GitHub