Subfields

This section contains functions for the computation of all subfields of any number field or all subfields of a given degree of a simple absolute algebraic field or a simple relative extension.

These computations are independent of the computation of the Galois groups, but similarly there is no limit on the degrees of the field.

The algorithms used are Klüner’s method as presented in [Klu95, Klu97, Klu98, KP97] and the newer method of Klüners, van Hoeij, and Novocin [vHKN11].

Subfields(K, n): FldAlg, RngIntElt -> [ < FldAlg, Hom > ]
Subfields: Verbose                    Default: 4

Given a simple absolute algebraic field or a simple relative extension \(K\) and an integer \(n\) greater than \(1\), this function returns a sequence of pairs (2-tuples) containing the subfields of \(K\) of degree \(n\) together with the embedding homomorphisms of each subfield into \(K\). It is possible that the sequence contains isomorphic fields, but the embeddings will be distinct in such a situation.

Subfields(K): FldAlg -> [ < FldAlg, Hom > ]
Al       : MonStgElt                    Default: "Default"
Current  : BoolElt                      Default: false
Proof    : RngIntElt                    Default: 1
Subfields: Verbose                      Default: 4

Given an algebraic field \(K\), this function returns a sequence of pairs (2-tuples) containing the subfields of \(K\) (except \({\mathbb{Q}}\)) together with the embedding homomorphisms of each subfield into \(K\). It is possible that the sequence contains isomorphic fields.

For fields \(K\) which are extensions of an algebraic number field the more recent algorithm developed by Klüners and van Hoeij [vHKN11] is used. For fields \(K\) which are extensions of \({\mathbb{Q}}\), this algorithm can be selected by setting the parameter Al to "KluenersvanHoeij" or may be chosen by "Default" as the optimal algorithm. By default, the "Klueners" algorithm is chosen if the defining polynomial of \(K\) factors into large degree factors (with respect to the degree of \(K\)) over the residue field of some prime or the coefficients of the defining polynomial are large, otherwise "KluenersvanHoeij" is used which is optimal when the defining polynomial only has small degree factors (with respect to the degree of \(K\)) over the residue fields of some number of primes, that is, \(K\) has a large number of subfields.

The Subfield Lattice

Subfields of number fields can also be retrieved in the form of a lattice from which additional information can be discovered.

SubfieldLattice(K): FldNum -> SubFldLat
Subfields: Verbose                    Default: 4

The lattice of subfields of an absolute number field \(K\).

# L: SubFldLat -> RngIntElt

The number of fields in the lattice \(L\).

Representative(L): SubFldLat -> SubFldLatElt
Rep(L): SubFldLat -> SubFldLatElt
Bottom(L): SubFldLat -> SubFldLatElt

The bottom element of the subfield lattice \(L\) (this corresponds to \({\mathbb{Q}}\)).

Top(L): SubFldLat -> SubFldLatElt

The top element of the subfield lattice \(L\) (this corresponds to the original number field).

Random(L): SubFldLat -> SubFldLatElt

A random element of the subfield lattice \(L\).

L ! n: SubFldLat, RngIntElt -> SubFldLatElt
L[n]: SubFldLat, RngIntElt -> SubFldLatElt

The \(n\)-th element of the subfield lattice \(L\).

NumberField(e): SubFldLatElt -> FldNum

The number field corresponding to the given subfield lattice element \(e\).

EmbeddingMap(e): SubFldLatElt -> Map

The mapping from NumberField(e) into the top number field of the subfield lattice.

Degree(e): SubFldLatElt -> RngIntElt

The (absolute) degree of the number field corresponding to the subfield lattice element \(e\).

e eq f: SubFldLatElt, SubFldLatElt -> BoolElt

Returns true if and only if the subfield lattice elements \(e\) and \(f\) are equal.

e subset f: SubFldLatElt, SubFldLatElt -> BoolElt

Returns true if and only if \(e\) is a subfield of \(f\).

e * f: SubFldLatElt, SubFldLatElt -> SubFldLatElt

The smallest field containing both \(e\) and \(f\).

e meet f: SubFldLatElt, SubFldLatElt -> SubFldLatElt

The intersection of \(e\) and \(f\). This is the largest field common to both of them.

&meet S: [ SubFldLatElt ] -> SubFldLatElt

The intersection of the subfields in the sequence \(S\).

MaximalSubfields(e): SubFldLatElt -> [ SubFldLatElt ]

The sequence of maximal subfield lattice elements contained in \(e\).

MinimalOverfields(e): SubFldLatElt -> [ SubFldLatElt ]

The sequence of minimal subfield lattice elements containing \(e\).

Example: Subfield Lattice of an Octic Field (ex-c7abdb)

Run in calculator (opens in a new tab)

A subfield lattice is shown.

> Zx<x> := PolynomialRing(Integers());
> K<a> := NumberField(x^8 - x^4 + 1);
> L := SubfieldLattice(K);
> L;
Subfield Lattice of K
[1] Rational Field
[2] Subfield generated by a root of x^2 - 4*x + 1
[3] Subfield generated by a root of x^2 - 26*x + 241
[4] Subfield generated by a root of x^2 - 10*x + 241
[5] Subfield generated by a root of x^2 + 1
[6] Subfield generated by a root of x^2 - 10*x + 1
[7] Subfield generated by a root of x^2 - 6*x + 1
[8] Subfield generated by a root of x^2 + x + 1
[9] Subfield generated by a root of x^4 + 4*x^2 + 1
[10] Subfield generated by a root of x^4 - x^2 + 1
[11] Subfield generated by a root of x^4 - 8*x^3 + 20*x^2 - 16*x + 1
[12] Subfield generated by a root of x^4 - 4*x^3 + 8*x^2 - 4*x + 1
[13] Subfield generated by a root of x^4 - 6*x^3 + 13*x^2 - 6*x + 1
[14] Subfield generated by a root of x^4 - 4*x^3 + 8*x^2 + 4*x + 1
[15] Subfield generated by a root of x^4 - 2*x^3 + 5*x^2 + 2*x + 1
[16] Subfield generated by a root of x^8 - x^4 + 1

Observe that subfields 2, 5, and 8 give the square roots of \(2\), \(-1\), and \(3\), respectively. Since these are incommensurate radicals the field generated by them has degree \(8\) and so must be isomorphic to \(K\).

> K2 := AbsoluteField( NumberField([ x^2 + 1, x^2 - 2, x^2 - 3 ]));
> K2;
Number Field with defining polynomial x^8 - 16*x^6 + 88*x^4 + 192*x^2 + 144
over the Rational Field
> IsIsomorphic(K2, K);
true

In fact, K is just a “better” version of K2.

> OptimizedRepresentation(K2);
Number Field with defining polynomial x^8 - x^4 + 1 over the Rational Field
Mapping from: FldNum: K2 to Number Field with defining polynomial x^8 - x^4 + 1
over the Rational Field

Run in calculator (opens in a new tab)