On 16 Sep 2014, at 22:52, [email protected] wrote:
> Dear GAP forum,
>
> Is it possible to set break points against built-in functions (ex.
> DerivedSubgroup)?
>
> Is it possible to step through the program, like GNU GDB debugger, against
> built-in functions(ex. DerivedSubgroup, ClosureSubgroupNC )?
>
> Because I am a beginner the group theory , I would to examine in detail what
> functions are doing in what procedure .
>
> I check http://www.gap-system.org/Manuals/doc/ref/chap7.html, but I cannot
> find the function that set break points or step through the function.
No, there is no such functionality, but there are workarounds and alternatives.
First, you can add the line like
Error("Break point some text which you want to display...");
in the code, and then you will be able to investigate local variables from the
break loop - see http://www.gap-system.org/Manuals/doc/ref/chap6.html
Second, you already know from your previous post how to find the code of the
function. Since GAP is an interpreted language, you may try to paste the code
of the function into your session line by line and see what happens.
Finally, YMMV (your mileage may vary): looking at the method below for
IsSolvableGroup itself will likely not give an insight into the solvability of
groups, it will just point to some other procedure:
> gap> g := SymmetricGroup(5);
> Sym( [ 1 .. 5 ] )
> gap> ApplicableMethod(IsSolvableGroup,[g]);
> function( G ) ... end
> gap> f := last;
> function( G ) ... end
> gap> Print(f);
> function ( G )
> local pcgs;
> pcgs := TryPcgsPermGroup( G, false, false, true );
> if IsPcgs( pcgs ) then
> SetIndicesEANormalSteps( pcgs, pcgs!.permpcgsNormalSteps );
> SetIsPcgsElementaryAbelianSeries( pcgs, true );
> if not HasPcgs( G ) then
> SetPcgs( G, pcgs );
> fi;
> if not HasPcgsElementaryAbelianSeries( G ) then
> SetPcgsElementaryAbelianSeries( G, pcgs );
> fi;
> return true;
> else
> return false;
> fi;
> return;
> end
What is does is that it calls TryPcgsPermGroup and then checks if it returns
the object which is IsPcgs (polycyclic generating system, see
http://www.gap-system.org/Manuals/doc/ref/chap45.html). If that calculation is
not successful, the group is not solvable, otherwise it is. Now you may be
interested to find the (undocumented!) function TryPcgsPermGroup which does the
actual job, see for any comments in the code, etc.
Best wishes
Alexander
_______________________________________________
Forum mailing list
[email protected]
http://mail.gap-system.org/mailman/listinfo/forum