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
2 | No.2 Revision |
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