Transposing a Permutatoin

So I'm trying to take a permutation from a subgroup and add 5 to every digit in the permutation. For example if G=SymmetricGroup[5], G[2]=(1,2,3,4,5) , then I want the symmetric group isomorphic to G but where the 2nd element is (6,7,8,9,10). I also want to do this for arbitrary permutation groups, not just the symmetric groups.

edit retag close merge delete

Isn't it a duplicate of this other question?

( 2016-02-08 20:42:10 +0200 )edit

Sort by » oldest newest most voted

It is unclear which is "the symmetric group isomorphic to G but where the 2nd element is (6,7,8,9,10)", so i suppose we associate to each g in G an element g' in an other permutation group G' = (G)' (sic!), namely the one induced by the map

{1,2,3,4,5} to {1,2,3,4,5,6,7,8,9,10} given by x goes to x+5 .

(And g' is the identity on {1,2,3,4,5}.) We can simply define the map g to g' as follows:

def shiftPermutation( g, k ):
return Permutation( [1..k] + [ k+g(j) for j in [1 .. max( g.parent().domain() ) ] ] )


and then we can shift G = SymmetricGroup(5) with 3 (to get an asymmetry in the representation)...

G = SymmetricGroup(5)
H = PermutationGroup( [ shiftPermutation( g, 3 ) for g in G.gens() ] )
print "G =", G
print "H =", H


getting...

G = Symmetric group of order 5! as a permutation group
H = Permutation Group with generators [(4,5), (4,5,6,7,8)]


The image group is constructed, but

import random
s = random.choice( range( factorial(5) ) )
print "G[%s] is %s" % ( s, G[s] )
print "H[%s] is %s" % ( s, H[s] )


delivers

G[38] is (2,5,4)
H[38] is (4,8,7)


because

sage: G.gens()
[(1,2,3,4,5), (1,2)]
sage: H.gens()
[(4,5), (4,5,6,7,8)]


The generators were recomputed... But i'm sure the map is enough, the lists of the elements in G, and respectively H must not be mirrored by the map g to g' in the application.

more