other exercises: [[20241128_DiskMat_Serie10.pdf]]
further references:

5.10 a)
To show that F=Z3[x]x3+2x2+1 is a field, we have to show that m(x)=x3+2x2+1 is irreducible (Theorem 5.37).

m(0)=0+0+1=1m(1)=1+2+131m(2)=8+8+132

Thus, m(x) does not have any roots. Since m(x) is a polynomial of degree 2 and has no root, m(x) is irreducible (Corollary 5.30).
Thus, F is a field (Theorem 5.37).


5.10 b)
We will find a generator of F, where

F=F{0},(Def. 5.26)F=Z3[x]x3+2x2+1,m(x)=x3+2x2+1.

Since m(x) is a polynomial of degree 3 over Z3, and Z3 has 3 elements,

|F|=33=27(Lemma 5.34)|F|=|F|1=26

Thus, an element dF needs to have

ord(d){1,2,13,26}(Corollary 5.9)

We assume x is a generator of F:

x1=xord(x)1x2=x2ord(x)2x4m(x)x4+2x(x3+2x2+1)3x3+2xm(x)x3+2x+2(x3+2x2+1)3x2+2x+2x8=x4x4=(x2+2x+2)(x2+2x+2)=x4+4x3+8x2+8x+43x4+x3+2x2+2x+1m(x)x4+x3+2x2+2x+1+2x(x3+2x2+1)32x3+x2+2x+1m(x)2x3+x2+2x+1+(x3+2x2+1)=2x+2x12=x4x8=(x2+2x+2)(2x+2)=x3+6x2+8x+43x3+2x+1m(x)x3+2x+1+2(x3+2x2+1)3x2+2x+1x13=xx12=x3+2x2+xm(x)x3+2x2+x(x3+2x2+1)3x+2ord(x)13

Since ord(x){1,2,13}, ord(x)=26.
Since x generates a finite field and has the same cardinality as F, x is isomorphic to F (Theorem 5.39).
Thus, x is a generator of F.


5.10 c)
Let a(y)=y2+2y(x2+x)+(x2+2) in F[y] (F=Z3[x]x3+2x2+1[y]).

|F|=33=27(Lemma 5.34)

The roots of a(y) are elements rF, for which a(r)=0 (Def. 5.33).
Since a(y) is a polynomial of degree 2, a(y) has at most 2 roots (Theorem 5.31).

Because m(x)=x3+2x2+1 is a polynomial with degree 3, elements of F[y] are polynomials with degree 2 (Def. 5.34) with coefficients in Z3.
Thus, each element in F[y] can be written as

ax2+bx+c

where a,b,cZ3 .
By substituting each of the 27 elements of F[y] for y in a(y)=0, we can find the roots of a(y). Since it is quite time-consuming to do the calculations by hand, I have written a python script for this purpose [[diskmat_serie10_5c.py]]:

from sympy import symbols, div, Poly, GF

# Define the variables
x,y = symbols('x y')

# define all (27) elements
elements = [0,1,2,x,2*x,x**2,2*x**2, x**2+1, x**2+2, 2*x**2+1, 2*x**2+2,
    x**2+x, 2*x**2+x, x**2+2*x+1, x**2+2*x+2, x**2+x+1, x**2+x+2,
    2*x**2+2*x+1, 2*x**2+2*x+2, 2*x**2+x+1, 2*x**2+x+2, 2*x+1, 2*x+2,
    x+1, x+2, x**2+2*x, 2*x**2+2*x]
denominator = Poly(x**3+2*x**2+1,x)

# compute all elements
for idx, y in enumerate(elements):
    numerator = Poly(y**2+y*2*(x**2+x)+(x**2+2), x)

    # Perform division in Z_3
    quotient, remainder = div(numerator, denominator, domain=GF(3))

    # the remainder of the division is the same as modulo polynomial
    print(f"{str(idx).zfill(2)}: {y}".ljust(20), remainder)

The results of the inserted elements:

00: 0                Poly(x**2 - 1, x, modulus=3)
01: 1                Poly(-x, x, modulus=3)
02: 2                Poly(-x**2 + x, x, modulus=3)
03: x                Poly(0, x, modulus=3)
04: 2*x              Poly(x**2 + 1, x, modulus=3)
05: x**2             Poly(0, x, modulus=3)
06: 2*x**2           Poly(x**2 + x - 1, x, modulus=3)
07: x**2 + 1         Poly(x**2 - x + 1, x, modulus=3)
08: x**2 + 2         Poly(-x**2 + x + 1, x, modulus=3)
09: 2*x**2 + 1       Poly(x**2, x, modulus=3)
10: 2*x**2 + 2       Poly(x**2 - x, x, modulus=3)
11: x**2 + x         Poly(x**2 - 1, x, modulus=3)
12: 2*x**2 + x       Poly(x**2 + x - 1, x, modulus=3)
13: x**2 + 2*x + 1   Poly(-x**2 - 1, x, modulus=3)
14: x**2 + 2*x + 2   Poly(-1, x, modulus=3)
15: x**2 + x + 1     Poly(-x**2 + x, x, modulus=3)
16: x**2 + x + 2     Poly(-x, x, modulus=3)
17: 2*x**2 + 2*x + 1 Poly(x, x, modulus=3)
18: 2*x**2 + 2*x + 2 Poly(x, x, modulus=3)
19: 2*x**2 + x + 1   Poly(x**2 - x, x, modulus=3)
20: 2*x**2 + x + 2   Poly(x**2, x, modulus=3)
21: 2*x + 1          Poly(-1, x, modulus=3)
22: 2*x + 2          Poly(-x**2 - 1, x, modulus=3)
23: x + 1            Poly(-x**2 + x + 1, x, modulus=3)
24: x + 2            Poly(x**2 - x + 1, x, modulus=3)
25: x**2 + 2*x       Poly(x**2 + 1, x, modulus=3)
26: 2*x**2 + 2*x     Poly(x - 1, x, modulus=3)

As we can see, a(x)=0 and a(x2)=0. To verify the roots:

a(x)=x2+2x(x2+x)+(x2+2)32x3+x2+2m(x)2x3+x2+2+(x3+2x2+1)30 a(x2)=(x2)2+2x2(x2+x)+(x2+2)32x3+x2+2m(x)2x3+x2+2+(x3+2x2+1)30

Since a(x)=0 and a(x2)=0, x,x2 are roots of a(y) (Def 5.33). Due to (Theorem 5.31) x,x2 are all roots of a(y).