1 | initial version |
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.