Introduction

This online help node introduces functions which allow the construction and simple study of Newton polygons. It allows data from a number of different contexts to be used to construct the polygons. It also covers different interpretations of Newton polygons, and translation among these interpretations. Recall that a Newton polygon is the intersection of finitely many rational half spaces in the rational plane. An advantage of this definition is that it emphasizes that Newton polygons are often thought of as being noncompact. However, they are not implemented here in this way. Instead polygons are interpreted as the convex hull of finitely many points of the plane (possibly including some points at +∞ along the axes).

Any Newton polygon is contained in some virtual cartesian product of the rational field with itself (virtual since this plane is not a structure that is intended to be accessible to the user or which is characteristic of the polygon). The first and second coordinate functions of this plane are referred to as the x and y coordinates respectively. Points of the plane will always be written < a, b > while faces of polygons will be written < a, b, c >. Geometrically, a face < a, b, c > is a one-dimensional boundary intersection of N with the line ax + by=c.

The standard Newton polygon of a polynomial f=f(u, v) is, by definition, the convex hull of the points < a, b >, so-called Newton points, ranging over monomials uavb having nonzero coefficient in f together with the points +∞ on the two axes. The infinite points, however, are not listed among the vertices of the polygon; they are simply a convenient way of hiding all Newton points other than those on the `lower lefthand' faces of the hull of those points. A similar definition applies to polynomials f(y) whose coefficients lie in some field of fractional power series, or Puiseux field,

k<< x >>. Newton Polygons can also be created for polynomials over local rings (and fields). The defining points are computed as < i, v(ai) > where ai is the coefficient of the i-th power of the generator and v denotes the valuation function on the ring. Infinite points arise only as the valuation of zero coefficients.

The main intended application of Newton polygons is to the Newton--Puiseux analysis of singular points of plane curves, or put another way, the factorization of polynomials defined over Puiseux fields.

The examples below should be thought of as running consecutively in a single Magma session.

> R<x,y> := PolynomialRing(Rationals(),2);
> f := x^5 + x^2*y + x^2*y^3 + y^4 + x^3*y^5 + y^2*x^7;
> N := NewtonPolygon(f);
> N;
Newton Polygon of x^7*y^2 + x^5 + x^3*y^5 + x^2*y^3 + x^2*y + y^4 over
Rational Field
> Faces(N);
[ <3, 2, 8>, <1, 3, 5> ]
> Vertices(N);
[ <0, 4>, <2, 1>, <5, 0> ]
This is the standard Newton polygon associated with the polynomial f. Only those vertices and faces of the convex hull of points which correspond to the monomials appearing in f which `face' the origin are considered to be vertices and faces of the polygon. As already mentioned, one interpretation of this is to think of the points +∞ on each axis as being included among the defining points of N, and then N is the convex hull of its defining points.

To consider N as the compact convex hull of only the monomials of f simply use alternative vertex and face functions.

> AllVertices(N);
[ <0, 4>, <2, 1>, <5, 0>, <7, 2>, <3, 5> ]
> AllFaces(N);
[ <3, 2, 8>, <1, 3, 5>, <-1, 1, -5>, <-3, -4, -29>, <1, -3, -12> ]
However, where there is a choice of interpretation, Magma always interprets N in the way it was defined. So for example, the functions which test for faces and vertices compare a given value with the sequence returned by the functions Faces(N) or Vertices(N), which are fixed the first time they are calculated, rather than with any other collections of faces or vertices.
> IsFace(N,<3/4,3/6,2>);
true <3, 2, 8>
> IsFace(N,<-3,-4,-29>);
false
Notice that faces are reduced to normal integral form and that the correct form is returned as the second return value of the test function.

When a polygon is created using a polynomial, the restriction of the polynomial to faces is important characteristic data.

> FaceFunction(Faces(N)[1]);
x^2*y + y^4
The face function is simply the sum of those monomial terms of f (they keep their coefficients) whose corresponding Newton point lies on the given face.
V2.28, 13 July 2023