|
[Next][Prev] [Right] [____] [Up] [Index] [Root]
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 a number fields itself. 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)] and Q[ζ3 2)] -- 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 fields defined by
multiple polynomials can be converted into a fiel 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)).
> K := ext<Rationals()|Polynomial([0,1]):DoLinearExtension>;
[Next][Prev] [Right] [____] [Up] [Index] [Root]
|