Matemática Discreta I
BCC101
Teoria de Conjuntos
Teoria de Conjuntos
A Teoria de Conjuntos é adequada para
descrever e explicar todas as
estruturas matemáticas.
A Teoria de Conjuntos constitui também
a base matemática para a definição de
Tipos de Dados em Computação
2
O que é um conjunto?
Um conjunto é uma coleção de objetos
Cada objeto da coleção é dito um
elemento do conjunto.
Exemplos:
𝐍 = {0,1,2,3,…}
𝐙 = {…,-3,-2,-1,0,1,2,3,…}
𝐐 = {n/m | n,m ∈ 𝐙, m≠0 }
𝐑
números naturais
números inteiros
números racionais
números reais
3
Mais exemplos de conjuntos
𝐁 = {T,F}
conjunto Booleano
C = {a,e,I,o,u}
conjunto das vogais
D = {(0,0),(1,5),(3,2)}
conjunto de pares de números
E = {{1,2},{10},{3,3,3}} conjunto de conjuntos
F = {3,{2,5},{5,8,2}}
-
elementos não precisam ser do mesmo tipo
3∈F
{2,5} ∈ F
2∉F
4
Cardinalidade
Se A é um conjunto finito, a cardinalidade
de A é o número de elementos de A
Notação: |A|
Exemplos:
- A = {a,b,c,d}
- B = {{1,2}, {1,2,3}}
|A| = 4
|B| = 2
5
Conjunto Vazio
{ } conjunto vazio: não possui elementos
–3{}
– x { } — não importa o que seja x
– = { } — a letra Grega phi denota o
conjunto vazio
Observação: ≠ {}
-
|| = 0
|{}| = 1
6
Exercício
F = {,{},{{}}}
1.Qual é a cardinalidade de F?
2. ∈ F ?
3. ∈ {{}} ?
7
Notação para conjuntos
{ x | x {2, 3, 5, 7, 11} , x 4}
– {5, 7, 11}
{ x + x | x {2, 3, 5, 7, 11} , x 3 , x 11}
– {6, 10, 14}
{f(x) | x A, p(x)}
– Denota o conjunto cujos elementos têm a
forma f(x), onde x A e é tal que p(x) é true
Para evitar contradições:
– Deve ser especificado o universo de discurso
– Exemplos inválidos:
{X | X é um conjunto}
{X | X X}
Nestes, o universo de discurso não é especificado
8
Exercícios
Listar os elementos dos seguintes conjuntos:
1.{n ∈ 𝐍 | n é primo}
2.{n2 | n ∈ 𝐙 }
3.{x ∈ 𝐑 | x2 – 2 = 0}
4.{x ∈ 𝐙 | x2 – 2 = 0}
5.{x ∈ 𝐙 | |x| < 4}
6.{2x ∈ 𝐙 | |x| < 4}
7.{x ∈ 𝐙 | |2x| < 4}
8.{X | X ∈ {{1,2},{3,4,5,6},{7}}, |X|<3 }
9
Subconjuntos e Igualdade
A é um subconjunto de B
– Definição: A B x. (x A x B)
– Exemplos
• {2, 3, 5, 7} {2, 3, 5, 7, 11}
• A — independentemente do que seja A
Igualdade entre conjuntos
– Definição: A = B (A B) e (B A)
A é um subconjunto próprio de B
– Definição: A B (A B) e (A B)
10
Exercícios
Quais afirmações são verdadeiras?
1. 1 ∈ {1,{1}}
11. 𝐍 ∈ {𝐍}
2. 1 {1,{1}}
12. 𝐍 {𝐍}
3. {1} ∈ {1,{1}}
13. ∈ {𝐍}
4. {1} {1,{1}}
14. {𝐍}
5. {{1}} ∈ {1,{1}}
15. ∈ {,𝐍}
6. {{1}} {1,{1}}
16. {,𝐍}
7. 𝐍 ∈ 𝐍
17. {𝐍} {,𝐍}
8. 𝐍 𝐍
18. {𝐍} {,{𝐍}}
9. ∈ 𝐍
19. {𝐍} ∈ {,{𝐍}}
10. 𝐍
20. ∈
11
Operações:
Conjunto Potência
Cojunto Potência de A: P (A)
– Definição: P (A) = {S | S A}
– Exemplos
• P({2, 3, 5}) = {, {2}, {3}, {5}, {2,3}, {2,5}, {3,5},
{2,3,5}}
• P() = {}
– |P (A)| = 2|A|
(será
provado mais tarde, usando indução )
• Quantos elementos tem P(P())?
– P(P()) = { , {} }
• Quantos elementos tem P(P(P()))?
– P(P(P())) = { , {}, {{}}, {, {}} }
• Quantos elementos tem P(P(P(P())))?
– 24 = 16
• Quantos elementos tem P(P(P(P(P()))))?
– 216 — um bocado! em torno de 65.000
12
Exercícios
Liste todos elementos de cada conjunto:
1.P({0,1,3})
2.P({1})
3.P()
4.P({1,{1,2}})
5.P({𝐙,𝐍})
13
Operações: Produto Cartesiano
Produto Cartesiano de A e B: AxB
– Definição: A B = {(a, b) | a A e b B}
– Exemplos
• {2, 3} {3, 5, 7} = {(2,3), (2,5), (2,7), (3,3), (3,5), (3,7)}
• {0, 1, 2, …} {1, 2, 3, …} = conjunto de todos os pares de
números naturais em que o segundo componente ≠ 0
– Notação: A2 = A x A
• A0 = {()}
A1 = A
A2 = AxA
A3 = AxAxA …
– |A x B| = |A| x |B|
Exercícios:
A x B = B x A para todo A e B?
Quantos elementos tem A P(A)?
14
Operações: União e Interseção
União de A e B
– Definição: A B = {x | x A ∨ x B}
– Exemplos
• {2, 3, 5} {5, 7, 11} = {2, 3, 5, 7, 11}
• A = A — independentemente do que seja A
• {, {}} { {{}}, {, {}} } = {, {}, {{}}, {, {}} }
Interseção de A e B
– Definição: A B = {x | x A ∧ x B}
– Exemplos
• {2, 3, 5, 7} {2, 7, 11} = {2, 7}
• A = — independentemente do que seja A
Conjuntos disjuntos
– Definição: A e B são disjuntos A B = 15
Operações: União Disjunta
União disjunta de A e B
– Definição: A + B = {(0,x) | xA}∪{(1,x) | xB}
– Exemplos
• {2,3,5} + {3,5,7} = {(0,2), (0,3), (0,5), (1,3), (1,5),(1,7)}
• + {2,3} = {(1,2),(1,3)}
• {2,3} + = {(0,2),(0,3)}
16
Operações: Diferença e Complemento
Diferença A menos B
– Definição: A – B = {x | x A ∧ x B}
– Exemplos
• {2, 3, 5, 7} – {2, 7, 11} = {3, 5}
• A – = A — independentemente do que seja A
• – A = — independentemente do que seja A
• Complemento de A
– Definição: A’= U–A onde U é o universo de discurso
– Exemplos - universo de discurso = N
• {2, 3, 4, 5}’ = {0, 1} {6, 7, 8, …}
• {2x | x {0, 1, 2, …}}’ = {2x+1 | x {0, 1, 2, …}}
17
Exercícios
Sejam A = {a,b,c,d,e} B={d,e,f} C={1,2,3}
1.
2.
3.
4.
5.
AB
AB
A–B
B–A
(A-B) (B-A)
6.
7.
8.
9.
AC
AC
A–C
(A C) (A – C)
10. (A B) x B
11. (AxC) (BxC)
Álgebra de Conjuntos
Identidade
Zero
Idempotência
A A
A U A
A U U
A
A A A
Complemento
De Morgan
Duplo complemento
A A
A A A
A A U
A B A B
A A
A B A B
19
Commutatividade
Associatividade
A B B A
A ( B C ) ( A B) C
A ( B C ) ( A B) C
Absorção
Distributividade
A B B A
A ( A B) A
A ( A B) A
A ( B C ) ( A B) ( A C )
A ( B C ) ( A B) ( A C )
20
Prova direta – mais um exemplo
• Teorema: Sejam A,B e C conjuntos. Se
A∩C ⊆ B e a ∈ C, então a ∉ A-B.
– Hipóteses:
– Conclusão:
A∩C ⊆ B e a ∈ C
a ∉ A-B
a ∉ A\B = ¬(a ∈A-B)
= ¬(a ∈A ∧ a ∉ B)
= ¬a ∈A ∨ ¬ a ∉ B
= ¬a ∈A ∨ a ∈ B
= a ∈A ➝ a ∈ B
21
Prova direta – mais um exemplo
(continuação)
Trocamos a demonstração de a ∉ A-B por
uma demonstração de a ∈A ➝ a ∈ B, que
é mais simples.
• Agora é só usar uma das estratégias que
envolvem o conectivo ➝
• Como você concluiria a prova?
22
Paradoxo de Russel
Bertrand Russell (1872-1970)
Uma teoria ingênua de conjuntos pode levar a
paradoxos. Considere:
A = {X | X é um conjunto e X ∉ X}
- {1,2} ∈ A
- 𝐍∈A
- Seja X = {X}.
X∉A
Paradoxo: A∈A ?
23
Teoria Axiomática de Conjuntos
Para evitar os paradoxos que podem ocorrer em
uma teoria ingênua de conjuntos, foi proposta,
por Zermelo e Frankel, uma teoria axiomática,
que inclui como axiomas:
Princípio da Boa Ordem
Nenhum conjunto não vazio C pode ter a
propriedade de que C ∩ x ≠ , para todos os seus
elementos x que sejam conjuntos.
Isso exclui conjuntos tais como X = {X}.
24
Princípio da Boa Ordem
Todo subconjunto não vazio de números naturais
tem um menor elemento:
A ⊆ 𝐍 e A≠ → existe x0∈A tal que
x0 ≤ x, para todo x∈A
É uma propriedade fundamental de 𝐍
Não vale para números reais:
A = {1/n | n∈𝐍} não tem um menor elemento
25
Princípio da Boa Ordem- consequência
Algoritmo de Divisão: Dados dois números naturais
a e b, com b>0, existem números naturais q e r tais
que a = qb + r e 0 ≤ r < b
Prova: Dados a e b, com b>0, construa o conjunto
A = {a – xb | x∈𝐙, 0 ≤ a – xb}
(A é não vazio)
Por exemplo, se a=17 e b=3, A ={2,5,8,11,14,17,…}
Seja r o menor elemento de A.
Então r=a–qb, p/ algum q∈𝐙 e, portanto, a=qb+r.
Além disso, r<b: se r≥b, então um número não
negativo r-b=(a-qb)-b=a-(q+1)b, da forma a–xb
seria o menor elemento de A, ao invés de ser r.
26
Funções
Função — algumas definições e terminologia
Uma função f de tipo A B é uma relação
binária com domínio A e contra domínio B, que
satisfaz a propriedade
aA.b1B.b2B. ((a, b1)f (a, b2)f) (b1=b2)
Em computação:
Tipo do argumento : A (ou dominio de f)
Tipo do resultado: B
(ou contra dominio de f)
A propriedade acima garante que a função
retorna um e exatamente um resultado, para
cada possível valor do argumento
27
Funções
Oficialmente, uma função é um conjunto de
pares ordenados
Este conjunto de pares oerdenados é o grafo
da função
Também conhecido como representação
extensional da função
Menos formalmente
Uma função é uma regra que associa um
resultado a cada argumento
Essa regra é conhecida como representação
intensional da função
28
Extensional versus Intensional
Representação extensional
– Conjunto de pares ordenados
• f: A B (f tem dominio A e contra-dominio B)
• f = {(x, f(x)) | x A} A B
[representação extensional de f: A B]
– Representação unívoca
• Existe uma única representação extensional de uma
função
– Igualdade funcional
• Duas funções são iguais se têm a mesma
representação extensional
29
Extensional versus Intensional
Representação intensional
– Equações associaindo resultados a argumentos
– Não é única
• Uma função pode ter mais de uma representação
intensional
• Exemplos
f(x) = (x – 1)(x+1), g(x) = x2 – 1
tipo: Integer Integer
qsort = … , msort = …
tipo: [] []
30
Composição de Funções
Composição: aplicação encadeada de funções
– Os tipos devem ser compatíveis
• se f tem tipo a -> b e g tem tipo b -> c
então g o f tem tipo a -> c
• (g o f) x = g(f x)
– Exemplos
inc1 x = x + 1
inc2 x = x + 2
inc2 = inc1 . inc1
sqr x = xx
poly x = xx + 1
poly = inc1 . sqr
31
Imagem e Imagem Inversa
Imagem
f :: A B
XA
f(X) = {f(x) | x X}
Imagem inversa
B
A
X
f(X)
B
A
f :: A B
YB
f-1(Y) = {x A | f(x) Y}
f
-1
f (Y)
f
Y
32
Sobrejetora
f :: AB é sobrejetora sse f(A) = B
f é sobrejetora se sua imagem é todo o
contra domíno
Algumas funções sobrejetoras
even :: Integer -> Bool
even = (== 0) . (`mod` 2)
clock :: {0, 1, 2, …} {1, 2, …, 12}
clock x = 1 + (x `mod` 12)
Algumas funções não sobrejetoras
dbl :: Integer -> Integer
dbl x = x + x
sqr :: Integer -> Integer
sqr x = xx
clock :: {0, 1, 2, …} {0, 1, 2, …}
clock = 1 + (x `mod` 12)
33
Injetora
f :: AB injetora sse bB. |f-1({b})| 1
sse a imagem inversa de um conjunto unitário
é um conjunto unitário ou vazio
Função que não ‘tromba’ no contra domínio
Algumas funções injetoras
integerize :: Bool -> Integer
integerize False = 0
integerize True = 1
sqr :: {0, 1, 2, …} {0, 1, 2, …}
sqr x = xx
inc1 :: Integer -> Integer
inc1 x = x + 1
Não injetora
even :: Integer -> Bool
even = (== 0) . (`mod` 2)
34
Bijetora
f: A→B é bijetora sse
(f é injetora) (f é sobrejetora)
– Correspondência um a um entre A e B
Algumas funções bijetoras
not :: Bool -> Bool
inc1 :: Integer -> Integer
not False = True
inc1 x = x + 1
not True = False
counterClock :: {1, 2, …, 12} {1, 2, …, 12}
counterClock x = 13 – x
Não bijetoras
dbl :: Integer -> Integer
injetora mas não sobrejetora
dbl x = x + x
clock :: {0, 1, 2, …} {1, 2, …, 12
sobrejetora mas não injetora
clock x = 1 + (x `mod` 12)
35
Bijetora
f: A→B é bijetora sse
(f é injetora) (f é sobrejetora)
– Correspondência um a um entre A e B
Algumas funções bijetoras
not :: Bool -> Bool
inc1 :: Integer -> Integer
not False = True
inc1 x = x + 1
not True = False
counterClock :: {1, 2, …, 12} {1, 2, …, 12}
counterClock x = 13 – x
Não bijetoras
dbl :: Integer -> Integer
dbl x = x + x
injetora mas não sobrejetora
clock :: {0, 1, 2, …} {1, 2, …, 12
clock x = 1 + (x `mod` 12)
sobrejetora mas não injetora
36