Cómo demostrar que el lenguaje definido como [matemáticas] L = \ {a ^ {n + 1} b ^ n: n \ ge 0 \} [/ matemáticas] no es regular utilizando el lema de bombeo (informática)

Regrese a los cimientos del lema de bombeo.

Suponga que [matemáticas] L [/ matemáticas] es regular. Eso significa que hay un autómata finito que lo acepta. Supongamos que la FA tiene 100 estados.

Ahora [math] w = a ^ {1000} b ^ {999} [/ math] está en [math] L [/ math], por lo que la FA acepta eso. Como el FA tiene solo 100 estados, debe repetir una secuencia de estados; Debe tener un bucle. De hecho, el bucle debe ocurrir en algún momento en los primeros 100 caracteres; en algún punto de la secuencia de [math] a [/ math] ‘s.

En el punto donde ocurre el ciclo, podemos imaginar una palabra diferente que corta el ciclo (o lo repite). Dado que esto también es aceptado por la FA, también está en [matemáticas] L [/ matemáticas]. Esto significa que podemos eliminar (o agregar) un número de [math] a [/ math] ‘s de [math] w [/ math] para obtener otra palabra en [math] L [/ math].

Bueno eso es imposible. Quitar o agregar cualquier [matemática] a [/ matemática] a [matemática] w [/ matemática] dará como resultado absolutamente una palabra que no esté en [matemática] L [/ matemática]. (Creo que esto se llama “bombeo”)

¿Quizás la FA tiene un número diferente de estados? Supongamos que tiene estados [math] t [/ math]. Ahora use la palabra [math] w = a ^ {10t} b ^ {10t-1} [/ math] Nuevamente, debe haber un bucle en el FA que ocurre en la secuencia inicial de [math] a [/ math] ‘s, y eliminarlo o duplicarlo produce otra ruta a través del FA que representa una palabra aceptada. Una palabra que no está en [matemáticas] L [/ matemáticas]. Para cualquier [matemática] t [/ matemática], siempre podemos “bombear”.

La suposición era falsa; [matemáticas] L [/ matemáticas] no es regular.

Si prefiere usar expresiones regulares en lugar de autómatas finitos, la demostración es similar. Aquí, t es la longitud de la RE; para palabras de longitud suficiente, debe haber una expresión en estrella que se pueda cortar o repetir, causando que “bombees”.

La propiedad hinchada? ¿Es ese otro nombre para el lema de bombeo?

Supongamos, en aras de la contradicción, que el lenguaje dado es regular, que es reconocido por algún autómata finito determinista con … digamos [matemáticas] p [/ matemáticas] estados. Como [math] a ^ {p + 1} b ^ p \ en L [/ math], se deduce que en la entrada [math] a ^ {p + 1} b ^ p [/ math], el DFA se mueve desde estado inicial a un estado de aceptación. Pero según el Principio de Pigeonhole, antes de que termine de procesar los [math] a [/ math] ‘s, debe visitar algún estado en particular al menos dos veces. Por lo tanto, podemos dividir la cadena [matemática] a ^ {p + 1} b ^ p [/ matemática] en tres partes, [matemática] x [/ matemática], [matemática] y [/ matemática] y [matemática] z [/ math], donde [math] x [/ math] es la parte que nos lleva al primer estado repetido; [math] y [/ math] es la cadena no vacía más corta que nos lleva del estado repetido a sí mismo, y [math] z [/ math] es el resto de la cadena después de la repetición del primer estado.

Formalmente:

  • [matemáticas] a ^ {p + 1} b ^ p = xyz [/ matemáticas];
  • [matemáticas] | xy | \ leq p [/ matemáticas];
  • [matemáticas] | y |> 0 [/ matemáticas].

Dado que la cadena [math] xyz [/ math] es aceptada por el DFA y la subcadena [math] y [/ math] tiene los mismos estados de inicio y fin, podemos repetir esta subcadena tantas veces como queramos (o no en todas). Es decir, para cualquier [matemática] k \ geq 0 [/ matemática], [matemática] xy ^ kz \ en L [/ matemática]. Por supuesto, [math] xy [/ math] es una subcadena de [math] a ^ {p + 1} [/ math] debido a su longitud, por lo que [math] x [/ math] es una subcadena más corta. Esto significa que [math] xz \ en L [/ math], y sin embargo, se obtiene de un miembro de [math] L [/ math] eliminando algunos [math] a [/ math] ‘s y no [math] b [/ math] ‘s. Formalmente, [matemáticas] xz = a ^ {p + 1- | y |} b ^ p \ notin L [/ matemáticas].

En otras palabras, este DFA (y, en consecuencia, cualquier DFA que acepte todas las palabras de [math] L [/ math]) necesariamente debe aceptar al menos una palabra que no esté en [math] L [/ math]. Esta contradicción muestra que [matemáticas] L [/ matemáticas] no es, de hecho, un lenguaje regular.