Dear Sage-support,
I'd like to use
cloud.sagemath.com to compute the subfields F of the Hilbert class field of QQ(sqrt(-39)), which is a Galois extension of QQ with Galois group D_8. For number fields defined by a single polynomial it seems (from the documentation
here) we can say
L.<a> = NumberField(x^4+1)
G = L.galois_group()
H = G.decomposition_group(L.primes_above(3)[0])
F = H.fixed_field()[0]
to produce a number field F associated to the subgroup H of G. This works well, but how can I run over all subgroups of G? The desired command
G.subgroups()
we would like seems to require that G is a PermuatationGroup(), but G has type
<class 'sage.rings.number_field.galois_group.GaloisGroup_v2_with_category'>
Question 1: How can we coerce between these types of groups to be able to enumerate subgroups?
If one tries to use the hilbert_class_field() command then one gets a relative extension
K = NumberField(x^2+39,'a')
K.class_group()
Class group of order 4 with structure C4 of Number Field in a with defining polynomial x^2 + 39
H = K.hilbert_class_field('b'); H
Number Field in b with defining polynomial x^4 + 2*x^3 + 2*x^2 + x + 1 over its base field
but the type of the Galois group one gets from this construction is not as nice
G = H.galois_group()
type(G)
<class 'sage.rings.number_field.galois_group.GaloisGroup_v1'>
and in particular this Galois group type does not support decomposition groups. A similar thing happens when one considers a tower of fields
k.<a,b,c> = NumberField([x^2 + 1, x^2 + 3, x^2 + 5])
GG = k.galois_group()
type(GG)
<class 'sage.rings.number_field.galois_group.GaloisGroup_v1>
This leads to...
Question 2: (How) Can we access the more robust Galois group type for absolute number fields made as a tower of fields?
Any comments are appreciated. Thanks a lot!
-Jon
=)