[GAP Forum] Computation of Composition Series
Thomas Breuer
sam at Math.RWTH-Aachen.De
Mon May 20 09:45:35 BST 2019
Dear GAP Forum,
Divyanshu Thakur wrote:
> Hello,
> There are 2-methods for the computation of Composition Series:
> 1) In lib/grpprmcs.gi using Pcgs
> 2) In lib/grp.gi using Derived Series
>
> And, GAP by default uses the 1st method so, Is there some way
> we can force the computation via the 2nd implementation
> defined in grp.gi.
First of all, the method in 'lib/grp.gi' can compute composition series
only for solvable groups.
The method in 'lib/grpprmcs.gi' can compute composition series
also for nonsolvable permutation groups;
only a very short first part of the code deals with pcgs.
Second, more 'CompositionSeries' methods may be applicable,
depending on the group for which one wants to compute a
composition series.
For example, there is another pcgs based method which does not
require the group to be a permutation group.
The two methods mentioned in the question can compute a composition series
of a solvable permutation group,
and in this case the method in 'lib/grpprmcs.gi' is indeed prefered
by GAP.
If you want to use a particular method in your code then you can
call the method directly instead of the operation 'CompositionSeries',
for example as follows.
gap> g:= SymmetricGroup( 4 );;
gap> meth:= ApplicableMethod( CompositionSeries, [ g ], 1, "all" );
#I Searching Method for CompositionSeries with 1 arguments:
#I Total: 10 entries
#I Method 4: ``CompositionSeries: for a permutation group'', value: 58
#I Skipped:
#I Method 7: ``CompositionSeries: using DerivedSubgroup'', value: 44
#I Skipped:
#I Method
10
: ``CompositionSeries: default method requiring categories and checking \
properties'', value: 0
#I Skipped:
[ function( Gr ) ... end, function( grp ) ... end,
function( <1 unnamed arguments> ) ... end ]
gap> meth[2]( g );
[ Sym( [ 1 .. 4 ] ), Alt( [ 1 .. 4 ] ), Group([ (1,4)(2,3), (1,2)(3,4) ]),
Group([ (1,2)(3,4) ]), Group(()) ]
Note, however, that such methods may in general delegate to other methods
instead of computing the required result.
If you want to give the method in 'lib/grp.gi' a higher preference
for the whole GAP session then you can explicitly install this method
a second time, with higher rank.
Here is an example.
gap> InstallMethod( CompositionSeries, "install again",
> [ IsPermGroup ], meth[2] );
gap> meth:= ApplicableMethod( CompositionSeries, [ g ], 1, "all" );
#I Searching Method for CompositionSeries with 1 arguments:
#I Total: 11 entries
#I Method 4: ``CompositionSeries: install again'', value: 60
#I Skipped:
#I Method 5: ``CompositionSeries: for a permutation group'', value: 58
#I Skipped:
#I Method 8: ``CompositionSeries: using DerivedSubgroup'', value: 44
#I Skipped:
#I Method
11
: ``CompositionSeries: default method requiring categories and checking \
properties'', value: 0
#I Skipped:
[ function( grp ) ... end, function( Gr ) ... end, function( grp ) ... end,
function( <1 unnamed arguments> ) ... end ]
All the best,
Thomas
More information about the Forum
mailing list