# Langage congruentiel

Un langage congruentiel est un langage formel qui est la réunion d'un nombre fini de classes d'une congruence sur l'alphabet donné. Un cas important est celui où la congruence est engendrée par un système de réécriture fini. Selon le type du système de réécriture, la complexité algorithmique du problème du mot peut être linéaire en temps, PSPACE-complet ou indécidable.
Les classes de langages congruentiels forment une autre hiérarchie de langages, incomparable à la hiérarchie de Chomsky.

## Langages congruentiels

Un système de réécriture sur un alphabet fini A est un ensemble fini de couples de mots $(r,r')$ sur A, appelées règles de réécriture, présentées sous la forme $r\to r'$. Un tel système est aussi parfois appelé système de semi-Thue ou système semi-thuéien. Le système est décroissant en longueur si $|r|>|r'|$ pour toute règle. Il est Church-Rosser s'il est confluent ou si, de manière équivalente, il vérifie la propriété de Church-Rosser.
Un langage formel L est congruentiel s'il existe un système de réécriture fini S tel que L est une union finie de classes de congruences modulo S. Selon les propriétés du système de réécriture, la classe des langages congruentiels est plus ou moins restreinte.
Un langage L est Church-Rosser congruentiel si L est une union finie de classes de congruences modulo un système de réécriture Church-Rosser décroissant.
L'exemple paradigmatique est le langage de Dyck sur une paire de lettres $a,{\bar {a}}$. Ce langage est formé des mots d'une seule classe de la congruence engendrée par $a{\bar {a}}\to \varepsilon$, à savoir la classe du mot vide.

## Langages Church-Rosser congruentiels

La classe des langages Church-Rosser congruentiels a été introduite en 1988 par McNaughton, Narendran, et Otto.
Une des motivations principales pour l'étude de cette classe de langages est que le problème de l'appartenance peut être résolu en temps linéaire : dans un système Church-Rosser, toute classe possède un élément irréductible unique; lorsque le système est de plus décroissant, pour chaque mot, cette forme normale d'un mot peut être calculée en réduisant le mot selon les règles du système il suffit alors de tester si le mot réduit figure dans la liste finie des représentants des classes dont le langage est la réunion.
Pour opérer ce test, il n'est donc pas nécessaire que le monoïde quotient $A^{*}/S$ par la congruence engendrée par $S$ soit fini, seul le nombre de classes dont le langage est la réunion doit être fini.
En plus de l'exemple du langage de Dyck, le langage de Lukasiewicz, le langage $\{a^{n}b^{n}\mid n\geq 0\}$ sont Church-Rosser congruentiels (pour ce dernier, la réduction s'opère par la règle $a^{2}b^{2}\to ab$); le langage $\{a^{n}b^{m}\mid n\geq m\geq 0\}$ ne l'est pas. Le langage des palindromes n’est pas Church-Rosser. Un langage algébrique déterministe n'est pas toujours Church-Rosser congruentiel. McNaughton, Narendran, et Otto définissent une famille plus générale de langages qu'ils appellent « CRDL », pour langages Church-Rosser décidables, et montrent que tout langage algébrique déterministe est Church-Rosser décidable.

## Tout langage rationnel est Church-Rosser congruentiel

Pendant longtemps, la propriété que tout langage rationnel est Church-Rosser congruentiel est restée à l'état de conjecture. En 2012, une démonstration est annoncée lors de la conférence ICALP, puis elle est publiée en 2015.
Auparavant, en 2003, Klaus Reinhardt et Denis Thérien annoncent que tout langage rationnel dont le monoïde syntaxique est un groupe est Church-Rosser congruentiel, mais cet article n'est pas publié en revue, et la correction est mise en doute.
Un résultat intermédiaire de Volker Diekert, Manfred Kufleitner et Pascal Weil paru en 2012 montre que tout langage sans étoile est Church-Rosser congruentiel. Pour ce faire, les auteurs prouvent que, pour tout langage sans étoile $L$, il existe un système de réécriture fini Church-Rosser tel que $L$ est union d'un nombre fini de classes d'équivalence, et qui possède la propriété remarquable supplémentaire que pour toute règle $r\to r'$, le membre droit $r$' est un sous-mot du membre gauche $r$, c'est-à-dire obtenu en supprimant certaines lettres dans $r$. Cette propriété est étendue pour le cas général comme suit : Une fonction de poids est une fonction $\|\cdot \|\to \mathbb {N}$ qui à tout lettre $a\in A$ associe un entier positif, et qui est étendue additivement aux mots. Un système de réécriture est réducteur en poids si, pour toute règle $r\to r'$, on a $\|r\|>\|r'\|$.
    Pour tout langage rationnel $L$ de $A^{*}$, il existe un système de réécriture fini, confluent et réducteur en poids $S$ telle que le monoïde quotient $A^{*}/S$ est fini et reconnaît $L$.
Cette propriété donne une nouvelle caractérisation des langages rationnels.

## Systèmes presque confluents

Un système de réécriture moins contraignant est connu sous le terme de système presque confluent. Un système est presque confluent si, pour toute paire $x,y$ de mots équivalents, il existe deux mots $z_{1}$ et $z_{2}$ de même longueur avec $x{\overset {*}{\to }}z_{1}$ et $y{\overset {*}{\to }}z_{2}$ et tels que $z_{1}$ et $z_{2}$ peuvent être réécrits l’un dans l’autre par des règles qui préservent la longueur.
Un langage congruentiel presque confluent est un langage qui est réunion fini de classes d’une congruence presque confluente. Alors que le problème de l'appartenance est de complexité linéaire pour un système Church-Rosser décroissant, il est PSPACE-complet pour les systèmes presque confluents.
Il est facile de voir que tout langage rationnel est presque confluent. Soit en effet $L$ un langage rationnel de $A^{*}$. Il existe un monoïde fini $M$, un morphisme surjectif $h$ de $A^{*}$ sur $M$, et une partie $P$ de $M$ tells que
    $L=\bigcup _{p\in P}h^{-1}(p)$.
Posons $K_{m}=h^{-1}(m)$ pour $m$ dans $M$. La partition de $A^{*}$ en parties $K_{m}$, pour $m$ dans $M$, peut être réalisée par un système de réécriture presque confluent, comme suit : Pour tout $m$ de $M$, soit $y_{m}$ un élément de longueur minimale de $K_{m}$, et soit $N$ la longueur maximale des mots $y_{m}$. Le système S des couples
    $S=\{(x,y_{m})\mid x\in K_{m},\ |x|\leq 1+N\}$
est un système presque confluent, et ses classes de congruences coïncident avec les parties $K_{m}$.
Cette propriété des langages rationnels est moins précise que celle par Church-Rosser, et en effet il existe des langages congruentiels presque confluents qui ne sont pas Church-Rosser congruentiels. Un tel exemple est donné par Colm Ó Dúnlaing. On considère, sur l'alphabet $A=\{a,b,{\bar {a}},{\bar {b}}\}$, la congruence engendrée par $x{\bar {y}}\to \varepsilon ,{\bar {x}}y\to \varepsilon$ pour $x,y\in \{a,b\}$ et les règles $a\to b,b\to a,{\bar {a}}\to {\bar {b}},{\bar {b}}\to {\bar {a}}$. Le monoïde quotient par la congruence définie par S est en fait l'anneau des entiers relatifs $\mathbb {Z}$, et le langage $L$, image inverse de $0$, est composé des mots qui ont autant de lettres barrées que non barrées. Ce langage est presque confluent, et n'est pas Church-Rosser congruentiel.