Otra estrategia para probar la invariancia de un predicado puede derivarse to- mando la definici´on 2.15(p´ag. 47) desde otra perspectiva. Dado un predicado
P intentaremos encontrar un predicadoφtal que verifique
1. φ WLP.
τ
.φ y 2. φ P.Para corroborar si P es un invariante restar´ıa verificar Θ φ. Sin esta con- dici´on φ es solo un invariante inductivo candidato. Notar que esta condici´on ser´a necesaria si φes el predicado m´as d´ebil que verifica las condiciones 1 y2. Las mismas pueden conjugarse en una equivalente:
φ PXWLP.
τ
.φ ,por lo tanto lo que debemos encontrar es el predicadoφm´as d´ebil que cumpla esta ´ultima ecuaci´on. A partir de la parte derecha, definamos la funci´on sobre el reticuladopPredL, q
Bτ,P.X . P X WLP.
τ
.X ,de forma tal que la ´ultima ecuaci´on puede escribirse como
φ Bτ,P.φ .
Como PredL es un reticulado completo, haciendo el an´alisis dual del transfor- mador de propagaci´on hacia adelante podemos deducir que el m´aximo punto fijo de la ecuaci´on existe y es el m´aximo de los pos-puntos fijos deBτ,P:
ν.Bτ,P x
X :X Bτ,P.X: Xy .
por lo tanto el mismo es el invariante candidato que deseamos encontrar. A partir de este desarrollo introduciremos la siguiente definici´on y teorema.
54 CAP´ITULO 2. INVARIANTES Definici´on 2.21 (Propagaci´on hacia atr´as)
Dado un sistema de transicionesTS p. L,S,
τ
,Θqy un predicado P :PredL sobre el mismo definiremos el transformadorBτ,P :PredLÑPredL comoBτ,P.X . P X WLP.
τ
.X . lEste transformador es positivamente conjuntivo por lo que seg´un teorema 2.6
es[-continuo y mon´otono. Aunque WLP es universalmente conjuntivoBτ,P no
hereda esta propiedad ya queBτ,P.TrueP (es interrumpible).
El siguiente lema muestra que el m´aximo punto fijoν.Bτ,P es solo un inva-
riante inductivo candidato. Lema 2.22
Dado un sistema de transiciones TS p. L,S,
τ
,Θq, ν.Bτ,P es un invarianteinductivo candidato. l
Demostraci´on
ν.Bτ,P es pos-punto fijo deBτ,P.
{Definici´on de punto fijo}
ν.Bτ,P Bτ,P.pν.Bτ,Pq {Definici´on deBτ,P } ν.Bτ,P P X WLP.
τ
.pν.Bτ,Pq ñ {L´ogica de predicados} ν.Bτ,P WLP.τ
.pν.Bτ,Pq ñ {Definici´on2.12}ν.Bτ,P es un invariante inductivo candidato. l
Adem´as, este invariante inductivo candidato es el mayor (m´as d´ebil) de los incluidos en la propiedadP (m´as fuertes queP):
Lema 2.23
Dado un sistema de transiciones TS p. L,S,
τ
,Θq, ν.Bτ,P es el mayor inva-riante inductivo candidato m´as fuerte queP. l
Demostraci´on
Sea φ un invariante inductivo candidato del sistema tal que φ P. Por ser invariante inductivo candidato se cumple φ WLP.
τ
φ. Por lo tanto φ es un pos-punto fijo deBτ,P y comoν.Bτ,P es el m´aximo de los pos-punto fijos en-tonces es mayor queϕ. l
Este ´ultimo lema junto con la definici´on de invariante2.15(p´ag.47) muestran que a partir deν.Bτ,P solo se puede deducir queP es un invariante candidato.
El siguiente teorema agrega la condici´on necesaria para que el predicado sea un invariante:
Teorema 2.24
Dado un sistema de transiciones TS p. L,S,
τ
,Θq, un predicado P es inva- riante del mismo si y solo si se cumple Θ ν.Bτ,P. lDemostraci´on
La demostraci´on de este teorema se deriva de los lemas anteriores y el teore-
2.3. INVARIANTES Y PUNTOS FIJOS 55 Notar que a partir de este teoremaν.Bτ,P puede ser visto como el conjunto de
estados iniciales m´as d´ebil a partir del cual el predicadoP es invariante. De igual manera que con el m´ınimo punto fijo µ.Fτ,Θ el m´aximo punto fijo
ν.Bτ,P puede escribirse como el l´ımite de una cadena ya quePredLes un co-cpo:
µ.Bτ,P @ i :iP N: Bi τ,P.True D .
Vamos a denominar la secuencia en cuesti´on comoφ0, φ1, donde definimos
φn . Bnτ,P.True. Ver que con esta definici´onφn 1 Bτ,P.φn. Mostraremos
a partir de ella cual es el significado de aquel l´ımite. El primer elemento de la secuencia es el m´ınimo elementoTrue. Veamos el segundo:
φ1 { Definici´on deφ1 } Bτ,P.True { Definici´on deBτ,P } P X WLP.
τ
.True { WLP es no interrumpible} P X True{ Truees el mayor elemento del reticulado}
P
Por lo tanto el segundo elemento de la secuencia es el conjunto de configuraciones inicialesP. El tercer elemento esφ2P X WLP.
τ
.P lo cual nos muestra quees el conjunto de configuraciones que cumplenPy desde las cuales si el programa termina lo hace a alguna configuraci´on enP. El cuarto elemento de la secuencia es: φ3 { Definici´on deφ3 } Bτ,P.φ2 { Definici´on deBτ,P } P X WLP.
τ
.φ2 { Definici´on deφ2 } P X WLP.τ
.pP X WLP.τ
.Pq { Conjuntividad de WLP} P X WLP.τ
.P X pWLP.τ
q2.PCon lo cualφ3es conjunto de configuraciones que cumplenP y desde las cuales
si el programa termina en una o dos iteraciones lo hace hacia alguna enP. Puede demostrarse por inducci´on que
φn 1P X
@
i : 0 i¤n: pWLP.
τ
qi.P Dpor lo tantoφn 1es el conjunto de configuraciones que cumplenP y desde las
cuales si el programa termina durante n pasos de ejecuci´on lo hace a alguna enP. Como φnBnτ,P.True esta misma ecuaci´on puede escribirse como
Bn
τ,P.True
@
56 CAP´ITULO 2. INVARIANTES A partir de estas ecuaciones se puede ver que la secuencia forma una cadena descendente comenzando desdeTrue:
True
loomoon loooomoooon Bτ,Ppφ0q loooomoooon Bτ,Ppφ1q Bloooomoooon τ,Ppφ2q
φ0 φ1 φ2 φ3
El l´ımite de esta secuencia existe y es el conjunto de configuraciones desde las cuales si el programa termina en cualquier n´umero de iteraciones lo hace hacia alguna enP.
Cabe agregar que como los elementos de la secuencia son mayores al invarian- te inductivo candidatoν.Bτ,P, por definici´on2.15(p´ag.47) estos son invariantes
candidatos. Solo si se verifica Θ ν.Bτ,P ser´an adem´as invariantes a secas (no
necesariamente inductivos). Ejemplo 2.25
Bajo esta nueva perspectiva analicemos el mismo sistema de transiciones 2.1
(p´ag. 51). En este ejemplo intentaremos demostrar que la propiedadnN se cumple al finalizar el programa, es decirP r. True,True, nNses invariante del programa (nN se cumple enl2).
En este caso el predicadoφ0es el m´aximo del reticuladoTrueo utilizando la
notaci´on de listas φ0 rtrue,true,trues. El siguiente elemento φ1 de la cadena
esP como vimos en el desarrollo anterior. Calculemosφ2:
φ2
{Definici´on deφ2 yBτ,P }
P X WLP.
τ
.φ1{Resultado anterior sobreφ1 }
P X WLP.
τ
.P{Notaci´on enPredL como lista. Definici´on de WLP}
rtrue,true, nNs X rtrue, wlp.τ1.true X wlp.τ2.pnNq,trues
{Definici´on de wlp. wlp es no interrumpible}
rtrue,true, nNs X rtrue, trueX n¥N ñnN,trues {[enPredyPredL. Aritm´etica}
rtrue, n¤N, nNs
Este resultado muestra queφ2son las configuraciones desde las cuales durante
un paso de ejecuci´on se alcanza el conjunto de estados n N. Calculemos ahoraφ3:
φ3
{Definici´on deφ3 yBτ,P }
P X WLP.
τ
.φ2{Resultado anterior sobreφ2 }
P X WLP.
τ
.rtrue, n¤N, nNs{Notaci´on enPredL como lista. Definici´on de WLP} rtrue,true, nNs X
2.3. INVARIANTES Y PUNTOS FIJOS 57 { Definici´on de wlp}
rtrue,true, nNs X
rN ¥0, n N ñn 1¤N X n¤N,trues { L´ogica de predicados, aritm´etica}
rtrue,true, nNs X
rN ¥0, n¤N,trues { [enPredL }
rN ¥0, n¤N, nNs
Este resultado muestra que si comienzo el programa en alguna configuraci´on
N ¥0 si el programa termina en tres pasos lo hace enP. Calculemos ahoraφ4:
φ4
{ Definici´on deφ4 yBτ,P }
P X WLP.
τ
.φ3{ Resultado anterior sobreφ3 }
P X WLP.
τ
.rN ¥0, n¤N, nNs{ Notaci´on enPredL como lista. Definici´on de WLP}
rtrue,true, nNs X
rwlp.τ0.pn¤Nq,wlp.τ1.pn¤Nq X wlp.τ2.pnNq,trues
{ Demostraci´on anterior}
rN ¥0, n¤N, nNs
Por lo tanto φ4 φ3 con lo cual todos lo elementos de la cadena son iguales
aφ3 y hemos alcanzado el punto fijoν.Bτ,P:
ν.Bτ,P rN¥0, n¤N, nNs .
Para comprobar queP es un invariante resta verificar Θ ν.Bτ,P (sin esto P
es solo un invariante candidato) o en notaci´on de listas
rN ¥0,false,falses rN ¥0, n¤N, nNs
lo cual es claramente verdadero.
Por ´ultimo, con este resultado podemos anotar el programa 1.1 (p´ag. 18) con el nuevo invariante:
Programa 2.2 Programa 1.1anotado
l0: tN ¥0u n:0; l1: tn¤Nu don NÞÑ n:n 1 od l2: tnNu
58 CAP´ITULO 2. INVARIANTES Cabe remarcar que para realizar esta anotaci´on no fue necesario calcular el l´ımite de una cadena infinita, como lo hicimos en el ejemplo2.20(p´ag. 50), ya que enφ3se alcanza el punto fijo.