# Algebraic Number Fields

The Wolfram Language provides representation of algebraic numbers as Root objects. A Root object contains the minimal polynomial of the algebraic number and the root number—an integer indicating which of the roots of the minimal polynomial the Root object represents. This allows for unique representation of arbitrary complex algebraic numbers. A disadvantage is that performing arithmetic operations in this representation is quite costly. That is why the Wolfram Language requires the use of an additional function, RootReduce, in order to simplify arithmetic expressions. Restricting computations to be within a fixed finite algebraic extension of the rationals, , allows a more convenient representation of its elements as polynomials in .

AlgebraicNumber[θ,{c_{0},c_{1},…,c_{n}}] | represent the algebraic number in |

Representation of algebraic numbers as elements of a finite extension of rationals.

_{0},…,c

_{l}}] is an inert numeric object:

For any algebraic number and any list of rational numbers , …, , AlgebraicNumber[θ,{c_{0},…,c_{l}}] evaluates to AlgebraicNumber[ξ,{d_{0},…,d_{m}}], where is an algebraic integer such that for some factor of the leading coefficient of the minimal polynomial of , is the degree of the minimal polynomial of , and

ToNumberField[a,θ] | express the algebraic number a in the number field generated by θ |

ToNumberField[{a_{1},a_{2},…},θ] | express the a_{i} in the field generated by θ |

ToNumberField[{a_{1},a_{2},…}] | express the a_{i} in a common extension field generated by a single algebraic number |

Representing arbitrary algebraic numbers as elements of algebraic number fields.

^{2}+#1

^{4}&,4]:

Arithmetic within a fixed finite extension of rationals is much faster than arithmetic within the field of all complex algebraic numbers.

In[9]:= |

ToNumberField[{a_{1},a_{2},…}] is equivalent to ToNumberField[{a_{1},a_{2},…},Automatic], and does not necessarily use the smallest common field extension. ToNumberField[{a_{1},a_{2},…},All] always uses the smallest common field extension.

^{2}+#1

^{4}&,4]) it is represented in. However, the common field found by ToNumberField contains the whole field (Root[1-10 #1

^{2}+#1

^{4}&,4]):

MinimalPolynomial[a] | give a pure function representation of the minimal polynomial over the integers of the algebraic number a |

MinimalPolynomial[a,x] | give the minimal polynomial of the algebraic number a as a polynomial in x |

AlgebraicIntegerQ[a] | give True if the algebraic number a is an algebraic integer and False otherwise |

AlgebraicNumberDenominator[a] | give the smallest positive integer n such that na is an algebraic integer |

AlgebraicNumberTrace[a] | give the trace of the algebraic number a |

AlgebraicNumberNorm[a] | give the norm of the algebraic number a |

AlgebraicUnitQ[a] | give True if the algebraic number a is an algebraic unit and False otherwise |

RootOfUnityQ[a] | give True if the algebraic number a is a root of unity and False otherwise |

Functions for computing algebraic number properties.

The minimal polynomial of an algebraic number is the lowest-degree polynomial with integer coefficients and the smallest positive leading coefficient, such that .

An algebraic number is an algebraic integer if and only if its MinimalPolynomial is monic.

The trace of an algebraic number Null is the sum of all roots of MinimalPolynomial[a].

The norm of an algebraic number Null is the product of all roots of MinimalPolynomial[a].

An algebraic number is an algebraic unit if and only if both and are algebraic integers, or equivalently, if and only if AlgebraicNumberNorm[a] is or .

^{3}-4#1+17&,1],{1,2,3}] is not an algebraic unit:

An algebraic number is a root of unity if and only if for some integer .

MinimalPolynomial[s,x,Extension->a] | |

give the characteristic polynomial of the algebraic number Null over the field | |

MinimalPolynomial[s,x,Extension->Automatic] | |

give the characteristic polynomial of the AlgebraicNumber object Null over the number field generated by its first argument | |

AlgebraicNumberTrace[a,Extension->θ] | |

give the trace of the algebraic number Null over the field | |

AlgebraicNumberTrace[a,Extension->Automatic] | |

give the trace of the AlgebraicNumber object Null over the number field generated by its first argument | |

AlgebraicNumberNorm[a,Extension->θ] | |

give the norm of the algebraic number Null over the field | |

AlgebraicNumberNorm[a,Extension->Automatic] | |

give the norm of the AlgebraicNumber object Null over the number field generated by its first argument |

Functions for computing properties of elements of algebraic number fields.

If a is AlgebraicNumber[θ,coeffs], then MinimalPolynomial[a,x,Extension->Automatic] is equal to MinimalPolynomial[a,x]^{d}, where d is the extension degree of .

The trace of an algebraic number is the sum of all roots of its characteristic polynomial. If a is AlgebraicNumber[θ,coeffs], then AlgebraicNumberTrace[a,Extension->Automatic] is equal to d AlgebraicNumberTrace[a], where d is the extension degree of .

The norm of an algebraic number is the product of all roots of its characteristic polynomial. If a is AlgebraicNumber[θ,coeffs], then AlgebraicNumberNorm[a,Extension->Automatic] is equal to AlgebraicNumberNorm[a]^{d}, where d is the extension degree of .

NumberFieldIntegralBasis[a] | give an integral basis for the field generated by the algebraic number a |

NumberFieldRootsOfUnity[a] | give the roots of unity for the field generated by the algebraic number a |

NumberFieldFundamentalUnits[a] | give a list of fundamental units for the field generated by the algebraic number a |

NumberFieldNormRepresentatives[a,m] | |

give a list of representatives of classes of algebraic integers of norm ±m in the field generated by the algebraic number a | |

NumberFieldSignature[a] | give the signature of the field generated by the algebraic number a |

NumberFieldDiscriminant[a] | give the discriminant of the field generated by the algebraic number a |

NumberFieldRegulator[a] | give the regulator of the field generated by the algebraic number a |

NumberFieldClassNumber[a] | give the class number of a number field generated by an algebraic number a |

Functions of computing properties of algebraic number fields.

An integral basis of an algebraic number field is a list of algebraic numbers forming a basis of the ‐module of the algebraic integers of . The set is an integral basis of an algebraic number field if and only if are algebraic integers, and every algebraic integer can be uniquely represented as

^{2}+#1

^{3}&:

^{2}+#

^{4}&,4]:

is a list of fundamental units of an algebraic number field if and only if are algebraic units, and every algebraic unit can be uniquely represented as

with a root of unity and integer exponents .

^{2}-7&:

^{5}+#

^{4}+#

^{3}+#

^{2}+1& has 1 real root and 2 conjugate pairs of complex roots:

The discriminant of a number field is the discriminant of an integral basis of (i.e. the determinant of the matrix with elements AlgebraicNumberTrace[a_{i} a_{j},Extension->Automatic]). The value of the determinant does not depend on the choice of integral basis.

^{5}+#

^{4}+#

^{3}+#

^{2}+1&. The value of the discriminant does not depend on the choice of the root; hence, NumberFieldDiscriminant allows specifying just the polynomial:

The regulator of a number field is the lattice volume of the image of the group of units of under the logarithmic embedding

where , …, are the real embeddings of in , and , …, are one of each conjugate pair of the complex embeddings of in .

^{3}-3 #1

^{2}+1&. The value of the regulator does not depend on the choice of the root; hence, NumberFieldRegulator allows specifying just the polynomial: