← back to the board
[[350,70,10]] d ≤
n
350
k
70
d
10
kd²/n
20.0
w
8
X/Z
1

Share this result

Distance

X/Z asymmetry 1 · d_X ≤ 10, d_Z ≤ 10 · w_X = 8, w_Z = 8 (max(d_X,d_Z)/min(d_X,d_Z); each side carries its own earned tier: = certified exact, ≤ witness upper bound)
d_X 10 · witness weight 10 (claimed upper_bound)
witness operator (support, 10 qubits)
[147, 153, 169, 201, 210, 223, 224, 232, 255, 272]
d_Z 10 · witness weight 10 (claimed upper_bound)
witness operator (support, 10 qubits)
[96, 132, 229, 231, 232, 233, 236, 265, 267, 269]
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–8 (mean 7.5) · H_Z 7–8 (mean 7.5)
qubit degrees H_X 2–5 (mean 3.0) · H_Z 2–5 (mean 3.0)
trapping sets H_X (1,2)×140 (2,2)×140 (3,2)×140 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,2): 140 (1,3): 140 (1,5): 70 (2,2): 140 (2,3): 840 (2,4): 420 (2,5): 700 (2,6): 1050 (2,8): 280 (3,2): 140 (3,3): 2520 (3,4): 4732 (3,5): 5747 (3,6): 15274 (3,7): 10661 (3,8): 7280 (3,9): 10164 (3,10): 560 (3,11): 2590 (3,13): 70
trapping sets H_Z (1,2)×140 (2,2)×140 (3,2)×140 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,2): 140 (1,3): 140 (1,5): 70 (2,2): 140 (2,3): 840 (2,4): 420 (2,5): 700 (2,6): 1050 (2,8): 280 (3,2): 140 (3,3): 2520 (3,4): 4802 (3,5): 5600 (3,6): 15029 (3,7): 11214 (3,8): 7385 (3,9): 9828 (3,10): 560 (3,11): 2590 (3,13): 70

Construction & provenance

authors @vprusso
provenance submitted through the challenge
novelty novelty not audited
construction Lifted product over the non-abelian group algebra F_2[G], G = Z_35 x|_29 Z_2 (order 70; generators x, y with x35 = y2 = 1, y x = x29 y; element x^a y^b has index a*2+b). Base matrices A = [1 + x20y1 + x33, 1 + x18] (entries act by the left regular representation L(g)[gh,h]=1) and B = [1 + x18y1 + x22, 1 + x31] (entries act by the right regular representation R(g)[h,hg]=1). Element index lists: A = [[[0, 41, 66], [0, 36]]], B = [[[0, 37, 44], [0, 62]]]. Qubit blocks of size |G|: sector 1 holds (i,j) for i in cols(A), j in cols(B) at block i*n_B+j; sector 2 holds (r,s) for r in rows(A), s in rows(B). X-check (r,j) = [L(A[r][i]) on (i,j)] + [R(B[s][j]) on (r,s)]; Z-check (i,s) = [R(B[s][j])^T on (i,j)] + [L(A[r][i])^T on (r,s)]. Same construction as the weight-9 mitten / ZSZ-LP codes of arXiv:2607.28795 and arXiv:2607.27644 (four weight-3 entries there), here with entry weights (3,2)/(3,2), check weight 8. Built with research/kit/nonabelian_lp.lifted_product_base.
model Claude Claude Fable 5.1 (claimed, not verified)
date 2026-09-20
notes Distance is a witness-backed upper bound from randomized information-set search (research/kit/surrogate.distance_rand, gf2_fast backend); screen 400 trials, ladder [10, 10, 10], packaging 300000 trials per side. Advances the unrestricted weight-8 board cell; novelty vs the literature unverified.
family lifted 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

[[350,70,10]] non-abelian lifted product over ZSZ(35,2,29), check weight 8

Direction & hypothesis

Unrestricted weight-8 cell, rate-1/5 band at n = 315 to 390. The one-row lifted product with entry weights (3,2)/(3,2) is the only profile below check weight 9 that escapes the Cayley-graph girth cap (fieldnotes/2026-09-16-lifted-product-girth-cap.md). The Sep-16 and Sep-18 sweeps placed d = 8 to 10 points at n = 315, 320, 330, 350, 360 and 390 with about 20 to 120 random codes per group. Hypothesis: a denser sweep of the orders 63 to 78, with the weight-2 entries 1 + g restricted to elements of order at least the target distance (the sum 1 + g + ... + g^(ord(g)-1) is a seed codeword of weight ord(g)), reaches one distance unit higher at the same n. At n = 350 the target was d = 10 with k = 70, which dominates the board's 350-70-9 (same n and k, one more unit of distance, same check weight).

What was searched

Batch 1, order 70: 3000 random (3,2)/(3,2) codes over the seven order-70 presentations (ZSZ(5,14,4), ZSZ(7,10,6), ZSZ(35,2,6), ZSZ(35,2,29), ZSZ(35,2,34), C5xD7, C7xD5), weight-2 entries restricted to elements of order at least 10, seed 12. Screen histogram of d at 400 trials: 4:48, 5:1470, 6:365, 7:366, 8:695, 9:31, 10:3. All three d = 10 codes sit on the group Z7 x D5 (presented as C7xD5, ZSZ(5,14,4) and ZSZ(35,2,29)); D35 never exceeded d = 5 and Z5 x D7 reached d = 9. Screen: research/kit/search.screen with sample_nonabelian_lp, 400 fast RIS trials (gf2_fast), two threads. Board pre-check against codes/*.json under the site's Pareto rule (n, k, d, w). Ladder on the survivors: 5k then 50k fast RIS trials. Packaging: 300k fast RIS trials per side, witness installed if lighter. Gate: verify/validate_candidate.py.

Evidence trail

Ladder for this code (trials -> lightest logical found): 400 -> 10, 5k -> 10, 50k -> 10, 300k per side (packaging) -> X 10, Z 10. Gate verdict: passed = True; labels: advances the weight-8 x unrestricted board; literature novelty UNVERIFIED. Claim: witness-backed upper bound d <= 10 (confidence upper_bound), k = 70 exactly (n - rank H_X - rank H_Z), max check weight 8. Advances the unrestricted weight-8 board; novelty vs the literature unverified.

Dead ends

The per-order screen histograms of this run are in the search section above; no ladder for the packaged code collapsed. Structural dead ends of the family are in fieldnotes/2026-09-16-lifted-product-girth-cap.md (all-weight-2 sides, rate 2/5, 2x3 monomial bases).

Tools

Claude Fable 5.1 (Claude Code, unattended workflow direction lp-w8), research/kit/nonabelian_lp.py, research/kit/search.py, research/kit/surrogate.py with the gf2_fast backend, verify/validate_candidate.py. Two CPU threads, under 80 minutes wall clock for the whole direction.

Reproduction

import sys; sys.path.insert(0, "research/kit"); sys.path.insert(0, "verify")
from nonabelian_lp import zsz, small_nonabelian_groups, lifted_product_base
mul = zsz(35, 2, 29)
A = [[[0, 41, 66], [0, 36]]]
B = [[[0, 37, 44], [0, 62]]]
HX, HZ = lifted_product_base(mul, A, B)   # [[350,70,10]], check weight 8

Parity checks

X-checks 140 (max weight 8) · Z-checks 140 (max weight 8)
H_X (140 checks, sparse supports)
[0, 4, 31, 140, 174, 280, 317, 324] [1, 5, 30, 141, 175, 281, 297, 344] [2, 6, 19, 142, 176, 282, 319, 326] [3, 7, 18, 143, 177, 283, 299, 346] [4, 7, 8, 144, 178, 284, 321, 328] [5, 6, 9, 145, 179, 285, 301, 348] [6, 10, 65, 146, 180, 286, 323, 330] [7, 11, 64, 147, 181, 280, 287, 303] [8, 12, 53, 148, 182, 288, 325, 332] [9, 13, 52, 149, 183, 282, 289, 305] [10, 14, 41, 150, 184, 290, 327, 334] [11, 15, 40, 151, 185, 284, 291, 307] [12, 16, 29, 152, 186, 292, 329, 336] [13, 17, 28, 153, 187, 286, 293, 309] [14, 17, 18, 154, 188, 294, 331, 338] [15, 16, 19, 155, 189, 288, 295, 311] [5, 16, 20, 156, 190, 296, 333, 340] [4, 17, 21, 157, 191, 290, 297, 313] [18, 22, 63, 158, 192, 298, 335, 342] [19, 23, 62, 159, 193, 292, 299, 315] [20, 24, 51, 160, 194, 300, 337, 344] [21, 25, 50, 161, 195, 294, 301, 317] [22, 26, 39, 162, 196, 302, 339, 346] [23, 27, 38, 163, 197, 296, 303, 319] [24, 27, 28, 164, 198, 304, 341, 348] [25, 26, 29, 165, 199, 298, 305, 321] [15, 26, 30, 166, 200, 280, 306, 343] [14, 27, 31, 167, 201, 300, 307, 323] [3, 28, 32, 168, 202, 282, 308, 345] [2, 29, 33, 169, 203, 302, 309, 325] [30, 34, 61, 170, 204, 284, 310, 347] [31, 35, 60, 171, 205, 304, 311, 327] [32, 36, 49, 172, 206, 286, 312, 349] [33, 37, 48, 173, 207, 306, 313, 329] [34, 37, 38, 174, 208, 281, 288, 314] [35, 36, 39, 175, 209, 308, 315, 331] [25, 36, 40, 140, 176, 283, 290, 316] [24, 37, 41, 141, 177, 310, 317, 333] [13, 38, 42, 142, 178, 285, 292, 318] [12, 39, 43, 143, 179, 312, 319, 335] [1, 40, 44, 144, 180, 287, 294, 320] [0, 41, 45, 145, 181, 314, 321, 337] [42, 46, 59, 146, 182, 289, 296, 322] [43, 47, 58, 147, 183, 316, 323, 339] [44, 47, 48, 148, 184, 291, 298, 324] [45, 46, 49, 149, 185, 318, 325, 341] [35, 46, 50, 150, 186, 293, 300, 326] [34, 47, 51, 151, 187, 320, 327, 343] [23, 48, 52, 152, 188, 295, 302, 328] [22, 49, 53, 153, 189, 322, 329, 345] [11, 50, 54, 154, 190, 297, 304, 330] [10, 51, 55, 155, 191, 324, 331, 347] [52, 56, 69, 156, 192, 299, 306, 332] [53, 57, 68, 157, 193, 326, 333, 349] [54, 57, 58, 158, 194, 301, 308, 334] [55, 56, 59, 159, 195, 281, 328, 335] [45, 56, 60, 160, 196, 303, 310, 336] [44, 57, 61, 161, 197, 283, 330, 337] [33, 58, 62, 162, 198, 305, 312, 338] [32, 59, 63, 163, 199, 285, 332, 339] [21, 60, 64, 164, 200, 307, 314, 340] [20, 61, 65, 165, 201, 287, 334, 341] [9, 62, 66, 166, 202, 309, 316, 342] [8, 63, 67, 167, 203, 289, 336, 343] [64, 67, 68, 168, 204, 311, 318, 344] [65, 66, 69, 169, 205, 291, 338, 345] [0, 55, 66, 170, 206, 313, 320, 346] [1, 54, 67, 171, 207, 293, 340, 347] [2, 43, 68, 172, 208, 315, 322, 348] [3, 42, 69, 173, 209, 295, 342, 349] [70, 74, 101, 210, 244, 280, 342] [71, 75, 100, 211, 245, 281, 329] [72, 76, 89, 212, 246, 282, 344] [73, 77, 88, 213, 247, 283, 331] [74, 77, 78, 214, 248, 284, 346] [75, 76, 79, 215, 249, 285, 333] [76, 80, 135, 216, 250, 286, 348] [77, 81, 134, 217, 251, 287, 335] [78, 82, 123, 218, 252, 280, 288] [79, 83, 122, 219, 253, 289, 337] [80, 84, 111, 220, 254, 282, 290] [81, 85, 110, 221, 255, 291, 339] [82, 86, 99, 222, 256, 284, 292] [83, 87, 98, 223, 257, 293, 341] [84, 87, 88, 224, 258, 286, 294] [85, 86, 89, 225, 259, 295, 343] [75, 86, 90, 226, 260, 288, 296] [74, 87, 91, 227, 261, 297, 345] [88, 92, 133, 228, 262, 290, 298] [89, 93, 132, 229, 263, 299, 347] [90, 94, 121, 230, 264, 292, 300] [91, 95, 120, 231, 265, 301, 349] [92, 96, 109, 232, 266, 294, 302] [93, 97, 108, 233, 267, 281, 303] [94, 97, 98, 234, 268, 296, 304] [95, 96, 99, 235, 269, 283, 305] [85, 96, 100, 236, 270, 298, 306] [84, 97, 101, 237, 271, 285, 307] [73, 98, 102, 238, 272, 300, 308] [72, 99, 103, 239, 273, 287, 309] [100, 104, 131, 240, 274, 302, 310] [101, 105, 130, 241, 275, 289, 311] [102, 106, 119, 242, 276, 304, 312] [103, 107, 118, 243, 277, 291, 313] [104, 107, 108, 244, 278, 306, 314] [105, 106, 109, 245, 279, 293, 315] [95, 106, 110, 210, 246, 308, 316] [94, 107, 111, 211, 247, 295, 317] [83, 108, 112, 212, 248, 310, 318] [82, 109, 113, 213, 249, 297, 319] [71, 110, 114, 214, 250, 312, 320] [70, 111, 115, 215, 251, 299, 321] [112, 116, 129, 216, 252, 314, 322] [113, 117, 128, 217, 253, 301, 323] [114, 117, 118, 218, 254, 316, 324] [115, 116, 119, 219, 255, 303, 325] [105, 116, 120, 220, 256, 318, 326] [104, 117, 121, 221, 257, 305, 327] [93, 118, 122, 222, 258, 320, 328] [92, 119, 123, 223, 259, 307, 329] [81, 120, 124, 224, 260, 322, 330] [80, 121, 125, 225, 261, 309, 331] [122, 126, 139, 226, 262, 324, 332] [123, 127, 138, 227, 263, 311, 333] [124, 127, 128, 228, 264, 326, 334] [125, 126, 129, 229, 265, 313, 335] [115, 126, 130, 230, 266, 328, 336] [114, 127, 131, 231, 267, 315, 337] [103, 128, 132, 232, 268, 330, 338] [102, 129, 133, 233, 269, 317, 339] [91, 130, 134, 234, 270, 332, 340] [90, 131, 135, 235, 271, 319, 341] [79, 132, 136, 236, 272, 334, 342] [78, 133, 137, 237, 273, 321, 343] [134, 137, 138, 238, 274, 336, 344] [135, 136, 139, 239, 275, 323, 345] [70, 125, 136, 240, 276, 338, 346] [71, 124, 137, 241, 277, 325, 347] [72, 113, 138, 242, 278, 340, 348] [73, 112, 139, 243, 279, 327, 349]
H_Z (140 checks, sparse supports)
[0, 7, 26, 70, 78, 280, 321, 346] [1, 34, 55, 71, 93, 281, 320, 347] [2, 9, 28, 72, 80, 282, 309, 348] [3, 36, 57, 73, 95, 283, 308, 349] [4, 11, 30, 74, 82, 280, 284, 297] [5, 38, 59, 75, 97, 281, 285, 296] [6, 13, 32, 76, 84, 282, 285, 286] [7, 40, 61, 77, 99, 283, 284, 287] [8, 15, 34, 78, 86, 284, 288, 343] [9, 42, 63, 79, 101, 285, 289, 342] [10, 17, 36, 80, 88, 286, 290, 331] [11, 44, 65, 81, 103, 287, 291, 330] [12, 19, 38, 82, 90, 288, 292, 319] [13, 46, 67, 83, 105, 289, 293, 318] [14, 21, 40, 84, 92, 290, 294, 307] [15, 48, 69, 85, 107, 291, 295, 306] [16, 23, 42, 86, 94, 292, 295, 296] [1, 17, 50, 87, 109, 293, 294, 297] [18, 25, 44, 88, 96, 283, 294, 298] [3, 19, 52, 89, 111, 282, 295, 299] [20, 27, 46, 90, 98, 296, 300, 341] [5, 21, 54, 91, 113, 297, 301, 340] [22, 29, 48, 92, 100, 298, 302, 329] [7, 23, 56, 93, 115, 299, 303, 328] [24, 31, 50, 94, 102, 300, 304, 317] [9, 25, 58, 95, 117, 301, 305, 316] [26, 33, 52, 96, 104, 302, 305, 306] [11, 27, 60, 97, 119, 303, 304, 307] [28, 35, 54, 98, 106, 293, 304, 308] [13, 29, 62, 99, 121, 292, 305, 309] [30, 37, 56, 100, 108, 281, 306, 310] [15, 31, 64, 101, 123, 280, 307, 311] [32, 39, 58, 102, 110, 308, 312, 339] [17, 33, 66, 103, 125, 309, 313, 338] [34, 41, 60, 104, 112, 310, 314, 327] [19, 35, 68, 105, 127, 311, 315, 326] [36, 43, 62, 106, 114, 312, 315, 316] [0, 21, 37, 107, 129, 313, 314, 317] [38, 45, 64, 108, 116, 303, 314, 318] [2, 23, 39, 109, 131, 302, 315, 319] [40, 47, 66, 110, 118, 291, 316, 320] [4, 25, 41, 111, 133, 290, 317, 321] [42, 49, 68, 112, 120, 318, 322, 349] [6, 27, 43, 113, 135, 319, 323, 348] [0, 44, 51, 114, 122, 320, 324, 337] [8, 29, 45, 115, 137, 321, 325, 336] [2, 46, 53, 116, 124, 322, 325, 326] [10, 31, 47, 117, 139, 323, 324, 327] [4, 48, 55, 118, 126, 313, 324, 328] [12, 33, 49, 71, 119, 312, 325, 329] [6, 50, 57, 120, 128, 301, 326, 330] [14, 35, 51, 73, 121, 300, 327, 331] [8, 52, 59, 122, 130, 289, 328, 332] [16, 37, 53, 75, 123, 288, 329, 333] [10, 54, 61, 124, 132, 330, 334, 347] [18, 39, 55, 77, 125, 331, 335, 346] [12, 56, 63, 126, 134, 332, 335, 336] [20, 41, 57, 79, 127, 333, 334, 337] [14, 58, 65, 128, 136, 323, 334, 338] [22, 43, 59, 81, 129, 322, 335, 339] [16, 60, 67, 130, 138, 311, 336, 340] [24, 45, 61, 83, 131, 310, 337, 341] [18, 62, 69, 70, 132, 299, 338, 342] [26, 47, 63, 85, 133, 298, 339, 343] [1, 20, 64, 72, 134, 287, 340, 344] [28, 49, 65, 87, 135, 286, 341, 345] [3, 22, 66, 74, 136, 342, 345, 346] [30, 51, 67, 89, 137, 343, 344, 347] [5, 24, 68, 76, 138, 333, 344, 348] [32, 53, 69, 91, 139, 332, 345, 349] [140, 147, 166, 210, 218, 280, 316] [141, 174, 195, 211, 233, 281, 317] [142, 149, 168, 212, 220, 282, 318] [143, 176, 197, 213, 235, 283, 319] [144, 151, 170, 214, 222, 284, 320] [145, 178, 199, 215, 237, 285, 321] [146, 153, 172, 216, 224, 286, 322] [147, 180, 201, 217, 239, 287, 323] [148, 155, 174, 218, 226, 288, 324] [149, 182, 203, 219, 241, 289, 325] [150, 157, 176, 220, 228, 290, 326] [151, 184, 205, 221, 243, 291, 327] [152, 159, 178, 222, 230, 292, 328] [153, 186, 207, 223, 245, 293, 329] [154, 161, 180, 224, 232, 294, 330] [155, 188, 209, 225, 247, 295, 331] [156, 163, 182, 226, 234, 296, 332] [141, 157, 190, 227, 249, 297, 333] [158, 165, 184, 228, 236, 298, 334] [143, 159, 192, 229, 251, 299, 335] [160, 167, 186, 230, 238, 300, 336] [145, 161, 194, 231, 253, 301, 337] [162, 169, 188, 232, 240, 302, 338] [147, 163, 196, 233, 255, 303, 339] [164, 171, 190, 234, 242, 304, 340] [149, 165, 198, 235, 257, 305, 341] [166, 173, 192, 236, 244, 306, 342] [151, 167, 200, 237, 259, 307, 343] [168, 175, 194, 238, 246, 308, 344] [153, 169, 202, 239, 261, 309, 345] [170, 177, 196, 240, 248, 310, 346] [155, 171, 204, 241, 263, 311, 347] [172, 179, 198, 242, 250, 312, 348] [157, 173, 206, 243, 265, 313, 349] [174, 181, 200, 244, 252, 280, 314] [159, 175, 208, 245, 267, 281, 315] [176, 183, 202, 246, 254, 282, 316] [140, 161, 177, 247, 269, 283, 317] [178, 185, 204, 248, 256, 284, 318] [142, 163, 179, 249, 271, 285, 319] [180, 187, 206, 250, 258, 286, 320] [144, 165, 181, 251, 273, 287, 321] [182, 189, 208, 252, 260, 288, 322] [146, 167, 183, 253, 275, 289, 323] [140, 184, 191, 254, 262, 290, 324] [148, 169, 185, 255, 277, 291, 325] [142, 186, 193, 256, 264, 292, 326] [150, 171, 187, 257, 279, 293, 327] [144, 188, 195, 258, 266, 294, 328] [152, 173, 189, 211, 259, 295, 329] [146, 190, 197, 260, 268, 296, 330] [154, 175, 191, 213, 261, 297, 331] [148, 192, 199, 262, 270, 298, 332] [156, 177, 193, 215, 263, 299, 333] [150, 194, 201, 264, 272, 300, 334] [158, 179, 195, 217, 265, 301, 335] [152, 196, 203, 266, 274, 302, 336] [160, 181, 197, 219, 267, 303, 337] [154, 198, 205, 268, 276, 304, 338] [162, 183, 199, 221, 269, 305, 339] [156, 200, 207, 270, 278, 306, 340] [164, 185, 201, 223, 271, 307, 341] [158, 202, 209, 210, 272, 308, 342] [166, 187, 203, 225, 273, 309, 343] [141, 160, 204, 212, 274, 310, 344] [168, 189, 205, 227, 275, 311, 345] [143, 162, 206, 214, 276, 312, 346] [170, 191, 207, 229, 277, 313, 347] [145, 164, 208, 216, 278, 314, 348] [172, 193, 209, 231, 279, 315, 349]
Code ID 350-70-10 · download JSON · raw on GitHub