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.

  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.

  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.

  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.

  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.

  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.
            [Use 'less than' sign instead of '('.] 
  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.

  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.)

  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.

  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 **