Lógicas Modales Computacionales Clase # 15: Linear Temporal Logic Carlos Areces / Daniel Gorín / Sergio Mera 2do Cuatrimestre 2006, Buenos Aires, Argentina Que Hacemos Hoy I I Autómatas sobre palabras infinitas PLTL y Autómatas I I I I : Complejidad Sistemas de Transición de Estados (STS) Verificación de STS Autómata asociado a una fórmula Exámen Final Carlos Areces / Daniel Gorín / Sergio Mera De Fórmulas a Autómatas : Complejidad Carlos Areces / Daniel Gorín / Sergio Mera Autómatas Finitos (FA) I Recordemos que un autómata determinístico finito (DFA) es una 5-tupla A = hΣ, S, s0 , ρ, Fi donde I I I I I : Complejidad Σ es el alfabeto (un conjunto no vacío finito, usualmente de al menos 2 elementos) S es el conjunto de estados (no vacío finito) s0 ∈ S es el estado inicial ρ : S × Σ → S es la función de transición. F ⊆ S es el conjunto de estados finales (o de aceptación) Carlos Areces / Daniel Gorín / Sergio Mera Büchi Autómata I En cambio, un Büchi Autómata determinístico (DBA) es una 5-tupla A = hΣ, S, s0 , ρ, Fi donde I I I I I I : Complejidad Σ es el alfabeto (un conjunto no vacío finito, usualmente de al menos 2 elementos) S es el conjunto de estados (no vacío finito) s0 ∈ S es el estado inicial ρ : S × Σ → S es la función de transición. F ⊆ S es el conjunto de estados finales (o de aceptación) Como estructuras son idénticas lo que cambia es la fórma en que los usamos! Carlos Areces / Daniel Gorín / Sergio Mera Aceptando Strings Infinitos I Vamos a cambiar las definiciones de string de entrada, de corrida sobre dicho string, y de aceptación. I I El input es ahora una palabra infinita: w = a0 , a1 , . . . ∈ Σω Una corrida de A sobre w es una secuencia de estados r = s0 , s1 , . . . ∈ Sω tq. 1. s0 es el estado inicial de A 2. si+1 ∈ ρ(si , ai ) I Definimos inf (r) = {s | s = si para un número infinito de is} Decimos que A acepta r si inf (r) ∩ F 6= ∅ : Complejidad Carlos Areces / Daniel Gorín / Sergio Mera Ejemplos I Qué lenguaje reconoce A como AF? L(A) = (0|1)∗ 1 I Qué lenguaje reconoce A como BA? L(A) = ((0|1)∗ 1)ω , los strings con un número infinito de unos. : Complejidad Carlos Areces / Daniel Gorín / Sergio Mera Ejemplos I Qué lenguaje reconoce A como FA? L(A) = (0|1)∗ 1+ I Qué lenguaje reconoce A como BA? L(A) = (0|1)∗ 1ω , los strings con un número finito de ceros. : Complejidad Carlos Areces / Daniel Gorín / Sergio Mera Generalized Büchi Autómata I En realidad, vamos a necesitar trabajar con una versíon un poco más compleja de autómata para palabras infinitas que se llama Generalized Büchi Autómata (GBA). I El único cambio en la estructura es que en vez de tener un conjunto de estados finales F ⊆ S, tenemos un conjunto de conjunto de estados finales F = {F1 , . . . , Fn }, Fi ⊆ S. I En un GBA una corrida r es aceptada sii inf (r) ∩ Fi 6= ∅ para todo Fi ∈ F I Teo: Todo DGBA tiene un DBA equivalente. I Teo: Todo NGBA tiene un NBA equivalente. I Teo: Todo NBA tiene un DBA equivalente : Complejidad Carlos Areces / Daniel Gorín / Sergio Mera Emptiness de Büchi Autómata I I Teo: Sea A = hΣ, S, s0 , ρ, Fi un NBA y sea GA = (S, E) el grafo subyacente. Entonces Lω (A) 6= ∅ sii hay un estado t ∈ F tal que en GA el estado t esta conectado con s0 y con sí mismo. Algoritmo (basado en Tarjan): I I I I : Complejidad Descomponer GA en MSCC (Maximal Strongly Connected Components) empezando desde s0 . Chequear que al menos uno de los MSCC interseca F en forma no vacía. Ambos pueden hacerse en tiempo y espacio linear. Teo: Podemos determinar emptiness para un NBA en tiempo linear. Carlos Areces / Daniel Gorín / Sergio Mera Volviendo a PLTL. . . I I Entonces, como usamos BA para verificación? Supongamos que tenemos un STS M sobre el que queremos verificar una propiedad ϕ. I I Podemos pensar M como un generador de corridas que nos define un lengujae L(M). Por otro lado, tenemos L(ϕ) el conjunto de corridas en las que ϕ es cierta. Entonces ϕ es cierta sobre M sii L(M) ⊆ L(ϕ) O equivalentemente L(M) ∩ L(ϕ)c = ∅ I : Complejidad En otras palabras, podemos chequear M |= ϕ chequeando por emptyness el autómata AM ∩ A¬ϕ Carlos Areces / Daniel Gorín / Sergio Mera STS como Autómatas I Recordemos que las fórmulas de PLTL se interpretaban en modelos (sistemas de transición de estados) de la forma hS, I, R, Labeli donde I I I I S es un conjunto contable no vacío de estados, I ⊆ S es un conjunto de estados iniciales, R ⊂ S × S es la relación de transición tal que ∀s ∈ S.(∃s0 ∈ S.R(s, s0 )) Label : S → 2PROP es una valuación I Podemos pensar que un sistema de transición de estados crea palabras infinitas (sobre el alfabeto 2PROP ) a medida que el sistema avanza de estado en estado. I Dado M = hS, I, R, Labeli, definimos AM = h2PROP , S, I, ρ, Si donde ρ(u, a) = {v | R(u, v) y a = Label(u)} : Complejidad Carlos Areces / Daniel Gorín / Sergio Mera Transformando Fórmulas en Autómatas I Para ϕ = p Aϕ = h2PROP , {1, 2}, {1}, ρ, {2}i donde ∅ : p 6∈ a ρ(1, a) = {2} : p ∈ a ρ(2, a) = {2} I Para ϕ = ¬ψ Aϕ = Acψ I Para ϕ = ψ1 ∨ ψ2 Aϕ = Aψ1 ∪ Aψ2 : Complejidad Carlos Areces / Daniel Gorín / Sergio Mera Transformando Fórmulas en Autómatas I Para ϕ = Xψ. Asumimos Aψ = h2PROP , S, s0 , ρ, Fi Aϕ = h2PROP , S ∪ {$}, $, ρ0 , Fi donde ρ0 ($, a) = s0 ρ0 (s, a) = ρ(s, a), para s 6= $ : Complejidad Carlos Areces / Daniel Gorín / Sergio Mera Transformando Fórmulas en Autómatas I Para ϕ = ψUθ. Asumimos Aψ = h2PROP , S1 , s10 , ρ1 , F1 i y Aθ = h2PROP , S2 , s20 , ρ2 , F2 i . . . I TAREA! : Complejidad Carlos Areces / Daniel Gorín / Sergio Mera Transformación Eficiente I Sea sub(ϕ) la clausura de ϕ bajo subfórmulas y negaciones simples. I Def: Una satseq para sigma y ϕ (satseq(σ, ϕ)) es una secuencia en (2sub(ϕ) )ω tq. satseq(σ, ϕ) = satseq(σ, ϕ, 0),satseq(σ, ϕ, 1),. . . y satseq(σ, ϕ, i) = {ψ ∈ sub(ϕ) | σ i |= ψ} : Complejidad Carlos Areces / Daniel Gorín / Sergio Mera Propiedades de satseq(σ, ϕ) Supongamos que σ |= ϕ, entonces se cumple que 1. ϕ ∈ satseq(σ, ϕ, 0) 2. para p ∈ sub(ϕ) entonces, p ∈ satseq(σ, ϕ, i) sii p ∈ σ[i] 3. para ϕ1 ∧ ϕ2 ∈ sub(ϕ) entonces, ϕ1 ∧ ϕ2 ∈ satseq(σ, ϕ, i) sii . . . 4. para ¬ϕ1 ∈ sub(ϕ) entonces, ¬ϕ1 ∈ satseq(σ, ϕ, i) sii . . . 5. para Xϕ1 ∈ sub(ϕ) entonces, Xϕ1 ∈ satseq(σ, ϕ, i) sii ϕ1 ∈ satseq(σ, ϕ, i + 1) 6. para ϕ1 Uϕ2 ∈ sub(ϕ) entonces, ϕ1 Uϕ2 ∈ satseq(σ, ϕ, i) sii ϕ2 ∈ satseq(σ, ϕ, i) o (ϕ1 ∈ satseq(σ, ϕ, i) y ϕ1 Uϕ2 ∈ satseq(σ, ϕ, i + 1)) : Complejidad Carlos Areces / Daniel Gorín / Sergio Mera Propiedades de satseq(σ, ϕ) I Las propiedades 1 a 4 se chequean en el mismo estado I Las propiedades 5 a 6 se chequean testeando i e i + 1 I Lamentablemente, estas condiciones no alcanzan para asegurar σ |= ϕ :(. Necesitamos: 7. ϕ1 Uϕ2 ∈ satseq(σ, ϕ, i) sii existe j ≥ i tq. ϕ2 ∈ satseq(σ, ϕ, j) y esta condición no es local. . . . I : Complejidad Secuencias de Hintikka: α0 , α1 , . . . ∈ (2sub(ϕ) )ω es una secuencia de Hintikka para ϕ y σ sii satisface las condiciones 1 a 7. Carlos Areces / Daniel Gorín / Sergio Mera Construcción del Autómata Vamos a construir un autómata de Büchi generalizado AH σ,ϕ que acepta dos argumentos – un path σ y una secuencia de Hintikka para ϕ y σ: PROP AH × 2sub(ϕ) , 2sub(ϕ) , S0 , ρ, {F1 , . . . , Fk }i ϕ = h2 donde I I S0 = {α | α ⊆ sub(ϕ), ϕ ∈ α} ρ(α, (a, β)) = {α0 | α = β and α, α0 cumplen 1 a 5:} 1. 2. 3. 4. 5. : Complejidad p ∈ α sii p ∈ a ϕ1 ∧ ϕ2 ∈ α sii ϕ1 ∈ α y ϕ2 ∈ α ¬ϕ ∈ α sii ϕ 6∈ α Xϕ1 ∈ α sii ϕ1 ∈ α0 ϕ1 Uϕ2 ∈ α sii ϕ2 ∈ α o (ϕ1 ∈ α y ϕ1 Uϕ2 ∈ α0 ) Carlos Areces / Daniel Gorín / Sergio Mera Condiciones Globales La condición que asegura la existencia de un estado satisfaciendo ϕ2 cuando tenemos ϕ1 Uϕ2 en un estado del autómata no puede chequearse localmente. Pero podemos codificarla en la condición de aceptación. Sea Fϕ1 Uϕ2 = {α | ϕ1 Uϕ2 6∈ α o ϕ2 ∈ α} Definimos {F1 , . . . , Fk } = {Fϕ1 Uϕ2 | ϕ1 Uϕ2 ∈ sub(ϕ)} Teo: AH ϕ acepta exactamente los pares (σ, α) tal que α es una secuencia de Hintikka para ϕ y σ. : Complejidad Carlos Areces / Daniel Gorín / Sergio Mera