The ring of twisted polynomials plays a core role in the analytic side of class field theory of global function fields. Twisted polynomials can be viewed as additive polynomials where the multiplication is the composition of two polynomials. Alternatively, they are the ring of polynomials in the Frobenius automorphism of the base field as indeterminate and multiplication defined in terms of application of the corresponding endomorphism. Thus Twisted polynomials have two natural polynomial representations:
Since every endomorphism in positive characteristic can be represented by an additive polynomial (or an additive power series), this section can also be viewed as making the endomorphism ring accessible.
In Magma the ring of twisted polynomials is of type RngUPolTwst and individual elements are of type RngUPolTwstElt. Twisted polynomial rings can be created over any ring of characteristic p>0. They are left euclidean and therefore left PIR.
q: RngIntElt Default: false
Given a ring R of characteristic p>0, create the ring of twisted polynomials over R. If q is given it has to be a power of the characteristic p, it defaults to q := p. The multiplication in this ring R<F> is defined by rF = Frq for all r∈R. Elements if R<F> are represented as polynomials in F.
For a ring R of twisted polynomials return the polynomial representing 1.
For a ring R of twisted polynomials return the polynomial representing 0.
For two rings of twisted polynomials R and S test if they are equal, that is if the underlying polynomial ring is considered equal by Magma. Generically that means to test if the base rings of R and S coincide.
The coefficient ring of the ring R of twisted polynomials.
For a ring of twisted polynomials R and an integer i which should be 1, return the transcendental element of R.
Apart from creation from polynomials directly, twisted polynomial can also be created by specifying some finite Fq-vector space where the corresponding additive polynomial will have its roots.
InfBound: RngIntElt Default: 5
Map: Map Default: id
Class: DivFunElt Default: 0
Limit: RngIntElt Default: ∞
Scale: RngElt Default: false
An additive polynomial is characterized by the fact that its set of zeros forms an Fq vector space. Conversely, given an Fp-vector space M in R there is essentially one additive polynomial that has M as its set of roots. Given a place P and a ring element x, this function computes the additive polynomial with roots L(InfBoundP), evaluated at x, ie. the module M is a Riemann-Roch space. By choosing x to be for example a transcendental element in a polynomial ring, the actual additive polynomial can be computed. If the parameter Map is given, the elements of the Riemann-Roch space are first mapped by this map before the polynomial is computed, thus allowing the creation of polynomials over the completion of a function field. If the parameter Limit is given, the polynomial is reduced modulo xLimit. If Class is set to a non-zero divisor, instead of L(nP), the Riemann-Roch space L(nP +Class) is used. If Scale is set to a ring element that is either compatible with elements of the Riemann-Roch space or with elements in the codomain of the map, the module is scaled as well, thus allowing for normalization.
For F the ring of twisted polynomials over a finite ring (ie. a ring that supports the generation of random elements, this function will return a polynomial of degree n - 1 with randomly chosen coefficients.
> Fq<w> := GF(4); > k<t> := RationalFunctionField(Fq); > R := TwistedPolynomials(k:q := 4); > R![1,1]; T_4 + 1 > R![w*t, 1]; T_4 + w*t > $2 * $1; T_4^2 + (w*t^4 + 1)*T_4 + w*t > $2 * $3; T_4^2 + (w*t + 1)*T_4 + w*t > p := Places(k, 1)[2]; > a := AdditivePolynomialFromRoots(PolynomialRing(k).1, p > :InfBound := 2); > a; T_4^3 + ($.1^96 + $.1^84 + $.1^81 + $.1^72 + $.1^69 + $.1^66 + $.1^60 + $.1^57 + $.1^54 + $.1^51 + $.1^48 + $.1^45 + $.1^42 + $.1^39 + $.1^36 + $.1^30 + $.1^27 + $.1^24 + $.1^15 + $.1^12 + 1)/$.1^96*T_4^2 + ($.1^96 + $.1^93 + $.1^90 + $.1^87 + $.1^72 + $.1^69 + $.1^66 + $.1^63 + $.1^33 + $.1^30 + $.1^27 + $.1^24 + $.1^9 + $.1^6 + $.1^3 + 1)/$.1^108*T_4 + ($.1^90 + $.1^87 + $.1^84 + $.1^81 + $.1^78 + $.1^60 + $.1^57 + $.1^54 + $.1^51 + $.1^48 + $.1^42 + $.1^39 + $.1^36 + $.1^33 + $.1^30 + $.1^12 + $.1^9 + $.1^6 + $.1^3 + 1)/$.1^108 > R, mR := RiemannRochSpace(2*p); > b := Polynomial(a); > [ Evaluate(b, mR(x)) eq 0 : x in R]; [ true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true ] > AdditivePolynomialFromRoots(PolynomialRing(k).1, p:InfBound := 2, > Map := func<x|Expand(x, p:RelPrec := 100)>); T_4^3 + ($.1^-96 + $.1^-84 + $.1^-81 + $.1^-72 + $.1^-69 + $.1^-66 + $.1^-60 + $.1^-57 + $.1^-54 + $.1^-51 + $.1^-48 + $.1^-45 + $.1^-42 + $.1^-39 + $.1^-36 + $.1^-30 + $.1^-27 + $.1^-24 + $.1^-15 + $.1^-12 + 1 + O($.1^4))*T_4^2 + ($.1^-108 + $.1^-105 + $.1^-102 + $.1^-99 + $.1^-84 + $.1^-81 + $.1^-78 + $.1^-75 + $.1^-45 + $.1^-42 + $.1^-39 + $.1^-36 + $.1^-21 + $.1^-18 + $.1^-15 + $.1^-12 + O($.1^-8))*T_4 + $.1^-108 + $.1^-105 + $.1^-102 + $.1^-99 + $.1^-96 + $.1^-78 + $.1^-75 + $.1^-72 + $.1^-69 + $.1^-66 + $.1^-60 + $.1^-57 + $.1^-54 + $.1^-51 + $.1^-48 + $.1^-30 + $.1^-27 + $.1^-24 + $.1^-21 + $.1^-18 + O($.1^-8)
For a twisted polynomial F, return the leading coefficient as an element of the coefficient ring.
For a twisted polynomial F, return the constant coefficient as an element of the coefficient ring.
For a twisted polynomial F, return its degree. The degree of the underlying additive polynomial is q times the degree of the twisted polynomial.
For twisted polynomials F and G in the same ring, perform a right division with remainder: This function computes Q and R such that F = Q * G + R and the degree of R is less than the degree of G. In general, unless the coefficient ring is algebraically closed or perfect, there is no left quotient, so the ring of twisted polynomials is a left-PID, but no right-PID.
For twisted polynomials F and G in the same ring, compute the creates common right divisor of F and G, ie a twisted polynomial H such that F = f1 H and G = f2 H for some twisted polynomials f1 and f2 and such that H is monic of maximal degree.
For a twisted polynomial F, return the coefficient ring of F, ie. the ring where all the coefficients of F are from.
For a twisted polynomial G, return the corresponding additive polynomial by replacing the transcendental element F by Tq and in general Fi by Tqi for i=0, ..., degree of G.
For a twisted polynomial F, return the result of the evaluation of the corresponding additive polynomial at the point x.
For a univariate polynomial F, return the evaluation of F at x. This function in particular is optimized for sparse polynomials (for example additive polynomials) and imprecise coefficients. In the general case, a call to Evaluate will be faster.
For a twisted polynomial F, return a sequence containing its coefficients.