Arden's rule

In theoretical computer science, Arden's rule, also known as Arden's lemma, is a mathematical statement about a certain form of language equations.

Background
A (formal) language is simply a set of strings. Such sets can be specified by means of some language equation, which in turn is based on operations on languages. Language equations are mathematical statements that resemble numerical equations, but the variables assume values of formal languages rather than numbers. Among the most common operations on two languages A and B are the set union A ∪ B, and their concatenation A⋅B. Finally, as an operation taking a single operand, the set A* denotes the Kleene star of the language A.

Statement of Arden's rule
Arden's rule states that the set A*⋅B is the smallest language that is a solution for X in the linear equation X = A⋅X ∪ B where X, A, B are sets of strings. Moreover, if the set A does not contain the empty word, then this solution is unique.

Equivalently, the set B⋅A* is the smallest language that is a solution for X in X = X⋅A ∪ B.

Application
Arden's rule can be used to help convert some finite automatons to regular expressions, as in Kleene's algorithm.