GROUP-LAB Overview Demonstration

Below is the output produced when the DEMO feature of GROUP-LAB is used to present the OVERVIEW.GLD demonstration file.

  GROUP-LAB is a command-oriented program for experimenting with 
  small finite groups of orders not exceeding 250.  At start-up a 
  default group, the octohedral group, isomorphic to the symmetric 
  group S4, is initialized.  User-defined groups may be introduced 
  almost at will by specifying an appropriate set of relations in up 
  to four generators, in a manner to be illustrated later in this 
  demo.  We may display the defining relations and order of the 
  currently defined group by entering the command "?".
 
GL> ?
    [aaaa,bb,ababab]
    24 elements

  Group elements are denoted by integers 1,2,... n, where 1 is the 
  group identity and n is the order of the group.  The currently 
  defined group can always be referenced by the  name "z", and its 
  elements displayed by entering "z".
 
GL> z
   {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24}

 
* PAUSE - Press any key to continue *

GL> cls

  Aside from the name Z representing the entire group, other user 
  names for sets of elements, numbers, etc. are A, B, C, D, X, and Y. 
  These are NOT case sensitive, so a is equivalent to A.  An 
  assignment command can be used to define one of these variable 
  names.  The assignment operator is ":='.  Here is a simple example.
 
GL> a:=3

  An assignment does not cause a variable to be displayed, but simply
  entering its name as a command does.  In a command, all text
  following a semicolon (;) is understood to be a comment.
 
GL> a ; Here is set A.
   {3}

  The set union operator may be used to form larger sets.
 
GL> a:=a+1 ; Add the identity to A.

GL> a ; This is now the value of A.
   {1,3}

 
* PAUSE - Press any key to continue *

GL> cls

  The group composition operator is denoted by * and may be thought 
  of as the group product.
 
GL> 2*3 ; The product 2 times 3 (in that order).
   {1}

  Let's now find a subgroup of the current group.
 
GL> a ; display A again.
   {1,3}

  A product of sets is defined as the set of all products of single 
  elements, one from each set, in the indicated order.  Also, the 
  symbol @ denotes the most recently displayed or assigned set, so 
  @*@ denotes A*A.
GL> @*@ 
   {1,3,5}

GL> @*@ ;  Repeat until no new elements are obtained.
   {1,2,3,5}

* PAUSE - Press any key to continue *

GL> cls

GL> @*@ ; Repeat until no new elements are obtained.
   {1,2,3,5}

GL> @*@
   {1,2,3,5}

  Note that we have found a set that is closed under the group 
  operation, so it must be a subgroup of Z.  Let's confirm this with
  the ISSUBG(A,Z) command.
 
GL> issubg(@,z)
   True

 
  GROUP-LAB has a built-in command, SUBS, for finding ALL subgroups.
  We can use it to show that the subgroup {1,2,3,5} that we found
  above is just one of the 30 subgroups of the current group.
 
* PAUSE - Press any key to continue *

GL> cls

GL> subs(z) ; This takes 5-6 seconds on a 66 MHz pentium machine.
  (1){1}[1]  (2){1,2,3,5}[4]  (3){1,2,3,5,20,22,23,24}[8]  (4){1,4}[2]  (5){1,
4,5,10,15,20,21,24}[8]  (6){1,4,12,16,19,23}[6]  (7){1,4,13,17,18,22}[6]  (8){
1,4,21,24}[4]  (9){1,5}[2]  (10){1,5,6,7,8,9,16,17,18,19,20,24}[12]  (11){1,5,
11,12,13,14,20,24}[8]  (12){1,5,20,24}[4]  (13){1,5,22,23}[4]  (14){1,6,9}[3]
  (15){1,6,9,13,21,23}[6]  (16){1,7,8}[3]  (17){1,7,8,12,21,22}[6]  (18){1,10,
15,24}[4]  (19){1,11,14,20}[4]  (20){1,12}[2]  (21){1,12,13,20}[4]  (22){1,13}
[2]  (23){1,16,19}[3]  (24){1,17,18}[3]  (25){1,20}[2]  (26){1,21}[2]  (27){1,
22}[2]  (28){1,23}[2]  (29){1,24}[2]  (30) Arg[24]
     4.73 seconds

  The first proper subgroup listed is the one we found above.  Each
  subgroup found by SUBS may be referenced by the symbol H(n), where
  n is the indicated number of the subgroup.  Thus h(2) denotes the
  subgroup found above.  Arg refers to the argument of SUBS( ).
 
GL> h(2)
   {1,2,3,5}

 
* PAUSE - Press any key to continue *

GL> cls

  We can now illustrate the fact that the intersection of two
  subgroups of a given group is also a subgroup of that group.
  We first recall the subgroups h(3) and h(5).
 
GL> h(3)
   {1,2,3,5,20,22,23,24}

GL> h(5)
   {1,4,5,10,15,20,21,24}

GL> h(3)&h(5); Intersect. of H2 and H4. Note the intersection operator
   {1,5,20,24}

GL> h(12) ;  Showing that h(3) intersect h(5) equals h(12).
   {1,5,20,24}

 
* PAUSE - Press any key to continue *

GL> cls

  Recall the definition of coset of a subgroup as the set of elements
  formed by the products of a given fixed element with the elements
  the subgroup.  
 
GL> 2*h(2) ; The coset 2 times h(2).
   {1,2,3,5}

GL> 3*h(2) ; The coset 3 times h(2).
   {1,2,3,5}

GL> 4*h(2) ; ...etc
   {4,8,9,15}

GL> 5*h(2)
   {1,2,3,5}

  The current default group contains 24 elements, so there are 24
  cosets, not all of them distinct.
 
  GROUP-LAB has the command COSETS(h(2),z) which lists ALL distinct
  cosets of h(2) in Z.
 
* PAUSE - Press any key to continue *

GL> cls

GL> cosets(h(2),z) ; Find and display all cosets of h(2) in Z.
   Coset representatives: {1,4,6,7,10,20}
   Cosets:   {1,2,3,5}  {4,8,9,15}  {6,11,12,18}  {7,13,14,19}  {10,16,17,21}
  {20,22,23,24}

  The command GRAPH(A) causes a Cayley diagram/graph of the current
  group to be calculated an displayed.  When the graph is completed,
  press A to show arrows indicating the direction of mapping of an
  element (vertex) by a generator, then press X to eXit the graph.
 
* PAUSE - Press any key to continue *

GL> cls

GL> graph(z)

[OF COURSE, THE GRAPH DOES NOT SHOW UP IN THE OUTPUT "DIARY" TEXT FILE.]

  In order to illustrate certain features of GROUP-LAB, it would be
  nice to have a smaller group, so we will now switch to the 16-
  element dicyclic group Q8.  This group is generated by the elements 
  x and y satisfying the relations xxxxxxxx=1, yyXXXX=1, and yxYx=1, 
  where uppercase letters denote the inverses of the corresponding 
  lowercase letters.  The correct syntax for entering this into 
  GROUP-LAB is shown in the next command.
 
GL> gdef:=[xxxxxxxx,yyXXXX,yxYx]
  16 Elements


  The TABLE command in GROUP-LAB displays the full composition 
  (product) table of the current group.
 
* PAUSE - Press any key to continue *

GL> table(z)
         1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16
      ----------------------------------------------------------------
   1 |   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16
   2 |   2   6   1   7   8  13  14  15   3   4   5  16  12  11  10   9
   3 |   3   1   9  10  11   2   4   5  16  15  14  13   6   7   8  12
   4 |   4  10   7  12   1  15  13   3  14  16   2   5   8   6   9  11
   5 |   5  11   8   1  12  14   3  13  15   2  16   4   7   9   6  10
   6 |   6  13   2  14  15  12  11  10   1   7   8   9  16   5   4   3
   7 |   7   4  14  16   2  10  12   1  11   9   6   8  15  13   3   5
   8 |   8   5  15   2  16  11   1  12  10   6   9   7  14   3  13   4
   9 |   9   3  16  15  14   1  10  11  12   8   7   6   2   4   5  13
  10 |  10  15   4  13   3   8   6   9   7  12   1  11   5   2  16  14
  11 |  11  14   5   3  13   7   9   6   8   1  12  10   4  16   2  15
  12 |  12  16  13   5   4   9   8   7   6  11  10   1   3  15  14   2
  13 |  13  12   6  11  10  16   5   4   2  14  15   3   9   8   7   1
  14 |  14   7  11   9   6   4  16   2   5   3  13  15  10  12   1   8
  15 |  15   8  10   6   9   5   2  16   4  13   3  14  11   1  12   7
  16 |  16   9  12   8   7   3  15  14  13   5   4   2   1  10  11   6


* PAUSE - Press any key to continue *

GL> cls

  A more informative (and attractive) display is provided by the 
  CTABLE command, which re-orders the elements according to the 
  cosets of a specified subgroup and then displays the group table 
  in color, all elements of the same coset having the same color.
  The command COMMSUB calculates the commutator subgroup.
 
GL> commsub(z) ; Display the commutator subgroup of Z.
   {1,6,9,12}

GL> a:=@ ; Assign COMMSUB(z) to A.

 
  The CTABLE command will now be used to re-order elements according 
  to the cosets of A and color elements according the the coset of 
  which they are a member. 
 
* PAUSE - Press any key to continue *

GL> ctable(z,a)
         1   6   9  12   2   3  13  16   4   5  14  15   7   8  10  11
      ----------------------------------------------------------------
   1 |   1   6   9  12   2   3  13  16   4   5  14  15   7   8  10  11
   6 |   6  12   1   9  13   2  16   3  14  15   5   4  11  10   7   8
   9 |   9   1  12   6   3  16   2  13  15  14   4   5  10  11   8   7
  12 |  12   9   6   1  16  13   3   2   5   4  15  14   8   7  11  10
   2 |   2  13   3  16   6   1  12   9   7   8  11  10  14  15   4   5
   3 |   3   2  16  13   1   9   6  12  10  11   7   8   4   5  15  14
  13 |  13  16   2   3  12   6   9   1  11  10   8   7   5   4  14  15
  16 |  16   3  13   2   9  12   1   6   8   7  10  11  15  14   5   4
   4 |   4  15  14   5  10   7   8  11  12   1   6   9  13   3  16   2
   5 |   5  14  15   4  11   8   7  10   1  12   9   6   3  13   2  16
  14 |  14   4   5  15   7  11  10   8   9   6  12   1  16   2   3  13
  15 |  15   5   4  14   8  10  11   7   6   9   1  12   2  16  13   3
   7 |   7  10  11   8   4  14  15   5  16   2  13   3  12   1   9   6
   8 |   8  11  10   7   5  15  14   4   2  16   3  13   1  12   6   9
  10 |  10   8   7  11  15   4   5  14  13   3   2  16   6   9  12   1
  11 |  11   7   8  10  14   5   4  15   3  13  16   2   9   6   1  12


  Notice that distinct colors occur in unbroken blocks.  This is 
  because A is a normal subgroup of Z.  
[UNFORTUNATELY, THE COLORS DO NOT SHOW UP IN THIS OUTFILE]

* PAUSE - Press any key to continue *

  Of course, the table of color blocks can be interpreted as the 
  quotient qroup Z/A.
* PAUSE - Press any key to continue *

GL> cls

  GROUP-LAB demonstrations such as this, covering any appropriate 
  aspect of elementary group theory, can be easily written with any
  text editor.  From within GROUP-LAB, the command "$edit mydemo.gld" 
  opens the MS-DOS text editor for editing the demonstration file
  MYDEMO.GLD.  This permits easy switching between editing the file
  and actually executing it as a demo.  Or you may replace EDIT with
  the name of your favorite text editor.
 
  In addition, GROUP-LAB environments, with embedded macro files that
  contain mini-demonstrations or carry out repetitive calculations
  with rudimentary flow control, can be saved to disk with the SAVE
  command and retrieved with the LOAD command.  Such files should have
  the extension .GLE, in which case they may be listed with the DIR
  command.  
 
* PAUSE - Press any key to continue *

GL> cls

GL> dir ; List all previously saved GROUP-LAB environments.
  FILE1.GLE      G48_1.GLE      ICOSAHED.GLE   FILE2.GLE      GRAPH6.GLE   
  ORD125G3.GLE   FILE3.GLE      FILE4.GLE      PRETTY96.GLE   SYLOV1.GLE   
  NUMSOL1.GLE    COMMSER.GLE    NRMLSUB1.GLE   NRMLPROP.GLE   GRAPH2_2.GLE 
  GRAPH2_3.GLE   CHAN1.GLE      CONSUBS.GLE    GRAPH2_1.GLE   GRAPH2_4.GLE 

  Let's now load in the file NRMLSUB1.GLE, which will find and list 
  the normal subgroups of the tetrahedral group.
 
GL> load
  24 Elements

  This file has an embedded macro1 that tests each of the 28 proper
  subgroups and lists those that are normal.  The macro can be
  executed by the command EXEC(1) or by the short command "/"
  which also executes macro1. 
* PAUSE - Press any key to continue *

GL> cls

GL> / ; Execute macro1.

; FIND ALL NORMAL SUBGROUPS OF THE CURRENT GROUP
; First find all subgroups of the current group.
  (1){1}[1]  (2){1,2,3,5}[4]  (3){1,2,3,5,20,22,23,24}[8]  (4){1,4}[2]  (5){1,
4,5,10,15,20,21,24}[8]  (6){1,4,12,16,19,23}[6]  (7){1,4,13,17,18,22}[6]  (8){
1,4,21,24}[4]  (9){1,5}[2]  (10){1,5,6,7,8,9,16,17,18,19,20,24}[12]  (11){1,5,
11,12,13,14,20,24}[8]  (12){1,5,20,24}[4]  (13){1,5,22,23}[4]  (14){1,6,9}[3]
  (15){1,6,9,13,21,23}[6]  (16){1,7,8}[3]  (17){1,7,8,12,21,22}[6]  (18){1,10,
15,24}[4]  (19){1,11,14,20}[4]  (20){1,12}[2]  (21){1,12,13,20}[4]  (22){1,13}
[2]  (23){1,16,19}[3]  (24){1,17,18}[3]  (25){1,20}[2]  (26){1,21}[2]  (27){1,
22}[2]  (28){1,23}[2]  (29){1,24}[2]  (30) Arg[24]
     4.72 seconds
;--------------------------------------------------------------
; Listing Normal Subgroups
  {1}
  {1,5,6,7,8,9,16,17,18,19,20,24}
  {1,5,20,24}
  {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24}
 
  You may view the macro with the command DEFM(1).
 
  Fewer than half of the commands and operations of GROUP-LAB have
  been used in this demonstration.  The others are left for you to
  learn as you work with the program.  Don't forget the HELP and QUIT
  commands.  Just enter HELP or QUIT, followed by the  key.
* PAUSE - Press any key to continue *

GL> cls


GL> out:=off
[This ends the OVERVIEW demonstration]