Polynomials over Series Rings#
Factorization is available for polynomials over series rings defined over finite fields. We recommend constructing polynomials from sequences rather than by addition of terms, especially over fields, to avoid some precision loss. For example, \(x^4 + t\) will not have full precision in the constant coefficient as there will be a \(O\) term in the constant coefficient of \(x^4\) which will reduce its precision as a field element. The equivalent polynomial Polynomial([t, 0, 0, 0, 1]) will have more precision than that constructed as \(x^4 + t\).
- HenselLift(f, L): RngUPolElt[RngSer], SeqEnum[RngUPolElt] -> [RngUPolElt]#
- HenselLift(f, L): RngUPolElt[RngSerExt], SeqEnum[RngUPolElt] -> [RngUPolElt]#
Given a polynomial \(f\) over a series ring over a finite field or an extension of a series ring and a factorization \(L\) of \(f\) to precision \(1\) return a factorization of \(f\) known to the full precision of the coefficient ring of \(f\).
- Factorization(f): RngUPolElt[RngSerPow[FldFin]] -> [ < RngUPolElt[RngSerPow], RngIntElt > ], RngSerPowElt#
- Factorization(f): RngUPolElt[RngSerLaur[FldFin]] -> [ < RngUPolElt[RngSerLaur], RngIntElt > ], RngSerLaurElt#
- Factorization(f): RngUPolElt[RngSerExt] -> [ < RngUPolElt[RngSerExt], RngIntElt > ], RngSerExtElt#
Certificates: BoolElt Default: false Ideals : BoolElt Default: false Extensions : BoolElt Default: false
The factorization of the polynomial \(f\) over a power series ring, laurent series field over a finite field or an extension of either into irreducibles.
If
Certificatesis set totrue, a two-element certificate for each factor, proving its irreducibility, is returned.If
Idealsis set totrue, two generators of some ideal for each factor are returned within the certificates.If
Extensionsis set totrue, an extension for each factor is returned within the certificates.
- Example: Series Poly Fact (ex-32baab)#
We illustrate factorizations over series rings and the extensions which can be gained through them.
> P<t> := PowerSeriesRing(GF(101)); > R<x> := PolynomialRing(P); > Factorization(x^5 + t*x^4 - t^2*x^3 + (1 + t^20)*x^2 + t*x + t^6); [ <(1 + O(t^20))*x + t^5 + O(t^8), 1>, <(1 + O(t^20))*x + t + 100*t^4 + 100*t^5 + t^7 + O(t^8), 1>, <(1 + O(t^20))*x + 1 + 34*t^2 + 34*t^3 + 34*t^4 + 90*t^5 + 29*t^6 + 16*t^8 + 32*t^9 + 6*t^10 + 66*t^11 + 41*t^12 + 93*t^13 + t^14 + 69*t^15 + 8*t^16 + 61*t^17 + 86*t^18 + 19*t^19 + O(t^20), 1>, <(1 + O(t^20))*x^2 + (100 + 67*t^2 + 67*t^3 + 68*t^4 + 11*t^5 + 72*t^6 + 100*t^7 + 85*t^8 + 69*t^9 + 94*t^10 + 31*t^11 + 59*t^12 + 16*t^13 + 14*t^14 + 35*t^15 + 77*t^16 + 28*t^17 + 33*t^18 + 72*t^19 + O(t^20))*x + 1 + 67*t^2 + 68*t^3 + 11*t^4 + 67*t^5 + 57*t^6 + 16*t^7 + 57*t^8 + 21*t^9 + 68*t^10 + 68*t^11 + 61*t^12 + 98*t^13 + 4*t^14 + 21*t^15 + 7*t^16 + 95*t^17 + 23*t^18 + 76*t^19 + O(t^20), 1> ] 1 + O(t^20) > P<t> := PowerSeriesRing(GF(101), 50); > R<x> := PolynomialRing(P); > Factorization(x^5 + t*x^4 - t^2*x^3 + (1 + t^20)*x^2 + t*x + t^6 : > Extensions); [ <x + t^5 + t^9 + 2*t^13 + t^16 + 5*t^17 + 6*t^20 + 14*t^21 + 26*t^24 + 42*t^25 + 3*t^27 + 4*t^28 + 32*t^29 + 35*t^31 + 10*t^32 + 29*t^33 + 46*t^35 + t^36 + 31*t^37 + O(t^38), 1>, <x + t + 100*t^4 + 100*t^5 + t^7 + 100*t^9 + t^10 + 4*t^11 + t^12 + 91*t^13 + 86*t^14 + 98*t^15 + 15*t^16 + 7*t^17 + 83*t^18 + 10*t^19 + 23*t^20 + 54*t^21 + 47*t^22 + 72*t^23 + 87*t^24 + 55*t^25 + 4*t^26 + 15*t^27 + 90*t^28 + 82*t^29 + 97*t^30 + 15*t^31 + 23*t^32 + 86*t^33 + 57*t^34 + 10*t^35 + 79*t^36 + 52*t^37 + O(t^38), 1>, <x + 1 + 34*t^2 + 34*t^3 + 34*t^4 + 90*t^5 + 29*t^6 + 16*t^8 + 32*t^9 + 6*t^10 + 66*t^11 + 41*t^12 + 93*t^13 + t^14 + 69*t^15 + 8*t^16 + 61*t^17 + 86*t^18 + 19*t^19 + 47*t^20 + 11*t^21 + 42*t^22 + 38*t^23 + 46*t^24 + 90*t^25 + 14*t^26 + 7*t^27 + 89*t^28 + 85*t^29 + 70*t^30 + 24*t^31 + 28*t^32 + 71*t^33 + 53*t^34 + 55*t^35 + 90*t^36 + 26*t^37 + 4*t^38 + 56*t^39 + 44*t^40 + 8*t^41 + 25*t^42 + 94*t^43 + 14*t^44 + 92*t^45 + 56*t^46 + 83*t^47 + 26*t^48 + 41*t^49 + O(t^50), 1>, <x^2 + (100 + 67*t^2 + 67*t^3 + 68*t^4 + 11*t^5 + 72*t^6 + 100*t^7 + 85*t^8 + 69*t^9 + 94*t^10 + 31*t^11 + 59*t^12 + 16*t^13 + 14*t^14 + 35*t^15 + 77*t^16 + 28*t^17 + 33*t^18 + 72*t^19 + 25*t^20 + 22*t^21 + 12*t^22 + 92*t^23 + 43*t^24 + 15*t^25 + 83*t^26 + 76*t^27 + 19*t^28 + 3*t^29 + 35*t^30 + 27*t^31 + 40*t^32 + 16*t^33 + 92*t^34 + 91*t^35 + 32*t^36 + 93*t^37 + 84*t^38 + 98*t^39 + 85*t^40 + 54*t^41 + 25*t^42 + 88*t^43 + 35*t^44 + 17*t^45 + t^46 + 39*t^47 + 89*t^48 + 67*t^49 + O(t^50))*x + 1 + 67*t^2 + 68*t^3 + 11*t^4 + 67*t^5 + 57*t^6 + 16*t^7 + 57*t^8 + 21*t^9 + 68*t^10 + 68*t^11 + 61*t^12 + 98*t^13 + 4*t^14 + 21*t^15 + 7*t^16 + 95*t^17 + 23*t^18 + 76*t^19 + 62*t^20 + 59*t^21 + 66*t^22 + 35*t^23 + 41*t^24 + 45*t^25 + 32*t^26 + 56*t^27 + 35*t^28 + 19*t^29 + 21*t^30 + 59*t^31 + 50*t^32 + 72*t^33 + 58*t^34 + 75*t^35 + 59*t^36 + 76*t^37 + 83*t^38 + 66*t^39 + 6*t^40 + 8*t^41 + 94*t^42 + 77*t^43 + 100*t^44 + 30*t^45 + 72*t^46 + 26*t^47 + 54*t^48 + 21*t^49 + O(t^50), 1> ] 1 + O(t^50) [ rec<recformat<F: RngIntElt, Rho: RngUPolElt, E: RngIntElt, Pi: RngUPolElt, IdealGen1, IdealGen2: RngUPolElt, Extension> | F := 1, Rho := 1 + O($.1^50), E := 1, Pi := $.1 + O($.1^50), Extension := Power series ring in t over GF(101) with fixed absolute precision 50>, rec<recformat<F: RngIntElt, Rho: RngUPolElt, E: RngIntElt, Pi: RngUPolElt, IdealGen1, IdealGen2: RngUPolElt, Extension> | F := 1, Rho := 1 + O($.1^50), E := 1, Pi := $.1 + O($.1^50), Extension := Power series ring in t over GF(101) with fixed absolute precision 50>, rec<recformat<F: RngIntElt, Rho: RngUPolElt, E: RngIntElt, Pi: RngUPolElt, IdealGen1, IdealGen2: RngUPolElt, Extension> | F := 1, Rho := 1 + O($.1^50), E := 1, Pi := $.1 + O($.1^50), Extension := Power series ring in t over GF(101) with fixed absolute precision 50>, rec<recformat<F: RngIntElt, Rho: RngUPolElt, E: RngIntElt, Pi: RngUPolElt, IdealGen1, IdealGen2: RngUPolElt, Extension> | F := 2, Rho := (1 + O($.1^50))*$.1 + O($.1^50), E := 1, Pi := $.1 + O($.1^50), Extension := Extension of Power series ring in t over GF(101) with fixed absolute precision 50 by x^2 + (100 + O(t^50))*x + 1 + O(t^50)> ]