A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Conjuntos (continuação) Notação –Os operadores de conjunto (união, interseção, etc.) serão introduzidos através de definições axiomáticas na linguagem.

Apresentações semelhantes


Apresentação em tema: "1 Conjuntos (continuação) Notação –Os operadores de conjunto (união, interseção, etc.) serão introduzidos através de definições axiomáticas na linguagem."— Transcrição da apresentação:

1 1 Conjuntos (continuação) Notação –Os operadores de conjunto (união, interseção, etc.) serão introduzidos através de definições axiomáticas na linguagem Z –Forma geral de uma definição axiomática –onde T é uma variável de tipo que possibilita definições polimórficas declaração predicado [T][T]

2 2 União n Definição _  _: [P X  [P X  [P X  S, T : [P X. S  T = {x:X | x  S  x  T} [X][X] n Teoremas S  S = S idempotência S  T = T  S comutatividade S  (T  R) = (S  T)  R associatividade S  {} = S elemento neutro S  (S  T)

3 3 Interseção n Definição _  _: [P X  [P X  [P X  S, T : [P X. S  T = {x:X | x  S  x  T} [X][X] n Teoremas S  S = S idempotência S  T = T  S comutatividade S  (T  R) = (S  T)  R associatividade S  {} = {} elemento nulo (S  T)  S S  (T  R) = (S  T)  (S  R) distributividade S  (T  R) = (S  T)  (S  R) distributividade

4 4 Diferença n Definição _\_: [P X  [P X  [P X  S, T : [P X. S \ T = {x:X | x  S  x  T} [X][X] n Teoremas S \ S = {} S \ {} = S {} \ S = {} (S \ T) \ R = S \ (T  R) (S \ T)  S (S  T) \ R = (S \ R)  (T \ R) (S  T) \ R = (S \ R)  (T \ R)

5 5 União Distribuída n Generalização da união binária para um número arbitrário de conjuntos   {S1, S2,..., Sn} = S1  S2 ...  Sn n Exemplos   {{1,2,3}, {2,3,4}, {5,6}} = {1,2,3,4,5,6}   {{1}} = {1}   {{}} = {}

6 6 União Distribuída n Definição   : [P ([P X)  [P X   SS : [P ([P X).  SS = {x:X |  S : SS. x  S} [X][X] n Teoremas   {} = {}   {S,T} = S  T     (SS  TT) = (  SS)  (  TT)   (  SS) \ T =  {S : SS. S \ T}   SS  TT  (  SS)  (  TT)

7 7 Interseção Distribuída n Generalização da interseção binária para um número arbitrário de conjuntos   {S1, S2,..., Sn} = S1  S2 ...  Sn n Exemplos   {{1}, {1,2}, {1,2,3}} = {1}   {{1},{1,2},{2,3}} = {}   {{1}} = {1}

8 8 Interseção Distribuída n Definição   : [P ([P X)  [P X   SS : [P ([P X).  SS = {x:X |  S : SS. x  S} [X][X] n Teoremas   {S,T} = S  T     (SS  TT) = (  SS)  (  TT)   S \ (  TT) =  {T : TT. S \ T}   SS  TT  (  TT)  (  SS)

9 9 Uma especificação usando conjuntos n Controle de acesso de pessoas a um local (por exemplo, sala de aula) n Operações –Inicialização (inicialmente não há pessoas) –Inclusão (chegada de uma nova pessoa) –Remoção (saída de uma pessoa) –Consulta (verifica se ausente/presente) n Restrição –Máximo de 50 pessoas na sala

10 10 Uma especificação usando conjuntos: estrutura de um solução imperativa program Controle_Acesso type Pessoa =... type Mensagem = ausente | presente; var s : set Pessoa; const lim = 50; procedure init ()... s = {}... procedure inclusao(p: Pessoa)... if (lim < 50) and (p  s) then s = s  {p}... procedure exclusao(p: Pessoa)... if p  s then s = s \ {p}... procedure consulta(p: Pessoa; m: Mensagem)... if p  s then m = presente else m = ausente...

11 11 Em Z... n Deve-se abstrair da representação de alguns tipos que modelam entidades básicas (como Pessoa). Isto é feito introduzindo-se apenas um nome para o tipo, entre colchetes, sem uma definição –Exemplo: [Pessoa] n Constantes são introduzidas como em linguagens de programação –Exemplo: lim == 50 n Tipos enumerados são semelhantes aos datatypes de programação funcional –Exemplo: Msg ::= ausente | presente

12 12 Em Z... n As variáveis globais, juntamente com as restrições sobre valores que estas podem assumir, formam o estado do sistema e são declaradas dentro de uma estrutura denominada esquema –Exemplo: Estado s : |P Pessoa # s  lim

13 13 Em Z... n Como variáveis em lógica não podem ser atribuídas, faz-se necessária uma convenção para representar a mudança de estado. Em Z, usa-se o símbolo ’ no final do nome da variável –Exemplo: s’ = s \ {p} n Quando o símbolo é usado em um nome de esquema, este é adicionado a todas as variáveis –Exemplo: Estado´ corresponde ao esquema Estado’ s’ : |P Pessoa # s’  lim

14 14 Em Z... n A inicialização define os valores iniciais das variáveis de estado e devem usar o ’ para indicar a atribuição de valor –Exemplo: n Observe a ocorrência do nome do esquema Estado na parte de declaração de Init; isto permite o acesso às variáveis Init Estado’ s’ = {}

15 15 Em Z... Algumas operações modificam o estado e referenciam variáveis de estado iniciais e as finais (com o ’). Tais operações devem incluir o esquema  Estado que equivale a Estado Estado’  Estado  Estado s,s’ : |P Pessoa #s  lim  #s’  lim

16 16 Em Z... n A operação de inclusão é um exemplo de operação que muda o estado n Observe a variável p? na parte de declaração de esquema: é uma convenção para variáveis de entrada Inclusão  Estado p?: Pessoa (#s  lim ^ p?  s) s’ = s  {p?}

17 17 Em Z... Algumas operações não modificam o estado mas devem tornar isto explícito. Tais operações devem incluir o esquema  Estado –Exemplo: Estado Estado’  Estado s’ = s

18 18 Em Z... n A operação de consulta é um exemplo de operação que não muda o estado n Observe a variável m! na parte de declaração de esquema: é uma convenção para variáveis de saída Consulta  Estado p?: Pessoa m!: Msg (p?  s ^ m! = presente) v (p?  s ^ m! = ausente)

19 19 Especificação em Z: Controle de Acesso [Pessoa] Exclusão  Estado p?: Pessoa p?  s s’ = s \ {p?} lim == 50 Msg ::= ausente | presente Consulta  Estado p?: Pessoa m!: Msg (p?  s ^ m! = presente) v (p?  s ^ m! = ausente) Estado s : |P Pessoa # s  lim Inclusão  Estado p?: Pessoa (#s  lim ^ p?  s) s’ = s  {p?} Init Estado’ s’ = {}


Carregar ppt "1 Conjuntos (continuação) Notação –Os operadores de conjunto (união, interseção, etc.) serão introduzidos através de definições axiomáticas na linguagem."

Apresentações semelhantes


Anúncios Google