##### 1

Build every subgroup of the alternating group on 5 symbols, \(A_5\), and check that each is not a normal subgroup (except for the two trivial cases). This command might take a couple seconds to run. Compare this with the time needed to run the `.is_simple()` method and realize that there is a significant amount of theory and cleverness brought to bear in speeding up commands like this. (It is possible that your Sage installation lacks GAP's “Table of Marks” library and you will be unable to compute the list of subgroups.)

##### 2

Consider the quotient group of the group of symmetries of an \(8\)-gon, formed with the cyclic subgroup of order \(4\) generated by a quarter-turn. Use the `coset_product` function to determine the Cayley table for this quotient group. Use the number of each coset, as produced by the `.cosets()` method as names for the elements of the quotient group. You will need to build the table “by hand” as there is no easy way to have Sage's Cayley table command do this one for you. You can build a table in the Sage Notebook pop-up editor (shift-click on a blue line) or you might read the documentation of the `html.table()` method.

##### 3

Consider the cyclic subgroup of order \(4\) in the symmetries of an \(8\)-gon. Verify that the subgroup is normal by first building the raw left and right cosets (without using the `.cosets()` method) and then checking their equality in Sage, all with a single command that employs sorting with the `sorted()` command.

##### 4

Again, use the same cyclic subgroup of order \(4\) in the group of symmetries of an \(8\)-gon. Check that the subgroup is normal by using part (2) of Theorem 10.3. Construct a one-line command that does the complete check and returns `True`. Maybe sort the elements of the subgroup `S` first, then slowly build up the necessary lists, commands, and conditions in steps. Notice that this check does not require ever building the cosets.

##### 5

Repeat the demonstration from the previous subsection that for the symmetries of a tetrahedron, a cyclic subgroup of order \(3\) results in an undefined coset multiplication. Above, the default setting for the `.cosets()` method builds right cosets — but in this problem, work instead with left cosets. You need to choose two cosets to multiply, and then demonstrate two choices for representatives that lead to different results for the product of the cosets.

##### 6

Construct some dihedral groups of order \(2n\) (i.e. symmetries of an \(n\)-gon, \(D_{n}\) in the text, `DihedralGroup(n)` in Sage). Maybe all of them for \(3\leq n \leq 100\). For each dihedral group, construct a list of the orders of each of the normal subgroups (so use `.normal_subgroups()`). You may need to wait ten or twenty seconds for this to finish - be patient. Observe enough examples to hypothesize a pattern to your observations, check your hypothesis against each of your examples and then state your hypothesis clearly.

Can you predict how many normal subgroups there are in the dihedral group \(D_{470448}\) without using Sage to build all the normal subgroups? Can you *describe* all of the normal subgroups of a dihedral group in a way that would let us predict all of the normal subgroups of \(D_{470448}\) without using Sage?