Galois groups of field extensions as permutation groups

class sage.groups.galois_group_perm.GaloisGroup_perm(field, algorithm=None, names=None, gc_numbering=False)[source]

Bases: _GaloisMixin, PermutationGroup_generic

The group of automorphisms of a Galois closure of a given field.

INPUT:

  • field – a field, separable over its base

  • names – string or tuple of length 1, giving a variable name for the splitting field

  • gc_numbering – boolean, whether to express permutations in terms of the roots of the defining polynomial of the splitting field (versus the defining polynomial of the original extension); the default value may vary based on the type of field

Subgroup[source]

alias of GaloisSubgroup_perm

ngens()[source]

Return the number of generators of this Galois group.

EXAMPLES:

sage: QuadraticField(-23, 'a').galois_group().ngens()                       # needs sage.rings.number_field
1
>>> from sage.all import *
>>> QuadraticField(-Integer(23), 'a').galois_group().ngens()                       # needs sage.rings.number_field
1
QuadraticField(-23, 'a').galois_group().ngens()                       # needs sage.rings.number_field
transitive_number(algorithm=None, recompute=False)[source]

Return the transitive number (as in the GAP and Magma databases of transitive groups) for the action on the roots of the defining polynomial of the top field.

EXAMPLES:

sage: R.<x> = ZZ[]
sage: K.<a> = NumberField(x^3 + 2*x + 2)                                    # needs sage.rings.number_field
sage: G = K.galois_group()                                                  # needs sage.rings.number_field
sage: G.transitive_number()                                                 # needs sage.rings.number_field
2
>>> from sage.all import *
>>> R = ZZ['x']; (x,) = R._first_ngens(1)
>>> K = NumberField(x**Integer(3) + Integer(2)*x + Integer(2), names=('a',)); (a,) = K._first_ngens(1)# needs sage.rings.number_field
>>> G = K.galois_group()                                                  # needs sage.rings.number_field
>>> G.transitive_number()                                                 # needs sage.rings.number_field
2
R.<x> = ZZ[]
K.<a> = NumberField(x^3 + 2*x + 2)                                    # needs sage.rings.number_field
G = K.galois_group()                                                  # needs sage.rings.number_field
G.transitive_number()                                                 # needs sage.rings.number_field
class sage.groups.galois_group_perm.GaloisSubgroup_perm(ambient, gens=None, gap_group=None, domain=None, category=None, canonicalize=True, check=True)[source]

Bases: PermutationGroup_subgroup, _SubGaloisMixin

Subgroups of Galois groups (implemented as permutation groups), specified by giving a list of generators.

Unlike ambient Galois groups, where we use a lazy _gens attribute in order to enable creation without determining a list of generators, we require that generators for a subgroup be specified during initialization, as specified in the __init__ method of permutation subgroups.