Title: Fun
1Funçõ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
2Funções Parciais
Alicerce para definir as demais classes de
funções. Portanto, as funções parciais são as
mais simples.
X Y RXY "xX y,zY x R y Ù x R z ? yz
Exemplos
Seja ASCIIA,B,...,Z,a,b,...,z
asc N ASCII asc65 A, 66 B,
..., 90 Z, 97 a, 98 b, 122 z
I
Simetrico Z N " p Z n N Simetrico p
n Û - p n
I
I
I
I
I
I
I
I
I
I
I
3Funções Totais
A função deve ser bem definida em todo o seu
domínio.
XY f X Y dom f X
Exemplos
Seja BYTE65,...,122
asc BYTE ? ASCII asc65 A, 66 B, ...,
90 Z, 97 a, 98 b, 122 z
suc N N " x N suc x x 1
I
I
I
4Operações sobre Funções
Os operadores de relações e conjuntos podem ser
usados em funções, mas isso não implica
fechamento. ExemploJoã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
5Operaçõ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 ExemploJoã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.
6Definição Formal de Sobreposição
X, Y __ Å __ (X Y) (X Y) (X
Y) " f, g X Y f Å g ((dom g) f) È g
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
7Abstrações Lambda
Usada para definir uma função sem nome. Notação
lltArgsgt ltPredicadogt ltExpressãogt Exemplos l
n N nn n N n (nn) l n N n ¹ 0
n-1 n N n ¹ 0 n (n-1)
I
I
I
I
Aplicação Quadrado 2 (l n N n n) 2 2
2 4
I
8Algumas Funções Especiais
Funções Parciais Injetivas de X para Y
X Y f XY " x1, x2 dom f f x1 f x2
Þ x1 x2
gt
Funções Totais Injetivas de X para Y
X Y (XY) Ç (X Y)
gt
gt
Funções Parciais Sobrejetivas de X para Y
X Y f XY ran f Y
Funções Totais Sobrejetivas de X para Y
X Y (XY) Ç (X Y)
Funções Parciais Bijetivas de X para Y
X Y (X Y) Ç (X Y)
gt
gt
Funções Totais Bijetivas de X para Y
X Y (X Y) Ç (XY)
gt
gt
9Conjuntos Finitos
I
I
I
I
I
I
Conjunto dos Subconjuntos Finitos de X
F X S P X ( n N f1 .. n S
true) (Enumeração)
I
I
I
gt
10Conjuntos Finitos (cont.)
Cardinalidade
X __ F X N " S F X n N f1
.. n S S n
I
I
I
I
gt
Funções Finitas
Parciais
X Y f X Y dom f Î F X
I
Parciais Injetivas
X Y X Y Ç X Y
gt
gt
11Exemplo de Especificação Usando Função
Obs. Este exemplo pode ser encontrado no livro
Specification Case Studies, 2nd Edition, sob o
nome de Flexitime, págs. 134-138
12O Estado do Sistema
Time N Period P Time Ident
I
I
Flexi Standard_Hours, Flexitime_Hours Time
Period worked Ident Period in Ident
Time dom(in) Í dom(worked)
13Operações sobre o Estado
Response In Out Balance IdUnknown
D Clocking D Flexi ident? Ident t?
Time ind! Response ident? Î dom(worked) Standard_
Hours Standard_Hours Flexitime_Hours
Flexitime_Hours
14Operações sobre o Estado (cont.)
0
0
15Operações sobre o Estado (cont.)
RelMinutes Z
Ù
ClockIn ClockIn Ù Worked ClockOut ClockOut
Ù Worked
0
Ù
0
16Operações sobre o Estado (cont.)
ReadOut Worked ident? Ï dom(in) t? Ï
Flexitime_Hours(t?) ind! Balance q Flexi q
Flexi
Unknown X Flexi ident? Ident ind!
Response ident? Ï dom(worked) ind! Unknown
17Operações sobre o Estado (Final)
Add_Employee D Flexi ident! Ident ident! Ï
dom(worked) worked worked È ident!
in in Standard_Hours Standard_Hours Flexiti
me_Hours Flexitime_Hours