From 6d822f738fa288008bca407dc10d4ed3e1012863 Mon Sep 17 00:00:00 2001
From: "David A. Madore" <david+git@madore.org>
Date: Wed, 30 Nov 2016 20:57:59 +0100
Subject: The Myhill-Nerode theorem.

---
 notes-inf105.tex | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 87 insertions(+)

(limited to 'notes-inf105.tex')

diff --git a/notes-inf105.tex b/notes-inf105.tex
index 7b31806..077fb5d 100644
--- a/notes-inf105.tex
+++ b/notes-inf105.tex
@@ -2367,6 +2367,93 @@ suffit donc de prendre $i=0$ pour avoir une contradiction.
 \end{proof}
 
 
+\subsection{L'automate canonique, et la minimisation}
+
+\begin{thm}[Myhill-Nerode]
+Soit $L$ un langage.  Pour $w\in \Sigma^*$, notons $w^{-1} L := \{t
+\in \Sigma^* : wt \in L\}$ (autrement dit, l'ensemble des mots qu'on
+peut concaténer à $w$ pour obtenir un mot de $L$).  Considérons la
+relation d'équivalence $\equiv$ sur $\Sigma^*$ définie par $u \equiv
+v$ si et seulement si $u^{-1}L = v^{-1}L$ (ce qui signifie, si on
+préfère, que $\forall t\in \Sigma^* ((ut\in L) \liff (vt \in L))$).
+
+Alors :
+\begin{itemize}
+\item le langage $L$ est rationnel si et seulement si la relation
+  d'équivalence $\equiv$ possède un nombre \emph{fini} $k$ de classes
+  d'équivalence,
+\item lorsque c'est le cas, il existe un DFA ayant $k$ états qui
+  reconnaît $L$, il est unique à renommage des
+  états\footnote{C'est-à-dire, si on préfère ce terme, isomorphisme
+    d'automates.} près, et il n'existe pas de DFA ayant $<k$ états qui
+  reconnaisse $L$.
+\end{itemize}
+\end{thm}
+\begin{proof}
+Supposons d'abord que l'ensemble $\Sigma^*/{\equiv}$ des classes
+d'équivalence pour $\equiv$ soit fini : appelons-le $Q$, et expliquons
+comment on peut construire un DFA reconnaissant $L$ et dont l'ensemble
+des états soit $Q$.  Notons $[u] := \{v \in \Sigma^* :\penalty-100
+u\equiv v\}$ pour la classe d'équivalence de $u$ pour $\equiv$.
+Posons $q_0 := [\varepsilon]$ la classe du mot vide.  Remarquons que
+si $u\equiv v$ (pour $u,v\in\Sigma^*$), alors on a $u\in L$ si et
+seulement si $v\in L$ (en effet, la définition de $\equiv$ est que
+$(ut\in L) \liff (vt \in L)$ pour tout $t$, et on applique ça
+à $t=\varepsilon$) : autrement dit, une classe $[u] \in Q$ est soit
+entièrement incluse dans $L$ soit disjointe de $L$ ; appelons $F$
+l'ensemble $\{[u] : u\in L\}$ des classes incluses dans $L$.  Enfin
+remarquons que si $u\equiv v$ (pour $u,v\in\Sigma^*$) et $x\in\Sigma$,
+on a encore $ux \equiv vx$ (en effet, $uxt \in L \liff vxt \in L$ pour
+tout $t\in L$) : il y a donc un sens à définir $\delta([u], x) =
+[ux]$.  On a ainsi fabriqué un automate fini $A = (Q,q_0,F,\delta)$.
+Vues les définitions de $q_0$ et $\delta$, il est clair que
+$\delta^*(q_0,w) = [w]$ pour cet automate, et vue la définition de
+$F$, on a $\delta^*(q_0,w) \in F$ si et seulement si $w\in L$.  Ceci
+montre bien que $A$ reconnaît le langage $L$.  On a donc prouvé que si
+$\Sigma^*/{\equiv}$ est fini, le langage $L$ est rationnel et même il
+existe un DFA ayant $k := \#(\Sigma^*/{\equiv})$ états qui le
+reconnaît.
+
+Supposons maintenant que $B = (Q_B, q_{0,B}, F_B, \delta_B)$ soit un
+DFA reconnaissant $L$.  Définissons une nouvelle relation
+d'équivalence $\mathrel{\equiv_B}$ sur $\Sigma^*$ par : $u
+\mathrel{\equiv_B} v$ si et seulement si $\delta_B^*(q_{0,B}, u) =
+\delta_B^*(q_{0,B}, v)$ (autrement dit, les mots $u$ et $v$ mettent
+l'automate $B$ dans le même état).  Si on a $u \mathrel{\equiv_B} v$,
+on a aussi $u \equiv v$ : en effet, pour tout $t\in L$ on a
+$\delta_B^*(q_{0,B}, ut) = \delta_B^*(q_{0,B}, vt)$, et notamment le
+membre de gauche appartient à $F_B$ si et seulement si le membre de
+droite y appartient, c'est-à-dire que $ut\in L \liff vt\in L$.  On
+vient donc de montrer que $u \mathrel{\equiv_B} v$ implique $u \equiv
+v$ (la relation $\equiv_B$ est \emph{plus fine} que $\equiv$) : si on
+préfère, chaque classe d'équivalence pour $\equiv$ est donc une
+réunion de classes d'équivalences pour $\equiv_B$.  Notamment, comme
+$\equiv_B$ a un nombre fini de classes d'équivalence (puisque
+$\delta_B^*(q_{0,B}, u)$ ne peut prendre qu'un nombre fini de valeurs,
+celles dans $Q_B$), il en va de même de $\equiv$, et plus précisément,
+comme $\equiv_B$ a au plus $\#Q_B$ classes d'équivalence, il en va de
+même de $\equiv$, c'est-à-dire $k \leq \#Q_B$.  Il n'existe donc pas
+de DFA ayant $<k$ états reconnaissant $L$.
+
+Enfin, si $B$ a $k$ états et reconnaît $L$, cela signifie que les deux
+relations $\equiv$ et $\equiv_B$ coïncident, et on définit une
+bijection $\psi$ entre le $Q = Q_A$ du paragraphe précédent et $Q_B$
+en associant à une classe $[w] \in Q$ l'état $\psi([w]) :=
+\delta_B^*(q_{0,B},w)$ (qui ne dépend que de la classe de $w$
+pour $\equiv_B$ et on vient de voir que c'est la classe de $w$
+modulo $\equiv$, c'est-à-dire $[w]$ : ceci est donc bien défini).
+Cette bijection $\psi$ vérifie $\psi(q_0) = \psi([\varepsilon]) =
+\delta_B^*(q_{0,B},\varepsilon) = q_{0,B}$ ; on a $[w] \in F$ si et
+seulement si $w\in L$, c'est-à-dire si et seulement si
+$\delta_B^*(q_{0,B},w) \in F_B$ autrement dit $\psi([w]) \in F_B$.  Et
+enfin, pour $w\in\Sigma^*$ et $x\in \Sigma$, on a $\psi(\delta([w],x))
+= \psi([wx]) = \delta_B^*(q_{0,B},wx) = \delta_B(\delta_B^*(q_0,w), x)
+= \delta_B(\psi([w]), x)$.  Bref, $\psi$ préserve l'état initial, les
+états finaux, et la relation de transition : c'est donc bien un
+isomorphisme d'automates (un renommage des états).
+\end{proof}
+
+
 %
 %
 %
-- 
cgit v1.2.3

