Skip to content

Introduction

This chapter deals with number fields and orders there of. We follow the common terminology and conventions as e.g. used in Henri Cohen (1993), Henri Cohen (2000), M. Pohst, H. Zassenhaus (1997) or Daniel A. Marcus (2018).

If is a number field, then an order of is a subring of the ring of integers of , which is free of rank as a -module. Depending on whether is an absolute field or relative field, orders are treated differently. As far as possible, the interaction and the interface for orders of absolute number fields and of relative number fields is the same.

Orders of absolute number fields

Assume that is defined as an absolute field. An order of such a field are constructed (implicitely) by specifying a -basis, which is refered to as the basis of . If is the basis of and the basis of , then the matrix with

is the basis matrix of . If is simple with , then natural order is called the equation order of .

Orders of relative number fields

Orders in non-absolute number fields, that is, relative extensions, are represented differently. Let be a finite extension of number fields, then currently we require any order in to contain , the ring of integers of . In this case, an order in is a finitly generated torsion-free module over the Dedekind domain . As a ring, the order is unitary and has as a fraction field. Due to in general not being a principal ideal domain, the module structure is more complicated and requires so called pseudo-matrices. See here for details on pseudo-matrices, or Henri Cohen (2000), Chapter 1 for an introduction.

In short, is represented as with fractional ideals and -linear independent elements . In general it is impossible to have both integral and , thus coefficients will not be integral and/or generators not in the structure.

Examples

Usually, to create an order, one starts with a field (or a polynomial):

julia> Qx, x = PolynomialRing(QQ, "x");


julia> K, a = NumberField(x^2 - 10, "a");


julia> E = EquationOrder(K)
Maximal order of Number field over Rational Field with defining polynomial x^2 - 10
with basis nf_elem[1, a]

julia> Z_K = MaximalOrder(K)
Maximal order of Number field over Rational Field with defining polynomial x^2 - 10
with basis nf_elem[1, a]

julia> conductor(E)
<no 2-elts present>
basis_matrix
[1 0; 0 1]

julia> E == Z_K
true

Once orders are created, we can play with elements and ideals:

julia> lp = prime_decomposition(Z_K, 2)
1-element Vector{Tuple{NfOrdIdl, Int64}}:
 (<2, a>
Norm: 2
Minimum: 2
two normal wrt: 2, 2)

julia> p = lp[1][1]
<2, a>
Norm: 2
Minimum: 2
two normal wrt: 2

julia> is_principal(p)
(false, 1)

julia> fl, alpha = is_principal(p^2)
(true, 2)

julia> norm(alpha)
4

It is possible to work with residue fields as well:

julia> Fp, mFp = ResidueField(Z_K, p)
(Finite field of degree 1 over F_2, Map with following data
Domain:
=======
Maximal order of Number field over Rational Field with defining polynomial x^2 - 10
with basis nf_elem[1, a]
Codomain:
=========
Finite field of degree 1 over F_2)

julia> [ mFp(x) for x = basis(Z_K)]
2-element Vector{fq}:
 1
 0