# Right Cosets

Posted 8 years ago
8359 Views
|
3 Replies
|
1 Total Likes
|
 For G a subgroup of S(n) -- the symmetric group on n-letters -- does the code below return all right cosets of G in S(n)? cosets = GroupOrbits[G, GroupElements@Sn, PermutationProduct[#1, #2] &]; If so, is there another way to obtain the cosets?The code seemed to work until I hit an example for n = 7, at which time Mathematica disputed GAP ... and that ain't good, which means I may not correctly understand how to use the third argument in GroupOrbits.Thankx.
3 Replies
Sort By:
Posted 8 years ago
 Yes, Bruce. That's correct, and a good way to express it.Jose.
Posted 8 years ago
 Thanks for the reply Jose. Let's make sure I understand.Let G be a group and X be a pointlist.The GroupOrbits documentation addresses GroupOrbits[G, X, f[X-element, G-element]]. Thus X-elements and G-elements are referenced by #1 and #2 respectively -- their positions as f-arguments. Since left cosets of G have form x G={x g: g in G}, each term x g is given by PermutationProduct[#1, #2].Since right cosets of G have form G x={g x: g in G}, each term g x is given by PermutationProduct[#2, #1].Did I get this right? If so, I'll tell Tech Support to ignore the notebook sent Sunday evening. After it was sent, it occurred to me to check with Wolfram Community -- and I'm glad I did! I had twisted around the #1 and #2 arguments.
Posted 8 years ago
 Hi,I think the construction you gave produces the left cosets. To get the right cosets use PermutationProduct[#2, #1]& in the third argument. This is because the action function f[x, g] in the third argument is a right action so it lets generators g of the group G act on elements x of the orbits (in your case elements of Sn). To construct the right cosets Gx we need to reverse the product. The left cosets xG do not need the reversal of the product.You can check that the cosets are correct by showing that all elements of a given coset have the same canonical representative. A simple example with n = 4: In[1]:= G = DihedralGroup[2]; In[2]:= S4list = GroupElements[SymmetricGroup[4]]; In[3]:= rightcosets = GroupOrbits[G, S4list, PermutationProduct[#2, #1] &]; In[4]:= leftcosets = GroupOrbits[G, S4list, PermutationProduct[#1, #2] &]; Here we see that all representatives (using RightCosetRepresentative) of the same coset coincide: In[5]:= Length /@ DeleteDuplicates /@ Map[RightCosetRepresentative[G, #] &, rightcosets, {2}] Out[5]= {1, 1, 1, 1, 1, 1} That does not happen here: In[6]:= Length /@ DeleteDuplicates /@ Map[RightCosetRepresentative[G, #] &, leftcosets, {2}] Out[6]= {1, 4, 4, 4, 4, 1} If this does not solve the issue, please let us know the particular example that seems to be wrong.Jose.