Lema de bombeamento para CFG

Lema

E se L é uma linguagem livre de contexto, há um comprimento de bombeamento p de modo que qualquer corda w ∈ L de comprimento ≥ p pode ser escrito como w = uvxyz, Onde vy ≠ ε, |vxy| ≤ p, e para todos i ≥ 0, uvixyiz ∈ L.

Aplicações do Lema de Bombeamento

O lema do bombeamento é usado para verificar se uma gramática está livre de contexto ou não. Vamos dar um exemplo e mostrar como ele é verificado.

Problema

Descubra se o idioma L = {xnynzn | n ≥ 1} é livre de contexto ou não.

Solução

Deixei Lé livre de contexto. Então,L deve satisfazer o lema do bombeamento.

Primeiro, escolha um número ndo lema do bombeamento. Então, considere z como 0 n 1 n 2 n .

Pausa z para dentro uvwxy, Onde

|vwx| ≤ n and vx ≠ ε.

Conseqüentemente vwxnão pode envolver 0s e 2s, uma vez que o último 0 e os primeiros 2 estão separados por pelo menos (n + 1) posições. Existem dois casos -

Case 1 - vwxnão tem 2s. Entãovxtem apenas 0s e 1s. Entãouwy, que teria que estar em L, tem n 2s, mas menos do que n 0s ou 1s.

Case 2 - vwx não tem 0s.

Aqui ocorre contradição.

Conseqüentemente, L não é uma linguagem livre de contexto.