ยง Permutations-and-lyndon-factorization

For a string s, the Lyndon factorization writes s as the concatenation of substrings t1, t2, ..., tn, such that:
  • each ti is a simple word. That is, it is lexicographically smaller than all of its cyclic shifts.
  • the words are in non-increasing order: t1 >= t2 >= t3 ... >= tn.
For example, given the word banana, the lyndon factorization is:
b; an; an; a;
We can define a notation for writing permutation as:
  • Each term in a cycle is written in ascending order.
  • Cycles are written in descending order of the first element.
  • Single element are ignored.
(7) (2 3) (1 4 5)
If we treat it as a string 723145, the duval algorithm provides the decomposition:
7; 23; 145;
So, we can treat the duval algorithm as a way to recover the permutation given the raw string. It's a nice way to remember the definition of lyndon decomposition if nothng else.