Dado un lenguaje regular , entonces es fácil demostrar que hay una constante tal que es , con existen cadenas , y manera que y , y para todo es. Se dice ampliamente que lo contrario no es cierto, pero no he visto ningún ejemplo claro. ¿Alguna sugerencia? Claramente, la prueba de que el lenguaje ofensivo no es regular tiene que usar métodos más fuertes que el típico "no satisface el lema de bombeo". Me interesarían ejemplos simples, para presentar en clases introductorias de idiomas formales.
formal-languages
proof-techniques
vonbrand
fuente
fuente
Respuestas:
El idioma parece ser simple. La segunda parte es regular (y se puede bombear). La primera parte no es regular, pero se puede bombear "a" la segunda parte eligiendo para bombear.{$anbn∣n≥1}∪{$kw∣k≠1,w∈{a,b}∗} $
(agregado) Por supuesto, esto se puede generalizar a paracualquier L ⊆ { a , b } ∗ . A veces la formulación está en el estilo "si ... entonces ...": si w comienza con un solo $, entonces es de la forma. Que personalmente me parece menos intuitivo.$ L ∪ { $k∣ k ≠ 1 } ⋅ { a , b }∗ L ⊆ { a , b }∗ w PS
Como ha señalado el @vonbrand (posiblemente) la parte no regular de la lengua se aísla mediante la intersección con . Esto se puede probar por separado utilizando el lema de bombeo si es necesario.$ { a , b }∗
fuente