This section describes some special issues arising with the identification of a finitely presented group using the database of small groups described in Section Database of Small Groups.
Locate the pair of integers < o, n > so that SmallGroup(o, n) is isomorphic to G. If the construction of a permutation representation for G fails or if there is no group isomorphic to G in the database, then an error will result.
When trying to look up a finitely presented group G in the database of small groups, Magma tries to construct a permutation representation of G by enumerating the cosets of the trivial subgroup in G. Assuming that a group isomorphic to G is contained in the database, the resulting coset table will be fairly small. Hence for performance reasons, a coset limit of 100.o is imposed, where o is the maximal order of groups in the database, unless the order of G is known to be less or equal to o. If, on the other hand, |G|≤o is known, the global set of parameters for implicitly invoked coset enumerations applies. This set of parameters can be changed using the function SetGlobalTCParameters.
If the coset enumeration for G fails with the coset limit 100.o, this can be seen as a reasonable indication that G is probably too large to be contained in the database of small groups.
To deal with cases where the coset enumeration fails although G is known or suspected to be small enough, it is recommended to attempt to compute the order of G using the function Order before the actual group identification. If G that way can be shown to be small enough to be contained in the database, the function SetGlobalTCParameters can be used to control the behaviour of coset enumerations in a subsequent call to IdentifyGroup. The following example illustrates this.
Consider the group defined by the presentation < a, b | (ba - 1)3, (ba - 1b)2, a12b2a7b2ab2 >.
> G := Group<a,b | (b*a^-1)^3, (b*a^-1*b)^2, > a^12*b^2*a^7*b^2*a*b^2 >;We suspect (for some reason) that G is a small group and want to identify its isomorphism type in the database of small groups.
The group couldn't be identified, because it was not possible to obtain a permutation representation with the default value of the coset limit.
> IdentifyGroup(G); IdentifyGroup( G: GrpFP: G ) In file "/home/magma/package/Group/Grp/smallgps2.m", line 220, column 25: >> res := IdentifyGroup(db, G); ^ Runtime error in 'IdentifyGroup': Coset enumeration failed; group may be too large (see handbook entry for details)
Since we still think the group should be small, we try to prove this using the function Order.
> Order(G : Print := true); INDEX = 6 (a=6 r=66709 h=999999 n=999999; l=1247 c=1.56; m=969169 t=999998) 6We were correct; the group is in fact very small. However, we can see from the output of the Order command that this wasn't that easy to find out: almost one million cosets were used in the coset enumeration.
Since the order of G is now known to the system, a subsequent call to IdentifyGroup will now use the global parameters for implicitly invoked coset enumerations. To be on the safe side, we tell the system to be prepared to work a little harder using the function SetGlobalTCParameters and try again to identify G.
> SetGlobalTCParameters( : Strategy := "Hard"); > > IdentifyGroup(G); <6, 1>Now G can be identified.
When an finitely-presented group is known to small, it may be useful to write it concretely as a permutation or PC-group. There are two utilities provided for this purpose.
Construct a faithful permutation representation of G, and the isomorphism from G to the representation. The algorithm first computes the order of G, then takes the regular representation of G, and reduces the degree. Thus the command is restricted to small groups.
Construct a faithful PC-group representation of G, and the isomorphism from G to the representation. The algorithm first computes the order of G, then computes the soluble quotient of G with the order found. Thus the command is restricted to small soluble groups.[Next][Prev] [Right] [Left] [Up] [Index] [Root]