Path: blob/main/course-contents/notebooks/2024-03-06--ternary-golay.ipynb
918 views
The smallest for which that contains a root of is :
Now, the field has multiplicative group of order :
Let's get a generator for the multiplicative group :
Using z we can find a primitive 11th root of unity in :
Now, the minimal polynomial of a over must have degree 5. What are its roots?
Well, if a is a root, also a^3 is a root since the mapping is in the Galois group of over . Similary, a^(3^i) is a root for every natural number i.
But of course a^(3^5) = a since 11 divides 3^5 -1.
Note that this polynomial has coefficients in !
In addition to the trivial root , there are still another 5 roots to in to account for.
Well, the roots of in are precisely the elements of the multiplicative subgroup .
So what we really need is a good description of the roots of .
So we need to describe the set of exponents modulo .
This shows that the roots of are exactly for in S=[1, 3, 9, 5, 4]
The set S is called a cyclotomic coset.
Note that is a root of but is not a root of . So we need to consider the cyclotomic coset containing 2, namely:
The minimal polynomial of has roots for in [2, 6, 7, 10, 8].
Note that the S1 and S2 account for all but one of the roots of :
Since g and fh have no roots in common, their gcd is 1.
Let's check that we have factored
Now, we can notice that g and h are related by: .
Since , the codes and are codes.
Let's compute their minimum distance.
Using sage we can get the coefficients of a polynomial as follows:
We'll use these coefficients to build the code as a vector space.
Thus C is an [11,6,5]_3 code.
We are going to explain why C is a perfect code. Recall that perfect means that C meets the sphere-packing bound.
Recall that
The sphere-packing bound says that a [n,k,d]_q code satisfies
where .
so that C is a perfect code provided that
The main unsatisfying part of the above account is that we found the minimal distance of the codes via a brute force computation (we just made a list of the weights of the non-zero vector, and found the minimum of this list).
A nicer is approach is as follows.
Let be the generator matrix for (say) .
Now, adding a column of 1's to G determines a [12,6]_3 code. which is self-dual.
If CC denotes the code with generator matrix GG, then the computation GG * GG.T shows that CC is contained in the dual code CC^perp; since the dimension of CC^perp is 12-6 = 6, we conclude CC = CC^perp.
Now we have
Lemma If is a self-dual code of length over the field , then the weight of any codeword is a multiple of .
Proof We first note that is the only non-zero square in , since .
Let and let .
Then .
Since is self-dual we have in particular
Now notice that
Thus we indeed find that .