From 81bb664dd0d31f8e31ccffd901cc7c7d64ab9fe7 Mon Sep 17 00:00:00 2001 From: "David A. Madore" Date: Wed, 30 Nov 2016 19:14:54 +0100 Subject: The pumping lemma. --- notes-inf105.tex | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/notes-inf105.tex b/notes-inf105.tex index 6d60fe7..afcc0cd 100644 --- a/notes-inf105.tex +++ b/notes-inf105.tex @@ -941,7 +941,9 @@ au même (par récurrence sur la longueur du second argument) : \end{itemize} (en particulier, $\delta^*(q,x) = \delta(q,x)$ si $x\in\Sigma$, donc avec la convention faite en \ref{convention-on-words-of-length-one}, -on peut dire que $\delta^*$ prolonge $\delta$). +on peut dire que $\delta^*$ prolonge $\delta$ ; il sera par ailleurs +utile de remarquer que $\delta^*(q,ww') = +\delta^*(\delta^*(q,w),w')$). Cette fonction $\delta^*$ étant définie, on dira que l'automate $A$ \textbf{accepte} ou \textbf{reconnaît} un mot $w$ lorsque @@ -2224,6 +2226,67 @@ conduit à l'automate suivant : \noindent et finalement à l'expression rationnelle $(0|11|10(1|00){*}01){*}$, qui est équivalente à la précédente. +\begin{cor} +La classe des langages rationnels et celle des langages +reconnaissables coïncident. (On pourra donc considérer ces termes +comme synonymes.) +\end{cor} + + +\subsection{Le lemme de pompage} + +\begin{prop}[lemme de pompage pour les langages rationnels] +Soit $L$ un langage rationnel. Il existe alors un entier $k$ tel que +tout mot de $t \in L$ de longueur $|t| \geq k$ admette une +factorisation $t = uvw$ en trois facteurs $u,v,w$ où : +\begin{itemize} +\item[(i)] $|v| \geq 1$ (c'est-à-dire $v\neq\varepsilon$, +\item[(ii)] $|uv| \leq k$, +\item[(iii)] pour tout $i\geq 0$ on a $uv^iw \in L$. +\end{itemize} +\end{prop} +\begin{proof} +Soit $A$ un DFA qui reconnaît $L$, et soit $k$ son nombre d'états : on +va montrer que $k$ vérifie les propriétés énoncées. Pour cela, soit +$t = x_1 \cdots x_n$ un mot de $L$ de longueur $n \geq k$, et soient +$q_0,\ldots,q_n$ les états traversés par $A$ pendant la consommation +de $t$, autrement dit, $q_0$ est l'état initial, et $q_j = +\delta(q_{j-1}, x_j)$ pour chaque $1\leq j\leq n$ ; l'état $q_n = +\delta^*(q_0, t)$ est final puisque $t \in L$. Comme $n+1 > k$ et +comme l'automate $A$ a $k$ états, par le principe des tiroirs, il +existe $j_1\neq j_2$ tels que $q_{j_1} = q_{j_2}$ : pour être plus +précis, soit $j_2$ le plus petit possible tel que les états +$q_0,\ldots,q_{j_2}$ ne soient pas tous distincts, autrement dit, le +premier état répété, et soit $j_1$ la précédente occurrence (forcément +unique) de cet état, c'est-à-dire l'indice tel que $j_1 j_1$. On a par ailleurs +(ii) $|uv| \leq k$ puisque $|uv| = j_2$ et que les $j_2$ états +$q_0,\ldots,q_{j_2-1}$ sont distincts (c'est la minimalité de $j_2$) +de sorte que $j_2 \leq k$ (toujours par le principe des tiroirs). + +Montrons enfin (iii). On rappelle tout d'abord que +$\delta^*(q,x_1\cdots x_j) =\penalty0 \delta(\cdots\penalty500 +\delta(\delta(q,x_1),x_2)\cdots,x_j)$. Remarquons que +$\delta^*(q_0,u) = \delta^*(q_0,x_1\cdots x_{j_1}) = q_{j_1}$, et que +$\delta^*(q_{j_1},v) = \delta^*(q_{j_1},x_{j_1+1}\cdots x_{j_2}) = +q_{j_2} = q_{j_1}$. De cette dernière égalité, on tire +$\delta^*(q_{j_1},v^i) = q_{j_1}$ pour tout $i \geq 0$ (par récurrence +sur $i$). Enfin, $\delta^*(q_{j_1},w) = \delta^*(q_{j_2},w) = +\delta^*(q_{j_2}, x_{j_2+1}\cdots x_n) = q_n$ (qui est un état final). +En mettant ces faits ensemble, on a $\delta^*(q_0, uv^iw) = +\delta^*(q_{j_1}, v^iw) = \delta^*(q_{j_1}, w) = q_n$, et puisque +$q_n$ est final, ceci montre que le mot $uv^iw$ est accepté par $A$, +i.e., $uv^iw \in L$. +\end{proof} + % % -- cgit v1.2.3