MW> Sie belegen sukzessive den ganzen Speicher und brechen dann ab.
MW> Auch Versuche, die Gruppe mit AgGroup in eine AG Gruppe umrechnen
MW> zu lassen, scheiterten. Machen wir da etwas falsch ? (Warnungen
MW> im Handbuch Kap. 21.3) Hier ein Beispiel mit der Diedergruppe 5
Aus demgleichen Grund, warum 'ConjugacyClasses' f"ur endlich pr"asentierte
Gruppen nicht funktioniert (siehe Brief von M.Schoenert), scheitert auch
'AgGroup'. Es gibt deswegen eine spezielle Funktion 'AgGroupFpGroup',
welche eine Potenz/Kommutator oder Potenz/Konjugierten Pr"azentation
als Argument erwartet und die Ag-Gruppe zur"uckliefert. Diese Funktion
nimmt *keine* Umstellungen der Pr"asentation vor, so dass die
Erzeuger nach Tiefe sortiert sein m"ussen.
gap> G := FreeGroup( 2, "g" ); Group( g.1, g.2 ) gap> G.relators := [ G.1^2, G.2^5, G.2^G.1/G.2^4 ]; [ g.1^2, g.2^5, g.1^-1*g.2*g.1*g.2^-4 ] gap> gap> A := AgGroupFpGroup( G ); Group( g.1, g.2 ) gap> Size( A ); 10 gap> ConjugacyClasses( A ); [ ConjugacyClass( Group( g.1, g.2 ), IdAgWord ), ConjugacyClass( Group( g.1, g.2 ), g.2 ), ConjugacyClass( Group( g.1, g.2 ), g.2^2 ), ConjugacyClass( Group( g.1, g.2 ), g.1 ) ]
Folgende Funktion liefert zu jedem <n> die entsprechnde Ag-Diedergruppe,
indem man 'DihedralGroup( AgWords, <n> )' aufruft.
------------------ cut here --------------- cut here ------------------------ ############################################################################# ## #F AgWordsOps.DihedralGroup( <D>, <n> ) . . . . . . . . . . dihedral group ## AgWordsOps.DihedralGroup := function( AgWords, n ) local F, d, s;
d := AbstractGenerator( "d" ); s := AbstractGenerator( "s" ); F := AgFpGroup( rec( generators := [s,d], relators := [s^2,d^(n/2),d^s*d] ) ); F.isGroup := true; F.isAgGroup := true; F.operations := AgGroupOps; return RefinedAgSeries(F);
end; ----------------------------------------------------------------------------
MW> Hat man eine Gruppe bereits in AG oder PAG Praesentation, so
MW> funktioniert gap hervorragend. So haben wir eine AG Gruppe von
MW> Ordnung 2^24 ohne Probleme in eine PQ Praesentation umrechnen
MW> lassen. Kann man eigentlich aus der PQ Datenstruktur wieder eine
MW> Gruppe gewinnen, die genau die Erzeugenden und PC Relationen hat,
MW> die in der Struktur angegeben sind ? Einige unserer
MW> p-Gruppenprogramme brauchen solche Praesentationen.
Ja, kann man. Eigentlich sollte 'AgGroup' dies machen, das ist aber im
Moment noch nicht so. Um eine PQ-Datenstruktur umzuwandel, kann man
'AgGroupPcp' verwenden.
gap> G := FreeGroup( 2, "g" ); Group( g.1, g.2 ) gap> G.relators := []; [ ] gap> P := pQuotient( G, 2, 5 );; gap> B := AgGroupPcp( P.P ); Group( g1, g2, a3, a4, a5, a6, a7, a9, a12, a13, a14, a15, a17, a18, a19, a21, a24, a25, a26, a27, a28, a29, a30, a31, a32, a33, a35, a36, a37, a39, a42, a43 )mfg Frank Celler