- Kleene algebra
In
mathematics , a Kleene algebra (named afterStephen Cole Kleene , IPAEng|ˈkleɪni as in "clay-knee") is either of two different things:* A bounded
distributive lattice with an involution satisfyingDe Morgan's laws , and the inequality "x"∧−"x" ≤ "y"∨−"y". Thus every Boolean algebra is a Kleene algebra, but most Kleene algebras are not Boolean algebras. Just as Boolean algebras are related to the classical propositional logic, Kleene algebras relate to Kleene'sthree-valued logic .
* Analgebraic structure that generalizes the operations known fromregular expression s. The remainder of this article deals with this notion of Kleene algebra.Definition
Various inequivalent definitions of Kleene algebras and related structures have been given in the literature. See [1] for a survey. Here we will give the definition that seems to be the most common nowadays.
A Kleene algebra is a set "A" together with two
binary operation s + : "A" × "A" → "A" and · : "A" × "A" → "A" and one function * : "A" → "A", written as "a" + "b", "ab" and "a"* respectively, so that the following axioms are satisfied.
*Associativity of + and ·: "a" + ("b" + "c") = ("a" + "b") + "c" and "a"("bc") = ("ab")"c" for all "a", "b", "c" in "A".
*Commutativity of +: "a" + "b" = "b" + "a" for all "a", "b" in "A"
*Distributivity : "a"("b" + "c") = ("ab") + ("ac") and ("b" + "c")"a" = ("ba") + ("ca") for all "a", "b", "c" in "A"
*Identity element s for + and ·: There exists an element 0 in "A" such that for all "a" in "A": "a" + 0 = 0 + "a" = "a". There exists an element 1 in "A" such that for all "a" in "A": "a"1 = 1"a" = "a".
* "a"0 = 0"a" = 0 for all "a" in "A".The above axioms define asemiring . We further require:
* + isidempotent : "a" + "a" = "a" for all "a" in "A".It is now possible to define apartial order ≤ on "A" by setting "a" ≤ "b"if and only if "a" + "b" = "b" (or equivalently: "a" ≤ "b" if and only if there exists an "x" in "A" such that "a" + "x" = "b"). With this order we can formulate the last two axioms about the operation *:
* 1 + "a"("a"*) ≤ "a"* for all "a" in "A".
* 1 + ("a"*)"a" ≤ "a"* for all "a" in "A".
* if "a" and "x" are in "A" such that "ax" ≤ "x", then "a"*"x" ≤ "x"
* if "a" and "x" are in "A" such that "xa" ≤ "x", then "x"("a"*) ≤ "x"Intuitively, one should think of "a" + "b" as the "union" or the "least upper bound" of "a" and "b" and of "ab" as some multiplication which is monotonic, in the sense that "a" ≤ "b" implies "ax" ≤ "bx". The idea behind the star operator is "a"* = 1 + "a" + "aa" + "aaa" + ... From the standpoint of
programming language theory , one may also interpret + as "choice", · as "sequencing" and * as "iteration".Examples
Let Σ be a finite set (an "alphabet") and let "A" be the set of all
regular expression s over Σ. We consider two such regular expressions equal if they describe the same language. Then "A" forms a Kleene algebra. In fact, this is a free Kleene algebra in the sense that any equation among regular expressions follows from the Kleene algebra axioms and is therefore valid in every Kleene algebra.Again let Σ be an alphabet. Let "A" be the set of all
regular language s over Σ (or the set of allcontext-free language s over Σ; or the set of allrecursive language s over Σ; or the set of "all" languages over Σ). Then the union (written as +) and the concatenation (written as ·) of two elements of "A" again belong to "A", and so does theKleene star operation applied to any element of "A". We obtain a Kleene algebra "A" with 0 being theempty set and 1 being the set that only contains the empty string.Let "M" be a
monoid with identity element "e" and let "A" be the set of allsubset s of "M". For two such subsets "S" and "T", let "S" + "T" be the union of "S" and "T" and set "ST" = {"st" : "s" in "S" and "t" in "T"}. "S"* is defined as the submonoid of "M" generated by "S", which can be described as {"e"} ∪ "S" ∪ "SS" ∪ "SSS" ∪ ... Then "A" forms a Kleene algebra with 0 being the empty set and 1 being {"e"}. An analogous construction can be performed for any small category.Suppose "M" is a set and "A" is the set of all
binary relation s on "M". Taking + to be the union, · to be the composition and * to be the reflexive transitive hull, we obtain a Kleene algebra.Every Boolean algebra with operations and turns into a Kleene algebra if we use for +, for · and set "a"* = 1 for all "a".
A quite different Kleene algebra is useful when computing shortest paths in weighted directed graphs: let "A" be the
extended real number line , take "a" + "b" to be the minimum of "a" and "b" and "ab" to be the ordinary sum of "a" and "b" (with the sum of +∞ and -∞ being defined as +∞). "a"* is defined to be the real number zero for nonnegative "a" and -∞ for negative "a". This is a Kleene algebra with zero element +∞ and one element the real number zero.Properties
Zero is the smallest element: 0 ≤ "a" for all "a" in "A".
The sum "a" + "b" is the
least upper bound of "a" and "b": we have "a" ≤ "a" + "b" and "b" ≤ "a" + "b" and if "x" is an element of "A" with "a" ≤ "x" and "b" ≤ "x", then "a" + "b" ≤ "x". Similarly, "a"1 + ... + "a""n" is the least upper bound of the elements "a"1, ..., "a""n".Multiplication and addition are monotonic: if "a" ≤ "b", then "a" + "x" ≤ "b" + "x", "ax" ≤ "bx" and "xa" ≤ "xb" for all "x" in "A".
Regarding the * operation, we have 0* = 1 and 1* = 1, that * is monotonic ("a" ≤ "b" implies "a"* ≤ "b"*), and that "a""n" ≤ "a"* for every natural number "n". Furthermore, ("a"*)("a"*) = "a"*, ("a"*)* = "a"*, and "a" ≤ "b"* if and only if "a"* ≤ "b"*.
If "A" is a Kleene algebra and "n" is a natural number, then one can consider the set M"n"("A") consisting of all "n"-by-"n" matrices with entries in "A".Using the ordinary notions of matrix addition and multiplication, one can define a unique *-operation so that M"n"("A") becomes a Kleene algebra.
History
Kleene algebras were not defined by Kleene; he introduced regular expressions and asked for a complete set of axioms which would allow derivation of all equations among regular expressions. The problem was first studied by
John Horton Conway under the name of "regular algebras". The axioms of Kleene algebras solve this problem, as was first shown by Dexter Kozen.References
#
Dexter Kozen : "On Kleene algebras and closed semirings." In Rovan, editor, Proc. Math. Found. Comput. Sci., volume 452 of Lecture Notes in Computer Science, pages 26-47. Springer, 1990. Online at http://www.cs.cornell.edu/~kozen/papers/kacs.ps
# J.H. Conway, "Regular algebra and finite machines", Chapman and Hall, 1971, ISBN 0-412-10620-5. Chap.IV.ee also
*
Action algebra
*Algebraic structure
*Kleene star
*Regular expression
Wikimedia Foundation. 2010.