Build every subgroup of the alternating group on 5 symbols, A5, 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.)
Here, it is only true in the trivial cases e and 1.
The is simple argument took far less time, although the normal subgroup one did not take too long either for my computer.
Subgroup generated by [()] of (Alternating group of order 5!/2 as a permutation group)
Subgroup generated by [(2,4)(3,5), (1,2,5)] of (Alternating group of order 5!/2 as a permutation group)
CPU times: user 163 ms, sys: 31.6 ms, total: 194 ms
Wall time: 239 ms
CPU times: user 175 µs, sys: 80 µs, total: 255 µs
Wall time: 264 µs
In [ ]:
In [ ]:
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.
defcoset_product(i,j,C):""" Given: indices `i` and `j` within the list `C` of cosets. - Multiply the 0th element from each coset. - Call the result `p`. - Return the index of the first (and only!) coset in `C` in which `p` lies. """p=C[i]*C[j]cosets=[kforkinsrange(len(C))ifpinC[k]]returncosetsdefcosets_cayley_table(C):""" Try to build a cayley table, given a list `C` of cosets of some group. """n=len(C)mat=matrix(vector([var('x')]+range(n)))foriinrange(n):row=[i]forjinrange(n):k=coset_product(i,j,C)row.append(k)mat=mat.stack(matrix([row]))mat.subdivide(1,1)returnmat
This is not a Cayley table because in the last row, there are multiple 3's but in a true Cayley table, there is only one character seen in ecah line and row of its kind.
In [ ]:
In [ ]:
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.
printlist(N)g=G('(1,2,3,4,5,6,7,8)')printsorted(g*kforkinN)# a left cosetall([sorted(g*kforkinN)==sorted(k*gforkinN)forginG])