teoria da computação verificaÇÃo de equivalÊncia forte de programas fabrício dias...
TRANSCRIPT
![Page 1: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/1.jpg)
Teoria da ComputaçãoVERIFICAÇÃO DE EQUIVALÊNCIA
FORTE DE PROGRAMAS
Fabrício Dias
UNIPÊ – Centro Universitário de João PessoaCurso de Ciências da Computação
![Page 2: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/2.jpg)
Agenda
Instruções rotuladas compostas Definições Operações Exemplo
![Page 3: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/3.jpg)
Instruções rotuladas compostas
Possuem apenas um formato, diferente das instruções rotuladas, que podem ter dois formatos: operação e teste.
![Page 4: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/4.jpg)
Instruções rotuladas compostas
Definição: Uma instrução rotulada composta, é uma seqüencia de símbolos da forma:
(Suponha F e G identificadores de operação e T identificador de teste)
r1 : Se T então faça F vá_para r2 senão faça G
vá_para r3
r2 e r
3 são ditos rótulos sucessores de r
1;
r1 é dito rótulo antecessor de r
2 e r
3.
![Page 5: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/5.jpg)
Instruções rotuladas compostas
Instrução rotulada Operação
r1: faça F vá_para r
2
Teste
r1: se T então vá_para r
2 senão vá_para r
3
Instrução rotulada composta r
1: se T então faça F vá_para r
2 senão faça G vá_para
r3
![Page 6: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/6.jpg)
Instruções rotuladas compostas
Definição: Um Programa Monolítico com Instruções Rotuladas Compostas P é um par ordenado P = (I, r) no qual: I = Conjunto das instruções Rotuladas Compostas, o qual
é finito; R = Rótulo inicial o qual distingue a instrução rotulada
inicial em I.
![Page 7: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/7.jpg)
Instruções rotuladas compostas
Observações: Não existem duas instruções diferentes
com um mesmo rótulo;
Rótulo Final é um rótulo referenciado por
alguma instrução o qual não é associado a
qualquer instrução rotulada.
![Page 8: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/8.jpg)
Instruções rotuladas compostas Definição:
Considerando-se um único identificador de teste,
uma instrução rotulada composta da forma:
r1: se T então faça F vá_para r
2
senão faça G vá_para r3
Pode ser abreviada para:
r1: (F, r
2) , (G, r
3)
T = verdade T = falso
![Page 9: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/9.jpg)
Instruções rotuladas compostas
Algoritmo: Fluxograma → Rotuladas Compostas
Os componentes elementares de partida, parada
e operação de um fluxograma são denominados
de Nó.
![Page 10: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/10.jpg)
Instruções rotuladas compostas
Algoritmo: Fluxograma → Rotuladas Compostas Algoritmo para traduzir um fluxograma P para um
programa monolítico P' constituído por instruções
rotuladas compostas:
Rotulação de nós Instruções rotuladas compostas
![Page 11: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/11.jpg)
Instruções rotuladas compostas
Rotulação de Nó Rotula-se cada nó do fluxograma Suponha que exista um único componente
elementar de parada, associado ao identificador ν (palavra vazia)
O rótulo correspondente ao nó partida é o Rótulo Inicial do programa P’.
![Page 12: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/12.jpg)
Instruções rotuladas compostas
A construção de uma instrução rotulada composta
parte do nó partida e segue o caminho do
fluxograma Teste
Operação
Parada
Testes encadeados
Testes encadeados em ciclos infinitos.
![Page 13: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/13.jpg)
Instruções rotuladas compostas
Teste: Para um teste, a correspondente instrução rotulada composta é:
r1: (F, r
2), (G, r
3)
![Page 14: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/14.jpg)
Instruções rotuladas compostas
Operação: Para uma operação, a correspondente instrução rotulada composta é:
r1: (F, r
2), (F, r
2)
![Page 15: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/15.jpg)
Instruções rotuladas compostas
Parada: Para uma parada, a correspondente instrução rotulada composta é:
r: (parada, ), (parada, )
![Page 16: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/16.jpg)
Instruções rotuladas compostas
Testes encadeados: No caso de testes encadeados, segue-se o fluxo até que seja encontrado um nó, resultando na seguinte instrução rotulada composta:
r1: (F, r2), (G, r3)
![Page 17: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/17.jpg)
Instruções rotuladas compostas
Teste encadeados em ciclos infinitos: Para um ciclo infinito determinado por testes encadeados, a correspondente instrução rotulada composta é:
r1: (F, r
2), (ciclo, ω)
Neste caso, deve ser incluída, adicionalmente, uma instrução rotulada composta correspondente ao ciclo infinito: ω: (ciclo, ω), (ciclo, ω)
![Page 18: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/18.jpg)
Instruções rotuladas compostas
Testes encadeados em ciclo infinito:
r1: (F, r2), (ciclo, ω)
![Page 19: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/19.jpg)
Instruções rotuladas compostas
Exemplo: Considere o programa monolítico especificado na
forma de fluxograma cujos nós já estão rotulados.
Definir o correspondente programa com
instruções rotuladas compostas.
![Page 20: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/20.jpg)
20
![Page 21: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/21.jpg)
21
Teste
![Page 22: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/22.jpg)
22
Teste
![Page 23: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/23.jpg)
23
Teste
![Page 24: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/24.jpg)
24
Teste
![Page 25: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/25.jpg)
25
Testes Encadeados em Ciclo Infinito.
![Page 26: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/26.jpg)
26
Teste
Parada
![Page 27: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/27.jpg)
27Operação
![Page 28: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/28.jpg)
28
![Page 29: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/29.jpg)
Instruções rotuladas compostas
Observações: O rótulo 2, 4, 7 e ω são sucessores deles mesmos
Existem dois caminhos no fluxograma que atingem o
nó parada. Entretanto, somente um é representado
no conjunto de instruções rotuladas compostas. O
segundo caminho é impossível
Na instrução rotulada por 7, ocorre um clico infinito.
![Page 30: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/30.jpg)
Equivalência forte de programas monolíticos
Equivalência forte: União disjunta A união disjunta de conjuntos garante que todos
os elementos dos conjuntos componentes constituem o conjunto resultante, mesmo que possuam a mesma identificação.
![Page 31: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/31.jpg)
Equivalência forte de programas monolíticos
Equivalência Forte: União disjunta Dados os conjuntos:
A = {a, x} e B = {b, x}. O conjunto resultante da união disjunta é:
{a, xA, b, xB}
![Page 32: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/32.jpg)
Equivalência forte de programas monolíticos
Equivalência forte: união disjunta Sejam:
Q = (IQ, q) e R = (I
R, r) dois programa monolíticos
especificados usando instruções rotuladas compostas ;
IQ
– instruções rotuladas compostas de Q
IR
– instruções rotuladas compostas de R
Pq = (I, q) e P
r = (I, r) programas monolíticos onde
I é o conjunto resultante da união disjunta de IQ e I
R.
Então: Pq ≡ P
R se, e somente se, Q ≡ R
![Page 33: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/33.jpg)
Equivalência forte de programas monolíticos
Definições Cadeia de conjuntos Cadeia finita de conjuntos Limite de cadeia finita de conjuntos
![Page 34: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/34.jpg)
Definições
Uma seqüência de conjuntos A0A
1... é dita:
1. uma Cadeia de Conjuntos se, para qualquer k ≥ 0: A
k A
k+1
2. uma Cadeia Finita de Conjuntos é uma cadeia de conjuntos onde existe n, para todo k ≥ 0, tal que: A
n = A
n+k
3. o Limite da Cadeia Finita de Conjuntos é: lim A
k = A
n
![Page 35: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/35.jpg)
Identificação de símbolos infinitos
Partir da instrução de parada, rotulada por , determinando os seus antecessores
Por exclusão, uma instrução que não é antecessor da parada determina um ciclo infinito.
![Page 36: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/36.jpg)
Algoritmo para identificação de ciclos infinitos
Seja I um conjunto de n instruções rotuladas compostas;
Seja A0A
1... uma seqüência de conjuntos de
rótulos indutivamente definida como segue: A
0 = { }
![Page 37: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/37.jpg)
Algoritmo para identificação de ciclos infinitos
Ak+1 = Ak {r | r é rótulo de instrução antecessora
de alguma instrução rotulada por Ak}
Então A0A1... é uma cadeia finita de conjuntos, e,
para qualquer rótulo r de instrução de I, tem-se que (I, r) ≡ (I, ω) se e somente se r lim A
k
![Page 38: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/38.jpg)
Algoritmo para identificação de ciclos infinitos
Considere o conjunto I de instruções rotuladas compostas abaixo:
![Page 39: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/39.jpg)
Algoritmo para identificação de ciclos infinitos
A correspondente cadeia finita de conjuntos é como se segue:
A0 = {} A1 = {6, } A2 = {5, 6, } A3 = {3, 4, 5, 6, } A4 = {1, 2, 3, 4, 5, 6, } A5 = {1, 2, 3, 4, 5, 6, }
Portanto: lim Ak = {1, 2, 3, 4, 5, 6, } ( IR , 7) = (I, ω), pois 7 lim Ak
![Page 40: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/40.jpg)
Algoritmo de simplificação de de ciclos infinitos
Seja I um conjunto finito de instruções rotulas compostas1. Determina-se a correspondente cadeia finita de
conjuntos A0A
1...
2. Para qualquer rótulo r de instrução de I tal que r lim A
k, tem-se que:
• a instrução rotulada por r é excluída;• toda referência a pares da forma (F, r) em I é substituída por
(ciclo, ω);
• I = I {ω: (ciclo, ω), (ciclo,ω )}
![Page 41: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/41.jpg)
Simplificação de ciclos infinitos
Considere a correspondente cadeia finita de conjuntos:
A0 = {} A1 = {6, } A2 = {5, 6, } A3 = {3, 4, 5, 6, } A4 = {1, 2, 3, 4, 5, 6, } A5 = {1, 2, 3, 4, 5, 6, }
Portanto: lim Ak = {1, 2, 3, 4, 5, 6, } ( IR , 7) = (I, ω), pois 7 lim Ak
![Page 42: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/42.jpg)
Simplificação de ciclos infinitos
Portanto, pode-se simplificar um conjunto de instruções rotuladas compostas eliminando qualquer instruções de r ≠ ω que determine um ciclo infinito.
1: (G,2), (F,3) 1: (G,2),(F,3)
2: (G,2), (F,3) 2: (G,2), (F,3)
3: (F,4), (G,5) 3: (F,4), (G,5)
4: (F,4), (G,5) 4: (F,4), (G,5)
5: (F,6), (ciclo, ω) 5: (F,6), (ciclo, ω)
6: (parada, ), (G,7) 6: (parada, ), (ciclo, ω)
7: (G,7),(G,7) ω: (ciclo,ω),(ciclo,ω)
ω: (ciclo, ω), (ciclo, ω)
![Page 43: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/43.jpg)
Equivalência Forte de Programas Monolíticos
Rótulos consistentes Seja I um conjunto finito de instruções rotuladas
compostas e simplificadas Sejam r e s dois rótulos de instruções de I, ambos
diferentes de .
![Page 44: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/44.jpg)
Rótulos consistentes
Suponha que as instruções rotuladas por r e s são da seguinte forma, respectivamente:
r: (F1, r
1), (F
2, r
2)
s: (G1, s
1), (G
2, s
2)
Então: r e s são consistentes se e somente se:
F1 = G1 e F2 = G2
![Page 45: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/45.jpg)
Rótulos equivalentes fortemente
Seja I um conjunto finito de instruções rotuladas compostas e simplificadas
Sejam r e s dois rótulos de instruções de I Então r e s são rótulos equivalentes
fortemente se e somente se: Ou r= s= ou r e s são ambos diferentes de e consistentes, ou
seja F1 = G
1 e F
2 = G
2
![Page 46: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/46.jpg)
Algoritmo para determinação de rótulos equivalentes fortemente
Seja I um conjunto de n instruções compostas e simplificadas
Sejam r e s dois rótulos de instruções de I Define-se, indutivamente, a seqüência de conjuntos
B0B1... por:
B0 = {(r, s)}
Bk+1
= {(r", s") | r" e s" são rótulos sucessores de r’ e s’,
respectivamente, (r’, s’) B
k e (r", s") B
i , i (0, 1, ..., k)}
![Page 47: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/47.jpg)
Algoritmo para determinação de rótulos equivalentes fortemente
Então B0B
1... é uma seqüência que converge
para o conjunto vazio, e r, s são rótulos equivalentes fortemente se, e somente se, qualquer par de B
k é constituído por rótulos
consistentes.
![Page 48: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/48.jpg)
Algoritmo de verificação da equivalência forte de programas monolíticos
Sejam Q = (IQ, q) e R = (IR, r) dois programas
monolíticos especificados usando instruções rotuladas compostas e simplificados
O Algoritmo de Verificação da Equivalência Forte de Programas Monolíticos Q e R é determinado pelos passos:
![Page 49: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/49.jpg)
Algoritmo de verificação da equivalência forte de programas monolíticos
Passo 1: Sejam Pq = (I, q) e P
r = (I, r) programas
monolíticos onde I é o conjunto resultante da união disjunta de I
Q e I
R, excetuando-se a instrução rotulada ,
se existir, a qual ocorre, no máximo, uma vez em I;
Passo 2: Se q e r são rótulos equivalentes fortemente, então B
0={(q, r)}. Caso contrário, Q e R não são
equivalentes fortemente, e o algoritmo termina.
![Page 50: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/50.jpg)
Algoritmo de verificação da equivalência forte de programas monolíticos
Passo 3: Para k ≥ 0, define-se o conjunto Bk+1
, contendo
somente os pares (q", r") de rótulos sucessores de cada (q', r') B
k, tais que:
q' ≠ r'; q' e r' são ambos diferentes de ; os pares sucessores (q", r") não são elementos de
B0, B1....BK.
![Page 51: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/51.jpg)
Algoritmo de verificação da equivalência forte de programas monolíticos
Passo 4: Dependendo de Bk+1
, tem-se que:
a) Bk+1 = { } : Q e R são equivalentes fortemente, e o
algoritmo termina;
b) ) Bk+1 ≠ { } : se todos os pares de rótulos de Bk+1 são
equivalentes fortemente, então vá para o Passo 3; caso contrário, Q e R não são equivalentes fortemente, e o algoritmo termina.
![Page 52: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/52.jpg)
Exemplo
Considere os programas monolíticos Q e R especificados na forma de fluxogramas. Determine se Q e R são equivalentes fortemente.
![Page 53: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/53.jpg)
Q
1: (G,2),(F,3)2: (G,2),(F,3)3: (F,4),(G,5)4: (F,4),(G,5)5: (F,6), (ciclo, ω)6: (parada, ), (ciclo, ω)ω: (ciclo, ω), (ciclo, ω)
Especificação do Programa P usando instruções rótuladas compostas.
![Page 54: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/54.jpg)
R 8: (G,9),(F,10)9: (G,9),(F,10)10: (F,10),(G,11)11: (F,12),(F,13)
12: (parada, ), (F,13)13: (F,13),(F,13)
![Page 55: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/55.jpg)
Equivalência Forte de Programas Monolíticos
A especificação do programa R usando instruções rotuladas compostas, tem-se:1. Conjunto de instruções rotuladas compostas
2. Identificação de ciclos infinitos
![Page 56: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/56.jpg)
Equivalência Forte de Programas Monolíticos
Identificação de ciclos infinitos:A0 = {}
A1 = {12, }
A2 = {11, 12, }
A3 = {10, 11, 12, }
A4 = {8, 9, 10, 11, 12, }
A5 = {8, 9, 10, 11, 12, }
Portanto: lim Ak = {8, 9, 10, 11, 12 , }
( IR , 13) = (I, ω), pois 13 lim Ak
![Page 57: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/57.jpg)
Equivalência Forte de Programas Monolíticos
b) A especificação do programa R usando instruções rotuladas compostas, tem-se:1. Conjunto de instruções rotuladas compostas
2. Identificação de ciclos infinitos
3. Simplificação de ciclos infinitos
![Page 58: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/58.jpg)
Equivalência Forte de Programas Monolíticos
Simplificação de ciclos infinitos:8: (G,9),(F,10)
9: (G,9),(F,10)
10: (F,10),(G,11)
11: (F,12),(ciclo, ω )
12: (parada, ),(ciclo, ω )
ω: (ciclo, ω ), (ciclo, ω )
8: (G,9),(F,10)9: (G,9),(F,10)10: (F,10),(G,11)11: (F,12),(F,13)
12: (parada, ), (F,13)13: (F,13),(F,13)
Não simplificado!
![Page 59: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/59.jpg)
Equivalência Forte de Programas Monolíticos
c) Relativamente à aplicação do algoritmo, tem-se que:
Passo 1: seja a união disjunta dos conjuntos IQ e IR, executando-se a instrução rotulada ω, como segue:
![Page 60: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/60.jpg)
Equivalência Forte de Programas Monolíticos
Passo 1:1: (G,2), (F,3)
2: (G,2), (F,3)
3: (F,4), (G,5)
4: (F,4), (G,5)
5: (F,6), (ciclo, ω)
6: (parada, ), (ciclo, ω)
8: (G,9), (F,10)
9: (G,9), (F,10)
10: (F,10), (G,11)
11: (F,12), (ciclo, ω )
12: (parada, ), (ciclo, ω )
ω: (ciclo, ω ), (ciclo, ω )
![Page 61: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/61.jpg)
Equivalência Forte de Programas Monolíticos
c) Relativamente à aplicação do algoritmo, tem-se que:
Para verificar se Q ≡ R é suficiente verificar se (I,1) ≡ (I,8).
![Page 62: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/62.jpg)
Equivalência Forte de Programas Monolíticos
c) Relativamente à aplicação do algoritmo, tem-se que:
Passo 2: como 1 e 8 são rótulos equivalentes fortemente, então:
B0 = {(1, 8)}
![Page 63: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/63.jpg)
Equivalência Forte de Programas Monolíticos
c) Relativamente à aplicação do algoritmo, tem-se que:
Passo 3 e 4: para k ≥ 0, construção de Bk+1 é como
se segue:
B1 = {(2, 9), (3, 10)} pares de rótulos equivalentes fortemente
B2 = {(4, 10), (5, 11)} pares de rótulos equivalentes fortemente
B3 = {(6, 12), (ω, ω)} pares de rótulos equivalentes fortemente
B4 = {(, )} pares de rótulos equivalentes fortemente
B5 = Ø
![Page 64: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/64.jpg)
Equivalência Forte de Programas Monolíticos
c) Relativamente à aplicação do algoritmo, tem-se que:
Logo (I,1) ≡ (I,8) e, portanto Q ≡ R.
![Page 65: Teoria da Computação VERIFICAÇÃO DE EQUIVALÊNCIA FORTE DE PROGRAMAS Fabrício Dias fabriciounipe@ig.com.br UNIPÊ – Centro Universitário de João Pessoa Curso](https://reader031.vdocuments.mx/reader031/viewer/2022013111/552fc0fb497959413d8b990f/html5/thumbnails/65.jpg)
Dúvidas????