/usr/share/gap/lib/pcgsspec.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 | #############################################################################
##
#W pcgsspec.gd GAP library Bettina Eick
##
##
#Y Copyright (C) 1996, Lehrstuhl D für Mathematik, RWTH Aachen, Germany
#Y (C) 1998 School Math and Comp. Sci., University of St Andrews, Scotland
#Y Copyright (C) 2002 The GAP Group
##
#############################################################################
##
#V InfoSpecPcgs
##
DeclareInfoClass( "InfoSpecPcgs" );
#############################################################################
##
#P IsSpecialPcgs( <obj> )
##
## <#GAPDoc Label="IsSpecialPcgs">
## <ManSection>
## <Prop Name="IsSpecialPcgs" Arg='obj'/>
##
## <Description>
## tests whether <A>obj</A> is a special pcgs.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareProperty( "IsSpecialPcgs", IsPcgs );
#InstallTrueMethod(IsPcgsCentralSeries,IsSpecialPcgs);
InstallTrueMethod(IsPcgsElementaryAbelianSeries,IsSpecialPcgs);
#############################################################################
##
#A SpecialPcgs( <pcgs> )
#A SpecialPcgs( <G> )
##
## <#GAPDoc Label="SpecialPcgs">
## <ManSection>
## <Heading>SpecialPcgs</Heading>
## <Attr Name="SpecialPcgs" Arg='pcgs' Label="for a pcgs"/>
## <Attr Name="SpecialPcgs" Arg='G' Label="for a group"/>
##
## <Description>
## computes a special pcgs for the group defined by <A>pcgs</A> or for
## <A>G</A>.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
## A method for `SpecialPcgs(<G>)' must call `SpecialPcgs(Pcgs(<G>))' (this
## is to avoid accidentally forgetting information.)
DeclareAttribute( "SpecialPcgs", IsPcgs );
#############################################################################
##
#A LGHeads( <pcgs> )
##
## <ManSection>
## <Attr Name="LGHeads" Arg='pcgs'/>
##
## <Description>
## returns the LGHeads of the special pcgs <A>pcgs</A>.
## </Description>
## </ManSection>
##
DeclareAttribute( "LGHeads", IsPcgs );
#############################################################################
##
#A LGTails( <pcgs> )
##
## <ManSection>
## <Attr Name="LGTails" Arg='pcgs'/>
##
## <Description>
## returns the LGTails of the special pcgs <A>pcgs</A>.
## </Description>
## </ManSection>
##
DeclareAttribute( "LGTails", IsPcgs );
#############################################################################
##
#A LGWeights( <pcgs> )
##
## <#GAPDoc Label="LGWeights">
## <ManSection>
## <Attr Name="LGWeights" Arg='pcgs'/>
##
## <Description>
## returns the LGWeights of the special pcgs <A>pcgs</A>.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "LGWeights", IsPcgs );
#############################################################################
##
#A LGLayers( <pcgs> )
##
## <#GAPDoc Label="LGLayers">
## <ManSection>
## <Attr Name="LGLayers" Arg='pcgs'/>
##
## <Description>
## returns the layers of the special pcgs <A>pcgs</A>.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "LGLayers", IsPcgs );
#############################################################################
##
#A LGFirst( <pcgs> )
##
## <#GAPDoc Label="LGFirst">
## <ManSection>
## <Attr Name="LGFirst" Arg='pcgs'/>
##
## <Description>
## returns the first indices for each layer of the special pcgs <A>pcgs</A>.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "LGFirst", IsPcgs );
#############################################################################
##
#A LGLength( <G> )
##
## <#GAPDoc Label="LGLength">
## <ManSection>
## <Attr Name="LGLength" Arg='G'/>
##
## <Description>
## returns the length of the LG-series of the group <A>G</A>,
## if <A>G</A> is solvable, and <K>fail</K> otherwise.
##
## <Example><![CDATA[
## gap> G := SmallGroup( 96, 220 );
## <pc group of size 96 with 6 generators>
## gap> spec := SpecialPcgs( G );
## Pcgs([ f1, f2, f3, f4, f5, f6 ])
## gap> LGWeights(spec);
## [ [ 1, 1, 2 ], [ 1, 1, 2 ], [ 1, 1, 2 ], [ 1, 1, 2 ], [ 1, 1, 3 ],
## [ 1, 2, 2 ] ]
## gap> LGLayers(spec);
## [ 1, 1, 1, 1, 2, 3 ]
## gap> LGFirst(spec);
## [ 1, 5, 6, 7 ]
## gap> LGLength( G );
## 3
## gap> p := SpecialPcgs( Pcgs( SmallGroup( 96, 120 ) ) );
## Pcgs([ f1, f2, f3, f4, f5, f6 ])
## gap> LGWeights(p);
## [ [ 1, 1, 2 ], [ 1, 1, 2 ], [ 1, 1, 2 ], [ 1, 2, 2 ], [ 1, 3, 2 ],
## [ 2, 1, 3 ] ]
## ]]></Example>
## <P/>
## Thus the first group, <C>SmallGroup(96, 220)</C>, has a lower nilpotent
## series of length <M>1</M>; that is, the group is nilpotent.
## It is a direct product of its Sylow subgroups.
## Moreover the Sylow <M>2</M>-subgroup is generated by the elements
## <C>f1, f2, f3, f4, f6</C>,
## and the Sylow <M>3</M>-subgroup is generated by <C>f5</C>.
## The lower <M>2</M>-central series of the Sylow <M>2</M>-subgroup
## has length <M>2</M> and the second subgroup in this series is generated
## by <C>f6</C>.
## <P/>
## The second group, <C>SmallGroup(96, 120)</C>, has a lower nilpotent
## series of length <M>2</M> and hence is not nilpotent.
## The second subgroup in this series is just the Sylow <M>3</M>-subgroup
## and it is generated by <C>f6</C>.
## The subgroup generated by <C>f1</C>, <M>\ldots</M>, <C>f5</C> is a
## Sylow <M>2</M>-subgroup of the group and also a head complement to the
## second head of the group.
## Its lower <M>2</M>-central series has length <M>2</M>.
## <P/>
## In this example the <Ref Func="FamilyPcgs"/> value of the groups used
## was a special pcgs, but this is not necessarily the case.
## For performance reasons it can be worth to enforce this,
## see <Ref Func="IsomorphismSpecialPcGroup"/>.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "LGLength", IsGroup );
#############################################################################
##
#A InducedPcgsWrtSpecialPcgs( <G> )
##
## <#GAPDoc Label="InducedPcgsWrtSpecialPcgs">
## <ManSection>
## <Attr Name="InducedPcgsWrtSpecialPcgs" Arg='G'/>
##
## <Description>
## computes an induced pcgs with respect to the special pcgs of the
## parent of <A>G</A>.
## <P/>
## <Ref Func="InducedPcgsWrtSpecialPcgs"/> will return a pcgs induced by
## <E>a</E> special pcgs (which might differ from the one you had in mind).
## If you need an induced pcgs compatible with a <E>given</E> special pcgs
## use <Ref Func="InducedPcgs"/> for this special pcgs.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareAttribute( "InducedPcgsWrtSpecialPcgs", IsGroup );
#############################################################################
##
#A CanonicalPcgsWrtSpecialPcgs( <G> )
##
## <ManSection>
## <Attr Name="CanonicalPcgsWrtSpecialPcgs" Arg='G'/>
##
## <Description>
## </Description>
## </ManSection>
##
DeclareAttribute( "CanonicalPcgsWrtSpecialPcgs", IsGroup );
#############################################################################
##
#P IsInducedPcgsWrtSpecialPcgs( <pcgs> )
##
## <#GAPDoc Label="IsInducedPcgsWrtSpecialPcgs">
## <ManSection>
## <Prop Name="IsInducedPcgsWrtSpecialPcgs" Arg='pcgs'/>
##
## <Description>
## tests whether <A>pcgs</A> is induced with respect to a special pcgs.
## </Description>
## </ManSection>
## <#/GAPDoc>
##
DeclareProperty( "IsInducedPcgsWrtSpecialPcgs", IsPcgs );
#############################################################################
##
#P IsCanonicalPcgsWrtSpecialPcgs( <pcgs> )
##
## <ManSection>
## <Prop Name="IsCanonicalPcgsWrtSpecialPcgs" Arg='pcgs'/>
##
## <Description>
## </Description>
## </ManSection>
##
DeclareProperty( "IsCanonicalPcgsWrtSpecialPcgs", IsPcgs );
#############################################################################
##
#E
|