Wanted · 穿了衣服的码距Wanted · The dressed distance
QEC-Bank 开放问题导读 · Wanted · 穿了衣服的码距QEC-Bank open-problem guide · Wanted · The dressed distance

不在乎的比特,
与穿了衣服的码距
Don't-care qubits
and the dressed distance

Toric Code 教程里的检查清单有一条铁律:所有检查两两对易。有一类码故意违反它:允许一些「检查」互相打架,代价是编码空间里多出几个我们不在乎的比特——它们随便被翻,受保护的那个逻辑比特毫发无损。这类码叫子系统码,最小的例子只有 4 个比特,一张纸能算完。但它把「码距」这个词弄复杂了:一条逻辑算符可以乘上那些「不在乎」的操作换一件衣服,码距要在所有衣服里取最轻的那件。QEC-Bank 的检验员对 4、9、15 个比特的 Bacon–Shor 码把这件事穷举做完,写下 verified;对 35 个比特的 5 × 7 却只能交出一件重量 12 的衣服,旁边写着 not-certified。这一篇讲这道开放问题是什么、QEC-Bank 现在怎么凑合、为什么我们想要答案、一个合格的答案长什么样。 The check list of the toric-code guide obeys one iron rule: all checks commute pairwise. One class of codes breaks it on purpose: some “checks” are allowed to fight each other, at the price of a few extra qubits in the code space that we don't care about; flip them at will and the protected logical qubit is untouched. These are subsystem codes, and the smallest example has only 4 qubits, one sheet of paper's worth. But they complicate the word “distance”: a logical operator can be multiplied by those don't-care operations to change clothes, and the distance must take the lightest of all outfits. The QEC-Bank referee finishes this exhaustively for the 4-, 9- and 15-qubit Bacon–Shor codes and writes verified; for the 35-qubit 5 × 7 it can only hand over one outfit of weight 12, marked not-certified. 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》——泡利串、对易与反对易、稳定子、逻辑算符和码距。别的一切(规范生成元、中心、裸与穿衣、商掉规范群、扇区、表述)都从一个 4 比特的手算玩具出发再命名。状态:open(Wanted 板原文)。 Prerequisite: only “From Exam Maths to the Toric Code”: Pauli strings, commuting and anticommuting, stabilizers, logical operators and distance. Everything else (gauge generators, center, bare and dressed, modulo the gauge group, sectors, presentations) is built from a 4-qubit 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一条泡利串在每个比特上放 I、X、Y 或 Z 之一;重量 = 放了非 I 的比特数。A Pauli string puts one of I, X, Y, Z on each qubit; its weight is the number of qubits carrying a non-I letter.4.2 节section 4.2
2碰撞定理:两条泡利串反对易,当且仅当「两条都非 I 且字母不同」的比特数是奇数;否则对易。XX 与 ZZ 若只共用一个比特就反对易,共用两个就对易。Collision theorem: two Pauli strings anticommute exactly when the number of qubits where both are non-I with different letters is odd; otherwise they commute. XX and ZZ anticommute if they share one qubit, commute if they share two.4.2 节section 4.2
3一个稳定子码是一份两两对易的检查清单;k = n − 独立检查数(前提是检查乘不出 −I;检查都是带 + 号的全 X 串或全 Z 串时自动成立,因为这样的串相乘不产生符号,本篇的 Bacon–Shor 码就是这样)。A stabilizer code is a list of pairwise commuting checks; k = n − (number of independent checks) (provided no product of checks equals −I; this holds automatically when every check is an all-X or all-Z string with a + sign, since multiplying such strings produces no sign, as in the Bacon–Shor codes of this guide).4.4 节section 4.4 · 5.3 节section 5.3
4逻辑算符 = 与所有检查对易、却不是检查乘积的泡利串;码距 d = 最轻逻辑算符的重量。环面码 d = L。A logical operator is a Pauli string commuting with every check yet not a product of checks; the distance d is the weight of the lightest one. The toric code has d = L.5.6 节section 5.6 · 5.8 节section 5.8
5一条逻辑算符乘上任何检查,仍是同一个逻辑算符(对码空间作用相同);所以「最轻」要在所有这些乘积里找。A logical operator times any check is still the same logical operator (same action on the code space); so “lightest” must be sought among all such products.5.5 节section 5.5

记号:n = 物理量子比特数,k = 受保护的逻辑量子比特数,d = 码距,L = 环面的边长。[[n, k, d]] 是量子码的名片写法。本篇中 Xi、Zi 表示只在第 i 个比特上放 X 或 Z 的串,X0X2 表示在第 0 和第 2 个比特上各放一个 X。

Notation: n = number of physical qubits, k = number of protected logical qubits, d = distance, L = side length of the torus. [[n, k, d]] is the calling-card notation for a quantum code. In this guide Xi, Zi denote the string with a single X or Z on qubit i, and X0X2 the string with an X on qubits 0 and 2.

第 1 章Chapter 1

这个问题用人话说是什么:一份会打架的检查清单The problem in plain words: a check list that fights itself

先在 4 个比特上写下四条两两相邻的「检查」,发现其中两条反对易,按 Toric Code 教程的规则这份清单不合法。然后看它为什么还能保护一个比特:把打架的部分划成「不在乎」的区域。接着在 4 比特和 9 比特上亲手给逻辑算符换衣服,定义穿了衣服的码距,最后读 Wanted 板的原文。 First write four nearest-neighbour “checks” on 4 qubits and find that two of them anticommute, so by the toric-code guide's rules the list is illegal. Then see why it still protects one qubit: fence off the fighting part as a “don't-care” region. Next, change a logical operator's clothes by hand on 4 and 9 qubits, define the dressed distance, and finally read the Wanted board's wording.

1.1玩具:2 × 2 的 Bacon–Shor 码,[[4, 1, 2]]The toy: the 2 × 2 Bacon–Shor code, [[4, 1, 2]]

把 4 个比特排成 2 × 2 的方格,按行编号:q0 q1 在上一行,q2 q3 在下一行。QEC-Bank 的 Bacon–Shor 条目(在 QEC-Bank 中查看 →)把它登记为实例 square_2,名片 [[4, 1, 2]]。它的「检查」是四条重量 2 的串:每条竖边上一条 XX,每条横边上一条 ZZ——QEC-Bank 直觉页的原文:「XX on every vertical nearest-neighbour pair, and ZZ on every horizontal nearest-neighbour pair」。画出来是这样:

Arrange 4 qubits in a 2 × 2 square, numbered by rows: q0 q1 on the top row, q2 q3 below. The QEC-Bank Bacon–Shor entry (open in the QEC-Bank →) registers it as instance square_2, calling card [[4, 1, 2]]. Its “checks” are four strings of weight 2: an XX on every vertical edge and a ZZ on every horizontal edge, in the words of the QEC-Bank intuition page: “XX on every vertical nearest-neighbour pair, and ZZ on every horizontal nearest-neighbour pair”. Drawn out:

X0X2X1X3Z0Z1Z2Z3q0q1q2q3XX 规范生成元(竖边):X0X2,X1X3XX gauge generators (vertical): X0X2, X1X3ZZ 规范生成元(横边):Z0Z1,Z2Z3ZZ gauge generators (horizontal): Z0Z1, Z2Z3X0X2 与 Z0Z1 只在 q0 相遇一次X0X2 and Z0Z1 meet once, at q0 only→ 它们反对易,不能同时当稳定子→ they anticommute; not both stabilizers稳定子(中心):两条竖边之积、两条横边之积Stabilizers (the center) = edge-pair products:S_X = X0X1X2X3 S_Z = Z0Z1Z2Z3n = 4,rank G = 4,rank S = 2,k = 1,g = 1n = 4, rank G = 4, rank S = 2, k = 1, g = 1

用第 0 章的碰撞定理检查一下:X0X2 与 Z0Z1 只在 q0 这一个比特上「都非 I 且字母不同」,1 是奇数,反对易。按 Toric Code 教程 4.4 节的规则,这两条不能同时进一份检查清单——测了一条,另一条的答案就被打乱。QEC-Bank 直觉页说这不是缺陷:「That is not a defect: gauge generators are allowed to disturb an unprotected gauge subsystem.」这四条串不叫稳定子,叫规范生成元gauge generator:允许互相反对易的一组「检查」。它们生成的群叫规范群 G。它们的测量结果不必全部同时确定;只有它们当中互相对易的那部分(中心)才是真正的稳定子。;它们生成的整个乘积集合叫规范群 Ggauge group:把四条规范生成元任意相乘得到的所有泡利串(连同符号)。本篇比较泡利串时不计整体符号,只看哪些比特上放了什么字母(理由见 1.2 节)。。人话:我们故意写了一份会打架的清单。

Check with the collision theorem of Chapter 0: X0X2 and Z0Z1 are “both non-I with different letters” on exactly one qubit, q0; 1 is odd, so they anticommute. By the rules of toric-code section 4.4 these two cannot sit in one check list: measuring one scrambles the answer of the other. The QEC-Bank intuition page says this is not a flaw: “That is not a defect: gauge generators are allowed to disturb an unprotected gauge subsystem.” The four strings are not called stabilizers but gauge generatorsA set of “checks” allowed to anticommute with one another. The group they generate is the gauge group G. Their measurement outcomes need not all be simultaneously definite; only the mutually commuting part (the center) consists of true stabilizers., and the set of all their products is the gauge group GAll Pauli strings (with signs) obtained by multiplying the four gauge generators in any combination. This guide compares Pauli strings without their overall sign and looks only at which letter sits on which qubit (the reason is in 1.2).. In plain words: we wrote a self-fighting list on purpose.

1.2中心:清单里互不打架的那部分,与一个不在乎的比特The center: the part of the list that does not fight, and one don't-care qubit

打架的清单里仍有和平的成员。把两条竖边相乘:X0X2 · X1X3 = X0X1X2X3,记作 SX。它与 Z0Z1 在 q0、q1 两个比特上碰撞,2 是偶数,对易;与 Z2Z3 同理。同样,两条横边相乘得 SZ = Z0Z1Z2Z3,它与每条竖边碰撞两次,对易。SX 与 SZ 碰撞四次,也对易。这两条与所有规范生成元都对易的乘积叫规范群的中心center:规范群里与规范群每个元素都对易的那些元素。它们是真正的稳定子,构成稳定子群 S。QEC-Bank 原文:「The protected codespace is fixed only by the commuting center of the gauge group.」,记作 S;它们才是真正的稳定子:测它们,答案稳定,不被别的测量打乱。

A fighting list still has peaceful members. Multiply the two vertical edges: X0X2 · X1X3 = X0X1X2X3, call it SX. It collides with Z0Z1 on two qubits, q0 and q1; 2 is even, so they commute; likewise with Z2Z3. Similarly the two horizontal edges multiply to SZ = Z0Z1Z2Z3, which collides twice with every vertical edge and commutes. SX and SZ collide four times and commute too. These products commuting with every gauge generator form the centerThe elements of the gauge group that commute with every element of the gauge group. They are the true stabilizers and form the stabilizer group S. QEC-Bank text: “The protected codespace is fixed only by the commuting center of the gauge group.” of the gauge group, written S; they are the true stabilizers: measure them and the answer is stable, unscrambled by other measurements.

关于符号要说清一件事。规范群若连符号一起算,里面有 −I:记 A = X0X2、B = Z0Z1,两者反对易,交换一次多一个负号(BA = −AB),所以 A·B·A·B = −A·A·B·B = −I(本篇的检验脚本用 16 × 16 矩阵乘过)。−I 与一切对易,按字面定义它落在中心里,可它不能当检查:没有状态满足 −|ψ⟩ = |ψ⟩。所以本篇约定:比较泡利串时不计整体相位(±1、±i),「中心」指不计相位后与 G 中每条串都对易的那些串;稳定子群 S 由中心里一组选好符号、彼此相容(乘不出 −I)的代表生成,这里取 +SX、+SZ。本篇所有的 rank 都是不计相位的秩,也就是只看每个比特上放了什么字母。

One point about signs. Counted with signs, the gauge group contains −I: write A = X0X2 and B = Z0Z1; they anticommute, so swapping them costs a minus sign (BA = −AB), and A·B·A·B = −A·A·B·B = −I (this guide's check script multiplied the 16 × 16 matrices). −I commutes with everything, so by the literal definition it lies in the center, yet it cannot serve as a check: no state satisfies −|ψ⟩ = |ψ⟩. So this guide's convention is to compare Pauli strings up to an overall phase (±1, ±i): the “center” means the strings that commute with every string of G once phases are dropped, and the stabilizer group S is generated by representatives from the center with chosen signs that are consistent (no product gives −I), here +SX and +SZ. Every rank on this page ignores phases: it looks only at which letter sits on which qubit.

现在记账。按 Toric Code 教程 5.3 节的算法,n − 独立稳定子数 = 4 − 2 = 2,编码空间里有 2 个比特的自由度。但其中只有 1 个受保护。为什么:另一个自由度正是被规范生成元「打乱」的那个——X0X2 和 Z0Z1 反对易,它们就像一个额外比特上的 X 和 Z:测一个,另一个原本确定的结果就变成随机。比如状态原本满足 Z0Z1 = +1,测一次 X0X2 之后再测 Z0Z1,得 +1 和 −1 的概率各一半。我们不在乎这个比特的状态,QEC-Bank 叫它规范比特gauge qubit:编码空间里被规范生成元随意翻动、不承载受保护信息的自由度。数量 g = (rank G − rank S)/2。。子系统码的账本公式(QEC-Bank foundations 页的一句话定义:「Trade logical qubits for gauge freedom; k = n − (rank G + rank S)/2」):

Now the ledger. By the procedure of toric-code section 5.3, n − (independent stabilizers) = 4 − 2 = 2, so the code space has 2 qubits' worth of freedom. But only 1 is protected. Why: the other degree of freedom is precisely the one “scrambled” by the gauge generators; X0X2 and Z0Z1 anticommute like the X and Z of one extra qubit: measuring one turns the other's previously definite outcome random. For example, if the state had Z0Z1 = +1, then after one measurement of X0X2 a new measurement of Z0Z1 gives +1 or −1 with probability one half each. We don't care about this qubit's state; the QEC-Bank calls it a gauge qubitA degree of freedom inside the code space that gauge generators flip at will and that carries no protected information. Their number is g = (rank G − rank S)/2.. The ledger formula for subsystem codes (the one-liner of the QEC-Bank foundations page: “Trade logical qubits for gauge freedom; k = n − (rank G + rank S)/2”):

k = n − (rank G + rank S) / 2  ·  g = (rank G − rank S) / 2

记号:rank G = 独立的规范生成元条数(这里 4:四条边彼此不能互相乘出),rank S = 独立的稳定子条数(这里 2:SX、SZ),k = 受保护的逻辑比特数,g = 规范(不在乎)比特数。代入:k = 4 − (4 + 2)/2 = 1,g = (4 − 2)/2 = 1。公式从哪里来:稳定子码的算法先给出 n − rank S 个自由度(这里 2 个)。再把四条生成元换一组写法:保留 A = X0X2 和 B = Z0Z1,把 X1X3 换成 A·X1X3 = SX,把 Z2Z3 换成 B·Z2Z3 = SZ(换掉的那条总能再乘回来,所以生成的群不变):G = ⟨SX, SZ, A, B⟩。这组写法里,SX、SZ 与一切对易,A 与 B 彼此反对易、与 SX、SZ 都对易。G 的任一元素都能写成(SX、SZ 的某个乘积)· Aα · Bβ(α、β 取 0 或 1);它与 B 对易当且仅当 α = 0,与 A 对易当且仅当 β = 0,所以中心恰好是 ⟨SX, SZ⟩,而规范自由度全部来自 A、B 这一对反对易的算符,它们就是那个规范比特的「X 和 Z」。于是 rank G = 4 = rank S + 2 × 1。一般的 G 也能整理成「中心 + g 对」,步骤在下面的补课里;所以 rank G = rank S + 2g,即 g = (rank G − rank S)/2。受保护的比特是扣掉规范比特剩下的:k = (n − rank S) − g,代入 g 化简就是 k = n − (rank G + rank S)/2。QEC-Bank 推导页 gauge-center-and-qubits.md 的账本表第一行正是「2 × 2 | rank S 2 | rank G 4 | k 1 | g 1」。

Notation: rank G = number of independent gauge generators (here 4: no edge is a product of the others), rank S = number of independent stabilizers (here 2: SX, SZ), k = protected logical qubits, g = gauge (don't-care) qubits. Substituting: k = 4 − (4 + 2)/2 = 1, g = (4 − 2)/2 = 1. Where the formula comes from: the stabilizer-code count first gives n − rank S degrees of freedom (2 here). Now rewrite the four generators: keep A = X0X2 and B = Z0Z1, replace X1X3 by A·X1X3 = SX and Z2Z3 by B·Z2Z3 = SZ (the replaced string can always be multiplied back, so the generated group is unchanged): G = ⟨SX, SZ, A, B⟩. In this form SX and SZ commute with everything, while A and B anticommute with each other and commute with SX and SZ. Every element of G can be written as (some product of SX, SZ) · Aα · Bβ with α, β equal to 0 or 1; it commutes with B exactly when α = 0 and with A exactly when β = 0, so the center is exactly ⟨SX, SZ⟩, and all the gauge freedom comes from the one anticommuting pair A, B, the “X and Z” of the gauge qubit. Hence rank G = 4 = rank S + 2 × 1. A general G can be put in the same form, “center + g pairs”, by the steps in the catch-up fold below; so rank G = rank S + 2g, that is g = (rank G − rank S)/2. The protected qubits are what is left after removing the gauge qubits: k = (n − rank S) − g, and substituting g simplifies to k = n − (rank G + rank S)/2. The first row of the ledger table in the QEC-Bank derivation page gauge-center-and-qubits.md reads exactly “2 × 2 | rank S 2 | rank G 4 | k 1 | g 1”.

补课 · 为什么中心以外的部分总是成对:一步配对,反复做Catch-up · Why the part outside the center always comes in pairs: one pairing step, repeated

手上有 G 的一组独立生成元(不计相位)。若它们两两对易,就全在中心里,g = 0。否则挑出一对反对易的 a、b,对其余每条生成元 h 做一次修正:

Start from a set of independent generators of G (phases ignored). If they all commute pairwise, they all lie in the center and g = 0. Otherwise pick one anticommuting pair a, b and correct every other generator h once:

h′ = h · a[h 与 b 反对易] · b[h 与 a 反对易]

记号:[…] 成立时取 1、不成立时取 0;a1 = 乘上 a,a0 = 不乘。

Notation: [...] is 1 when the statement holds and 0 otherwise; a1 = multiply by a, a0 = do not.

核对 h′ 与 a 对易:h 本身与 a 反对易的次数记为 [h 与 a 反对易];若它是 1,乘进来的 b 与 a 反对易,又贡献一次;乘进来的 a 与 a 对易,不贡献。两次抵消,h′ 与 a 对易。h′ 与 b 同理。修正只是乘上 G 里的元素,生成的群不变,生成元也仍然独立。于是 G 分成两块:⟨a, b⟩ 和「修正后的其余生成元」,两块之间两两对易。对其余那块重复这一步,直到剩下的生成元两两对易。每做一次拿走一对,最后得到 g 对 (ai, bi) 和一组两两对易的 sj。G 的元素里,与 bi 对易的恰是不含 ai 的,与 ai 对易的恰是不含 bi 的,所以中心恰好由 sj 生成:rank G = rank S + 2g。这个步骤叫辛 Gram–Schmidtsymplectic Gram–Schmidt:把一组泡利串整理成「若干对反对易的算符 + 一组与一切对易的算符」的逐对修正步骤,名字来自线性代数里逐个正交化的 Gram–Schmidt 方法。。

Check that h′ commutes with a: h itself contributes [h anticommutes with a]; if that is 1, the b multiplied in anticommutes with a and contributes once more; the a multiplied in commutes with a and contributes nothing. The two cancel, so h′ commutes with a; likewise with b. A correction only multiplies by elements of G, so the generated group is unchanged and the generators stay independent. G thus splits into two blocks, ⟨a, b⟩ and “the other generators after correction”, which commute with each other. Repeat the step on the second block until the remaining generators commute pairwise. Each round removes one pair, leaving g pairs (ai, bi) and a set of pairwise commuting sj. An element of G commutes with bi exactly when it contains no ai, and with ai exactly when it contains no bi, so the center is generated by the sj: rank G = rank S + 2g. The procedure is called symplectic Gram–SchmidtThe pair-by-pair correction that brings a set of Pauli strings into the form “some anticommuting pairs + a set that commutes with everything”; the name comes from the Gram–Schmidt orthogonalisation of linear algebra..

在 2 × 2 上做一遍。取 a = X0X2、b = Z0Z1。X1X3 与 b 在 q1 碰撞一次(反对易),与 a 不碰撞,所以 h′ = X1X3 · a = SX;Z2Z3 与 a 在 q2 碰撞一次,与 b 不碰撞,所以 h′ = Z2Z3 · b = SZ。剩下的 SX、SZ 对易,停:g = 1、rank S = 2,就是正文里的写法。在 3 × 3 的 12 条生成元上照做,本篇的检验脚本得到 4 对,剩下的 4 条生成的正是 5.1 节的四条条带:g = 4、rank S = 4。

On the 2 × 2. Take a = X0X2 and b = Z0Z1. X1X3 collides once with b, at q1 (anticommutes), and not with a, so h′ = X1X3 · a = SX; Z2Z3 collides once with a, at q2, and not with b, so h′ = Z2Z3 · b = SZ. The remaining SX and SZ commute, so we stop: g = 1, rank S = 2, the form used in the main text. Doing the same on the 12 generators of the 3 × 3, this guide's check script finds 4 pairs, and the 4 generators left over generate exactly the four strips of 5.1: g = 4, rank S = 4.

关键想法Key idea

子系统码 = 一份允许打架的检查清单 + 一个约定:清单里互相对易的部分(中心)是真正的稳定子,打架的部分只翻动我们不在乎的规范比特。受保护的比特数不是 n − rank S,而是 n − (rank G + rank S)/2。QEC-Bank 直觉页把「Counting n − rank(S) protected qubits」列为第二号错误:3 × 3 的 Bacon–Shor 码有 1 个受保护比特和 4 个规范比特,不是 5 个受保护比特。

A subsystem code = a check list that may fight itself + one convention: the mutually commuting part of the list (the center) are the true stabilizers, and the fighting part only flips gauge qubits we don't care about. The number of protected qubits is not n − rank S but n − (rank G + rank S)/2. The QEC-Bank intuition page lists “Counting n − rank(S) protected qubits” as failure mode number two: the 3 × 3 Bacon–Shor code has 1 protected qubit and 4 gauge qubits, not 5 protected qubits.

1.3裸的逻辑算符,与穿了衣服的逻辑算符Bare logical operators, and dressed ones

受保护的那个比特要有自己的 X̄ 和 Z̄。取 X̄ = X0X1(上面一整行):它与 Z0Z1 碰撞两次、与 Z2Z3 零次、与两条竖边不碰撞(X 与 X 不算碰撞),所以它与全部四条规范生成元对易;而且它不是规范生成元的乘积(乘积里 X 总是成竖对出现)。取 Z̄ = Z0Z2(左边一整列):同理与四条都对易。X̄ 与 Z̄ 只在 q0 碰撞一次,反对易——正是一对逻辑算符该有的关系(5.6 节)。这种与所有规范生成元都对易的逻辑算符叫裸逻辑算符bare logical:与规范群的每个元素都对易的逻辑算符。它不碰规范比特。QEC-Bank 原文:「A bare logical commutes with every gauge generator and appears as a complete row or column.」:它完全不动那个不在乎的比特。

The protected qubit needs its own X̄ and Z̄. Take X̄ = X0X1 (the whole top row): it collides twice with Z0Z1, zero times with Z2Z3, and not at all with the two vertical edges (X against X is no collision), so it commutes with all four gauge generators; and it is not a product of them (in such products X's always come in vertical pairs). Take Z̄ = Z0Z2 (the whole left column): likewise it commutes with all four. X̄ and Z̄ collide once, at q0, and anticommute, exactly the relation a logical pair should have (section 5.6). A logical operator that commutes with every gauge generator is called a bare logicalA logical operator commuting with every element of the gauge group. It leaves the gauge qubits alone. QEC-Bank text: “A bare logical commutes with every gauge generator and appears as a complete row or column.”: it does not touch the don't-care qubit at all.

现在换衣服。第 0 章事实 5 说逻辑算符乘上检查还是同一个逻辑算符。这里的新规则是:乘上任何规范算符也还是同一个逻辑算符——因为规范算符只翻不在乎的比特,对受保护的比特没有作用。于是 X̄ · X0X2 = X1X2(一条对角线!)与 X̄ 对受保护比特的作用完全相同。这条对角线与 Z0Z1 只在 q1 碰撞一次,反对易——它不再与所有规范生成元对易,所以它不是裸的;它会翻动规范比特,但我们不在乎。这种「与中心对易、但可能与规范生成元反对易」的逻辑算符叫穿了衣服的逻辑算符dressed logical:与所有稳定子(中心)对易、且不属于规范群的泡利串。它可以是裸逻辑算符乘上任意规范算符。QEC-Bank 原文:「A dressed logical need only commute with the center; gauge multiplication can bend it.」。3 × 3 的版本把「弯」看得更清楚:

Now change clothes. Chapter 0 fact 5 says a logical times a check is the same logical. The new rule here: times any gauge operator it is still the same logical, because gauge operators only flip the don't-care qubits and do nothing to the protected one. So X̄ · X0X2 = X1X2 (a diagonal!) acts on the protected qubit exactly as X̄ does. This diagonal collides once with Z0Z1, at q1, and anticommutes: it no longer commutes with every gauge generator, so it is not bare; it flips the gauge qubit, and we don't care. A logical that “commutes with the center but may anticommute with gauge generators” is called a dressed logicalA Pauli string commuting with every stabilizer (the center) and not belonging to the gauge group. It can be a bare logical times any gauge operator. QEC-Bank text: “A dressed logical need only commute with the center; gauge multiplication can bend it.”. The 3 × 3 version shows the “bending” better:

q0q1q2q3q4q5q6q7q8裸逻辑算符 X̄ = X0X1X2Bare logical X̄ = X0X1X2一整行;与所有规范生成元对易A whole row; commutes with every gauge generator(每条 ZZ 横边碰它 0 或 2 次)(each horizontal ZZ edge meets it 0 or 2 times)q0q1q2q3q4q5q6q7q8穿衣后:X3X1X5 = X̄ · X0X3 · X2X5Dressed: X3X1X5 = X̄ · X0X3 · X2X5每一列恰好一个 X;重量仍是 3Exactly one X per column; still weight 3与 X̄ 只差规范算符,对受保护比特作用相同Differs from X̄ by gauge only; same action on the protected qubit虚线圈 = X 原来所在、已被滑走的位置Dashed rings = where the X's were before sliding× X0X3 × X2X5× X0X3 × X2X5

3 × 3(实例 square_3,[[9, 1, 3]]):裸的 X̄ 是一整行 X0X1X2。乘上竖边 X0X3,q0 的 X 被移到 q3;再乘 X2X5,q2 的 X 移到 q5。结果 X3X1X5 是一条锯齿,每一列仍恰好一个 X,重量仍是 3。QEC-Bank 推导页把规律说成一句话:竖边的乘法「can move its one X within each column independently. What survives gauge motion is the parity in every column.」一条竖边 XiXj 乘上去,看它的两个位置 i、j 上原来有几个 X,只有三种结果:恰有一个 → 那个 X 移到另一个位置(滑动,重量不变,上面的锯齿就是这样来的);一个也没有 → 这一列凭空多出两个 X(成对产生,重量 +2,例如一整行乘上 X3X6 得到 X0X1X2X3X6,重量 5);两个都有 → 两个一起消失(成对湮灭,重量 −2)。三种结果里,这一列 X 的个数只变 0、+2 或 −2。人话:穿衣服能让每列里的 X 滑动、成对出现或成对消失,但改不了每列 X 的个数是奇是偶。

3 × 3 (instance square_3, [[9, 1, 3]]): the bare X̄ is a whole row X0X1X2. Multiply by the vertical edge X0X3 and the X on q0 moves to q3; multiply by X2X5 and the X on q2 moves to q5. The result X3X1X5 is a zig-zag, still exactly one X per column, still weight 3. The QEC-Bank derivation page puts the rule in one sentence: vertical-edge multiplication “can move its one X within each column independently. What survives gauge motion is the parity in every column.” Multiplying in one vertical edge XiXj has only three possible effects, depending on how many X's sit at its two positions i and j: exactly one → that X moves to the other position (sliding, weight unchanged; the zigzag above arose this way); none → two new X's appear in the column (pair creation, weight +2; for example the whole row times X3X6 is X0X1X2X3X6, weight 5); both → the two vanish together (pair annihilation, weight −2). In all three cases the column's X count changes by 0, +2 or −2. In plain words: dressing can slide the X's within their columns, create them in pairs or annihilate them in pairs, but it cannot change whether each column holds an odd or even number of X's.

下面的部件就是 3 × 3 的码。九个方格是比特,方格之间的按钮是规范生成元:竖着的 XX、横着的 ZZ。从裸 X̄(第一行)出发,点竖边 X0X3 再点 X2X5,就得到上面的锯齿;读数一栏始终显示每列「X 或 Y」个数的奇偶(Y 就是同一个比特上既有 X 又有 Z,所以它在「X 或 Y」和「Z 或 Y」两栏里都算),你可以看着它一直是 1 1 1;再点一条不碰现有 X 的竖边,比如 X3X6,就能看到成对产生。也可以直接点比特拼出任意一条串,看它是被警报抓住、属于 G,还是一条穿了衣服的逻辑算符——1.4 节的两个条件由部件替你逐条核对。警报来自 3 × 3 的四条稳定子条带(5.1 节会从规范生成元推出它们):SX0 = 第 0、1 两行的 6 个 X(q0…q5),SX1 = 第 1、2 两行的 6 个 X(q3…q8),SZ0 = 第 0、1 两列的 6 个 Z(q0 q1 q3 q4 q6 q7),SZ1 = 第 1、2 两列的 6 个 Z(q1 q2 q4 q5 q7 q8)。部件下方的表列出这四条,哪一条与当前的串反对易,那一行就标「报警」并加底色。

The widget below is the 3 × 3 code. The nine squares are qubits; the buttons between them are gauge generators, vertical XX and horizontal ZZ. Start from the bare X̄ (the top row), click the vertical edge X0X3 and then X2X5, and you get the zigzag above; the readout always shows the parity of the number of X-or-Y letters in each column (a Y is an X and a Z on the same qubit, so it counts in both the “X or Y” and the “Z or Y” tallies), and you can watch it stay 1 1 1; click a vertical edge that touches no current X, such as X3X6, to see pair creation. You can also click qubits to build any string and see whether an alarm catches it, it lies in G, or it is a dressed logical; the widget checks the two conditions of 1.4 for you. The alarms come from the four stabilizer strips of the 3 × 3 (5.1 derives them from the gauge generators): SX0 = the 6 X's on rows 0 and 1 (q0…q5), SX1 = the 6 X's on rows 1 and 2 (q3…q8), SZ0 = the 6 Z's on columns 0 and 1 (q0 q1 q3 q4 q6 q7), SZ1 = the 6 Z's on columns 1 and 2 (q1 q2 q4 q5 q7 q8). The table under the widget lists the four; whichever anticommutes with the current string is marked “alarm” and shaded.

1.4穿了衣服的码距:在所有衣服里取最轻的,「商掉整个规范群」The dressed distance: the lightest of all outfits, “modulo the full gauge group”

于是「码距」要重新定义。QEC-Bank 检验员的定义(设计文档 2026-08-10-subsystem-dressed-distance-v1.md 原文):一条泡利串 p 是穿了衣服的逻辑见证,当且仅当「1. p commutes with every row of S; and 2. p is not in G.」穿了衣服的码距dressed distance:所有满足「与每条稳定子对易,且不在规范群 G 里」的泡利串中最轻者的重量。它是子系统码真正的码距。就是所有这种 p 里最轻的重量。两个条件对应两种「不算」:与某条稳定子反对易的串会触发警报,不算;属于 G 的串只翻不在乎的比特,无害,也不算。「modulo the full gauge group」(商掉整个规范群)说的是第二条:两条只差一个规范算符的串被看成同一件东西,而且这个规范算符可以是 G 里的任何元素,不只是中心。人话:码距 = 能骗过所有稳定子、又真的改写受保护比特的最轻操作;一件衣服算一次,锯齿和直行算同一条。

So “distance” must be redefined. The QEC-Bank referee's definition (verbatim from the design document 2026-08-10-subsystem-dressed-distance-v1.md): a Pauli p is a dressed-logical witness exactly when “1. p commutes with every row of S; and 2. p is not in G.” The dressed distanceThe weight of the lightest Pauli string that commutes with every stabilizer and does not lie in the gauge group G. It is the true distance of a subsystem code. is the lightest weight among all such p. The two conditions match two ways of “not counting”: a string anticommuting with some stabilizer trips an alarm, so it does not count; a string inside G only flips don't-care qubits, harmless, so it does not count either. “modulo the full gauge group” refers to the second: two strings differing by a gauge operator are regarded as one and the same, and that gauge operator may be any element of G, not only the center. In plain words: the distance is the lightest operation that fools every stabilizer and really rewrites the protected qubit; each outfit counts once, zig-zag and straight row are the same one.

d = min { 重量(p) : p 与 S 的每条都对易,且 p ∉ G }d = min { weight(p) : p commutes with every row of S, and p ∉ G }

记号:p = 候选泡利串;S = 稳定子(中心);G = 规范群;∉ 读「不属于」;min 读「取最小值」。QEC-Bank 把满足条件 1 的集合记作 C(S)(S 的中心化子:与 S 每条都对易的串),把码距问题写成「在 C(S)/G 里找最轻」——C(S)/G 读「C(S) 商 G」,意思是把只差规范算符的串合并成一类。

Notation: p = a candidate Pauli string; S = the stabilizers (the center); G = the gauge group; ∉ reads “not in”; min reads “take the minimum”. The QEC-Bank writes the set satisfying condition 1 as C(S) (the centralizer of S: strings commuting with every row of S) and phrases the distance problem as “lightest in C(S)/G”; C(S)/G reads “C(S) modulo G” and means merging strings that differ by a gauge operator into one class.

回到 2 × 2 算一遍。重量 1 的候选:X0 与 SZ = Z0Z1Z2Z3 碰撞一次,反对易,被抓;Z0 与 SX 碰撞一次,被抓;Y0(= 同一比特上既 X 又 Z)与 SX 的碰撞发生在它的 Z 部分,一次,被抓。四个比特、三种字母,12 条重量 1 的串全部被抓。重量 2:X0X1 与 SZ 碰撞两次,与 SX 不碰撞,条件 1 成立;它不在 G 里(G 里的 X 只成竖对),条件 2 成立。于是 d = 2,与 instances.yaml 的「d, exact: 2, verified」一致。请再看一条:X0X2 与 SZ 碰撞两次、与 SX 零次,条件 1 成立;但它就是一条规范生成元,在 G 里,条件 2 不成立——它不是逻辑算符。这正是 QEC-Bank 推导页警告的错误:「Quotienting only by S would retain many operators that differ by noncentral gauge action and would misclassify disposable degrees of freedom as protected logicals.」一台只商掉稳定子的老式码距程序会把 X0X2 当成逻辑算符,把 k 数成 2。反过来,若要求候选与整个 G 对易,就只剩裸的行与列,漏掉 1.3 节的锯齿——在 Bacon–Shor 里锯齿不更轻,但一般的子系统码没有这个保证,检验员必须两头都对。

Back to 2 × 2 and compute. Weight-1 candidates: X0 collides once with SZ = Z0Z1Z2Z3, anticommutes, caught; Z0 collides once with SX, caught; Y0 (= both X and Z on one qubit) collides with SX through its Z part, once, caught. Four qubits, three letters, all 12 weight-1 strings caught. Weight 2: X0X1 collides twice with SZ and not at all with SX, so condition 1 holds; it is not in G (X's in G come only in vertical pairs), so condition 2 holds. Hence d = 2, matching “d, exact: 2, verified” in instances.yaml. Look at one more: X0X2 collides twice with SZ and zero times with SX, condition 1 holds; but it is a gauge generator itself, inside G, so condition 2 fails: it is not a logical. This is exactly the mistake the QEC-Bank derivation page warns of: “Quotienting only by S would retain many operators that differ by noncentral gauge action and would misclassify disposable degrees of freedom as protected logicals.” An old-style distance routine that quotients only by the stabilizers would call X0X2 a logical and count k = 2. Conversely, demanding that candidates commute with the whole of G leaves only bare rows and columns and misses the zig-zags of 1.3; in Bacon–Shor the zig-zags are no lighter, but a general subsystem code offers no such guarantee, so the referee must get both ends right.

检查站Checkpoint第 1 章Chapter 1
在 2 × 2 的码里,X0X2 与两条稳定子 SX、SZ 都对易,又不是稳定子的乘积。它是逻辑算符吗?In the 2 × 2 code, X0X2 commutes with both stabilizers SX, SZ and is not a product of stabilizers. Is it a logical operator?

对。「与所有稳定子对易且不是稳定子乘积」是稳定子码的逻辑算符判据;子系统码要多问一句「在 G 里吗」。X0X2 在 G 里,对受保护比特没有作用。d = 2 是对的,但见证是 X0X1,不是它。

Right. “Commutes with every stabilizer and is not a product of stabilizers” is the logical criterion for stabilizer codes; a subsystem code asks one more question, “is it in G?”. X0X2 is in G and does nothing to the protected qubit. d = 2 is correct, but the witness is X0X1, not this string.

再想:X0X2 就是我们写下的四条规范生成元之一。规范算符只翻不在乎的比特——它满足 1.4 节的条件 1,却不满足条件 2。

Think again: X0X2 is one of the four gauge generators we wrote down. Gauge operators only flip the don't-care qubit; it satisfies condition 1 of 1.4 but not condition 2.

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

Wanted 板原文 · statementWanted board, verbatim · statement

subsystem-dressed-distance · “Scalable subsystem dressed-distance certification” · status: open · difficulty: open-research
“Extend exact-small and witnessed upper-bound dressed-distance replay to scalable certified lower bounds, named Pauli sectors, and equivalence-safe subsystem presentations.”

subsystem-dressed-distance · “Scalable subsystem dressed-distance certification” · status: open · difficulty: open-research
“Extend exact-small and witnessed upper-bound dressed-distance replay to scalable certified lower bounds, named Pauli sectors, and equivalence-safe subsystem presentations.”

逐词翻译。exact-small:小实例上的精确穷举——把所有轻串逐个按 1.4 节的两个条件检查,第 2 章讲它怎么做、做到多大。witnessed upper-bound:有见证的上界——找到一条穿了衣服的逻辑算符,它的重量就是 d 的上界(码距篇 1.2 节:一个例子就够)。dressed-distance replay:可重放——别人用同一程序、同一种子得到一模一样的结果。Extend … to:把已有的这两样扩展成下面三样。scalable certified lower bounds:在大实例上也能给出、且带证明的下界——「没有更轻的」这一半(码距篇 1.3 节、证书篇 1.1 节)。named Pauli sectors:按类型命名的扇区——分别说清最轻的 X 型逻辑算符多重(dX)、最轻的 Z 型多重(dZ),而不只报一个总的 d。equivalence-safe subsystem presentations:同一个子系统码可以用不同的生成元清单写出来(换顺序、加冗余、换一组生成同一对 (S, G) 的生成元;注意「把规范生成元升级成稳定子」是规范固定,得到的是另一个码,「把方格转置」会调换 X、Z 的标签);「equivalence-safe」要求证出来的码距在换清单之后仍然成立(同一个码穿不同的衣服 · 1.3 节)。人话:今天能对小码穷举、对大码给一件衣服;想要的是对大码也证明「没有更轻的衣服」,分别报 X 和 Z 两个方向,并且换一种写法结论不变。

Word by word. exact-small: exact exhaustion on small instances, checking every light string against the two conditions of 1.4; Chapter 2 shows how and up to what size. witnessed upper-bound: an upper bound with a witness: find one dressed logical and its weight bounds d from above (distance guide section 1.2: one example suffices). dressed-distance replay: replayable: same program, same seed, identical result for anyone. Extend … to: grow these two existing things into the three below. scalable certified lower bounds: lower bounds available on large instances too, with a proof: the “nothing lighter” half (distance guide 1.3, certificate guide 1.1). named Pauli sectors: sectors named by type: state separately how heavy the lightest X-type logical is (dX) and the lightest Z-type (dZ), rather than one total d. equivalence-safe subsystem presentations: the same subsystem code can be written with different generator lists (reordering, redundancy, another generating set of the same pair (S, G); note that promoting gauge generators to stabilizers is gauge fixing and yields a different code, and transposing the grid swaps the X and Z labels); “equivalence-safe” demands that the certified distance survive the change of list (The same code in different clothes · 1.3). In plain words: today we can exhaust small codes and hand over one outfit for large ones; what is wanted is to prove “no lighter outfit” for large codes too, report the X and Z directions separately, and have the conclusion survive a change of notation.

第 2 章Chapter 2

QEC-Bank 现在是怎么凑合的:一位检验员,一道两百万的门,一件重量 12 的衣服How the QEC-Bank copes today: one referee, a two-million gate, one outfit of weight 12

没有答案的时候,QEC-Bank 不假装有。它有一位「检验员」程序:对小实例把所有轻串逐个检查到底,对大实例只做随机搜索、只交出上界,并在旁边写明「最优性未认证」。先读板上的原文,再看三个实例的登记、检验员的账、以及那件 5 × 7 上的衣服。 Without the answer, the QEC-Bank does not pretend to have it. It has a “referee” program: on small instances it checks every light string to the end; on large ones it only searches randomly, hands over an upper bound, and writes “optimality not certified” beside it. Read the board's wording first, then the three registered instances, the referee's arithmetic, and that outfit on the 5 × 7.

Wanted 板原文 · current_proxyWanted board, verbatim · current_proxy

“The referee exactly enumerates complete small weight layers and validates seeded randomized upper witnesses modulo the full gauge group. Over-budget witnesses remain upper-only with not-certified optimality; no asymptotic or presentation-equivalence theorem is inferred.”

“The referee exactly enumerates complete small weight layers and validates seeded randomized upper witnesses modulo the full gauge group. Over-budget witnesses remain upper-only with not-certified optimality; no asymptotic or presentation-equivalence theorem is inferred.”

逐词翻译。The referee:检验员——QEC-Bank 共享的验证程序(qeclib/distance.py),所有条目的码距记录都要经它之手。exactly enumerates complete small weight layers:精确地、一层不漏地枚举小实例的「重量层」——重量 1 的全部串是第一层,重量 2 的是第二层,以此类推;「complete」指从不在一层中间停下。validates seeded randomized upper witnesses modulo the full gauge group:对随机搜索(带种子,可重放)找到的见证,独立地按 1.4 节的两个条件核对,其中条件 2 用的是整个规范群。Over-budget witnesses remain upper-only with not-certified optimality:当穷举超过预算,就只剩见证,它只能作上界,且标明「最优性未认证」——没人证明它是最轻的。no asymptotic or presentation-equivalence theorem is inferred:检验员不从有限结果推出「对所有尺寸成立」的公式,也不推出「换一种写法码距不变」。人话:小的算到底,大的只给一件衣服并声明「不保证最轻」,其余一概不下结论。

Word by word. The referee: the shared QEC-Bank verification program (qeclib/distance.py), through which every entry's distance record must pass. exactly enumerates complete small weight layers: enumerates the “weight layers” of small instances exactly and without omission; all strings of weight 1 are layer one, weight 2 layer two, and so on; “complete” means it never stops in the middle of a layer. validates seeded randomized upper witnesses modulo the full gauge group: witnesses found by a seeded (replayable) random search are independently checked against the two conditions of 1.4, condition 2 using the whole gauge group. Over-budget witnesses remain upper-only with not-certified optimality: when exhaustion exceeds its budget only the witness remains, usable as an upper bound only and marked “optimality not certified”: nobody has shown it is the lightest. no asymptotic or presentation-equivalence theorem is inferred: the referee does not infer a formula “for all sizes” from finite results, nor that “the distance is unchanged under a change of notation”. In plain words: small ones to the end, large ones get one outfit with the disclaimer “not guaranteed lightest”, and nothing else is concluded.

2.1三个登记的实例,与它们的证据词The three registered instances and their evidence words

QEC-Bank 的 codes/bacon_shor/instances.yaml 登记了三个实例;下表逐字转录每个数字旁边的证据词(参数页 →)。r × c 表示 r 行 c 列。

The QEC-Bank file codes/bacon_shor/instances.yaml registers three instances; the table transcribes the evidence word beside every number (the parameters page →). r × c means r rows and c columns.

标签Labelr × c[[n, k, d]]n, kddX, dZgauge_qubits
square_22 × 2[[4, 1, 2]]verifiedexact 2 · verifiedexact 2 · verified2, 2 · claimed(bacon2006operator)2, 2 · claimed (bacon2006operator)1 · claimed1 · claimed
square_33 × 3[[9, 1, 3]]verifiedexact 3 · verifiedexact 3 · verified3, 3 · claimed(bacon2006operator)3, 3 · claimed (bacon2006operator)4 · claimed4 · claimed
rectangle_3x53 × 5[[15, 1, 3]]verifiedexact 3 · verifiedexact 3 · verified5, 3 · claimed(napp2013optimal)5, 3 · claimed (napp2013optimal)8 · claimed8 · claimed

三件事。第一,总码距 d 三个都是 verified——检验员亲自穷举过(2.2 节)。第二,分方向的 dX、dZ 全是 claimed——引自 Bacon 2006(bacon2006operator)和 Napp 与 Preskill 2013(napp2013optimal),检验员没算。QEC-Bank 推导页说明原因:「The dX and dZ rows remain literature-attributed because the generic referee reports the minimum over all Pauli types rather than two named sectors.」人话:机器只报「最轻的是几」,不报「最轻的是 X 型还是 Z 型」——这正是 statement 里「named Pauli sectors」要补的。第三,3 × 5 那行最能说明为什么要分方向:dX = 5、dZ = 3,总 d = 3 只看得见小的那个;QEC-Bank 直觉页:「Aspect ratio can therefore match a noise bias」——如果机器上 Z 错误比 X 错误多得多,你想要的是 Z 方向抗得住,而这个信息在 verified 的 d 里是丢失的。规范比特数 g = (r − 1)(c − 1):1、4、8,也是 claimed,因为「the ordinary entry verifier exposes k but does not emit gauge-qubit claims」。

Three things. First, the total distance d is verified for all three: the referee exhausted them itself (2.2). Second, the per-direction dX, dZ are all claimed, cited from Bacon 2006 (bacon2006operator) and Napp and Preskill 2013 (napp2013optimal); the referee did not compute them. The QEC-Bank derivation page explains why: “The dX and dZ rows remain literature-attributed because the generic referee reports the minimum over all Pauli types rather than two named sectors.” In plain words: the machine reports “the lightest is this heavy”, not “the lightest is X-type or Z-type”, which is exactly what “named Pauli sectors” in the statement asks to add. Third, the 3 × 5 row shows best why directions matter: dX = 5, dZ = 3, and the total d = 3 sees only the smaller; the QEC-Bank intuition page: “Aspect ratio can therefore match a noise bias”: if a machine suffers far more Z errors than X errors, you want the Z direction to hold, and that information is lost in the verified d. The gauge-qubit count g = (r − 1)(c − 1), namely 1, 4, 8, is claimed too, because “the ordinary entry verifier exposes k but does not emit gauge-qubit claims”.

诚实说明Honesty note

QEC-Bank 直觉页 intuition.md 里有两段话对不上:开头「Essence」说检验员「now constructs C(S)/G … Those three d claims are therefore verified」,后面「Why these parameters」却说「Distances and gauge counts remain structured literature claims because the shared verifier has no subsystem quotient implementation」。后一段写于检验员实现之前。本篇以 instances.yaml 与渲染出的条目页为准:d verified,dX、dZ、gauge_qubits claimed。

Two passages of the QEC-Bank intuition page intuition.md disagree: the opening “Essence” says the referee “now constructs C(S)/G … Those three d claims are therefore verified”, while the later “Why these parameters” says “Distances and gauge counts remain structured literature claims because the shared verifier has no subsystem quotient implementation”. The latter predates the referee. This guide follows instances.yaml and the rendered entry page: d verified; dX, dZ, gauge_qubits claimed.

2.2检验员怎么算:一层一层,预算两百万How the referee counts: layer by layer, budget two million

检验员的精确路径(qeclib/distance.py 里的 _exact_subsystem_dressed_distance,方法名 exact-subsystem-dressed-enum-v1)做的正是 1.4 节末尾你对 2 × 2 做的事,只是一层不漏:从重量 1 开始,对每个重量列出所有泡利串——先选哪 w 个比特(C(n, w) 种),再给每个选中的比特填 X、Y 或 Z(3w 种)——逐条检查条件 1(与每条稳定子对易)和条件 2(不在 G 里,用矩阵的秩判定),第一条通过的串的重量就是 d。它有一道预算门:代码里 MAX_EXACT_SUBSYSTEM_CANDIDATES = 2_000_000;进入每一层之前先算这一层有多大,若累计会超过两百万,就拒绝进入、报「unverifiable」。设计文档的原话:「if that layer would cross the ceiling … the result is unverifiable rather than a lower bound.」下表是本篇按 C(n, w) · 3w 自己算的各层大小:

The referee's exact path (_exact_subsystem_dressed_distance in qeclib/distance.py, method name exact-subsystem-dressed-enum-v1) does exactly what you did on the 2 × 2 at the end of 1.4, but without omission: starting at weight 1, for each weight it lists every Pauli string, first choosing which w qubits (C(n, w) ways), then a letter X, Y or Z for each chosen qubit (3w ways), and checks each against condition 1 (commutes with every stabilizer) and condition 2 (not in G, decided by a matrix rank); the weight of the first string that passes is d. It has a budget gate: in the code, MAX_EXACT_SUBSYSTEM_CANDIDATES = 2_000_000; before entering a layer it computes the layer's size, and if the running total would exceed two million it refuses to enter and reports “unverifiable”. The design document's words: “if that layer would cross the ceiling … the result is unverifiable rather than a lower bound.” The table below gives the layer sizes, computed by this guide as C(n, w) · 3w:

第 w 层的候选数 = C(n, w) · 3wcandidates in layer w = C(n, w) · 3w

记号:n = 比特数;w = 重量;C(n, w) 读「n 选 w」,从 n 个比特里挑 w 个的方法数;3w = w 个比特各自取 X/Y/Z 的方法数。C(4, 2) = 6,C(9, 3) = 84,C(35, 4) = 52 360。

Notation: n = number of qubits; w = weight; C(n, w), read “n choose w”, the number of ways to pick w of n qubits; 3w = ways for w qubits to each take X/Y/Z. C(4, 2) = 6, C(9, 3) = 84, C(35, 4) = 52 360.

实例Instancen第 1 层Layer 1第 2 层Layer 2第 3 层Layer 3第 4 层Layer 4结果Outcome
2 × 241254——第 2 层找到 → d = 2 verifiedfound in layer 2 → d = 2 verified
3 × 39273242 268—第 3 层找到 → d = 3 verified(累计 2 619 条)found in layer 3 → d = 3 verified (2 619 candidates in all)
3 × 5154594512 285—第 3 层找到 → d = 3 verified(累计 13 275 条)found in layer 3 → d = 3 verified (13 275 in all)
5 × 7351055 355176 7154 241 160第 4 层会超过两百万 → 拒绝进入,unverifiablelayer 4 would exceed two million → refused, unverifiable

3 × 3 的证据文件 computed/subsystem_distances/bacon-shor-square-3x3-exact.json 原文:"result": {"distance": {"origin": {"kind": "verified", "method": "exact-subsystem-dressed-enum-v1"}, "value": 3}, "kind": "exact"}——这就是参数页上「d=3 verified」的来历。请注意 5 × 7 那行的一个细节:检验员在第 3 层结束时已经知道重量 ≤ 3 的串里没有逻辑算符,按码距篇 1.3 节的逻辑这本可以写成「d ≥ 4」。但它不写。QEC-Bank 推导页:「The exact enumerator refuses an over-budget layer before treating partial work as a lower bound.」人话:检验员宁可说「我不知道」,也不把半途的工作包装成下界。这是一个策略选择,原因在第 4 章。

The evidence file for 3 × 3, computed/subsystem_distances/bacon-shor-square-3x3-exact.json, reads: "result": {"distance": {"origin": {"kind": "verified", "method": "exact-subsystem-dressed-enum-v1"}, "value": 3}, "kind": "exact"}; that is where “d=3 verified” on the parameters page comes from. Note one detail in the 5 × 7 row: at the end of layer 3 the referee already knows that no string of weight ≤ 3 is a logical, which by the logic of distance guide 1.3 could be written “d ≥ 4”. It does not write it. The QEC-Bank derivation page: “The exact enumerator refuses an over-budget layer before treating partial work as a lower bound.” In plain words: the referee would rather say “I don't know” than dress half-finished work up as a lower bound. This is a policy choice, explained in Chapter 4.

2.35 × 7 上的一件衣服:重量 12,seed 17,not-certifiedOne outfit on the 5 × 7: weight 12, seed 17, not-certified

穷举拒绝之后,检验员走第二条路:带种子的随机搜索(方法名 rand-subsystem-dressed-logical-coset-v1)。它在 C(S)/G 的类里随机挑一类,随机挑一件衣服,再反复乘上规范算符「只要能变轻就乘」,把找到的最轻一件交出来。5 × 7 的证据文件 computed/subsystem_distances/bacon-shor-rectangle-5x7-upper.json 原文(节选):

After exhaustion refuses, the referee takes the second road: a seeded random search (method name rand-subsystem-dressed-logical-coset-v1). It picks a class of C(S)/G at random, picks an outfit at random, then multiplies by gauge operators repeatedly “whenever that makes it lighter”, and hands over the lightest it found. The evidence file for 5 × 7, computed/subsystem_distances/bacon-shor-rectangle-5x7-upper.json, verbatim (excerpt):

证据文件原文 · 5 × 7Evidence file, verbatim · 5 × 7

"params": {"columns": 7, "rows": 5} · "kind": "upper-bound" · "optimality": "not-certified" · "guarantee": "dressed-logical-witness-upper-bound-only" · "upper_bound": {"origin": {"iters": 32, "kind": "bounded", "method": "rand-subsystem-dressed-logical-coset-v1", "seed": 17}, "value": 12} · "witness": {"equivalence": "mod-gauge-v1", "pauli": "ZX_XY__X_Y___Y______X_____YY__Z__Z_"}

"params": {"columns": 7, "rows": 5} · "kind": "upper-bound" · "optimality": "not-certified" · "guarantee": "dressed-logical-witness-upper-bound-only" · "upper_bound": {"origin": {"iters": 32, "kind": "bounded", "method": "rand-subsystem-dressed-logical-coset-v1", "seed": 17}, "value": 12} · "witness": {"equivalence": "mod-gauge-v1", "pauli": "ZX_XY__X_Y___Y______X_____YY__Z__Z_"}

读这份文件。pauli 那一串有 35 个字符,每个比特一个:下划线是 I,字母是 X、Y、Z;数一数非下划线的字符正好 12 个,这就是 value 12 的来源——你可以自己数。kind: bounded、guarantee: upper-bound-only:它只说 d ≤ 12。optimality: not-certified:没有任何证明说 12 是最轻的。seed 17、iters 32:随机搜索的起点与轮数,别人用同一对数字能复现同一件衣服。现在把它和纸上的知识对照:QEC-Bank 直觉页给出家族公式 d = min(r, c),对 5 × 7 就是 5——一整列 Z(5 个比特)就是一条重量 5 的裸逻辑算符,比机器找到的 12 轻得多。可是 QEC-Bank 推导页说:「This is an achieved upper bound only and does not replace the parity proof of the rectangular family formula」,又说这一行「is not a lower bound, an exact distance, or evidence for the family formula」。为什么不直接把 5 写上去?「d = 5」其实是两半,要分开看。上界那一半 d ≤ 5 根本不需要纸上的证明:一整列 Z 就是一条具体的串,检验员能像核对那条重量 12 的串一样核对它(1.4 节的条件 1、2),核对过就是一份机器认的 d ≤ 5 见证;文件里的 12 只是这一次搜索(seed 17,32 轮)恰好交出的结果。下界那一半 d ≥ 5 说的是「不存在重量 ≤ 4 的穿衣逻辑算符」,这才来自一段纸上的证明(第 5 章会带你亲手做);检验员没有能力核对纸上的证明,只会核对具体的串或一层层穷举,而穷举在这里被预算门拒绝了。人话:机器诚实地交出了一件很差的衣服,并且诚实地承认它不知道有没有更好的。这个 5 × 7 不是登记的实例(文件里 "instance": null),所以条目页上看不到它;它是设计文档要求的校准案例:「a larger finite rectangle that exceeds the exact ceiling to return a deterministic, independently valid bounded-search witness」。

Reading the file. The pauli string has 35 characters, one per qubit: an underscore is I, a letter is X, Y or Z; count the non-underscores and there are exactly 12, the source of value 12; you can count them yourself. kind: bounded, guarantee: upper-bound-only: it only says d ≤ 12. optimality: not-certified: no proof says 12 is the lightest. seed 17, iters 32: the starting point and number of rounds of the random search; anyone with the same pair reproduces the same outfit. Now compare with paper knowledge: the QEC-Bank intuition page gives the family formula d = min(r, c), which for 5 × 7 is 5: a whole column of Z (5 qubits) is a bare logical of weight 5, far lighter than the machine's 12. Yet the QEC-Bank derivation page says “This is an achieved upper bound only and does not replace the parity proof of the rectangular family formula”, and that this row “is not a lower bound, an exact distance, or evidence for the family formula”. Why not simply write 5? “d = 5” has two halves that must be kept apart. The upper half, d ≤ 5, needs no paper proof at all: a whole column of Z is one concrete string, the referee can check it exactly as it checked the weight-12 string (conditions 1 and 2 of 1.4), and once checked it is a machine-accepted witness for d ≤ 5; the 12 in the file is simply what this particular search run (seed 17, 32 rounds) happened to return. The lower half, d ≥ 5, says that no dressed logical of weight 4 or less exists, and that is what comes from a proof on paper (Chapter 5 walks you through it); the referee cannot check a proof on paper, only concrete strings or layer-by-layer enumeration, and here the budget gate refuses the enumeration. In plain words: the machine honestly hands over a poor outfit and honestly admits it does not know whether a better one exists. This 5 × 7 is not a registered instance (the file says "instance": null), so it does not appear on the entry page; it is a calibration case demanded by the design document: “a larger finite rectangle that exceeds the exact ceiling to return a deterministic, independently valid bounded-search witness”.

记号:seed = 随机数发生器的起始数;iters = 搜索轮数;r、c = 行数、列数;min(r, c) = 两数中较小者。「bounded」是 QEC-Bank 的证据词,意思是「上界由机器给出,下界没有」(码距篇 2.2 节)。

Notation: seed = the starting number of the random-number generator; iters = number of search rounds; r, c = rows, columns; min(r, c) = the smaller of the two. “bounded” is the QEC-Bank evidence word meaning “upper bound by machine, no lower bound” (distance guide 2.2).

第 3 章Chapter 3

为什么我们想要答案:一个 5 卡在 12 后面,一个 3 藏着 5 和 3Why we want the answer: a 5 stuck behind a 12, a 3 hiding a 5 and a 3

板上的 why_it_matters 有三个短语:小实例已验证、大家族缺下界证书、等价表述需要证明。这一章把每个短语对到第 2 章的真实数据上,然后回答:有了答案,哪些格子会换词,今天的读者做不到什么。 The board's why_it_matters has three phrases: small instances verified, large families lack lower-bound certificates, equivalent presentations need a proof. This chapter maps each onto the real data of Chapter 2, then answers which cells change their word with the answer, and what a reader cannot do today.

Wanted 板原文 · why_it_mattersWanted board, verbatim · why_it_matters

“Finite C(S)/G enumeration now verifies small Bacon-Shor instances, but large subsystem families still need lower-bound certificates and proof that gauge-equivalent presentations preserve the claimed quantity.”

“Finite C(S)/G enumeration now verifies small Bacon-Shor instances, but large subsystem families still need lower-bound certificates and proof that gauge-equivalent presentations preserve the claimed quantity.”

3.1三个短语,三份数据Three phrases, three pieces of data

「Finite C(S)/G enumeration now verifies small Bacon-Shor instances」:就是 2.2 节的表——4、9、15 个比特,三个 verified。这是已经做到的一半。「large subsystem families still need lower-bound certificates」:就是 2.3 节——35 个比特时穷举拒绝,机器的记录里只有这次搜索得到的 d ≤ 12(一整列 Z 这条见证就能把上界降到 5,机器也能核对它),而下界 d ≥ 5 只在纸上有证明;缺的是一份机器能核对的「没有重量 ≤ 4 的穿衣逻辑算符」证书(证书篇 1.1 节:证书 = 数据 + 一台不信任任何人的检查器)。「families」是复数:Bacon–Shor 只是范例,QEC-Bank 里还有别的子系统码条目,问题对它们同样成立。「proof that gauge-equivalent presentations preserve the claimed quantity」:表述presentation:写下一个码时用的那份具体的生成元清单(稳定子清单 + 规范生成元清单,含顺序)。同一个码有无数种表述。是写码时用的那份具体清单;「gauge-equivalent」指两份清单生成同一个规范群(或只差重排与冗余;注意转置并交换 X/Z 会调换 X、Z 两个方向的标签,规范固定则改变稳定子与规范的划分,两者都需要各自的对应关系);「preserve the claimed quantity」问的是:对甲清单算出的码距,对乙清单还成立吗?直觉上当然,但检验员的原则是不推断:current_proxy 说「no … presentation-equivalence theorem is inferred」。QEC-Bank 有一个现成的例子:把 3 × 3 的六条横向 ZZ 规范生成元全部升级为稳定子,得到的稳定子清单与九比特 Shor 码的清单生成同一个行空间(两份清单能乘出的全部串完全相同)——推导页说这个见证「is evidence for one pair, not a general canonicalizer」,并把更一般的问题交给 wanted:code-equivalence(同一个码穿不同的衣服 · 2.3 节的「手画的同一边」)。

“Finite C(S)/G enumeration now verifies small Bacon-Shor instances”: the table of 2.2, 4, 9 and 15 qubits, three verified. This is the half already done. “large subsystem families still need lower-bound certificates”: section 2.3: at 35 qubits exhaustion refuses, the machine's record holds only the d ≤ 12 of this one search run (the whole-column Z witness would lower the upper bound to 5, and the machine can check it), while the lower bound d ≥ 5 is proved only on paper; what is missing is a machine-checkable certificate that “no dressed logical of weight ≤ 4 exists” (certificate guide 1.1: a certificate = data + a checker that trusts nobody). “families” is plural: Bacon–Shor is the exemplar, the QEC-Bank has other subsystem-code entries, and the problem holds for them alike. “proof that gauge-equivalent presentations preserve the claimed quantity”: a presentationThe concrete list of generators used to write a code down (stabilizer list + gauge-generator list, order included). One code has infinitely many presentations. is the concrete list used to write the code; “gauge-equivalent” means two lists generating the same gauge group (or differing by reordering and redundancy; note that transposing and swapping X/Z exchanges the X and Z sector labels, and a gauge fix changes the stabilizer/gauge split, so each needs its own correspondence); “preserve the claimed quantity” asks: does the distance computed for list A still hold for list B? Intuitively of course, but the referee's principle is not to infer: current_proxy says “no … presentation-equivalence theorem is inferred”. The QEC-Bank has a ready example: promote all six horizontal ZZ gauge generators of the 3 × 3 to stabilizers and the resulting stabilizer list generates the same row space (the two lists multiply out to exactly the same set of strings) as the nine-qubit Shor code's; the derivation page says this witness “is evidence for one pair, not a general canonicalizer” and hands the general problem to wanted:code-equivalence (the “hand-drawn identity edges” of The same code in different clothes · 2.3).

3.2哪些格子会换词Which cells change their word

QEC-Bank 里的位置Place in the QEC-Bank今天Today有了答案之后With the answer
5 × 7(及任何超过预算的矩形)的 dd of the 5 × 7 (and any rectangle over budget)bounded,value 12(这一次搜索的结果),optimality not-certified;下界 5 只在纸上,无处安放(上界 5 的见证是一整列 Z,今天就能由机器核对)bounded, value 12 (this one search run's result), optimality not-certified; the lower bound 5 exists only on paper and has nowhere to go (the upper bound 5 has a witness, a whole column of Z, that the machine can check today)verified:一条重量 5 的见证(上界)+ 一份机器核对过的「无重量 ≤ 4」证书(下界)verified: one weight-5 witness (upper) + one machine-checked “none of weight ≤ 4” certificate (lower)
三个实例的 dX、dZdX, dZ of the three instancesclaimed(引 bacon2006operator / napp2013optimal)claimed (citing bacon2006operator / napp2013optimal)verified:检验员分别在 X 型与 Z 型两个扇区里穷举或认证;3 × 5 的「5 与 3」不再只是引文verified: the referee exhausts or certifies the X-type and Z-type sectors separately; the “5 and 3” of the 3 × 5 stop being a citation
规范固定后的 3 × 3 Bacon–Shor ↔ Shor 码的「同一」边The gauge-fixed 3 × 3 Bacon–Shor ↔ Shor “identity” edge一对实例的行空间相等见证;不推广A row-space-equality witness for one pair; not generalised一条定理 + 检查器:凡生成同一 (S, G) 的表述,认证过的 d 自动搬过去。这一对不在其内:规范固定把六条 ZZ 升级成稳定子,rank S 从 4 变成 8,(S, G) 已不是同一对;未固定的 Bacon–Shor 与 Shor 码之间还需要一条关于规范固定的对应A theorem plus checker: for any presentations generating the same (S, G), the certified d carries over automatically. This pair is not covered: gauge fixing promotes the six ZZ edges to stabilizers, rank S goes from 4 to 8, and (S, G) is no longer the same pair; linking the unfixed Bacon–Shor code to the Shor code needs a separate correspondence for gauge fixing
其他子系统码条目Other subsystem-code entries凡 n 超过预算门的实例,d 最多是 bounded 或 claimedEvery instance with n beyond the budget gate has d at best bounded or claimed同一台检验员对它们给出 verified 的 d、dX、dZThe same referee gives them verified d, dX, dZ

最后一行要说明来源:QEC-Bank 的 codes/ 目录下有若干名字里带 subsystem、bacon_shor、compass 的条目(如 subsystem_surface、subsystem_color、3d_bacon_shor、bravyi_bacon_shor、compass_model、subsystem_product),本篇只看了目录名,没有读它们的卡片,不知道它们各自的 d 现在写着什么词;上表那一行说的是检验员的预算门对任何子系统码都一样,不是对这些条目的具体断言。

The last row needs its source stated: the QEC-Bank codes/ directory holds several entries with subsystem, bacon_shor or compass in their names (such as subsystem_surface, subsystem_color, 3d_bacon_shor, bravyi_bacon_shor, compass_model, subsystem_product); this guide looked only at the directory names, did not read their cards, and does not know what word each d carries today; that row says the referee's budget gate is the same for every subsystem code, not anything specific about those entries.

3.3今天一个 QEC-Bank 用户做不到的事What a QEC-Bank user cannot do today

三件事。第一,不能相信任何大子系统码的 d:看到 bounded 12,你只知道 d 不超过 12;机器没有核对过任何下界,真值是 12、5 还是 4,记录本身不告诉你。第二,不能按噪声方向选码:3 × 5 的参数页只说 d = 3 verified;想知道「Z 方向的码距是 3、X 方向的是 5」(能保证纠正的分别只有 1 个和 2 个错),只能去读 claimed 的引文。第三,不能把一个证书搬到另一种写法上:如果你手里是同一对 (S, G) 的另一份生成元清单(重排过,或加了冗余的生成元),条目里 verified 的 d = 3 在形式上不属于你的清单,尽管你确信是同一个码。规范固定又远一步:把 3 × 3 的六条 ZZ 升级成稳定子就得到 Shor 码(规范固定后的 Bacon–Shor ↔ Shor),rank S 从 4 变成 8,(S, G) 已经不是同一对,「同一 (S, G)」的定理也管不到它(同一个码穿不同的衣服 · 3.3 节列过类似的「今天做不到」)。人话:小码的数字可信,大码的数字只有一半,方向的数字全靠引文,换个写法一切归零。

Three things. First, you cannot trust the d of any large subsystem code: seeing bounded 12 you know only that d is at most 12; no lower bound has been machine-checked, and the record alone does not tell you whether the truth is 12, 5 or 4. Second, you cannot choose a code by noise direction: the 3 × 5 parameters page only says d = 3 verified; to learn “the Z-direction distance is 3, the X-direction one 5” (guaranteeing correction of only 1 and 2 errors respectively) you must read the claimed citation. Third, you cannot carry a certificate to another notation: if you hold another generator list for the same (S, G) (reordered, or with redundant generators added), the entry's verified d = 3 formally does not belong to your list even though you are sure it is the same code. Gauge fixing goes one step further: promoting the six ZZ edges of the 3 × 3 to stabilizers gives the Shor code (gauge-fixed Bacon–Shor ↔ Shor), rank S goes from 4 to 8, (S, G) is no longer the same pair, and a same-(S, G) theorem does not reach it (The same code in different clothes · 3.3 lists a similar “cannot do today”). In plain words: small codes' numbers are trustworthy, large codes' numbers are half, directional numbers rest on citations, and a change of notation resets everything.

第 4 章Chapter 4

一个完整的答案长什么样,为什么难:纸上的证明机器读不懂What a complete answer looks like, and why it is hard: the machine cannot read a proof on paper

statement 要三样东西:可扩展的认证下界、命名的泡利扇区、等价安全的表述。这一章说每样「合格」是什么意思,然后解释为什么难度是 open-research:Bacon–Shor 的下界在纸上只要三句话,可一台不信任任何人的检查器读不懂那三句话,而一般的子系统码连那三句话都没有。 The statement wants three things: scalable certified lower bounds, named Pauli sectors, equivalence-safe presentations. This chapter says what “qualifying” means for each, then explains why the difficulty is open-research: Bacon–Shor's lower bound takes three sentences on paper, yet a checker that trusts nobody cannot read those three sentences, and a general subsystem code does not even have them.

4.1什么算解:三样交付物What counts as a solution: three deliverables

#statement 的短语Phrase in the statement合格的交付物Qualifying deliverable在 5 × 7 上会变成什么What it becomes on the 5 × 7
1scalable certified lower bounds对任意大小的子系统表述,产出一份机器可核对的「没有重量 < w 的穿衣逻辑算符」证书——不要求精确 d,下界即可(与码距篇 4.1 节同一标准),但必须商掉整个 G。For a subsystem presentation of any size, a machine-checkable certificate “no dressed logical of weight < w”; exact d not required, a lower bound suffices (the same standard as distance guide 4.1), but it must be modulo the whole of G.「无重量 ≤ 4」的证书 + 一整列 Z 的见证 → d = 5 verifiedA “none of weight ≤ 4” certificate + a whole-column-Z witness → d = 5 verified
2named Pauli sectors对 X 型和 Z 型两个扇区sector:按泡利类型划分的候选集合。X 扇区 = 只含 X 的串(及其穿衣),Z 扇区 = 只含 Z 的串。CSS 型子系统码的最轻逻辑算符总可取在某个纯扇区里。分别给出见证与证书,报 dX、dZ 两个数,而不只是它们的最小值。For the X-type and Z-type sectorsCandidate sets split by Pauli type. The X sector = strings containing only X (and their dressings), the Z sector = only Z. For CSS-type subsystem codes the lightest logical can always be taken in one pure sector. separately, a witness and a certificate each, reporting the two numbers dX, dZ rather than only their minimum.dX = 7、dZ = 5 各自 verified(今天连 claimed 的记录都没有,因为 5 × 7 不是登记实例)dX = 7, dZ = 5 each verified (today not even a claimed record exists, since 5 × 7 is not a registered instance)
3equivalence-safe subsystem presentations一条定理和一台检查器:若两份清单生成同一对 (S, G)(或只差重排、冗余这类可核对的变换),则对甲认证的 d、dX、dZ 对乙成立;转置换向会调换 X、Z 标签,规范固定会改变 (S, G) 本身,两者都要另建对应关系。检验员今天只保证「等价的清单在同一种子下逐字节重放出同一结果」(设计文档:「equivalent generator presentations to replay byte-for-byte at fixed seed」)——那是重放的稳定性,不是定理。A theorem plus a checker: if two lists generate the same pair (S, G) (or differ by a checkable transformation such as reordering or redundancy), then the d, dX, dZ certified for A hold for B; transposition with an X/Z swap exchanges the sector labels and gauge fixing changes (S, G) itself, so each needs its own correspondence. Today the referee guarantees only that “equivalent generator presentations replay byte-for-byte at fixed seed” (design document), which is replay stability, not a theorem.加进冗余生成元或重排,证书自动有效;把 5 × 7 写成 7 × 5(转置并交换 X/Z)时 dX、dZ 的标签互换Adding redundant generators or reordering carries the certificate over automatically; writing the 5 × 7 as 7 × 5 (transpose and swap X/Z) exchanges the dX and dZ labels

4.2纸上三句话就能证的下界,机器为什么不认A lower bound three sentences prove on paper: why the machine does not accept it

对 Bacon–Shor 码,下界是高中水平的。以 r × c 的矩形、X 扇区为例,QEC-Bank 推导页的论证翻成人话是三句话:(1) 穿衣只会让每列里的 X 滑动、成对产生或成对湮灭(1.3 节),改不了每列 X 的个数的奇偶(1.3 节亲手验证过)。(2) 一条 X 型串要与相邻两列的 Z 型稳定子条带对易,就必须让相邻两列的奇偶相同,于是所有列的奇偶一样:全偶或全奇;全偶的串全是规范算符(无害):同一列里的两个 X 等于它们之间那几条竖边之积,例如 X0X6 = (X0X3)(X3X6),中间的 X3 乘了两次、消掉;一列里有偶数个 X,就把它们两两配对,每对换成竖边之积,每列都这样做,整条串就是竖边之积,属于 G。所以逻辑算符必须每列都是奇数个 X。(3) 每列至少一个 X,重量至少 c;一整行恰好做到 c。于是 dX = c,同理 dZ = r,d = min(r, c)。第 5 章让你在 3 × 3 上逐句核对。

For Bacon–Shor the lower bound is high-school level. For an r × c rectangle and the X sector, the QEC-Bank derivation page's argument in plain words is three sentences: (1) dressing only slides, creates or annihilates X's in pairs within their columns (1.3) and cannot change the parity of the number of X's in each column (verified by hand in 1.3). (2) For an X-type string to commute with the Z-type stabilizer strip over two neighbouring columns, those two columns must have the same parity, so all columns share one parity: all even or all odd; all-even strings are gauge operators (harmless): two X's in the same column equal the product of the vertical edges between them, for example X0X6 = (X0X3)(X3X6), where the middle X3 appears twice and cancels; a column with an even number of X's can be split into pairs, each pair replaced by a product of vertical edges, and doing this in every column writes the whole string as a product of vertical edges, which lies in G. So a logical must have an odd number of X's in every column. (3) At least one X per column, weight at least c; a whole row achieves exactly c. Hence dX = c, likewise dZ = r, and d = min(r, c). Chapter 5 has you check it sentence by sentence on the 3 × 3.

那为什么 5 × 7 还写着 bounded 12?因为这三句话是针对这一族的:它用了「竖边只在列内滑动」「稳定子是相邻两列的条带」这些 Bacon–Shor 特有的几何。检验员是共享的,它对任何一份 (S, G) 清单只会做两件事——穷举一层层的串,或验一条具体的见证。它没有「读懂一段关于列奇偶的论证」的能力,而 QEC-Bank 也不允许人工把纸上的结论填成 verified(码距篇 2.3 节:那叫 claimed)。证书篇 1.1 节的标准是「证书 = 数据 + 一台不信任任何人的检查器」:三句话是证明,不是证书。要让它成为证书,得把「每列奇偶」这类不变量写成检查器能逐条核对的数据——对 Bacon–Shor 也许做得到,但 statement 要的是对一般的子系统家族都能产出证书的方法,而一般的规范群没有行、列、条带这些现成的结构。人话:我们会证,但证明写在纸上;机器要的是它自己能核对的东西,而且要对任何一份清单都管用。

Then why does the 5 × 7 still say bounded 12? Because the three sentences are specific to this family: they use Bacon–Shor's own geometry, “vertical edges slide only within a column”, “stabilizers are strips over two neighbouring columns”. The referee is shared and does only two things with any (S, G) list: exhaust the strings layer by layer, or validate one concrete witness. It has no ability to “understand an argument about column parities”, and the QEC-Bank does not allow a human to enter a paper conclusion as verified (distance guide 2.3: that is called claimed). The standard of certificate guide 1.1 is “a certificate = data + a checker that trusts nobody”: three sentences are a proof, not a certificate. To make them a certificate, invariants like “column parity” must be written as data a checker can verify item by item; perhaps feasible for Bacon–Shor, but the statement wants a method that produces certificates for general subsystem families, and a general gauge group has no ready-made rows, columns or strips. In plain words: we can prove it, but the proof lives on paper; the machine wants something it can check itself, and it must work for any list.

4.3为什么是 open-research,以及玩具尺度上的账Why open-research, and the arithmetic at toy scale

Wanted 板用两个词分难度:hard-engineering——知道怎么做,但要做很多(例如「从理想症状到真实电路」4.2 节);open-research——没人知道怎么做。这道题是后者,且比码距篇的同名难题多一层:那里的候选是「与所有稳定子对易且不是稳定子乘积」的串,这里每个候选还要多做一次「在 G 里吗」的判定,而下界证明必须覆盖整个 G 的所有衣服——松弛法(码距篇 4.2 节:不逐点检查也能证最小值)要在商空间 C(S)/G 上设计,文献里没有现成的做法。2.2 节的表已经给出穷举的账:候选数按 C(n, w) · 3w 增长,35 个比特到重量 4 就是四百多万条,超过两百万的预算;再看码距篇 1.4 节的 2n 墙,n = 35 时全部泡利串有 435 ≈ 1.2 × 1021 条。检验员的预算门为什么设在两百万、为什么拒绝半途下界?设计文档:「This boundary makes small finite examples exact while preventing an accidental exponential referee run.」——防止一次验证意外跑上几天;而「半途的下界」若被接受,就会有人把预算调大一点、再大一点,把「跑到哪算到哪」当成证明。人话:穷举的墙和码距篇一样高,商掉规范群让每一步更贵,而绕过墙的松弛法还没人替子系统码发明出来。

The board grades difficulty with two words: hard-engineering, known how but much to do (for example “From ideal syndromes to real circuits” 4.2); open-research, nobody knows how. This problem is the latter, with one more layer than the namesake problem of the distance guide: there the candidates are strings “commuting with every stabilizer and not a product of stabilizers”, here every candidate additionally needs the test “is it in G?”, and a lower-bound proof must cover every outfit in the whole of G; relaxation methods (distance guide 4.2: proving a minimum without checking every point) would have to be designed on the quotient C(S)/G, and the literature has no ready recipe. The table of 2.2 already gives the exhaustion arithmetic: candidates grow as C(n, w) · 3w, and at 35 qubits weight 4 alone is over four million strings, past the two-million budget; recall the 2n wall of distance guide 1.4: for n = 35 all Pauli strings number 435 ≈ 1.2 × 1021. Why is the referee's gate at two million, and why does it refuse half-way lower bounds? The design document: “This boundary makes small finite examples exact while preventing an accidental exponential referee run”, so one verification cannot accidentally run for days; and if “half-way lower bounds” were accepted, someone would raise the budget a little, then a little more, and treat “as far as it ran” as a proof. In plain words: the exhaustion wall is as high as in the distance guide, quotienting by the gauge group makes every step dearer, and the relaxation method that would go around the wall has not yet been invented for subsystem codes.

记号:4n = n 个比特各取 I/X/Y/Z 的总数(含全 I 的一条);≈ 读「约等于」;1021 = 1 后面 21 个零。1.2 × 1021 是本篇自己算的。

Notation: 4n = all choices of I/X/Y/Z on n qubits (including the all-I string); ≈ reads “approximately”; 1021 = a 1 followed by 21 zeros. 1.2 × 1021 is this guide's own computation.

第 5 章Chapter 5

从这里出发能做什么:在 3 × 3 上亲手记账、读症状、证下界What you can do from here: keep the ledger, read the syndrome and prove the lower bound by hand on the 3 × 3

三道纸上的题,全部在 9 个比特的 square_3 上,答案都能和 QEC-Bank 的推导页逐字对上。最后是往哪里走。 Three exercises on paper, all on the 9-qubit square_3, with answers that match the QEC-Bank derivation pages word for word. Then where to go next.

5.1手算题一:记账,k = 1,g = 4Exercise one: the ledger, k = 1, g = 4

3 × 3 按行编号 q0…q8(q0 q1 q2 / q3 q4 q5 / q6 q7 q8)。写出全部规范生成元:竖边 XX 共 6 条(X0X3、X3X6、X1X4、X4X7、X2X5、X5X8),横边 ZZ 共 6 条(Z0Z1、Z1Z2、Z3Z4、Z4Z5、Z6Z7、Z7Z8)。它们彼此独立,rank G = 12。中心:相邻两行的竖边全部相乘得 X 条带 SX0 = X0X1X2X3X4X5、SX1 = X3…X8;相邻两列的横边全部相乘得 Z 条带 SZ0 = Z0Z1Z3Z4Z6Z7、SZ1 = Z1Z2Z4Z5Z7Z8。验证任一 X 条带与任一横边 ZZ 碰撞 0 或 2 次(对易),rank S = 4。代入公式:k = 9 − (12 + 4)/2 = 1,g = (12 − 4)/2 = 4。对照 QEC-Bank 推导页账本表第二行「3 × 3 | 4 | 12 | 1 | 4」与直觉页 Q4 的答案「k = 9 − (12 + 4)/2 = 1 and g = (12 − 4)/2 = 4」。

Number the 3 × 3 by rows q0…q8 (q0 q1 q2 / q3 q4 q5 / q6 q7 q8). Write all gauge generators: 6 vertical XX (X0X3, X3X6, X1X4, X4X7, X2X5, X5X8) and 6 horizontal ZZ (Z0Z1, Z1Z2, Z3Z4, Z4Z5, Z6Z7, Z7Z8). They are independent, rank G = 12. The center: multiplying all vertical edges between two neighbouring rows gives the X strips SX0 = X0X1X2X3X4X5, SX1 = X3…X8; multiplying all horizontal edges between two neighbouring columns gives the Z strips SZ0 = Z0Z1Z3Z4Z6Z7, SZ1 = Z1Z2Z4Z5Z7Z8. Check that any X strip meets any horizontal ZZ on 0 or 2 sites (commutes); rank S = 4. Substitute: k = 9 − (12 + 4)/2 = 1, g = (12 − 4)/2 = 4. Compare the second row of the QEC-Bank ledger table, “3 × 3 | 4 | 12 | 1 | 4”, and the answer to Q4 of the intuition page, “k = 9 − (12 + 4)/2 = 1 and g = (12 − 4)/2 = 4”.

记号:SXi = 第 i 行与第 i+1 行之间的 X 条带;SZj = 第 j 列与第 j+1 列之间的 Z 条带;行、列都从 0 数起。

Notation: SXi = the X strip between rows i and i+1; SZj = the Z strip between columns j and j+1; rows and columns counted from 0.

5.2手算题二:一个 Z 错误的症状只剩「哪一行」Exercise two: one Z error's syndrome keeps only “which row”

在 q0 上放一个 Z 错误。哪些稳定子报警?SX0 含 X0,与 Z0 碰撞一次,报警;SX1 不含 q0,安静;两条 Z 条带与 Z 错误不碰撞。症状 (s0, s1) = (1, 0)。把错误换到同一行的 q1 或 q2,结果不变——因为 Z0 与 Z1 只差横边 Z0Z1,一个规范算符,对受保护比特作用相同。换到 q3(第 1 行):两条 X 条带都含 q3,症状 (1, 1);换到 q6:只有 SX1 含它,症状 (0, 1)。这正是 QEC-Bank 推导页的表:

Put one Z error on q0. Which stabilizers fire? SX0 contains X0, collides once with Z0, fires; SX1 does not contain q0, quiet; the two Z strips do not collide with a Z error. Syndrome (s0, s1) = (1, 0). Move the error to q1 or q2 in the same row and nothing changes, because Z0 and Z1 differ by the horizontal edge Z0Z1, a gauge operator with the same action on the protected qubit. Move it to q3 (row 1): both X strips contain q3, syndrome (1, 1); to q6: only SX1 contains it, syndrome (0, 1). This is exactly the QEC-Bank derivation page's table:

代表(原文)Representative (verbatim)行奇偶 uRow parity uX 条带症状 (s0, s1)X-center syndrome (s0, s1)
Z on q010010
Z on q301011
Z on q600101

推导页的评语:「The column position is absent because changing it by horizontal Z gauge edges does not change the protected action.」人话:在子系统码里,译码器根本不需要知道错误在哪一列,只要知道哪几行是奇数个错——三行的奇偶再做一次奇偶检查,就是 Toric Code 教程 2.3 节的重复码。这也是为什么 QEC-Bank 说「Degeneracy is the algorithm, not a nuisance」:等价的衣服不是麻烦,而是让问题变简单的原因。

The derivation page's comment: “The column position is absent because changing it by horizontal Z gauge edges does not change the protected action.” In plain words: in a subsystem code the decoder does not need to know which column the error is in, only which rows hold an odd number of errors; a parity check on the three row parities is the repetition code of toric-code section 2.3. This is also why the QEC-Bank says “Degeneracy is the algorithm, not a nuisance”: equivalent outfits are not a bother but the reason the problem becomes easy.

记号:u = 行奇偶向量(每行一个 0/1:该行 Z 错误个数的奇偶);si = 条带 SXi 的读数,si = ui ⊕ ui+1;⊕ 读「异或」。

Notation: u = the row-parity vector (one 0/1 per row: parity of the number of Z errors in that row); si = the reading of strip SXi, si = ui ⊕ ui+1; ⊕ reads “xor”.

5.3手算题三:用三句话证 d ≥ 3,再想想机器为什么不能照做Exercise three: prove d ≥ 3 in three sentences, then think why the machine cannot copy you

按 4.2 节,在 3 × 3 上写出 X 扇区的证明:(1) 竖边只在列内滑动、成对产生或成对湮灭 X,每列 X 的奇偶不变。(2) 与 SZ0 对易要求第 0、1 列奇偶相同,与 SZ1 对易要求第 1、2 列相同;全偶 = 规范算符(4.2 节的配对:同列的 X 两两配对,每对是竖边之积,例如 X0X6 = (X0X3)(X3X6));所以逻辑算符三列都是奇数个 X。(3) 每列至少 1 个,重量 ≥ 3;X0X1X2 达到 3。Z 扇区把行列对换。最后用 1.4 节的两个条件说服自己:一条混合串(既有 X 又有 Z)的 X 部分和 Z 部分各自要么是规范算符、要么落在对应的奇数类里,而它的重量不小于任一非平凡部分的重量——QEC-Bank 推导页的原话:「a mixed Pauli cannot beat both pure-sector minima」。于是 d = 3。这与 2.2 节检验员穷举 2 619 条候选得到的 3 一致。现在回答本篇的核心问题:你的证明用了什么机器没有的东西?答案:「列」「行」「滑动」——这些词属于 Bacon–Shor 的几何,不属于一份一般的 (S, G) 清单。把它们翻译成任何清单都能核对的数据,就是这道 Wanted 题。

Following 4.2, write the X-sector proof on the 3 × 3: (1) vertical edges only slide, create or annihilate X's in pairs within a column; each column's X parity is unchanged. (2) Commuting with SZ0 forces columns 0 and 1 to share a parity, commuting with SZ1 forces columns 1 and 2 to; all-even = a gauge operator (the pairing of 4.2: X's in one column pair up, each pair a product of vertical edges, for example X0X6 = (X0X3)(X3X6)); so a logical has an odd number of X's in all three columns. (3) At least 1 per column, weight ≥ 3; X0X1X2 achieves 3. The Z sector swaps rows and columns. Finally convince yourself with the two conditions of 1.4 that a mixed string (both X and Z) has an X part and a Z part each either a gauge operator or in its odd class, while its weight is at least that of any nontrivial part; the QEC-Bank derivation page's words: “a mixed Pauli cannot beat both pure-sector minima”. Hence d = 3, agreeing with the 3 the referee obtained by exhausting 2 619 candidates in 2.2. Now answer this guide's central question: what did your proof use that the machine does not have? Answer: “column”, “row”, “slide”; these words belong to Bacon–Shor's geometry, not to a general (S, G) list. Translating them into data any list can be checked against is this Wanted item.

5.4往哪里走Where to go

这道题是三道 Wanted 题的交点。「没有更轻的」这一半怎么在大码上证明:「大码的码距」第 4 章的松弛法;怎么写成机器认的证书:「一张机器能核对的证书」第 4 章;换一种写法怎么判定还是同一个码:「同一个码穿不同的衣服」第 4 章。想看 QEC-Bank 对 Bacon–Shor 的全部记录:条目页与它的推导页(gauge-center-and-qubits.md、dressed-distance-and-decoding.md、derivations.md)。想看 QEC-Bank 子系统码的框架定义:foundations/subsystem-codes/intuition.md——目前是一个存根,只有一句话的定义和 Lean Complete v1 的机器边界:「checks the supplied stabilizer/gauge presentation, protected-logical rank formula, and dressed logical witnesses. It does not assert that the supplied stabilizers generate every abstract center or prove subsystem families.」这条 Wanted 记录没有 working_repo 字段。

This item is the crossing point of three Wanted problems. How to prove the “nothing lighter” half on large codes: the relaxation methods of Chapter 4 of “Distance for large codes”; how to write it as a certificate a machine accepts: Chapter 4 of “A machine-checkable certificate”; how to decide that another notation is still the same code: Chapter 4 of “The same code in different clothes”. For the QEC-Bank's full record of Bacon–Shor: the entry page and its derivation pages (gauge-center-and-qubits.md, dressed-distance-and-decoding.md, derivations.md). For the QEC-Bank framework definition of subsystem codes: foundations/subsystem-codes/intuition.md, currently a stub with a one-line definition and the machine boundary of Lean Complete v1: “checks the supplied stabilizer/gauge presentation, protected-logical rank formula, and dressed logical witnesses. It does not assert that the supplied stabilizers generate every abstract center or prove subsystem families.” This Wanted record has no working_repo field.

尾声Epilogue

一份会打架的清单、一件衣服、一道两百万的门A self-fighting list, one outfit, a two-million gate

回放一遍。子系统码允许检查清单互相打架:互不打架的乘积(中心)是真正的稳定子,打架的部分只翻我们不在乎的规范比特,受保护的比特数 k = n − (rank G + rank S)/2。逻辑算符乘上任何规范算符仍是同一条,于是它有很多件衣服;穿了衣服的码距是「与所有稳定子对易、且不在 G 里」的最轻串的重量,商掉的是整个规范群。QEC-Bank 的检验员对 [[4,1,2]]、[[9,1,3]]、[[15,1,3]] 一层层穷举到底(候选数 C(n, w) · 3w,预算两百万),写下 verified;分方向的 dX、dZ 仍是 claimed;对 5 × 7 穷举在第 4 层前拒绝,随机搜索交出一件重量 12 的衣服(seed 17,iters 32),写着 bounded 与 not-certified,尽管纸上三句话就能证 d = 5。我们想要答案,是因为大码的 d 只有一半可信、方向的数字全靠引文、换一种写法证书归零。合格的答案是可扩展的认证下界、命名的扇区、等价安全的表述三样;难度 open-research:纸上的证明用了机器没有的几何,而对一般的规范群,绕过穷举之墙的方法还没有人发明。

Replay. A subsystem code lets its check list fight itself: the mutually commuting products (the center) are the true stabilizers, the fighting part only flips gauge qubits we don't care about, and the protected count is k = n − (rank G + rank S)/2. A logical times any gauge operator is still the same logical, so it has many outfits; the dressed distance is the weight of the lightest string that “commutes with every stabilizer and is not in G”, modulo the whole gauge group. The QEC-Bank referee exhausts [[4,1,2]], [[9,1,3]], [[15,1,3]] layer by layer to the end (C(n, w) · 3w candidates, budget two million) and writes verified; the directional dX, dZ remain claimed; on the 5 × 7 exhaustion refuses before layer 4 and the random search hands over an outfit of weight 12 (seed 17, iters 32), marked bounded and not-certified, although three sentences on paper prove d = 5. We want the answer because a large code's d is only half trustworthy, directional numbers rest on citations, and a change of notation resets the certificate. A qualifying answer is three things, scalable certified lower bounds, named sectors, equivalence-safe presentations; the difficulty is open-research: the paper proof uses geometry the machine does not have, and for a general gauge group the method that would go around the exhaustion wall has not been invented.

符号与读法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;[[4,1,2]]、[[9,1,3]]、[[15,1,3]]。n physical qubits, k protected qubits, dressed distance d; [[4,1,2]], [[9,1,3]], [[15,1,3]].
r, c读「行数、列数」Read “rows, columns”矩形的行数与列数;n = rc,g = (r−1)(c−1),dX = c,dZ = r,d = min(r, c)(QEC-Bank 家族公式)。Rows and columns of the rectangle; n = rc, g = (r−1)(c−1), dX = c, dZ = r, d = min(r, c) (the QEC-Bank family formula).
q0 … q8, Xi, Zi读「比特 i、比特 i 上的 X / Z」Read “qubit i, X / Z on qubit i”按行编号 q(i, j) = i·c + j;X0X2 在比特 0、2 上各放一个 X。Row-major numbering q(i, j) = i·c + j; X0X2 puts an X on qubits 0 and 2.
G, S读「规范群、稳定子群」Read “gauge group, stabilizer group”全部规范生成元的乘积集合;其中与所有元素对易的部分(中心)。rank = 独立生成元条数。All products of gauge generators; the part commuting with everything (the center). rank = number of independent generators.
k, g读「k、g」Read “k, g”k = n − (rank G + rank S)/2 受保护比特;g = (rank G − rank S)/2 规范比特。k = n − (rank G + rank S)/2 protected qubits; g = (rank G − rank S)/2 gauge qubits.
C(S), C(S)/G, ∉读「S 的中心化子、C(S) 商 G、不属于」Read “centralizer of S, C(S) modulo G, not in”与 S 每条都对易的串;把只差规范算符的串合并成一类;p ∉ G 是条件 2。Strings commuting with every row of S; merging strings differing by a gauge operator into one class; p ∉ G is condition 2.
X̄, Z̄读「X 杠、Z 杠」Read “X bar, Z bar”受保护比特的逻辑算符;裸的是一整行 / 一整列。Logical operators of the protected qubit; the bare ones are a whole row / column.
SXi, SZj读「第 i 条 X 条带、第 j 条 Z 条带」Read “X strip i, Z strip j”相邻两行 / 两列的全部竖边 / 横边之积;中心的生成元。Products of all vertical / horizontal edges between two neighbouring rows / columns; generators of the center.
dX, dZ读「X 扇区码距、Z 扇区码距」Read “X-sector distance, Z-sector distance”最轻的 X 型 / Z 型穿衣逻辑算符的重量;instances.yaml 里 claimed。Weight of the lightest X-type / Z-type dressed logical; claimed in instances.yaml.
u, pj, si, ⊕读「行奇偶、列奇偶、条带读数、异或」Read “row parity, column parity, strip reading, xor”5.2 节:si = ui ⊕ ui+1;穿衣改不了 u、p。Section 5.2: si = ui ⊕ ui+1; dressing cannot change u, p.
C(n, w) · 3w, 4n读「n 选 w 乘 3 的 w 次方、4 的 n 次方」Read “n choose w times 3 to the w, 4 to the n”第 w 层候选数;全部泡利串数。5 × 7 第 4 层 4 241 160 条。Candidates in layer w; all Pauli strings. Layer 4 of the 5 × 7 has 4 241 160.
seed, iters读「种子、轮数」Read “seed, iterations”随机搜索的起点与轮数;5 × 7 为 17、32。Start and rounds of the random search; 17 and 32 for the 5 × 7.

本篇新增词汇New terms in this guide

术语Term白话定义Plain definition
子系统码subsystem code检查清单允许互相打架的码;只有中心是稳定子,其余翻不在乎的比特。A code whose check list may fight itself; only the center consists of stabilizers, the rest flips don't-care qubits.
规范生成元 / 规范群gauge generator / gauge group允许反对易的「检查」;它们的全部乘积。“Checks” allowed to anticommute; all their products.
中心center规范群里与所有元素对易的部分 = 真正的稳定子。The part of the gauge group commuting with everything = the true stabilizers.
规范比特(不在乎的比特)gauge qubit (don't-care qubit)编码空间里被规范生成元随意翻动、不承载信息的自由度。A degree of freedom in the code space flipped at will by gauge generators, carrying no information.
裸 / 穿衣的逻辑算符bare / dressed logical与整个规范群对易的逻辑算符 / 只需与中心对易、可乘任意规范算符的逻辑算符。A logical commuting with the whole gauge group / one that need only commute with the center and may be multiplied by any gauge operator.
穿衣码距dressed distance「与 S 对易且 ∉ G」的最轻串的重量;子系统码真正的码距。The weight of the lightest string “commuting with S and ∉ G”; the true distance of a subsystem code.
商掉整个规范群modulo the full gauge group只差任一规范算符的两条串算同一条——不只是差一个稳定子。Two strings differing by any gauge operator count as one, not only those differing by a stabilizer.
扇区sector按泡利类型分的候选集合;dX、dZ 是两个扇区各自的码距。Candidate sets split by Pauli type; dX, dZ are the two sectors' distances.
表述presentation写码时用的具体生成元清单;同一个码有无数种。The concrete generator list used to write a code; one code has infinitely many.
检验员 / 重量层 / 预算referee / weight layer / budgetQEC-Bank 共享验证程序;同一重量的全部候选;两百万条的门。The shared QEC-Bank verifier; all candidates of one weight; the two-million gate.
见证 / not-certifiedwitness / not-certified一条具体找到的穿衣逻辑算符(上界);「没人证明它最轻」。One concrete dressed logical found (an upper bound); “nobody proved it lightest”.
证据词evidence wordverified(机器穷举)、bounded(机器上界;下界一半或来自引文、或像 5 × 7 的见证那样根本没有)、claimed(引文)。verified (machine exhaustion), bounded (machine upper bound; the lower half is either a citation or, as for the 5 × 7 witness, absent), claimed (citation).
open-research / hard-engineeringopen-research / hard-engineeringWanted 板的两种难度:没人知道怎么做 / 知道怎么做但要做很多。本篇是前者。The board's two difficulty grades: nobody knows how / known how but much to do. This guide's item is the former.

延伸阅读Further reading

  • D. Bacon, “Operator Quantum Error Correcting Subsystems for Self-Correcting Quantum Memories” (2006)
    bacon2006operator(QEC-Bank 已登记,arXiv quant-ph/0506023)。instances.yaml 里 dX、dZ、gauge_qubits 三个 claimed 的引文出处。本篇没有读它。bacon2006operator (registered in the QEC-Bank, arXiv quant-ph/0506023). The citation behind the claimed dX, dZ and gauge_qubits in instances.yaml. This guide did not read it.
  • J. Napp, J. Preskill, “Optimal Bacon-Shor Codes” (2013)
    napp2013optimal(已登记,arXiv 1209.0794)。3 × 5 实例 dX = 5、dZ = 3 的引文;卡片译码记录也引它。napp2013optimal (registered, arXiv 1209.0794). The citation for dX = 5, dZ = 3 of the 3 × 5 instance; also cited by the card's decoder record.
  • P. Aliferis, A. W. Cross, “Subsystem Fault Tolerance with the Bacon-Shor Code” (2007)
    aliferis2007subsystem(已登记,arXiv quant-ph/0610063)。卡片第一条译码记录(lookup-table,standard)的引文。本篇未涉及译码与容错。aliferis2007subsystem (registered, arXiv quant-ph/0610063). Cited by the card's first decoder record (lookup-table, standard). Decoding and fault tolerance are outside this guide.
  • QEC-Bank: the Wanted item and its data
    wanted/subsystem-dressed-distance.yaml(六个字段的原文)、codes/bacon_shor/instances.yaml(三个实例的全部证据词)、codes/bacon_shor/intuition.md(规范 / 中心 / 裸与穿衣的原文,家族公式,失败模式)、codes/bacon_shor/pedagogy/gauge-center-and-qubits.md(账本表)、dressed-distance-and-decoding.md(奇偶证明、单错误症状表、5 × 7 见证)、derivations.md(来源划分)、computed/subsystem_distances/*.json(四份证据文件)、qeclib/distance.py(检验员,预算两百万)、docs/design-references/2026-08-10-subsystem-dressed-distance-v1.md(穿衣码距的定义与检验员契约)、foundations/subsystem-codes/intuition.md(一句话定义,存根)。wanted/subsystem-dressed-distance.yaml (the six fields verbatim), codes/bacon_shor/instances.yaml (every evidence word of the three instances), codes/bacon_shor/intuition.md (the gauge / center / bare-and-dressed text, the family formula, the failure modes), codes/bacon_shor/pedagogy/gauge-center-and-qubits.md (the ledger table), dressed-distance-and-decoding.md (the parity proof, the single-error syndrome table, the 5 × 7 witness), derivations.md (the provenance split), computed/subsystem_distances/*.json (the four evidence files), qeclib/distance.py (the referee, budget two million), docs/design-references/2026-08-10-subsystem-dressed-distance-v1.md (the definition of dressed distance and the referee contract), foundations/subsystem-codes/intuition.md (the one-line definition, a stub).
诚实总账The honesty ledger

状态原文:open;难度原文:open-research。逐字引用的:statement、current_proxy、why_it_matters(第 1、2、3 章的框),instances.yaml 的三条记录,两份证据 JSON 的字段,distance.py 的常数 2_000_000 与方法名,设计文档的定义与「unverifiable rather than a lower bound」句,直觉页与推导页的引文(「not a defect」、账本表、「Quotienting only by S …」、「refuses an over-budget layer …」、「does not replace the parity proof …」、「is evidence for one pair …」、「Degeneracy is the algorithm …」、「a mixed Pauli cannot beat …」等),foundations 存根的一句话。本篇自己算的、QEC-Bank 页面上没有的:2 × 2 的全部对易 / 反对易核对、12 条重量 1 串的排除、X0X2 的反例、3 × 3 的锯齿 X3X1X5、2.2 节表中各层候选数(含 5 × 7 第 4 层 4 241 160)与累计数、见证串 35 个字符 / 重量 12 的计数、435 ≈ 1.2 × 1021。本篇自己证的:1.4 节 2 × 2 的 d = 2,5.1 节的账本,5.2 节的症状表,5.3 节的 d ≥ 3 三句话(照 QEC-Bank 推导页的论证在 3 × 3 上重做)。只描述、未推导的:一般子系统码的下界证书应当长什么样、松弛法在 C(S)/G 上如何设计、表述等价定理的形式、Lean Complete v1 的内部。已指出的不一致:intuition.md 两段关于 d 证据词的旧说法与新说法(以 instances.yaml 为准)。没有在本机运行检验员、reproduce.py 或任何验证器;没有阅读引文论文正文;其他子系统码条目的卡片没有读。

Status verbatim: open; difficulty verbatim: open-research. Quoted word for word: statement, current_proxy, why_it_matters (the boxes of Chapters 1, 2, 3), the three instances.yaml records, the fields of two evidence JSON files, the constant 2_000_000 and method names of distance.py, the definition and the “unverifiable rather than a lower bound” sentence of the design document, the intuition- and derivation-page quotations (“not a defect”, the ledger table, “Quotienting only by S …”, “refuses an over-budget layer …”, “does not replace the parity proof …”, “is evidence for one pair …”, “Degeneracy is the algorithm …”, “a mixed Pauli cannot beat …” and others), the one-liner of the foundations stub. Computed for this guide and absent from QEC-Bank pages: every commute / anticommute check on the 2 × 2, the exclusion of the 12 weight-1 strings, the X0X2 counter-example, the 3 × 3 zig-zag X3X1X5, the layer sizes and running totals of the table in 2.2 (including 4 241 160 for layer 4 of the 5 × 7), the count of 35 characters / weight 12 in the witness string, 435 ≈ 1.2 × 1021. Proved in this guide: d = 2 for the 2 × 2 in 1.4, the ledger of 5.1, the syndrome table of 5.2, the three-sentence d ≥ 3 of 5.3 (redoing the QEC-Bank derivation page's argument on the 3 × 3). Described only, not derived: what a lower-bound certificate for general subsystem codes should look like, how relaxation would be designed on C(S)/G, the form of a presentation-equivalence theorem, the interior of Lean Complete v1. Inconsistency flagged: the older and newer statements about d's evidence word in two passages of intuition.md (instances.yaml taken as authoritative). Neither the referee, reproduce.py nor any verifier was run on this machine; the bodies of the cited papers were not read; the cards of other subsystem-code entries were not read.