关于Type II码当且仅当8|n时存在的充分性证明疑问
Hey there! Nice job cracking the necessity part—proving Type II codes can only exist when $n$ is divisible by 8 is no small feat. Let's walk through the sufficiency side: how to show that for any integer $k \geq 1$, there exists a Type II code of length $n=8k$.
The key here is constructive proof: we'll build valid Type II codes from smaller, known Type II codes, then verify they meet all the definition's requirements.
1. Start with a Base Case: The [8,4,4] Extended Hamming Code
First, confirm we have a valid Type II code for $n=8$: the extended Hamming code of length 8. It checks all boxes:
- Dimension is $4 = 8/2$, which matches the $n/2$ requirement.
- It's self-dual ($C=C^*$): every codeword is orthogonal to all others (including itself), and the dual code has the same dimension as the original, so they're equal.
- All codewords have weights that are double even: non-zero weights are either 4 or 8, both divisible by 4.
This is our building block for longer codes.
2. Tensor Product (Direct Sum) Construction
For any $n=8k$, we can construct a Type II code by taking the direct sum of $k$ copies of the [8,4,4] extended Hamming code. Let's formalize this:
Let $C_i$ denote the [8,4,4] code for each $i=1,2,...,k$. Define:
$$C = C_1 \oplus C_2 \oplus \dots \oplus C_k$$
Where each codeword in $C$ is a concatenation of one codeword from each $C_i$.
Now verify the Type II conditions:
- Dimension: Each $C_i$ has dimension 4, so the total dimension is $4k = 8k/2 = n/2$—perfect.
- Self-dual: The dual of a direct sum of codes is the direct sum of their duals. Since each $C_i$ is self-dual ($C_i = C_i^$), we get $C^ = C_1^* \oplus \dots \oplus C_k^* = C_1 \oplus \dots \oplus C_k = C$.
- Double even weights: Every codeword in $C$ is a concatenation of codewords from each $C_i$, each of which has weight divisible by 4. The total weight is the sum of these weights, which is also divisible by 4. Plus, since $C$ is self-dual, all codewords have even weight (from $\langle u,u \rangle = 0$ for all $u \in C$), so combining these, weights are double even.
3. Recursive/Extended Constructions (For Larger Codes)
If you want a more recursive approach, you can build longer Type II codes from existing ones:
- Suppose you have a Type II code $C$ of length $n$. You can construct a Type II code of length $n+8$ by taking the direct sum of $C$ with the [8,4,4] code. This works for the same reasons as the tensor product method above.
- For example, starting from [8,4,4], you get [16,8,8], then [24,12,8] (which is also the binary Golay code—another well-known Type II code), and so on up to any length divisible by 8.
4. Algebraic Construction via Quadratic Forms
For a more algebraic take, you can use quadratic forms over $\mathbb{F}_2$:
- When $n=8k$, we can decompose $\mathbb{F}_2^n$ into $k$ orthogonal 8-dimensional subspaces. On each subspace, define a quadratic form $Q_i$ such that the set of vectors $x$ where $Q_i(x)=0$ and $\langle x,y \rangle=0$ for all $y$ in the subspace forms the [8,4,4] code.
- The union of these subspaces' code sets forms a Type II code of length $n$, as it inherits the self-duality and double even weight properties from each subspace's code.
Wrapping Up
All these methods boil down to starting with a valid small Type II code and scaling it up in a way that preserves the required properties. The direct sum construction is the most straightforward—once you confirm the base case works, scaling to any $n=8k$ is just a matter of combining copies of the base code.
内容的提问来源于stack exchange,提问作者Adam Keogh

