Ask Your Question

Revision history [back]

This is a long comment rather than an answer.

It provides some code to define the objects in the question, in the hope it can help answer it.

Galois subgroups and their fixed fields

Starting with Sage 9.4.beta1, in which the following ticket was merged:

one can get subgroups of the Galois group of a number field, and the associated fixed fields.

Define a cyclotomic field:

sage: K.<z> = CyclotomicField(5)

Get its Galois group:

sage: G = K.galois_group()
sage: G
Galois group 4T1 (4) with order 4 of x^4 + x^3 + x^2 + x + 1

Get that group's subgroups:

sage: G.subgroups()
[Subgroup generated by [()] of
   (Galois group 4T1 (4) with order 4 of x^4 + x^3 + x^2 + x + 1),
 Subgroup generated by [(1,3)(2,4)] of
   (Galois group 4T1 (4) with order 4 of x^4 + x^3 + x^2 + x + 1),
 Subgroup generated by [(1,2,3,4), (1,3)(2,4)] of
   (Galois group 4T1 (4) with order 4 of x^4 + x^3 + x^2 + x + 1)]

Get the associated fixed fields:

sage: H, I, J = G.subgroups()
sage: H.fixed_field()
(Cyclotomic Field of order 5 and degree 4,
 Identity endomorphism of Cyclotomic Field of order 5 and degree 4)
sage: I.fixed_field()
(Number Field in z0 with defining polynomial x^2 - x - 1 with z0 = -0.618033988749895?,
 Ring morphism:
   From: Number Field in z0 with defining polynomial x^2 - x - 1 with z0 = -0.618033988749895?
   To:   Cyclotomic Field of order 5 and degree 4
   Defn: z0 |--> z^3 + z^2 + 1)
sage: J.fixed_field()
(Rational Field,
 Coercion map:
   From: Rational Field
   To:   Cyclotomic Field of order 5 and degree 4)

The action of Galois group elements on field elements is as follows:

sage: G.gens()
[(1,2,3,4)]
sage: g = G.gen()
sage: g
(1,2,3,4)
sage: g.order()
4

sage: g(z)
z^2
sage: g(z^2)
-z^3 - z^2 - z - 1
sage: (g^2)(z)
-z^3 - z^2 - z - 1

Multiplicative subgroups of cyclic rings

Now let us consider the the cyclic ring on 5 elements:

sage: C = Zmod(5)
sage: C
Ring of integers modulo 5

There are two ways to get the subgroups of its group of units.

The method multiplicative_subgroups gives tuples of generators for these subgroups.

sage: C.multiplicative_subgroups()
((2,), (4,), ())

The other way is to construct the ring's unit group and get its subgroups.

sage: U = C.unit_group()
sage: U.subgroups()
[Multiplicative Abelian subgroup isomorphic to C4 generated by {f},
 Multiplicative Abelian subgroup isomorphic to C2 generated by {f^2},
 Trivial Abelian subgroup]

There was recently a discussion about working with these subgroups at:

Putting the pieces together

Hopefully someone sees how to put these pieces together to answer the question satisfactorily!