Pumping lemma per i linguaggi regolari

Da testwiki.
Vai alla navigazione Vai alla ricerca

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 𝒜=Σ,Q,δ,s0,F un automa a stati finiti tale che |Q|=n, sia L(A) il linguaggio riconosciuto dall'automa e sia zL(A) tale che |z|n,

È quindi possibile scrivere z=uvw con |uv|n e vε e quindi uv*wL(A).

Dimostrazione

Sia z=x1x2xkL(A). Poiché |z|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 {qz0,qz1,qz2,,qzk} (dove qzk è lo stato finale in cui la parola viene riconosciuta) deve comparire almeno due volte.

Si supponga che qzi=qzj, ovvero i due stati coincidano nell'insieme Q e sia v la sottostringa di z tale che δ^(qzi,v)=qzj.

Poiché zL(A) e z=uvw, si ha che tutte le stringhe della forma uvkw con k0 saranno riconosciute dall'automa, ovvero uvkwL(A).

Bibliografia

Voci correlate

Template:Portale