Hallo Ralf,
I found a criterium for binomials over finite fields to be irreducible,
this can be easily applied to your problem and I will implement this
criterium into FiniteFieldPolynomials in my revision:
(1) -> )r ffproblemSolved
-- of Ralf Hemmecke of Nov. 2019
P ==> PositiveInteger
Type: Void
Time: 0 sec
Z ==> Integer
Type: Void
Time: 0 sec
SI ==> SingleInteger
Type: Void
Time: 0 sec
maxi2 ==> shift(max()$SI, -1)::Z
Type: Void
Time: 0 sec
p := qcoerce(prevPrime(maxi2)$IntegerPrimesPackage(Z))@P
(5) 2305843009213693921
Type: PositiveInteger
Time: 0.00 (OT) = 0.00 sec
p := nextPrime 1000000
(6) 1000003
Type: PositiveInteger
Time: 0 sec
F ==> PrimeField p
Type: Void
Time: 0 sec
f := (x^4+x+1)::UP('x, F)
4
(8) x + x + 1
Type:
UnivariatePolynomial(x,PrimeField(1000003))
Time: 0 sec
factor f
4
(9) x + x + 1
Type:
Factored(UnivariatePolynomial(x,PrimeField(1000003)))
Time: 0 sec
F2 ==> FiniteField(p, 2)
Type: Void
Time: 0 sec
ff := factor(f::UP('x, F2))
2 2
(11) (x + 264505 %B x + 244860 %B + 157432)(x + 735498 %B x +
755143 %B + 157432)
Type:
Factored(UnivariatePolynomial(x,FiniteField(1000003,2)))
Time: 0.00 (IN) + 0.00
(EV) + 0.00 (OT) = 0.00 sec
fl := factorList ff
(12)
2
[[flag = "prime", factor = x + 264505 %B x + 244860 %B + 157432,
exponent = 1],
2
[flag = "prime", factor = x + 735498 %B x + 755143 %B + 157432,
exponent = 1]]
Type: List(Record(flag: Union("nil","sqfr","irred","prime"),factor:
UnivariatePolynomial(x,FiniteField(1000003,2)),exponent:
NonNegativeInteger))
Time: 0 sec
c2 := coefficient(fl.1.factor, 0)
(13) 244860 %B + 157432
Type: FiniteField(1000003,2)
Time: 0 sec
w : F2 := primitiveElement()
(14) %B + 2
Type: FiniteField(1000003,2)
Time: 0 sec
order w
(15) 1000006000008
Type: PositiveInteger
Time: 0 sec
f2 : SUP F2 := monomial(1,2) - w
2
(16) ? + 1000002 %B + 1000001
Type:
SparseUnivariatePolynomial(FiniteField(1000003,2))
Time: 0 sec
--F4 ==> FiniteFieldExtension(F2, 2)
F4 ==> FiniteFieldExtensionByPolynomial(F2, f2)
Type: Void
Time: 0 sec
coerce(c2)$F4
(18) 244860 %B + 157432
Type:
FiniteFieldExtensionByPolynomial(FiniteField(1000003,2),?^2+(1000002*%B+1000001))
Time: 0 sec
Am 22.11.19 um 17:45 schrieb Ralf Hemmecke: