Théorème de Chomsky-Schützenberger (langage formel)
En informatique théorique, et notamment en théorie des langages formels, le théorème de Chomsky-Schützenberger est un théorème de représentation. Il affirme que tout langage algébrique peut s'exprimer, au moyen d'une certaine construction, à partir d'un langage de Dyck. En ce sens, le théorème affirme que les langages de Dyck sont des langages algébriques « typiques ». Ce théorème est nommé ainsi d'après Noam Chomsky et Marcel-Paul Schützenberger. Il figure dans leur article commun de 1963[1].
Énoncé du théorème
modifierDans l’énoncé suivant, on utilise le terme morphisme alphabétique. Un morphisme entre monoïdes libres est dit alphabétique si l'image d'une lettre de est une lettre de ou le mot vide. C'est, de manière équivalente, un morphisme décroissant, c'est-à-dire tel que la longueur de l'image d'un mot est toujours inférieure ou égale à la longueur du mot .
Théorème de Chomsky-Schützenberger — Un langage est algébrique si et seulement s'il existe un langage de Dyck , un langage rationnel et un morphisme alphabétique tels que
- .
Ce théorème est prouvé dans plusieurs manuels, par exemple dans Automata and Computability de Dexter Kozen[2].
Variantes et extensions
modifierDans l'énoncé ci-dessus, le langage rationnel et le langage de Dyck dépendent bien entendu du langage que l'on veut représenter. Une variante consiste à choisir, moyennant une construction un peu plus compliquée, un langage de Dyck unique, à savoir le langage de Dyck sur deux paires de parenthèses. On a alors
Théorème — Un langage est algébrique si et seulement s'il s'écrit sous la forme
- ,
où est le langage de Dyck sur deux paires de parenthèses, est un langage rationnel et sont des morphismes.
De manière équivalente, cet énoncé signifie que tout langage algébrique est image de par une transduction rationnelle, ou encore que le langage est un générateur du cône rationnel des langages algébriques.
D'autres langages peuvent jouer le rôle de dans l'énoncé ci-dessus, comme le langage des mots de Dyck premiers[3], ou encore les langages des mots de Dyck bilatères ou bilatères premiers[4].
Au lieu de fixer le nombre de paires de parenthèses à deux, tout nombre supérieur ou égal à deux convient. En revanche, le résultat cesse d'être vrai pour les langages de Dyck sur une seule paire de parenthèses.
Une autre variante, ou plutôt une précision, concerne la nature de l'homomorphisme du théorème. La question est de savoir si on peut supposer ce morphisme non effaçant. Une réponse négative vient vite à l'esprit : puisque le langage de Dyck ne contient pas de mot de longueur 1, on ne peut obtenir, dans le langage image, de mot de longueur 1. En fait, il apparaît que c'est la seule contrainte. Alexander Okhotin a prouvé l'énoncé suivant[5]:
Théorème — Tout langage algébrique ne contenant pas de mot réduit à une lettre s'écrit sous la forme
- ,
où est un langage de Dyck , est un langage rationnel et est un morphisme non effaçant.
La preuve utilise, entre autres, la forme normale de Greibach bilatère des grammaires algébriques. Deux énoncés complémentaires, du même article, méritent d'être mentionnés dans ce contexte.
Proposition — Tout langage algébrique qui ne contient que des mots de longueur paire s'écrit sous la forme
- ,
où est un langage de Dyck, est un langage rationnel et est un morphisme lettre-à-lettre, c'est-à-dire préservant la longueur.
Enfin, on a un théorème semblable au théorème de Chomsky-Schützenberger en remplaçant le langage de Dyck par le langage de Motzkin, c'est-à-dire un langage obtenu à partir d'un langage de Dyck en insérant des lettres « neutres » en quantité quelconque.
Proposition — Tout langage algébrique s'écrit sous la forme
- ,
où est un langage de Motzkin, est un langage rationnel et est un morphisme lettre-à-lettre, c'est-à-dire préservant la longueur.
Notes et références
modifier- Chomsky-Schützenberger (1963).
- Dexter Kozen, Automata and Computability (1997), p. 198-200.
- Un mot de Dyck premier est un mot de Dyck non vide qui n'est pas produit de plusieurs mots de Dyck non vides
- Un mot de Dyck bilatère premier est une mot de Dyck bilatère non vide qui n'est pas produit d'autres mots de Dyck bilatères premiers.
- Alexander Okhotin, « Non-erasing variants of the Chomsky-Schützenberger theorem », dans H.-C. Yen et O.H. Ibarra (éditeurs), Developments in Language Theory : DLT 2012, Springer-Verlag, coll. « Lecture Notes in Computer Science » (no 7410), , p. 121–129 .
Bibliographie
modifier- Sources
- (en) Noam Chomsky et Marcel-Paul Schützenberger, « The Algebraic Theory of Context-Free Languages », dans Paul Braffort et D. Hirschberg (éditeurs), Computer Programming and Formal Systems, North Holland, (lire en ligne), p. 118-161
- (en) Dexter Kozen, Automata and Computability, Springer Verlag, coll. « Undergraduate Texts in Computer Science », , 400 p. (ISBN 978-0-387-94907-9, présentation en ligne)
- Extenions
- Stefano Crespi Reghizzi, Antonio Restivo et Pierluigi San Pietro, « From words to pictures: Row-column combinations and Chomsky-Schützenberger theorem », Theoretical Computer Science, vol. 1002, , p. 114598 (DOI 10.1016/j.tcs.2024.114598, lire en ligne, consulté le )