Misplaced Pages

Monoid factorisation

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
(Redirected from Schützenberger theorem)

In mathematics, a factorisation of a free monoid is a sequence of subsets of words with the property that every word in the free monoid can be written as a concatenation of elements drawn from the subsets. The Chen–FoxLyndon theorem states that the Lyndon words furnish a factorisation. The Schützenberger theorem relates the definition in terms of a multiplicative property to an additive property.

Let A be the free monoid on an alphabet A. Let Xi be a sequence of subsets of A indexed by a totally ordered index set I. A factorisation of a word w in A is an expression

w = x i 1 x i 2 x i n   {\displaystyle w=x_{i_{1}}x_{i_{2}}\cdots x_{i_{n}}\ }

with x i j X i j {\displaystyle x_{i_{j}}\in X_{i_{j}}} and i 1 i 2 i n {\displaystyle i_{1}\geq i_{2}\geq \ldots \geq i_{n}} . Some authors reverse the order of the inequalities.

Chen–Fox–Lyndon theorem

A Lyndon word over a totally ordered alphabet A is a word that is lexicographically less than all its rotations. The Chen–Fox–Lyndon theorem states that every string may be formed in a unique way by concatenating a lexicographically non-increasing sequence of Lyndon words. Hence taking Xl to be the singleton set {l} for each Lyndon word l, with the index set L of Lyndon words ordered lexicographically, we obtain a factorisation of A. Such a factorisation can be found in linear time and constant space by Duval's algorithm. The algorithm in Python code is:

def chen_fox_lyndon_factorization(s: list) -> list:
    """Monoid factorisation using the Chen–Fox–Lyndon theorem.
    Args:
        s: a list of integers
    Returns:
        a list of integers
    """
    n = len(s)
    factorization = 
    i = 0
    while i < n:
        j, k = i + 1, i
        while j < n and s <= s:
            if s < s:
                k = i
            else:
                k += 1
            j += 1
        while i <= k:
            factorization.append(s)
            i += j - k
    return factorization

Hall words

The Hall set provides a factorization. Indeed, Lyndon words are a special case of Hall words. The article on Hall words provides a sketch of all of the mechanisms needed to establish a proof of this factorization.

Bisection

A bisection of a free monoid is a factorisation with just two classes X0, X1.

Examples:

A = {a,b}, X0 = {Ab}, X1 = {a}.

If X, Y are disjoint sets of non-empty words, then (X,Y) is a bisection of A if and only if

Y X A = X Y   . {\displaystyle YX\cup A=X\cup Y\ .}

As a consequence, for any partition P, Q of A there is a unique bisection (X,Y) with X a subset of P and Y a subset of Q.

Schützenberger theorem

This theorem states that a sequence Xi of subsets of A forms a factorisation if and only if two of the following three statements hold:

  • Every element of A has at least one expression in the required form;
  • Every element of A has at most one expression in the required form;
  • Each conjugate class C meets just one of the monoids Mi = Xi and the elements of C in Mi are conjugate in Mi.

See also

References

  1. Lothaire (1997) p.64
  2. Lothaire (1997) p.67
  3. Duval, Jean-Pierre (1983). "Factorizing words over an ordered alphabet". Journal of Algorithms. 4 (4): 363–381. doi:10.1016/0196-6774(83)90017-2..
  4. "Lyndon factorization - Algorithms for Competitive Programming". cp-algorithms.com. Retrieved 2024-01-30.
  5. Guy Melançon, (1992) "Combinatorics of Hall trees and Hall words", Journal of Combinatoric Theory, 59A(2) pp. 285–308.
  6. Lothaire (1997) p.68
  7. Lothaire (1997) p.69
  8. Lothaire (1997) p.71
  9. Lothaire (1997) p.92
Category: