Homepage › Solution manuals › David A. Cox › Galois Theory › Exercise 13.4.11
Exercise 13.4.11
This exercise will explore the ideas introduced in Example 13.4.8.
- (a)
- For each transitive subgroup of , make a table similar to (13.46) that lists the number of elements of each possible cycle type for that subgroup.
- (b)
- For each polynomial in Exercise 14 of Section 13.1, compute its factorization modulo 200 primes, and record your results in a table similar to (13.45). Use this to guess the Galois group of each polynomial.
Answers
Proof.
- (a)
-
There are five transitive subgroups of
-
. The following Sage instructions produce the similar to (13.46) table with the percentage of elements of each possible cycle for each subgroup:
S4 = SymmetricGroup(4) A4 = AlternatingGroup(4) C2C2 = PermutationGroup(["(1,3)(2,4)","(1,2)(3,4)"]) C4 = CyclicPermutationGroup(4) D8 = DihedralGroup(4) G =[S4,A4,C2C2,C4,D8] for j in range(5): V =[g.cycle_type() for g in G[j]] K=[0,0,0,0,0] for i in range(len(V)): if V[i]==[1,1,1,1] : K[0]=K[i]+1 elif V[i]==[2,1,1] : K[1]=K[1]+1 elif V[i]==[3,1] : K[2]=K[2]+1 elif V[i]==[2,2] : K[3]=K[3]+1 elif V[i]==[4] : K[4]=K[4]+1 else : print("Error") Sm=sum(K) if j==0 : row = matrix([round(K[0]/Sm*100.0,1), round(K[1]/Sm*100.0,1) ,round(K[2]/Sm*100.0,1)*1,round(K[3]/Sm*100.0,1) ,round(K[4]/Sm*100.0,1)]) else : U = [round(K[0]/Sm*100.0,1), round(K[1]/Sm*100.0,1) ,round(K[2]/Sm*100.0,1)*1,round(K[3]/Sm*100.0,1) ,round(K[4]/Sm*100.0,1)]] row = matrix(row.rows()+[U]) C=[["1,1,1,1","1,1,2","1,3","2,2","4"]]+[list(row) for row in row] A = ["cycle type","S_4","A_4","C_2xC_2","C_4","D_8"] C = [[a] + u for a, u in zip(A, C)] (table(C, header_row=True, frame=True))cycle type 1,1,1,1 1,1,2 1,3 2,2 4 - (b)
-
The following Sage instructions produce the similar to (13.45) table. The percentage of primes corresponding to each possible cycle for 200 primes
is calculated for each polynomial in Exercise 13.1.14 and the polynomial from Example 13.4.8:
R.<X> = PolynomialRing(ZZ) P = Primes() f=[X^4 - 7*X^3 + 19*X^2 - 23*X + 11,X^4 + 4*X + 2,X^4 + 8*X + 12 ,X^4 + 1,X^4 + X^3 + X^2 + X + 1,X^4 - 2] for r in range(6): K=[0,0,0,0,0] for i in range(2,203): R11.<x> = PolynomialRing(GF(P.unrank(i))) S=[0,0,0,0] for j in range(len(R11(f[r]).factor())): d=R11(f[r]).factor()[j][0].degree() m=R11(f[r]).factor()[j][1] S[d-1]=S[d-1]+m if S[0]==4: K[0]=K[0]+1 elif S[0]==2 and S[1]==1: K[1]=K[1]+1 elif S[0]==1 and S[2]==1: K[2]=K[2]+1 elif S[1]==2 : K[3]=K[3]+1 elif S[3]==1 : K[4]=K[4]+1 else : print("Error") Sm=sum(K) if r==0 : row = matrix([round(K[0]/Sm*100.0,1), round(K[1]/Sm*100.0,1) ,round(K[2]/Sm*100.0,1)*1,round(K[3]/Sm*100.0,1) ,round(K[4]/Sm*100.0,1)]) else : U = [round(K[0]/Sm*100.0,1), round(K[1]/Sm*100.0,1) ,round(K[2]/Sm*100.0,1)*1,round(K[3]/Sm*100.0,1) ,round(K[4]/Sm*100.0,1)] row = matrix(row.rows()+[U]) C=[["1,1,1,1","1,1,2","1,3","2,2","4"]]+[list(row) for row in row] A = ["cycle type"]+f C = [[a] + u for a, u in zip(A, C)] B = ["Galois group","C_4","S_4","A_4","C_2xC_2","C_4","D_8"] C = [a + [u] for a, u in zip(C, B)] (table(C, header_row=True, frame=True))cycle type 1,1,1,1 1,1,2 1,3 2,2 4 Galois group
The last column provides the guess about the Galois group of each polynomial. The comparison with Exercise 14 of Section 13.1 and Example 13.4.8 results supports the Chebotarev Density Theorem.
2022-07-19 00:00