Extensions of Series Rings
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, \(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. Extensions require full precision polynomials and some polynomials such as \(x^4 + t\) may not have enough precision to be used to construct an extension whereas the equivalent Polynomial([t, 0, 0, 0, 1]) will.
Constructions of Extensions
- UnramifiedExtension(R, f): RngSerPow[FldFin], RngUPolElt -> RngSerExt
- 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): RngSerPow[FldFin], RngUPolElt -> RngSerExt
- 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
MaxPrecisiondefaults 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
MaxPrecisionif 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 -> RngSerExt
- 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
MaxPrecisionwas 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\).
- FieldOfFractions(E): RngSerExt -> RngSerExt
The field of fractions of the extension of a series ring \(E\).
- Example: Two-Step Extension of a Series Ring (ex-0fa010)
Run in calculator (opens in a new tab)
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)
Operations on Extensions
- Precision(E): RngSerExt -> RngIntElt
- GetPrecision(E): RngSerExt -> RngIntElt
The maximum precision elements of the extension of a series ring \(E\) may have.
- CoefficientRing(E): RngSerExt -> Rng
- BaseRing(E): RngSerExt -> Rng
The ring the extension of a series ring \(E\) was defined over.
- InertiaDegree(E): RngSerExt -> RngIntElt
The degree of the extension \(E\) if \(E\) is an unramified extension, \(1\) otherwise.
- RamificationIndex(E): RngSerExt -> RngIntElt
- RamificationDegree(E): RngSerExt -> RngIntElt
The degree of the extension \(E\) if \(E\) is a totally ramified extension, \(1\) otherwise.
- ResidueClassField(E): RngSerExt -> FldFin
The residue class field of the extension \(E\), that is, \(E / \pi E\).
- UniformizingElement(E): RngSerExt -> RngSerExtElt
A uniformizing element for the extension \(E\), that is, an element of \(E\) of valuation \(1\).
- IntegerRing(E): RngSerExt -> RngSerExt
- 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).
- E1 eq E2: RngSerExt, RngSerExt -> BoolElt
Whether extensions \(E1\) and \(E2\) are considered to be equal.
- E . i: RngSerExt, RngIntElt -> RngSerExtElt
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\).
- AssignNames(~E, S): RngSerExt, [ MonStgElt ]
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\).
- Example: Operations on Series Ring Extensions (ex-b88c0a)
Run in calculator (opens in a new tab)
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)
Elements of Extensions
- 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
- Valuation(e): RngSerExtElt -> RngIntElt
The valuation of the element \(e\) of an extension of a series ring. This is the index of the largest power of \(\pi\) which divides \(e\).
- RelativePrecision(e): RngSerExtElt -> RngIntElt
The relative precision of the element \(e\) of an extension of a series ring. This is the number of digits of \(e\) (in \(\pi\)) which are known.
- AbsolutePrecision(e): RngSerExtElt -> RngIntElt
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\).
- Coefficients(e): RngSerExtElt -> [ RngElt ]
- 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.
- Example: Arithmetic in Series Ring Extensions (ex-77b403)
Run in calculator (opens in a new tab)
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) ]
Optimized Representation
- OptimizedRepresentation(E): RngSerExt -> RngSer, Map
- 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.
- Example: Optimized Representation of an Extension (ex-95694d)
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