# Double coset representatives and Magma

I'm trying to use Magma to do a double coset calculation on the group M10, but the answer does not make sense to me. Your help and comments are most appreciated. First, here's the calculation:

(1) M10 has one conjugacy class of order 72 subgroups; pick one and call it T. There is also one class of order 2 subgroups; pick one and call it S.

(2) Denote by $\tau_i$ the representatives of the double coset decomposition $M10 = (T \tau_1 S) \coprod (T \tau_2 S) \coprod$ ...

(3) For each i: Compute the index $[ S^\tau_i: T \cap S^\tau_i ]$ where $S^t$ denotes the conjugate of S by t.

The (unordered) set of these indices is known to be independent of the choice of the tau's. However, when I tried to do this on Magma, I get different answers if I run the same code multiple times. I did run my code using smaller groups and I got the correct answer. I am new to Magma so perhaps I made syntax errors, but I'm totally confused. I've sent along my short code; your help and comments are most appreciative. THANKS!

=== magma code ===

G := SmallGroup(720,765);
S72  := Subgroups(G: OrderEqual:=72);
printf "There are %o class of index 10 subgroups\n",  #S72;
T   := S72subgroup;

S2  := Subgroups(G: OrderEqual:=2);
printf "There are %o class of order 2 subgroups\n",  #S2;
S  := S2subgroup;
printf "Here is the actual order 2 subgroup: %o\n", S;

printf ("Double coset representatives of the order 72 by order 2:  \n");
D2, D2size := DoubleCosetRepresentatives(G, T, S);
D2;

for i := 1 to #D2 do
dtau := S^D2[i];
printf "i=%o: %o\n", i, #dtau / #(T meet dtau);
end for;

• It is doubtful whether this question is suitable for MO, since it is technical rather than mathematical. The answer is that many of Magma's algorithms, including finding subgroups, make use of random choices of group elements, so you would not expect to get the same answer each time. Your subgroups $S$ and $T$ vary from run to run, so it is not surprising that $D$ does! You can achieve reproducibility by setting the random number seed. – Derek Holt May 9 '18 at 7:47
• Many thanks for your comment. This calculation is the group-theoretic translation of an standard algebraic number theory problem: Let L/k be a Galois extension of number fields. Let K be an intermediate subfield, and set T = Gal(L/K). Let P be a prime ideal in (the ring of integers of) L with decomposition group S. Then the collection of indices in my question gives you information about how P\cap k decomposes in K/k. As such we only need to specify S up to conjugation, and in my question T is well-defined up to conjugation, so the set of indices I want to compute is well-defined. – W Sao May 9 '18 at 12:36
• I just realized belatedly that @y.c. edited my initial post, including reformatting the Magma code. Thanks! I actually tried to look up the help page to see how to format computer codes but I couldn't find the instructor. Can anyone point me to the FAQ page that explains how to include/format programs in a MOF post? Thanks! – W Sao May 9 '18 at 19:46
• @WSao: this page is about highlighting code in StackOverflow, But it seems that not activated for MO. – Mahdi May 10 '18 at 9:43

The problem with inconsistent results in the final part of your calculation is not just due to different choices of random elements, as I said in my comment, but probably due to a confusion about the meaning of $S^t$, which is defined to be $t^{-1}St$ in Magma.

Think of the group $S$ as acting by right multiplication on the cosets $Tt$ of $Tt$ of $T$. Then the stabilizer of $Tt$ is $S \cap t^{-1}Tt$, and hence the length of the orbit of $S$, which is what you are trying to calculate, is $|S:S \cap t^{-1}Tt|$, which you could calculate as $|S|/|S \cap T^t|$ in Magma or, if you prefer, $|S^{t^{-1}}|/|S^{t^{-1}} \cap T|$.

So you could correct your code by replacing

dtau := S^D2[i];


by

dtau := S^(D2[i]^-1);


I tried that, and I got consistent results $1,1,2,2,2,2$ (not necessarily in that order) for the indices

• THANK YOU! The number theory result that says that these induces are well-defined indeed requires that we work with $t S t^{-1}$. Upon fixing my codes as you suggested, I got the correct answer! I am a number theorist and I'm not familiar with the fine points/conventions of (computational) algebra, so allow me to ask a naive question: Is there a reason/preference etc to define S^t one way over the other? Thanks! – W Sao May 9 '18 at 13:54
• Magma (and also GAP) use right actions, and $S^t = t^{-1}St$ is usually more convenient for right actions. But left actions are much more common overall in mathematics. A general problem with $S^t = tSt^{-1}$ is that it results in $S^{(tu)} = (S^u)^t$, which is a little confusing. It might work better to use $^{t}S$ for $tSt^{-1}$. – Derek Holt May 9 '18 at 14:02