Pumping lemma per i linguaggi regolari

Da Wikipedia, l'enciclopedia libera.
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[modifica | modifica wikitesto]

Sia un automa a stati finiti tale che , sia il linguaggio riconosciuto dall'automa e sia tale che ,

È quindi possibile scrivere con e e quindi .

Dimostrazione[modifica | modifica wikitesto]

Sia . Poiché per accettare la stringa z l'automa deve assumere stati (compreso quello iniziale), ma poiché l'automa possiede esattamente n stati distinti, per il principio dei cassetti, uno degli stati (dove è lo stato finale in cui la parola viene riconosciuta) deve comparire almeno due volte.

Si supponga che , ovvero i due stati coincidano nell'insieme Q e sia v la sottostringa di z tale che .

Poiché e , si ha che tutte le stringhe della forma con saranno riconosciute dall'automa, ovvero .

Bibliografia[modifica | modifica wikitesto]

  • (EN) Yehoshua Bar-Hillel, M. A. Perles, E. Shamir, On formal properties of simple phrase structure grammars, in Zeitschrift für Phonetik, Sprachwissenschaft und Kommunikationsforschung, vol. 14, 1961, pp. 143-172.
  • (EN) John E. Hopcroft, Rajeev Motwani; Jeffrey D. Ullman, Properties of Regular Languages, in Introduction to Automata Theory, Languages, and Computation, Addison Wesley, 15 luglio 2006, ISBN 978-0-321-46225-1.
  • (EN) Martin Davis, Ron Sigal; Elaine J. Weyuker, The Pumping Lemma and Its Applications, in Computability, Complexity, and Languages: Fundamentals of Theoretical Computer Science, Morgan Kaufmann, 17 febbraio 1994, ISBN 978-0-12-206382-4.

Voci correlate[modifica | modifica wikitesto]