|
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 [Klü95], [Klü97], [KP97], [Klü98] and the newer method of Klüners,
van Hoeij and Novocin [vHKN11].
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 > ]
Al: MonStgElt Default: "Default"
Current: BoolElt Default: false
Proof: RngIntElt Default: 1
SetVerbose("Subfields", n): Maximum: 4
Given an algebraic field
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.
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 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.
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
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).
A random element of the subfield lattice L.
L[n] : SubFldLat, RngIntElt -> SubFldLatElt
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.
Returns true if and only if the subfield lattice elements e and f are equal.
Returns true if 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.
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]
|