# How to find the longest word in a subgroup of the symmetric group using Sage?

Let $S_n$ be the symmetric group over $\{1,2,\ldots,n\}$. Let $J$ be a subset of $\{1,\ldots, n-1\}$ and let $W_J$ be the subgroup of $S_n$ generated by $s_j, j\in J \subset \{1, \ldots, n-1\}$, where $s_j$'s are simple reflections. How to find the longest word in $W_J$ in Sage? The following is some codes.

W = SymmetricGroup(8)
[s1,s2,s3,s4,s5,s6,s7] = W.simple_reflections()


Thank you very much.

edit retag close merge delete

Something like the following...?!

sage: S8 = SymmetricGroup(8)
sage: S7 = SymmetricGroup(7)
sage: S8( S7.long_element() )
(1,7)(2,6)(3,5)


Sort by » oldest newest most voted Here is a starting point. The rest is standard Coxeter theory.

sage: W = CoxeterGroup(['A',4])
sage: w = W.long_element()
sage: t = w.coset_representative([1,2])

more

@FrédéricC, thank you very much. I tried to use the following commands to find the longest word in $W_{J}$, $J=\{1,2\}$. But it doesn't give the answer $s_1 s_2 s_1$.

W = CoxeterGroup(['A',4])
w = W.long_element()
t = w.coset_representative([1,2])
t.reduced_word()


You need to look at the other factor of the canonical factorisation

  sage: (~t*w).reduced_word()
[1, 2, 1]