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




_______________________________________________
Forum mailing list
Forum@mail.gap-system.org
http://mail.gap-system.org/mailman/listinfo/forum

Reply via email to