Wanted · 从理想症状到真实电路Wanted · Ideal syndromes, real circuits
QEC-Bank 开放问题导读 · Wanted · 从理想症状到真实电路QEC-Bank open-problem guide · Wanted · From ideal syndromes to real circuits

从理想症状
到真实电路
From ideal syndromes
to real circuits

Toric Code 教程里的译码游戏有一个隐含假设:每条检查的读数都是对的。真实机器里,读数是由一个「帮手比特」跑一段小电路收集来的,帮手自己会错、会读反、会把自己的某些错误传回数据比特(它是 CNOT 的目标端,传回去的是相位型错误)、会在路上耽误、甚至会跑出 0/1 的字母表。把这些都算进去之后,一个码「存得好不好」就不再是检查矩阵自己的属性,而是「提取电路 + 探测器模型 + 译码器 + 噪声归一化」这四件东西捆在一起的属性。QEC-Bank 里的量子扩展码条目在理想症状下有三条译码记录,在真实电路下的那一栏却写着 none-known。这一篇讲这道开放问题是什么、QEC-Bank 现在怎么凑合、为什么我们想要答案、一个合格的答案长什么样。 The decoding game of the toric-code guide has a hidden assumption: every check reading is correct. In a real machine a reading is collected by a “helper qubit” running a small circuit, and the helper itself can fail, be misread, pass some of its own faults back to the data qubits (it is the CNOT target, so what travels back is a phase-type error), be delayed on the way, or even leave the 0/1 alphabet. Once all of that is counted, how well a code “stores” is no longer a property of the check matrix alone but of four things pinned together: extraction circuit, detector model, decoder and noise normalisation. The QEC-Bank entry for quantum expander codes has three decoder records under ideal syndromes; the column for real circuits reads none-known. This guide explains what the open problem is, how the QEC-Bank copes today, why we want the answer, and what a qualifying answer looks like.

前置:只需要《从高考数学到 Toric Code》——奇偶检查、泡利串、稳定子、错误链与症状、配对纠错。别的一切(帮手比特、探测器、码容量、现象学、电路级、路由、泄漏、相关故障、合同)都从一个 3 比特的手算玩具出发再命名。状态:open(Wanted 板原文)。 Prerequisite: only “From Exam Maths to the Toric Code”: parity checks, Pauli strings, stabilizers, error chains and syndromes, correction by pairing. Everything else (helper qubit, detector, code capacity, phenomenological, circuit level, routing, leakage, correlated faults, contract) is built from a 3-bit toy you can compute by hand before it gets a name. Status: open (the word on the Wanted board).
目录Contents
第 0 章Chapter 0

速查回顾:五条随身事实Quick recap: five facts to carry

这一篇只依赖 Toric Code 教程里的五件事。每一条都给出原处的链接;记不清就点回去,读完再回来。 This guide relies on five things from the toric-code guide. Each comes with a link to where it was taught; if one is hazy, follow the link and come back.

#事实Fact原处Where it was taught
1一条奇偶检查只问「这几个比特加起来是偶数吗」,答案是 +1 或 −1;−1 叫警报,全部检查的答案合起来叫症状。A parity check only asks “do these bits add up to an even number?”; the answer is +1 or −1, −1 is an alarm, and the answers of all checks together are the syndrome.2.3 节section 2.3
2一个稳定子码就是一份互相兼容的检查清单;逻辑算符 = 与所有检查对易、却不是检查乘积的泡利串。A stabilizer code is a list of mutually compatible checks; a logical operator is a Pauli string that commutes with every check yet is not a product of checks.4.4 节section 4.4
3L × L 环面码:2L² 个比特,L² 条星检查、L² 条面检查,k = 2 个逻辑比特,码距 d = L。L = 3 时是 [[18, 2, 3]]。The L × L toric code: 2L² qubits, L² star checks and L² plaquette checks, k = 2 logical qubits, distance d = L. For L = 3 it is [[18, 2, 3]].5.3 节section 5.3 · 5.8 节section 5.8
4一串 Z 错误是一条链;报警的星恰是链的端点。一个错误点亮恰好两盏灯。A run of Z errors is a chain; the stars that fire are exactly the chain's endpoints. One error lights exactly two lamps.5.4 节section 5.4
5纠错 = 给症状配对:把亮起的灯两两连起来,沿连线翻回去;猜错类才算逻辑错误。这个游戏假设每盏灯都报得对。Correction = pairing up the syndrome: join the lit lamps in pairs and flip back along the joins; only guessing the wrong class counts as a logical error. The game assumes every lamp reports correctly.5.7 节section 5.7

记号:n = 物理量子比特数,k = 逻辑量子比特数,d = 码距(最轻逻辑算符触碰的比特数),L = 环面的边长。[[n, k, d]] 是量子码的名片写法。本篇和 QEC-Bank 一样,k 直接记逻辑比特数。

Notation: n = number of physical qubits, k = number of logical qubits, d = distance (qubits touched by the lightest logical operator), L = side length of the torus. [[n, k, d]] is the calling-card notation for a quantum code. Here, as in the QEC-Bank, k counts logical qubits directly.

第 1 章Chapter 1

这个问题用人话说是什么:报警的人也会错The problem in plain words: the one who raises the alarm can be wrong too

先用 3 个比特和 1 个帮手做一张四行的表,亲眼看到「数据错了」和「帮手报错了」在单独一轮里长得一模一样,再看多测一轮怎么把它们分开。然后把「读数怎么来的」这件事逐层写实:三层噪声模型,四种真实故障。最后读 Wanted 板的原文。 First build a table of a few rows with 3 bits and 1 helper, and see with your own eyes that “the data is wrong” and “the helper reported wrongly” look identical within a single round; then see how one more round separates them. Then make “where the reading comes from” progressively realistic: three noise models, four kinds of real fault. Finally read the Wanted board's wording.

1.1玩具:一条检查,一个帮手,一张表The toy: one check, one helper, one table

取三个数据比特 b1、b2、b3,只看一条检查:「b1 ⊕ b2 = 0 吗」(⊕ 读「异或」,就是2.3 节的模 2 加法:0⊕0 = 0,0⊕1 = 1,1⊕1 = 0)。Toric Code 教程直接把答案写在纸上;真实机器不能,它要用一个帮手比特ancilla / helper qubit:一个额外的比特,先置 0,依次与要检查的数据比特做「异或进来」的操作(量子里叫 CNOT),最后单独读出它。读出的值就是这条检查的答案。 h 去收集:h 先置 0,再把 b1 异或进 h,再把 b2 异或进 h,最后读 h。读到 0 就是「偶,没警报」,读到 1 就是「奇,警报」。这就是一条检查的提取电路syndrome-extraction circuit:制备帮手、逐个 CNOT、读出、复位,这一小段步骤合起来叫提取电路。。现在假设机器每一轮都跑一遍这段电路,我们把读数按轮记下来。

Take three data bits b1, b2, b3 and look at one check only: “is b1 ⊕ b2 = 0?” (⊕ reads “xor”, the mod-2 addition of section 2.3: 0⊕0 = 0, 0⊕1 = 1, 1⊕1 = 0). The toric-code guide simply writes the answer on paper; a real machine cannot, it collects it with a helper qubitancilla: an extra qubit, first set to 0, then xor-ed with each data qubit to be checked in turn (a CNOT in quantum language), and finally read out on its own. The value read is the check's answer. h: set h to 0, xor b1 into h, xor b2 into h, read h. Reading 0 means “even, no alarm”; reading 1 means “odd, alarm”. This is the extraction circuitsyndrome-extraction circuit: prepare the helper, one CNOT per data qubit, read out, reset; these few steps together are the extraction circuit. of one check. Now suppose the machine runs this circuit every round and we write the readings down round by round.

实际发生了什么What actually happened理想症状(纸上的真值)Ideal syndrome (the truth on paper)第 1 轮读数Reading, round 1第 2 轮读数Reading, round 2第 3 轮读数Reading, round 3
什么都没发生Nothing0000
第 1 轮前 b1 翻了(数据错误)b1 flipped before round 1 (data error)1111
第 1 轮帮手 h 被读反了(测量错误)helper h misread in round 1 (measurement error)0100
第 1 轮前 b3 翻了b3 flipped before round 10000

看第二行和第三行的第 1 轮:都是 1。只看这一轮,译码器无法区分「b1 真的翻了」和「b1 好好的,是帮手报错了」。前者需要把 b1 翻回去,后者什么都不该做——做了反而制造一个错误。这就是测量错误measurement error:数据比特没错,但检查的读数错了。单独一轮里与真警报无法区分。的全部麻烦。第四行提醒一件事:这条检查根本不看 b3,所以 b3 翻了它不报——在真正的码里,b3 会被别的检查盯着。

Look at rows two and three in round 1: both read 1. From that round alone a decoder cannot tell “b1 really flipped” from “b1 is fine, the helper reported wrongly”. The former needs b1 flipped back; the latter needs nothing done, and doing something would create an error. That is the whole trouble with a measurement errorThe data qubits are fine but the check's reading is wrong. Indistinguishable from a real alarm within a single round.. Row four is a reminder: this check never looks at b3, so a flip of b3 goes unreported here; in a real code other checks watch b3.

1.2多测一轮,只报「变化」:探测器Measure one more round and report only “change”: detectors

表里第二行和第三行在第 2 轮分开了:真的数据错误让读数持续为 1,帮手的一次误读只影响一轮。于是不看读数本身,看读数有没有变。定义探测器detector:同一条检查相邻两轮读数的异或,D(t) = s(t) ⊕ s(t−1)。读数不变时为 0,只有「变了」才亮。第 0 轮之前约定读数为 0。 D(t) = s(t) ⊕ s(t−1):s(t) 是第 t 轮的读数。把上表改写成探测器:

Rows two and three separate in round 2: a real data error keeps the reading at 1 persistently, one misread of the helper affects one round. So instead of the reading itself, look at whether it changed. Define the detectorThe xor of the same check's readings in two consecutive rounds, D(t) = s(t) ⊕ s(t−1). It is 0 while the reading is unchanged and lights only on a “change”. The reading before round 0 is taken to be 0 by convention. D(t) = s(t) ⊕ s(t−1), where s(t) is the reading in round t. Rewrite the table in detectors:

D(t) = s(t) ⊕ s(t−1)

记号:t = 轮数(1, 2, 3, …);s(t) = 第 t 轮这条检查的读数(0 或 1);D(t) = 第 t 轮的探测器;⊕ = 异或。

Notation: t = round number (1, 2, 3, …); s(t) = this check's reading in round t (0 or 1); D(t) = the detector of round t; ⊕ = xor.

实际发生了什么What actually happenedD(1)D(2)D(3)花样Pattern
b1 翻了b1 flipped100亮一次,之后安静lights once, then quiet
h 第 1 轮读反h misread in round 1110相邻两轮各亮一次(时间方向的一对)lights in two consecutive rounds (a pair along time)
b1 在第 2 轮和第 3 轮之间翻了b1 flipped between rounds 2 and 3001亮一次,在它发生的那一轮lights once, in the round it happened

在真正的码里,一个数据错误同时点亮它两端的两条检查(第 0 章事实 4),所以数据错误的探测器花样是「同一轮、相邻两条检查」的一对;测量错误的花样是「同一条检查、相邻两轮」的一对。两种一对,方向不同,同一种配对游戏可以一起处理——这是《译码器 · 高中数学版》5.1 节和5.2 节的时空译码。人话:测量错误不需要新思想,只需要新维度:把时间画成第二根轴。但请记住第三行:探测器只告诉你「哪一轮变了」,不告诉你「谁变的」;决定谁变的仍是译码器的猜测。

In a real code one data error lights the two checks at its ends at once (Chapter 0, fact 4), so a data error's detector pattern is a pair “same round, two neighbouring checks”, while a measurement error's is a pair “same check, two consecutive rounds”. Two kinds of pair in two directions, and one pairing game handles both: that is the spacetime decoding of sections 5.1 and 5.2 of “Decoders · High-School Edition”. In plain words: measurement errors need no new idea, only a new dimension: draw time as a second axis. But keep row three in mind: a detector only tells you “which round changed”, not “who changed”; deciding who is still the decoder's guess.

数据错误:b2 在第 3 轮前翻了 Data error: b2 flips before round 3 c1 c2 第1轮 round 1 第2轮 round 2 第3轮 round 3 第4轮 round 4 0 0 0 0 1 1 0 0 同一轮、两条相邻检查:横向一对 horizontal pair: one round, two checks 测量错误:c1 的帮手第 2 轮读反 Measurement error: c1's helper misread in round 2 c1 c2 第1轮 round 1 第2轮 round 2 第3轮 round 3 第4轮 round 4 0 0 1 0 1 0 0 0 同一条检查、相邻两轮:纵向一对 vertical pair: one check, two rounds

图注:每格是一个探测器 D(t) 的值,列 = 检查(c1 问 b1 ⊕ b2,c2 问 b2 ⊕ b3),行 = 轮次;填色、写 1 的格子是亮起的探测器,连线标出一对。左:b2 同时被 c1、c2 盯着,它翻了,两条检查在同一轮各亮一次。右:c1 第 2 轮多读出一个 1,第 3 轮读数弹回,D(2)、D(3) 各亮一次。两个例子都是本篇手算的。

Caption: each cell is the value of one detector D(t); columns = checks (c1 asks b1 ⊕ b2, c2 asks b2 ⊕ b3), rows = rounds; filled cells marked 1 are lit detectors, and the line marks the pair. Left: b2 is watched by both c1 and c2; when it flips, both checks light once in the same round. Right: c1 reads an extra 1 in round 2 and the reading snaps back in round 3, so D(2) and D(3) light once each. Both examples were worked out by hand for this guide.

检查站Checkpoint第 1 章Chapter 1
1.1 节的那条检查连测 4 轮,读数依次是 0, 0, 1, 0;别的检查全程安静。最省事的解释是什么?The check of section 1.1 is measured for 4 rounds and reads 0, 0, 1, 0; every other check is quiet throughout. What is the most economical explanation?

对。探测器是 D(3) = 1、D(4) = 1,时间方向的一对,正是一次误读的指纹;而且别的检查都安静,说明没有数据比特翻过(否则它另一端的检查也会亮)。第三个选项也能解释读数,但要用两个巧合而不是一个——译码器押最省事的那一类。

Right. The detectors are D(3) = 1, D(4) = 1, a pair along time, exactly the fingerprint of one misread; and every other check is quiet, so no data qubit flipped (otherwise the check at its other end would light too). The third option also explains the readings, but with two coincidences instead of one; a decoder bets on the most economical class.

再想:读数 1 只出现了一轮就回去了。真的数据错误会让读数持续为 1,直到有人修它;而且它会同时点亮另一端的检查。

Think again: the reading was 1 for one round and went back. A real data error keeps the reading at 1 persistently until someone repairs it, and it also lights the check at its other end.

1.3三层噪声模型:同一张表的三行Three noise models: three rows of one table

「一个码在错误率 p 下存得好不好」这句话里,「错误率 p」指什么,取决于你允许哪些东西出错。文献里分三层,越往下越像真机器,也越难:

In the sentence “how well a code stores at error rate p”, what “error rate p” means depends on what you allow to fail. The literature distinguishes three levels, each more like a real machine, and harder, than the last:

层Level什么会错What can fail在 1.1 节的玩具里In the toy of 1.1译码器看到什么What the decoder sees
码容量Code capacity只有数据比特,各自独立地以概率 p 出错;读数完美。Only data qubits, each independently with probability p; readings perfect.表里只允许第二、第四行那类事件;读数 = 理想症状。Only events like rows two and four allowed; reading = ideal syndrome.一轮理想症状;Toric Code 教程 5.7 节的游戏。One round of ideal syndrome; the game of toric-code section 5.7.
现象学Phenomenological每轮每个数据比特以概率 p 出错,而且每条检查的读数以概率 q 读反;不问电路内部。Each round every data qubit fails with probability p and every check's reading is flipped with probability q; the circuit's interior is not examined.第三行那类事件也允许了。Events like row three are now allowed too.许多轮读数,改用探测器;时空配对。Many rounds of readings, turned into detectors; spacetime pairing.
电路级Circuit level提取电路的每一步(制备帮手、每个 CNOT、读出、空等)都是一个可能出错的位置,各以概率 p 出错;一个位置的故障可以传给多个比特。Every step of the extraction circuit (helper preparation, each CNOT, readout, idling) is a location that can fail, each with probability p; one location's fault may spread to several qubits.帮手在「异或进 b1」之后、「异或进 b2」之前翻了:读数错;经典的比特翻转传不回 b2(帮手是目标端),但在量子版本里帮手上的相位错误会顺着第二个 CNOT 传到 b2,成为那里的 Z 错误。The helper flips after “xor in b1” and before “xor in b2”: the reading is wrong; a classical bit flip never travels back to b2 (the helper is the target), but in the quantum version a phase error on the helper propagates through the second CNOT onto b2 as a Z error.探测器,但花样不再总是「一对」;先要一张「每种故障点亮哪些探测器」的表。Detectors, but patterns are no longer always “a pair”; first a table of “which detectors each fault lights” is needed.

三层不是同一道题的三种难度,是三道不同的题,答案(阈值)不能互相比。《译码器 · 高中数学版》的账本给了表面码在三层下的数字;每个数字里的 p 指什么,要先说清。前两层用同一种数据错误:每个比特每轮各自独立地以概率 p 发生 X 翻转,并独立地以概率 p 发生 Z 翻转;X、Z 两类分开译码,所以 p 是「正在译的这一类翻转」的概率,不是「发生任意一种 Pauli 错误」的总概率。(对照:总概率为 p 的去极化噪声让 X、Y、Z 各以 p/3 出现,X 类翻转来自 X 或 Y,概率是 2p/3。)在这个约定下,完美测量、最小重量匹配约 10.3%;再让每条检查的读数每轮以概率 q = p 读反,约 2.9%。这两个数都来自 Wang、Harrington 与 Preskill 2003 年的数值模拟(5.3 节)。电路级约 0.5%–1%,依赖具体电路与「一步出错」的定义(5.4 节)。一个具体的例子是 Fowler 等 2012 年的模型:一轮提取电路分 8 步;空等或 Hadamard 之后以 p/3 的概率各插入 X、Y、Z;制备与读出各以概率 p 出错;每个 CNOT 之后以 p/15 的概率各插入 15 种非平凡的两比特 Pauli;用最小重量匹配,得 0.57%,p 按每一步计。区间的上端来自别的电路与噪声约定,本篇没有逐一核对。三个数字都是文献里数值模拟得到的估计,译码器都是最小重量匹配,不是本篇或 QEC-Bank 算的。它们差了十几倍,码没变,变的是「什么算一次错误」。6.1 节说任何阈值数字至少要带五个限定项:错误信道、症状模型、电路约定、译码器、归一化。本篇后面每次出现数字,都会说它属于哪一行。

The three levels are not three difficulties of one problem but three different problems, and their answers (thresholds) cannot be compared across rows. The ledger of “Decoders · High-School Edition” gives the surface code's numbers at the three levels; first be clear what p means in each. The first two levels use the same data errors: in every round each qubit independently suffers an X flip with probability p and, independently, a Z flip with probability p; X and Z are decoded separately, so p is the probability of a flip of the type being decoded, not the total probability of some Pauli error. (For comparison: depolarizing noise of total probability p applies X, Y, Z with p/3 each; an X-type flip comes from X or Y, with probability 2p/3.) With this convention, perfect measurement and minimum-weight matching give about 10.3%; letting every check's reading also flip with probability q = p per round gives about 2.9%. Both come from the numerical simulations of Wang, Harrington and Preskill (2003) (section 5.3). Circuit level gives about 0.5%–1%, depending on the circuit and on how “one step fails” is defined (section 5.4). One concrete case is the model of Fowler et al. (2012): an extraction round has 8 steps; after an idle step or a Hadamard, X, Y or Z is inserted with probability p/3 each; preparation and readout each fail with probability p; after every CNOT one of the 15 nontrivial two-qubit Paulis is inserted with probability p/15 each; with minimum-weight matching this gives 0.57%, with p counted per step. The upper end of the range comes from other circuits and noise conventions that this guide did not check one by one. All three are estimates from numerical simulations in the literature, all with minimum-weight matching as the decoder, not computed by this guide or the QEC-Bank. They differ by more than tenfold; the code did not change, what counts as “one error” did. Section 6.1 says any threshold number needs at least five qualifiers: error channel, syndrome model, circuit convention, decoder, normalisation. Every time a number appears below, this guide says which row it belongs to.

记号:p = 码容量与现象学两层里,每个数据比特每轮发生 X 翻转(另算 Z 翻转)的概率;电路级里,按所用模型定义的每个位置每一步出错的概率;q = 每条检查读数每轮被读反的概率;阈值 = 低于它时把码做大能让逻辑错误率变小的那个 p。

Notation: p = in the code-capacity and phenomenological levels, the probability that a data qubit suffers an X flip (Z flips counted separately) per round; at circuit level, the per-step failure probability of one location as the chosen model defines it; q = the probability that a check's reading is flipped per round; threshold = the p below which making the code larger makes the logical error rate smaller.

1.4四个词,四个一行的玩具Four words, four one-line toys

Wanted 板的原文点了四种真实故障的名字:measurement、routing、leakage、correlated circuit faults。每个给一个一行的玩具:

The Wanted board names four kinds of real fault: measurement, routing, leakage, correlated circuit faults. One one-line toy for each:

原文Board word玩具Toy对译码器意味着什么What it means for the decoder
measurement1.1 节第三行:帮手读反了,数据没错。Row three of 1.1: the helper misread, the data is fine.在本篇演示的做法里(每轮重测、比较相邻两轮得到探测器),单轮症状不够,要多轮测量。有些码配上特定译码器是「单发」的:一轮带噪读数就能把残余错误压在小范围内(4.1 节)。In the procedure shown in this guide (measure every round, compare consecutive rounds to get detectors), one round of syndrome is not enough and many rounds are needed. Some codes with particular decoders are “single-shot”: one round of noisy readings already keeps the leftover error small (section 4.1).
routing一条检查要看的 6 个比特分散在房间的 6 个角落,帮手得挨个跑过去(或者有人先把比特搬到一起)。跑的时间里,所有比特都在继续出错。The 6 qubits one check must see sit in 6 corners of the room, and the helper must travel to each (or someone first carries the qubits together). While it travels, every qubit keeps failing.「一轮」变长、变复杂;哪些比特在什么时候等待,本身是电路的一部分,要写进故障位置表。“One round” becomes longer and more complex; which qubits wait when is itself part of the circuit and must enter the table of fault locations.
leakage一枚硬币立在了边上:它既不是正面也不是反面。一个比特跑出了 0/1 的字母表,奇偶检查问它「你是 0 还是 1」得到的是胡话。A coin lands on its edge: neither heads nor tails. A qubit has left the 0/1 alphabet, and a parity check asking “are you 0 or 1?” gets nonsense.这不是一个可以「翻回去」的错误;它可能连续多轮污染同一条检查,探测器花样不再是一对。Not an error that can be “flipped back”; it may pollute the same check for many consecutive rounds, and the detector pattern is no longer a pair.
correlated faults一滴雨同时打湿两块相邻的瓷砖。这是经典玩具画不出来的一种:帮手是 CNOT 的目标端,它自己翻转只会弄错读数,传不回数据位;量子版里帮手的相位错误会沿后面的 CNOT 传回数据比特——一次故障、多处后果,四腿检查上叫 hook error。One raindrop wets two neighbouring tiles. This is the kind the classical toy cannot draw: the helper is the CNOT target, so its own flip only spoils the reading and never travels back to the data bits; in the quantum version a phase error on the helper propagates back through the later CNOTs onto the data qubits — one fault, several consequences, called a hook error on a four-legged check.「一个故障 = 一个比特」不再成立;一个故障能一步走完逻辑算符的两格,电路里的有效码距可能比矩阵的 d 小。“One fault = one qubit” no longer holds; one fault can cover two squares of a logical operator at once, and the effective distance of the circuit may be smaller than the matrix's d.

第四行的最后一句值得停一下。BB 码条目的推导页把三个「距离」分开写(BB 译码器教程 4.3 节原文照录):static code distance(矩阵的 d:最轻的逻辑泡利串)、circuit distance(电路里最少多少个故障能不触发任何探测器却造成逻辑错误)、decoder-found failure weight(某个译码器在模拟里找到的最轻失败)。原文接着说:「A static distance of 12 is compatible with a smaller circuit distance under a bad schedule.」人话:矩阵说 12,坏的电路顺序可以让少于 12 个故障就够。具体少多少,要对那张电路逐一验证;推导页没有给出数字,本篇也不编一个。所以「真实电路下存得好不好」这道题,连码距都要重新算。

The last sentence of row four deserves a pause. The BB entry's derivation page keeps three “distances” apart (quoted in section 4.3 of the BB decoders guide): static code distance (the matrix's d: the lightest logical Pauli string), circuit distance (the fewest faults in the circuit that trip no detector yet cause a logical error), decoder-found failure weight (the lightest failure some decoder found in simulation). The source continues: “A static distance of 12 is compatible with a smaller circuit distance under a bad schedule.” In plain words: the matrix says 12, a bad circuit order can make fewer than 12 faults enough. How many fewer must be checked for that particular circuit; the derivation page gives no number, and this guide does not invent one. So for the question “how well does it store in a real circuit”, even the distance must be recomputed.

1.5Wanted 板的原文,逐词翻译The Wanted board's wording, word by word

Wanted 板原文 · statementWanted board, verbatim · statement

qldpc-circuit-decoding · “Circuit-level decoding for nongeometric qLDPC families” · status: open · difficulty: hard-engineering
“Build a replayable decoder and benchmark adapter for repeated syndrome extraction on sparse nongeometric qLDPC codes, including measurement, routing, leakage, and correlated circuit faults rather than only perfect syndrome bits.”

qldpc-circuit-decoding · “Circuit-level decoding for nongeometric qLDPC families” · status: open · difficulty: hard-engineering
“Build a replayable decoder and benchmark adapter for repeated syndrome extraction on sparse nongeometric qLDPC codes, including measurement, routing, leakage, and correlated circuit faults rather than only perfect syndrome bits.”

逐词翻译。replayable:可重放——别人拿同一份程序、同一个随机种子,跑出一模一样的数字(和码距篇里 seed 5、iters 2000 的搜索是同一种要求)。decoder:译码器,从探测器历史猜出该修什么的程序。benchmark adapter:基准适配器——一个「插头」,把这个码族接到 QEC-Bank 的基准测试台上,让它的表现能和别的码放进同一张表比(BB 译码器教程 3.1 节的三条记录就是那张表的几行)。repeated syndrome extraction:反复提取症状,即 1.2 节的多轮测量。sparse:稀疏——每条检查只碰少数比特(qLDPC 教程 1.2 节)。nongeometric:非几何——检查连接的比特不在平面上挨着;一条检查的 6 个比特可能分散得很远,于是 1.4 节的 routing 问题不可避免。qLDPC:量子低密度奇偶检查码。measurement, routing, leakage, and correlated circuit faults:1.4 节的四个词。rather than only perfect syndrome bits:而不是只有理想症状。人话:请为「检查连得很远」的那类码,造一台把测量错、路上错、跑出字母表、一错两处全算进去的可重放译码器,并把它插到 QEC-Bank 的比较表上。

Word by word. replayable: someone else, with the same program and the same random seed, gets identical numbers (the same demand as the seed-5, iters-2000 search of the distance guide). decoder: the program that guesses what to repair from the detector history. benchmark adapter: a “plug” connecting this code family to the QEC-Bank benchmark bench so its performance can sit in the same table as other codes (the three records of section 3.1 of the BB decoders guide are rows of that table). repeated syndrome extraction: the many-round measurement of 1.2. sparse: each check touches only a few qubits (qLDPC guide section 1.2). nongeometric: the qubits a check connects are not neighbours in a plane; a check's 6 qubits may be far apart, so the routing problem of 1.4 is unavoidable. qLDPC: quantum low-density parity-check codes. measurement, routing, leakage, and correlated circuit faults: the four words of 1.4. rather than only perfect syndrome bits: not just ideal syndromes. In plain words: for the codes whose checks reach far, build a replayable decoder that counts misreads, delays, alphabet escapes and one-fault-two-places, and plug it into the QEC-Bank comparison table.

第 2 章Chapter 2

QEC-Bank 现在是怎么凑合的:三条理想症状下的记录,一格 none-knownHow the QEC-Bank copes today: three records under ideal syndromes, one cell reading none-known

没有答案的时候,QEC-Bank 不假装有。量子扩展码条目的译码器一栏有三条记录,前两条的噪声设定都写着「完美症状」,第三条的状态就是 none-known 本身。先读板上的原文,再把原文里的每个名字对到卡片上的真实字段,最后看隔壁 BB 码条目为什么也只能引用一个带五个限定项的数字。 Without the answer, the QEC-Bank does not pretend to have it. The decoders field of the quantum-expander entry has three records; the first two state “perfect syndrome” in their noise setting, and the third's status is none-known itself. Read the board's wording first, match each name in it to the real fields on the card, then see why the neighbouring BB entry too can only cite one number with five qualifiers.

Wanted 板原文 · current_proxyWanted board, verbatim · current_proxy

“Perfect-syndrome small-set flip, BP-OSD, and algebraic CSS baselines; none is a family-specific circuit-level threshold workflow.”

“Perfect-syndrome small-set flip, BP-OSD, and algebraic CSS baselines; none is a family-specific circuit-level threshold workflow.”

三个名字,一句否定。small-set flip:量子扩展码自带的局部译码器(qLDPC 教程 6.4 节):反复找一小组比特,翻转它们能让亮起的检查数严格减少就翻。BP-OSD:置信传播(BP)让每个比特和碰它的检查之间来回传「这个比特错了的可能有多大」的估计,传若干轮后按估计猜错误;猜出的错误对不上症状(卡住)时,用 OSD(ordered statistics decoding:把比特按「多可疑」排序,再按这个顺序解线性方程)收尾(BB 教程 6.3 节)。algebraic CSS baselines:代数基线——直接解「哪些比特翻了能给出这个症状」的线性方程组,不管概率。Perfect-syndrome 修饰全部三个:它们都工作在 1.3 节的第一行。none is a family-specific circuit-level threshold workflow:没有一个是「为这一族码专门做的、电路级的、能给出阈值的完整流程」。人话:QEC-Bank 手里有三把在理想症状下能用的工具,没有一把是给真实电路的。

Three names, one negation. small-set flip: the local decoder that comes with quantum expander codes (qLDPC guide section 6.4): repeatedly find a small set of qubits whose flip strictly reduces the number of lit checks, and flip it. BP-OSD: belief propagation (BP) has each qubit and the checks touching it exchange estimates of “how likely this qubit is to be wrong”, and after some rounds guesses the error from those estimates; when the guess does not reproduce the syndrome (it stalls), OSD (ordered statistics decoding: sort the qubits by how suspicious they are, then solve the linear equations in that order) finishes the job (BB guide section 6.3). algebraic CSS baselines: solve the linear system “which flipped qubits give this syndrome” directly, ignoring probabilities. Perfect-syndrome qualifies all three: they all work in row one of 1.3. none is a family-specific circuit-level threshold workflow: none is a complete pipeline made for this family, at circuit level, delivering a threshold. In plain words: the QEC-Bank holds three tools that work under ideal syndromes and none for real circuits.

2.1条目:quantum_expander,两个实例The entry: quantum_expander, two instances

Wanted 板的 related 字段列了两个条目:quantum_expander 与 bivariate_bicycle。先看第一个。QEC-Bank 的量子扩展码条目(在 QEC-Bank 中查看 →)登记了两个确定性的有限实例,instances.yaml 原文:

The board's related field lists two entries: quantum_expander and bivariate_bicycle. The first one first. The QEC-Bank quantum-expander entry (open in the QEC-Bank →) registers two deterministic finite instances; instances.yaml verbatim:

标签Label[[n, k, d]]nkd因子(原文)Factor (verbatim)
complete_graph_5[[125, 37, 3]]125 · verified125 · verified37 · verified37 · verifiedexact 3 · verifiedexact 3 · verifiedcomplete-graph-5-incidence
affine_plane_4[[656, 170, 5]]656 · verified656 · verified170 · verified170 · verifiedlower 5 · upper 5(method: “HGP factor-codeword witness”)· claimed,ref tillich2009quantumlower 5 · upper 5 (method: “HGP factor-codeword witness”) · claimed, ref tillich2009quantumaffine-plane-4-incidence

两个实例的来历在qLDPC 教程 3.4 节:第一个是完全图 K5 的顶点–边关联矩阵(5 行 10 列)做超图积,第二个是四阶仿射平面的直线–点关联矩阵。条目页上 d 那一列分别写 verified 和 claimed:3 是穷举验出来的,5 是引文(Tillich 与 Zémor 2009,tillich2009quantum,已登记)。请注意这两个词说的都是静态码距——1.4 节三个距离里的第一个。它们对「真实电路下的距离」一个字也没说。

Where the two instances come from is in qLDPC guide section 3.4: the first is the hypergraph product of the vertex–edge incidence matrix of the complete graph K5 (5 rows, 10 columns), the second uses the line–point incidence matrix of the affine plane of order 4. The entry page writes verified and claimed in the d column respectively: 3 was verified by exhaustion, 5 is a citation (Tillich and Zémor 2009, tillich2009quantum, registered). Note that both words speak of the static distance, the first of the three distances of 1.4. They say nothing about “distance in a real circuit”.

2.2卡片的 decoders 字段:三条记录,逐字The card's decoders field: three records, verbatim

下面逐字转录 codes/quantum_expander/card.yaml 的 decoders 字段(渲染出的译码器页面 →)。每条记录有四个字段:id(译码器类型)、noise(它工作在什么噪声设定下)、status(成熟度)、notes(对这个码的说明)。

Below is the decoders field of codes/quantum_expander/card.yaml, transcribed word for word (the rendered decoders page →). Each record has four fields: id (decoder type), noise (the noise setting it works in), status (maturity), notes (what it means for this code).

idnoisestatusnotes
css-pivot“one exported finite CSS matrix with perfect X- and Z-syndrome bits; the deterministic algebraic solution ignores error likelihood and degeneracy”research-grade“This is only a reproducible matrix baseline. It is not small-set flip and inherits none of the adversarial or random-error expansion guarantees. The family-specific algorithm is explained in the small-set-flip view; the current controlled decoder registry has no distinct benchmark adapter for it.”
bp-osd“code-capacity Pauli noise with perfect syndrome on a sparse binary HGP check matrix”research-grade“BP-OSD is a generic qLDPC comparison point. Its finite-length behavior, tuning, and thresholds on other sparse families do not prove the expansion-conditioned small-set-flip theorem for this family.”
none-known“a complete repeated syndrome-extraction circuit with data, measurement, routing, leakage, and correlated hardware faults”none-known“No exact-family circuit-level threshold or repeated-syndrome experimental decoder was found in the primary-source search completed on 2026-08-09. This dated gap does not erase the perfect-syndrome small-set-flip theorem.”

三条记录对应 Wanted 板原文的三个名字,只是顺序不同。第一条 css-pivot 就是「algebraic CSS baselines」:渲染页解释它「Solves the X- and Z-syndrome linear systems by left-to-right GF(2) elimination with free variables fixed to zero」——用消元法解方程,能算但不聪明,「ignores likelihoods and degeneracy」(不管哪种错误更可能,也不管多个错误等价)。它的 notes 里藏着一句关键话:small-set flip 这个家族专属算法「has no distinct benchmark adapter」——QEC-Bank 的基准测试台上没有它的插头,它只以「view」(一段讲解)的形式存在。第二条 bp-osd 的噪声设定写明「code-capacity … perfect syndrome」,1.3 节第一行。第三条的 id 和 status 都是 none-known,noise 一栏写的正是本篇标题里的「真实电路」:数据、测量、路由、泄漏、相关硬件故障,一个不少。notes 里两件事都说了:截至 2026-08-09 的文献检索没找到这一族的电路级阈值或实验译码器;这个空缺不否定完美症状下的 small-set-flip 定理。第三条记录还带一个 gap 字段,指向 wanted:qldpc-circuit-decoding——就是本篇。

The three records match the three names on the board, in a different order. Record one, css-pivot, is the “algebraic CSS baselines”: the rendered page explains that it “Solves the X- and Z-syndrome linear systems by left-to-right GF(2) elimination with free variables fixed to zero”, solving equations by elimination, workable but not clever, and “ignores likelihoods and degeneracy” (neither which error is more probable nor that several errors are equivalent). Its notes hide a key sentence: the family-specific small-set flip “has no distinct benchmark adapter”; the QEC-Bank benchmark bench has no plug for it, and it exists only as a “view” (an explanation). Record two, bp-osd, states “code-capacity … perfect syndrome” in its noise setting: row one of 1.3. Record three has none-known as both id and status, and its noise column is exactly the “real circuit” of this guide's title: data, measurement, routing, leakage, correlated hardware faults, none missing. The notes say two things: the primary-source search completed on 2026-08-09 found no circuit-level threshold or experimental decoder for this exact family; and this gap does not erase the perfect-syndrome small-set-flip theorem. Record three also carries a gap field pointing at wanted:qldpc-circuit-decoding, this very guide.

易错点Pitfall

none-known 不是「这个码不能译码」。它是一个带日期的否定检索结果:在指定的噪声设定(完整的重复提取电路)下,QEC-Bank 没找到公认的译码器。同一张卡片在理想症状下有定理、有两条可运行的基线。把 none-known 读成「没人会译这个码」是错的;读成「没人把真实电路下的译码做成可比较的流程」才对。

none-known does not mean “this code cannot be decoded”. It is a dated negative search result: under the stated noise setting (a complete repeated extraction circuit) the QEC-Bank found no accepted decoder. The same card has a theorem and two runnable baselines under ideal syndromes. Reading none-known as “nobody can decode this code” is wrong; reading it as “nobody has turned real-circuit decoding into a comparable pipeline” is right.

2.3为什么这一族躲不开 routing:卡片上的一句话Why this family cannot avoid routing: one sentence on the card

量子扩展码的检查矩阵是「非几何」的,卡片的一条 view(类型 nongeometric-syndrome-circuits,来源 curated,引文 delfosse2021measurement)原文:「Bounded check weight does not imply bounded-depth nearest-neighbor extraction in a low-dimensional layout. Expansion distributes Tanner neighbors non-geometrically, so a device needs long-range couplers, routing, or growing local depth.」人话:每条检查只碰 6 个比特(稀疏)不等于这 6 个比特在芯片上挨着;扩展性恰恰要求它们散得开。(「扩展」具体指什么、指哪张图,见下一段。)在平面上只连近邻的电路做不到这种散开:一块区域向外的连线只与它的周长成正比,跟不上区域的面积(qLDPC 教程 1.4 节的 Delfosse–Beverland–Tremblay 界)。所以机器要么有长距离的连线,要么让帮手跑路(routing),要么每轮多花很多步。同一张卡片的 realizations 字段补了一句日期:「No repeated-syndrome laboratory realization of the exact family was found as of 2026-08-09.」这就是为什么 Wanted 板的 statement 把 routing 单独点名:对表面码它不是问题,对这一族它是电路设计的核心。

The check matrix of a quantum expander code is “nongeometric”; one view on the card (type nongeometric-syndrome-circuits, origin curated, citing delfosse2021measurement) reads: “Bounded check weight does not imply bounded-depth nearest-neighbor extraction in a low-dimensional layout. Expansion distributes Tanner neighbors non-geometrically, so a device needs long-range couplers, routing, or growing local depth.” In plain words: a check touching only 6 qubits (sparse) does not make those 6 qubits neighbours on the chip; expansion demands precisely that they be spread out. (What “expansion” means, and on which graph, is the next paragraph.) A circuit with neighbour-only connections in a plane cannot spread things out like this: the wires leaving a region grow only with its perimeter and cannot keep up with its area (the Delfosse–Beverland–Tremblay bound of the qLDPC guide, section 1.4). So the machine needs long-range wiring, or a travelling helper (routing), or many more steps per round. The card's realizations field adds a dated sentence: “No repeated-syndrome laboratory realization of the exact family was found as of 2026-08-09.” That is why the board's statement names routing explicitly: for the surface code it is a non-issue, for this family it is the core of the circuit design.

「扩展」说的是哪张图。量子扩展码是一条经典码 H 与自己做超图积得到的(这里 H 是 K5 的 5 × 10 关联矩阵,2.1 节)。small-set-flip 定理(Leverrier、Tillich、Zémor 2015 的定理 2)的假设落在经典因子码的 Tanner 图上:比特各画一个圆,检查各画一个方块,检查读某个比特就连一条线。设每个比特连 Δ 条检查,集合 S 的邻居 Γ(S) 是至少连着 S 中一个比特的那些检查。S 最多能有 Δ·|S| 个邻居(各比特的线全落在不同的检查上);「左扩展」要求:凡是不超过全体固定比例的比特集合 S,都有 |Γ(S)| ≥ (1 − δ)·Δ·|S|,即几乎没有两条线撞在同一条检查上;检查一侧也要有同样的性质(「右扩展」),定理要求两侧的 δ 都小于 1/6。乘出来的量子码自己的 Tanner 图严格说并不是扩展图,论文的说法是它「保留了足够的扩展结构」,译码算法才能工作。

Which graph “expansion” is about. A quantum expander code is the hypergraph product of a classical code H with itself (here H is the 5 × 10 incidence matrix of K5, section 2.1). The hypothesis of the small-set-flip theorem (Theorem 2 of Leverrier, Tillich and Zémor 2015) is about the Tanner graph of the classical factor code: one circle per bit, one square per check, a line whenever a check reads a bit. Let every bit touch Δ checks; the neighbours Γ(S) of a set S of bits are the checks joined to at least one bit of S. S can have at most Δ·|S| neighbours (all its lines landing on different checks); “left expansion” demands that every set S of bits up to a fixed fraction of all bits has |Γ(S)| ≥ (1 − δ)·Δ·|S|, so almost no two lines land on the same check; the check side must have the same property (“right expansion”), and the theorem needs δ below 1/6 on both sides. The quantum code's own Tanner graph is, strictly speaking, not an expander; in the paper's words it retains enough expanding structure for the decoding algorithm to work.

数一数。K5 的码里比特 = 边(e01 连顶点 0 与 1,依此类推),检查 = 顶点,Δ = 2。下图左:e01 与 e23 没有公共顶点,邻居 v0、v1、v2、v3 共 4 个,正好是最多的 2 × 2。下图右:e01 与 e02 都连着 v0,邻居只有 v0、v1、v2 三个。δ < 1/6 要求两个比特至少有 (5/6) × 4 ≈ 3.33 个邻居,也就是全部 4 个,所以只要这样的两比特集合在「固定比例」之内,K5 的图就不满足定理的假设;三条边围成的三角形 {e01, e02, e12} 更糟,6 条线只落在 3 个检查上。所以 [[125,37,3]] 这样的小实例不在定理的适用范围里:定理说的是比特数趋于无穷的一族码,其中的图要有足够好的扩展(随机抽取的图以高概率满足要求,但没有已知的高效确定性构造,也没有高效的方法验证一张给定的图满足要求,这是 Fawzi、Grospellier、Leverrier 2018 自己写明的局限)。

Count it. In the K5 code the bits are edges (e01 joins vertices 0 and 1, and so on), the checks are vertices, and Δ = 2. Left in the figure: e01 and e23 share no vertex, so their neighbours are v0, v1, v2, v3, four, exactly the maximum 2 × 2. Right: e01 and e02 both touch v0, so their neighbours are only v0, v1, v2, three. δ < 1/6 requires two bits to have at least (5/6) × 4 ≈ 3.33 neighbours, i.e. all four, so as soon as such two-bit sets fall within the “fixed fraction”, the K5 graph fails the theorem's hypothesis; the triangle {e01, e02, e12} is worse, its 6 lines landing on only 3 checks. So a small instance such as [[125,37,3]] lies outside the theorem's reach: the theorem is about a family whose number of bits goes to infinity, with graphs that expand well enough (randomly sampled graphs qualify with high probability, but no efficient deterministic construction is known, nor an efficient way to certify that a given graph qualifies, a limitation that Fawzi, Grospellier and Leverrier (2018) state themselves).

两个不共用检查的比特 S = {e01, e23}Two bits with no common check S = {e01, e23} e01 e02 e03 e04 e12 e13 e14 e23 e24 e34 v0 v1 v2 v3 v4 邻居 v0 v1 v2 v3:4 个 = 最多可能的 2 × 2neighbours v0 v1 v2 v3: 4 = the maximum 2 × 2 两个共用 v0 的比特 S = {e01, e02}Two bits sharing v0 S = {e01, e02} e01 e02 e03 e04 e12 e13 e14 e23 e24 e34 v0 v1 v2 v3 v4 邻居 v0 v1 v2:3 个,比最多的 4 少 1neighbours v0 v1 v2: 3, one short of the maximum 4 比特bits 检查checks 圆 = 比特(K5 的一条边),方块 = 检查(K5 的一个顶点),线 = 「这条检查读这个比特」circle = bit (an edge of K5), square = check (a vertex of K5), line = “this check reads this bit” 橙色 = 集合 S 及其连线,粉色 = S 的邻居 Γ(S)orange = the set S and its lines, pink = its neighbours Γ(S)
图 2.1Fig. 2.1K5 关联码的 Tanner 图(经典因子码的图,不是量子码的图),两个大小为 2 的比特集合 S 与它们的邻居 Γ(S)。每个比特连 2 条检查,所以 |S| = 2 时最多 4 个邻居。左边一个不少;右边两条线撞在 v0 上,少了一个。数字本篇用脚本核对过。The Tanner graph of the K5 incidence code (the classical factor's graph, not the quantum code's), two sets S of two bits and their neighbours Γ(S). Every bit touches 2 checks, so |S| = 2 allows at most 4 neighbours. The left set reaches all 4; on the right two lines collide on v0 and one is lost. The counts were checked by script for this guide.

2.4隔壁的 BB 码:有一个数字,带五个限定项,且不导出电路Next door, the BB code: one number, five qualifiers, and no exported circuit

related 的第二个条目 bivariate_bicycle 是「有答案长什么样」的最近参照。它的卡片 decoders 字段第一条记录 bp-osd 的噪声设定是「memoryless Pauli and phenomenological qLDPC benchmarks」,状态 standard——1.3 节的前两行;第二条记录 bp-osd 的噪声设定是「circuit detector model for the seven-CNOT-layer extraction schedule」,状态 research-grade——第三行,并且带着文献里最常被引用的那个数字:0.8%。BB 教程 6.4 节把它的五个限定项逐条列过,BB 译码器教程 3.3 节再讲了一遍。QEC-Bank 的推导页 syndrome-circuits-and-decoding.md 第 5 节则列出 0.8% 不是什么(原文照录):

The second related entry, bivariate_bicycle, is the nearest reference for “what having an answer looks like”. The first record of its card's decoders field, bp-osd, has noise setting “memoryless Pauli and phenomenological qLDPC benchmarks”, status standard: the first two rows of 1.3. The second record, bp-osd, has noise setting “circuit detector model for the seven-CNOT-layer extraction schedule”, status research-grade: row three, carrying the most-cited number in the literature: 0.8%. BB guide section 6.4 lists its five qualifiers one by one and section 3.3 of the BB decoders guide goes through them again. Section 5 of the QEC-Bank derivation page syndrome-circuits-and-decoding.md lists what 0.8% is not (verbatim):

QEC-Bank 推导页原文 · 0.8% 不是什么QEC-Bank derivation page, verbatim · what 0.8% is not

“This is not: a code-capacity threshold; an asymptotic threshold proved for all BB choices; a property of BP-OSD independent of schedule; a hardware logical error rate; evidence that circuit distance equals static distance. It is also not a one-block pseudo-threshold against a physical baseline. Changing the scaling family, circuit, noise normalization, or decoder defines a different threshold experiment and can move or remove the crossing. The qualification is part of the number's meaning.”

“This is not: a code-capacity threshold; an asymptotic threshold proved for all BB choices; a property of BP-OSD independent of schedule; a hardware logical error rate; evidence that circuit distance equals static distance. It is also not a one-block pseudo-threshold against a physical baseline. Changing the scaling family, circuit, noise normalization, or decoder defines a different threshold experiment and can move or remove the crossing. The qualification is part of the number's meaning.”

最后一句是本篇的钥匙:限定项是数字含义的一部分。换电路、换归一化、换译码器,就是另一个实验。而且即便对 BB 码,QEC-Bank 也只是引用了这个数字,没有自己重跑:同一推导页第 2 节说「The QEC-Bank constructor exports only static check incidence. It intentionally does not manufacture a schedule from row support: support does not determine CNOT order, ancilla assignment, reset placement, or detector definitions.」第 7 节列出条目里没有的五样东西:「no ancilla coordinates; no seven-layer gate order; no reset or measurement operations; no detector definitions; no circuit-distance witness.」(BB 译码器教程 4.4 节)人话:知道一条检查碰哪 6 个比特,推不出这 6 个 CNOT 该按什么顺序做。所以哪怕是 QEC-Bank 里研究最充分的 qLDPC 条目,「真实电路」这一栏也只是一个带限定项的引文,不是一份能重放的流程。量子扩展码连引文都没有。

The last sentence is the key to this guide: the qualification is part of the number's meaning. Change the circuit, the normalisation or the decoder and it is another experiment. Moreover, even for the BB code the QEC-Bank only cites the number and has not rerun it: section 2 of the same derivation page says “The QEC-Bank constructor exports only static check incidence. It intentionally does not manufacture a schedule from row support: support does not determine CNOT order, ancilla assignment, reset placement, or detector definitions.” Section 7 lists five things the entry lacks: “no ancilla coordinates; no seven-layer gate order; no reset or measurement operations; no detector definitions; no circuit-distance witness.” (section 4.4 of the BB decoders guide) In plain words: knowing which 6 qubits a check touches does not tell you in which order to do the 6 CNOTs. So even for the most thoroughly studied qLDPC entry in the QEC-Bank, the “real circuit” column is a qualified citation, not a replayable pipeline. The quantum expander code does not even have the citation.

条目Entry码容量(第一行)Code capacity (row 1)现象学(第二行)Phenomenological (row 2)电路级(第三行)Circuit level (row 3)
quantum_expandercss-pivot、bp-osd(research-grade);small-set-flip 只有讲解,没有插头css-pivot, bp-osd (research-grade); small-set-flip is an explanation with no plug卡片上没有记录no record on the cardnone-known(2026-08-09)none-known (2026-08-09)
bivariate_bicyclebp-osd(standard,无数字)bp-osd (standard, no number)同一条记录(standard,无数字)the same record (standard, no number)bp-osd(research-grade):0.8%,引文,五个限定项;条目不导出电路bp-osd (research-grade): 0.8%, cited, five qualifiers; the entry exports no circuit
第 3 章Chapter 3

为什么我们想要答案:四件东西捆成一份合同,比较才成立Why we want the answer: four things bound into one contract, and only then can we compare

板上的 why_it_matters 只有一句话,但里面有一个精确的短语:「one versioned executable contract」。这一章把它拆成四个零件、两个形容词,然后回答:有了它,QEC-Bank 的哪些格子会换词,哪张表会变得可比,今天的读者做不到什么。 The board's why_it_matters is one sentence, but it contains a precise phrase: “one versioned executable contract”. This chapter takes it apart into four parts and two adjectives, then answers: with it, which QEC-Bank cells change their word, which table becomes comparable, and what a reader cannot do today.

Wanted 板原文 · why_it_mattersWanted board, verbatim · why_it_matters

“Quantum-expander and related HGP memories have code-capacity algorithms, but the QEC-Bank cannot compare their operational memory performance until the extraction circuit, detector model, decoder, and noise normalization are one versioned executable contract.”

“Quantum-expander and related HGP memories have code-capacity algorithms, but the QEC-Bank cannot compare their operational memory performance until the extraction circuit, detector model, decoder, and noise normalization are one versioned executable contract.”

3.1「存储性能」是什么,为什么它不是矩阵的属性What “memory performance” is, and why it is not a property of the matrix

memory:这里指「量子存储实验」——把一个逻辑比特编进码里,跑 T 轮提取电路,最后读出,看逻辑信息还在不在。operational memory performance:在这种实验里每轮丢掉逻辑信息的概率(逻辑错误率),以及它随码变大怎么变(阈值)。HGP memories:超图积码做的存储器;量子扩展码是超图积的一种(qLDPC 教程 2.1 节)。code-capacity algorithms:1.3 节第一行的译码器——第 2 章的三条记录。这句话的前半句承认:理想症状下我们会译;后半句说:这不够,因为存储性能不是 HX、HZ 两块矩阵的属性。BB 推导页第一段说得直接:「‘the decoder’ is not a function of HX, HZ alone. The static matrices, extraction circuit, detector graph, noise model, and inference algorithm form one experiment.」人话:问「这个码存得好不好」就像问「这辆车省不省油」——不说路况、司机、油的标号,数字没有意义。

memory: here a “quantum memory experiment”: encode one logical qubit, run the extraction circuit for T rounds, read out, and see whether the logical information survived. operational memory performance: the probability of losing the logical information per round in such an experiment (the logical error rate), and how it changes as the code grows (the threshold). HGP memories: memories built from hypergraph-product codes; quantum expander codes are one kind (qLDPC guide section 2.1). code-capacity algorithms: decoders of row one of 1.3, the three records of Chapter 2. The first half of the sentence concedes that we can decode under ideal syndromes; the second half says that is not enough, because memory performance is not a property of the two matrices HX, HZ. The BB derivation page's first paragraph says it directly: “‘the decoder’ is not a function of HX, HZ alone. The static matrices, extraction circuit, detector graph, noise model, and inference algorithm form one experiment.” In plain words: asking “does this code store well” is like asking “is this car fuel-efficient”: without the road, the driver and the fuel grade the number means nothing.

记号:T = 存储实验跑的轮数;HX、HZ = 码的两块检查矩阵(X 型检查和 Z 型检查各一块,每行一条检查、每列一个比特,1 表示这条检查碰这个比特;见 qLDPC 教程 1.2 节)。

Notation: T = number of rounds the memory experiment runs; HX, HZ = the code's two check matrices (one for X-type checks, one for Z-type; one row per check, one column per qubit, a 1 where the check touches the qubit; see qLDPC guide section 1.2).

3.2「一份带版本、可执行的合同」:四个零件,两个形容词“One versioned executable contract”: four parts, two adjectives

零件(原文)Part (verbatim)它规定什么What it fixes在 1.1 节的玩具里In the toy of 1.1
extraction circuit每条检查的帮手放在哪、CNOT 按什么顺序做、何时读出、何时复位、哪些比特在等待。对非几何码还包括路由:谁在什么时候被搬到哪里。Where each check's helper sits, in what order the CNOTs are done, when to read out, when to reset, which qubits wait. For nongeometric codes also routing: who is moved where and when.「h 置 0,先异或 b1,再异或 b2,读 h」——顺序是合同的一部分:先 b2 再 b1 是另一份合同。“Set h to 0, xor in b1, then b2, read h”: the order is part of the contract; b2 before b1 is another contract.
detector model哪些读数的乘积在没有故障时应当不变,因而可以做成探测器;开头几轮、最后一轮的数据读出怎么处理。Which products of readings should stay constant without faults and can therefore become detectors; how the first rounds and the final data readout are handled.D(t) = s(t) ⊕ s(t−1),以及「第 0 轮之前读数算 0」这条约定。D(t) = s(t) ⊕ s(t−1), plus the convention “the reading before round 0 counts as 0”.
decoder算法 + 全部参数:BP 的迭代上限、阻尼、停止条件,OSD 的阶数(BB 推导页第 4 节的「操作合同」六项)。The algorithm plus every parameter: BP's iteration cap, damping, stopping rule, the OSD order (the six-item “operational contract” of section 4 of the BB derivation page).「看到时间方向的一对就判为误读,什么都不修」这条规则。The rule “a pair along time is judged a misread, repair nothing”.
noise normalizationp 到底是什么的概率:每个 CNOT?每个位置?每轮?两比特门和单比特门用同一个 p 还是不同?泄漏算不算进 p?What p is the probability of: each CNOT? each location? each round? the same p for two-qubit and one-qubit gates or not? does leakage count inside p?1.3 节表里「各以概率 p」那几个字,每一行的含义都不同。The words “each with probability p” in the table of 1.3 mean something different in every row.

两个形容词。versioned(带版本):四个零件的每一个都有编号,改一个字就换一个号;QEC-Bank 已经这样对待码距搜索(方法名 rand-lowweight-v1,种子、轮数都登记,码距篇 2.2 节),这里要求对整条译码流水线也这样做。executable(可执行):合同是一段能运行的程序,不是论文里的一段话。BB 推导页说一篇论文若不写清「操作合同」六项,「‘decoded with BP-OSD’ is incomplete」——因为读者无法重跑。one(一份):四个零件不能各自分开引用;0.8% 之所以带五个限定项,就是因为它是四个零件的一个特定组合下的数字。人话:合同 = 把电路、探测器、译码器、噪声定义钉在一起、编上号、能一键重跑的那个东西。有了它,「A 码比 B 码存得好」才是一句可以检验的话。

Two adjectives. versioned: each of the four parts carries a number, and changing one character changes the number; the QEC-Bank already treats distance searches this way (method name rand-lowweight-v1, seed and iteration count registered, distance guide section 2.2), and here the same is demanded of the whole decoding pipeline. executable: the contract is a runnable program, not a paragraph in a paper. The BB derivation page says that if a paper does not spell out the six items of the “operational contract”, “‘decoded with BP-OSD’ is incomplete”, because a reader cannot rerun it. one: the four parts cannot be cited separately; 0.8% carries five qualifiers precisely because it is the number of one specific combination of the four parts. In plain words: the contract is the thing that pins circuit, detectors, decoder and noise definition together, gives them a number and reruns with one click. Only with it does “code A stores better than code B” become a testable sentence.

3.3哪些格子会换词,哪张表会成立Which cells change their word, which table comes true

QEC-Bank 里的位置Place in the QEC-Bank今天Today有了答案之后With the answer
quantum_expander · decoders 第三条记录quantum_expander · decoders, record threeid/status none-known,noise 写着完整电路,gap 指向本篇id/status none-known, noise naming the full circuit, gap pointing here一条有 id 的记录(例如某个电路级 BP-OSD 或扩展后的 small-set-flip),noise 写明电路与归一化,status 至少 research-grade,gap 字段消失A record with an id (some circuit-level BP-OSD or an extended small-set-flip), noise naming the circuit and normalisation, status at least research-grade, the gap field gone
small-set-flip 的基准插头The small-set-flip benchmark plug「no distinct benchmark adapter」——只有讲解“no distinct benchmark adapter”: explanation only测试台上一行可重放的结果,与 bp-osd 同一噪声设定下并列One replayable row on the bench, side by side with bp-osd under the same noise setting
三个距离中的第二个(circuit distance)The second of the three distances (circuit distance)对 quantum_expander 与 bivariate_bicycle 都无记录(「no circuit-distance witness」)No record for either quantum_expander or bivariate_bicycle (“no circuit-distance witness”)至少有一个「电路里 w 个故障不触发探测器却翻逻辑」的见证,即电路码距的上界At least one witness “w faults in the circuit trip no detector yet flip the logical”, an upper bound on circuit distance
跨条目比较表The cross-entry comparison table不存在:BB 有一个引文数字,扩展码没有,且合同不同Does not exist: BB has one cited number, the expander code has none, and the contracts differ同一份合同下 [[125,37,3]]、[[72,12,6]]、表面码的逐轮逻辑错误率并排——这才是 why_it_matters 里的「compare」Per-round logical error rates of [[125,37,3]], [[72,12,6]] and the surface code side by side under one contract: the “compare” of why_it_matters

最后一行要小心措辞。答案不会让 0.8% 变成「BB 码的阈值」,也不会让某个新数字变成「量子扩展码的阈值」——每个数字永远属于它的合同。它做到的是:让两个码在同一份合同下各有一个数字,于是比较才是比较。今天一个 QEC-Bank 用户做不到的事:打开两个条目,问「在每个 CNOT 出错概率 0.1% 的机器上,[[125,37,3]] 和 [[72,12,6]] 哪个更适合做存储器」——两张卡片上没有任何一格能回答,连「不知道」都写不出,因为问题本身没有定义好的合同可依附。

The last row needs careful wording. The answer will not turn 0.8% into “the threshold of BB codes”, nor some new number into “the threshold of quantum expander codes”; every number belongs to its contract forever. What it achieves is this: both codes get a number under the same contract, and only then is a comparison a comparison. What a QEC-Bank user cannot do today: open the two entries and ask “on a machine where each CNOT fails with probability 0.1%, is [[125,37,3]] or [[72,12,6]] the better memory?”; no cell on either card can answer, not even with “unknown”, because the question has no well-defined contract to attach to.

第 4 章Chapter 4

一个完整的答案长什么样,为什么难:知道怎么做,但要做很多What a complete answer looks like, and why it is hard: known how, but much to do

板上给这道题的难度是 hard-engineering,不是 open-research。这一章先把「合格」拆成五样可交付的东西,再解释这两个难度词的差别,最后在玩具尺度上数一数为什么「做很多」是真的很多。 The board grades this problem hard-engineering, not open-research. This chapter first splits “qualifying” into five deliverables, then explains the difference between the two difficulty words, and finally counts at toy scale why “much to do” really is much.

4.1什么算解:五样可交付的东西What counts as a solution: five deliverables

从 statement 的字面出发——「a replayable decoder and benchmark adapter for repeated syndrome extraction … including measurement, routing, leakage, and correlated circuit faults」——一个合格的答案至少交付:

Starting from the statement's letter, “a replayable decoder and benchmark adapter for repeated syndrome extraction … including measurement, routing, leakage, and correlated circuit faults”, a qualifying answer delivers at least:

#交付物Deliverable对应 3.2 节的零件Part of 3.2合格的标准Standard for qualifying
1这一族码的提取电路文件:帮手位置、CNOT 顺序、复位与读出时刻,以及非几何连接下的路由方案An extraction circuit file for this family: helper positions, CNOT order, reset and readout times, and a routing plan for the nongeometric connectionsextraction circuit对 [[125,37,3]] 这样的具体实例能生成,且顺序、位置都写死Generatable for a concrete instance such as [[125,37,3]], with order and positions fixed
2探测器定义:哪些读数乘积应当恒定;开头、结尾的处理Detector definitions: which products of readings should be constant; handling of start and enddetector model在无故障模拟下所有探测器恒为 0All detectors identically 0 in a fault-free simulation
3故障模型:每个位置怎么出错、概率是什么的概率;泄漏、相关故障如何建模A fault model: how each location fails, what p is the probability of; how leakage and correlated faults are modellednoise normalization归一化写在文件里,不在论文正文里Normalisation written in the file, not in a paper's prose
4吃探测器历史的译码器及其全部参数A decoder consuming detector histories, with every parameterdecoder同一种子、同一输入,输出逐比特相同(replayable)Same seed, same input, bit-identical output (replayable)
5基准适配器:把上面四样接到 QEC-Bank 测试台,产出带版本号和种子的行A benchmark adapter: plugging the four above into the QEC-Bank bench and producing rows with version numbers and seeds「one versioned executable contract」“one versioned executable contract”别人重跑那一行得到同一数字;换任何一个零件,版本号变Someone else reruns the row and gets the same number; changing any part changes the version

两点澄清。第一,statement 没有要求译码器是 small-set-flip。卡片引的是完美症状下的定理(「the perfect-syndrome small-set-flip theorem」,Leverrier、Tillich、Zémor 2015),但理论不止于此。Fawzi、Grospellier 与 Leverrier 2018 年证明:对扩展足够好的量子扩展码,读数也会出错时 small-set-flip 仍然有效,而且是单发single-shot:每次译码只用一轮带噪读数,不必为了一次译码重复测量多轮;残余错误不为零,但保持很小,下一次译码继续处理。的:只用一轮带噪读数,除了一个概率 e−Ω(√n) 的例外,修复后的残余错误在相差稳定子的意义下等价于参数为 qΩ(1) 的局部随机噪声,也就是保持很小、但不保证为零(论文定理 2)。前提是一种「局部随机」噪声:任意指定 |S| 个比特全出错、同时任意指定 |T| 条读数全读反的概率不超过 p|S|q|T|,且 p、q 低于两个存在但没有给出数值的常数。他们还把它放进一个完整的容错方案(论文定理 1),在同一类局部随机电路噪声、错误率低于某个同样没给数值的阈值时成立。所以缺的不是「读数出错时能否译码」的理论,而是 QEC-Bank 的基础设施:这一族具体实例(如 [[125,37,3]])的提取电路、探测器与噪声文件、跑出来的具体数字,以及别人能重跑的合同。况且图 2.1 已经说明,这么小的实例本身不满足定理的扩展假设。一个在探测器图上跑的 BP-OSD,只要五样齐全,同样是合格答案。

Two clarifications. First, the statement does not require the decoder to be small-set-flip. The card cites the perfect-syndrome theorem (“the perfect-syndrome small-set-flip theorem”, Leverrier, Tillich and Zémor 2015), but the theory goes further. Fawzi, Grospellier and Leverrier (2018) proved that for quantum expander codes with good enough expansion, small-set-flip still works when readings can be wrong, and that it is single-shotEach decoding uses one round of noisy readings; no repeated rounds are needed for one decoding. The leftover error is not zero but stays small, and the next decoding keeps handling it.: after one round of noisy readings, except with probability e−Ω(√n), the residual error is equivalent, up to stabilizers, to local stochastic noise with parameter qΩ(1), so it stays small but is not guaranteed to vanish (Theorem 2 of the paper). The premise is a “local stochastic” noise: the probability that any chosen |S| qubits are all in error and any chosen |T| readings are all flipped is at most p|S|q|T|, with p and q below two constants that exist but are not given numerically. They also put it into a complete fault-tolerant scheme (Theorem 1 of the paper), valid for the same kind of local stochastic circuit noise below a threshold whose value is likewise not given. So what is missing is not the theory of “can one decode when readings fail”, but QEC-Bank infrastructure: extraction circuits for concrete instances of this family (such as [[125,37,3]]), detector and noise files, an actual number, and a contract others can rerun. Besides, Fig. 2.1 already showed that an instance this small does not meet the theorem's expansion hypothesis. A BP-OSD running on the detector graph qualifies just as well, as long as all five deliverables are present.

第二,statement 也没有要求一个「好看」的数字:一份合同下跑出来的逻辑错误率,哪怕很差,只要可重放、可比较,就填上了 none-known 那一格。人话:要的是一台能让别人重跑的机器,不是一个漂亮的百分数。

Second, the statement does not ask for a “nice” number either: a logical error rate obtained under one contract, however poor, fills the none-known cell as long as it is replayable and comparable. In plain words: what is wanted is a machine others can rerun, not a pretty percentage.

4.2hard-engineering:知道怎么做,但要做很多hard-engineering: known how, but much to do

Wanted 板用两个词分难度。open-research:没人知道怎么做——比如码距篇里给 144 个比特的码证明下界,QEC-Bank 里至今没有可重放的方法(文献用混合整数规划算出过 gross 的精确码距 12,但那不是 QEC-Bank 能重跑的证书)。hard-engineering:知道怎么做,但要做很多。这道题是后者,理由在第 2 章:表面码已经走完了这条路(探测器错误模型 + 时空匹配),BB 码的文献也走完了一次(深度 7 电路 + 探测器 + BP-OSD,得到 0.8%)。每一步的做法都有先例,没有一步需要新定理。难在三处:

The board grades difficulty with two words. open-research: nobody knows how; for example, proving a lower bound for a 144-qubit code in the distance guide, where the QEC-Bank has no replayable method yet (the literature computed gross's exact distance 12 by mixed-integer programming, but that is not a certificate the QEC-Bank can rerun). hard-engineering: known how, but much to do. This problem is the latter, for the reasons of Chapter 2: the surface code has walked this road (detector error model plus spacetime matching), and the BB literature has walked it once (depth-7 circuit plus detectors plus BP-OSD, giving 0.8%). Every step has a precedent and none needs a new theorem. The difficulty sits in three places:

难处Difficulty为什么表面码没有这个问题Why the surface code does not have it对这一族意味着什么What it means for this family
没有天然的版图No natural layout表面码的四条腿就是格点上的四个邻居,帮手放在格子中央,顺序有公认的写法。The surface code's four legs are the four neighbours on the lattice, the helper sits in the cell's centre, and the order has an accepted convention.六条腿散在远处,帮手放哪、谁先谁后、路由怎么走,全是设计选择;每个选择都是另一份合同。2.3 节的卡片原文:需要「long-range couplers, routing, or growing local depth」。Six legs far apart; where the helper sits, who goes first, how routing runs are all design choices, and each choice is another contract. The card text of 2.3: it needs “long-range couplers, routing, or growing local depth”.
电路码距要重新算Circuit distance must be recomputed四腿检查的 hook 错误有标准的规避顺序。Hook errors of four-legged checks have a standard avoiding order.六腿检查、任意顺序下,一个帮手故障能传到几个数据比特上、是否压低码距,得对每一种顺序单独验证(1.4 节:「A static distance of 12 is compatible with a smaller circuit distance under a bad schedule」)。For six-legged checks in an arbitrary order, how many data qubits one helper fault reaches and whether it lowers the distance must be verified per order (1.4: “A static distance of 12 is compatible with a smaller circuit distance under a bad schedule”).
译码器要吃超边The decoder must eat hyperedges表面码的每种故障都能拆成几块,每块只在 X 扇区或 Z 扇区里点亮至多两个探测器(一个 Y 错误就是 X、Z 各一块,合起来四个),所以每个扇区内可以配对。Every surface-code fault can be split into pieces that each light at most two detectors within the X sector or within the Z sector (a Y error is one X piece plus one Z piece, four detectors in total), so pairing works sector by sector.BB 码里一个数据错误点亮 3 条检查(BB 译码器教程 1.3 节)。[[125,37,3]] 里要分比特种类(比特与检查的标号见 5.3 节):100 个 (边, 边) 比特上的 X 错误各点亮 2 条 Z 检查,25 个 (顶点, 顶点) 比特上的各点亮 4 条。例如 (v0, v0) 上的 X 点亮 Z(e01,v0)、Z(e02,v0)、Z(e03,v0)、Z(e04,v0) 四个探测器,匹配图的一条边(只连两个端点)装不下,这就是一条超边。再加上电路故障(5.3 节的一个 hook 点亮 2 到 8 个),探测器图是超图;BP-OSD 能吃,但它的迭代、阻尼、OSD 阶数都要调,且每一组参数是合同的一部分。In a BB code one data error lights 3 checks (BB decoders guide section 1.3). In [[125,37,3]] it depends on the kind of qubit (labels of qubits and checks in section 5.3): an X error on one of the 100 (edge, edge) qubits lights 2 Z checks, on one of the 25 (vertex, vertex) qubits it lights 4. For example X on (v0, v0) lights the four detectors Z(e01,v0), Z(e02,v0), Z(e03,v0), Z(e04,v0), which no edge of a matching graph (two endpoints only) can hold: a hyperedge. With circuit faults added (one hook in section 5.3 lights 2 to 8), the detector graph is a hypergraph; BP-OSD can eat it, but its iterations, damping and OSD order need tuning, and every parameter set is part of the contract.

4.3玩具尺度上数一数:故障位置有多少Counting at toy scale: how many fault locations

「做很多」有多多?用 1.1 节的算法数一数。一条碰 w 个比特的检查,一轮提取电路有 1 次制备 + w 个 CNOT + 1 次读出 = w + 2 个可能出错的位置。对 toric_L3 [[18,2,3]]:18 条检查,每条 4 条腿,一轮有 18 × 6 = 108 个位置(不算等待)。对 [[125,37,3]]:qLDPC 教程 3.4 节说它的因子是 K5 的 5 × 10 关联矩阵,每行 4 个 1(每个顶点连 4 条边)、每列 2 个 1(每条边两个端点);超图积的每条检查重量 = 行重 + 列重 = 6,检查数 = 5 × 10 + 10 × 5 = 100;一轮约 100 × 8 = 800 个位置,仍不算等待。存储实验跑多少轮 T 是协议的选择,常见取法是 T = d,这里取 T = 3。BB 教程 6.4 节的电路噪声模型里一个 CNOT 有 15 种不同的出错方式(两个比特上各放 I、X、Y、Z 之一,共 4 × 4 = 16 种组合,去掉「两边都是 I」即什么都没发生的那一种);每次制备、每次读出各算 1 种。于是三轮里的基本故障有:toric_L3 3 × 18 × (1 + 4 × 15 + 1) = 3,348 种,[[125,37,3]] 3 × 100 × (1 + 6 × 15 + 1) = 27,600 种。「哪种故障点亮哪些探测器、翻不翻逻辑」这张表——文献里叫探测器错误模型detector error model:把每一种基本故障用模拟跑一遍,记下它点亮的探测器集合与是否翻转逻辑;译码器在这张表定义的加权(超)图上工作。——就从这些基本故障逐一模拟得来。点亮同一组探测器、翻转同一组逻辑的故障会合并成一行(两个独立故障 p₁、p₂ 合并后的概率是「恰好一个发生」的 p₁ + p₂ − 2p₁p₂,因为两个都发生就互相抵消),所以表的行数比基本故障少;合并后剩多少行,本篇没有算。「上万」只说 [[125,37,3]] 的基本故障数。这些数字是本篇自己数的(脚本核对),QEC-Bank 页面上没有;它们不吓人,机器一秒就能列完,真正花时间的是把每一行都做对、做成能重放的文件、并在换一个顺序时全部重来。这就是 hard-engineering 的字面意思。

How much is “much”? Count with the procedure of 1.1. A check touching w qubits has, per round of extraction, 1 preparation + w CNOTs + 1 readout = w + 2 locations that can fail. For toric_L3 [[18,2,3]]: 18 checks of 4 legs each, 18 × 6 = 108 locations per round (idling not counted). For [[125,37,3]]: qLDPC guide section 3.4 says its factor is the 5 × 10 incidence matrix of K5, with 4 ones per row (each vertex meets 4 edges) and 2 per column (each edge has two endpoints); every hypergraph-product check has weight = row weight + column weight = 6, and the number of checks is 5 × 10 + 10 × 5 = 100; about 100 × 8 = 800 locations per round, still without idling. How many rounds T a memory experiment runs is a choice of the protocol; T = d is common, and here T = 3. In the circuit-noise model of BB guide section 6.4 one CNOT has 15 distinct ways to fail (one of I, X, Y, Z on each of its two qubits, 4 × 4 = 16 combinations, minus “I on both”, which is no fault at all); each preparation and each readout counts as 1. So over three rounds the elementary faults number 3 × 18 × (1 + 4 × 15 + 1) = 3,348 for toric_L3 and 3 × 100 × (1 + 6 × 15 + 1) = 27,600 for [[125,37,3]]. The table of “which fault lights which detectors and whether it flips the logical”, called a detector error modelSimulate every elementary fault once and record the set of detectors it lights and whether it flips the logical; the decoder works on the weighted (hyper)graph this table defines. in the literature, is built by simulating these elementary faults one by one. Faults that light the same detectors and flip the same logicals are merged into one row (two independent faults p₁, p₂ merge to p₁ + p₂ − 2p₁p₂, the probability that exactly one happens, since both together cancel), so the table has fewer rows than there are elementary faults; how many remain after merging, this guide did not compute. “Tens of thousands” refers only to the elementary faults of [[125,37,3]]. These counts are this guide's own (checked by script) and appear on no QEC-Bank page; they are not frightening, a machine lists them in a second. What takes the time is getting every row right, making it a replayable file, and redoing all of it when one order changes. That is the literal meaning of hard-engineering.

记号:w = 一条检查触碰的比特数(检查重量);K5 = 5 个顶点两两相连的完全图,10 条边;T = 存储实验的轮数,由协议选定;本节取 T = 3,等于码距 d(常见取法,不是必须)。

Notation: w = the number of qubits a check touches (check weight); K5 = the complete graph on 5 vertices, every pair joined, 10 edges; T = the number of rounds of a memory experiment, chosen by the protocol; here T = 3, equal to the distance d (a common choice, not a requirement).

关键想法Key idea

这道题没有一个「聪明的一步」能省掉工作。表面码和 BB 码的先例说明每一步都做得出来;非几何的连接说明每一步都得为这一族重做一次,而且每个设计选择都要被钉进版本号里。所以它的难度词是 hard-engineering:没有未知,只有体量。

This problem has no “clever step” that saves the work. The surface-code and BB precedents show every step can be done; the nongeometric connections mean every step must be redone for this family, and every design choice must be pinned into a version number. Hence the difficulty word hard-engineering: no unknowns, only volume.

第 5 章Chapter 5

从这里出发能做什么:一台只会理想症状的实验台,和两道手算题What you can do from here: a bench that only knows ideal syndromes, and two hand exercises

下面的置信传播实验台就是第 2 章第二条记录的那种译码器,工作在 1.3 节的第一行。先用它,再亲手感受它缺了什么。然后两道纸上的题,最后是往哪里走。 The belief-propagation bench below is the kind of decoder of Chapter 2's second record and works in row one of 1.3. Use it first, then feel by hand what it lacks. Then two exercises on paper, and where to go next.

5.1实验台:BP 在 toric_L3 上,只有理想症状The bench: BP on toric_L3, ideal syndromes only

预设是 toric_L3 [[18,2,3]]。按「新错误」,实验台在 18 个比特上撒下 X 错误,然后直接算出理想的 Z 检查症状(s = HZe,一行矩阵乘法),把「亮起的 Z 检查」数给你——注意它大约是错误重量的两倍,第 0 章事实 4。接着让 BP 一轮轮传消息,看每个比特的「相信自己错了」的程度变化,卡住时用 OSD 收尾。这就是 Wanted 板原文里的「BP-OSD … perfect-syndrome」。请特别注意实验台没有的东西:没有帮手比特,没有「轮」,没有读反的可能,没有探测器,没有路由,没有泄漏,没有一次故障翻两个比特。它拿到的症状是纸上的真值。第二条记录的 status 是 research-grade、noise 是 code-capacity,说的就是这台机器。

The preset is toric_L3 [[18,2,3]]. Press “New error” and the bench scatters X errors over the 18 qubits, then directly computes the ideal Z-check syndrome (s = HZe, one line of matrix multiplication) and gives you the count of “Z-checks lit”; note it is about twice the error weight, Chapter 0 fact 4. Then let BP pass messages round by round, watch each qubit's degree of “believing itself flipped” change, and finish with OSD when it stalls. This is the “BP-OSD … perfect-syndrome” of the board's wording. Pay special attention to what the bench does not have: no helper qubits, no “rounds”, no possibility of a misread, no detectors, no routing, no leakage, no single fault flipping two qubits. The syndrome it receives is the truth on paper. Record two's status research-grade and noise code-capacity describe exactly this machine.

柱子是什么。每根柱子是一个比特的对数似然比 L = ln[P(0)/P(1)]:P(0) 是 BP 当前估计的「这个比特没被翻」的概率,P(1) 是「被翻了」的概率。L > 0 表示更可能没错,L < 0 表示更可能错了,|L| 越大越有把握。例:BP 开始前每个比特只有先验,滑块 p = 0.06 时 P(0) = 0.94、P(1) = 0.06,L = ln(0.94/0.06) ≈ 2.75;L = −8 表示 P(1) 是 P(0) 的 e⁸ ≈ 3000 倍,几乎肯定错了。纵轴只画到 ±8:超出的柱子截在 ±8,柱端画一个小三角标出。柱子下方的数字是比特编号(比特多时每 5 个或 10 个标一次)。这里的 BP 用归一化最小和规则(消息乘 α = 0.8),是近似算法,L 不是精确概率。滑块上的 p 既是撒错误的概率,也是 BP 的先验;拖动滑块会清掉已经算好的 BP 结果,当前这组错误保留(它是按旧的 p 撒的),下一次运行 BP 按新的 p 重算。

What the bars are. Each bar is one qubit's log-likelihood ratio L = ln[P(0)/P(1)]: P(0) is BP's current estimate of the probability that the qubit was not flipped, P(1) that it was. L > 0 means more likely fine, L < 0 more likely wrong, and the larger |L|, the surer. Example: before BP starts every qubit has only its prior; at slider value p = 0.06, P(0) = 0.94 and P(1) = 0.06, so L = ln(0.94/0.06) ≈ 2.75; L = −8 means P(1) is e⁸ ≈ 3000 times P(0), almost certainly wrong. The vertical axis stops at ±8: taller bars are cut at ±8 and their cut end is marked by a small triangle. The numbers under the bars are qubit indices (every 5th or 10th when there are many qubits). BP here uses the normalized min-sum rule (messages multiplied by α = 0.8), an approximate algorithm, so L is not an exact probability. The slider's p is both the probability used to scatter errors and BP's prior; moving the slider clears any BP result already computed, keeps the current error sample (drawn at the old p), and the next BP run recomputes with the new p.

记号:s = 症状向量(每条 Z 检查一个 0/1);e = 错误向量(每个比特一个 0/1,1 表示这个比特被 X 翻了);HZ = Z 检查矩阵;s = HZe 的乘法按模 2 进行;L = ln[P(0)/P(1)] = 一个比特的对数似然比,ln 是自然对数。

Notation: s = the syndrome vector (one 0/1 per Z check); e = the error vector (one 0/1 per qubit, 1 meaning the qubit was flipped by X); HZ = the Z-check matrix; the product s = HZe is taken mod 2; L = ln[P(0)/P(1)] = a qubit's log-likelihood ratio, ln the natural logarithm.

5.2手算题一:两条检查、四轮读数,画时空图Exercise one: two checks, four rounds, draw the spacetime picture

把 1.1 节的玩具加一条检查:c1 问 b1 ⊕ b2,c2 问 b2 ⊕ b3。各自用一个帮手,连测 4 轮。画一张 2 列(两条检查)× 4 行(四轮)的格子,在每格写探测器 D。对下面三种情形分别填表,并说出花样:(a) b2 在第 2 轮前翻了;(b) c1 的帮手在第 2 轮读反;(c) b1 在第 2 轮前翻了。答案:(a) 第 2 行两格都亮(横向一对:b2 被两条检查盯着);(b) c1 列的第 2、3 行亮(纵向一对);(c) 只有 c1 列第 2 行亮——一个孤零零的点,因为 b1 只被一条检查盯着,它是这个玩具的「边界」。第三种情形提醒你:探测器花样是否成对,取决于检查怎么覆盖比特,这正是「detector model」要写清的事。

Add one check to the toy of 1.1: c1 asks b1 ⊕ b2, c2 asks b2 ⊕ b3. Each has its own helper, measured for 4 rounds. Draw a grid of 2 columns (two checks) × 4 rows (four rounds) and write the detector D in each cell. Fill it for three situations and name the pattern: (a) b2 flips before round 2; (b) c1's helper is misread in round 2; (c) b1 flips before round 2. Answers: (a) both cells of row 2 light (a horizontal pair: b2 is watched by two checks); (b) rows 2 and 3 of column c1 light (a vertical pair); (c) only row 2 of column c1 lights, a lone dot, because b1 is watched by one check only; it is this toy's “boundary”. The third case reminds you that whether detector patterns come in pairs depends on how checks cover qubits, which is exactly what a “detector model” must spell out.

5.3手算题二:把一个 hook 写成表里的一行Exercise two: write one hook as a row of the table

回到 c1 的提取电路:h 置 0,异或 b1,异或 b2,读 h。假设在两个异或之间 h 翻了一次。先看经典玩具:h 是两次「异或进来」的目标端,它自己翻了只会弄错这一次读数,传不到 b2。写出这一轮和下一轮 c1 的读数与探测器。答案:本轮 c1 读数多翻一次,下一轮恢复正常;于是探测器 D1 本轮亮一次、下一轮再亮一次——一个故障、两条记录,这就是「测量错误」那种整齐的时间型一对。经典玩具里一个故障只碰一条读数;量子版的 hook 不同,下面换到真正的码上看。

Back to c1's extraction circuit: set h to 0, xor in b1, xor in b2, read h. Suppose h flips once between the two xors. First the classical toy: h is the target of both “xor into” operations, so its own flip only spoils this reading and never reaches b2. Write the readings and detectors of c1 for this round and the next. Answer: this round c1's reading is flipped once extra, next round it is back to normal; so detector D1 lights this round and again next round — one fault, two entries, the tidy timelike pair of a “measurement error”. In the classical toy one fault touches only one reading; the quantum hook is different, and the rest of this exercise moves to a real code to see it.

标号。取 [[125,37,3]]。它的因子是 K5 的关联矩阵:比特 = 边 e01、e02、…、e34(e01 连顶点 0 与 1),检查 = 顶点 v0 到 v4。超图积的 125 个数据比特分两种:100 个标作 (边, 边),25 个标作 (顶点, 顶点)。X 检查标作 X(顶点 a, 边 j),作用在 4 个 (e, j) 上(e 取遍连着 a 的 4 条边)和 2 个 (a, v) 上(v 取遍 j 的两个端点);Z 检查标作 Z(边 i, 顶点 b),作用在 4 个 (i, e′) 上(e′ 取遍连着 b 的 4 条边)和 2 个 (u, b) 上(u 取遍 i 的两个端点)。这里看 X 检查 X(v0, e01),它的 6 个比特记作 q1 到 q6(下图左列)。

Labels. Take [[125,37,3]]. Its factor is the incidence matrix of K5: bits = edges e01, e02, …, e34 (e01 joins vertices 0 and 1), checks = vertices v0 to v4. The 125 data qubits of the hypergraph product come in two kinds: 100 labelled (edge, edge) and 25 labelled (vertex, vertex). An X check is labelled X(vertex a, edge j) and acts on the 4 qubits (e, j), e running over the 4 edges at a, and on the 2 qubits (a, v), v running over the two endpoints of j; a Z check is labelled Z(edge i, vertex b) and acts on the 4 qubits (i, e′), e′ running over the 4 edges at b, and on the 2 qubits (u, b), u running over the two endpoints of i. Here we look at the X check X(v0, e01); its 6 qubits are called q1 to q6 (left column of the figure).

测量顺序(这是合同的一部分,这里定一个):每一轮先测完全部 X 检查,再测全部 Z 检查。一条 X 检查的做法:帮手 h 制备成 |+⟩,以 h 为控制端依次对 q1、…、q6 做 CNOT,最后测 h 的 X。故障:第 2 个与第 3 个 CNOT 之间,h 上出现一个 X。CNOT 把控制端上的 X 复制到目标端,所以 CNOT 3–6 把它复制到 q3、q4、q5、q6:一个故障,数据上是 4 比特的 X 错误。h 自己的读数不变(|+⟩ 上的 X 不改变 X 测量的结果),X 探测器一个都不亮。

Schedule (part of the contract; here we fix one): every round, all X checks are measured first, then all Z checks. One X check is measured by preparing the helper h in |+⟩, applying CNOTs with h as control onto q1, …, q6 in turn, and measuring h in the X basis. Fault: an X appears on h between the 2nd and the 3rd CNOT. A CNOT copies an X on its control onto its target, so CNOTs 3–6 copy it onto q3, q4, q5, q6: one fault, a 4-qubit X error on the data. The helper's own reading is unchanged (an X on |+⟩ does not change an X measurement), so no X detector lights.

帮手 hhelper h q1 (e01,e01) q2 (e02,e01) q3 (e03,e01) q4 (e04,e01) q5 (v0,v0) q6 (v0,v1) |+⟩ 测 Xmeas. X 1 2 3 4 5 6 CNOT 序号CNOT no. 故障:Xfault: X 本轮亮起的 Z 探测器Z detectors lit this round Z(e01,v0) Z(e01,v1) Z(e02,v0) Z(e02,v1) X 探测器:无X detectors: none 下一轮:无next round: none 橙色粗线 = 带着 X 错误的线段:帮手上的 X 经 CNOT 3–6 复制到 q3–q6thick orange = wire carrying an X error: the helper’s X is copied onto q3–q6 by CNOTs 3–6 控制点在帮手上,⊕ 在数据比特上;从左到右是时间control dots on the helper, ⊕ on the data qubits; time runs left to right
图 5.1Fig. 5.1[[125,37,3]] 的 X 检查 X(v0, e01) 的提取电路。第 2、3 个 CNOT 之间帮手上的一个 X 故障,经 CNOT 3–6 落到 q3–q6 四个数据比特上;随后测 Z 检查时点亮右列的 4 个 Z 探测器。探测器由本篇脚本逐个算出。Extraction circuit of the X check X(v0, e01) of [[125,37,3]]. One X fault on the helper between CNOTs 2 and 3 lands, through CNOTs 3–6, on the four data qubits q3–q6; the Z checks measured next light the 4 Z detectors of the right column. The detectors were computed one by one by script for this guide.

算探测器。这 4 个比特上的 X 在同一轮随后的 Z 检查里被看见:一条 Z 检查亮,当且仅当它与 {q3, q4, q5, q6} 重叠奇数次。逐个数:q3 = (e03, e01) 在 Z(e03,v0)、Z(e03,v1) 里;q4 = (e04, e01) 在 Z(e04,v0)、Z(e04,v1) 里;q5 = (v0, v0) 在 Z(e01,v0)、Z(e02,v0)、Z(e03,v0)、Z(e04,v0) 里;q6 = (v0, v1) 在 Z(e01,v1)、Z(e02,v1)、Z(e03,v1)、Z(e04,v1) 里。Z(e03,·) 与 Z(e04,·) 各被碰两次,抵消;剩下 Z(e01,v0)、Z(e01,v1)、Z(e02,v0)、Z(e02,v1)。探测器 = 本轮读数 ⊕ 上一轮读数,错误留在数据上以后读数不再变,所以表里的这一行是:本轮这 4 个 Z 探测器亮,X 探测器不亮,下一轮什么都不亮。它和 q1、q2 上各一个 X 点亮的完全一样:4 比特的错误乘上这条 X 检查本身(一个稳定子)就是 q1、q2 上的 2 比特错误。所以这一个故障相当于两个数据错误,这就是 hook 可能压低电路码距的原因。

Compute the detectors. The X on these 4 qubits is seen by the Z checks measured next in the same round: a Z check lights exactly when it overlaps {q3, q4, q5, q6} an odd number of times. One by one: q3 = (e03, e01) is in Z(e03,v0) and Z(e03,v1); q4 = (e04, e01) in Z(e04,v0) and Z(e04,v1); q5 = (v0, v0) in Z(e01,v0), Z(e02,v0), Z(e03,v0), Z(e04,v0); q6 = (v0, v1) in Z(e01,v1), Z(e02,v1), Z(e03,v1), Z(e04,v1). Z(e03,·) and Z(e04,·) are each hit twice and cancel; left are Z(e01,v0), Z(e01,v1), Z(e02,v0), Z(e02,v1). A detector is this round's reading ⊕ the previous round's, and once the error sits on the data the readings stop changing, so this fault's row of the table reads: these 4 Z detectors light this round, no X detector lights, nothing lights next round. That is exactly what one X on each of q1 and q2 would light: the 4-qubit error times this X check itself (a stabilizer) is the 2-qubit error on q1, q2. So this single fault acts like two data errors, which is why a hook can lower the circuit distance.

同一个 X 故障放在别的位置,结果如下表(脚本逐个核对)。它不是整齐的一对:从 2 个到 8 个都有,这就是 4.2 节说的超边,也是 4.3 节那张表里的几行。做完你会同意:这些行取决于顺序。把 CNOT 的顺序换掉,同一个位置的故障落到另一组比特上,点亮另一组探测器。顺序是合同。

The same X fault at other positions gives the table below (each checked by script). It is not a tidy pair: anything from 2 to 8, the hyperedges of section 4.2 and a few rows of the table of section 4.3. Having done it you will agree that these rows depend on the order: change the CNOT order and a fault at the same position lands on other qubits and lights other detectors. The order is the contract.

h 上的 X 出现在X on h appears落到的数据比特data qubits hit乘上这条 X 检查后times this X check本轮亮起的 Z 探测器Z detectors lit this round
CNOT 1 之前before CNOT 1q1–q6无(原错误就是这条 X 检查)none (the error is the X check itself)0
CNOT 1、2 之间between CNOTs 1 and 2q2–q6q12
CNOT 2、3 之间between CNOTs 2 and 3q3–q6q1, q24
CNOT 3、4 之间between CNOTs 3 and 4q4–q6q1–q36
CNOT 4、5 之间between CNOTs 4 and 5q5, q6q1–q48
CNOT 5、6 之间between CNOTs 5 and 6q6q1–q54
CNOT 6 之后after CNOT 6无noneq1–q60

记号:q1…q6 = X(v0, e01) 的 6 个比特,依次是 (e01,e01)、(e02,e01)、(e03,e01)、(e04,e01)、(v0,v0)、(v0,v1);「乘上这条 X 检查后」= 与第二列差一个稳定子、效果完全相同的错误;两列里较轻的那个,才是这个故障真正「值」几个数据错误。最后一列 = 各比特所在 Z 检查的条数之和,减去被碰偶数次而抵消的那些;(边, 边) 比特各在 2 条 Z 检查里,(顶点, 顶点) 比特各在 4 条里,例如 q5、q6 给 4 + 4 = 8,没有抵消。

Notation: q1…q6 = the 6 qubits of X(v0, e01), namely (e01,e01), (e02,e01), (e03,e01), (e04,e01), (v0,v0), (v0,v1); “times this X check” = the error that differs from the second column by a stabilizer and has exactly the same effect; the lighter of the two columns is how many data errors the fault is really “worth”. Last column = the number of Z checks the qubits sit in, added up, minus those hit an even number of times, which cancel; an (edge, edge) qubit sits in 2 Z checks, a (vertex, vertex) qubit in 4, so q5, q6 give 4 + 4 = 8 with no cancellation.

5.4往哪里走Where to go

想看「有答案」长什么样:《译码器 · 高中数学版》第 5 章把表面码从理想症状走到电路级,BB 译码器教程第 4 章把 BB 码的 hook、探测器、三个距离和操作合同讲完。想看这道题的主角:qLDPC 教程 3.4 节的两个实例与6.4 节的 small-set-flip,以及 QEC-Bank 的 quantum_expander 条目与它的译码器页。想看同一块板上相邻的题:「有些码还没有标准译码器」讲的是另一类 none-known——那里缺的是被公认为「标准」的译码器(haah_cubic 在理想症状下有研究级的 RG 与 BP-OSD 记录,缺的是标准件和电路级流程)。这条 Wanted 记录没有 working_repo 字段。

To see what “having the answer” looks like: Chapter 5 of “Decoders · High-School Edition” takes the surface code from ideal syndromes to circuit level, and Chapter 4 of the BB decoders guide covers the BB code's hooks, detectors, three distances and operational contract. To see this problem's protagonist: the two instances of qLDPC guide section 3.4 and the small-set-flip of section 6.4, plus the QEC-Bank quantum_expander entry and its decoders page. For the neighbouring problem on the same board: “Some codes still have no standard decoder” is about the other kind of none-known: codes lacking a decoder accepted as “standard” (haah_cubic has research-grade RG and BP-OSD records under ideal syndromes; what is missing is a standard one and a circuit-level workflow). This Wanted record has no working_repo field.

尾声Epilogue

三行、四个零件、一格 none-knownThree rows, four parts, one cell reading none-known

回放一遍。真实机器里,检查的读数由帮手比特跑一段提取电路收集,帮手自己会错;单看一轮,「数据错了」和「帮手报错了」无法区分,多测一轮、只报变化的探测器把它们分成横向一对与纵向一对。允许哪些东西出错,分出三层噪声模型:码容量、现象学、电路级;三层是三道不同的题,表面码在三层下的阈值 10.3%、2.9%、0.5%–1% 不能互比。QEC-Bank 的 quantum_expander 条目有两个实例 [[125,37,3]](d verified)与 [[656,170,5]](d claimed),译码器一栏三条记录:css-pivot 与 bp-osd 都写着完美症状,第三条在完整电路那一格写着 none-known(2026-08-09),small-set-flip 只有讲解没有插头。隔壁 BB 码有一个引文数字 0.8%,带五个限定项,且条目不导出电路。我们想要答案,是因为「存储性能」不是矩阵的属性,而是提取电路、探测器模型、译码器、噪声归一化四个零件捆成一份带版本、可执行的合同之后的属性;有了它,none-known 那格换成一条有 id 的记录,两个码才能在同一份合同下并排比较。合格的答案是五样可交付的东西;难度是 hard-engineering——每一步都有先例,但非几何的连接让每一步都要为这一族重做,而且每个设计选择都要钉进版本号。

Replay. In a real machine a check's reading is collected by a helper qubit running an extraction circuit, and the helper itself can fail; within one round “the data is wrong” and “the helper reported wrongly” cannot be told apart, and one more round plus detectors reporting only change separate them into a horizontal and a vertical pair. What is allowed to fail defines three noise models: code capacity, phenomenological, circuit level; they are three different problems, and the surface code's thresholds of 10.3%, 2.9% and 0.5%–1% cannot be compared across them. The QEC-Bank quantum_expander entry has two instances, [[125,37,3]] (d verified) and [[656,170,5]] (d claimed), and three decoder records: css-pivot and bp-osd both say perfect syndrome, the third says none-known (2026-08-09) in the full-circuit cell, and small-set-flip has an explanation but no plug. Next door the BB code has one cited number, 0.8%, with five qualifiers, and its entry exports no circuit. We want the answer because “memory performance” is not a property of the matrix but of four parts, extraction circuit, detector model, decoder and noise normalisation, bound into one versioned executable contract; with it the none-known cell becomes a record with an id, and two codes can sit side by side under the same contract. A qualifying answer is five deliverables; the difficulty is hard-engineering: every step has a precedent, but the nongeometric connections make every step a redo for this family, and every design choice must be pinned into a version number.

符号与读法Symbols & how to read them

符号Symbol名称与读法Name & how to read it在本篇中的含义Meaning in this guide
[[n, k, d]]双方括号,读「n k d 码」Double brackets, read “an n k d code”n 个物理比特、k 个逻辑比特、静态码距 d;[[125,37,3]]、[[656,170,5]]、[[18,2,3]]、[[72,12,6]]。n physical qubits, k logical qubits, static distance d; [[125,37,3]], [[656,170,5]], [[18,2,3]], [[72,12,6]].
L读「L」Read “L”环面码的边长;n = 2L²,d = L。Side length of the toric code; n = 2L², d = L.
b1, b2, b3, h读「比特 1、2、3,帮手 h」Read “bits 1, 2, 3, helper h”1.1 节玩具的三个数据比特与一个帮手比特。The three data bits and one helper bit of the toy of 1.1.
⊕读「异或」Read “xor”模 2 加法:1 ⊕ 1 = 0。Addition mod 2: 1 ⊕ 1 = 0.
s(t), D(t)读「第 t 轮的读数、第 t 轮的探测器」Read “reading in round t, detector in round t”D(t) = s(t) ⊕ s(t−1);数据错误横向一对,测量错误纵向一对。D(t) = s(t) ⊕ s(t−1); data errors give a horizontal pair, measurement errors a vertical pair.
p, q读「p、q」Read “p, q”数据比特(或电路位置)每轮出错的概率;检查读数被读反的概率。三层模型里 p 的含义不同。Probability that a data qubit (or circuit location) fails per round; probability that a reading is flipped. p means something different in each of the three models.
T读「T」Read “T”存储实验跑的轮数。Number of rounds a memory experiment runs.
HX, HZ, e, s = HZe读「X 检查矩阵、Z 检查矩阵、错误向量、症状」Read “X-check matrix, Z-check matrix, error vector, syndrome”码容量下理想症状的一行算式;5.1 节实验台用的就是它。The one-line formula for the ideal syndrome at code capacity; the bench of 5.1 uses it.
w读「重量」Read “weight”一条检查触碰的比特数,或一个故障集合的大小;一轮 w + 2 个位置。The number of qubits a check touches, or the size of a fault set; w + 2 locations per round.
K5读「K 五」Read “K five”5 个顶点的完全图,10 条边;[[125,37,3]] 的因子是它的关联矩阵。The complete graph on 5 vertices, 10 edges; the factor of [[125,37,3]] is its incidence matrix.

本篇新增词汇New terms in this guide

术语Term白话定义Plain definition
帮手比特 / 提取电路helper qubit / extraction circuit收集一条检查答案的额外比特;制备、逐个 CNOT、读出、复位这一小段步骤。The extra qubit that collects one check's answer; the short sequence prepare, CNOT by CNOT, read out, reset.
测量错误measurement error数据没错、读数错了;单轮里与真警报无法区分。Data fine, reading wrong; indistinguishable from a real alarm within one round.
探测器detector同一条检查相邻两轮读数的异或;只报「变化」。The xor of one check's readings in consecutive rounds; reports only “change”.
码容量 / 现象学 / 电路级code capacity / phenomenological / circuit level三层噪声模型:只有数据错;数据错 + 读数错;电路每一步都可能错。三道不同的题。Three noise models: data only; data plus readings; every circuit step. Three different problems.
路由 / 泄漏 / 相关故障(hook)routing / leakage / correlated fault (hook)帮手或比特得跑路;比特跑出 0/1 字母表;一个故障两处后果。Helpers or qubits must travel; a qubit leaves the 0/1 alphabet; one fault, two consequences.
三个距离three distances静态码距(矩阵)、电路码距(不触发探测器的最少故障数)、译码器找到的失败重量。不许混用。Static distance (matrix), circuit distance (fewest undetected faults), decoder-found failure weight. Never conflate.
探测器错误模型detector error model「每种基本故障点亮哪些探测器、翻不翻逻辑」的表;译码器的输入图。The table “which detectors each elementary fault lights and whether it flips the logical”; the decoder's input graph.
可重放 / 基准适配器replayable / benchmark adapter同程序同种子得同数字;把一个码族接到 QEC-Bank 测试台的插头。Same program and seed give the same number; the plug connecting a code family to the QEC-Bank bench.
一份带版本、可执行的合同one versioned executable contract电路 + 探测器模型 + 译码器 + 噪声归一化钉在一起、编号、能一键重跑。Circuit, detector model, decoder and noise normalisation pinned together, numbered, rerunnable with one click.
none-known / research-grade / standardnone-known / research-grade / standardQEC-Bank 译码记录的状态词:带日期的否定检索结果 / 研究级工具 / 标准基准。Status words of QEC-Bank decoder records: dated negative search result / research-grade tool / standard benchmark.
hard-engineering / open-researchhard-engineering / open-researchWanted 板的两种难度:知道怎么做但要做很多 / 没人知道怎么做。本篇是前者。The board's two difficulty grades: known how but much to do / nobody knows how. This guide's item is the former.

延伸阅读Further reading

  • A. Leverrier, J.-P. Tillich, G. Zémor, “Quantum Expander Codes” (2015)
    leverrier2015quantumexpander(QEC-Bank 已登记,arXiv 1504.00822)。quantum_expander 卡片三条译码记录中两条的引文;完美症状下 small-set-flip 定理的出处。本篇读了定理 2 的陈述与第 2 节扩展的定义(2.3 节与图 2.1 用的就是它),没有读证明。leverrier2015quantumexpander (registered in the QEC-Bank, arXiv 1504.00822). Cited by two of the three decoder records on the quantum_expander card; the source of the perfect-syndrome small-set-flip theorem. This guide read the statement of Theorem 2 and the definition of expansion in section 2 (used in section 2.3 and Fig. 2.1), not the proof.
  • O. Fawzi, A. Grospellier, A. Leverrier, “Constant overhead quantum fault-tolerance with quantum expander codes” (2018)
    arXiv 1808.03821。读数也会出错时的 small-set-flip:单发、局部随机噪声、常数存在但不给数值(4.1 节);也写明了扩展图无法高效构造或验证这一局限(2.3 节)。本篇读了摘要、定理 1、定理 2 与噪声模型的定义,没有读证明。arXiv 1808.03821. Small-set-flip when readings can fail: single-shot, local stochastic noise, constants that exist but are not given (section 4.1); it also states the limitation that suitable expander graphs cannot be efficiently constructed or checked (section 2.3). This guide read the abstract, Theorems 1 and 2 and the noise-model definition, not the proofs.
  • C. Wang, J. Harrington, J. Preskill, “Confinement-Higgs transition in a disordered gauge theory and the accuracy threshold for quantum memory” (2003)
    arXiv quant-ph/0207088。1.3 节 10.3% 与 2.9% 的出处:每个比特独立地以概率 p 翻转(X、Z 分开处理),2.9% 另加每轮读数以 q = p 读反;最小重量匹配。arXiv quant-ph/0207088. Source of the 10.3% and 2.9% of section 1.3: each qubit flips independently with probability p (X and Z treated separately), and for 2.9% every reading also flips with q = p per round; minimum-weight matching.
  • A. G. Fowler, M. Mariantoni, J. M. Martinis, A. N. Cleland, “Surface codes: Towards practical large-scale quantum computation” (2012)
    arXiv 1208.0928。1.3 节电路级 0.57% 的出处:8 步一轮,逐步列出的出错方式,p 按每一步计,最小重量匹配。arXiv 1208.0928. Source of the circuit-level 0.57% of section 1.3: 8 steps per round, the listed step-by-step failure modes, p per step, minimum-weight matching.
  • N. Delfosse, M. E. Beverland, M. A. Tremblay, “Bounds on stabilizer measurement circuits and obstructions to local implementations of quantum LDPC codes” (2021)
    delfosse2021measurement(已登记,arXiv 2109.14599)。2.3 节「非几何提取电路」view 与 none-known 记录的引文:为什么稀疏不等于局域。delfosse2021measurement (registered, arXiv 2109.14599). Cited by the “nongeometric syndrome circuits” view of 2.3 and by the none-known record: why sparse does not mean local.
  • J.-P. Tillich, G. Zémor, “Quantum LDPC codes with positive rate and minimum distance proportional to the square root of the blocklength” (2009)
    tillich2009quantum(已登记,arXiv 0903.0566)。[[656,170,5]] 的 d = 5 为 claimed 的引文出处。tillich2009quantum (registered, arXiv 0903.0566). The citation behind the claimed d = 5 of [[656,170,5]].
  • S. Bravyi, A. W. Cross, J. M. Gambetta, D. Maslov, P. Rall, T. J. Yoder, “High-Threshold and Low-Overhead Fault-Tolerant Quantum Memory” (2024)
    bravyi2024bicycle(已登记,arXiv 2308.07915)。BB 码 0.8% 与深度 7 电路的出处,2.4 节引用;「有答案长什么样」的最近参照。bravyi2024bicycle (registered, arXiv 2308.07915). Source of the BB 0.8% and the depth-7 circuit, cited in 2.4; the nearest reference for “what having the answer looks like”.
  • J. Roffe, D. R. White, S. Burton, E. Campbell, “Decoding Across the Quantum Low-Density Parity-Check Code Landscape” (2020) · P. Panteleev, G. Kalachev, “Degenerate Quantum LDPC Codes With Good Finite Length Performance” (2021)
    roffe2020decoding(已登记,arXiv 2005.07016)与 panteleev2021degenerate(已登记,arXiv 1904.02703)。bp-osd 记录的引文:码容量下的 BP-OSD 基线。roffe2020decoding (registered, arXiv 2005.07016) and panteleev2021degenerate (registered, arXiv 1904.02703). Citations of the bp-osd record: the BP-OSD baseline at code capacity.
  • QEC-Bank: the Wanted item and its data
    wanted/qldpc-circuit-decoding.yaml(六个字段的原文)、codes/quantum_expander/instances.yaml 与 card.yaml(两个实例、三条译码记录、非几何电路 view、realizations 的日期句)、codes/bivariate_bicycle/card.yaml(BB 的两条 bp-osd 记录)、codes/bivariate_bicycle/pedagogy/syndrome-circuits-and-decoding.md(三个距离、0.8% 不是什么、操作合同、未导出清单)。wanted/qldpc-circuit-decoding.yaml (the six fields verbatim), codes/quantum_expander/instances.yaml and card.yaml (two instances, three decoder records, the nongeometric-circuit view, the dated realizations sentence), codes/bivariate_bicycle/card.yaml (the two BB bp-osd records), codes/bivariate_bicycle/pedagogy/syndrome-circuits-and-decoding.md (three distances, what 0.8% is not, the operational contract, the unexported list).
诚实总账The honesty ledger

状态原文:open;难度原文:hard-engineering。逐字引用的:statement、current_proxy、why_it_matters(第 1、2、3 章的框),instances.yaml 的两条记录,card.yaml 的三条译码记录与 nongeometric-syndrome-circuits view、realizations 日期句,BB 卡片两条 bp-osd 记录的 noise 与 status,BB 推导页的「不是什么」清单、「exports only static check incidence」段、五项未导出清单、「one experiment」句。转述自其他教程的数字:10.3%、2.9%、0.5%–1%(《译码器 · 高中数学版》5.3、5.4 节)、0.8%(BB 教程 6.4 节)、15 种 CNOT 出错方式(同上)——都属于各自的模型,本篇每次都标了行;其中 10.3%、2.9% 与 0.57% 及其噪声模型,这次按原文(Wang–Harrington–Preskill 2003、Fowler 等 2012)核对过,0.5%–1% 的上端没有逐一核对。本篇自己算的、QEC-Bank 页面上没有的:1.1、1.2、5.2、5.3 节的全部读数表与探测器表,1.2 节时空图的两个例子;toric_L3 每轮 108 个位置;[[125,37,3]] 的检查重量 6、检查数 100、每轮约 800 个位置(由 qLDPC 教程 3.4 节的 5 × 10 关联矩阵推得);图 2.1 的邻居计数;一个 X 错误点亮 2 条或 4 条 Z 检查;5.3 节 hook 的探测器与整张表;三轮里 3,348 与 27,600 个基本故障;L ≈ 2.75 的例子。这些都由脚本核对。只描述、未推导的:两个 small-set-flip 定理的证明(它们的假设取自定理陈述)、BP-OSD 的内部、探测器错误模型的合并细节、CNOT 传播 X 的规则本身。除网页里的实验台外,没有运行任何译码器、模拟器或 QEC-Bank 验证器;引文论文中只读了上面列出的定理陈述与模型定义,没有读证明。

Status verbatim: open; difficulty verbatim: hard-engineering. Quoted word for word: statement, current_proxy, why_it_matters (the boxes of Chapters 1, 2, 3), the two instances.yaml records, the three decoder records of card.yaml plus its nongeometric-syndrome-circuits view and dated realizations sentence, the noise and status of the two BB bp-osd records, the BB derivation page's “is not” list, its “exports only static check incidence” paragraph, its five-item unexported list and its “one experiment” sentence. Numbers relayed from other guides: 10.3%, 2.9%, 0.5%–1% (“Decoders · High-School Edition” 5.3, 5.4), 0.8% (BB guide 6.4), 15 ways a CNOT can fail (same), each belonging to its own model and labelled with its row every time; 10.3%, 2.9% and 0.57% and their noise models were checked this time against the sources (Wang–Harrington–Preskill 2003, Fowler et al. 2012); the upper end of 0.5%–1% was not checked one by one. Computed for this guide and absent from QEC-Bank pages: all reading and detector tables of 1.1, 1.2, 5.2, 5.3, the two examples of the spacetime figure in 1.2; 108 locations per round for toric_L3; check weight 6, 100 checks and about 800 locations per round for [[125,37,3]] (derived from the 5 × 10 incidence matrix of qLDPC guide section 3.4); the neighbour counts of Fig. 2.1; 2 or 4 Z checks lit by one X error; the hook detectors and the whole table of section 5.3; 3,348 and 27,600 elementary faults over three rounds; the L ≈ 2.75 example. All checked by script. Described only, not derived: the proofs of the two small-set-flip theorems (their hypotheses are taken from the theorem statements), the interior of BP-OSD, the merging details of a detector error model, the rule that a CNOT copies an X from control to target. Apart from the bench on this page, no decoder, simulator or QEC-Bank verifier was run; of the cited papers only the theorem statements and model definitions listed above were read, not the proofs.