[Next][Prev] [Right] [____] [Up] [Index] [Root]

Introduction

The number field module in Magma is based on the Kant/Kash system (Kant-V4) [KAN97], [KAN00], developed by the group of M. Pohst in Berlin.

This chapter deals only with the basic operations possible with number fields (objects of type FldNum) and their elements FldNumElt. Apart from material covered here, there is a wealth of other functions implemented and documented in detail in chapters dealing with

* Cyclotomic fields, Chapter CYCLOTOMIC FIELDS
* Quadratic fields, Chapter QUADRATIC FIELDS
* Orders in number fields, including ideal theory, Chapter ORDERS AND ALGEBRAIC FIELDS
* Galois Theory, Chapter GALOIS THEORY OF NUMBER FIELDS
* Class Field Theory, Chapter CLASS FIELD THEORY

Furthermore, a lot of functionality of number fields is also shared by function fields of transcendence degree 1 (Chapters ALGEBRAIC FUNCTION FIELDS, RATIONAL FUNCTION FIELDS) and functionality is imported from other areas, in particular, finite fields and polynomial rings.

Number fields in Magma are finite extensions of the field Q of rational numbers or of another number field. Number fields of the first kind, ie. number fields that are created as extensions of Q are referred to as absolute fields, while extensions of number fields are called relative fields.

Number fields support extended types (Section Types, Category Names, and Structures), they can be indexed by the type of the coefficient ring: FldNum[FldRat] refers to an absolute extension over Q, while FldNum[FldNum] refers to a relative extension.

Formally, in Magma, an object K of type FldNum is an algebraic extension of finite degree over a number field k or Q. It should be thought of as constructed as a quotient ring of a univariate polynomial ring over the base field modulo some irreducible polynomial: K = k[t]/(f(t)k[t]) Or, the field may be constructed as a multivariate quotient: K = k[s1, ..., sn]/(f1(s1), ..., fn(sn)) where all the polynomials are univariate. However, a slightly different representation is used internally.

An important consequence of this representation as a quotient of a polynomial ring is that one cannot distinguish between e.g. Q[2(1/3)] and Q[ζ3 2(1/3)] -- both of them are generated using a root of t3 - 2. Therefore every non trivial extension generates a new object -- even if the same polynomial is used repeatedly, except when the user explicitly tells Magma to check whether the polynomial has been used before. This also implies that number fields are not automatically embedded into C the field of complex numbers, in contrast to both quadratic and cyclotomic fields that are. Using Conjugates or the language of places in section Places and Divisors all embeddings into C or R can be found and used.

It is important to remember that Q is not a number field. However, it is possible to create an extension of degree 1 over Q that is a number field using, for example

One has to distinguish between number fields with a (known) primitive element α:= K.1 which is a zero of f and number fields where no primitive element is known. In this case αi:= K.i will be a zero of fi.

Number fields always have a `power' basis, i.e. a basis containing only powers of the zero(s) of the defining polynomial(s) and product of those powers. This allows for example to define homomorphisms from number fields by specifying images of the generators only.

An absolute extension is always an extension of Q. An arbitrary number field K can always be converted into an isomorphic extension of Q using a constructive variant of the primitive element theorem, AbsoluteField. Similarly, a number field defined by multiple polynomials can be converted into a field defined by a single polynomial using SimpleExtension.

Likewise, if a subfield k of K is known, an isomorphic field as an extension of k can be computed.

The most important facts about the different representations are the following:

*
Arithmetic is fastest in absolute simple extensions. Thus, if one wants to do lots of basic arithmetic with the elements the transformation to an absolute representation is advisable. However, typically the operations are fastest when the elements are "small" in size.
*
Invariants (like Degree, Discriminant, Norm, Trace etc.) are always relative to the current representation.
*
Conversions of fields tend to be time consuming thus should be avoided if possible. However, once the different field representations are computed, the conversion of elements is not too time consuming.
*
Some operations and invariants can (currently) only be done for absolute representations. Essentially, these are computations involving subfields and class and unit group computations.

Number fields support only arithmetic with their elements and the computation of some invariants (GaloisGroup, Subfields, AutomorphismGroup). Although invariants like the class group can be computed for FldNums this is only a shortcut for the corresponding computations for the maximal orders so e.g. ClassGroup(K) is expanded to ClassGroup(MaximalOrder(K)).

Example FldNum_Q-as-number-field (H34E1)

> K := ext<Rationals()|Polynomial([0,1]):DoLinearExtension>;

 [Next][Prev] [Right] [____] [Up] [Index] [Root]

Version: V2.19 of Wed Apr 24 15:09:57 EST 2013