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].
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.
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.
Subfields of number fields can also be retrieved in the form of a lattice from which additional information can be discovered.
SetVerbose("Subfields", n): Maximum: 4
The lattice of subfields of an absolute number field K.
The number of fields in the lattice L.
The bottom element of the subfield lattice L (this corresponds to Q).
The top element of the subfield lattice L (this corresponds to the original number field).
The n-th element of the subfield lattice L.
The number field corresponding to the given subfield lattice element e.
The mapping from NumberField(e) into the top number field of the subfield lattice.
The (absolute) degree of the number field corresponding to the subfield lattice element e.
True if and only if the subfield lattice elements e and f are equal.
True f and only if e is a subfield of f.
The smallest field containing both e and f.
The intersection of e and f. This is the largest field common to both of them.
The intersection of the subfields in the sequence S.
The sequence of maximal subfield lattice elements contained in e.
The sequence of minimal subfield lattice elements containing e.
> 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 + 1Observe 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); trueIn 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