2.3 Invariantes y puntos fijos
2.3.4 M´ etodo de demostraci´ on de invariancia
En el ejemplo2.25vimos como la invariancia de un predicado puede ser demos- trada calculando el punto fijoν.Bτ,P si la secuenciatBτi,P.Trueui¥0converge. A
continuaci´on mostraremos la validez del m´etodo desde otra perspectiva que lo relaciona al principio de inducci´on. Esto nos permitir´a derivar su implementa- ci´on adem´as de explorar las limitaciones que posee.
La definici´on2.10conceptualiza la noci´on de invariante como un predicado que se cumple en todas las configuraciones durante la ejecuci´on de un programa: dado un sistema de transicionesTS p. L,S,
τ
,Θqun predicadoPes invariante cuando se verificax @%, l, σ :%PJTSK^pl, σq Pρ: P.l.σy .
Definamos de forma inductiva el conjunto de predicados C :PredL ÑBool como la menor conjunto tal que
1. ΘPC,
2. X PC entonces SP
τ
.XPC.Por lo visto en la secci´on1.7(p´ag.28) el predicado SP.
τ
.Qpuede ser interpre- tado operacionalmente como el conjunto de configuraciones alcanzables en un paso de ejecuci´on desdeQSP.
τ
.X pl1, σ1q | @Dl, σ :X.l.σ: pl, σq;pl1, σ1qD( ,por lo tanto para demostrar la invariancia de P como fue conceptualizada en la definici´on2.10se puede probar que el predicado contiene todos los conjuntos definidos enC, esto es
x @X :X PC: X Py .
El conjunto C junto con la relaci´on lineal X R Y . SP.
τ
.X Y es bien fundado por lo que se puede probar la propiedad anterior por inducci´on:x @X :XPC: X Py
ð {Inducci´on}
Θ P^ x @X :X PC: X P ñSP.
τ
.X Py{Dualidad SP/WLP, propiedad1.22(p´ag.27)}
Θ P^ x @X :X PC: X P ñX WLP.
τ
.Pyð {Monoton´ıa}
2.3. INVARIANTES Y PUNTOS FIJOS 61 De esta forma, a partir del principio de inducci´on se puede deducir la siguiente regla para probar invariancia:
Θ P^P WLP.
τ
.P ñ lP .Notar que esta regla impone justamente las condiciones para queP sea un inva- riante inductivo (definici´on2.12) lo cual no siempre sucede (ver ejemplo2.25). Adem´as esta regla muestra cierta analog´ıa con el principio de inducci´on ma- tem´atica: para probar la invariancia de un predicadoϕprimero se debe probar el caso base Θ ϕ con el cual ϕ se cumple inicialmente y el paso inductivo
ϕ WLP.
τ
.ϕindica que si el predicado se verifica en alg´un paso de ejecuci´on, entonces se satisface en el siguiente. Por esto mismo llamamos a ϕ invariante inductivo.A partir de este desarrollo deduciremos una regla nueva para probar invarian- cia en base a otro principio de inducci´on denominadoinducci´on k ok-inducci´on. En el mismo se fortalece el caso base y se debilita el paso inductivo: dado un natural k fijo, si quiero probar la validez de cierta propiedad P.i para todo natural i primero se prueba P.0^ ^P.pk1q (casos bases) y, suponiendo
P.j^ ^P.pj k1qse demuestraP.pj kq. Formalmente: x @i : 0¤i: P.iy
ð { k-inducci´on}
x @i : 0¤i k: P.iy
^ x @i : 0¤i: x @j :i¤j i k: P.jy ñP.pi kq y
Notar que cuandok1 es el principio de inducci´on est´andar.
De igual manera, este principio de inducci´on puede utilizarse para obtener una regla de demostraci´on de invariancia:
x @X :X PC: X Py ð { k-inducci´on} @ @i : 0¤i k: pSP.
τ
qi.Θ PD ^ x @X@:X PC : @i : 0¤i k: pSP.τ
qi.X PDñ pSP.τ
qk.X PD{ Dualidad SP WLP, propiedad1.22(p´ag.27)}
@ @i : 0¤i k: Θ pWLP.
τ
qi.PD ^ x @X@:X PC : @i : 0¤i k: X pWLP.τ
qi.PDñX pWLP.τ
qk.PD { C´alculo de predicados} Θ @ i : 0¤i k: pWLP.τ
qi.PD ^ x @X :X PC : X @ i : 0¤i k: pWLP.τ
qi.PDñX pWLP.τ
qk.P D ð { Monoton´ıa } Θ @ i : 0¤i k: pWLP.τ
qi.PD ^@ i : 0¤i k: pWLP.τ
qi.PD pWLP.τ
qk.P62 CAP´ITULO 2. INVARIANTES {Monoton´ıa } Θ @ i : 0¤i k: pWLP.
τ
qi.PD ^@ i : 0¤i k: pWLP.τ
qi.PD @ i : 0¤i k 1 : pWLP.τ
qi.PD {Caracterizaci´on deBn τ,P.True(p´ag.55)} Θ Bk τ,P.True ^Bk τ,P.True B k 1 τ,P.TrueDe esta forma, a partir del principio dek-inducci´on se puede deducir la siguiente regla para probar invariancia:
Θ Bk τ,P.True^B k τ,P.True B k 1 τ,P.True ñ lP .
Notar que la condici´on Bk
τ,P.True B k 1
τ,P.True indica que la secuencia
tBi
τ,P.Trueui¥0 converge en k pasos a Bkτ,P.True. Adem´as esta condici´on es
equivalente a Bk
τ,P.True WLP.
τ
.pB kτ,P.Trueq ^B k
τ,P.True P y junto con
la condici´on Θ Bk
τ,P.Truese deduce queB k
τ,P.Truees un invariante inductivo
m´as fuerte queP. Si esto sucede diremos queP es unk-invariante. Es f´acil de ver que siP esk-invariante entonces tambi´en esm-invariante para todom¥k. A partir de este resultado podemos derivar el siguiente m´etodo de demostra- ci´on de invariancia: parakdesde 0 intentamos verificar siP es unk-invariante. Si la condici´on Θ Bk
τ,P.True(caso basek-inductivo) no es verdadera se puede
concluir quePno es invariante ya que entonces tampoco lo ser´a Θ ν.Bτ,P (re-
cordar queν.Bτ,P Bτk,P.Trueya que es l´ımite de la cadena descendente) y no
se cumplir´a la condici´on del teorema2.24. Si esta condici´on se cumple entonces se procede a verificar Bk
τ,P.True B k 1
τ,P.True (paso k-inductivo). Si esta pro-
posici´on es verdadera el m´etodo termina concluyendo queP es un k-invariante. Si no se cumple se procede a intentar demostrar si P es un pk 1q-invariante inductivo. El m´etodo se puede esquematizar con el programa2.3.
Programa 2.3 Demostraci´on dek-invariancia
es invariante (P, Θ :PredL ;
τ
:TranL,S) :BoolBτ,P:xλX •P X WLP.
τ
.Xy; Bk:True; do Θ Bk^ pBk Bτ,P.Bkq Bk:Bτ,P.Bk od; returnΘ BkUna pregunta importante es si el m´etodo termina para cualquier sistema de transiciones e invariante candidato P. Claramente, esto es equivalente a pre- guntarnos si existe alg´unktal que pork-inducci´on se puede demostrar la inva- riancia. Suponiendo que poseemos m´etodos de decisi´on completos para resolver las relaciones de orden entre los predicados de la guarda del bucle, las causas
2.3. INVARIANTES Y PUNTOS FIJOS 63 de terminaci´on son la no verificaci´on de la condici´on Θ Bk
τ,P.Trueen el caso
quePno sea invariante, o la verificaci´on deBk
τ,P.True B k 1
τ,P.Truepara el caso
que lo sea. Analicemos el primer caso: supongamos queP no es invariante y se cumple@@k : 0¤k: Θ Bk
τ,P.True
D .
Comenzando de esta ´ultima suposici´on obtenemos la siguiente equivalencia. @ @k : 0¤k: Θ Bk τ,P.True D { C´alculo de predicados} Θ @ k : 0¤k: Bk τ,P.True D { Caracterizaci´on deν.Bτ,P } Θ ν.Bτ,P { Teorema2.24} lP
Con lo cual hemos llegado a una contradicci´on. A partir de este razonamiento por el absurdo se puede concluir que existek tal que no se cumple Θ Bk
τ,P.True
y esto quiere decir que en el caso queP no sea invariante el m´etodo termina. La otra posibilidad es que el m´etodo no termine debido a que nunca se cumple la condici´onBk
τ,P.True B k 1
τ,P.True para todokya que la cadena des-
cendentetBi
τ,P.Trueui¥0 es infinita. Lamentablemente esto puede suceder a´un
para sistemas de transiciones muy simples. El programa2.4 es un ejemplo de este fen´omeno.
Programa 2.4 Contraejemplo de terminaci´on
tn 1u l0: don¡0ÞÑ n:n1 od l1: tn0u l0 tn 1u l1 n¤0ÞÑskip n¡0ÞÑn:n1
Sobre el mismo se puede calcularBk
τ,P.True: Bτ,P.True rTrue, n0s B2 τ,P.True rn0, n0s B3 τ,P.True rn0^n1, n0s B4 τ,P.True rn0^n1^n2, n0s .. .
Se puede demostrar por inducci´on que Bk 1
τ,P.True rn 0 _ n¥k, n 0s.
Todos los elementos de esta secuencia son implicados por Θ r. n 1, Falses pero la secuencia no converge en un n´umero finito de pasos y su ´ınfimo es rn 0, n0s(n0 al terminar es invariante).
64 CAP´ITULO 2. INVARIANTES En el desarrollo de esta secci´on nos hemos enfocado en el m´etodo para pro- bar invariancia basado en el transformador de propagaci´on hacia atr´as. Como se mostr´o en el ejemplo2.20tambi´en es posible utilizar el transformador de pro- pagaci´on hacia adelante para calcular el m´ınimo punto fijoµ.Fτ,Θ. El m´etodo
es esquematizado en el programa2.5.
Programa 2.5 M´etodo utilizando propagaci´on hacia adelante es invariante1 (P, Θ :PredL ;
τ
:TranL,S) :BoolFτ,Θ:xλX •Θ Y SP.
τ
.Xy; Fk:False; do Fk P^ pFτ,Θ.Fk Fkq Fk:Fτ,Θ.Fk od; returnFk PComo veremos el m´etodo puede ser implementado tambi´en con el pro- grama 2.3 en la forma es invariantep Θ, P,
τ
1q: reemplazando P, Θ yτ
por Θ, P yτ
1 en aquel programa, el c´alculo de Bτ1, Θ.X es
equivalente a calcular Fτ,Θ. X (por teorema 2.27), por lo que la varia-
ble Bk almacenar´a Fk. De esta manera el programa anterior calcular´a la
misma cadena negada. Adem´as, con estos remplazos la guarda del bucle es p Pq Bk^ pBk Bτ1, Θ.Bkq lo cual, mediante el razonamiento ante-
rior, es equivalente a Fk P^ pFτ,Θ.Fk Fkq. De tal forma, la dualidad
de los m´etodos es corroborada por el anterior teorema 2.27 obteniendose la siguiente equivalencia:
es invariante1pP,Θ,
τ
q es invariantep Θ, P,τ
1q .El ´ultimo m´etodo tiene la ventaja de poder obtener el invariante m´as fuerte del sistema de transiciones independientemente de la propiedadP que se quiera verificar: si ya obtuvimos el invarianteµ.Fτ,Θ, este puede reutilizarse para pro-
bar la invariancia de cualquier propiedadP1 verificando la validez de la implica- ci´onν.Fτ,Θ P1. Aunque el m´etodo parece promisorio, su principal desventaja
es que el c´alculo del transformador SP involucra la aparici´on de cuantificadores existenciales al ser aplicado a asignaciones guardadas no invertibles1, como se muestra en el ejemplo1.3(p´ag.11). Esto complica la demostraci´on autom´atica de las implicaciones que aparecen en el m´etodo como se explica en [TRSS01]. Cuando se utiliza la propagaci´on hacia atr´as este fen´omeno no aparece debido a la eliminaci´on que se produce del cuantificador universal al ser aplicado sobre este tipo de sentencias (como vimos en el ejemplo1.5, p´ag.12).
Otra debilidad del m´etodo es que suele no converger en casos donde el m´etodo de propagaci´on hacia atr´as si lo hace. Esto se debe a que por lo general los programas no alcanzan todos los estados posibles en una cantidad finita de iteraciones. El fen´omeno es mostrado en los ejemplos 2.20 y 2.25 y adem´as es confirmado en [BBM97]. Por lo tanto para su implementaci´on efectiva se 1Como vimos en la secci´on1.5.2 (p´ag. 21) estas sentencias caracterizan los sistemas de
2.3. INVARIANTES Y PUNTOS FIJOS 65 hace necesaria la aplicaci´on de t´ecnicas de interpretaci´on abstracta que ser´an explicadas en el cap´ıtulo siguiente. Por estas razones nuestro trabajo emplea principalmente el primer m´etodo.
Cap´ıtulo 3
Generaci´on de invariantes
lineales
Como vimos en el cap´ıtulo anterior la secuenciatFi
τ,Θ.Falseui¥0suele ser infini-
ta por lo que el m´etodo esquematizado en el programa2.5puede no terminar. Una forma posible de atacar este problema es por medio de la teor´ıa deInter- pretaci´on Abstracta [CC77,CC92]. A grandes rasgos esta base te´orica presenta distintos marcos de trabajo con los cuales se aproxima la sem´antica de strongest postcondition presentada en la secci´on1.6(p´ag. 22) mediante transformadores sobre otros dominios distintos a PredL. De esta manera se lleva el problema a dominios donde existen procedimientos que permiten obtener propiedades de forma autom´atica. A continuaci´on explicaremos el marco de trabajo utilizado dentro de la teor´ıa general de interpretaci´on abstracta. Un resumen y an´alisis de todos los marcos de interpretaci´on abstracta puede encontrarse en [CC92].