Aller au contenu

Algèbre de Kleene

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 26 août 2022 à 16:13 et modifiée en dernier par Malku H₂n̥rés (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

En mathématiques, une algèbre de Kleene (du nom du logicien américain Stephen Cole Kleene) correspond à l'un des deux concepts suivants :

  • Un treillis ordonné et distributif avec une involution satisfaisant les lois de De Morgan et l'inégalité x ∧ −xy ∨ −y. Ce qui fait que chaque algèbre booléenne est une algèbre de Kleene, la réciproque étant complément. À l'instar des algèbres de Boole qui sont basées sur les propositions logiques classiques, les algèbres de Kleene sont basées sur la logique ternaire de Kleene.
  • Une structure algébrique qui généralise les opérations connues à partir d'expressions rationnelles. La suite de cet article traitera de cette notion d'algèbre de Kleene. À l'origine de cette notion on trouve le mathématicien John Horton Conway qui l'a introduite sous le nom d'algèbres régulières[1].

Définition

De nombreuses définitions non équivalentes des algèbres de Kleene et des structures liées ont été données dans la littérature[2]. Nous donnerons ici la définition qui semble la plus communément admise aujourd'hui.

Une algèbre de Kleene est un ensemble doté des deux lois de composition interne + : A × AA et · : A × AA, et de l'opérateur * : AA. Ces lois et cet opérateur sont notés a + b, ab et a* respectivement. Ces opérations satisfont aux axiomes suivants :

  • associativité de + et · : a + (b + c) = (a + b) + c et a(bc) = (ab)c pour tout a, b, c de A.
  • commutativité de + : a + b = b + a pour tout a, b de A.
  • distributivité : a(b + c) = (ab) + (ac) et (b + c)a = (ba) + (ca) pour tout a, b, c de A.
  • éléments neutres pour + et · : il existe un élément 0 de A tel que pour tout a de A : a + 0 = 0 + a = a. Il existe un élément 1 de A tel que pour tout a de A : a1 = 1a = a.
  • 0 est un élément absorbant : a0 = 0a = 0 pour tout a de A.

Les axiomes ci-dessus définissent un demi-anneau. On ajoute :

Il est dès lors possible de définir un préordre ≤ sur A en postulant ab si et seulement si a + b = b (ou de manière équivalente, ab si et seulement il existe c dans A tel que a + c = b). Cette relation d'ordre permet de poser les quatre derniers axiomes sur l'opérateur * :

  • 1 + a(a*) ≤ a* pour tout a de A.
  • 1 + (a*)aa* pour tout a de A.
  • si a et b sont deux éléments de A tels que abb alors a*bb.
  • si a et b sont deux éléments de A tels que bab alors b(a*) ≤ b.

De manière intuitive, on peut penser à a + b comme l'union ou le plus petit majorant de a et b, et à ab comme une multiplication croissante, dans le sens où ab implique axbx. L'idée sousjacente à l'opérateur « étoile » est que a*= 1 + a + aa + aaa + ... Du point de vue de la théorie de la programmation, on peut interpréter + comme un opérateur de « choix » non déterministe, · comme la « composition séquentielle » et * comme l'« itération ».

Exemples

Soient Σ un ensemble fini (un « alphabet ») et A l'ensemble des expressions rationnelles sur Σ. Deux expressions rationnelles sont égales si elles décrivent le même langage rationnel. L'ensemble A forme une algèbre de Kleene. En fait, il s'agit même d'une algèbre libre de Kleene dans le sens où toute équation valide dans cette algèbre est valide dans toute algèbre de Kleene.

Soit Σ un alphabet. Soit A l'ensemble des langages rationnels sur Σ (ou bien l'ensemble des langages sans contextes sur Σ, ou bien encore l'ensemble de tous les langages récursifs, ou bien enfin l'ensemble de tous les langages sur Σ). L'union (écrite +) et la concaténation (écrite •) de deux éléments de A appartiennent à A, et ainsi l'opération d'étoile de Kleene est un endomorphisme de A. On obtient alors un algèbre de Kleene où : et , parfois noté , avec qui désigne la chaîne vide, ou mot vide.

Soit M un monoïde avec comme identité un élément e et soit A l'ensemble des sous-ensembles de M. Soient S et T deux sous-ensembles de M, soit S + T l'union de S et T et ST = {chaîne st | s dans S et t dans T}. S* est défini comme le sous-monoïde de M généré par S, intuitivement il correspond à {e} ∪ SSSSSS ∪ ...; A forme alors une algèbre de Kleene avec comme 0, l'ensemble vide et comme 1, le singleton {e}. On peut faire une construction similaire dans toute petite catégorie.

Supposons M un ensemble et A l'ensemble des relations binaires sur M. On peut munir M des trois opérations des algèbres de Kleene, à savoir l'union pour +, la composition pour • et l'étoile, fermeture réflexive et transitive, pour *. Les deux constantes sont pour 0 la relation vide (qui ne relie rien) et pour 1 la relation pleine (qui relie tout). Ainsi équipé, (M, +, •, *; 0, 1) est une algèbre de Kleene.

Toute algèbre de Boole munie des opérations et s'avère être une algèbre de Kleene si l'on identifie à +, à •, que l'on postule a* = 1 pour tout a et que le 0 pour l'algèbre de Kleene est le 0 de l'algèbre de Boole et de même pour 1.

Une algèbre de Kleene spécifique est utile lorsqu'il s'agit de calculer des plus courts chemins dans les graphes orientés pondérés : soit A la droite réelle achevée, posons que a + b est le minimum de a et b et que ab est la somme du réel a et du réel b (la somme de +∞ et -∞ étant par définition +∞). a* est le nombre réel zéro si a est positif ou nul et -∞ si a est strictement négatif. A est une algèbre de Kleene dans laquelle 0 est la valeur +∞ et 1 est le nombre réel zéro.

Propriétés

Zéro, noté 0, est le plus petit élément de l'ensemble, autrement dit 0 ≤ a pour tout a dans A.

La somme a + b est le plus petit majorant de a et b : on a aa + b et ba + b et si x est un élément de A avec ax et bx, alors a + bx. De manière similaire, est le plus petit majorant des éléments .

La multiplication et l'addition sont monotoniques : si ab, alors a + xb + x, axbx et xaxb pour tout x de A.

Considérant l'opération *, nous avons 0* = 1 et 1* = 1, ce * est croissant (ab implique a* ≤ b*), et que ana* pour tout entier naturel n. De plus, (a*)(a*) = a*, (a*)* = a*, et ab* si et seulement si a* ≤ b*.

Si A est une algèbre de Kleene et n un entier naturel, on peut considérer l'ensemble Mn(A) constituées de toutes les matrices n par n avec entrées dans A. En utilisant les notions ordinaires d'additions et de multiplications matricielles, on peut définir une opération * unique telle que Mn(A) devienne une algèbre de Kleene.

Histoire

Les algèbres de Kleene n'ont pas été définies par Kleene. Il a introduit les expressions rationnelles et a postulé l'existence d'un ensemble complet d'axiomes qui permettrait de dériver toutes les équations valides dans les expressions rationnelles. Les premiers axiomes ont été proposés par John H. Conway. Plus tard, un système d'axiomes complets définissant les algèbres de Kleene et résolvant le problème de leur complétude a été proposé par Dexter Kozen.

Voir aussi

Notes et références

(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Kleene algebra » (voir la liste des auteurs).
  1. (en) J. H. Conway, Regular Algebra and Finite Machines, Chapman and Hall, London, 1971.
  2. Pour un survol, on pourra se reporter à (en) Dexter Kozen, « On Kleene algebras and closed semirings », dans B. Rovan, Proc. Math. Found. Comput. Sci., Springer, coll. « Lecture Notes in Computer Science » (no 452), (lire en ligne), p. 26-47.