Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  misc.gi   Sprache: unbekannt

 
############################################################################
##
#W misc.gi   LPRES    René Hartung
##

############################################################################
##
#F  LPRES_WordsOfLengthAtMostN( <list>, <n> )
##   
## returns a list of all words of <list> of length at most <n>
##
InstallGlobalFunction( LPRES_WordsOfLengthAtMostN,
  function ( list, n )
  local Words, # list of all words
 i,g; # loop variables

# Words:=[ [ list[1]^0 ], list ];
  Words:=[ [ One( list[1] ) ], list ];
  for i in [ 3 .. n+1 ] do 
    Add( Words, [] );
    for g in list do 
      Append( Words[i], List( Words[i-1], x -> x*g ) );
    od;
  od;
  return( Concatenation( Words ) );
  end);

############################################################################
##
##  FrattiniSubgroup( <Pcp> )
## 
##  returns the Frattini subgroup of a nilpotent PcpGroup
## 
############################################################################
InstallMethod( FrattiniSubgroup,
  "for a nilpotent PcpGroup",
  [ IsPcpGroup ], 0,
  function(H)
  local DH, # derived subgroup of <H> 
 delta, # epimorphism into the abelian quotient of <H>
 T, # Torsion subgroup of the abelian quotient 
 phi, # isomorphism into the PcGroup
 Pc, # PcGroup of the torsion group <T>
 Ff,F;   # Frattini subgroups of the abelian quotient
  
  if not IsNilpotent(H) then 
    TryNextMethod();
  fi;

  DH:=DerivedSubgroup(H);
  delta:=NaturalHomomorphismByNormalSubgroup(H,DH);
  T:=TorsionSubgroup(Range(delta));
  phi:=IsomorphismPcGroup(T);
  F:=FrattiniSubgroup(Range(phi));
  Ff:=PreImage(phi,F);

  return(PreImage(delta,Ff));
  end);

############################################################################
##
#F  LPRES_LowerCentralSeriesSections( <PcpGroup> )
## 
## returns either the p-ranks of the lower central series sections of 
## <PcpGroup> or its abelian invariants.
##
InstallGlobalFunction( LPRES_LowerCentralSeriesSections,
  function(H)
  local lcs, # lower central series of <H>
 sec, # a lower central series section
 A, # ranks/abelian invariants
 i; # loop variable

  if not HasLowerCentralSeriesOfGroup(H) then 
    Info(InfoLPRES, 1, "computing the lower central series first");
  fi;
  lcs:=LowerCentralSeries(H);

  A:=[];
  for i in [Length(lcs),Length(lcs)-1..2] do
    sec:=lcs[i-1]/lcs[i];
    if IsElementaryAbelian(sec) then 
      Info(InfoLPRES,1,"The ",i-1,"-th section has rank ",RankPGroup(sec));
      Add(A,RankPGroup(sec));
    else
      Info(InfoLPRES,1,"The ",i-1,"-th section has abelian invariants ",
                         AbelianInvariants(sec));
      Add(A,AbelianInvariants(sec));
    fi;
  od;
  return(Reversed(A));
  end);

############################################################################
##
#F  LPRES_LCSofGuptaSidki( <PcpGroup>, <prime> )
##
## computes the lower central series sections of the Gupta-Sidki group
## from an index-3 subgroup which is invariantly L-presented.
##
InstallGlobalFunction( LPRES_LCSofGuptaSidki,
  function( H )
  local lcs,  # lower central series
 aut,  # automorphism induced by the action of the cyclic group
 p, # a prime 
 gens, # first <p> generators of <H>
 C, # cyclic group of order <p>
  T; # split extension via T

  if HasLowerCentralSeriesOfGroup(H) then 
    lcs:=LowerCentralSeries(H);
  else
    Error("must compute the lower central series first!");
  fi;
 
  p:=Exponent(lcs[Length(lcs)-1]/lcs[Length(lcs)]);

  gens:=GeneratorsOfGroup(H){[1..p]};

  Info(InfoLPRES,3,"determine automorphism induced by the action");
  aut:=GroupHomomorphismByImagesNC(H,H,gens,
                                   Concatenation(gens{[2..p]},[gens[1]]));

  C:=Range(IsomorphismPcpGroup(CyclicGroup(p)));
  T:=SplitExtensionByAutomorphisms(H,C,[aut]);

  Info(InfoLPRES,3,"split extension is \n",T);
  Info(InfoLPRES,3,"compute the lower central series");

  if IsFinite(T) then 
    lcs:=LowerCentralSeries(Range(IsomorphismPcGroup(T)));
  else
    lcs:=LowerCentralSeries(T);
  fi;

  if not HasLowerCentralSeriesOfGroup(T) then 
    SetLowerCentralSeriesOfGroup(T,lcs);
  fi;
  Info(InfoLPRES,3," done");

  return(LPRES_LowerCentralSeriesSections(T));
  end);

[ Dauer der Verarbeitung: 0.29 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge