          GAP: Groups, Algorithms, Programming.


This is a powerful program for doing calculations in group theory.
It includes a Library of several million groups.

To access this program from your math dept. account add, once and for
all, /pkgs/gap to your path (if it's not already there), 
for example by adding the following
line to the file .cshrc in your home directory:

set path = ( /pkgs/gap/ $path . )

Then you can always start the program with the command "gap".  For
immediate help with the program, type ? (return) after the prompt
"gap>" shows up (takes a few seconds).  There is also lots of info at

<http://www.gap-system.org>

All gap commands are terminated by a ";" followed by "return".  To
leave the program, type "quit;".

You can do some simple arithmetic:

gap> 2^20*3^11 +5; 185752092677

gap> Gcd(123123,22); 11

You can also do some number theory, linear algebra, etc. (See manual.)
The specialty of the program is in group theory.

For instance, try the following command: the output is the number of
groups of order i for all i between 4 and 60. (These bounds can be
changed, although the upper one should not be more than 2001.)

gap> for i in [4..60] do Print(i," ",NumberSmallGroups(i),"\n"); od;

Try this one too:

gap> for i in [1..10] do Print(i," ",NumberSmallGroups(2^i),"\n"); od;

Here's another way to do the same thing. First define a function which
outputs for certain integers determined by GAP (including all n<2002)
the pair [n,#n] where #n is the number of groups of order n. Then use
that function.

gap> GroupsOfOrder:=function(n)     # number of groups of order n 
> return [IdFunc(n), NumberSmallGroups(n) ]; 
> end;;

gap> GroupsOfOrder(9); [ 9, 2 ]

gap> List([4..60], GroupsOfOrder);

Explore at your leisure.

************************************

For references (some historical, some recent) on the problem of 
constructing groups of a given order, check out

http://www.research.att.com/projects/OEIS?Anum=A000001

