@@ -155,9 +155,6 @@ BindGlobal("JenningsInfoAllFields", function(G)
155155 r := [] ;
156156 for i in [ 1 .. Length(s)- 1 ] do
157157 a := [ GroupInfo(s[ i] / s[ i+ 1 ] )] ;
158- if i <= Length(s)- 2 then
159- Add(a, GroupInfo(s[ i] / s[ i+ 2 ] ));
160- fi ;
161158 Add(r, a);
162159 od ;
163160 return r;
@@ -704,90 +701,90 @@ BindGlobal("OnlyJenningsInfo", function(G)
704701end );
705702
706703BindGlobal(" CenterNormalInfo" , function (G, N )
707- local ZI,ZQ;
708- ZI:= Intersection(Center(G), N);
709- ZQ:= Subgroup(G, Union(GeneratorsOfGroup(Center(G)), GeneratorsOfGroup(N)))/ N;
704+ local ZI, ZQ;
705+ ZI := Intersection(Center(G), N);
706+ ZQ := Subgroup(G, Union(GeneratorsOfGroup(Center(G)), GeneratorsOfGroup(N)))/ N;
710707 return [ AbelianInvariants(ZI), AbelianInvariants(ZQ)] ;
711708end );
712709
713710
714711# L is normal, N contains G'
715- BindGlobal(" LNInfo" , function (G,L, N )
716- local LN,Q1,Q2;
717- LN:= Subgroup(G, Union(GeneratorsOfGroup(N), GeneratorsOfGroup(L)));
718- Q1:= G/ LN;
719- Q2:= LN/ N;
712+ BindGlobal(" LNInfo" , function (G, L, N )
713+ local LN, Q1, Q2;
714+ LN := Subgroup(G, Union(GeneratorsOfGroup(N), GeneratorsOfGroup(L)));
715+ Q1 := G/ LN;
716+ Q2 := LN/ N;
720717 return [ AbelianInvariants(Q1), AbelianInvariants(Q2)] ;
721718end );
722719
723720
724721# The next three functions are the operations preserving canonicity described in Lemma 3.6.
725- BindGlobal(" OmegaModuloN" , function (G,N,p, t )
726- local f, Q,R;
722+ BindGlobal(" OmegaModuloN" , function (G, N, p, t )
723+ local f, Q, R;
727724 if Size(N)= Size(G) then return G; else
728- f:= NaturalHomomorphismByNormalSubgroup( G, N );
729- Q:= Image(f);
730- R:= Omega(Q,p, t);
731- return PreImage(f,R);
725+ f := NaturalHomomorphismByNormalSubgroup( G, N );
726+ Q := Image(f);
727+ R := Omega(Q, p, t);
728+ return PreImage(f, R);
732729 fi ;
733730end );
734731
735- BindGlobal(" AgemoLModuloN" , function (G,L,N,p, t )
732+ BindGlobal(" AgemoLModuloN" , function (G, L, N, p, t )
736733 local AgemoL;
737- AgemoL:= Agemo(L, p,t);
734+ AgemoL := Agemo(L, p, t);
738735 return Subgroup(G, Union(GeneratorsOfGroup(AgemoL), GeneratorsOfGroup(N)));
739736end );
740737
741738
742739BindGlobal(" OmegaCenterN" , function (G,N,p,t )
743740 local OmegaCenter;
744- OmegaCenter:= Omega(Center(G), p,t);
741+ OmegaCenter := Omega(Center(G), p, t);
745742 return Subgroup(G, Union(GeneratorsOfGroup(OmegaCenter), GeneratorsOfGroup(N)));
746743end );
747744
748745# N is a subgroup containing G'. Then the following function computes the subgroups obtained using the previous operations.
749746# (Observe that if L=G, t doesn't really matter since the output for different values of t can be obtained iterating of the operation).
750- BindGlobal(" SuccessorsN" , function (G,L,N, p )
751- local S1,S2,S3, SizeN, successorsN;
752- successorsN:= [ ] ;
753- SizeN:= Size(N);
754- S1:= OmegaModuloN(G,N,p, 1 );
755- if Size(S1)<> SizeN then Add(successorsN, S1); fi ;
756- S2:= AgemoLModuloN(G,L,N,p, 1 );
757- if Size(S2)<> SizeN then Add(successorsN, S2); fi ;
758- S3:= OmegaCenterN(G,N,p, 1 );
759- if Size(S3)<> SizeN then Add(successorsN, S3); fi ;
747+ BindGlobal(" SuccessorsN" , function (G, L, N, p )
748+ local S1, S2, S3, SizeN, successorsN;
749+ successorsN := [ ] ;
750+ SizeN := Size(N);
751+ S1 := OmegaModuloN(G, N, p, 1 );
752+ if Size(S1) <> SizeN then Add(successorsN, S1); fi ;
753+ S2 := AgemoLModuloN(G, L, N, p, 1 );
754+ if Size(S2) <> SizeN then Add(successorsN, S2); fi ;
755+ S3 := OmegaCenterN(G, N, p, 1 );
756+ if Size(S3) <> SizeN then Add(successorsN, S3); fi ;
760757 return successorsN;
761758end );
762759
763760# !
764761BindGlobal(" CanonicalNormalSubgroups" , function (G )
765- local normalSubgroups, normalSubgroupsLeveli,normalSubgroupsLevelip1,e, Gprime,Ab, SN,N, p, normalSubgroups0, i;
766- Gprime:= DerivedSubgroup(G);
767- normalSubgroups:= [ Gprime] ;
768- p:= Factors(Order(G))[ 1 ] ;
769- Ab:= G/ Gprime;
770- e:= 3 * Log(Exponent(Ab),p); # Probably using this e as a bound makes no sense.
771- normalSubgroupsLeveli:= normalSubgroups;
762+ local normalSubgroups, normalSubgroupsLeveli, normalSubgroupsLevelip1, e, Gprime, Ab, SN, N, p, normalSubgroups0, i;
763+ Gprime := DerivedSubgroup(G);
764+ normalSubgroups := [ Gprime] ;
765+ p := Factors(Order(G))[ 1 ] ;
766+ Ab := G/ Gprime;
767+ e := 3 * Log(Exponent(Ab), p); # Probably using this e as a bound makes no sense.
768+ normalSubgroupsLeveli := normalSubgroups;
772769 for i in [ 1 .. e] do
773- normalSubgroupsLevelip1:= [ ] ;
770+ normalSubgroupsLevelip1 := [ ] ;
774771 for N in normalSubgroupsLeveli do
775- SN:= SuccessorsN(G,G,N, p);
776- normalSubgroupsLevelip1:= Concatenation(normalSubgroupsLevelip1, SN);
772+ SN := SuccessorsN(G, G, N, p);
773+ normalSubgroupsLevelip1 := Concatenation(normalSubgroupsLevelip1, SN);
777774 od ;
778- normalSubgroupsLeveli:= normalSubgroupsLevelip1;
779- normalSubgroups:= Concatenation(normalSubgroups, normalSubgroupsLevelip1);
775+ normalSubgroupsLeveli := normalSubgroupsLevelip1;
776+ normalSubgroups := Concatenation(normalSubgroups, normalSubgroupsLevelip1);
780777 od ;
781778 # Some subgroups are missing, for examples the last ones in Remark 3.6 (3), because when L is not G the value of t matters.
782- normalSubgroups0:= normalSubgroups;
779+ normalSubgroups0 := normalSubgroups;
783780 return normalSubgroups;
784781end );
785782
786783# The next function collects the data arising from the Jenning series of the (major part of) canonical normal subgroups.
787784BindGlobal(" NormalSubgroupsInfo" , function (G )
788785 local normalSubgroups,Gprime;
789- Gprime:= DerivedSubgroup(G);
790- return List(CanonicalNormalSubgroups(G), x-> [ OnlyJenningsInfo(x), CenterNormalInfo(G,x), LNInfo(G,x, Gprime)] );
786+ Gprime := DerivedSubgroup(G);
787+ return List(CanonicalNormalSubgroups(G), x -> [ OnlyJenningsInfo(x), CenterNormalInfo(G, x), LNInfo(G, x, Gprime)] );
791788end );
792789# ####################
793790
0 commit comments