View on GitHub

p-Adic Extensions

A Magma package for generating p-adic extensions

Ramification polygons

A PadRamifPgon represents a set of points defining a ramification polygon, which is the Newton polygon of the ramification polygon r(x) = f(pi x + pi) / pi^n of the Eisenstein polynomial f(x) of degree n. Some of the points need not be vertices, but can lie on the interior of faces, and therefore this is a more refined invariant than just the polygon itself. The points must be of the form [<1, J_0>, <p^s_1, J_1>, ..., <p^s_u, 0>, ..., <n, 0>] where s_u = v_p(n).

To each point, we can also assign a non-zero element of the residue class field, which is the leading p-adic coefficient of the corresponding ramification polygon. These are collectively called the residues of the ramification polygon. If we multiply the uniformizer of the corresponding extension by the residue u, then the residues are all multplied by u^n. This defines an equivalence relation between different sets of residues.

Additionally, we can assign a single non-zero element of the residue class field, which is the uniformizer residue (as defined here) of an extension defined by f. That is, it is the leading p-adic coefficient of the constant coefficient of f.

Contents

Creation

RamificationPolygon (f :: RngUPolElt_FldPadTmpl)

-> PadRamifPgon

The ramification polygon of f.

Parameters

RamificationPolygon (F :: FldPadTmpl, X)

-> PadRamifPgon

A ramification polygon over F, defined by X, which must be one of:

A point is a tuple <j,R_j,ord,res> where:

Parameters

IsCoercibleToRamificationPolygon (F :: FldPadTmpl, X)

-> BoolElt, Any

True if X is coercible to a ramification polygon.

The inputs and parameters are as in RamificationPolygon above.

Basic properties

BaseField (P :: PadRamifPgon)

-> FldPadTmpl

The base field of P.

Degree (P :: PadRamifPgon)

-> RngIntElt

The degree of P.

Vertices (P :: PadRamifPgon)

-> []

The vertices of P.

Points (P :: PadRamifPgon)

-> []

The points of P.

There is a point for each power of p, so some points may not be vertices. See Points.

Faces (P :: PadRamifPgon)

-> []

The faces of P.

See Faces.

NewtonPolygon (P :: PadRamifPgon)

-> NwtnPgon

The Newton polygon around the vertices of P.

Denominator (P :: PadRamifPgon)

-> RngIntElt

The least common multiple of the denominators of the faces.

DenominatorResidueDegree (P :: PadRamifPgon)

-> RngIntElt

The degree of the residue class field adjoin Denominator(P)th roots of unity. This is the least common multiple of the denominator residue degrees of the faces of P.

ResidualSplittingDegree (P :: PadRamifPgon)

-> RngIntElt

The degree of the splitting field of the residual polynomials of P. This is the least common multiple of the residual splitting degrees of the faces of P.

Points

IsVertex (pt :: PadRamifPgonPt)

-> BoolElt

True if pt is a vertex in its ramification polygon.

IsDefinitelyOnPolygon (pt :: PadRamifPgonPt)

-> BoolElt

True if pt is definitely on the ramification polygon.

IsDefinitelyNotOnPolygon (pt :: PadRamifPgonPt)

-> BoolElt

True if pt is definitely not on the ramification polygon.

Coordinates (pt :: PadRamifPgonPt)

-> Tup

The coordinates <x,J> of the point.

HasResidue (pt :: PadRamifPgonPt)

-> BoolElt, FldFinElt

True if pt has a residue attached. Implies IsDefinitelyOnPolygon(pt). If so, returns the residue.

Residue (pt :: PadRamifPgonPt)

-> FldFinElt

The residue attached to pt.

Faces

Points (F :: PadRamifPgonFace)

-> []

The points of the ramification polygon corresponding to the face.

Vertices (F :: PadRamifPgonFace)

-> []

The two end vertices of F.

Slope (F :: PadRamifPgonFace)

-> FldRatElt

The slope of F.

Denominator (F :: PadRamifPgonFace)

-> RngIntElt

The denominator of the slope of F.

DenominatorResidueDegree (F :: PadRamifPgonFace)

-> RngIntElt

The degree of the residue class field adjoin Denominator(F)th roots of unity.

HasResidualPolynomial (F :: PadRamifPgonFace)

-> BoolElt, RngUPolElt

True if the residual polynomial of F is known. If so, also returns the polynomial.

ResidualPolynomial (F :: PadRamifPgonFace)

-> RngUPolElt

The residual polynomial of F.

ResidualSplittingDegree (F :: PadRamifPgonFace)

-> RngIntElt

The degree of the splitting field of the residual polynomial.

Validity

IsValid (P :: PadRamifPgon)

-> BoolElt

True if P is valid. That is, if there exists an Eisenstein polynomial with this ramification polygon.

IsWeaklyValid (P :: PadRamifPgon)

-> BoolElt

True if P is weakly valid. This is weaker than validity, but is preserved under removing points from P. Useful for enumerating all valid polygons.

IsValid_Points (P :: PadRamifPgon)

-> BoolElt

True if the points of P are valid.

IsWeaklyValid_Points (P :: PadRamifPgon)

-> BoolElt

True if the points of P are weakly valid.

IsValid_Residues (P :: PadRamifPgon)

-> BoolElt, Tup

True if the residues of P are valid. If true, also returns <k,y> such that the uniformizer residue is a kth root of y.

LowerBoundOnEisensteinCoefficient (P :: PadRamifPgon, i :: RngIntElt, s :: RngIntElt)

-> RngIntElt

The lower bound on the ith coefficient of an Eisenstein polynomial generating P due to the point with exponent s.

LowerBoundOnEisensteinCoefficient (P :: PadRamifPgon, i :: RngIntElt)

-> RngIntElt

The lower bound on the ith coefficient of an Eisenstein polynomial generating P.

EisensteinCoefficientIsCritical (P :: PadRamifPgon, i :: RngIntElt)

-> RngIntElt

True if the ith coefficient of an Eisenstein polynomial is critical in determining P.

Equivalence

We say two ramification polygons are equivalent if the corresponding set of Eisenstein polynomials generates the same set of extensions (up to isomorphism).

Without any residual information, ramification polygons are already an invariant, and therefore are equivalent if and only if they are equal.

If there is residual information, then two polygons P1 and P2 are equivalent if they have residual information at the same points, and if there is a unit u such that rho1_j = rho2_j u^R_j for all (j,R_j,rho1_j) in P1 and (j,R_j,rho2_j) in P2, and rho1_0 = rho2_0 u^n where rho*_0 are the uniformizer residues.

IsEquivalent (P1 :: PadRamifPgon, P2 :: PadRamifPgon)

-> BoolElt, Any

True iff P1 and P2 are equivalent, that is, their corresponding Eisenstein polynomials generate the same extensions. If true, also returns <k,y> such that any solution to x^k=y conjugates one to the other. If false, also returns a reason.

EquivalenceClass (P :: PadRamifPgon)

-> {}

The elements of the equivalence class of P.

EquivalenceClassSize (P :: PadRamifPgon)

-> RngIntElt

The size of the equivalence class of P.

Counting extensions

From Lemma 4.4 of Sinclair, “Counting extensions of p-adic fields with given invariants”, we can count the number of extensions (inside an algebraic closure) with the given invariant based on the size of a template for the invariant. Note that this is different to counting the number of isomorphism classes: if an extension L/K has no automorphisms, then it has (L:K) conjugates in the algebraic closure, which are counted as distinct even though they are isomorphic.

NumberOfExtensions (P :: PadRamifPgon)

-> RngIntElt

The number of extensions (inside an algebraic closure) with this invariant.

Enumeration

AllRamificationPolygons (F :: FldPadTmpl, n :: RngIntElt)

-> []

All valid ramification polygons over F of degree n.

Parameters

AllRefinements (P :: PadRamifPgon)

-> []

All fine ramification polygons which refine P.

Parameters

WithAllResidues (P :: PadRamifPgon)

-> []

All valid assignments of residues to P.

Parameters

WithAllUniformizerResidues (P :: PadRamifPgon)

-> []

All valid assignments of uniformizer residues to P.

Parameters

CorrectTamePoints (P :: PadRamifPgon)

-> []

The correct tame points for P.

WithCorrectTamePoints (P :: PadRamifPgon)

-> PadRamifPgon

A copy of P with the correct tame points.