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

Subfields

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

Since this computations are independent of the computation of the Galois groups, there is no limit on the degrees of the field.

The algorithm used is Klüner's method as presented in [Klü95], [Klü97], [KP97], [Klü98].

Subsections
Subfields(K, n) : FldAlg -> [ < FldAlg, Hom > ]
    SetVerbose("Subfields", n):         Maximum: 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 > ]
    SetVerbose("Subfields", n):         Maximum: 4
Given a simple absolute algebraic field or s simple relative extension K, this function returns a sequence of pairs (2-tuples) containing the subfields of K (except Q) together with the embedding homomorphisms of each subfield into K. It is possible that the sequence contains isomorphic fields.

The Subfield Lattice

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

Representative(L) : SubFldLat -> SubFldLatElt
Rep(L) : SubFldLat -> SubFldLatElt
SubfieldLattice(K) : FldNum -> SubFldLat
    SetVerbose("Subfields", n):         Maximum: 4
The lattice of subfields of an absolute number field K.
# L : SubFldLat -> RngIntElt
The number of fields in the lattice L.
Bottom(L) : SubFldLat -> SubFldLatElt
The bottom element of the subfield lattice L (this corresponds to Q).
Top(L) : SubFldLat -> SubFldLatElt
The top element of the subfield lattice L (this corresponds to the original number field).
Random(L) : SubFldLat -> SubFldLatElt
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
True if and only if the subfield lattice elements e and f are equal.
e subset f : SubFldLatElt, SubFldLatElt -> BoolElt
True f 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 RngOrd_SubfieldLattice (H53E23)

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

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