/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; 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; 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 <Cite Key="HulpkeQuot"/>.)
## </Description>
## </ManSection>
##
DeclareGlobalFunction("RelatorFixedMultiplier");
#############################################################################
##
#E
|