Semánticas de procesos y aplicaciones Clase 05: Lenguajes para especificar sistemas de transiciones y lógicas modales - Parte 2 Outline Lenguajes de especificación Modal µ-calculus ¿Qué vimos hasta ahora? I acciones: a I multiacciones: α I 3 operadores sobre multiacciones: α \ β, α v β y α I operador de elección: + I operador de secuencia: . I operador de inacción: δ I condicional: c → x♦y P generalización de +: d:D p(d) (Notar que necesitamos datos) I I procesos recursivos: en particular, procesos recursivos con guarda Axiomas para la weak bisimulación Los axiomas que vimos son para la bisimulación. El siguiente conjunto de axiomas extiende los mismos para la weak bisimulación. Axiomas para la branching bisimulación Axiomas para la branching bisimulación El operador de paralelización k El operador de paralelización k Comunicación entre procesos ¿Qué significa que dos acciones se ejecuten al mismo tiempo? Comunicación entre procesos ¿Qué significa que dos acciones se ejecuten al mismo tiempo? I Nada, pues que dos acciones ocurran al mismo tiempo no implica necesariamente qué exista comunicación. I La existencia de comunicación se hace explicita mediante el operador ΓC . I El operador ΓC se usa para reemplazar multiacciones por acciones. Axiomas para ΓC I Para ΓC , las multiacciones con parámetro se reemplazan sólo si tienen el mismo parámetro. Ejemplo: Γ{a|b→c} (a(0) | b(0)) = c(0), pero Γ{a|b→c} (a(1) | b(0)) = a(1) | b(0) Axiomas para ΓC I NO se pueden reemplazar multiacciones que posean acciones en común. Por ejemplo Γ{a|b→c,a|d→e} no es un operador válido. I Caso contrario, γC1 (γC2 (α)) = γC2 (γC1 (α)) no es válido. Forzando la comunicación ¿Alcanza ΓC para asegurar la comunicación de dos procesos? (por el tı́tulo la respuesta es no... :S) ¿Por qué? Forzando la comunicación ¿Alcanza ΓC para asegurar la comunicación de dos procesos? (por el tı́tulo la respuesta es no... :S) ¿Por qué? I Para forzar la comunicación introducimos el operador allow 5V . I 5V (p) es el proceso p donde sólo se ejecutan las acciones en V. Axiomas para 5V Ejemplos de estos operadores (1) Ejemplos de estos operadores (2A) 1. Sea X un switching buffer. 2. Sea B un temporary store de tamaño 1. Ejemplos de estos operadores (2A) 1. Sea X un switching buffer. 2. Sea B un temporary store de tamaño 1. ¿Algún detalle de la especificación? Ejemplos de estos operadores (2B) Ejercicio Bloque de acciones Renombre de acciones Ocultamiento de acciones Ejemplo: utilidad del ocultamiento I Ambos LTS son branching bisimilares. Outline Lenguajes de especificación Modal µ-calculus ¿Qué vimos hasta ahora? I Hennessy-Milner Logic φ = true | false | ¬φ | φ ∧ φ | φ ∨ φ | φ → φ | haiφ | [a]φ I Fórmulas de acciones: α ::= (a1 | . . . | an ) | true | false | α | α ∩ α | α ∪ α hαiφ = I W a∈α haiφ [α]φ = V a∈α [a]φ Fórmulas de regulares: R ::= ε | α | R.R | R + R | R ∗ | R + I I I I I ε es la fórmula vacia. Luego [ε]φ = hεiφ = φ. hR1 + R2 iφ = hR1 iφ ∨ hR2 iφ hR1 .R2 iφ = hR1 ihR2 iφ [R1 + R2 ]φ = [R1 ]φ ∧ [R2 ]φ [R1 .R2 ]φ = [R1 ][R2 ]φ Razones para formular propiedades Razones para formular propiedades I El comportamiento no es facilmente caracterizable, entonces pedimos algunas propiedades mı́nimas. Ejemplo: “en el protocolo de comunicación sólo habrá un lider”. I El comportamiento del sistema no es claro, luego sólo definimos propiedades. I Para verificar el comportamiento del modelo. Si el modelo es correcto deberı́a satisfacer las propiedades deseables del sistema. El model checking no es sólo para verificar propiedades, en muchos casos sirve como herramienta para razonar sobre el modelo. Es decir que los problemas se encuentran antes de realizar el chequeo. Modal µ-calculus φ =true | false | ¬φ | φ ∧ φ | φ ∨ φ | φ → φ | haiφ | [a]φ | µX .φ | νX .phi | X I Hennessy-Milner Logic + Operadores de máximo y mı́nimo punto fijo. Puntos fijos: intuitivamente. µX .φ representa el conjunto de estados X más CHICO que satisface X =φ νX .φ representa el conjunto de estados X más GRANDE que satisface X =φ I Notar los “tipos distintos”: I I X es un conjunto de estados. φ es una “fórmula” que además de etiquetas tiene conjuntos de estados. Puntos fijos: ejemplos. I En un LTS arbitrario, cuales estados satisfacen: µX .X y νX .X . I En el siguiente LTS,cuales estados satisfacen: µX .haiX y νX .haiX : Puntos fijos. Algunas propiedades I El menor punto fijo es más fuerte que el mayor punto fijo: µX .φ =⇒ νX .ψ I Uno es el dual del otro: ¬µX .φ = νX .¬φ I ¬νX .φ = µX .¬φ Para µX .φ y νX .φ, si en φ, X aparece negada una cantidad impar de veces entonces el punto fijo no existe. Ejemplo: µX .¬X , luego no existe X que satisfaga X = ¬X Safety and liveness properties I Una propiedad de liveness asegura que algo bueno sı́ va a pasar en algun momento (ejecuciones finitas). Para esto se usa el menor punto fijo. I Una propiedad de safety asegura que algo malo nunca va a pasar (ejecuciones infinitas). Para esto se usa el mayor punto fijo. Ejercicio I Escribir hR ∗ iφ y [R ∗ ]φ usando puntos fijos. Luego, las fórmulas regulares no son “necesarias”. Recordemos: W V hαiφ = a∈α haiφ [α]φ = a∈α [a]φ I Escribir hR + iφ y [R + ]φ en función de hR ∗ iφ y [R ∗ ]φ. I Cómo escribir ♦φ usando puntos fijos. Fairness properties. Estas propiedades se utilizan para expresar que una acción debe suceder si se encuentra infinitamente habilitada o que una acción ocurre sólo un número limitado de veces. Ejemplos: I µX .νY .(haitrue ∧ [b]X ) ∨ (¬haitrue ∧ [b]Y ) I νX .µY .(haitrue ∧ [b]X ) ∨ (¬haitrue ∧ [b]Y ) Verificando fórmulas modales en LTS: fórmulas HM. I Recursivamente se van etiquetando los nodos con las fórmulas que satisface: Verificando fórmulas modales en LTS: Menor punto fijo. I Se etiquetan los nodos con las fórmulas que satisface. Si algún nodo satisface φ entonces se etiqueta el nodo con X . Se repite el proceso hasta que no se agregan más X . I El menor punto fijo está relacionado con un caracterización de estados inductiva. Verificando fórmulas modales en LTS: Mayor punto fijo. I Se asume que todo estado satisface X . Luego se verifica si cada estado satisface φ. Si no satisface, entonces, de ese estado se retira X . Se repite el proceso hasta que no se sacan más X . I El menor punto fijo está relacionado con un caracterización de estados coinductiva.