* Was ist GAP ?
* GAP-Homepage
* Manual & Tutorial:
* Frei runterladbar für Windows und andere Systeme
* GAP starten
* GAP beenden (quit; ctrl-c; ctrl-d);
===============================================================================
* Rechnen in GAP:
(9 - 7) * (5 + 6);
12345/25;
3^132;
17 mod 3;
Factorial(20)^2;
Gcd(1234, 5678);
IsPrimeInt(234237);
FactorsInt(234237);
* Fehlerchen:
Semikolon vergessen:
6*7
Syntaxfehler:
6*(7+1;
===============================================================================
Gruppen eingeben, damit rechnen
gap> ## Permutationen werden in runden Klammern eingegeben, z.B.
gap> x := (1,2);
(1,2)
gap> y := (2,3);
(2,3)
gap> ## und mittels * multipliziert (hintereinanderausgefuehrt)
gap> x*y;
(1,3,2)
Permutation auf Zahl wirken lassen mit ^ (NICHT mit *):
1 ^ (1,2);
1 * (1,2);
* CyclicGroup; SymmetricGroup; AlternatingGroup; DihedralGroup
G0 := CyclicGroup(6);
G1 := SymmetricGroup(3);
Size(G1);
G2 := AlternatingGroup(3);
Size(G2);
G3 := DihedralGroup(6);
Size(G3);
* Permutationsgruppen allgemein
G := Group((1,2,4), (2,5,6));
Size(G);
G = AlternatingGroup(5);
* Arbeiten mit Gruppen
Size(G);
GeneratorsOfGroup(G);
IsAbelian(G);
Centre(G);
* Arbeiten mit Elementen:
Order(G.1);
Order(G.1 * G.2);
Order(G.1 ^ G.2);
Centralizer(G, G.1);
* Untergruppen; Index
H := Subgroup(G, [ (1,2,4) ]);
Size(H);
Normalizer(G, H);
IsSubgroup(G, H);
IsNormal(G, H);
IsSubgroup(SymmetricGroup(6), G);
ConjugacyClass(G, (1,2,4));
ConjugacyClasses(G);
ConjugacyClassSubgroups(G, H);
ConjugacyClassesSubgroups(G);
===============================================================================
* Hilfesystem, z.B.:
?SymmetricGroup
?Size
* Pfeil hoch / runter
* Tab
===============================================================================
Eigene Programme
* Listen
[ 12, 1, 7, -4 ];
[7..10];
* Ausgabe mit Print & Display
Display("Hallo");
Print("Hallo");
Print("Hallo\n");
i := 6;
Print("Hallo: ", i, "\n");
* for-Schleife
for i in [7..10] do
Display(i);
od;
* while:
i := 7;
while i > 1 do
Print("i = ", i, "\n");
i := i - 1;
od;
* if
if i >= 2 and i <= 4 then
Print("x");
fi;
if i < 7 or i > 12 then
Print("a");
elif i = 9 then
Print("b");
else
Print("c");
fi;
===============================================================================
* BahnStab-Algorithmus implementieren
* Kommentare mit #
* Datei einlesen
Read("bahnstab.gap");
* Testen:
a := (1,2,3,4,5,6,7,8,10,11);
b := (3,7,11,8)(4,10,5,6);
G := Group(a, b);
Größe von G bestimmen durch iteriertes Stabilisatoren-Berechnung!
(Siehe Abschnitt 1.6.3)
===============================================================================
* mit freien Gruppen und endliche Präsentierungen arbeiten
F := FreeGroup(2);
rels := [F.1^2, F.1^F.2*F.1];
G := F / rels;
* Nebenklassenabzählung
H := Subgroup(G, [G.2^2]);
ct := CosetTable(G, H);;
Display(TransposedMat(ct));
* abelsche Invarianten ausrechnen:
AbelianInvariants(G);
* Abgeleitete Gruppe G':
DerivedSubgroup(G)
===============================================================================
Matrizen: Listen von Listen
A := [[1,1,2],[2,3,4]];
B := [[5,6],[7,8]];
Determinant(B);
SmithNormalFormIntegerMat(A);
a := [[-1,0],[0,1]];
b := [[1,1],[0,1]];
G := Group(a, b);
IsSubgroup(GL(2,Integers), G);
IsSubgroup(SL(2,Integers), G);
===============================================================================