[Next] [Prev] [Right] [Left] [Up] [Index] [Root]
Database of Simple Groups: Permutations, Presentations, Conjugacy Classes, Maximal Subgroups and Sylow Subgroups

Database of Simple Groups: Permutations, Presentations, Conjugacy Classes, Maximal Subgroups and Sylow Subgroups

This library contains a representation for G where:

The representation takes the form of a permutation group representation G, a finite presentation F and isomorphisms phi: F --> G and rho: G --> F (for the larger groups, this map takes some time to compute). Other information which is stored is representatives of the conjugacy classes, the maximal subgroups and a sylow subgroup for some of the possible primes dividing the order.

The list was prepared by A.R. Jamali, E.G. Robertson and C.M. Campbell.

Each group is accessed by its name (a string). For a list of all names type

print SimNames();
These should be fairly self-explanatory.

The groups are accessed through the following functions only.

SimGroup(name)
This function returns a permutation group isomorphic to the named simple group.
SimRecord(name)
This function returns a record of all the information stored about the group. Its fields are as follows:
Name
the name by which the group is accessed
F
a finite presentation of the group
RepsF
a sequence of class representatives of F
MaxF
a sequence of maximal subgroups of F
SylF
a sequence of sylow subgroups of F
G
a permutation representation of the group
Reps
a sequence of class representatives of G
Max
a sequence of maximal subgroups of G
Syl
a sequence of sylow subgroups of G
phi
the isomorphism phi: F --> G
rho
the isomorphism rho: G --> F
ClassInfo
a string describing the classes of the group
MaxInfo
a string describing the maximal subgroups of the group.
SimRecordInit(name)
As for SimRecord(name) except only the fields Name, ClassInfo and MaxInfo are defined. Use SimRecordRequire to fill in more fields.
SimRecordRequire(~X, Q)
Procedure. Given a (partially defined) record X and a string or sequence of strings which are from the field names listed in SimRecord, ensure that these fields are defined. Requiring some fields may result in one or more other fields to be automatically defined.
SimClassInfo(name)
This function returns a string describing the classes of the named simple group.
SimClassNameIndex(name, classname)
This function returns the index into the sequence of class representatives of the group designated by name (either a string or a simple group record) of the class with name classname.
SimMaxInfo(name)
This function returns a string describing the maximal subgroups of the named simple group.
SimNames()
This function returns the set of names of groups stored in the library.
SimGroupSatisfying(f)
Given a boolean valued function f: GrpPerm --> BoolElt (which may either be an intrinsic function or a user defined function), return a group satisfying f(G). This function runs through all the stored groups, expanding each from the stored generators and applies the predicate f until it finds a suitable one. If no group is found, an error message is printed.
SimGroupsSatisfying(f)
As SimGroupSatisfying(f), except a sequence of all such groups is returned.
SimProcess()
Return a "process" for looping over all the stored groups. Initially it points to the first group (A5).
SimProcessIsEmpty(P)
Return whether the process P currently points to a group.
SimProcessGroup(P)
Given a process P which currently points to a group, return the permutation representation.
SimProcessClassInfo(P)
Given a process P which currently points to a group, return the string describing the classes of the group.
SimProcessMaxInfo(P)
Given a process P which currently points to a group, return the string describing the maximal subgroups of the group.
SimProcessName(P)
Given a process P which currently points to a group, return the name of the group.
SimProcessNext(~P)
Procedure. Given a process P which currently points to a group, modify it so that it points to the next group if there is one or make it empty if there is not.

A fairly typical use of a process to loop over groups would look something like this:

Example

load simgps;
P := SimProcess();
while not SimProcessIsEmpty(P) do
    X := SimProcessRecordInit(P);
    SimRecordRequire(~X, ["F", "phi", "G"]);
    F := X`F;
    G := X`G;
    phi := X`phi;
    ... do computations with F, G and phi ...
    SimProcessNext(~P);
end while;
Subscreens
[Next] [Prev] [Right] [Left] [Up] [Index] [Root]