Lógica Temporal Lineal

Anuncio
Sintaxis y semántica
Un ejemplos de especificación
Procesos concurrentes
Lógica Temporal Lineal
Pedro Cabalar
Depto. Computación
Universidade da Coruña, SPAIN
4 de mayo de 2006
Pedro Cabalar
LTL
Sintaxis y semántica
Un ejemplos de especificación
Procesos concurrentes
Outline
1
Sintaxis y semántica
2
Un ejemplos de especificación
Cruces de tren
3
Procesos concurrentes
Pedro Cabalar
LTL
Sintaxis y semántica
Un ejemplos de especificación
Procesos concurrentes
Sintaxis
Es la de cálculo proposicional (∧, ∨, →, ¬) más:
op. unarios:
= “para siempre”
♦ = “en algún momento futuro”
= “en el instante siguiente”
op. binarios que representan “hasta que”:
U (versión fuerte) y W (versión débil)
Pedro Cabalar
LTL
Sintaxis y semántica
Un ejemplos de especificación
Procesos concurrentes
Semántica
Dado un conjunto de proposiciones Σ, un estado s es una
valoración de certeza s : Σ −→ {T , F }.
Definition (Interpretación)
Una interpretación I es una secuencia de estados s0 , s1 , s2 , . . .
posiblemente infinita.
Pedro Cabalar
LTL
Sintaxis y semántica
Un ejemplos de especificación
Procesos concurrentes
Definition (Satisfacción de una fórmula)
Sea I = s0 , s1 , . . . y sea i ≥ 0. Decimos que I, i |= α si se
cumple:
I, i |= p si p ∈ si (para p ∈ Σ)
I, i |= α si I, j |= α para todo j ≥ i
I, i |= ♦α si I, j |= α para algún j ≥ i
I, i |= α si I, i + 1 |= α
I, i |= α U β si existe n ≥ i, I, n |= β y además
I, j |= α para todo i ≤ j<n.
I, i |= α W β si I, i |= α o bien I, i |= α U β
Pedro Cabalar
LTL
Sintaxis y semántica
Un ejemplos de especificación
Procesos concurrentes
Algunas relaciones interesantes
α ↔ ¬♦¬α
♦α ↔ ¬¬α
α ↔ α ∧ α
♦α ↔ α ∨ ♦α
(α → α) → (α → α)
α U β ↔ (α W β) ∧ ♦β
α W β ↔ (α U β) ∨ β
α ↔ > U α
♦α ↔ α W ⊥
α U β ↔ β ∨ α ∧ (α U β)
Pedro Cabalar
LTL
Sintaxis y semántica
Un ejemplos de especificación
Procesos concurrentes
Cruces de tren
Cruces de tren
1
Línea férrea de vía única. Cruces con carreteras.
2
Objetivo: especificar propiedades que debe cumplir.
3
Ejemplos de proposiciones que representan eventos
a = “Un tren se está aproximando"
c = “Un tren está cruzando"
p = “La luz está parpadeando"
b = “La barrera está bajada"
Pedro Cabalar
LTL
Sintaxis y semántica
Un ejemplos de especificación
Procesos concurrentes
Cruces de tren
Especicación de algunas propiedades
1
Cuando un tren esté cruzando, la barrera debe estar
bajada
Solución: (c → b)
2
Si un tren se aproxima o cruza, la luz debe estar
parpadeando
Solución: (a ∨ c → p)
3
Si la barrera está subida y la luz apagada, entonces no se
aproxima ni cruza ningún tren
Solución: (¬b ∧ ¬p → ¬a ∧ ¬c)
Pedro Cabalar
LTL
Sintaxis y semántica
Un ejemplos de especificación
Procesos concurrentes
Cruces de tren
Especicación de algunas propiedades
1
Si un tren se aproxima, la barrera estará bajada antes de
que cruce
Solución: (a → ¬c W b)
2
Si un tren ha terminado de cruzar, la barrera se terminará
levantando
Solución: ((c U ¬c) → ♦(¬c → ♦b)
3
La barrera será levantada un número infinito de veces
Solución: ♦¬b
Pedro Cabalar
LTL
Sintaxis y semántica
Un ejemplos de especificación
Procesos concurrentes
Cruces de tren
Especicación de algunas propiedades
1
Si un tren se aproxima, entonces terminará cruzando y
después dejará de cruzar sin que ningún tren se aproxime.
2
. . . esto es, los trenes no son infinitos y existen huecos
entre trenes.
Solución: (a → ♦(c ∧ ♦(¬c ∧ ¬a)))
Pedro Cabalar
LTL
Sintaxis y semántica
Un ejemplos de especificación
Procesos concurrentes
Escenario general
Procesos concurrentes p1 , . . . , pn compartiendo variables
v1 , . . . , vm
Cada instrucción de pi tiene una etiqueta Lij .
Un estado (global) tiene el aspecto:
v1
v2
...
12 −8 . . .
Pedro Cabalar
p1
p2 . . .
pn
20 L111 L24 . . .
Ln9
vm
LTL
Sintaxis y semántica
Un ejemplos de especificación
Procesos concurrentes
Axiomas de progreso
Li : v := <expr>; Li+1 : S
Li → ♦Li+1
Li : if B then
Li ∧ B → ♦Lt
Lt : S1
else
Li ∧ ¬B → ♦Lf
Lf : S2
Li : while B do
Li ∧ B → ♦Lt
Lt : S1;
Lf : S2
Li ∧ ¬B → ♦Lf
Pedro Cabalar
LTL
Descargar