Monoid factorisation

From testwiki
Jump to navigation Jump to search

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.Template:Clarify

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

w=xi1xi2xin 

with xijXij and i1i2in. 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.[1] 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 Template:Math to be the singleton set Template:Math for each Lyndon word Template:Mvar, with the index set L of Lyndon words ordered lexicographically, we obtain a factorisation of Template:Math.[2] Such a factorisation can be found in linear time and constant space by Duval's algorithm.[3] The algorithm[4] in Python code is:

def chen_fox_lyndon_factorization(s: list[int]) -> list[int]:
    """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[k] <= s[j]:
            if s[k] < s[j]:
                k = i
            else:
                k += 1
            j += 1
        while i <= k:
            factorization.append(s[i:i + j - k])
            i += j - k
    return factorization

Hall words

The Hall set provides a factorization.[5] 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.[6]

Examples:

Template:Math

If X, Y are disjoint sets of non-empty words, then (X,Y) is a bisection of Template:Math if and only if[7]

YXA=XY .

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.[8]

Schützenberger theorem

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

See also

References

Template:Reflist

  1. Lothaire (1997) p.64
  2. Lothaire (1997) p.67
  3. Template:Cite journal.
  4. Template:Cite web
  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