lecture 3

Algebraic geometry codes
Some examples of codes
Introduction to coding theory III
Pierre Arnoux
Manila, July 2013
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
Reed-Solomon code on Fq
I
Let α be a primitive element in Fq .
I
Let n = q − 1, and d < n.
I
The Reed-Solomon code associated with q, α and d is the
cyclic code
generated by the polynomial
Qd−1
g (X ) = j=1 (X − αj ) .
I
It is a [n, n − d + 1, d]-code.
I
It is a MDS code.
I
It is the image of the set of polynomials of degree at most
n − d by f 7→ fg .
I
There is a completely different way to present this code.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
Reed-Solomon code on Fq
P
aj X j by its
I
One can define a polynomial p(X ) =
coefficients aj , as we have done.
I
One can also define it by evaluating it on points P1 , . . . , Pn .
I
If the number of points is strictly larger than the degree, this
completely defines the polynomial.
I
More precisely, let E be the vector space of polynomials in
Fq [X ] of degree less than k < n.
I
Consider the map : E → Fnq , f 7→ (f (Pj ))j=1...n
I
This is a linear map, so its image is a linear code.
I
The kernel is the set of polynomials of degree strictly less than
k < n with n roots: it is {0}.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
Reed-Solomon code on Fq
I
We have defined a [n, k] code.
I
Let f be a nonzero element; since its degree is < k, it has at
most k − 1 zeroes.
I
The corresponding point (f (Pj ))j=1...n has weight at least
n + 1 − k.
I
We have defined in a very simple way a [n, k, n − k + 1]-code.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
Reed-Solomon code on Fq
I
We can get a little more :
I
Define Pj = αj , where α is a primitive element in Fq .
Take as evaluation map f 7→ f (αj j=1...n .
I
I
Define a linear map A on E by X k 7→ αk X k .
P
Pk−1 i i
i
That is A( k−1
i=0 ai X ) =
i=0 α ai x .
P
i
ij
j+1 )
Af (αj ) = k−1
i=0 α ai α = f (α
I
A permutes cyclically the evaluation map : the code is cyclic.
I
I
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
A discrete Fourier transform
I
Since we are dealing with cyclic objects, it is not surprising
that we can define a kind of Fourier transform.
I
We will interpret the evaluation of f on the powers of α as a
polynomial.
I
Let E be the set of polynomials of degree at most n = q − 1.
I
The Mattson-Solomon polynomial of f is :
I
Φf (X ) = F (X ) :=
n
X
f (αj )X n−j
j=1
I
This is a linear map.
I
There is an explicit inversion formula.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
A discrete Fourier transform
I
Recall that (X n − 1) = (X − 1)(1 + X + X 2 + . . . + X n−1 ).
I
I
Hence for any element a ∈ Fq which is different from 1,
P
n
j
j=1 a = 0 .
Pn−1
Suppose that f (X ) = i=0
ai X i .
P
P Pn−1
then F (αk ) = nj=1 f (αj )αk(n−j) = nj=1 i=0
ai αji αk(n−j) .
P
Pn
(i−k)j = na .
F (αk ) = n−1
k
i=0 ai
j=1 α
I
This allows us to invert Φ :
I
Φ−1 (f )(X ) = n−1 Φ(f )(X −1 ) mod X n − 1
I
I
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
A discrete Fourier transform
I
I
I
I
I
I
I
One easily checks that the Mattson-Solomon polynomial
transforms the usual product mod X n − 1 (convolution) into
the component-wise product.
We have a more interesting property:
Q
j
If f is a multiple of d−1
j=1 (X − α )
Then Φ(f ) has degree at most n − d (trivial from the formula,
since f (αj ) = 0 for 1 ≤ j ≤ d − 1).
The inverse of the Mattson-Solomon takes polynomials of
small degree to multiples of the generating polynomial.
Evaluation of polynomials of small degree on the powers of a
primitive element give coefficients of multiples of a generating
polynomial.
The two definitions of the Reed-Solomon code coincide.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
Remarks
I
Evaluating a space of polynomials of functions in one or
several points, one always obtain a vector space.
I
This is a way to obtain a linear code.
I
There are often algebraic bounds which prevent the existence
of too many zeroes.
I
In that case, there can be no vector of small weight in the
code.
I
This guarantees a large minimal distance.
I
Reed-Solomon codes are powerful, but they have a drawback :
I
Their length is small compared to the size of the alphabet.
I
One would like to remove this limit.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
Bezout theorem
I
We will need the theorem of Bezout :
I
Let C (resp. C 0 ) a curve defined by a polynomial in two
variables of degree d (resp. d 0 ).
I
If the polynomials have no common factor,
I
then C ∩ C 0 has at most dd 0 points.
I
It could be smaller for several reasons.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
An explicit example: The F8 code on X 3 Y + Y 3 + X = 0
I
Consider the curve Γ of irreducible equation
X 3 Y + Y 3 + X = 0 on F8 .
I
We will do explicit computation on F8 .
I
We can build this field as F2 [X ]/ < P(X ) >, where P is
monic irreducible of degree 3
I
There are two such polynomials: X 3 + X 2 + 1 and X 3 + X + 1.
I
Choose the second one, and let α be a primitive element of F8
such that α3 = α + 1.
I
The other two roots are α2 and α4 .
I
F8 consists of 0, 1 = α0 , α, α2 , . . . α6 .
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
An explicit example: The F8 code on X 3 Y + Y 3 + X = 0
I
We want to find all the points on the curve.
I
If X = 0, the equation becomes Y 3 = 0, hence Y = 0.
I
If Y = 0, the equation becomes X = 0.
I
(0, 0) is a point on the curve, the other points have nonzero
coordinates.
I
We can write Y = αj , 0 ≤ j ≤ 6, and X = α3j β, for some
β 6= 0 in F8 .
I
Replacing, we obtain α9j β 3 αj + α3j + α3j β = 0
Hence α3j β 3 + β + 1 = 0
I
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
An explicit example: The F8 code on X 3 Y + Y 3 + X = 0
I
α3j β 3 + β + 1 = 0.
I
Hence β must be equal to α, α2 or α4 .
I
The nonzero solutions are the points (α3j+k , αj ) for 0 ≤ j ≤ 6
and k ∈ {1, 2, 4}.
I
There are 21 solutions.
I
Counting the point (0, 0), the curve Γ has 22 points.
I
We denote these points Pi , 1 ≤ i ≤ 22.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
An explicit example: The F8 code on X 3 Y + Y 3 + X = 0
I
Consider now the set E ⊂ F8 [X , Y ] of polynomials of degree
at most 3.
I
This is a F8 -vector space of dimension 10.
I
Define the evaluation map: E → F22
8 .
I
f 7→ (f (Pi ))i=1...22 .
I
This is a linear map. Its image is a linear code.
I
If f has image 0, it must be a multiple of P. Hence the map
is injective, and the dimension of the code is 10.
I
This is a [22, 10]-code.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
An explicit example: The F8 code on X 3 Y + Y 3 + X = 0
I
The zeroes of f are the intersection points of the curve Γ (of
degree 4) and the curve f (X , Y ) = 0 (of degree 3).
I
There can be at most 12 such points, by Bezout’s theorem.
I
But there are 22 points.
I
So the minimal weight of a non zero element of the code is at
least 10.
I
We have built a [22, 10, d]-code with d ≥ 10.
I
By Singleton, we must have 10 ≤ d ≤ 13.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
An explicit example: The F8 code on X 3 Y + Y 3 + X = 0
I
Consider polynomials of degree at most 2.
I
The dimension becomes 6.
I
There are at most 8 = 4 × 2 intersection points.
I
We get a [22, 6, d]-code with 14 ≤ d ≤ 17.
I
If we take polynomials of degree at most 4, we must remove
the polynomial X 3 Y + Y 3 + X whose evaluation is 0.
I
Dimension is then 15 − 1 = 14.
I
Number of intersections is at most 16.
I
We get a [22, 14, d]-code with 6 ≤ d ≤ 9.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
An explicit example: The F8 code on X 3 Y + Y 3 + X = 0
I
This is a big improvement on Reed-Solomon.
I
Because Reed-Solomon on F8 would have length 7.
I
Here we have length 22.
I
We are looking for curves of small degree with many points!
I
This is quite similar to the problem of Fermat’s Last theorem...
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
Reed-Solomon again
I
I
I
I
I
A basic remark: if α is a primitive element of Fq , we have : .
i
i z)n )
P
z n −1
i(k+1) z k .
= β (1−(β
= n−1
k=0 β
z−β −i
1−β i z
Hence, if (c0 , c1 , . . . , cn−1 ) is
of the Reed-Solomon
Pan element
code of parameter d, since
ck β ik = 0 for 1 ≤ i < d, we
have:
P z n −1
ci z−β −i = z d−1 p(z) since the first coefficients are 0.
d−1 p(z)
P ci
This can be written:
= z z n −1
z−β −i
I
Hence if we consider a rational function which is a multiple of
z d−1 and has only poles in some of the β i ,
I
the set of residues of this function evaluated in the β i is an
element of the code.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
Goppa codes
I
Let g be a polynomial of degree t in Fqm .
I
Let L = {γ1 , . . . , γn } ⊂ Fqm such that g (γi ) 6= 0.
I
Consider the set E of rational functions which are multiples of
g and have no pole out of L.
I
This is a vector space.
I
The Goppa code γ(L, g ) is the set of codewords defined as
(res(h, γ1 ), res(h, γ2 ), . . . , res(h, γn )) for h ∈ E .
I
This is a linear code.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
Goppa codes
I
By definition, any h ∈ E can be written:
I
h(x) = f (x)g (x) where f has no pole on the set of zeroes of
g and
P ci
h(x) =
z−γi .
I
I
For example, take g (x) = z d−1 and γi = β i .
I
We recover again the Reed Solomon code, as we just saw.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
Generalizations
I
Goppa codes are in the affine space Fnq .
I
This gives limitations.
I
Some points do not appear.
I
Hence we do not get optimal bounds.
I
It turns out to be more convenient to use projective geometry.
I
We consider homogeneous coordinates.
I
For example, the curve x 3 y + y 3 + x = 0 looks better as
I
x 3 y + y 3 z + z 3 y (Klein quartic), and we add two points at
infinity .
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
Algebraic geometry codes
I
We should now consider homogeneous rational functions,
I
and their poles.
I
We use the abstract notions of algebraic geometry.
I
There are two dual versions..
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
Algebraic geometry codes (generalized Reed-Solomon
codes)
I
I
I
I
I
I
I
Let Γ be a non-singular projective curve over Fq .
Let P1 , P2 , . . . , Pn be distinct points of Γ, and
D = P1 + . . . + Pn the corresponding divisor.
P
P
Let G =
mj Qj − nk Rk be a divisor whose support is
disjoint from D.
Let L(G ) be the set of rational function on the curve which
have a zero of multiplicity at least nk in Rk and a pole of
multiplicity at most mj in Qj .
The linear code C (D, G ) is the code given by the evaluation
in D of the elements of L(G ).
(f (P1 ), . . . , f (Pn )).
This generalizes the Reed-Solomon construction above.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
Reed-Solomon revisited
A geometric example
Goppa codes
algebraic geometry codes
Algebraic geometry codes (generalized Goppa codes)
I
We now consider differentials instead of functions.
I
With the same setting, we consider the set Ω(G − D).
I
These differentials have poles only in D.
I
We now evaluate the differentials in D by computing the
residues to get the code C ∗ (D, G ).
I
One can prove that if the projective curve has genus g and
the divisor G has degree δ,
I
the code C (D, G ) is a [n, k, d]-code with k = δ − g + 1 and
d ≥n−δ
I
the code C ∗ (D, G ) is a [n, k ∗ , d ∗ ]-code, with
k ∗ = n − δ + g − 1 et d ∗ ≥ δ − 2g + 2.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
The Mariner Code
The Golay Codes
Weight enumeration
Hadamard matrices
I
I
I
A square matrix A of order n containing only ±1 is called a
Hadamard matrix
A.A∗ = nIn .
if it satisfies
1 1
Example: A =
.
1 −1
If A, B are two square matrices (possibly of different sizes), we
define their Kronecker product by A ⊗ b as :


a11 B a12 B . . . a1n B
a21 B a22 B . . . a2n B 


A⊗B = .
..
..
.. 
.
 .
.
.
. 
an1 B an2 B . . . ann B
I
I
Taking the product by blocks, one proves that the Kronecker
product of two Hadamard matrices is a Hadamard matrix.
Hence one can build Hadamard matrices of large dimension.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
The Mariner Code
The Golay Codes
Weight enumeration
Mariner code
I
I
I
I
I
I
I
Let H be a Hadamard matrix
oforder n.
H
Consider the matrix B =
where the −1 have been
−H
replaced by 0.
By construction, any two distinct rows differ in at least half
the positions.
We have obtained 2n vectors of length n on F2 which are all
at distance at least n/2.
We have built a (nonlinear, a priori) (n, 2n, n2 )-code.
⊗5
1 1
Using
, one builds in this way the binary
1 −1
(32, 64, 16)-code used in the 1971 Mariner mission.
3
It has transmission rate 16
and can correct up to 7 errors in a
string of 32 bits.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
The Mariner Code
The Golay Codes
Weight enumeration
The Golay codes
I
Let q = 2. Computation shows :
I
x 23 + 1 = (x − 1)(x 11 + x 9 + x 7 + x 6 + x 5 + x + 1)(x 11 + x 10 =
x 6 + x 5 + x 4 + x 2 + x + 1).
I
Let g (x) = x 11 + x 9 + x 7 + x 6 + x 5 + x + 1.
I
The multiples of g modulo x 23 + 1 give a binary cyclic code of
length 23 and dimension 12.
I
One can prove in several ways that d ≥ 7.
I
Consider the balls of radius 3 in F23
2 ; their size is
23.22.21
23.22
= 2048 = 211 .
1 + 23 + 2 +
6
I
There are 212 words in the code, and 212 .211 = 223 .
I
This is a perfect code.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
The Mariner Code
The Golay Codes
Weight enumeration
The Golay codes
I
Let q = 3; one can show that
x 11 − 1 = (x − 1)(x 5 + x 4 − x 3 + x 2 − 1)(x 5 − x 3 + x 2 − x − 1).
I
Take g (x) = x 5 + x 4 − x 3 + x 2 − 1.
I
The multiples of g modulo x 11 − 1 give a ternary cyclic code
of length 11 and dimension 6.
I
One can prove that its minimal distance is 5.
I
A direct computation shows that a ball of radius 2 in F11
3 has
size 1 + 2.11 + 4.11.10/2 = 243 = 35 .
I
There are 36 words in the code.
I
This is also a perfect code.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
The Mariner Code
The Golay Codes
Weight enumeration
Perfect codes
I
We have already seen some perfect codes:
I
The trivial repetition code of odd length.
I
The Hamming codes.
I
One can prove that, if q is a prime power, the only nontrivial
perfect codes are Hamming codes of Golay codes.
Pierre Arnoux
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
The Mariner Code
The Golay Codes
Weight enumeration
Weight enumeration polynomial
I
It is interesting to know the weight of the different elements
of a code.
I
Let C be a [n, k] code on Fq ; we denote by Ai the number of
elements of C of weight i.
I
I
The homogeneous enumerator of the code C is defined as
P
AC (x, y ) = c∈C x n−w (c) y w (c)
I
We obviously have A(1, 1) = q k .
I
It is very surprising that the enumerator of the dual code C ⊥
is completely defined by that of C : .
I
McWilliams identity : AC ⊥ (x, y ) =
Pierre Arnoux
1
|C | AC (x
+ y, x − y)
Introduction to coding theory III
Algebraic geometry codes
Some examples of codes
The Mariner Code
The Golay Codes
Weight enumeration
Weight enumeration for MDS codes
I
We will only mention that the weight enumeration of a MDS
code is completely determined by its parameter.
I
Suppose that C is a [n, k, n − k + 1]-code on Fq ,
I
I
and let Ai the number of elements of weight i.
i−j−d
Pi−d
We have : Ai = ni (q − 1) j=0
(−1)j i−1
j q
I
This implies bounds on the size of an [n, k] MDS code:.
I
q ≥ n − k + 1 (or k ≤ 1).
I
q ≥ k + 1 or d ≤ 2.
I
If d > 2, then n ≤ 2q − 2: there are no long MDS code which
can correct more than 2 errors.
Pierre Arnoux
Introduction to coding theory III