Está en la página 1de 25

1 Preliminares

1.1 Introducción : La información se representa teóricamente por medio de secuencias finitas


de caracteres(tiene un primer y último término bien definidos; en cambio en una serie
infinita, cada uno de los términos suele obtenerse a partir de una determinada
regla o fórmula, o por algún algoritmo.), esta noción esencial en la teoría de la
computación se formaliza mediante el concepto de palabra o cadena junto con todas sus
propiedades y características. En esta unidad se define también el concepto de lenguaje como
un conjunto de cadenas y se presentan las propiedades algebraicas de los lenguajes.
1.2 Alfabeto

Un alfabeto es un conjunto finito no vacío. 

Por convención se denota a los alfabetos con la letra ∑.

A los elementos de un alfabeto se les llama letras, símbolos o caracteres.

Ejemplos

 El conjunto {0,1} es un alfabeto, al cual se le conoce como alfabeto binario.


 El alfabeto en español ∑ = {A, B, . . ., Z} es un alfabeto.
 El código Morse ∑ = { . _ , _ . . . , _ . _ . ,  . . . , _ _ . . } es un alfabeto.
 El conjunto de números naturales no es un alfabeto.

1.3 Cadena
Se define una cadena como una secuencia finita de símbolos de un determinado alfabeto,
también se conoce como palabra sobre dicho alfabeto.

Ejemplos

       Si ∑ = { a , b }

 s = ‘ bbaa’
 t = ‘ ababab’

       Si ∑ = { 0 , 1 }

 m = ‘ 01011’
 h = ‘ 1001’

Cada símbolo de un alfabeto es una cadena sobre dicho alfabeto. 


La cadena vacía se denota por el símbolo λ, es una palabra sobre cualquier alfabeto.
La palabra vacía λ es una secuencia vacía de símbolos tomados de cualquiera que sea el
alfabeto en cuestión (Otros autores la denotan con ε ).

Ejemplo
Para el alfabeto español Σ = {A, B, C, . . . , Z}

 s = 'HOLA'
 x = 'AZATTX'
 λ = ''

1.4 Longitud

Si w es una cadena sobre cualquier alfabeto, su longitud se denota mediante el símbolo |w| (Se
lee longitud de w o módulo de w o cardinal de w).

La longitud de w es el número de símbolos que tiene la cadena.

Ejemplo

Sea ∑ = {a, p, t, u}

 Si s = 'appu', entonces |s| = 4 


 Si z = 'a', entonces |z| = 1 
 La cadena vacía λ, no tiene símbolos con lo que |λ| = 0 .

1.5 Construcción de Σ*
Sea Σ un alfabeto.

Para cada n entero no negativo, sea Σn el conjunto de todas las cadenas s sobre Σ, tal que |s| = n.

Ejemplos

Si Σ = {a, b, c }

 Σ2 = { 'aa', 'ab', 'ac', 'ba', 'bb', 'bc', ••• }


 Σ3 = { 'aaa', 'aab', 'abc', 'baa', 'bab', 'bbc', 'bcc', ••• }

Por lo tanto:

                     Σ0 = { λ }

                     Σ1 = Σ

Si unimos algunos conjuntos

Σ2 U Σ3 = Conjunto de cadenas sobre Σ que tienen longitud 2 o 3

Σ0 U Σ1 U Σ2 U ••• U Σn = Conjunto de cadenas sobre Σ de longitud mayor o igual a 0 y menor o
igual que n.
Conjunto de cadenas sobre Σ de longitud mayor o igual a 0 y menor o igual que n.

Conjunto de todas las palabras que puedo formar con el .


alfabeto Σ.

En otras palabras, Σ* es el conjunto de todas las cadenas de Σ, incluyendo la cadena vacía.

Es necesario tener en cuenta que el lenguaje compuesto por todas las cadenas sobre el alfabeto
Σ se conoce como cerradura de Σ o lenguaje universal sobre Σ y se denota por Σ*. 

Para cualquier alfabeto, Σ* es infinito (ya que los alfabetos son no vacíos).

Ejemplos

  {0,1}* = { λ, 0, 1, 00, 01, 10, 11, 000, 010, 011, 101,•••}.


 Si Σ = { 1 }, entonces Σ* = { λ, 1, 11, 111, 1111, •••}

1.6 Concatenación

Sea Σ un alfabeto.

Sean x e y dos cadenas sobre Σ* (x , y∈∈  Σ*) se define la operación de


concatenación mediante la operación binaria + : Σ* x Σ* --> Σ* definida de la siguiente
manera: 

La concatenación de x con y es la cadena que se obtiene al añadir a la cadena x la palabra y, es


decir:

Sean x = ‘a1a2a3 . . . an’ e y = ‘b1b2b3 . . . bn’

La concatenación de x e y se anota como:

x + y = ‘a1a2a3 . . . anb1b2b3 . . . bn'

Ejemplo

Sea Σ = { a, b, c, . . . , z}

Si x = 'banana' e y='rama', entonces:

 x + y = 'bananarama'
 y + x = 'ramabanana'

En general:  
1. w + x  ≠ x + y ( es decir la concatenación no es conmutativa)
2. No se pueden concatenar dos palabras de distinto alfabeto.

Propiedades de la operación de concatenación

 Cerrada en Σ* (Operación Binaria Interna)

               w + x = z
             +: Σ* x Σ* --> Σ*

 Es asociativa

             w + ( x + z ) = ( w + x ) + z

 Posee elemento neutro ( λ )

             w + λ = w

             λ + w = w

1.7 Principio de inducción en Σ*

"Sea P[s] un predicado en Σ*. P[s] es válido en todo Σ* sí y sólo sí es posible probar que:

1. P[λ] es verdadero
2. Si P[w] es verdadero (Hipótesis Inductiva), entonces P[ w+a ] (ó P[ a+w ]) es
verdadero", donde (w ∈∈ Σ*, a ∈∈ Σ)

Teorema de Kleene

"El principio de inducción sobre Σ* es isomorfo al principio de inducción sobre el conjunto de


los números Naturales."
El principio de inducción matemática es un razonamiento para demostrar formalmente un
predicado sobre los números naturales, es decir un enunciado de la forma:

 ∀∀n > 0  se satisface  P[n]

donde P[n] es una predicado o afirmación que depende de n.

Ejemplos

 Para todo n > 0, se cumple que:  "λn = λ"


 Para todo n > 0, se cumple que: "|xn| ≥≥ | xn-1|"

El procedimiento que indica el principio de inducción matemática es el siguiente:


1. Se prueba P[ 0 ]
2. Se supone cierta P[n]
3. Se prueba P[n+1]

Al segundo paso se le conoce como hipótesis de inducción.

Si se comprueba que P[1] es cierta y se han probado el segundo y el tercer paso, entonces ese


razonamiento demuestra que P[2] es verdadera, y por tanto P[3] y así sucesivamente. 

Realmente el teorema de Kleene afirma que hacer inducción sobre Σ*, es hacer inducción sobre
la longitud de las cadenas de Σ*.

Hacer:

-   P[ λ ]   ⇔⇔  P[0]

-   |w|=k, P[w]   ⇔⇔   P[n]

                  P[w+a]   ⇔⇔   P[n+1]

                  P[a+w]   ⇔⇔   P[n+1]

Ejemplo

 Probar que para todo u ∈∈ Σ*

P[u] = “|u + v| = |u| + |v|” , v ∈∈ Σ*

 Demostración

1. Debo probar P[y]

          P[y] = “|y+v|=|y|+|v|”

                                                                   Justificaciones     |y+v|= |v|


Por definición de elemento neutro y para la concatenación

  = 0 + |v|           0 es elemento neutro para la adición.

  = |y| + |v|       Longitud de la cadena vacía

                                                        

      2. (Si P[w] es verdadero entonces P[w+a])


           Supongamos que P[w] es verdadero

           P[w] = “|w+v| = |w| + |v|”        Hipótesis Inductiva

     3. Probemos P[w+a]

         P[w+a] = “|(w+a)+v| = |w+a| + |v|”

                                                                                            Justificaciones

      |(w+a)+v|           = |w+(a+v)|                     Propiedad asociativa .


sobre la concatenación

         = |w| + |a+v|                  Aplicando Hipótesis .


Inductiva

                                      = |w| + 1 + |v|                paso inductivo

                                      = |w+a| + |v|                  paso inductivo

                        

Por lo tanto se concluye que P[u] es válido en todo Σ*.

1.8 Cadena inversa

Sea w ∈∈ Σ*. Se define w’ ( La inversa de w) recursivamente como:

                  




 Invertir por definición w = ‘abc’

              ‘abc’    = (‘ab’ + ‘c’)’

                           = ‘c’ + (‘ab’)’

                           = ‘c’ + (‘a’+’b’)’

                           = ‘c’ + ‘b’ + (‘a’)’

                           =’cb’ + (λ+‘a’)’


                          =  'cb' + 'a' + λ'

                          = 'cba'

Cadena inversa (Definición alterna)

Sea w ∈∈ Σ*. Se define de forma alterna w’ como:

                  

 Demostrar que:

     P[u] = "|u| = |u'|",  u ∈∈ Σ*


     es válido en todo Σ*

Demostración

1.  Probemos P[λ]

           P[λ] = "|λ| = |λ'|"

                        |λ| = |λ'|         Aplicando la definición de cadena inversa λ = λ'

            

     2.  Supongamos que P[w] es verdadero

           P[w] = "|w| = |w'|"                    Hipótesis Inductiva

 3. Probemos que P[w + a] es verdadero 


  
          P[w + a]  = "|w + a| = |(w + a)'|
                
                               |(w + a)'|= |a + w'|            por definición de inversa 
                                                 = |a| + |w'|         aplicando propiedad .
| u + v | =|u | + |v |
                                                 = |a| + |w|      por Hipótesis Inductiva |w| = |w'|
                                                 = |w| + |a|          por conmutatividad en la suma de enteros ( La
longitud de una cadena es un número entero).
                                                 = | w  + a |           aplicando propiedad .
. | u + v | = |u | + |v |

                 
por tanto P[u] es válida para todo Σ*

 Probar que:

     P[u] = "( u + v )'  = v' + u' ",  u, v ∈∈ Σ*


     es válido en todo Σ*

Demostración

1.  Probemos P[λ]

           P[λ] = " (λ + v )'  = v' + λ' "

                                                                                                         Justificaciones

                        (λ + v)' = v'                 Aplicando la propiedad de elemento neutro .


para la concatenación λ + v = v

                                = v' + λ           Aplicando la propiedad de elemento neutro .


. para la concatenación v = v +  λ

                                    = v' + λ'          Aplicando definición de cadena inversa.

            

     2.  Supongamos que P[w] es verdadero

           P[w] = " (w + v)' = v' + w' "                    Hipótesis Inductiva

     3. Probemos que P[w + a] es verdadero 


  
          P[w + a]  = "((w + a) + v )' = v' + (w + a)' "
                
                                                                                                             Justificación
                               ((w + a) + v )' =  ( w + (a + v))'                 por propiedad . .
asociativa de la concatenación.
                                                       = (a + v)' + w'             aplicando  Hipótesis .
Inductiva.
                                                       = v' + a + w'                       aplicando definición de cadena
inversa.
                                                       = v' + (a + w')                    aplicando propiedad asociativa de
la concatenación.
                                                       = v' + (w  + a)'                  por definición de cadena inversa

                 

por tanto P[u] es válida en todo el conjunto Σ*.


1.8 Cadena inversa

Cadena inversa

Sea w ∈∈ Σ*. Se define w’ ( La inversa de w) recursivamente como:

 Invertir por definición w = ‘abc’

              ‘abc’    = (‘ab’ + ‘c’)’

                           = ‘c’ + (‘ab’)’

                           = ‘c’ + (‘a’+’b’)’

                           = ‘c’ + ‘b’ + (‘a’)’

                           =’cb’ + (λ+‘a’)’

                          =  'cb' + 'a' + λ'

                          = 'cba'

Cadena inversa (Definición alterna)

Sea w ∈∈ Σ*. Se define de forma alterna w’ como:

 Demostrar que:
     P[u] = "|u| = |u'|",  u ∈∈ Σ*
     es válido en todo Σ*

Demostración

1.  Probemos P[λ]

           P[λ] = "|λ| = |λ'|"

                        |λ| = |λ'|          Aplicando la definición de cadena inversa λ = λ'

2.  Supongamos que P[w] es verdadero

           P[w] = "|w| = |w'|"                    Hipótesis Inductiva

     3. Probemos que P[w + a] es verdadero 


  
          P[w + a]  = "|w + a| = |(w + a)'|
                
                               |(w + a)'|= |a + w'|                por definición de inversa 
                                                 = |a| + |w'|         aplicando propiedad | u + v | = |u | + |v |
                                                 = |a| + |w|          por Hipótesis Inductiva    |w| = |w'|
                                                 = |w| + |a|          por conmutatividad en la suma de
enteros ( La longitud de una cadena es un número entero).
                                                 = | w  + a |           aplicando propiedad | u + v | = |u | + |v |

por tanto P[u] es válida para todo Σ*

 Probar que:

     P[u] = "( u + v )'  = v' + u' ",  u, v ∈∈ Σ*


     es válido en todo Σ*

Demostración

1.  Probemos P[λ]

           P[λ] = " (λ + v )'  = v' + λ' "


                                                                                                         Justificaciones

                        (λ + v)' = v'                 Aplicando la propiedad de elemento neutro para la


concatenación λ + v = v

                                    = v' + λ           Aplicando la propiedad de elemento neutro para la


concatenación v = v +  λ

                                    = v' + λ'          Aplicando definición de cadena inversa.

2.  Supongamos que P[w] es verdadero

           P[w] = " (w + v)' = v' + w' "                    Hipótesis Inductiva

     3. Probemos que P[w + a] es verdadero 


  
          P[w + a]  = "((w + a) + v )' = v' + (w + a)' "
                
                                                                                                                               Justificación
                               ((w + a) + v )' =  ( w + (a + v))'                 por propiedad asociativa de la
concatenación.
                                                       = (a + v)' + w'                    aplicando  Hipótesis Inductiva.
                                                       = v' + a + w'                       aplicando definición de cadena
inversa.
                                                       = v' + (a + w')                    aplicando propiedad asociativa de
la concatenación.
                                                       = v' + (w  + a)'                  por definición de cadena inversa

por tanto P[u] es válida en todo el conjunto Σ*.

1.9 Potencias en cadenas de Σ*

Potencias en cadenas

Sea x ∈∈ Σ*, se define xn como:

                              x0 = λ
                              x1 = x
                              x2 = x + x
                .
                .
                .
                              xn = x + xn-1,  n>1
En otras palabras
                             xn = x + x + x + . . . + x
                                           n - veces
Ejemplos
  Sea s = 'aba'
     
         s = 'aba'
         s0 = λ
         s1 = 'aba'
         s2 = 'abaaba'
         s3 = 'abaabaaba' 
         .
         .
         .

Prefijo

Se dice que u es prefijo de x (u pref x ), si y solo si, existe ∃∃ w ∈∈ Σ*, tal que:

                                             u + w = x 
Ejemplo

 Si x = 'internacional' entonces la cadena u = 'inter' es un prefijo de x y w = 'nacional'. 

Sufijo
Se dice que u es sufijo de x (u suf x ), si y solo si, existe ∃∃ w ∈∈ Σ*, tal que:

                                            w + u = x 
Ejemplo

 Si x = 'internacional' entonces la cadena u = 'nacional' es un sufijo de x y w = 'inter'. 

Subpalabra

Se dice que u es subpalabra de x (u sub x ), si y solo si, existe ∃∃ w, z  ∈∈ Σ*, tal que:

                                            w + u + z = x 
Ejemplo

 Si x = 'internacional' entonces la cadena u = 'nacion' es una subpalabra de x, ya que w =


'inter' y z = 'al'. 

Lema
Sea x ∈∈ Σ*.

1. x pref x
2. x suf x
3. x sub x

Demostración

1. x pref x, si y solo si, ∃∃ w, tal que, x + w = x


    haciendo w = λ, se tiene:
                                   x + λ = x
    con lo que se demuestra que x pref x

Demostración

2. x suf x, si y solo si, ∃∃ w, tal que, w + x = x


    haciendo w = λ, se tiene:
                  λ+x=x
    con lo que se demuestra que x suf x

Demostración

3. x sub x, si y solo si, ∃∃ w, z tal que, x + w + z= x


    haciendo w = λ y z = λ, se tiene:
                                  λ + x + λ = x
    con lo que se demuestra que x sub x

Ejemplos

 Probar que si u pref x, entonces  u' suf x'

Demostración

Suponiendo que u pref x, entonces por definición de prefijo ∃∃ w ∈∈ Σ*, tal que, u + w = x 


Aplicando cadena inversa a ambos miembros de la igualdad,

                                         (u + w)' = x'                              Aplicando propiedad (u + v)' = v' + u'

                                         w' + u' = x'

Lo cual demuestra que u' suf x'.

 Probar que si x pref y, entonces  x pref (y + z)

Demostración

Supongamos que x pref y, entonces por definición de prefijo ∃∃ w ∈∈ Σ*, tal que, y =  x + w

Probemos que x pref (y + z)

Partiendo de la ecuación siguiente:

                                          y = x + w                                  Concatenamos una cadena z a ambos


miembros de la igualdad

                                         y + z = (x + w) + z                     Aplicando asociación

                                         y + z = x + (w + z)                      

                                   Lo que muestra que x pref (y + z).

2 Lenguajes
2.1 Lenguaje

Lenguaje
Sea Σ un alfabeto. Se dice que L es un lenguaje sobre el alfabeto Σ si L es un
subconjunto de Σ*.

Nótese que los conjuntos { λ } y ∅ (conjunto vacío) son lenguajes con cualquier alfabeto,
además de que Σ* también es un lenguaje.

Esto es porque: Σ* ⊆ Σ* y ∅ ⊆ Σ*.

Un lenguaje es un conjunto de palabras. Por tanto el conjunto {1,12, 123, 1234, 12345,


123456} es un lenguaje sobre el alfabeto compuesto por dígitos.

De forma similar, la colección de palabras inglesas “correctas” es un lenguaje sobre el


alfabeto inglés. 

Obsérvese que si Σ es un alfabeto, también es un lenguaje (el formado por todas las cadenas
con un único símbolo).

Los lenguajes pueden ser bastantes grandes, como es el caso de todas las palabras inglesas
“correctas” o el lenguaje {1, 11, 111, 1111, 11111, ...} formado por todas las cadenas
finitas de unos. Obsérvese que este lenguaje es infinito (aunque cada cadena del mismo
tenga longitud finita). 

Cuando un lenguaje tiene un tamaño muy grande es difícil especificar que palabras le
pertenecen.

Dado que un lenguaje es un conjunto de cadenas, se puede tener el lenguaje compuesto por


ninguna cadena (el lenguaje vacío). Este no es el mismo lenguaje que el que consta de la
cadena vacía { λ }. El lenguaje vacío se denota de la misma forma que el conjunto vacío, ∅.

Supongamos que Σ es un alfabeto y w es una cadena sobre Σ. Si L es el lenguaje formado


por algunas de las cadenas sobre Σ y si w está en L, entonces se tiene que w ∈ L y se dice
que w es un elemento de L, o w es un miembro de L.

Por tanto,

121 ∈ {1,12,121,1212,12121}

Es necesario tener en cuenta el lenguaje compuesto por todas las cadenas sobre el alfabeto
Σ. Se conoce como cerradura de Σ o lenguaje universal sobre Σ y se denota por Σ*. 

Por ejemplo, si se tiene el alfabeto Σ = {1}, entonces

Σ*={λ, 1, 11, 111, 1111,...}

Para cualquier alfabeto, Σ* es infinito (ya que los alfabetos son no vacíos).
Ejemplo 

Sea Σ el alfabeto binario

 El conjunto de cadenas binarias con un número par de ceros y un número impar de


unos es un lenguaje sobre el alfabeto Σ = {0 , 1}
 El conjunto {0, 01, 0101} es también un lenguaje con alfabeto {0, 1}.

Además es claro que la unión y la intersección arbitraria de lenguajes con alfabeto Σ es


también un lenguaje con alfabeto Σ.

Por lo tanto, debido a que un lenguaje es un conjunto, entonces todas las siguientes
definiciones, teoremas y proposiciones de la teoría de conjuntos se aplican sobre ellos.

Unión

Se define la operación de unión de la siguiente forma: 

A U B = { x/  x ∈ A ó x ∈ B }

Intersección

Se define la operación de intersección entre conjuntos de la siguiente forma: 

A ∩ B = { x/  x ∈ A y x ∈ B }

Diferencia

Se define la operación de diferencia de conjuntos de la siguiente forma: 

A - B = { x/  x ∈ A ó x ∉ B }

Complemento

Se define la operación de complemento de un conjunto de la siguiente forma: 


Ac = { x ∈ ⊕ /  x ∉ A }

Inclusión o subconjunto

A ⊆ B , si y solo si se cumple que: " Si x ∈ A, entonces, x ∈ B"

Igualdad

A = B, dos conjuntos son iguales, si y solo si, se cumple que:

1. A ⊆ B
2. B ⊆ A

2.2 Concatenación entre lenguajes

Concatenación

La operación de concatenación entre lenguajes se define como:

A + B = { w ∈ Σ*/ w = y + z con y ∈ A y z ∈ B}, donde A ⊆ Σ* y B ⊆ Σ*

Ejemplo

Sean A y B dos lenguajes sobre Σ = { a, b, c, d}

A = { 'ab', 'ccd', 'aa' }

B = { 'bb', 'a' }

A + B = {'abbb', 'aba', 'ccdbb', 'ccda', 'aabb', 'aaa'}

B + A = {'bbab', 'bbccd', 'bbaa', 'aab', 'accd', 'aaa' }

En general:

                     A + B ≠ B + A

Ejercicio

 Demostrar que: A + ( A ∩ B ) ⊆ A + A


Demostración

Sea x ∈ A + ( A ∩ B ), por definición de concatenación, ∃ w, z ∈ Σ*, tal que,

                         x = w + z, donde, w ∈ A y z ∈ ( A ∩ B )

del hecho de que z ∈ A ∩ B, se deriva por definición de intersección, z ∈ A y z ∈ B, por lo
tanto z ∈ A, luego se tiene que:

                       x = w + z, donde w ∈ A y z ∈ A

Lo que muestra que, por definición de concatenación entre lenguajes, x ∈ (A + A).

                      ∴A + (A ∩ B) ⊆A + A

2.3 Lenguaje inverso

Lenguaje inverso

Sea L un lenguaje (L ⊆ Σ*).

Se define L' como el lenguaje inverso de L.

L' = { w ∈∈ Σ*/ w' ∈∈ L } 

Ejemplo

             L = { 'abc', 'xyz', 'uk'}

             L' = {'cba', 'zyx' , 'ku' }

Una propiedad evidente es:

              ( L' )'  = L

Ejemplo de demostraciones sobre lenguajes

 Pruebe que:     (A U B)' = A' U B' , donde,  A, B ⊆ Σ*.

Demostración

Para demostrar la igualdad se aplica la definición:

i) (A U B)' ⊆ A' U B'


ii) A' U B' ⊆ (A U B)'

Por lo tanto:

i) Probar que (A U B)' ⊆ A' U B'

   Sea x ∈∈ (A U B)', por definición de lenguaje inverso, x' ∈∈ A U B, luego por definición de
unión, x' ∈∈ A o x' ∈∈ B, aplicando nuevamente la definición de lenguaje inverso, x ∈∈ A' o
x ∈∈ B', finalmente por definición de unión, x ∈∈ (A' U B').

                    ∴∴  (A U B)' ⊆⊆ A' U B'

ii) Probar que A' U B' ⊆⊆ (A U B)'

   Sea x ∈∈ A' U B', por definición de unión, x ∈∈ A' ó x ∈∈ B', luego por definición de
lenguaje inverso, x' ∈∈ A ó x' ∈∈ B, aplicando ahora la definición de unión, x' ∈∈ A U B,
finalmente por definición de lenguaje inverso, x ∈∈ (A U B)'.

                    ∴∴  A' U B' ⊆⊆ (A U B)'

de i) y ii) se concluye que (A U B)' = A' U B'.

 Pruebe que:  (A + B)' = B' + A', donde, A, B ⊆⊆ Σ*.

Demostración

i) Probemos que (A + B)' ⊆⊆ B' + A'

   Sea x ∈∈ (A + B)', aplicando definición de lenguaje inverso, 

   x' ∈ A + B, luego por definición de concatenación entre lenguajes ∃ w, z ∈ Σ* tal que: 

   x' = w + z, donde, w ∈∈ A y z ∈∈ B  ,luego a esta última igualdad aplicamos cadena
inversa, 

  (x')' = (w + z)', donde, w ∈∈ A y z ∈∈ B , posteriormente aplicamos la propiedad (u + v)' = v'


+ u', por lo que se tiene que 
   x = z' + w', donde, z' ∈∈ B' y w' ∈∈ A',    lo cual muestra por definición de concatenación
entre lenguajes que,

   x ∈ B' + A'.

                                  ∴∴ (A + B)' ⊆ B' + A'

ii) Probemos que B' + A' ⊆ (A + B)'

   Sea x ∈∈ B' + A', aplicando definición de concatenación entre lenguajes ∃∃ w, z ∈∈ Σ* tal
que:, 

   x = w + z, donde, w ∈∈ B' y z ∈∈ A', posteriormente aplicamos inversa a la igualdad,

   x' = (w + z)', donde, w ∈∈ B' y z ∈∈ A'  ,luego aplicamos propiedad (u + v)' = v' + u'

   x' = z' + u', donde, z' ∈∈ A y w' ∈∈ B, lo cual muestra por definición de concatenación entre
lenguajes que,

   x' ∈∈ A + B, donde finalmente aplicamos definición de lenguaje inverso,

   x ∈∈ (A + B)'.

                                  ∴∴ B' + A' ⊆⊆ (A + B)'

2.4 Cerradura de Kleene

Potencias en lenguajes

Al igual que en las cadenas, se definen potencias en los lenguajes para la operación de
concatenación entre lenguajes.

Sea L ⊆⊆ Σ*.

Se define:
Es decir:                                    

    L0 = { λ }

    L1 = L

    L2 = L + L

    L3 = L + L + L

     .

     .

     .

    Ln = L + L + . . . + L,  n > 0 ( n-veces)

Ejemplo

Sea Σ = { a, b, c, d } un alfabeto y sea A = { 'ab', 'cd' } un lenguaje sobre Σ.

se obtiene:

    A0 = { λ }

    A1 = A = { 'ab', 'cd' }

    A2 = A + A1 = { 'abab', 'abcd', 'cdab', 'cdcd'}

    A3 = A + A2 = { 'ababab', 'ababcd', 'abcdab', 'abcdcd', 'cdabab', 'cdabcd', 'cdcdab', 'cdcdcd' }

es importante tener en cuenta que de esta definición se obtiene que: ∅∅0 = {λ}.

Cerradura o Clausura de Kleene

Sea L un lenguaje sobre Σ, se define la cerradura de Kleene o cerradura de estrella del lenguaje
L como:
Nota.- 

 λ siempre estará presente en la estrella de Kleene: λ ∈∈ L*.


 L* ≠≠ ∅∅

Cerradura positiva

Sea A un lenguaje sobre Σ.

Se define la cerradura positiva de A como:

Ejemplo

De lo anterior se desprende que si A es un lenguaje sobre Σ (A  ⊆⊆ Σ*) se obtiene que :

An ⊆⊆ Σ* para todo n = 0, 1, 2, 3, . . ., y por tanto, A* ⊆⊆ Σ* y A+ ⊆⊆ Σ+ 

Si An ⊆⊆ A*, entonces, A+ ⊆⊆ A*

Si ∅∅0 = { λ } y ∅∅n = ∅∅, (n ≥≥ 1), entonces, ∅∅* = { λ } y ∅∅+ = ∅∅

Proposición:

∅∅* = { λ }
 

Demostración

∅∅ = { λ }

∅∅ = ∅∅

∅∅  = ∅∅ + ∅∅ = ∅∅
2

∅∅  = ∅∅ +  ∅∅ =  ∅∅
3 2 
             .

             .

             .

∅∅  = ∅∅  ∪∪ ∅∅  ∪∪ ∅∅  ∪∪ ∅∅  ∪∪ . . . ∅∅  


* 0 1 2 3 n

∅∅  =  { λ } ∪∪ ∅∅ ∪∪ ∅∅ ∪∪ ∅∅ ∪∪ . . . 
*

      ∴∴ ∅∅* =  { λ }

Proposición

Para todo lenguaje L ⊆⊆ Σ* se cumple que:

                                  L + ∅∅ = ∅∅

Demostración

Probemos por reducción al absurdo que: L + ∅∅ = ∅∅

Como primer paso de la demostración negamos la proposición, esto es: L + ∅∅ ≠≠ ∅∅,


entonces ∃∃ una w ∈∈ L + ∅∅, luego por definición de concatenación se tiene que, w = x + y,
x ∈∈ L e y ∈∈ ∅∅, lo cuál es un absurdo( contradicción), pues el conjunto vacío no tiene
elementos.

Por tanto, debe ser cierto que L + ∅∅ = ∅∅.

Teorema de la estrella de Kleene

Sea L un lenguaje sobre Σ.

        Sea w ∈∈ L*, entonces existen: x1, x2, x3, . . ., xn ∈∈ L, tal que:

               w = x1 + x2 + x3 + . . . + xn

El teorema dice que si una cadena w ∈∈ L*, entonces dicha cadena es el resultado de una
concatenación finita de cadenas( elementos) de L.

Lema
Sea L ⊆⊆ Σ*, luego L ⊆⊆ L*

Todo lenguaje es subconjunto de su propia estrella de Kleene.

 Demostrar que:

                               (L*)' = (L')*

Demostración

i) Probar que (L*)' ⊆⊆ (L')*

   Sea w ∈∈ (L*)', por definición de lenguaje inverso, w' ∈∈ L*, luego por teorema de
Kleene, ∃∃ x1, x2, x3, . . ., xn ∈∈ L, tal que:

               w' = x1 + x2 + x3 + . . . + xn, donde xi ∈∈ L

   a ambos miembros de la igualdad se aplica cadena inversa, luego, 

               (w')' = (x1 + x2 + x3 + . . . + xn)', donde xi ∈∈ L, posteriormente luego de aplicar las
propiedades de idempotencia en la inversa y la propiedad ( u + v )' = v' + u' se tiene que:

               w = x'n + . . . + x'3 + x'2 + x'1, donde x'i ∈∈ L'

   luego nuevamente por el teorema de Kleene(se ve que w es una concatenación finita de


elementos de L'), se tiene que, w ∈∈ ( L' )*.

               ∴∴ (L*)' ⊆⊆ (L')*

ii) Probar que (L')* ⊆⊆ (L*)'

    Sea w ∈∈ (L')*, por teorema de Kleene, ∃∃ x1, x2, x3, . . ., xn ∈∈ L', tal que:

               w = x1 + x2 + x3 + . . . + xn, donde xi ∈∈ L'

   a ambos miembros de la igualdad se aplica cadena inversa, luego, 

               w' = (x1 + x2 + x3 + . . . + xn)', donde xi ∈∈ L', posteriormente luego de aplicar la propiedad
( u + v )' = v' + u' se tiene que:
               w' = x'n + . . . + x'3 + x'2 + x'1, donde x'i ∈∈ L

   luego nuevamente por el teorema de Kleene(se ve que w' es una concatenación finita de
elementos de L), se tiene que, w' ∈∈ L*,     finalmente por definición de lenguaje inverso,
w ∈∈ (L*)'.

               ∴∴ (L')* ⊆⊆ (L*)'

   Por tanto, de i) y  ii) se concluye que (L*)' = (L')*.   

También podría gustarte