Ejemplos de lenguajes sin contexto con complementos sin contexto

11

Los lenguajes sin contexto no se cierran bajo complementación. En las conferencias se nos ha dado el mismo argumento que aquí en Wikipedia : para

A={anbncm; m,n0}andB={ambncn; m,n0},
tanto A como B están libres de contexto, pero su intersección AB no lo es. Dado que los lenguajes libres de contexto están cerrados bajo sindicatos, tampoco pueden cerrarse bajo complementación.

Sin embargo, esto solo muestra que uno de los tres idiomas A , B y A¯B¯ es un lenguaje sin contexto con un complemento sin contexto, pero no para cuál de estos es cierto. ¿Así que qué es lo?

Además, ¿hay un ejemplo mínimo y elegante de un lenguaje sin contexto con un complemento sin contexto, tal vez sobre un alfabeto binario?

k.stm
fuente

Respuestas:

16

El idioma no está libre de contexto (como se puede mostrar usando el lema de bombeo; ver aquí ). Su complemento tiene contexto (como se muestra aquí ). Esto proporciona un ejemplo simple y elegante de un lenguaje sin contexto (sobre un alfabeto binario) cuyo complemento no está libre de contexto, como solicitó.L1={www{a,b}}L2={a,b}L1

DW
fuente
13

El ejemplo que ves en Wikipedia: pon , . Es fácil ver que y tienen contexto definiendo un PDA; puede notar que son lenguajes deterministas sin contexto, que es una clase cerrada bajo complemento. Por lo tanto, es un lenguaje sin contexto con un complemento sin contexto .A={anbncm}B={ambncn}A¯B¯A¯B¯AB={anbncn}

En la misma línea, el lenguaje no está libre de contexto, pero su complemento sí.{anbmcndm}

sdcvvc
fuente
La pregunta pide "mínimo y elegante" y estos ejemplos son mucho más complejos que el simple ejemplo dado por @DW en su respuesta.
David Richerby
2
@David Richerby: OMI, el ejemplo podría ser más elegante que o , pero es más complejo de probar, mientras que los otros dos son mecánicos. {ww}¯{anbncn}¯{anbncmdm}¯
sdcvvc
Debe haber querido decir en su segundo ejemplo. {anbmcndm}
Yuval Filmus
Sí, gracias por la solución (veo que cometí el mismo error en el comentario, demasiado tarde para editar ahora).
sdcvvc