Lema do bombeamento para linguagens livre de contexto

O lema do bombeamento para linguagens livres de contexto, também conhecido como o lema Bar-Hillel, é um lema que que sua propriedade é compartilhada por todas as linguagens livres de contexto. Declaração Formal Se uma linguagem L é livre de contexto, então existe algum inteiro p ≥ 1 tal que qualquer cadeia s em L com | s | ≥ p (onde p é um "comprimento de bombeamento") pode ser escrita como

Declaração formal

Se uma linguagem L é livre de contexto, então existe algum inteiro p ≥ 1 tal que qualquer cadeia s em L com | s | ≥ p (onde p é um "comprimento de bombeamento") pode ser escrita como

s = uvxyz

com as subcadeias u, v, x, y e z, de tal modo que

1. |vxy| ≤ p,
2. |vy| ≥ 1, e
3. uv nxy nz pertence a L para todo n ≥ 0.

Declaração Informal e explicação

O lema do bombeamento para linguagens livres de contexto (chamado apenas "o lema do bombeamento" para o resto deste artigo) descreve uma propriedade que todas as linguagens livres de contexto possuem. Propriedade que todas as cadeias da linguagem que têm comprimento de pelo menos p, onde p é uma constante chamada de bombeamento de comprimento que varia entre as linguagens livres de contexto. E s é uma sequência de tamanho pelo menos p, que está na linguagem.

Os estados de bombeamento de s podem ser dividida em cinco subcadeias, s = u v x y z {\displaystyle s=uvxyz} onde vy não pode ser vazia e o comprimento de vxy é no máximo de p, de tal modo que qualquer repetição de v e y produz uma cadeia s que ainda está na linguagem. Este processo de "bombear" cópias adicionais de v e y é o que dá o lema do bombeamento seu nome. Observe que as linguagens finitas (que são regulares e, portanto, livre de contexto) obedecem ao lema do bombeamento trivialmente por ter p igual ao comprimento máximo da cadeia em L, mais um. Como não existem cadeias desse comprimento o lema do bombeamento não é violado. O lema do bombeamento é frequentemente usado para provar que uma determinada linguagem não é livre de contexto, mostrando que para cada p, podemos encontrar alguma cadeia s de comprimento pelo menos p na linguagem que não tem as propriedades descritas acima, ou seja, que ele não pode ser "bombeada", sem conseguir produzir alguma cadeia da linguagem.

Uso do lema

Por exemplo, podemos mostrar que a linguagem L = { a i b i c i | i > 0 } {\displaystyle L=\lbrace a^{i}b^{i}c^{i}|i>0\rbrace } não é livre de contexto usando o lema do bombeamento em uma prova por contradição. Em primeiro lugar, assumimos que L é livre de contexto. Pelo lema de bombagem, existe um número inteiro p que é o comprimento de bombeamento da linguagem. Considere a cadeia s = a p b p c p {\displaystyle s=a^{p}b^{p}c^{p}} em L {\displaystyle L} . O lema do bombeamento nos diz que pode ser escrito na forma s = u v x y z {\displaystyle s=uvxyz} , onde u , v , x , y {\displaystyle u,v,x,y} , and z {\displaystyle z} são subcadeias, de tal forma que | v x y | p {\displaystyle |vxy|\leq p} , | v y | 1 {\displaystyle |vy|\geq 1} , e u v i x y i z {\displaystyle uv^{i}xy^{i}z} pertence a L {\displaystyle L} para cada inteiro i 0 {\displaystyle i\geq 0} . Escolhendo s e o fato de | v x y | p {\displaystyle |vxy|\leq p} , vê-se facilmente que a substring v x y {\displaystyle vxy} não pode conter mais do que duas letras distintas. Ou seja, temos uma das cinco possibilidades para v x y {\displaystyle vxy} :

  1. v x y = a j {\displaystyle vxy=a^{j}} para cada j p {\displaystyle j\leq p} .
  2. v x y = a j b k {\displaystyle vxy=a^{j}b^{k}} para cada j {\displaystyle j} e k {\displaystyle k} com j + k p {\displaystyle j+k\leq p} .
  3. v x y = b j {\displaystyle vxy=b^{j}} para cada j p {\displaystyle j\leq p} .
  4. v x y = b j c k {\displaystyle vxy=b^{j}c^{k}} para cada j {\displaystyle j} e k {\displaystyle k} com j + k p {\displaystyle j+k\leq p} .
  5. v x y = c j {\displaystyle vxy=c^{j}} para cada j p {\displaystyle j\leq p} .

Para cada caso, é facilmente verificado que u v i x y i z {\displaystyle uv^{i}xy^{i}z} não contem iguais números para cada letra em cada i 1 {\displaystyle i\neq 1} . Então, u v 2 x y 2 z {\displaystyle uv^{2}xy^{2}z} não tem a forma a i b i c i {\displaystyle a^{i}b^{i}c^{i}} . Isso contradiz a definição de L {\displaystyle L} . Portanto, o que assumimos no início para L {\displaystyle L} , sendo livre de contexto é falso.

Enquanto o lema do bombeamento é muitas vezes uma ferramenta útil para provar que uma determinada linguagem não é livre de contexto, não dos da uma caracterização completa das linguagens livres de contexto. Se uma linguagem não satisfaz a condição dada pelo lema do bombeamento, sabemos que ela não é livre de contexto. Por outro lado, existem linguagens que não são livres de contexto, mas ainda satisfazem a condição dada pelo lema do bombeamento. Existem técnicas de prova mais poderosos disponíveis, tais como lema de Ogden, mas também não dão uma caracterização completa das linguagens livres de contexto.

Veja também

Referências

  • Bar-Hillel, Y.; Perles, M. and Shamir, E. (1961). «On formal properties of simple phrase-structure grammars». Zeitschrift fur Phonetik, Sprachwissenschaft, und Kommunikationsforschung. 14: 143–177  A referência emprega parâmetros obsoletos |coautor= (ajuda)
  • Michael Sipser (1997). Introduction to the Theory of Computation. [S.l.]: PWS Publishing. ISBN 0-534-94728-X  Section 1.4: Nonregular Languages, pp. 77–83. Section 2.3: Non-context-free Languages, pp. 115–119.