These functions return some simple information partially defining a local ring.
Given a local ring or field L, return the prime p defining the p-adic ring or field underlying L. This is also the characteristic of the residue class field of L.
Return the inertia degree of the local ring or field L over its coefficient ring.
Return the inertia degree of the local ring or field K relative to its subring L.
Return the inertia degree of the local ring or field L over the p-adic ring.
Return the ramification degree of the local ring or field L over its coefficient ring.
Return the ramification degree of the local ring or field K relative to its subring L.
Return the ramification degree of the local ring or field L over the p-adic ring.
The degree of L over Zp.
Return the degree of the local ring or field L over its coefficient ring.
Return the degree of the local ring or field K relative to its subring L.
Return the minimal polynomial of the generator of L over its coefficient ring. If L is p-adic, the polynomial x - 1 is returned. For free precision rings and fields, the coefficients of the defining polynomial are given to the default precision of L.
Return the minimal polynomial of the generator of K over its coefficient ring L.
Given a free precision local ring or field L, return the map that was used to define the extension (see Section Creation of Unbounded Precision Extensions for information on defining extension by maps). If a map was not used, then an error is raised.
Given a free precision local ring or field L, return true if L is defined by a map; if so, the defining map is also returned.
Given a local ring or field L, return the p-adic ring or field which is a subring of L.
Given a local ring or field L, return the base ring of L.
Given a local ring or field L, return the residue class field K of L, and a map from L to K.
Given a p-adic ring or field R, compute a set of representatives of the residue class field of R as elements of R.
Given a local ring or field L, return the uniformizing element of L.
Given a local ring or field L, return an element α of L such that if K is L's base ring or field, then the powers of α give a basis of L as a vector space over K.
Given a local ring or field L, return the precision with which L has been created. If L is a local ring this is the maximum absolute precision to which its elements can be created. If L is a local field this is the maximum relative precision to which its elements can be created. If L is an unbounded free precision ring or field, then infinity is returned.
Given a local ring R extending Zp for some prime p, decide if R contains a primitive p-th root of unity.
Given a local ring L and some positive integer n, decide if L contains a primitive nth root of unity.
Compute the discriminant of the local ring R over its coefficient ring. Since R is defined by either an inertial polynomial or an Eisenstein one, this is equivalent to computing the discriminant of the defining polynomial.
Given p-adic rings K/k, compute the discriminant of K as an extension of k.
The additive group of the p-adic quotient R as an abelian group and the isomorphism from this group back to R.
> Zp := pAdicRing(5, 20); > I<a> := UnramifiedExtension(Zp, 3); > R<x> := PolynomialRing(I); > L<b> := ext<I | x^3 + 5*a*x^2 + 5>; > Prime(L); 5 > InertiaDegree(L); 1The inertia degree of L is returned as 1 because L has been defined as a totally ramified extension of I. However, the inertia degree of L over Zp is 3, because I itself is an unramified extension of Zp.
> InertiaDegree(L, Zp); 3 > Degree(L); 3 > Degree(L, Zp); 9 > DefiningPolynomial(L); x^3 + 5*a*x^2 + 5 > P<y> := PolynomialRing(Zp); > DefiningPolynomial(I); y^3 + 3*y + 3 > BaseRing(L); Unramified extension defined by the polynomial x^3 + 3*x + 3 over 5-adic ring mod 5^20 > PrimeRing(L); 5-adic ring mod 5^20 > PrimeRing(I); 5-adic ring mod 5^20 > ResidueClassField(L); Finite field of size 5^3 Mapping from: RngPad: L to GF(5^3) > ResidueClassField(I); Finite field of size 5^3 Mapping from: RngPad: I to GF(5^3)Here, we see that the residue class fields of I and L are identical. This is due to the fact that L is a totally ramified extension of I.
> UniformizingElement(L); b > Precision(L); 60 > Precision(I); 20 > R<a> := ext<pAdicRing(2) | 2>; > DefiningPolynomial(R); (1 + O(2^20))*$.1^2 + (1 + O(2^20))*$.1 + 1 + O(2^20) > Precision(R); Infinity
The root number of a p-adic extension K/(Q)p can be computed as in S3.3 of [JR06], with the result returned (using their convention and not Deligne's) as an element of (Q)(ζ4).
The root number of a relative p-adic extension can be computed by using AbsoluteRootNumber and an induction relation.
We compute the root numbers of some p-adic extensions.
> K := ext<pAdicField(2,20)|Polynomial([10,0,1])>; K; Totally ramified extension defined by the polynomial x^2 + 10 over 2-adic field mod 2^20 > RootNumber(K); -zeta_4 > K := pAdicField(3,40); > A := AllExtensions(K,3); > _<x> := PolynomialRing(Integers(K)); // printing > [<RootNumber(FieldOfFractions(a)),DefiningPolynomial(a)> : a in A]; [ <zeta_4, x^3 + 3*x + 3>, <-zeta_4, x^3 + 6*x + 3>, <1, x^3 + 3*x^2 + 3>, <1, x^3 + 6*x^2 + 3>, <1, x^3 + 6*x^2 + 12>, <1, x^3 + 6*x^2 + 21>, <zeta_4, x^3 + 3>, <zeta_4, x^3 + 12>, <zeta_4, x^3 + 21>, <1, x^3 + 2*x + 1> ]
We take an example where the relative and absolute root numbers differ.
> K := pAdicField(3,20); > L := ext<K|Polynomial([3,0,1])>; // both ramified > M := ext<L|Polynomial([L.1,0,1])>; // both ramified > RootNumber(M); // relative for M/L zeta_4 > AbsoluteRootNumber(M); // absolute for M/Q3 -zeta_4 > RootNumber(L); // intermediate field zeta_4 > X := AbsoluteTotallyRamifiedExtension(Integers(M)); > RootNumber(FieldOfFractions(X)); -zeta_4