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+1≡31m(2)=8+8+1≡32

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 d∈F∗ needs to have

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

We assume x is a generator of F∗:

x1=x⟹ord(x)≠1x2=x2⟹ord(x)≠2x4≡m(x)x4+2x(x3+2x2+1)≡3x3+2x≡m(x)x3+2x+2(x3+2x2+1)≡3x2+2x+2x8=x4x4=(x2+2x+2)(x2+2x+2)=x4+4x3+8x2+8x+4≡3x4+x3+2x2+2x+1≡m(x)x4+x3+2x2+2x+1+2x(x3+2x2+1)≡32x3+x2+2x+1≡m(x)2x3+x2+2x+1+(x3+2x2+1)=2x+2x12=x4x8=(x2+2x+2)(2x+2)=x3+6x2+8x+4≡3x3+2x+1≡m(x)x3+2x+1+2(x3+2x2+1)≡3x2+2x+1x13=xx12=x3+2x2+x≡m(x)x3+2x2+x−(x3+2x2+1)≡3x+2⟹ord(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 r∈F, 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,c∈Z3 .
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+2≡m(x)2x3+x2+2+(x3+2x2+1)≡30 a(x2)=(x2)2+2x2(x2+x)+(x2+2)≡32x3+x2+2≡m(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).