Working Hypothesis Desarrollo Formal de Programas Clase 3 Camilo Rueda 1 1 Universidad Javeriana-Cali PUJ 2007 Working Hypothesis Oz Refinamiento Detallar un modelo no implica construir uno totalmente nuevo Los detalles definen cosas adicionales para observar Las observaciones adicionales implican en general nuevas variables Para las nuevas variables se establecen propiedades deben especificarse relaciones entre las variables viejas (modelo abstracto) y las nuevas (refinamiento) Working Hypothesis Oz Ejemplo: refinamientodel partido de fútbol Se observan los jueces y dos equipos Los jueces no juegan en los equipos Un jugador de un equipo no juega en el otro Cada equipo es de 17 jugadores Hay tres jueces de campo, más un cuarto juez en la cancha hay máximo 11 jugadores de cada equipo Working Hypothesis Oz Ejemplo: refinamientodel partido de fútbol (cont) Qué es constante? El conjunto de jueces de campo El cuarto juez El conjunto de jugadores de cada equipo Qué es variable? Qué jugadores de cada equipo hay en la cancha Qué jugadores de cada equipo hay afuera Qué jugadores de cada equipo hay expulsados Working Hypothesis Oz Ejemplo: refinamientodel partido de fútbol (Rodin) (Ver futbol-refin1.zip) Note el invariante de encadenamiento Observe que las variables de la abstracción se remplazan Note que un evento (por ejemplo, entra) se puede refinar con varios eventos Working Hypothesis Oz Refinamiento de un modelo Relación del modelo abstracto y el concreto: Invariante de encadenamiento Un evento C refina un evento A: Cuando la guarda de C es más fuerte que la de A Cuando el invariante de encadenamiento se preserva en la acción conjunta de A y C Propiedad global: El modelo refinado no debe bloquearse con mayor frecuencia que su abstracción Working Hypothesis Oz Consistencia de refinamiento(1) xxx= xxx= when P(v ) then S(v ) end when Q(v , w) then T (v , w) end Obligación de prueba I(v ) ∧ J(v , w) ∧ Q(v , w) ⇒ (P(v ) ∧ J(S(v ), T (v , w))) Working Hypothesis Oz Consistencia de refinamiento(2) xxx= xxx= any x where P(x, v ) then v := E(x, v ) end any y where Q(y , w) then w := F (y, w) end I(v ) ∧ J(v , w) ∧ Q(y , w) ⇒ ∃x .(P(x, v ) ∧ J(E(x, v ), F (y , w))) Working Hypothesis Oz Limitación de deadlocks Para cada evento abstracto: xxx= any x where P(x, v ) then v := E(x, v ) end I(v ) ∧ J(v , w) ∧ P(x, v ) ⇒ disyunción de guardas concretas (Si un evento abstracto puede dispararse, también uno concreto)