Dear Gaurav,

Attributes are just like Operations, and you can use ApplicableMethod in the 
same way. A good example is Size:

gap> g := Group((1,2,3,4,5),(1,5)(2,4));
Group([ (1,2,3,4,5), (1,5)(2,4) ])
gap> ApplicableMethod(Size,[g]);
function( G ) ... end
gap> Print(last);
function ( G )
    return SizeStabChain( StabChainMutable( G ) );
end


However, there is one complication, which is that once an Attribute has been 
computed the value is often stored in which case the 
method changes to one that just recovers the stored value:

gap> Size(g);
10
gap> ApplicableMethod(Size,[g]);
function( object ) ... end
gap> Print(last);
function ( object )
    <<kernel or compiled code>>
end
gap> 

Stabilizer, however is not itself an attribute and is rather more complicated. 
See:

http://www.gap-system.org/Manuals/doc/ref/chap41.html#X797BD60E7ACEF1B1

and also section 41.12 a bit further down.

It doesn’t make sense to ask simply about the Stabilizer of a group — you also 
have to specify an object to be
stabilised and an action of the group and the call goes through a number of 
functions that fill in missing arguments and detect special cases before 
eventually reaching a call of StabilizerOp or StabilizerOfExternalSet where the 
work is really done.

        Steve

> On 6 Jan 2016, at 05:29, Gaurav Dhingra <axyd0...@gmail.com> wrote:
> 
> Hi GAP members
> 
> I asked previously
> http://math.stackexchange.com/questions/1570893/which-algorithm-gap-uses-to-check-equality-of-two-groups
> for finding the source of an "operation" in GAP. Also there is already an
> answer for finding the source of a "function" in GAP.
> 
> My question is how to find the source of an "Attribute" in GAP?
> For ex. i want to find the Algorithm for finding the `stabilizer` of a
> `SymmetricGroup`
> 
> gap> s4:=SymmetricGroup(4);
> Sym( [ 1 .. 4 ] )
> gap> Stabilizer;
> function( arg ) ... end
> gap> StabilizerOfExternalSet;        # this is used for SymmetricGroup in
> particular
> <Attribute "StabilizerOfExternalSet">
> gap> func:=ApplicableMethod(StabilizerOfExternalSet, [s4]);
> fail
> gap>
> 
> It fails. Is there another method instead of using `ApplicableMethod`?
> Above i used `StabilizerOfExternalSet` after seeing the source code for
> `Stabilizer`.
> 
> Gaurav Dhingra
> _______________________________________________
> 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