13 Algebraic Geometry

The algebraic geometry module includes machinery for studying general algebraic varieties and families of special curves (e.g. elliptic curves). The major categories include:

13.1 Schemes

This module comprises general tools for working with schemes defined by polynomial equations in affine or projective space. Such tools include Gröbner basis computation, dimension and image of maps, and linear algebra calculations formalised as linear systems on projective space. Maps between spaces may also be constructed and studied.

13.1.1 Schemes: Ambient Spaces

A scheme is contained in some ambient space, either an affine space or one of a small number of standard projective spaces. A characteristic of these spaces is that they have some kind of polynomial ring as their coordinate ring.

  • Affine and projective spaces including weighted projective space

  • Ruled surfaces

  • Rational scrolls

  • Direct products of ambient spaces

  • Points of schemes with coefficients in k-algebras

13.1.2 Schemes: Creation and Properties

  • Creation of schemes by equations or implicit methods

  • Saturation of the defining ideal of a scheme in the projective cases

  • Changing the base ring

  • Point set operations

  • Projective closure and affine patches

  • Global properties: Dimension, reducibility, singularity

  • Prime components, primary components

  • Local geometric analysis: singularities, tangent spaces

  • Zero-dimensional schemes

  • Determining whether a scheme over a number field is locally solvable

13.1.3 Schemes: Mappings

  • Construction of maps between spaces

  • Coordinate manipulation functions, including birational transformations of the projective plane

  • Calculation of pullbacks of schemes by maps

  • Tools to enable the calculation of images of schemes by maps

  • A large number of specialised types of schemes, especially curves, have additional map functionality

  • Availability of maps with multiple definitions

13.1.4 Schemes: Automorphisms

Automorphisms of schemes defined over a field may be constructed. The main cases where there is significant functionality is for automorphisms of affine and projective spaces.

  • Construction of general automorphisms of affine space in terms of functions or matrices

  • Construction of special automorphisms of affine space: translation, permutation automorphisms, Nagata automorphism, projectivities

  • Construction of general automorphisms of projective space in terms of polynomials or matrices

  • Construction of special automorphisms of projective space: translation, quadratic transformation

  • Automorphism group of a projective space defined over a finite field

13.1.5 Schemes: Isomorphic Projections

  • Computation of the tangent and secant varieties of schemes

  • Isomorphic projection of projective schemes to smaller dimensional ambient spaces

  • Birational embedding of plane curves as non-singular projective space curves in 3-dimensional space

13.1.6 Schemes: Linear Systems

The complete linear system on P of degree d is the collection of all homogeneous polynomials of degree d on P, or equivalently, the degree d hypersurfaces thereby defined. A general linear system corresponds to some vector subspace of the coefficient space of a complete linear system.

  • Creation of a linear system explicitly

  • Creation of a linear system satisfying geometric conditions

  • Properties: Sections, degree, dimension, base scheme

  • Properties: Base component, base points, generic multiplicity at a point

  • Complement with respect to a subsystem or scheme

  • Intersection

  • Maps of a linear system

13.2 General Algebraic Curves

Magma includes a general package for working with algebraic curves. These are schemes of dimension 1, a particular case being plane curves that are defined by the vanishing of a single polynomial in 2-dimensional affine or projective space. The main features of interest are for integral (reduced and irreducible) curves. For these Magma computes explicit representations of the curve's field of rational functions allowing computations with places, divisors and differentials, calculation of the geometric genus, computation of Riemann-Roch spaces and more. This relies on the underlying function field machinery, but the results are available purely in the context of curve structures.

13.2.1 Curves: Construction and General Properties

  • Creation of affine and projective curves together with the ambient spaces

  • Basic manoeuvres between affine and projective curves: projective closure, affine patches and so on

  • Basic scheme-type functions: e.g., irreducibility

  • Specialised data types for distinct classes of curves such as elliptic curves

  • Linear systems of curves in the projective plane with assigned basepoints

  • Implicitization of parametric curves

  • Parametrization of rational curves

  • Point searches on plane curves using a p-adic method of Elkies

  • Global invariants of curves, such as genus and dimension

  • Function field and divisor computations (see below)

13.2.2 Curves: Mappings

  • Creation of the basic automorphisms of the affine plane (translation, flip, automorphism) and general maps between curves.

  • Evaluation of the image of a point under a rational map as a power series expansion

  • Ramification divisor of a non-constant dominant map

  • Pullbacks and pushforwards along maps between curves.

13.2.3 Curves: Local Analysis

  • Calculation of tangent spaces and cones for plane curves

  • Identification of all singularities of a curve, together with the basic analysis

  • Blowups, including weighted blowups, of points on plane curves

  • Local intersections on plane curves

13.2.4 Curves: Function Field

The following functions apply to integral curves in general.

  • Construction of the function field of a curve

  • Function field arithmetic

  • Exact constant field

  • Enumeration of places of degree m (over a finite field)

  • Residue class field

  • Class number

  • Divisor class group of a curve defined over a finite field

  • Group of global units of the function field of a curve

13.2.5 Curves: Divisors and the Riemann-Roch Theorem

The following functions apply to integral curves in general.

  • Creation of places and divisors and their arithmetic

  • Compute the divisor of a function on a curve and other constructors

  • Determine whether a divisor is principal and if so find a function with the given divisor

  • Ramification divisor

  • Riemann–Roch space of a divisor

  • Computation of Weierstrass places on a curve

13.2.6 Curves: Differentials

The following functions apply to integral curves in general.

  • Arithmetic and various, related operations

  • Valuation of a differential at a place

  • Divisor of a differential

  • Differential spaces for given divisors (e.g. holomorphic differentials)

  • Higher differentiations

  • Residue of a differential at a place of degree one

  • Cartier operator and representation matrix of the Cartier operator (curves over finite fields)

13.3 Rational Curves and Conics

Rational curves and conics in Magma are nonsingular plane curves of degree 1 and 2, respectively. The central functionality for conics concerns the existence of points over the rationals. If a point is known to exist, then a conic can be parametrized by a projective line or a rational curve. A rational curve in Magma is a linearly embedded image of the projective line, to which the full machinery of algebraic plane curves may be applied. Tools provided include the local-global theory, the existence of points on conics, efficient algorithms for finding rational points, parametrizations and isomorphisms of genus zero curves.

  • Diagonalized Legendre model for a conic defined over the rationals

  • Simon's algorithm for finding a point on a rational conic; this involves LLL-reduction of an indefinite form, and includes the Cremona-Rusin reduction as a special case

  • Variant of Simon's algorithm for parametrisation of a rational conic.

  • Reduction of a rational point on a conic so that its coordinates satisfy Holzer's bounds; the algorithm used is due to Mordell

  • Isomorphisms with standard models

  • A parametrisation algorithm for rational curves given a rational point

  • A canonical parametrisation algorithm reducing rational curves to conics irrespective of the existence of a point

  • Isomorphism of rational curves and conics

  • Automorphism groups of rational curves and conics

13.4 Elliptic Curves

Magma contains an extensive module for computing with elliptic curves. The reader should note that elliptic curves inherit from the general plane curve datatype so that all plane curve operations are applicable in addition to those listed below.

13.4.1 Elliptic Curves: Construction and Properties

  • Creation of an elliptic curve over a field

  • Creation of an elliptic curve with given j-invariant

  • Creation of an elliptic curve from a general genus 1 curve

  • Models: Weierstrass form, integral model, minimal model, simplified model

  • Arithmetic with rational points, including division

  • Extension and lifting of curves induced by maps of base rings

  • Function fields, divisors, places

  • Invariants: b-invariants, c-invariants, j-invariant, discriminant

  • Division polynomials

  • Subgroups and subschemes of elliptic curves as separate types

13.4.2 Elliptic Curves: Morphisms

  • Extension and lifting of maps induced by change of base ring of curves

  • Isomorphisms, isogenies and rational maps between curves, translation maps on a curve

  • Isogeny operations: degree, composition, construction with given kernel, Frobenius endomorphism

  • Kernel and image of an isogeny as subgroups, image and preimage of a subgroup under an isogeny

  • Endomorphisms

  • Isomorphism operations: inverses, composition

  • Testing for isomorphic curves over fields with root-finding

  • Testing for isogenous curves over finite fields via point-counting, and over the rationals via kernels (a map is returned also here)

13.4.3 Elliptic Curves: Operations over

  • Standard models and conversions

  • Construction from plane curves

  • Invariants: conductor, regulator, periods, and period lattice

  • Tamagawa numbers

  • Tate's algorithm for computing local information, Kodaira symbols

  • Twist of an elliptic curve by an integer, minimal twist

  • Heights: local height, naive height, canonical height, height pairing

  • Heights: Silverman bound, Siksek bound

  • Elliptic logarithm, p-adic elliptic logarithm

  • Elliptic exponential (-function) using Newton iteration

  • Mordell-Weil rank, bounds on Mordell-Weil rank

  • Mordell-Weil group and torsion subgroup

  • Analytic rank, special values of the L-series, root numbers

  • Isogeny class (and isogenies), modular degree

  • Heegner points for rank 1 curves, and general modular parametrisation

  • Algebraic two-descent to complement Cremona's invariant method

  • Four-descent, with point-searching via the Elkies ANTS-IV p-adic method

  • S-integral points: determination of the finite set of affine points with denominator generated over the finite set of primes S.

  • S-integral points: quartic, Ljunggren and Desboves points

  • John Cremona's database of all elliptic curves over Q having conductor up to 40 000

Standard models are provided together with heights and invariants. For curves over Q invariants such as conductor, regulator, and local information (Tate's algorithm) are available. The Mordell-Weil rank and group are computed using code following algorithms developed by John Cremona and implemented in his MWRANK program. Magma takes 10.06 seconds to determine the full group of the rank 4 curve

y2 = x3 – 73705x – 7526231
and 4.24 seconds to determine that the curve
y2 = x3 + 2 429 469 980 725 060x2 + 275 130 703 388 172 136 833 647 756 388x
has rank 14.

13.4.4 Elliptic Curves: Operations over Algebraic Number Fields

  • Enumeration of rational points

  • Reduction at a prime, local and global minimal models

  • Torsion bound, p-torsion, torsion subgroup

  • Bounds on the Mordell-Weil rank

  • Mordell-Weil group for suitably "small" curves

  • 2-Selmer groups

  • 2-isogeny Selmer groups

  • Representation of elements of the Selmer group as elements of an etale algebra

  • Chabauty methods

  • Local solubility

13.4.5 Elliptic Curves: Operations over Fq

In the case of elliptic curves defined over a finite field, specialised functions are provided for the construction and analysis of maps. The major algorithms for such curves are the SEA and canonical lift algorithms for point counting.

  • Characterization of ordinary and supersingular elliptic curves

  • Representative supersingular curve

  • Enumeration of all points (small fields), random point

  • Quadratic twist, all quadratic twist, all twists

  • Order of a point via baby-step–giant-step for small p

  • Schoof-Elkies-Atkin (SEA) algorithm for finding the order of the group of rational points

  • Schoof-Elkies-Atkin (SEA) algorithm with early abort facility for searching for cryptographically secure curves

  • Lercier's extension of the SEA algorithm and p-adic canonical lift methods for finite fields of characteristic two

  • Structure of the abelian group of rational points

  • Zeta function of a curve

  • Discrete logarithm (parallel collision search version of the Pollard rho algorithm)

  • Weil pairing

For a random curve taken over a 168-bit prime field GF(p), Magma takes an average of 47 seconds to determine the order of the group. In the case of a random curve taken over a 400-bit prime field the average runtime is 2200 seconds. In characteristic two, Magma takes around 0.04 seconds for a curve over GF(2162), where Gaussian Normal Bases are available and 0.27 seconds over GF(2160). Over GF(2268) (again with GNB) it takes around 0.17 seconds.

13.5 Hyperelliptic Curves

Magma contains a package for computing with hyperelliptic curves and their Jacobians. The development of this package was undertaken by Michael Stoll (Düsseldorf), with contributions from P. Gaudry, E. Howe and the Magma group.

The reader should note that hyperelliptic curves inherit from the general plane curve datatype so that all plane curve operations are applicable in addition to those listed below.

13.5.1 Hyperelliptic Curves: Construction and Properties

  • Standard quadratic models, simplified models

  • Integral model, minimal Weierstrass model, p-normal model, reduced model

  • Function fields, divisors, places

  • Invariants: degree, genus, discriminant

  • Igusa and related invariants

  • Construction of a curve given its Igusa invariants

  • Extension and lifting of curves induced by maps of base rings

  • Reduction types and conductors of a genus 2 curve at odd primes

  • Determination of points at infinity

  • Special optimized algorithm for determining local solubility

  • Determination of whether a genaral algebraic curve C is hyperelliptic and, if so, computation of a Weierstrass model for C

  • Determination of whether a general algebraic curve C is geometrically hyperelliptic - ie, is hyperelliptic over the algebraic closure of the ground field.

13.5.2 Hyperelliptic Curves: Morphisms

  • Creation of isomorphisms, automorphisms

  • Arithmetic with isomorphisms: composition, inversion, evaluation

  • Test for curves being GL2 equivalent, isomorphic

  • Automorphism group

13.5.3 Hyperelliptic Curves: Operations over Fq

  • Enumeration of all rational points (small fields)

  • Random point

  • Quadratic twist, all quadratic twists

  • Zeta function of a curve

13.5.4 Hyperelliptic Curves: Operations over Number Fields

  • Enumeration of all rational points

  • Selmer groups

13.5.5 Hyperelliptic Curves: Construction of the Jacobian

  • Creation of the Jacobian of a given curve as the divisor class group

  • The Jacobian as a curve with defining equation

  • Creation of points

  • Normal form and addition of points

  • Fast addition algorithm of R. Harley for genus 2 curves

  • Kummer surface of the Jacobian of a genus 2 curve

  • Analytic model of the Jacobian: translation between the algebraic and analytic Jacobians

13.5.6 Hyperelliptic Curves: Operations on the Jacobian over

Most of the functions listed here apply only in the case of Jacobians of genus 2 curves.

  • Order of a point

  • Height constant, canonical heights, naive height

  • Height pairing matrix and regulator

  • Enumeration of all -rational points up to a given height bound (Elkies-Stahlke-Stoll method)

  • 2-Selmer rank (via 2-descent)

  • 2-torsion subgroup, full torsion subgroup

  • Rank of the subgroup of the Mordell-Weil group generated by a given set of points on the Jacobian

  • Chabauty's method for determining rational points on a curve over Q with Mordell–Weil rank at most 1

13.5.7 Hyperelliptic Curves: Operations on the Jacobian over Fq

The p-adic techniques used for point counting in small characteristic p are Kedlaya's algorithm (p odd) and Mestre's canonical lift method as adapted by Lercier and Lubicz (p = 2) [implemented by M. Harrison]. The other techniques for point counting are due to P. Gaudry and R. Harley and have been implemented in Magma by P. Gaudry.

  • Enumeration of all rational points (small fields), random point

  • Order of a point via the Shanks or the Pollard-rho algorithms

  • Counting points: p-adic methods of Kedlaya and Mestre/Lercier/Lubicz

  • Counting points: Shanks and Pollard methods

  • Counting points: An index calculus method for when the genus is large compared to the base field

  • Counting points: Schoof algorithm for finding the order modulo small primes in the case of a genus 2 curve

  • Counting points: Class group methods using the function field machinery.

  • Structure of the abelian group of rational points

  • Weil pairing of points

13.5.8 Hyperelliptic Curves: Kummer Surface

  • Construction from the Jacobian of a genus 2 curve

  • The defining equation of the surface

  • Creation of points

  • Pseudo addition, and duplication of points

  • Naive height and canonical height

  • Search for rational points having three coordinates specified

  • Preimage on the Jacobian of a given point on the Kummer surface

13.6 Modular Forms

Magma V2.8 includes packages developed by William Stein and David Kohel as part of a major new initiative in modular forms and modular curves computation. The central object in each package is a finite-rank module equipped with the action of a ring of Hecke operators. The space of modular forms is perhaps the most familiar example of such a Hecke module. Other examples include the space of modular symbols and the group of divisors generated by the supersingular points on the reduction of certain modular curves. This latter module can be computed in some cases using the method of Mestre and Oesterlé [Mest86] and in general using quaternion ideal theory [Eich72, Piz80], which has deep connections with the theory of Shimura curves [Koh99].

13.6.1 Module of Supersingular Points

Machinery for computing with the Hecke module of divisors on the supersingular points on X0(N) in characteristic p is now included. This module is the free abelian group on the supersingular elliptic curves in characteristic p enhanced with level N structure. We compute this module using the Method of Graphs of Mestre and Oesterlé and the Brandt modules algorithm.

  • Computation of Hecke operators and Atkin-Lehner involution.

  • Decomposition into invariant subspaces.

  • The monodromy pairing.

13.6.2 Modular Forms

The modular forms package provides the following features:

  • Computation of a basis of modular forms on Γ1(N) of any integer weight greater than one

  • Computation of all newforms of given level, all of their reductions modulo a prime, and their embeddings in the complex and p-adic fields

  • Arithmetic with modular forms

  • Characteristic polynomials of Hecke operators

  • Decomposition into Eisenstein, cuspidal, and new subspaces

  • Dimension formulas

  • Computation of Atkin-Lehner operators

13.6.3 Modular Symbols

A program for computing with modular symbols was developed by William Stein as part of his Ph.D. thesis, and redesigned and made part of Magma during a visit to the Magma group in 1999. Algorithmic details, research applications, and references can be found in the Stein's thesis [WAS00] and subsequent work (see http://modular.fas.harvard.edu/papers).

  • Construction of spaces of modular symbols of any character, level, and weight

  • Computation of Hecke operators

  • Decomposition into invariant subspaces

  • Computation of certain invariants of the modular abelian varieties

  • The intersection pairing on the integral homology of modular curves

  • Special values of L-functions and computation of complex period lattices

13.6.4 Brandt Modules

Brandt modules provide a representation in terms of quaternion ideals of certain cohomology subgroups associated to Shimura curves XD0(N) which generalize the classical modular curves X0(N). The Brandt module datatype is that of a Hecke module – a free module of finite rank with the action of a ring of Hecke operators – which is equipped with a canonical basis (identified with left quaternion ideal classes) and an inner product which is adjoint with respect to the Hecke operators.

Features:

  • Construction of a Brandt module on the left ideal class of a definite order in a quaternion algebra over .

  • Arithmetic operations with module elements.

  • Inner product of elements with respect to the canonical pairing on their parent.

  • Elementary invariants of a Brandt module: Level, discriminant, conductor etc.

  • Decomposition of a Brandt module under the action of Atkin–Lehner and Hecke operators.

  • Eisenstein subspace, cuspidal subspace.

  • Operations on subspaces: Orthogonal complement, intersection.

  • Properties of subspaces: Eisenstein, cuspidal, decomposable.

  • Construction of Hecke and Atkin Lehner operators.

  • q-expansions associated with a pair of elements of a Brandt module.

  • Determination of the dimension of a Brandt module of given level obtained using standard formulae.

13.6.5 Dirichlet Characters

The Dirichlet characters package provides support for computing with the group of homomorphism (ℤ/Nℤ)*→R*, where R is a ring.

  • Dirichlet group over a field K as the set of rational characters from (ℤ/Nℤ)* to K*.

  • Computation of group generators, enumeration of elements, and representatives of Galois-conjugacy classes of characters.

  • Construction and evaluation of Dirichlet characters.

  • Invariants of characters, such as their conductor, modulus, and order.

Dirichlet characters have been developed in support of the new Hecke module types. Future applications to exponential sums will also be developed.

13.6.6 Classical Modular Forms and Functions

The standard collection of modular forms can be created as modular forms.

  • Dedekind η-function

  • Eisenstein series

  • Theta series

  • Evaluation of modular forms on binary quadratic forms

  • Evaluation of Weber's f-function, Weber's f2-function, j-invariant, on binary quadratic forms

  • Hilbert class polynomial and Weber class polynomial

13.6.7 Modular Curves

A package for computing with modular curves has been developed by David Kohel. Modular curves in Magma are a special type of plane curve. A modular curve X is defined in terms of standard affine modular equations which are stored in precomputed databases. Those modular curves presently available are defined by modular equations—a bivariate polynomial relation between the j-invariant and one of several standard functions on X0(N). These give singular, affine models for X0(N) designed for computing isogenies of elliptic curves.

Features:

  • Creation of a modular curve of specified level rom a database. Possible model types are Atkin, Canonical and Classical.

  • Database of modular equations: Atkin, Canonical and Classical.

  • Parametrization of the isogenies of an elliptic curve by points on some X0(N).

  • j-invariant of a modular curve over a field.

  • Base curve of a modular curve.

  • Automorphisms: Atkin–Lehner involution.

  • Hilbert and Weber class polynomials.

13.6.8 Modular Abelian Varieties

This package offers some nontrivial functionality for modular abelian varieties, which we view as explicitly given quotients or subvarieties of modular Jacobians. No explicit algebraic defining equations are used in these algorithms, so computations with abelian varieties of large dimension are feasible.

  • Construction of quite general modular abelian varieties, in the sense that arbitrary finite direct sums and quotients may be formed.

  • Explicit computation of the group Hom(A,B) or the ring End(A), as a subgroup of homology, for modular abelian varieties A, B over .

  • Computation of kernels, cokernels, and images of homomorphisms of abelian varieties.

  • Intersections of subvarieties.

  • Computation of discriminants of subgroups of endomorphism rings, such as Hecke algebras.

  • A divisor and a multiple of the order of the K-rational torsion subgroup of A.

  • The determination of whether or not two modular abelian varieties are isomorphic (in some cases).

  • Characteristic polynomial of Frobenius.

  • Tamagawa numbers and component group orders (in some cases).

  • Computation of all inner and CM twists (not provably correct).

  • Computation with torsion points as elements of rational homology.

13.7 Graded Rings and Geometric Databases

The computation of generic families of K3 surfaces embedded in weighted projective spaces of small dimension is a project that has been running since the mid-1970s. Until two years ago, a main result was a collection of about 400 families of K3 surfaces (which had been recorded as a database in Magma). Magma now contains a database of 24,099 K3 surfaces (including correcting half a dozen mistakes in codimension 4) that, in a well-defined sense, contains a sketch of all possible examples.

One main point is that these results are a major step on the way to understanding Fano 3-folds and their birational automorphisms. These are the 3-dimensional analogues of rational curves or Del Pezzo surfaces and are a very exciting research frontier. It is possible that the final classification of Fano 3-folds (expected to contain a few thousand families) will almost be contained in the K3 database.

The methods applied to K3 surfaces work in many other contexts. Currently Magma contains the calculations for: subcanonical curves, K3 surfaces, Fano 3-folds and Calabi–Yau 3-folds; other cases are in progress. The basic method is to assemble a lot of data that should occur on these varieties, feed it into the Riemann–Roch formula to get a Hilbert series, and then attempting to describe a plausible variety embedded in weighted projective space that has that Hilbert series. The ideas are described in the paper [ABR02], while improved handling of high codimension possibilities using projection/unprojection theorems is described in [Bro02]. Other cases are covered by the papers [BuSz], [SuRe].

Notice that these routines do not describe explicit graded rings: they do not explain how to write the equations, but only say which weighted variables should be used in the equations. (The Hilbert series does include more information, but still much less than would dictate explicit equations, in general.) The process of recovering equations through projections is called 'unprojection', and that is still some way off being implemented as a method in commutative algebra.

These families exhibit large Gorenstein rings with as yet unknown structure. The search for structure theorems for Gorenstein rings occupied much of the 1970s after the Buchsbaum–Eisenbud structure theorem in codimension 3. However no substantial new cases were discovered. These examples, not available in the 1970s, are a major motivation for a renewed assault on this problem.

  • Functions that create subcanonical curves, K3 surfaces, Fano 3-folds and Calabi–Yau 3-folds from data associated to the Riemann–Roch formula in each case

  • A K3 database containing 24,099 candidates for polarised K3 surfaces. There are also smaller databases of Fano 3-folds as a first step in the final classification

  • Functions for interrogating databases, including functions that can add new entries or rewrite existing entries

13.8 Resolution Graphs and Splice Diagrams

  • Creation of resolution graphs and their vertices, either implicitly using resolution routines or Newton Polygons, or explicitly by listing the required data

  • Calculation of numerical data associated to blowups, e.g., the canonical class of certain rational surfaces

  • The Cartan matrix of a graph and associated calculations such as the contribution to the genus of a plane curve of a singularity having a given graph as its resolution

  • Surgery on resolution graphs such as cutting an edge of a graph

  • Creation of splice diagrams implicitly and explicitly

  • Edge determinants and linking numbers of splice diagrams

  • Test for regularity of splice diagrams

  • Translation between resolution graphs and splice diagrams

These decorated graphs encode data generated by the resolution machinery. At present they are only attached to resolutions of plane curve singularities, but in due course they may be extended to resolutions of linear systems, surface singularities, special fibres in curve fibrations or other geometrical contexts. The package includes a resolution function for curves adapted to present its output in resolution graph format. This does not supersede other resolution machinery such as Puiseux expansions or genus calculations, but is intended as a complementary tool for those users with this kind of geometric background.