Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupport News AboutSign UpSign In
| Download
Views: 457
Kernel: GAP Native [broken]

Math 157 Final Project Presentation

Permutaion Group

Basic Background

A permutation group is a finite group G whose elements are permutations of a given finite set X and whose group operation is the composition of permutations. The number of elements of X is called the degree of G.

In Sage, a permutation is represented as either a string that defines a permutation using disjoint cycle notation, or a list of tuples, which represent disjoint cycles.

G = PermutationGroup([[(1,2,3),(4,5)],[(3,4)]]) G
Permutation Group with generators [(3,4), (1,2,3)(4,5)]
G1 = PermutationGroup(['(1,2,3)(4,5)','(3,4)']) G1
Permutation Group with generators [(3,4), (1,2,3)(4,5)]
G.list()#list of all permutation group
G.cardinality()#Return the number of elements of this group
720
factorial(5) #ways to arrange 5 objects
120

Element

The easiest way to work with permutation group elements in Sage is to write them in cycle notation. Since these are products of disjoint cycles (which commute), we do not need to concern ourselves with the actual order of the cycles.

we have to use a string of characters written with cycle notation into a symmetric group to make group elements.

There are alternate ways to create permutation group elements.

G = SymmetricGroup(5) sigma1 = G("(1,3)(2,5,4)") sigma2 = G([(1,3),(2,5,4)]) # a list of “tuples” sigma3 = G([3,5,1,2,4]) #uses the “bottom-row” of the more cumbersome two-row notation
sigma1
(1,3)(2,5,4)
sigma2
(1,3)(2,5,4)
sigma3
(1,3)(2,5,4)
sigma1 ==sigma2 == sigma3
True

once we get Sage started, it can promote the product of elements τσ into the larger permutation group, which means we can “promote” elements into larger permutation groups

H = SymmetricGroup(4) h1 = H("(1,2,3,4)") G = SymmetricGroup(6) h2 = G("(1,2,3,4,5,6)") h3 = h1 * h2 h3
(1,3,5,6)(2,4)
h1.parent()#4!permutation
Symmetric group of order 4! as a permutation group
h4 = G(h1) #promote H的element into group G h4.parent() #it can form a larger permutaton group
Symmetric group of order 6! as a permutation group
G = PermutationGroup([[(1,2,3),(4,5)],[(3,4)]]) g = G.gens()[1]; g # one of the permutation's generator
(1,2,3)(4,5)
g*g # g Group element permutate itself to get a new permutation.
(1,3,2)
g**(-1) # inverse of g, g time its inverse is identity
(1,3,2)(4,5)
g.inverse() #another way
(1,3,2)(4,5)
g.order() # time needed for permutation to get its identity by permutate itself.
6
g^6 #identity permutation
()
from sage.groups.perm_gps.permgroup_element import string_to_tuples print (string_to_tuples('(1,2,3)')) print (string_to_tuples('(1,2,3)(4)'))# switch between string form and tuples, A tuple of length one must be written like (4,) to distinguish it from using parentheses for grouping
[(1, 2, 3)] [(1, 2, 3), (4,)]

Properties of Permutation Elements

it is easier to grab an element out of a list of elements of a permutation group, and then it is already attached to a parent and there is no need for any coercion.

when multiply permutations, the movement is from left-to-right, which is our chosen convention for composing two permutation, so it is not ok to switch the order

D = DihedralGroup(5) #Symmetries of an n-gon, 2n elements. elements = D.list() elements
a = elements[3] b = elements[1] a*b ==b*a
False

the group of symmetries of a pentagon is not abelian, and here are some selected examples of various methods available.

D.is_abelian()
False
D.order() D.is_finite()
True
D.is_cyclic()
False

A very useful method when studying the alternating group is the permutation group element method .sign( ).

It will return 1 if a permutation is even and -1 if a permutation is odd.

G = SymmetricGroup(3) sigma1 = G("(1,2)") sigma2 = G("(1,3)") sigma3 = sigma1*sigma2 g = Permutation(sigma1) print (sigma1.sign()) print (sigma3.sign())
-1 1

Matrix

Returns deg x deg permutation matrix associated to the permutation self.

Here is an example of how to use matrices in SageMath to display a permutation in array form. We can use the matrix( ) command, where the syntax is matrix

[ (list for row 1) , (list for row 2) ]

a=Permutation([2,1,3]) matrix([[1,2,3],[a(i) for i in [1,2,3]]])#return input in row 1 and output in row2
[1 2 3] [2 1 3]
G = PermutationGroup(['(1,2,3)(4,5)']) g = G.gen(0) g.matrix()
[0 1 0 0 0] [0 0 1 0 0] [1 0 0 0 0] [0 0 0 0 1] [0 0 0 1 0]

Conjugacy Class

Let G be a group. Two elements a and b of G are conjugate, if there exists an element g in G such that gag−1 = b. One says also that b is a conjugate of a and that a is a conjugate of b.

For example:

The symmetric group S3, consisting of all 6 permutations of three elements, has three conjugacy classes:

no change (abc → abc)

transposing two (abc → acb, abc → bac, abc → cba)

a cyclic permutation of all three (abc → bca, abc → cab)

G = SymmetricGroup(4) g = G.gen(0) G.conjugacy_class(g) #Return the conjugacy class of g inside the group self.
Conjugacy class of cycle type [4] in Symmetric group of order 4! as a permutation group
cg = G.conjugacy_classes() cg#Return a list with all the conjugacy classes of G.,The symmetric group S4, consisting of all 24 permutations of four elements, has five conjugacy classes
[Conjugacy class of cycle type [1, 1, 1, 1] in Symmetric group of order 4! as a permutation group, Conjugacy class of cycle type [2, 1, 1] in Symmetric group of order 4! as a permutation group, Conjugacy class of cycle type [2, 2] in Symmetric group of order 4! as a permutation group, Conjugacy class of cycle type [3, 1] in Symmetric group of order 4! as a permutation group, Conjugacy class of cycle type [4] in Symmetric group of order 4! as a permutation group]
gamma = cg[2] gamma # find cg for a sepecific one
Conjugacy class of cycle type [2, 2] in Symmetric group of order 4! as a permutation group
cl = G.conjugacy_classes_representatives() cl #Returns a complete list of representatives of conjugacy classes in a permutation group G.
[(), (1,2), (1,2)(3,4), (1,2,3), (1,2,3,4)]
cl2 = G.conjugacy_classes_subgroups() cl2 #Returns a complete list of representatives of conjugacy classes of subgroups in a permutation group G. The ordering is that given by GAP.

Exercise

  1. Prove Conjugation is a group automorphism, so conjugate groups will be isomorphic

Solution

G = SymmetricGroup(6) G.degree()#the number of elements of this group
6
cycle = [i+1 for i in range(1,6)] + [1] cycle
[2, 3, 4, 5, 6, 1]
C = G.conjugate(cycle)# Returns the group formed by conjugating self with cycle G.is_isomorphic(C)
True
  1. If P is a 2-group which is not elementary abelian, then some non-identity element of the centre of P is a square.

Is this true?

Solution

#swith the kernel to GAP gap> g:=SmallGroup(128,36); gap> z:=Centre(g); gap> r:=List(ConjugacyClasses(g),Representative);; gap> s:=Filtered(r,i->Order(i)>2);; gap> List(s,Order); [ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ] gap> Set(List(s,i->i^2)); [ f4,f5,f4*f7,f5*f6,f3*f4*f5,f3*f4*f5*f6,f3*f4*f5*f7,f3*f4*f5*f6*f7 ] gap> List(last,i->i in z); [ false, false, false, false, false, false, false, false ]

Construct the group of symmetries of the tetrahedron (also the alternating group on 4 symbols, A4) with the command A=AlternatingGroup(4). Using tools such as orders of elements, and generators of subgroups, see if you can find all of the subgroups of A4 (each one exactly once). Do this without using the .subgroups() method to justify the correctness of your answer

A = AlternatingGroup(4) print(A.degree()) #has 12 elements a = A.subgroups() a
4
[Subgroup of (Alternating group of order 4!/2 as a permutation group) generated by [()], Subgroup of (Alternating group of order 4!/2 as a permutation group) generated by [(1,2)(3,4)], Subgroup of (Alternating group of order 4!/2 as a permutation group) generated by [(1,3)(2,4)], Subgroup of (Alternating group of order 4!/2 as a permutation group) generated by [(1,4)(2,3)], Subgroup of (Alternating group of order 4!/2 as a permutation group) generated by [(2,4,3)], Subgroup of (Alternating group of order 4!/2 as a permutation group) generated by [(1,2,3)], Subgroup of (Alternating group of order 4!/2 as a permutation group) generated by [(1,4,2)], Subgroup of (Alternating group of order 4!/2 as a permutation group) generated by [(1,3,4)], Subgroup of (Alternating group of order 4!/2 as a permutation group) generated by [(1,2)(3,4), (1,3)(2,4)], Subgroup of (Alternating group of order 4!/2 as a permutation group) generated by [(2,4,3), (1,2)(3,4), (1,3)(2,4)]]