This file is indexed.

/usr/share/gap/lib/schur.gd is in gap-libs 4r6p5-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
#############################################################################
##
#W  schur.gd                 GAP library                        Werner Nickel 
#W                                                           Alexander Hulpke
##
#Y  (C) 2000 School Math and Comp. Sci., University of St Andrews, Scotland
#Y  Copyright (C) 2002 The GAP Group
##

#############################################################################
##
#V  InfoSchur
##
##  <ManSection>
##  <InfoClass Name="InfoSchur"/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareInfoClass( "InfoSchur" );

#############################################################################
##
#O  SchurCover(<G>)
##
##  <#GAPDoc Label="SchurCover">
##  <ManSection>
##  <Oper Name="SchurCover" Arg='G'/>
##
##  <Description>
##  returns one (of possibly several) Schur covers of the group <A>G</A>.
##  <P/>
##  At the moment this cover is represented as a finitely presented group
##  and <Ref Func="IsomorphismPermGroup"/> would be needed to convert it to a
##  permutation group.
##  <P/>
##  If also the relation to <A>G</A> is needed,
##  <Ref Func="EpimorphismSchurCover"/> should be used.
##  <Example><![CDATA[
##  gap> g:=Group((1,2,3,4),(1,2));;
##  gap> epi:=EpimorphismSchurCover(g);
##  [ f1, f2, f3 ] -> [ (3,4), (2,4,3), (1,3)(2,4) ]
##  gap> Size(Source(epi));
##  48
##  ]]></Example>
##  <P/>
##  If the group becomes bigger, Schur Cover calculations might become
##  unfeasible.
##  <P/>
##  There is another operation, <Ref Func="AbelianInvariantsMultiplier"/>,
##  which only returns the structure of the Schur Multiplier,
##  and which should work for larger groups as well.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareAttribute( "SchurCover", IsGroup );

##############################################################################
##
#O  EpimorphismSchurCover(<G>[,<pl>])
##
##  <#GAPDoc Label="EpimorphismSchurCover">
##  <ManSection>
##  <Oper Name="EpimorphismSchurCover" Arg='G[, pl]'/>
##
##  <Description>
##  returns an epimorphism <M>epi</M> from a group <M>D</M> onto <A>G</A>.
##  The group <M>D</M> is one (of possibly several) Schur covers of <A>G</A>.
##  The group <M>D</M> can be obtained as the <Ref Func="Source"/> value of
##  <A>epi</A>.
##  The kernel of <M>epi</M> is the Schur multiplier of <A>G</A>.
##  If <A>pl</A> is given as a list of primes,
##  only the multiplier part for these primes is realized.
##  At the moment, <M>D</M> is represented as a finitely presented group.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareAttribute( "EpimorphismSchurCover", IsGroup );

##############################################################################
##
#A  AbelianInvariantsMultiplier(<G>)
##
##  <#GAPDoc Label="AbelianInvariantsMultiplier">
##  <ManSection>
##  <Attr Name="AbelianInvariantsMultiplier" Arg='G'/>
##
##  <Description>
##  <Index>Multiplier</Index>
##  <Index>Schur multiplier</Index>
##  returns a list of the abelian invariants of the Schur multiplier of
##  <A>G</A>.
##  <P/>
##  At the moment, this operation will not give any information about how to
##  extend the multiplier to a Schur Cover.
##  <Example><![CDATA[
##  gap> AbelianInvariantsMultiplier(g);
##  [ 2 ]
##  gap> AbelianInvariantsMultiplier(AlternatingGroup(6));
##  [ 2, 3 ]
##  gap> AbelianInvariantsMultiplier(SL(2,3));
##  [  ]
##  gap> AbelianInvariantsMultiplier(SL(3,2));
##  [ 2 ]
##  gap> AbelianInvariantsMultiplier(PSU(4,2));
##  [ 2 ]
##  ]]></Example>
##  (Note that the last command from the example will take some time.)
##  <P/>
##  The &GAP;&nbsp;4.4.12 manual contained examples for larger groups e.g.
##  <M>M_{22}</M>. However, some issues that may very rarely (and not 
##  easily reproducibly) lead to wrong results were discovered in the code
##  capable of handling larger groups, and in &GAP;&nbsp;4.5 it was replaced 
##  by a more reliable basic method. To deal with larger groups, one can use 
##  the function <Ref BookName="cohomolo" Func="SchurMultiplier"/> from the
##  <Package>cohomolo</Package> package. Also, additional methods for 
##  <Ref Attr="AbelianInvariantsMultiplier"/> are installed in the 
##  <Package>Polycyclic</Package> package for pcp-groups.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareAttribute( "AbelianInvariantsMultiplier", IsGroup );

##############################################################################
####  Derived functions.                                       Robert F. Morse
####  
##############################################################################
##
#A  Epicentre(<G>)
#A  ExteriorCentre(<G>)
##
##  <#GAPDoc Label="Epicentre">
##  <ManSection>
##  <Attr Name="Epicentre" Arg='G'/>
##  <Attr Name="ExteriorCentre" Arg='G'/>
##
##  <Description>
##  There are various ways of describing the epicentre of a group <A>G</A>.
##  It is the smallest normal subgroup <M>N</M> of <A>G</A> such that
##  <M><A>G</A>/N</M> is a central quotient of a group.
##  It is also equal to the Exterior Center of <A>G</A>,
##  see <Cite Key="Ellis98"/>.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareAttribute("Epicentre", IsGroup );
DeclareSynonymAttr("Epicenter", Epicentre);
DeclareSynonymAttr("ExteriorCentre", Epicentre);
DeclareSynonymAttr("ExteriorCenter", Epicentre);

##############################################################################
##
#O  NonabelianExteriorSquare(<G>)
##
##  <#GAPDoc Label="NonabelianExteriorSquare">
##  <ManSection>
##  <Oper Name="NonabelianExteriorSquare" Arg='G'/>
##
##  <Description>
##  Computes the nonabelian exterior square <M><A>G</A> \wedge <A>G</A></M>
##  of the group <A>G</A>, which for a finitely presented group is the
##  derived subgroup of any Schur cover of <A>G</A>
##  (see <Cite Key="BJR87"/>).
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareOperation("NonabelianExteriorSquare", [IsGroup]);

##############################################################################
##
#O  EpimorphismNonabelianExteriorSquare(<G>)
##
##  <#GAPDoc Label="EpimorphismNonabelianExteriorSquare">
##  <ManSection>
##  <Oper Name="EpimorphismNonabelianExteriorSquare" Arg='G'/>
##
##  <Description>
##  Computes the mapping
##  <M><A>G</A> \wedge <A>G</A> \rightarrow <A>G</A></M>.
##  The kernel of this mapping is equal to the Schur multiplier of <A>G</A>.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareOperation("EpimorphismNonabelianExteriorSquare", [IsGroup]);

##############################################################################
##
#P  IsCentralFactor(<G>) 
##
##  <#GAPDoc Label="IsCentralFactor">
##  <ManSection>
##  <Prop Name="IsCentralFactor" Arg='G'/>
##
##  <Description>
##  This function determines if there exists a group <M>H</M> such that
##  <A>G</A> is isomorphic to the quotient <M>H/Z(H)</M>.
##  A group with this property is called in literature <E>capable</E>.
##  A group being capable is 
##  equivalent to the epicentre of <A>G</A> being trivial,
##  see <Cite Key="BFS79"/>.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareProperty("IsCentralFactor", IsGroup);

##############################################################################
###########################END RFM############################################


##############################################################################
##
#F  SchuMu(<G>,<p>)
##
##  <ManSection>
##  <Func Name="SchuMu" Arg='G,p'/>
##
##  <Description>
##  returns epimorphism from p-part of multiplier.p-Sylow (note: This
##  extension is <E>not</E> necessarily isomorphic to a Sylow subgroup of a
##  Darstellungsgruppe!) onto p-Sylow, the
##  kernel is the p-part of the multiplier.
##  The implemented algorithm is based on section 7 in Derek Holt's paper.
##  However we use some of the general homomorphism setup to avoid having to
##  remember certain relations.
##  </Description>
##  </ManSection>
##
DeclareGlobalFunction("SchuMu");

##############################################################################
##
#F  CorestEval(<FG>,<s>)
##
##  <ManSection>
##  <Func Name="CorestEval" Arg='FG,s'/>
##
##  <Description>
##  evaluate corestriction mapping.
##  <A>FH</A> is an homomorphism from a finitely presented group onto a finite
##  group <A>G</A>. <A>s</A> an epimorphism onto a p-Sylow subgroup of <A>G</A> as obtained
##  from <C>SchuMu</C>.
##  This function evaluates the relators of the source of <A>FH</A> in the
##  extension M_p.<A>G</A>. It returns a list whose entries are of the form
##  [<A>rel</A>,<A>val</A>], where <A>rel</A> is a relator of <A>G</A> and <A>val</A> its evaluation as
##  an element of M_p.
##  </Description>
##  </ManSection>
##
DeclareGlobalFunction("CorestEval");

##############################################################################
##
#F  RelatorFixedMultiplier(<hom>,<p>)
##
##  <ManSection>
##  <Func Name="RelatorFixedMultiplier" Arg='hom,p'/>
##
##  <Description>
##  Let <A>hom</A> an epimorphism from an fp group onto a finite group <A>G</A>. This
##  function returns an epimorphism onto the <A>p</A>-Sylow subgroup of <A>G</A>,
##  whose kernel is the largest quotient of the multiplier, that can lift
##  <A>hom</A> to a larger quotient. (The source of this map thus is <M>M_R(B)</M>
##  of&nbsp;<Cite Key="HulpkeQuot"/>.)
##  </Description>
##  </ManSection>
##
DeclareGlobalFunction("RelatorFixedMultiplier");


#############################################################################
##
#E