Ha observado que el lenguaje generado por $\newcommand{\a}{\mathtt{a}}\newcommand{\b}{\mathtt{b}}L$ parece ser exactamente la colección de todas las cadenas de las dos formas siguientes
- $w = \a^\ell \b v \b^\ell$ o
- $w = \a^\ell v \a \b^\ell$
para alguna cadena $v \in \{ \a , \b \}^*$ .
Para demostrar que la CFG genera exactamente estas cadenas nos limitaremos a demostrar que cada una de ellas puede ser generada por $L$ y cada cadena generada por $L$ es de una de esas dos formas. (Esto será bastante manual, pero las ideas pueden hacerse formales).
Si $w = \a^\ell \b v \b^\ell$ y después de aplicar la regla $S \rightarrow \a S \b$ $\ell$ veces hemos $\a^\ell S \b^\ell$ . A partir de aquí aplicar la regla $S \rightarrow \b R$ para conseguir $\a^\ell \b R \b^\ell$ y es sencillo demostrar que el "sub-CFG" formado sólo por el $R$ -reglas puede generar cada cadena sobre $\{ \a , \b \}$ . Si $w = \a^\ell v \a \b^\ell$ procedemos de manera similar, pero tomamos la regla $S \rightarrow R \a$ en el punto adecuado.
Para demostrar que toda cadena generada por $L$ es de una de las formas anteriores, tenga en cuenta que cualquier generación debe aplicar la regla $S \rightarrow \a S \b$ $\ell$ muchas veces (para algunos $\ell \geq 0$ ), dando como resultado $\a^\ell S \b^\ell$ y luego aplicar la regla $S \rightarrow \b R$ o $\mathtt{S} \rightarrow R \a$ , dando lugar a $\a^\ell \b R \b^\ell$ , $\a^\ell R \a \b^\ell$ respectivamente. A partir de aquí utilizamos el $R$ reglas para generar alguna subcadena $v$ lo que resulta en $\a^\ell \b v \b^\ell$ , $\a^\ell v \a \b^\ell$ .
Para diseñar un CFG para el complemento del lenguaje anterior, sólo dejaré una pista:
Una pista: Para cada cadena $w \in \{ \a , \b \}^*$ hay un número entero mayor $\ell \geq 0$ tal que $w = \a^\ell v \b^\ell$ para alguna cadena $v$ . Tenga en cuenta que $v$ no puede ser de la forma $\a u \b$ para alguna subcadena $u$ (ya que $\ell$ se tomó como el mayor posible). Pero entonces, ¿qué formas posibles pueden $v$ ¿toma? ¿Y cuál de estas posibilidades no puede ser generada por $L$ ¿ por encima?
Las respuestas correctas a las preguntas de la pista deberían dar lugar a una descripción más sencilla del lenguaje generado por $L$ (ya que en realidad existe una descripción bastante sencilla del complemento).