Concatenation encodes a code inside itself, so each physical qubit of the outer block becomes a whole encoded block of its own, and the failure probability drops to roughly its own square at every level.
concatMeasure_concatBad_leOne round of error correction improves matters but doesn't make them arbitrarily good, as a code that survives a single error still fails when two errors land in the same block. If the physical failure rate is small then two errors in one block is a much rarer event than one, which is exactly the improvement a code delivers, and the natural thing is to do it again.
Concatenation does that. Take the seven-qubit code, then replace each of its seven qubits by another seven-qubit block, giving forty-nine physical qubits protecting one logical qubit at level two. A level-two block fails only when two of its seven level-one blocks fail, and each of those fails only when two of its seven physical qubits fail, so the failure probability at each level is about a constant times the square of the level below. Squaring repeatedly is very fast: below the rate where the squaring starts winning, a few levels take a failure probability from one in a hundred to numbers with a great many zeros.
The cost is that qubit counts multiply by seven per level, which is why concatenation is the theoretical backbone of fault tolerance rather than the practical choice, as surface codes achieve a similar effect with a friendlier layout.
The corpus builds concatenation as a recursion on pattern types and proves the bound by induction, rather than asserting the usual squaring rule. A level-k fault pattern is a tree of patterns, a level-k block is bad when at least two of its n children are bad, and the measure is the product measure of independent physical faults, so the inductive step is a two-or-more bound on a product measure.
The outcome is the concatenated failure bound, a constant times the physical rate raised to two to the power of the level, divided by that constant. Below one over the constant the bound tends to zero, which is the code-capacity threshold, and the Steane instance supplies the constant twenty-one by counting the weight-two error patterns the code cannot correct. The circuit-level threshold theorem then adds a union bound over the gadgets of a whole circuit on top of this recursion, so the two results are the same induction used at two scales. What stays open is the recovery channel at level k as an operator statement, which needs a tensor layer over blocks, and it's a numbered row rather than an omission.
ConcatPat n k is the level-k pattern type, Bool at level zero and Fin n indexed patterns above, with card_concatPat giving 2^(n^k); concatMeasure is the product measure of Bernoulli p over its coordinates. isBad n is the recursion, true at level zero on a faulty qubit and at level k + 1 when at least two children are bad, and concatMeasure_concatBad_le is the induction: the measure of concatBad n k is at most (c p)^(2^k) / c, with the inductive step supplied by measure_pi_two_or_more_le, a bound on the probability that two or more of n independent events occur.
For the Steane code steane_codeCapacity_failure_le gives c = 21 by counting the twenty-one weight-two patterns on seven qubits, and steane_threshold is the resulting convergence for p < 1/21. The level-k recovery channel is BACKLOG row 86 and is not claimed; the discretisation step that makes one-qubit arbitrary errors correctable at level one is proved (steane_recovery_arbitrary).
Concatenation as a route to arbitrary accuracy is due to Emanuel Knill and Raymond Laflamme, who introduced concatenated codes in 1996, and it became the engine of the first threshold proofs. The idea is older than quantum computing, as classical coding theory had long used codes built from codes, and Forney's concatenated codes of the mid-1960s are the ancestor.
Modern architectures mostly concatenate only shallowly, or not at all, and topological codes have taken over the role, although every threshold estimate still reports the number concatenation made meaningful.
CsdLean4/Mathlib/Probability/CodeCapacityThreshold.leanSource links are pinned to a commit, so they do not drift. The anchors above are checked mechanically against the Lean tree on every build. The mathematics is not, and cannot be: that is a human responsibility and it rests with the author.
Part of Constraint-Surface Dynamics · Formalised in csd-lean4.
Google Analytics counts visits to this page, which stores cookies in your browser. They record how the page was reached, not who you are, and nothing is passed on. Blocking cookies for this site breaks nothing here. Details.