### Re: [GAP Forum] Writing custom action on a set of list(erratum)

```Dear Pierre-Alain,

Let me first check that you have the same error as given below. First of all,

On 7 May 2015, at 13:34, Pierre-Alain BOURDIL pabou...@laas.fr wrote:

Sorry, wrong copy/paste on the function source code, corrected. Neverthelles
i still get the problem.

Hi,

I've tryed unsuccesfuly to implement an action on a set of list.

Say G=S_2, Omega = [[1,rc1,2],[2,rc2,1]]

Omega is an operation in GAP, so it is protected and you can't assign this list
to it
(there is even a mild advise somewhere to tend to use name starting in
lowercase to
avoid name clashes).

where rc1, rc2 are rightcosets of Stabilizer(G,1) and  a function :

Act := function (x,g)
local repr,comp,rc,orbital,g;

Also, this function can't be read in GAP, as 'g' is used for an argument and
for a local
variable

#extract args
comp := x[1];
rc := x[2];
orbital := x[3];
# compute the coset
repr:=rc*g;
return [comp^g,repr,orbital];
end;;

Now
A:=Action(G,Omega,Act)
gives a no method found errors. With ShowArguments i see that  x and g are
set with 1 and rc1 respectively. I do not find a way for x to be set to
[1,rc1,2] and g with the current G's element.

How can i implement such an action function  ?

However, if I fix the two errors above, I still have a problem:

gap G:=SymmetricGroup(2);
Sym( [ 1 .. 2 ] )
gap stab:=Stabilizer(G,1);
Group(())
gap rc:=RightCosets(G,stab);
[ RightCoset(Group( () ),()), RightCoset(Group( () ),(1,2)) ]
gap omega := [[1,rc[1],2],[2,rc[2],1]] ;
[ [ 1, RightCoset(Group( () ),()), 2 ],
[ 2, RightCoset(Group( () ),(1,2)), 1 ] ]
gap act := function (x,g)
local repr,comp,rc,orbital;
#extract args
comp := x[1];
rc := x[2];
orbital := x[3];
# compute the coset
repr:=rc*g;
return [comp^g,repr,orbital];
end;;
gap
gap A:=Action(G,omega,act);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `' on 2 arguments called from
func( elm ) called from
ForAll( D, IsList and IsSSortedList ) called from
ActionHomomorphismConstructor( xset, true ) called from
attr( xset ) called from
CallFuncList( ActionHomomorphism, arg ) called from
...  at line 16 of *stdin*
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
brk D;
[ [ 1, RightCoset(Group( () ),()), 2 ],
[ 2, RightCoset(Group( () ),(1,2)), 1 ] ]

because GAP expects IsSSortedList to work on elements of omega, while it
doesn't:

gap IsSSortedList(omega[1]);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `' on 2 arguments called from
function HANDLE_METHOD_NOT_FOUND( arguments )
called from read-eval loop at line 31 of *stdin*
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
brk

Before continuing, do we now at least see the same error message?

Best,
Alexander

P.S. Actually, the following works:

gap G:=SymmetricGroup(2);
Sym( [ 1 .. 2 ] )
gap stab:=Stabilizer(G,1);
Group(())
gap rc:=RightCosets(G,stab);
[ RightCoset(Group( () ),()), RightCoset(Group( () ),(1,2)) ]
gap A:=Action(G,rc,OnRight);
Group([ (1,2) ])

and also

gap A:=Action(G,[1,2],OnPoints);
Group([ (1,2) ])

- could any of these examples be helpful?

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

```

### Re: [GAP Forum] Writing custom action on a set of list(erratum)

```
Dear Alexander, we have the same error.

As a workaround, i encapsulated each point of omega in a list (and
modified act accordingly):

omega := [[1,rc[1],2],[2,rc[2],1]]
becomes
omega:= [ [[1,rc[1],2]],[[2,rc[2],1]]]

and

act := function (xs,g)
local repr,comp,rc,orbital,x;
x:=xs[1];
comp := x[1];
rc := x[2];
orbital := x[3];
repr:=rc*g;
return [[comp^g,repr,orbital]];
end;;

The above code works

Le 07/05/2015 17:54, Alexander Konovalov a écrit :

gap G:=SymmetricGroup(2);
Sym( [ 1 .. 2 ] )
gap stab:=Stabilizer(G,1);
Group(())

gap rc:=RightCosets(G,stab);
[ RightCoset(Group( () ),()), RightCoset(Group( () ),(1,2)) ]
gap omega := [[1,rc[1],2],[2,rc[2],1]] ;
[ [ 1, RightCoset(Group( () ),()), 2 ], [ 2, RightCoset(Group( ()
),(1,2)), 1 ] ]

gap act := function (x,g)

local repr,comp,rc,orbital;
#extract args
comp := x[1];
rc := x[2];
orbital := x[3];
# compute the coset
repr:=rc*g;
return [comp^g,repr,orbital];
end;;

gap
gap A:=Action(G,omega,act);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `' on 2 arguments called from
func( elm ) called from
ForAll( D, IsList and IsSSortedList ) called from
ActionHomomorphismConstructor( xset, true ) called from
attr( xset ) called from
CallFuncList( ActionHomomorphism, arg ) called from
...  at line 16 of *stdin*
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
brk D;
[ [ 1, RightCoset(Group( () ),()), 2 ],
[ 2, RightCoset(Group( () ),(1,2)), 1 ] ]

because GAP expects IsSSortedList to work on elements of omega, while it
doesn't:

gap IsSSortedList(omega[1]);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `' on 2 arguments called from
function HANDLE_METHOD_NOT_FOUND( arguments )
called from read-eval loop at line 31 of *stdin*
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
brk

Before continuing, do we now at least see the same error message?

Best,
Alexander

P.S. Actually, the following works:

gap G:=SymmetricGroup(2);
Sym( [ 1 .. 2 ] )
gap stab:=Stabilizer(G,1);
Group(())
gap rc:=RightCosets(G,stab);
[ RightCoset(Group( () ),()), RightCoset(Group( () ),(1,2)) ]
gap A:=Action(G,rc,OnRight);
Group([ (1,2) ])

and also

gap A:=Action(G,[1,2],OnPoints);
Group([ (1,2) ])

- could any of these examples be helpful?

--
Pierre-Alain BOURDIL
pabou...@laas.fr mailto:pabou...@laas.fr
___
Forum mailing list
Forum@mail.gap-system.org
http://mail.gap-system.org/mailman/listinfo/forum

```