# Lema do bombeamento para linguagens livres de contexto

O 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 formal

Se 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
    s = uvxyz
com sub cadeias u, v, x, y e z, tal que |vxy| ≤ p, |vy| ≥ 1, e
    uv$^n$xy$^n$z está em L para todo inteiro n ≥ 0.

## Expressão formal

O 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, $s=uvxyz$, 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 lema

O 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 $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. Primeiro, suponha que $L$ é livre de contexto. Pelo lema do bombeamento, existe um inteiro $p$ que é o comprimento de bombeamento da linguagem $L$. Considere a cadeia $s=a^{p}b^{p}c^{p}$ em $L$. O lema do bombeamento nos diz que $s$ pode ser escrita na forma $s=uvxyz$, onde $u,v,x,y$, e $z$ são subcadeias, tal que $|vxy|\leq p$, $|vy|\geq 1$, e $uv^{i}xy^{i}z$ está em $L$ para todo inteiro $i\geq 0$. Pela nossa escolha de $s$ e o fato de que $|vxy|\leq p$, é facilmente visto que a subcadeia $vxy$ não pode conter mais de duas letras distintas. Ou seja, temos uma das cinco possibilidades para $vxy$:
* $vxy=a^{j}$ para algum $j\leq p$.
* $vxy=a^{j}b^{k}$ para algum $j$ e $k$ com $j+k\leq p$.
* $vxy=b^{j}$ para algum $j\leq p$.
* $vxy=b^{j}c^{k}$ para algum $j$ e $k$ com $j+k\leq p$.
* $vxy=c^{j}$ para algum $j\leq p$.
Para cada caso, é fácil verificar que $uv^{i}xy^{i}z$ não contém quantidades iguais de cada letra para qualquer $i\neq 1$. Assim, $uv^{2}xy^{2}z$ não tem a forma $a^{i}b^{i}c^{i}$. Isto contradiz a definição de $L$. Portanto, nossa hipótese inicial de que $L$ é 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.