# 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)

( 2020-04-13 18:52:10 +0200 )edit

@lijr07 could you please provide a definition of longest word ?

( 2020-04-13 21:17:20 +0200 )edit

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()

( 2020-04-14 00:24:52 +0200 )edit

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

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

( 2020-04-14 10:11:37 +0200 )edit

@FrédéricC, thank you very much for your very useful answer. Do you know how to find the unique element with maximal length in a double coset of a Weyl group: https://ask.sagemath.org/question/595... ?

( 2022-01-21 20:47:21 +0200 )edit