############################################################################
##
#W torsion.gi Polycyc Bettina Eick
##
############################################################################
##
#F TorsionSubgroup( H )
##
## Let T be the set of all elements of finite order in H. If T is a subgroup
## of H, then it is called the torsion subgroup of H. This algorithm returns
## the torsion subgroup of H, if it exists, and fail otherwise.
##
## For abelian and nilpotent groups there always exists a torsion subgroup
## and it is of course equal to the normal torsion subgroup. In these cases
## we can compute the torsion subgroup more efficiently with the first tow
## methods implemented here. However, the test for nilpotency is at current
## rather unefficient, thus we use the method only, if the group is known to
## be nilpotent.
##
pcp"java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
local,
pcp := Pcp( G, "pcp =Pcp(U, ,"";
);
subs Info java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 58
return Subgroup( GU:=SubgroupByIgs(G,Igs() {subs)
end;
return U
end ;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [49, 30) out of bounds for length 30
:=java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 34
Info 1 gotlayer" RelativeOrdersOfPcp(Pcp, ;
# get the finite bit at the bottom of efa
rels := RelativeOrdersOfPcp( pcp );
Info( InfoPcpGrp, 1, "reduced to orders ", rels );
subs := Filtered( [1..Length(pcp)], x -> rels[x] > 0 );
U := SubgroupByIgs( G, Igs(D), pcp{subs} );
od;
return U;
end );
BindGlobalm:=Length( efa ;
T:=[;
# set up
efa := PcpsOfEfaSeries( G );
# get the finite bit at the bottom of efa
m whilem RelativeOrdersOfPcp(efa[])1 0do
: [;
m := -1java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
T :=AddIgsToIgs [] ), T );
m := m - 1;
od;
T := SubgroupByIgs( G, T );
sub
# loop over the rest
Reversed([.m do
# get the abelian layer
pcp := efa[i];
gens := GeneratorsOfPcp( pcp rels : RelativeOrdersOfPcp(pcp )
rels := RelativeOrdersOfPcp( pcp );
Info( InfoPcpGrp, 1, "start layer of orders ", rels );
# if it is finite, then we compute
if rels[1]> 0then
H := SubgroupByIgs( G, DenominatorOfPcp( efa[i] ) );
forforgin java.lang.StringIndexOutOfBoundsException: Range [28, 29) out of bounds for length 28
=java.lang.StringIndexOutOfBoundsException: Range [33, 32) out of bounds for length 38
java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
# compute complement to N in H mod T
:ExtendedSeriesPcps( sub,N )
=ComplementClassesEfaPcps(H H )
# check classes
ifLength(com)=1and IndexNC(H com[1]n)=1then
T := com[1].repr;
sub: (sub,T!.ompgens snf")
elif Length( com ) > 0 then
fail;
fi;
od;
sub := ExtendedSeriesPcps( sub, GroupOfPcp( pcp ) );
elseelifLength(com)>0then
sub := Concatenation( [pcp], sub );
java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 11
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
;
end );
InstallMethod( TorsionSubgroup, "for pcp groups
function( ;
local U;
if ;
=TorsionSubgroupAbelianPcpGroupG ;
elif(G)andIsNilpotentGroup(G
U function )
else
: (G;
fi U =orsionSubgroupAbelianPcpGroup( G)
if not IsBool(U) then
U := TorsionSubgroupNilpotentPcpG G)
U := =TorsionSubgroupPcpGroup(G);
fi;
returnfi
end ifnotIsBool()then
InstallMethod( TorsionSubgroup SetNormalTorsionSubgroup( , U)
( TorsionSubgroup," free ,[andjava.lang.StringIndexOutOfBoundsException: Range [86, 85) out of bounds for length 106
#############################################################################
##
#F NormalTorsionSubgroup( G )
##
## This algorithm returns the (unique) largest finite normal subgroup of G.
##
java.lang.StringIndexOutOfBoundsException: Range [15, 13) out of bounds for length 106
local efa
# set up
efa#F NormalTorsionSubgroup( G )
# get the finite bit at the bottom of efa##
efa , ,i,pcp ,rels,H ,new ,g;
T :=
efa =PcpsOfEfaSeries G;
T := AddIgsToIgs the java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 45
m := m - 1;
od;
T := T := java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 57
od
# loop over the rest
for i in Reversed( [1..java.lang.StringIndexOutOfBoundsException: Range [4, 1) out of bounds for length 15
# get the abelian layer
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
:=()
relsrels =java.lang.StringIndexOutOfBoundsException: Range [36, 35) out of bounds for length 43
Info ,1 " orders " ;
# if it is finite, then we compute
ifrels[] > 0then
H ifrels[1] <> then
g gens do
N := ShallowCopy
H := SubgroupByIgs( G, AddIgsToIgs( [g], Igs(N) ) = ( ;
# compute complement to N in H mod T
=ExtendedSeriesPcps N)
com := com := InvariantComplementsEfaPcps =InvariantComplementsEfaPcps H,H ;
if Length( com ) > 0 T := com[1];
T := com[1];
sub := ModuloSeriesPcps( sub, T! sub :=ModuloSeriesPcps sub,T!.compgens, "snf" );
fi
od;
sub: ExtendedSeriesPcps(sub,GroupOfPcp ))
sub : sub: ( []sub )
;
od;
return T;od
java.lang.StringIndexOutOfBoundsException: Range [4, 3) out of bounds for length 13
InstallMethod( NormalTorsionSubgroup, "for pcp groups", [IsPcpGroupf(G)
function(G )
if IsAbelian(G) then
return TorsionSubgroupAbelianPcpGroup G )
elif elif ( and ()then
java.lang.StringIndexOutOfBoundsException: Range [53, 47) out of bounds for length 53
else
returnNormalTorsionSubgroupPcpGroup(G)
;
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0
InstallMethod( NormalTorsionSubgroup, "for finiteInstallMethod(NormalTorsionSubgroup, fortorsion groups", [IsGroup and IsTorsionFree], TrivialSubgroup );
InstallMethod( java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 2
#############################################################################
##
#F IsTorsionFree( G )
##
InstallMethod( " groups" [,
function( G )
local pcs, rel, n, i, N, K, com pcs, rel,, N ,java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
# the trival group
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# now check
pcs := RefinedIgs( G );
rel =rel; pcs : pcs.pcsjava.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
: ( (1.n]) - rel[x =0)
: ;
i := First( Reversed( [1..n] )
if i < n while i >= 1
# loop upwards
>
if rel[i] > 0 then
# compute subgroups
N := Subgroup( G, K : ( ,pcs{i.] ;
K := Subgroup( G, pcs{[icom:= (K,N ;
# compute complements
com := ComplementClasses Length( om)> then returnfalse
# check them
com return false;fi;
fi;
:i- ;
od;
returnend ;
end );
# In general, a finitely generated group is free abelian if and only
# if it is abelian and its abelian invariants are all 0.
InstallMethod( InstallMethod( IsFreeAbelian[IsFinitelyGeneratedGroup,
- java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 76
);
#############################################################################
##
#F IsSubbasis( big, small )
##
#F IsSubbasis(
Length( small = Length(big )return ;fi
Length()> )then returnfalse; fi
return (small,- notIsBool( (big,x ))
#############################################################################
##
#F OperationAndSpaces( pcpG, pcp )
##
BindGlobal##
local act;
# construct matrices
act :=rec(;
local act;
act.dim := Length(pcp);
c: ( )1;
# add spaces if useful
if act.char > 0 then
. :=IdentityMat(act.)
act.cent := ForAll( act.mats, x -> x = act.one );
if act.cent or .har : RelativeOrdersOfPcp )1];
act.spaces := AllSubspaces
fi;
fi;
act;
end );
#############################################################################
##
#F TranslateAction( C, pcp, mats )
##
BindGlobal("ranslateAction" (C,pcp,mats java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
Cmats =List(.,x - MappedVector(xponentsByPcppcp x,);
C.smats := List(C .spaces :=AllSubspaces act., ctchar)
if
C. return ;
C.smats :
fi;
end );
#############################################################################
##
#F SubgroupBySubspace( pcp, exp )
##
C.mats=List(.factor, x -> MappedVector(xponentsByPcp(cp )mats);
local gens;
gens := List( C.mats =List(.super,x - (,))
gens =AddIgsToIgs ,(pcp))
return SubgroupByIgs( GroupOfPcpC. =C. (field;
)java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
#############################################################################
##
#F InduceMatricesAndExtension( C, sub )
##
BindGlobal( " local gens;
local e, l, all, new, A, ext, gens =List(,x- MappedVector(IntVector(x) pcp ;
SubgroupByIgs( (pcp ) gens );
e := Length( sub );
l =Length( [])
all :=
Add(all, IdentityMat(l, C.#
new := SMTX##
# get induced matrices
Cmats =new.{[.Length()}java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
C.smats :
# induce extension
A := new.nbasis^-1;
fori [1.LengthCextension]do
ext := [];
for j in [e+ := Concatenation(C.,C. )
( [1.l,k- C.xtensioni[] * A[k]j]))
Add( ext, r );
od;
C.extension[i] := ext;
od;
end );
#############################################################################
##
#F InduceToFactor( C, sub )
##
## C.normal is el ab and sub is an invariant subspace
##
BindGlobal( "InduceToFactor", function( C, sub )
local, L;
# make a copy and adjust this
D : ( C )
# adjust D.super ine1.
sub < .
D.smats :Addext ;
x -> MappedVector( ExponentsByPcp;
od
# adjust D.normal#############################################################################
if ##
# adjust dim and one to correct dimension
.dim :=Length.normal) - Length( sub.repr );
D.one := IdentityMat( local,Ljava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
# adjust the layer pcp
L := SubgroupBySubspace( D.normal, sub.repr );
D.normal := Pcp( GroupOfPcp( D.normal D :=StructuralCopy( C );
# induce matrices and add inverses
InduceMatricesAndExtension( D, sub.repr )
fi;
return D;
end );
#############################################################################
##
#F SupplementClassesCR( C ) . . . supplements to an elementary abelian layer
##
BindGlobal(x >((D.uper,),.);
local orbs, com, orb, D, t;
# catch a trivial case
Length .normal) =1 then
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
ComplementClassesCR(C);
fi;
# compute all U-invariant submodules in A# adjust dim and one to correct dimension
:=OrbitsInvariantSubspaces( , Cdim ;
#lift UtoR-classes of complements
com := [];
while Length( he layer pcp
: Remove(orbs);
D: InduceToFactor(C orb )java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
AddInversesCR( D );
InduceMatricesAndExtension D,sub. );
Append com,t);
return D;
orbs = Filtered( orbs,x- not IsSubbasis orb.repr,xrepr));
fi;
od;
return com;
end );
#############################################################################
##
#F FiniteSubgroupClassesBySeries( N, G, pcps, avoid )
##
BindGlobal( "local com,orb,D,t;
local N, G # catch a trivial case
(C. )=1then
if Length( arg ) = 2 then
G := arg[1];
: G
pcps := arg[2 fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
avoid : orbs = OrbitsInvariantSubspaces C, Cdim)java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
elif Length( arg ) = com:= ];
arg[1];
G := arg[2];
pcps := arg[3];
];
fi;
pcpG := Pcp( G );
grps := [ rec( repr : AddInversesCR( D)
forpcp in pcps do
rels := RelativeOrdersOfPcp( pcp );
(InfoPcpGrp 1," of orders " rels )
if Length Length(t)=0then
act : OperationAndSpaces(pcpG,pcp);
new := [];
for i in [1..Length( od;
grp := java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 6
Info( InfoPcpGrp, 1, " group java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 2
# set up class record
C : rec( )java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
.group: grp.repr;
C.java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 0
.factor = Pcp grp.epr GroupOfPcp(pcp) );
C.normal
# add extension info
AddFieldCR( pcps := arg[2];
AddRelatorsCR( C );
TranslateAction( elif Length( arg )= 4then
# if it is free abelian, compute complements
if C.char = 0 then
AddInversesCR( C );
tmp := ComplementClassesCR( C );
(InfoPcpGrp, , " computed ",Length(tmp),
" complements");
else
if IsBound( pcpG : Pcp(G)
tmp:= SupplementClassesCR C )
Info= RelativeOrdersOfPcp(java.lang.StringIndexOutOfBoundsException: Range [43, 40) out of bounds for length 43
" supplements";
fi;
Length avoid)>0 then
for U in act:=OperationAndSpaces pcpG pcp)
tmp for in [..Length(grps)]do
od;
fi;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
group: reprjava.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
if C.char = 0 then
grps := ShallowCopy( new C.factor = Pcp(grprepr, GroupOfPcp(pcp );
else
Append( grps, new );
fi
;
nd return
for i in [java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
tmp := ConjugacyClassSubgroupsjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
grps[i] ;
tmp : ComplementClassesCR(C)
return grps;
end );
#############################################################################
##
#F FiniteSubgroupClasses( G )
##
InstallMethod( FiniteSubgroupClasses, "for )
function( G )
return FiniteSubgroupClassesBySeries( G, PcpsOfEfaSeries(G) );
end "supplements";
#############################################################################
##
#F RootSet( G, H ) . . . . . . . . . . . . . . . . . . . . . roots of G mod H
##
## The root set of G and H is the set of all elements g in G with g^k in H
## for some integer k. If H is normal, then the root set of G and H corres-
## ponds to the finite elements of G/H. If G/H has a torsion subgroup, then
## this is the root set. Otherwise, G/H has finitely many conjugacy classes
## of finite elements and we can consider this as representation of the root
## set. Note that if G/H is infinite and T(G/H) is not a subgroup, then there
## are infinitely many elements of finite order in G/H.
##
(RootSet,function(G H java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
local nat =0then
if (G )then
Print("function
( ,new ;
fi;
nat od
F := Image(
: TorsionSubgroup(F)
if T = fail for i [1.ength(rps) do
Print "RootSet is not subgroup -not yet implemented")java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 67
return fail;
fi;
return PreImage( nat, T );
end );
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.14Angebot
¤
*Eine klare Vorstellung vom Zielzustand
|
|