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