1############################################################################
2##
3##  recognize.gd                 IRREDSOL                  Burkhard Höfling
4##
5##  Copyright © 2003–2016 Burkhard Höfling
6##
7
8
9############################################################################
10##
11#F  IsAvailableIdIrreducibleSolubleMatrixGroup(<G>)
12##
13##  see the IRREDSOL manual
14##
15DECLARE_IRREDSOL_FUNCTION("IsAvailableIdIrreducibleSolubleMatrixGroup");
16
17
18############################################################################
19##
20#F  IsAvailableIdAbsolutelyIrreducibleSolubleMatrixGroup(<G>)
21##
22##  see the IRREDSOL manual
23##
24DECLARE_IRREDSOL_FUNCTION("IsAvailableIdAbsolutelyIrreducibleSolubleMatrixGroup");
25
26
27############################################################################
28##
29#F  FingerprintDerivedSeries(<n>)
30##
31DeclareAttribute("FingerprintDerivedSeries", IsGroup);
32
33
34############################################################################
35##
36#A  FingerprintMatrixGroup(<G>)
37##
38##  construct some data which is invariant under conjugation by an element
39##  of the containing GL
40##
41DeclareAttribute("FingerprintMatrixGroup", IsMatrixGroup);
42DECLARE_IRREDSOL_SYNONYMS_ATTR("FingerprintMatrixGroup");
43
44
45############################################################################
46##
47#F  ConjugatingMatIrreducibleRepOrFail(repG, repH, q, linonly, maxcost, limit)
48##
49DeclareGlobalFunction("ConjugatingMatIrreducibleRepOrFail");
50
51
52############################################################################
53##
54#F  ConjugatingMatIrreducibleOrFail(G, H, F)
55##
56DeclareGlobalFunction("ConjugatingMatIrreducibleOrFail");
57
58
59############################################################################
60##
61#F  ConjugatingMatImprimitiveOrFail(G, H, d, F)
62##
63##  G and H must be irreducible matrix groups over the finite field F
64##  H must be block monomial with block dimension d
65##
66##  computes a matrix x such that G^x = H or returns fail if no such x exists
67##
68##  The function works best if d is small. Irreducibility is only requried
69##  if ConjugatingMatIrreducibleOrFail is used
70##
71DeclareGlobalFunction("ConjugatingMatImprimitiveOrFail");
72
73
74############################################################################
75##
76#F  RecognitionAISMatrixGroup(G, inds, wantmat, wantgroup)
77##
78##  version of RecognitionIrreducibleSolubleMatrixGroupNC which
79##  only works for absolutely irreducible groups G. This version
80##  allows to prescribe a set of absolutely irreducible subgroups
81##  to which G is compared. This set is described as a subset <inds> of
82##  IndicesAbsolutelyIrreducibleSolubleMatrixGroups(n, q), where n is the
83##  degree of G and q is the order of the trace field of G. if inds is fail,
84##  all groups in the IRREDSOL library are considered.
85##
86##  WARNING: The result may be wrong if G is not among the groups
87##  described by <inds>.
88##
89DeclareGlobalFunction("RecognitionAISMatrixGroup");
90
91
92############################################################################
93##
94#F  RecognitionIrreducibleSolubleMatrixGroup(G, wantmat, wantgroup)
95##
96##  Let G be an irreducible soluble matrix group over a finite field.
97##  This function identifies a conjugate H of G group in the library.
98##
99##  It returns a record which has the following entries:
100##  id:                contains the id of H (and thus of G),
101##                     cf. IdIrreducibleSolubleMatrixGroup
102##  mat: (optional)    a matrix x such that G^x = H
103##  group: (optional)  the group H
104##
105##  The entries mat and group are only present if the booleans wantmat and/or
106##  wantgroup are true, respectively.
107##
108##  Currently, wantmat may only be true if G is absolutely irreducible.
109##
110##  Note that in most cases, the function will be much slower if wantmat
111##  is set to true.
112##
113DECLARE_IRREDSOL_FUNCTION("RecognitionIrreducibleSolubleMatrixGroup");
114
115
116############################################################################
117##
118#F  RecognitionIrreducibleSolubleMatrixGroupNC(G, wantmat, wantgroup)
119##
120##  version of RecognitionIrreducibleSolubleMatrixGroup which does not check
121##  its arguments and returns fail if G is not within the scope of the
122##  IRREDSOL library
123##
124DECLARE_IRREDSOL_FUNCTION("RecognitionIrreducibleSolubleMatrixGroupNC");
125
126
127############################################################################
128##
129#A  IdIrreducibleSolubleMatrixGroup(<G>)
130##
131##  see the IRREDSOL manual
132##
133DeclareAttribute("IdIrreducibleSolubleMatrixGroup", IsMatrixGroup);
134DECLARE_IRREDSOL_SYNONYMS_ATTR("IdIrreducibleSolubleMatrixGroup");
135
136
137############################################################################
138##
139#F  IdIrreducibleSolubleMatrixGroupIndexMS(<n>, <p>, <k>)
140##
141##  see the IRREDSOL manual
142##
143DECLARE_IRREDSOL_FUNCTION("IdIrreducibleSolubleMatrixGroupIndexMS");
144
145
146############################################################################
147##
148#F  IndexMSIdIrreducibleSolubleMatrixGroup(<n>, <q>, <d>, <k>)
149##
150##  see the IRREDSOL manual
151##
152DECLARE_IRREDSOL_FUNCTION("IndexMSIdIrreducibleSolubleMatrixGroup");
153
154
155############################################################################
156##
157#E
158##
159