File: multNilGrp.gi

package info (click to toggle)
gap-hap 1.66%2Bds-1
  • links: PTS
  • area: main
  • in suites: trixie
  • size: 55,348 kB
  • sloc: xml: 15,368; sh: 216; javascript: 155; makefile: 126; ansic: 57; perl: 36
file content (71 lines) | stat: -rw-r--r-- 1,677 bytes parent folder | download | duplicates (3)
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
#(C) Graham Ellis 2005-2006

#####################################################################
InstallGlobalFunction(BaerInvariant,
function(arg)
local
	G,cls,GhomFpG, FpGhomG, FpG, U, UU,F, rels, newrels, x, r,
	epi,lowerUU,c,i, UUhomG, UhomG,L,bool;

G:=arg[1];
cls:=arg[2];
if Length(arg)>2 then bool:=true;
else bool:=false; fi;

if not IsNilpotent(G) then
Print("Group must be nilpotent \n"); return fail;
fi;
    
GhomFpG:=IsomorphismFpGroup(G);
FpGhomG:=InverseGeneralMapping(GhomFpG);
FpG:=Image(GhomFpG);
F:=FreeGroupOfFpGroup(FpG);
rels:=RelatorsOfFpGroup(FpG);

for i in [1..cls] do
newrels:=[];
for x in GeneratorsOfGroup(F) do
for r in rels do
c:=Comm(x,r);
if not c=Identity(F) then
Append(newrels,[c]); fi;
od;
od;
rels:=newrels;
od;
U:=F/rels;
epi:=HAP_NqEpimorphismNilpotentQuotient(U);
UU:=Image(epi);

lowerUU:=LowerCentralSeries(UU);
lowerUU:=lowerUU[cls+1];


if IsPcpGroup(G) then

UUhomG := GroupHomomorphismByImagesNC(
          UU,G,
          List(GeneratorsOfGroup(U), x->Image(epi,x)),
          List(GeneratorsOfGroup(FpG),x->Image(FpGhomG,x))
 );

if not bool then
 return AbelianInvariants(Intersection(Kernel(UUhomG), lowerUU));
else
 return
 List(GeneratorsOfGroup(TorsionSubgroupPcpGroup(Intersection(Kernel(UUhomG), lowerUU))),
 x->[PreImagesRepresentative(epi,x),Order(x)]);
 fi;

else
UhomG:=GroupHomomorphismByImagesNC(U,G,GeneratorsOfGroup(U),
List(GeneratorsOfGroup(FpG),x->PreImagesRepresentative(GhomFpG,x)));

UUhomG:=GroupHomomorphismByFunction(lowerUU,G,x->
Image(UhomG,PreImagesRepresentative(epi,x)));
fi;


return AbelianInvariants(Kernel(UUhomG));
end);
#####################################################################