• No se han encontrado resultados

M´ etodo de demostraci´ on de invariancia

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 verifica

x @%, 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 desdeQ

SP.

τ

.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.P

62 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.True

De 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) :Bool

Bτ,P:xλX •P X WLP.

τ

.Xy; Bk:True; do Θ „ Bk^ pBk „ Bτ,P.Bkq Bk:Bτ,P.Bk od; returnΘ „ Bk

Una 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) :Bool

Fτ,Θ:xλX •Θ Y SP.

τ

.Xy; Fk:False; do Fk „ P^ pFτ,Θ.Fk „ Fkq Fk:Fτ,Θ.Fk od; returnFk „ P

Como 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].