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