Path: blob/main/course-contents/notebooks/2024-03-06--ternary-golay.ipynb
469 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 .