We present basic structures, definitions, normal forms, and a hierarchy of languages based on catenation, shuffle and their iterations, defined by algebraic closures or least fixed point solutions to systems of equations.In this section, we introduce the basic structures, and two ways of defining language families based on these. Formal language theory deals with subsets of Σ * , sets of finite words over a finite alphabet, using as basic binary operation catenation, denoted by ⊙ in the sequel. This gives a basic monoid with ⊙ and λ, the empty word. Other binary operations have also been considered, such as the shuffle, denoted by , defined below. In contrast to catenation, is commutative; like catenation, it can be used to define another monoid with the finite subsets of Σ * as domain. Another possibility is to combine ⊙ and .
Basic StructuresHere we present, partially recalling, the definitions of such structures more precisely. For w ∈ Σ * let w denote the length of w and w a the number of occurrences of a ∈ Σ in w. In particular, λ = 0. For A ⊆ Σ * let A = max{ w | w ∈ A} the norm of A. If A ⊆ Σ * then |A| denotes the cardinality of A which also can be infinite. M ⊙ = (Σ * ; λ, ⊙) is a monoid, where Σ is a (finite) alphabet, ⊙ stands for the binary operation catenation, and λ is the neutral element. Elements (words) w ∈ Σ * or singletons {w} can be seen as basic elements (atoms). Let 2 Σ * 1 = {α ∈ 2 Σ * | |α| = 1}, the class of singletons. The finite sets of words over Σ, FIN = 2 Σ * f = {α ∈ 2 Σ * | |α| < ∞}, can also serve as basic elements. The shuffle operation : Σ * × Σ * → 2 Σ * can be defined recursively as follows: For all a, b ∈ Σ and v, w ∈ Σ * , λ w = w λ = {w}; aw bv = {a} ⊙ (w bv) ∪ {b} ⊙ (aw v). Both operations are extended to sets: for shuffle, : 2 Σ * × 2 Σ * → 2 Σ * , A B = w∈A,v∈B w v gives the monoid M = (2 Σ * f ; {λ}, ). A bi-monoid is a structure D = (D; 1, ⊙, ⊗) where ⊙ and ⊗ are associative binary operations on D, and 1 is the common neutral element. A bi-semiring is a structure B = (B; 0, 1, ⊕, ⊙, ⊗) where (B; 0, 1, ⊕, ⊙) and (B; 0, 1, ⊕, ⊗) are semirings, i.e. ⊕ is a commutative and associative binary operation on B, ⊙ and ⊗ are associative binary operations on B, 0 is the neutral element of ⊕, and 1 the common neutral element of ⊙ and ⊗. Furthermore, ⊕ is distributive with ⊙ and ⊗, i.e. x ⊕ (y ⊙ z) = (x ⊙ y) ⊕ (x ⊙ z) and x ⊕ (y ⊗ z) = (x ⊗ y) ⊕ (x ⊗ z) for all x, y, z ∈ B. A bi-semiring B is ω-complete