• Nenhum resultado encontrado

7.2 REPARO DE REFINAMENTO BASEADO NO JOGO DO REFINAMENTO O reparo de refinamento baseado no jogo de refinamento consiste em modificar o modelo para que o duplicator continue a jogar. As mudan¸cas a serem aplicadas no modelo s˜ao determinadas pela informa¸c˜ao obtida das testemunhas de falha do jogo.

Defini¸c˜ao 7.2.1 (Testemunha de Falha). Seja M  pAPM, ΣM, SM, sM 0, RM, RM, LMq e

N  pAPN, ΣN, SN, sN 0, RN, RN, LNq dois KMTS tal que M ª N e o jogo de refinamento

RGM,N  pVS, VD, Eq e φ  v0v1...vwf uma partida em que o duplicator perde. O v´ertice

dwf ´e uma testemunha de falha.

´

E poss´ıvel ver que todas testemunhas de falhas n˜ao possuem arestas de sa´ıda pois, nestes v´ertices o duplicator n˜ao consegue jogar. A Proposi¸c˜ao 7.2.1 afirma que se n˜ao existe uma rela¸c˜ao de refinamento entre dois modelos ent˜ao existe um movimento do spoiler tal que, no pr´oximo turno, o duplicator n˜ao pode se mover, portanto existir´a, pelo menos, uma testemunha de falha.

Proposi¸c˜ao 7.2.1. Seja M  pAPM, ΣM, SM, sM 0, RM, RM, LMq e N  pAPN, ΣN,

SN, sN 0, RN, RN, LNq dois KMTS tal que M ª N e o jogo de refinamento RGM,N 

pVS, VD, Eq. Ent˜ao existe, pelo menos, uma testemunha de falha Dwf P VD, s P VS tal

queps, Dwfq P E , mas n˜ao existe s1 P VS tal que pDwf, s1q P E.

Demonstra¸c˜ao. Pelo Teorema 6.1.1 se M ª N ent˜ao existe, pelo menos, um partida finita onde o duplicator n˜ao pode se mover. Se o duplicator n˜ao pode se mover ent˜ao existe Dwf P VD tal que n˜ao existe uma aresta a partir Dwf para algum v´ertice sP VS.

Existe um padr˜ao nos tipos de arestas do jogo. O tipo de aresta que representa os movimentos do duplicator depende do tipo de transi¸c˜ao do ´ultimo movimento do spoiler. Dados dois modelos M e N e um jogo de refinamento RGM,N  pVS, VD, E1, E11, E2, E21q.

Se o spoiler move-se atrav´es de uma aresta E1 ent˜ao o duplicator se movimentar´a atrav´es

de uma aresta E11. Se o spoiler move-se atrav´es de uma aresta E2 ent˜ao o duplicator se

movimentar´a por uma aresta E21. Baseado neste fato, ´e poss´ıvel obter, de acordo com as defini¸c˜oes de jogo, o tipo de aresta que deveria existir para conectar uma testemunha de falha com outro v´ertice, permitindo que o duplicator continue jogando, evitando assim que ele perca.

Proposi¸c˜ao 7.2.2. Dados M e N tal que M ª N, o jogo de refinamento RGM,N 

pVS, VD, E1, E11, E2, E21q e ps, pq P E  E1 Y E2 onde p ´e uma testemunha de falha e

s1 P VS. ´E verdade que:

ˆ Seps, pq P E1 ent˜ao n˜ao existe pp, s1q P E11;

ˆ Seps, pq P E2 ent˜ao n˜ao existe pp, s1q P E21.

106 REPARO DE REFINAMENTO

Defini¸c˜ao 7.2.2 (Causa de Falha). Dados dois modelos M  pAPM, ΣM, SM, sM 0, RM, RM,

LMq e N  pAPN, ΣN, SN, sN 0, RN, RN, LNq tal que M ª N, o jogo de refinamento

RGM,N  pVS, VD, E1, E11, E2, E21q, uma aresta ps, pq P E  E1 Y E2 e uma testemunha

de falha p = psM, sNq. A causa de falha ´e definida por condi¸c˜oes existentes nos modelos

que s˜ao expressas por:

1. psN, a, s1Nq R RN _ LpsMq ¦ Lps1Nq se ps, pq P E1; ou

2. ps1N, a, sNq P RN seps, pq P E2.

Onde s1N ´e algum estado de SN.

A condi¸c˜aops, pq P E1 no Item (1) expressa que o spoiler jogou no modelo M movendo-

se para o estado sM. Ent˜ao, o duplicator deve jogar no modelo N a partir do estado sN

para algum estado s1N tal que LpsMq ¤ Lps1Nq. Todavia, n˜ao existe esta aresta porque

(sM, sN) ´e testemunha de falha. A condi¸c˜aops, pq P E2 no Item (2) expressa que o spoiler

jogou no modelo N, movendo-se do estado s1N para um estado sN. Ent˜ao o duplicator

deve jogar no modelo M, mas n˜ao existe um movimento poss´ıvel em M porque (sM, sN)

´

e uma testemunha de falha. Ent˜ao em ambos os casos, a transi¸c˜ao onde o spoiler joga ´e a causa da falha.

Proposi¸c˜ao 7.2.3. Dados M e N dois KMTS. Se M ª N ent˜ao existe, pelo menos, uma causa de falha no jogo de refinamentoRGM,N.

Demonstra¸c˜ao. De acordo com a Proposi¸c˜ao 7.2.1 se M ª N ent˜ao existe, pelo menos uma testemunha de falha no jogo de refinamento entre M e N e consequentemente, pela Defini¸c˜ao 7.2.2 existe pelo menos uma causa de falha.

A nega¸c˜ao da causa de uma falha cf indica o que deve ser verdade para prevenir que o duplicator perca o jogo na configura¸c˜ao que originou cf e esta express˜ao pode ser usada para definir um conjunto de mudan¸cas primitivas que podem ser aplicadas no modelo para remover cf .

Denotamos o conjunto de causas de falha de um jogo de refinamento RGM,N por

CFpM, Nq  tcf | cf ´e uma causa de falha do jogo de refinamento RGM,Nu.

Para qualquer causa de falha, ´e poss´ıvel mudar o modelo atrav´es de mudan¸cas primi- tivas para removˆe-la, como especificado na Proposi¸c˜ao 7.2.4.

Proposi¸c˜ao 7.2.4. Dados M  pAPM, ΣM, SM, sM 0, RM, RM, LMq e N  pAPN, ΣN,

SN, sN 0, RN, RN,LNq e uma causa de falha cf P CF pM, Nq tal que cf ´e originada da

aresta ps, pq onde p  pm, x, nq, com x P SM Y SN. Existe um conjunto de mudan¸cas

primitivas X tal que XpNq  N1 e cf R CF pM, N1q.

Demonstra¸c˜ao. Considere uma cf P CF pM, Nq. ´E suficiente aplicar mudan¸cas primitivas em N tal que os itens 1 ou 2 da Defini¸c˜ao 7.2.2 sejam satisfeitos:

1. pn, a, n1q R RN _ Lpm1q ¦ Lpn1q se ps, pq P E1: esta causa de falha ´e removida

7.2 REPARO DE REFINAMENTO BASEADO NO JOGO DO REFINAMENTO 107

condi¸c˜ao Lpm1q ¦ Lpn1q. Caso a restri¸c˜ao sobre o n´umero de classes de equivalˆencia dos estados do modelo M e o n´umero de estados do modelo N n˜ao seja satisfeita, ´

e poss´ıvel adicionar novos estados em SN, gerando SN1 . Para todo estado k P SN1 ´e

poss´ıvel modificar k atrav´es do conjunto XRLpm, kq tal que LMpmq ¤ XRLpm, kqpkq

seja verdade (Proposi¸c˜ao 7.1.4) e criar uma transi¸c˜ao pn, a, kq P RN (Proposi¸c˜ao 7.1.5);

2. pn, a, n1q P RN seps, pq P E2: ´e poss´ıvel usar a mudan¸ca primitiva do tipo RTpn, a, n1q

para remover a transi¸c˜ao de RN ou modificar a transi¸c˜ao com CTpn, a{b, n1q para algum b P ΣN e a b tal que pn, a, n1q R RN ´e satisfeita.

Assim, para qualquer cf P CF pM, Nq, existe, pelo menos, um conjunto de mudan¸cas primitivas que quando aplicadas em N fazem cf n˜ao ser satisfeita, isto ´e, remove cf do jogo de refinamento RGM,N.

Dados M  pAPM, ΣM, SM, sM 0, RM, RM, LMq e N  pAPN, ΣN, SN, sN 0, RN, RN,LNq,

o Algoritmo 11 mostra como construir todas as possibilidades de mudan¸ca primitiva para causas de falhas definidas pela condi¸c˜aopsN, a, s1Nq R RN _ LpsMq ¦ Lps1Nq se ps, pq P E1

da Defini¸c˜ao 7.2.2.

A ideia geral do algoritmo ´e baseada na Proposi¸c˜ao 7.2.4 e consiste em gerar todas as mudan¸cas que removam a causa de falha, isto ´e, gerar todas as mudan¸cas poss´ıveis que tornam a express˜ao psN, a, s1Nq P RN ^ LpsMq ¤ Lps1Nq verdadeira para algum s1N P SN.

Assim, a ideia do algoritmo ´e criar v´arios conjuntos de mudan¸cas, onde cada conjunto modifica N de forma que para um estado qualquer nP SN valepsN, a, nq P RN^LpsMq ¤

Lpnq. Existem trˆes casos que s˜ao considerados nesta ordem:

ˆ caso 1 (linhas 4-8): a transi¸c˜ao j´a existe mas, o estado de destino n˜ao ´e um re- finamento de literal e neste caso os conjuntos de mudan¸cas gerados contˆem tanto as mudan¸cas para fazer o estado de destino ser um refinamento de literal atrav´es da fun¸c˜ao XRL (linha 5) quanto o conjunto de poss´ıveis mudan¸cas que removem

(linha 6) ou alteram a a¸c˜ao da transi¸c˜ao j´a existente (linha 7). Esta altera¸c˜ao ou remo¸c˜ao ´e realizada para que a transi¸c˜ao com a a¸c˜ao deseja possa ser criada para outro estado;

ˆ caso 2 (linhas 9-15): a restri¸c˜ao sobre a quantidade de classes de equivalˆencia e a quantidade de estados no modelo a ser modificado n˜ao ´e satisfeita e ent˜ao um novo estado pode ser adicionado. Caso a transi¸c˜ao com a a¸c˜ao a j´a exista, as mudan¸cas primitivas para alterar ou remover a transi¸c˜ao s˜ao combinadas com as mudan¸cas para fazer LMpsMq ¤ LNpnq (linha 21); e

ˆ caso 3 (linhas 16-21): para cada estado n P SN s˜ao geradas combina¸c˜oes para

adicionar a transi¸c˜ao e alterar n para que ele seja um refinamento de literal do estado sM. Caso a transi¸c˜ao com a a¸c˜ao a j´a exista, as mudan¸cas primitivas para alterar ou

remover a transi¸c˜ao s˜ao combinadas com as mudan¸cas para fazer LMpsMq ¤ LNpsq

108 REPARO DE REFINAMENTO

Algoritmo 11: PossiveisMudancasParaResolverCausaDeFalhaI

Data: Dois KMTS M  pAPM, ΣM, SM, sM 0, RM, RM, LMq e N  pAPN, ΣN,

SN, sN 0, RN, RN,LNq e a causa de falha cf do tipo

psN, a, s1Nq R RN _ LMpsMq ¦ LNps1Nq

Result: Um conjunto X de conjuntos de mudan¸cas primitivas X tX | XpNq  N1 e cf R CF pM, N1qu

1 begin 2 XÐÝ H

3 mudancasP araAlterarOuRemoverT ransicao ÐÝ H 4 if psN, a, s1Nq P RN then

5 XÐÝ X Y tXRLpsM, s1Nqu

6 mudancasP araAlterarOuRemoverT ransicao ÐÝ tRTpsN, a, s1Nqu 7 for q P ΣM e q  a do

8 mudancasP araAlterarOuRemoverT ransicao ÐÝ tCT psN, a{q, s1Nqu 9 if | SM{EM | ¡ | SN | then

10 n ÐÝ criaNovoEstadopq 11 if psN, a, s1Nq R RN then

12 XÐÝ X Y tASpnq, AT psN, a, nq, XRLpsM, nqu 13 else

14 for xP mudancasP araAlterarOuRemoverT ransicao do 15 XÐÝ X Y tx, ASpsq, AT psN, a, nq, XRLpsN, a, squ 16 for sP SN do

17 if psN, a, s1Nq R RN then

18 XÐÝ X Y tAT psN, a, sq, XRLpsM, a, squ 19 else

20 for xP mudancasP araAlterarOuRemoverT ransicao do 21 XÐÝ X Y tx, AT psN, a, sq, XRLpsM, a, squ