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

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

Funções  Tipo de relação onde não pode ocorrer a situação um para vários (1-to-N). Daí, a denominação determinística.  Notação: Usa-se f x = y em lugar.

Apresentações semelhantes


Apresentação em tema: "Funções  Tipo de relação onde não pode ocorrer a situação um para vários (1-to-N). Daí, a denominação determinística.  Notação: Usa-se f x = y em lugar."— Transcrição da apresentação:

1

2 Funções  Tipo de relação onde não pode ocorrer a situação um para vários (1-to-N). Daí, a denominação determinística.  Notação: Usa-se f x = y em lugar de x R y  Em Z, funções são baseadas em Teoria de Conjuntos com Tipos. Apesar disso, cada classe de função tem sua representação própria

3 Funções Parciais Alicerce para definir as demais classes de funções. Portanto, as funções parciais são as mais simples. X  Y = {R:X  Y |  x:X; y,z:Y  x R y  x R z  y=z} ^ Exemplos: Seja ASCII={A,B,...,Z,a,b,...,z} asc: N  ASCII asc={65  A, 66  B,..., 90  Z, 97  a, 98  b, 122  z} Simetrico: Z  N  p: Z; n: N  Simetrico p = n  p = n min, max: P N  N min = {S: P N; m: N | S   m  S  (  i:S  m  i)  S  m} max = {S: P N; m: N | S   m  S  (  i:S  m  i)  S  m}    I  I I III I III II    

4 Funções Totais A função deve ser bem definida em todo o seu domínio. X  Y = { f: X  Y | dom f = X } ^ Exemplos: Seja BYTE={65,...,122} suc: N  N  x: N  suc x = x + 1  asc: BYTE  ASCII asc={65  A, 66  B,..., 90  Z, 97  a, 98  b, 122  z}  II I

5 Operações sobre Funções Os operadores de relações e conjuntos podem ser usados em funções, mas isso não implica fechamento. Exemplo: {João  Maria, José  Neide}  {José  Magda}   João  Maria, José  Neide, José  Magda} A união de duas funções é fechada se:  f, g: X Y   f  g  X Y  x: X | x  (dom f)  (dom g)  f x = g x       

6 Operações sobre Funções (cont.) Pode-se evitar a restrição anterior assumindo a sobreposição dos pares de f pelos de g quando x  (dom f)  (dom g) Notação: f  g Exemplo: {João  Maria, José  Neide}  {José  Magda}   João  Maria, José  Magda} Obs.: A sobreposição pode ser usada, por exemplo, para realizar atualizações em bancos de dados.     

7 Definição Formal de Sobreposição [X, Y] __  __ : (X  Y)  (X  Y)  (X  Y)  f, g: X  Y  f  g = ((dom g) f)  g  Cálculo do exemplo anterior segundo a definição: f  g= ((dom g) {João |  Maria, José |  Neide})  {José |  Magda} = ({José} {João |  Maria, José |  Neide})  {José |  Magda} = {João |  Maria}  {José |  Magda}   Teoremas: 1.f  f = f 2.f  (g  h) = (f  g)  h 3.{}  f = f 4.f  {} = f 5.(dom f  dom g) = {}  f  g = f  g = g  f  

8 Abstrações Lambda Usada para definir uma função sem nome. Notação: |  Exemplos:  n: N  n+n = {n: N  n  (n+n)}  n: N | n  0  n-1 = {n: N | n  0  n  (n-1)} Aplicação:Quadrado 2 (  n: N  n  n) 2 2  2 4 I I I I Quadrado: N  N Quadrado =  n: N  n  n I I I I

9 Algumas Funções Especiais Funções Parciais Injetivas de X para Y: X  Y = { f: X  Y |  x 1, x 2 : dom f  f x 1 = f x 2  x 1 = x 2 } > ^ Funções Totais Injetivas de X para Y: X  Y = (X  Y)  (X  Y) >> ^ Funções Parciais Sobrejetivas de X para Y: X  Y = { f: X  Y | ran f = Y} ^  Funções Totais Sobrejetivas de X para Y: X  Y = (X  Y)  (X  Y) ^  Funções Parciais Bijetivas de X para Y: X  Y = (X  Y)  (X  Y) ^  >> Funções Totais Bijetivas de X para Y: X  Y = (X  Y)  (X  Y) ^  >> 

10 Conjuntos Finitos Intervalos Naturais __.. __ : N  N  P N  m, n: N  m.. n = { i: N | m  i  n } Conjunto dos Subconjuntos Finitos de X F X = { S: P X | (  n: N; f:1.. n  S  true)} (Enumeração) ^  > I IIII I III

11 Conjuntos Finitos (cont.) Cardinalidade [X] # __ : F X  N  S: F X   n: N; f:1.. n S  # S = n  > Funções Finitas Parciais Parciais Injetivas X  Y = { f: X  Y | dom f  F X } ^ X  Y = X  Y  X  Y > > ^ II II I

12 Exemplo de Especificação Usando Função entrar, sair, saldo Obs.: Este exemplo pode ser encontrado no livro Specification Case Studies, 2nd Edition, sob o nome de Flexitime, págs

13 O Estado do Sistema Flexi Standard_Hours, Flexitime_Hours: Time  Period worked: Ident  Period in: Ident  Time dom(in)  dom(worked) Time = = N Period = = P Time [Ident] I I

14 Operações sobre o Estado Response ::= In | Out | Balance | IdUnknown  Clocking  Flexi ident?: Ident t?: Time ind!: Response ident?  dom(worked) Standard_Hours’ = Standard_Hours Flexitime_Hours’ = Flexitime_Hours

15 Operações sobre o Estado (cont.) ClockIn  Clocking ident?  dom(in) t?  Flexitime_Hours(t?) in’ = in  {ident?  t?} worked’ = worked Ind! = In ClockOut  Clocking ident?  dom(in) worked’ = worked  {ident?  (worked(ident?)  (in(ident?).. (t?-1)))} in’ = {ident?} in Ind! = Out  0 0

16 Operações sobre o Estado (cont.) RelMinutes = = Z Worked  Clocking cr!: RelMinutes cr! = # (worked’(ident?)  Flexitime_Hours(t?)) - # { t:Standard_Hours(t?) | t < t? } ClockIn = ClockIn  Worked ClockOut = ClockOut  Worked   0 0

17 Operações sobre o Estado (cont.) ReadOut Worked ident?  dom(in) t?  Flexitime_Hours(t?) ind! = Balance  Flexi’ =  Flexi Unknown  Flexi ident?: Ident ind!: Response ident?  dom(worked) ind! = Unknown InsertKey = ClockIn  ClockOut  ReadOut  Unknown 

18 Operações sobre o Estado (Final) Add_Employee  Flexi ident!: Ident ident!  dom(worked) worked’ = worked  { ident! |  {} } in’ =in Standard_Hours’ = Standard_Hours Flexitime_Hours’ = Flexitime_Hours


Carregar ppt "Funções  Tipo de relação onde não pode ocorrer a situação um para vários (1-to-N). Daí, a denominação determinística.  Notação: Usa-se f x = y em lugar."

Apresentações semelhantes


Anúncios Google