To be precise, the manual says "^ denotes powering of a multiplicative element if the right operand is an integer, and is also used to denote the action of a group element on a point of a set if the right operand is a group element". In the example below, replacing

        List( conj, x -> x^-1*elts*x )

by

        List( conj, x -> elts^x );

will not work because such action is not defined, but the following will work, because by default the group act on its elements by conjugation:

gap> List( conj, y -> List( elts, x -> x^y ) );
[ [ (1,3), (2,4), (1,2) ], [ (1,2), (3,4), (1,3) ], [ (1,3), (2,4), (1,4) ], [ (1,4), (2,3), (1,2) ], [ (1,4), (2,3), (1,3) ], [ (1,2), (3,4), (1,4) ] ]

Also, in this case x^y = y^-1 * x * y.

Best,
Alexander


On 16 Dec 2008, at 17:12, Joe Bohanon wrote:

GAP also recognizes the command "x^y" meaning "x conjugated by y". I'm not
sure if its y^-1 x y or y x y^-1 that comes out of that

On Tue, Dec 16, 2008 at 10:35 AM, Alexander Konovalov <
alexander.konova...@gmail.com> wrote:

Dear Levie,

Maybe the simplest solution to do it interactively for one triple is here:

gap> elts:=[(1,3),(2,4),(1,2)];
[ (1,3), (2,4), (1,2) ]
gap> conj:=[(),(2,3),(2,4),(3,4),(2,3,4), (2,4,3)];
[ (), (2,3), (2,4), (3,4), (2,3,4), (2,4,3) ]
gap> List( conj, x -> x^-1*elts*x );
[ [ (1,3), (2,4), (1,2) ], [ (1,2), (3,4), (1,3) ], [ (1,3), (2,4), (1,4)
],
[ (1,4), (2,3), (1,2) ], [ (1,4), (2,3), (1,3) ], [ (1,2), (3,4), (1,4) ]
]

You may write a function to do this:

gap> myfun:=function(elts,conj)
return List( conj, x -> x^-1*elts*x );
end;
function( elts, conj ) ... end

and then call this function as it is shown here:

gap> myfun(elts,conj);
[ [ (1,3), (2,4), (1,2) ], [ (1,2), (3,4), (1,3) ], [ (1,3), (2,4), (1,4)
],
[ (1,4), (2,3), (1,2) ], [ (1,4), (2,3), (1,3) ], [ (1,2), (3,4), (1,4) ]
]

Now you may apply it for various values of arguments. Using list operations and GAP programming language constructions (see, e.g. 'for' loops) you may
automate computations for various combinations of arguments.

Hope this gives some hints in which direction to proceed.
For the further ideas, you may find useful these chapters
from the Tutorial:

http://www.gap-system.org/Manuals/doc/htm/tut/CHAP003.htm
http://www.gap-system.org/Manuals/doc/htm/tut/CHAP004.htm

and the Reference manual chapter "The Programming Language":

http://www.gap-system.org/Manuals/doc/htm/ref/CHAP004.htm

for start with.

Best wishes,
Alexander



On 11 Dec 2008, at 14:45, Levie Bicua wrote:

Dear GAP forum members,
I'm new to this GAP thing and I think this question is trivial to most of
you.
Suppose I have a set of 3 elements coming from s4 (e.g.
[(1,3),(2,4),(1,2)]) and I want to generate other sets using GAP by the
method below:
gap> ()^-1*[(1,3),(2,4),(1,2)]*();
[ (1,3), (2,4), (1,2) ]
gap> (2,3)^-1*[(1,3),(2,4),(1,2)]*(2,3);
[ (1,2), (3,4), (1,3) ]
gap> (2,4)^-1*[(1,3),(2,4),(1,2)]*(2,4);
[ (1,3), (2,4), (1,4) ]
gap> (3,4)^-1*[(1,3),(2,4),(1,2)]*(3,4);
[ (1,4), (2,3), (1,2) ]
gap> (2,3,4)^-1*[(1,3),(2,4),(1,2)]*(2,3,4);
[ (1,4), (2,3), (1,3) ]
gap> (2,4,3)^-1*[(1,3),(2,4),(1,2)]*(2,4,3);
[ (1,2), (3,4), (1,4) ]
The method gave 6 different sets of 3 elements. If I will use another set
of 3 elements and repeat the process with again using
(),(2,3),(2,4),(3,4),(2,3,4), (2,4,3) as conjugating elements, I will obtain again 6 different sets. But using this process every time I want to obtain a list of different sets as above would be eating much of my time. Is there a
more efficient command/method than what I had used? Thanks.



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

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

Reply via email to