Alexandrian text-type: Difference between revisions
en>JamesBWatson m Reverted edits by 194.80.20.239 (talk) to last revision by ClueBot NG (HG) |
|||
Line 1: | Line 1: | ||
In [[mathematics]], a '''Kleene algebra''' ({{IPAc-en|ˈ|k|l|eɪ|n|i}} {{respell|KLAY|nee}}; named after [[Stephen Cole Kleene]]) is either of two different things: | |||
* A [[bounded lattice|bounded]] [[distributive lattice]] with an [[involution (mathematics)|involution]] ¬ satisfying [[De Morgan's laws]] (i.e. a [[De Morgan algebra]]), additionally satisfying the inequality ''x'' ∧ ¬''x'' ≤ ''y'' ∨ ¬''y''. Kleene (and De Morgan) algebras are subclasses of [[Ockham algebra]]s. The simplest Kleene algebra of this kind is Kleene's [[three-valued logic]] K3.<ref name="Blyth1994">{{cite book|author1=Thomas Scott Blyth|author2=J. C. Varlet|title=Ockham algebras|year=1994|publisher=Oxford University Press|isbn=978-0-19-859938-8}}</ref><ref name="Grätzer2003">{{cite book|author=George A. Grätzer|title=General lattice theory|year=2003|publisher=Birkhäuser|isbn=978-3-7643-6996-5}}</ref>{{clarify|reason=Apparently, the two-valued Boolean algebra also satisfies all required properties, and is simpler than K3.|date=November 2013}} (This is analogous to [[Boolean logic]] being the simplest [[Boolean algebra]].) | |||
* An [[algebraic structure]] that generalizes the operations known from [[regular 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.<ref>For a survey, see: {{cite book | zbl=0732.03047 | last=Kozen | first=Dexter | chapter=On Kleene algebras and closed semirings | title=Mathematical foundations of computer science, Proc. 15th Symp., MFCS '90, Banská Bystrica/Czech. 1990 | series=Lecture Notes Computer Science | volume=452 | pages=26–47 | year=1990 | authorlink=Dexter Kozen | editor1-last=Rovan | editor1-first=Branislav | publisher=[[Springer-Verlag]] | url=http://ecommons.library.cornell.edu/bitstream/1813/6971/1/90-1131.pdf }}</ref> Here we will give the definition that seems to be the most common nowadays. | |||
A Kleene algebra is a [[Set (mathematics)|set]] ''A'' together with two [[binary operation]]s + : ''A'' × ''A'' → ''A'' and · : ''A'' × ''A'' → ''A'' and one function <sup>*</sup> : ''A'' → ''A'', written as ''a'' + ''b'', ''ab'' and ''a''<sup>*</sup> 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 a [[semiring]]. We further require: | |||
* + is [[idempotent]]: ''a'' + ''a'' = ''a'' for all ''a'' in ''A''. | |||
It is now possible to define a [[partial 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 <sup>*</sup>: | |||
* 1 + ''a''(''a''<sup>*</sup>) ≤ ''a''<sup>*</sup> for all ''a'' in ''A''. | |||
* 1 + (''a''<sup>*</sup>)''a'' ≤ ''a''<sup>*</sup> for all ''a'' in ''A''. | |||
* if ''a'' and ''x'' are in ''A'' such that ''ax'' ≤ ''x'', then ''a''<sup>*</sup>''x'' ≤ ''x'' | |||
* if ''a'' and ''x'' are in ''A'' such that ''xa'' ≤ ''x'', then ''x''(''a''<sup>*</sup>) ≤ ''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''<sup>*</sup> = 1 + ''a'' + ''aa'' + ''aaa'' + ... From the standpoint of [[programming language theory]], one may also interpret + as "choice", · as "sequencing" and <sup>*</sup> as "iteration". | |||
== Examples == | |||
{| class="wikitable" style="float:right" | |||
|+ Notational correspondance between | |||
|- | |||
! [[#Definition|Kleene algebras]] and | |||
| + || · || <sup>*</sup> || 0 || 1 | |||
|- | |||
! [[Regular expression#Formal language theory|Regular expressions]] | |||
| | | || not written || <sup>*</sup> || ∅ || ε | |||
|} | |||
Let Σ be a finite set (an "alphabet") and let ''A'' be the set of all [[Regular expression#Formal language theory|regular expression]]s over Σ. We consider two such regular expressions equal if they describe the same [[formal language|language]]. Then ''A'' forms a Kleene algebra. In fact, this is a [[free object|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 all [[context-free language]]s over Σ; or the set of all [[recursive language]]s over Σ; or the set of ''all'' languages over Σ). Then the [[union (set theory)|union]] (written as +) and the concatenation (written as ·) of two elements of ''A'' again belong to ''A'', and so does the [[Kleene star]] operation applied to any element of ''A''. We obtain a Kleene algebra ''A'' with 0 being the [[empty 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 all [[subset]]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''<sup>*</sup> 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 theory|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 <sup>*</sup> to be the reflexive transitive hull, we obtain a Kleene algebra. | |||
Every [[Boolean algebra (structure)|Boolean algebra]] with operations <math>\lor</math> and <math>\land</math> turns into a Kleene algebra if we use <math>\lor</math> for +, <math>\land</math> for · and set ''a''<sup>*</sup> = 1 for all ''a''. | |||
A quite different Kleene algebra is useful when computing [[shortest path problem|shortest path]]s in [[graph theory|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''<sup>*</sup> 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''<sub>1</sub> + ... + ''a''<sub>''n''</sub> is the least upper bound of the elements ''a''<sub>1</sub>, ..., ''a''<sub>''n''</sub>. | |||
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 <sup>*</sup> operation, we have 0<sup>*</sup> = 1 and 1<sup>*</sup> = 1, that <sup>*</sup> is monotonic (''a'' ≤ ''b'' implies ''a''<sup>*</sup> ≤ ''b''<sup>*</sup>), and that ''a''<sup>''n''</sup> ≤ ''a''<sup>*</sup> for every natural number ''n''. Furthermore, (''a''<sup>*</sup>)(''a''<sup>*</sup>) = ''a''<sup>*</sup>, (''a''<sup>*</sup>)<sup>*</sup> = ''a''<sup>*</sup>, and ''a'' ≤ ''b''<sup>*</sup> if and only if ''a''<sup>*</sup> ≤ ''b''<sup>*</sup>. | |||
If ''A'' is a Kleene algebra and ''n'' is a natural number, then one can consider the set M<sub>''n''</sub>(''A'') consisting of all ''n''-by-''n'' [[matrix (mathematics)|matrices]] with entries in ''A''. | |||
Using the ordinary notions of matrix addition and multiplication, one can define a unique <sup>*</sup>-operation so that M<sub>''n''</sub>(''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 == | |||
{{reflist}} | |||
* {{cite web | last=Kozen | first=Dexter | authorlink=Dexter Kozen | title=CS786 Spring 04, Introduction to Kleene Algebra | url=http://www.cs.cornell.edu/Courses/cs786/2004sp/ }} | |||
* {{cite book | first=J.H. | last=Conway | authorlink=John Horton Conway | title=Regular algebra and finite machines | publisher=Chapman and Hall | year=1971 | isbn=0-412-10620-5 | zbl=0231.94041 | location=London }} Chap.IV. | |||
==See also== | |||
* [[Action algebra]] | |||
* [[Algebraic structure]] | |||
* [[Kleene star]] | |||
* [[Regular expression]] | |||
[[Category:Algebraic structures]] | |||
[[Category:Algebraic logic]] | |||
[[Category:Formal languages]] | |||
[[Category:Many-valued logic]] |
Revision as of 15:35, 11 July 2013
In mathematics, a Kleene algebra (Template:IPAc-en Template:Respell; named after Stephen Cole Kleene) is either of two different things:
- A bounded distributive lattice with an involution ¬ satisfying De Morgan's laws (i.e. a De Morgan algebra), additionally satisfying the inequality x ∧ ¬x ≤ y ∨ ¬y. Kleene (and De Morgan) algebras are subclasses of Ockham algebras. The simplest Kleene algebra of this kind is Kleene's three-valued logic K3.[1][2]Template:Clarify (This is analogous to Boolean logic being the simplest Boolean algebra.)
- An algebraic structure that generalizes the operations known from regular expressions. 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.[3] 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 operations + : 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 elements 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: a1 = 1a = a.
- a0 = 0a = 0 for all a in A.
The above axioms define a semiring. We further require:
- + is idempotent: a + a = a for all a in A.
It is now possible to define a partial 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
Kleene algebras and | + | · | * | 0 | 1 |
---|---|---|---|---|---|
Regular expressions | | | not written | * | ∅ | ε |
Let Σ be a finite set (an "alphabet") and let A be the set of all regular expressions 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 languages over Σ (or the set of all context-free languages over Σ; or the set of all recursive languages 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 the Kleene star operation applied to any element of A. We obtain a Kleene algebra A with 0 being the empty 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 all subsets 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 relations 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, a1 + ... + an is the least upper bound of the elements a1, ..., an.
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 an ≤ 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 Mn(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 Mn(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
43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.
- Template:Cite web
- 20 year-old Real Estate Agent Rusty from Saint-Paul, has hobbies and interests which includes monopoly, property developers in singapore and poker. Will soon undertake a contiki trip that may include going to the Lower Valley of the Omo.
My blog: http://www.primaboinca.com/view_profile.php?userid=5889534 Chap.IV.
See also
- ↑ 20 year-old Real Estate Agent Rusty from Saint-Paul, has hobbies and interests which includes monopoly, property developers in singapore and poker. Will soon undertake a contiki trip that may include going to the Lower Valley of the Omo.
My blog: http://www.primaboinca.com/view_profile.php?userid=5889534 - ↑ 20 year-old Real Estate Agent Rusty from Saint-Paul, has hobbies and interests which includes monopoly, property developers in singapore and poker. Will soon undertake a contiki trip that may include going to the Lower Valley of the Omo.
My blog: http://www.primaboinca.com/view_profile.php?userid=5889534 - ↑ For a survey, see: 20 year-old Real Estate Agent Rusty from Saint-Paul, has hobbies and interests which includes monopoly, property developers in singapore and poker. Will soon undertake a contiki trip that may include going to the Lower Valley of the Omo.
My blog: http://www.primaboinca.com/view_profile.php?userid=5889534