Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Same answer as above. I am only making the parallel to the mathematical situation maybe more clear.

I will define first F2$=\Bbb F_2$, then F4$= \Bbb F_4$ as $\Bbb F_2[X]/(X^2 + X + 1)$, and $a$ is taken to be the class of $X$ w.r.t. the ideal generated by the "modulus" $X^2+X+1$.

F2 = GF(2)
R2.<X> = PolynomialRing(F2)
F4.<a> = GF(4, modulus=X^2 + X + 1)

So X is specifically the transcendent variable of a polynomial ring R2 over $\Bbb F_2$. Now we proceed in the same manner to introduce the ring R4$=\Bbb F_4[Y]$, and then the field F16$=\Bbb F_4[Y]/(Y^2 + Y + a)$. The class of $Y$ modulo $(Y^2 + Y + a)$ will be denoted by $b$.

R4.<Y> = PolynomialRing(F4)
F16.<b> = F4.extension(Y^2 + Y + a)

And finally, F256$=\Bbb F_{16}[Z]/(Z^2+Z+ab)$, and the class of $Z$ is $c$:

R16.<Z> = PolynomialRing(F16)
F256.<c> = F16.extension(Z^2 + Z + a*b)

We ask for the information of the three fields:

print(f'F4 is {F4}')
print(f'F16 is {F16}')
print(f'F256 is {F256}')

Results (manually rearranged):

F4 is Finite Field in a of size 2^2
F16 is Univariate Quotient Polynomial Ring in b 
    over Finite Field in a of size 2^2 with modulus b^2 + b + a
F256 is Univariate Quotient Polynomial Ring in c
    over Univariate Quotient Polynomial Ring in b 
    over Finite Field in a of size 2^2 with modulus b^2 + b + a with modulus c^2 + c + a*b

Same answer as above. I am only making introducing the parallel to the mathematical situation maybe more clear.objects for comparison.

I will define first F2$=\Bbb F_2$, then F4$= \Bbb F_4$ as $\Bbb F_2[X]/(X^2 + X + 1)$, and $a$ is taken to be the class of $X$ w.r.t. the ideal generated by the "modulus" $X^2+X+1$.

F2 = GF(2)
R2.<X> = PolynomialRing(F2)
F4.<a> = GF(4, modulus=X^2 + X + 1)

So X is specifically the transcendent variable of a polynomial ring R2 over $\Bbb F_2$. Now we proceed in the same manner to introduce the ring R4$=\Bbb F_4[Y]$, and then the field F16$=\Bbb F_4[Y]/(Y^2 + Y + a)$. The class of $Y$ modulo $(Y^2 + Y + a)$ will be denoted by $b$.

R4.<Y> = PolynomialRing(F4)
F16.<b> = F4.extension(Y^2 + Y + a)

And finally, F256$=\Bbb F_{16}[Z]/(Z^2+Z+ab)$, and the class of $Z$ is $c$:

R16.<Z> = PolynomialRing(F16)
F256.<c> = F16.extension(Z^2 + Z + a*b)

We ask for the information of the three fields:

print(f'F4 is {F4}')
print(f'F16 is {F16}')
print(f'F256 is {F256}')

Results (manually rearranged):

F4 is Finite Field in a of size 2^2
F16 is Univariate Quotient Polynomial Ring in b 
    over Finite Field in a of size 2^2 with modulus b^2 + b + a
F256 is Univariate Quotient Polynomial Ring in c
    over Univariate Quotient Polynomial Ring in b 
    over Finite Field in a of size 2^2 with modulus b^2 + b + a with modulus c^2 + c + a*b