Subgroups restart:with(GroupTheory):with(plots): We use the command AllSmallGroups to obtain a listing of all subgroups of order 8. This command works up to order 511. L8:=AllSmallGroups(8); The group is given in terms of permutations, which we study in Chapter 5. We pick out the third group in the list. G1:=L8; DrawCayleyTable(G1); Here the Cayley table is given in terms of the elements. But we can do the following. DrawCayleyTable(G1,labels=letters); Or the following. DrawCayleyTable(G1,labels=numbers); We check to see if the group is Abelian. IsAbelian(G1); We go back to the dihedral group of order 8. G2:=DihedralGroup(4); We redraw its Cayley table. DrawCayleyTable(G2,labels=letters); This command tells us which small group in the database matches our group. IdentifySmallGroup(G2); So this is the same group we have been working with. We use the command AreIsomorphic to check whether these groups are really the same (isomorphic), except for possibly changed names. AreIsomorphic(G1,G2); Next, we look at the fourth group of order 8. G3:=L8; We draw its Cayley table. DrawCayleyTable(G3,labels=letters); The center of a group is always the subgroup in the upper left corner, as marked by the black lines. We check to see if this is also isomorphic to the dihedral group of order 8. AreIsomorphic(G3,G2); s:=SubgroupLattice(G2); We are told there are 10 subgoups, but are not given what they are. We convert this structure to a list to see the subgroups.. convert(s,'list'); However, we can draw a table of their structure. To do so, we must the GraphTheory package with(GraphTheory); We convert our subgroup lsattice to a graph, and then draw the graph. graph1 := convert(s, 'graph'); DrawGraph(graph1); Starting from the bottom, there is one subgroup ,of order 1, five subgroups of order 2, three subgroups of order 4, and one subgroup of order 8 (the whole group).