|
Extensions of series rings are either unramified or totally ramified.
Only series rings defined over finite fields can be extended.
We recommend constructing polynomials from sequences rather than by addition
of terms, especially over fields, to avoid some precision loss. For example,
x4 + t will not have full precision in the constant coefficient as there will
be a O term in the constant coefficient of x4 which will reduce its precision
as a field element. Extensions require full precision polynomials and some
polynomials such as x4 + t may not have enough precision to be used to
construct
an extension whereas the equivalent Polynomial([t, 0, 0, 0, 1]) will.
UnramifiedExtension(R, f) : RngSerLaur[FldFin], RngUPolElt -> RngSerExt
UnramifiedExtension(R, f) : RngSerExt, RngUPolElt -> RngSerExt
Construct the unramified extension of R, a series ring or an extension
thereof, defined by the inertial polynomial
f, that is, adjoin a root of f to R.
TotallyRamifiedExtension(R, f) : RngSerLaur[FldFin], RngUPolElt -> RngSerExt
TotallyRamifiedExtension(R, f) : RngSerExt, RngUPolElt -> RngSerExt
MaxPrecision: RngIntElt Default:
Construct a totally ramified extension of R, a series ring or an extension
thereof, defined by the eisenstein polynomial f, that is, adjoin a root of
f to R.
The parameter MaxPrecision defaults to the precision of R. It can be
set to the maximum precision the coefficients of f are known to, which must
not be less than the precision of R. This allows
the precision of the result to be increased to the degree of f multiplied
by this maximum precision.
The polynomial f may be given over a series ring or an extension of a series
ring having a higher precision than R. This allows the precision of the
result to be increased up to the precision the polynomial is known to (or
MaxPrecision if set) without losing any of the polynomial
known past the precision of R.
The precision of a ramified extension cannot be increased unless the defining
polynomial is known to more precision than the coefficient ring, indicated
either by providing the polynomial to greater precision or by setting
MaxPrecision. This should be taken into account when constructing
ramified extensions, especially if polynomials are to be factored over the
extension.
ChangePrecision(~E, r) : RngSerExt, RngIntElt ->
The extension of a series ring E with precision r. It is not possible to
increase the precision of a ramified extension unless the parameter
MaxPrecision was set on construction of the extension and r is less
than or equal to this value multiplied by the ramification degree or
the polynomial used in creating the extension was given to more precision
than the coefficient ring of E.
The field of fractions of the extension of a series ring E.
We show a simple creation of a two-step extension and change its precision.
> P<t> := PowerSeriesRing(GF(101), 50);
> PP<tt> := PowerSeriesRing(GF(101));
> R<x> := PolynomialRing(PP);
> U := UnramifiedExtension(P, x^2 + 2);
> T := TotallyRamifiedExtension(U, x^2 + tt*x + tt); T;
Extension of Extension of Power series ring in t over GF(101) with fixed
absolute precision 50 by x^2 + 2 + O(t^50) by x^2 + (t + O(t^50))*x + t +
O(t^50)
> Precision($1);
100
> ChangePrecision($2, 200);
Extension of Extension of Power series ring in $.1 over GF(101) with fixed
absolute precision 100 by x^2 + 2 + O($.1^100) by x^2 + ($.1 + O($.1^100))*x +
$.1 + O($.1^100)
> ChangePrecision($1, 1000);
Extension of Extension of Power series ring in $.1 over GF(101) with fixed
absolute precision 500 by x^2 + 2 + O($.1^500) by x^2 + ($.1 + O($.1^500))*x +
$.1 + O($.1^500)
> ChangePrecision($1, 20);
Extension of Extension of Power series ring in $.1 over GF(101) with fixed
absolute precision 10 by x^2 + 2 + O($.1^10) by x^2 + ($.1 + O($.1^10))*x + $.1
+ O($.1^10)
Both U and T have a field of fractions.
> FieldOfFractions(U);
Extension of Laurent series field in $.1 over GF(101) with fixed relative
precision 50 by (1 + O($.1^50))*x^2 + O($.1^50)*x + 2 + O($.1^50)
> FieldOfFractions(T);
Extension of Extension of Laurent series field in $.1 over GF(101) with fixed
relative precision 50 by (1 + O($.1^50))*x^2 + O($.1^50)*x + 2 + O($.1^50) by (1
+ O($.1^50))*x^2 + ($.1 + O($.1^50))*x + $.1 + O($.1^50)
GetPrecision(E) : RngSerExt -> RngIntElt
The maximum precision elements of the extension of a series ring E may have.
BaseRing(E) : RngSerExt -> Rng
The ring the extension of a series ring E was defined over.
The polynomial used to define the extension E.
The degree of the extension E if E is an unramified extension,
1 otherwise.
RamificationDegree(E) : RngSerExt -> RngIntElt
The degree of the extension E if E is a totally ramified extension, 1
otherwise.
The residue class field of the extension E, that is, E / π E.
A uniformizing element for the extension E, that is, an element of E
of valuation 1.
Integers(E) : RngSerExt -> RngSerExt
RingOfIntegers(E) : RngSerExt -> RngSerExt
The ring of integers of the extension E of a series ring if E is a field
(extension of a laurent series ring).
Whether extensions E1 and E2 are considered to be equal.
The primitive element of the extension E, that is, the root of the defining
polynomial of E adjoined to the coefficient ring of E to construct E.
Assign the string in the sequence S to be the name of the primitive element
of E, that is, the root of the defining polynomial adjoined to the
coefficient ring of E to construct E.
A number of the operations above are applied to a two-step extension
> L<t> := LaurentSeriesRing(GF(53), 30);
> P<x> := PolynomialRing(L);
> U := UnramifiedExtension(L, x^3 + 3*x^2 + x + 4);
> P<y> := PolynomialRing(U);
> T := TotallyRamifiedExtension(U, Polynomial([t, 0, 0, 0, 1]));
> Precision(U);
30
> Precision(T);
120
> CoefficientRing(U);
Laurent series field in t over GF(53) with fixed relative precision 30
> CoefficientRing(T);
Extension of Laurent series field in t over GF(53) with fixed relative precision
30 by (1 + O(t^30))*x^3 + (3 + O(t^30))*x^2 + (1 + O(t^30))*x + 4 + O(t^30)
> DefiningPolynomial(U);
(1 + O(t^30))*x^3 + (3 + O(t^30))*x^2 + (1 + O(t^30))*x + 4 + O(t^30)
> DefiningPolynomial(T);
(1 + O(t^30))*y^4 + O(t^30)*y^3 + O(t^30)*y^2 + O(t^30)*y + t + O(t^30)
> InertiaDegree(U);
3
> InertiaDegree(T);
1
> RamificationDegree(U);
1
> RamificationDegree(T);
4
> ResidueClassField(U);
Finite field of size 53^3
Mapping from: RngSerExt: U to GF(53^3)
> ResidueClassField(T);
Finite field of size 53^3
Mapping from: RngSerExt: T to GF(53^3)
> UniformizingElement(U);
t + O(t^31)
> UniformizingElement(T);
(1 + O(t^30))*$.1 + O(t^30)
> Integers(T);
Extension of Extension of Power series ring in $.1 over GF(53) with fixed
absolute precision 30 by x^3 + (3 + O($.1^30))*x^2 + x + 4 + O($.1^30) by x^4 +
$.1 + O($.1^30)
> U.1;
(1 + O(t^30))*$.1 + O(t^30)
> T.1;
(1 + O(t^30))*$.1 + O(t^30)
x * y : RngSerExtElt, RngSerExtElt -> RngSerExtElt
x + y : RngSerExtElt, RngSerExtElt -> RngSerExtElt
x - y : RngSerExtElt, RngSerExtElt -> RngSerExtElt
- x : RngSerExtElt -> RngSerExtElt
x ^ n : RngSerExtElt, RngIntElt -> RngSerExtElt
x div y : RngSerExtElt, RngSerExtElt -> RngSerExtElt
x / y : RngSerExtElt, RngSerExtElt -> RngSerExtElt
x eq y : RngSerExtElt, RngSerExtElt -> BoolElt
IsZero(e) : RngSerExtElt -> BoolElt
IsOne(e) : RngSerExtElt -> BoolElt
IsMinusOne(e) : RngSerExtElt -> BoolElt
IsUnit(e) : RngSerExtElt -> BoolElt
The valuation of the element e of an extension of a series ring. This is
the index of the largest power of π which divides e.
The relative precision of the element e of an extension of a series ring.
This is the number of digits of e (in π) which are known.
The absolute precision of the element e of an extension of a series ring.
This is the same as the sum of the relative precision of e and the valuation
of e.
Eltseq(e) : RngSerExtElt -> [ RngElt ]
ElementToSequence(e) : RngSerExtElt -> [ RngElt ]
Given an element e of an extension of a series ring, return the coefficients
of e with respect to the powers of the uniformizing element of the
extension.
We show some simple arithmetic with some elements of some extensions.
> P<t> := PowerSeriesRing(GF(101), 50);
> R<x> := PolynomialRing(P);
> U<u> := UnramifiedExtension(P, x^2 + 2*x + 3);
> UF := FieldOfFractions(U);
> R<y> := PolynomialRing(U);
> T<tt> := TotallyRamifiedExtension(U, y^2 + t*y + t);
> TF<tf> := FieldOfFractions(T);
> UF<uf> := FieldOfFractions(U);
> u + t;
u + t + O(t^50)
> uf * t;
($.1 + O($.1^50))*uf + O($.1^51)
> tf eq tt;
false
> tf - tt;
O($.1^50)*tf + O($.1^50)
> IsZero($1);
false
> Valuation($2);
100
> Valuation(tt);
1
> Valuation(U!t);
1
> Valuation(T!t);
2
> RelativePrecision(u);
50
> AbsolutePrecision(u);
50
> AbsolutePrecision(uf);
50
> RelativePrecision(uf);
50
> RelativePrecision(u - uf);
0
> AbsolutePrecision(u - uf);
50
> u^7;
(13 + O(t^50))*u + 71 + O(t^50)
> Coefficients($1);
[
71 + O(t^50),
13 + O(t^50)
]
> tt^8;
(4*t^4 + 91*t^5 + 6*t^6 + 100*t^7 + O(t^50))*tt + t^4 + 95*t^5 + 5*t^6 + 100*t^7
+ O(t^50)
> Coefficients($1);
[ t^4 + 95*t^5 + 5*t^6 + 100*t^7 + O(t^50), 4*t^4 + 91*t^5 + 6*t^6 + 100*t^7 +
O(t^50) ]
OptimisedRepresentation(E) : RngSerExt -> RngSer, Map
An optimized representation for the unramified extension E of a series ring.
The defining polynomial of E must be coercible into the residue class field.
The result is a series ring over the residue class field of E and a map
from E to this series ring.
We give a simple example of the use of OptimizedRepresentation.
> P<t> := PowerSeriesRing(GF(101), 50);
> R<x> := PolynomialRing(P);
> U<u> := UnramifiedExtension(P, x^2 + 2*x + 3);
> U;
Extension of Power series ring in t over GF(101) with fixed absolute precision
50 by x^2 + (2 + O(t^50))*x + 3 + O(t^50)
> OptimizedRepresentation(U);
Power series ring in $.1 over GF(101^2) with fixed absolute precision 50
Mapping from: RngSerExt: U to Power series ring in s over GF(101^2) with fixed
absolute precision 50 given by a rule
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|