A binary linear code of length is a vector subspace . The Hamming weight of a word counts its nonzero coordinates, and the code weight is ; for a linear code this equals its minimum distance. One may assign infinite minimum weight to the zero code when needed.
For length- codes with , the bar product of binary linear codes is
It is a linear code because this map from is linear and injective. For a nonzero codeword, if then and its weight is . If , every nonzero coordinate of makes exactly one of the corresponding coordinates of nonzero; hence
Taking the minimum gives
In fact equality holds when the codes are nonzero: minimum-weight words and attain the two candidate weights.
For binary linear codes of length , the bar product of binary linear codes is . The parametrization is injective and linear, so its dimension is . If , a nonzero word has Hamming weight at least ; if , . Taking and of minimum weight shows
For , the inner product of and is , since . The spaces have complementary dimensions, proving .
Define the Reed-Muller code by evaluating all multilinear polynomials of total degree at most at the points of . The squarefree monomials are independent functions, giving dimension . Splitting according to the last variable gives the Reed-Muller bar-product recursion , with the endpoint codes interpreted in the usual way. The distance recursion gives .
To identify the Dual of a Reed-Muller code, multiply a monomial of degree at most by one of degree at most . The product omits some variable, so its sum over is even and its binary inner product is zero. The binomial dimension identity then gives
A linear code of length over is a linear subspace . A parity-check matrix satisfies . Its minimum distance of a code is the least Hamming distance between distinct codewords, equivalently the least Hamming weight of a nonzero word, because differences remain in the code.
For the usual binary bar product of binary linear codes, take equal-length binary codes with and define
It is linear, of length and dimension , since the parametrization is injective. If and the word is nonzero, its weight is . If , coordinatewise . The words with of minimum nonzero weight and with of minimum weight achieve the two candidate bounds. Thus
For a word , membership is equivalent to and . Consequently a parity-check matrix of a bar product is
The same distance argument actually needs only equal block lengths and a common field, not nesting. Over a general field replace the second row block by , so it tests . The displayed binary construction uses the conventional nesting.
For length- binary linear codes , their bar product of binary linear codes is
The map is injective and linear, so
If is the minimum distance of , then
For this is at least ; for a nonzero word has weight at least . Words and attain these bounds, proving
A parity-check matrix for a code is a matrix satisfying . A pair belongs to exactly when
Thus a parity-check matrix is
This is the parity-check matrix of a bar product.
The Reed-Muller code is the length- binary code obtained by evaluating every square-free polynomial in Boolean variables of degree at most on all points of . Equivalently,
The square-free monomials form a basis, so
A word in evaluates an affine function . The two constant functions have weights and . Every nonconstant affine function takes each value equally often, so all other codewords have weight .
A monomial of degree has weight . Hence every generator, and therefore every codeword, has even weight when . For , the monomial has weight one. All words have even weight exactly for .
For binary length- linear codes , their bar product of binary linear codes is
It is a binary linear code of length and dimension .