Fundamentos Teóricos da Computação - UFAM

544 visualizações

Publicada em

Fundamentos Teóricos da Computação, proposições lógicas, conjuntos

Publicada em: Educação
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
544
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
20
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Fundamentos Teóricos da Computação - UFAM

  1. 1. Conceitos Preliminares 1 EDUARDO FREIRE NAKAMURA I n s / t u t o d e C ompu t a ç ã o U n i v e r s i d a d e F e d e r a l d o A m a z o n a s n a k a m u ra@i comp . u fam. e d u . b r 1Este material baseia-se no capítulo 1 do livro: Vieira, N.J. Introdução aos Fundamentos da Computação: Linguagens e Máquinas, Pioneira Thomson Learning (atualmente, CENGAGE), 2006. Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  2. 2. Lógica formal 2 OBJ E T IVO REVISAR OS CONCEITOS D E LÓGICA FORMAL Fundamentos de Teoria da Computação Eduardo Freire Nakamura (nakamura@icomp.ufam.edu.br)
  3. 3. Lógica Formal 3 — Fornece bases para o método de pensar organizado; — Expressa métodos de raciocínio sob a forma de argumentos. — Tem duas aplicações diretas em Ciência da Computação 1. Programação Lógica 2. Prova se programas estão corretos ou não — É análoga à lógica de circuitos de um computador Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  4. 4. Lógica Formal 4 — Exemplos de uLlização em computação: ¡ Inteligência ArLficial; ¡ Circuitos Lógicos; ¡ Banco de Dados; ¡ Sistemas Computacionais (hardware e soWware) ¡ Sistemas Distribuídos; ¡ Teoria de autômatos e computabilidade; ¡ Teoria de linguagens; Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  5. 5. Proposições 5 — Uma proposição é uma sentença declaraLva, ou uma afirmação, que admite apenas um dos dois valores lógicos verdadeiro ou falso, nunca ambos — Proposições????? ¡ Manaus é a capital do Amazonas ¡ 1 + 1 = 2 ¡ Como você está? ¡ 9 < 6 ¡ Estudem regularmente ¡ Londres é na Dinamarca ¡ MatemáLca Discreta é fácil Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  6. 6. Proposições 6 — PROPOSIÇÕES ATÔMICAS não podem ser sub-­‐divididas em proposições mais simples ¡ Ex: O servidor de arquivos está desligado — PROPOSIÇÕES COMPOSTAS são combinações de proposições atômicas via conecLvos lógicos ¡ Ex: A rede local está mal configurada ou o servidor de arquivos está desligado ¡ O valor verdade é completamente determinado pelos valores-­‐verdade das subproposições junto com a forma que estão conectadas Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  7. 7. Proposições 7 — PROPOSIÇÕES ATÔMICAS são representadas por meio de variáveis proposicionais ¡ Variáveis proposicionais: (P, Q, R, S, . . .) ¡ Constantes proposicionais: (V, F) → (T, F) — Nas PROPOSIÇÕES COMPOSTAS, as variáveis proposicionais são combinadas através de pelo menos um operador ou conecLvo lógico ¡ Operadores lógicos são uLlizados para combinar proposições e formar novas proposições Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  8. 8. ConecLvos Lógicos 8 — Terminologia ¡ Negação: ¬ ¡ Conjunção (e): ∧ ¡ Disjunção (ou): ∨ ¡ Condicional: → ¡ Bicondicional: ↔ ¡ QuanLficação Universal: ∀ ¡ QuanLficação Existencial: ∃ Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  9. 9. ConecLvos Lógicos 9 — Tabela da Verdade — Negação Negação P ¬P V F F V Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  10. 10. ConecLvos Lógicos 10 — Tabela da Verdade — Conjunção Conjunção P Q P∧Q V V V V F F F V F F F F Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  11. 11. ConecLvos Lógicos 11 — Tabela da Verdade — Disjunção Disjunção P Q P∨Q V V V V F V F V V F F F Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  12. 12. ConecLvos Lógicos 12 — Tabela da Verdade — Condicional Condicional P Q P→Q V V V V F F F V V F F V Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  13. 13. ConecLvos Lógicos 13 — Tabela da Verdade — Bicondicional Bicondicional P Q P↔Q V V V V F F F V F F F V Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  14. 14. QuanLficação 14 — QuanLficação Universal ¡ ∀x P(x) ¡ P(x) é um predicado ¡ P(x) é verdadeiro para todo x do universo — Exemplo ¡ Todo número natural par ao quadrado é par — QuanLficação Existencial ¡ ∃x P(x) ¡ P(x) é um predicado ¡ P(x) é verdadeiro para algum x do universo — Exemplo ¡ Existe um número natural que ao quadro é igual a ele mesmo Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  15. 15. AfirmaLva Válida (Tautologia) 15 — Verdadeira para todos os valores verdades de suas sub afirmaLvas — Exemplos ¡ P∨¬P ¡ P → P ¡ P ∨ (P → Q) ¡ P(a) →∃x P(x) ¡ ∀x P(x) ↔ ¬∃x ¬P(x) Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  16. 16. Contradição 16 — Falsa para todos os valores-­‐verdade de suas subafirmaLvas — Exemplos ¡ P∧¬P ¡ P ↔ ¬P ¡ (P ∧ (P → Q)) ∧ ¬Q ¡ P(a) ∧ ¬∃x P(x) ¡ ∀x P(x) ∧ ∃x ¬P(x) Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  17. 17. Equivalência Lógica 17 — Duas proposições P e Q são logicamente equivalentes (P ≡ Q), se ambas possuem tabelas-­‐verdade idênLcas — Exemplos ¡ P∨Q ≡ Q∨P ¡ P ∨ (Q ∧ R) ≡ (P ∨ Q) ∧ (P ∨ R) ¡ ¬(P ∧ Q) ≡ ¬P ∨ ¬Q ¡ P → Q ≡ ¬P ∨ Q ¡ P ↔ Q ≡ (P → Q) ∧ (Q → P) ¡ ¬∀x P(x) ≡ ∃x ¬P(x) Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  18. 18. Regras de equivalência 18 Fórmula Lei P∨P ≡ P P∧P ≡ P Idempotência (P∨Q)∨R ≡ P∨(Q∨R) (P∧Q)∧R ≡ P∧(Q∧R) AssociaLva P∨Q ≡ Q∨P P∧Q ≡ Q∧P ComutaLva (P∧Q)∨R ≡ (P∨R)∧(Q∨R) (P∨Q)∧R ≡ (P∧R)∨(Q∧R) DistribuLva P∨F ≡ P P∨V ≡ V P∧V ≡ P P∧F ≡ F IdenLdade Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  19. 19. Regras de equivalência 19 Fórmula Lei P∨¬P ≡ V ¬V ≡ F P∧¬P ≡ F ¬F ≡ V Complemento ¬¬P ≡ P Involução ¬(P∧Q) ≡ ¬P∨¬Q ¬(P∨Q) ≡ ¬P∧¬Q DeMorgan P→Q ≡ ¬P∨Q Condicional Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  20. 20. Regras de equivalência (resumo) 20 Fórmula Lei P∨P ≡ P P∧P ≡ P Idempotência (P∨Q)∨R ≡ P∨(Q∨R) (P∧Q)∧R ≡ P∧(Q∧R) AssociaLva P∨Q ≡ Q∨P P∧Q ≡ Q∧P ComutaLva (P∧Q)∨R ≡ (P∨R)∧(Q∨R) (P∨Q)∧R ≡ (P∧R)∨(Q∧R) DistribuLva P∨F ≡ P P∨V ≡ V P∧V ≡ P P∧F ≡ F IdenLdade P∨¬P ≡ V ¬V ≡ F P∧¬P ≡ F ¬F ≡ V Complemento ¬¬P ≡ P Involução ¬(P∧Q) ≡ ¬P∨¬Q ¬(P∨Q) ≡ ¬P∧¬Q DeMorgan P→Q ≡ ¬P∨Q Condicional Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  21. 21. Consequência Lógica (Implicação Lógica) 21 — P ⇒ Q, se Q é verdade sempre que P é verdade — Exemplos ¡ {P → Q, P} ⇒ Q ¡ {P → Q, ¬Q} ⇒ ¬P ¡ {P → Q, ¬P → Q} ⇒ Q ¡ {P → Q, Q → R} ⇒ P → R ¡ {P(a)} ⇒ ∃x P(x) ¡ {P(a), ∀x (P(x) → Q(x))} ⇒ Q(a) Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  22. 22. Exemplos de regras de inferência 22 Modus ponens P P→Q Q FTC é fácil SE FTC é fácil, ENTÃO serei aprovado serei aprovado Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  23. 23. Exemplos de regras de inferência 23 Modus ponens P P→Q Q Modus tollens ¬Q P→Q ¬P NÃO fui aprovado SE estudei, ENTÃO fui aprovado NÃO estudei Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  24. 24. Exemplos de regras de inferência 24 Modus ponens P P→Q Q Modus tollens ¬Q P→Q ¬P Conjunção P Q P∧Q estudei fui aprovado estudei E fui aprovado Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  25. 25. Exemplos de regras de inferência 25 Modus ponens P P→Q Q Modus tollens ¬Q P→Q ¬P Conjunção P Q P∧Q Adição P P∨Q estudei estudei OU dormi Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  26. 26. Exemplos de regras de inferência 26 Modus ponens P P→Q Q Modus tollens ¬Q P→Q ¬P Conjunção P Q P∧Q Adição P P∨Q Silogismo hipotéLco P→Q Q→R P→R SE estudar, ENTÃO FTC é fácil SE FTC é fácil, ENTÃO serei aprovado SE estudar, ENTÃO serei aprovado Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  27. 27. Exemplos de regras de inferência 27 Modus ponens P P→Q Q Modus tollens ¬Q P→Q ¬P Conjunção P Q P∧Q Adição P P∨Q estudo SE, quero passar SE, estudo SE, Silogismo hipotéLco P↔Q Q↔R P↔R Silogismo hipotéLco P→Q Q→R P→R E SOMENTE SE, quero passar E SOMENTE SE, aprendo E SOMENTE SE, aprendo Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  28. 28. Exemplos de regras de inferência 28 Modus ponens P P→Q Q Modus tollens ¬Q P→Q ¬P Conjunção P Q P∧Q Adição P P∨Q Silogismo disjunLvo P∨Q ¬Q P estudei OU dormi NÃO dormi estudei Silogismo hipotéLco P↔Q Q↔R P↔R Silogismo hipotéLco P→Q Q→R P→R Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  29. 29. Exemplos de regras de inferência 29 Modus ponens P P→Q Q Modus tollens ¬Q P→Q ¬P Conjunção P Q P∧Q Adição P P∨Q Silogismo disjunLvo P∨Q ¬Q P Silogismo hipotéLco P↔Q Q↔R P↔R Silogismo hipotéLco P→Q Q→R P→R Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  30. 30. Exemplo 30 — Você está saindo para a UFAM de manhã e percebe que não está usando os óculos. Ao tentar descobrir onde estão os óculos você começa a pensar sobre os seguintes fatos que são verdadeiros 1. Se os meus óculos estão na mesa da cozinha então eu os vi no café da manhã; 2. Eu estava lendo o jornal na sala de estar ou eu estava lendo o jornal na cozinha; 3. Se eu estava lendo o jornal na sala de estar então meus óculos estão na mesa do café; 4. Eu não vi meus óculos no café da manhã; 5. Se eu estava lendo um livro na cama então meus óculos estão no criado-­‐ mudo; 6. Se eu estava lendo o jornal na cozinha então meus óculos estão na mesa da cozinha; Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  31. 31. Exemplo 31 — Você está saindo para a UFAM de manhã e percebe que não está usando os óculos. Ao tentar descobrir onde estão os óculos você começa a pensar sobre os seguintes fatos que são verdadeiros 1. Se os meus óculos estão na mesa da cozinha então eu os vi no café da manhã; P→Q 2. Eu estava lendo o jornal na sala de estar ou eu estava lendo o jornal na cozinha; 3. Se eu estava lendo o jornal na sala de estar então meus óculos estão na mesa do café; 4. Eu não vi meus óculos no café da manhã; 5. Se eu estava lendo um livro na cama então meus óculos estão no criado-­‐ mudo; 6. Se eu estava lendo o jornal na cozinha então meus óculos estão na mesa da cozinha; Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  32. 32. Exemplo 32 — Você está saindo para a UFAM de manhã e percebe que não está usando os óculos. Ao tentar descobrir onde estão os óculos você começa a pensar sobre os seguintes fatos que são verdadeiros 1. Se os meus óculos estão na mesa da cozinha então eu os vi no café da manhã; P→Q 2. Eu estava lendo o jornal na sala de estar ou eu estava lendo o jornal na cozinha; R∨S 3. Se eu estava lendo o jornal na sala de estar então meus óculos estão na mesa do café; 4. Eu não vi meus óculos no café da manhã; 5. Se eu estava lendo um livro na cama então meus óculos estão no criado-­‐ mudo; 6. Se eu estava lendo o jornal na cozinha então meus óculos estão na mesa da cozinha; Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  33. 33. Exemplo 33 — Você está saindo para a UFAM de manhã e percebe que não está usando os óculos. Ao tentar descobrir onde estão os óculos você começa a pensar sobre os seguintes fatos que são verdadeiros 1. Se os meus óculos estão na mesa da cozinha então eu os vi no café da manhã; P→Q 2. Eu estava lendo o jornal na sala de estar ou eu estava lendo o jornal na cozinha; R∨S 3. Se eu estava lendo o jornal na sala de estar então meus óculos estão na mesa do café; R→T 4. Eu não vi meus óculos no café da manhã; 5. Se eu estava lendo um livro na cama então meus óculos estão no criado-­‐ mudo; 6. Se eu estava lendo o jornal na cozinha então meus óculos estão na mesa da cozinha; Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  34. 34. Exemplo 34 — Você está saindo para a UFAM de manhã e percebe que não está usando os óculos. Ao tentar descobrir onde estão os óculos você começa a pensar sobre os seguintes fatos que são verdadeiros 1. Se os meus óculos estão na mesa da cozinha então eu os vi no café da manhã; P→Q 2. Eu estava lendo o jornal na sala de estar ou eu estava lendo o jornal na cozinha; R∨S 3. Se eu estava lendo o jornal na sala de estar então meus óculos estão na mesa do café; R→T 4. Eu não vi meus óculos no café da manhã; ¬Q 5. Se eu estava lendo um livro na cama então meus óculos estão no criado-­‐ mudo; 6. Se eu estava lendo o jornal na cozinha então meus óculos estão na mesa da cozinha; Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  35. 35. Exemplo 35 — Você está saindo para a UFAM de manhã e percebe que não está usando os óculos. Ao tentar descobrir onde estão os óculos você começa a pensar sobre os seguintes fatos que são verdadeiros 1. Se os meus óculos estão na mesa da cozinha então eu os vi no café da manhã; P→Q 2. Eu estava lendo o jornal na sala de estar ou eu estava lendo o jornal na cozinha; R∨S 3. Se eu estava lendo o jornal na sala de estar então meus óculos estão na mesa do café; R→T 4. Eu não vi meus óculos no café da manhã; ¬Q 5. Se eu estava lendo um livro na cama então meus óculos estão no criado-­‐ mudo; U→X 6. Se eu estava lendo o jornal na cozinha então meus óculos estão na mesa da cozinha; Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  36. 36. Exemplo 36 Fatos transformados em proposições 1. P→Q 2. R∨S 3. R→T 4. ¬Q 5. U→X 6. S→P Variável Argumento P meus óculos estão na mesa da cozinha Q eu os vi no café da manhã R estava lendo o jornal na sala de estar S eu estava lendo o jornal na cozinha T meus óculos estão na mesa do café U eu estava lendo um livro na cama X meus óculos estão no criado-­‐mudo Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  37. 37. Exemplo 37 Fatos transformados em proposições 1. P→Q 2. R∨S 3. R→T 4. ¬Q 5. U→X 6. S→P 1. P→Q 4. ¬Q Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  38. 38. Exemplo 38 Fatos transformados em proposições 1. P→Q 2. R∨S 3. R→T 4. ¬Q 5. U→X 6. S→P 1. P→Q 4. ¬Q 7. ¬P Modus tollens Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  39. 39. Exemplo 39 Fatos transformados em proposições 1. P→Q 2. R∨S 3. R→T 4. ¬Q 5. U→X 6. S→P 1. P→Q 4. ¬Q 7. ¬P Modus tollens 6. S→P 7. ¬P Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  40. 40. Exemplo 40 Fatos transformados em proposições 1. P→Q 2. R∨S 3. R→T 4. ¬Q 5. U→X 6. S→P 1. P→Q 4. ¬Q 7. ¬P Modus tollens 6. S→P 7. ¬P 8. ¬S Modus tollens Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  41. 41. Exemplo 41 Fatos transformados em proposições 1. P→Q 2. R∨S 3. R→T 4. ¬Q 5. U→X 6. S→P 1. P→Q 4. ¬Q 7. ¬P Modus tollens 6. S→P 7. ¬P 8. ¬S Modus tollens 2. R∨S 8. ¬S Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  42. 42. Exemplo 42 Fatos transformados em proposições 1. P→Q 2. R∨S 3. RàT 4. ¬Q 5. U→X 6. S→P 1. P→Q 4. ¬Q 7. ¬P Modus tollens 6. S→P 7. ¬P 8. ¬S Modus tollens 2. R∨S 8. ¬S 9. R Silogismo disjun@vo 9. R→T 8. R Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  43. 43. Exemplo 43 Fatos transformados em proposições 1. P→Q 2. R∨S 3. R→T 4. ¬Q 5. U→X 6. S→P 1. P→Q 4. ¬Q 7. ¬P Modus tollens 6. S→P 7. ¬P 8. ¬S Modus tollens 2. R∨S 8. ¬S 9. R Silogismo disjun@vo 9. R→T 8. R 10. T Modus Ponens Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  44. 44. Exemplo 44 Fatos transformados em proposições 1. P→Q 2. R∨S 3. R→T 4. ¬Q 5. U→X 6. S→P 1. P→Q 4. ¬Q 7. ¬P Modus tollens 6. S→P 7. ¬P 8. ¬S Modus tollens 2. R∨S 8. ¬S 9. R Silogismo disjun@vo 9. R→T 8. R 10. T Modus Ponens Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  45. 45. Exemplo 45 Fatos transformados em proposições 1. P→Q 2. R∨S 3. R→T 4. ¬Q 5. U→X 6. S→P Variável Argumento P meus óculos estão na mesa da cozinha Q eu os vi no café da manhã R estava lendo o jornal na sala de estar S eu estava lendo o jornal na cozinha T meus óculos estão na mesa do café U eu estava lendo um livro na cama X meus óculos estão no criado-­‐mudo Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  46. 46. Prova de teoremas 46 OBJ E T IVO REVI S A R A S PRINCI P A I S T É CNICAS DE PROVA DE TEOREMAS Fundamentos de Teoria da Computação Eduardo Freire Nakamura (nakamura@icomp.ufam.edu.br)
  47. 47. Prova de teoremas 47 — Argumentação induLva ¡ Parte de dados da experiência para concluir que uma dada proposição, provavelmente, é verdadeira ¡ Exemplo: se em várias situações, sempre que P é verdade, Q também é, formula-­‐se a conjectura P→Q — Argumentação induLva é uma prova? Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  48. 48. Argumentação induLva 48 Considere o seguinte exemplo: Seja o polinômio p(x) = x2 + x + 41, então ∀x ∈ N, p(x) é primo? Verificando a conjectura observamos…. x 0 1 2 3 … 20 … 39 p(x) 41 43 47 53 … 461 … 1601 Todos primos! Parece verdade… Podemos assumir válida a conjectura? Não, p(40) = 1681 não é um número primo, 1681 = 41*41! Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  49. 49. Outro caso… 49 Em 1769, Euler conjecturou que a4 + b4 + c4 = d4 não Lnha solução no conjunto dos números inteiros posiLvos Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br) http://en.wikipedia.org/wiki/Leonhard_Euler http://www.log24.com/log/pix06/060410-Elkies3.jpg 218 anos depois, em 1987, Noam Elkies provou que a conjectura era falsa, pois 95.8004 + 217.5194 + 414.5604 = 422.4814
  50. 50. Mais um… 50 — Conjectura: 313(x3+y3) = z3 não tem solução no conjunto dos inteiros posiLvos ¡ Falso, mas o menor contra-­‐exemplo tem mais de 1000 dígitos ¡ O computador mais “poderoso” não seria capaz de obter essa solução usando uma estratégia exausLva Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  51. 51. O úlLmo teorema de Fermat 51 — Pierre de Fermat (1601/1607 – 1665) ¡ Advogado e, nas horas vagas, matemáLco ¡ Contribuições ÷ Cálculo infinitesimal ÷ Teoria dos números ÷ Gemoetria analíLca ÷ Probabilidade ÷ ÓLca ¡ Já como advogado … http://en.wikipedia.org/wiki/Pierre_de_Fermat Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  52. 52. O úlLmo teorema de Fermat 52 — Em 1637, ele escreveu o “úlLmo teorema de Fermat”, como uma nota parLcular nas margens da obra ArithmeLca, escrita pelo matemáLco grego Diophantus 300 anos A.C. “É impossível separar um cubo em dois cubos, ou uma quarta potência em duas quartas potências, ou em geral, qualquer potência maior que dois, em duas potências da mesma ordem. Eu descobri uma prova maravilhosa para este problema, mas não cabe nesta margem” Não existem inteiros posiLvos a, b, com n > 2 que saLsfaçam — Fermat morreu em 1665 sem revelar a sua maravilhosa prova! c e n, an = bn + cn Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  53. 53. O úlLmo teorema de Fermat 53 — Andrew Wiles provou o teorema em 1995* ¡ Trabalho de sete anos de pesquisa ¡ ArLgo de 108 páginas ¡ Introdução, cinco capítulos, mais apêndice http://en.wikipedia.org/wiki/Wiles'_proof_of_Fermat's_Last_Theorem Fermat's Last Theorem: The story of a riddle that confounded the world's greatest minds for 358 years Simon Singh *http://en.wikipedia.org/wiki/Wiles'_proof_of_Fermat's_Last_Theorem Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  54. 54. Um caso em aberto… 54 — Conjectura de Goldbach (1690–1764) ¡ 07/06/1742 carta para Euler ¡ “Todo inteiro par maior que 2 é a soma de dois primos” ¡ Verificada até 4x1018 (04/04/2012)* ¡ Para valores entre 4x1018 e ∞ ? *www.ieeta.pt/~tos/goldbach.html Imagem: h„p://en.wikipedia.org/wiki/Goldbach's_conjecture Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  55. 55. Por quê? 55 — Por que esses problemas são importantes? ¡ Achar soluções para tais equações é importante na área de curvas elípLcas ¡ Curvas elípLcas são importantes no estudo de fatoração de inteiros “grandes” ¡ Fatorar inteiros “grandes” é importante no estudo de sistemas criptográficos ¡ Criptografia é a base de todos os sistemas seguros de comunicação atualmente! Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  56. 56. Prova de teoremas 56 — Argumentação induLva ¡ Apenas para conjecturar — Argumentação deduLva ¡ Garante que se todas as premissas forem verdadeiras, a conclusão também o será; ¡ Exemplo: demonstrar P→Q (de conjectura, torna-­‐se teorema); ¡ Duas opções 1. Provar o teorema 2. Encontrar um contra-­‐exemplo Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  57. 57. Prova de teoremas 57 — Contra-­‐exemplo ¡ Apenas um é sufiente para provar a falsidade ¡ Se um contra-­‐exemplo não for encontrado, não há garanLas de que a conjectura é verdadeira — Encontre um contra-­‐exemplo para a conjectura ¡ Para todo inteiro posiLvo n, n! ≤ n2 ¡ Todo inteiro menor que 10 é maior do que 5 O que fazer quando não é possível encontrar um contra-­‐exemplo? Solução: Buscar uma prova Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  58. 58. O que é uma prova? 58 — Em Ciência, a verdade surge da experimentação — Na Lei, a verdade é avaliada por um julgamento e decidida por um juíz ou um júri — Em MatemáLca temos a prova ¡ Argumentação que mostra, de maneira indiscu‡vel, que uma afirmação é verdadeira ¡ As provas matemáLcas são estruturadas cuidadosamente e escritas em uma forma esLlizada Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  59. 59. Exemplo 59 — Hipótese — Todos números ímpares maiores que 1 são primos — MatemáLco — 3 é primo, 5 é primo, 7 é primo, mas 9 = 3*3, não é primo. Portanto, a hipótese é falsa! Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  60. 60. Exemplo 60 — Hipótese — Todos números ímpares maiores que 1 são primos — Físico experimental — 3 é primo, 5 é primo, 7 é primo, mas 9 não é primo, 11 é primo, 13 é primo. Portanto, 9 deve ser um erro experimental, e assim, a hipótese é verdadeira! Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  61. 61. Exemplo 61 — Hipótese — Todos números ímpares maiores que 1 são primos — Advogado — Senhores e senhoras do júri: não há dúvida que números ímpares são primos. A evidência é clara: 3 é primo, 5 é primo, 7 é primo, 9 é primo, 11 é primo, e assim por diante! Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  62. 62. Técnicas de prova: demonstração exausLva Obje/vo: Provar que P→Q — Abordagem ¡ Mostrar que P→Q para todos os elementos do domínio individualmente ¡ O domínio deve ser um conjunto finito Demonstração Prova: Sim, pois: ¡ 12 = 1 ≤ 10 + 5(1) = 15 ¡ 22 = 4 ≤ 10 + 5(2) = 20 ¡ 32 = 9 ≤ 10 + 5(3) = 25 ¡ 42 = 16 ≤ 10 + 5(4) = 30 ¡ 52 = 25 ≤ 10 + 5(5) = 35 62 Para qualquer inteiro posi@vo menor ou igual a 5, o quadrado do inteiro é menor ou igual à soma de 10 mais 5 vezes o inteiro? Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  63. 63. Técnicas de prova: falsidade por contra-­‐exemplo Obje/vo: Provar que P→Q — Abordagem ¡ Mostrar que P→Q para todos os elementos do domínio individualmente ¡ O domínio deve ser um conjunto finito Para qualquer inteiro posi@vo, o quadrado do inteiro é menor ou igual à soma de — Exemplo A Demonstração Prova: Não, pois 72 = 49 é maior que 10 + 5(7) = 45! Há outros contra-­‐exemplos? É preciso mostrar mais de um? 63 10 mais 5 vezes o inteiro? Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  64. 64. Técnicas de prova: direta Obje/vo: Provar que P→Q — Abordagem P→Q ¡ Supor P (hipótese) ¡ Derivar Q (tese) — Exemplo A Demonstração Prova: P (hipótese): x e y são inteiros pares Q (tese): xy é um inteiro par Sejam os inteiros pares x = 2m e y = 2n, onde m,n ∈ Z. Portanto, xy = (2m)(2n) = 2(2mn). Como 2mn é um inteiro, xy é um inteiro par. 64 Prove que o produto de dois inteiros pares é par. Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  65. 65. Técnicas de prova: direta Obje/vo: Provar que P→Q — Abordagem P→Q ¡ Supor P (hipótese) ¡ Derivar Q (tese) — Exemplo B Demonstração Prova: P (hipótese): x = 6k, k ∈ Z Q (tese): 2x = 4m, m ∈ Z Seja x = 6k, tal que k ∈ Z. Portanto, 2x = 2(6k) = 4(3k). Como 3k é inteiro, 2x é um inteiro divisível por 4. 65 Se um inteiro é divisível por 6, então duas vezes esse inteiro é divisível por 4. Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  66. 66. Técnicas de prova: pela contraposiLva Obje/vo: Provar que P→Q — Abordagem ¬Q→¬P ¡ Supor ¬Q (hipótese) ¡ Derivar ¬P (tese) — Exemplo A Demonstração Prova: ¬Q (hipótese): x é par ¬P (tese): x2 é par Seja x = 2k, tal que k ∈ Z. Portanto, x2 = (2k)2 = 2(2k2) . Como k2 é um inteiro, x2 é um inteiro par. Logo, se o quadrado de um inteiro é ímpar, então o inteiro tem que ser ímpar. 66 Se o quadrado de um inteiro é ímpar, então o inteiro tem que ser ímpar. Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  67. 67. Técnicas de prova: pela contraposiLva Obje/vo: Provar que P→Q — Abordagem ¬Q→¬P ¡ Supor ¬Q (hipótese) ¡ Derivar ¬P (tese) — Exemplo B Demonstração Prova: ¬Q (hipótese): a ou b divisíveis por k ¬P (tese): ab divisível por k Caso 1. Sejam a = mk e b, tais que m, k, b ∈ Z. Assim, ab = k(bm). Como bm é inteiro, ab é um inteiro divisível por k. Caso 2. Sejam b = nk e a, tais que a, n, k ∈ Z. Assim, ab = k(an). Como mb é inteiro, ab é um inteiro divisível por k. 67 Se o produto de dois inteiros a e b não é divisível por um inteiro k, então os dois inteiros a e b não são divisíveis por k. Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  68. 68. Técnicas de prova: por contradição Obje/vo: Provar que P→Q — Abordagem ¡ Supor P∧¬Q (hipótese) ¡ Derivar F, contradição (tese) — Exemplo A Demonstração Prova: Hipótese: x+x = x , x ≠ 0 Tese: F, uma contradição Seja x um inteiro. Por hipótese, x + x = x, ou seja, x = x – x e, portanto, x = 0. Mas por hipótese, x ≠ 0, uma contradição. 68 Se um inteiro somado a ele mesmo é igual a ele mesmo, então esse número é 0. Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  69. 69. Técnicas de prova: por contradição Obje/vo: Provar que P→Q — Abordagem ¡ Supor P∧¬Q (hipótese) ¡ Derivar F, contradição (tese) — Exemplo B Demonstração Prova: Hipótese: a, b ímpares, ab par Tese: F, uma contradição Sejam a = 2m+1 e b = 2n+1, tais que m, n ∈ Z. Portanto, ab = (2m+1)(2n +1) = 2(2mn + m + n) + 1. Como, m e n são inteiros, ab é um inteiro ímpar. Mas por hipótese, ab é par, uma contradição. 69 O produto de dois inteiros ímpares não é par. Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  70. 70. Exercício 70 Prove as seguintes proposições 1. Se n é um inteiro par, 4 ≤ n ≤ 12, então n é uma soma de dois números primos 2. A soma de um inteiro par com um inteiro ímpar é ímpar. 3. O produto de dois inteiros ímpares é ímpar. 4. O produto de dois inteiros consecuLvos é par. 5. Se a e b são números reais, tais que 0 < a < b, então a2 < b2. Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  71. 71. Conjuntos 71 OBJ E T IVO REVISAR OS CONCEITOS BÁSICOS D E CONJUNTOS Fundamentos de Teoria da Computação Eduardo Freire Nakamura (nakamura@icomp.ufam.edu.br)
  72. 72. Conjuntos 72 — Conjunto é uma abstração matemáLca que visa capturar o conceito de coleção ¡ Lista não ordenada de elementos ou membros ¡ {1, 2} = {2, 1} — Notação ¡ a ∈ A: a pertence ao conjunto A ¡ a ∉ A: a não pertence ao conjunto A — Exemplos ¡ {PAA, FTC, AED, IHC, ICC} ¡ {7, PAA, {1}, {FTC, 3, 4}} Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  73. 73. Tipos de conjuntos e conjuntos importantes 73 — Conjunto vazio: ∅ — Conjunto unitário — Conjunto finito e infinito — N: números naturais — Z: números inteiros — R: números reais — Q: números racionais — Notações ¡ { x | P(x) } ÷ Exemplo: { k | k = 2n+1 e n ∈ N } ¡ { x ∈ A|P(x) } ÷ Exemplo: { k ∈ R | 0 ≤ k ≤ 1 } Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  74. 74. Relações básicas entre conjuntos 74 Subconjunto: A ⊆ B se, e somente se, ∀x (x ∈ A → x ∈ B) Subconjunto próprio: A ⊂ B se, e somente se, A ⊆ B e A≠B • ∅ ⊆ A • ∅ ⊂ A se A ≠ ∅ • ∅ ⊄ ∅ • N ⊂ Z • N ⊆ Z+ • R ⊄ N Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  75. 75. Operações sobre conjuntos 75 h„p://namesonnodes.org/ns/math/2009/images/set-­‐operaLons.png União A ∪ B = { x | (x ∈ A) ∨ (x ∈ B) } Interseção A ∩ B = { x | (x ∈ A) ∧ (x ∈ B) } Diferença A B = { x | (x ∈ A) ∧ (x ∉ B) } Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  76. 76. Conuntos disjuntos Definição Exemplos Dois conjuntos A e B são disjuntos se, e somente se, A ∩ B = ∅ — {1,2,3} e {5,4,9} — ∅ e N — AB e BA — N e Z− 76 A B Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  77. 77. Algumas idenLdades 77 — IdenLdades sobre conjuntos ¡ A ∩ B = B ∩ A ¡ A ∪ B = B ∪ A ¡ A ∪ (B ∩ C) = (A ∪ B) ∩ (A ∪ C) ¡ A ∩ (B ∪ C) = (A ∩ B) ∪ (A ∩ C) ¡ (A = B) ↔ (A ⊆ B) ∧ (B ⊆ A) Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  78. 78. União e interseção generalizadas União de n conjuntos Ai n∪ i=1 = A1∪A2 ∪"∪An Interseção de n conjuntos 78 Ai n∩ i=1 = A1∩A2 ∩"∩An Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  79. 79. ParLção 79 Par/ção de um conjunto Uma parLção de A é um conjunto de subconjuntos de A dado por {B1, B2, …, Bn} tal que • Bi ≠ ∅, para 1 ≤ i ≤ n; • Bi∩ Bj = ∅, para 1 ≤ i < j ≤ n; • ∪1≤i≤n Bi = A Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  80. 80. Conjunto potência Definição Exemplo Conjunto potência de A, denotado por P (A) é o conjunto formado por todos os subconjuntos de A P (A) = { X | X ⊆ A} Que conjunto é P ({1,2,3}) ? { ∅, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3} } Se |A| denota o tamanho de A, qual é o valor de |P (A)|? |P (A)| = 2|A| 80 Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  81. 81. Produto cartesiano Definição Exemplos — Produto cartesiano entre dois conjuntos A e B, denotado por A×B é formado pelo conjunto de pares ordenados (a,b) tais que a ∈ A e b ∈ B, ou seja, — ∅ × {1,2} = ∅ — {1,2} × {3,4} = {(1,3), (1,4), (2,3), (2,4)} — |A × B| = |A|.|B|, se A e B finitos — An = A × A × ... × A (n vezes) 81 A×B = { (a,b) | a ∈ A ∧ b ∈ B } Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  82. 82. Relação e função 82 OBJ E T IVO REVE R OS CONCEITOS D E RELAÇÃO E FUNÇÃO Fundamentos de Teoria da Computação Eduardo Freire Nakamura (nakamura@icomp.ufam.edu.br)
  83. 83. O que é uma relação? Definição informal Exemplos — O que significa relacionar dois objetos? ¡ Comparar dois objetos segundo uma regra definida ¡ Relação é uma comparação entre dois “objetos” — MatemáLca ¡ “Menor do que” ¡ “Maior do que” ¡ “É paralelo à” ¡ “É um subconjunto de” 83 Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  84. 84. O que é uma relação? Definição formal Exemplo Relação de n argumentos sobre Subconjunto de A1 — Relação binária: R × A2 ⊆ A A1, A2, × … × B ¡ Domínio: A ¡ Contradomínio: B ¡ Imagem: { y | (x,y) ∈ …, An × An R para algum x } — Notação — Relação binária: < ⊆ N × N ¡ Domínio: N ¡ Contradomínio: N ¡ Imagem: N – {0} { y | (x,y) ∈ R para x menor que y } 84 (x,y) ∈ R ou x R y Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  85. 85. Tipos de relações binárias 85 A B A B um-­‐para-­‐um muitos-­‐para-­‐muitos A B A B muitos-­‐para-­‐um um-­‐para-­‐muitos Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  86. 86. Propriedades de uma relação 86 Quais as propriedades das relações abaixo? — > sobre N Reflexiva, Simétrica, va TransiLva? — ≥ sobre N Reflexiva, Simétrica, TransiLva va? — ⊆ sobre P (N) Simétrica, va Reflexiva, TransiLva? — = sobre N Reflexiva, Simétrica, TransiLva? Inversa de R R-­‐1 = { (y,x) | (x,y)} ∈ R } Propriedades de uma relação binária R ⊆ A × A - Reflexiva: ∀x ∈ A, xRx - Simétrica: ∀x,y ∈ A, (xRy à yRx) - TransiLva: ∀x,y,z ∈ A, (xRy ∧ yRz) à xRz va Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  87. 87. Função Função parcial Uma função f: tal que se (x,y) - (x,y) ∈ A→B é uma relação ∈ f e (x,z) ∈ f, então f é o mesmo que f(x) = y = y - f f ⊆ A×B, é indefinida para x, se não existe z y tal que f(x) = y - Função total definida ∀x no domínio - Função f: A1 ×…× An→ B de n argumentos Definição Exemplo 87 Função Total Parcial + : N × N → N * : N × N → N ÷ : N × N → N ÷ : N × Z+ → N ✗ ✗ ✗ ✗ Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  88. 88. Funções compostas Definição Exemplo 88 Composição de duas funções g e f g ! f = g( f (x)) f : Z→N, !tal!que!f (x) = x +1 g :N→Z, !tal!que!g(x) = 2 − x g ! f : Z→Z, !tal!que (g ! f )(x) = g( x +1) = 2 −( x +1) =1− x f ! g :N→N, !tal!que ( f ! g)(x) = f (2 − x) = 2 − x +1 Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  89. 89. Tipos de funções 89 Tipos de funções Uma função total f : A à B pode ser 1. Injetora ∀x,y ∈ A, [ x ≠ y → f(x) ≠ f(y) ] Exemplo: f : N à N, tal que f(x) = x + 1 2. Sobrejetora ∀y ∈ B, ∃x ∈ A, f(x) = y , ou seja, B é a imagem de f Exemplo: f : R → R+ ∪ {0}, tal que f(x) = x2 3. Bijetora f é injetora e sobrejetora Exemplo: f : R → R, tal que f(x) = x3 Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  90. 90. Conjuntos enumeráveis 90 OBJ E T IVO DEF INIR E APRENDER A RECONHECER CONJUNTOS ENUMERÁVE I S E NÃO ENUMERÁVE I S Fundamentos de Teoria da Computação Eduardo Freire Nakamura (nakamura@icomp.ufam.edu.br)
  91. 91. Conjunto enumerável 91 — Tamanho de um conjunto finito A ¡ Representado por |A| ¡ Corresponde ao número de elementos em A — Dados A = {1,2,3,4,5} e B = {a,b,c,d,e,f,g,h} ¡ Quem é maior A ou B? ¡ |A| = 5, |B| = 8 — E se A e B são infinitos? Como compara-­‐los? ¡ Quem é maior N ou Z? ¡ Quem é maior Z ou R? http://www.kaninekisses.com/sitebuilder/images/great_dane_and_chihuahua-325x245.png Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  92. 92. Conjunto enumerável 92 Cardinalidade Dois conjuntos uma função bijetora de - Se card(A) = A e B, possuem mesma cardinalidade, card(A) = card(B), se existe A para n, tal que n ∈ B N, ou ainda, card(A) = |A|, então A é finito - A é infinito se existe X ⊂ A, tal que card(X) = card(A) Conjunto enumerável e conjunto contável - Um conjunto A é dito enumerável, se card(A) = card(N) - Um conjunto A é dito contável, se A é finito ou enumerável Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  93. 93. Conjunto enumerável 93 Cardinalidade Dois conjuntos A e B, possuem mesma cardinalidade, card(A) = card(B), se existe uma função bijetora de A para B A é enumerável se existe uma bijeção f : N → A, ou uma bijeção f : A → N Conjunto enumerável e conjunto contável - Um conjunto A é dito enumerável, se card(A) = card(N) - Um conjunto A é dito contável, se A é finito ou enumerável Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  94. 94. Conjunto enumerável 94 Cardinalidade Dois conjuntos uma função bijetora de Se A e B, possuem mesma cardinalidade, card(A) = card(B), se existe A para B A é enumerável, então seus elementos podem ser colocados em sequência Conjunto enumerável e conjunto contável - Um conjunto A é dito enumerável, se card(A) = card(N) - Um conjunto A é dito contável, se A é finito ou enumerável Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  95. 95. Um exemplo 95 Z− à −1 −2 −3 −4 −5 −6 −7 −8 −9 −10 −11 −12 … −∞ N à 0 1 2 3 4 5 6 7 8 9 10 11 12 … ∞ Z+ ∪ {0} à 0 1 2 3 4 5 6 7 8 9 10 11 12 … ∞ A é enumerável se existe uma bijeção Se f : N → A, ou uma bijeção f : A → N A é enumerável, então seus elementos podem ser colocados em sequência Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  96. 96. Um exemplo 96 Z− à −1 −2 −3 −4 −5 −6 −7 −8 −9 −10 −11 −12 … −∞ N à ?? 0 1 2 3 4 5 6 7 8 9 10 11 12 … ∞ Z+ ∪ {0} à 0 1 2 3 4 5 6 7 8 9 10 11 12 … ∞ - N ⊂ Z, na verdade, Z = N ∪ Z− , então quem é maior? - Existe uma função bijetora de Z para N? - Qual sequência é possível formar? Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  97. 97. Z− à 97 −1 −2 -­‐3 −4 -­‐5 −6 −7 ... N à 0 1 2 3 4 5 6 7 8 9 10 11 12 13 ... Z+ ∪ {0} à 0 1 2 3 4 5 6 ... Um exemplo - N ⊂ Z, na verdade, Z = N ∪ Z− , então quem é maior? - Existe uma função bijetora de Z para N? - Qual sequência é possível formar? Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  98. 98. 98 A é enumerável, então seus elementos podem ser colocados em sequência Z colocado em uma sequência possível N à 0 1 2 3 4 5 6 7 8 9 10 11 12 13 ... Z à 0 −1 1 −2 2 −3 3 −4 4 −5 5 −6 6 −7 ... Um exemplo Se Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  99. 99. Um exemplo 99 A é enumerável, então seus elementos podem ser colocados em sequência 0 1 2 3 4 5 6 7 8 9 10 11 12 13 ... 0 −1 1 −2 2 −3 3 −4 4 −5 5 −6 6 −7 f :N→Z, !tal!que, f (x) = x 2 , se!x!é!par − x +1 2 , se!x!é!ímpar # %% $ %% & N à Z à ... Se Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  100. 100. Mais um exemplo 100 — O racionais posiLvos Q+ é enumerável? ¡ Q+ = { a/b | a ∈ N+ ∧ b ∈ N+ } ¡ Considere a função f : Q+ → N, bijetora, que mapeia a/b em um natural f(a,b) b 1 2 3 4 5 … a 1 0 1 3 6 10 … 2 2 4 7 11 … 3 5 8 12 … 4 9 13 … 5 14 … N … … Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  101. 101. Mais um exemplo 101 — O racionais posiLvos Q+ é enumerável? ¡ Q+ = { a/b | a ∈ N+ ∧ b ∈ N+ } ¡ Considere a função f : Q+ → N, bijetora, que mapeia a/b em um natural f(a,b) b 1 2 3 4 5 … a 1 0 1 3 6 10 … 2 2 4 7 11 … 3 5 8 12 … 4 9 13 … 5 14 … N … … N à 0 Q+ à 1/1 Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  102. 102. Mais um exemplo 102 — O racionais posiLvos Q+ é enumerável? ¡ Q+ = { a/b | a ∈ N+ ∧ b ∈ N+ } ¡ Considere a função f : Q+ → N, bijetora, que mapeia a/b em um natural f(a,b) b 1 2 3 4 5 … a 1 0 1 3 6 10 … 2 2 4 7 11 … 3 5 8 12 … 4 9 13 … 5 14 … N … … N à 0 1 Q+ à 1/1 1/2 Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  103. 103. Mais um exemplo 103 — O racionais posiLvos Q+ é enumerável? ¡ Q+ = { a/b | a ∈ N+ ∧ b ∈ N+ } ¡ Considere a função f : Q+ → N, bijetora, que mapeia a/b em um natural f(a,b) b 1 2 3 4 5 … a 1 0 1 3 6 10 … 2 2 4 7 11 … 3 5 8 12 … 4 9 13 … 5 14 … N … … N à 0 1 2 Q+ à 1/1 1/2 2/1 Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  104. 104. Mais um exemplo 104 — O racionais posiLvos Q+ é enumerável? ¡ Q+ = { a/b | a ∈ N+ ∧ b ∈ N+ } ¡ Considere a função f : Q+ → N, bijetora, que mapeia a/b em um natural f(a,b) b 1 2 3 4 5 … a 1 0 1 3 6 10 … 2 2 4 7 11 … 3 5 8 12 … 4 9 13 … 5 14 … N … … N à 0 1 2 3 Q+ à 1/1 1/2 2/1 1/3 Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  105. 105. Mais um exemplo 105 — O racionais posiLvos Q+ é enumerável? ¡ Q+ = { a/b | a ∈ N+ ∧ b ∈ N+ } ¡ Considere a função f : Q+ → N, bijetora, que mapeia a/b em um natural f(a,b) b 1 2 3 4 5 … a 1 0 1 3 6 10 … 2 2 4 7 11 … 3 5 8 12 … 4 9 13 … 5 14 … N … … N à 0 1 2 3 4 Q+ à 1/1 1/2 2/1 1/3 2/2 Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  106. 106. Mais um exemplo 106 — O racionais posiLvos Q+ é enumerável? ¡ Q+ = { a/b | a ∈ N+ ∧ b ∈ N+ } ¡ Considere a função f : Q+ → N, bijetora, que mapeia a/b em um natural f(a,b) b 1 2 3 4 5 … a 1 0 1 3 6 10 … 2 2 4 7 11 … 3 5 8 12 … 4 9 13 … 5 14 … N … … N à 0 1 2 3 4 5 Q+ à 1/1 1/2 2/1 1/3 2/2 3/1 Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  107. 107. Mais um exemplo 107 — O racionais posiLvos Q+ é enumerável? ¡ Q+ = { a/b | a ∈ N+ ∧ b ∈ N+ } ¡ Considere a função f : Q+ → N, bijetora, que mapeia a/b em um natural f(a,b) b 1 2 3 4 5 … a 1 0 1 3 6 10 … 2 2 4 7 11 … 3 5 8 12 … 4 9 13 … 5 14 … N … … f (a b) = N à (a + b −1)(a + b − 2) 2 +(a −1) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 ... Q+ à 1/1 1/2 2/1 1/3 2/2 3/1 1/4 2/3 3/2 4/1 1/5 2/4 3/3 4/2 ... Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  108. 108. Mais sobre conjuntos contáveis Teorema facilitador Propriedades As seguintes afirmações são equivalentes ¡ A é contável ¡ Existe uma função injetora de A para N ¡ A = ∅ ou existe uma função sobrejetora de N para A — Se A é contável, então X ⊆ A é contável — Se A e B são contáveis, então A×B é contável — Se A e B são contáveis, então A∪B é contável *Demonstre estas propriedades como exercício. 108 Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  109. 109. E os números reais? 109 — O conjunto dos números reais é contável? ¡ Não, não é possível enumerar todos os números reais — A prova, por contradição, foi proposta por Cantor em 1891 (Diagonal de Cantor) h„p://en.wikipedia.org/wiki/Georg_Cantor Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  110. 110. Diagonal de Cantor 110 1. Suponha que R é contável 2. Considere o conjunto R’ = { x ∈ R | 0 < x < 1 } 3. Note que R’ ⊆ R, portanto, se R é contável, então R’ é contável 4. Existe uma bijeção f : R’ → N que representa todos elementos de R’ como uma lista N R’ 0 r0 = 0 , d00 d01 d02 d03 … 1 r1 = 0 , d10 d11 d12 d13 … 2 r2 = 0 , d20 d21 d22 d23 … 3 r3 = 0 , d30 d31 d32 d33 … … … Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  111. 111. Diagonal de Cantor 111 4. Existe uma bijeção f : R’ → N que representa todos elementos de R’ como uma lista N R’ 0 r0 = 0 , d00 d01 d02 d03 … 1 r1 = 0 , d10 d11 d12 d13 … 2 r2 = 0 , d20 d21 d22 d23 … 3 r3 = 0 , d30 d31 d32 d33 … … … dij ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Por exemplo, se r0 = 0 , 1 0 2 4 9 2… então d00 = 1, d01 = 0, d02 = 2, d03 = 4, … Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  112. 112. Diagonal de Cantor 112 5. Agora é preciso construir um número que não esteja listado abaixo N R’ 0 r0 = 0 , d00 d01 d02 d03 … 1 r1 = 0 , d10 d11 d12 d13 … 2 r2 = 0 , d20 d21 d22 d23 … 3 r3 = 0 , d30 d31 d32 d33 … … … Considere o número a = 0,a0a1a2a3... tal que ai = 9 – dii Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  113. 113. Diagonal de Cantor 113 5. Agora é preciso construir um número que não esteja listado abaixo N R’ 0 r0 = 0 , d00 d01 d02 d03 … 1 r1 = 0 , d10 d11 d12 d13 … 2 r2 = 0 , d20 d21 d22 d23 … 3 r3 = 0 , d30 d31 d32 d33 … … … a = 0 , a0 a1 a2 a3 … Considere o número a = 0,a0a1a2a3... tal que ai = 9 – dii Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  114. 114. Diagonal de Cantor 114 5. Agora é preciso construir um número que não esteja listado abaixo N R’ 0 r0 = 0 , d00 d01 d02 d03 … 1 r1 = 0 , d10 d11 d12 d13 … 2 r2 = 0 , d20 d21 d22 d23 … 3 r3 = 0 , d30 d31 d32 d33 … … … ≠ a = 0 , a0 a1 a2 a3 … Considere o número (d00 ai = 9 – ≠ a0) a = 0,a0a1a2a3... dii → (a ≠ r0) tal que Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  115. 115. Diagonal de Cantor 115 5. Agora é preciso construir um número que não esteja listado abaixo N R’ 0 r0 = 0 , d00 d01 d02 d03 … 1 r1 = 0 , d10 d11 d12 d13 … 2 r2 = 0 , d20 d21 d22 d23 … 3 r3 = 0 , d30 d31 d32 d33 … … … ≠ ≠ a = 0 , a0 a1 a2 a3 … Considere o número (d11 ai = 9 – ≠ a1) a = 0,a0a1a2a3... dii → (a ≠ r1) tal que Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  116. 116. Diagonal de Cantor 116 5. Agora é preciso construir um número que não esteja listado abaixo N R’ 0 r0 = 0 , d00 d01 d02 d03 … 1 r1 = 0 , d10 d11 d12 d13 … 2 r2 = 0 , d20 d21 d22 d23 … 3 r3 = 0 , d30 d31 d32 d33 … … … ≠ ≠ ≠ a = 0 , a0 a1 a2 a3 … Considere o número (d22 ai = 9 – ≠ a2) a = 0,a0a1a2a3... dii → (a ≠ r2) tal que Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  117. 117. Diagonal de Cantor 117 5. Agora é preciso construir um número que não esteja listado abaixo N R’ 0 r0 = 0 , d00 d01 d02 d03 … 1 r1 = 0 , d10 d11 d12 d13 … 2 r2 = 0 , d20 d21 d22 d23 … 3 r3 = 0 , d30 d31 d32 d33 … … … ≠ ≠ ≠ ≠ a = 0 , a0 a1 a2 a3 … Considere o número (d33 ai = 9 – ≠ a3) a = 0,a0a1a2a3... dii → (a ≠ r3) tal que Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  118. 118. Diagonal de Cantor 118 5. Agora é preciso construir um número que não esteja listado abaixo N R’ 0 r0 = 0 , d00 d01 d02 d03 … 1 r1 = 0 , d10 d11 d12 d13 … 2 r2 = 0 , d20 d21 d22 d23 … 3 r3 = 0 , d30 d31 d32 d33 … … … ≠ ≠ ≠ ≠ … a = 0 , a0 a1 a2 a3 … Considere o número tal que ∀i ∈ ai N, (dii a = 0,a0a1a2a3... = 9 – ≠ ai) dii → (a ≠ ri) Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  119. 119. Diagonal de Cantor 119 6. Assim, a ∈ R’ não está mapeado na bijeção f : R’ → N, uma contradição. Portanto, R’ não é contável. N R’ 0 r0 = 0 , d00 d01 d02 d03 … 1 r1 = 0 , d10 d11 d12 d13 … 2 r2 = 0 , d20 d21 d22 d23 … 3 r3 = 0 , d30 d31 d32 d33 … … … ≠ ≠ ≠ ≠ … a = 0 , a0 a1 a2 a3 … Considere o número tal que ∀i ∈ ai N, (dii a = 0,a0a1a2a3... = 9 – ≠ ai) dii → (a ≠ ri) Logo, a ∈ R’, mas não está na lista com, supostamente, todos os elementos de R’, uma contradição !? Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  120. 120. Diagonal de Cantor 120 7. Como, R’ ⊆ R não é contável, R também não é contável. N R’ 0 r0 = 0 , d00 d01 d02 d03 … 1 r1 = 0 , d10 d11 d12 d13 … 2 r2 = 0 , d20 d21 d22 d23 … 3 r3 = 0 , d30 d31 d32 d33 … … … ≠ ≠ ≠ ≠ … a = 0 , a0 a1 a2 a3 … Considere o número tal que ∀i ∈ ai N, (dii a = 0,a0a1a2a3... = 9 – ≠ ai) dii → (a ≠ ri) Logo, a ∈ R’, mas não está na lista com, supostamente, todos os elementos de R’, uma contradição !? Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  121. 121. Outro exemplo 121 — Considere o conjunto F de todas as funções totais f : N → N — F é finito? ¡ Infinito! ¡ Prove como exercício — F é enumerável? ¡ Não! ¡ É incontável Prova por contradição usando a diagonal de Cantor Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  122. 122. Outro exemplo 122 1. Suponha que F é contável 2. Existe uma bijeção g : F → N que ordena os elementos de F como uma lista g N 0 1 2 3 … F f0 f0(0) f0(1) f0(2) f0(3) … f1 f1(0) f1(1) f1(2) f1(3) … f2 f2(0) f2(1) f2(2) f2(3) … f3 f3(0) f3(1) f3(2) f3(3) … … … … … … Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  123. 123. Outro exemplo 123 3. É preciso encontrar uma função total h : N→N, tal que h ∈ F mas não está na lista abaixo g N 0 1 2 3 … F f0 f0(0) f0(1) f0(2) f0(3) … f1 f1(0) f1(1) f1(2) f1(3) … f2 f2(0) f2(1) f2(2) f2(3) … f3 f3(0) f3(1) f3(2) f3(3) … … … … … … Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  124. 124. Outro exemplo 124 3. É preciso encontrar uma função total h : N→N, tal que h ∈ F mas não está na lista abaixo g N 0 1 2 3 … F f0 f0(0) f0(1) f0(2) f0(3) … f1 f1(0) f1(1) f1(2) f1(3) … f2 f2(0) f2(1) f2(2) f2(3) … f3 f3(0) f3(1) f3(2) f3(3) … … … … … … h h(0) h(1) h(2) h(3) … Considere h : N→N, tal que h(i) = fi(i) + 1 Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  125. 125. Outro exemplo 125 3. É preciso encontrar uma função total h : N→N, tal que h ∈ F mas não está na lista abaixo g N 0 1 2 3 … F f0 f0(0) f0(1) f0(2) f0(3) … f1 f1(0) f1(1) f1(2) f1(3) … f2 f2(0) f2(1) f2(2) f2(3) … f3 f3(0) f3(1) f3(2) f3(3) … … … … … … ≠ h h(0) h(1) h(2) h(3) … Considere h(i) = ( h(0) ≠ h : fi(i) f0(0) N→N, tal que ) + 1 → ( h ≠ f0 ) Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  126. 126. Outro exemplo 126 3. É preciso encontrar uma função total h : N→N, tal que h ∈ F mas não está na lista abaixo g N 0 1 2 3 … F f0 f0(0) f0(1) f0(2) f0(3) … f1 f1(0) f1(1) f1(2) f1(3) … f2 f2(0) f2(1) f2(2) f2(3) … f3 f3(0) f3(1) f3(2) f3(3) … … … … … … ≠ ≠ h h(0) h(1) h(2) h(3) … Considere h(i) = ( h(1) ≠ h : fi(i) f1(1) N→N, tal que ) + 1 → ( h ≠ f1 ) Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  127. 127. Outro exemplo 127 3. É preciso encontrar uma função total h : N→N, tal que h ∈ F mas não está na lista abaixo g N 0 1 2 3 … F f0 f0(0) f0(1) f0(2) f0(3) … f1 f1(0) f1(1) f1(2) f1(3) … f2 f2(0) f2(1) f2(2) f2(3) … f3 f3(0) f3(1) f3(2) f3(3) … … … … … … ≠ ≠ ≠ h h(0) h(1) h(2) h(3) … Considere h(i) = ( h(2) ≠ h : fi(i) f2(2) N→N, tal que ) + 1 → ( h ≠ f2 ) Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  128. 128. Outro exemplo 128 3. É preciso encontrar uma função total h : N→N, tal que h ∈ F mas não está na lista abaixo g N 0 1 2 3 … F f0 f0(0) f0(1) f0(2) f0(3) … f1 f1(0) f1(1) f1(2) f1(3) … f2 f2(0) f2(1) f2(2) f2(3) … f3 f3(0) f3(1) f3(2) f3(3) … … … … … … ≠ ≠ ≠ ≠ h h(0) h(1) h(2) h(3) … Considere h(i) = ( h(3) ≠ h : fi(i) f3(3) N→N, tal que ) + 1 → ( h ≠ f3 ) Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  129. 129. Outro exemplo 129 3. É preciso encontrar uma função total h : N→N, tal que h ∈ F mas não está na lista abaixo g N 0 1 2 3 … F f0 f0(0) f0(1) f0(2) f0(3) … f1 f1(0) f1(1) f1(2) f1(3) … f2 f2(0) f2(1) f2(2) f2(3) … f3 f3(0) f3(1) f3(2) f3(3) … … … … … … ≠ ≠ ≠ ≠ … h h(0) h(1) h(2) h(3) … Considere h(i) = ∀i ∈ h : N, N→N, tal que fi(i) ( + 1 h ≠ fi ) Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  130. 130. Outro exemplo 130 4. Logo, h ∈ F, mas não está mapeada por g : F → N, uma contradição. Portanto, F não é contável. g N 0 1 2 3 … F f0 f0(0) f0(1) f0(2) f0(3) … f1 f1(0) f1(1) f1(2) f1(3) … f2 f2(0) f2(1) f2(2) f2(3) … f3 f3(0) f3(1) f3(2) f3(3) … … … … … … ≠ ≠ ≠ ≠ … h h(0) h(1) h(2) h(3) … Considere h : N→N, tal que h(i) = fi(i) + 1 ∀i ∈ N, ( h ≠ fi ) Logo, h ∈ F, mas não está na lista com, supostamente, todos os elementos de F, uma contradição !? Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  131. 131. Exercício de fixação 131 — Mostre que os conjuntos abaixo são enumeráveis (encontre uma bijeção sobre os naturais) 1. Z+ = {1, 2, 3, 4, …} 2. N {1, 2, 3} 3. Naturais Pares 4. Naturais Ímpares 5. Inteiros Pares — Mostre que os conjuntos abaixo não são enumeráveis 1. P (N) 2. O conjunto B de todas as sequências infinitas de 0’s ou 1’s Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  132. 132. Recursividade e Indução MatemáLca 132 OBJ E T IVO APRENDER A DEF INIR CONJUNTOS RECURSIVAMENTE APRENDER A PROVAR PROPRIEDADES SOBRE OS INTEIROS USANDO INDUÇÃO MATEMÁTICA Fundamentos de Teoria da Computação Eduardo Freire Nakamura (nakamura@icomp.ufam.edu.br)
  133. 133. O que é uma definição recursiva? Definição 133 Definição Recursiva do Conjunto A a) Base: especificação de B ⊂ A b) Passo Recursivo: como obter elementos de A a parLr de outros elementos de A c) Fechamento: só pertencem a A, os elementos obLdos através dos passos (a) ou (b). Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  134. 134. O que é uma definição recursiva? Definição 134 Definição Recursiva do Conjunto A a) Base: especificação de B ⊂ A b) Passo Recursivo: como obter elementos de A a parLr de outros elementos de A c) Fechamento: só pertencem a A, os elementos obLdos através dos passos (a) ou (b). Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  135. 135. O que é uma definição recursiva? Definição É possível definir recursivamente qualquer conjunto enumerável! 135 Definição Recursiva do Conjunto A a) Base: especificação de B ⊂ A b) Passo Recursivo: como obter elementos de A a parLr de outros elementos de A c) Fechamento: só pertencem a A, os elementos obLdos através dos passos (a) ou (b). Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  136. 136. O que é uma definição recursiva? Definição Exemplo 01: Números naturais 136 Definição Recursiva do Conjunto A a) Base: especificação de B ⊂ A b) Passo Recursivo: como obter elementos de A a parLr de outros elementos de A c) Fechamento: só pertencem a A, os elementos obLdos através dos passos (a) ou (b). Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  137. 137. O que é uma definição recursiva? Definição Exemplo 01: Números naturais Definição a) 0 ∈ N b) Se n ∈ N, então n + 1 ∈ N c) Só pertencem a N, os números gerados usando (a) ou (b). 137 Definição Recursiva do Conjunto A a) Base: especificação de B ⊂ A b) Passo Recursivo: como obter elementos de A a parLr de outros elementos de A c) Fechamento: só pertencem a A, os elementos obLdos através dos passos (a) ou (b). Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  138. 138. O que é uma definição recursiva? Definição Exemplo 02: Fatorial Definição – fat : N → N a) fat(0) = 1 b) ∀n ∈ N, fat(n+1) = n * fat(n−1) c) implícito 138 Definição Recursiva do Conjunto A a) Base: especificação de B ⊂ A b) Passo Recursivo: como obter elementos de A a parLr de outros elementos de A c) Fechamento: só pertencem a A, os elementos obLdos através dos passos (a) ou (b). Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  139. 139. O que é uma definição recursiva? Definição Exemplo 03: Exponencial an Definição – an : N → N a) a0 = 1 b) ∀n ∈ N, an+1 = a × an c) implícito 139 Definição Recursiva do Conjunto A a) Base: especificação de B ⊂ A b) Passo Recursivo: como obter elementos de A a parLr de outros elementos de A c) Fechamento: só pertencem a A, os elementos obLdos através dos passos (a) ou (b). Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  140. 140. O que é uma definição recursiva? Definição Exemplo 04: Ling. Proposicional Definição – Ling. proposicional (LP) a) Toda a variável lógica está na LP b) Se P e Q, estão na LP, então também estão na LP: ¡ ¬P ¡ P∧Q ¡ P∨Q ¡ P→Q ¡ P↔Q c) implícito 140 Definição Recursiva do Conjunto A a) Base: especificação de B ⊂ A b) Passo Recursivo: como obter elementos de A a parLr de outros elementos de A c) Fechamento: só pertencem a A, os elementos obLdos através dos passos (a) ou (b). Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  141. 141. Indução matemáLca 141 h„p://meangreenmath.files.wordpress.com/2013/08/dominoes.jpg Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  142. 142. Princípio da indução Nono axioma de Giuseppe Peano — Se K é um conjunto tal que 1. 0 (zero) está pertence a K 2. Para todo natural k ÷ Se k está conLdo em K, ÷ Então o sucessor de k está em K — Então K contém todos os números naturais 142 h„p://en.wikipedia.org/wiki/Giuseppe_Peano Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  143. 143. Princípio da indução Reformulando... — Se P é um predicado tal que 1. P(0) é verdade 2. ∀k ∈ N, P(k) → P(k+1) — Então, P(n) é verdadeiro para todo n ∈ N 143 h„p://en.wikipedia.org/wiki/Giuseppe_Peano Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  144. 144. Princípio da indução Reformulando... — Se P é um predicado tal que 1. P(0) é verdade 2. ∀k ∈ N, P(k) → P(k+1) — Então, P(n) é verdadeiro para todo n ∈ N 144 É possível provar propriedades para conjuntos enumeráveis usando indução matemáLca! Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  145. 145. Princípio da indução fraca Definição Estrutura de demonstração Princípio da indução faca Se ① P(0)* ② ∀n, P(n) → P(n+1) Então ü ∀n, P(n) 1. Provar P(0) (caso base) 2. Seja n ≥ 0 abitrário 3. Suponha P(n) (hipótese de indução) 4. Provar P(n+1) 5. Concluir ∀n, P(n) Os passos (2) a (4) são chamados de passo induLvo 145 *Primeiro elemento do conjunto, não necessariamente 0 (zero) Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  146. 146. Princípio da indução fraca Exemplo 01 146 Prove que para todo n ∈ Z+, temos que a soma 1 + 3 + 5 +…+ (2n–1) = n2. 1. Caso base n = 1 ¡ 1 = 12 (divisível por 3) 2. Passo induLvo ¡ Hipótese: S(n) = 1+3+5+…+(2n – 1) = n2 ¡ Tese: S(n+1) = 1+3+5+…+(2n–1)+[2(n+1) – 1] = (n+1)2 S(n+1) = 1 + 3 + 5 +…+ (2n-­‐1) + [2(n+1) – 1] S(n) + [2(n+1) – 1] n2 + [2(n+1) – 1] n2 + [2n + 2 – 1] n2 + 2n + 1 (n + 1)2 Por definição S(n) = 1 + 3 + 5 +…+ (2n – 1) Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  147. 147. Princípio da indução fraca Exemplo 01 147 Prove que para todo n ∈ Z+, temos que a soma 1 + 3 + 5 +…+ (2n–1) = n2. 1. Caso base n = 1 ¡ 1 = 12 (divisível por 3) 2. Passo induLvo ¡ Hipótese: S(n) = 1+3+5+…+(2n – 1) = n2 ¡ Tese: S(n+1) = 1+3+5+…+(2n–1)+[2(n+1) – 1] = (n+1)2 S(n+1) = 1 + 3 + 5 +…+ (2n-­‐1) + [2(n+1) – 1] = S(n) + [2(n+1) – 1] n2 + [2(n+1) – 1] n2 + [2n + 2 – 1] n2 + 2n + 1 Por (hni p+ ó1t)e2 se de indução S(n) = n2 Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  148. 148. Princípio da indução fraca Exemplo 01 148 Prove que para todo n ∈ Z+, temos que a soma 1 + 3 + 5 +…+ (2n–1) = n2. 1. Caso base n = 1 ¡ 1 = 12 (divisível por 3) 2. Passo induLvo ¡ Hipótese: S(n) = 1+3+5+…+(2n – 1) = n2 ¡ Tese: S(n+1) = 1+3+5+…+(2n–1)+[2(n+1) – 1] = (n+1)2 S(n+1) = 1 + 3 + 5 +…+ (2n-­‐1) + [2(n+1) – 1] = S(n) + [2(n+1) – 1] = n2 + [2(n+1) – 1] n2 + [2n + 2 – 1] n2 + 2n + 1 (n + 1)2 Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  149. 149. Princípio da indução fraca Exemplo 01 149 Prove que para todo n ∈ Z+, temos que a soma 1 + 3 + 5 +…+ (2n–1) = n2. 1. Caso base n = 1 ¡ 1 = 12 (divisível por 3) 2. Passo induLvo ¡ Hipótese: S(n) = 1+3+5+…+(2n – 1) = n2 ¡ Tese: S(n+1) = 1+3+5+…+(2n–1)+[2(n+1) – 1] = (n+1)2 S(n+1) = 1 + 3 + 5 +…+ (2n-­‐1) + [2(n+1) – 1] = S(n) + [2(n+1) – 1] = n2 + [2(n+1) – 1] = n2 + [2n + 2 – 1] n2 + 2n + 1 (n + 1)2 Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  150. 150. Princípio da indução fraca Exemplo 01 150 Prove que para todo n ∈ Z+, temos que a soma 1 + 3 + 5 +…+ (2n–1) = n2. 1. Caso base n = 1 ¡ 1 = 12 (divisível por 3) 2. Passo induLvo ¡ Hipótese: S(n) = 1+3+5+…+(2n – 1) = n2 ¡ Tese: S(n+1) = 1+3+5+…+(2n–1)+[2(n+1) – 1] = (n+1)2 S(n+1) = 1 + 3 + 5 +…+ (2n-­‐1) + [2(n+1) – 1] = S(n) + [2(n+1) – 1] = n2 + [2(n+1) – 1] = n2 + [2n + 2 – 1] = n2 + 2n + 1 (n + 1)2 Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  151. 151. Princípio da indução fraca Exemplo 01 S(n+1) = 1 + 3 + 5 +…+ (2n-­‐1) + [2(n+1) – 1] = S(n) + [2(n+1) – 1] = n2 + [2(n+1) – 1] = n2 + [2n + 2 – 1] = n2 + 2n + 1 = (n + 1)2 Logo, para todo n ∈ Z+, temos que 1 + 3 + 5 +…+ (2n–1) = n2. 151 Prove que para todo n ∈ Z+, temos que a soma 1 + 3 + 5 +…+ (2n–1) = n2. 1. Caso base n = 1 ¡ 1 = 12 (divisível por 3) 2. Passo induLvo ¡ Hipótese: S(n) = 1+3+5+…+(2n – 1) = n2 ¡ Tese: S(n+1) = 1+3+5+…+(2n–1)+[2(n+1) – 1] = (n+1)2 Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  152. 152. Princípio da indução fraca Exemplo 02 22(n+1) – 1 = 22n+2 – 1 Logo, para todo 22n (22) – 1 22n (4) – 1 (3m+1)(4) – 1 3m(4) + 4 – 1 3(4m) + 3 3(4m + 1) n ∈ Z+, o número 22n – 1 é divisível por 3 152 Prove que para todo n ∈ Z+, o número 22n – 1 é divisível por 3. 1. Caso base n = 1 ¡ 22(1) – 1 = 4 – 1 = 3 (divisível por 3) 2. Passo induLvo ¡ Hipótese: 22n – 1 = 3m, para m,n ∈ Z+ ¡ Tese: 22(n+1) – 1 = 3k Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  153. 153. Princípio da indução fraca Exemplo 02 22(n+1) – 1 = 22n+2 – 1 Logo, para todo 22n (22) – 1 22n (4) – 1 (3m+1)(4) – 1 3m(4) + 4 – 1 3(4m) + 3 3(4m + 1) n ∈ Z+, o número 22n – 1 é divisível por 3 153 Prove que para todo n ∈ Z+, o número 22n – 1 é divisível por 3. 1. Caso base n = 1 ¡ 22(1) – 1 = 4 – 1 = 3 (divisível por 3) 2. Passo induLvo ¡ Hipótese: 22n – 1 = 3m, para m,n ∈ Z+ ¡ Tese: 22(n+1) – 1 = 3k Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  154. 154. Princípio da indução fraca Exemplo 02 22(n+1) – 1 = 22n+2 – 1 = 22n (22) – 1 Logo, para todo 22n (4) – 1 (3m+1)(4) – 1 3m(4) + 4 – 1 3(4m) + 3 3(4m + 1) n ∈ Z+, o número 22n – 1 é divisível por 3 154 Prove que para todo n ∈ Z+, o número 22n – 1 é divisível por 3. 1. Caso base n = 1 ¡ 22(1) – 1 = 4 – 1 = 3 (divisível por 3) 2. Passo induLvo ¡ Hipótese: 22n – 1 = 3m, para m,n ∈ Z+ ¡ Tese: 22(n+1) – 1 = 3k Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  155. 155. Princípio da indução fraca Exemplo 02 22(n+1) – 1 = 22n+2 – 1 = 22n (22) – 1 Logo, para todo 22n (4) – 1 (3m+1)(4) – 1 3m(4) + 4 – 1 3(4m) + 3 3(4m + 1) n ∈ Z+, o número 22n – 1 é divisível por 3 155 Prove que para todo n ∈ Z+, o número 22n – 1 é divisível por 3. 1. Caso base n = 1 ¡ 22(1) – 1 = 4 – 1 = 3 (divisível por 3) 2. Passo induLvo ¡ Hipótese: 22n – 1 = 3m, para m,n ∈ Z+ ¡ Tese: 22(n+1) – 1 = 3k Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  156. 156. Princípio da indução fraca Exemplo 02 22(n+1) – 1 = 22n+2 – 1 = 22n (22) – 1 Logo, para todo 22n (4) – 1 22n (3 + 1) – 1 3(22n) + 22n – 1 3(22n) + 3m 3(22n + m) n ∈ Z+, o número 22n – 1 é divisível por 3 156 Prove que para todo n ∈ Z+, o número 22n – 1 é divisível por 3. 1. Caso base n = 1 ¡ 22(1) – 1 = 4 – 1 = 3 (divisível por 3) 2. Passo induLvo ¡ Hipótese: 22n – 1 = 3m, para m,n ∈ Z+ ¡ Tese: 22(n+1) – 1 = 3k Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  157. 157. Princípio da indução fraca Exemplo 02 22(n+1) – 1 = 22n+2 – 1 = 22n (22) – 1 Por hipótese de indução: 22n – 1 = 3m Logo, para todo 22n (4) – 1 22n (3 + 1) – 1 3(22n) + 22n – 1 3(22n) + 3m 3(22n + m) n ∈ Z+, o número 22n – 1 é divisível por 3 157 Prove que para todo n ∈ Z+, o número 22n – 1 é divisível por 3. 1. Caso base n = 1 ¡ 22(1) – 1 = 4 – 1 = 3 (divisível por 3) 2. Passo induLvo ¡ Hipótese: 22n – 1 = 3m, para m,n ∈ Z+ ¡ Tese: 22(n+1) – 1 = 3k Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  158. 158. Princípio da indução fraca Exemplo 02 22(n+1) – 1 = 22n+2 – 1 = 22n (22) – 1 Logo, para todo 22n (4) – 1 22n (3 + 1) – 1 3(22n) + 22n – 1 3(22n) + 3m 3(22n + m) n ∈ Z+, o número 22n – 1 é divisível por 3 158 Prove que para todo n ∈ Z+, o número 22n – 1 é divisível por 3. 1. Caso base n = 1 ¡ 22(1) – 1 = 4 – 1 = 3 (divisível por 3) 2. Passo induLvo ¡ Hipótese: 22n – 1 = 3m, para m,n ∈ Z+ ¡ Tese: 22(n+1) – 1 = 3k Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  159. 159. Princípio da indução fraca Exemplo 02 22(n+1) – 1 = 22n+2 – 1 = 22n (22) – 1 k = (22n + m) ∈ Z+ Logo, para todo 22n (4) – 1 22n (3 + 1) – 1 3(22n) + 22n – 1 3(22n) + 3m 3(22n + m) n ∈ Z+, o número 22n – 1 é divisível por 3 159 Prove que para todo n ∈ Z+, o número 22n – 1 é divisível por 3. 1. Caso base n = 1 ¡ 22(1) – 1 = 4 – 1 = 3 (divisível por 3) 2. Passo induLvo ¡ Hipótese: 22n – 1 = 3m, para m,n ∈ Z+ ¡ Tese: 22(n+1) – 1 = 3k Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  160. 160. Princípio da indução fraca Exemplo 02 22(n+1) – 1 = 22n+2 – 1 = 22n (22) – 1 Logo, para todo 22n (4) – 1 22n (3 + 1) – 1 3(22n) + 22n – 1 3(22n) + 3m 3(22n + m) n ∈ Z+, o número 22n – 1 é divisível por 3. 160 Prove que para todo n ∈ Z+, o número 22n – 1 é divisível por 3. 1. Caso base n = 1 ¡ 22(1) – 1 = 4 – 1 = 3 (divisível por 3) 2. Passo induLvo ¡ Hipótese: 22n – 1 = 3m, para m,n ∈ Z+ ¡ Tese: 22(n+1) – 1 = 3k Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  161. 161. Princípio da indução forte Definição Estrutura de demonstração Princípio da indução faca Se ① [P(0) ∧ P(1) ∧...∧ P(k)] → P(k+1)* Então ü ∀n, P(n) 1. Seja n ≥ 0 abitrário 2. Suponha ∀k < n, P(k) (hipótese de indução) 3. Provar P(k+1) 4. Concluir ∀n, P(n) 161 *Primeiro elemento do conjunto, não necessariamente 0 (zero) Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  162. 162. Princípio da indução forte Exemplo 01 1: (k+1) é primo Neste caso (k+1) = (k+1)(1), produto de dois primos. Caso 162 Prove que todo n > 1 ∈ Z+ pode ser escrito como o produto de números primos. 1. Caso base n = 2 ¡ 2 = 2(1) (produto de dois primos) 2. Passo induLvo ¡ Hipótese: todo 2 ≤ r ≤ k , pode ser escrito como o produto de primos ¡ Tese: (k + 1) pode ser escrito como o produto de primos Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  163. 163. Princípio da indução forte Exemplo 01 Caso 2: (k+1) não é primo Se (k+1) não é primo, então (k+1) é composto, ou seja, (k+1) = ab, tal que 2 ≤ a ≤ b ≤ k. Por hipótese, todo 2 ≤ r ≤ k , é o produto de primos. Logo, a e b podem ser escrito como produtos de números primos. Portanto, (k+1) também pode! 163 Prove que todo n > 1 ∈ Z+ pode ser escrito como o produto de números primos. 1. Caso base n = 2 ¡ 2 = 2(1) (produto de dois primos) 2. Passo induLvo ¡ Hipótese: todo 2 ≤ r ≤ k , pode ser escrito como o produto de primos ¡ Tese: (k + 1) pode ser escrito como o produto de primos Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  164. 164. Princípio da indução forte Exemplo 02 Por hipótese, temos que ¡ (k – 3) pode ser escrito como a soma de 4’s e 5’s ¡ Afinal, 12 ≤ (k – 3) ≤ k. Note que (k + 1) = (k – 3) + 4. Portanto, (k + 1) também pode ser escrito como a soma de 4’s e 5’s. 164 Prove que todo n ≥ 12 ∈ Z+ pode ser obLdo somando-­‐se 4’s e 5’s. 1. Caso base n = 12, 13, 14, 15 ¡ 12 = 4 + 4 + 4 13 = 4 + 4 + 5 ¡ 14 = 4 + 5 + 5 15 = 5 + 5 + 5 2. Passo induLvo ¡ Hipótese: todo 12 ≤ r ≤ k é a soma de 4’s e 5’s, onde k ≥ 15 ¡ Tese: (k + 1) é a soma de 4’s e 5’s Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)
  165. 165. Exercícios de fixação 165 1. Prove que para todo n ∈ Z+ nΣ temos que . 2i i=0 = 2n+1 −1 2. Prove que que 11n − 6 é divisível por 5 qualquer n ∈ Z+. 3. Prove que todo n ≥ 8 ∈ Z+ pode ser obLdo somando-­‐se 3’s e 5’s. 0, !se!n = 0 1, !se!n =1 # $ % & % 4. A função de Fibonacci é dada por F(n) = . F(n −1)+ F(n − 2), !se!n ≥ 2 1 5 ( n 1+ 5 ! $ n − 1− 5 ! $ ** + -- Prove que F(n) = . 2 " # % & 2 " # % & ) , Eduardo Freire Nakamura (nakamura@Fundamentos de Teoria da Computação icomp.ufam.edu.br)

×