## GROUP-LAB Help File

A few of the commands and operations listed below may not be implemented in the version of GROUP-LAB currently available for downloading.
```GROUP-LAB is a general-purpose program for experimenting with finite groups
of order up to 250.  It is fully command- rather than menu- or token- driven.
This requires a somewhat greater initial learning effort, but results in a
noticeably more efficient and enjoyable interface once this has been done.
If this is your first time using GROUP-LAB, it is recommended that you run the
OVERVIEW demonstration.  Type Q to end this HELP display, then enter DEMO.
Next enter OVERVIEW.GLD to see a demonstration of many of the features of
the program.

GENERAL OPERATION:
There are seven general-purpose user variable names available in GROUP-LAB,
A, B, C, D, X, Y, and Z.  These are not case-sensitive, so a=A, etc.  Z should
be used only as a last resort, since it always stores the set of elements of
the current group as calculated by the Todd-Coxeter algorithm at boot-up or
in response to the GDEF:=... command.  Group elements are denoted by integers
1, 2, ..., GroupSize.  Keyboard entry of integers are always interpreted as
these group elements except when enclosed in brackets.  Thus A:=3 defines A
as the singleton set {3}, whereas A:=[3] defines A as the real number 3.  In
the assignment of A to a conditional such as A:=(B=C), A denotes TRUE if B=C
and FALSE if A<>C.

GROUP CALCULATION COMMANDS:
CC(n)        Returns the nth conjugacy class calculated by CONJCL(A).
CENT(A,B)    Returns the Centralizer of set A in group B.
CENTER(A)    Returns the Center of group A.
COMMSUB(A)   Returns the Commutator subgroup of group A.
CONJCL(Z)    Finds the conjugacy equivalence classes in Z. A maximum of
30 classes are stored.  They may be referenced by CC(n).
CONJ(A,B,Z)  Finds and displays the set of all elements x in Z with respect
to which A is conjugate to B (i.e. x*A*inv(x)=B).  The normal-
izer of set A in group Z is returned by CONJ(A,A,Z).
COSETS(A,B)  Lists the (left) cosets of subgp A in gp B.
CTABLE(A,B)  Re-orders the elements of A according to the cosets of the
subgp B, colors elements of distinct cosets with distinct
colors, and displays in color the group table for gp A.
ENDODEF      Define an endomorphism MAP.  The user is prompted for the
images of elements in a set of generators.

GROUP CALCULATION COMMANDS (Continued)
GDEF:=  Define a group by a set of up to 9 relations rel1,
rel2,... ,rel9, on a set of up to 4 generators.  Relations
are words of length up to 20 that are equivalent to the
identity 1.  Generators may be any letter of the alphabet in
upper or lower case (u.c. and l.c. represent inverses of each
other).  Ex.: gdef:= gives the dihedral gp D4.
The total length of the GDEF command string may not exceed 70.
GENS(B)      Returns a set of generators for the group B.
GENSUB(A)    Returns the subgp generated by the elements in the set A.
GRAPH(A)     Draws a Cayley diagram/graph of group A.
H(n)         Returns the nth subgroup calculated by SUBS(A).
INNER(x)     Defines the inner automorphism map(a)=x*a*inv(x) for use in MAP.
INV(A)       Returns the inverse of the element A.
ISABEL(A)    Tests whether the group/subgroup A is Abelian.
ISNORM(A,B)  Tests whether A is normal in B - returns True/False.
ISSUBG(A,B)  Tests whether A is a subgp of B - returns True/False.

GROUP CALCULATION COMMANDS (Continued)
LATTICE      Displays, for each subgroup H, the list of all maximal
subgroups contained in H.
LIB          Displays list of groups in the group library file GROUP.LIB
and permits loading one of them into GROUP-LAB.
MAP(A)       Maps the set A by the endomorphism defined by ENDODEF or INNER.
Tests whether an endomorphism is an automorphism and, if so,
whether it is inner.
ORD(A)       Returns the orders of the elements in set A.
QTABLE(A,B)  Displays the table for the quotient group A/B in terms of
representatives of the cosets of B in A.
QUOT(A,B)    Returns representatives of cosets in the quotient group A/B.
SUBS(A)      Lists ALL subgroups in the set A. (About 5 secs. on a 66MHz
pentium for 28 sbgps of the octohedral gp of order 24.)
A max of 130 subgps is stored.  They may be referenced by
h(n) for n=1,2,...,gsiz, or h([n]), n=1,2,...,130.
TABLE(A)     Displays the group table for A.
WORD(A)      Displays the words that express the elements of A in terms of
the defining generators of the group.
?            Returns the current group definition and size.

ELEMENT, SET, and NUMERIC OPERATIONS AND FUNCTIONS:
a*b     Product of elements a and b, in that order.
a+b+c   Set of elements a, b, and c.  Ex: B:=3+5+6 defines B as {3,5,6}.
[2+3], [A+3]  Addition of real numbers (A is assumed real).
(Similarly for subtraction.)
[2*3], [A*B]  Multiplication of real numbers (A,B assumed real).
[A]     Numeric value of the real number A. Also, the number of elements
in set A.  Example: [h(5)] is the order of the subgroup H(5).
A+B     Union of sets A and B.
A-B     Set difference - the set of elements in A but not in B.
A&B     Intersection of sets A and B.
A*B     The set { a*b| a in A, b in B}
A^[n]   The nth power of A.  Ex: (2+3)^[3] gives {2,3}*{2,3}*{2,3}.
A=B     TRUE if A=B, otherwise FALSE.
A(B     TRUE if A is contained in B, otherwise FALSE.
A>B     TRUE if A contains B, otherwise FALSE.
SUCC(a)  Returns element {n+1} if a is element {n}.  SUCC({})={1},
and SUCC({order})={} where order is the size of the group.

GENERAL COMMANDS:
CLS       Clears the screen.
DEMO      Permits the automatic execution of a script (text) file of
GROUP-LAB commands.  Previously saved files with extension
*.GLD are listed and the user is prompted for the name of
the desired demo.  Demo files of arbitrary length may be
created with an ascii text editor.  For branching, use a
macro (see next screen).
DELAY([n])  Causes a delay of n milliseconds.  Useful in a macro or demo.
DIR       Display directory of saved GROUP-LAB environment (*.GLE) files.
HELP      Display this and subsequent help screens.
LOAD      Load a previously saved *.GLE file. Enter the filename only
when prompted.
OUT:=filnam  Opens file "filnam" for output of the subsequent portion of
the current session.  OUT:=off terminates the output process.
SAVE      Save the current GROUP-LAB environment.  The current group is
saved, together with all variables A,B,C,D,X,Y,Z, and any
embedded macro currently defined.  Enter the filename only
when prompted.
QUIT      Quit GROUP-LAB and return to MS-DOS
\$[command]   Executes [command] via the MSDos command interpreter.
Examples: \$dir *.deq, \$edit file1, \$copy f1 f2, etc.
(Note: COMMAND.COM must be present.)

MACRO COMMANDS:
DEFM(n)   Enter the Macro Editor for creating or editing Macro(n) with up
to 20 lines of valid GROUP-LAB commands, where n is 1,2, or 3.
DELM(n)   Delete Macro(n)., n=1,2, or 3.
ECHO;[comment]  In a macro, echoes the comment to the screen.
ECHO:=[on/off]  If ON, ALL lines are echoed, else ONLY ECHO;... lines.
EXEC(n)   Execute Macro(n), n=1...3.
/         Abbreviation for EXEC(1).
IF(cond,n1,n2) In a macro, branches to line n1 if cond is TRUE or has a
real positive value, and to line n2 otherwise.
Example:  IF(X=0,15,5) causes a jump to line 15 if x=0 ({})
and to line 5 otherwise.  n1 and n2 are automatically
interpreted as integers, so do NOT enclose in brackets.
PAUSE     In a demo. or a macro, pauses exec. until a key is pressed.

OTHER FEATURES:
COMMENTS: All characters after ';' in a command will be ignored.  This
feature permits the display of comments along with a command.
Explanations may be given in this way in macro or demonstration files.
All assignment commands require the assignment operator ':='.
Examples:  a:=2+6+7 defines A as {2,6,7}.
b:=commsub(z) defines B as the commutator subgroup of the
current group.
The integer 0 is interpreted as the empty set, so A:=0 gives {} for A.
Bracketed integers are interpreted as real integers and NOT as group
elements.  Examples:  A^[3] is A*A*A;  DELAY([1000]) delays 1 second.
The DEFAULT group defined by GDEF:=, the octohedral group,
is defined at boot-up.

** End of Help **
```