An algebraic function field is a finite degree extension of a rational
function field K(x). In Magma V2.5, the field K may be taken to be
either a finite field, Q or a number field. An extension of K(x),
where K is finite field, is called a global function field.
The development of this module is a joint project with the KANT group.
Work is under way on developing algorithms for computing the divisor
class group.
Construction of a function field as an extension of K(x)
Arithmetic with elements
Trace and norm of an element
Exact constant field
Genus
Finite and infinite equation orders
Discriminant (of an order)
Maximal order (finite or infinite)
Construction of integral and fractional ideals
Ideal arithmetic: sum, product, quotient, gcd, lcm
Properties of ideals: Integral, prime, principal
Valuation of an order element or ideal at a prime ideal
Ramification index and residue class degree of a prime ideal
Prime ideal decomposition of a fractional ideal
Construction of places and divisors
Determination of places of degree one in global fields
Determine whether the place at infinity place is tamely ramified
Determination of places lying over a (finite) prime or the infinite place
Arithmetic in the divisor group
Riemann-Roch spaces
Basis reduction for finite orders (Pohst-Schoernig method) in global fields
Independent units, fundamental units, regulator in global fields
Real and Complex Fields [HB 44]
Bug fixes:
The function DedekindEta for real and complex fields has been
fixed to give the correct result (which is consistent with the series
function).
Formal Series [HB 46]
Bug fixes:
Bug in the function Eisenstein fixed.
Bug in the function Evaluate fixed.
Modules and Lattices
R-Modules [HB 49]
New features:
New function AHom to compute the module of homomorphisms from
one module to another which respect the action of the underlying
matrix algebra (like GHom but the module need not be a G-module).
Chain Complexes (New) [HB 50]
New features:
Creation of a complex from a list of A-modules
Subcomplexes and quotient complexes
Operations on complexes: Splice, shift, direct sum
Exact extension
Dual of a complex
Homology groups of a complex
Boundary maps
Given two complexes construct the corresponding chain map
Composition of chain maps
Image, kernel and cokernel of a chain map
Predicates for chain maps: Surjection, injection, isomorphism
Injective resolution (for complexes over a basic algebra)
Projective resolution (for complexes over a basic algebra)
Modules Hom(U, V) [HB 51]
Changes:
The function ElementaryDivisors has been fixed to include any ones
which are in the Smith normal form of the input matrix (so the length
of the result is now always the rank of the input matrix).
Algebras
Matrix Algebras [HB 57]
New features:
New modular algorithm for the multiplication of matrices over large prime
finite fields.
Changes:
The function ElementaryDivisors has been changed to include any
ones occurring on the diagonal of the Smith normal form of the input
matrix (so the length of the result is now always the rank of the input
matrix).
Basic Algebras (New) [HB 59]
A basic algebra is a finite dimensional algebra A over a field, all of
whose simple modules have dimension one. In the literature such an algebra
is known as a ``split'' basic algebra. The type in Magma is optimized for
the purposes of doing homological calculations. This module was written by
Jon Carlson.
Creation from a sequence of projective modules and a path tree for
each module
Creation of the basic algebra corresponding to the group algebra of
a p-group over GF(p).
Arithmetic
Extension and restriction of coefficient ring
Tensor product
Opposite algebra
Injective hull
Algebra as a right regular module over itself
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:
Affine plane curves
Projective plane curves
Newton polygons
Divisor groups of certain plane curves
Schemes
Elliptic curves
Algebraic Curves
Magma V2.5 includes the first stage of a general package for working with plane
curves. These are interpreted as being the scheme defined by the vanishing
of a polynomial defined on either an affine or projective space. Its main
features are flexible tools for translating between affine and projective
curves, the calculation of geometric genus of any plane curve and the explicit
manipulation of divisors on cubics in Weierstrass form. Many more specialized
will be included in future releases.
Plane Curves (New) [HB 62]
Creation of affine and projective curves together with the
ambient affine and projective planes
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
Global invariants of curves, such as genus and dimension
Local Analysis of Curves (New) [HB 62]
Calculation of tangent spaces and cones
Identification of all singularities of a curve, together with
the basic analysis
Blowups, including weighted blowups, of points on curves
Local intersections
Divisors and the Riemann-Roch Theorem (New) [HB 62]
The following functions apply to special classes of curves.
Creation of divisors and arithmetic
Compute the divisor of a function on a curve
Determine whether a divisor is principal. If so find a function
with the given divisor
Normal forms for divisors
Newton Polygons (New) [HB 64]
Construction of a newton polygon: Compact, infinite or
including the origin
Construction of newton polygons from different types of data
Finding faces and vertices
If polygon is derived from a polynomial f, finding restrictions of f to faces
Locating a given point relative to a newton polygon
Determining whether a given line supports a face
Determining whether two polygons are the same
Schemes (New) [HB 63]
This module comprises general tools for working with schemes defined by
polynomial equations in affine or projective space. Such tools include
Groebner basis computation, dimension and image of maps, and linear algebra
calculations formalized as linear systems on projective space.
Maps between spaces may also be constructed and studied.
Creation of schemes by equations or implicit methods
Basic algebra-theoretic analysis of schemes: reducibility, dimension
Local geometric analysis: singularities, tangent spaces
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
Elliptic Curves [HB 65]
General Elliptic Curves
New features:
New function CremonaReference to look up an elliptic
curve over the rationals in the installed Cremona database.
EllipticCurve and EllipticCurves extended to
accept identifying strings (e.g. ``101A'') for curves in
Cremona database.
Elliptic Curves over Finite Fields
Magma V2.5 contains an efficient implementation of the Schoof-Elkies-Atkin
algorithm with Lercier's extension to base fields of characteristic 2.
Calculations are performed in the smallest field over which the curve is
defined, and the result is lifted to the original field.
New features for elliptic curves over finite fields:
Schoof-Elkies-Atkin algorithm for counting points in the
cases of large characteristic and characteristic 2.
Use of Atkin's algorithm (as subset of the Schoof-Elkies-Atkin
machinery) for point counting in small odd characteristic.
New functions IsProbablySupersingular, IsSupersingular,
and IsOrdinary for elliptic curves over finite fields,
replacing IsProvenSupersingular.
New function FactoredOrder for curves and points on curves.
Changes:
Removal of function Lift from documentation. Functionality
preserved with BaseChange, BaseExtend, and ChangeRing.
TraceOfFrobenius as synonym for Trace.
Added functions names nTorsionSubgroup and pTorsionSubgroup,
synonymous with previous mTorsionSubgroup.
Replacement of IsProvenSupersingular with new functions
IsProbablySupersingular, IsSupersingular, and
IsOrdinary for elliptic curves over finite fields.
Incidence Structures
Enumerative Combinatorics [HB 66]
New Features:
A variant of the DivisorSigma(i, n) function has been included
which allows the user to give n in factored form.
The function RestrictedPartitions has been provided to construct
the restricted partitions of an integer n, i.e., the partitions of
n such that the parts belong to a designated set.
A variant of the Partitions function has been provided which
generates only the partitions having a specified number of parts.
Graphs [HB 67]
A new clique finding algorithm based on the use of recursion and dynamic
programming has been implemented. In some circumstances, such at the case
of large graphs with high density, this algorithm is more efficient than
the existing branch and bound algorithm. The existing clique and independent
set functions have been rewritten so to allow users to specify the choice of
clique algorithm. We welcome any user feedback regarding the comparative
performance of these two algorithms.
New features:
The new function MinimumDominatingSet finds a minimum dominating
set of an undirected graph.
The new functions OptimalVertexColouring and
OptimalEdgeColouring find one optimal vertex, respectively,
one optimal edge colouring, in an undirected graph.
The new function ChromaticPolynomial computes the chromatic
polynomial for an undirected graph.
Functions AllCliques and AllIndependentSets find all
cliques and independent sets, respectively, of a given size. No
choice of algorithm is permitted.
Changes:
The function Clique now has an extra argument allowing
the user to specify algorithm which is to be used. If no clique
size is given, then Clique returns a maximum clique.
If a clique size k is specified, then Clique returns a
clique of size exactly k if the dynamic algorithm is chosen,
or a maximal clique of size at least k if the branch and bound
algorithm is chosen. The same comment applies to the function
IndependentSet.
The functions CliqueNumber and IndependenceNumber also
admit an extra argument allowing the user to choose the algorithm
used.
Descriptions of the functions LargestClique and
LargestIndependentSet have been removed from the Magma Handbook.
The functions will be removed from Magma in a subsequent
release.
Incidence Structures and Designs [HB 68]
Changes:
A new algorithm has been implemented to find a resolution in an
incidence structure. The function IsResolvable has an extra
argument allowing to choose the algorithm which is to be used.
The previously existing algorithm, which is a backtracking
algorithm, is always more efficient in the case where the incidence
structure is resolvable. It is believed however that the new
algorithm, which rests on a clique finding algorithm, performs
significantly better when the incidence structure is not
resolvable.
New features:
New function AllResolutions which finds all the resolutions in an
incidence structure.