El concepto de concatenación se puede extender a los
lenguajes. Se define la concatenación de lenguajes como sigue:
El lenguaje que resulta de la concatenación de A y B está formado por la concatenación
de todas las cadenas de A con todas las cadenas de B.
Ejemplo: Si
y Ejemplo: Si
entonces,
La concatenación de lenguajes se puede realizar aún si los lenguajes no están construidos
sobre el mismo alfabeto, en tal caso la concatenación nos lleva a que, si A y B, son lenguajes sobre ∑1 y ∑2, entonces el
lenguaje resultante será un lenguaje sobre ∑1U∑2.
La cadena vacía se comporta como la identidad en cuanto a la concatenación de
lenguajes se trata, ya que si tenemos
.
La definición de potencia, también puede extenderse a los lenguajes
de la misma manera
Por lo tanto, si
sobre un algún
alfabeto, se tiene que
Hay que destacar que de la anterior definición se tiene que
. Dado que los lenguajes son conjuntos de cadenas, las operaciones, intersección, unión y sublenguaje se definen como sigue:
Sean A y B lenguajes sobre el
alfabeto ∑, la unión se
denota como A U B y quiere
decir que el lenguaje resultante esta formado por todas la palabras que se
encuentren en al menos uno de los dos lenguajes, más generalmente:
La intersección de los lenguajes A y B es un lenguaje formado por todas
las cadenas que se encuentran tanto en A como en B, esto es:
Con un ejemplo se prodrá ilustrar mejor las dos definiciones
anteriores.
Ejemplo: Sean
Ahora hay que definir el
concepto de sublenguaje, recordando la teoría de conjuntos sabemos que un conjunto W es un subconjunto de U, si U contiene a todos los elementos de W y se denota como , y se lee, W es un subconjunto de U. Esta definición
se puede mudar perfectamente a la teoría de lenguajes, diciendo que si A y B son lenguajes, entonces B es un sublenguaje de A, si A contiene todas las cadenas de B y se denota , y se lee B es un sublenguaje de A.
La igualdad de lenguajes cumple con las mismas características
que la igualdad entre conjuntos, sean A y B lenguajes, son iguales, sólo si,
contienen exactamente las mismas cadenas. También hereda sus propiedades de la
teoría de conjunto.
·
Sean A y B, lenguajes sobre ∑, A = B, solo si y . Sirve para
demostrar la igualdad entre lenguajes y se utiliza para demostrar que la
concatenación es distributiva con respecto a la unión de lenguajes.
y, para ello
digamos que x ϵ A . Como B contiene las
mismas cadenas que A, diremos que x ϵ B, de lo que se
deduce que . De la misma
forma, si x ϵ B, entonces x ϵ A ya que los
dos contienen las mismas cadenas, de lo anterior tenemos que , lo cual no
lleva a que y. Esto
significa que las cadenas que están en B, están también en A y viceversa, por
lo que A = B, con lo que se
demuestra la igualdad.
Dados
los lenguajes A,B y C, sobre un alfabeto ∑, se cumple que:
Demostración. Para demostrar la primera parte del teorema, probaremos primero
queAhora para probar suponemos que x ϵ A* B U A * C
De forma muy similar se demuestra la segunda parte así que no aparecerá la demostración en este documento.
A diferencia de la unión, la concatenación no es distributiva con respecto a la intersección de lenguajes, para esto, hay que proponer que, si A = {a, ϵ}, B = {ϵ } y C = { a }, entonces A * B = {a,ϵ} y , por lo que . Pero tenemos que , entonces , por lo tanto:
Ahora veremos dos
conceptos más, el primero es el de cerradura de Kleene o cerradura estrella, élla esta definida como la unión de 0 o más potencias de un
lenguaje A sobre un alfabeto ∑, más precisamente, la cerradura de Kleene es realizar 0
o más concatenaciones del lenguaje A con él mismo, y se denota , lo que resulta en un
lenguaje que contiene todas las cadenas que son posibles de formar sobre ∑. También tenemos a la cerradura positiva, que es la unión
de una o más potencias de A en ∑, resultando en un
lenguaje que contiene, todas las cadenas excepto la cadena vacía ϵ, y se denota .
Ejemplo: Si ∑ es el alfabeto español y A = {a} sobre ∑, tendremos que, ya que y .
La definición de la cerradura de Kleene es igual a la del lenguaje universal. Sea ∑ un alfabeto, es la concatenación de 0 o más símbolos de ∑, que son las cadenas que conforman el lenguaje universal que también se denota ∑*, de aquí que todo lenguaje sobre ∑ es un sublenguaje de ∑*.
La diferencia entre lenguajes sigue las mismas reglas que para la diferencia en conjuntos, es decir, si A y B son lenguajes sobre ∑, entonces , que resulta en un lenguaje que contiene todas las cadenas de A, que no están en B.
Al igual que con conjuntos se puede definir el completo de un lenguaje. Sea A un lenguaje sobre ∑ su complemento es
No hay comentarios.:
Publicar un comentario