Escolar Documentos
Profissional Documentos
Cultura Documentos
2020/01
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 1 / 64
Terminologia, Técnicas de Prova, Enumerabilidade
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 2 / 64
Noções e Terminologia
Matemáticas
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 3 / 64
Conjuntos
Um conjunto é uma coleção de objetos, chamados de elementos ou
membros do conjunto.
Conjuntos podem conter qualquer tipo de objeto, como números, sı́mbolos, e
até outros conjuntos.
Conjuntos podem ser descritos formalmente de várias maneiras, como:
1 Listando seus elementos entre chaves:
{a, b, c}.
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 4 / 64
Conjuntos
Os sı́mbolos ∈ e ∈
/ denotam pertinência e não-pertinência a conjuntos,
respectivamente:
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 6 / 64
Conjuntos
Sendo A, B subconjuntos do conjunto universal U, definimos as operações:
União: A∪B = {x ∈ U | x ∈ A ∨ x ∈ B}
Alternativamente: x ∈A∪B ↔ x ∈A ∨ x ∈B
Sn
Notação: i=1 Ai = A1 ∪ A2 ∪ . . . ∪ An
Interseção: A∩B = {x ∈ U | x ∈ A ∧ x ∈ B}
Alternativamente: x ∈A∩B ↔ x ∈A ∧ x ∈B
Tn
Notação: i=1 Ai = A1 ∩ A2 ∩ . . . ∩ An
Diferença: A−B = {x ∈ U | x ∈ A ∧ x 6∈ B}
Alternativamente: x ∈A−B ↔ x ∈ A ∧ x 6∈ B
Complemento: A = {x ∈ U | x 6∈ A}
Alternativamente: x ∈A ↔ x 6∈ A
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 7 / 64
Conjuntos
P(S) = {∅, {x}, {y }, {z}, {x, y }, {x, z}, {y , z}, {x, y , z}}.
2 P(∅) = {∅}.
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 8 / 64
Sequência e tuplas
Uma sequência de objetos é uma lista ordenada destes objetos.
Normalmente representamos sequências como uma lista entre parênteses:
(a, b, c).
A × B = {(1, a), (1, b), (1, c), (2, a), (2, b), (2, c)}
B × A = {(a, 1), (a, 2), (b, 1), (b, 2), (c, 1), (c, 2)}
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 10 / 64
Sequências e tuplas
O produto cartesiano (ou produto cruzado) de vários conjuntos
A1 , A2 , . . . , An , denotado por
A1 × A2 × . . . × An ,
é o conjunto de todas as n-tuplas ordenadas (a1 , a2 , . . . , an ), onde ai ∈ Ai
para i = 1 . . . n.
Formalmente:
A1 × A2 × . . . × An = {(a1 , a2 , . . . , an ) | ai ∈ Ai para i = 1 . . . n}
f (a) = b
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 12 / 64
Funções e relações
f :A→B
para denotar o tipo da função.
O conjunto A é chamado de domı́nio de f .
O conjunto B é chamado de co-domı́nio ou contra-domı́nio de f .
A imagem de f é o conjunto de valores que f pode assumir:
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 13 / 64
Funções e relações
Exemplo 3 Sejam os conjuntos A = {x, y , z} e B = {1, 2, 3, 4}.
Seja a função f : A → B definida pelo diagrama abaixo.
f (x) = 2 f (z) = 2
f (y ) = 4
Imagem inversa de 1: ∅
Imagem inversa de 2: {x, z}
Imagem inversa de 3: ∅
Imagem inversa de 4: {y }
2 2 + 2 = 4 é o mesmo que
= (2 + 2, 4) = verdadeiro.
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 16 / 64
Funções e relações
Exemplo 4 Seja a relação R no conjunto dos reais tal que a R b se, e
somente se, a − b é um inteiro. R é uma relação de equivalência?
∀a ∈ R : a R a.
∀a, b ∈ R : a R b → b R a.
∀a, b, c ∈ R : (a R b) ∧ (b R c) → (a R c).
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 17 / 64
Grafos
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 18 / 64
Grafos
Um grafo G = (V , E ) é um
subgrafo de um grafo H =
(V 0 , E 0 ) se:
1. V ⊆ V 0 , e
2. E ⊆ E 0 .
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 19 / 64
Grafos
Um caminho em um grafo é
uma sequência de vértices co-
nectados por arestas.
Um caminho simples é um ca-
minho que não repete nenhum
vértice.
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 21 / 64
Grafos
V = {1, 2, 3, 4, 5, 6} é o conjunto de
vértices,
E = { (1, 2), (1, 5), (2, 1),
(2, 4), (5, 4), (5, 6), (6, 1), (6, 3) }
é o conjunto de arestas direcionadas.
Conjunção Disjunção
Negação p q p∧q p q p∨q
p ¬p T T T T T T
T F T F F T F T
F T F T F F T T
F F F F F F
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 23 / 64
Definições, Teoremas e
Provas
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 24 / 64
Definições e Provas: Terminologia
Uma definição é uma descrição de objetos ou noções que usamos.
Um enunciado matemático, no geral, é uma afirmação de que um objeto
tem uma certa propriedade.
Uma prova é uma demonstração matemática da certeza a respeito de um
enunciado matemático.
O nı́vel de detalhamento de uma prova pode depender do tipo de leitor ao
qual ela se destina, levando em conta fatores como:
1. o conhecimento do leitor;
2. a maturidade do leitor;
3. o nı́vel de rigor almejado.
um quadradinho , ou
a abreviação Q.E.D. (do latim “quod erat demonstrandum”), ou
sua tradução em português, C.Q.D. (“conforme querı́amos demonstrar”).
Escreva a prova de tal forma que ela seja autocontida. Use linguagem natural
(português) de forma clara, empregando sentenças completas e bem
estruturadas. Podem-se utilizar fórmulas matemáticas, equações, etc.,
quando necessário.
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 27 / 64
Como escrever uma prova
Identifique cada variável usada na prova juntamente com seu tipo. Exs.:
Importante:
O objetivo principal de uma prova é convencer o leitor de que o resultado
(teorema, proposição, lema) é verdadeiro.
Não basta que você mesmo esteja convencido!
Certifique-se de que está sendo conciso, mas claro.
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 28 / 64
Como escrever uma prova: Exemplo
Exemplo 5 Mostre que se m e n são quadrados perfeitos, então mn é um
quadrado perfeito.
(Obs: Um inteiro a é um quadrado perfeito se existe um inteiro b tal que
a = b 2 .)
mn = s 2t 2 = (st)2 .
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 30 / 64
Técnicas de prova
Existem, entretanto, técnicas que são úteis para provar uma grande
quantidade de afirmações.
Aqui vamos rever as seguintes técnicas de prova:
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 31 / 64
Prova por construção
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 32 / 64
Prova por construção: Exemplo
Exemplo 6 Mostre que para cada número par n maior que 2, existe um
grafo 3-regular com n vértices.
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 34 / 64
Prova por contradição: Exemplo
√
Exemplo 7 Mostre que 2 é irracional.
√
Prova. Suponha o contrário do que queremos provar, ou seja, que 2 é
racional.
√
Neste caso, existem p, q ∈ Z, com mdc(p, q) = 1, tais que 2 = p/q.
Elevando os dois lados ao quadrado, obtemos 2 = p 2 /q 2 , ou seja, p 2 = 2q 2 .
Note que 2q 2 é par, portanto pela igualdade acima p 2 também tem que ser
par. Isto implica que p deve ser par.
Agora, já que p é par, existe algum s ∈ Z tal que p = 2s. Isso implica que
2q 2 = p 2 = (2s)2 = 4s 2 , o que resulta em q 2 = 2s 2 . Note que então q 2 é
par, portanto q deve ser par.
Mas se ambos p e q são pares, isto contradiz a suposição de que o
mdc(p, q) = 1: encontramos uma contradição.
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 35 / 64
Prova por indução
Imagine que você esteja diante de uma escada de infinitos degraus, e você se
pergunta: “Será que eu consigo alcançar qualquer degrau dessa escada?”
Logo, você pode concluir que pode alcançar todos os degraus da escada!
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 36 / 64
Prova por indução
Para mostrar que uma propriedade P(n) vale para todos os inteiros positivos
n, uma prova que utilize o princı́pio da indução matemática (fraca)
possui duas partes:
Prova por indução fraca:
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 37 / 64
Prova por indução: Exemplo
Exemplo 8 Mostre que para todo inteiro não-negativo n,
Pn i n+1
i=0 2 = 2 − 1.
Pn
Prova. Seja P(n) a proposição “ i=0 2i = 2n+1 − 1”.
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 38 / 64
Prova por indução: Exemplo
Exemplo 8 (Continuação)
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 39 / 64
Prova por indução: Exemplo
Exemplo 8 (Continuação)
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 40 / 64
Erros comuns em provas
Pular para uma conclusão; ou alegar a verdade de alguma coisa sem dar uma
razão adequada.
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 41 / 64
Enumerabilidade
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 42 / 64
Cardinalidade de conjuntos
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 43 / 64
Cardinalidade de conjuntos infinitos
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 44 / 64
Cardinalidade de conjuntos infinitos
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 45 / 64
Infinito bizarro: O Hotel de Hilbert
Exemplo 11 Imagine um hotel com infinitos quartos acomodando infinitos
hóspedes, de modo que cada quarto esteja ocupado por um único hóspede.
Suponha que um novo hóspede chegue ao hotel procurando por um quarto.
É possı́vel acomodar este novo hóspede em algum quarto, sem expulsar
nenhum hóspede que já estava no hotel?
Solução.
Se o hotel tivesse um número finito de quartos, a resposta seria negativa...
Mas o Hotel de Hilbert tem infinitos quartos... E o infinito é bizarro!
Podemos acomodar o novo hóspede se fizermos cada hóspede em um quarto n
mudar-se para o quarto n + 1:
o hóspede do quarto 1 muda-se para o quarto 2,
o hóspede do quarto 2 muda-se para o quarto 3,
o hóspede do quarto 3 muda-se para o quarto 4,
etc...
Assim podemos acomodar o novo hóspede no quarto 1!
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 46 / 64
Infinito bizarro: O Hotel de Hilbert
Exemplo 12 Imagine ainda o mesmo hotel com infinitos quartos
acomodando infinitos hóspedes, estando um hóspede em cada quarto.
Suponha que é alta-estação, e um ônibus trazendo um número infinito de
hóspedes chega ao hotel, todos procurando por um quarto.
É possı́vel acomodar todos os infinitos hóspedes em algum quarto, sem
expulsar nenhum hóspede que já estava no hotel?
Solução.
Sim! Podemos acomodar os infinitos hóspedes assim se fizermos cada hóspede
em um quarto n mudar-se para o quarto 2n:
o hóspede do quarto 1 muda-se para o quarto 2,
o hóspede do quarto 2 muda-se para o quarto 4,
o hóspede do quarto 3 muda-se para o quarto 6,
etc...
Solução.
Desafio para o aluno!
(Dica: é possı́vel. E, dependendo de como você fizer, ainda sobram quartos!)
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 48 / 64
Cardinalidade de conjuntos
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 49 / 64
Conjuntos enumeráveis
Um conjunto é chamado enumerável ou contável se ele é finito ou se ele
possui a mesma cardinalidade que o conjunto dos inteiros positivos Z+ .
Caso contrário o conjunto é chamado não-enumerável ou não-contável.
Solução.
Considere a bijeção entre os dois conjuntos:
P: 2 4 6 8 10 ...
l l l l l
Z+ : 1 2 3 4 5 ...
Esta bijeção é uma maneira de enumerar ou contar os elementos de P:
2, 4, 6, 8, 10, . . .
+
Podemos mostrar a bijeção de Z para P, ou inversamente a bijeção de P
para Z+ .
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 50 / 64
Conjuntos enumeráveis
Solução.
Considere a bijeção entre os dois conjuntos:
Z: ... −3 −2 −1 0 1 2 3 ...
l l l l l l l
Z+ : ... 7 5 3 1 2 4 6 ...
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 51 / 64
Conjuntos enumeráveis
Exemplo 16 O conjunto Q+ dos racionais positivos é enumerável?
Num./Den. 1 2 3 4 5 ...
2 2/1 3 2/2 ×
2/3 7 2/4 ×
2/5 . . . ...
4 4/1 9 4/2 ×
4/3 . . . 4/4 . . . 4/5 . . . ...
Logo Q+ é enumerável.
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 52 / 64
Conjuntos enumeráveis
Exemplo 17 O conjunto Q de todos os racionais é enumerável?
Solução.
Método 1: Adaptando a técnica do exemplo anterior, fazemos linhas e
colunas corresponderem todos os inteiros positivos e negativos. A tabela
abaixo mostra uma bijeção entre Q (frações) e Z+ (números circulados). (As
frações não-simplificadas são redundantes e não entram na bijeção.)
Num./Den. 1 2 3 4 5 ...
0 0/1 1 0/2 ×
0/3 ×
0/4 ×
0/5 × ...
Logo Q é enumerável.
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 53 / 64
Conjuntos enumeráveis
Exemplo 17 (Continuação)
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 55 / 64
Propriedades dos conjuntos enumeráveis
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 56 / 64
Um conjunto não enumerável: R
Prova. Por contradição. Suponha que [0, 1) seja enumerável. Então, por
definição de enumerabilidade, existe uma lista r1 , r2 , r3 , . . . , ri , . . . em que
constam todos os elementos de [0, 1).
Esta lista pode ser representada por uma matriz, em que cada linha
representa um número real em [0, 1), ordenada de acordo com a enumeração
acima, e cada coluna representa os dı́gitos decimais deste número.
Mais precisamente, já que cada ri nesta lista pertence ao intervalo [0, 1),
podemos escrever
ri = 0 . ri1 ri2 ri3 . . . rin . . . ,
onde rin é o n-ésimo dı́gito decimal do número ri .
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 57 / 64
Um conjunto não enumerável: R
Prova (Continuação).
Esta tabela tem o formato abaixo:
Enumeração 1o dec. 2o dec. 3o dec. ... n-ésimo dec. ...
r1 r11 r12 r13 ... r1n ...
r2 r21 r22 r23 ... r2n ...
r3 r31 r32 r33 ... r3n ...
.. .. .. .. .. .. ..
. . . . . . .
ri ri1 ri2 ri3 ... rin ...
.. .. .. .. .. .. ..
. . . . . . .
Mas note que o número rα não pode estar na lista, pois ele é diferente de
todos os demais números da lista (para qualquer ri na lista, o i-ésimo dı́gito
de rα é diferente do i-ésimo dı́gito de ri , logo temos que rα 6= ri ).
Logo, a lista não pode estar completa, pois rα não se encontra nela, e
chegamos a uma contradição.
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 59 / 64
Um conjunto não enumerável: R
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 60 / 64
Apêndice -
O Teorema de Cantor
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 61 / 64
O Teorema de Cantor
Uma das contribuições mais relevantes de Cantor foi mostrar que existem
infinitos de tamanhos diferentes.
Em particular, os reais têm cardinalidade maior que os naturais.
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 62 / 64
O Teorema de Cantor
Prova.
Primeiro vamos mostrar que a cardinalidade de A não pode ser maior que a
de seu conjunto potência P(A).
Para isto, basta notar que existe uma função injetiva f : A → P(A) definida
como f (a) = {a} para todo a ∈ A. Logo, P(A) tem pelo menos tantos
elementos quando A.
O segundo passo da prova é mostrar que a cardinalidade de A não pode igual
à de seu conjunto potência P(A).
Para isto, vamos mostrar que nenhuma função f de um conjunto A para seu
conjunto potência P(A) pode ser bijetiva.
Fundamentos de Teoria da Computação Terminologia, Técnicas de Prova, Enumerabilidade Área de Teoria DCC/UFMG - 2020/01 63 / 64
O Teorema de Cantor
Demonstração. (Continuação)
B = {a ∈ A | a ∈
/ f (a)}.
Como B ∈ P(A), então deve existir um x ∈ A tal que f (x) = B, uma vez
que f é bijetiva.
Há duas possibilidades a se considerarem:
1. Se x ∈ B, então x ∈
/ f (x), ou seja, x ∈
/ B, o que é uma contradição.
2. Se x ∈
/ B, então x ∈ f (x), ou seja, x ∈ B, o que é uma contradição.