Ecco alcune prove del fatto che non esiste un lemma di pompaggio per le lingue sensibili al contesto.
Naturalmente, una risposta si basa sulla domanda che cosa costituisce un lemma di pompaggio. La definizione ragionevole più debole che mi viene in mente è questa: una lezione di linguaCha un lemma di pompaggio se esiste un predicato ternario decidibileP(⋅,⋅,⋅) dove P(g,w,d) si intende:
- g è una parola che codifica una lingua L(g) a partire dal C (pensa: grammatica),
- w è una parola nella lingua codificata da g
- dè una parola che codifica un calcolo / derivazione pompabile perw(pensa: calcolo NFA con albero ripetuto di derivazione di stato o CFG con ripetuto nonterminale). Qui significa pompabile : esistono infinitamente molte parole dentroL(g).
Inoltre, vogliamo che venga data una lingua L in C codificato da g, per ogni parola sufficientemente lunga w∈L, esiste una parola d tale che
P(g,w,d).
Ad esempio, il lemma di pompaggio per le lingue regolari darebbe origine al predicato "g codifica un εsenza NFA e d codifica una corsa che ripete uno stato e legge w". Per codifiche adeguate, ciò soddisfa chiaramente le condizioni di cui sopra.
Ora mostriamo che un tale predicato non esiste per le lingue sensibili al contesto.
Osserva che se una classe di lingue ha un lemma di pompaggio, allora il problema dell'infinito (data una grammatica, genera una lingua infinita?) È enumerabile ricorsivamente: data una codifica g, possiamo enumerare le parole w e d e controlla se P(g,w,d). Se lo trovassimow,d, rispondiamo "sì", altrimenti continuiamo l'enumerazione.
Tuttavia, mostriamo che il problema dell'infinito per i linguaggi sensibili al contesto non è ricorsivamente enumerabile. Richiama questoΠ02è un livello della gerarchia aritmetica che include rigorosamente le lingue ricorsivamente enumerabili. Quindi, è sufficiente dimostrare:
Reclamo : il problema dell'infinito per i linguaggi sensibili al contesto èΠ02-completare.
È noto che il problema dell'infinito per le lingue ricorsivamente enumerabili è Π02-completo (più spesso, si trova la formulazione del problema della finiteness Σ02-completare). Pertanto, è sufficiente ridurre quest'ultimo problema al problema dell'infinito per i linguaggi sensibili al contesto.
Dato un TM M, costruiamo un LBA A per la lingua
{u#v∣v is a shortlex-minimal accepting computation of M on input u}.
Poi,
L(A) è infinito iff
L(M) è infinito, il che completa la nostra prova.
Aggiornamento: cercato di essere più chiaro. Aggiornamento: esempio aggiunto.