Lema do bombeamento para linguagens livres de contextoO lema do bombeamento para linguagens livres de contexto, também conhecido como o lema de Bar-Hillel, é um lema que dá uma propriedade compartilhada por todas as linguagens livres de contexto. Enunciado formalSe uma linguagem L é livre de contexto, então existe algum inteiro p ≥ 1 tal que qualquer sequência de caracteres s em L com |s| ≥ p (onde p é o comprimento do bombeamento) pode ser escrita como
com sub cadeias u, v, x, y e z, tal que |vxy| ≤ p, |vy| ≥ 1, e
Expressão formalO lema do bombeamento para linguagens livres de contexto (chamado apenas "lema do bombeamento" de agora em diante) descreve uma propriedade que todas as linguagens livres de contexto garantidamente possuem. A propriedade é uma propriedade de todas as cadeias na linguagem que são de comprimento pelo menos p, onde p é uma constante chamada comprimento do bombeamento -- que varia entre as linguagens livres de contexto. Seja s uma cadeia de comprimento pelo menos p que está na linguagem. O lema do bombeamento diz que s pode ser dividida em cinco sub cadeias, , onde vy não é vazia e o comprimento de vxy é no máximo p, tal que repetindo v e y qualquer (e o mesmo) número de vezes em s produz uma cadeia que ainda está na linguagem (é possível e frequentemente útil repetir zero vezes, o que remove v e y da cadeia). Este processo de "bombear para cima" cópias adicionais de v e y é o que dá nome ao lema do bombeamento. Observe que linguagens finitas (que são regulares e portanto livres de contexto) obedecem ao lema do bombeamento trivialmente por ter p igual ao comprimento da maior 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 todo p podemos encontrar alguma cadeia s de comprimento pelo menos p na linguagem que não possua as propriedades citadas acima, ou seja, que não possa ser "bombeada" sem produzir algumas cadeias que não estão na linguagem. Uso do lemaO lema do bombeamento para linguagens livres de contexto pode ser usado para mostrar que certas linguagens não são livres de contexto. Por exemplo, podemos mostrar que a linguagem não é livre de contexto usando o lema do bombeamento em uma prova por contradição. Primeiro, suponha que é livre de contexto. Pelo lema do bombeamento, existe um inteiro que é o comprimento de bombeamento da linguagem . Considere a cadeia em . O lema do bombeamento nos diz que pode ser escrita na forma , onde , e são subcadeias, tal que , , e está em para todo inteiro . Pela nossa escolha de e o fato de que , é facilmente visto que a subcadeia não pode conter mais de duas letras distintas. Ou seja, temos uma das cinco possibilidades para :
Para cada caso, é fácil verificar que não contém quantidades iguais de cada letra para qualquer . Assim, não tem a forma . Isto contradiz a definição de . Portanto, nossa hipótese inicial de que é livre de contexto deve ser falsa. Enquanto o lema do bombeamento é muitas vezes uma ferramenta útil para provar que uma determinada linguagem não é livre de contexto, o mesmo não dá uma caracterização completa das linguagens livres de contexto. Se uma linguagem não satisfaz a condição dada pelo lema do bombeamento, temos estabelecido que ela não é livre de contexto. Por outro lado, há linguagens que não são livres de contexto, mas ainda satisfazem a condição dada pelo lema do bombeamento. Existem técnicas de provas mais poderosas disponíveis, tais como o lema de Ogden, mas estas técnicas também não dão uma caracterização completa das linguagens livres de contexto. Ver tambémReferências
|