Galois groups of field extensions.¶
We do not necessarily require extensions to be normal, but we do require them to be separable.
When an extension is not normal, the Galois group refers to the automorphism group of the normal closure.
AUTHORS:
David Roe (2019): initial version
- class sage.groups.galois_group._GaloisMixin[source]¶
This class provides methods for Galois groups, allowing concrete instances to inherit from both permutation group and abelian group classes.
- class sage.groups.galois_group._SubGaloisMixin[source]¶
This class provides methods for subgroups of Galois groups, allowing concrete instances to inherit from both permutation group and abelian group classes.
- class sage.groups.galois_group.GaloisGroup_ab(field, generator_orders, algorithm=None, gen_names='sigma')[source]¶
Bases:
_GaloisMixin,AbelianGroup_classAbelian Galois groups
- Subgroup[source]¶
alias of
GaloisSubgroup_ab
- is_galois()[source]¶
Abelian extensions are Galois.
For compatibility with Galois groups of number fields.
EXAMPLES:
sage: GF(9).galois_group().is_galois() # needs sage.rings.finite_rings True
>>> from sage.all import * >>> GF(Integer(9)).galois_group().is_galois() # needs sage.rings.finite_rings True
GF(9).galois_group().is_galois() # needs sage.rings.finite_rings
- permutation_group()[source]¶
Return a permutation group giving the action on the roots of a defining polynomial.
This is the regular representation for the abelian group, which is not necessarily the smallest degree permutation representation.
EXAMPLES:
sage: GF(3^10).galois_group().permutation_group() # needs sage.libs.gap sage.rings.finite_rings Permutation Group with generators [(1,2,3,4,5,6,7,8,9,10)]
>>> from sage.all import * >>> GF(Integer(3)**Integer(10)).galois_group().permutation_group() # needs sage.libs.gap sage.rings.finite_rings Permutation Group with generators [(1,2,3,4,5,6,7,8,9,10)]
GF(3^10).galois_group().permutation_group() # needs sage.libs.gap sage.rings.finite_rings
- transitive_number(algorithm=None, recompute=False)[source]¶
Return the transitive number for the action on the roots of the defining polynomial.
For abelian groups, there is only one transitive action up to isomorphism (left multiplication of the group on itself), so we identify that action.
EXAMPLES:
sage: from sage.groups.galois_group import GaloisGroup_ab sage: Gtest = GaloisGroup_ab(field=None, generator_orders=(2,2,4)) sage: Gtest.transitive_number() # needs sage.libs.gap 2
>>> from sage.all import * >>> from sage.groups.galois_group import GaloisGroup_ab >>> Gtest = GaloisGroup_ab(field=None, generator_orders=(Integer(2),Integer(2),Integer(4))) >>> Gtest.transitive_number() # needs sage.libs.gap 2
from sage.groups.galois_group import GaloisGroup_ab Gtest = GaloisGroup_ab(field=None, generator_orders=(2,2,4)) Gtest.transitive_number() # needs sage.libs.gap
- class sage.groups.galois_group.GaloisGroup_cyc(field, generator_orders, algorithm=None, gen_names='sigma')[source]¶
Bases:
GaloisGroup_abCyclic Galois groups
- signature()[source]¶
Return 1 if contained in the alternating group, -1 otherwise.
EXAMPLES:
sage: GF(3^2).galois_group().signature() # needs sage.rings.finite_rings -1 sage: GF(3^3).galois_group().signature() # needs sage.rings.finite_rings 1
>>> from sage.all import * >>> GF(Integer(3)**Integer(2)).galois_group().signature() # needs sage.rings.finite_rings -1 >>> GF(Integer(3)**Integer(3)).galois_group().signature() # needs sage.rings.finite_rings 1
GF(3^2).galois_group().signature() # needs sage.rings.finite_rings GF(3^3).galois_group().signature() # needs sage.rings.finite_rings
- transitive_number(algorithm=None, recompute=False)[source]¶
Return the transitive number for the action on the roots of the defining polynomial.
EXAMPLES:
sage: GF(2^8).galois_group().transitive_number() # needs sage.rings.finite_rings 1 sage: GF(3^32).galois_group().transitive_number() # needs sage.rings.finite_rings 33 sage: GF(2^60).galois_group().transitive_number() # needs sage.rings.finite_rings Traceback (most recent call last): ... NotImplementedError: transitive database only computed up to degree 47
>>> from sage.all import * >>> GF(Integer(2)**Integer(8)).galois_group().transitive_number() # needs sage.rings.finite_rings 1 >>> GF(Integer(3)**Integer(32)).galois_group().transitive_number() # needs sage.rings.finite_rings 33 >>> GF(Integer(2)**Integer(60)).galois_group().transitive_number() # needs sage.rings.finite_rings Traceback (most recent call last): ... NotImplementedError: transitive database only computed up to degree 47
GF(2^8).galois_group().transitive_number() # needs sage.rings.finite_rings GF(3^32).galois_group().transitive_number() # needs sage.rings.finite_rings GF(2^60).galois_group().transitive_number() # needs sage.rings.finite_rings
- class sage.groups.galois_group.GaloisSubgroup_ab(ambient, gens, names='f', category=None)[source]¶
Bases:
AbelianGroup_subgroup,_SubGaloisMixinSubgroups of abelian Galois groups.