Escolar Documentos
Profissional Documentos
Cultura Documentos
Centro de Tecnologia
Departamento de Informática
MÉTODOS FORMAIS I
Notação Z
MÉTODOS FORMAIS
Baseados em conceitos matemáticos (matemática discreta, lógica, teoria dos
conjuntos, estruturas matemáticas (ex. grafos)).
Isto exige:
Trabalho cooperativo - envolvendo vários desenvolvedores, ou
vários grupos de desenvolvedores.
Decomposição do sistema em módulos (como dividir?).
Reutilização de módulos já desenvolvidos e testados.
Problemas a enfrentar:
Os clientes: (geralmente: 1) não sabem o que querem; 2) mudam
freqüentemente de idéia.).
Como implementar os requisitos do cliente:
Avaliação de hardware.
Avaliação das dificuldades para programação.
Avaliação da linguagem de programação.
Avaliação das necessidades de futuras modificações, etc.
MÉTODOS SEMI-FORMAIS
Análise estruturada (DFD,...) possui sintaxe formal, mas a descrição do
processo é informal.
Não descreve um modelo matemático do sistema.
MÉTODOS FORMAIS
Disciplina: Métodos Formais I 2
Prof. Airton Marco Polidório
Departamento de Informática Refinamentos
Universidade
RequisitosEstadual de Maringá esp.
Análise
da especifi- Implementação
cação
Informal formal
(elo fraco)
MF C
MF MF
Regras para gerar a descrição.
Regras de verificação.
Descreve um modelo matemático do sistema.
CARACTERÍSTICAS
1. BASEADOS EM MODELOS
3. BASEADOS EM LÓGICA
4. BASEADOS EM REDES
NOTAÇÃO Z
O que é?
? Número de elementos.
Disciplina: Métodos Formais I 4
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
? Tipo do dado (inteiro, real (precisão)).
? Valores máximos e mínimos.
? Média de uma lista vazia.
? Valor Médio, ? Mediana, ? Moda, ? Média Aritmética
(? simples, ? ponderada).
? Tipo do Resultado.
Sistema
ùýýAvgýýýýýý
Biblioteca
úx? : seq ¤
úa! : ¤
Base de dados ûýýýýýýýýý Base de dados
de livros ú length(x?) > 0 Û de usuários
ú a! = div(sum(x?), length(x?))
ú length(x?) = 0 Û
ú a! = 0
üýýýýýýýýý
Operador
NOTAÇÃO Z: Um exemplo
NOTAÇÃO Z: Um exemplo
ESPECIFICAÇÃO FORMAL
ùýýBibliotecaýýýýýý
úLivros
úLeitores
údisponivel: ¡COPIA
ûýýýýýýýýý
ú Õl: LEITOR × #(emprestado à {l}) < max_emprestimos
ú ran emprestado º leitor
üýýýýýýýýý
3. Inicialização do sistema
ùýýInitBibliotecaýýýýýý
úBiblioteca’
ûýýýýýýýýý
ú leitor’ = ¸
ú emprestado’ = ¸
ú disponivel’ = ¸
üýýýýýýýýý
4. Operações
ùýýEmprestimoýýýýýý
úóBiblioteca
úc? : COPIA
úl? : LEITOR
ûýýýýýýýýý
ú c? ³ disponivel
ú r? ³ leitor
ú emprestado’ = emprestadoÉ {c?§r?}
ú estoque’ = estoque
ú leitor’ = leitor
üýýýýýýýýý
NOTAÇÃO Z: Um exemplo
Disciplina: Métodos Formais I 8
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
ùýýMaximoEmprestadoýýýýýý
úôBiblioteca
úl? : LEITOR
úresp! : RESPOSTA
ûýýýýýýýýý
ú l? ³ leitor
ú #emprestado Ã{l?}=max_emprestimos
ú estoque’ = estoque
ú resp! = LeitorJaTemMax
üýýýýýýýýý
ùýýNaoRegistradoýýýýýý
úôBiblioteca
úl? : LEITOR
úresp! : RESPOSTA
ûýýýýýýýýý
ú l? ´ leitor
ú resp! = LeitorNaoRegistrado
üýýýýýýýýý
ùýýJaEmprestadoýýýýýý
úôBiblioteca
úc? : COPIA
úresp! : RESPOSTA
ûýýýýýýýýý
úc? ³ dom emprestado
ú resp! = CopiaEmUso
üýýýýýýýýý
ùýýQuemTemýýýýýý
úôBiblioteca
úc? : COPIA
úl? : LEITOR
ûýýýýýýýýý
ú c? ³ dom emprestado
ú l! = emprestado c?
üýýýýýýýýý
Exercícios
Métodos Formais I
Disciplina: Métodos Formais I 9
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
1. O que são e em que se baseiam os métodos formais aplicados à modelagem de sistemas?
2. Quais são os elementos mais comuns da matemática usados pelos métodos formais? Dê uma
definição, resumida, de cada um desses elementos.
3. Quais são as vantagens da aplicação de métodos formais na modelagem de sistemas?
4. Em que se baseia a notação Z?
5. Em Z, qual é a abstração mais geral quando se definem os tipos de dados?
6. Quais os significados da definição do Estado de um sistema?
7. O que é redundância quando se modela sistemas? (em que casos ela pode ser considerada um
benefício?)
8. Dentro da concepção de Z, o que significam: a) o produto cartesiano; b)relações e; c) funções.
Dê exemplos gráficos de cada um.
9. O que significa o termo: Abordagem Incremental de Z?
10. Discuta o termo: Mudança de Estado. Por que ele é necessário?
11. Qual a semântica de se incluir um esquema com a notação ô? E com a notação ó? Quais as
operações envolvidas em cada um desses casos? O que significam?
12. Faça um esboço gráfico fiel do estado Agenda do Sistema Agenda de Aniversário proposto por
Spivey.
2. Quais são os elementos mais comuns da matemática usados pelos métodos formais? Dê uma
definição, resumida, de cada um desses elementos.
Matemática discreta:
Teoria dos conjuntos
Conjunto, relações, funções, seqüências, ...
Cálculo de predicados
Lógica booleana, quantificadores, indução, ...
Estruturas Matemáticas
Grafos, árvores, ...
7. O que é redundância quando se modela sistemas? (em que casos ela pode ser considerada um
benefício?)
O termo redundância significa insistência na repetição. Quando se constrói o modelo matemático
de sistemas se utilizam símbolos que, individualmente, podem ter vários significados precisos (sem
ambigüidade entre si) em uma mesma cláusula. Alguns desses significados são observáveis
explicitamente outros, as vezes, são mais difíceis de serem vistos (e as vezes de serem entendidos).
Pode-se então, reescrever esses significados implícitos (redundância) de uma forma mais clara.
Nessas circunstâncias a redundância ajuda no entendimento da especificação do sistema.
Produto cartesiano, relações e funções são elementos da matemática discreta, mais precisamente
da teoria dos conjuntos. Por definição, conjunto é uma coleção de elementos não repetidos de
elementos não repetidos que têm pelo menos uma propriedade em comum. Na especificação de
sistemas é comum querermos relacionar elementos de dois conjuntos distintos. O produto
cartesiano, as relações e as funções são conjuntos de relacionamentos ( de pares ordenados), que
permitem construir uma ligação entre elementos, geralmente, incompatíveis.
Todo sistema é composto de objetos que representa o seu estado, de operações de entrada e saída
de valores e de operações que modificam esses valores. Assim, mudar o estado de um sistema
significa oferecer, ao sistema, a possibilidade de alterar o conteúdo dos valores que ele deve tratar
e manipular seja pela inserção de mais elementos (expansão), subtração de elementos (contração)
ou simplesmente pela alteração dos valores dos elementos existente (retificação)
11. Qual a semântica de se incluir um esquema com a notação ô? E com a notação ó? Quais as
operações envolvidas em cada um desses casos? O que significam?
Sobre o estado atual de um sistema pode-se realizar dois tipos de operações: 1) consultar o estado
atual e; 2) modificar o estado atual (expansão, contração ou retificação). O estado do sistema é
definido em um conjunto de esquemas o quais, dentro da visão de abordagem incremental, podem
ser incluídos dentro de outros esquemas. Quando um esquema S 1 é incluído em um esquema S
Disciplina: Métodos Formais I 12
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
precedido pela notação ó, ou seja óS1, significa que o esquema S1 será incluído duas
vezes no esquema S: uma vez com a decoração (’), significando o próximo estado de S 1 e, uma
outra vez sem a decoração (’), significando o estado atual de S 1. Isto permite consultar o estado
atual de S1 e gerar um novo estado de S 1 chamado S1’. Com a notação ô ocorre quase a mesma
coisa, exceto que na parte predicativa do esquema S é incluída a operação S1’ = S1, a qual
significa que o novo estado de S 1 gerado (S1’) é igual ao anterior (S1), não importado quais as
operações que S1 sofreu em S.
12. Faça um esboço gráfico fiel do estado Agenda do Sistema Agenda de Aniversário proposto por
Spivey.
PROPOSIÇÕES VALOR
7>3 TRUE
4=5 FALSE
{3, 4} {3, 4, 6} TRUE
O sol está brilhando ?
Um predicado é uma fórmula que, quando suas variáveis são associadas
com valores (de tipos apropriados) se transforma numa proposição
(depende da interpretação).
x >7
y=z–7
S1 S2
TABELA VERDADE
Os significados dos conectivos lógicos são definidos pela tabela verdade
P P
TRUE FALSE
FALSE TRUE
P Q P Q PQ PQ P Q
1. P (P)
2. P P P
3. P P P
4. P Q ((P) (Q))
5. P Q ((P) (Q))
6. R (P Q) (R P) (R Q)
7. R (P Q) (R P) (R Q)
8. P Q Q P
9. P Q Q P
10.P Q Q P
11.R (P Q) (R P) Q
12.R (P Q) (R P) Q
13.(P Q) (Q R) P R
14.(P Q) (Q P) P R
15.P Q P Q (P (Q))
16.P (P) TRUE
17.P (P) FALSE
18.P FALSE FALSE
19.P TRUE P
20.P FALSE P
21.P TRUE TRUE
22.P P P P P
NOTAÇÃO Z
Disciplina: Métodos Formais I 16
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
LÓGICA BOOLEANA E QUANTIFICADORES: REVISÃO
ALGUMAS DEFINIÇÕES
QUANTIFICADORES
Existencial –
Universal –
NOTAÇÃO Z
5. Seja “+” um operador lógico cujo significado é dado pela seguinte tabela verdade:
P Q P+Q
TRUE TRUE FALSE
TRUE FALSE TRUE
FALSE TRUE TRUE
FALSE FALSE TRUE
Dê uma expressão logicamente equivalente à P + Q
NOTAÇÃO Z
TEORIA DOS CONJUNTOS
CONJUNTO
Coleção de objetos distintos com propriedades em comum e sem ordem
definida.
Disciplina: Métodos Formais I 19
Prof. Airton Marco Polidório
Departamento de InformáticaA²B
Universidade Estadual de Maringá
1× a
b
2× c
{a, a, b} = {a, b}
{b, c, a} = {a, b, c}
B = {x: £ / x//2 = 0}
A²B = {(1, a), (1, b), (1, c), (2, a), (2, b), (2,
c)}
ou
A²B = {1§a, 1§b, 1§c, 2§a, 2§b, 2§c}
NOTAÇÃO Z
TEORIA DOS CONJUNTOS
NOTAÇÃO e TERMINOLOGIA
PERTINÊNCIA: a r b = a §b ³ r
Guimaraes Rosa escreveu Sagarana = Guimaraes Rosa §
Sagarana ³ escreveu
a: AUTOR; t: TITULO; a escreveu t
DOMÍNIO: dom r = {a: A/ Öb: B × a r b}
NOTAÇÃO Z
TEORIA DOS CONJUNTOS
onde A é o conjunto
IMAGEM: ran = { b: B / Öa: A × a r b} origem e B o conjunto
destino
AUTOR TITULO
escreve
u ran escreveu
A B
f
Disciplina: Métodos Formais I 21
Prof. Airton Marco Polidório
Origem Destino
Departamento de Informática
Universidade Estadual de Maringá
Origem Destino
INVERSA: r-1 = {a: A; b: B/ a r b × b§a}
OBS: como relações são conjuntos, pode-se ter relações vazias e ainda,
fazer operações de conjuntos (, , , , ...).
FUNÇÕES
Uma função (f) é uma relação que possui elementos de seu domínio
envolvidos em um único para ordenado.
A B
f : A©B
ran
dom f
f
Origem Destino
FUNÇÃO TOTAL (ª): Todos os elementos do conjunto origem fazem parte
do domínio da função (dom f = A).
A B
f : AªB
ran
dom f
f
Origem Destino
FUNÇÃO INJETORA PARCIAL («): elementos do conjunto destino
estão envolvidos, no máximo, com um par ordenado. Entretanto, nem todos
os elementos do conjunto origem pertencem ao domínio da função.
A B
f : A«B
ran
dom f
f
Origem Destino
NOTAÇÃO Z
A A A B B B
Disciplina: Métodos Formais I f :f A: BA®B
f : A¬B 23
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
ranran ran
dom
f f f
domdom
f
f f
Origem
OrigemOrigem Destino
DestinoDestino
TEORIA DOS CONJUNTOS
escreveu editou
NOTAÇÃO
Z
TEORIA DOS
CONJUNTOS
A B
Disciplina: Métodos Formais I f : A¯B 24
Prof. Airton Marco Polidório
Departamento de Informática
escreveu À editou
Universidade Estadual de Maringá
ran
dom f
f
Origem Destino
FUNÇÃO BIJETORA (¯): função que é injetora total e sobrejetora e total
(ran f = B) e (dom f = A) e (f-1 é ¯).
C
CÄ
escreveu
Origem Destino
NOTAÇÃO Z
TEORIA DOS CONJUNTOS
AUTOR escreve TITULO
u
Disciplina: Métodos Formais I A¨B 26
escreveu Å
Prof. Airton Marco Polidório C
Departamento de Informática
Universidade Estadual de Maringá
C
escreveu
escreve à C
AUTOR
Origem
Origem u TITULO
C
Destino
Destino
RESTRIÇÃO E SUBTRAÇÃO DO DOMÍNIO E DA
IMAGEM
LIVRO
FICÇÃO OUTROS
DECLARAÇÃO DE VARIÁVEIS
v : T;
v1, v2, ..., vn : T;
x, y : £;
x=1
x=2
y = {1}
DENOTAÇÃO
[ LEITOR ]
[ LIVRO ]
ou [LIVRO, LEITOR]
ENUMERAÇÃO
Ou
[YesNo]
yes : YesNo;
no : YesNo;
yes µ no
YesNo = {yes, no}
CONJUNTO POTÊNCIA
l : ¡LEITOR
Resto: a // b
TIPO NATURAL Exponenciação: a b, b³£
Operadores relacionais: ( =, <, >, µ, ã,
x : £; ä)
y : ¡£;
DEFINIÇÕES GENÉRICAS
EQUIVALÊNCIA SINTÁTICA (= =)
X ª Y = = {f: X © Y | dom f = X}
ESQUEMAS GENÉRICOS
DESCRIÇÃO AXIOMÁTICA
úDECLARAÇÕES
ûýýýýýýýýýýýýýýýýýýýýýý
úPREDICADOS
ú _~_ : £ ² £ ª £
ûýýýýýýýýýýýýýýýýýýýýýý 2 ~ 3 = 13
úÕx, y: £ × x~y = x2 + y2
ú £: ¡¤
ú_ + _, _ - _, ...: ¤ ² ¤ ª ¤
ú_ / _, _ // _: ¤ ² (¤ \ {0}) ª ¤
ú_< _, _ > _, ... :¤ ¨ ¤
ûýýýýýýýýýýýýýýýýýýýýýý
ú£ = {n: ¤ | n ä 0}
ú
ú Õx, y: ¤ | (Öp: £ | p µ 0 × x < y Û x + p = y)
OPERADORES
PREFIXO: -a, #A
INFIXO: a > b, a+b
POSFIXO: f a, R-1
ou
Diferente dos conjuntos, uma seqüência estabelece uma ordem para seus elementos.
Uma seqüência é uma função parcial que relaciona o conjunto dos números naturais com o
conjunto de objetos que se deseja ordenar (£©X).
O tipo de uma seqüência é sempre ¡(¡(¤ ² X)).
O primeiro elemento de uma seqüência deve ser o par ordenado 1 § x, exceto para uma
seqüência vazia.
Não pode haver “buracos” na numeração dos elementos de uma seqüência.
Todas as seqüências devem ser finitas.
s = = { 1 § c, 2 § l, 3 § a, 4 § s, 5 § s, 6 § e} é uma seqüência.
NOTAÇÃO
s = = Ïc, l, a, s, s, eÐ
t = = Ï1Ð
u = = ÏÐ
PROPRIEDADES
dom s = {1…6}
ran s = {c, l, a, s, e}
#s = 6; #t = 1; #u = 0
s 3 = a; t 1 = 1
NOTAÇÃO Z
SEQÜÊNCIAS
(seq)
Disciplina: Métodos Formais I 32
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
OPERADORES
head s = = s 1
tail s = = {i: 1 … #s-1 × i § s (i+1)}
last s = = s #s
front s = = {s \ {#s§ s #s}} ou {#s} Ä s
rev s = = {i: 1 … #s × i§s(#s+1-i)} ou {i: 1 … #s × (#s+1-i) § s i}
s Ê t = = s ¿ { i: 1 … #t × (#s+i)§ t i}
þÿÿÿ[X]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ú _ Ê _ : seq X ª seq X
ûýýýýýýýýýýýýýýýýýýýýýý
úÕs, t : seq X ×
ú s Ê t ¿ {n: dom t × n + #s § t(n)}
ú
üýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýý
þÿÿÿ[X]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ú rev : seq X ª seq X
ûýýýýýýýýýýýýýýýýýýýýýý
úÕs : seq X ×
ú rev s =(n: dom s × s( #s -n +1))}
ú
üýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýý
þÿÿÿ[X]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ú head, last : seq¦ X ª X
ú tail, front : seq¦ X ª seq X
ûýýýýýýýýýýýýýýýýýýýýýý
úÕs : seq¦ X ×
ú head s = s(1) Ù
ú last s = (s(#s) Ù
ú tail s = (n : 1 … #s-1 × s(n+1)) Ù
ú front s = (1 … #s-1) Â s
üýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýýý
seq¦ X = seq X \ {ÏÐ}
Exercícios
2. Considerando o problema 1), escreva um predicado que produza um conjunto que contenha todas as contas com
saldo negativo.
Disciplina: Métodos Formais I 33
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
3. Considerando o problema 1), escreva um predicado que produza um conjunto que contenha todas as contas
relacionadas por balanço.
4. Considerando o problema 1), suponha que o tipo [CLIENTE] contém dados de detalhes (cor dos olhos, cabelos,
altura, etc.) de todos os clientes e que este tem o seguinte relacionamento com NUMCONTA: detalhes:
NUMCONTA©CLIENTE. Formalize uma regra que obtenha todas as contas ativas para as quais os detalhes dos
clientes são os mesmos.
5. Considerando o problema 1) e 4), Se c: CLIENTE é um cliente particular, escreva uma expressão que obtenha
todos os números de conta associadas com c.
6. Suponha os tipos [HOMEM] e [OCASIAO], e seja d: HOMEM ¨ OCASIAO a relação que faz o mapeamento
das ocasiões em que os homens são enganados. Formalize a sentença: Os homens são sempre enganados, como:
a) Uma igualdade de conjunto.
b) Um quantificador universal
8. Suponha que PESSOA é um tipo com os seguintes membros: V, A, C, L, V y, E, Aa, D, W, G e N, e que com a
relação eh_pai_de: PESSOA¨PESSOA, construiu-se a seguinte árvore genealógica:
V A C L
Vy E Aa D
W N
Escreva o domínio e a imagem da relação eh_pai_de ilustrada acima.
þÿÿÿ[X]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
ú_ isperm _ : seq X ¨ seq X
ûýýýýýýýýýýýýýýýýýýýýýý
ú(Õs, t : seq X
ú × (s isperm t Ü
ú (#s = #t Ù
ú ( Öf: 1… #s ¬1… #s ×
ú ( Õn: 1… #s × s(f n) = t n)))))
üýýýýýýýýýýýýýýýýýýýýýýýýý
Requisitos esp.
Análise da Implementação
especificação
formal
Informal
(elo fraco)
MF C
MF MF
ESQUEMAS
VERTICAL
ùýý Nome ýýýýýýýýýýýýýýýýý As variáveis aqui
úDeclarações declaradas são locais a
ûýýýýýýýýýýýýýý este esquema. Existem
predicados implícitos.
úPredicados
üýýýýýýýýýýýýýýýýýýýýýýýýý
São expressões lógicas,
restrições e operações.
HORIZONTAL Existe um implícito ao
final de cada expressão.
- Nomes de Conjuntos;
- Nomes introduzidos por equivalência sintática;
- Nomes introduzidos por descrição axiomática;
- Nomes introduzidos por definições genéricas;
- Definição de novos esquemas Estes nomes são
considerados de
escopo global
pelo sistema.
[LIVRO, PESSOA]
LIVRO PESSOA
livros emprestadore
s
emprestado_para
na_estanteemprestados
NOTAÇÃO Z
ran
emprestado_para
Um esquema deve ser visto e entendido como tendo duas partes:
Disciplina: Métodos Formais I 37
Prof. Airton Marco Polidório
Departamento de Informática
Universidade Estadual de Maringá
- Uma parte estática, denominada estado, que contem tanto os nomes
locais (parte declarativa do esquema) e globais, bem como as restrições
sobre os mesmos (parte predicativa do esquema). (LEMBRE-SE: todos
os nomes declarados dentro de um esquema são locais ao esquema).
- Uma parte dinâmica, que é a semântica das operações que atuam sobre o
estado gerando um novo estado.
( ?, !, ’ )
nome: TIPO
nome1: TIPO1
nome2?: TIPO2
n1, n2’, n3?, n4!: TIPOX
AXIOMAS
ú PARTE DECLARATIVA
ûýýýýýýýýýýýýýý
ú PARTE PREDICATIVA
Exemplos:
ú n: £
ûýýýýýýýýýýýýýý
ú n = 30000
INCLUSÃO DE ESQUEMAS
Exemplo:
INCLUSÃO DE ESQUEMAS
NOTAÇÃO THETA ( ÷ )
Exemplo:
Eá E1 Ù E2 Conjunção
Eá E1 Ú E2 Disjunção
Eá E1 Þ E2 Pipe
Eá E1 À E2 Composição
NOTAÇÃO Z
E1 e E2 devem ter assinaturas compatíveis;
Os predicados de E1 e E2 passam a fazer parte dos
Disciplina: Métodos Formais I 44
predicados de E de forma conjuntiva (Ù);
Prof. Airton Marco Polidório
As saídas de E1(!) e as entradas de E2 (?) que se
Departamento de Informática E1 e E2 devem ter assinaturas compatíveis;
casam formam um canal de comunicação, através de
Universidade Estadual de Maringá Todas
um novoasnome
declarações de daE1
(escondido e E2 passam a ser
especificação);
declaradas em E;
As saídas e as entradas de E1e de E2 que não se
Os predicados
casam passam ade E1parte
fazer e E2dapassam a fazer
assinatura de E.parte dos
conjuntiva(Ù;
predicados de E de forma disjuntiva Ú);
ÁLGEBRA DE ESQUEMAS
CONJUNÇÃO
Eá E1 Ù E2
DISJUNÇÃO
Eá E1 Ú E2
PIPE
Eá E1 Þ E2
Pagemode
Linemode
Queue_by_group á Select_printer Þ Queue_file
pp1 <file1, file2, file3> pl1
<file6>
ùýý Queue_by_group ýýýýýýýýýý
pp2 <> pl2
úóPrinter
<>
úfile?: FILE
pp3 <file4,úgn?:
file5> GROUPNAME
ûýýýýýýýýýýýýýý
úgn? ³ dom printers
úprinters' = printers
ú( Öpn: PRINTERNAME × (pn ³ printers gn? Ù queue’ = queue É
ú {pn § (queue pn)Ê<file?>}))
ùýý Cadastro_okýýýýýý ùýý Cadastro_notokýýýýýý
üýýýýýýýýýýýýýýýýýýýýýýý
úóAgenda úôAgenda
ún?: NOME NOTAÇÃO ún?: Z
NOME
úd?: DATA úd?: DATA
úresp!: MENSAGEM
ESTUDO DE CASOS úresp!: MENSAGEM
ûýýýýýýýýýýýýýý ûýýýýýýýýýýýýýý
únome?
Disciplina: ´ conhecido
Métodos Formais I únome? ³ conhecido 46
úaniversario’
Prof. Airton Marco Polidório = aniversario úresp! = JA_CADASTRADO
¿
Departamento de Informática üýýýýýýýýýýýýýýýýý
ú Estadual de Maringá {n?§ d?}
Universidade
úresp! = OK
üýýýýýýýýýýýýýýýýý
Uma agenda de aniversário ( J. M. Spivey, 1989)
[NOME, DATA]
MENSAGEM ::= OK/ NAO_CONHECIDO/ JA_CADASTRADO
ùýý Agenda ýýýýýýýýýýýýýýýýý
úconhecido: ¡NOME
úaniversario: NOME © DATA
ûýýýýýýýýýýýýýý
úconhecido = dom aniversario
üýýýýýýýýýýýýýýýýýýýýýýýýý
NOTAÇÃO Z
Exercícios