Es un dispositivo destinado a demostrar que un idioma determinado no puede pertenecer a una clase determinada.
Consideremos el lenguaje de los paréntesis equilibrados (que significan los símbolos '(' y ')', e incluyen todas las cadenas que están equilibradas en el significado habitual y ninguna que no lo esté. Podemos usar el lema de bombeo para mostrar que esto no es regular.
(Un idioma es un conjunto de cadenas posibles. Un analizador es algún tipo de mecanismo que podemos usar para ver si una cadena está en el idioma, por lo que tiene que poder distinguir entre una cadena en el idioma o una cadena fuera el idioma. Un idioma es "regular" (o "sin contexto" o "sensible al contexto" o lo que sea) si hay un analizador regular (o lo que sea) que pueda reconocerlo, distinguiendo entre cadenas en el idioma y cadenas que no están en el idioma.)
LFSR Consulting ha proporcionado una buena descripción. Podemos dibujar un analizador para un lenguaje regular como una colección finita de cuadros y flechas, con las flechas que representan caracteres y los cuadros que los conectan (actuando como "estados"). (Si es más complicado que eso, no es un lenguaje común). Si podemos obtener una cadena más larga que el número de casillas, significa que pasamos por una casilla más de una vez. Eso significa que teníamos un bucle y podemos recorrerlo tantas veces como queramos.
Por lo tanto, para un lenguaje normal, si podemos crear una cadena arbitrariamente larga, podemos dividirla en xyz, donde x son los caracteres que necesitamos para llegar al inicio del ciclo, y es el ciclo real y z es lo que sea que Necesito hacer que la cadena sea válida después del ciclo. Lo importante es que las longitudes totales de xey son limitadas. Después de todo, si la longitud es mayor que el número de cajas, obviamente hemos pasado por otra caja mientras hacíamos esto, y entonces hay un bucle.
Entonces, en nuestro lenguaje equilibrado, podemos comenzar escribiendo cualquier número de paréntesis izquierdos. En particular, para cualquier analizador, podemos escribir más parientes izquierdos que cuadros, por lo que el analizador no puede decir cuántos parientes izquierdos hay. Por lo tanto, x es una cierta cantidad de parientes izquierdos, y esto es fijo. y también es un número de parientes izquierdos, y esto puede aumentar indefinidamente. Podemos decir que z es un número de parientes derechos.
Esto significa que podríamos tener una cadena de 43 paréntesis izquierdos y 43 parientes derechos reconocidos por nuestro analizador, pero el analizador no puede distinguir eso de una cadena de 44 paréntesis izquierdos y 43 paréntesis derechos, que no está en nuestro idioma, así que el analizador no puede analizar nuestro idioma.
Dado que cualquier posible analizador normal tiene un número fijo de casillas, siempre podemos escribir más paréntesis izquierdos que ese, y mediante el lema de bombeo podemos agregar más paréntesis izquierdos de una manera que el analizador no puede distinguir. Por lo tanto, el lenguaje de paréntesis equilibrado no puede ser analizado por un analizador regular y, por lo tanto, no es una expresión regular.