Propiedades de clausura de los lenguajes regulares

Las propiedades de clausura expresan la idea de que cuando uno o varios lenguajes son regulares, entonces determinados lenguajes relacionados también lo son. Además, sirven como ilustración de cómo las representaciones equivalentes de los lenguajes regulares (autómatas y expresiones regulares) refuerzan entre sí nuestra comprensión de la clase de lenguajes, ya que a menudo una representación resulta mucho mejor que las otras para demostrar una propiedad de clausura. A continuación proporcionamos un resumen de las principales propiedades de clausura de los lenguajes regulares:

1. La unión de dos lenguajes regulares es regular.
2. La intersección de dos lenguajes regulares es regular.
3. El complementario de un lenguaje regular es regular.
4. . La diferencia de dos lenguajes regulares es regular.
5. La reflexión de un lenguaje regular es regular.
6. La clausura (operador) de un lenguaje regular es regular.
7. La concatenación de lenguajes regulares es regular.
8. Un homomorfismo (sustitución de símbolos por cadenas) de un lenguaje regular es regular.
9. El homomorfismo inverso de un lenguaje regular es regular.

## **Clausura de lenguajes regulares para las operaciones booleanas**

Las primeras propiedades de clausura son las tres operaciones booleanas: unión, intersección y complementación:

### **Unión:**

Sean L y M lenguajes del alfabeto Σ. Luego L ∪ M es el lenguaje que contiene todas las cadenas que pertenecen a L, a M o a ambos.

### **Intersección:**

Sean L y M lenguajes del alfabeto Σ. Luego L ∩ M es el lenguaje que contiene todas las cadenas que pertenecen tanto a L como a M.

### **Complementación:**

Sea L un lenguaje del alfabeto Σ. Entonces L, el lenguaje complementario de L, es el conjunto de las cadenas pertenecientes a Σ∗ que no pertenecen a L.

### **Reflexión:**

La reflexión de una cadena a1a2 ···an es la cadena escrita en orden inverso, es decir, anan−1 ···a1. Utilizamos R para indicar la cadena refleja de w. Luego, la cadena refleja de 0100 es 0010R y εR = ε.

La reflexión de un lenguaje L, que se expresa como LR, es el lenguaje formado por las reflexiones de todas sus cadenas. Por ejemplo, si L = {001,10,111}, entonces LR = {100,01,111}.

La reflexión es otra operación para la que los lenguajes regulares son cerrados; es decir, si L es un lenguaje regular, LR también lo es.

### **Homomorfismo:**

Un homomorfismode cadenas es una función sobre cadenas que sustituye cada símbolo por una cadena determinada.

#### Ejemplo:

La función h definida por h(0) = ab y h(1) = ε es un homomorfismo. Dada cualquier cadena formada por ceros y unos, todos los ceros se reemplazan por la cadena ab y todos los unos se reemplazan por la cadena vacía. Por ejemplo, h aplicada a la cadena 0011 proporciona abab.

Formalmente, si h es un homomorfismo sobre el alfabeto Σ y w = a1a2 ···an es una cadena de símbolos perteneciente a Σ, entonces h(w) = h(a1)h(a2)···h(an). Es decir, aplicamos h a cada símbolo de w y concatenamos los resultados en orden. Por ejemplo, si h es el homomorfismo de este ejemlo y w = 0011, entonces

###

Se usa para demostrar que un lenguaje no es regular

Para todo lenguaje regular infinito L, existe una constante m, dependiente de ese lenguaje, de forma que si w es una cadena de L con |w| ≥ m, podemos partir w en tres cadenas, x, y, z, de forma que:

* w = xyz,
* y ≠ ε (o dicho de otro modo, que |y| ≥ 1),
* |xy| ≥ m
* Para todo i ≥ 0, la cadena xyiz pertenece a L.

El siguiente video de Juancar Molinero exlica de forma mas didactica la ley de bombeo

El lema de Bombeo expresa que dada
una longitud mínima **n** (que depende del lenguaje), todas las
cadenas *z* de longitud mayor o igual a *n* pueden
escribirse como *z = uvw*, donde *uv* no supera
a *n*, *v* es no vacía y es posible repetir tantas
veces *v* como se desee sin que la cadena deje de pertenecer al
lenguaje. Es decir, uv∗wuv∗w  pertenece
al lenguaje.

Intuitivamente, significa que existe
una longitud **n** (para la cual puede tomarse la cantidad de
estados del AFD mínimo que captura el lenguaje) tal que toda cadena mayor o
igual resulta de haber realizado al menos un ciclo sobre uno de los estados del
autómata. Esto es, si se tiene *w = xyz*, se obtiene un recorrido de
la siguiente forma.

Notar que la cadena *y* debe ser no vacía para que el ciclo efectivamente exista, *xy* es menor que la cantidad de estados del autómata, y la cadena total debe superar la cantidad de estados (o podría ser capturada por el autómata sin efectuar ningún ciclo). Expresado en transiciones de configuraciones instantáneas:

(q0,xyz)⊢∗(qij,yz)⊢∗(qik,z)⊢∗(qm,λ)(q0,xyz)⊢∗(qij,yz)⊢∗(qik,z)⊢∗(qm,λ)

Como qij=qikqij=qik  y por la propiedad ya demostrada, es posible repetir *y* tantas veces como se desee y volver siempre al mismo estado, que tras consumir la cadena *z* se sabe que lleva a un estado final con lo que la cadena resulta aceptada.

El lema de bombeo es una manera útil de demostrar que un lenguaje no es regular, viendo que no verifica este lema. Notar que la implicación no vale a la inversa, esto es, un lenguaje no regular puede cumplir Bombeo de regulares. En estos casos generalmente se recurre a demostrar que el complemento, inverso, unión o alguna combinación a partir de dicho lenguaje no lo verifica.