From punctured Boolean evaluations to a CSS block

Question. How do fifteen four-bit labels determine the complete stabilizer space, rather than merely suggest a Reed–Muller analogy?

Everything below uses the constructor's fixed order: qubit q carries the four-bit binary expansion of q+1, from 0001 through 1111, with the most-significant bit first.

1. The evaluation map

Let V=F_2^4 and V*=V\{0}. For u in F_2^4, define the length-fifteen word

ell_u = (u dot v)_(v in V*).

The map u -> ell_u is linear and injective. If ell_u vanished for every nonzero v, then it would vanish on the four standard basis vectors and force u=0. Its image

L = {ell_u : u in F_2^4}

therefore has dimension four. The constructor uses the four coordinate functions as an ordered basis:

000000011111111
000111100001111
011001100110011
101010101010101

Every nonzero ell_u has weight eight. On all sixteen inputs a nonzero linear functional has an eight-dimensional zero half and an eight-dimensional one half; its value at the removed input 0000 is zero, so puncturing does not change the weight.

This Boolean-evaluation starting point is the route given by Steane's quantum Reed–Muller construction. The Atlas fixes an explicit basis and coordinate order so every later statement is executable.

2. Why the all-one row is logical, not a check

Let 1 be the length-fifteen all-one word. It is not in L: the zero word in L has weight zero and every nonzero word has weight eight, while 1 has weight fifteen. Hence

G = L + span{1}

has dimension five. The code uses L as its X-stabilizer space and reserves the other coset 1+L for logical X. This choice is essential. If the odd row were also declared an X stabilizer, the encoded dimension and diagonal phase action would both change.

3. Build Z checks by orthogonality

Define

S_Z = G^perp = {z : z dot ell_u = 0 for all u, and z dot 1 = 0}.

The constructor obtains an ordered basis with gf2.nullspace(vstack([X_CHECKS, LOGICAL_X])). Its ten output rows are a basis of S_Z, not ten individually canonical geometric faces. Any invertible row recombination gives the same Z-stabilizer group.

Because S_Z is orthogonal to L,

H_X H_Z^T = 0.

Thus every X generator commutes with every Z generator. Same-type generators already commute, so CheckMatrix.from_css(H_X,H_Z) is a valid stabilizer matrix. The verifier checks this product and calls validate() on the full symplectic array.

The extra condition z dot 1=0 says every Z stabilizer has even support. It also distinguishes Z stabilizers from the odd logical-Z coset used on the distance page.

4. Count the encoded dimension

The X rank is four. Since G has dimension five in a fifteen-dimensional ambient space, S_Z=G^perp has dimension ten. X-only and Z-only stabilizer rows occupy disjoint symplectic halves, so their ranks add:

rank(S)=4+10=14.

A rank-fourteen stabilizer on fifteen qubits encodes

k=15-14=1.

This count is independent of the particular nullspace basis printed in constructor.py. It depends only on the evaluation space L and the reserved all-one row.

5. Relation to the fifteen-qubit quantum Hamming block

The repository's [[15,7,3]] quantum Hamming entry uses the same four coordinate rows for both X and Z checks. Its four-dimensional Z space is a subspace of this code's ten-dimensional S_Z. Adding six independent Z constraints fixes six of the Hamming block's seven logical degrees of freedom and leaves this one-qubit block. The companion entry verifies that literal row-space containment in the shared qubit order.

This relation is gauge-out/dimension reduction, not two names for the same stabilizer code. The ranks 8 and 14 already rule out that conflation.

6. What is and is not verified here

The evaluation points, matrices, ranks, commutation, and encoded dimension are recomputed by pedagogy/reproduce.py. The historical naming and the fact that this block is the punctured four-variable member of the broader quantum Reed–Muller lineage remain cited to the primary literature. The tetrahedral 3D color-code realization is a separate curated dictionary; the present proof uses no unexported geometric assumption.