• No se han encontrado resultados

ejemplos anteriores) denotaremos un predicado elPredL como una lista de pre- dicados (enPred) donde cada posici´on contendr´a su valor en cada locaci´on. As´ı, en el ejemplo1.15el conjunto de estados iniciales ser´a: Θ r. N ¥0,false,falses. Claramente las operaciones enPredL pueden ser instrumentadas aplicando pun- to a punto las definidas enPredsobre cada elemento de estas listas.

1.6.1

Strongest postcondition

Dado un sistema de transicionesTS p. L,S,

τ

,Θq, el transformador strongest postcondition sobre ese sistemas de transiciones ser´a un operador que toma el conjunto

τ

de transiciones, un predicado en el sistema y devuelve un predicado en el mismo:

SP :TranL,S ÑPredLÑPredL

SP.

τ

.P.l1 x. ” l, s :

τ

.l.s.l1: sp.s.pP.lq y

Para cada locaci´on, este transformador devuelve la uni´on (supremo) de la transformaci´on sp sobre las transiciones entrantes a la misma. De forma intuitiva el resultado del transformador se puede caracterizar como las configuraciones (estados/locaciones) alcanzables mediante un paso de ejecuci´on del programa desde las configuraciones del predicado par´ametro.

Ejemplo 1.17

Sea el sistema de transiciones correspondiente al programa 1.1(grafo de tran- siciones 1.1). Calcularemos el resultado de este transformador con respecto al estado inicial Θ r. N ¥0,false,falses. Para ello deberemos obtener el supremo de aplicar sp sobre cada transici´on entrante a cada locaci´on.

Comencemos por calcular SP.

τ

.Θ.l0. En este caso no existen transiciones

cuya locaci´on de llegada seal0; esto es

τ

.l.s.l0para todol ys. Por lo tanto el

transformador enl0 es el supremo con rango vac´ıo:

SP.

τ

.Θ.l0false

La locaci´onl1 tiene dos transiciones entrantes: una parte del0 y otra del1.

En estas locaciones Θ valeN ¥0 y falserespectivamente. Para esta ´ultima el transformador sp dentro del supremo devuelvefalseya que el mismo es estricto. Calculemos el resultado sobre la primera locaci´on:

sp.pn:0q.pN ¥0q.σ1

{ Desplegado de abreviaciones}

sp.xxλσ•σrnÞÑ0syy.xλσ•σ.N ¥0y.σ1

{ Definici´on de sp}

x Dσ :σ.N ¥0 : σrnÞÑ0s σ1y

{ Actualizaci´on deσy separaci´on de t´ermino}

x Dσ :σ.N ¥0 :

σ1.n0^σ1.N σ.N ^ x @vPVar :vn^vN : σ.vσ1.vy y

{ Intercambio, l´ogica, distributividad}

σ1.N ¥0^σ1.n0^

24 CAP´ITULO 1. SISTEMAS DE TRANSICIONES {Instanciaci´onσporσ1 }

σ1.N ¥0^σ1.n0 .

Por lo tanto

sp.pn:0q.pN ¥0q N¥0^n0

y este resultado ser´a el mismo que el del transformador SP en la locaci´onl1 :

SP.

τ

.Θ.l1N ¥0^n0 .

La locaci´on l2 tiene solo una transici´on entrante desdel1. Pero como Θ es

falso en l1 y sp es estricto obtenemos:

SP.

τ

.Θ.l2false .

El resultado final de aplicar el transformador ser´a entonces SP.

τ

.Θ rfalse, N¥0^n0,falses

el cual muestra que los estados alcanzables desde los estados iniciales en Θ despu´es de un paso de ejecuci´on del programa est´an ´unicamente en la locaci´on

l1, antes de comenzar el bucle. De esta forma el programa con las anotaciones

parciales obtenidas ser´a: Programa 1.4 l0:tN ¥0u n:0; l1:tN ¥0^n0u don N ÞÑ n:n 1 od l2: l

1.6.2

Weakest liberal precondition

El transformador weakest liberal precondition puede ser extendido tambi´en a predicados sobre sistemas de transiciones:

WLP :TranL,S ÑPredLÑPredL

WLP.

τ

.Q.l x. “l1, s :

τ

.l.s.l1: wlp.s.pQ.l1q y

El mismo en cada locaci´on devuelve la intersecci´on (´ınfimo) de la aplicaci´on del transformador wlp sobre cada transici´on saliente desde la misma. El resultado de este transformador puede caracterizarse de forma intuitiva como el conjunto de configuraciones (estados/locaciones) tales que si en el sistema de transiciones se ejecuta una sentencia desde alguna de ellas, si la sentencia termina lo hace a alguna configuraci´on perteneciente aQ.

1.6. TRANSFORMADORES DE PREDICADOS EN ST 25 Ejemplo 1.18

Consideremos el programa 1.5junto con su grafo de transiciones. En el mismo se ha anotado el final del programa (locaci´onl3) con la poscondici´onq.

Programa 1.5 l0: if b0ÞÑ l1: s0 b1ÞÑ l2: s1 fi l3: tqu l0 l1 l2 l3 tqu rb0s rb1s s0 s1

En este ejemplo obtendremos el conjunto de estados a partir de los cuales si el programa termina en l3 lo hace en un estado que satisface q. Notar que

no interesa si el programa alcanza otra locaci´on distinta a l3. Si alcanza estas

locaciones puede hacerlo en cualquier estado pero si llega al3 debe cumplirq.

Este resultado puede ser obtenido aplicando el transformador WLP al predicado

Q r. true,true,true, qs.

Sea

τ

el sistema de transiciones descripto por el grafo del programa 1.5. Calcularemos el resultado del transformador en cada locaci´on. Desdel0solo hay

dos transiciones salientes hacia l1 y l2 por lo que el c´alculo del ´ınfimo de la

definici´on de WLP se reduce al c´alculo de una intersecci´on: WLP.

τ

.Q.l0

{ Definici´on deQ}

WLP.

τ

.rtrue,true,true, qs.l0

{ Definici´on de WLP}

wlp.rb0s.true X wlp.rb1s.true

{ wlp es no interrumpible}

true

Desde l1 (respectivamente l2) solo hay una transici´on saliente hacia l3, por

lo que el resultado es simplemente wlp.s0.q(respectivamente wlp.s1.q). Desdel3

no hay transiciones salientes por lo que el ´ınfimo estrue(Jdel reticuladoPred). El resultado final ser´a:

WLP.

τ

.rtrue,true,true, qs rtrue,wlp.s0.q,wlp.s1.q,trues ,

lo cual muestra que si despu´es de un paso de ejecuci´on el programa llega a l3

en un estado deq, entonces si parti´o del1 lo hizo desde un estado en wlp.s0.q,

o si parti´o del2lo hizo desde un estado en wlp.s1.q.

El mismo razonamiento puede aplicarse para obtener que sucede despu´es de dos pasos de ejecuci´on. Calculando el resultado del transformador sobre el ´

ultimo resultado y teniendo en cuenta que wlp.rbs.qbñqobtenemos: WLP.

τ

.rtrue,wlp.s0.q,wlp.s1.q,trues

26 CAP´ITULO 1. SISTEMAS DE TRANSICIONES o, junto con el c´alculo anterior:

pWLP.

τ

q2.Q rb0ñwlp.s0.q X b1ñwlp.s1.q,true,true,trues

La interpretaci´on de este resultado es la siguiente: si despu´es de dos pasos de ejecuci´on el programa llega al3 en un estado de q, entonces si parti´o del0

lo hizo desde un estado enb0ñwlp.s0.q X b1ñwlp.s1.q. Notar que este es el

resultado cl´asico de la aplicaci´on del transformador weakest liberal precondition a la sentencia condicional [DS90].

Utilizando los c´alculos de WLP.

τ

ypWLP.

τ

q2 podemos realizar las anota-

ciones en el siguiente programa: Programa 1.6 l0: tb0ñwlp.s0.q X b1ñwlp.s1.qu if b0ÞÑ l1: twlp.s0.qu s0 b1ÞÑ l2: twlp.s1.qu s1 fi l3: tqu l

1.6.3

Propiedades de los transformadores

En la secci´on1.4.3se definieron ciertas propiedades de los transformadores de predicados en general (monoton´ıa, juntividad y continuidad) y vimos que los transformadores de predicados wlp y sp cumplen algunas de ellas. Estas propie- dades fueron definidas en el reticuladoPredpero, como veremos en el pr´oximo cap´ıtulo, pueden ser planteadas sobre otros reticulados y posets. Ya que PredL es tambi´en un reticulado y los transformadores WLP y SP son funciones sobre el mismo, veremos como estas propiedades se extienden naturalmente a este dominio.

Propiedades 1.19 (Transformadores SP y WLP) Dado un sistema de transicionesTS p. L,S,

τ

,Θq

• SP.

τ

es universalmente disyuntivo:

SP.

τ

.x” i :I.i: P.iy x” i :I.i: SP.

τ

.pP.iq y

para todo conjunto de ´ındicesI „ Γ y para todoP : ΓÑPredL. Por lo tanto es estricto (SP.

τ

.False False).

Esta propiedad indica que el transformador SP es distributivo con respecto a uniones arbitrarias de elementos en PredL. Con esta propiedad y la jerarqu´ıa dada en el teorema1.11se deduce que SP es tambi´en or-continuo y mon´otono.

1.6. TRANSFORMADORES DE PREDICADOS EN ST 27

• WLP.

τ

es universalmente conjuntivo:

WLP.

τ

.x“ i :I.i: P.iy x“i :I.i: WLP.

τ

.pP.iq y

para todo conjunto de ´ındicesI „ Γ y para todoP : ΓÑPredL. Por lo tanto es no interrumpible (WLP.

τ

.True True).

Esta propiedad indica que el transformador WLP es distributivo con res- pecto a intersecciones arbitrarias de elementos enPredL. Con esta propie- dad y la jerarqu´ıa dada en el teorema1.11se deduce que WLP es tambi´en

and-continuo y mon´otono. l

En la secci´on 1.4.3 (propiedades 1.12) vimos que los transformadores sp y wlp eran positivamente disyuntivos y conjuntivos respectivamente solo si la sentencia era determinista. Para extender esta propiedades a SP y WLP primero necesitamos definir este concepto en el marco de los sistemas de transiciones. Definici´on 1.20 (Determinismo)

Un sistema de transiciones TS p. L,S,

τ

,Θqser´a determinista cuando todas sus sentencias s P S sean deterministas (Card.s ¤ 1) y en toda locaci´on las sentencias en cada par de sus transiciones salientes tengan dominios disjuntos. Esto es, para todo par de transiciones distintas y con igual locaci´on de salida pl, s, l1qypl,s,˜ ˜lqse cumpleDom.sXDom.s˜ H.

Propiedades 1.21 (SP y WLP deterministas) Dado un sistema de transicionesTS p. L,S,

τ

,Θq

• SiTSes determinista, el transformador SP.

τ

es positivamente conjuntivo.

• Si TSes determinista, WLP.

τ

es positivamente disyuntivo. l

Todas estas propiedades pueden ser demostradas utilizando las propieda- des1.12y la definici´on de los transformadores.

A partir del ejemplo1.18puede vislumbrarse que las 3-uplas de Hoare pue- den extenderse a sistemas de transiciones. Por ejemplo la proposici´ontΘu

τ

tQu

puede interpretarse como Θ „ WLP.

τ

.Q . Al igual que con sp es posible uti- lizar el transformador SP para denotar esta misma proposici´on:

Propiedad 1.22 (SP WLP equivalencia)

Para todo sistema de transiciones TS p. L,S,

τ

,Θq y predicados P, Q se cumple:

P „ WLP.

τ

.Q SP.

τ

.P „ Q . l

De aqu´ı en adelante usaremos la notaci´ontPu

τ

tQupara indicar las condiciones booleanasP „ WLP.

τ

.Qo SP.

τ

.P „ Qindistintamente.

La dualidad entre los transformadores sp y wlp (propiedad 1.14) tambi´en tiene su correlato en el contexto actual:

Propiedad 1.23 (Dualidad SP y WLP)

Dado el sistema de transiciones TS p. L,S,

τ

,Θq, definimos la inversa del conjunto de transiciones

τ

como

28 CAP´ITULO 1. SISTEMAS DE TRANSICIONES para todo l, l1 PL ys PS (de forma intuitivamente el grafo de

τ

1 tiene los mismos nodos que

τ

, con las flechas en direcci´on opuesta y con las sentencias inversas).

Entonces se cumple:

SP.

τ

.P pWLP.

τ

1. Pq . l

La demostraci´on es directa por la propiedad1.14y la definici´on de los trans- formadores.