[Up] [Next] [Index]

# 4.1 The Subgroup Lattice of the Dihedral Group of Order 8

This section gives you an example on how to use the function `GraphicSubgroupLattice` (see GraphicSubgroupLattice for details), which will display the Hasse diagram of the subgroup lattice of a given group.

Using the dihedral group of size 8 as example the following will show you most features of the `GraphicSubgroupLattice` program. This exercise is best carried out in front of XGAP, trying the various commands yourself.

First you have to define a group in GAP, this example uses a dihedral group defined as polycyclic group.

    gap> d8 := DihedralGroup(8);
    <pc group of size 8 with 3 generators>
    gap> SetName(d8,"d8");

Now you ask for a graphical display by

    gap> s := GraphicSubgroupLattice(d8);
    <graphic subgroup lattice "GraphicSubgroupLattice of d8">

XGAP will open a window containing a new graphic sheet, a menu bar (menus are described below) above the graphic sheet and a title. On most systems the title will be either below the graphic sheet or above the menu bar. The dimension of the graphic sheet is fixed, changing the size of the window will not change the size of the graphic sheet, see GraphicSubgroupLattice, Poset Menu how to resize the graphic sheet. It is possible that the graphic sheet is larger (depending on the lattice it might be much larger) than the window. In this case the window will contain so called scrollbars which allow you to select the portion of the graphic sheet which will be displayed.

XGAP first shows only the whole group (which is already selected) and the trivial subgroup, connected by a line indicating inclusion.

`ConjugacyClassesSubgroups` computes and returns the conjugacy classes of subgroups, so summing up the sizes of the classes tells you how many elements the lattice has.

        gap> Sum( List( ConjugacyClassesSubgroups(d8), Size ) );
        10

10 is small enough to use `AllSubgroups` without painting the screen black. After you have clicked this menu entry in the `Subgroups` menu you see the complete Hasse diagram in the graphic sheet.

The following initial remarks can be made about the graphical representation of the subgroup lattice:

--
  The vertex representing the trivial subgroup is labeled 1.

--
  Vertices representing subgroups of the same size are drawn at the same height. They are said to be ``on the same level''. In our example the subgroups that belong to the vertices 2, 4, 5, 8 and 9 all have size 2, and the subgroups of 3, 6, and 7 have size 4. The default behaviour is to place a vertex above another one if the size of the subgroup represented by the first vertex is larger than the size of the subgroup of the second, but see GraphicSubgroupLattice for details. At the right edge of the graphic sheet each level is labeled with the index of the subgroups contained. See levelsintro for details on the labelling of levels.

--
  Vertices belonging to the same conjugacy class are placed closely together. In our example the subgroups of 4 and 5 form one conjugacy class.

The initial placement of the vertices chosen by `GraphicSubgroupLattice` might not be optimal or you might want to choose a different one in order to exploit certain features of the diagram. It is therefore possible to move the vertices around using the mouse.

The mouse together with the left mouse button can be used to move and select vertices. A selected vertex is represented by a thicker circle, colored red if your screen supports color. For example, in order to move vertex 4 use the mouse to place the pointer inside the circle around 4 and press the left mouse button. Keep the mouse button pressed and start moving the mouse. The vertex will now follow the pointer. Because of the height restrictions given by the size it is not possible to move 4 above 6 or below 1. It must always stay within its level. If you release the left mouse button vertex 4 will stay at its current position and the rest of the conjugacy class (in this example 5) will be moved to this new position.

In order to select vertex G place the pointer inside the diamond around G, press the left mouse button and release it immediately. Do not move the mouse while you hold down the left mouse button. Vertex G now has a slightly thicker boundary and is red if you have a color screen. There are two different ways to select more than one vertex, see A Partial Subgroup Lattice of the Symmetric Group on 6 Points or GraphicSubgroupLattice, Selecting Vertices.

On the top of the window, above the graphic sheet, you can see a list of menu names: `Sheet`, `Poset`, and `Subgroups`. In order to open any of these pull down menus place the pointer inside the button containing the menu name and press the left mouse button. Keep the button pressed. A pull down menu will be shown and by moving the pointer down you can choose a menu entry. By choosing an entry and then releasing the mouse button the entry is selected, the corresponding function is executed and the pull down menu is closed. If you release the mouse button while the pointer is outside the pull down menu the menu is closed without selecting any entry. Note that this behaviour is different from that of some other graphical user interfaces such as for example Windows.

Now select `Change Labels` from the `Poset` menu. If this entry is not available you have failed to select vertex G. After selecting `Change Labels` a small dialog box is opened asking for a label. Type in `D8` and press the return key or click on `OK`. The label of vertex G will now be changed to ``D8''. Note that in the X Window System you have to move the pointer on the text field if you want to edit the label.

In order to find out which vertex represents the centre of D8, first select vertex D8 and then the menu entry `Centres` from the `Subgroups` menu. In case of a color screen, vertex D8 will be selected and colored red, and vertex 2 will be colored green. The color green indicates that vertex 2 is the result of a computation. There will also be a message in the GAP window saying that vertex 2 represents the centre of the group belonging to vertex D8.

    #I  Centres (D8) --> (2)

Most of the menu entries in `Subgroups` should be self-explanatory, for details and the difference between `Closure` and `Closures` see GraphicSubgroupLattice, Subgroups Menu.

If you have selected some vertices (in the example D8 is now selected), and you want to investigate the subgroups corresponding to these vertices further in GAP, the function `SelectedGroups` will return a list of these subgroups (note that you can also achieve calling this function by selecting `SelectedGroups to GAP` in the `Subgroups` menu):

labelgapxgap

    gap> SelectedGroups(s);
    [ d8 ]

On the other hand, the functions supplied via the `Subgroups` menu are by far not all functions applicable to groups. In order to show results of a computation in GAP in the diagram, you can use `SelectGroups`. The function `SelectGroups` allows you to mark any set of subgroups of D8 in the diagram.

For instance, you can compute the lower central series of this (nilpotent) group in GAP.

    gap> l := LowerCentralSeries(d8);
    [ d8, Group([ f3 ]), Group([ <identity> of ... ]) ]
    gap> SelectGroups(s,l);

This lower central series corresponds to the vertices D8, 2 and 1 which will now be selected. If, as it is not the case in this example, the subgroups are not yet depicted in the lattice, a warning appears in the GAP command window. You have to use `InsertVertex` to insert a new vertex into the lattice (note that you can also achieve this by selecting `InsertVertices from GAP` in the `Subgroups` menu, see section InsertVertex for the complete description of this function or section xgapgap for an example).

To summarize the above: the function `SelectedGroups` can be used to transfer information from the diagram to GAP, the functions `SelectGroups` and `InsertVertex` can be used to transfer information from GAP to the diagram.

In order to finish this example, close the window by selecting `close graphic sheet` from the `Sheet` menu. This will close the window containing the Hasse diagram of D8.

In this example you have learned, how to display the Hasse diagram of the subgroup lattice of a group using `GraphicSubgroupLattice`, how to use the mouse to move and select vertices, how to select a menu entry and how to transfer information between the Hasse diagram and GAP using `SelectGroups` and `SelectedGroups`.

In order to learn more about the menus `Sheet` and `Poset`, which were only mentioned very briefly, see GraphicSubgroupLattice, Sheet Menu, and GraphicSubgroupLattice, Poset Menu.

[Up] [Next] [Index]