The Hidden Bit in the Steane Code


The Steane code is a [[7,1,3]][[7,1,3]] quantum error-correcting code: 7 physical qubits protecting 1 logical qubit, correcting any single-qubit error. Its stabilizer structure is defined by the Fano plane — the same 7-point, 7-line projective geometry from the golden zeta writeup.

I computed the entanglement entropy of every possible 3-qubit subsystem. There are (73)=35\binom{7}{3} = 35 of them. The result is cleaner than it has any right to be: the 35 triples partition into exactly three classes, and the partition is controlled by the Fano plane.

The partition

The logical 0L|0_L\rangle state of the Steane code is a uniform superposition over the 8 even-weight codewords of the classical Hamming(7,4) code:

0L=18xCevenx|0_L\rangle = \frac{1}{\sqrt{8}} \sum_{x \in C_{\text{even}}} |x\rangle

For each of the 35 ways to pick 3 qubits from 7, I traced out the other 4 and computed the von Neumann entropy SS and the tripartite mutual information I3I_3:

I3(A:B:C)=S(A)+S(B)+S(C)S(AB)S(BC)S(AC)+S(ABC)I_3(A:B:C) = S(A) + S(B) + S(C) - S(AB) - S(BC) - S(AC) + S(ABC)

Every triple falls into one of three bins. No exceptions.

triples 35
7
Fano
6
Anti-Fano
22
Generic
35
Total
tripleclassS (bits)$I_3$$|\Phi|$
{0, 1, 5}Fano300
{0, 2, 4}Fano300
{0, 3, 6}Fano300
{1, 2, 3}Fano300
{1, 4, 6}Fano300
{2, 5, 6}Fano300
{3, 4, 5}Fano300
{0, 1, 4}Anti2-12
{0, 2, 5}Anti2-12
{1, 2, 6}Anti2-12
{1, 3, 5}Anti2-12
{2, 3, 4}Anti2-12
{4, 5, 6}Anti2-12
{0, 1, 2}302
{0, 1, 3}302
{0, 1, 6}302
{0, 2, 3}302
{0, 2, 6}302
{0, 3, 4}302
{0, 3, 5}302
{0, 4, 5}302
{0, 4, 6}302
{0, 5, 6}302
{1, 2, 4}302
{1, 2, 5}302
{1, 3, 4}302
{1, 3, 6}302
{1, 4, 5}302
{1, 5, 6}302
{2, 3, 5}302
{2, 3, 6}302
{2, 4, 5}302
{2, 4, 6}302
{3, 4, 6}302
{3, 5, 6}302

7 + 7 + 21 = 35. The bar heights show entropy: Anti-Fano triples are shorter (S=2 bits) than the rest (S=3 bits).

The 35 triples, sorted by class. Bar heights are proportional to entropy: Anti-Fano triples are visibly shorter (S=2 bits) than the rest (S=3 bits). Drag the slider or press Play to reveal them one by one.

| Type | Count | Entropy SS | I3I_3 | Associator Φ|\Phi| | |---|---|---|---|---| | Fano lines | 7 | 3 bits | 0 | 0 | | Anti-Fano triples | 7 | 2 bits | 1-1 | 2 | | Generic triples | 21 | 3 bits | 0 | 2 |

Seven triples have maximal entropy and zero tripartite correlation — these are the 7 Fano lines. Seven triples have sub-maximal entropy and I3=1I_3 = -1 — genuine 3-party entanglement that can’t be decomposed into pairs. The remaining 21 are generic.

The 7 + 7 + 21 = 35 partition is exact. And it’s the Fano plane that decides which is which.

Fano lines vs Anti-Fano triples

The Fano plane has 7 lines. But there’s a dual structure hiding in the complement. Each Anti-Fano triple’s 4-qubit complement contains exactly one Fano line:

Anti-Fano tripleComplementFano line in complement
{0,1,4}\{0, 1, 4\}{2,3,5,6}\{2, 3, 5, 6\}{2,3,5}\{2, 3, 5\}
{0,2,5}\{0, 2, 5\}{1,3,4,6}\{1, 3, 4, 6\}{3,4,6}\{3, 4, 6\}
{1,2,6}\{1, 2, 6\}{0,3,4,5}\{0, 3, 4, 5\}{0,4,5}\{0, 4, 5\}
{1,3,5}\{1, 3, 5\}{0,2,4,6}\{0, 2, 4, 6\}{0,2,6}\{0, 2, 6\}
{2,3,4}\{2, 3, 4\}{0,1,5,6}\{0, 1, 5, 6\}{1,5,6}\{1, 5, 6\}
{4,5,6}\{4, 5, 6\}{0,1,2,3}\{0, 1, 2, 3\}{0,1,3}\{0, 1, 3\}

This is a canonical bijection: 7 Fano lines \leftrightarrow 7 Anti-Fano triples, paired through complementation. The Fano plane is dual to itself, but the duality swaps the roles: lines become “anti-lines.”

0123456
Select 3 points to classify a triple
0/3 selected
show all
7 Fano lines: S=3, I₃=0, Φ=0
7 Anti-Fano: S=2, I₃=−1, |Φ|=2
21 Generic: S=3, I₃=0, |Φ|=2

Click 3 points to select a triple. The Fano plane has exactly 35 triples: 7 lines, 7 anti-lines, 21 generic.

Click any 3 points to classify a triple. Fano lines follow the plane’s geometry (3 collinear points). Anti-Fano triples are specifically the 7 triples whose complement contains a Fano line. The other 21 are generic. Use the buttons to highlight all of each class at once.

The octonionic connection

The Fano plane isn’t just a combinatorial object — it’s the multiplication table of the octonions. The 7 imaginary units e1,,e7e_1, \ldots, e_7 multiply according to the Fano lines: if {i,j,k}\{i, j, k\} is a line with the right cyclic orientation, then eiej=eke_i \cdot e_j = e_k.

The octonions are non-associative. The associator

Φ(a,b,c)=(ab)ca(bc)\Phi(a, b, c) = (ab)c - a(bc)

measures how badly associativity fails. For triples of basis elements:

  • Fano line {i,j,k}\{i, j, k\}: Φ(ei,ej,ek)=0\Phi(e_i, e_j, e_k) = 0. The triple generates a quaternionic (associative) subalgebra.
  • Non-Fano triple: Φ=2|\Phi| = 2. Associativity breaks.

The Steane code’s entropy partition mirrors this exactly. Fano lines = associative = maximal entropy. Anti-Fano triples = non-associative = sub-maximal entropy with irreducible 3-party entanglement.

But the octonion associator alone doesn’t distinguish Anti-Fano from generic — all 28 non-Fano triples have Φ=2|\Phi| = 2. What separates the 7 Anti-Fano triples from the 21 generic ones is the Hamming code structure: Anti-Fano triples are the ones where the XOR parity xixjxkx_i \oplus x_j \oplus x_k is constant across all 8 codewords of 0L|0_L\rangle. This causes the reduced density matrix to have rank 4 instead of 8.

The hidden bit

Here’s the punchline. Three quantities — from algebra, entropy, and information theory — all evaluate to the same number:

log2Φ=ΔS=I3=1 bit\log_2 |\Phi| = \Delta S = |I_3| = 1 \text{ bit}

log₂|Φ| = ΔS = |I₃| = 1 bit
00.511 bitlog₂|Φ|Associator magnitudelog₂(2)ΔSEntropy deficit3 − 2|I₃|Tripartite mutual info|−1|

Three different quantities — algebraic, entropic, information-theoretic — all encode the same hidden bit.

  • Φ=2|\Phi| = 2 is the associator magnitude, so log2(2)=1\log_2(2) = 1
  • ΔS=32=1\Delta S = 3 - 2 = 1 is the entropy deficit of Anti-Fano triples
  • I3=1|I_3| = 1 is the magnitude of the tripartite mutual information

One bit. The same bit, expressed three different ways. The logical qubit protected by the Steane code is stored in the non-associativity of the octonions.

Zero pairwise, nonzero tripartite

The Anti-Fano triples have a striking property: all pairwise correlations vanish, but the 3-party correlation doesn’t.

For the Anti-Fano triple {0,1,4}\{0, 1, 4\}:

S(0)=S(1)=S(4)=1S(0) = S(1) = S(4) = 1 S(01)=S(14)=S(04)=2S(01) = S(14) = S(04) = 2 S(014)=2S(014) = 2

So:

I(0:1)=1+12=0I(0:1) = 1 + 1 - 2 = 0 I(1:4)=1+12=0I(1:4) = 1 + 1 - 2 = 0 I(0:4)=1+12=0I(0:4) = 1 + 1 - 2 = 0

But:

I3=1+1+1222+2=1I_3 = 1 + 1 + 1 - 2 - 2 - 2 + 2 = -1

No pairwise measurement can access the hidden bit. The information is entirely in the irreducible 3-party correlation. You need all three qubits to see it. This is also why the associator needs three elements — (ab)c(ab)c vs a(bc)a(bc) — you can’t detect non-associativity from pairs alone.

The associator encodes the logical qubit

On an Anti-Fano triple, the two bracketings of the octonion product give opposite signs:

(eiej)ek=+X,ei(ejek)=X(e_i e_j) e_k = +X, \qquad e_i(e_j e_k) = -X

That sign flip — left-association vs right-association — is exactly 1 bit. And it distinguishes the logical states: measuring the XOR parity ZiZjZkZ_i Z_j Z_k on any Anti-Fano triple gives +1+1 for 0L|0_L\rangle and 1-1 for 1L|1_L\rangle.

Fano lines can’t do this. Their associator is zero — no sign to carry information. The logical qubit lives in the non-associative part of the algebra.

Hardware and software

The picture that emerges:

  • Fano lines = the hardware. Associative subalgebras. Maximal entropy (thermal, boundary-like). They provide the stabilizer structure — the redundancy that enables error correction. But they carry no logical information.
  • Anti-Fano triples = the software. Non-associative. Sub-maximal entropy (coherent, bulk-like). They carry the logical qubit in their irreducible 3-party entanglement.

Error correction works because these roles are separated. Errors on the “hardware” qubits can be detected and corrected without disturbing the “software” correlations. The associative/non-associative boundary is the boundary between the code’s structure and its content.

Why 7?

The number 7 isn’t a design choice. It’s forced by deep mathematics:

  • Hurwitz’s theorem: Normed division algebras over R\mathbb{R} exist only in dimensions 1, 2, 4, 8. The octonions (dim=8\dim = 8) are the last one, with 7 imaginary dimensions.
  • Adams’ theorem: Parallelizable spheres exist only for S0,S1,S3,S7S^0, S^1, S^3, S^7.
  • Hopf fibrations: S2n1SnS^{2n-1} \to S^n with fiber Sn1S^{n-1} exist only for fibers S0,S1,S3,S7S^0, S^1, S^3, S^7.
  • Cross products satisfying a×b2=a2b2(ab)2|a \times b|^2 = |a|^2|b|^2 - (a \cdot b)^2 exist only in dimensions 0, 1, 3, 7.

The pattern is always 2n12^n - 1 for n=0,1,2,3n = 0, 1, 2, 3: namely 0,1,3,70, 1, 3, 7. Seven is the maximum. The Steane code’s 7 qubits, the Fano plane’s 7 points, and the octonions’ 7 imaginary units are all reflections of this single constraint.

Open questions

  • Is the hidden bit identity log2Φ=ΔS=I3=1\log_2 |\Phi| = \Delta S = |I_3| = 1 a coincidence, or does it generalize? What happens for larger codes built from higher-dimensional projective geometries?
  • The Fano/Anti-Fano duality looks like a toy version of holographic bulk/boundary correspondence. The boundary (Fano lines) is thermal; the bulk (Anti-Fano triples) carries protected information. How far does this analogy go?
  • An observer restricted to associative operations sees the hidden bit averaged to zero — it looks like thermal noise. Is this a model for how semiclassical observers lose quantum information at horizons?