title: Pumping lemma per i linguaggi regolari
text: # Pumping lemma per i linguaggi regolari
  
  Nella teoria dei linguaggi formali il pumping lemma per i linguaggi regolari è una condizione necessaria affinché un linguaggio sia regolare. Viene utilizzato per dimostrare che un linguaggio appartiene ad una classe di linguaggi formali differente da quella generata da grammatiche formali di Tipo 3.
  
  ## Definizione formale
  
  Sia ${\mathcal {A}}=\left\langle \Sigma ,Q,\delta ,s_{0},F\right\rangle$ un automa a stati finiti tale che $|Q|=n$, sia $L(A)$ il linguaggio riconosciuto dall'automa e sia $z\in L(A)$ tale che $|z|\geq n$,
  
  È quindi possibile scrivere $z=uvw$ con $|uv|\leq n$ e $v\neq \varepsilon$ e quindi $uv^{*}w\in L(A)$.
  
  ## Dimostrazione
  
  Sia $z=x_{1}x_{2}\cdots x_{k}\in L(A)$. Poiché $|z|\geq n$ per accettare la stringa z l'automa deve assumere $n+1$ stati (compreso quello iniziale), ma poiché l'automa possiede esattamente n stati distinti, per il principio dei cassetti, uno degli stati $\left\{q_{z}0,q_{z}1,q_{z}2,\cdots ,q_{z}k\right\}$ (dove $q_{z}k$ è lo stato finale in cui la parola viene riconosciuta) deve comparire almeno due volte.
  
  Si supponga che $q_{z}i=q_{z}j$, ovvero i due stati coincidano nell'insieme Q e sia v la sottostringa di z tale che ${\hat {\delta }}(q_{z}i,v)=q_{z}j$.
  
  Poiché $z\in L(A)$ e $z=uvw$, si ha che tutte le stringhe della forma $uv^{k}w$ con $k\geq 0$ saranno riconosciute dall'automa, ovvero $uv^{k}w\in L(A)$.
  
  