Function Repository Resource:

StauduharGaloisGroup

Source Notebook

Use Stauduhar's method for Galois groups of polynomials

Contributed by: Tessa Wildsmith (additional contributions by Wolfram Staff)

ResourceFunction["StauduharGaloisGroup"][poly,var]

uses Stauduhar's method to find the Galois group for a polynomial poly in the variable var.

ResourceFunction["StauduharGaloisGroup"][poly,var,σ,tol]

find the Galois group with ordering of the roots σ with precision tol.

Details

This is restricted to polynomials with integer coefficients and of degree no larger than 10.
Stauduhar's method is an algorithm to find the Galois group of any monic irreducible integer polynomial.
For third-degree polynomial, the result includes:
"Sigma"the ordering of the roots
"Tolerance"high precision approximation
"Roots"the roots of the polynomial
"Discriminant"the discriminant
"SquareRootDiscriminant"the square root of the discriminant
"GaloisGroup"the Galois group
Additional information is provided for higher degrees.
Degree 4:
"Right cosets of Dh4 in S4"function for DihedralGroup[4]
"Right cosets of Z4 in Dh4"original function for CyclicGroup[4]
"Trimmed function for Z4"trimmed function for CyclicGroup[4]
Degree 5:
"RightCosetsF"right cosets of F
"Original function for F20"original function for permutation group F20
"Trimmed function for F20"trimmed function for permutation group F20
"Original function for Z5"original function for CyclicGroup[5]
"Trimmed function for Z5"trimmed function for CyclicGroup[5]
Degree 6:
"RightCosetsDh"right cosets of DihedralGroup[6]
"RightCosetsS"right cosets of SymmetricGroup[6]
"RightCosetsZ"right cosets of CyclicGroup[6]
"RightCosetsG1"right cosets for permutation group G1
"RightCosetsG2"right cosets for permutation group G2
"RightCosetsG"right cosets for permutation group G
Degree 7:
"RightCosetsDh"right cosets of DihedralGroup[7]
"RightCosetsG"right cosets for permutation group G
"RightCosetsZ"right cosets of CyclicGroup[7]
Stauduhar's method starts with an initial ordering σ for the roots of a polynomial. The method is reliant upon high-precision approximations of the roots for each given polynomial. The method uses invariant functions; in order to isolate the Galois group, high-precision results are required to correctly identify integer results. If it yields no integer results, then the search is continued by testing conjugate values on a transitive subgroup decision tree. The routines hinged upon defining all of the transitive subgroups of S8, S9 and S10.

Examples

Basic Examples (8) 

Third-degree polynomial:

In[1]:=
ResourceFunction["StauduharGaloisGroup"][x^3 - 3 x - 1, x]
Out[1]=

Show only the roots:

In[2]:=
ResourceFunction["StauduharGaloisGroup"][x^3 - x - 17, x, "Roots"]
Out[2]=

Fourth-degree polynomial:

In[3]:=
ResourceFunction["StauduharGaloisGroup"][x^4 + 7 x \[Minus] 7, x]
Out[3]=

Fifth-degree polynomial:

In[4]:=
ResourceFunction["StauduharGaloisGroup"][x^5 \[Minus] 4 x + 2, x]
Out[4]=

Sixth-degree polynomial:

In[5]:=
ResourceFunction["StauduharGaloisGroup"][
 x^6 \[Minus] x^5 + x^4 \[Minus] x^3 \[Minus] 4 x^2 + 5, x]
Out[5]=

Seventh-degree polynomial:

In[6]:=
ResourceFunction["StauduharGaloisGroup"][x^7 + x + 1, x] // Timing
Out[6]=

Eighth-degree polynomial:

In[7]:=
ResourceFunction["StauduharGaloisGroup"][x^8 + x^2 + 1, x] // Timing
Out[7]=

Ninth-degree polynomial:

In[8]:=
ResourceFunction["StauduharGaloisGroup"][
 x^9 + x^8 + 5 x^6 + 3 x^4 + 5 x^2 + 4, x]
Out[8]=

Tenth-degree polynomial:

In[9]:=
ResourceFunction["StauduharGaloisGroup"][
 x^10 + 174 x^8 + 166 x^6 + 193 x^4 + 199 x^2 \[Minus] 189, x]
Out[9]=

Possible Issues (1) 

Stauduhar method works only for polynomials with integer coefficients:

Out[10]=

Publisher

Enrique Zeleny

Version History

  • 1.0.0 – 08 November 2021

Source Metadata

Related Resources

License Information