Lema do bombeamento para linguagens de livre-contextoO Lema do bombeamento para linguagens de livre-contexto, também conhecido como o lema de Bar-Hillel, é um lema que dá uma propriedade compartilhada por todas as linguagem livre de contexto. Definição FormalSe uma linguagem L é de livre-contexto, então existe um número inteiro p ≥ 1 onde, se s é uma cadeia qualquer em L com |s| ≥ p (onde p é o comprimento do bombeamento), então ela pode ser dividida em cinco partes
em que u, v, x, y e z são as subcadeias, e as condições |vxy| ≤ p, |vy| ≥ 1, e
Definição Informal e ExplicaçãoO lema do bombeamento para linguagens de livre-contexto (chamado apenas de "lema do bombeamento" de agora em diante) descreve uma propriedade que todas as linguagens de livre-contexto garantidamente possuem. Essa propriedade é uma propriedade de todas as cadeias da linguagem de tamanho pelo menos p, onde p é uma constante chamada de comprimento do bombeamento -- isso varia entre as linguagens de livre-contexto. Considere s uma cadeia de tamanho pelo menos p que pertence à linguagem. O lema do bombeamento afirma que s pode ser dividida em cinco subcadeias, , onde vy é não-vazia e o tamanho de vxy é no máximo p, de tal forma que repetindo v e y qualquer (e igualmente) número de vezes em s produz uma cadeia que ainda pertence à linguagem (é possível e frequentemente útil repetir as cadeias zero vezes, removendo v e y da cadeia). Esse processo de "bombear" cópias adicionais de v e y é o que dá o nome do lema do bombeamento. Note que linguagens finitas (que são regulares e portanto de livre-contexto) obedecem ao lema do bombeamento trivialmente tendo p igual ao maximo tamanho da cadeia em L mais un. Como não há cadeias desse tamanho, o lema do bombeamento não é violado. O lema do bombemento é frequentemente usado para provar que uma dada linguagem não é de livre-contexto mostrando que para cada p, nós podemos achar uma cadeia s de tamanho pelo menos p na linguagem que não possui as propriedades mostradas acima, isto é, ela não pode ser "bombeada" sem produzir cadeias que não estão na linguagem. Uso do lemaO lema do bombeamento para linguagens de livre-contexto pode ser usado para mostrar que certa linguagem não é de livre-contexto. Por exemplo, nós podemos mostrar que a linguagem não é de livre-contexto usando o lema do bombemento numa prova por contradição. Primeiramente, assumimos que é de livre-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, de tal forma que , , e pertence à para todo inteiro . Por nossa escolha de e pelo fato de , é facilmente visto que a subcadeia não pode conter mais que duas letras diferentes. Então, temos cinco possibilidades para :
Para cada caso, é facilmente verificado que não contém números iguais de cada letra para qualquer . Assim, não tem a forma de . Isso contradiz a definição de . Portanto, nossa suposição inicial que é de livre-contexto é falsa. Enquanto que o lema do bombeamento é geralmente uma ferramenta útil para provar que dada linguagem não é de livre-contexto, ela não dá uma completa caracterização de uma linguagem de livre-contexto. Se uma linguagem não satisfaz a condição dada pelo lema do bombeamento, nós estabelecemos que ela não é de livre-contexto. Porém, há linguagens que não são de livre-contexto, mas satisfazem a condição dada pelo lema do bombeamento. Existem técnicas de prova mais poderosas disponíveis, como o lema de Ogden, mas essas técnicas também não dão uma caracterização completa das linguagens de livre-contexto. Ver tambémReferências
|
Portal di Ensiklopedia Dunia