Dear GAP Forum,
Igor Schein asked
I have a somewhat related question. There're 51 groups of order 32, and
some of them are very hard to distinguish. For example,
SmallGroup(32,27) and SmallGroup(32,34). Are there standard methods (
preferable ones that can be done in GAP ) to determine whether or not 2
groups like above are isomorphic?
For small groups, the function `IdGroup' can be used to distinguish
gap> g1:= SmallGroup(32,27);; gap> IdGroup( g1 ); [ 32, 27 ] gap> g2:= SmallGroup(32,34);; gap> IdGroup( g2 ); [ 32, 34 ]
This works of course not only for groups fetched from the library.
gap> IdGroup( SymmetricGroup( 4 ) ); [ 24, 12 ]
If one also needs the isomorphism or if the groups are too big for
being handled by `IdGroup' then one can use `IsomorphismGroups'.
This function returns an isomorphism if the two groups are isomorphic,
and `fail' otherwise.
gap> IsomorphismGroups( g1, g2 ); fail gap> IsomorphismGroups( SymmetricGroup( 4 ), SmallGroup( 24, 12 ) ); [ (1,2,3,4), (1,2) ] -> [ f1*f2*f3*f4, f1*f3*f4 ]
(See also the GAP manual for more details.)