Reference articles on history, science, culture and more
Encyclopedia

Monoid factorisation

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, Fox, Lyndon 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}}\cdots x_{i_{n}}\

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

01Chen-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[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

02Hall 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.

03Bisection

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

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.

04Schü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.
Watch videos about Monoid factorisationExplainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article Monoid factorisation, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.