[GAP Forum] ActionHomomorphism: can I also get

Alexander Hulpke ahulpke at gmail.com
Wed Dec 5 17:59:52 GMT 2012



Dear Forum, Dear Drederic,

> some time ago the command ActionHomomorphism was recommend to me. I was now wondering, if I have two equivalent permutation groups, can I get a bijection between the groups as well as a corresponding bijection between the sets on which they act?
> 
> For instance:
> 
> g1:=Group((1,2),(3,4),(1,3));
> g2:=Group((1,2),(2,3));
> 
> gaction1:=Action(Stabilizer(g1,1),[2..4],OnPoints);
> gaction2:=Action(g2,[1..3],OnPoints);

Your syntax is a bit confused here. Basically 
Action(G,set,op)=Image(ActionHomomorphism(G,set,op)).
The action homomorphism preserves the connection to the initial group, the action is just the resulting permutation group. Thus
> ActionHomomorphism(gaction1,gaction2);
does not make sense.

If you call `RepresentativeAction(symmetricgroup,g1,g2)' you get a permutation that conjugates one group into the other. So it is a bijection between the groups given by a bijection of the underlying domain.

However I suspect that you actually want to test for equivalence of actions, i.e. you have a group G acting on two sets omega1 and omega2 and you want to see whether there is a bijection between the sets that makes the actions equivalent. In this case you need to find a permutation that maps the images of the same generating set to each other. This is actually a cheaper test than the one for mapping the groups.

For example, consider these two actions of S4 on sets of order 2 or on cosets of a subgroup.

gap> G:=SymmetricGroup(4);        
Sym( [ 1 .. 4 ] )
gap> c:=Combinations([1..4],2);
[ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ], [ 3, 4 ] ]
gap> act1:=ActionHomomorphism(G,c,OnSets,"surjective");
<action epimorphism>
gap> U:=Subgroup(G,[(1,3),(2,4)]);
Group([ (1,3), (2,4) ])
gap> Index(G,U);         
6
gap> T:=RightCosets(G,U);
[ RightCoset(Group( [ (1,3), (2,4) ] ),()), 
  RightCoset(Group( [ (1,3), (2,4) ] ),(3,4)), 
  RightCoset(Group( [ (1,3), (2,4) ] ),(2,3)), 
  RightCoset(Group( [ (1,3), (2,4) ] ),(1,2)), 
  RightCoset(Group( [ (1,3), (2,4) ] ),(1,2)(3,4)), 
  RightCoset(Group( [ (1,3), (2,4) ] ),(1,3,4,2)) ]
gap> act2:=ActionHomomorphism(G,T,OnRight,"surjective");
<action epimorphism>
gap> imgs1:=List(GeneratorsOfGroup(G),x->Image(act1,x));
[ (1,4,6,3)(2,5), (2,4)(3,5) ]
gap> imgs2:=List(GeneratorsOfGroup(G),x->Image(act2,x));
[ (1,5)(2,3,4,6), (1,4)(2,5) ]

Now search for an element that maps the elements of imgs1 to those of imgs2 in the same arrangement:

gap> rep:=RepresentativeAction(SymmetricGroup(6),imgs1,imgs2,OnTuples);
(1,3,2)

Verify:
gap> List(imgs1,x->x^(1,3,2));
[ (1,5)(2,3,4,6), (1,4)(2,5) ]


So (1,3,2) is the permutation indicating how to reorder the elements of c to get the same action.

If you can replace the symmetric group with something smaller (you might do a prearrangement by hand so that for example both actions have the same blocks) this will help in larger degrees.

(If this is not of help or not what you want feel free to send me the actual problem you want to solve.)

Best,

  Alexander






More information about the Forum mailing list