RecogniseClassical( G [,strategy] [,case] [,N] )
RecogniseClassical
takes as input a group G, which is a subgroup of
GL(d,q) with d > 1, and seeks to decide whether or not G contains
a classical group in its natural representation over a finite field.
strategy is one of the following:
The default strategy is "clg".
The parameter case is used to supply information about the specific non-degenerate bilinear, quadratic or sesquilinear forms on the underlying vector space V preserved by G modulo scalars. The value of case must be one of the following:
RecogniseClassical
will try to determine the case of G. This is
the default.
"linear":
N is a positive integer which determines the number of random elements selected. Its default value depends on the strategy and case; see RecogniseClassicalCLG and RecogniseClassicalNP for additional details.
In summary, the aim of RecogniseClassical
is to test whether G
contains the subgroup Omega corresponding to the value of case.
The function returns a record whose contents depends on the strategy chosen. Detailed information about components of this record can be found in RecogniseClassicalCLG and RecogniseClassicalNP. However, the record has certain common components independent of the strategy and these can be accessed using the following flag functions.
ClassicalTypeFlag
:
IsSLContainedFlag
:true
if G contains the special linear group SL(d,q).
IsSymplecticGroupFlag
:true
if G is contained in GSp(d,q) modulo scalars and
contains Sp(d,q).
IsOrthogonalGroupFlag
:true
if G is contained in an orthogonal group modulo
scalars and contains the corresponding Omega.
IsUnitaryGroupFlag
:true
if G is contained in an unitary group modulo scalars
and contains the corresponding Omega.
These last four functions return true
, false
, or "unknown". Both
true
and false
are conclusive. The answer "unknown" indicates
either that the algorithm failed to determine whether or not G is a
classical group or that the algorithm is not applicable to the supplied
group; see RecogniseClassicalCLG and RecogniseClassicalNP for
additional details.
If RecogniseClassical
failed to prove that G is a classical group,
additional information about the possible Aschbacher categories of G
might have been obtained. See RecogniseClassicalCLG for details.
Example 1
gap> G := SL(7, 5); SL(7,5) gap> r := RecogniseClassical( G, "clg" );; gap> ClassicalTypeFlag(r); "linear" gap> IsSLContainedFlag(r); true gap> r := RecogniseClassical( G, "np" );; gap> ClassicalTypeFlag(r); "linear" gap> IsSLContainedFlag(r); trueExample 2
gap> ReadDataPkg ("matrix", "data", "j1.gap" ); gap> DisplayMat(GeneratorsFlag(G)); 9 1 1 3 1 3 3 1 1 3 1 3 3 9 1 3 1 3 3 9 1 3 1 3 3 9 1 1 1 3 3 9 1 1 3 3 3 9 1 1 3 1 3 9 1 1 3 1 3 . 1 . . . . . . . 1 . . . . . . . 10 . . . . . . . 1 . . . . . . . 10 . . . . . . . 10 10 . . . . . . gap> r := RecogniseClassical( G, "clg" );; gap> ClassicalTypeFlag(r); "unknown"
The algorithms are described in [3, 11, 12].
GAP 3.4.4