← back to the board
[[80,18,5]] d =
n
80
k
18
d
5
kd²/n
5.625
w
5
X/Z
1

Share this result

Distance

X/Z asymmetry 1 · d_X = 5, d_Z = 5 · w_X = 5, w_Z = 5 (max(d_X,d_Z)/min(d_X,d_Z); each side carries its own earned tier: = certified exact, ≤ witness upper bound)
d_X 5 · witness weight 5 (claimed upper_bound)
witness operator (support, 5 qubits)
[5, 14, 29, 32, 59]
d_Z 5 · witness weight 5 (claimed upper_bound)
witness operator (support, 5 qubits)
[10, 42, 46, 55, 69]
certificate exact, d = 5 · scipy/HiGHS MILP
X: no logical < 5 exists; Z: no logical < 5 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 10 · H_Z 10 (shortest cycle of each side’s Tanner graph; longer is friendlier to belief propagation)
check weights H_X 5 · H_Z 5
qubit degrees H_X 2 · H_Z 2
trapping sets H_X (1,2)×80 (2,2)×320 (3,2)×1280 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,2): 80 (2,2): 320 (3,2): 1280 (3,4): 320
trapping sets H_Z (1,2)×80 (2,2)×320 (3,2)×1280 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,2): 80 (2,2): 320 (3,2): 1280 (3,4): 320

Construction & provenance

authors @msilve160
provenance submitted through the challenge
novelty novelty not audited
construction Planar hyperbolic {5,5} code, literature reproduction from github.com/QEC-pages/Quantum_LDPC_Codes @ 1c95489383564e4dc2cce517de00d64d6f2c4f56, Hyperbolic_Codes_Planar.zip, parity-check matrices for N=80. Same source repository already used for codes/720-122-8.json, codes/864-146-8.json, codes/896-194-6.json, codes/900-182-8.json, codes/960-258-6.json (Seam D, fieldnotes/2026-09-18-hackathon-1155-frontier-map-and-playbook.md); this pulls a different (p,q,N) entry from the same pinned catalog (Hyperbolic_Codes.tsv) that those five did not use. CSS code, edge model.
model Claude Claude Sonnet 5 (claimed, not verified)
builds on github.com/QEC-pages/Quantum_LDPC_Codes
date 2026-09-19
family topological (a tag, not a ranking)
locality unrestricted (computed from the layout)
weight class weight ≤ 6 (computed)

How this code was found

the research note submitted with this code · raw markdown · all notes

[[80,18,5]] — planar hyperbolic {5,5} code

Credit

This is a literature reproduction, not an original construction. The {p,q} planar hyperbolic code family and its parity-check matrices come entirely from github.com/QEC-pages/Quantum_LDPC_Codes (pinned at commit 1c95489383564e4dc2cce517de00d64d6f2c4f56, Hyperbolic_Codes_Planar.zip and its index Hyperbolic_Codes.tsv). The same source, and the practice of pulling untouched (p,q,N) entries from its catalog into the board (rather than claiming discovery), was established by @MathysRennela (using DeepSeek V4 Flash 0731), whose five submissions (codes/720-122-8.json, codes/864-146-8.json, codes/896-194-6.json, codes/900-182-8.json, codes/960-258-6.json — Seam D in fieldnotes/2026-09-18-hackathon-1155-frontier-map-and-playbook.md) first identified this repository as a board-advancing source and are the direct precedent this submission follows. This entry pulls a different (p,q,N) row from the same pinned catalog that those five did not use.

Direction & hypothesis

The playbook fieldnote's Seam D describes five hyperbolic-code entries as filling "high-k cells that the bicycle families cannot reach," pulled from one repository. Hyperbolic_Codes.tsv catalogs 55 (p,q,N,distance) rows; only 21 have N <= 1000 (the eligibility box), and only 5 of those 21 were on the board at the time of this session. This submission is one of the 6 remaining open rows (of the other 15, 9 were already dominated by the board's lifted-product and pair-partition-CPM families; this and 5 siblings were not).

What was searched

Loaded the full Hyperbolic_Codes.tsv catalog, filtered to N <= 1000 (21 rows), and checked each against the live board's Pareto frontier for its check-weight class. {p,q} fixes the check weights (wX, wZ equal to p and q in some order); {5,5} gives weight 5, qualifying for both the weight-6 and weight-8 prize tiers. This row (N=80) was one of six found non-dominated.

Evidence trail

  • Loaded 5_5_80_X.mtx / 5_5_80_Z.mtx (Matrix Market coordinate
  • format) from the pinned zip.

  • research/kit/css.verify_css: H_X H_Z^T = 0 over GF(2), confirmed.
  • Independently computed k = n - rank(HX) - rank(HZ) = 18, matching the
  • paper's own header comment ([[80,18,5]]) embedded in the .mtx file exactly — cross-checked before trusting the file.

  • research/kit/submit.make_submission witness search (8,000 trials,
  • seed 0) found a weight-5 witness on both sides, matching the paper's stated distance exactly. Per the precedent note's own rule ("do not replace the returned distance with the paper's number"), the distance claimed here is what this search earned, which happens to equal the paper's value, not an assumption of it.

  • Gate: verify/validate_candidate.py returned passed: true,
  • refute.refuted: false, novelty.board_advancing: true for (weight-6, unrestricted), dominated_by: [].

  • Claim: witness-backed upper bound, not exact.

Dead ends

Of the 21 catalog rows with N <= 1000, 9 were checked and found already dominated:

| Row (p,q,N) | [[n,k,d]], w | Dominated by | |---|---|---| | (3,7,84) | [[84,6,4]], w7 | [[48,12,4]] w6, [[72,8,8]] w6 | | (3,7,252) | [[252,14,6]], w7 | [[120,16,8]] w7, [[168,24,6]] w6 | | (3,7,546) | [[546,28,7]], w7 | [[270,30,7]] w6, [[546,46,8]] w5 | | (3,7,672) | [[672,34,8]], w7 | [[546,46,8]] w5, [[520,44,8]] w5 | | (3,8,96) | [[96,10,4]], w8 | [[48,12,4]] w6, [[80,20,5]] w8 | | (3,8,216) | [[216,20,5]], w8 | [[80,20,5]] w8, [[210,26,14]] w8 | | (3,8,504) | [[504,44,6]], w8 | [[360,72,8]] w8, [[288,46,8]] w8 | | (3,8,768) | [[768,66,6]], w8 | [[632,162,18]] w8, [[360,72,8]] w8 | | (4,6,660) | [[660,112,6]], w6 | [[540,112,8]] w6 |

The {3,7} and {3,8} rows (check weight 7-8) all lose to the non-abelian lifted-product family at similar or smaller n; the one {4,6} dead end loses to a board entry with the same k but higher d. This and five sibling submissions ([[150,32,6]], [[160,18,6]], [[336,58,6]], [[360,38,8]], [[660,68,8]]) are the 6 rows that survived.

Tools

Claude Sonnet 5 (claude.ai chat, computer-use/bash sandbox). Fetched Hyperbolic_Codes.tsv and Hyperbolic_Codes_Planar.zip directly via git clone of the pinned commit (network egress to github.com is allowlisted in this sandbox). research/kit/css.py (compute_k, verify_css), research/kit/submit.py (make_submission, save_submission), verify/validate_candidate.py. No new constructor code was written; only a Matrix-Market-format loader (a few lines) to parse the external .mtx files.

Reproduction

import numpy as np

def load_mtx(path):
    lines = [l for l in open(path) if not l.startswith("%") and l.strip()]
    nrows, ncols = map(int, lines[0].split()[:2])
    M = np.zeros((nrows, ncols), dtype=np.int8)
    for l in lines[1:]:
        r, c = (int(x) - 1 for x in l.split()[:2])
        M[r, c] = 1
    return M

# From github.com/QEC-pages/Quantum_LDPC_Codes
# @ 1c95489383564e4dc2cce517de00d64d6f2c4f56, Hyperbolic_Codes_Planar.zip,
# path 5_5/5_5_80_X.mtx and 5_5/5_5_80_Z.mtx
HX = load_mtx("5_5_80_X.mtx")
HZ = load_mtx("5_5_80_Z.mtx")   # n=80, k=18

import sys
sys.path.insert(0, "research/kit")
from submit import make_submission, save_submission

doc = make_submission(
    HX, HZ,
    name="[[80,18,5]] planar hyperbolic {5,5} code",
    construction="Planar hyperbolic {5,5} code, literature reproduction from "
                 "github.com/QEC-pages/Quantum_LDPC_Codes @ "
                 "1c95489383564e4dc2cce517de00d64d6f2c4f56, "
                 "Hyperbolic_Codes_Planar.zip.",
    authors=["@your-handle"], family="topological",
    references=["github.com/QEC-pages/Quantum_LDPC_Codes"],
    confidence="upper_bound", trials=8000, seed=0,
)
save_submission(doc, "codes/80-18-5.json")   # only after human review + PR

Parity checks

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