Autómatas y Lenguajes Formales
Dr. Favio Ezequiel Miranda Perea
Proyecto:
Autómata de Büchi
Jesús Nestaly Marín Nevárez
Omar Álvarez Zárate
Anuar Cadena Rico
1
Introducción
Los lenguajes de palabras infinitas aparecen en verificación de modelos, como codificaciones de ejecuciones de programas sin terminación.
Los programas convencionales se ejecutan de forma que aceptan una entrada, realizan un cómputo y regresa un resultado. Un programa puede ser visto como una función de un dominio de entrada a un dominio de salida cuyo comportamiento es una transformación de estados iniciales a estados finales.
Los programas que no terminan, o programas reactivos, son programas que reaccionan a su entorno de manera continua respondiendo adecuadamente a cada entrada. Para especificar el comportamiento de un sistema reactivo es necesario un mecanismo que describa la manera en la que el sistema evoluciona a través de cómputos infinitos, donde la computación tiene una secuencia infinita de estados. En un contexto proposicional, estas secuencias de estados pueden ser vistas como secuencias infinitas de asignaciones proposicionales verdaderas. La lógica temporal es una manera razonar sobre esas secuencias. En la verificación de modelos la especificación de propiedades de correctud está dada en una fórmula de lógica temporal lineal.
Existe una relación cercana entre la lógica temporal lineal y los lenguajes de palabras infinitas u ω-lenguajes: los modelos de una fórmula de LLT constituyen un ω-lenguaje
regular sobre un alfabeto. Una de las caracterizaciones de los ω-lenguajes regulares son
los autómatas de Büchi, que fueron introducidos en 1962 por el lógico y matemático suizo Julius Richard Büchi. Un método para decidir si se cumplen los modelos mencionados es construir un autómata de Büchi que acepte exactamente las cadenas que satisfagan la fórmula.
A continuación, estudiaremos la definición del autómata de Büchi y mencionaremos algunas de las propiedades de cerradura de los ω-lenguajes aplicadas a autómatas de
2
Definiciones previas
ω-palabra
Sea Σ un alfabeto finito. Una palabra infinita u ω-palabra es una secuencia de símbolos
a1a2... donde cada ai∈Σ. Σ" denota el conjunto de palabras infinitas sobre el alfabeto Σ.
La concatenación de una palabra finita w1 = a1...an y una ω-palabra w2 = b1b2... es la ω
-palabra w1w2 = a1...anb1b2...
ω-lenguaje
Un conjunto 𝐿 ⊆ Σ" de ω-palabras es un cómo ω-lenguaje sobre Σ. Un lenguaje L
1 puede
ser concatenado con un ω-lenguaje L2 para crear el ω-lenguaje L1L2, pero dos ω-lenguajes
no pueden ser concatenados. La ω-iteración de un lenguaje 𝐿 ⊆ Σ* es el ω-lenguaje L" = {𝑤*𝑤+𝑤,. . . | 𝑤/ ∈ 𝐿 \ 𝜀 }.
ω-expresión regular
Una ω-expresión regular es un tipo de expresión regular que describe un lenguaje de
palabras infinitas.
Definimos una ω-expresión regular ω sobre un alfabeto Σ como:
𝜔 = 𝛼*𝛽*"+ 𝛼
+𝛽+"+ . . . + 𝛼8𝛽8"
en donde α y β son expresiones regulares sobre Σ y ε∉ L(βi) para 1 ≤ i ≤ n. Definimos las
palabras generadas por cada 𝛽/"como sigue:
L(β") = {𝑤
*𝑤+𝑤,. . . | 𝑐𝑎𝑑𝑎 𝑤/ ∈ 𝐿(β)}
Las ω-expresiones regulares tienen sintaxis: 𝑠 = 𝑟" | 𝑟𝑠
* | 𝑠* + 𝑠+
donde r es una expresión regular ordinaria.
El ω-lenguaje L"(𝑠) de una ω-expresión s se define recursivamente como:
L"(𝑟") = 𝐿 𝑟 ", L"(𝑟𝑠*) = 𝐿(𝑟)L"(𝑠*), L"(𝑠*+ 𝑠+) = L"(𝑠*) ⋃ L"(𝑠+)
3 A continuación se muestran algunos ejemplos de ω-expresiones regulares sobre el
alfabeto Σ = {a, b, c}:
• Conjunto de todas las palabras infinitas: (𝑎 + 𝑏)" • Palabras infinitas que comienzan con a: 𝑎(𝑎 + 𝑏)"
• Palabra infinita que consiste únicamente del símbolo a: 𝑎" • Palabras infinitas que contienen sólo a o sólo b: 𝑎" + 𝑏"
• Una palabra en aa(a + b)*aa seguida de una cantidad infinita de bes: 𝑎𝑎(𝑎 + 𝑏) ∗ 𝑎𝑎𝑏"
• Palabras donde b no aparece una cantidad infinita de veces: (𝑎 + 𝑏)∗𝑎" • Palabras donde b aparece una cantidad infinita de veces: (𝑎∗𝑏)"
4
Autómata de Büchi
Definición Formal.
Un autómata de Büchi (no determinista) es un quíntupla A = (Q, Σ,δ, q0, F) donde:
• Q es un conjunto de estados. • Σ es un alfabeto finito.
• δ:(Q×Σ) → 2Q es una función de transición que retorna un subconjunto de Q. • q0∈Q es un estado inicial.
• F⊆Q es un conjunto de estado de aceptación.
Sea A = (Q, Σ, δ, q0, F) un autómata finito. Una ejecución sobre una palabra infinita σ =
a1a2... es una secuencia ρ = q0q1q2... con 𝑞F GH
𝑞*GI𝑞+... tal que qi∈ Q para 0 ≤ i ≤ n y δ(qi , ai) = qi+1 para 0 ≤ i ≤ n - 1.
(Separar aquí los temas para la expo y no incluir la demostración que agregue, o incluir la demostración y que uno de los dos la explique y el otro diga todas las definiciones de esta parte)
Dada una ejecución ρ sobre una palabra infinita, definimos el conjunto inf(ρ) como el
conjunto {𝑞 ∈ 𝑄 | 𝑞 = 𝑞/ 𝑝𝑎𝑟𝑎 𝑖𝑒𝑠 𝑖𝑛𝑓𝑖𝑛𝑖𝑡𝑎𝑠}, es decir, los estados que son visitados un número infinito de veces durante la ejecución. Büchi sugiere que se clasifique una ejecución como de aceptación si ρ visita el conjunto F infinitamente. Cómo la cantidad de
estados en Q y F es finita, lo anterior es equivalente a decir que para que la ejecución sea de aceptación, debe visitar algún estado fijo de F de manera infinita i.e., si 𝑖𝑛𝑓(𝜌) ∩ 𝐹 ≠ 0.
Formalmente, un autómata de Büchi es un autómata finito A = (Q, Σ, δ, q0, F), y el lenguaje
aceptado por A es L(A) = {σ | existe una ejecución ρ sobre σ tal que inf(ρ) ∩ F ≠∅}.
Un lenguaje L ⊆ Σ" es llamado Büchi reconocible u ω-regular si es aceptado por algún
autómata de Büchi.
Teorema 1:
5 Demostración:
Asumamos que M = (Q, Σ, δ, q0, F) es una autómata finito que reconoce a L, i.e. L(M) = L,
podemos asumir que no hay una transición hacia el estado inicial desde cualquier otro estado ya que esto puede ser logrado agregando un nuevo estado inicial con una épsilon transición hacia q0.
Definimos M' = (Q, Σ, δ, q0, {q0}) tal que M' simula a M como sigue: dada una cadena 𝑤 ∈ Σ", M' simula a M. Una vez que hemos alcanzado un estado final en M, digamos 𝑞 ∈ 𝑄,
entonces M' selecciona de forma no determinista continuar o comenzar M desde su estado inicial y leer el resto de la cadena.
Sea 𝛼 ∈ 𝐿" tal que 𝛼 = 𝑤
*𝑤+. .., con cada 𝑤/ ∈ 𝐿 ⊆ Σ∗. Para cada wi, M tiene cómputos 𝑟F/𝑟*/, . . . , 𝑟8V/ tales que:
1. 𝑟F/ = 𝑞F
2. 𝑟WX* / = 𝛿(𝑟W/, 𝑤W/)
3. 𝑟W/ ∈ 𝐹
así que tendremos una secuencia 𝑟 = 𝑟F*, 𝑟**, . . . , 𝑟8H+𝑞F𝑟F+𝑟*+, . . . , 𝑟8I+𝑞F. .., con lo que
𝑖𝑛𝑓(𝑟) ∩ {𝑞F} ≠ ∅, por lo tanto 𝛼 ∈ 𝐿(𝑀′) y así 𝐿 ⊆ 𝐿(𝑀).
Del mismo modo, sea 𝛼 ∈ 𝐿(𝑀′), entonces existe una ejecución con un número infinito de q0, las palabras entre cualesquiera dos q0 son computaciones hechas por L, por lo tanto
Sea 𝛼 ∈ 𝐿" y así 𝐿(𝑀) = 𝐿. □
6 Ejemplo de un autómata de Büchi:
Considérese el autómata de Büchi M representado por el siguiente diagrama:
La palabra ababaabbbbbbb... es aceptada por M por que el estado q1 que es final se visita
de forma infinita en la ejecución ρ = q0 q0q1q0q1 q0 q0 q1 q1 q1 q1 q1 q1 q1..., con lo que se
cumple la condición de que un estado en F se repita de forma infinita.
La palabra ababababababab.... es aceptada por M por que a pesar de que hay un estado que se repute infinitamente y no está en F, la condición es que haya al menos un estado en F que se repita infinitamente, lo cual se cumple por que en la ejecución ρ =
q0q1q0q1q0q1... se repiteq1 un número infinito de veces.
La palabra ababaaaaaaaa... no es aceptada por M por que el único estado que se visita de forma infinita en la ejecución es q0, pero q0 no es un estado de aceptación de M.
Más ejemplos de autómatas de Büchi no deterministas:
Autómata de Büchi no determinista que reconoce el lenguaje 𝐿(𝑎" + 𝑏")
Autómata de Büchi no determinista que reconoce el lenguaje 𝐿(𝑎𝑎(𝑎 + 𝑏)∗𝑏")
a
q0 q1
7 Autómata de Büchi que acepta el lenguaje de palabras que tienen una cantidad finita de bes, 𝐿(𝑎 + 𝑏)∗𝑎":
Autómata de Büchi Determinista
En un autómata de Büchi determinista las transiciones se definen de la misma manera como se definen en un AFD. La diferencia entre un autómata de Büchi determinista y un autómata de Büchi no determinista radica en que el segundo es capaz aceptar lenguajes que el primero no puede reconocer.
Teorema:
Un autómata de Büchi no determinista es más poderoso que un autómata de Büchi determinista.
Prueba:
En un ejemplo anterior vimos un autómata de Büchi no determinista que acepta el lenguaje 𝐿 = (𝑎 + 𝑏)∗𝑎". Supongamos que existe un autómata de Büchi determinista M
que acepta este lenguaje. Este autómata debe tener una ejecución de aceptación en la palabra 𝑎" (donde 𝑎"= aaaaaaa...). Supongamos que esta ejecución única entra en un
estado de F después de leer 𝑎8H para algún n1 ≥ 1. Dado que M reconoce a 𝑎" , debe
aceptar a 𝑎8H𝑏𝑎", por lo que después de leer una b, M visita un estado de F en una
ejecución única para esta palabra que extiende la ejecución previa para 𝑎8H. De nuevo, M
debe aceptar a 𝑎8H𝑏𝑎8I𝑏𝑎" y repitiendo este argumento podemos ver que M debería
aceptar a 𝑎8H𝑏𝑎8I𝑏𝑎8]. . . 𝑏𝑎8^. .. por lo que M está aceptando una ω-palabra con un
número infinito de bes. Pero lo anterior contradice la suposición de que M acepta el
lenguaje de palabras con un número finito de bes. □
q0 q1 a
8
Aceptación de Muller
Un autómata de Muller es un AFN M = (Q, Σ, δ, q0, F) en donde con conjunto de estados
finales se define como 𝐹 ∈ 2`.
La condición de aceptación para un autómata de Muller M, es que M acepta una ω-palabra 𝛼 ∈ 𝛴" si y sólo si existe una ejecución ρ de M en 𝛼 que satisfaga:
𝐼𝑛𝑓 𝜌 ∈ 𝐹
El conjunto de estados que se visitan de forma infinita tiene exactamente un elemento del conjunto F.
Un autómata de Büchi es un caso especial de autómata de Muller en el que:
𝐹 = 𝑞 ∈ 𝑄 | 𝑞 ∩ 𝐹 ≠ ∅
Aceptación de Rabin
Un autómata de Rabin es un AFN M = (Q, Σ, δ, q0, Ω) en donde con conjunto de estados
finales se define Ω = {(𝐸*, 𝐹*), (𝐸+, 𝐹+), . . . , (𝐸8, 𝐹8)|(𝐸*, 𝐹*) ∈ 𝑄} y que tiene la siguiente condición de aceptación:
M acepta una ω-palabra 𝛼 ∈ 𝛴" si y sólo si existe una ejecución ρ de M en 𝛼 tal que ∃(𝐸, 𝐹) ∈ Ω , 𝐼𝑛𝑓 𝜌 ∩ 𝐸 = ∅ 𝑒 𝐼𝑛𝑓 𝜌 ∩ 𝐹 ≠ ∅
Un autómata de Büchi es un caso especial de autómata de Rabin con:
9
Propiedades de cerradura en autómatas de Büchi
Unión
Los autómatas Büchi son cerrados bajo la unión, es decir, para cada par de autómatas A y
B, existe un autómata C tal que:
Lω(C) = Lω(A) U Lω(B)
Prueba:
Sean A1 y A2 dos ω-lenguajes regulares, entonces existen autómatas M1 = (Q1, Σ, δ1, q1, F1)
y M2 = (Q2, Σ, δ2, q2, F2), tales que A1 = L (M1) y A2 = L (M2) y sean:
Q = Q1 X Q2
q0 = (q1, q2) ∈ Q
F= {(p1,p2) ∈ Q| p1∈ F1 o p2∈ F2}
La función de transición es: δ : Q x Σ à Potencia(Q)
δ((p1, p2), a) = {(r,s) ∈ Q| r ∈ δ(p1,a), s ∈ δ(p2,a)}
Entonces tenemos el autómata de Büchi M1 = (Q, Σ, δ, q0, F) tal que L(M) = A1 U A2. PAra
ver esto, sea w una palabra de A1 U A2, por ejemplo, sea w una palabra de A1, entonces
existe una ejecución p1 de M1 tal que 𝑖𝑛𝑓(𝑝1) ∩ 𝐹* ≠ ∅.
Si simulamos w en M, entonces existiría una ejecución (p,s) = (p0p1..., s0s1...) con 𝑖𝑛𝑓(𝑝, 𝑠) ∩ 𝐹 ≠ ∅. Como para algún estado q en F1, 𝑞 ∈ 𝑖𝑛𝑓(𝑝*), tenemos que (𝑞, 𝑞′) ∈ 𝑖𝑛𝑓(𝑝, 𝑠) y (𝑞, 𝑞′) ∈ 𝐹, entonces 𝑖𝑛𝑓(𝑝, 𝑠) ∩ 𝐹 ≠ ∅ y por lo tanto 𝑤 ∈ 𝐿(𝑀), que es equivalente a que 𝐴*∪ 𝐴+ ⊆ 𝐿(𝑀).
Del mismo modo sea 𝑤 ∈ 𝐿(𝑀), entonces habrá una ejecución (p, s) = (p0p1...,s0s1...) con 𝑖𝑛𝑓(𝑝, 𝑠) ∩ 𝐹 ≠ ∅, así que para algún estado (𝑞, 𝑞′) ∈ 𝑖𝑛𝑓(𝑝, 𝑠) tal que (𝑞, 𝑞′) ∈ 𝐹, por lo que o 𝑞 ∈ 𝑖𝑛𝑓(𝑝) ∩ 𝐹* o 𝑞′ ∈ 𝑖𝑛𝑓(𝑠) ∩ 𝐹+, con lo que tenemos que o 𝑖𝑛𝑓(𝑝) ∩ 𝐹* ≠ ∅ o 𝑖𝑛𝑓(𝑠) ∩ 𝐹+ ≠ ∅, por lo tanto 𝑤 ∈ 𝐴*∪ 𝐴+, así que 𝐴*∪ 𝐴+ = 𝐿(𝑀).
Intersección
Los autómatas de Büchi son cerrados bajo la intersección, tal que para cada par de autómatas A y B, existe un autómata C.
10 Suponga que:
A = (Q1, Σ, q10, δ1, F1)
B = (Q2, Σ, q20, δ2, F2)
Definimos C como:
C = (Q1 × Q2 × {1,2}, Σ, q10 × q20 × {1}, δ, F)
Sean M1 = (Q1, Σ, δ1, q1, F1) y M2 = (Q2, Σ, δ2, q2, F2), tales que A1 = L (M1) y A2 = L(M2),
entonces tenemos el autómata de Büchi como sigue: Q = Q1 X Q2 X {1,2,3}
q0 = (q1, q2, 1) ∈ Q
F= F1 X F2 X 3
La función de transición queda δ : Q x Σ à Potencia(Q)
(δ1 (q1, a), δ2 (q2, a), 1); SI δ1 (q1, a) ∉ F1
((p1, p2, 1), a) à
(δ1 (q1, a), δ2(q2, a), 2); SI δ1 (q1, a) ∈ F1
(δ1(q1, a), δ2(q2, a), 2); SI δ2 (q2, a) ∉ F2
((p1, p2, 2), a) à
(δ1(q1, a), δ2(q2, a), 3); SI δ2 (q2, a) ∈ F2
δ((p1, p2, 3), a) = (δ1(q1, a), δ2(q2, a), 1)
Entonces tenemos el autómata de Büchi M = (Q, Σ, δ, q, F) tal que 𝐿(𝑀) = 𝐴*∪ 𝐴+.
Determinización
Decimos que autómata de Büchi A es determinizable si existe un autómata determinista B tal que Lω (A) = Lω (B).
Todos los autómatas sobre las palabras finitas son determinizables.
• Esto es falso para el caso infinito.
• La construcción basada en subconjuntos de estado no funciona.
11 Sea Σ = {a, b} y:
Entonces: 𝐿"(𝐴) = {𝑤 ∈ 𝛴" | 𝑤 𝑡𝑖𝑒𝑛𝑒 𝑢𝑛 𝑛ú𝑚𝑒𝑟𝑜 𝑓𝑖𝑛𝑖𝑡𝑜 𝑑𝑒 𝑠í𝑚𝑏𝑜𝑙𝑜𝑠 𝑎}
Se probará que la construcción basada en subconjuntos no funciona. Con la construcción de subconjuntos se genera el autómata siguiente:
Este autómata acepta el siguiente lenguaje:
𝐿"(𝐵) = {𝑤 ∈ 𝛴" | 𝑤 𝑡𝑖𝑒𝑛𝑒 𝑢𝑛 𝑛ú𝑚𝑒𝑟𝑜 𝑖𝑛𝑓𝑖𝑛𝑖𝑡𝑜 𝑑𝑒 𝑠í𝑚𝑏𝑜𝑙𝑜𝑠 𝑏}.
Entonces se tiene que Lω(A) ≠ Lω(B).
La construcción de subconjuntos no funciona para convertir un autómata de Büchi no determinista a un autómata de Büchi determinista, sin embargo existen algoritmos que pueden traducir un autómata de Büchi no determinista en un autómata de Muller determinista o un autómata de Rabin determinista. En los anexos se muestra la construcción de Safra, que permite crear un autómata de Rabin a partir de un autómata de Büchi.
Complementación
Decimos que un autómata de Büchi es complementable si existe un autómata de Büchi B tal que 𝐿"(𝐵) = 𝛴" \ 𝐿
"(𝐴).
12
Anexos
Construcción de Safra
Dado: Autómata de Büchi A = (Q, Σ, Q0, δ, F). Suponga que Q = {q1, . . . , qn}. Vamos a
construir un autómata de Rabin determinista B tal que Lω(A) = Lω(B), donde B está
compuesto por:
• Conjunto de estados Q1. • Estado inicial q0.
• Función de transición δ1: Q1 × Σ → Q1. • Conjunto ∆ de pares de aceptación.
Sea {c1, ... , c2n} un conjunto de 2n colores. Cada estado en Q1 contiene los siguientes
elementos:
• Para cada estado qi∈ Q, un stack de colores Si. • Un orden lineal < en {S1, ... , Sn}.
• Un par (B, M), donde B, M ⊆ {c1, ... , c2n}.
Estado inicial q0:
• Para cada estado qi∈ Q0: Si = c1. Para cada estado qi∈ Q \ Q0: Si = ∅. • c1 < ∅.
• (∅, ∅).
Dado: Estado α = (S1, ... , Sn, <1,(B1, M1)) y un símbolo a ∈ Σ. δ1 (α, a) = (T1, ... ,Tn, <2,(B2,
M2)) es calculado usando las siguientes reglas:
1. Intuición: Si qi∈ δ(qj, a), entonces el stack Si es reemplazado por Sj. Si para un
estado qi hay varias alternativas, se considera el menor stack según el orden <1.
Formalmente: Para i ∈ [1, n], sea Ai = {Sj| qi ∈ δ(qj, a)}. Entonces: Ti es el menor
elemento de Ai según <1 (si Ai = ∅, entonces Ti = ∅).
2. Para cada estado final qi∈ F: Se reemplaza Ti por Tidi, donde di es un color no
utilizado. Si para qi, qj∈ F se tiene que el tope de Ti es igual al tope de Tj, entonces
di = dj.
3. Un color es invisible si no está en el tope de ningún stack. Si c es invisible, entonces para cada Tj que contiene a c, se remueve todos los elementos que están
sobre c.
Pasos 1 al 3: Son calculados T1, ..., Tn. Los siguientes pasos calculan <2 y (B2, M2):
4. Para Ti ≠ Tj, se tiene que Ti <2 Tj si alguno de los siguientes casos se cumple: • Ti extiende a Tj, vale decir, Ti = Tjd1 · · · dk, donde cada di es un color. • Ti = PdQ y Tj = PeR, donde d y e son distintos colores, y se tiene que
13
• Ti = PdQ y Tj = PeR, donde d y e son distintos colores y e fue agregado en
el paso 2.
5. B2 y M2 son el resultado de aplicar las siguientes reglas:
• Si un color c deja de ser invisible en el paso 3, entonces c ∈ B2.
• Si un color c es eliminado de todos los stacks en el paso 1 ó 3, entonces c ∈
14
Determinización utilizando Construcción de Safra
Lema
A acepta w si y sólo si existe una ejecución ρ de B sobre w y un color c tales que:
• Existe estado (S1, . . . , Sn, <,(B, M)) en Inf(ρ) tal que c ∈ B.
• Para ningún estado (S1, . . . , Sn, <,(B, M)) en Inf(ρ) se tiene que c ∈ M.
Los estados finales de B son los siguientes: ∆ = {(V1, R1), . . . ,(V2n, R2n)}, donde:
Vi = {(S1, . . . , Sn, <,(B, M)) ∈ Q1 | ci∈ B},
15 Número de estados de B:
• Posibles stacks ≤ (n + 1)2n
• Órdenes para cada combinación de n stacks ≤ n!
• Pares (B, M) para cada combinación de n stacks ≤ 22n · 22n
Total:
Mejor estimación: No es necesario almacenar por separado los n stacks; basta con almacenar dos funciones:
• Una que indica que color está en el tope de cada stack: f : {1, . . . , n} → {c1, . . . , c2n, ⊥},
• y una que indica que color está inmediatamente abajo en cada stack: g : {c1, . . . ,
c2n} → {c1, . . . , c2n, ⊥},
Nueva estimación:
(2n + 1)n · (2n + 1)2n · n! · 22n · 22n = 2O(n log n).
Teorema (Safra)
16
Autómata de Muller
Un autómata de muller está definido como: M = (Q,Ʃ,δ,s,F) donde:
• Q es un conjunto de estados. • Ʃ es el alfabeto
• δ es una transición • s es el estado inicial
• F es un conjunto de estados. Formalmente, F es un subconjunto P(Q) donde P(Q)
es un conjunto potencia de Q. F define las condiciones de aceptación. M acepta exactamente aquellas ejecuciones en las cuales el conjunto de infinitos usualmente ocurren en estados pertenecientes a F.
La ejecución del autómata de muller sobre una ω-palabra b0b1b2… ϵ Ʃω es una secuencia
q0q1q2… con q0 = s y (qk, a, qk+1) ϵ δ para todos los k. La ejecución del autómata de Muller
es aceptado si solo si el conjunto U de infinitos estados visitados usualmente satisface U ϵ F. Una autómata de Muller es determinístico si solo si la transición δ es una función, que es para cada p ϵ Q y a ϵ Ʃ existe al menos un q ϵ Q (p , a, q) ϵ δ.
Teoremas.
Teorema 1. Para cada Büchi autómata A1 existe un lenguaje equivalente al autómata de
Muller A2.
Construcción: A1 y A2 tienen el mismo grafo autómata. Sea F un conjunto de estados
finales de Büchi A1. El autómata de Muller define una tabla final FT = {Y ϵ 2q | Y ∩ F ≠ ø}
Teorema 2: Para cada autómata de Büchi A1 podemos construir un lenguaje equivalente a
un autómata determinista de Muller A2.
Teorema 3. Para cada autómata de Muller no determinista existe un autómata de Büchi no determinista tal que Lω(A) = Lω(B).
17 Abdulla Eid. (2009). Finite ω-Automata and Büchi Automata. mayo, 2009, de Department of Computer Science Sitio web: http://www.math.uiuc.edu/~eid1/ba.pdf
K Narayan Kumar. (2006). Büchi Automata. 2013, de Chennai Mathematical Institute Sitio web: http://www.cmi.ac.in/~kumar/words/lecture07.pdf
Javier Esparza. (2011). omega automata. 2012, de Chair for Foundations of Software Reliability and Theoretical Computer Science Sitio web:
https://www7.in.tum.de/um/courses/auto/ws1112/slides1011/omegaautomata-melted.PDF
Marcelo Arenas. (2013). Autómatas sobre palabras infinitas. 2013, de Pontificia Universidad Católica de Chile Sitio web:
http://web.ing.puc.cl/~marenas/iic3800/clases/automata-1-imp.pdf
A. Prasad Sistla, Moshe Y. Vardi, Pierre Wolper. (1987). The complementation problem for Büchi Automata with applications to temporal logic . Theoretical Computer Science, 49, 21.
Madhavan Mukund. (1996). Linear-Time Temporal Logic and B¨uchi Automata. Enero 1997, de SPIC Mathematical Institute Sitio web:
http://www.cmi.ac.in/~madhavan/papers/pdf/isical97.pdf
Moshe Y. Vardi , Thomas Wilke. (2010). Automata: From Logics to Algorithms. 2010, de Uniwersytet Warszawski, Instytut Informatyki Sitio web:
http://www.mimuw.edu.pl/~fmurlak/ano2010/wal07.pdf