0% acharam este documento útil (0 voto)
5 visualizações205 páginas

Fundamentos da Matemática Discreta

Enviado por

Lucas Carvalho
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
5 visualizações205 páginas

Fundamentos da Matemática Discreta

Enviado por

Lucas Carvalho
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

See discussions, stats, and author profiles for this publication at: [Link]

net/publication/352648056

Introdução à Matemática Discreta

Technical Report · June 2021


DOI: 10.13140/RG.2.2.17791.94882

CITATIONS READS

0 7,144

1 author:

Alexandre L M Levada
Federal University of São Carlos
156 PUBLICATIONS 492 CITATIONS

SEE PROFILE

All content following this page was uploaded by Alexandre L M Levada on 29 September 2025.

The user has requested enhancement of the downloaded file.


Introdução à Matemática Discreta

Apostila sobre fundamentos teóricos, exercícios e aplicações

Prof. Alexandre L. M. Levada


Departamento de Computação - UFSCar

28 de setembro de 2025
Prefácio

A Matemática Discreta é uma das bases fundamentais da formação em Computação, Engenharia e


áreas afins. Trata-se de um ramo da matemática que lida com estruturas discretas e contáveis, como
conjuntos, relações, grafos e algoritmos, conceitos essenciais para compreender o mundo digital que
nos cerca.
Esta apostila nasceu da experiência acumulada ao longo de anos de ensino da disciplina em cursos
de graduação. Ao longo desse tempo, percebi que muitos estudantes enfrentam dificuldades não
apenas por causa da complexidade dos conteúdos, mas também por não enxergarem, de imediato, sua
utilidade prática. O objetivo, portanto, foi escrever uma obra que alia rigor teórico a uma abordagem
pedagógica clara, motivada por exemplos concretos, aplicações computacionais e problemas bem
contextualizados.
A apostila é destinada a estudantes iniciantes, mas também pode servir como material de apoio
para professores e profissionais que desejam revisar os fundamentos da área. Os capítulos foram
organizados de forma progressiva, respeitando a curva de aprendizado, e cada tópico é acompanhado
de exemplos resolvidos, exercícios propostos e, sempre que possível, conexões com aplicações reais.
Esta apostila não pretende esgotar o tema, mas oferecer uma base sólida para que o leitor de-
senvolva o pensamento matemático necessário para enfrentar desafios mais avançados. Mais do que
decorar fórmulas, o objetivo é cultivar a capacidade de abstração, o raciocínio lógico e a habilidade
de resolver problemas com criatividade e precisão.
A apostila apresenta uma introdução clara, progressiva e aplicada à Matemática Discreta, com
foco nos fundamentos que sustentam a formação teórica em Computação. Seu conteúdo foi planejado
para um curso semestral, abordando os tópicos mais relevantes ao desenvolvimento do raciocínio
lógico, formalismo matemático e abstração computacional. A seguir os tópicos selecionados são
listados em ordem de aparição:

1. Métodos de Prova: explora as diversas técnicas formais de demonstração matemática: direta,


contrapositiva, contradição, vacuidade e equivalência lógica. Essencial para fundamentar o
raciocínio dedutivo e formar a base da linguagem matemática formal.

2. Indução Matemática: apresenta o princípio da indução e suas variantes, com aplicações em


somatórios, desigualdades e identidades. Instrumento fundamental para provar propriedades
sobre conjuntos infinitos enumeráveis, como sequências e fórmulas recursivas.

3. Conjuntos: introduz conceitos fundamentais como união, interseção, diferença, complemen-


tar, produto cartesiano, conjuntos potência e diagramas de Venn. Serve como base para prati-
camente toda a estrutura matemática formal, lógica e computacional.

1
4. Relações: aborda relações binárias e suas propriedades (reflexividade, simetria, transitividade,
antissimetria), fundamentais para modelar estruturas em bancos de dados, linguagens formais,
autômatos e redes.

5. Relações de Equivalência: estuda particionamentos induzidos por relações de equivalência,


importantes para a classificação de objetos e construção de classes em lógica e álgebra.

6. Relações de Ordem Parcial: explora ordens parciais e totais, Hasse diagrams e máximos/mí-
nimos. Essencial para organizar elementos em estruturas hierárquicas, como em sistemas de
arquivos e ordenações de tarefas.

7. Funções: estuda injetividade, sobrejetividade, bijetividade, inversas e composição de funções.


Funções são a base para toda a modelagem computacional de entrada-saída, transformações e
algoritmos.

8. Somatórios: apresenta técnicas para manipular e simplificar somatórios, incluindo progressões


aritméticas, geométricas e somas telescópicas. Fundamentais para análise de algoritmos.

9. Sequências e Relações de Recorrência: aborda definição de sequências e resolução de recor-


rências, com destaque para sequências aritméticas, geométricas e de Fibonacci. Aplicadas em
modelagem algorítmica e análise assintótica.

10. Grafos e Fundamentos Básicos: apresenta grafos, multigrafos, laços, graus dos vértices, ca-
minhos e ciclos. Elementares para representação de redes e estruturas em algoritmos.

11. Árvores: estuda árvores, árvores binárias, folhas e propriedades estruturais. Essenciais para
algoritmos de busca, estruturas de dados e hierarquias.

12. Grafos Eulerianos e Hamiltonianos: apresenta condições de existência de caminhos/circuitos


Eulerianos e Hamiltonianos, com aplicações em problemas de roteamento e otimização.

13. Grafos Planares: discute planificação de grafos e o Teorema de Euler, úteis em redes elétricas,
circuitos e computação gráfica.

14. Coloração de Vértices: introduz problemas de coloração de vértices, número cromático e


aplicações em alocação de recursos, escalonamento e teoria de complexidade.

Espero que esta obra contribua para tornar o estudo da Matemática Discreta mais acessível, inte-
ressante e prazeroso, despertando no leitor o desejo de ir além e explorar as inúmeras possibilidades
que esta área oferece.

Bons estudos!

2
Sumário
1 Métodos de prova 5
1.1 Prova Direta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Prova por Contrapositiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Prova por Redução ao Absurdo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Demonstrações do tipo se e somente se . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5 Demonstração por vacuidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.6 A conjectura de Goldbach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 O princípio da indução matemática 16


2.1 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3 Introdução à teoria dos conjuntos 26


3.1 Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2 Definindo conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3 Operações entre conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.4 Princípio da inclusão-exclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.5 Propriedades de operações entre conjuntos . . . . . . . . . . . . . . . . . . . . . . . 38
3.5.1 Identidades notáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.6 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4 Relações 44
4.1 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5 Relações de equivalência 58
5.1 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

6 Relações de ordem parcial 66


6.1 Representação gráfica de conjuntos parcialmente ordenados . . . . . . . . . . . . . . 70
6.2 Reticulados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6.3 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

7 Funções 83
7.1 Contando o número de funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
7.2 Propriedades de funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
7.2.1 Contagem de funções injetoras . . . . . . . . . . . . . . . . . . . . . . . . . 90
7.2.2 Contagem de funções sobrejetoras . . . . . . . . . . . . . . . . . . . . . . . 91
7.3 Composição de funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
7.4 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

3
8 Somatórios 99
8.1 Representando somatórios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
8.2 Propriedades de somatórios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
8.3 Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

9 Sequências e relações de recorrência 109


9.1 Recorrências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
9.2 O Problema da torre de Hanói . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
9.3 Recorrências de primeira ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
9.4 Recorrências lineares homogêneas de segunda ordem . . . . . . . . . . . . . . . . . 118
9.5 A sequência de Fibonacci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
9.6 Recorrências lineares homogêneas de ordem 𝐾 . . . . . . . . . . . . . . . . . . . . 128
9.6.1 Divisão de polinômios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
9.7 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

10 Teoria dos grafos: fundamentos básicos e conectividade 133


10.1 Passeios, trilhas e caminhos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
10.2 Conectividade em grafos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
10.3 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

11 Teoria dos grafos: o problema do isomorfismo 144


11.1 Propriedades invariantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
11.2 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

12 Teoria dos grafos: árvores 152


12.1 O código de Prüfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
12.2 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

13 Teoria dos grafos: grafos Eulerianos e Hamiltonianos 162


13.1 Grafos Eulerianos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
13.2 Grafos Hamiltonianos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
13.3 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

14 Teoria dos grafos: grafos planares 174


14.1 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

15 Teoria dos grafos: coloração de vértices 184


15.1 Algoritmos para coloração de vértices . . . . . . . . . . . . . . . . . . . . . . . . . 188
15.2 Polinômio cromático . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
15.2.1 O teorema fundamental da redução . . . . . . . . . . . . . . . . . . . . . . 198
15.3 Considerações finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

4
1 Métodos de prova
Os métodos de prova constituem a base do raciocínio matemático rigoroso e desempenham um
papel essencial tanto na Matemática quanto na Computação. Provar uma afirmação significa de-
monstrar, de maneira lógica e fundamentada, que ela é verdadeira em todos os casos possíveis. Esse
processo não apenas garante a validade de teoremas, mas também desenvolve a capacidade de argu-
mentação formal e a precisão no uso da linguagem, habilidades indispensáveis para qualquer cientista,
engenheiro ou programador. Em Computação, métodos de prova são aplicados, por exemplo, na ve-
rificação de algoritmos, na análise de corretude de programas, na definição de linguagens formais e
na fundamentação de estruturas abstratas como autômatos e sistemas lógicos.
Diferentes estratégias podem ser adotadas para conduzir uma prova, como os métodos direto,
por contrapositiva, por contradição, por indução e por vacuidade. A escolha do método adequado
depende da estrutura lógica da proposição e do conhecimento disponível. Dominar essas técnicas
é um passo fundamental para a construção do pensamento dedutivo e para o desenvolvimento da
autonomia intelectual necessária para resolver problemas complexos. Assim, o estudo dos métodos
de prova vai muito além de uma formalidade acadêmica: ele capacita o aluno a pensar com clareza,
justificar suas ideias com solidez e construir soluções robustas em ambientes computacionais.
Na matemática, conceitos como conjectura, teorema, lema e corolário representam diferentes
tipos de afirmações dentro de um sistema lógico, cada uma com um papel específico na construção
do conhecimento matemático:

• Conjectura: é uma proposição que se acredita ser verdadeira com base em observações, expe-
rimentos ou padrões identificados, mas que ainda não foi provada rigorosamente. Conjecturas
são frequentemente pontos de partida para investigações matemáticas. Um exemplo clássico
é a Conjectura de Goldbach, que afirma que todo número par maior que 2 é a soma de dois
números primos, ainda sem demonstração formal.

• Teorema: é uma proposição matemática que foi demonstrada com base em axiomas, definições
e teoremas anteriores. Uma vez provado, o teorema torna-se uma verdade incontestável dentro
do sistema lógico adotado. Teoremas são os principais resultados buscados na matemática.

• Lema: é um resultado auxiliar, geralmente mais simples, cuja função principal é ajudar na
prova de um teorema mais importante. Embora possa parecer menos relevante isoladamente, o
lema é muitas vezes indispensável para o encadeamento lógico de uma demonstração.

• Corolário: é um resultado que decorre de maneira imediata de um teorema já demonstrado.


Sua prova é geralmente simples ou direta, pois aproveita diretamente as conclusões do teorema
do qual é consequência.

Essas categorias ajudam a organizar o conhecimento matemático e a estruturar o processo de


construção lógica das teorias.

5
Do ponto de vista matemático, uma definição é uma sentença que estabelece com precisão o
significado de um termo ou conceito dentro de um determinado contexto teórico. Seu objetivo é
eliminar ambiguidades, especificando de forma clara e inequívoca os critérios que determinam se um
objeto ou estrutura possui determinada propriedade.
Ao contrário de um teorema, que precisa ser provado, uma definição é uma convenção adotada
como ponto de partida. Ela não é verdadeira nem falsa, é uma forma de dar nome e estrutura a ideias
matemáticas que queremos estudar. Por exemplo, ao definir que um número natural 𝑛 é par se existe
um número natural 𝑘 tal que 𝑛 = 2𝑘, estamos apenas escolhendo uma forma precisa de identificar os
números pares com base em uma propriedade específica.
Definições são fundamentais na matemática porque servem como blocos de construção conceitual:
a partir delas, é possível formular conjecturas, enunciar teoremas e construir provas com base em
regras bem estabelecidas.
A seguir, veremos diversas definições básicas sobre a teoria dos números.

Definição 1. Para todo 𝑛, 𝑝 ∈ N, dizemos que 𝑛 é um múltiplo de 𝑝 se e somente se existe um 𝑞 ∈ N


tal que 𝑛 = 𝑞𝑝.

Definição 2. Para todo 𝑛, 𝑝 ∈ N, dizemos que 𝑝 divide 𝑛 se e somente se 𝑛 é múltiplo de 𝑝.

Definição 3. Para todo 𝑛 ∈ N, 𝑛 é par se e somente se existe 𝑘 ∈ N tal que 𝑛 = 2𝑘.

Definição 4. Para todo 𝑛 ∈ N, 𝑛 é ímpar se e somente se existe 𝑘 ∈ N tal que 𝑛 = 2𝑘 + 1.

Definição 5. Para todo 𝑛 ∈ N, 𝑛 é primo se e somente se 𝑛 > 1 e 𝑛 não tem divisor maior que 1,
exceto o próprio 𝑛.

Definição 6. Para todo 𝑚, 𝑛 ∈ N, 𝑚 e 𝑛 são coprimos se e somente se o único divisor comum é 1.

Em alguns casos, é necessário mostrar que uma afirmação é falsa, o que, em geral, é bem mais
simples do que provar sua veracidade, pois basta encontrarmos um contra-exemplo. Considere a
seguinte proposição. Ela é verdadeira ou falsa?

∀𝑎, 𝑏 ∈ Z 𝑎2 = 𝑏2 → 𝑎 = 𝑏
(︀ )︀
(1)

É trivial provar que essa afirmação é falsa, bastando para isso considerar um caso em que 𝑎2 = 𝑏2
seja verdadeiro, mas 𝑎 = 𝑏 seja falso. Seja 𝑎 = 1 e 𝑏 = −1. Com isso, teremos um caso particular
para o qual a afirmação não é verdade. Isso é o suficiente para demonstrar que ela é falsa. Porém, para
provar que uma afirmação do tipo ∀𝑥 ∈ 𝑁 (𝑃 (𝑥) → 𝑄(𝑥)) é verdadeira, não basta selecionarmos um
ou mais casos e verificar que ela é verdadeira. Isso não é suficiente! Precisamos mostrar que ela é
verdadeira para todos os possíveis elementos do conjunto 𝑁 .

6
1.1 Prova Direta
A prova direta é uma das formas mais elementares e fundamentais de demonstrar a veracidade
de uma proposição matemática. Nesse método, parte-se da hipótese assumida como verdadeira e,
por meio de uma sequência de deduções lógicas válidas, chega-se à conclusão desejada. Trata-se de
um raciocínio do tipo “se p, então q”, em que cada passo é justificado com base em definições, pro-
priedades conhecidas, axiomas ou resultados previamente demonstrados. A simplicidade conceitual
da prova direta a torna uma ferramenta indispensável no aprendizado matemático, pois desenvolve a
clareza no raciocínio e o domínio sobre a estrutura lógica dos argumentos. É amplamente utilizada na
demonstração de propriedades numéricas, identidades algébricas, propriedades de conjuntos, funções
e estruturas discretas.

Teorema 1. Para todo 𝑚, 𝑛 ∈ N, se 𝑚 e 𝑛 são pares, então 𝑚 + 𝑛 é par.

1. Suponha 𝑚, 𝑛 ∈ N e pares (hipótese)

2. Então, temos que ∃𝑟, 𝑠 ∈ N tal que 𝑚 = 2𝑟 e 𝑛 = 2𝑠.

3. Assim, 𝑚 + 𝑛 = 2𝑟 + 2𝑠 = 2(𝑟 + 𝑠).

4. Fazendo 𝑡 = 𝑟 + 𝑠, sabemos que 𝑡 ∈ N.

5. Portanto, como ∃𝑡 ∈ N tal que 𝑚 + 𝑛 = 2𝑡, segue que 𝑚 + 𝑛 é par.

Outra definição importante é a que define o que são números racionais. Dizemos que um número
é racional se ele pode ser expresso pela divisão de 2 inteiros. De modo mais formal, temos a seguinte
definição.

Definição 7. Para todo 𝑥 ∈ R, 𝑥 é racional se e somente se existem 𝑎, 𝑏 ∈ N, tais que 𝑥 = 𝑎𝑏 , com


𝑏 ̸= 0 e de modo que 𝑎 e 𝑏 não possuem fatores comuns (são coprimos).

Teorema 2. Para todo 𝑥, 𝑦 ∈ R, se 𝑥 e 𝑦 são racionais, então 𝑥 + 𝑦 é racional.

1. Suponha 𝑥, 𝑦 ∈ R racionais (hipótese)


𝑎 𝑐
2. Então, podemos expressar 𝑥 = 𝑏
e𝑦= 𝑑
com 𝑎, 𝑏, 𝑐, 𝑑 ∈ N tal que 𝑏 ̸= 0 e 𝑑 ̸= 0.
𝑎 𝑐 𝑎𝑑+𝑏𝑐
3. Assim, temos que 𝑥 + 𝑦 = 𝑏
+ 𝑑
= 𝑏𝑑
.

4. Fazendo 𝑝 = 𝑎𝑑 + 𝑏𝑑 e 𝑞 = 𝑏𝑑, sabemos que 𝑝, 𝑞 ∈ N.


𝑝
5. Portanto, segue que 𝑥 + 𝑦 = 𝑞
é racional.

Em alguns casos, para provar uma afirmação do tipo 𝑝 → 𝑞, não temos acesso direto a p. Nessas
situações, podemos utilizar uma lógica reversa (backtracking). O exemplo a seguir ilustra essa ideia.
Por exemplo, suponha que deseja-se provar que a média aritmética de dois números distintos é sempre

7
maior ou igual a média geométrica dos mesmos números. Note que sabemos onde queremos chegar,
mas não está claro de onde devemos partir. Neste caso, 𝑝 não é fornecido de maneira explícita.
Iniciamos definindo as médias aritméticas e geométricas como:

𝑥+𝑦
𝑚𝐴 = (2)
2

𝑚𝐺 = 𝑥𝑦 (3)

Podemos escolher alguns valores de 𝑥 e 𝑦 para verificar que aparentemente a média aritmética é
sempre maior ou igual que a geométrica.

• 𝑥 = 1 e 𝑦 = 3: 𝑚𝐴 = 2 > 𝑚𝐺 = 3

• 𝑥 = 2 e 𝑦 = 4: 𝑚𝐴 = 3 > 𝑚𝐺 = 8

• 𝑥 = 3 e 𝑦 = 5: 𝑚𝐴 = 4 > 𝑚𝐺 = 15

Como podemos provar que 𝑚𝐴 > 𝑚𝐺 para 𝑥 ̸= 𝑦? Vamos tentar partir da conclusão e ver onde
podemos chegar.
𝑥+𝑦 √
1. Iremos partir da eventual conclusão, ou seja, 2
> 𝑥𝑦.
(𝑥+𝑦)2
2. Elevando ambos os lados ao quadrado, temos 4
> 𝑥𝑦.

3. Ao multiplicar ambos os lados por 4, chega em (𝑥 + 𝑦)2 > 4𝑥𝑦.

4. Expandindo o quadrado, temos 𝑥2 + 2𝑥𝑦 + 𝑦 2 > 4𝑥𝑦.

5. Ao subtrair 4𝑥𝑦 de ambos os lados, chega-se em 𝑥2 − 2𝑥𝑦 + 𝑦 2 > 0.

6. Fatorando o polinômio quadrático, temos (𝑥2 − 𝑦 2 ) > 0.

Note que (𝑥2 − 𝑦 2 ) > 0 é sempre verdadeiro para 𝑥 ̸= 𝑦, então, se invertermos os passos da prova
direta, ou seja, se partirmos de 6 e chegarmos em 1, fazendo os devidos ajustes (como somar 4𝑥𝑦
ao invés de subtrair), temos uma sequência de consequências lógicas válidas e portanto uma prova
direta.

Teorema 3 (Lema de Euclides). Seja 𝑝 ∈ N um número primo, tal que 𝑝 é um fator de 𝑎𝑏. Então, 𝑝 é
um fator de 𝑎 ou de 𝑏. Para 𝑎 = 𝑏, temos que, se 𝑝 divide 𝑎2 , então 𝑝 divide 𝑎.

1. Pelo Teorema Fundamental da Aritmética, sabemos que: "Todos os inteiros positivos maiores
que 1 possuem uma decomposição única em fatores primos".

2. Isso implica que 𝑎 = 𝑝1 𝑝2 𝑝3 ...𝑝𝑛 .

3. Assim, 𝑎2 = (𝑝1 𝑝2 𝑝3 ...𝑝𝑛 )(𝑝1 𝑝2 𝑝3 ...𝑝𝑛 ) = (𝑝1 𝑝1 )(𝑝2 𝑝2 )(𝑝3 𝑝3 )...(𝑝𝑛 𝑝𝑛 ).

4. Logo, se 𝑝 é um dos fatores primos de 𝑎2 , então 𝑝 também é um fator primo de 𝑎.

8
1.2 Prova por Contrapositiva
A prova por contrapositiva é uma técnica fundamental em Matemática Discreta, frequentemente
utilizada para demonstrar implicações lógicas de forma indireta. Em vez de provar diretamente que
𝑝 → 𝑞, essa estratégia consiste em demonstrar a contrapositiva ¬𝑞 → ¬𝑝, que é logicamente equi-
valente à proposição original. Esse método é especialmente útil quando a negação das hipóteses ou
conclusões simplifica a argumentação, revelando estruturas mais acessíveis para a demonstração. Ao
dominar a contrapositiva, ampliamos nosso arsenal de ferramentas para abordar teoremas e problemas
discretos com maior versatilidade e clareza.

Teorema 4. Seja 𝑝 ∈ N. Se 𝑛2 é par, então 𝑛 é par.

1. É simples notar que as proposições são 𝑝 : 𝑛2 é par e 𝑞 : 𝑛 é par.

2. Usando a contrapositiva, a sentença traduz-se para: se 𝑛 é ímpar, então 𝑛2 é ímpar.

3. Sendo assim, podemos escrever 𝑛 = 2𝑘 + 1, para algum 𝑘 ∈ N.

4. Então, 𝑛2 = (2𝑘 + 1)2 = 4𝑘 2 + 4𝑘 + 1 = 2(2𝑘 2 + 2𝑘) + 1.

5. Como o conjunto N é fechado para adição e produto, 𝑝 = 2𝑘 2 + 2𝑘 ∈ N.

6. Como 𝑛2 = 2𝑝 + 1, com 𝑝 ∈ N, temos que 𝑛2 é ímpar.

Exercício: Demonstre que ∀𝑛 ∈ N, se 𝑛3 + 5 é ímpar, então 𝑛 é par.

Exercício: Demonstre que se 𝑝 ∈ N é ímpar, então 𝑥2 + 𝑥 − 𝑝 = 0 não tem solução inteira.

1. Iremos utilizar a prova por contrapositiva. Note que as proposições 𝑟 e 𝑠 são dadas por: 𝑟 : 𝑝 ∈
N é ímpar e 𝑠 : 𝑥2 + 𝑥 − 𝑝 = 0 não admite solução inteira.

2. Pela contrapositiva, a sentença traduz-se pode ser expressa por: se 𝑥2 + 𝑥 − 𝑝 = 0 admite


solução inteira, então 𝑝 ∈ N é par.

3. Se 𝑥2 + 𝑥 − 𝑝 = 0 admite solução inteira, então



−1 ± 1 − 4𝑝
𝑥= (4)
2

é inteiro.
√ √ √
4. Então, 1 − 4𝑝 − 1 e − 1 − 4𝑝 − 1 devem ser pares, o que ocorre apenas se 1 − 4𝑝 é ímpar.

9

5. Isso implica que 1 − 4𝑝 = 2𝑘 + 1, para algum 𝑘 ∈ N.

1 − 4𝑝 = (2𝑘 + 1)2 (5)


1 − 4𝑝 = 4𝑘 2 + 4𝑘 + 1
4𝑝 = 4𝑘 2 + 4𝑘
𝑝 = 𝑘2 + 𝑘
𝑝 = 𝑘(𝑘 + 1)

6. Como o produto de um inteiro ímpar e um inteiro par é sempre par, temos que 𝑝 é sempre par

2𝑘(2𝑘 + 1) = 4𝑘 2 + 2𝑘 = 2(2𝑘 2 + 𝑘) (6)

concluindo a prova.

Exemplo: Prove que ∀𝑛 ∈ N, se 3𝑛 + 2 é ímpar, então 𝑛 é ímpar.

1.3 Prova por Redução ao Absurdo


A prova por redução ao absurdo (reductio ad absurdum) é uma técnica poderosa na Matemática
Discreta, usada para demonstrar a validade de uma proposição mostrando que sua negação leva a
uma contradição lógica. Partindo da suposição de que a afirmação original é falsa, busca-se derivar
consequências impossíveis ou absurdas, como 𝑝 ∧ ¬𝑝, o que invalida a hipótese inicial e confirma a
veracidade do que se desejava provar. Esse método é particularmente eficaz em teoremas de existência
ou em situações onde abordagens diretas são complexas, destacando a elegância e o rigor do raciocínio
matemático. A justificativa matemática para a prova por redução ao absurdo segue a equivalência
lógica que diz que, se 𝑝 → 𝑞 é verdade, então (𝑝 ∧ ¬𝑞) → 𝐹 também é verdade.

Exemplo: Prove que se 𝑚, 𝑛 ∈ N são pares, então 𝑚 + 𝑛 também é par.

1. Suponha 𝑚, 𝑛 ∈ N pares e suponha que 𝑚 + 𝑛 ∈ N seja ímpar.

2. Então, 𝑚 = 2𝑝 e 𝑛 = 2𝑞, para 𝑝, 𝑞 ∈ N.

3. Pela hipótese inicial, 𝑚 + 𝑛 é ímpar, ou seja, 𝑚 + 𝑛 = 2𝑘 + 1, para 𝑘 ∈ N.

4. Logo, 2𝑝 + 2𝑞 = 2𝑘 + 1, o que implica em 𝑝 + 𝑞 − 𝑘 = 1/2.

5. Porém, isso é falso, uma vez que 𝑝 + 𝑞 − 𝑘 ∈ N.

6. Como cgegamos em uma contradição, a prova está concluída.

Teorema 5. Não há limite superior no conjunto dos naturais N.

10
1. Suponha que exista um 𝑛 ∈ N que seja o máximo elemento do conjunto.

2. Então, ∀𝑥 ∈ N, temos 𝑛 ≥ 𝑥.

3. Seja 𝑚 = 𝑛 + 1. Como os naturais são fechados para adição, 𝑚 ∈ N.

4. Mas isso implica que 𝑚 > 𝑛.

5. Logo, 𝑚 é maior que o máximo elemento do conjunto N, o que gera uma contradição à hipótese
inicial, concluindo a prova.


Teorema 6. 2 é um número irracional.

1. Iremos supor que 2 pertence ao conjunto dos racionais Q.

2. Então, 2 = 𝑎𝑏 , com 𝑏 ̸= 0, sendo que 𝑎 e 𝑏 não possuem fatores primos.
𝑎2
3. Assim, 2 = 𝑏2
, o que implica em 𝑎2 = 2𝑏2 . Ou seja, temos que 𝑎2 é par.

4. Para isso, é necessário que 𝑎 seja par, ou seja, 𝑎 = 2𝑘, para 𝑘 ∈ N.

5. Isso implica em 𝑎2 = 2𝑏2 = 4𝑘 2 , ou seja, 𝑏2 = 2𝑘.

6. Logo, 𝑏2 também é par, e por consequência, 𝑏 é par.

7. Note que 2 divide tanto 𝑎 quanto 𝑏, contradizendo a hipótese de que eles não possuem fatores
primos (contradição), o que conclui a demonstração.


Exercício: Prove que 3 é um número irracional.

Teorema 7. Existem infinitos números primos.

1. Suponha que o conjunto 𝑃 dos números primos seja finito, ou seja, 𝑃 = {2, 3, 5, 7, ..., 𝑝}, em
que 𝑝 denota o maior deles.

2. Seja 𝑛 o inteiro definido pela multiplicação de todos os números primos, adicionado de uma
unidade, ou seja, 𝑛 = (2 × 3 × 5 × 7 × ... × 𝑝) + 1.

3. Como 𝑛 > 1, ele deve ter algum fator primo.

4. Entretanto, note que 𝑛 não é divisível por nenhum número primo do conjunto 𝑃 , uma vez que
terá resto 1.

5. Pelo Teorema Fundamental da Aritmética, sabe-se que: Todos inteiros positivos maiores que 1
possuem uma decomposição única em fatores primos.

11
6. Seja 𝑟 um dos fatores primos de 𝑛. Então, 𝑟 não pode ser nenhum dos elementos de 𝑃 , o que
contradiz a hipótese de que 𝑃 contém todos os números primos.

7. Portanto, dada a contadição, 𝑃 não contém todos os números primos.

1.4 Demonstrações do tipo se e somente se


Em Matemática Discreta, as provas do tipo “se e somente se” (abreviadas como “sse” ou repre-
sentadas pelo símbolo 𝑃 ⇐⇒ 𝑄) estabelecem uma equivalência lógica entre duas proposições,
mostrando que cada uma implica a outra. Para demonstrar 𝑃 ⇐⇒ 𝑄, é necessário provar duas
direções: 𝑃 → 𝑄 (a ida) e 𝑄 → 𝑃 (a volta). Esse tipo de argumento é comum em definições,
caracterizações e teoremas que exigem uma relação bidirecional entre conceitos, como igualdades
de conjuntos, propriedades de funções ou critérios de divisibilidade. Ao estruturar a prova em duas
partes, garantimos uma compreensão completa e rigorosa da equivalência entre 𝑃 e 𝑄.

Teorema 8. Dois inteiros 𝑥 e 𝑦 são ambos ímpares se e somente se o produto 𝑥𝑦 é ímpar.

• Parte 1: 𝑝 → 𝑞

1. Se 𝑥 e 𝑦 são dois números ímpares, então:

𝑥 = 2𝑟 + 1 (7)
𝑦 = 2𝑠 + 1 (8)

2. Assim, o produto deles vale:

𝑥𝑦 = (2𝑟 + 1)(2𝑠 + 1) = 4𝑟𝑠 + 2𝑟 + 2𝑠 + 1 = 2(2𝑟𝑠 + 𝑟 + 𝑠) + 1 (9)

3. Como o conjunto os inteiros é fechado para adição e multiplicação, temos que 𝑘 = 2𝑟𝑠 +
𝑟 + 𝑠 ∈ N.
4. Portanto, como 𝑥𝑦 = 2𝑘 + 1, o produto é um número ímpar.

• Parte 2: 𝑞 → 𝑝

1. Pela contrapositiva, isso equivale a mostrar que ¬𝑝 → ¬𝑞.


2. Pela lei de De Morgan, a negação de 𝑝 se expressa como: 𝑥 ou 𝑦 é par.
3. Pela lei de De Morgan, a negação de 𝑞 se expressa como: o produto 𝑥𝑦 é par.
4. Logo, assumindo que 𝑥 seja par, ou seja, 𝑥 = 2𝑟, temos que 𝑥𝑦 = 2𝑟𝑦, o que é par.
5. Assumindo que 𝑦 seja par, ou seja, 𝑦 = 2𝑠, temos que 𝑥𝑦 = 2𝑥𝑠, o que também é par.
6. Portanto, a prova está concluída.

12
Proposição: Seja 𝑛 um inteiro. Então 𝑛 é par se e somente se 𝑛2 é par.
Demonstração: Devemos provar as duas direções:

(→) Se 𝑛 é par, então 𝑛2 é par.


Prova: Se 𝑛 é par, então 𝑛 = 2𝑘 para algum inteiro 𝑘. Logo,

𝑛2 = (2𝑘)2 = 4𝑘 2 = 2(2𝑘 2 )

que é claramente par, pois é múltiplo de 2.

(←) Se 𝑛2 é par, então 𝑛 é par.


Prova: Vamos provar a contrapositiva. Suponha que 𝑛 não é par (ou seja, 𝑛 é ímpar). Então
𝑛 = 2𝑘 + 1 para algum inteiro 𝑘. Assim,

𝑛2 = (2𝑘 + 1)2 = 4𝑘 2 + 4𝑘 + 1 = 2(2𝑘 2 + 2𝑘) + 1

que é ímpar. Portanto, se 𝑛2 é par, 𝑛 deve ser par.

Como demonstramos ambas as direções, a proposição está provada.

1.5 Demonstração por vacuidade


A demonstração por vacuidade é um tipo de argumento válido em lógica matemática que ocorre
quando a premissa de uma implicação universal 𝑝 → 𝑞 é falsa para todos os casos considerados. Nessa
situação, a implicação é automaticamente verdadeira por "falta de contraexemplos", já que não há ins-
tâncias em que 𝑝 seja verdadeira e 𝑞 falsa. Esse tipo de prova muitas vezes parece contra-intuitivo à
primeira vista, mas surge naturalmente em contextos como propriedades vazias (por exemplo, "todo
elemento de um conjunto vazio satisfaz a propriedade P") ou em implicações com condições inatingí-
veis. Embora possa parecer trivial, a vacuidade é um conceito importante para formalizar argumentos
de casos extremos e generalizações em matemática.

Exemplo: "Todos os unicórnios voam" é verdadeiro por vacuidade, pois não existem unicórnios
para contradizer a afirmação.

No contexto da lógica matemática, se 𝐸 é o conjunto vazio, temos que a proposição ∀𝑥 ∈ 𝐸 𝑄(𝑥)


é verdadeira para qualquer que seja o predicado 𝑄

Exemplo: Todos os inteiros pares e primos maiores que 2 são quadrados perfeitos.
Supondo que N represente o conjunto dos inteiros, podemos escrever:

∀𝑥 ∈ N (𝑃 (𝑥) ∧ 𝑀 (𝑥)) → 𝑆(𝑥) (10)

13
onde os predicados denotam:

• 𝑃 (𝑥): 𝑥 é um inteiro primo.

• 𝑀 (𝑥): 𝑥 é um inteiro maior que 2.

• 𝑆(𝑥): 𝑥 é um quadrado perfeito.

Como 𝑃 (𝑥) ∧ 𝑀 (𝑥) sempre é falso, a expressão sempre será verdadeira por vacuidade.

1.6 A conjectura de Goldbach


A Conjectura de Goldbach, proposta pelo matemático prussiano Christian Goldbach em 1742
em uma carta a Leonhard Euler, é um dos problemas mais famosos e duradouros da teoria dos núme-
ros. Ela afirma que:

“Todo número inteiro par maior que 2 pode ser expresso como a soma de dois números
primos.”

Por exemplo:

4=2+2
6=3+3
8=3+5
10 = 3 + 7 = 5 + 5
12 = 5 + 7

Até hoje, a Conjectura de Goldbach não foi demonstrada nem refutada. No entanto, avanços
significativos foram feitos:

• Resultados Parciais:

– Em 1937, Vinogradov provou que todo número ímpar suficientemente grande pode ser
escrito como a soma de três primos (uma versão fraca da conjectura).
– Em 1966, Chen Jing-run mostrou que todo número par grande pode ser escrito como 𝑝+𝑞,
onde 𝑝 é primo e 𝑞 é um quase-primo (número com no máximo dois fatores primos).
– Verificações computacionais confirmaram a conjectura para todos os números pares até
4 × 1018 (até 2023).

• Abordagens Modernas:

– A conjectura permanece aberta porque exige um entendimento mais profundo da distri-


buição dos primos.

14
– Alguns matemáticos acreditam que uma prova pode exigir novas técnicas, talvez relacio-
nadas à Hipótese de Riemann.

A dificuldade reside no fato de que:

• Os primos são infinitos, mas sua distribuição é irregular.

• A conjectura exige uma garantia absoluta para todo número par, não apenas para casos particu-
lares.

• Não há uma fórmula simples que descreva todos os pares (𝑝, 𝑞) de primos tais que 𝑝 + 𝑞 = 2𝑛.

A conjectura de Goldbach continua sendo um dos grandes desafios da matemática. Se um dia for
resolvida, provavelmente revolucionará nossa compreensão dos números primos.

1.7 Considerações finais


Ao longo deste capítulo, discutimos os principais métodos de prova utilizados em matemática e
em ciência da computação teórica. Vimos como a prova direta se apoia em encadeamentos lógicos
simples, como a prova por contradição nos permite descartar hipóteses falsas de forma elegante, e
como a prova por contraposição fornece uma alternativa eficiente para certos enunciados condicio-
nais. Também destacamos a importância da indução matemática, especialmente para propriedades
que envolvem números naturais ou definições recursivas, recurso indispensável em muitas áreas da
computação.
Além de apresentar cada método, procuramos ilustrar como eles se aplicam em diferentes contex-
tos, desde problemas elementares de teoria dos conjuntos até propriedades mais abstratas de relações
e funções. Essa diversidade de exemplos evidencia que não há um método universalmente melhor:
a escolha depende da estrutura do problema e da intuição do pesquisador. Com o tempo e a prá-
tica, torna-se natural identificar qual abordagem tem maior potencial de simplificar a argumentação e
conduzir a uma demonstração clara.
Por fim, ressaltamos que o domínio desses métodos de prova não é apenas uma questão de for-
malidade matemática, mas sim uma habilidade central para desenvolver pensamento crítico e rigor
lógico. Saber construir e analisar provas é o que garante solidez aos resultados obtidos e evita ar-
madilhas de raciocínio intuitivo, mas incorreto. Assim, este capítulo deve ser visto como uma base
essencial que será continuamente utilizada e refinada nos tópicos seguintes, onde a formalização e a
dedução rigorosa desempenharão papel ainda mais central.

15
2 O princípio da indução matemática
O Princípio da Indução Matemática é uma das ferramentas mais poderosas da Matemática Dis-
creta, utilizado para demonstrar proposições indexadas nos números naturais. Baseado na estrutura
bem ordenada de N, o método estabelece que uma afirmação 𝑃 (𝑛) vale para todos os inteiros 𝑛 ≥ 0
mediante:

(i) Verificação do caso base 𝑃 (0) ou 𝑃 (1)

(ii) Demonstração de que 𝑃 (𝑘) =⇒ 𝑃 (𝑘 + 1) para 𝑘 ≥ 0 ou 𝑘 ≥ 1 (passo de indução)

Sua relevância estende-se desde fundamentos teóricos (como definições recursivas e propriedades
de sequências) até aplicações práticas em:

• Ciência da Computação (análise de algoritmos)

• Teoria dos Grafos (propriedades de caminhos e árvores)

• Combinatória (contagem e identidades)

A seguir iremos utiilzar uma analogia para explicar a intuição por trás da prova por indução:
suponha uma escada com infinitos degraus. Queremos saber se podemos alcançar todo degrau dessa
escada inifinita. Para isso, devemos garantir duas condições:

1. Podemos alcançar o primeiro degrau.

2. Se podemos alcançar um degrau arbitrário 𝑘, então podemos alcançar o próximo degrau 𝑘 + 1


(isso deve valor para todo 𝑘).

Se garantirmos essas duas condições, então é verdade que podemos acessar qualquer um dos
infinitos degraus da escada. Essa é a intuição que guia o princípio da indução matemática. Em termos
matemáticos, podemos escrever a seguinte proposição lógica:

(𝑃 (1) ∧ ∀𝑘 ∈ N (𝑃 (𝑘) → 𝑃 (𝑘 + 1))) → ∀𝑛 ∈ N 𝑃 (𝑛) (11)

Mas, a pergunta que surge é: porque a indução matemática á válida? Primeiramente, veremos um
princípio fundamental para entendermos a resposta desta pergunta.

Definição 8 (Princípio da boa ordenação (PBO)). Todo subconjunto não vazio de N possui um menor
elemento.

Iremos demonstrar que a indução matemática é válida a partir de uma prova por contradição.

1. Vamos supor que 𝑃 (1) é verdadeira e que para todo 𝑘, 𝑃 (𝑘) → 𝑃 (𝑘 + 1).

2. Desejamos mostrar que 𝑃 (𝑛) é verdadeira ∀𝑛 ∈ N.

16
3. Assuma que exista pelo menos um inteiro positivo para o qual 𝑃 (𝑛) é falso.

4. Então, o conjunto 𝑆 dos inteiros positivos para os quais 𝑃 (𝑛) é falso não é vazio.

5. Pelo PBO, 𝑆 tem um menor elemento, denotado por 𝑚.

6. Sabemos que 𝑚 ̸= 1 pois 𝑃 (1) é verdadeira.

7. Como 𝑚 é positivo, 𝑚 > 1. Assim, 𝑚˘1 > 0.

8. Como 𝑚 − 1 < 𝑚, então 𝑚 − 1 ∈


/ 𝑆. Então, 𝑃 (𝑚 − 1) deve ser verdadeira.

9. Mas pela suposição inicial, para todo 𝑘, 𝑃 (𝑘) → 𝑃 (𝑘+1), o que implica em: 𝑃 (𝑚˘1) → 𝑃 (𝑚)
ser verdade.

10. Isso faz com que P(m) tenha que ser verdadeira, o que gera uma contradição.

Portanto, 𝑃 (𝑛) é verdadeira para todo 𝑛.

Exercício: Prove que, se 𝑛 é um inteiro positivo, então:


𝑛
∑︁ 𝑛(𝑛 + 1)
𝑃 (𝑛) : 𝑖= (12)
𝑖=1
2

• BASE: O caso base P(1) é trivialmente verdadeiro, pois 1 = 2/2 = 1.

• PASSO DE INDUÇÃO: Assumiremos que 𝑃 (𝑘) é válida para um 𝑘 arbitrário:

𝑘
∑︁ 𝑘(𝑘 + 1)
𝑃 (𝑘) : 𝑖 = 1 + 2 + ... + 𝑘 = (13)
𝑖=1
2

Repare que a proposição 𝑃 (𝑘 + 1) é dada por (basta substituir 𝑘 por 𝑘 + 1):

𝑘+1
∑︁ (𝑘 + 1)(𝑘 + 2)
𝑃 (𝑘 + 1) : 𝑖 = 1 + 2 + ... + 𝑘 + (𝑘 + 1) = (14)
𝑖=1
2

Sob a hipótese de que 𝑃 (𝑘) é verdadeira, devemos mostrar que 𝑃 (𝑘 + 1) é verdadeira. Note que:

𝑘+1 𝑘
∑︁ ∑︁ 𝑘(𝑘 + 1) 𝑘(𝑘 + 1) + 2(𝑘 + 1) (𝑘 + 1)(𝑘 + 2)
𝑖= 𝑖 + (𝑘 + 1) = + (𝑘 + 1) = = (15)
𝑖=1 𝑖=1
2 2 2

o que é exatamente o valor de 𝑃 (𝑘 + 1). Isso completa a prova por indução.

Exercício: Elabore uma fórmula para computar a soma dos 𝑛 primeiros inteiros ímpares positivos.
Prove por indução que sua fórmula vale para qualquer valor inteiro de 𝑛.

17
Vamos iniciar observando o padrão a seguir:

n números soma
1 1 1
2 1+3 4
3 1+3+5 9
4 1+3+5+7 16
5 1+3+5+7+9 25
... ... ...

A conjectura parece ser definida pela proposição:

𝑃 (𝑛) : 1 + 3 + 5 + 7 + 9 + ... + (2𝑛 − 1) = 𝑛2 (16)

Desejamos provar que essa expressão é válida para todo 𝑛 inteiro maior que zero. Iniciamos pelo
caso base.

• BASE: O caso base 𝑃 (1) é trivialmente verdadeiro, pois 1 = 12 = 1.

• PASSO DE INDUÇÃO: Assumiremos que 𝑃 (𝑘) é válida para um 𝑘 arbitrário:

𝑃 (𝑘) : 1 + 3 + 5 + 7 + 9 + ... + (2𝑘 − 1) = 𝑘 2 (17)

e mostrar que:

𝑃 (𝑘 + 1) : 1 + 3 + 5 + 7 + 9 + ... + (2𝑘 − 1) + (2𝑘 + 1) = (𝑘 + 1)2 (18)

Para isso, sob a hipótese de indução, note que:

𝑃 (𝑘 + 1) : [1 + 3 + 5 + 7 + 9 + ... + (2𝑘 − 1)] + (2𝑘 + 1) = 𝑘 2 + 2𝑘 + 1 = (𝑘 + 1)2 (19)

o que conclui a prova por indução.

Exercício: Use a prova por indução para mostrar que:

𝑃 (𝑛) : 20 + 21 + 22 + 23 + ... + 2𝑛 = 2𝑛+1 − 1 (20)

é válida para todo 𝑛 inteiro positivo.

• BASE: O caso base 𝑃 (0) é trivialmente verdadeiro, pois 20 = 1 = 21 − 1.

• PASSO DE INDUÇÃO: Assumiremos que 𝑃 (𝑘) é válida para um 𝑘 arbitrário:

18
𝑃 (𝑘) : 20 + 21 + 22 + 23 + ... + 2𝑘 = 2𝑘+1 − 1 (21)

Note que, sob a hipótese de indução, temos que:

𝑃 (𝑘 + 1) : (20 + 21 + 22 + 23 + ... + 2𝑘 ) + 2𝑘+1 = 2𝑘+1 − 1 + 2𝑘+1 = 2(𝑘+1)+1 − 1 (22)

que é justamente o valor desejado para 𝑃 (𝑘 + 1), o que conclui a prova por indução.

Exercício: Uma sequência do tipo 1, 1/2, 1/4, 1/8, ... é uma progressão geométrica (PG) em que
o primeiro termo 𝑎0 = 1 e a razão 𝑟 = 1/2. Sabe-se que o 𝑘-ésimo termo de uma PG é computado
como:

𝑎𝑘 = 𝑎0 𝑟 𝑘 (23)

Use a indução matemática para provar que a soma dos termos de uma PG finita com 𝑎0 = 𝑎 e
razão r é dada por:

𝑎𝑟𝑘+1 − 𝑎
𝑃 (𝑘) : 𝑎 + 𝑎𝑟 + 𝑎𝑟2 + 𝑎𝑟3 + ... + 𝑎𝑟𝑘 = (24)
𝑟−1
com 𝑟 ̸= 1, onde 𝑘 é um inteiro não negativo.

𝑎𝑟−𝑎 𝑎(𝑟−1)
• BASE: 𝑃 (0) : 𝑎 = 𝑟−1
= 𝑟−1
= 𝑎, o que valida o argumento.

• PASSO DE INDUÇÃO: Assumiremos que 𝑃 (𝑘) é válida para um 𝑘 arbitrário e desejamos


mostrar que:

𝑎𝑟𝑘+2 − 𝑎
𝑃 (𝑘 + 1) : 𝑎 + 𝑎𝑟 + 𝑎𝑟2 + 𝑎𝑟3 + ... + 𝑎𝑟𝑘 + 𝑎𝑟𝑘+1 = (25)
𝑟−1

Note que, sob a hipótese de indução, podemos escrever:

𝑎𝑟𝑘+1 − 𝑎
(𝑎 + 𝑎𝑟 + 𝑎𝑟2 + 𝑎𝑟3 + ... + 𝑎𝑟𝑘 ) + 𝑎𝑟𝑘+1 = + 𝑎𝑟𝑘+1 (26)
𝑟−1

o que nos leva a:

𝑎𝑟𝑘+1 − 𝑎 𝑎𝑟𝑘+1 − 𝑎 + 𝑎𝑟𝑘+2 − 𝑎 𝑎𝑟𝑘+2 − 𝑎


+ 𝑎𝑟𝑘+1 = = (27)
𝑟−1 𝑟−1 𝑟−1
concluindo a prova por indução.

Exercício: Use a indução matemática para demonstrar a desigualdade 𝑃 (𝑛) : 𝑛 < 2𝑛 para todo
inteiro positivo 𝑛.

19
• BASE: 𝑃 (1) = 1 < 2, o que valida o argumento.

• PASSO DE INDUÇÃO: Assumiremos que 𝑃 (𝑘) é válida para um 𝑘 arbitrário e desejamos


mostrar que 𝑃 (𝑘 + 1) : 𝑘 + 1 < 2𝑘+1 é válida.

Pela hipótese de indução, 𝑃 (𝑘) é válida, ou seja:

𝑘 < 2𝑘 (28)

Somando 1 em ambos os lados, temos:

𝑘 + 1 < 2𝑘+1 (29)

Como 1 ≤ 2𝑘 , ∀𝑘 ∈ N:

𝑘 + 1 < 2𝑘 + 1 ≤ 2𝑘 + 2𝑘 = 2𝑘+1 (30)

o que conclui a prova por indução.

Exercício: Os números harmônicos são definidos como:

1 1 1
𝐻𝑗 = 1 + + + ... + (31)
2 3 𝑗
para 𝑗 = 1, 2, ..., 𝑛. Por exemplo, temos que 𝐻4 é dado por:

1 1 1 25
𝐻4 = 1 + + + = (32)
2 3 4 12
Use a indução matemática para provar que:

𝑛
𝐻2𝑛 ≥ 1 + (33)
2
ou seja, que essa soma é divergente.
1 3 1
• BASE: 𝐻21 = 1 + 2
= 2
≥1+ 2
= 23 , o que valida o argumento.

• PASSO DE INDUÇÃO: Para um 𝑘 arbitrário, devemos mostrar que se:

𝑘
𝐻2𝑘 ≥ 1 + (34)
2

então
𝑘+1
𝐻2𝑘+1 ≥ 1 + (35)
2
Primeiramente, note que:
(︂ )︂
1 1 1 1 1 1
𝐻2𝑘+1 = 1 + + + ... + 𝑘 + 𝑘 + 𝑘 + ... + 𝑘+1 (36)
2 3 2 2 +1 2 +2 2

20
onde o somatório entre parêntesis é justamente 𝐻2𝑘 , ou seja:

1 1 1
𝐻2𝑘+1 = 𝐻2𝑘 + + 𝑘 + ... + 𝑘+1 (37)
2𝑘 +1 2 +2 2
Utilizando a hipótese de indução, temos:
(︂ )︂ [︂ ]︂
𝑘 1 1 1
𝐻2𝑘+1 ≥ 1+ + 𝑘 + 𝑘 + ... + 𝑘 (38)
2 2 +1 2 +2 2 + 2𝑘
Note que cada um dos 2𝑘 termos no somatório entre colchetes é maior ou igual que 1/2𝑘+1 ,o que
nos permite escrever:
(︂ )︂
𝑘 1
𝐻2𝑘+1 ≥ 1+ + 2𝑘 𝑘+1 (39)
2 2
o que nos leva a:
(︂ )︂
𝑘 1 𝑘+1
𝐻2𝑘+1 ≥ 1+ + =1+ (40)
2 2 2
concluindo a prova por indução.

Exercício: Use a indução matemática para provar que 7𝑛+1 82𝑛+1 é divisível por 57.

Temos nossa proposição 𝑃 (𝑘) : 7𝑘+2 82𝑘+1 mod 57 = 0.

• BASE: 𝑃 (0) : (72 + 8) mod 57 = 57 mod 57 = 0, o que valida o argumento.

• PASSO DE INDUÇÃO: Assumiremos que 𝑃 (𝑘) é válida para um 𝑘 arbitrário e desejamos


mostrar que 𝑃 (𝑘 + 1) é válida.

Note que 𝑃 (𝑘 + 1) é dada por:

𝑃 (𝑘 + 1) : 7(𝑘+2)+1 82(𝑘+1)+1 mod 57 = 0 (41)

o que equivale a:

𝑃 (𝑘 + 1) : 7𝑘+3 82𝑘+3 mod 57 = 0 (42)

Assim, o objetivo consiste em mostrar que 7𝑘+3 82𝑘+3 é divisível por 57. Podemos escrever:

7𝑘+3 82𝑘+3 = 7 × 7𝑘+2 + 82 × 82𝑘+1 = 7 × 7𝑘+2 + 64 × 82𝑘+1 (43)

Mas note ainda que 64 = 7 + 57, o que nos permite escrever:

7 × 7𝑘+2 + 64 × 82𝑘+1 = 7 × 7𝑘+2 + (7 + 57) × 82𝑘+1 = 7 × 7𝑘+2 + 7 × 82𝑘+1 + 57 × 82𝑘+1 (44)

21
Colocando o fator 7 em evidência, temos:

7(7𝑘+2 + 82𝑘+1 ) + 57 × 82𝑘+1 (45)

Mas, pela hipótese de indução, sabemos que 7𝑘+2 + 82𝑘+1 é divisível por 57. A segunda parcela é
trivialmente divisível por 57. Uma observação importante é que, na aritmética modular, ∀𝑎, 𝑏, 𝑥 ∈ N,
se 𝑎 mod 𝑥 = 0 e 𝑏 mod 𝑥 = 0, então (𝑎 + 𝑏) mod 𝑥 = 0. Sendo assim, a prova por indução está
concluída.

Exercício: Um pesquisador desenvolveu uma fórmula para calcular o somatório do quadrado dos
𝑛 primeiros inteiros positivos. Mostre por indução que essa fórmula vale para todo 𝑛 ∈ N.

𝑘(𝑘 + 1)(2𝑘 + 1)
𝑃 (𝑘) : 12 + 22 + 32 + ... + 𝑘 2 = (46)
6
• BASE: 𝑃 (1) : 1 = 6/6 = 1, o que valida o argumento.

• PASSO DE INDUÇÃO: Assumiremos que 𝑃 (𝑘) é válida para um 𝑘 arbitrário e desejamos


mostrar que 𝑃 (𝑘 + 1) é válida.

Note que 𝑃 (𝑘 + 1) é dada por:

(𝑘 + 1)(𝑘 + 2)(2𝑘 + 3)
𝑃 (𝑘 + 1) : 12 + 22 + 32 + ... + 𝑘 2 + (𝑘 + 1)2 = (47)
6
Utilizando a hipótese de indução, o somatório dos 𝑘 + 1 primeiros inteiros ao quadrado pode ser
expressa como:

𝑘(𝑘 + 1)(2𝑘 + 1)
(12 + 22 + 32 + ... + 𝑘 2 ) + (𝑘 + 1)2 = + (𝑘 + 1)2 (48)
6
o que pode ser escrito como:

𝑘(𝑘 + 1)(2𝑘 + 1) + (𝑘 + 1)2 (𝑘 + 1)(𝑘(2𝑘 + 1) + 6(𝑘 + 1))


= (49)
6 6
Aplicando a distributiva, chega-se em:

(𝑘 + 1)(𝑘(2𝑘 + 1) + 6(𝑘 + 1)) (𝑘 + 1)(2𝑘 2 + 𝑘 + 6𝑘 + 6)


= (50)
6 6
Mas note que 𝑘 + 6𝑘 = 7𝑘 = 3𝑘 + 4𝑘 o que nos permite escrever:

(𝑘 + 1)(2𝑘 2 + 𝑘 + 6𝑘 + 6) (𝑘 + 1)(2𝑘 2 + 3𝑘 + 4𝑘 + 6)
= (51)
6 6
o que nos leva a:

(𝑘 + 1)(2𝑘 2 + 3𝑘 + 4𝑘 + 6) (𝑘 + 1)(𝑘(2𝑘 + 3) + 2(2𝑘 + 3))


= (52)
6 6

22
Finalmente, chegamos em:

(𝑘 + 1)(𝑘(2𝑘 + 3) + 2(2𝑘 + 3)) (𝑘 + 1)(𝑘 + 2)(2𝑘 + 3)


= (53)
6 6
concluindo a prova por indução

Exercício: Um estudante de matemática discreta observou o seguinte padrão:

1 × 1! 2! − 1 = 1
1 × 1! + 2 × 2! 3! − 1 = 5
1 × 1! + 2 × 2! + 3 × 3! 4! − 1 = 23
1 × 1! + 2 × 2! + 3 × 3! + 4 × 4! 5! − 1 = 119
... ...
1 × 1! + 2 × 2! + 3 × 3! + 4 × 4! + ... + 𝑛 × 𝑛! (𝑛 + 1)! − 1

Ele se pergunta se esse padrão é válido para todo 𝑛 > 0. Ajude-o a provar que sim.
Seja a proposição:

𝑃 (𝑘) : 1 × 1! + 2 × 2! + 3 × 3! + 4 × 4! + ... + 𝑘 × 𝑘! = (𝑘 + 1)! − 1 (54)

• BASE: 𝑃 (1) : 1 = 2 − 1 = 1, o que valida o argumento.

• PASSO DE INDUÇÃO: Assumiremos que 𝑃 (𝑘) é válida para um 𝑘 arbitrário e desejamos


mostrar que 𝑃 (𝑘 + 1) é válida.

Note que 𝑃 (𝑘 + 1) é dada por:

𝑃 (𝑘 + 1) : 1 × 1! + 2 × 2! + 3 × 3! + ... + 𝑘 × 𝑘! + (𝑘 + 1) × (𝑘 + 1)! = (𝑘 + 2)! − 1 (55)

Partindo do lado esquerdo da igualdade, temos:

(1 × 1! + 2 × 2! + 3 × 3! + ... + 𝑘 × 𝑘!) + (𝑘 + 1) × (𝑘 + 1)! (56)

que, pela hipótese de indução, pode ser escrito como:

(𝑘 + 1)! − 1 + (𝑘 + 1) × (𝑘 + 1)! (57)

Aplicando a distributiva, temos:

(𝑘 + 1)! − 1 + 𝑘 × (𝑘 + 1)! + (𝑘 + 1)! = 2 × (𝑘 + 1)! + 𝑘 × (𝑘 + 1)! − 1 (58)

Colocando (𝑘 + 1)! em evidência, chegamos a:

23
2 × (𝑘 + 1)! + 𝑘 × (𝑘 + 1)! − 1 = (𝑘 + 2)(𝑘 + 1)! − 1 = (𝑘 + 2)! − 1 (59)

concluindo a prova por indução.

Exercício: Utilizando a indução matemática, prove a desigualdade de Bernoulli:

(1 + ℎ)𝑛 ≥ 1 + 𝑛ℎ (60)

para ∀𝑛 ∈ N e ℎ > 0 (juros). A ideia dessa desigualdade consiste em comparar o avanço de um capital
a juros compostos com o avanço de um capital a juros simples, mostrando que juros compostos sempre
rendem pelo menos igual aos juros simples. Podemos expressar a proposição 𝑃 (𝑘) como:

𝑃 (𝐾) : (1 + ℎ)𝑘 ≥ 1 + 𝑘ℎ (61)

• BASE: 𝑃 (0) : (1 + ℎ)0 = 1 ≥ 1 + 0 = 1, o que valida o argumento.

• PASSO DE INDUÇÃO: Assumiremos que 𝑃 (𝑘) é válida para um 𝑘 arbitrário e desejamos


mostrar que 𝑃 (𝑘 + 1) é válida.

Note que podemos expressar 𝑃 (𝑘 + 1) como:

𝑃 (𝑘 + 1) : (1 + ℎ)𝑘+1 ≥ 1 + (𝑘 + 1)ℎ = 1 + ℎ + 𝑘ℎ (62)

Iniciando por:

(1 + ℎ)𝑘 ≥ 1 + 𝑘ℎ (63)

Multiplique ambos os lados por (1 + ℎ):

(1 + ℎ)(1 + ℎ)𝑘 ≥ (1 + 𝑘ℎ)(1 + ℎ) (64)

Aplique a distributiva:

(1 + ℎ)𝑘+1 ≥ 1 + ℎ + 𝑘ℎ + 𝑘ℎ2 (65)

Como 𝑘ℎ2 é estritamente positivo, temos que se a equação (65) é satisfeita, então 𝑃 (𝑘 + 1) é
satisfeita com uma margem ainda maior (pois o lado direito é menor ainda, devido a ausência do
termo quadrático). Portanto, a prova por indução está completa.

Exercício: Utilizando a indução matemática, prove a seguinte igualdade:

𝑛(2𝑛 − 1)(2𝑛 + 1)
12 + 32 + 52 + ... + (2𝑛 − 1)2 = (66)
3
para todo 𝑛 inteiro maior que zero.

24
Exercício: Prove por indução matemática que:
[︂ ]︂2
3 3 3 𝑛(𝑛 + 1)
3
1 + 2 + 3 + ... + 𝑛 = (67)
2
para todo inteiro 𝑛 positivo.

Exercício: Encontre uma fórmula para calcular:

1 1 1 1
+ + + ... + 𝑛 (68)
2 4 8 2
Prove que sua fórmula vale para todo inteiro 𝑛 > 0.

Exercício: Utilizando indução matemática, prove que

1 1 1 1 𝑛−1
+ + + ... + = (69)
1×2 2×3 3×4 (𝑛 − 1)𝑛 𝑛
para todo inteiro 𝑛 > 1.

2.1 Considerações finais


O princípio da indução matemática constitui uma das ferramentas mais poderosas e elegantes da
matemática. Ele nos permite demonstrar propriedades que valem para um conjunto infinito de casos
a partir da verificação de apenas dois passos: a base e o passo indutivo. Essa simplicidade esconde,
porém, a profundidade lógica da técnica, que repousa na própria definição dos números naturais e em
sua estrutura recursiva.
Ao longo do capítulo, exploramos como a indução se aplica a uma variedade de problemas, desde
demonstrações envolvendo divisibilidade e desigualdades até identidades algébricas e propriedades
de sequências recursivas. Em cada exemplo, ficou evidente que a indução funciona como uma “ponte”
que conecta o caso inicial a todos os demais, garantindo a validade da proposição em toda a cadeia de
números naturais.
Também discutimos variações importantes do método, como a indução forte e a indução estrutu-
rada, que ampliam seu alcance para situações em que o raciocínio depende de múltiplos casos ante-
riores ou de definições recursivas mais complexas. Esses refinamentos mostram que a indução não
é apenas um recurso técnico, mas uma estratégia flexível, capaz de se adaptar a diferentes contextos
matemáticos e computacionais.
Em síntese, dominar o princípio da indução matemática é fundamental para quem deseja com-
preender de forma rigorosa a matemática discreta e suas aplicações. Seja em provas de corretude
de algoritmos, em propriedades de estruturas combinatórias ou em fundamentos da teoria da compu-
tação, a indução aparecerá repetidamente como método indispensável. O capítulo, portanto, marca
não um ponto final, mas o início de uma prática contínua de aplicação desse princípio ao longo dos
estudos posteriores.

25
3 Introdução à teoria dos conjuntos
A teoria dos conjuntos é considerada a linguagem fundamental da matemática moderna. Quase
todos os conceitos matemáticos — números, funções, relações, estruturas algébricas e até mesmo al-
goritmos — podem ser descritos e compreendidos a partir da noção de conjuntos. Para o estudante de
Computação, isso significa adquirir uma base conceitual sólida que permitirá transitar com segurança
entre diferentes áreas da ciência, desde a análise de algoritmos até a modelagem de bancos de dados
e o estudo de linguagens formais.
Na prática computacional, conjuntos aparecem de forma recorrente: na representação de coleções
de dados em estruturas como listas, filas e árvores; na manipulação de bancos de dados relacionais; na
definição de domínios e intervalos de funções; ou ainda em algoritmos que lidam com agrupamentos,
interseções e buscas. Compreender operações como união, interseção, diferença e produto cartesiano
não é apenas um exercício de formalismo matemático, mas uma ferramenta para estruturar problemas
computacionais de forma mais clara e eficiente.
Além disso, a teoria dos conjuntos fornece o terreno para tópicos mais avançados que serão ex-
plorados ao longo da disciplina, como relações, funções e grafos. Esses conceitos, fundamentais na
Computação, só podem ser plenamente compreendidos quando se domina a noção de conjuntos. Es-
tudar esse tema, portanto, não é apenas um passo inicial, mas um investimento estratégico: é aprender
a “gramática” da matemática que sustenta o raciocínio lógico e a abstração necessários ao cientista
da computação.

3.1 Conjuntos
Uma forma simples e informal de definir conjuntos é dizer que um conjunto é uma coleção de
objetos bem definidos, considerados como uma unidade. Esses objetos são chamados de elementos do
conjunto, e podem ser números, letras, pessoas, símbolos ou até outros conjuntos. O ponto essencial
é que deve ficar claro quais elementos pertencem e quais não pertencem ao conjunto.
Por exemplo, o conjunto dos números pares menores que 10 pode ser escrito como {2, 4, 6, 8}.
Já o conjunto das vogais do alfabeto português é {𝑎, 𝑒, 𝑖, 𝑜, 𝑢}. O importante é que cada elemento é
distinto dentro do conjunto e a ordem em que os elementos são listados não altera o conjunto, ou seja,
{𝑎, 𝑒, 𝑖, 𝑜, 𝑢} representa exatamente o mesmo conjunto que {𝑢, 𝑖, 𝑒, 𝑜, 𝑎}.
Assim, de maneira informal, podemos pensar em um conjunto como uma caixa bem definida de
elementos, onde sabemos exatamente o que está dentro e o que está fora. Essa ideia, embora simples,
serve como base para toda a teoria dos conjuntos e, por consequência, para boa parte da matemática
e da computação.

3.2 Definindo conjuntos


Há diferentes maneiras de definir um conjunto. A mais intuitiva é enumerar todos os seus ele-
mentos, algo bastante útil quando o conjunto é finito e pequeno. Por exemplo, o conjunto dos

26
números primos menores que 10 pode ser escrito como:

𝑃 = {2, 3, 5, 7}

Outra forma, especialmente útil para conjuntos infinitos ou de difícil enumeração, é defini-los
a partir de uma propriedade característica que determina a pertinência de seus elementos. Por
exemplo, podemos representar novamente o conjunto dos primos menores que 10 como:

𝐴 = {𝑥 : 𝑥 ∈ 𝑃 ∧ 𝑥 < 10}

onde 𝑃 é o conjunto de todos os números primos. De modo semelhante, o conjunto dos números
naturais pode ser descrito como:

N = {𝑥 : 𝑥 ∈ Z ∧ 𝑥 ≥ 0}

Também é importante destacar o conceito de conjunto vazio, que representa um conjunto sem
elementos. Ele é denotado por ∅ ou simplesmente {}. Um exemplo é:

𝐴 = {𝑥 : 𝑥 ∈ N ∧ 0 < 𝑥 < 1}

Neste caso, não há nenhum número natural que satisfaça a condição 0 < 𝑥 < 1, logo 𝐴 = ∅.

Definição 9 (Subconjunto). Dizemos que 𝐴 é um subconjunto de 𝐵 se todo elemento de 𝐴 está em


𝐵. Matematicamente, temos:

𝐴⊆𝐵 ⇐⇒ (∀𝑥 (𝑥 ∈ 𝐴 → 𝑥 ∈ 𝐵)).

Neste caso, dizemos que 𝐴 está contido em 𝐵.


De forma equivalente, podemos expressar que 𝐴 não é um subconjunto de 𝐵:

𝐴⊈𝐵 ⇐⇒ (∃𝑥 (𝑥 ∈ 𝐴 ∧ 𝑥 ∈
/ 𝐵)).

Neste caso, dizemos que 𝐴 não está contido em 𝐵.

Definição 10 (Subconjunto próprio). Dizemos que 𝐴 é um subconjunto próprio de 𝐵 se todo elemento


de 𝐴 está em 𝐵, mas existe ao menos um elemento de 𝐵 que não está em 𝐴. Matematicamente, temos:

𝐴 ⊂ 𝐵 ⇔ (𝐴 ⊆ 𝐵 ∧ ∃𝑥 ∈ 𝐵 (𝑥 ∈
/ 𝐴)).

Definição 11 (Igualdade de conjuntos). Dados dois conjuntos quaisquer 𝐴 e 𝐵, 𝐴 = 𝐵 se e somente


se 𝐴 ⊆ 𝐵 e 𝐵 ⊆ 𝐴.

27
3.3 Operações entre conjuntos
As operações entre conjuntos permitem combinar ou relacionar diferentes coleções de elementos
de forma sistemática, possibilitando a construção de novos conjuntos a partir de outros já conhecidos.
Entre as operações mais importantes estão a união, que reúne todos os elementos presentes em ao
menos um dos conjuntos; a interseção, que seleciona apenas os elementos comuns; e a diferença, que
mantém apenas os elementos de um conjunto que não pertencem ao outro. Também são fundamentais
o conjunto complementar, que considera os elementos que não pertencem a um conjunto em relação
a um universo previamente definido, e a diferença simétrica, que reúne os elementos que estão em
apenas um dos conjuntos, mas não em ambos. Essas operações formam a base de muitos raciocínios
matemáticos e encontram aplicações diretas na Computação, como em consultas a bancos de dados,
manipulação de estruturas de dados e análise de informações.
Para facilitar a compreensão dessas operações, utilizamos frequentemente os diagramas de Venn,
que oferecem uma representação gráfica simples e intuitiva. Neles, conjuntos são representados por
regiões delimitadas, geralmente círculos, dentro de um retângulo que representa o universo. As sobre-
posições e áreas distintas ilustram visualmente relações como união, interseção e complementaridade,
ajudando a desenvolver a intuição dos estudantes. Além de serem ferramentas didáticas poderosas,
os diagramas de Venn são úteis em problemas práticos de contagem, probabilidade e lógica, servindo
como uma ponte entre o raciocínio formal e a visualização intuitiva.
O conjunto universo é o conjunto que contém todos os elementos de interesse em um determinado
contexto. Ele funciona como um "referencial"para a análise de subconjuntos e operações, pois qual-
quer conjunto considerado deve estar contido no universo adotado. A escolha do conjunto universo
depende do problema em estudo: por exemplo, em um exercício sobre números pares e ímpares, o
universo pode ser o conjunto dos números inteiros; já em uma aplicação envolvendo alunos de uma
turma, o universo pode ser o conjunto de todos os estudantes matriculados.
Em notação, o conjunto universo costuma ser representado por 𝑈 , e sua definição é essencial para
operações como o complemento de um conjunto 𝐴, denotado por 𝐴𝑐 = 𝑈 − 𝐴, que reúne todos os
elementos do universo que não pertencem a 𝐴. A seguir listamos algumas das operações básicas entre
dois conjuntos.

1. Complemento de 𝐴: 𝐴𝑐 = {𝑥 : 𝑥 ∈
/ 𝐴}

2. União de 𝐴 com 𝐵: 𝐴 ∪ 𝐵 = {𝑥 : 𝑥 ∈ 𝐴 ∨ 𝑥 ∈ 𝐵}

28
3. Intersecção de 𝐴 com 𝐵: 𝐴 ∩ 𝐵 = {𝑥 : 𝑥 ∈ 𝐴 ∧ 𝑥 ∈ 𝐵}

/ 𝐴} = 𝐵 ∩ 𝐴𝑐
4. Diferença de 𝐵 e 𝐴: 𝐵 − 𝐴 = {𝑥 : 𝑥 ∈ 𝐵 ∧ 𝑥 ∈

Uma observação: note que se 𝐴 ⊆ 𝐵, então 𝐴 ∪ 𝐵 = 𝐵, 𝐴 ∩ 𝐵 = 𝐴 e 𝐵 𝑐 ⊆ 𝐴𝑐 .

Exercício: Em que casos temos as seguintes condições? Explique.

• (𝐴 ∪ 𝐵) − 𝐵 = 𝐴

• (𝐴 ∪ 𝐵) − 𝐵 ̸= 𝐴

Exercício: Seja o conjunto universo:

𝑈 = {𝑥 ∈ N | 0 ≤ 𝑥 ≤ 9}

e os conjuntos 𝐴, 𝐵 e 𝐶 definidos como:

𝐴 = {1, 2, 3, 4}

𝐵 = {𝑥 ∈ N | (𝑥 − 1)(𝑥 − 3)2 = 0}

29
𝐶 = {𝑥 ∈ N | 𝑥 mod 2 = 0}

Calcule:

1. 𝐴 ∪ 𝐵

2. 𝐴 ∩ (𝐵 ∪ 𝐶)

3. 𝐶 − 𝐴

4. |𝐴|, |𝐵| e |𝐶| (a cardinalidade, ou seja, o número de elementos em cada conjunto).

5. 𝐴 ∪ 𝐶

Definição 12 (Diferença Simétrica). A diferença simétrica entre dois conjuntos 𝐴 e 𝐵 é definida


como:
𝐴 ⊖ 𝐵 = (𝐴 − 𝐵) ∪ (𝐵 − 𝐴).

Se 𝐴 = 𝐵, então:
𝐴 ⊖ 𝐵 = ∅.

Se 𝐴 ∩ 𝐵 = ∅, então:
𝐴 ⊖ 𝐵 = 𝐴 ∪ 𝐵.

Pergunta: Se 𝐴 ⊖ 𝐵 = 𝐴, o que podemos dizer sobre os conjuntos 𝐴 e 𝐵?

Até o presente momento vimos como definir as operações de união e interseção entre dois con-
juntos. Mas essas operações podem ser generalizadas para coleções de conjuntos.

Definição 13 (União e intersecção de coleções de conjuntos). Dados conjuntos 𝐴1 , 𝐴2 , ..., 𝐴𝑛 que


são subconjuntos de um universo 𝑈 e um inteiro positivo 𝑛:
𝑛
⋃︁
𝐴𝑖 = {𝑥 ∈ 𝑈 : (𝑥 ∈ 𝐴1 ) ∨ (𝑥 ∈ 𝐴2 ) ∨ ... ∨ (𝑥 ∈ 𝐴𝑛 )} (70)
𝑖=1
𝑛
⋂︁
𝐴𝑖 = {𝑥 ∈ 𝑈 : (𝑥 ∈ 𝐴1 ) ∧ (𝑥 ∈ 𝐴2 ) ∧ ... ∧ (𝑥 ∈ 𝐴𝑛 )} (71)
𝑖=1

Exercício: Para todo inteiro positivo 𝑖, seja o intervalo 𝐴𝑖 definido como:


{︂ }︂
1 1
𝐴𝑖 = 𝑥 ∈ R : − < 𝑥 < .
𝑖 𝑖

a) Encontre 𝑛𝑖=1 𝐴𝑖 = 𝐴1 ∪ 𝐴2 ∪ 𝐴3 .
⋃︀

b) Encontre 𝑛𝑖=1 𝐴𝑖 = 𝐴1 ∩ 𝐴2 ∩ 𝐴3 .
⋂︀

c) Encontre ∞
⋂︀
𝑖=1 𝐴𝑖 .

30
3.4 Princípio da inclusão-exclusão
O princípio da inclusão-exclusão é uma técnica fundamental da teoria dos conjuntos e da análise
combinatória que permite calcular, de maneira precisa, a cardinalidade da união de conjuntos a partir
das cardinalidades individuais e de suas interseções. A ideia central é corrigir a contagem excessiva
que ocorre quando simplesmente somamos os tamanhos dos conjuntos: ao fazer isso, os elementos
comuns são contados mais de uma vez e, portanto, precisam ser subtraídos adequadamente. Esse
princípio é uma ferramenta poderosa tanto em problemas de contagem quanto em aplicações de pro-
babilidade, análise de algoritmos e teoria das redes.
Na prática, o princípio começa de forma simples para dois conjuntos e pode ser estendido para
três ou mais conjuntos, embora as expressões se tornem progressivamente mais complexas, alter-
nando somas e subtrações de interseções. Para o estudante de Computação, compreender e aplicar
o princípio da inclusão-exclusão é essencial para lidar com problemas clássicos de contagem, como
aqueles que envolvem sobreposições de condições, otimização de consultas em bancos de dados e
análise da complexidade de algoritmos.
A seguir veremos um importante resultado da teoria dos conjuntos sobre a contagem de elementos
na união de dois conjuntos quaisquer 𝐴 e 𝐵.

Teorema 9 (Princípio da Inclusão-Exclusão, caso 𝑛 = 2). Dados dois conjuntos finitos 𝐴 e 𝐵, então:

|𝐴 ∪ 𝐵| = |𝐴| + |𝐵| − |𝐴 ∩ 𝐵|.

Demonstração. 1. Note que 𝐴 ∪ 𝐵 pode ser decomposto em três conjuntos disjuntos:

𝐴 ∪ 𝐵 = (𝐴 − 𝐵) ∪ (𝐴 ∩ 𝐵) ∪ (𝐵 − 𝐴).

2. Como os três conjuntos são disjuntos, temos:

|𝐴 ∪ 𝐵| = |(𝐴 − 𝐵) ∪ (𝐴 ∩ 𝐵) ∪ (𝐵 − 𝐴)| = |𝐴 − 𝐵| + |𝐴 ∩ 𝐵| + |𝐵 − 𝐴|.

3. Além disso, observe que:

|𝐴 − 𝐵| = |𝐴| − |𝐴 ∩ 𝐵|, e |𝐵 − 𝐴| = |𝐵| − |𝐴 ∩ 𝐵|.

31
4. Substituindo na equação, obtemos:

|𝐴 ∪ 𝐵| = (|𝐴| − |𝐴 ∩ 𝐵|) + |𝐴 ∩ 𝐵| + (|𝐵| − |𝐴 ∩ 𝐵|).

5. Simplificando:
|𝐴 ∪ 𝐵| = |𝐴| + |𝐵| − |𝐴 ∩ 𝐵|.

Exemplo: Dentre 4689 estudantes, 2112 cursaram pelo menos 60 créditos e 2678 cursaram no
máximo 60 créditos. Quantos deles cursaram exatamente 60 créditos?
Seja 𝐴 o conjunto dos alunos que cursaram pelo menos 60 créditos e 𝐵 o conjunto dos alunos que
cursaram no máximo 60 créditos. Então temos:

|𝐴 ∪ 𝐵| = 4689 (número total de estudantes),

|𝐴| = 2112, |𝐵| = 2678.

Pelo princípio da inclusão-exclusão:

|𝐴 ∪ 𝐵| = |𝐴| + |𝐵| − |𝐴 ∩ 𝐵|.

Substituindo os valores:
4689 = 2112 + 2678 − |𝐴 ∩ 𝐵|.

Assim:
|𝐴 ∩ 𝐵| = 2112 + 2678 − 4689 = 4790 − 4689 = 101.

Portanto, |𝐴 ∩ 𝐵| = 101 estudantes cursaram exatamente 60 créditos.


Podemos generalizar o princípio anterior para o caso de 3 conjuntos: A, B e C. Mas como podemos
calcular o número de elementos de |𝐴 ∪ 𝐵 ∪ 𝐶|? O diagrama a seguir nos ajuda a visualizar todos os
conjuntos envolvidos.

32
Note que temos 7 conjuntos disjuntos, que são:

𝐴−(𝐵∪𝐶), 𝐵−(𝐴∪𝐶), 𝐶 −(𝐴∪𝐵), (𝐴∩𝐵)−𝐶, (𝐵∩𝐶)−𝐴, (𝐴∩𝐶)−𝐵, 𝐴∩𝐵∩𝐶.

Assim, podemos expressar a união de 𝐴, 𝐵 e 𝐶 como:

𝐴 ∪ 𝐵 ∪ 𝐶 = (𝐴 − (𝐵 ∪ 𝐶)) ∪ (𝐵 − (𝐴 ∪ 𝐶)) ∪ (𝐶 − (𝐴 ∪ 𝐵)) ∪ ((𝐴 ∩ 𝐵) − 𝐶) ∪ (72)


((𝐵 ∩ 𝐶) − 𝐴) ∪ ((𝐴 ∩ 𝐶) − 𝐵) ∪ (𝐴 ∩ 𝐵 ∩ 𝐶)

o que nos leva a:

|𝐴 ∪ 𝐵 ∪ 𝐶| = |𝐴 − (𝐵 ∪ 𝐶)| + |𝐵 − (𝐴 ∪ 𝐶)| + |𝐶 − (𝐴 ∪ 𝐵)| + |(𝐴 ∩ 𝐵) − 𝐶|+ (73)


|(𝐵 ∩ 𝐶) − 𝐴| + |(𝐴 ∩ 𝐶) − 𝐵| + |𝐴 ∩ 𝐵 ∩ 𝐶|

Calculando o número de elementos em cada um dos 7 conjuntos disjuntos, temos:

|𝐴 − (𝐵 ∪ 𝐶)| = |𝐴| − |𝐴 ∩ 𝐵| − |𝐴 ∩ 𝐶| + |𝐴 ∩ 𝐵 ∩ 𝐶|,

|𝐵 − (𝐴 ∪ 𝐶)| = |𝐵| − |𝐴 ∩ 𝐵| − |𝐵 ∩ 𝐶| + |𝐴 ∩ 𝐵 ∩ 𝐶|,

|𝐶 − (𝐴 ∪ 𝐵)| = |𝐶| − |𝐴 ∩ 𝐶| − |𝐵 ∩ 𝐶| + |𝐴 ∩ 𝐵 ∩ 𝐶|,

|(𝐴 ∩ 𝐵) − 𝐶| = |𝐴 ∩ 𝐵| − |𝐴 ∩ 𝐵 ∩ 𝐶|,

|(𝐵 ∩ 𝐶) − 𝐴| = |𝐵 ∩ 𝐶| − |𝐴 ∩ 𝐵 ∩ 𝐶|,

|(𝐴 ∩ 𝐶) − 𝐵| = |𝐴 ∩ 𝐶| − |𝐴 ∩ 𝐵 ∩ 𝐶|,

|𝐴 ∩ 𝐵 ∩ 𝐶| = |𝐴 ∩ 𝐵 ∩ 𝐶|.

Somando tudo, chegamos finalmente a:

|𝐴 ∪ 𝐵 ∪ 𝐶| = |𝐴| + |𝐵| + |𝐶| − |𝐴 ∩ 𝐵| − |𝐴 ∩ 𝐶| − |𝐵 ∩ 𝐶| + |𝐴 ∩ 𝐵 ∩ 𝐶|.

Exemplo. Um total de 1232 estudantes cursaram Espanhol, 879 cursaram Francês e 114 cursaram
Russo. Além disso, 103 cursaram Espanhol e Francês, 23 cursaram Espanhol e Russo, e 14 cursaram
Francês e Russo. Se 2092 cursaram pelo menos um dos três cursos, quantos cursaram os três cursos?
Pelo princípio da inclusão-exclusão, temos:

|𝐸 ∪ 𝐹 ∪ 𝑅| = |𝐸| + |𝐹 | + |𝑅| − |𝐸 ∩ 𝐹 | − |𝐹 ∩ 𝑅| − |𝐸 ∩ 𝑅| + |𝐸 ∩ 𝐹 ∩ 𝑅|.

33
Desejamos calcular |𝐸 ∩ 𝐹 ∩ 𝑅|. Isolando este termo, obtemos:

|𝐸 ∩ 𝐹 ∩ 𝑅| = |𝐸 ∪ 𝐹 ∪ 𝑅| − |𝐸| − |𝐹 | − |𝑅| + |𝐸 ∩ 𝐹 | + |𝐹 ∩ 𝑅| + |𝐸 ∩ 𝑅|.

Substituindo os valores conhecidos:

|𝐸 ∩ 𝐹 ∩ 𝑅| = 2092 − 1232 − 879 − 114 + 103 + 23 + 14.

Efetuando os cálculos:
|𝐸 ∩ 𝐹 ∩ 𝑅| = 7.

Portanto, apenas 7 estudantes cursaram os três cursos.


A esta altura, já é possível observarmos um padrão: a fórmula possui 2𝑛 − 1 termos, onde 𝑛 é
o número de conjuntos. Para 𝑛 = 2, temos 3 termos na equação, para 𝑛 = 3 temos 7 termos na
equação. Note que 2𝑛 − 1 é exatamente o número máximo de subconjuntos disjuntos que podem
ser descritos quando temos 𝑛 conjuntos. Outro padrão que pode ser observado consiste na soma e
subtração de elementos: os termos envolvendo uma quantidade ímpar de intersecções de conjuntos
devem ser somados, enquanto os termos envolvendo uma quantidade par de interseções de conjuntos
devem ser subtraídos. Sendo assim, podemos desenvolver uma fórmula para calcular a quantidade de
elementos na união de 4 conjuntos. Note que para 𝑛 = 4 conjuntos, podemos ter até 15 subconjuntos
disjuntos, conforme indicado na figura a seguir.

Sendo assim, a fórmula para o número de elementos da união neste caso é dada por:

|𝐴 ∪ 𝐵 ∪ 𝐶 ∪ 𝐷| = |𝐴| + |𝐵| + |𝐶| + |𝐷| (74)


− |𝐴 ∩ 𝐵| − |𝐴 ∩ 𝐶| − |𝐴 ∩ 𝐷| − |𝐵 ∩ 𝐶| − |𝐵 ∩ 𝐷| − |𝐶 ∩ 𝐷|
+ |𝐴 ∩ 𝐵 ∩ 𝐶| + |𝐴 ∩ 𝐵 ∩ 𝐷| + |𝐴 ∩ 𝐶 ∩ 𝐷| + |𝐵 ∩ 𝐶 ∩ 𝐷|
− |𝐴 ∩ 𝐵 ∩ 𝐶 ∩ 𝐷|

34
O teorema a seguir generaliza o princípio da inclusão-exclusão para um número 𝑛 arbitrário de
conjuntos.

Teorema 10 (Princípio da Inclusão-Exclusão (caso geral)). Sejam 𝐴1 , 𝐴2 , ..., 𝐴𝑛 conjuntos finitos.


Então, o número de elementos na união de todos eles é dado por:
⃒ ⃒
𝑛
⃒⋃︁ ⃒ ∑︁𝑛 ∑︁ ∑︁
⃒ 𝐴𝑖 ⃒ = |𝐴𝑖 | − |𝐴𝑖 ∩ 𝐴𝑗 | + |𝐴𝑖 ∩ 𝐴𝑗 ∩ 𝐴𝑘 | − ... (75)
⃒ ⃒
⃒ ⃒
𝑖=1 𝑖=1 1≤𝑖<𝑗≤𝑛 1≤𝑖<𝑗<𝑘≤𝑛

+(−1)𝑛−1 |𝐴1 ∩ 𝐴2 ∩ ... ∩ 𝐴𝑛 |

A figura a seguir mostra uma visualização dos possíveis subconjuntos na união de 5 conjuntos:
𝐴, 𝐵, 𝐶, 𝐷, 𝐸. Note que há algumas intersecções faltantes na ilustração, uma vez que deveríamos ter
um total de 31 possíveis subconjuntos.

Iremos omitir a prova deste teorema, mas o leitor interessado pode encontrá-la na Seção 8.5,
página 579, do excelente livro a seguir: Rosen, K. H. Discrete Mathematics and its Applications,
8a edição, McGraw Hill, 2019. A definição a seguir mostra um conceito fundamental da teoria dos
conjuntos: a partição de um conjunto 𝐴.

Definição 14 (Partição). Uma coleção de conjuntos não vazios {𝐴1 , 𝐴2 , . . . , 𝐴𝑛 } é uma partição de
𝐴 se, e somente se:

35
1. Cobertura: a união das partições é igual a todo o conjunto 𝐴,

𝐴1 ∪ 𝐴2 ∪ · · · ∪ 𝐴𝑛 = 𝐴;

2. Disjunção: para quaisquer 𝑖, 𝑗 ∈ {1, 2, . . . , 𝑛}, com 𝑖 ̸= 𝑗, temos

𝐴𝑖 ∩ 𝐴𝑗 = ∅.

A figura a seguir ilustra um conjunto 𝐸 e sua partição em 6 conjuntos {𝑞0 , 𝑞1 , 𝑞2 , 𝑞3 , 𝑞4 , 𝑞5 }.

Exemplo. Seja N o conjunto dos números naturais e sejam:

𝑇0 = {𝑛 ∈ N : ∃𝑘 ∈ N / 𝑛 = 3𝑘},

𝑇1 = {𝑛 ∈ N : ∃𝑘 ∈ N / 𝑛 = 3𝑘 + 1},

𝑇2 = {𝑛 ∈ N : ∃𝑘 ∈ N / 𝑛 = 3𝑘 + 2}.

A coleção {𝑇0 , 𝑇1 , 𝑇2 } é uma partição de N? Justifique sua resposta.


Note que:

• 𝑇0 é o subconjunto dos naturais múltiplos de 3, ou seja, 𝑛 mod 3 = 0.

• 𝑇1 é o subconjunto dos naturais tais que 𝑛 mod 3 = 1 (resto 1).

• 𝑇2 é o subconjunto dos naturais tais que 𝑛 mod 3 = 2 (resto 2).

Sendo assim:
𝑇0 ∩ 𝑇1 = ∅, 𝑇1 ∩ 𝑇2 = ∅, 𝑇0 ∩ 𝑇2 = ∅.

36
Além disso:
𝑇0 ∪ 𝑇1 ∪ 𝑇2 = N.

Portanto, {𝑇0 , 𝑇1 , 𝑇2 } constitui uma partição válida do conjunto dos números naturais.

Definição 15 (Conjunto Potência). Dado um conjunto 𝐴, o conjunto potência de 𝐴, denotado por 2𝐴


ou 𝒫(𝐴), é o conjunto de todos os subconjuntos de 𝐴.

Exemplo. Seja 𝐴 = {1, 2, 3}. Temos:

2𝐴 = {∅, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}.

Note que:
|2𝐴 | = 2|𝐴| .

Definição 16 (Produto Cartesiano). Dados conjuntos 𝐴1 , 𝐴2 , . . . , 𝐴𝑛 , o produto cartesiano, denotado


por
𝐴1 × 𝐴2 × · · · × 𝐴𝑛 ,

é o conjunto de todas as 𝑛-tuplas ordenadas (𝑎1 , 𝑎2 , . . . , 𝑎𝑛 ) tais que 𝑎1 ∈ 𝐴1 , 𝑎2 ∈ 𝐴2 , . . . , 𝑎𝑛 ∈


𝐴𝑛 .
𝐴1 × 𝐴2 × · · · × 𝐴𝑛 = {(𝑎1 , 𝑎2 , . . . , 𝑎𝑛 ) : 𝑎𝑖 ∈ 𝐴𝑖 para todo 𝑖 = 1, 2, . . . , 𝑛}.

Em particular, no caso 𝑛 = 2, temos pares ordenados:

𝐴 × 𝐵 = {(𝑎, 𝑏) : 𝑎 ∈ 𝐴 ∧ 𝑏 ∈ 𝐵}.

Observação: O produto cartesiano não é comutativo! A ordem dos conjuntos altera o resultado
do produto.
Exemplo: Seja
𝐴1 = {𝑥, 𝑦}, 𝐴2 = {1, 2, 3}, 𝐴3 = {𝑎, 𝑏}.

1. Encontre 𝐴1 × 𝐴2 :

𝐴1 × 𝐴2 = {(𝑥, 1), (𝑥, 2), (𝑥, 3), (𝑦, 1), (𝑦, 2), (𝑦, 3)}.

2. Encontre 𝐴1 × 𝐴2 × 𝐴3 :

𝐴1 × 𝐴2 × 𝐴3 = {(𝑥, 1, 𝑎), (𝑥, 1, 𝑏), (𝑥, 2, 𝑎), (𝑥, 2, 𝑏), (𝑥, 3, 𝑎), (𝑥, 3, 𝑏),
(𝑦, 1, 𝑎), (𝑦, 1, 𝑏), (𝑦, 2, 𝑎), (𝑦, 2, 𝑏), (𝑦, 3, 𝑎), (𝑦, 3, 𝑏)}.

Note que o número de elementos em 𝐴1 × 𝐴2 × 𝐴3 é dado por:

|𝐴1 × 𝐴2 × 𝐴3 | = |𝐴1 | · |𝐴2 | · |𝐴3 |.

37
3.5 Propriedades de operações entre conjuntos
A seguir, veremos algumas propriedades dos operadores união, intersecção e de subconjuntos:

1. ∀𝐴, 𝐵 𝐴∩𝐵 ⊆𝐴 ∧ 𝐴∩𝐵 ⊆𝐵 (inclusão da interseção)

2. ∀𝐴, 𝐵 𝐴⊆𝐴∪𝐵 ∧ 𝐵 ⊆𝐴∪𝐵 (inclusão da união)

3. ∀𝐴, 𝐵, 𝐶 (𝐴 ⊆ 𝐵 ∧ 𝐵 ⊆ 𝐶) → 𝐴 ⊆ 𝐶 (transitividade do operador “está contido”)

3.5.1 Identidades notáveis

1. Leis comutativas da união e interseção:

∀𝐴, 𝐵 (𝐴 ∪ 𝐵 = 𝐵 ∪ 𝐴) ∧ (𝐴 ∩ 𝐵 = 𝐵 ∩ 𝐴).

2. Leis associativas da união e interseção:

∀𝐴, 𝐵, 𝐶 ((𝐴 ∪ 𝐵) ∪ 𝐶 = 𝐴 ∪ (𝐵 ∪ 𝐶)),

∀𝐴, 𝐵, 𝐶 ((𝐴 ∩ 𝐵) ∩ 𝐶 = 𝐴 ∩ (𝐵 ∩ 𝐶)).

3. Leis distributivas da união e interseção:

∀𝐴, 𝐵, 𝐶 (𝐴 ∪ (𝐵 ∩ 𝐶) = (𝐴 ∪ 𝐵) ∩ (𝐴 ∪ 𝐶)),

∀𝐴, 𝐵, 𝐶 (𝐴 ∩ (𝐵 ∪ 𝐶) = (𝐴 ∩ 𝐵) ∪ (𝐴 ∩ 𝐶)).

4. Leis da identidade:
∀𝐴 𝐴 ∪ ∅ = 𝐴, 𝐴 ∩ 𝑈 = 𝐴.

5. Leis da complementaridade:

𝐴 ∪ 𝐴𝑐 = 𝑈, 𝐴 ∩ 𝐴𝑐 = ∅, (𝐴𝑐 )𝑐 = 𝐴.

6. Leis de De Morgan:
(𝐴 ∩ 𝐵)𝑐 = 𝐴𝑐 ∪ 𝐵 𝑐 ,

(𝐴 ∪ 𝐵)𝑐 = 𝐴𝑐 ∩ 𝐵 𝑐 .

Iremos provar o item (a). Para isso, temos que mostrar que os conjuntos 𝐴 ∩ 𝐵 e 𝐴 ∪ 𝐵 são
idênticos. Lembre que dois conjuntos 𝐴 e 𝐵 são iguais se, e somente se,

𝐴 ⊆ 𝐵 ∧ 𝐵 ⊆ 𝐴.

38
Parte 1

i. Suponha um elemento arbitrário 𝑥 ∈ (𝐴 ∩ 𝐵)𝑐 .

ii. Então, 𝑥 ∈
/ 𝐴 ∩ 𝐵.

iii. Para não estar na interseção, 𝑥 pode estar em 𝐴 ou 𝐵 mas não em ambos:

𝑥∈
/𝐴 ∧ 𝑥∈
/ 𝐵.

iv. Sendo assim, 𝑥 ∈ 𝐴𝑐 ∨ 𝑥 ∈ 𝐵 𝑐 .

v. Portanto, 𝑥 ∈ 𝐴𝑐 ∪ 𝐵 𝑐 .

Assim, temos que


(𝐴 ∩ 𝐵)𝑐 ⊆ 𝐴𝑐 ∪ 𝐵 𝑐 (𝐼).

Parte 2

i. Suponha 𝑦 ∈ 𝐴𝑐 ∪ 𝐵 𝑐 (arbitrário).

ii. Então, 𝑦 ∈ 𝐴𝑐 ∨ 𝑦 ∈ 𝐵 𝑐 .

iii. Assim, temos que 𝑦 ∈


/𝐴 ∧ 𝑦∈
/ 𝐵.

iv. Se 𝑦 não está em 𝐴 e não está em 𝐵, ele não pode estar em 𝐴 e 𝐵 simultaneamente:

𝑦∈
/ 𝐴 ∩ 𝐵.

v. Portanto, 𝑦 ∈ (𝐴 ∩ 𝐵)𝑐 .

Assim, temos que


𝐴𝑐 ∪ 𝐵 𝑐 ⊆ (𝐴 ∩ 𝐵)𝑐 (𝐼𝐼).

Portanto, de (I) e (II) concluímos que

(𝐴 ∩ 𝐵)𝑐 = 𝐴𝑐 ∪ 𝐵 𝑐 .

Duas leis importantes da teoria dos conjuntos são: a lei da absorção e a lei da diferença. A lei
da absorção é definida como:

∀𝐴, 𝐵, 𝐴 ∪ (𝐴 ∩ 𝐵) = 𝐴, (76)
∀𝐴, 𝐵, 𝐴 ∩ (𝐴 ∪ 𝐵) = 𝐴. (77)

39
A lei da diferença é definida como:

∀𝐴, 𝐵, 𝐴 − 𝐵 = 𝐴 ∩ 𝐵. (78)

Demonstração: Para demonstrar esta lei, lembramos que a diferença entre conjuntos é definida
como
𝐴 − 𝐵 = {𝑥 | 𝑥 ∈ 𝐴 ∧ 𝑥 ∈ / 𝐵}.

Podemos então reescrever a condição de pertencimento como

𝑥∈𝐴−𝐵 ⇐⇒ 𝑥∈𝐴∧𝑥∈
/ 𝐵.

Assim, temos:
𝑥∈𝐴−𝐵 ⇐⇒ 𝑥 ∈ 𝐴 ∧ 𝑥 ∈ 𝐵𝑐.

Portanto, concluímos que


𝐴 − 𝐵 = 𝐴 ∩ 𝐵𝑐.

O teorema a seguir generaliza as leis de De Morgan.

Teorema 11 (Lei de De Morgan generalizada). Sejam 𝐴1 , 𝐴2 , ..., 𝐴𝑛 conjuntos finitos. Então:


(︃ 𝑛
)︃𝑐 𝑛
⋂︁ ⋃︁
𝐴𝑖 = 𝐴𝑐𝑖 (79)
𝑖=1 𝑖=1

Demonstração: prova por indução.


A proposição 𝑃 (𝑘) pode ser expressa como:

𝑃 (𝑘) : (𝐴1 ∩ 𝐴2 ∩ ... ∩ 𝐴𝑘 )𝑐 = 𝐴𝑐1 ∪ 𝐴𝑐2 ∪ ... ∪ 𝐴𝑐𝑛 (80)

• BASE: 𝑃 (2) : (𝐴1 ∩ 𝐴2 )𝑐 = 𝐴𝑐1 ∪ 𝐴𝑐2 , o que já foi provado anteriormente.

• PASSO DE INDUÇÃO: Para um 𝑘 arbitrário, devemos mostrar que 𝑃 (𝑘) → 𝑃 (𝑘 + 1).

Note que 𝑃 (𝑘 + 1) pode ser escrita como:


(︃𝑘+1 )︃𝑐 (︃ 𝑘
)︃𝑐
⋂︁ ⋂︁
𝐴𝑖 = 𝐴𝑖 ∩ 𝐴𝑘+1 (81)
𝑖=1 𝑖=1

Mas pela lei de De Morgan para 𝑛 = 2, temos:


(︃𝑘+1 )︃𝑐 (︃ 𝑘
)︃𝑐
⋂︁ ⋂︁
𝐴𝑖 = 𝐴𝑖 ∪ 𝐴𝑐𝑘+1 (82)
𝑖=1 𝑖=1

Pela hipótese indutiva, o primeiro termo da união pode ser escrito como:

40
(︃𝑘+1 )︃𝑐 𝑘 𝑘+1
⋂︁ ⋃︁ ⋃︁
𝐴𝑖 = 𝐴𝑐𝑖 ∪ 𝐴𝑐𝑘+1 = 𝐴𝑐𝑖 (83)
𝑖=1 𝑖=1 𝑖=1

o que conclui a prova por indução.


Exercício: Utilizando as leis da teoria dos conjuntos, prove as seguintes identidades:

(a)
𝐴 − (𝐴 ∩ 𝐵) = 𝐴 − 𝐵

𝐴 − (𝐴 ∩ 𝐵) = 𝐴 ∩ (𝐴 ∩ 𝐵)𝑐
= 𝐴 ∩ (𝐴𝑐 ∪ 𝐵 𝑐 )
= (𝐴 ∩ 𝐴𝑐 ) ∪ (𝐴 ∩ 𝐵 𝑐 )
= ∅ ∪ (𝐴 ∩ 𝐵 𝑐 )
= 𝐴 ∩ 𝐵𝑐
= 𝐴 − 𝐵.

(b)
(𝐴 ∪ 𝐵) − 𝐶 = (𝐴 − 𝐶) ∪ (𝐵 − 𝐶)

(𝐴 ∪ 𝐵) − 𝐶 = (𝐴 ∪ 𝐵) ∩ 𝐶 𝑐
= (𝐴 ∩ 𝐶 𝑐 ) ∪ (𝐵 ∩ 𝐶 𝑐 )
= (𝐴 − 𝐶) ∪ (𝐵 − 𝐶).

(c)
𝐴 ∪ (𝐵 − 𝐶) = (𝐴 ∪ 𝐵) − (𝐶 − 𝐴)

𝐴 ∪ (𝐵 − 𝐶) = 𝐴 ∪ (𝐵 ∩ 𝐶 𝑐 )
= (𝐴 ∪ 𝐵) ∩ (𝐴 ∪ 𝐶 𝑐 )
= (𝐴 ∪ 𝐵) − (𝐶 − 𝐴).

Exemplo: Mostre que a diferença simétrica entre 𝐴 e 𝐵 pode ser expressa como a diferença entre
a união de 𝐴 e 𝐵 e a interseção de 𝐴 e 𝐵.
Sabemos que a diferença simétrica é definida como:

𝐴 ⊖ 𝐵 = (𝐴 − 𝐵) ∪ (𝐵 − 𝐴)

41
Pela lei da diferença, temos:

𝐴 ⊖ 𝐵 = (𝐴 ∩ 𝐵 𝑐 ) ∪ (𝐵 ∩ 𝐴𝑐 )

Aplicando a lei distributiva:

𝐴 ⊖ 𝐵 = (𝐴 ∪ 𝐵) ∩ (𝐴 ∪ 𝐴𝑐 ) ∩ (𝐵 ∪ 𝐵 𝑐 ) ∩ (𝐵 𝑐 ∪ 𝐴𝑐 )

Pelas leis do complemento, temos:

𝐴 ⊖ 𝐵 = (𝐴 ∪ 𝐵) ∩ 𝑈 ∩ 𝑈 ∩ (𝐵 𝑐 ∪ 𝐴𝑐 )

Aplicando a lei da identidade:

𝐴 ⊖ 𝐵 = (𝐴 ∪ 𝐵) ∩ (𝐵 𝑐 ∪ 𝐴𝑐 )

Pela lei da diferença, temos:

𝐴 ⊖ 𝐵 = (𝐴 ∪ 𝐵) − (𝐵 𝑐 ∪ 𝐴𝑐 )𝑐

Pela lei de De Morgan, podemos escrever:

𝐴 ⊖ 𝐵 = (𝐴 ∪ 𝐵) − (𝐵 ∩ 𝐴) = (𝐴 ∪ 𝐵) − (𝐴 ∩ 𝐵)

3.6 Considerações finais


A teoria dos conjuntos fornece a base conceitual sobre a qual grande parte da matemática moderna
é construída. Ao longo deste capítulo, introduzimos os conceitos fundamentais, como conjuntos,
subconjuntos, operações de união, interseção, diferença e complemento, além das noções de produto
cartesiano e relações de pertinência e inclusão. Esses elementos constituem a linguagem primária
para descrever e manipular objetos matemáticos de maneira precisa e rigorosa.
Um aspecto importante observado é que a teoria dos conjuntos não apenas formaliza o raciocínio
matemático, mas também oferece um modo padronizado de representar estruturas e resolver proble-
mas. A clareza e a generalidade das operações de conjuntos permitem transitar de situações simples,
como a manipulação de coleções finitas, até contextos mais abstratos, como funções, relações e es-
truturas algébricas.
Além disso, exploramos algumas propriedades fundamentais e leis dos conjuntos, como as leis
de De Morgan e as leis da absorção, que reforçam a importância da lógica na manipulação de ex-
pressões envolvendo conjuntos. Esses resultados não são apenas exercícios formais: eles formam a

42
base para desenvolvimentos mais sofisticados em matemática discreta, teoria das relações e análise
de algoritmos.
Em resumo, este capítulo buscou apresentar uma introdução sólida ao universo da teoria dos con-
juntos, preparando o terreno para conceitos mais avançados que surgirão nos capítulos seguintes. A
familiaridade com os conjuntos e suas operações é condição essencial para compreender relações,
funções, estruturas matemáticas e, sobretudo, para o desenvolvimento do pensamento lógico e abs-
trato necessário em computação e matemática aplicada.

43
4 Relações
As relações constituem um dos conceitos centrais da Matemática Discreta, pois permitem descre-
ver e analisar a maneira como elementos de um conjunto podem estar associados a elementos de outro
(ou do mesmo) conjunto. De forma geral, uma relação é um subconjunto do produto cartesiano entre
dois conjuntos, ou seja, um conjunto de pares ordenados que expressam ligações entre seus elemen-
tos. Esse formalismo simples é capaz de representar uma ampla gama de situações, desde relações
numéricas básicas, como “menor que” ou “divisível por”, até estruturas mais complexas empregadas
em ciência da computação, como grafos e bancos de dados relacionais.
O estudo das propriedades das relações — como reflexividade, simetria, antissimetria e transiti-
vidade — fornece ferramentas essenciais para compreender padrões de organização e classificação.
Por exemplo, relações de equivalência permitem agrupar elementos em classes que compartilham
características comuns, enquanto relações de ordem fornecem um arcabouço natural para organizar
informações em hierarquias ou sequências. Essas ideias estão na base de muitas áreas da computação,
como algoritmos de ordenação, estruturas de dados e teoria das linguagens formais.
Além disso, relações desempenham papel fundamental em aplicações práticas. Em bancos de
dados, as relações formam o núcleo da modelagem de tabelas e consultas; em redes de computa-
dores, podem representar conexões entre máquinas; e em teoria de grafos, tornam-se a base para o
estudo de vértices e arestas. Portanto, compreender o conceito de relações e suas propriedades não
apenas amplia a capacidade de abstração matemática do estudante, mas também fornece instrumentos
indispensáveis para o desenvolvimento de soluções computacionais eficientes.

Definição 17 (Relação Binária). Sejam 𝐴 e 𝐵 conjuntos quaisquer. Uma relação binária de 𝐴 em 𝐵


é qualquer subconjunto do produto cartesiano 𝐴 × 𝐵.

Exemplo: Sejam
𝐴 = {0, 1, 2}, 𝐵 = {𝑎, 𝑏}.

Então,
𝑅 = {(0, 𝑎), (0, 𝑏), (1, 𝑎), (1, 𝑏)}

é uma relação binária de 𝐴 em 𝐵.

Introduziremos aqui uma notação para indicar a pertinência de um par ordenado em uma relação
𝑅. Para dizer que o par (𝑎, 𝑏) pertence à relação 𝑅, escrevemos:

(𝑎, 𝑏) ∈ 𝑅 ≡ 𝑎𝑅𝑏

Definição 18 (Domínio e Imagem). Seja 𝑅 uma relação binária. Definimos:

dom(𝑅) = {𝑎 : ∃𝑏 (𝑎𝑅𝑏)},

img(𝑅) = {𝑏 : ∃𝑎 (𝑎𝑅𝑏)}.

44
Definição 19 (Endorrelação). Uma endorrelação é uma relação binária definida em 𝐴 × 𝐴.

Definição 20 (Relação Inversa). Seja 𝑅 uma relação. A relação inversa de 𝑅 é definida como:

𝑅−1 = {(𝑥, 𝑦) : 𝑦𝑅𝑥}.

Ou seja, basta inverter todos os pares ordenados.

Exemplo: Seja
𝐴 = {1, 2, 3, 4, 5, 6}, 𝐵 = {1, 2, 3, 4}.

Definimos a relação 𝑅 = {(𝑎, 𝑏) : (𝑎 − 𝑏) mod 2 = 0} de 𝐴 em 𝐵. Assim:

𝑅 = {(1, 1), (1, 3), (2, 2), (2, 4), (3, 1), (3, 3), (4, 2), (4, 4), (5, 1), (5, 3), (6, 2), (6, 4)}.

Note que os pares (5, 5) e (6, 6) não pertencem à relação 𝑅. Eles só apareceriam se a relação fosse
definida de 𝐴 em 𝐴 (isto é, uma endorrelação).
Exemplo. Seja 𝐴 = {1, 2, 3, 4}. Defina 𝑅 como a relação binária de 𝐴 em 𝐴 a seguir:

𝑎𝑅𝑏 ⇔ 𝑎 divide 𝑏.

Uma pergunta interessante que surge neste momento é: quantas relações binárias de 𝐴 em 𝐴
existem em um conjunto de 𝑛 elementos 𝐴 = {1, 2, 3, . . . , 𝑛}?
Se 𝑅 ⊆ 𝐴 × 𝐴, então o produto cartesiano terá

|𝐴 × 𝐴| = 𝑛2

elementos.
Lembrando do conjunto potência, definido como o conjunto de todos os subconjuntos de um dado
conjunto, sabemos que o número de elementos é dado por:

|2𝑅 | = 2|𝑅| .

Como |𝑅| ≤ 𝑛2 , temos que o número máximo de relações binárias possíveis é:

2
2𝑛 .

Por exemplo, um simples conjunto 𝐴 = {1, 2, 3, 4, 5} admite até:

2|𝐴×𝐴| = 225

relações distintas.

Considere o caso mais simples em que 𝐴 = {1, 2}. Então, o produto cartesiano de 𝐴 com ele

45
mesmo é:
𝐴 × 𝐴 = {(1, 1), (1, 2), (2, 1), (2, 2)},

que possui 4 elementos.


Quantos subconjuntos distintos podemos formar com apenas esses 4 pares ordenados? Esse será
o número de possíveis relações de 𝐴 em 𝐴.
O conjunto potência de 𝐴 × 𝐴 terá:
24 = 16

elementos, portanto temos 16 possíveis relações binárias (incluindo a relação vazia, que não associa
nenhum elemento a nenhum outro).
Definição 21 (Relação Reflexiva). Seja 𝐴 um conjunto qualquer e 𝑅 ⊆ 𝐴 × 𝐴 uma relação binária.
Dizemos que 𝑅 é reflexiva se:
∀𝑥 ∈ 𝐴, 𝑥𝑅𝑥.
Exemplo. Seja 𝐴 = {1, 2, 3} e considere as seguintes relações:

𝑅1 = {(1, 2), (2, 2), (3, 1), (3, 3)},

𝑅2 = {(1, 1), (2, 1), (2, 2), (3, 2), (3, 3)}.

Ambas são exemplos de relações reflexivas.

Dizemos que uma relação é irreflexiva se:

∀𝑥 ∈ 𝐴, (𝑥, 𝑥) ∈
/ 𝑅.

Definição 22 (Relação Simétrica). Seja 𝐴 um conjunto qualquer e 𝑅 ⊆ 𝐴 × 𝐴 uma relação binária.


Dizemos que 𝑅 é simétrica se:
∀𝑥, 𝑦 ∈ 𝐴, (𝑥𝑅𝑦 → 𝑦𝑅𝑥).
Dizemos que 𝑅 é antissimétrica se:
(︀ )︀
∀𝑥, 𝑦 ∈ 𝐴, (𝑥𝑅𝑦 ∧ 𝑦𝑅𝑥) → 𝑥 = 𝑦 .

Exemplo: Considere as relações a seguir definidas em 𝐴 = {1, 2, 3, 4}:

𝑅1 = {(1, 1), (1, 2), (2, 1)} (simétrica)

𝑅2 = {(1, 1), (1, 2), (1, 4), (2, 1), (2, 2), (3, 3), (4, 1), (4, 4)}

𝑅3 = {(2, 1), (3, 1), (3, 2), (4, 1), (4, 2), (4, 3)} (simétrica e antissimétrica).

Note que, por exemplo, existe o par (2, 1) ∈ 𝑅3 , mas como não existe (1, 2), temos que a impli-
cação da definição da propriedade antissimétrica é verdadeira. De fato, a proposição lógica envolvida

46
é:
(𝑥𝑅𝑦 ∧ 𝑦𝑅𝑥) → (𝑥 = 𝑦).

Quando (𝑥𝑅𝑦 ∧ 𝑦𝑅𝑥) é falso, a implicação inteira é verdadeira. Isso pode ser melhor visualizado
na tabela verdade a seguir:

𝑥𝑅𝑦 𝑦𝑅𝑥 (𝑥𝑅𝑦 ∧ 𝑦𝑅𝑥) (𝑥𝑅𝑦⎧∧ 𝑦𝑅𝑥) → (𝑥 = 𝑦)


⎨𝑉, se 𝑥 = 𝑦
𝑉 𝑉 𝑉
⎩𝐹, se 𝑥 ̸= 𝑦
𝑉 𝐹 𝐹 𝑉
𝐹 𝑉 𝐹 𝑉
𝐹 𝐹 𝐹 𝑉

Assim, somente quando 𝑥 ̸= 𝑦 e temos simultaneamente 𝑥𝑅𝑦 e 𝑦𝑅𝑥, a propriedade antissimétrica


é violada.

Outros exemplos:

𝑅4 = {(1, 1), (1, 2), (1, 3), (1, 4), (2, 2), (2, 3), (2, 4), (3, 3), (3, 4), (4, 4)} (antissimétrica),

𝑅5 = {(3, 4)} (antissimétrica).

Outra forma de entender a propriedade antissimétrica é pela contrapositiva:

𝑥 ̸= 𝑦 → ¬(𝑥𝑅𝑦 ∧ 𝑦𝑅𝑥).

Ou seja, para dois elementos distintos de 𝐴, não pode ocorrer simultaneamente 𝑥𝑅𝑦 e 𝑦𝑅𝑥.

Exemplo: Seja 𝐴 = {1, 2, 3} e considere:

𝑅 = {(3, 3)}.

Note que 𝑅 é simétrica (pois o par inverso de (3, 3) é ele mesmo) e também antissimétrica. Este
exemplo mostra que é possível uma relação ser simétrica e antissimétrica ao mesmo tempo.

Teorema 12. Seja 𝑅 uma relação binária qualquer em 𝐴. Se 𝑅 é simétrica, então a relação inversa
𝑅−1 também é simétrica.

Prova.

1. Sejam 𝑥, 𝑦 ∈ 𝐴 arbitrários, tais que 𝑥𝑅𝑦.

2. Como 𝑅 é simétrica, então 𝑦𝑅𝑥.

47
3. De 𝑥𝑅𝑦 e 𝑦𝑅𝑥, temos 𝑥𝑅−1 𝑦 e 𝑦𝑅−1 𝑥.

4. Portanto, 𝑅−1 é simétrica.

Definição 23 (Relação Transitiva). Seja 𝐴 um conjunto qualquer e 𝑅 ⊆ 𝐴 × 𝐴 uma relação binária.


Dizemos que 𝑅 é transitiva se:
(︀ )︀
∀𝑥, 𝑦, 𝑧 ∈ 𝐴 (𝑥𝑅𝑦 ∧ 𝑦𝑅𝑧) → 𝑥𝑅𝑧 .

Exemplos. Considere as seguintes relações definidas em 𝐴 = {1, 2, 3, 4}:

𝑅1 = {(1, 1), (1, 2), (2, 1)} não é transitiva (falta (2, 2)),

𝑅2 = {(1, 1), (1, 2), (1, 4), (2, 1), (2, 2), (3, 3), (4, 1), (4, 4)} não é transitiva (falta (4, 2)),

𝑅3 = {(2, 1), (3, 1), (3, 2), (4, 1), (4, 2), (4, 3)} transitiva,

𝑅4 = {(1, 1), (1, 2), (1, 3), (1, 4), (2, 2), (2, 3), (2, 4), (3, 3), (3, 4), (4, 4)} transitiva,

𝑅5 = {(3, 4)} transitiva (por vacuidade).

No caso de 𝑅5 , o antecedente da implicação é sempre falso, portanto a proposição inteira é sempre


verdadeira.
Exemplo: Considere as seguintes relações binárias definidas no conjunto dos inteiros Z:

𝑅1 = {(𝑥, 𝑦) : 𝑥 ≤ 𝑦}, 𝑅2 = {(𝑥, 𝑦) : 𝑥 > 𝑦}, 𝑅3 = {(𝑥, 𝑦) : 𝑥 = 𝑦 ∨ 𝑥 = −𝑦},

𝑅4 = {(𝑥, 𝑦) : 𝑥 = 𝑦}, 𝑅5 = {(𝑥, 𝑦) : 𝑥 = 𝑦 + 1}, 𝑅6 = {(𝑥, 𝑦) : 𝑥 + 𝑦 ≤ 3}.

a) Quais delas são reflexivas?

• 𝑅1 , pois ∀𝑥 ∈ Z, 𝑥 ≤ 𝑥.

• 𝑅3 e 𝑅4 são trivialmente reflexivas.

b) Quais delas são simétricas?

• 𝑅3 , pois (𝑥 = 𝑦 ∨ 𝑥 = −𝑦) ⇒ (𝑦 = 𝑥 ∨ 𝑦 = −𝑥).

• 𝑅4 , pois 𝑥 = 𝑦 ⇒ 𝑦 = 𝑥.

• 𝑅6 , pois (𝑥 + 𝑦 ≤ 3) ⇒ (𝑦 + 𝑥 ≤ 3).

c) Quais delas são antissimétricas?

48
• 𝑅1 , pois ((𝑥 ≤ 𝑦) ∧ (𝑦 ≤ 𝑥)) ⇒ 𝑥 = 𝑦.

• 𝑅2 , por vacuidade, pois (𝑥 < 𝑦) ∧ (𝑦 < 𝑥) é sempre falso.

• 𝑅4 , pois ((𝑥 = 𝑦) ∧ (𝑦 = 𝑥)) ⇒ 𝑥 = 𝑦.

• 𝑅5 , por vacuidade, pois (𝑥 = 𝑦 + 1) ∧ (𝑦 = 𝑥 + 1) é sempre falso.

d) Quais delas são transitivas?

• 𝑅1 , pois (𝑥 ≤ 𝑦 ∧ 𝑦 ≤ 𝑧) ⇒ 𝑥 ≤ 𝑧.

• 𝑅2 , pois (𝑥 > 𝑦 ∧ 𝑦 > 𝑧) ⇒ 𝑥 > 𝑧.

• 𝑅3 , pois (𝑥 = ±𝑦 ∧ 𝑦 = ±𝑧) ⇒ 𝑥 = ±𝑧.

• 𝑅4 , pois (𝑥 = 𝑦 ∧ 𝑦 = 𝑧) ⇒ 𝑥 = 𝑧.

Note que 𝑅5 não é transitiva, pois 2𝑅1 e 1𝑅0 , mas (2, 0) ∈


/ 𝑅5 .
Note que 𝑅6 não é transitiva, pois 2𝑅1 e 1𝑅2 , mas (2, 2) ∈
/ 𝑅6 .
Exemplo: Seja

𝐴 = {1, 2, 3, 4}, 𝑅 = {(1, 1), (2, 3), (2, 4), (3, 3), (3, 4)}.

Pergunta-se:

a) 𝑅 é reflexiva? Não, pois (2, 2) ∈


/ 𝑅.

b) 𝑅 é irreflexiva? Não, pois 1𝑅1 e 3𝑅3.

c) 𝑅 é simétrica? Não, pois 2𝑅3 mas (3, 2) ∈


/ 𝑅.

d) 𝑅 é antissimétrica? Sim, pois para 𝑎 ̸= 𝑏 não temos (𝑎𝑅𝑏 ∧ 𝑏𝑅𝑎).

e) 𝑅 é transitiva? Sim, pois sempre que (𝑎𝑅𝑏 ∧ 𝑏𝑅𝑐) temos 𝑎𝑅𝑐.

Definição 24 (Composição de relações). Sejam 𝑅 e 𝑆 relações arbitrárias. A composição de 𝑅 com


𝑆, denotada por 𝑆 ∘ 𝑅, é definida como:

𝑆 ∘ 𝑅 = {(𝑎, 𝑐) | ∃𝑏 tal que 𝑎𝑅𝑏 ∧ 𝑏𝑆𝑐}.

Exemplo: Sejam as relações

𝑅 = {(1, 1), (1, 4), (2, 3), (3, 1), (3, 4)}, 𝑆 = {(1, 0), (2, 0), (3, 1), (3, 2), (4, 1)}.

49
Calcule a composição 𝑆 ∘ 𝑅 (primeiro aplica 𝑅 e depois 𝑆):

𝑆 ∘ 𝑅 = {(1, 0), (1, 1), (2, 1), (2, 2), (3, 0), (3, 1)}.

Note que a composição de 𝑅 com 𝑆 é dada por:

𝑅 ∘ 𝑆 = {(3, 1), (3, 4), (3, 3), (4, 1), (4, 4)},

e portanto a operação de composição não é comutativa, ou seja, em geral:

𝑆 ∘ 𝑅 ̸= 𝑅 ∘ 𝑆.

Duas observações importantes são:

dom(𝑆 ∘ 𝑅) ⊆ dom(𝑅), img(𝑆 ∘ 𝑅) ⊆ img(𝑆).

Definição: Para toda relação binária 𝑅 de 𝐴 em 𝐵 existem as relações identidade 𝐼𝐴 e 𝐼𝐵 , que


são as menores relações reflexivas definidas nesses conjuntos, tais que:

𝑅 ∘ 𝐼𝐴 = 𝐼𝐵 ∘ 𝑅 = 𝑅.

Exemplo: Sejam

𝐴 = {1, 2, 3}, 𝐵 = {10, 20, 30, 40}, 𝑅 = {(1, 20), (1, 30), (2, 30)}.

Então as relações identidade são:

𝐼𝐴 = {(1, 1), (2, 2), (3, 3)}, 𝐼𝐵 = {(10, 10), (20, 20), (30, 30), (40, 40)}.

50
Sendo assim, note que:

𝑅 ∘ 𝐼𝐴 = {(1, 20), (1, 30), (2, 30)} = 𝑅, 𝐼𝐵 ∘ 𝑅 = {(1, 20), (1, 30), (2, 30)} = 𝑅.

Definição: Composição com a relação inversa Seja 𝑅 uma relação binária em 𝐴. Ao contrá-
rio do que ocorre com funções, a composição de 𝑅 com sua inversa 𝑅−1 em geral não resulta na
identidade.
Exemplo:

𝐴 = {1, 2, 3}, 𝑅 = {(1, 2), (1, 3), (2, 3)}, 𝑅−1 = {(2, 1), (3, 1), (3, 2)}, 𝐼𝐴 = {(1, 1), (2, 2), (3, 3)}.

As duas composições possíveis são:

𝑅−1 ∘ 𝑅 = {(1, 1), (1, 2), (2, 1), (2, 2)} =


̸ 𝐼𝐴 ,

𝑅 ∘ 𝑅−1 = {(2, 2), (2, 3), (3, 2), (3, 3)} =


̸ 𝐼𝐴 .

Portanto:
𝑅−1 ∘ 𝑅 ̸= 𝑅 ∘ 𝑅−1 ̸= 𝐼𝐴 .

Teorema 13. Sejam 𝑅 e 𝑆 duas relações binárias em 𝐴. Então,

(𝑆 ∘ 𝑅)−1 = 𝑅−1 ∘ 𝑆 −1 .

Demonstração. 1. Suponha (𝑦, 𝑥) ∈ (𝑆 ∘ 𝑅)−1 arbitrário.


2. Então, (𝑥, 𝑦) ∈ 𝑆 ∘ 𝑅.
3. Pela definição da composição de duas relações, existe 𝑧 tal que 𝑥𝑅𝑧 e 𝑧𝑆𝑦.
4. Dessa forma, (𝑧, 𝑥) ∈ 𝑅−1 e (𝑦, 𝑧) ∈ 𝑆 −1 .
5. Novamente, pela definição de composição de relações, temos (𝑦, 𝑥) ∈ 𝑅−1 ∘ 𝑆 −1 .

Definição: Seja 𝑅 uma relação em 𝐴. As potências 𝑅𝑛 , para 𝑛 = 1, 2, . . . , são definidas recursi-


vamente por:
𝑅1 = 𝑅, 𝑅𝑛+1 = 𝑅𝑛 ∘ 𝑅.

Ou seja:
𝑅2 = 𝑅 ∘ 𝑅, 𝑅3 = 𝑅2 ∘ 𝑅 = (𝑅 ∘ 𝑅) ∘ 𝑅, . . .

Exemplo: Seja
𝑅 = {(1, 1), (2, 1), (3, 2), (4, 3)}.

51
Calcule 𝑅𝑛 para 𝑛 = 2, 3, 4, . . . :

𝑅2 = 𝑅 ∘ 𝑅 = {(1, 1), (2, 1), (3, 1), (4, 2)},


𝑅3 = 𝑅2 ∘ 𝑅 = {(1, 1), (2, 1), (3, 1), (4, 1)},
𝑅4 = 𝑅3 ∘ 𝑅 = {(1, 1), (2, 1), (3, 1), (4, 1)},
..
.
𝑅𝑛 = 𝑅3 , para 𝑛 > 3.

Veremos a seguir um resultado muito importante que relaciona a propriedade transitiva com a
operação de composição.

Teorema 14. Seja 𝑅 uma relação binária em 𝐴. 𝑅 é transitiva se, e somente se,

𝑅 ∘ 𝑅 ⊆ 𝑅.

Em outras palavras, se 𝑅 é transitiva, ao compor 𝑅 consigo mesma, sempre se obtém uma relação
com o mesmo número ou menos de pares ordenados.

Para provar que 𝑅2 ⊆ 𝑅, devemos mostrar que se (𝑥, 𝑦) ∈ 𝑅2 , então (𝑥, 𝑦) ∈ 𝑅.

Demonstração. Parte 1 (ida): 𝑅 é transitiva =⇒ 𝑅2 ⊆ 𝑅

1. Seja (𝑥, 𝑦) ∈ 𝑅 ∘ 𝑅.

2. Pela definição de composição, existe 𝑧 ∈ 𝐴 tal que 𝑥𝑅𝑧 e 𝑧𝑅𝑦.

3. Como 𝑅 é transitiva, temos que (𝑥𝑅𝑧 ∧ 𝑧𝑅𝑦) =⇒ 𝑥𝑅𝑦.

4. Portanto, (𝑥, 𝑦) ∈ 𝑅.

Parte 2 (volta): 𝑅2 ⊆ 𝑅 =⇒ 𝑅 é transitiva

1. Sejam 𝑥, 𝑦, 𝑧 ∈ 𝐴 arbitrários.

2. Suponha que 𝑥𝑅𝑧 e 𝑧𝑅𝑦.

3. Pela definição de composição, temos (𝑥, 𝑦) ∈ 𝑅 ∘ 𝑅.

4. Pela hipótese 𝑅2 ⊆ 𝑅, segue que (𝑥, 𝑦) ∈ 𝑅.

5. Logo, 𝑅 é transitiva.

Na realidade, o teorema anterior pode ser generalizado para qualquer 𝑛 arbitrário, ou seja, ao
continuar compondo uma relação transitiva com ela mesma, o número de pares ordenados tende a
diminuir ainda mais.

52
Teorema 15. Seja 𝑅 uma relação binária em 𝐴. 𝑅 é transitiva se e somente se

𝑅𝑛 ⊆ 𝑅 para todo 𝑛 > 0.

Demonstração. Parte 1 (ida): 𝑅 transitiva =⇒ 𝑅𝑛 ⊆ 𝑅 para qualquer 𝑛 > 0.


A demonstração é feita por indução em 𝑛:
Base: 𝑛 = 1, temos 𝑅1 = 𝑅 ⊆ 𝑅 (trivial).
Passo de indução: Suponha que 𝑅𝑘 ⊆ 𝑅 para algum 𝑘 ≥ 1 e mostre que 𝑅𝑘+1 ⊆ 𝑅.

1. Seja (𝑥, 𝑦) ∈ 𝑅𝑘+1 arbitrário.

2. Então (𝑥, 𝑦) ∈ 𝑅𝑘 ∘ 𝑅.

3. Pela definição de composição, existe 𝑧 ∈ 𝐴 tal que 𝑥𝑅𝑧 e 𝑧𝑅𝑘 𝑦.

4. Pela hipótese de indução, 𝑅𝑘 ⊆ 𝑅, logo 𝑧𝑅𝑦.

5. Como 𝑅 é transitiva, temos 𝑥𝑅𝑧 ∧ 𝑧𝑅𝑦 =⇒ 𝑥𝑅𝑦.

Portanto, (𝑥, 𝑦) ∈ 𝑅, o que conclui o passo de indução. Logo, 𝑅𝑛 ⊆ 𝑅 para todo 𝑛 > 0.
Parte 2 (volta): 𝑅𝑛 ⊆ 𝑅 para todo 𝑛 > 0 =⇒ 𝑅 é transitiva.
A prova é direta: basta tomar 𝑛 = 2 e aplicar o teorema anterior, que garante que 𝑅2 ⊆ 𝑅,
mostrando a transitividade.
A seguir estudaremos os fechamentos de uma relação. Eles são importantes pois definem a menor
relação que contém 𝑅 e possui a propriedade especificada pelo fecho (reflexivo, simétrico, transitivo,
etc.).

Definição 25 (Fecho reflexivo). Seja 𝑅 uma relação binária em 𝐴. Se 𝑅 não é reflexiva, então existe
𝑥 ∈ 𝐴 tal que (𝑥, 𝑥) ∈
/ 𝑅.
Se acrescentarmos todos esses pares (𝑥, 𝑥) faltantes a 𝑅, obtemos a menor relação reflexiva que
contém 𝑅, a qual denominamos fecho reflexivo de 𝑅.

Exemplo: Sejam

𝐴 = {𝑎, 𝑏, 𝑐}, 𝑅 = {(𝑎, 𝑎), (𝑎, 𝑏), (𝑏, 𝑎), (𝑐, 𝑏)}.

O fecho reflexivo 𝑅′ de 𝑅 é:

𝑅′ = {(𝑎, 𝑎), (𝑎, 𝑏), (𝑏, 𝑎), (𝑏, 𝑏), (𝑐, 𝑏), (𝑐, 𝑐)}.

Definição 26 (Fecho simétrico). Seja 𝑅 uma relação binária em 𝐴. O fecho simétrico de 𝑅 é a menor
relação simétrica que contém 𝑅.
É a relação 𝑅′ obtida acrescentando a 𝑅 todos os pares necessários para torná-la simétrica.

53
Exemplo: Sejam

𝐴 = {𝑎, 𝑏, 𝑐}, 𝑅 = {(𝑎, 𝑎), (𝑎, 𝑏), (𝑏, 𝑏), (𝑏, 𝑐), (𝑐, 𝑎), (𝑐, 𝑏)}.

Pela definição, o fecho simétrico é dado por:

𝑅′ = {(𝑎, 𝑎), (𝑎, 𝑏), (𝑎, 𝑐), (𝑏, 𝑎), (𝑏, 𝑏), (𝑏, 𝑐), (𝑐, 𝑎), (𝑐, 𝑏)}.

Definição 27. Seja 𝑅 uma relação binária em 𝐴. O fecho transitivo de 𝑅 é a menor relação transitiva
que contém 𝑅.
Ao contrário dos fechos reflexivos e simétricos, não é trivial encontrá-lo. A seguir, discutiremos
o porquê disso.

Podemos examinar todos os pares (𝑥, 𝑦) e (𝑦, 𝑧) que pertencem a 𝑅. Note, porém, que isso não é
suficiente.
Exemplo: Seja
𝐴 = {1, 2, 3, 4}, 𝑅 = {(1, 2), (2, 3), (3, 4)}.

Verifica-se que 𝑅 não é transitiva:

1𝑅2 e 2𝑅3, mas (1, 3) ∈


/ 𝑅,
2𝑅3 e 3𝑅4, mas (2, 4) ∈
/ 𝑅.

Acrescentando esses pares, obtemos:

𝑅′ = {(1, 2), (1, 3), (2, 3), (2, 4), (3, 4)}.

Ainda assim, 𝑅′ não é transitiva, pois 1𝑅3 e 3𝑅4, mas (1, 4) ∈


/ 𝑅′ . Acrescentando (1, 4), obtemos:

𝑅′′ = {(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)},

que é transitiva.
Note que os pares que faltam em 𝑅 são da forma (𝑥, 𝑦) tal que existe 𝑧 para o qual (𝑥, 𝑧) e
(𝑧, 𝑦) ∈ 𝑅, ou seja, são exatamente os pares de

𝑅2 = 𝑅 ∘ 𝑅.

Ao adicionarmos esses pares, construímos:

𝑅′ = 𝑅 ∪ 𝑅2 .

54
Da mesma forma, os pares que faltam em 𝑅′ estão em:

𝑅′2 = 𝑅′ ∘ 𝑅′ = (𝑅 ∪ 𝑅2 ) ∘ (𝑅 ∪ 𝑅2 ) = (𝑅 ∘ 𝑅) ∪ (𝑅 ∘ 𝑅2 ) ∪ (𝑅2 ∘ 𝑅) ∪ (𝑅2 ∘ 𝑅2 ) = 𝑅2 ∪ 𝑅3 ∪ 𝑅4 .

Acrescentando esses pares a 𝑅′ , obtemos:

𝑅′′ = 𝑅′ ∪ (𝑅2 ∪ 𝑅3 ∪ 𝑅4 ) = 𝑅 ∪ 𝑅2 ∪ 𝑅3 ∪ 𝑅4 .

Continuando o processo, os pares que faltam em 𝑅′′ estão em 𝑅′′ ∘𝑅′′ . Pelo mesmo procedimento,
podemos verificar que o fecho transitivo é:

𝑅+ = 𝑅 ∪ 𝑅2 ∪ 𝑅3 ∪ . . .

Por essa razão, o fecho transitivo de 𝑅, denotado por 𝑅* , é definido como a união de todas as
potencias de 𝑅, ou seja:

⋃︁
*
𝑅 = 𝑅𝑖 = 𝑅 ∪ 𝑅2 ∪ 𝑅3 ∪ 𝑅4 ∪ ... (84)
𝑖=1

Em outras palavras, (𝑎, 𝑏) ∈ 𝑅* se e somente se existe 𝑘 > 0, tal que (𝑎, 𝑏) ∈ 𝑅𝑘 .


Pode-se mostrar que se 𝐴 = 1, 2, 3, ..., 𝑛 (conjunto é finito), o processo termina com o termo 𝑅𝑛
no máximo (pode ser até antes). Caso o conjunto 𝐴 seja infinito enumerável, o processo pode nunca
ter fim (problema intratável). A pergunta que surge é: mas quem garante que a relação 𝑅* construída
dessa forma é de fato transitiva? O teorema a seguir nos prova essa afirmação.
Teorema 16. Seja 𝑅 uma relação binária em 𝐴. Para qualquer 𝑅 (arbitrária), o fecho transitivo 𝑅*
é transitivo.
Demonstração. 1. Sejam 𝑥, 𝑦, 𝑧 ∈ 𝐴 tais que (𝑥, 𝑦) ∈ 𝑅* e (𝑦, 𝑧) ∈ 𝑅* .
2. Desejamos provar que (𝑥, 𝑧) ∈ 𝑅* .
3. Pela definição de fecho transitivo 𝑅* , existem 𝑖, 𝑗 > 0 tais que (𝑥, 𝑦) ∈ 𝑅𝑖 e (𝑦, 𝑧) ∈ 𝑅𝑗 .
4. Assim, (𝑥, 𝑧) ∈ 𝑅𝑗 ∘ 𝑅𝑖 = 𝑅𝑖+𝑗 , que é uma das componentes de 𝑅* , uma vez que

𝑅* = 𝑅 ∪ 𝑅2 ∪ · · · ∪ 𝑅𝑖 ∪ · · · ∪ 𝑅𝑗 ∪ · · · ∪ 𝑅𝑖+𝑗 ∪ . . .

5. Portanto, (𝑥, 𝑧) ∈ 𝑅* .

A seguir, demonstraremos que 𝑅* é a menor relação transitiva que contém 𝑅.


Primeiramente, note que, para quaisquer relações 𝑅1 , 𝑅2 , 𝑆1 , 𝑆2 , se

𝑅1 ⊆ 𝑅2 e 𝑆1 ⊆ 𝑆2 ,

então
𝑅1 ∘ 𝑆1 ⊆ 𝑅2 ∘ 𝑆2 .

55
Essa propriedade é intuitiva: a composição de relações com poucos pares gera uma relação resul-
tante com número reduzido de pares.

Teorema 17. Para quaisquer relações binárias 𝑅 e 𝑆 e 𝑛 > 0 arbitrário, se 𝑅 ⊆ 𝑆, então

𝑅𝑛 ⊆ 𝑆 𝑛 .

Prova por indução. Base: 𝑛 = 1, 𝑅 ⊆ 𝑆 (trivial).


Passo de indução: Suponha que 𝑅𝑘 ⊆ 𝑆 𝑘 para algum 𝑘 ≥ 1 e mostre que 𝑅𝑘+1 ⊆ 𝑆 𝑘+1 .
1. Como 𝑅 ⊆ 𝑆, sabemos que 𝑅𝑘 ⊆ 𝑆 𝑘 .
2. Pela propriedade anterior, 𝑅𝑘 ∘ 𝑅 ⊆ 𝑆 𝑘 ∘ 𝑆.
3. Pela definição de potência de conjuntos, 𝑅𝑘+1 ⊆ 𝑆 𝑘+1 .

Teorema 18. Para qualquer relação 𝑅, toda relação transitiva 𝑆 que contém 𝑅 contém o fecho
transitivo 𝑅* de 𝑅. Em outras palavras, 𝑅* é a menor relação que contém 𝑅 e é transitiva.

Demonstração. 1. Seja 𝑆 uma relação transitiva tal que 𝑅 ⊆ 𝑆.


2. Pelo teorema anterior, ∀𝑛 > 0, temos 𝑅𝑛 ⊆ 𝑆 𝑛 .
3. Como 𝑆 é transitiva, 𝑆 𝑛 ⊆ 𝑆, portanto 𝑅𝑛 ⊆ 𝑆 para todo 𝑛.
4. Uma vez que cada termo 𝑅𝑛 , 𝑛 = 1, 2, . . . , está contido em 𝑆, a união de todos eles, que é a
definição de 𝑅* , também está contida em 𝑆.

4.1 Considerações finais


As relações binárias constituem um dos conceitos centrais da matemática discreta, pois permitem
modelar conexões entre elementos de dois conjuntos de maneira sistemática. Neste capítulo, explora-
mos suas definições básicas, exemplos práticos e operações fundamentais, como composição, inversa
e potenciação de relações. Também discutimos propriedades estruturais importantes — reflexividade,
simetria, antissimetria e transitividade — que possibilitam classificar e compreender diferentes tipos
de relações.
Um ponto de destaque foi a análise dos fechamentos de uma relação, como o reflexivo, o simétrico
e o transitivo. Esses conceitos demonstram como podemos estender uma relação inicial para obter
versões com propriedades adicionais, mantendo sempre a noção de “menor relação” que satisfaz o
critério imposto. Essa ideia será essencial em tópicos posteriores, especialmente quando estudarmos
relações de equivalência e ordens parciais.
Além disso, a composição de relações mostrou-se uma operação particularmente relevante, pois
conecta diretamente o estudo de relações com a noção de transitividade. O exame de exemplos deixou
claro que a composição nem sempre é comutativa e que seu comportamento está intimamente ligado
à estrutura interna da relação considerada. Esse aspecto é fundamental em aplicações que envolvem
grafos, bancos de dados, linguagens formais e teoria da computação.
Em síntese, o estudo das relações binárias amplia nossa compreensão sobre como elementos de
conjuntos podem interagir, fornecendo ferramentas poderosas para modelagem e raciocínio lógico. A

56
partir deste capítulo, estamos preparados para avançar em temas como funções, classes de equivalên-
cia e estruturas de ordem, que se apoiam diretamente no arcabouço desenvolvido aqui.

57
5 Relações de equivalência
As relações de equivalência ocupam um papel central na matemática e na ciência da computação,
pois formalizam a noção intuitiva de que certos elementos podem ser considerados “iguais” em um
sentido mais amplo do que a simples identidade. Em vez de tratar cada objeto de forma isolada, as
relações de equivalência permitem agrupar elementos que compartilham uma propriedade comum,
criando uma estrutura organizada e reveladora.
Neste capítulo, estudaremos em detalhe as três propriedades que caracterizam uma relação de
equivalência: reflexividade, simetria e transitividade. Veremos como a presença simultânea dessas
condições garante que os elementos de um conjunto possam ser particionados em subconjuntos dis-
juntos, chamados de classes de equivalência. Esse particionamento fornece uma maneira poderosa
de simplificar problemas, ao permitir que trabalhemos com representantes de classes em vez de com
elementos individuais.
Além da teoria, exploraremos exemplos práticos de relações de equivalência, como a congruência
aritmética em teoria dos números, a relação de paralelismo em geometria e as partições em estru-
turas combinatórias. Cada exemplo mostrará como a noção de equivalência surge naturalmente em
diferentes áreas e como ela auxilia na modelagem de situações complexas.
Por fim, discutiremos o vínculo profundo entre relações de equivalência e partições de conjun-
tos, estabelecendo um teorema fundamental que conecta essas duas ideias. Esse resultado não ape-
nas fornece uma compreensão conceitual unificada, mas também abre caminho para aplicações mais
avançadas em álgebra, lógica matemática e ciência da computação.

Definição 28 (Relação de equivalência). Seja 𝑅 uma relação binária em 𝐴. Dizemos que 𝑅 é uma
relação de equivalência se 𝑅 é reflexiva, simétrica e transitiva. Em uma relação de equivalência 𝑅,
se 𝑎𝑅𝑏 então dizemos que 𝑎 é equivalente a 𝑏, e escrevemos 𝑎 ∼ 𝑏.

Exemplo: frações equivalentes. Seja o conjunto


{︂ }︂
𝑥
𝑆= : 𝑥, 𝑦 ∈ Z, 𝑦 ̸= 0 .
𝑦

Defina a relação binária 𝑅 ⊆ 𝑆 × 𝑆 por

𝑥 𝑧
𝑅 ⇐⇒ 𝑥𝑤 = 𝑦𝑧.
𝑦 𝑤

Por exemplo,
1 2 2 3
𝑅 pois 1 · 4 = 2 · 2, 𝑅 pois 2 · 6 = 3 · 4.
2 4 4 6

Proposição. A relação 𝑅 é uma relação de equivalência em 𝑆.

Demonstração. Devemos verificar as três propriedades: reflexividade, simetria e transitividade.

58
𝑥 𝑥
Reflexividade: note que 𝑅 , pois 𝑥 · 𝑦 = 𝑦 · 𝑥. Logo, 𝑅 é reflexiva.
𝑦 𝑦
𝑥 𝑧 𝑥 𝑧
Simetria: suponha , ∈ 𝑆 tal que 𝑅 . Então, 𝑥 · 𝑤 = 𝑦 · 𝑧. Mas, como a ordem dos fatores
𝑦 𝑤 𝑦 𝑤
não altera o produto (comutatividade da multiplicação), 𝑧 · 𝑦 = 𝑤 · 𝑥, o que nos leva a

𝑧 𝑥
𝑅
𝑤 𝑦

Logo, concluímos que 𝑅 é simétrica.


𝑥 𝑧 𝑧 𝑢
Transitividade: suponha 𝑅 e 𝑅 . Então
𝑦 𝑤 𝑤 𝑣

𝑥𝑤 = 𝑦𝑧 e 𝑧𝑣 = 𝑤𝑢.

Multiplicando a primeira igualdade por 𝑣 e a segunda por 𝑦, obtemos

𝑥𝑤𝑣 = 𝑦𝑧𝑣, 𝑦𝑧𝑣 = 𝑦𝑤𝑢.

Assim 𝑥𝑤𝑣 = 𝑦𝑤𝑢. Como 𝑤 ̸= 0 (denominadores em 𝑆 são não nulos), podemos cancelar o fator 𝑤
na equação inteira (ou, de modo equivalente em Z, observar que 𝑤(𝑥𝑣 − 𝑦𝑢) = 0 implica 𝑥𝑣 − 𝑦𝑢 = 0
porque 𝑤 ̸= 0), obtendo
𝑥𝑣 = 𝑦𝑢.
𝑥 𝑢
Portanto 𝑅 . Assim 𝑅 é transitiva. Como 𝑅 é reflexiva, simétrica e transitiva, concluímos que 𝑅
𝑦 𝑣
é uma relação de equivalência em 𝑆.

Definição 29 (Classe de equivalência). Seja 𝑅 uma relação de equivalência em 𝐴. Para todo 𝑎 ∈ 𝐴,


o conjunto
[𝑎]𝑅 = { 𝑥 ∈ 𝐴 : 𝑥𝑅𝑎 }

(ou seja, o conjunto de todos os elementos 𝑥 que se relacionam com 𝑎) é denominado classe de
equivalência de 𝑎.

Exemplo: Congruência em módulo 3


Seja o conjunto
𝐴 = {−2, −1, 0, 1, 2, 3, 4}

e 𝑅 a relação definida como:


𝑥𝑅𝑦 ⇐⇒ (𝑥 − 𝑦) mod 3 = 0

a) Relação como conjunto finito de pares ordenados

𝑅 = { (−2, −2), (−1, −1), (0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (−2, 1), (−2, 4), (−1, 2), (85)
(0, 3), (1, −2), (1, 4), (2, −1), (3, 0), (4, −2), (4, 1) }

59
Note que existem no total 17 pares ordenados na relação 𝑅.

b) Verificação de que 𝑅 é uma relação de equivalência

• Reflexiva: (−2, −2), (−1, −1), (0, 0), (1, 1), (2, 2), (3, 3), (4, 4)

• Simétrica: (−2, 1) ⇒ (1, −2)


(−2, 4) ⇒ (4, −2)
(−1, 2) ⇒ (2, −1)
(0, 3) ⇒ (3, 0)
(1, 4) ⇒ (4, 1)
(2, −1) ⇒ (−1, 2)

• Transitiva: Exemplos de verificações: (−2, 1) e (1, −2) ⇒ (−2, −2)


(−2, 1) e (1, 4) ⇒ (−2, 4)
(−2, 4) e (4, −2) ⇒ (−2, −2)
(−2, 4) e (4, 1) ⇒ (−2, 1)
(−1, 2) e (2, −1) ⇒ (−1, −1)
(0, 3) e (3, 0) ⇒ (0, 0)
(1, −2) e (−2, 1) ⇒ (1, 1)
(1, −2) e (−2, 4) ⇒ (1, 4)
(1, 4) e (4, −2) ⇒ (1, −2)
(1, 4) e (4, 1) ⇒ (1, 1)
(2, −1) e (−1, 2) ⇒ (2, 2)
(3, 0) e (0, 3) ⇒ (3, 3)
(4, −2) e (−2, 1) ⇒ (4, 1)
(4, −2) e (−2, 4) ⇒ (4, 4)
(4, 1) e (1, −2) ⇒ (4, −2)
(4, 1) e (1, 4) ⇒ (4, 4)

Assim, 𝑅 é uma relação de equivalência, pois é reflexiva, simétrica e transitiva.


Note que temos 3 classes de equivalência, sendo elas as seguintes:

• Classe de equivalência 1: elementos cujos módulos por 3 são zero - {0, 3}

• Classe de equivalência 2: elementos cujos módulos por 3 são um - {−2, 1, 4}

• Classe de equivalência 3: elementos cujos módulos por 3 são dois - {−1, 2}

Uma observação: lembre se que há duas versões utilizadas em computação: remainder (rem) e
modulo (mod). A função remainder (que calcula simplesmente o resto) permite valores negativos e
modulo retorna valores estritamente não negativos.
Nos exemplos, estamos adotando o operador mod, em que o retorno da função é sempre maior ou
igual a zero. Sua implementação em linguagem C é dada por:

60
int mod(int x, int m) {
int r = x % m;
return r < 0 ? r+m : r;
}

Dessa forma, temos que −1 mod 3 é calculado pelo retorno de mod(-1, 3).
O resto da divisão é negativo:
𝑟 = −1%3 = −1

Como 𝑟 < 0, o valor de retorno será:

−1 + 3 = 2

A seguir, veremos um teorema que generaliza esse exemplo discutido anteriormente.

Teorema 19 (Congruência em módulo 𝑚). Seja 𝑚 ∈ N, 𝑚 > 1. A relação congruência em módulo


𝑚, definida por
𝑅 = {(𝑥, 𝑦) ∈ Z × Z : (𝑥 − 𝑦) mod 𝑚 = 0},

é uma relação de equivalência no conjunto dos inteiros Z.

Demonstração. Essa relação pode ser reescrita como:

𝑥𝑅𝑦 ⇐⇒ 𝑚 divide (𝑥 − 𝑦).

1. Reflexiva: Como 𝑥 − 𝑥 = 0 e 0 é divisível por 𝑚, temos que 𝑥𝑅𝑥 para todo 𝑥 ∈ Z.


2. Simétrica: Suponha que 𝑚 divide 𝑥 − 𝑦, ou seja,

𝑥 − 𝑦 = 𝑘𝑚 para algum 𝑘 ∈ Z.

Multiplicando ambos os lados por −1, obtemos

𝑦 − 𝑥 = −𝑘𝑚,

o que mostra que 𝑦−𝑥 também é múltiplo de 𝑚, ou seja, 𝑚 divide 𝑦−𝑥. Portanto, (𝑦−𝑥) mod 𝑚 = 0
e 𝑅 é simétrica.
3. Transitiva: Suponha que 𝑚 divide 𝑥 − 𝑦 e 𝑚 divide 𝑦 − 𝑧. Então

𝑥 − 𝑦 = 𝑘𝑚, 𝑦 − 𝑧 = 𝑝𝑚 para alguns 𝑘, 𝑝 ∈ Z.

Somando as duas equações, temos


𝑥 − 𝑧 = (𝑘 + 𝑝)𝑚,

61
o que mostra que 𝑥−𝑧 também é múltiplo de 𝑚, ou seja, 𝑚 divide 𝑥−𝑧. Portanto, (𝑥−𝑧) mod 𝑚 = 0
e 𝑅 é transitiva. Como 𝑅 é reflexiva, simétrica e transitiva, concluímos que 𝑅 é uma relação de
equivalência em Z.

Pergunta: Quantas e quais são as classes de equivalência de 𝑅? Temos exatamente 𝑚 classes de


equivalência, que são:

[0]𝑅 :inteiros com resto 0 (86)


[1]𝑅 :inteiros com resto 1 (87)
[2]𝑅 :inteiros com resto 2 (88)
[𝑚 − 1]𝑅 :inteiros com resto 𝑚 − 1 (89)

Teorema 20. Seja 𝑅 uma relação de equivalência sobre um conjunto 𝐴. As seguintes informações
são equivalentes:

1. 𝑥𝑅𝑦

2. [𝑥]𝑅 = [𝑦]𝑅

3. [𝑥]𝑅 ∩ [𝑦]𝑅 ̸= ∅

A) Prova de 𝑖. ⇒ 𝑖𝑖., ou seja, 𝑥𝑅𝑦 ⇒ [𝑥]𝑅 = [𝑦]𝑅


A ideia consiste em mostrar que [𝑥]𝑅 ⊆ [𝑦]𝑅 e [𝑦]𝑅 ⊆ [𝑥]𝑅 .
Parte I: [𝑥]𝑅 ⊆ [𝑦]𝑅

1. Seja 𝑎 ∈ [𝑥]𝑅 arbitrário. Então, por definição, 𝑎𝑅𝑥. Como 𝑅 é relação de equivalência, por
transitividade: (𝑎𝑅𝑥 ∧ 𝑥𝑅𝑦) ⇒ 𝑎𝑅𝑦

2. Assim, 𝑎 ∈ [𝑦]𝑅

3. Concluímos que [𝑥]𝑅 ⊆ [𝑦]𝑅

Parte II: [𝑦]𝑅 ⊆ [𝑥]𝑅

1. Seja 𝑎 ∈ [𝑦]𝑅 arbitrário. Então, por definição, 𝑎𝑅𝑦

2. Como 𝑅 é simétrica, 𝑥𝑅𝑦 ⇒ 𝑦𝑅𝑥

3. Pela transitividade: (𝑎𝑅𝑦 ∧ 𝑦𝑅𝑥) ⇒ 𝑎𝑅𝑥

4. Assim, 𝑎 ∈ [𝑥]𝑅

5. Logo, [𝑦]𝑅 ⊆ [𝑥]𝑅

62
Portanto, [𝑥]𝑅 = [𝑦]𝑅 , ou seja, os dois conjuntos são iguais.
B) Prova de 𝑖𝑖. ⇒ 𝑖𝑖𝑖., ou seja, [𝑥]𝑅 = [𝑦]𝑅 ⇒ [𝑥]𝑅 ∩ [𝑦]𝑅 ̸= ∅

1. Se [𝑥]𝑅 = [𝑦]𝑅 então [𝑥]𝑅 ∩ [𝑦]𝑅 = [𝑥]𝑅 ∩ [𝑥]𝑅 = [𝑥]𝑅

2. Como 𝑅 é reflexiva, 𝑥𝑅𝑥, ou seja, 𝑥 ∈ [𝑥]𝑅

3. Logo, [𝑥]𝑅 ̸= ∅ e portanto [𝑥]𝑅 ∩ [𝑦]𝑅 ̸= ∅

C) Prova de 𝑖𝑖𝑖. ⇒ 𝑖., ou seja, [𝑥]𝑅 ∩ [𝑦]𝑅 ̸= ∅ ⇒ 𝑥𝑅𝑦

1. Como [𝑥]𝑅 ∩ [𝑦]𝑅 ̸= ∅, existe 𝑎 ∈ 𝐴 tal que 𝑎 ∈ [𝑥]𝑅 ∧ 𝑎 ∈ [𝑦]𝑅 .

2. Por definição das classes de equivalência, temos 𝑎𝑅𝑥 e 𝑎𝑅𝑦.

3. Como 𝑅 é simétrica, de 𝑎𝑅𝑥 segue que 𝑥𝑅𝑎.

4. Como 𝑅 é transitiva, de (𝑥𝑅𝑎 ∧ 𝑎𝑅𝑦) segue que 𝑥𝑅𝑦.

O teorema anterior é um resultado muito importante pois nos garante que:

1. Como ∀𝑥 ∈ 𝐴 está em alguma classe de equivalência, a união das classes é igual a 𝐴.


𝑚
⋃︁
[𝑥𝑖 ]𝑅 = 𝐴
𝑖=1

2. Como [𝑥]𝑅 ∩ [𝑦]𝑅 ̸= ∅ ⇒ 𝑥𝑅𝑦 e 𝑥𝑅𝑦 ⇒ [𝑥]𝑅 = [𝑦]𝑅 , temos que

[𝑥]𝑅 ∩ [𝑦]𝑅 ̸= ∅ ⇒ [𝑥]𝑅 = [𝑦]𝑅 .

Pela contrapositiva, obtemos:

[𝑥]𝑅 ̸= [𝑦]𝑅 ⇒ [𝑥]𝑅 ∩ [𝑦]𝑅 = ∅.

Ou seja, isso mostra que as classes de equivalência são disjuntas duas a duas.

Portanto, a partir das conclusões dos itens (1) e (2) acima, podemos enunciar o seguinte resultado.

Teorema 21 (Relações de equivalênca induzem partições). Seja 𝐴 um conjunto e 𝑅 uma relação de


equivalência em 𝐴. Então, as classes de equivalência de 𝑅 formam uma partição de 𝐴.

Vamos mostrar a seguir que uma partição de um conjunto 𝐴 pode ser utilizada para construir uma
relação de equivalência em 𝐴: dois elementos estão relacionados se e somente se estão no mesmo
bloco da partição.

63
Teorema 22. Seja 𝑃 uma partição de 𝐴 e seja 𝑆 a relação

𝑆 = {(𝑥, 𝑦) : ∃𝐶 ∈ 𝑃 / 𝑥 ∈ 𝐶 ∧ 𝑦 ∈ 𝐶}.

Ou seja, 𝑥𝑆𝑦 se e somente se 𝑥 está no mesmo bloco que 𝑦. Então 𝑆 é uma relação de equivalência
e suas classes de equivalência são os blocos da partição 𝑃 .

Prova:

1. Note que 𝑆 é reflexiva, pois ∀𝑎 ∈ 𝐴, 𝑎𝑆𝑎, uma vez que todo 𝑎 pertence a algum bloco da
partição.

2. Note que 𝑆 é simétrica, pois temos 𝑎𝑆𝑏 se os elementos 𝑎, 𝑏 pertencem a um mesmo bloco de
𝑃 . Logo, por definição, 𝑏𝑆𝑎, uma vez que 𝑏, 𝑎 continuam pertencendo ao mesmo bloco de 𝑃 .

3. Note que 𝑆 é transitiva. De fato, suponha 𝑎𝑆𝑏 e 𝑏𝑆𝑐.

(a) Então, existem blocos 𝐶 e 𝐷 em 𝑃 tais que 𝑎, 𝑏 ∈ 𝐶 e 𝑏, 𝑐 ∈ 𝐷.


(b) Logo, 𝑏 ∈ 𝐶 ∩ 𝐷.
(c) Como os blocos de 𝑃 são disjuntos dois a dois, conclui-se que, como |𝐶 ∩ 𝐷| > 0, temos
𝐶 = 𝐷.
(d) Portanto, 𝑎 e 𝑐 pertencem ao mesmo bloco.

Assim, 𝑆 é reflexiva, simétrica e transitiva, ou seja, uma relação de equivalência. Além disso, suas
classes de equivalência coincidem exatamente com os blocos da partição 𝑃 .

5.1 Considerações finais


As relações de equivalência desempenham um papel central na teoria dos conjuntos e da álgebra,
pois permitem organizar elementos de um conjunto em subconjuntos bem definidos, chamados clas-
ses de equivalência. Essa estruturação fornece uma forma natural de agrupar elementos que compar-
tilham uma característica comum, facilitando a análise e a compreensão das propriedades do conjunto
original.
Um aspecto importante desse tipo de relação é que suas propriedades fundamentais — reflexi-
vidade, simetria e transitividade — garantem consistência no processo de agrupamento. Ou seja,
nenhum elemento fica de fora, todos estão em alguma classe de equivalência, e as classes não se so-
brepõem, formando uma partição do conjunto. Dessa forma, estudar uma relação de equivalência é,
essencialmente, estudar como o conjunto pode ser dividido em blocos disjuntos que preservam certas
propriedades estruturais.
Além disso, vimos que as relações de equivalência estão intimamente conectadas ao conceito de
partições. Cada partição de um conjunto dá origem a uma relação de equivalência e, reciprocamente,

64
toda relação de equivalência define uma partição. Esse resultado estabelece uma correspondência
fundamental entre dois conceitos que aparecem em diferentes áreas da matemática, como a teoria dos
números, a álgebra linear, a geometria e até em aplicações práticas da computação.
Por fim, pode-se concluir que o estudo das relações de equivalência não apenas fornece ferra-
mentas poderosas para a organização de conjuntos, mas também abre caminho para conceitos mais
avançados, como quocientes de grupos, espaços fatorados e classes residuais na aritmética modular.
Dessa forma, o capítulo sobre relações de equivalência deve ser visto como um alicerce sólido para
tópicos mais profundos e sofisticados da matemática.

65
6 Relações de ordem parcial
As relações de ordem parcial constituem uma extensão natural do estudo das relações binárias,
permitindo modelar situações em que alguns elementos podem ser comparados entre si, enquanto ou-
tros permanecem incomparáveis. Diferentemente de uma ordem total, onde qualquer par de elemen-
tos é comparável, as ordens parciais refletem cenários mais gerais e realistas, em que a comparação
completa não é sempre possível ou desejada.
Um exemplo clássico de ordem parcial aparece na relação de inclusão entre conjuntos. Dados dois
subconjuntos 𝐴 e 𝐵 de um conjunto universo 𝑈 , podemos afirmar que 𝐴 ⊆ 𝐵, mas nem sempre é
possível comparar 𝐴 e 𝐵, pois pode ocorrer que nenhum esteja contido no outro. Esse tipo de relação
surge em diversas áreas, como na hierarquia de tarefas em sistemas computacionais, na organização
de dependências em bancos de dados e até na estruturação de árvores de decisão.
O estudo das ordens parciais envolve identificar três propriedades fundamentais: reflexividade,
antissimetria e transitividade. Juntas, elas garantem uma estrutura lógica que permite raciocinar so-
bre hierarquias, níveis de prioridade e relações de precedência. Além disso, conceitos derivados,
como elementos mínimos, máximos, supremos e ínfimos, tornam-se essenciais para compreender as
propriedades mais refinadas das estruturas ordenadas.
Assim, este capítulo tem como objetivo apresentar os fundamentos das relações de ordem parcial,
ilustrar seus principais exemplos e discutir aplicações relevantes. O entendimento desse tema é es-
sencial não apenas para a Matemática Discreta, mas também para a Ciência da Computação e áreas
afins, uma vez que ordens parciais estão por trás de conjuntos parcialmente ordenados (POSETS) al-
goritmos de ordenação topológica, sistemas de classificação e modelagem de estruturas hierárquicas
complexas.

Definição 30 (Relação de Ordem Parcial (ROP)). Seja 𝐴 um conjunto e 𝑅 uma relação binária em 𝐴.
Dizemos que 𝑅 é uma relação de ordem parcial (ROP) se 𝑅 é reflexiva, anti-simétrica e transitiva.

Note que a mudança de uma única propriedade faz com que a classe de relações de equivalência seja
diferente da classe de relações de ordem parcial.

Definição 31 (Conjunto Parcialmente Ordenado (POSET)). A tupla (𝐴, 𝑅) em que 𝑅 é uma relação
de ordem parcial é chamada de conjunto parcialmente ordenado (POSET).

Exemplo. Sejam 𝐴 = R (números reais) e a relação

𝑅 = {(𝑥, 𝑦) ∈ 𝐴 × 𝐴 | 𝑥 ≤ 𝑦}.

Prove que 𝑅 é uma relação de ordem parcial.

1. Reflexiva: ∀𝑥 ∈ 𝐴, 𝑥 ≤ 𝑥 (OK)

2. Anti-simétrica: ∀𝑥, 𝑦 ∈ 𝐴 ((𝑥 ≤ 𝑦 ∧ 𝑦 ≤ 𝑥) → 𝑥 = 𝑦) (OK)

66
3. Transitiva: ∀𝑥, 𝑦, 𝑧 ∈ 𝐴 ((𝑥 ≤ 𝑦 ∧ 𝑦 ≤ 𝑧) → 𝑥 ≤ 𝑧) (OK)

Como 𝑅 satisfaz as três propriedades simultaneamente, 𝑅 é uma relação de ordem parcial.

Exemplo. Seja 𝐴 um conjunto finito e seja 2𝐴 o conjunto potência de 𝐴. Defina

𝑆 = {(𝑋, 𝑌 ) ∈ 2𝐴 × 2𝐴 | 𝑋 ⊆ 𝑌 }.

Mostre que 𝑆 é uma relação de ordem parcial.

1. Reflexiva: ∀𝑋 ∈ 2𝐴 , 𝑋 ⊆ 𝑋 (OK)

2. Anti-simétrica: ∀𝑋, 𝑌 ∈ 2𝐴 ((𝑋 ⊆ 𝑌 ∧ 𝑌 ⊆ 𝑋) → 𝑋 = 𝑌 ) (OK)

3. Transitiva: ∀𝑋, 𝑌, 𝑍 ∈ 2𝐴 ((𝑋 ⊆ 𝑌 ∧ 𝑌 ⊆ 𝑍) → 𝑋 ⊆ 𝑍) (OK)

Como 𝑆 satisfaz as três propriedades simultaneamente, 𝑆 é uma relação de ordem parcial. Assim,
a tupla (2𝐴 , ⊆) representa um conjunto parcialmente ordenado (POSET). Veremos mais adiante como
representar graficamente POSETs através de um diagrama de Hasse.

Exemplo. Seja 𝐴 = {1, 2, 3} e a relação 𝑅 em 2𝐴 dada por:

𝑅 = {. . .} (pares a serem especificados).

Exemplo. Seja 𝐴 = {1, 2, 3, 4, 6, 12} e 𝑅 a relação binária em 𝐴 dada por:

a) Defina os pares ordenados que compõem 𝑅:

𝑅 = {(1, 1), (1, 2), (1, 3), (1, 4), (1, 6), (1, 12), (90)
(2, 2), (2, 4), (2, 6), (2, 12),
(3, 3), (3, 6), (3, 12),
(4, 4), (4, 12),
(6, 6), (6, 12),
(12, 12)}

onde 𝑥𝑅𝑦 ⇐⇒ 𝑥 divide 𝑦.

b) Verifique se 𝑅 é uma relação de equivalência. Prove sua resposta.

i. Reflexiva: Como todo elemento divide a si mesmo, temos:

(1, 1), (2, 2), (3, 3), (4, 4), (6, 6), (12, 12)

67
ii. Anti-simétrica: Temos, por exemplo: (1, 2) mas não (2, 1);
(1, 3) mas não (3, 1);
(1, 4) mas não (4, 1);
(1, 6) mas não (6, 1);
(1, 12) mas não (12, 1);
(2, 4) mas não (4, 2);
(2, 6) mas não (6, 2);
(2, 12) mas não (12, 2);
(3, 6) mas não (6, 3);
(3, 12) mas não (12, 3);
(4, 12) mas não (12, 4);
(6, 12) mas não (12, 6);
Logo, a relação é anti-simétrica.
iii. Transitiva: Alguns exemplos: (1, 2) e (2, 4) → (1, 4);
(1, 2) e (2, 6) → (1, 6);
(1, 2) e (2, 12) → (1, 12);
(1, 3) e (3, 6) → (1, 6);
(1, 3) e (3, 12) → (1, 12);
(1, 4) e (4, 12) → (1, 12);
(1, 6) e (6, 12) → (1, 12);
(2, 4) e (4, 12) → (2, 12);
(2, 6) e (6, 12) → (2, 12);
(3, 6) e (6, 12) → (3, 12);
Logo, a relação é transitiva.

Portanto, como a relação 𝑅 é reflexiva, anti-simétrica e transitiva, temos que 𝑅 é uma relação de
ordem parcial. Em uma ROP 𝑅, dizemos que os elementos 𝑎 e 𝑏 são comparáveis por 𝑅 se 𝑎𝑅𝑏 ou
𝑏𝑅𝑎. Por exemplo, na relação “divide” listada acima, temos que 2 e 4 são comparáveis, mas 2 e 3
não são.

Definição 32 (Relação de ordem total). Uma relação binária 𝑅 em 𝐴 é de ordem total se, e somente
se, 𝑅 é uma relação de ordem parcial e quaisquer dois elementos de 𝐴 são comparáveis por 𝑅.

ROT = ROP + ∀𝑥, 𝑦 ∈ 𝐴 (𝑎𝑅𝑏 ∨ 𝑏𝑅𝑎)

Nesse caso, dizemos que a tupla (𝐴, 𝑅) é um conjunto totalmente ordenado. Um exemplo de
relação de ordem total é a relação:

𝑅 = {(𝑥, 𝑦) ∈ 𝐴 | 𝑥 ≤ 𝑦}

68
Definição 33. Seja 𝐴 um conjunto qualquer e seja a relação ≤2 definida em 𝐴 × 𝐴 como:
(︀ )︀
(𝑎1 , 𝑎2 ) ≤2 (𝑏1 , 𝑏2 ) ⇐⇒ (𝑎1 < 𝑏1 ) ∨ (𝑎1 = 𝑏1 ) ∧ (𝑎2 ≤ 𝑏2 )

A relação ≤2 induz uma ordenação lexicográfica no conjunto 𝐴 × 𝐴. Na prática, isso significa que
podemos impor uma ordem para pontos do plano, percorrendo linha a linha o conjunto bidimensional.

Exemplo: (Z × Z, ≤2 ) é um conjunto parcialmente ordenado.


Note que (3, 5) ≤2 (4, 8), pois o ponto (3, 5) vem antes de (4, 8) se percorrermos o conjunto de
pontos linha a linha. O mesmo vale para os pontos (3, 8) e (4, 5). Mesmo que 8 > 5, o primeiro
elemento do par ordenado é menor, por isso dizemos que (3, 8) antecede (4, 5).

Exemplo. Mostre que a relação ≤2 definida em N × N é uma relação de ordem parcial. Devemos
mostrar que a relação é reflexiva, anti-simétrica e transitiva.

1. Reflexiva: ∀(𝑎, 𝑏) ∈ N × N, temos (𝑎, 𝑏) ≤2 (𝑎, 𝑏), pois 𝑎 ≤ 𝑎 e 𝑏 ≤ 𝑏. (OK)

2. Anti-simétrica: ∀(𝑎, 𝑏), (𝑐, 𝑑) ∈ N × N, se ((𝑎, 𝑏) ≤2 (𝑐, 𝑑)) ∧ ((𝑐, 𝑑) ≤2 (𝑎, 𝑏)) ⇒ (𝑎, 𝑏) =
(𝑐, 𝑑).
Note que:

i. Se (𝑎, 𝑏) ≤2 (𝑐, 𝑑), então (𝑎 < 𝑐) ∨ (𝑎 = 𝑐 ∧ 𝑏 ≤ 𝑑).


ii. Se (𝑐, 𝑑) ≤2 (𝑎, 𝑏), então (𝑐 < 𝑎) ∨ (𝑐 = 𝑎 ∧ 𝑑 ≤ 𝑏).

De i) e ii) temos que (𝑎 = 𝑐) ∧ (𝑏 = 𝑑), e portanto (𝑎, 𝑏) = (𝑐, 𝑑).

3. Transitiva: ∀(𝑎, 𝑏), (𝑐, 𝑑), (𝑒, 𝑓 ) ∈ N × N, se ((𝑎, 𝑏) ≤2 (𝑐, 𝑑)) ∧ ((𝑐, 𝑑) ≤2 (𝑒, 𝑓 )) ⇒ (𝑎, 𝑏) ≤2
(𝑒, 𝑓 ).
Note que:

i. Se (𝑎, 𝑏) ≤2 (𝑐, 𝑑), então (𝑎 < 𝑐) ∨ (𝑎 = 𝑐 ∧ 𝑏 ≤ 𝑑).

69
ii. Se (𝑐, 𝑑) ≤2 (𝑒, 𝑓 ), então (𝑐 < 𝑒) ∨ (𝑐 = 𝑒 ∧ 𝑑 ≤ 𝑓 ).

Combinando i) e ii), temos (𝑎 < 𝑒) ∨ (𝑎 = 𝑒 ∧ 𝑏 ≤ 𝑓 ), o que implica em (𝑎, 𝑏) ≤2 (𝑒, 𝑓 ).

6.1 Representação gráfica de conjuntos parcialmente ordenados


Os diagramas de Hasse são representações gráficas utilizadas para visualizar relações de ordem
parcial em conjuntos finitos. Eles fornecem uma maneira intuitiva e simplificada de compreender a
estrutura de uma ordem sem a necessidade de escrever explicitamente todas as relações envolvidas.
Em um diagrama de Hasse, os elementos do conjunto são representados por pontos e as relações de
ordem são indicadas por linhas que conectam esses pontos, omitindo as conexões redundantes que
podem ser deduzidas pela transitividade.
Esse tipo de diagrama é particularmente útil porque destaca de forma clara as hierarquias entre
os elementos, evidenciando quais estão “acima” ou “abaixo” de outros na ordem parcial. Diagramas
de Hasse aparecem em várias áreas da matemática e da ciência da computação, como no estudo de
divisibilidade entre inteiros, nas estruturas de reticulados, e na organização de conjuntos parcialmente
ordenados em problemas de otimização ou classificação. Dessa forma, eles se tornam uma ferramenta
visual poderosa para explorar e compreender relações complexas de ordem.

Definição 34. Diagrama de Hasse


Seja 𝐴 um conjunto e 𝑅 uma relação de ordem parcial em 𝐴. Então, a tupla (𝐴, 𝑅) é um conjunto
parcialmente ordenado. O diagrama de Hasse de (𝐴, 𝑅) é definido como segue:

i. ∀𝑎 ∈ 𝐴, 𝑎 é representado por um ponto.

ii. ∀(𝑎, 𝑏) ∈ 𝑅, com 𝑎 ̸= 𝑏, 𝑎 deve estar abaixo de 𝑏, sendo representado por uma linha que liga
os pontos 𝑎 e 𝑏.

iii. Não existem loops, nem triângulos no diagrama, ou seja, não representamos reflexividade nem
transitividade.

Exemplo. Seja 𝐴 = {1, 2, 3, 4, 5, 6, 7, 8, 9} e 𝑅 dada por:

𝑅 = {(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (91)
(2, 2), (2, 3), (2, 4), (2, 5),
(3, 3), (3, 4), (3, 5),
(4, 4), (4, 5),
(5, 5),
(6, 6), (6, 5), (6, 9),
(7, 7), (7, 4), (7, 5),
(8, 8), (8, 7), (8, 5),
(9, 9), (9, 5)}.

70
Note que alguns pares não são comparáveis, como por exemplo: (4, 9), (7, 9), (8, 6), . . .
Apesar de existir (2, 4) ∈ 𝑅, não há linha no diagrama pois há (2, 3) e (3, 4), o que torna a ligação
(2, 4) redundante devido à transitividade. O diagrama de Hasse é ilustrado na figura a seguir.

Exemplo. Seja 𝐴 = {1, 2, 3, 5, 6, 10, 15, 30} e seja 𝑅 a relação binária dada por:

𝑅 = {(𝑎, 𝑏) ∈ 𝐴 × 𝐴 | 𝑎 divide 𝑏}.

Responda:

a) Forneça os pares ordenados que compõem a relação 𝑅:

𝑅 = {(1, 1), (1, 2), (1, 3), (1, 5), (1, 6), (1, 10), (1, 15), (1, 30),
(2, 2), (2, 6), (2, 10), (2, 30),
(3, 3), (3, 6), (3, 15), (3, 30),
(5, 5), (5, 10), (5, 15), (5, 30),
(6, 6), (6, 30),
(10, 10), (10, 30),
(15, 15), (15, 30),
(30, 30)}.

b) Desenhe o diagrama de Hasse do conjunto parcialmente ordenado (𝐴, 𝑅).

Exemplo. Seja 𝐴 = {1, 2, 3} e 2𝐴 o conjunto potência de 𝐴. Seja a relação 𝑅 dada por:

𝑅 = {(𝑋, 𝑌 ) ∈ 2𝐴 × 2𝐴 : 𝑋 ⊆ 𝑌 }.

71
Escreva os pares ordenados que compõem a relação 𝑅 e desenhe o diagrama de Hasse do POSET.

Exemplo. Seja 𝐴 = {1, 2, 3, 4, 5} e seja 𝑅 a relação definida como:

𝑅 = {(𝑥, 𝑦) ∈ 𝐴 × 𝐴 : 𝑥 ≤ 𝑦}.

Escreva os pares ordenados que compõem a relação 𝑅 e desenhe o diagrama de Hasse do POSET.

𝑅 = {(1, 1), (1, 2), (1, 3), (1, 4), (1, 5),
(2, 2), (2, 3), (2, 4), (2, 5),
(3, 3), (3, 4), (3, 5),
(4, 4), (4, 5),
(5, 5)}.
Note que não há elementos incomparáveis, portanto a estrutura do diagrama de Hasse é linear.

72
Definição 35 (Elemento mínimo). Seja 𝑅 uma relação de ordem parcial sobre o conjunto 𝐴. Um
elemento mínimo de 𝐴 sob 𝑅 é um 𝑚 ∈ 𝐴 tal que:

∀𝑥 ∈ 𝐴 𝑚𝑅𝑥.

Em outras palavras, 𝑚 precede todos os elementos de 𝐴.

No diagrama de Hasse de (𝐴, 𝑅) existe um elemento mínimo se há um único ponto no diagrama


a partir do qual é possível alcançar todo elemento do conjunto 𝐴 percorrendo caminhos ascendentes.
Na relação “divide” do exemplo anterior, o elemento mínimo é o 1. A seguir veremos um exemplo de
conjunto que não possui elemento mínimo.

Definição 36 (Elemento máximo). Seja 𝑅 uma relação de ordem parcial sobre o conjunto 𝐴. Um
elemento máximo de 𝐴 sob 𝑅 é um 𝑚 ∈ 𝐴 tal que:

∀𝑥 ∈ 𝐴 𝑥𝑅𝑚.

Em outras palavras, 𝑚 sucede todos os elementos de 𝐴.

No diagrama de Hasse de (𝐴, 𝑅) existe um elemento máximo se há um único ponto no diagrama


a partir do qual é possível alcançar todo elemento do conjunto 𝐴 percorrendo caminhos descendentes.
No diagrama de Hasse da relação 𝑅1 não há elemento máximo, enquanto que no diagrama de Hasse
da relação 𝑅2 o elemento máximo é 4.

Definição 37 (Elemento minimal). Seja 𝑅 uma relação de ordem parcial sobre o conjunto 𝐴. Um
elemento minimal de 𝐴 sob 𝑅 é um 𝑚 ∈ 𝐴 tal que ∄𝑥 ∈ 𝐴, 𝑥 ̸= 𝑚, 𝑥𝑅𝑚. Em outras palavras, não
existe ninguém que preceda 𝑚.

Na relação 𝑅1 do diagrama anterior, 3 é elemento minimal, enquanto que na relação 𝑅2 , 3 e 5 são


elementos minimais.

73
Exemplo. Seja 𝐴 = N − {0, 1}, onde N denota o conjunto dos naturais, e seja 𝑅 a relação “é divisor
próprio de”, ou seja:

𝑅 = {(𝑥, 𝑦) : 𝑥 ∈ 𝐴 ∧ 𝑦 ∈ 𝐴 ∧ 𝑥 < 𝑦 ∧ (∃𝑘 ∈ N) / 𝑦 = 𝑘𝑥}

a) Liste alguns pares ordenados de 𝑅.

𝑅 = {(2, 4), (3, 6), (5, 15), (3, 21), (4, 16), (6, 18), (7, 21), . . .}

b) Quem são os elementos minimais de 𝑅? Explique.


Note que 4, 6, 8, . . . e todos os números pares não podem ser minimais, pois eles são todos
divisíveis por 2, isto é, sempre haverá pares do tipo (2, 𝑧), onde 𝑧 é um número par.
Para que um elemento seja minimal, ele deve ser ímpar e pode aparecer somente na esquerda
do par ordenado. Isso significa que eles não são divisíveis por nenhum outro elemento dos
naturais.
Esses são, por definição, os números primos.

Definição 38. Seja 𝑅 uma relação de ordem parcial sobre o conjunto 𝐴. Um elemento maximal de
𝐴 sob 𝑅 é um 𝑚 ∈ 𝐴 tal que ∄𝑥 ∈ 𝐴, 𝑥 ̸= 𝑚, 𝑚𝑅𝑥. Em outras palavras, não existe ninguém que
sucede 𝑚.

Obs: No diagrama de Hasse, temos:


minimal = não sai nenhuma linha descendente
maximal = não sai nenhuma linha ascendente

• Todo mínimo é minimal, mas nem todo minimal é mínimo.

• Todo máximo é maximal, mas nem todo maximal é máximo.

Você consegue pensar em um conjunto parcialmente ordenado com um único elemento maximal,
mas que não é máximo? Pode parecer estranho, mas esse tipo de POSET de fato existe.
Exemplo: Seja 𝐴 o conjunto

𝐴 = {3} ∪ {2, 4, 8, 16, 32, 64, . . . , 2𝑛 , . . .}

e a relação binária em 𝐴 “divide”, definida por:

𝑅 = {(𝑥, 𝑦) : 𝑥 divide 𝑦}.

Note que o elemento 3 não divide nenhum elemento do conjunto, ou seja, não há pares ordenados
do tipo (3, 𝑥). Isso significa que não há nenhum elemento que sucede 3. Portanto, 3 é maximal.

74
Além disso, observe que 3 é o único elemento maximal, pois toda potência de 2 divide a próxima
potência de 2, isto é, teremos infinitos pares do tipo (2𝑛 , 2𝑛+1 ). Assim, não há elemento máximo em
𝐴, uma vez que não existe um elemento de 𝐴 que seja divisível por todo outro elemento de 𝐴.

6.2 Reticulados
Reticulados são conjuntos parcialmente ordenados com propriedades especiais. Antes de definir-
mos o que é um reticulado, iremos definir o maior limite inferior e o menor limite superior de dois
elementos de um conjunto 𝐴.

Definição 39 (Maior limite inferior (meet ou ínfimo)). Seja (𝐴, 𝑅) um conjunto parcialmente orde-
nado e sejam 𝑥, 𝑦 ∈ 𝐴.

• Dizemos que 𝑧 ∈ 𝐴 é um limitante inferior de 𝑥 e 𝑦 se

𝑧𝑅𝑥 e 𝑧 𝑅 𝑦.

• O maior limite inferior (ou meet), denotado por 𝑥 ∧ 𝑦, é o maior desses limitantes inferiores,
isto é, aquele que é mais próximo de 𝑥 e 𝑦 na ordem.

Se ele existir, é único.

Definição 40 (Menor limite superior (join ou supremo)). Seja (𝐴, 𝑅) um conjunto parcialmente or-
denado e sejam 𝑥, 𝑦 ∈ 𝐴.

• Dizemos que 𝑧 ∈ 𝐴 é um limitante superior de 𝑥 e 𝑦 se

𝑥𝑅𝑧 e 𝑦 𝑅 𝑧.

• O menor limite superior (ou join), denotado por 𝑥 ∨ 𝑦, é o menor desses limitantes superiores,
isto é, aquele que é mais próximo de 𝑥 e 𝑦 na ordem.

Se ele existir, é único.

Intuitivamente:

• O maior limite inferior é o maior elemento que está abaixo de ambos.

• O menor limite superior é o menor elemento que está acima de ambos.

Exemplo
Exemplo. Seja 𝐴 = {2, 3, 4, 6, 8} e a relação binária 𝑅 dada por:

𝑅 = {(𝑥, 𝑦) ∈ 𝐴 × 𝐴 : 𝑥 divide 𝑦}

75
a) Liste os pares ordenados de 𝑅:

𝑅 = {(2, 2), (2, 4), (2, 6), (2, 8), (3, 3), (3, 6), (4, 4), (4, 8), (6, 6), (8, 8)}

b) Desenhe o diagrama de Hasse do POSET (𝐴, 𝑅).

c) Encontre os maiores limites inferiores (meet ∧) e os menores limites superiores (join ∨) dos
pares indicados:

4 ∧ 6 = 2,
4 ∨ 6 : não existe menor limite superior,

2 ∨ 3 = 6,
2 ∧ 3 : não existe maior limite inferior,

2 ∧ 6 = 2,
2 ∨ 6 = 6,

6 ∧ 8 = 2,
6 ∨ 8 : não existe menor limite superior.

Note que o diagrama de Hasse em questão não possui máximo nem mínimo. Por outro lado, há
dois elementos maximais (6 e 8, pois a partir deles não é possível ir para cima), e dois elementos
minimais (2 e 3, pois a partir deles não é possível ir para baixo).

Definição 41. Seja (𝐴, 𝑅) um conjunto parcialmente ordenado. Se todo par de elementos 𝑥, 𝑦 ∈ 𝐴
possui tanto um maior limite inferior (𝑥 ∧ 𝑦) quanto um menor limite superior (𝑥 ∨ 𝑦) e o POSET
tem um mínimo e um máximo, então dizemos que (𝐴, 𝑅) é um reticulado.

Exemplo. Seja 𝐴 = {𝑥, 𝑦, 𝑧} e o conjunto potência 2𝐴 = {∅, {𝑥}, {𝑦}, {𝑧}, {𝑥, 𝑦}, {𝑥, 𝑧}, {𝑦, 𝑧}, {𝑥, 𝑦, 𝑧}}.

76
Defina a relação binária 𝑅 em 2𝐴 por

𝑅 = {(𝑋, 𝑌 ) ∈ 2𝐴 × 2𝐴 : 𝑋 ⊆ 𝑌 }.

Desenhe o diagrama de Hasse do POSET (2𝐴 , ⊆).

Resposta: O diagrama de Hasse de (2𝐴 , ⊆) é o cubo booleano de dimensão 3 (níveis de baixo para
cima: ∅; {𝑥}, {𝑦}, {𝑧}; {𝑥, 𝑦}, {𝑥, 𝑧}, {𝑦, 𝑧}; {𝑥, 𝑦, 𝑧}).
O POSET (2𝐴 , ⊆) é um reticulado.
Note que o conjunto vazio está contido em todos os conjuntos, então ele é o elemento mínimo.
Note também que o próprio conjunto só está contido nele mesmo; nenhum outro elemento diferente
dele mesmo o contém, logo ele é o elemento máximo.
Além disso, para todo par de elementos, existe um maior limite inferior e um menor limite supe-
rior. Por exemplo:

{𝑦} ∧ {𝑧} = ∅

{𝑦} ∨ {𝑧} = {𝑦, 𝑧}

{𝑥, 𝑦} ∧ {𝑦, 𝑧} = {𝑦}

{𝑥, 𝑦} ∨ {𝑦, 𝑧} = {𝑥, 𝑦, 𝑧}

Observe que, neste caso, as operações meet (∧) e join (∨) correspondem às operações usuais de
interseção e união de conjuntos, respectivamente.

Exemplo. Seja 𝐴 = {1, 2, 3, 4, 6, 8, 9, 12} e a relação binária 𝑅 definida por

𝑅 = {(𝑥, 𝑦) ∈ 𝐴 × 𝐴 | 𝑥 divide 𝑦}.

77
a) Pares ordenados que compõem 𝑅

𝑅 = { (1, 1), (1, 2), (1, 3), (1, 4), (1, 6), (1, 8), (1, 9), (1, 12),
(2, 2), (2, 4), (2, 6), (2, 8), (2, 12),
(3, 3), (3, 6), (3, 9), (3, 12),
(4, 4), (4, 8), (4, 12),
(6, 6), (6, 12),
(8, 8),
(9, 9),
(12, 12) }.

b) Diagrama de Hasse do POSET (𝐴, 𝑅)


Abaixo segue uma possível disposição do diagrama de Hasse para o poset (𝐴, 𝑅). As arestas
representam coberturas (ou seja, pares (𝑥, 𝑦) ∈ 𝑅 tais que não existe 𝑧 com 𝑥 | 𝑧 | 𝑦 e 𝑧 ̸= 𝑥, 𝑦).

Note que não temos um reticulado, uma vez que não existe menor limite superior para o par 6 e 9,
além do par 8 e 12.
Veremos a seguir a noção de limitantes superiores e inferiores.
Quem são os limitantes superiores de {2, 3}? São todos os elementos atingíveis a partir de 2 e 3
apenas por caminhos ascendentes. No caso do POSET acima, os limitantes superiores de {2, 3} são
6 e 12. O resultado da operação join (∨) é o menor dos limitantes superiores, no caso:

2 ∨ 3 = 6.

Da mesma forma, quem são os limitantes inferiores de {8, 12}? São todos os elementos atingíveis
a partir de 8 e 12 apenas por caminhos descendentes. No caso do POSET acima, os limitantes inferi-
ores de {8, 12} são 4, 2 e 1. O resultado da operação meet (∧) é o maior dos limitantes inferiores, no

78
caso:
8 ∧ 12 = 4.

Exemplo. Quais dos POSETS a seguir representam reticulados? Justifique suas respostas.

A análise dos POSETS revela que:

1. Estrutura típica do reticulado booleano 𝐵2 em que cada par de elementos possui ∧ e ∨. Possui
mínimo (elemento de baixo) e máximo (elemento de cima). Portanto, é um reticulado.

2. Essa é a forma clássica do pentágono de 𝑁 5, conhecido contraexemplo na teoria de reticulados.


Existem pares que não possuem um únco menor limite superior, como por exemplo o par (𝑎, 𝑏).
Portanto, não é um reticulado.

3. Essa é a forma do M3 (diamante de 5 elementos generalizado com 6 vértices). É um contrae-


xemplo famoso: existem pares de elementos que não têm um menor limite superior, como por
exemplo o par (𝑏, 𝑐). Portanto, não é um reticulado.

4. Note que o par (𝑏, 𝑑) não possui um menor limite superior (não é único), o que implica que o
POSET não é um reticulado.

Exemplo. Dado o POSET a seguir, responda:

Quem são os maiores limites inferiores e menores limites superiores dos pares a seguir?
a) (𝑏, 𝑐)
b) (𝑔, 𝑒)
c) (𝑓, 𝑔)

79
Definição 42 (Álgebra de Boole). Uma álgebra de Boole é um conjunto parcialmente ordenado em
que as operações meet (∧) e join (∨) satisfazem as seguintes propriedades:

i. Associatividade:

𝑥 ∧ (𝑦 ∧ 𝑧) = (𝑥 ∧ 𝑦) ∧ 𝑧, 𝑥 ∨ (𝑦 ∨ 𝑧) = (𝑥 ∨ 𝑦) ∨ 𝑧

ii. Comutatividade:
𝑥 ∧ 𝑦 = 𝑦 ∧ 𝑥, 𝑥∨𝑦 =𝑦∨𝑥

iii. Distributividade:

𝑥 ∧ (𝑦 ∨ 𝑧) = (𝑥 ∧ 𝑦) ∨ (𝑥 ∧ 𝑧), 𝑥 ∨ (𝑦 ∧ 𝑧) = (𝑥 ∨ 𝑦) ∧ (𝑥 ∨ 𝑧)

iv. Suporte finito (existência de mínimo e máximo):

∃ 0, 1 ∈ 𝐴 tais que 0 ≤ 𝑥 ≤ 1, ∀𝑥 ∈ 𝐴

v. Complementaridade:

∀𝑥 ∈ 𝐴, ∃𝑥′ ∈ 𝐴 tal que 𝑥 ∧ 𝑥′ = 0, 𝑥 ∨ 𝑥′ = 1

vi. Absorção:
𝑥 ∧ (𝑥 ∨ 𝑦) = 𝑥, 𝑥 ∨ (𝑥 ∧ 𝑦) = 𝑥

Essas propriedades são as mesmas operações introduzidas pela Teoria dos Conjuntos, como visto

80
nas aulas anteriores. No caso mais simples, podemos representar tal POSET através de um diagrama
de Hasse.

Aqui, temos o conjunto 𝐴 = {0, 1} e a relação 𝑅 é definida por “está contido em”. Uma boa
reflexão é pensar em maneiras de como definir uma álgebra de Boole em um conjunto com mais de
dois elementos, como por exemplo 𝐴 = {0, 1, 2}. Como ficaria o reticulado? E as operações meet e
join seriam definidas como?

6.3 Considerações finais


Neste capítulo estudamos as relações de ordem parcial e algumas de suas propriedades funda-
mentais. Vimos que tais relações generalizam a noção de ordem, permitindo estruturar conjuntos em
que nem todos os elementos são necessariamente comparáveis. Esse tipo de estrutura, chamado de
POSET (Partially Ordered Set), desempenha um papel central em diversas áreas da Matemática e
da Computação, fornecendo a base para conceitos como hierarquias, dependências e organização de
dados.
Apresentamos também a representação gráfica de conjuntos parcialmente ordenados por meio do
diagrama de Hasse, que fornece uma visualização clara da estrutura relacional e facilita a identificação
de elementos importantes, como mínimos, máximos, minimais e maximais. Tais conceitos mostraram
que dentro de um mesmo conjunto podem coexistir múltiplos elementos privilegiados, dependendo
da relação de ordem considerada.
Exploramos ainda os conceitos de maior limite inferior (meet) e menor limite superior (join), que
introduzem operações algébricas em POSETs e nos conduziram à definição de estruturas mais ricas,
como reticulados e álgebras de Boole. Essas extensões abrem caminho para aplicações importantes,
que veremos em capítulos posteriores, tanto no estudo da Teoria dos Conjuntos quanto na lógica e em
áreas aplicadas da Computação.

81
Assim, as relações de ordem parcial constituem um tema fundamental, pois unem aspectos algé-
bricos, combinatórios e computacionais. A compreensão desses conceitos é essencial para avançar
em tópicos mais sofisticados da Matemática Discreta, como grafos, estruturas algébricas e teoria da
complexidade.

82
7 Funções
As funções desempenham um papel central em praticamente todos os ramos da Matemática. De
maneira intuitiva, uma função pode ser vista como uma “regra de associação” que, a cada elemento
de um conjunto de partida (o domínio), associa exatamente um elemento de um conjunto de chegada
(o contradomínio). Essa noção simples é suficientemente poderosa para descrever desde processos
aritméticos básicos até sistemas complexos em ciência da computação e engenharia.
No contexto da Matemática Discreta, estudamos funções como relações especiais entre conjun-
tos, caracterizadas pela propriedade de unicidade: para cada elemento do domínio existe um único
elemento associado no contradomínio. Esse enfoque nos permite tratar funções de maneira rigorosa,
analisando não apenas exemplos numéricos, mas também funções definidas em conjuntos abstratos,
finitos ou infinitos, que aparecem em algoritmos, estruturas de dados e modelos matemáticos.
Além de entender a definição formal, é fundamental distinguir diferentes tipos de funções, como
as injetoras, sobrejetoras e bijetoras, que classificam as funções de acordo com a maneira como seus
elementos associam o domínio ao contradomínio. Essas distinções são importantes porque determi-
nam a possibilidade de construir funções inversas, estabelecer correspondências entre conjuntos e
analisar propriedades de cardinalidade.
Neste capítulo, desenvolveremos as principais noções sobre funções, explorando definições, exem-
plos, propriedades e aplicações. Também faremos conexões com tópicos anteriores, como relações
e conjuntos, mostrando como as funções se encaixam naturalmente nesse contexto e ampliam nosso
repertório de ferramentas para o estudo de estruturas matemáticas discretas.

Definição 43 (Função). Uma função 𝑓 é um subconjunto do produto cartesiano 𝐴 × 𝐵, tal que se


(𝑎, 𝑏) ∈ 𝑓 e (𝑎, 𝑐) ∈ 𝑓 , então 𝑏 = 𝑐. Em outras palavras, uma mesma entrada não pode ter duas
saídas distintas. (O conjunto 𝐵 pode ser o próprio 𝐴).
Exemplos:
𝑓 = {(1, 2), (2, 3), (3, 1), (4, 7)} é uma função,

𝑔 = {(1, 2), (1, 3), (4, 7)} não é função, pois a entrada 1 é mapeada para 2 e 3.

Definição 44 (Notação). Seja 𝑓 uma função e 𝑎 ∈ 𝐴. A notação (𝑎, 𝑏) ∈ 𝑓 indica que 𝑓 (𝑎) = 𝑏.
Matematicamente:
𝑓 (𝑎) = 𝑏 ⇔ ∃𝑏 tal que (𝑎, 𝑏) ∈ 𝑓.

83
Exemplo. Expresse a função:

𝑓 (𝑥) = 𝑥2 , 𝑥 ∈ Z, −3 ≤ 𝑥 ≤ 3,

como um conjunto de pares ordenados. Temos:

𝑓 = {(−3, 9), (−2, 4), (−1, 1), (0, 0), (1, 1), (2, 4), (3, 9)}.

Definição 45 (Domínio e Imagem). Seja 𝑓 uma função. O conjunto de todos os primeiros elemen-
tos possíveis dos pares ordenados de 𝑓 é o domínio da função. O conjunto de todos os segundos
elementos dos pares ordenados de 𝑓 é a imagem de 𝑓 .
Matematicamente:
dom(𝑓 ) = {𝑎 : ∃𝑏, (𝑎, 𝑏) ∈ 𝑓 },

img(𝑓 ) = {𝑏 : ∃𝑎, (𝑎, 𝑏) ∈ 𝑓 }.

Exemplo. Seja
𝑓 = {(1, 2), (2, 3), (3, 1), (4, 7)}.

Temos:
dom(𝑓 ) = {1, 2, 3, 4}, img(𝑓 ) = {1, 2, 3, 7}.

Definição 46 (Função de 𝐴 em 𝐵). Dizemos que 𝑓 é uma função de 𝐴 em 𝐵, denotada por

𝑓 : 𝐴 → 𝐵,

se dom(𝑓 ) = 𝐴 (o domínio da função é 𝐴) e img(𝑓 ) ⊆ 𝐵 (a imagem da função está contida em 𝐵). O


conjunto 𝐵 recebe o nome de contradomínio, enquanto a imagem é o subconjunto de 𝐵 efetivamente
atingido por 𝑓 .

Observação. Para que 𝑓 seja uma função de 𝐴 em 𝐵, todos os elementos de 𝐴 devem ser mape-
ados (isto é, não pode sobrar nenhum elemento sem correspondência no conjunto 𝐴).

Em resumo, para verificar se 𝑓 é função de 𝐴 em 𝐵, devemos checar:

1. 𝑓 é uma função;

2. dom(𝑓 ) = 𝐴;

3. img(𝑓 ) ⊆ 𝐵.

84
Exemplo. Seja
𝐴 = {1, 2, 3, 4, 5, 6}, 𝐵 = {1, 2, 3, 4, 5}.

Considere
𝑓 = {(1, 3), (2, 1), (3, 2), (4, 4), (5, 5)}.

i) 𝑓 é função? Sim, pois um elemento de 𝐴 não é mapeado a 2 elementos distintos de 𝐵.

ii) dom(𝑓 ) = 𝐴? Não, pois o elemento 6 não está sendo mapeado para nenhum elemento de 𝐵.

Portanto, 𝑓 não é função de 𝐴 em 𝐵.

Definição 47 (Função par e ímpar). Sejam 𝐴 e 𝐵 conjuntos infinitos que contenham elementos posi-
tivos e negativos (por exemplo, Z ou R), e seja 𝑓 : 𝐴 → 𝐵 uma função arbitrária.

• Dizemos que 𝑓 é par se, e somente se, (𝑥, 𝑦) ∈ 𝑓 implica (−𝑥, 𝑦) ∈ 𝑓 . Em outras palavras:

𝑓 (−𝑥) = 𝑓 (𝑥).

• Dizemos que 𝑓 é ímpar se, e somente se, (𝑥, 𝑦) ∈ 𝑓 implica (−𝑥, −𝑦) ∈ 𝑓 . Em outras palavras:

𝑓 (−𝑥) = −𝑓 (𝑥).

7.1 Contando o número de funções


Pergunta: Dados dois conjuntos finitos 𝐴 e 𝐵, quantas funções 𝑓 : 𝐴 → 𝐵 existem?

85
𝐴 = {1, 2, 3, . . . , 𝑚}, 𝐵 = {1, 2, 3, . . . , 𝑛}.

Note que, para cada elemento de 𝐴, temos 𝑛 possibilidades em 𝐵. Como temos 𝑚 elementos em
𝐴:
𝑛 × 𝑛 × 𝑛 × · · · × 𝑛 = 𝑛𝑚 (𝑚 vezes).

Exemplo. Sejam 𝐴 = {1, 2, 3} e 𝐵 = {4, 5}. Determine todas as funções 𝑓 : 𝐴 → 𝐵.


Chamamos 𝑚 = |𝐴| = 3 e 𝑛 = |𝐵| = 2. Então, teremos 𝑛𝑚 = 23 = 8 funções de 𝐴 em 𝐵:

𝑓1 = {(1, 4), (2, 4), (3, 4)},


𝑓2 = {(1, 4), (2, 4), (3, 5)},
𝑓3 = {(1, 4), (2, 5), (3, 4)},
𝑓4 = {(1, 5), (2, 4), (3, 4)},
𝑓5 = {(1, 4), (2, 5), (3, 5)},
𝑓6 = {(1, 5), (2, 5), (3, 4)},
𝑓7 = {(1, 5), (2, 4), (3, 5)},
𝑓8 = {(1, 5), (2, 5), (3, 5)}.

Definição 48 (Função Inversa). Seja 𝑓 : 𝐴 → 𝐵 uma função arbitrária. Dizemos que a função
inversa 𝑓 −1 é definida pela inversão dos pares ordenados de 𝑓 .

Pergunta: Se 𝑓 : 𝐴 → 𝐵, então 𝑓 −1 : 𝐵 → 𝐴 existe? Nem sempre!


Exemplo. Sejam:
𝐴 = {0, 1, 2, 3, 4}, 𝐵 = {5, 6, 7, 8, 9},

𝑓 = {(0, 5), (1, 7), (2, 8), (3, 9), (4, 7)}.

Temos 𝑓 : 𝐴 → 𝐵. A inversa seria:

𝑓 −1 = {(5, 0), (7, 1), (8, 2), (9, 3), (7, 4)}.

No entanto, 𝑓 −1 não é uma função de 𝐵 → 𝐴, pois o elemento 7 está sendo mapeado para 1 e 4
ao mesmo tempo. Além disso, dom(𝑓 −1 ) ̸= 𝐵. Mais adiante, veremos as condições necessárias para
que a inversa de uma função 𝑓 seja também uma função.

7.2 Propriedades de funções


A seguir, iremos estudar algumas propriedades de funções, em especial três delas. Definiremos o
que são funções injetoras, sobrejetoras e bijetoras.

86
Definição 49 (Função injetora). Uma função f é injetora se sempre que:

(𝑥, 𝑧) ∈ 𝑓 ∧ (𝑦, 𝑧) ∈ 𝑓 → 𝑥 = 𝑦

Em outras palavras, pela contrapositiva, 𝑥 ̸= 𝑦 → 𝑓 (𝑥) ̸= 𝑓 (𝑦), o que significa que elementos
distintos do domínio devem ser mapeados para elementos distintos do contra-domnínio.

Definição 50. Seja 𝑓 : 𝐴 → 𝐵 uma função arbitrária. A inversa 𝑓 −1 é uma função se, e somente se,
𝑓 é injetora.

É fácil notar que, se 𝑓 não é injetora, ao invertermos os pares ordenados de 𝑓 , haverá um elemento
que será mapeado para dois valores distintos.

Exemplo. Exemplo: Seja 𝑓 : Z → Z dada por:

𝑓 (𝑥) = 3𝑥 + 4.

Prove que 𝑓 é injetora:

1. Sejam 𝑥 e 𝑦 dois elementos de Z, tais que 𝑓 (𝑥) = 𝑓 (𝑦).

2. Assim, 3𝑥 + 4 = 3𝑦 + 4, o que implica em 3𝑥 = 3𝑦, logo 𝑥 = 𝑦.

3. Portanto, a função 𝑓 é injetora.

87
Exemplo. Seja 𝑓 : Z → Z dada por:
𝑓 (𝑥) = 𝑥2 .

A função 𝑓 é injetora? Justifique sua resposta:

1. Sejam dois elementos distintos de Z: 𝑥 = −3 e 𝑦 = 3.

2. Note que 𝑓 (𝑥) = 𝑓 (𝑦) = 9.

3. Portanto, a função 𝑓 não é injetora.

Pergunta. Seja 𝑓 : 𝐴 → 𝐵. Quando 𝑓 −1 é função de 𝐵 para 𝐴, isto é, quando 𝑓 −1 : 𝐵 → 𝐴?

Note que não basta que 𝑓 seja injetora. Além disso, não deve sobrar nenhum elemento de 𝐵 sem
um valor associado. Por exemplo, a inversa da função 𝑓 : 𝑋 → 𝑌 definida em uma figura anterior
não é função de 𝑌 para 𝑋, pois o elemento 𝐶 ∈ 𝑌 não é mapeado para nenhum valor.
Matematicamente:
∃𝑧 ∈ 𝑌 | 𝑓 −1 (𝑧) indefinida.

Definição 51 (Função Sobrejetora). Seja 𝑓 : 𝐴 → 𝐵 uma função arbitrária. Dizemos que 𝑓 é


sobrejetora se:
∀𝑏 ∈ 𝐵, ∃𝑎 ∈ 𝐴 | 𝑓 (𝑎) = 𝑏,

ou seja, img(𝑓 ) = 𝐵. Em outras palavras, todos os elementos do contradomínio são atingidos (não
sobra nenhum elemento em 𝐵).

Exemplo. Sejam:
𝐴 = {1, 2, 3, 4, 5, 6}, 𝐵 = {7, 8, 9, 10},

𝑓 = {(1, 7), (2, 7), (3, 8), (4, 9), (5, 9), (6, 10)},

𝑔 = {(1, 7), (2, 7), (3, 7), (4, 9), (5, 9), (6, 10)}.

Note que 𝑓 : 𝐴 → 𝐵 é sobrejetora, mas 𝑔 : 𝐴 → 𝐵 não é sobrejetora (pois o elemento 8 ∈ 𝐵 não


é atingido).

Exemplo. Seja 𝑓 : Q → Q dada por:

𝑓 (𝑥) = 3𝑥 + 4.

Prove que 𝑓 é uma função sobrejetora:

1. Seja 𝑏 ∈ Q arbitrário. Buscamos um 𝑎 ∈ Q tal que 𝑓 (𝑎) = 𝑏.

2. Defina:
𝑏−4
𝑎= .
3

88
3. Calculando 𝑓 (𝑎), temos:
(︂ )︂
𝑏−4
𝑓 (𝑎) = 3 + 4 = (𝑏 − 4) + 4 = 𝑏.
3

4. Portanto, 𝑓 é sobrejetora, pois para cada 𝑏 ∈ Q sempre é possível encontrar um 𝑎 ∈ Q tal que
𝑓 (𝑎) = 𝑏.

Definição 52 (Função bijetora ou mapeamento 1-1). Seja f: A → B arbitrária. A função f é chamada


de bijeção se f é injetora e sobrejetora.

Teorema 23. Sejam 𝐴 e 𝐵 conjuntos arbitrários, e seja 𝑓 : 𝐴 → 𝐵 uma função. A função inversa
𝑓 −1 : 𝐵 → 𝐴 existe se, e somente se, 𝑓 é bijetora.

Prova.
Parte 1: (⇒)

1. Suponha 𝑓 : 𝐴 → 𝐵 e 𝑓 −1 : 𝐵 → 𝐴 sua função inversa.

2. Como 𝑓 −1 é uma função inversa, então 𝑓 é injetora.

3. Como img(𝑓 ) = dom(𝑓 −1 ) = 𝐵, temos que 𝑓 é sobrejetora (pois, como a inversa é função,
não pode sobrar nenhum elemento em 𝐵).

4. Portanto, 𝑓 é injetora e sobrejetora (bijetora).

Parte 2: (⇐)

1. Suponha que 𝑓 : 𝐴 → 𝐵 é bijetora.

2. Como 𝑓 é injetora, a inversa 𝑓 −1 é uma função.

3. Como 𝑓 é sobrejetora, img(𝑓 ) = 𝐵 e, portanto, dom(𝑓 −1 ) = 𝐵.

4. Como dom(𝑓 ) = 𝐴, então img(𝑓 −1 ) = 𝐴.

5. Logo, 𝑓 −1 : 𝐵 → 𝐴.

89
Definição 53 (Princípio da Casa dos Pombos). Sejam 𝐴 e 𝐵 conjuntos finitos e seja 𝑓 : 𝐴 → 𝐵.
Então:

a) Se |𝐴| > |𝐵|, então 𝑓 não é injetora.

b) Se |𝐴| < |𝐵|, então 𝑓 não é sobrejetora.

Em outras palavras:

• Se 𝑓 é injetora, então |𝐴| ≤ |𝐵|;

• Se 𝑓 é sobrejetora, então |𝐴| ≥ |𝐵|;

• Se 𝑓 é uma bijeção, então |𝐴| = |𝐵|.

7.2.1 Contagem de funções injetoras

Sejam 𝐴 e 𝐵 conjuntos finitos com |𝐴| = 𝑚 e |𝐵| = 𝑛. Seja 𝑓 : 𝐴 → 𝐵 uma função injetora
arbitrária. Para isso, sabemos que 𝑚 ≤ 𝑛.
O número total de funções injetoras de 𝐴 em 𝐵 pode ser calculado da seguinte maneira:

• O elemento 𝑎1 pode ser mapeado para qualquer um dos 𝑛 elementos de 𝐵: 𝑏1 , 𝑏2 , . . . , 𝑏𝑛 .

• O elemento 𝑎2 pode ser mapeado para qualquer um dos 𝑛 − 1 elementos restantes de 𝐵.

• O elemento 𝑎3 pode ser mapeado para qualquer um dos 𝑛 − 2 elementos restantes de 𝐵.

• ...

• O elemento 𝑎𝑚 pode ser mapeado para qualquer um dos 𝑛 − (𝑚 − 1) elementos de 𝐵.

Isso significa que temos:

𝑛!
𝑛(𝑛 − 1)(𝑛 − 2) · · · (𝑛 − (𝑚 − 1)) = .
(𝑛 − 𝑚)!

Exemplo. Quantas funções injetoras de 𝐴 em 𝐵 existem se |𝐴| = 5 e |𝐵| = 8?

8! 8! 8 · 7 · 6 · 5 · 4 · 3!
= = = 8 · 7 · 6 · 5 · 4 = 6720.
(8 − 5)! 3! 3!

Portanto, existem 6720 funções injetoras distintas.

90
7.2.2 Contagem de funções sobrejetoras

Sejam 𝐴 e 𝐵 conjuntos finitos com |𝐴| = 𝑚 e |𝐵| = 𝑛. Seja 𝑓 : 𝐴 → 𝐵 uma função sobrejetora
arbitrária. Para isso, sabemos que 𝑚 ≥ 𝑛. A ideia consiste em subtrair o número de funções que não
são sobrejetoras do número total de funções, que é 𝑛𝑚 .
Iremos iniciar numerando os elementos de 𝐵 = {𝑏1 , 𝑏2 , 𝑏3 , . . . , 𝑏𝑛 }. Para cada 𝑖 = 1, 2, . . . , 𝑛,
seja 𝐹𝑖 o conjunto de funções de 𝐴 em 𝐵 que não mapeiam nenhum elemento a 𝑏𝑖 . Pelo princípio da
inclusão-exclusão, temos:
∑︁ ∑︁ ∑︁
|𝐹1 ∪ 𝐹2 ∪ · · · ∪ 𝐹𝑛 | = |𝐹𝑖 | − |𝐹𝑖 ∩ 𝐹𝑗 | + |𝐹𝑖 ∩ 𝐹𝑗 ∩ 𝐹𝑘 | − · · ·
1≤𝑖≤𝑛 1≤𝑖<𝑗≤𝑛 1≤𝑖<𝑗<𝑘≤𝑛

Note que o número de elementos do conjunto 𝐹𝑖 é dado por:

|𝐹𝑖 | = (𝑛 − 1)𝑚 ,

pois cada um dos 𝑚 elementos de 𝐴 pode ser mapeado para qualquer um dos 𝑛 − 1 elementos de
𝐵 (excluindo 𝑏𝑖 ). No primeiro somatório, que envolve excluir um único elemento de 𝐵, temos 𝑛1
(︀ )︀

maneiras de escolher 𝑏𝑖 a ser excluído.


No segundo somatório, que envolve excluir dois elementos de 𝐵, temos 𝑛2 maneiras de escolher
(︀ )︀

𝑏𝑖 e 𝑏𝑗 , e o número de funções é:
|𝐹𝑖 ∩ 𝐹𝑗 | = (𝑛 − 2)𝑚 .

E assim sucessivamente. Portanto, a expressão resultante para o número total de funções sobreje-
toras torna-se:
(︂ )︂ (︂ )︂ (︂ )︂ (︂ )︂
𝑚 𝑛 𝑚 𝑛 𝑚 𝑛 𝑚 𝑛 𝑛
𝑛 − (𝑛 − 1) + (𝑛 − 2) − (𝑛 − 3) + · · · + (−1) (𝑛 − 𝑛)𝑚 .
1 2 3 𝑛

De forma compacta, temos:


(︂ )︂𝑛
𝑛 ∑︁
𝑘
Número de funções sobrejetoras = (−1) (𝑛 − 𝑘)𝑚 .
𝑘=0
𝑘

Exemplo. Seja
𝐴 = {1, 2, 3, 4, 5}, 𝐵 = {𝑎, 𝑏, 𝑐}.

Quantas funções sobrejetoras de 𝐴 em 𝐵 existem?

Exemplo. Seja
𝐴 = {1, 2, 3, . . . , 𝑚}, 𝐵 = {𝑎, 𝑏, 𝑐}.

Quantas funções sobrejetoras de 𝐴 em 𝐵 existem?

91
Exemplo. Seja
𝐴 = {1, 2, 3}, 𝐵 = {4, 5}.

Escreva todas as funções 𝑓 : 𝐴 → 𝐵 e indique quais são injetoras e quais são sobrejetoras.

Exemplo. Sejam
𝐴 = {1, 2, 3, 4}, 𝐵 = {5, 6, 7},

e considere a relação parcial

𝑓 = {(1, 5), (2, 5), (3, 6), (?, ?)}.

Preencha as interrogações de modo que 𝑓 satisfaça cada uma das situações a seguir:

a) 𝑓 não seja uma função (isto é, não satisfaça a condição de função).

b) 𝑓 seja uma função de 𝐴 em 𝐵, mas não seja sobrejetora.

c) 𝑓 seja uma função de 𝐴 em 𝐵 e sobrejetora.

7.3 Composição de funções


Definição 54 (Composição de funções). Sejam 𝐴, 𝐵 e 𝐶 conjuntos arbitrários e sejam 𝑓 : 𝐴 → 𝐵 e
𝑔 : 𝐵 → 𝐶 funções arbitrárias. Então, a função composta 𝑔 ∘ 𝑓 é uma função de 𝐴 em 𝐶 definida
por:
(𝑔 ∘ 𝑓 )(𝑎) = 𝑔[𝑓 (𝑎)] para todo 𝑎 ∈ 𝐴.

Ou seja, primeiro aplica-se 𝑓 e, em seguida, aplica-se 𝑔 ao resultado.

Exemplo. Sejam os conjuntos:

𝐴 = {1, 2, 3, 4, 5}, 𝐵 = {6, 7, 8, 9}, 𝐶 = {10, 11, 12, 13, 14}.

Definimos as funções 𝑓 : 𝐴 → 𝐵 e 𝑔 : 𝐵 → 𝐶 como:

𝑓 = {(1, 6), (2, 6), (3, 9), (4, 7), (5, 7)}, 𝑔 = {(6, 10), (7, 11), (8, 12), (9, 13)}.

a) A composição é dada por:

𝑔 ∘ 𝑓 = 𝑔[𝑓 (𝑥)] = {(1, 10), (2, 10), (3, 13), (4, 11), (5, 11)}.

92
b) Note que o domínio da composição é o mesmo do domínio de 𝑓 :

dom(𝑔 ∘ 𝑓 ) = dom(𝑓 ) = 𝐴.

c) Cálculo específico:
(𝑔 ∘ 𝑓 )(2) = 𝑔[𝑓 (2)] = 𝑔(6) = 10.

Exemplo. Seja 𝑓 : Z → Z dada por 𝑓 (𝑥) = 𝑥2 + 1 e 𝑔 : Z → Z dada por 𝑔(𝑥) = 2𝑥 + 3.

(a) Calcule 𝑔 ∘ 𝑓 e encontre o valor de 𝑔 ∘ 𝑓 (4).

(𝑔 ∘ 𝑓 )(𝑥) = 𝑔[𝑓 (𝑥)] = 𝑔(𝑥2 + 1) = 2(𝑥2 + 1) + 3 = 2𝑥2 + 5

Portanto,
𝑔 ∘ 𝑓 (4) = 2 · 42 + 5 = 2 · 16 + 5 = 32 + 5 = 37

(b) Calcule 𝑓 ∘ 𝑔 e encontre o valor de 𝑓 ∘ 𝑔(4).

(𝑓 ∘ 𝑔)(𝑥) = 𝑓 [𝑔(𝑥)] = 𝑓 (2𝑥 + 3) = (2𝑥 + 3)2 + 1 = 4𝑥2 + 12𝑥 + 9 + 1 = 4𝑥2 + 12𝑥 + 10

93
Portanto,

𝑓 ∘ 𝑔(4) = 4 · 42 + 12 · 4 + 10 = 4 · 16 + 48 + 10 = 64 + 48 + 10 = 122

Portanto, a composição de funções não é uma operação comutativa. Porém, a seguir veremos que
ela é associativa.

Teorema 24. Sejam os conjuntos 𝐴, 𝐵, 𝐶 e 𝐷 arbitrários e sejam 𝑓 : 𝐴 → 𝐵, 𝑔 : 𝐵 → 𝐶 e


ℎ : 𝐶 → 𝐷 funções arbitrárias. Então:

ℎ ∘ (𝑔 ∘ 𝑓 ) = (ℎ ∘ 𝑔) ∘ 𝑓

Demonstração. Primeiramente, devemos verificar que os domínios das duas funções são iguais.
Como sabemos que dom(𝑔 ∘ 𝑓 ) = dom(𝑓 ), temos:

dom[ℎ ∘ (𝑔 ∘ 𝑓 )] = dom(𝑔 ∘ 𝑓 ) = dom(𝑓 ) = 𝐴

dom[(ℎ ∘ 𝑔) ∘ 𝑓 ] = dom(𝑓 ) = 𝐴

Ainda devemos verificar que, para 𝑎 ∈ 𝐴 arbitrário,

ℎ ∘ (𝑔 ∘ 𝑓 )(𝑎) = (ℎ ∘ 𝑔) ∘ 𝑓 (𝑎)

De fato,
ℎ ∘ (𝑔 ∘ 𝑓 )(𝑎) = ℎ[(𝑔 ∘ 𝑓 )(𝑎)] = ℎ{𝑔[𝑓 (𝑎)]}

(ℎ ∘ 𝑔) ∘ 𝑓 (𝑎) = ℎ ∘ 𝑔[𝑓 (𝑎)] = ℎ{𝑔[𝑓 (𝑎)]}

Portanto, a composição de funções é uma operação associativa.

Exemplo. Suponha 𝑔 : 𝐴 → 𝐵 e 𝑓 : 𝐵 → 𝐶 funções arbitrárias.

(A) Mostre que se ambas as funções 𝑓 e 𝑔 são injetoras, então 𝑓 ∘ 𝑔 também é injetora.

(a) Suponha 𝑎1 , 𝑎2 ∈ 𝐴 e 𝑓 ∘ 𝑔(𝑎1 ) = 𝑓 ∘ 𝑔(𝑎2 ).


(b) Então:
𝑓 [𝑔(𝑎1 )] = 𝑓 [𝑔(𝑎2 )]

(c) Como 𝑓 é injetora, temos:


𝑔(𝑎1 ) = 𝑔(𝑎2 )

(d) Como 𝑔 também é injetora, segue que:

𝑎1 = 𝑎2

94
(e) Portanto, 𝑓 ∘ 𝑔 é injetora.

Logo, a composição de funções preserva a propriedade injetora das funções originais.

(B) Mostre que se ambas as funções 𝑓 e 𝑔 são sobrejetoras, então 𝑓 ∘ 𝑔 também é sobrejetora.

(a) Suponha 𝑐 ∈ 𝐶 arbitrário.


(b) Como 𝑓 é sobrejetora, existe 𝑏 ∈ 𝐵 tal que:

𝑓 (𝑏) = 𝑐

(c) Como 𝑔 também é sobrejetora, existe 𝑎 ∈ 𝐴 tal que:

𝑔(𝑎) = 𝑏

(d) Logo,
𝑓 ∘ 𝑔(𝑎) = 𝑓 [𝑔(𝑎)] = 𝑓 (𝑏) = 𝑐

e, portanto, 𝑓 ∘ 𝑔 é sobrejetora.

Logo, a composição de funções preserva a propriedade sobrejetora das funções originais.

Esses dois resultados nos dizem que se temos duas bijeções 𝑓 : 𝐴 → 𝐵 e 𝑔 : 𝐵 → 𝐶, então a
composição 𝑓 ∘ 𝑔 também é uma bijeção.

Definição 55 (Função identidade). Seja 𝐴 um conjunto arbitrário. A função identidade em 𝐴, deno-


tada por 𝐼𝐴 , tem domínio dom(𝐼𝐴 ) = 𝐴 e é definida por:

𝐼𝐴 = {(𝑎, 𝑎) : 𝑎 ∈ 𝐴}

ou seja,
∀𝑎 ∈ 𝐴, 𝐼𝐴 (𝑎) = 𝑎.

Teorema 25. Sejam 𝐴 e 𝐵 conjuntos arbitrários e 𝑓 : 𝐴 → 𝐵. Então:

𝑓 ∘ 𝐼𝐴 = 𝐼𝐵 ∘ 𝑓 = 𝑓.

Demonstração. Considere 𝑓 ∘ 𝐼𝐴 e 𝑓 :

1. dom(𝑓 ∘ 𝐼𝐴 ) = dom(𝐼𝐴 ) = 𝐴 = dom(𝑓 ).

2. Seja 𝑎 ∈ 𝐴 arbitrário:
𝑓 ∘ 𝐼𝐴 (𝑎) = 𝑓 [𝐼𝐴 (𝑎)] = 𝑓 (𝑎).

Considere agora 𝐼𝐵 ∘ 𝑓 e 𝑓 :

95
1. dom(𝐼𝐵 ∘ 𝑓 ) = dom(𝑓 ) = 𝐴.

2. Seja 𝑎 ∈ 𝐴 arbitrário:
𝐼𝐵 ∘ 𝑓 (𝑎) = 𝐼𝐵 [𝑓 (𝑎)] = 𝑓 (𝑎).

Portanto, 𝑓 ∘ 𝐼𝐴 = 𝐼𝐵 ∘ 𝑓 = 𝑓 .

Teorema 26. Sejam 𝐴 e 𝐵 conjuntos e 𝑓 : 𝐴 → 𝐵 uma função bijetora arbitrária. Então:

(a) 𝑓 ∘ 𝑓 −1 = 𝐼𝐵

(b) 𝑓 −1 ∘ 𝑓 = 𝐼𝐴

Demonstração. Item (a):

1. dom(𝑓 ∘ 𝑓 −1 ) = dom(𝑓 −1 ) = 𝐵 = dom(𝐼𝐵 ).

2. Seja 𝑏 ∈ 𝐵 arbitrário, tal que 𝑓 (𝑎) = 𝑏 para algum 𝑎 ∈ 𝐴. Então:

𝑓 ∘ 𝑓 −1 (𝑏) = 𝑓 [𝑓 −1 (𝑏)] = 𝑓 (𝑎) = 𝑏

𝐼𝐵 (𝑏) = 𝑏

Portanto, 𝑓 ∘ 𝑓 −1 = 𝐼𝐵 .

De maneira similar, é fácil verificar que o item (b) é verdadeiro:

𝑓 −1 ∘ 𝑓 = 𝐼𝐴

Exemplo. Seja 𝑓 : Z → Z dada por 𝑓 (𝑥) = 2𝑥 − 3. Verifique que 𝑓 ∘ 𝑓 −1 e 𝑓 −1 ∘ 𝑓 são iguais às


funções identidade.

Para calcular a função inversa, trocamos 𝑥 por 𝑦 = 𝑓 (𝑥) na definição da função:

𝑦+3
𝑦 = 2𝑥 − 3 =⇒ 𝑥 =
2

Portanto:
𝑦+3
𝑓 −1 (𝑦) =
2
Para verificar que 𝑓 −1 realmente inverte os pares ordenados de 𝑓 , consideremos 𝑥 = 7:

11 + 3
𝑓 (7) = 2 · 7 − 3 = 11 e 𝑓 −1 (11) = =7
2

Portanto, (7, 11) ∈ 𝑓 e (11, 7) ∈ 𝑓 −1 .

96
Agora, as composições:
(︂ )︂
−1
(︁
−1
)︁ 𝑥+3 𝑥+3
𝑓 ∘𝑓 (𝑥) = 𝑓 𝑓 (𝑥) = 𝑓 =2· −3=𝑥
2 2
(︁ )︁ 2𝑥 − 3 + 3
𝑓 −1 ∘ 𝑓 (𝑥) = 𝑓 −1 𝑓 (𝑥) = 𝑓 −1 (2𝑥 − 3) = =𝑥
2
Logo, ambas as composições resultam na função identidade, que mapeia 𝑥 em 𝑥.

Exemplo. Sejam 𝑓 : R → R e 𝑔 : R → R duas funções dadas por:

𝑥
𝑓 (𝑥) = 2𝑥 − 1, 𝑔(𝑥) = +4
2

Encontre:

(a) (𝑓 ∘ 𝑔)−1 (𝑥)

(b) (𝑔 −1 ∘ 𝑓 −1 )(𝑥)

O que você conclui? Isso não é mera coincidência. O resultado a seguir formaliza o fato observado
na resolução do exercício anterior.

Teorema 27. Sejam 𝑓 : 𝐴 → 𝐵 e 𝑔 : 𝐴 → 𝐵 duas funções arbitrárias. Então:

(𝑓 ∘ 𝑔)−1 (𝑥) = (𝑔 −1 ∘ 𝑓 −1 )(𝑥)

Demonstração. 1. Seja ℎ(𝑥) = (𝑓 ∘ 𝑔)(𝑥).


2. Considere a composição de ℎ(𝑥) com (𝑔 −1 ∘ 𝑓 −1 )(𝑥):

ℎ ∘ (𝑔 −1 ∘ 𝑓 −1 ) = (𝑓 ∘ 𝑔) ∘ (𝑔 −1 ∘ 𝑓 −1 )

1. Pela propriedade associativa da composição:

𝑓 ∘ (𝑔 ∘ 𝑔 −1 ) ∘ 𝑓 −1 = 𝑓 ∘ 𝐼𝐵 ∘ 𝑓 −1 = 𝑓 ∘ 𝑓 −1 = 𝐼𝐴

3. Como o resultado da composição é a função identidade, temos que (𝑔 −1 ∘ 𝑓 −1 )(𝑥) é a inversa


da função ℎ(𝑥) = (𝑓 ∘ 𝑔)(𝑥). Portanto:

ℎ−1 (𝑥) = (𝑓 ∘ 𝑔)−1 (𝑥) = (𝑔 −1 ∘ 𝑓 −1 )(𝑥)

e a prova está completa.

Definição 56 (Composição de ordem 𝑛). A composição de ordem 𝑛 de uma função 𝑓 consigo mesma,
denotada por 𝑓 (𝑛) , é dada por:
𝑓 (𝑛) = 𝑓 ∘ 𝑓 ∘ · · · ∘ 𝑓
⏟ ⏞
𝑛 vezes

97
O resultado a seguir mostra que a composição de ordem 𝑛 da função inversa é a inversa da com-
posição de ordem 𝑛:

Teorema 28.
(𝑓 −1 )(𝑛) = (𝑓 (𝑛) )−1

Demonstração. Seja ℎ = 𝑓 (𝑛) (composição de ordem 𝑛 de 𝑓 ). Consideremos a composição de ℎ com


(𝑓 −1 )(𝑛) :

ℎ∘(𝑓 −1 )(𝑛) = 𝑓 (𝑛) ∘(𝑓 −1 )(𝑛) = 𝑓 (𝑛−1) ∘𝑓 ∘𝑓 −1 ∘(𝑓 −1 )(𝑛−1) = 𝑓 (𝑛−1) ∘𝐼𝐴 ∘(𝑓 −1 )(𝑛−1) = 𝑓 (𝑛−1) ∘(𝑓 −1 )(𝑛−1)

Repetindo esse processo mais 𝑛 − 1 vezes, chegamos na função identidade. Portanto, a inversa da
composição de ordem 𝑛 é igual à composição das inversas, e a prova está concluída.

Exemplo. Prove ou refute a seguinte identidade:

(𝑔 ∘ 𝑓 )(2) = 𝑔 (2) ∘ 𝑓 (2)

7.4 Considerações finais


Neste capítulo, exploramos o conceito fundamental de funções, suas propriedades e operações bá-
sicas, incluindo composição, inversa, funções identidade e funções de ordem 𝑛. Discutimos também
propriedades importantes como injetividade, sobrejetividade e bijetividade, e demonstramos como
essas propriedades se comportam sob a composição de funções.
Vimos que a composição de funções é uma operação associativa, mas não necessariamente co-
mutativa, e que a inversa de uma composição de funções pode ser expressa como a composição das
inversas na ordem inversa. Também abordamos exemplos concretos que ilustram a aplicação desses
conceitos e reforçam a compreensão da teoria.
Compreender funções e suas propriedades é essencial para o desenvolvimento de habilidades ma-
temáticas em diversas áreas, incluindo álgebra, teoria de conjuntos, combinatória e programação ma-
temática. As ideias apresentadas neste capítulo fornecem a base para tópicos mais avançados, como
relações, grafos e transformações, que serão abordados nos capítulos seguintes.
Em resumo, o estudo das funções não apenas fortalece a compreensão das estruturas matemáti-
cas, mas também oferece ferramentas práticas para modelagem e análise de problemas discretos em
matemática, ciência da computação e áreas correlatas.

98
8 Somatórios
O conceito de somatório é uma ferramenta fundamental da Matemática, utilizada para expressar
de maneira compacta a soma de uma sequência de termos. Em vez de escrevermos explicitamente
∑︀
cada parcela, utilizamos a notação sigma ( ), que nos permite representar grandes somas de forma
clara, organizada e eficiente. Essa notação é especialmente útil quando lidamos com padrões ou
progressões, onde os termos seguem uma regra específica.
Na Matemática Discreta, os somatórios aparecem com frequência no estudo de séries numéricas,
análise de algoritmos, probabilidade, estatística e em diversas áreas da computação. Por exemplo,
ao calcularmos o número total de operações de um algoritmo, muitas vezes precisamos somar uma
sequência de valores que representam o custo em cada etapa. A notação de somatório fornece a
formalização necessária para descrever esses cálculos com precisão.
Além da definição básica, é importante conhecer as principais propriedades algébricas dos so-
matórios, que permitem simplificar expressões e facilitar a resolução de problemas. Propriedades
como linearidade, decomposição e manipulação de índices tornam o trabalho com somatórios mais
sistemático e reduzem cálculos complexos a formas mais tratáveis.
Neste capítulo, estudaremos a notação e as propriedades dos somatórios, explorando exemplos
clássicos, como a soma dos primeiros números naturais e a soma de progressões aritméticas e geomé-
tricas. Também veremos como os somatórios se relacionam com outras ferramentas matemáticas já
apresentadas, estabelecendo um elo entre estruturas discretas e métodos de cálculo mais avançados.

8.1 Representando somatórios


Para iniciar, suponha que desejamos somar todas as potências de 2, iniciando em 21 e terminando
em 210 . A maneira explícita de escrever essa soma é:

21 + 22 + 23 + 24 + . . . + 210

É possível expressar esse somatório como:

10
∑︁
2𝑘
𝑘=1

Na verdade, um somatório em sua forma geral é definido como:


𝑛
∑︁
𝑓 (𝑘)
𝑘=1

em que 𝑓 (𝑘) é uma função arbitrária de 𝑘. Também é possível utilizar um predicado para expressar
a regra de cada termo do somatório:

99
∑︁
𝑓 (𝑘)
𝑘∈𝐴 / 𝑃 (𝑘)

onde o conjunto 𝐴 é o conjunto dos naturais (N), o predicado 𝑃 (𝑘) denota que 𝑘 é um número
primo e a função 𝑓 (𝑘) = 𝑘1 (inverso de 𝑘). Esse somatório corresponde a:

1 1 1 1 1 1
+ + + + + + ...
2 3 5 7 11 13
A seguir apresentamos uma lista de somatórios básicos que já demonstramos durante a aula sobre
indução matemática:

1. 𝑛
∑︁
1 = 1 + 1 + 1 + ... + 1 = 𝑛
𝑘=1

2. 𝑛
∑︁ 𝑛(𝑛 + 1)
𝑘= (já provamos por indução)
𝑘=1
2

3. 𝑛
∑︁ 𝑛(𝑛 + 1)(2𝑛 + 1)
𝑘2 = (já provamos por indução)
𝑘=1
6

4. 𝑛 [︂ ]︂2
∑︁ 𝑛(𝑛 + 1)
3
𝑘 = (iremos provar por indução a seguir)
𝑘=1
2

5.
𝑛−1
∑︁
2𝑘 = 2𝑛 − 1 (já provamos por indução)
𝑘=0

Para relembrar como podemos provar que esses somatórios são válidos, iremos demonstrar a
validade do item (4) por indução matemática.
Devemos iniciar com a base. Seja 𝑃 (𝑛) a afirmação a seguir:
𝑛 )︂2
𝑛2 (𝑛 + 1)2
(︂
∑︁
3 𝑛(𝑛 + 1)
𝑃 (𝑛) : 𝑘 = =
𝑘=1
2 4

Base:
1
∑︁ 12 (1 + 1)2 4
𝑃 (1) : 𝑘 3 = 13 = 1, e = = 1.
𝑘=1
4 4

Logo, 𝑃 (1) é verdadeira.

Passo de indução: Suponha que 𝑃 (𝑛) seja válida para um 𝑛 arbitrário, isto é:

100
𝑛
∑︁ 𝑛2 (𝑛 + 1)2
𝑘3 = .
𝑘=1
4

Devemos mostrar que 𝑃 (𝑛 + 1) também é válida.

𝑛+1
(︃ 𝑛 )︃
∑︁ ∑︁
3 3
𝑘 = 𝑘 + (𝑛 + 1)3
𝑘=1 𝑘=1

Invocando a hipótese de indução:

𝑛+1
∑︁ 𝑛2 (𝑛 + 1)2
𝑘3 = + (𝑛 + 1)3 .
𝑘=1
4

Colocando o denominador comum:

𝑛+1
∑︁ 𝑛2 (𝑛 + 1)2 + 4(𝑛 + 1)3
𝑘3 = .
𝑘=1
4
2
Fatorando (𝑛 + 1) :

𝑛+1 (︀ )︀
∑︁ (𝑛 + 1)2 𝑛2 + 4𝑛 + 4
3
𝑘 = .
𝑘=1
4

𝑛+1
∑︁ (𝑛 + 1)2 (𝑛 + 2)2
3
𝑘 = .
𝑘=1
4

Ou seja:

𝑛+1 (︂ )︂2
∑︁
3 (𝑛 + 1)(𝑛 + 2)
𝑘 = .
𝑘=1
2

Esta é precisamente a definição de 𝑃 (𝑛 + 1).

Conclusão: Portanto, pelo princípio da indução matemática, 𝑃 (𝑛) é válida para todo 𝑛 ∈ N. Note
que a prova por indução nos permite mostrar que a igualdade apresentada é válida para todo 𝑛, porém
não nos permite resolver o somatório, isto é, partir da notação de somatório e chegar a uma fórmula
fechada em função de 𝑛. Para isso, devemos utilizar propriedades algébricas que simplifiquem os
somatórios.

8.2 Propriedades de somatórios


A seguir veremos diversas propriedades úteis na manipulação e resolução de somatórios.

101
1) Substituição de variáveis

Seja o seguinte somatório:


𝑛
∑︁
2𝑘
𝑘=1

Definindo 𝑖 = 𝑘 − 1, temos que 𝑘 = 𝑖 + 1. Se 𝑘 inicia em 1, 𝑖 deve iniciar em 0. Para o limite superior,


vale o mesmo: se 𝑘 vai até 𝑛, então 𝑖 vai até 𝑛 − 1. Dessa forma, podemos expressar o somatório
como:
𝑛−1
∑︁
2𝑖+1
𝑖=0

2) Distributiva

Para toda constante 𝑐: (︃ )︃


∑︁ ∑︁
𝑐𝑓 (𝑘) = 𝑐 𝑓 (𝑘)
𝑘∈𝐴 𝑘∈𝐴

Em outras palavras, é possível mover as constantes para fora do somatório colocando-as em evidência.

3) Associativa

Somatórios de somas são iguais a somas de somatórios:


∑︁ (︀ )︀ ∑︁ ∑︁
𝑓 (𝑘) + 𝑔(𝑘) = 𝑓 (𝑘) + 𝑔(𝑘)
𝑘∈𝐴 𝑘∈𝐴 𝑘∈𝐴

4) Decomposição de domínio

Sejam 𝐴1 e 𝐴2 uma partição de 𝐴. Então:


[︃ ]︃ [︃ ]︃
∑︁ ∑︁ ∑︁
𝑓 (𝑘) = 𝑓 (𝑘) + 𝑓 (𝑘)
𝑘∈𝐴 𝑘∈𝐴1 𝑘∈𝐴2

Ou seja, podemos decompor o somatório em dois somatórios menores, desde que cada valor de índice
apareça apenas em um dos subconjuntos.
Por exemplo: se 𝐴 é o conjunto dos números naturais, 𝐴1 o conjunto dos pares e 𝐴2 o conjunto
dos ímpares, então todo índice em 𝐴1 não está em 𝐴2 .

5) Comutatividade

Se 𝑝(·) é uma permutação do domínio 𝐴, então:


∑︁ ∑︁
𝑓 (𝑘) = 𝑓 (𝑝(𝑘))
𝑘∈𝐴 𝑘∈𝐴

102
Ou seja, podemos embaralhar os termos de um somatório que o valor final não se altera.

6) Somas telescópicas

Considere uma sequência de números reais 𝑥1 , 𝑥2 , 𝑥3 , . . . , 𝑥𝑛 , 𝑥𝑛+1 . Então, a identidade a seguir


é válida: 𝑛
∑︁
(𝑥𝑘+1 − 𝑥𝑘 ) = 𝑥𝑛+1 − 𝑥1
𝑘=1

Ou seja, o valor do somatório das diferenças é igual à diferença entre o último elemento e o primeiro.

Prova:

(a) Pela propriedade associativa (3), temos:


𝑛
∑︁ 𝑛
∑︁ 𝑛
∑︁
𝑆= (𝑥𝑘+1 − 𝑥𝑘 ) = 𝑥𝑘+1 − 𝑥𝑘
𝑘=1 𝑘=1 𝑘=1

(b) Pela substituição de variáveis (1), temos:

𝑛+1
∑︁ 𝑛
∑︁
𝑆= 𝑥𝑖 − 𝑥𝑘
𝑖=2 𝑘=1

(c) Removendo o último termo do primeiro somatório e o primeiro termo do segundo, obtemos:
(︃ 𝑛 )︃ (︃ 𝑛
)︃
∑︁ ∑︁
𝑆= 𝑥𝑖 + 𝑥𝑛+1 − 𝑥1 + 𝑥𝑘 = 𝑥𝑛+1 − 𝑥1
𝑖=2 𝑘=2

Portanto, a prova está concluída.


𝑛
∑︁
Exemplo. Calcule 𝑘 utilizando soma telescópica.
𝑘=1
Primeiramente, note que:
(𝑘 + 1)2 = 𝑘 2 + 2𝑘 + 1

o que implica em:


(𝑘 + 1)2 − 𝑘 2 = 2𝑘 + 1

Assim, temos:
𝑛
∑︁ 𝑛
]︀ ∑︁
(𝑘 + 1)2 − 𝑘 2 =
[︀
(2𝑘 + 1).
𝑘=1 𝑘=1

Porém, o lado esquerdo é uma soma telescópica. Logo:


𝑛
∑︁
(𝑘 + 1)2 − 𝑘 2 = (𝑛 + 1)2 − 1.
[︀ ]︀
𝑘=1

103
Portanto: 𝑛
∑︁
(𝑛 + 1)2 − 1 = (2𝑘 + 1).
𝑘=1

Aplicando a propriedade associativa, obtemos:


𝑛
∑︁ 𝑛
∑︁
2
(𝑛 + 1) − 1 = 2 𝑘+ 1.
𝑘=1 𝑘=1

Ou seja:
𝑛
∑︁
2
(𝑛 + 1) − 1 = 2 𝑘 + 𝑛.
𝑘=1

Isolando o somatório desejado, temos:


𝑛
∑︁
2 𝑘 = (𝑛 + 1)2 − 1 − 𝑛 = 𝑛2 + 𝑛.
𝑘=1

Finalmente, dividindo por 2:


𝑛
∑︁ 𝑛(𝑛 + 1)
𝑘= .
𝑘=1
2
𝑛
∑︁
Exemplo. Calcule 𝑘 2 utilizando somas telescópicas.
𝑘=1

Primeiramente, note que:


(𝑘 + 1)3 = 𝑘 3 + 3𝑘 2 + 3𝑘 + 1,

de modo que:
(𝑘 + 1)3 − 𝑘 3 = 3𝑘 2 + 3𝑘 + 1.

Aplicando o somatório em ambos os lados, temos uma soma telescópica do lado esquerdo:
𝑛
∑︁ 𝑛
∑︁
3 3 3
[︀ ]︀ (︀ 2 )︀
(𝑘 + 1) − 𝑘 = (𝑛 + 1) − 1 = 3𝑘 + 3𝑘 + 1 .
𝑘=1 𝑘=1

Assim: 𝑛 𝑛 𝑛
∑︁ ∑︁ ∑︁
3 2
(𝑛 + 1) − 1 = 3 𝑘 +3 𝑘+ 1.
𝑘=1 𝑘=1 𝑘=1

Logo, podemos escrever:


𝑛 ∑︀𝑛 ∑︀𝑛
∑︁
2 (𝑛 + 1)3 − 1 − 3 𝑘=1 𝑘− 𝑘=1 1
𝑘 = .
𝑘=1
3

Sabemos que:
𝑛 𝑛
∑︁ ∑︁ 𝑛(𝑛 + 1)
1=𝑛 e 𝑘= .
𝑘=1 𝑘=1
2

104
Substituindo:
𝑛 3𝑛(𝑛+1)
∑︁
2 (𝑛 + 1)3 − 1 − 2
−𝑛
𝑘 = .
𝑘=1
3

Expandindo e simplificando o numerador:

(𝑛 + 1)3 − 1 = 𝑛3 + 3𝑛2 + 3𝑛,

portanto:
𝑛 3𝑛2 +3𝑛
∑︁
2 𝑛3 + 3𝑛2 + 3𝑛 − 2
−𝑛
𝑘 = .
𝑘=1
3

Reduzindo os termos: 𝑛
∑︁ 2𝑛3 + 3𝑛2 + 𝑛
𝑘2 = .
𝑘=1
6

Colocando 𝑛 em evidência: 𝑛
∑︁ 𝑛(2𝑛2 + 3𝑛 + 1)
2
𝑘 = .
𝑘=1
6

Finalmente, reescrevendo como produto:


𝑛
∑︁ 𝑛(𝑛 + 1)(2𝑛 + 1)
𝑘2 = .
𝑘=1
6

Portanto, o somatório está resolvido.

Exemplo. Calcule o somatório


𝑛−1
∑︁
2𝑘
𝑘=0

utilizando somas telescópicas.

Note que
2𝑘 + 1 = 2𝑘 · 2,

o que implica
2𝑘 + 1 = 2𝑘 + 2𝑘,

e, portanto,
2𝑘 = 2𝑘 + 1 − 2𝑘.

O somatório em questão fica definido por

𝑛−1
∑︁
(2𝑘 + 1 − 2𝑘).
𝑘=0

105
Pela definição de somas telescópicas, temos:

𝑛−1
∑︁
(2𝑘 + 1 − 2𝑘) = 2𝑛 − 20 = 2𝑛 − 1.
𝑘=0

Exemplo. Calcular o somatório


𝑛
∑︁
𝑆= 𝑘 2𝑘−1
𝑘=1

utilizando somas telescópicas.

Primeiramente, note que


2𝑘 = 2 · 2𝑘−1 = 2𝑘−1 + 2𝑘−1 ,

o que implica que o somatório pode ser reescrito como:

2𝑘−1 = 2𝑘 − 2𝑘−1 .

Assim,
𝑛
∑︁ 𝑛
∑︁ 𝑛
∑︁
𝑘 𝑘−1 𝑘
𝑆= 𝑘(2 − 2 )= 𝑘2 − 𝑘 2𝑘−1 .
𝑘=1 𝑘=1 𝑘=1

Aplicando uma substituição de variáveis no segundo somatório com 𝑖 = 𝑘 − 1, ou seja, 𝑘 = 𝑖 + 1:

𝑛
∑︁ 𝑛−1
∑︁ 𝑛−1
∑︁ 𝑛−1
∑︁
𝑘 2𝑘−1 = (𝑖 + 1)2𝑖 = 𝑖 2𝑖 + 2𝑖 .
𝑘=1 𝑖=0 𝑖=0 𝑖=0

Portanto,
𝑛
∑︁ 𝑛−1
∑︁ 𝑛−1
∑︁
𝑘 𝑖
𝑆= 𝑘2 − 𝑖2 − 2𝑖 .
𝑘=1 𝑖=0 𝑖=0

Note que a diferença entre os dois primeiros somatórios é apenas o 𝑛-ésimo termo:

𝑛−1
∑︁
𝑛
𝑆 = 𝑛2 − 2𝑖 .
𝑖=0

O segundo somatório já foi resolvido no exercício anterior, o que nos leva a:

𝑆 = 𝑛 2𝑛 − (2𝑛 − 1) = 2𝑛 (𝑛 − 1) + 1.

Exemplo. Calcule o somatório dos 𝑛 primeiros termos de uma P.A. com termo inicial 𝑎0 e razão 𝑟,
dado por:
𝑛−1
∑︁
𝑆= (𝑎0 + 𝑘𝑟).
𝑘=0

106
Aplicando a distributiva, temos:

𝑛−1 𝑛−1
∑︁ ∑︁ (𝑛 − 1)𝑛
𝑆= 𝑎0 + 𝑘𝑟 = 𝑛𝑎0 + 𝑟 .
𝑘=0 𝑘=0
2

Podemos reescrever como:


2𝑎0 + (𝑛 − 1)𝑟
𝑆= 𝑛.
2
Como o 𝑛-ésimo termo da P.A. é dado por 𝑎𝑛 = 𝑎0 + (𝑛 − 1)𝑟, podemos reescrever 𝑆 como:

𝑛(𝑎0 + 𝑎𝑛 )
𝑆= .
2

Exemplo. Calcule o somatório


𝑛
∑︁
𝑆= 𝑏𝑘 .
𝑘=0

Observe que
𝑏𝑘+1 − 𝑏𝑘 = 𝑏𝑘 (𝑏 − 1),

o que implica, para um número real 𝑏 ̸= 0, 1,

𝑏𝑘+1 − 𝑏𝑘
𝑏𝑘 = .
𝑏−1

Utilize essa propriedade para escrever o somatório como uma soma telescópica.

Exercício: Calcule o somatório dos 𝑛 primeiros termos de uma P.G. com termo inicial 𝑎 e razão 𝑟,
dado por:
𝑛−1
∑︁
𝑆= 𝑎𝑟𝑘 .
𝑘=0

Exemplo. Calcule o somatório


𝑛
∑︁ 1
𝑆= .
𝑘=1
𝑘(𝑘 + 1)

Observe que
1 1 1
= − .
𝑘(𝑘 + 1) 𝑘 𝑘+1
Portanto, o somatório pode ser calculado utilizando a soma telescópica:
𝑛 (︂ )︂
∑︁ 1 1 1 𝑛
𝑆= − =1− = .
𝑘=1
𝑘 𝑘+1 𝑛+1 𝑛+1

107
8.3 Considerações Finais
Neste capítulo, exploramos os conceitos fundamentais relacionados a somatórios, apresentando
técnicas e propriedades que facilitam o cálculo de séries finitas e infinitas. Abordamos desde soma-
tórios simples envolvendo progressões aritméticas e geométricas até somatórios mais complexos que
podem ser resolvidos utilizando a técnica de soma telescópica.
Observou-se que, apesar da aparente complexidade de algumas expressões, a aplicação sistemá-
tica das propriedades dos somatórios, juntamente com manipulações algébricas adequadas, permite
simplificações significativas. Ressaltamos também a importância da notação sigma, que fornece uma
forma concisa e organizada de representar somatórios, sendo amplamente utilizada em Matemática
Discreta, Probabilidade, Algoritmos e Análise de Complexidade.
Por fim, os exercícios propostos ao longo do capítulo visam consolidar a compreensão das técni-
cas apresentadas, desenvolvendo a habilidade de identificar padrões, aplicar propriedades e resolver
somatórios de forma eficiente. O domínio dessas ferramentas é essencial para o estudo de tópicos
subsequentes em Matemática Discreta, como recorrências, combinatória e análise de algoritmos.

108
9 Sequências e relações de recorrência
Sequências desempenham um papel fundamental em Matemática Discreta, servindo como uma
ferramenta essencial para modelar e analisar padrões, contagens e processos discretos. Uma sequência
é, de maneira geral, uma lista ordenada de números ou objetos, em que cada elemento é identificado
por sua posição na lista. Compreender o comportamento de sequências permite aos estudantes explo-
rar propriedades numéricas, desenvolver raciocínio lógico e preparar o terreno para tópicos avançados,
como combinatória, análise de algoritmos e teoria dos grafos.
As relações de recorrência são equações que definem os termos de uma sequência com base em
seus valores anteriores. Elas surgem naturalmente em muitos problemas discretos, como contagem
de caminhos, crescimento de populações discretas, análise de algoritmos recursivos e geração de
números combinatórios. Resolver uma relação de recorrência consiste em encontrar uma expressão
explícita para o 𝑛-ésimo termo da sequência, permitindo previsões e análises sem a necessidade de
calcular todos os termos anteriores.
O estudo de sequências e recorrências também está intimamente ligado à identificação de padrões
e à formulação de generalizações. Por meio de exemplos como progressões aritméticas, progressões
geométricas e sequências mais complexas, os alunos aprendem a aplicar técnicas algébricas e mé-
todos de indução matemática para deduzir fórmulas gerais. Além disso, o domínio de recorrências
lineares com coeficientes constantes é uma ferramenta poderosa, amplamente utilizada na resolução
de problemas combinatórios e na análise de desempenho de algoritmos recursivos.
Este capítulo tem como objetivo apresentar conceitos fundamentais, técnicas de resolução e apli-
cações de sequências e relações de recorrência, oferecendo uma base sólida para o estudo de tópicos
avançados em Matemática Discreta. Exercícios e exemplos práticos ilustram como essas ferramentas
podem ser aplicadas em diferentes contextos, incentivando o desenvolvimento do raciocínio lógico e
da habilidade de modelar problemas discretos de forma eficiente.

9.1 Recorrências
Recorrências são sequências matemáticas que obedecem a uma lei de formação, ou seja, o pró-
ximo elemento da série é uma função de um ou mais elementos anteriores. Existem diversas recorrên-
cias que surgem naturalmente na matemática e outras ciências exatas como a física e a computação.
Um dos exemplos mais conhecidos de recorrência é a sequência de Fibonacci, em que dados os dois
primeiros termos iguais a 1, cada novo termo é computado pela soma dos 2 termos anteriores. Um
problema bastante relevante no estudo de recorrências consiste em resolver analiticamente uma recor-
rência. Isso significa encontrar uma fórmula fechada para calcular o n-ésimo termo da sequência sem
a necessidade de gerar todos os n - 1 termos anteriores. O objetivo desta aula consiste em apresen-
tar uma introdução as recorrências lineares homogêneas de primeira, segunda e terceira ordens, bem
como técnicas algébricas de como resolvê-las analiticamente.

Definição 57 (Recorrência). Uma recorrência é uma regra que nos permite calcular um termo qual-

109
quer de uma sequência em função de termos anteriores.

O objetivo aqui consiste em estudar sequências numéricas que possuem uma lei de formação. Por
exemplo, considere a sequência 𝑆 a seguir:

𝑆 = (5, 10, 15, 20, 25, 30, . . .)

Quem é o próximo elemento?


Existem casos em que, mesmo sem conhecer a lei de formação, tendemos a inferi-la de maneira
intuitiva. Esse tipo de análise empírica pode nos enganar. Por exemplo, suponha a sequência 𝑆 ′ :

𝑆 ′ = (1, 3, 5, . . .)

Quem é o próximo termo? Seria o número 7? Parece que sim. Mas e se a lei de formação oculta fosse
dada por:
𝑛3 𝑛2 𝑛
𝑇𝑛 = − + + .
6 2 3
Note que:
13 12 1 1 1 1
𝑇1 = − + + = − + + = 1,
6 2 3 6 2 3
23 22 2 8 2 4 8
𝑇2 = − + + = − + 2 + = − + = 3,
6 2 3 6 3 3 3
33 32 3 27 9 9 9
𝑇3 = − + + = − + + 1 = − + + 1 = 5,
6 2 3 6 2 2 2
43 42 4 64 4 32 4 28 24
𝑇4 = − + + =− +8+ =− +8+ =− + = 6.
6 2 3 6 3 3 3 3 3
Veja que o quarto termo da sequência deveria ser 6 e não 7. Portanto, em nossos estudos, dese-
jamos aplicar um formalismo matemático e não simplesmente usar a intuição. Essa lei de formação
está na forma fechada, pois basta plugarmos o valor de 𝑛 para obtermos o 𝑛-ésimo elemento da
sequência.
Porém, em diversos problemas, a lei de formação aparece na forma recursiva, como:

𝑇𝑛+1 = 2𝑇𝑛 + 1, 𝑇1 = 3.

Note que os quatro primeiros termos da sequência são:

3, 7, 15, 31, . . .

Uma possível desvantagem da forma recursiva é que, para gerar o 𝑛-ésimo termo da sequência,
temos que calcular os 𝑛 − 1 termos anteriores.
Nossos objetos de estudo são as sequências numéricas com lei de formação na forma recursiva.

110
Dizemos que resolver uma recorrência consiste em gerar a forma fechada a partir da forma recur-
siva.
Uma observação interessante é que uma mesma lei de formação pode ser utilizada para gerar mais
de uma sequência. Por exemplo, seja a lei:

𝑇𝑛+1 = 𝑇𝑛 + 2.

Ela pode ser utilizada para gerar todos os números ímpares, se 𝑇1 = 1, ou todos os números pares, se
𝑇1 = 0. Portanto, os termos iniciais possuem um papel muito importante.

Definição 58 (Progressão Aritmética (P.A.)). Uma progressão aritmética é uma recorrência em que:

𝑇𝑛+1 = 𝑇𝑛 + 𝑟, 𝑇1 = 𝑎,

onde 𝑎 é o primeiro elemento da sequência e 𝑟 é a razão. Sendo assim, uma P.A. é da forma:

𝑆 = (𝑎, 𝑎 + 𝑟, 𝑎 + 2𝑟, 𝑎 + 3𝑟, . . . , 𝑎 + (𝑛 − 1)𝑟, . . .).

Definição 59 (Progressão Geométrica (P.G.)). Uma progressão geométrica é uma recorrência em


que:
𝑇𝑛+1 = 𝑞𝑇𝑛 , 𝑇1 = 𝑎,

onde 𝑎 é o primeiro elemento da sequência e 𝑞 é a razão. Sendo assim, uma P.G. é da forma:

𝑆 = (𝑎, 𝑎𝑞, 𝑎𝑞 2 , 𝑎𝑞 3 , . . . , 𝑎𝑞 𝑛−1 , . . .).

A seguir, veremos uma interessante aplicação de recorrências: o problema da Torre de Hanói.

9.2 O Problema da torre de Hanói


Imagine que temos três hastes (A, B e C) e inicialmente 𝑛 discos de tamanhos distintos empilhados
na haste A, de modo que discos maiores não podem ser colocados acima de discos menores.

O objetivo consiste em mover todos os discos para uma outra haste, obedecendo apenas duas
regras:

111
1. Podemos mover apenas um disco por vez;

2. Não pode haver um disco menor embaixo de um disco maior.

Vejamos o que ocorre para diferentes valores de 𝑛 (número de discos):

• Para 𝑛 = 1, basta um movimento:


Move A → B

• Para 𝑛 = 2, são necessários 3 movimentos:

Move A → B
Move A → C
Move B → C

• Para 𝑛 = 3, são necessários 7 movimentos:

Move A → B
Move A → C
Move B → C
Move A → B
Move C → A
Move C → B
Move A → B

Utilizando uma abordagem recursiva, note que são 3 movimentos para os dois menores discos,
1 movimento para o maior e mais 3 movimentos para os dois menores.

• Para 𝑛 = 4, são necessários 15 movimentos: utilizando a abordagem recursiva, temos 7 movi-


mentos para os 3 menores discos, 1 movimento para o maior e mais 7 movimentos para os 3
menores, o que totaliza:
7 + 1 + 7 = 15.

• Para 𝑛 = 5, teremos:
15 + 1 + 15 = 31 movimentos.

A essa altura, deve estar claro que temos a seguinte estrutura recursiva:

• Para mover os 𝑛 − 1 discos menores: 𝑇𝑛−1 movimentos;

• Para mover o maior disco: 1 movimento;

• Para mover de volta os 𝑛 − 1 discos menores: 𝑇𝑛−1 movimentos.

112
Assim, a recorrência fica definida como:

𝑇𝑛 = 2𝑇𝑛−1 + 1, 𝑇1 = 1.

Note que com essa lei de formação produzimos a seguinte sequência:

(1, 3, 7, 15, 31, . . .).

Porém, se quisermos descobrir o número de movimentos para 𝑛 = 100, devemos calcular todos
os termos da sequência de 2 até 100.
Como resolver essa recorrência, ou seja, obter uma fórmula fechada? Vamos expandir a recorrên-
cia:

𝑇1 = 1
𝑇2 = 2𝑇1 + 1
𝑇3 = 2𝑇2 + 1
𝑇4 = 2𝑇3 + 1
𝑇5 = 2𝑇4 + 1
𝑇6 = 2𝑇5 + 1
..
.
𝑇𝑛−2 = 2𝑇𝑛−3 + 1
𝑇𝑛−1 = 2𝑇𝑛−2 + 1
𝑇𝑛 = 2𝑇𝑛−1 + 1
A ideia consiste em somar tudo do lado esquerdo e tudo do lado direito e utilizar a igualdade para
chegar em uma expressão fechada. Porém, gostaríamos que a soma fosse telescópica, para simplificar
os cálculos. Partindo de baixo para cima, note que para o termo 𝑇𝑛−1 ser cancelado, a penúltima
equação precisa ser multiplicada por 2. Para que o termo 𝑇𝑛−2 seja cancelado, a antepenúltima equa-

113
ção precisa ser multiplicada por 22 . E assim sucessivamente, o que nos leva ao seguinte conjunto de
equações:

2𝑛−1 𝑇1 = 2𝑛−1
2𝑛−2 𝑇2 = 2𝑛−1 𝑇1 + 2𝑛−2
2𝑛−3 𝑇3 = 2𝑛−2 𝑇2 + 2𝑛−3
2𝑛−4 𝑇4 = 2𝑛−3 𝑇3 + 2𝑛−4
2𝑛−5 𝑇5 = 2𝑛−4 𝑇4 + 2𝑛−5
2𝑛−6 𝑇6 = 2𝑛−5 𝑇5 + 2𝑛−6
..
.
22 𝑇𝑛−2 = 23 𝑇𝑛−3 + 22
2𝑇𝑛−1 = 22 𝑇𝑛−2 + 2
𝑇𝑛 = 2𝑇𝑛−1 + 1
Somando todas as linhas, temos uma soma telescópica, pois os mesmos termos aparecem do lado
esquerdo e direito das igualdades, o que resulta em:

𝑇𝑛 = 2𝑛−1 + 2𝑛−2 + 2𝑛−3 + 2𝑛−4 + · · · + 22 + 21 + 20 .

Esse somatório pode ser escrito como:

𝑛−1
∑︁
𝑇𝑛 = 2𝑘 = 2𝑛 − 1,
𝑘=0

como já vimos nas aulas anteriores. Portanto, essa é a fórmula fechada para a recorrência da Torre de
Hanói. Testando alguns elementos, temos exatamente a mesma sequência obtida anteriormente:

(1, 3, 7, 15, 31, . . .).

Exemplo. Encontre a fórmula fechada para a seguinte recorrência:

𝑥𝑛 = 3𝑥𝑛−1 + 5, 𝑥1 = 2

Note que os quatro primeiros termos da sequência são:

2, 11, 38, 119, . . .

Iremos adotar a mesma estratégia anterior de expandir a recorrência:

114
𝑥1 = 2
𝑥2 = 3𝑥1 + 5
𝑥3 = 3𝑥2 + 5
𝑥4 = 3𝑥3 + 5
𝑥5 = 3𝑥4 + 5
𝑥6 = 3𝑥5 + 5
..
.
𝑥𝑛−2 = 3𝑥𝑛−3 + 5
𝑥𝑛−1 = 3𝑥𝑛−2 + 5
𝑥𝑛 = 3𝑥𝑛−1 + 5
De baixo para cima, vamos multiplicar por potências de 3 para tornar a soma telescópica:

3𝑛−1 𝑥1 = 2 · 3𝑛−1
3𝑛−2 𝑥2 = 3𝑛−1 𝑥1 + 5 · 3𝑛−2
3𝑛−3 𝑥3 = 3𝑛−2 𝑥2 + 5 · 3𝑛−3
3𝑛−4 𝑥4 = 3𝑛−3 𝑥3 + 5 · 3𝑛−4
3𝑛−5 𝑥5 = 3𝑛−4 𝑥4 + 5 · 3𝑛−5
3𝑛−6 𝑥6 = 3𝑛−5 𝑥5 + 5 · 3𝑛−6
..
.
32 𝑥𝑛−2 = 33 𝑥𝑛−3 + 5 · 32
3𝑥𝑛−1 = 32 𝑥𝑛−2 + 5 · 3
𝑥𝑛 = 3𝑥𝑛−1 + 5
Agora, temos uma soma telescópica. Ao somar todos os lados esquerdos e igualar com todos os
lados direitos, obtemos:

𝑥𝑛 = 2 · 3 𝑛−1 + 5 3𝑛−2 + 3𝑛−3 + 3𝑛−4 + · · · + 32 + 31 + 30


(︀ )︀

ou, equivalentemente,

𝑛−2
∑︁
𝑛−1
𝑥𝑛 = 2 · 3 +5 3𝑘 . (*)
𝑘=0

Note que o somatório representa a soma dos 𝑛 − 1 primeiros termos de uma PG cujo termo inicial
é 1 e a razão é 3. Pela fórmula já provada em aulas anteriores:

𝑞𝑚 − 1
𝑆𝑚 = ,
𝑞−1

115
temos, para 𝑚 = 𝑛 − 1, 𝑞 = 3:

3𝑛−1 − 1 3𝑛−1 − 1
𝑆𝑛−1 = = .
3−1 2
Voltando à equação (*), temos:

3𝑛−1 − 1
𝑥𝑛 = 2 · 3 𝑛−1 + 5 · .
2
Após alguma álgebra, obtemos:

3 𝑛+1 − 5
𝑥𝑛 = .
2

Vamos testar a fórmula fechada com os quatro primeiros termos da sequência:

𝑥1 = 12 (32 − 5) = 12 (9 − 5) = 2,
𝑥2 = 12 (33 − 5) = 12 (27 − 5) = 11,
𝑥3 = 12 (34 − 5) = 12 (81 − 5) = 38,
𝑥4 = 12 (35 − 5) = 12 (243 − 5) = 119.
Portanto, a fórmula fechada está correta. A seguir, veremos uma metodologia simples para a
resolução de recorrências lineares de primeira ordem.

9.3 Recorrências de primeira ordem


A forma geral de uma recorrência de primeira ordem é:

𝑥𝑛+1 = 𝑎𝑥𝑛 + 𝑓 (𝑛),

onde 𝑎 é uma constante arbitrária e 𝑓 (𝑛) é uma função de 𝑛.

Exemplo: Resolva a recorrência de primeira ordem

𝑥𝑛+1 = 2𝑥𝑛 + 3𝑛 , 𝑥1 = 1.

Vejamos quais são os quatro primeiros termos da recorrência:

𝑥1 = 1,
𝑥2 = 2 · 1 + 3 = 5,
𝑥3 = 2 · 5 + 9 = 19,
𝑥4 = 2 · 19 + 27 = 65.

116
Passo 1: Dividir tudo por 2 𝑛+1 :

𝑥𝑛+1 2𝑥𝑛 3𝑛
= + .
2 𝑛+1 2𝑛+1 2 𝑛+1

Ou seja, (︂ )︂𝑛
𝑥𝑛+1 𝑥𝑛 1 3
𝑛+1
= 𝑛+
2 2 2 2

Passo 2: Definir uma sequência auxiliar 𝑦𝑛 :

𝑥𝑛
𝑦𝑛 = .
2𝑛

Assim, a recorrência fica: (︂ )︂𝑛


1 3
𝑦𝑛+1 = 𝑦𝑛 +
2 2
Ou, de forma equivalente, via soma telescópica:
(︂ )︂𝑛
1 3
𝑦𝑛+1 − 𝑦𝑛 =
2 2

Note que, ao aplicar um somatório de 1 até 𝑛 − 1 em ambos os lados, temos os seguintes termos:
(︂ )︂1
1 3
𝑦2 − 𝑦1 = ,
2 2
(︂ )︂2
1 3
𝑦3 − 𝑦2 = ,
2 2
..
.
(︂ )︂𝑛−1
1 3
𝑦𝑛 − 𝑦𝑛−1 =
2 2

De modo que, ao somar tudo, o resultado será:


[︃(︂ )︂ (︂ )︂ (︂ )︂𝑛−1 ]︃
2
1 3 3 3
𝑦𝑛 − 𝑦1 = + + ··· +
2 2 2 2

3
Note que o termo entre colchetes é a soma dos 𝑛 − 1 primeiros termos de uma P.G. de razão 2
e
termo inicial 32 . Aplicando a fórmula da soma de uma P.G., chegamos em:
⎡ (︁(︀ )︀𝑛−1 )︁ ⎤
3 3
1 ⎣2 2
−1
𝑦𝑛 − 𝑦1 = 3

2 2
−1

117
Simplificando a expressão, temos:
(︃(︂ )︂ )︃ (︂ )︂
𝑛−1 𝑛
3 3 3 3
𝑦𝑛 − 𝑦1 = −1 = −
2 2 2 2

𝑥𝑛 𝑥1 1
Como 𝑦𝑛 = 𝑛
, temos que 𝑦1 = = o que nos leva a:
2 2 2
(︂ )︂𝑛
𝑥𝑛 1 3 3
𝑛
− = −
2 2 2 2

Mas note que isso equivale a: (︂ )︂𝑛


𝑥𝑛 3
= −1
2𝑛 2
o que finalmente nos leva a:

𝑥𝑛 = 3𝑛 − 2𝑛 .

Vamos testar a fórmula fechada para os 4 primeiros termos:

𝑥1 = 3 − 2 = 1 (92)
𝑥2 = 9 − 4 = 5 (93)
𝑥3 = 27 − 8 = 19 (94)
𝑥4 = 81 − 16 = 65 (95)

o que mostra que temos a mesma sequência produzida pela recorrência inicial.

9.4 Recorrências lineares homogêneas de segunda ordem


A forma geral de uma recorrência linear (todos os 𝑥’s aparecem linearmente) homogênea (pois
o resultado é igual a zero) de segunda ordem (usamos dois valores passados para calcular o atual) é
dada por:
𝑎𝑥𝑛+2 + 𝑏𝑥𝑛+1 + 𝑐𝑥𝑛 = 0.

Note que a solução trivial é


𝑥𝑛 = 0, ∀𝑛.

Porém, em geral, esta não é de grande valia.

Também é possível reescrever a recorrência anterior como:

𝑏 𝑐
𝑥𝑛+2 = − 𝑥𝑛+1 − 𝑥𝑛 .
𝑎 𝑎

118
Muitas recorrências que modelam fenômenos da natureza podem ser expressas por esse padrão.
O exemplo mais famoso é a sequência de Fibonacci, dada por:

𝑥𝑛+2 − 𝑥𝑛+1 − 𝑥𝑛 = 0.

Veremos mais detalhes dessa recorrência mais adiante.

Exemplo. Resolva a recorrência a seguir:

𝑥𝑛+2 − 5𝑥𝑛+1 + 6𝑥𝑛 = 0, com 𝑥1 = 5, 𝑥2 = 13.

Colocando na forma recursiva, temos:

𝑥𝑛+2 = 5𝑥𝑛+1 − 6𝑥𝑛 .

Calculando os quatro primeiros termos da sequência, obtemos:

(5, 13, 35, 97, . . .).

Note que podemos decompor a sequência em duas partes:

𝑥𝑛+2 − 3𝑥𝑛+1 − 2(𝑥𝑛+1 − 3𝑥𝑛 ) = 0,

de modo a ser possível criar as sequências auxiliares:



⎨𝑦
𝑛+1 = 𝑥𝑛+2 − 3𝑥𝑛+1 ,
(*)
𝑛+1 − 3𝑥𝑛 ,
⎩𝑦 = 𝑥
𝑛

que estão relacionadas da seguinte forma:

𝑦𝑛+1 − 2𝑦𝑛 = 0,

ou seja,
𝑦𝑛+1 = 2𝑦𝑛 .

Note que a expressão define uma P.G. em que o primeiro termo é

𝑦1 = 𝑥2 − 3𝑥1 = 13 − 15 = −2,

e a razão é 𝑞 = 2. Logo, podemos calcular o 𝑛-ésimo termo da sequência como:

𝑦𝑛 = 𝑦1 · 𝑞 𝑛−1 = (−2) 2 𝑛−1 = −2𝑛

119
Mas de (*) sabemos que:
𝑥𝑛+1 − 3𝑥𝑛 = −2𝑛 ,

ou seja, temos uma recorrência de primeira ordem dada por:

𝑥𝑛+1 = 3𝑥𝑛 − 2𝑛 .

Utilizando o método apresentado na seção anterior, temos que 𝑎 = 3, o que nos leva a:
(︂ )︂𝑛
𝑥𝑛+1 𝑥𝑛 1 2
𝑛+1
− 𝑛 =−
3 3 3 3

Definindo
𝑥𝑛
𝑧𝑛 = ,
3𝑛
podemos escrever: (︂ )︂𝑛
1 2
𝑧𝑛+1 − 𝑧𝑛 = −
3 3
Ao aplicar somatório para 𝑛 variando de 1 até 𝑛 − 1 em ambos os lados, temos uma soma teles-
cópica, uma vez que:
(︂ )︂1 (︂ )︂2 (︂ )︂𝑛−1
1 2 1 2 1 2
𝑧2 − 𝑧1 = − , 𝑧3 − 𝑧2 = − , , ..., 𝑧𝑛 − 𝑧𝑛−1 =− , ,
3 3 3 3 3 3

o que nos permite escrever:


𝑛−1 (︂ )︂𝑘
1 ∑︁ 2
𝑧𝑛 − 𝑧1 = −
3 𝑘=1 3

O somatório denota a soma dos 𝑛 − 1 primeiros termos de uma P.G. com primeiro termo igual a
2
3
e razão igual a 23 . Aplicando a fórmula da soma da P.G., temos:
[︃ (︀ )︀𝑛−1 ]︃ (︂ )︂
2 𝑛
1 2 3 − 1 2 2
𝑧𝑛 − 𝑧1 = − 2 = −
3 3 3 −1 3 3

Mas sabemos que


𝑥𝑛 𝑥1 5
𝑧𝑛 = , 𝑧1 = = .
3𝑛 3 3
o que nos leva a: (︂ )︂𝑛
2
𝑧𝑛 = +1
3
𝑥𝑛
Substituindo 𝑧𝑛 = 3𝑛
, temos: (︂ )︂𝑛
𝑥𝑛 2
= +1
3𝑛 3
o que nos leva finalmente a:
𝑥𝑛 = 2𝑛 + 3𝑛 .

120
Calculando os 4 primeiros termos da sequência, temos:

𝑥1 = 2 + 3 = 5,
𝑥2 = 4 + 9 = 13,
𝑥3 = 8 + 27 = 35,
𝑥4 = 16 + 81 = 97,
...

o que mostra que a fórmula fechada está correta. Note que a recorrência original era dada por

𝑥𝑛+2 − 5𝑥𝑛+1 + 6𝑥𝑛 = 0

e as raízes reais da equação do segundo grau

𝑥2 − 5𝑥 + 6 = 0

são justamente 2 e 3 (que são as bases das duas funções componentes da recorrência: 2𝑛 e 3𝑛 ). Isso
não é mera coincidência. O resultado que veremos a seguir mostra essa relação entre recorrências
lineares homogêneas de segunda ordem e equações do segundo grau.

Lema: Sejam 𝑝 e 𝑞 números reais. Uma relação de recorrência da forma

𝑥𝑘 = 𝑝𝑥𝑘−1 + 𝑞𝑥𝑘−2

é satisfeita pela sequência 1, 𝑡, 𝑡2 , 𝑡3 , . . . , 𝑡𝑛 , . . ., ou seja, para todo 𝑘 > 1, 𝑡𝑘 = 𝑝𝑡𝑘−1 + 𝑞𝑡𝑘−2 se


somente se 𝑡 satisfaz a equação quadrática

𝑡2 − 𝑝𝑡 − 𝑞 = 0.

Teorema 29. Seja uma recorrência linear homogênea de segunda ordem dada por

𝑎𝑥𝑛+2 + 𝑏𝑥𝑛+1 + 𝑐𝑥𝑛 = 0,

que também pode ser expressa na forma

𝑏 𝑐
𝑥𝑛+2 = − 𝑥𝑛+1 − 𝑥𝑛 = 𝑝𝑥𝑛+1 + 𝑞𝑥𝑛 .
𝑎 𝑎

Associemos a ela a sua equação característica, dada por:

𝑎𝑥2 + 𝑏𝑥 + 𝑐 = 0.

Sejam 𝑟 e 𝑠 as duas raízes da equação característica. Então:

121
i. Se 𝑟 ̸= 𝑠, então
𝑥𝑛 = 𝛼𝑟𝑛 + 𝛽𝑠𝑛 , com 𝛼, 𝛽 constantes.

ii. Se 𝑟 = 𝑠, então
𝑥𝑛 = (𝛼𝑛 + 𝛽)𝑟𝑛 ,

em que 𝛼𝑛 + 𝛽 é um polinômio de grau 1 em 𝑛.

No caso (i), as constantes 𝛼, 𝛽 são definidas a partir dos termos iniciais da sequência:

𝑛=0: 𝛼 + 𝛽 = 𝑥0 ,
𝑛=1: 𝛼𝑟 + 𝛽𝑠 = 𝑥1 ,
𝑛=2: 𝛼𝑟2 + 𝛽𝑠2 = 𝑥2 ,
..
.

Basta escolher duas equações, pois temos apenas duas variáveis.

No caso (ii), as constantes são obtidas de outra forma, pois em 99% dos casos o sistema de
equações anterior (caso i) não possui solução. Veremos um exemplo a seguir de como tratar esse caso
particular.

Prova: (por indução)


Base: (OK)
𝑃 (0) : 𝑥0 = 𝛼 + 𝛽

Pela definição anterior, (OK).


𝑃 (1) : 𝑥1 = 𝛼𝑟 + 𝛽𝑠

Passo de indução: Para 𝑘 arbitrário, 𝑃 (𝑘) → 𝑃 (𝑘 + 1).

Sejam os predicados 𝑃 (𝑘) e 𝑃 (𝑘 + 1) definidos por:

𝑃 (𝑘) : 𝑥𝑘 = 𝛼𝑟𝑘 + 𝛽𝑠𝑘

𝑃 (𝑘 + 1) : 𝑥𝑘+1 = 𝛼𝑟𝑘+1 + 𝛽𝑠𝑘+1

Pela definição de recorrência linear homogênea de segunda ordem, temos:

𝑥𝑘+1 = 𝑝𝑥𝑘 + 𝑞𝑥𝑘−1 , 𝑝, 𝑞 ∈ R.

Utilizando a hipótese de indução:

𝑥𝑘+1 = 𝑝(𝛼𝑟𝑘 + 𝛽𝑠𝑘 ) + 𝑞(𝛼𝑟𝑘−1 + 𝛽𝑠𝑘−1 ).

122
Aplicando a distributiva, temos:

𝑥𝑘+1 = 𝑝𝛼𝑟𝑘 + 𝑝𝛽𝑠𝑘 + 𝑞𝛼𝑟𝑘−1 + 𝑞𝛽𝑠 𝑘−1 .

Agrupando os termos, chegamos em:

𝑥𝑘+1 = 𝛼(𝑝𝑟𝑘 + 𝑞𝑟𝑘−1 ) + 𝛽(𝑝𝑠𝑘 + 𝑞𝑠 𝑘−1 ).

Como 𝑟 e 𝑠 são raízes da equação característica, elas satisfazem a relação de recorrência (Lema).
Portanto, podemos concluir que:

𝑥𝑘+1 = 𝛼𝑟𝑘+1 + 𝛽𝑠 𝑘+1 ,

e a prova está concluída.

Teorema 30. Seja uma equação do segundo grau

𝑎𝑥2 + 𝑏𝑥 + 𝑐 = 0,

com 𝑎, 𝑏, 𝑐 ∈ R arbitrários. Então, as soluções 𝑥1 e 𝑥2 são dadas por:


√ √
−𝑏 − 𝑏2 − 4𝑎𝑐 −𝑏 + 𝑏2 − 4𝑎𝑐
𝑥1 = , 𝑥2 = .
2𝑎 2𝑎

Prova:

1. Partindo da equação do segundo grau

𝑎𝑥2 + 𝑏𝑥 + 𝑐 = 0,

podemos dividir tudo por 𝑎 e isolar os termos em 𝑥, chegando a:

𝑏 𝑐
𝑥2 + 𝑥 = − .
𝑎 𝑎

𝑏2
2. Note que podemos completar o quadrado, adicionando em ambos os lados:
4𝑎2

𝑏 𝑏2 𝑏2 𝑐
𝑥2 + 𝑥 + 2 = 2 − .
𝑎 4𝑎 4𝑎 𝑎

3. Simplificando a expressão acima, chegamos em:


)︂2
𝑏2 − 4𝑎𝑐
(︂
𝑏
𝑥+ = .
2𝑎 4𝑎2

123
4. Aplicando a raiz quadrada em ambos os lados, temos:

𝑏 𝑏2 − 4𝑎𝑐
𝑥+ =± .
2𝑎 2𝑎

5. Isolando 𝑥, chegamos finalmente a:



−𝑏 ± 𝑏2 − 4𝑎𝑐
𝑥= .
2𝑎

9.5 A sequência de Fibonacci


Uma das primeiras aplicações da sequência de Fibonacci foi no estudo de populações de coelhos.
A ideia era modelar o número de indivíduos ao longo dos meses. O raciocínio é simples: a cada mês,
cada casal adulto de coelhos gera um casal de filhotes. Denotemos por 𝑐 um casal de filhotes e por 𝐶
um casal de adultos. De um mês para o outro, um casal de filhotes passa a ser um casal de adultos.
Suponha que iniciemos com um casal de filhotes:

𝑐 → 𝐶 → 𝐶𝑐 → 𝐶𝐶𝑐 → 𝐶𝐶𝐶𝑐𝑐 → 𝐶𝐶𝐶𝐶𝐶𝑐𝑐𝑐 → 𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝑐𝑐𝑐𝑐𝑐 → . . .

Em termos numéricos:

1 → 1 → 2 → 3 → 5 → 8 → 13 → . . .

A pergunta natural é: quantos casais existirão no 𝑛-ésimo mês?

A recorrência é bastante intuitiva. Sua expressão matemática é dada por:

𝐹𝑛+2 = 𝐹𝑛+1 + 𝐹𝑛 , com 𝐹1 = 1 e 𝐹2 = 1.

Na forma canônica, temos:


𝐹𝑛+2 − 𝐹𝑛+1 − 𝐹𝑛 = 0,

de modo que a equação característica é dada por:

𝑥2 − 𝑥 − 1 = 0.

Denotando por Φ e Ψ as raízes da equação, temos:


√ √
1+ 5 1− 5
Φ= , Ψ= .
2 2

Pelo teorema, sabemos que:

𝐹𝑛 = 𝐴Φ𝑛 + 𝐵Ψ𝑛 , com 𝐴, 𝐵 constantes.

124
A partir das condições iniciais, temos que:

𝑛 = 1 ⇒ 𝐴Φ + 𝐵Ψ = 1.

Para facilitar os cálculos, note que 𝐹2 = 𝐹1 + 𝐹0 , o que implica em

𝐹0 = 𝐹2 − 𝐹1 = 1 − 1 = 0.

Assim,
𝑛 = 0 ⇒ 𝐴 + 𝐵 = 0.

Dessa forma, temos que 𝐴 e 𝐵 são soluções do seguinte sistema linear de equações:

⎨𝐴 + 𝐵 = 0 (*)
⎩𝐴Φ + 𝐵Ψ = 1 (**)

De (*) temos que 𝐴 = −𝐵. Substituindo em (**):

𝐴Φ − 𝐴Ψ = 1 ⇒ 𝐴(Φ − Ψ) = 1.

Mas como √ √
1+ 5 1− 5
Φ= , Ψ= ,
2 2
então √ √
1+ 5 1− 5 √
Φ−Ψ= − = 5.
2 2
Logo,
1
𝐴= √ .
5
1
Voltando à equação (*), temos que 𝐵 = − √ .
5
Portanto, a fórmula fechada para a sequência de Fibonacci é:
(︃(︃ √ )︃𝑛 (︃ √ )︃𝑛 )︃
Φ𝑛 − Ψ𝑛 1 1+ 5 1− 5
𝐹𝑛 = √ =√ − .
5 5 2 2

A princípio parece que há algo de errado com a expressão anterior, pois se a sequência de Fi-
bonacci é composta apenas por inteiros, como isso pode acontecer se temos um número irracional
elevado à 𝑛-ésima potência? Porém, ao aplicar a fórmula, vemos que o resultado é exatamente o es-
perado. Faça os cálculos com o auxílio de um computador e verifique que a fórmula fechada é capaz
de gerar toda a sequência de Fibonacci de maneira exata.

125
Exemplo. Seja a sequência (𝑥𝑛 ) tal que 𝑥1 = 0 e, para todo 𝑛 > 0,
√︀
𝑥𝑛+1 = 5𝑥𝑛 + 24𝑥2𝑛 + 1.

Encontre uma fórmula fechada para 𝑥𝑛 e verifique que todo elemento da sequência é um inteiro.

Calculando os 4 primeiros termos da sequência, temos:

𝑥1 = 0, 𝑥2 = 1, 𝑥3 = 5 + 5 = 10, 𝑥4 = 50 + 49 = 99.

Note primeiramente que


√︀
𝑥𝑛+1 − 5𝑥𝑛 = 24𝑥2𝑛 + 1.

Elevando ambos os lados ao quadrado,

(𝑥𝑛+1 − 5𝑥𝑛 )2 = 24𝑥2𝑛 + 1.

Expandindo o quadrado:
𝑥2𝑛+1 − 10𝑥𝑛 𝑥𝑛+1 + 25𝑥2𝑛 = 24𝑥2𝑛 + 1,

o que nos leva a


𝑥2𝑛+1 − 10𝑥𝑛 𝑥𝑛+1 + 𝑥2𝑛 = 1. (I)

Substituindo 𝑛 por 𝑛 + 1, obtemos

𝑥2𝑛+2 − 10𝑥𝑛+1 𝑥𝑛+2 + 𝑥2𝑛+1 = 1. (II)

Fazendo (II)−(I), chegamos em

𝑥2𝑛+2 − 10𝑥𝑛+1 𝑥𝑛+2 + 10𝑥𝑛 𝑥𝑛+1 − 𝑥2𝑛 = 0.

Reescrevendo e colocando em evidência:

(𝑥𝑛+2 − 𝑥𝑛 )(𝑥𝑛+2 + 𝑥𝑛 ) − 10𝑥𝑛+1 (𝑥𝑛+2 − 𝑥𝑛 ) = 0,

ou seja,
(︀ )︀
(𝑥𝑛+2 − 𝑥𝑛 ) 𝑥𝑛+2 + 𝑥𝑛 − 10𝑥𝑛+1 = 0.

Portanto, para cada 𝑛 vale que 𝑥𝑛+2 = 𝑥𝑛 ou

𝑥𝑛+2 + 𝑥𝑛 − 10𝑥𝑛+1 = 0,

isto é,
𝑥𝑛+2 = 10𝑥𝑛+1 − 𝑥𝑛 .

126
Assim, a sequência também satisfaz a recorrência linear homogênea de segunda ordem

𝑥𝑛+2 − 10𝑥𝑛+1 + 𝑥𝑛 = 0,

cuja equação característica é


𝑟2 − 10𝑟 + 1 = 0,

com raízes

𝑟1,2 = 5 ± 2 6.

Dessa forma existe uma fórmula fechada da forma


√ √
𝑥𝑛 = 𝛼(5 + 2 6)𝑛 + 𝛽(5 − 2 6)𝑛 ,

onde 𝛼 e 𝛽 são determinadas pelas condições iniciais 𝑥1 = 0 e 𝑥2 = 1. Podemos calcular o valor de


𝑥0 como:
𝑥2 = 10𝑥1 − 𝑥0 ,

o que nos leva a


1 = 0 − 𝑥0 ⇒ 𝑥0 = −1.

Dessa forma, devemos resolver o sistema linear a seguir:



⎨𝛼 + 𝛽 = −1 (*)
⎩𝛼(5 + 2√6) + 𝛽(5 − 2√6) = 0.

Da equação (*), temos que:


𝛽 = −1 − 𝛼 = −(1 + 𝛼). (**)

Substituindo em (**), obtemos:


√ √
𝛼(5 + 2 6) − (1 + 𝛼)(5 − 2 6) = 0.

Aplicando a distributiva:
√ √ √
𝛼(5 + 2 6) − (5 − 2 6) − 𝛼(5 − 2 6) = 0.

Colocando 𝛼 em evidência:
(︀ √ √ )︀ √
𝛼 (5 + 2 6) − (5 − 2 6) = 5 − 2 6.

Logo: √
5−2 6
𝛼= √ .
4 6

127
Substituindo na expressão de 𝛽:
√ √
5−2 6 5+2 6
𝛽 = −1 − 𝛼 = −1 − √ =− √
4 6 4 6

A solução fechada fica:


√ √
(5 − 2 6) √ 𝑛 (5 + 2 6) √
𝑥𝑛 = √ (5 + 2 6) − √ (5 − 2 6)𝑛
4 6 4 6

Como
√ √
(5 − 2 6)(5 + 2 6) = 25 − 24 = 1,

temos finalmente: √ √
(5 + 2 6) 𝑛−1 − (5 − 2 6) 𝑛−1
𝑥𝑛 = √ .
4 6
Observando a expressão, não é intuitivo que todos os elementos da sequência sejam inteiros, mas
de fato eles são. Calculando os 4 primeiros elementos da sequência, temos:

𝑥1 = 0

𝑥2 = 1


40 6
𝑥3 = √ = 10
4 6

396 6
𝑥4 = √ = 99
4 6

e a sequência está exatamente igual à original.

9.6 Recorrências lineares homogêneas de ordem 𝐾


Os resultados obtidos para recorrências de segunda ordem podem ser generalizados para ordens
superiores. O resultado a seguir fornece uma ferramenta para esse tipo de problema.

Teorema 31. Sejam 𝑐1 , 𝑐2 , . . . , 𝑐𝑘 números reais arbitrários. Suponha que a equação característica
de grau 𝐾
𝑥𝑘 − 𝑐1 𝑥𝑘−1 − 𝑐2 𝑥𝑘−2 − · · · − 𝑐𝑘 = 0

possua 𝐾 raízes distintas 𝑟1 , 𝑟2 , . . . , 𝑟𝑘 .


Então, a sequência {𝑎𝑛 } é solução da recorrência linear homogênea

𝑎𝑛 = 𝑐1 𝑎𝑛−1 + 𝑐2 𝑎𝑛−2 + · · · + 𝑐𝑘 𝑎𝑛−𝑘

128
se, e somente se,

𝑎𝑛 = 𝐴1 𝑟1𝑛 + 𝐴2 𝑟2𝑛 + · · · + 𝐴𝑘 𝑟𝑘𝑛 , para 𝑛 = 0, 1, 2, . . . ,

onde 𝐴1 , 𝐴2 , . . . , 𝐴𝑘 são constantes que dependem dos termos iniciais.

Exemplo. Encontre a solução para a recorrência a seguir:

𝑎𝑛 = 6𝑎𝑛−1 − 11𝑎𝑛−2 + 6𝑎𝑛−3 , 𝑎0 = 2, 𝑎1 = 5, 𝑎2 = 15.

Note que
𝑎3 = 90 − 55 + 12 = 47.

A equação característica é dada por:

𝑥3 − 6𝑥2 + 11𝑥 − 6 = 0

(um polinômio de grau 3).

Como resolver a equação cúbica? Usaremos o resultado a seguir.

Teorema 32 (Teorema das raízes racionais). Seja o polinômio

𝑎𝑛 𝑥𝑛 + 𝑎𝑛−1 𝑥𝑛−1 + · · · + 𝑎0 = 0

com coeficientes inteiros. Se 𝑎0 , 𝑎𝑛 são diferentes de zero, então cada solução racional

𝑝
𝑥=
𝑞

satisfaz:

i. 𝑝 é um fator inteiro de 𝑎0 ;

ii. 𝑞 é um fator inteiro de 𝑎𝑛 .

Se 𝑎𝑛 = 1, as raízes são inteiras.

Vamos listar todas as possíveis raízes inteiras do polinômio em questão. Elas são:

±1, ±2, ±3, ±6.

Agora, vamos testar para ver se encontramos uma das soluções válidas.

𝑥 = −1 ⇒ (−1)3 − 6(−1)2 + 11(−1) − 6 ̸= 0.

129
𝑥=1 ⇒ 1 − 6 + 11 − 6 = 0.

Portanto, 𝑥 = 1 é raiz da equação do terceiro grau. Assim, podemos fatorá-lo para obter um
polinômio de grau 2, que é facilmente solucionado.

9.6.1 Divisão de polinômios

Iniciamos com o polinômio original e o divisor (𝑥 − 1). Queremos dividir:

𝑥3 − 6𝑥2 + 11𝑥 − 6 por 𝑥 − 1.

𝑥2 − 5𝑥 + 6
)︀
𝑥−1 𝑥3 − 6𝑥2 + 11𝑥 − 6
− 𝑥3 + 𝑥2
− 5𝑥2 + 11𝑥
5𝑥2 − 5𝑥
6𝑥 − 6
− 6𝑥 + 6
0
O quociente é:
𝑥2 − 5𝑥 + 6

e o resto é:
0.

Sendo assim, a equação característica fica:

(𝑥 − 1)(𝑥2 − 5𝑥 + 6) = 0

Aplicando a fórmula de Bhaskara, temos como soluções para a equação quadrática:

𝑥1 = 2, 𝑥2 = 3

o que nos leva a:


(𝑥 − 1)(𝑥 − 2)(𝑥 − 3) = 0

Logo, a fórmula fechada é dada por:

𝑎𝑛 = 𝐴 · 1𝑛 + 𝐵 · 2𝑛 + 𝐶 · 3𝑛

130
Para encontrar as constantes 𝐴, 𝐵 e 𝐶, usamos as condições iniciais:

𝑛=0 ⇒ 𝐴+𝐵+𝐶 =2
𝑛=1 ⇒ 𝐴 + 2𝐵 + 3𝐶 = 5
𝑛=2 ⇒ 𝐴 + 4𝐵 + 9𝐶 = 15

Multiplicando a primeira equação por −1 e somando com a segunda e terceira, temos:

𝐴+𝐵+𝐶 =2
𝐵 + 2𝐶 = 3
3𝐵 + 8𝐶 = 13

Multiplicando a segunda equação por −3 e somando com a terceira, temos:

𝐴+𝐵+𝐶 =2
𝐵 + 2𝐶 = 3
2𝐶 = 4

Portanto, as soluções são:


𝐴 = 1, 𝐵 = −1, 𝐶=2

o que resulta em:


𝑎𝑛 = 1𝑛 − 2𝑛 + 2 · 3𝑛

Testando a fórmula fechada, temos os 4 primeiros termos como:

𝑎0 = 2, 𝑎1 = 1 − 2 + 6 = 5, 𝑎2 = 1 − 4 + 18 = 15, 𝑎3 = 1 − 8 + 54 = 47

Exemplo. Resolva a recorrência a seguir:

𝑎𝑛 = 5𝑎𝑛−1 + 2𝑎𝑛−2 − 24𝑎𝑛−3 , com 𝑎0 = 1, 𝑎1 = 1, 𝑎2 = 7

Exemplo. Resolva a recorrência a seguir:

𝑎𝑛 = 4𝑎𝑛−1 + 9𝑎𝑛−2 − 36𝑎𝑛−3 , com 𝑎0 = 2, 𝑎1 = 5, 𝑎2 = 11

Exemplo. Resolva a recorrência a seguir:

𝑎𝑛
𝑎𝑛+1 = , com 𝑎1 = 1
1 + 𝑛𝑎𝑛

Calcule 𝑎2012 .

131
9.7 Considerações finais
O estudo de sequências e relações de recorrência é fundamental em Matemática Discreta, pois
fornece as ferramentas necessárias para modelar e resolver problemas que envolvem processos defi-
nidos de forma recursiva. Desde exemplos simples, como a sequência de Fibonacci, até aplicações
mais complexas em algoritmos e ciência da computação, as recorrências permitem descrever o com-
portamento de sistemas que evoluem ao longo do tempo.
Ao longo deste capítulo, vimos que muitas recorrências podem ser resolvidas de maneira exata,
seja por manipulações algébricas diretas, seja por meio da equação característica associada. Esse
processo não apenas revela fórmulas fechadas, mas também evidencia a importância da análise das
raízes da equação característica, que determinam o formato da solução final.
Além disso, discutimos que o estudo de recorrências não se restringe a sequências lineares de
baixa ordem: os métodos apresentados podem ser generalizados, permitindo lidar com recorrências
de ordem superior e com diferentes tipos de comportamento. Essa generalização amplia o leque de
aplicações, que incluem desde a análise de algoritmos até a modelagem em biologia, economia e
engenharia.
Concluímos, portanto, que compreender sequências e recorrências é essencial não apenas para
o domínio teórico da Matemática Discreta, mas também para sua aplicação prática em diferentes
áreas do conhecimento. Nos capítulos seguintes, veremos como essas ideias se conectam com outros
tópicos fundamentais, como indução matemática, teoria dos grafos e análise de algoritmos.

132
10 Teoria dos grafos: fundamentos básicos e conectividade
A teoria dos grafos é uma das áreas mais importantes da Matemática Discreta e tem aplicações
diretas em diversos campos do conhecimento, como ciência da computação, engenharia, logística,
biologia e redes sociais. De maneira intuitiva, um grafo é uma estrutura matemática usada para
modelar relações entre objetos. Esses objetos são representados por pontos, chamados vértices, e as
relações entre eles são representadas por linhas que conectam pares de vértices, chamadas arestas.
Um grafo pode ser formalmente definido como um par 𝐺 = (𝑉, 𝐸), onde 𝑉 é o conjunto de
vértices e 𝐸 é o conjunto de arestas. Dependendo do contexto, as arestas podem ser orientadas,
dando origem aos grafos direcionados, ou não orientadas, no caso dos grafos simples. Em muitas
situações práticas, as arestas também podem receber valores numéricos, chamados pesos, que podem
representar distâncias, custos, capacidades ou outros atributos relevantes.
O estudo dos grafos envolve a análise de suas propriedades estruturais e topológicas. Conceitos
como grau de um vértice, caminhos, ciclos, conectividade e componentes são fundamentais para
compreender a dinâmica interna de um grafo. Por exemplo, problemas como determinar se todos
os vértices de um grafo estão conectados ou encontrar o caminho mais curto entre dois vértices são
questões centrais tanto na teoria quanto nas aplicações práticas.
Assim, os fundamentos da teoria dos grafos oferecem não apenas um arcabouço conceitual para a
resolução de problemas abstratos, mas também uma linguagem matemática unificada para descrever
fenômenos do mundo real. Ao longo deste capítulo, estudaremos as definições formais, exemplos
clássicos e algumas aplicações básicas, preparando o terreno para tópicos mais avançados, como
árvores, planaridade e algoritmos em grafos.

Definição 60. Uma tupla 𝐺 = (𝑉, 𝐸) é um grafo se:

i) 𝑉 é um conjunto não vazio de vértices;

ii) 𝐸 ⊆ 𝑉 × 𝑉 é uma relação binária qualquer no conjunto de vértices (conjunto de arestas).

A figura a seguir ilustra um grafo arbitrário 𝐺 = (𝑉, 𝐸).

Denotamos por 𝑁 (𝑣) o conjunto vizinhança do vértice 𝑣. Por exemplo:

𝑁 (𝑏) = {𝑎, 𝑐}.

133
Definição 61. O grau de um vértice 𝑣, denotado por 𝑑(𝑣), é o número de vezes que 𝑣 é extremidade
de uma aresta. Em um grafo simples, esse valor coincide com o número de vizinhos de 𝑣.

Exemplo:
𝑑(𝑎) = 1, 𝑑(𝑏) = 2, 𝑑(𝑐) = 4, . . .

Definição 62. A lista de graus de um grafo 𝐺 = (𝑉, 𝐸), denotada por 𝐿𝐺 , é a lista que armazena os
graus dos vértices em ordem crescente.

Exemplo:
𝐿𝐺 = (1, 2, 2, 2, 3, 4).

Teorema 33 (Handshaking Lema). A soma dos graus dos vértices de um grafo 𝐺 = (𝑉, 𝐸) é igual a
duas vezes o número de arestas. Isto é,
𝑛
∑︁
𝑑(𝑣𝑖 ) = 2𝑚,
𝑖=1

onde 𝑛 = |𝑉 | e 𝑚 = |𝐸| denotam, o número de vértices e o número de arestas de 𝐺.

Prova por indução. Definimos a proposição 𝑃 (𝑛) como:


𝑛
∑︁
𝑃 (𝑛) : 𝑑(𝑣𝑖 ) = 2𝑚.
𝑖=1

Base da indução: Para 𝑛 = 1, temos apenas um único vértice. Nesse caso, para todo 𝑚 ≥ 0 (número
de arestas), a soma dos graus será sempre um número par, pois ambas as extremidades das arestas
incidem sobre o mesmo vértice de 𝐺.
Passo de indução: Assuma que 𝑃 (𝑘) é verdadeiro, ou seja,

𝑘
∑︁
𝑃 (𝑘) : 𝑑(𝑣𝑖 ) = 2𝑚.
𝑖=1

134
Ao adicionarmos exatamente um vértice a mais, temos 𝑘 + 1 vértices. Logo:

𝑘+1
∑︁
𝑃 (𝑘 + 1) : 𝑑(𝑣𝑖 ) = 2𝑚′ ,
𝑖=1

onde 𝑚′ é o número de arestas após a adição.


Ao passar de 𝑘 para 𝑘 + 1 vértices, temos duas possibilidades:
a) o grau do novo vértice é zero (nenhuma aresta nova é adicionada, logo 𝑚′ = 𝑚);

b) o grau do novo vértice é maior que zero (novas arestas são adicionadas, cada uma contribuindo
com 2 no somatório dos graus).
Caso a): Nessa situação, o número de arestas permanece inalterado, ou seja, 𝑚 = 𝑚′ . Pela hipótese
de indução e sabendo que o grau do novo vértice é zero, podemos escrever:

𝑘+1
∑︁ 𝑘
∑︁
𝑑(𝑣𝑖 ) = 𝑑(𝑣𝑖 ) + 𝑑(𝑣𝑘+1 ) = 2𝑚 + 0 = 2𝑚′ ,
𝑖=1 𝑖=1

ou seja, 𝑃 (𝑘 + 1) é válida.
Caso b): Nessa situação, temos que o número de arestas 𝑚′ > 𝑚. Seja 𝑚′ = 𝑚 + 𝑎, onde 𝑎 denota o
número de arestas adicionadas ao inserir o novo vértice 𝑣𝑘+1 .
Então, pela hipótese de indução e sabendo que o grau do novo vértice será 𝑎, podemos escrever:

𝑘+1
∑︁ 𝑘
∑︁
𝑑(𝑣𝑖 ) = 𝑑(𝑣𝑖 ) + 𝑑(𝑣𝑘+1 ) + 1 + 1 + 1 + · · · + 1,
𝑖=1 𝑖=1

(sendo 𝑎 vezes o número 1), pois para cada extremidade das arestas no novo vértice, haverá outra
extremidade em algum outro vértice.
Isso implica em:

𝑘+1
∑︁
𝑑(𝑣𝑖 ) = 2𝑚 + 𝑎 + 𝑎 = 2𝑚 + 2𝑎 = 2(𝑚 + 𝑎) = 2𝑚′ ,
𝑖=1

ou seja, 𝑃 (𝑘 + 1) é válida.
Note que mesmo que alguma das arestas inseridas possuam ambas as extremidades no novo vértice
𝑣𝑘+1 , a soma dos graus também será igual a 2𝑚 + 2𝑎, o que continuará validando 𝑃 (𝑘 + 1). Portanto,
a prova está concluída.
Teorema 34. Em um grafo 𝐺 = (𝑉, 𝐸) o número de vértices com grau ímpar é sempre par.
Demonstração. Podemos particionar 𝑉 em dois conjuntos: 𝑃 (grau par) e 𝐼 (grau ímpar). Assim,
𝑛
∑︁ ∑︁ ∑︁
𝑑(𝑣𝑖 ) = 𝑑(𝑣) + 𝑑(𝑢) = 2𝑚
𝑖=1 𝑣∈𝑃 𝑢∈𝐼

135
o que implica em
∑︁ ∑︁
𝑑(𝑢) = 2𝑚 − 𝑑(𝑣).
𝑢∈𝐼 𝑣∈𝑃

Como 2𝑚 é par e a soma de números pares é sempre par, resulta que a soma dos números ímpares
também é par. Para que isso ocorra, temos que ter |𝐼| par (isto é, o número de elementos do conjunto
𝐼 é par).

Exercício: Seja 𝐺 = (𝑉, 𝐸) um grafo básico simples com |𝑉 | = 𝑛 e |𝐸| = 𝑚. Mostre que para que 𝐺
possua 𝑡 vértices de grau 𝑘 e o restante dos vértices de grau 𝑘+1, então devemos ter 𝑡 = (𝑘+1)𝑛−2𝑚.

Definição 63. Um grafo 𝐺 é 𝑘-regular ⇐⇒ ∀𝑣 ∈ 𝑉 (𝑑(𝑣) = 𝑘), ou seja, 𝐿𝐺 = (𝑘, 𝑘, 𝑘, 𝑘, . . . , 𝑘).

Definição 64. Um grafo bipartido é um grafo 𝐺 = (𝑉, 𝐸) tal que 𝑉 = 𝑋 ∪ 𝑌 com 𝑋 ∩ 𝑌 = ∅, de


modo que
(︀ )︀
∀𝑒 ∈ 𝐸 𝑒 = (𝑎, 𝑏) ⇒ 𝑎 ∈ 𝑋 ∧ 𝑏 ∈ 𝑌 .

𝑛2
Exercício: Seja 𝐺 = (𝑉, 𝐸) um grafo bipartido com 𝑛 vértices. Mostre que 𝐺 tem no máximo
4
arestas.

Definição 65. Um grafo completo 𝐺 é um grafo de 𝑛 vértices, denotado por 𝐾𝑛 , se cada vértice é
ligado a todos os demais, ou seja, se

𝐿𝐺 = (𝑛 − 1, 𝑛 − 1, 𝑛 − 1, . . . , 𝑛 − 1).

O número de arestas do grafo 𝐾𝑛 é dado por


(︂ )︂
𝑛 𝑛! 𝑛(𝑛 − 1)
= =
2 2!(𝑛 − 2)! 2

136
Definição 66. Seja 𝐺 = (𝑉, 𝐸) um grafo simples. O grafo complementar de 𝐺, denotado por 𝐺, é o
grafo definido sobre o mesmo conjunto de vértices 𝑉 , tal que:

𝐸(𝐺) = {{𝑢, 𝑣} ∈ 𝑉 × 𝑉 | 𝑢 ̸= 𝑣 e {𝑢, 𝑣} ∈


/ 𝐸(𝐺)}.

Ou seja, em 𝐺 dois vértices são adjacentes se, e somente se, não forem adjacentes em 𝐺.

Relação entre grafo, complementar e grafo completo.

Seja 𝐺 = (𝑉, 𝐸) um grafo com 𝑛 vértices. O grafo completo 𝐾𝑛 contém todas as possíveis arestas
entre os 𝑛 vértices. O grafo complementar 𝐺 é formado exatamente pelas arestas que não pertencem
a 𝐺. Assim, temos a relação fundamental:

𝐺 ∪ 𝐺 = 𝐾𝑛 e 𝐺 ∩ 𝐺 = ∅.

Em outras palavras:

• Toda aresta presente em 𝐺 não aparece em 𝐺, e vice-versa;

• Juntos, 𝐺 e 𝐺 formam o grafo completo 𝐾𝑛 .

Além disso, se 𝑑𝐺 (𝑣) é o grau de um vértice 𝑣 em 𝐺, então o grau de 𝑣 no complementar é dado


por
𝑑𝐺 (𝑣) = 𝑑𝐾𝑛 (𝑣) − 𝑑𝐺 (𝑣),

onde 𝑑𝐾𝑛 (𝑣) denota o grau de 𝑣 no grafo completo. Isso é válido pois em 𝐺 o vértice 𝑣 se conecta
exatamente aos vértices com os quais não possuía aresta em 𝐺.

Exercício: A afirmação a seguir é verdadeira ou falsa? Justifique sua resposta.


Seja 𝐺 um grafo com 𝑛 vértices e 𝐻 seu complemento. Então, para cada vértice 𝑣 temos que
𝑑𝐺 (𝑣) + 𝑑𝐻 (𝑣) = 𝑛 − 1, ou seja, o grau de um vértice 𝑣 qualquer em 𝐺 somado ao grau de seu
correspondente vértice em 𝐻 é sempre 𝑛 − 1.
Suponha ainda que 𝐺 tenha exatamente um vértice de grau par. Quantos vértices de grau ímpar
seu complemento 𝐻 tem? Justifique a resposta.

137
Definição 67 (Subgrafo). Seja 𝐺 = (𝑉, 𝐸) um grafo. Dizemos que 𝐻 = (𝑉 ′ , 𝐸 ′ ) é um subgrafo de
𝐺 se:
𝑉 ′ ⊆ 𝑉 e 𝐸 ′ ⊆ 𝐸,

onde cada aresta de 𝐸 ′ tem ambas as extremidades em 𝑉 ′ .

Em outras palavras, um subgrafo é obtido a partir de 𝐺 escolhendo-se um subconjunto de vértices


e arestas, preservando as incidências originais entre vértices e arestas.

10.1 Passeios, trilhas e caminhos


No estudo de grafos, é fundamental compreender as diferentes formas de percorrer seus vértices
e arestas. Essas noções estão associadas aos conceitos de passeio, trilha e caminho, que descrevem
maneiras distintas de visitar vértices e arestas em um grafo.
Um passeio é uma sequência de vértices e arestas em que cada aresta conecta o vértice atual ao
próximo. Quando restringimos que nenhuma aresta seja repetida, obtemos uma trilha. Já quando
exigimos que também nenhum vértice seja repetido, temos um caminho.
Esses conceitos desempenham um papel central na teoria dos grafos, pois permitem estudar co-
nectividade, ciclos, distâncias e propriedades estruturais que aparecem em diversos contextos, desde
redes de computadores até problemas clássicos como o das pontes de Königsberg.
Considere o multigrafo a seguir.

a) Passeio: não tem restrição alguma quanto a vértices e arestas.

𝑃 = 𝑣1 𝑒1 𝑣2 𝑒1 𝑣1 𝑒1 𝑣2

b) Trilha: não há repetição de arestas.

𝑇 = 𝑣1 𝑒1 𝑣2 𝑒3 𝑣3 𝑒4 𝑣2

Se a trilha é fechada, temos um circuito.

138
c) Caminho: não há repetição de vértices.

𝐶 = 𝑣1 𝑒1 𝑣2 𝑒3 𝑣3 𝑒6 𝑣4 𝑒7 𝑣5

Se o caminho é fechado, temos um ciclo.

Observação:

• O comprimento (ou tamanho) de um caminho, trilha ou passeio é dado pelo número de arestas
percorridas.

• O caminho/trilha/passeio trivial é aquele composto por zero arestas.

10.2 Conectividade em grafos


A conectividade em grafos é um conceito fundamental que descreve o grau de interligação entre
os vértices de um grafo, sendo essencial para entender sua estrutura e funcionalidade. Um grafo é dito
conexo se existe pelo menos um caminho entre qualquer par de vértices, o que garante que nenhuma
parte do grafo está isolada. Em contrapartida, um grafo desconexo possui vértices ou subconjuntos
de vértices que não se comunicam entre si.
No caso de grafos dirigidos, distingue-se entre conectividade forte, quando há um caminho em
ambas as direções entre todos os pares de vértices, e conectividade fraca, quando tal propriedade só
vale se ignorarmos a direção das arestas. A análise da conectividade permite identificar componentes
conectados, avaliar a robustez de redes, detectar pontos de falha crítica (como vértices ou arestas cuja
remoção desconecta o grafo), e tem aplicações em áreas como redes de computadores, sistemas de
transporte, biologia computacional e análise de redes sociais. Para fundamentar diversas propriedades
de grafos é preciso apresentar aspectos relacionados à conectividade. Noções como componentes
conexos e condições para conexidade são cruciais no estudo de tais objetos.

Definição 68. Dois vértices 𝑢 e 𝑣 são conectados se existe um caminho 𝑃𝑢𝑣 .

Definição 69. 𝐺 = (𝑉, 𝐸) é conexo se e somente se existe um caminho entre qualquer par de vértices:

∀𝑢, 𝑣 ∈ 𝑉 (∃ caminho 𝑃𝑢𝑣 )

Definição 70. Seja 𝐺 = (𝑉, 𝐸) um grafo. Um componente conexo de 𝐺 é subgrafo conexo máximo.

Teorema 35. Seja 𝐺 = (𝑉, 𝐸) um grafo conexo. Então,

|𝐸| ≥ |𝑉 | − 1.

Esboço da Prova. 1. Pela contrapositiva, temos: Se |𝐸| < |𝑉 | − 1, então 𝐺 é desconexo.

2. Suponha um grafo 𝐺, com 𝑛 vértices e menos de 𝑛 − 1 arestas.

139
3. Podemos notar que não há como 𝐺 ser conexo, uma vez que sempre haverá um vértice 𝑢 isolado.

Teorema 36. Seja 𝐺 = (𝑉, 𝐸) um grafo. Se


(︂ )︂
|𝑉 | − 1
|𝐸| > ,
2

então 𝐺 é conexo.

Pela contrapositiva, temos que se 𝐺 não é conexo, então


(︂ )︂
|𝑉 | − 1
|𝐸| ≤
2

Esboço da Prova. 1. Suponha um grafo 𝐺 desconexo. Então, existe um par de vértices 𝑢, 𝑣 ∈ 𝑉


para o qual não existe um caminho 𝑃𝑢𝑣 .

2. Sendo assim, deve existir ao menos um vértice 𝑢 isolado, mesmo que todos os outros 𝑛 − 1
vértices sejam totalmente conectados.

3. Suponha que todos os vértices, com exceção de 𝑢, sejam totalmente conectados. Então, o
subgrafo formado por eles define o 𝐾𝑛−1 .

4. O número de arestas em 𝐾𝑛−1 é dado por


(︂ )︂
|𝑉 | − 1
.
2

140
5. Note que, neste caso limite, a inserção de qualquer nova aresta torna 𝐺 conexo.
Portanto, se 𝐺 tem |𝑉 2|−1 + 1 arestas, ele certamente será conexo.
(︀ )︀

Teorema 37. Seja 𝐺 um grafo conexo. Então, 𝐺 é bipartido se, e somente se, todo ciclo de 𝐺 tem
comprimento par.

Demonstração. Devemos provar em duas partes: a ida e a volta.


(Ida): 𝐺 bipartido ⇒ 𝐺 contém apenas ciclos pares.

1. Se 𝐺 é bipartido, então toda aresta é do tipo (𝑋, 𝑌 ), com 𝑋 ∩ 𝑌 = ∅.

2. Se partimos de um vértice em 𝑋, o único modo de retornar a 𝑋 é atravessar duas arestas: uma


de 𝑋 para 𝑌 e outra de 𝑌 para 𝑋.

3. Isso implica que o comprimento de qualquer ciclo será múltiplo de 2, ou seja, par.

(Volta): 𝐺 contém apenas ciclos pares ⇒ 𝐺 é bipartido. Equivalente: 𝐺 não bipartido ⇒ 𝐺 contém
ciclo ímpar.

1. Se 𝐺 não é bipartido, existe ao menos uma aresta do tipo (𝑋, 𝑋) ou (𝑌, 𝑌 ).

2. Isso implica na existência de um triângulo em 𝐺, ou seja, um ciclo de comprimento 3.

3. Logo, se 𝐺 não é bipartido, ele contém um ciclo ímpar.

Portanto, 𝐺 é bipartido se, e somente se, todos os seus ciclos têm comprimento par.

Definição 71. A distância geodésica entre 𝑢 e 𝑣, denotada por 𝑑(𝑢, 𝑣), é o comprimento do menor
caminho entre 𝑢 e 𝑣.

Teorema 38. Seja 𝐺 = (𝑉, 𝐸) um grafo finito e conexo. Denotemos por ecc(𝑣) a excentricidade de
um vértice 𝑣,
ecc(𝑣) = max 𝑑(𝑣, 𝑢),
𝑢∈𝑉

onde 𝑑(·, ·) é a distância geodésica em 𝐺. O raio de 𝐺 é

𝑟(𝐺) = min ecc(𝑣),


𝑣∈𝑉

e o diâmetro de 𝐺 é
𝑑(𝐺) = max ecc(𝑣).
𝑣∈𝑉

Então vale
𝑟(𝐺) ≤ 𝑑(𝐺) ≤ 2 𝑟(𝐺).

141
Demonstração. Primeiro, 𝑟(𝐺) ≤ 𝑑(𝐺) é imediato pela definição: o raio é o menor valor entre as
excentricidades e o diâmetro é o maior, logo o menor não pode ser maior que o maior.
Agora provemos 𝑑(𝐺) ≤ 2 𝑟(𝐺). Seja 𝑐 ∈ 𝑉 um centro de 𝐺, isto é, um vértice cuja excentri-
cidade atinge o mínimo: ecc(𝑐) = 𝑟(𝐺). Para quaisquer vértices 𝑢, 𝑣 ∈ 𝑉 temos, pela desigualdade
triangular em grafos (concatenando um caminho geodésico de 𝑢 a 𝑐 com outro de 𝑐 a 𝑣),

𝑑(𝑢, 𝑣) ≤ 𝑑(𝑢, 𝑐) + 𝑑(𝑐, 𝑣) ≤ ecc(𝑐) + ecc(𝑐) = 2𝑟(𝐺).

Como a desigualdade acima vale para todo par 𝑢, 𝑣, segue que o máximo das distâncias (isto é, o
diâmetro) satisfaz
𝑑(𝐺) = max 𝑑(𝑢, 𝑣) ≤ 2𝑟(𝐺).
𝑢,𝑣∈𝑉

Combinando as duas desigualdades obtemos 𝑟(𝐺) ≤ 𝑑(𝐺) ≤ 2𝑟(𝐺), como queríamos demons-
trar.

Observação. As desigualdades são em geral as melhores possíveis: por exemplo, em um grafo


completo 𝐾𝑛 temos 𝑟 = 𝑑 = 1 (igualdade na primeira desigualdade), e em um caminho 𝑃𝑛 ocorre
𝑑(𝑃𝑛 ) = 2⌊𝑑(𝑃𝑛 )/2⌋ mostrando que a desigualdade superior pode ser quase atingida (mais precisa-
mente, para 𝑃2𝑘+1 tem-se 𝑑 = 2𝑟).

10.3 Considerações finais


Neste capítulo, abordamos os fundamentos básicos da Teoria dos Grafos, com ênfase em conceitos
centrais como vértices, arestas, grau de vértices, grafos regulares, grafos completos, grafos bipartidos
e subgrafos. Também discutimos propriedades estruturais importantes, como o grafo complementar,
conectividade, componentes conexos, ciclos e caminhos, além de apresentar resultados fundamentais
como o Handshaking Lemma e a caracterização de grafos bipartidos por ciclos pares.
A conectividade foi explorada tanto em grafos simples quanto em grafos dirigidos, destacando
os conceitos de conectividade forte e fraca, bem como o papel do raio e do diâmetro na análise da
estrutura do grafo. Teoremas que relacionam o número de arestas à conexidade, assim como critérios
para a existência de subestruturas como ciclos e caminhos, fornecem ferramentas essenciais para
compreender e modelar redes complexas.
O estudo de grafos não é apenas teórico: suas aplicações se estendem a diversas áreas da ciência
e da engenharia, incluindo redes de computadores, sistemas de transporte, análise de redes sociais,
biologia computacional e problemas de otimização. Assim, a compreensão dos conceitos básicos
e das propriedades estruturais dos grafos é fundamental para qualquer abordagem matemática ou
computacional envolvendo relações binárias e interconectividade.
Por fim, os fundamentos apresentados neste capítulo servem como alicerce para estudos mais
avançados em Teoria dos Grafos, incluindo grafos ponderados, fluxos em redes, algoritmos de busca
e otimização, bem como tópicos de conectividade global e análise espectral de grafos. O domínio

142
desses conceitos prepara o leitor para aplicações práticas e para a exploração de propriedades mais
sofisticadas em grafos complexos.

143
11 Teoria dos grafos: o problema do isomorfismo
O problema do isomorfismo em grafos é um dos conceitos fundamentais da Teoria dos Grafos, que
trata da equivalência estrutural entre grafos. Informalmente, dois grafos são considerados isomorfos
se forem estruturalmente idênticos, ou seja, se existe uma correspondência entre seus vértices que
preserva as arestas. Determinar se dois grafos são isomorfos é essencial em diversas áreas da ciência
da computação e da matemática, incluindo química computacional, análise de redes e reconhecimento
de padrões.
Formalmente, dados dois grafos 𝐺1 = (𝑉1 , 𝐸1 ) e 𝐺2 = (𝑉2 , 𝐸2 ), um isomorfismo é uma bijeção
𝑓 : 𝑉1 → 𝑉2 tal que (𝑢, 𝑣) ∈ 𝐸1 se, e somente se, (𝑓 (𝑢), 𝑓 (𝑣)) ∈ 𝐸2 . Se tal função existir, dizemos
que 𝐺1 e 𝐺2 são isomorfos, denotado por 𝐺1 ∼ = 𝐺2 . Caso contrário, os grafos são não isomorfos.
O desafio central do problema é que, embora a definição seja simples, encontrar um isomorfismo, ou
provar sua inexistência, pode ser computacionalmente complexo, especialmente para grafos grandes
ou densamente conectados. A figura a seguir ilustra um par de grafos isomorfos.

O estudo do problema do isomorfismo em grafos também é importante para entender invariantes


de grafos, ou seja, propriedades que se mantêm sob isomorfismos. Exemplos de invariantes incluem
o número de vértices e arestas, os graus dos vértices, a presença de ciclos de determinados com-
primentos e a conectividade do grafo. Esses invariantes são frequentemente usados como critérios
preliminares para eliminar rapidamente pares de grafos que não podem ser isomorfos.
Além do aspecto teórico, o problema possui aplicações práticas significativas. Em química, por
exemplo, moléculas podem ser representadas como grafos, e o isomorfismo permite determinar se
duas moléculas diferentes têm a mesma estrutura química. Em ciência da computação, o isomorfismo
de grafos aparece em algoritmos de detecção de padrões, compressão de dados e otimização de re-
des. Assim, a compreensão dos fundamentos do problema do isomorfismo é crucial para a análise e
modelagem de sistemas complexos representáveis por grafos.

Definição 72. Sejam 𝐺1 = (𝑉1 , 𝐸1 ) e 𝐺2 = (𝑉2 , 𝐸2 ). Dizemos que 𝐺1 e 𝐺2 são isomorfos se:

i) ∃𝑓 : 𝑉1 → 𝑉2 tal que 𝑓 é bijetora (mapeamento 1 para 1);

ii) ∃𝑔 : 𝐸1 → 𝐸2 tal que 𝑔 é bijetora;

144
satisfazendo a seguinte restrição (*):

𝑣1 ∼ 𝑣2 ⇐⇒ 𝑓 (𝑣1 ) ∼ 𝑓 (𝑣2 ), para todo (𝑣1 , 𝑣2 ) ∈ 𝐸1 .

Em termos práticos, 𝐺1 e 𝐺2 são isomorfos se é possível obter 𝐺2 a partir de 𝐺1 com uma trans-
formação que não corta ou religa arestas, mas apenas move seus vértices.

Exercício: Os grafos abaixo são isomorfos? Prove ou refute.

Passo 1: Encontrar mapeamento entre os vértices 𝑓 .

Passo 2: Encontrar mapeamento entre as arestas 𝑔, sujeito à restrição (*):

i) 𝑒1 = (𝑎, 𝑏) → 𝑔(𝑒1 ) deve ser a aresta que une 𝑓 (𝑎) com 𝑓 (𝑏): (𝐴, 𝐶) = 𝑧2 .

145
ii) 𝑒2 = (𝑏, 𝑐) → 𝑔(𝑒2 ) deve ser a aresta que une 𝑓 (𝑏) com 𝑓 (𝑐): (𝐶, 𝐸) = 𝑧3 .

iii) 𝑒3 = (𝑐, 𝑑) → 𝑔(𝑒3 ) deve ser a aresta que une 𝑓 (𝑐) com 𝑓 (𝑑): (𝐶, 𝐸) = 𝑧4 .

iv) 𝑒4 = (𝑑, 𝑒) → 𝑔(𝑒4 ) deve ser a aresta que une 𝑓 (𝑑) com 𝑓 (𝑒): (𝐵, 𝐷) = 𝑧5 .

v) 𝑒5 = (𝑒, 𝑎) → 𝑔(𝑒5 ) deve ser a aresta que une 𝑓 (𝑒) com 𝑓 (𝑎): (𝐷, 𝐴) = 𝑧1 .

Portanto, os grafos 𝐺1 e 𝐺2 são isomorfos.

11.1 Propriedades invariantes


Na determinação de isomorfismo entre grafos, torna-se útil o estudo de propriedades invariantes.
Em outras palavras, ao se obter medidas invariantes a transformações isomórficas, pode-se facilmente
verificar que dois grafos não são isomorfos se tais medidas não forem idênticas. Sejam 𝐺1 = (𝑉1 , 𝐸1 )
e 𝐺2 = (𝑉2 , 𝐸2 ) dois grafos isomorfos. Então, podemos afirmar que:

1. |𝑉1 | = |𝑉2 | (o número de vértices é igual);

2. |𝐸1 | = |𝐸2 | (o número de arestas é igual);

3. 𝜔(𝐺1 ) = 𝜔(𝐺2 ) (mesmo número de componentes conexos);

4. 𝐿𝐺1 = 𝐿𝐺2 (listas de graus são idênticas);

5. Ambos 𝐺1 e 𝐺2 admitem ciclos de comprimento 𝑘, para 𝑘 ≤ 𝑛.

Exemplo. Quais dos pares a seguir são isomorfos? Prove ou refute.

Note que 𝐺1 é isomorfo a 𝐺2 (prove isso, encontrando os mapeamentos 𝑓 e 𝑔). Porém, 𝐻1 não
é isomorfo a 𝐻2 , pois enquanto 𝐻1 admite ciclo de comprimento 3 (contém um triângulo), 𝐻2 não
admite (não contém um triângulo).

Exemplo. Os grafos a seguir são isomorfos ou não? Prove sua resposta.

146
• Ambos possuem o mesmo número de vértices: 8;

• Ambos possuem o mesmo número de arestas: 8;

• Ambos possuem a mesma lista de graus: (3, 3, 3, 3, 4, 4, 4, 4);

• Ambos possuem ciclos de comprimentos 3, 4, 5, 6, 7 e 8.

A princípio, parece que 𝐺 é isomorfo a 𝐻. Porém, isso não é verdade. Note que, apesar de não
ferir nenhuma das propriedades invariantes, não podemos afirmar que os grafos são isomorfos. Na
verdade, os grafos em questão não são isomorfos.
Note que, em 𝐺, todos os vértices de grau 4 possuem como vizinhos exatamente um único outro
vértice de grau 4, enquanto em 𝐻, cada vértice de grau 4 possui exatamente 2 vértices de grau 4
como vizinhos. Isso significa uma ruptura em uma aresta, o que altera a topologia (você consegue
identificar qual aresta foi cortada e religada?).

Teorema 39. Dois grafos são isomorfos se e somente se seus complementares também o forem, ou
seja,
𝐺1 ≡ 𝐺2 ⇐⇒ 𝐺1 ≡ 𝐺2 .

147
Note que, no complementar do primeiro grafo, os vértices de grau 2 são adjacentes, o que não
ocorre no complementar do segundo grafo. Portanto, 𝐺 e 𝐻 não são isomorfos.

Definição 73 (Matriz de adjacências de um grafo). Dado um grafo 𝐺 = (𝑉, 𝐸), com |𝑉 | = 𝑛 e


|𝐸| = 𝑚, sua matriz de adjacências é a matriz quadrada 𝑛 × 𝑛 em que cada elemento 𝐴𝑖,𝑗 é definido
por: ⎧
⎨1, se 𝑗 ∈ 𝑁 (𝑖)
𝐴𝑖,𝑗 =
⎩0, se 𝑗 ∈/ 𝑁 (𝑖)

Propriedades básicas:

i) diag(𝐴) = 0.

ii) 𝐴 é uma matriz binária.

iii) 𝐴𝑇 = 𝐴 (com exceção de grafos direcionados).


∑︁
iv) 𝐴𝑖,𝑗 = 𝑑(𝑣𝑖 ).
𝑗

v) 𝐴 é esparsa.

vi) Requer 𝑂(𝑛2 ) em espaço.

148
Teorema 40. Dois grafos são isomorfos, ou seja, 𝐺1 ≡ 𝐺2 se e somente se, a partir da matriz de
adjacências de 𝐺1, é possível obter a matriz de adjacências de 𝐺2 através de uma sequência de
permutações de linhas e colunas.

Dadas duas matrizes de adjacências 𝐴1 e 𝐴2 , devemos permutar linhas e colunas de 𝐴1 de modo


a torná-la idêntica a 𝐴2 . Porém, essa metodologia apresenta um sério problema. Note que, em termos
de complexidade, o número de permutações totais para as linhas é 𝑛!. O mesmo vale para as colunas,
de forma que a complexidade do algoritmo é da ordem de 𝑂(𝑛!), tornando o método inviável para a
maioria dos grafos.
Atualmente, ainda não se conhecem algoritmos polinomiais para esse problema. Para algumas
classes de grafos, entretanto, o problema é polinomial (como no caso de árvores e grafos planares).

Exercício: Os seis grafos a seguir consistem de três pares de objetos isomorfos. Identifique quais são
os pares de grafos isomorfos.

Exercício: Os dois grafos a seguir são isomorfos ou não? Prove sua resposta.

149
Exercício: Um grafo simples 𝐺 é chamado de autocomplementar se ele for isomorfo ao seu próprio
complemento 𝐺.

a) Quais dos grafos a seguir são autocomplementares?

b) Prove que, se 𝐺 é um grafo autocomplementar com 𝑛 vértices, então

𝑛 = 4𝑡 ou 𝑛 = 4𝑡 + 1

para algum inteiro 𝑡.

Dica: Considere o número total de arestas em 𝐾𝑛 , que é


(︂ )︂
𝑛 𝑛(𝑛 − 1)
= ,
2 2

1 𝑛
(︀ )︀
e use que, se 𝐺 é autocomplementar, então |𝐸(𝐺)| = |𝐸(𝐺)| = 2 2
.

150
11.2 Considerações finais
O problema do isomorfismo em grafos ocupa uma posição singular dentro da teoria dos grafos e
da ciência da computação. Apesar de sua formulação aparentemente simples - verificar se dois gra-
fos são estruturalmente idênticos - o tema envolve desafios conceituais e computacionais de grande
relevância. A inexistência de um algoritmo eficiente de complexidade polinomial para o caso geral
o coloca em uma classe especial de problemas cuja dificuldade teórica ainda não foi completamente
resolvida, o que desperta interesse tanto no campo da matemática discreta quanto na teoria da com-
plexidade.
Ao longo deste capítulo, discutimos definições formais, propriedades invariantes e métodos prá-
ticos que auxiliam na identificação ou na refutação de isomorfismo entre grafos. Observou-se que,
embora tais propriedades invariantes sejam ferramentas poderosas para excluir rapidamente a possi-
bilidade de isomorfismo, elas não garantem uma prova construtiva em todos os casos. Além disso,
destacamos o papel das matrizes de adjacências e das transformações por permutação, ressaltando as
dificuldades associadas à explosão combinatória do número de possibilidades.
Outro aspecto importante é a relevância prática do problema, presente em diversas áreas como
química, biologia, redes de computadores e ciência de dados, nas quais a identificação de estruturas
equivalentes é uma tarefa recorrente. Nessas aplicações, algoritmos heurísticos e métodos especializa-
dos para classes restritas de grafos (como árvores e grafos planares) desempenham papel fundamental.
Em síntese, o estudo do isomorfismo em grafos não apenas aprofunda a compreensão teórica
sobre as estruturas discretas, mas também ilustra os limites entre o que pode ser resolvido de maneira
eficiente e o que ainda permanece como um desafio em aberto. Esse tema serve, portanto, como
ponte entre a teoria dos grafos, a matemática aplicada e a ciência da computação, motivando novas
investigações e soluções criativas.

151
12 Teoria dos grafos: árvores
O estudo de grafos é uma das áreas centrais da matemática discreta, fornecendo ferramentas fun-
damentais para modelar e analisar estruturas de relações entre objetos. Dentro deste contexto, as
árvores constituem uma classe especial de grafos que possuem propriedades únicas e aplicações vari-
adas, tanto teóricas quanto práticas. Diferentemente de grafos gerais, as árvores são conectadas e não
contêm ciclos, o que lhes confere uma estrutura hierárquica natural.
Uma árvore pode ser vista como um modelo abstrato de sistemas hierárquicos, como genealogias,
organizações de arquivos em computadores, redes de transmissão e estruturas de decisão. A ausência
de ciclos garante que entre quaisquer dois vértices da árvore exista um único caminho simples, o que
facilita a análise de caminhos, distâncias e conexões dentro da estrutura.
Além disso, as árvores desempenham um papel crucial em algoritmos clássicos de computação,
como busca em profundidade, busca em largura, construção de árvores geradoras mínimas e otimiza-
ção de redes. O estudo das árvores permite compreender não apenas propriedades combinatórias de
grafos, mas também desenvolver métodos eficientes para manipulação e exploração de dados estrutu-
rados.
Neste capítulo, abordaremos definições fundamentais, propriedades básicas, tipos especiais de
árvores, bem como resultados importantes relacionados à sua contagem e caracterização. Serão apre-
sentados exemplos e exercícios que ilustram a utilidade das árvores em diversos contextos da mate-
mática discreta e da ciência da computação.

Definição 74. Um grafo 𝐺 = (𝑉, 𝐸) é uma árvore se 𝐺 é acíclico e conexo.

Teorema 41. 𝐺 é uma árvore ⇐⇒ existe um único caminho 𝑃𝑢𝑣 entre quaisquer dois vértices
𝑢, 𝑣 ∈ 𝑉 .

Demonstração. 1. (Ida) 𝑝 → 𝑞 = ¬𝑞 → ¬𝑝
Se não existe um único caminho entre quaisquer 𝑢, 𝑣, então 𝐺 não é uma árvore.

(a) Pode existir um par 𝑢, 𝑣 tal que não exista caminho entre eles. Isso implica que 𝐺 é
desconexo, o que implica que 𝐺 não é uma árvore.
(b) Pode existir um par 𝑢, 𝑣 tal que existam mais de um caminho. Porém, neste caso temos a
formação de um ciclo e, portanto, 𝐺 não pode ser uma árvore.

152
2. (Volta) 𝑞 → 𝑝 = ¬𝑝 → ¬𝑞
Se 𝐺 não é uma árvore, então não existe um único caminho entre quaisquer 𝑢, 𝑣.
Para que 𝐺 não seja uma árvore, 𝐺 deve ser desconexo ou conter um ciclo. Note que:

• No primeiro caso, existe um par 𝑢, 𝑣 tal que não há caminho entre eles.
• No segundo caso, existem dois caminhos entre 𝑢 e 𝑣, conforme ilustra a figura.

Definição 75. Uma aresta 𝑒 ∈ 𝐸 é ponte se 𝐺 − 𝑒 é desconexo. Ou seja, a remoção de uma aresta
ponte desconecta o grafo.

Pergunta: como identificar arestas ponte?

Teorema 42. Uma aresta 𝑒 ∈ 𝐸 é ponte ⇐⇒ a aresta não pertence a um ciclo 𝐶.

Demonstração. 1. (Ida) 𝑝 → 𝑞 = ¬𝑞 → ¬𝑝
𝑒 ∈ 𝐶 =⇒ aresta não é ponte.
Como a aresta pertence a um ciclo 𝐶, há dois caminhos entre os vértices 𝑢 e 𝑣.

153
Logo, a remoção da aresta 𝑒 = (𝑢, 𝑣) não impede que o grafo seja conexo, ou seja, 𝐺 − 𝑒 ainda
é conexo. Portanto, 𝑒 não é ponte.

2. (Volta) 𝑞 → 𝑝 = ¬𝑝 → ¬𝑞
Aresta não é ponte =⇒ 𝑒 ∈ 𝐶.
Se a aresta não é ponte, então 𝐺 − 𝑒 ainda é conexo. Se isso ocorre, deve-se ao fato de que
em 𝐺 − 𝑒 ainda existe um caminho entre 𝑢 e 𝑣 que não passa por 𝑒. Logo, em 𝐺 existem dois
caminhos, de modo que a união deles gera um ciclo 𝐶.

Teorema 43. 𝐺 − (𝑉, 𝐸) é uma árvore ⇐⇒ toda aresta é ponte.

Demonstração. 1. (Ida) 𝑝 → 𝑞 = ¬𝑞 → ¬𝑝
Se existe uma aresta que não é ponte, então 𝐺 não é árvore.
A existência de uma aresta não ponte implica na existência de ciclo. A presença de um ciclo 𝐶
faz com que 𝐺 não seja uma árvore.

2. (Volta) 𝑞 → 𝑝 = ¬𝑝 → ¬𝑞
Se 𝐺 não é árvore, então existe uma aresta que não é ponte.
Para que 𝐺 não seja uma árvore, deve existir um ciclo em 𝐺. Logo, todas as arestas pertencentes
ao ciclo não são pontes.

Teorema 44. Seja 𝑇 = (𝑉, 𝐸) uma árvore. Então, 𝑇 + 𝑒, em que 𝑒 é uma aresta que não pertence
ao conjunto 𝐸, contém exatamente um único ciclo.

Demonstração. Como 𝑇 é árvore, 𝑇 é acíclico. Como 𝑇 é árvore, 𝑇 é conexo.


Além disso, sabemos que existe um único caminho entre quaisquer dois vértices 𝑢 e 𝑣. Seja 𝑒 a
aresta (𝑢, 𝑣). Ao adicionar 𝑒 a 𝑇 , haverá exatamente dois caminhos entre 𝑢 e 𝑣, o que significa que
temos um ciclo 𝐶. Portanto, 𝑇 + 𝑒 tem exatamente um ciclo.

Teorema 45. Seja 𝐺 = (𝑉, 𝐸) uma árvore com |𝑉 | = 𝑛. Então, |𝐸| = 𝑛 − 1.

154
Prova por contradição. Assumamos a negação da conclusão: suponha que existe uma árvore 𝑇 =
(𝑉, 𝐸) com 𝑛 vértices, mas que não possui 𝑛 − 1 arestas. Isso significa que o número de arestas de 𝑇
é diferente de 𝑛 − 1.
Existem duas possibilidades:
Caso 1: |𝐸| < 𝑛 − 1
Se um grafo conexo com 𝑛 vértices tem menos de 𝑛 − 1 arestas, então ele não pode ser conexo.

• Lógica: Para conectar 𝑛 vértices, precisamos de pelo menos 𝑛 − 1 arestas. Com menos do que
isso, é impossível que todos os vértices estejam conectados. Por exemplo, com 𝑛 vértices e
𝑛 − 2 arestas, o grafo terá pelo menos duas componentes conexas.

• Contradição: A definição de árvore inclui a propriedade de ser conexa. Se 𝑇 tivesse menos de


𝑛 − 1 arestas, não seria conexa, contradizendo a premissa de que 𝑇 é uma árvore.

Caso 2: |𝐸| > 𝑛 − 1


Se um grafo conexo com 𝑛 vértices tem mais de 𝑛 − 1 arestas, então ele deve conter um ciclo.

• Lógica: Um grafo conexo com 𝑛 vértices e exatamente 𝑛−1 arestas é uma árvore e não contém
ciclos. Adicionar uma aresta a uma árvore cria necessariamente um ciclo, pois cria um caminho
adicional entre dois vértices que já estão conectados.

• Contradição: A definição de árvore inclui a propriedade de ser acíclica. Se 𝑇 tivesse mais de


𝑛 − 1 arestas, conteria pelo menos um ciclo, contradizendo a premissa de que 𝑇 é uma árvore.

Ambas as suposições (menos de 𝑛 − 1 arestas ou mais de 𝑛 − 1 arestas) levam a uma contradição.


Portanto, a única possibilidade restante é que uma árvore com 𝑛 vértices deve ter exatamente 𝑛 − 1
arestas.

Teorema 46. A soma dos graus de uma árvore com 𝑛 vértices não depende da lista de graus, sendo
dada por
∑︁𝑛
𝑑(𝑣𝑖 ) = 2|𝐸| = 2(𝑛 − 1) = 2𝑛 − 2.
𝑖=1

Teorema 47. Toda árvore com mais de um vértice possui ao menos duas folhas (vértices de grau 1).

Prova por contradição. Suponha que exista ao menos um vértice 𝑣 tal que 𝑑(𝑣) = 1.
Caso a): ∄𝑣 ∈ 𝑉 | 𝑑(𝑣) = 1

1. Sabemos que |𝐸| = 𝑛 − 1.


∑︀
2. Logo, 𝑣∈𝑉 𝑑(𝑣) = 2(𝑛 − 1) (pois 𝑇 é árvore).

155
3. Mas, nesse caso, todos os vértices têm 𝑑(𝑣) ≥ 2, ou seja, a soma dos graus deve ser
∑︁
𝑑(𝑣) ≥ 2𝑛 > 2(𝑛 − 1),
𝑣∈𝑉

o que é uma contradição.

Caso b): Existe apenas um vértice 𝑣 tal que 𝑑(𝑣) = 1

1. Como no caso anterior, sabemos que


∑︁
𝑑(𝑣) = 2(𝑛 − 1) (pois 𝑇 é árvore).
𝑣∈𝑉

2. Mas, como há (𝑛 − 1) vértices com 𝑑(𝑣) ≥ 2, a soma dos graus deve ser
∑︁
𝑑(𝑣) ≥ 2(𝑛 − 1) + 1 > 2(𝑛 − 1),
𝑣∈𝑉

o que é uma contradição.

Portanto, sempre haverá ao menos duas folhas em uma árvore.

Teorema 48. Toda árvore 𝑇 é um grafo bipartido.

Demonstração. 1. Escolha um vértice raiz 𝑣.

2. Seja 𝑢 um vértice arbitrário de 𝑇 .

3. Como 𝑇 é uma árvore, existe um único caminho 𝑃𝑢𝑣 .

4. Seja 𝑓 (𝑢) o comprimento do caminho 𝑃𝑢𝑣 e defina

𝑉𝐼 = {𝑢 ∈ 𝑉 | 𝑓 (𝑢) é ímpar}, 𝑉𝑃 = {𝑢 ∈ 𝑉 | 𝑓 (𝑢) é par}.

5. Note que 𝑉𝐼 ∩ 𝑉𝑃 = ∅ e 𝑉𝐼 ∪ 𝑉𝑃 = 𝑉 , de modo que temos uma bipartição.

6. Como 𝑇 não possui ciclos, toda aresta de 𝑇 tem uma extremidade em 𝑉𝐼 e outra em 𝑉𝑃 .

7. Portanto, 𝑇 é bipartido.

Dentre as árvores que podem ser extraídas a partir de um grafo, há um tipo que é, sem dúvidas,
o mais importante: as árvores geradoras. Em resumo, uma árvore geradora representa uma forma
resumida de representar um grafo 𝐺, pois há um e apenas um caminho entre qualquer par de vértices.

156
Definição 76 (Árvore geradora (spanning tree)). Seja 𝐺 = (𝑉, 𝐸) um grafo. Dizemos que 𝑇 =
(𝑉, 𝐸𝑇 ) é uma árvore geradora de 𝐺 se 𝑇 é um subgrafo de 𝐺 que é uma árvore, ou seja, conecta
todos os vértices de 𝐺.

Teorema 49. Seja 𝐺 = (𝑉, 𝐸) um grafo conexo. Uma aresta 𝑒 ∈ 𝐸 é uma ponte se e somente se ela
pertence a toda árvore geradora de 𝐺.

Prova:
A. (ida): 𝑝 → 𝑞 = ¬𝑞 → ¬𝑝
Suponha que exista uma árvore geradora que não contém a aresta 𝑒 → 𝑒 não seja ponte.

1. Seja 𝑇 uma árvore geradora que não contém a aresta 𝑒.

2. Então, 𝑇 também é árvore geradora de 𝐺 − 𝑒.

3. Para quaisquer 𝑢 e 𝑣 arbitrários em 𝑇 , existe um único caminho 𝑃𝑢𝑣 em 𝑇 .

4. Mas esse caminho 𝑃𝑢𝑣 também existe em 𝐺 − 𝑒.

5. Logo, 𝐺 − 𝑒 é conexo.

6. Portanto, 𝑒 não pode ser ponte (sua remoção não desconecta o grafo).

B. (volta): 𝑞 → 𝑝 = ¬𝑝 → ¬𝑞 (prova por contrapositiva)


Se 𝑒 não é ponte, então existe uma árvore geradora 𝑇 que não contém 𝑒.

1. Suponha uma aresta 𝑒 não ponte.

2. Então, 𝐺 − 𝑒 é conexo e existe 𝑇 que é árvore geradora de 𝐺 − 𝑒.

3. Como o conjunto de vértices de 𝐺 é igual ao conjunto de vértices de 𝐺 − 𝑒, 𝑇 é árvore geradora


de 𝐺 também (note que 𝑇 não contém 𝑒).

Como pode ser visto, um grafo 𝐺 admite inúmeras árvores geradoras. A pergunta que surge é:
Quantas árvores geradoras existem em um grafo 𝐺 = (𝑉, 𝐸) de 𝑛 vértices? Para entender a resposta
dessa pergunta, iremos discutir o código de Prüfer.

157
12.1 O código de Prüfer
O Código de Prüfer é uma sequência única de 𝑛 − 2 inteiros que representa uma árvore rotulada
com n vértices. Desenvolvido por Heinz Prüfer em 1918, ele oferece uma forma elegante e biunívoca
de codificar e decodificar árvores, estabelecendo uma conexão direta entre o número de árvores rotu-
ladas em n vértices e as permutações, o que levou à prova do Teorema de Cayley. Essa codificação é
particularmente útil em combinatória e teoria dos grafos, permitindo a enumeração e a geração siste-
mática de árvores, além de ser um excelente exemplo da beleza da correspondência entre diferentes
estruturas matemáticas. Dada uma rotulação dos vértices, é um código que identifica unicamente cada
possível árvore com 𝑛 > 2 vértices. De maneira bem grosseira, é como se fosse o CPF de uma árvore,
cada possível árvore distinta tem o seu próprio código. Foi descoberto que existe uma bijeção entre o
conjunto das árvores de n vértices e o conjunto de sequencias de inteiros de tamanho 𝑛 − 2.

Cada sequencia é composta por 𝑛 − 2 inteiros que podem assumir valores de 1 até 𝑛.

158
Teorema de Cayley: O grafo completo 𝐾𝑛 possui 𝑛 𝑛−2 árvores geradoras.
Ou seja, o número de árvores com 𝑛 vértices é

𝑛 𝑛−2 .

A seguir, iremos apresentar os algoritmos para codificação e decodificação de árvores geradoras.

Algoritmo: Codificação de Prüfer

Entrada: uma árvore 𝑇 com 𝑛 vértices.

1. Rotular cada vértice da árvore com um número inteiro distinto.

2. Identificar a folha de menor rótulo. O vértice 𝑣 incidente a essa folha é único (ou seja, 𝑣 é o pai
da folha de menor rótulo).

3. Adicionar o rótulo de 𝑣 a uma lista 𝑆 e remover a folha da árvore.

4. Repetir os passos 2 e 3 até que reste apenas um único vértice ou uma única aresta.

Algoritmo: Decodificação de Prüfer

Entrada: Código de Prüfer 𝐶 de comprimento 𝑛 − 2.

1. Representar a árvore inicial como o grafo nulo com 𝑛 vértices.

159
2. Definir o conjunto 𝑆 = {1, 2, 3, . . . , 𝑛}.

3. Buscar em 𝑆 o menor inteiro que não está no código 𝐶. Chamaremos esse número de 𝑠min .

4. Adicionar à árvore 𝑇 a aresta formada pelo elemento mais à esquerda de 𝐶 e 𝑠min .

5. Excluir 𝑠min de 𝑆 e o elemento mais à esquerda de 𝐶, formando novos conjuntos 𝑆 e 𝐶.

6. Repetir os passos 3 a 5 até que não existam mais elementos em 𝐶.

7. Por fim, adicione à árvore 𝑇 a aresta correspondente aos dois vértices restantes em 𝑆.

12.2 Considerações finais


As árvores constituem uma classe fundamental de grafos, combinando simplicidade estrutural
com grande aplicabilidade. Sua característica central, ser um grafo conexo e acíclico, permite mode-
lar hierarquias, redes e estruturas de decisão de maneira clara e eficiente. Ao longo deste capítulo,
exploramos propriedades essenciais das árvores, como a unicidade de caminhos entre vértices, a re-
lação entre arestas e ciclos, e a identificação de arestas ponte.

160
Os resultados teóricos apresentados, incluindo o Teorema de Cayley e os algoritmos de codifica-
ção e decodificação de Prüfer, demonstram a riqueza combinatória das árvores e a possibilidade de
enumerar e manipular suas estruturas de forma sistemática. Além disso, as árvores revelam-se ferra-
mentas poderosas na resolução de problemas práticos em ciência da computação, engenharia e redes
de comunicação.
A compreensão das árvores permite não apenas a aplicação direta em algoritmos e estruturas de
dados, mas também serve como base para o estudo de grafos mais complexos. As propriedades das ár-
vores fornecem insights fundamentais sobre conectividade, ciclos e hierarquias, elementos essenciais
em diversas áreas da matemática discreta e suas aplicações.
Em síntese, o estudo das árvores oferece tanto uma sólida base teórica quanto ferramentas práticas,
preparando o leitor para a análise de grafos gerais e para o desenvolvimento de algoritmos eficientes
em estruturas conectadas.

161
13 Teoria dos grafos: grafos Eulerianos e Hamiltonianos
Os grafos constituem um instrumento poderoso para modelar problemas em que a estrutura de
conexões desempenha papel central. Entre as várias classes de problemas relacionados a grafos,
destacam-se aqueles que envolvem a existência de caminhos ou ciclos que percorrem arestas ou vér-
tices de maneira particular. Dois desses conceitos fundamentais são os grafos Eulerianos e Hamilto-
nianos, que receberam esses nomes em homenagem a dois grandes matemáticos: Leonhard Euler e
William Rowan Hamilton.
Um grafo Euleriano está associado à possibilidade de percorrer todas as arestas exatamente uma
vez, retornando ao ponto de partida. Esse conceito tem origem histórica no célebre problema das
pontes de Königsberg, resolvido por Euler no século XVIII, considerado o marco inicial da teoria dos
grafos. Já um grafo Hamiltoniano relaciona-se à existência de um ciclo que percorre todos os vértices
exatamente uma vez, um problema que surge em diferentes contextos de roteamento, logística e
otimização.
Embora ambos tratem de percursos em grafos, os problemas Euleriano e Hamiltoniano apresentam
diferenças marcantes: enquanto a caracterização dos grafos Eulerianos é relativamente simples e
elegante, a determinação de grafos Hamiltonianos é substancialmente mais complexa, envolvendo
desafios computacionais e conexões com a teoria da complexidade.
Neste capítulo, exploraremos as definições formais, teoremas caracterizadores e exemplos clás-
sicos de grafos Eulerianos e Hamiltonianos. Além disso, discutiremos algumas aplicações práticas,
que vão desde problemas de transporte e redes até questões em algoritmos e ciência da computação,
evidenciando a importância desses conceitos na matemática discreta e em áreas afins.

13.1 Grafos Eulerianos


Grafos Eulerianos definem uma classe muito importante de grafos que modelam diversos proble-
mas reais. O estudo de grafos Eulerianos nos remete às origens da Teoria dos Grafos, quando em
1736 Leonard Euler propôs o problema das sete pontes de Könisgberg.

Definição 77 (Trilha de Euler). Uma trilha de Euler é uma trilha que engloba toda aresta de 𝐺, ou
seja, passa exatamente uma única vez em cada aresta. A trilha pode ter origem e destino diferentes.

162
Definição 78 (Tour de Euler / Circuito Euleriano). Um tour de Euler, ou circuito Euleriano, é toda
trilha de Euler fechada.

Definição 79. Um grafo 𝐺 = (𝑉, 𝐸) é Euleriano ⇔ 𝐺 admite um tour de Euler.

Teorema 50 (Euler, 1976). Seja 𝐺 = (𝑉, 𝐸) um grafo conexo. Então, 𝐺 é Euleriano se, e somente
se, satisfaz a seguinte propriedade:

∀𝑣 ∈ 𝑉 (𝑑(𝑣) mod 2 = 0),

ou seja, se o grau de todo vértice é par.

Prova.
(Ida) 𝐺 é Euleriano ⇒ 𝐺 satisfaz a propriedade 𝐸.

1. Se 𝐺 admite um tour de Euler 𝑊 = 𝑠 𝑎 𝑏 𝑐 𝑑 . . . 𝑠, então:

∀𝑣 ∈ 𝑉, 𝑣 aparece em 𝑊 (com repetições), ∀𝑒 ∈ 𝐸, 𝑒 aparece em 𝑊 (exatamente uma vez).

2. Percorra 𝑊 iniciando em 𝑠. Para todo 𝑣 ∈ 𝑉 com 𝑣 ̸= 𝑠, seja 𝑘𝑣 o número de vezes que o


vértice 𝑣 é visitado. A cada visita a 𝑣, entramos por uma aresta (𝑥, 𝑣) e saímos por uma aresta
(𝑣, 𝑦).

Como o tour não termina em 𝑣, segue que:

𝑑(𝑣) = 2𝑘𝑣 ,

o que resulta em um número par.

3. A única exceção é o vértice 𝑠:


𝑑(𝑠) = 2𝑘𝑠 − 2,

que também é par, pois na primeira visita apenas saímos de 𝑠 e na última visita apenas entramos
em 𝑠.

163
(Volta) 𝐺 satisfaz a propriedade 𝐸 ⇒ 𝐺 contém um circuito Euleriano.
A prova dessa afirmação é feita apresentando um algoritmo que, dado um grafo 𝐺 que satisfaz 𝐸,
sempre produz um tour de Euler.

1. Escolha um vértice arbitrário 𝑣 ∈ 𝑉 e inicie um circuito 𝐶.

(a) A cada passo, escolha uma aresta, atravesse-a e apague-a de 𝐺.


(b) Pare apenas ao retornar a 𝑣.

2. Fato: Enquanto não retornamos a 𝑣, não podemos ficar presos (pois todos os graus são pares).
Para todo 𝑢 ∈ 𝑉 − {𝑣}:

• Antes de cada visita a 𝑢, ele tem grau par.


• Durante a visita, ele tem grau ímpar.
• É impossível visitar 𝑢 quando ele tem grau zero (não havendo saída).

3. Se o circuito 𝐶 encontrado contém todas as arestas 𝑒 ∈ 𝐸, então 𝐶 é Euleriano.

4. Caso contrário, um dos vértices visitados ainda possui grau positivo (> 0). Como 𝐺 é conexo
e, ao deletar as arestas de 𝐶, subtraímos 2 dos graus dos vértices em 𝐶, ainda há arestas a serem
percorridas. Além disso, todos os vértices restantes ainda têm grau par.

5. Escolha um vértice 𝑣 ∈ 𝐶 e percorra outro circuito 𝐶 ′ , até retornar ao ponto de partida. Isso é
possível pelo passo 2.

164
6. Assim, temos dois circuitos disjuntos em arestas com ao menos um vértice em comum, que
podem ser combinados em um novo circuito 𝐶. Por exemplo:

𝐶 = 𝑎 → 𝑓 → 𝑑 → 𝑎, 𝐶 ′ = 𝑓 → 𝑒 → 𝑑 → 𝑐 → 𝑓,

então:
𝐶 = 𝑎 → 𝑓 → 𝑒 → 𝑑 → 𝑐 → 𝑓 → 𝑑 → 𝑎.

7. Repita os passos 3 a 6 até não restarem arestas em 𝐺.

Exemplo:

𝐶 = 𝑎 → 𝑓 → 𝑒 → 𝑑 → 𝑐 → 𝑓 → 𝑑 → 𝑎, 𝐶 ′′ = 𝑐 → 𝑏 → 𝑎 → 𝑐,

165
combinando:
𝐶 = 𝑎 → 𝑓 → 𝑒 → 𝑑 → 𝑐 → 𝑏 → 𝑎 → 𝑐 → 𝑓 → 𝑑 → 𝑎.

Ao fim do processo, obtemos um circuito que contém todas as arestas 𝑒 ∈ 𝐸. Esse resultado é
importante, pois nos fornece uma maneira eficiente de decidir se um grafo 𝐺 é Euleriano. Essa decisão
é trivial e pode ser feita em tempo polinomial, bastando verificar se todos os graus dos vértices são
pares.

13.2 Grafos Hamiltonianos


Os grafos Hamiltonianos constituem uma importante classe de grafos estudados na teoria dos
grafos. Um grafo é dito Hamiltoniano quando admite um ciclo Hamiltoniano, ou seja, um ciclo
simples que percorre todos os vértices do grafo exatamente uma vez, retornando ao vértice inicial. A
ideia de visitar todos os vértices sem repetições e com um único trajeto fechado remete a problemas
clássicos, como o famoso problema do caixeiro-viajante (Travelling Salesman Problem – TSP), no
qual se busca encontrar um caminho eficiente que passe por todas as cidades de uma rota. Embora
a definição seja simples, determinar se um grafo arbitrário é Hamiltoniano não é trivial e envolve
desafios computacionais significativos.
Diferentemente dos grafos Eulerianos, que possuem uma caracterização clara baseada nos graus
dos vértices, não existe uma condição necessária e suficiente simples que determine se um grafo é
Hamiltoniano. Em vez disso, são conhecidas algumas condições suficientes, como os teoremas de
Dirac e Ore, que relacionam a existência de ciclos Hamiltonianos a propriedades de conectividade e
graus mínimos. O estudo de grafos Hamiltonianos, portanto, é essencial não apenas do ponto de vista
teórico, mas também pelas suas aplicações práticas em áreas como logística, otimização de rotas,
bioinformática e planejamento de circuitos.

Definição 80. Um ciclo Hamiltoniano é um ciclo que engloba todo vértice de 𝐺 (ciclo não permite
repetição).

Definição 81. Um grafo 𝐺 é Hamiltoniano se, e somente se, 𝐺 possui um ciclo Hamiltoniano.

Observação: ∀𝑛 > 2, 𝐾𝑛 é Hamiltoniano.

Processo de crescimento das arestas: Suponha um grafo 𝐺 arbitrário não Hamiltoniano:

𝐺 → 𝐺′ → 𝐺′′ → 𝐺′′′ → · · · → 𝐾𝑛

onde a cada passo uma aresta 𝑒 é inserida em 𝐺. Como 𝐾𝑛 é Hamiltoniano, segue que em algum
momento entre 𝐺 e 𝐾𝑛 , o grafo torna-se Hamiltoniano. Essa noção motiva a definição a seguir.

Definição 82. Um grafo 𝐺 é não Hamiltoniano maximal se 𝐺 não é Hamiltoniano, mas a adição de
qualquer nova aresta o torna Hamiltoniano (isto é, está na iminência de se tornar Hamiltoniano).

166
Considere o grafo 𝐺 a seguir. Note que 𝐺 não admite um ciclo Hamiltoniano, mas ao adicionar
qualquer aresta nova, 𝐺 torna-se Hamiltoniano.

• No caso da aresta (𝑣2 , 𝑣5 ), temos o ciclo:

𝑣6 − 𝑣4 − 𝑣5 − 𝑣2 − 𝑣1 − 𝑣3 − 𝑣6

• No caso da aresta (𝑣1 , 𝑣4 ), temos o ciclo:

𝑣6 − 𝑣5 − 𝑣4 − 𝑣1 − 𝑣2 − 𝑣3 − 𝑣6

Pergunta: Como decidir se um dado grafo 𝐺 é Hamiltoniano?


Este é um problema difícil, classificado como NP-Completo.
Por quê? O melhor resultado que se tem até hoje é o seguinte:

Teorema 51 (Dirac, 1952). Seja 𝐺 = (𝑉, 𝐸) um grafo básico simples com |𝑉 | = 𝑛 > 2. Então,

𝑛
∀𝑣 ∈ 𝑉, 𝑑(𝑣) ≥ =⇒ 𝐺 é Hamiltoniano.
2

Em outras palavras, esse resultado nos diz que se cada vértice de 𝐺 se liga a pelo menos metade
dos demais vértices, então 𝐺 é Hamiltoniano. Esse resultado ainda é considerado estado da arte na
identificação de grafos Hamiltonianos, no sentido de que não há um critério mais poderoso conhecido
até o momento.
Prova: (por contradição)
A ideia é verificar que não pode existir um grafo 𝐺 que satisfaça a propriedade 𝐻 e não seja
Hamiltoniano.
Suponha que ∃ 𝐺 = (𝑉, 𝐸) básico simples que satisfaz a propriedade, mas não é Hamiltoniano.
Considere 𝐺 como sendo não Hamiltoniano maximal. Então, ∃ 𝑢, 𝑤 ∈ 𝑉 não adjacentes.

167
Defina 𝐻 = 𝐺 + (𝑢, 𝑤). Como 𝐻 é Hamiltoniano, ∃ um ciclo 𝐶 que passa por ∀𝑣 ∈ 𝑉 .
Chamaremos 𝑢 = 𝑣1 e 𝑤 = 𝑣𝑛 .

Definimos dois conjuntos de vértices, 𝑆 e 𝑇 , como segue:

𝑆 = {𝑣𝑖 : ∃ aresta que liga 𝑢 a 𝑣𝑖+1 }, 𝑇 = {𝑣𝑗 : ∃ aresta que liga 𝑤 a 𝑣𝑗 }.

Observação: Quem está em 𝑆 não importa, mas quantos elementos estão em 𝑆 é fundamental.
Assim, temos:
|𝑆| = 𝑑(𝑢), |𝑇 | = 𝑑(𝑤),

isto é, o número de elementos em 𝑆 e 𝑇 corresponde aos graus de 𝑢 e 𝑤, respectivamente.


Agora, verificamos que ∃ ao menos um vértice que não está em 𝑆 nem em 𝑇 , a saber 𝑣𝑛 . Note
que:

i) 𝑣𝑛 ∈
/ 𝑆: de fato, para que 𝑣𝑛 ∈ 𝑆, seria necessário ∃ aresta que liga 𝑢 a 𝑣𝑛+1 = 𝑢. Mas isso não
ocorre, pois não há loops.

ii) 𝑣𝑛 ∈
/ 𝑇 : de fato, para que 𝑣𝑛 ∈ 𝑇 , seria necessário ∃ aresta que liga 𝑤 a 𝑣𝑛 = 𝑤. Mas isso não
ocorre, pois não há loops.

Dessa forma, 𝑣𝑛 ∈
/ 𝑆 ∪ 𝑇 , o que implica que |𝑆 ∪ 𝑇 | < 𝑛.
O próximo passo consiste em responder à pergunta: ∃𝑣𝑘 ∈ 𝑆 ∩ 𝑇 ?
Suponha que sim. Se chegarmos a uma contradição, é porque tal vértice não pode existir. Vamos
considerar que 𝑣𝑘 ∈ 𝑆 ∩ 𝑇 . Então:

168
i) Se 𝑣𝑘 ∈ 𝑆: ∃ aresta que liga 𝑢 a 𝑣𝑘+1 .

ii) Se 𝑣𝑘 ∈ 𝑇 : ∃ aresta que liga 𝑤 a 𝑣𝑘 .

Porém, nesse caso 𝐺 seria Hamiltoniano, pois existiria um ciclo 𝐶 ′ que envolve todo vértice de
𝐺. Isso fere a definição inicial de que 𝐺 é não Hamiltoniano maximal, gerando uma contradição e,
portanto, invalidando a suposição de que ∃𝑣𝑘 ∈ 𝑆 ∩ 𝑇 .
O fato é que ∄𝑣𝑘 ∈ 𝑆 ∩ 𝑇 , ou seja:
𝑆 ∩ 𝑇 = ∅.

Dessa forma, pela teoria dos conjuntos, temos:

|𝑆 ∪ 𝑇 | = |𝑆| + |𝑇 | − |𝑆 ∩ 𝑇 | = 𝑑(𝑢) + 𝑑(𝑤).

Mas, como de (*) temos que |𝑆 ∪ 𝑇 | < 𝑛, finalmente chegamos a:

𝑑(𝑢) + 𝑑(𝑤) < 𝑛.

Isso é uma contradição para a primeira suposição, pois todo grafo que satisfaz 𝐻 tem:

𝑛 𝑛
𝑑(𝑢) ≥ e 𝑑(𝑤) ≥ ,
2 2

para quaisquer 𝑢, 𝑤 ∈ 𝑉 . Logo,


𝑑(𝑢) + 𝑑(𝑤) ≥ 𝑛.

Em outras palavras, a hipótese de que existe um grafo 𝐺 que satisfaz 𝐻 e não seja Hamiltoniano
é falsa.

169
Conclusão: Não existe grafo 𝐺 que satisfaça a propriedade 𝐻 e não seja Hamiltoniano. Se 𝐻 é
verdadeira, então é certeza que 𝐺 é Hamiltoniano.
Mas isso garante que é simples decidir se um dado grafo 𝐺 é Hamiltoniano? Não, pois podemos
ter grafos 𝐺 para os quais 𝐻 falha e, mesmo assim, eles são Hamiltonianos.
Exemplo: grafo 2-regular conexo.

Problema em aberto: ninguém nunca demonstrou a volta. Nem mesmo foi proposto um critério
mais efetivo (do tipo “se e somente se”).
O teorema anterior, apesar de poderoso, não nos fornece uma caracterização completa de grafos
Hamiltonianos. Basicamente, ele diz que todo grafo que satisfaz a propriedade 𝐻 é Hamiltoniano,
mas nem todo grafo Hamiltoniano satisfaz a propriedade 𝐻.

Teorema 52 (Ore). Seja 𝐺 = (𝑉, 𝐸) um grafo básico simples de 𝑛 vértices e sejam 𝑢 e 𝑣 vértices não
adjacentes tais que:
𝑑(𝑢) + 𝑑(𝑣) ≥ 𝑛.

Então, 𝐺 é Hamiltoniano se e somente se 𝐺 + (𝑢, 𝑣) é Hamiltoniano.

Prova.

170
A. (ida) 𝑝 → 𝑞
Se 𝐺 é Hamiltoniano, é trivial que a adição de qualquer aresta faz com que ele permaneça
Hamiltoniano.

B. (volta) 𝑞 → 𝑝 (por contradição)

(a) Suponha que 𝐻 = 𝐺 + (𝑢, 𝑣) seja Hamiltoniano.


(b) Então, para 𝐺 não ser Hamiltoniano devemos ter 𝑑(𝑢) + 𝑑(𝑣) < 𝑛 (contrapositiva do
teorema de Dirac).
(c) Essa é uma contradição para a hipótese inicial.
(d) Portanto, 𝐺 deve ser Hamiltoniano.

Definição 83 (Fechamento de um grafo). Seja 𝐺 = (𝑉, 𝐸) um grafo básico simples. Enquanto


existirem vértices não adjacentes 𝑢 e 𝑣 tais que

𝑑(𝑢) + 𝑑(𝑣) ≥ 𝑛,

una-os por uma aresta. O grafo final, 𝑐(𝐺), é denominado fechamento de 𝐺.

Teorema 53 (Bondy e Chvátal, 1976). Um grafo básico simples 𝐺 é Hamiltoniano se, e somente se,
seu fechamento 𝑐(𝐺) é Hamiltoniano.

Demonstração.
(ida) 𝑝 → 𝑞: É fácil perceber que se 𝐺 é Hamiltoniano, a adição de qualquer aresta em 𝐺 o
mantém Hamiltoniano.

(volta) 𝑞 → 𝑝:

1. Suponha que 𝑐(𝐺) seja Hamiltoniano.

2. Seja 𝐺, 𝐺1 , 𝐺2 , 𝐺3 , . . . , 𝐺𝐾−1 , 𝐺𝐾 = 𝑐(𝐺) a sequência de grafos obtidos aplicando a operação


de fechamento.

171
3. Como 𝑐(𝐺) = 𝐺𝐾 é obtido de 𝐺𝐾−1 por

𝐺𝐾 = 𝐺𝐾−1 + (𝑢, 𝑣),

onde 𝑢, 𝑣 são vértices não adjacentes em 𝐺𝐾−1 com 𝑑(𝑢) + 𝑑(𝑣) ≥ 𝑛.

4. Pelo teorema anterior, 𝐺𝐾−1 é Hamiltoniano.

5. Pelo mesmo raciocínio, 𝐺𝐾−2 , 𝐺𝐾−3 , . . . , 𝐺 são Hamiltonianos.

Corolário 1. Seja 𝐺 = (𝑉, 𝐸) um grafo básico simples com |𝑉 | > 2. Se 𝑐(𝐺) = 𝐾𝑛 , ou seja, o
fechamento é Hamiltoniano, então 𝐺 é Hamiltoniano.

Teorema 54 (Pósa, 1962). Seja 𝐺 = (𝑉, 𝐸) um grafo básico simples com |𝑉 | > 2 e 𝑑1 , 𝑑2 , 𝑑3 , . . . , 𝑑𝑛
a sequência dos graus dos vértices em ordem crescente. Se, para todo 𝑖 tal que 1 ≤ 𝑖 ≤ 𝑛2 , tivermos

𝑑𝑖 ≥ 𝑖 + 1,

então 𝐺 é Hamiltoniano.

Por questões de complexidade, iremos omitir a prova desse importante resultado.

Exemplo. Considere a sequência de graus

𝐿𝐺 = (2, 3, 4, 4, 5, 5, 5, 6).

Ela pode corresponder a um grafo 𝐺 Hamiltoniano? Justifique.

𝑛
= 4, 𝑖 = 1, 2, 3, 4
2

𝑑1 = 2 ≥ 1 + 1 ok,
𝑑2 = 3 ≥ 2 + 1 ok,
𝑑3 = 4 ≥ 3 + 1 ok,
𝑑4 = 4 ≥ 4 + 1 falhou.
Portanto, não podemos afirmar que 𝐺 é Hamiltoniano. Ele pode ser ou não Hamiltoniano: trata-
se de um caso de indeterminação.

Observação: Uma mesma sequência de graus pode representar dois grafos distintos: um grafo 𝐺
Hamiltoniano e um grafo 𝐺′ não Hamiltoniano.

172
13.3 Considerações finais
O estudo de grafos Eulerianos e Hamiltonianos constitui uma parte fundamental da Teoria dos
Grafos, conectando conceitos estruturais de grafos com problemas clássicos e modernos de otimiza-
ção e combinatória. Grafos Eulerianos nos fornecem critérios claros e eficientes para a existência de
trilhas e circuitos que percorrem todas as arestas de um grafo, sendo possível determinar sua exis-
tência em tempo polinomial por meio da análise dos graus dos vértices. A abordagem construtiva de
Euler e os algoritmos associados permitem não apenas a identificação desses grafos, mas também a
construção prática de trilhas e circuitos.
Por outro lado, grafos Hamiltonianos apresentam uma complexidade significativamente maior. A
determinação da existência de ciclos que percorrem todos os vértices de um grafo é, em geral, um pro-
blema NP-Completo, e a caracterização completa desses grafos ainda permanece aberta. Resultados
importantes, como os teoremas de Dirac, Ore, Bondy–Chvátal e Pósa, fornecem condições suficien-
tes para a existência de ciclos Hamiltonianos, embora não constituam condições necessárias. Estes
teoremas permitem a identificação de classes de grafos Hamiltonianos e oferecem ferramentas para
análise estrutural, mas ainda deixam espaço para indeterminações e casos excepcionais.
A distinção entre grafos Eulerianos e Hamiltonianos evidencia como pequenas variações nas de-
finições de caminhos e ciclos em grafos podem alterar completamente a complexidade do problema
associado. Enquanto a existência de trilhas e circuitos Eulerianos depende apenas de condições locais
simples (graus dos vértices), a existência de ciclos Hamiltonianos depende de propriedades globais
do grafo, exigindo técnicas mais sofisticadas e a consideração de toda a estrutura do grafo.
Por fim, o estudo desses grafos é de grande relevância não apenas do ponto de vista teórico, mas
também prático, com aplicações em roteirização de veículos, design de circuitos, bioinformática,
problemas de logística e planejamento. O conhecimento das condições e métodos para a identificação
de grafos Eulerianos e Hamiltonianos permite ao estudante desenvolver habilidades de raciocínio
combinatório e algoritmos eficientes, consolidando a compreensão da teoria dos grafos como uma
ferramenta central da Matemática Discreta.

173
14 Teoria dos grafos: grafos planares
Os grafos planares representam uma classe especial de grafos que podem ser desenhados no plano
de tal forma que suas arestas não se cruzem, exceto nos vértices comuns. Esse conceito é fundamental
na Teoria dos Grafos, pois relaciona propriedades combinatórias dos grafos com suas representações
geométricas. O estudo de grafos planares surgiu de problemas práticos, como a disposição de circuitos
elétricos, mapas geográficos e redes de transporte, onde a minimização de cruzamentos é essencial
para simplificação e clareza.
Um ponto central ao estudar grafos planares é a representação planar. Um grafo é considerado
planar se houver pelo menos uma forma de desenhá-lo no plano sem que duas arestas se cruzem.
Nem todos os grafos são planares; por exemplo, o grafo completo com cinco vértices (𝐾5 ) e o grafo
bipartido completo com três vértices em cada partição (𝐾3,3 ) são exemplos clássicos de grafos não
planares. A identificação de tais grafos não planares é essencial para compreender os limites da
planaridade.
Além disso, grafos planares estão intimamente ligados a conceitos topológicos e geométricos. Um
dos resultados mais importantes é a fórmula de Euler, que estabelece uma relação entre o número de
vértices, arestas e faces de um grafo planar conexo. Essa fórmula fornece uma ferramenta poderosa
para analisar a estrutura de grafos planares e é base para muitos teoremas subsequentes, incluindo
limites superiores para o número de arestas e critérios para planaridade.
O estudo de grafos planares combina técnicas de raciocínio combinatório, algoritmos de repre-
sentação e conceitos geométricos, tornando-se uma ponte natural entre a matemática discreta e apli-
cações práticas em ciência da computação, engenharia e design de redes. Ao longo deste capítulo,
serão exploradas definições formais, teoremas fundamentais, exemplos clássicos de grafos planares e
não planares, e métodos para verificar a planaridade de um grafo dado.

Definição 84. Um grafo 𝐺 é plano se ele pode ser desenhado numa superfície plana sem que haja
cruzamento de arestas. Um grafo 𝐺 é planar se ele for isomorfo a um grafo plano.

Observação: O aspecto geométrico não importa, apenas a topologia.

174
Importância dos grafos planares:

1. Grafos planares são, em geral, esparsos, porém conexos;

2. Possibilitam a simplificação de vários problemas NP em grafos planares;

3. Aplicações em engenharia: projetos de interligação (água, gás, tubulações);

4. Projeto de circuitos impressos.

Precisamos de uma maneira objetiva de caracterizar a planaridade.

Definição 85 (Curva de Jordan). Uma curva de Jordan é toda curva fechada no plano que não inter-
cepta a si própria.

Observação: A noção de curva de Jordan, para nosso estudo com grafos, será a de ciclo. Todo ciclo
pode ser visto como uma curva de Jordan, uma vez que é uma trajetória fechada e que não repete
vértices.

Teorema 55. Se 𝐶 é uma curva de Jordan, com 𝑥 ∈ int(𝐶) e 𝑦 ∈ ext(𝐶), então qualquer curva que
una 𝑥 a 𝑦 intercepta 𝐶.

Queremos encontrar pistas sobre quais são os menores blocos não planares que existem. Nessa
busca, pode-se verificar o seguinte fato.

175
Teorema 56. O grafo completo 𝐾5 não é planar.

Demonstração. Iremos assumir que ele é planar. Veremos então que chegamos a um absurdo, o que
contradiz a hipótese inicial.

Seja 𝐶 = 𝑣1 𝑣2 𝑣3 𝑣1 (curva de Jordan). Como 𝑣4 ∈


/ 𝐶, temos duas opções:

a) 𝑣4 ∈ int(𝐶)

b) 𝑣4 ∈ ext(𝐶)

Vamos primeiramente supor o caso (a), ou seja, 𝑣4 ∈ int(𝐶). Assim, temos:

𝐶1 = 𝑣1 𝑣2 𝑣4 𝑣1 , 𝐶2 = 𝑣2 𝑣3 𝑣4 𝑣2 , 𝐶3 = 𝑣3 𝑣4 𝑣1 𝑣3

Logo, obtemos a subdivisão do plano em quatro regiões. Para o vértice 𝑣5 , temos as seguintes
possibilidades:

i) 𝑣5 ∈ ext(𝐶): a aresta (𝑣4 , 𝑣5 ) cruza.

ii) 𝑣5 ∈ int(𝐶1 ): a aresta (𝑣3 , 𝑣5 ) cruza.

176
iii) 𝑣5 ∈ int(𝐶2 ): a aresta (𝑣1 , 𝑣5 ) cruza.

iv) 𝑣5 ∈ int(𝐶3 ): a aresta (𝑣2 , 𝑣5 ) cruza.

Sendo assim, para 𝑣4 ∈ int(𝐶), não é possível que 𝐾5 seja planar. Vamos agora ao caso (b), onde
𝑣4 ∈ ext(𝐶). Assim, temos:

𝐶 = 𝑣1 𝑣2 𝑣3 𝑣1 , 𝐶1 = 𝑣1 𝑣3 𝑣4 𝑣1 , 𝐶2 = 𝑣2 𝑣3 𝑣4 𝑣2 , 𝐶3 = 𝑣1 𝑣2 𝑣4 𝑣1

Novamente, temos a partição do plano em quatro regiões, de modo que, para o vértice 𝑣5 , ocorre:

i) 𝑣5 ∈ int(𝐶): a aresta (𝑣4 , 𝑣5 ) cruza.

ii) 𝑣5 ∈ int(𝐶1 ): a aresta (𝑣2 , 𝑣5 ) cruza.

iii) 𝑣5 ∈ int(𝐶2 ): a aresta (𝑣1 , 𝑣5 ) cruza.

iv) 𝑣5 ∈ ext(𝐶3 ): a aresta (𝑣3 , 𝑣5 ) cruza.

Em todos os casos chegamos a uma contradição, concluindo que 𝐾5 não pode ser planar.

Teorema 57 (Fórmula de Euler). Seja 𝐺 = (𝑉, 𝐸) um grafo plano conexo com |𝑉 | = 𝑛, |𝐸| = 𝑚 e
𝑓 faces (ou regiões). Então,
𝑛 − 𝑚 + 𝑓 = 2.

Prova por indução em 𝑚. Base (𝑚 = 0):


𝑃 (0): 𝐺 é o grafo nulo (sem arestas). Nesse caso, 𝑛 = 1 e 𝑓 = 1, o que nos leva a

1−0+1=2 ✓

177
Passo de indução (𝑃 (𝑘) → 𝑃 (𝑘 + 1)):
Hipótese de indução 𝑃 (𝑘): Suponha que para todo grafo 𝐺 com 𝑘 arestas, vale

𝑛 − 𝑘 + 𝑓 = 2.

Mostremos que o resultado continua válido para 𝑘 + 1 arestas.

1. Suponha 𝐺 tal que 𝑚 = 𝑘 + 1.

2. Se 𝐺 é uma árvore, então 𝑚 = 𝑛 − 1, o que implica 𝑛 = 𝑚 + 1 = 𝑘 + 2.

a) Como não há ciclos em árvores, existe uma única face, isto é, 𝑓 = 1.


b) Logo:
𝑛 − 𝑚 + 𝑓 = (𝑘 + 2) − (𝑘 + 1) + 1 = 2 ✓

3. Se 𝐺 não é uma árvore, então 𝐺 contém um ciclo 𝐶.

a) Seja 𝑒 uma aresta do ciclo 𝐶 e defina 𝐺′ = 𝐺 − 𝑒.


b) Então, 𝐺′ tem 𝑚′ = 𝑘 = 𝑚 − 1 arestas e 𝑛′ = 𝑛 vértices.

4. Pela hipótese de indução, sabemos que 𝑃 (𝑘) é verdadeiro. Logo:

𝑛′ − 𝑚′ + 𝑓 ′ = 2.

5. Ao passar de 𝐺 para 𝐺′ removemos um ciclo, o que reduz o número de faces em 1, isto é,


𝑓 ′ = 𝑓 − 1. Assim:

𝑛 − 𝑚 + 𝑓 = 𝑛′ − (𝑚′ + 1) + (𝑓 ′ + 1) = 𝑛′ − 𝑚′ + 𝑓 ′ = 2.

Portanto, a fórmula de Euler está provada por indução.

Teorema 58. O grafo bipartido completo 𝐾3,3 não é planar.

178
Prova por contradição. 1. Suponha que o grafo 𝐾3,3 seja representado por um grafo plano.

2. Sabemos que 𝑛 = 6 e 𝑚 = 9, porém precisamos analisar o número de faces.

3. Como 𝐾3,3 é bipartido, o comprimento do menor ciclo é 4 (não possui ciclos ímpares).

4. Assim, todas as faces (ou regiões) devem ter pelo menos 4 arestas.

5. Suponha que tenhamos 𝑓 faces ou regiões 𝑅1 , 𝑅2 , . . . , 𝑅𝑓 , e que 𝐵(𝑅) denote o número de


arestas na borda da região 𝑅.

6. Seja
𝑓
∑︁
𝑁= 𝐵(𝑅𝑖 ).
𝑖=1

Como cada região possui pelo menos 4 arestas, temos:

𝑁 ≥ 4𝑓.

7. Entretanto, como cada aresta pode ser contada no máximo duas vezes (quando pertence à fron-
teira entre duas regiões), temos:
𝑁 ≤ 2𝑚 = 18.

8. Assim, podemos escrever:


4𝑓 ≤ 18 ⇒ 𝑓 ≤ 4, 5.

9. Por outro lado, usando a fórmula de Euler, obtemos:

𝑛 − 𝑚 + 𝑓 = 6 − 9 + 𝑓 = −3 + 𝑓.

10. Como 𝑓 ≤ 4, 5, temos:


−3 + 𝑓 ≤ 1, 5,

o que é uma contradição, pois de acordo com a fórmula de Euler, o valor deveria ser 2.
Portanto, o grafo bipartido completo 𝐾3,3 não é planar.

Teorema 59. Se 𝐺 é planar com |𝑉 | = 𝑛 > 2 e |𝐸| = 𝑚, então

𝑚 ≤ 3(𝑛 − 2).

Demonstração. Represente 𝐺 como um grafo plano (imersão planar). Pela fórmula de Euler, temos:

𝑛 − 𝑚 + 𝑓 = 2.

179
Se 𝑚 é o número máximo de arestas, toda face de 𝐺 deve ser um triângulo, pois, caso contrário,
seria possível adicionar arestas dividindo uma face maior.

Como cada face é composta por 3 arestas e cada aresta é contada exatamente duas vezes (pois
pertence à fronteira de duas faces), temos:

3𝑓 = 2𝑚.

Substituindo na fórmula de Euler:

2𝑚
𝑛−𝑚+ = 2.
3

Multiplicando por 3:
3𝑛 − 3𝑚 + 2𝑚 = 6,

3𝑛 − 𝑚 = 6,

𝑚 = 3𝑛 − 6.

Portanto, 𝑚 ≤ 3(𝑛 − 2).


Teorema 60. Todo grafo simples planar 𝐺 = (𝑉, 𝐸) possui um vértice de grau no máximo 5.
Demonstração. Iremos provar por contradição. Suponha que todos os vértices de 𝐺 tenham grau
maior ou igual a 6, isto é:
∀𝑣 ∈ 𝑉, 𝑑(𝑣) ≥ 6.

180
Pelo Lema do Aperto de Mãos (Handshaking Lemma), temos:
𝑛
∑︁
𝑑(𝑣𝑖 ) = 2𝑚.
𝑖=1

Logo,
6𝑛 ≤ 2𝑚 ⇒ 𝑚 ≥ 3𝑛.

Por outro lado, pelo teorema anterior, se 𝐺 é planar, então:

𝑚 ≤ 3𝑛 − 6 ⇒ 3𝑛 ≤ 3𝑛 − 6

o que é claramente uma contradição.


Assim, concluímos que 𝐺 deve possuir ao menos um vértice de grau no máximo 5.

Os resultados anteriores são interessantes, mas não podem ser usados para decidir se 𝐺 é planar. De
fato, para serem aplicados, o grafo precisa estar desenhado como plano, o que implica que já devemos
saber previamente que ele é planar.
Veremos a seguir algumas definições importantes para a apresentação do resultado fundamental
para a detecção de planaridade: o Teorema de Kuratowski.
Vimos que ambos 𝐾5 e 𝐾3,3 não são planares. Portanto, todo grafo que os contenha como subgrafo
também não pode ser planar. No entanto, existem grafos que não contêm 𝐾5 nem 𝐾3,3 como subgrafo
e, mesmo assim, não são planares. Entretanto, tais grafos podem ser reduzidos a 𝐾5 ou 𝐾3,3 pela
operação conhecida como redução de série.

Definição 86 (Redução de série). Se um grafo 𝐺 tem um vértice 𝑣 de grau 2 e arestas (𝑣1 , 𝑣) e (𝑣, 𝑣2 )
com 𝑣1 ̸= 𝑣2 , diz-se que as arestas (𝑣1 , 𝑣) e (𝑣, 𝑣2 ) estão em série.

Definição 87 (Grafos homeomorfos). Dois grafos 𝐺1 e 𝐺2 são ditos homeomorfos se podem ser
reduzidos a grafos isomorfos por meio de sucessivas reduções de série.

181
Por exemplo, os dois grafos a seguir são homeomorfos. Isso pode ser facilmente percebido uma vez
que, ao aplicarmos reduções de série em ambos, obtemos o seguinte resultado: 𝐻1 é isomorfo a 𝐻2 .

Teorema 61 (Teorema de Kuratowski). Um grafo 𝐺 é planar se, e somente se, 𝐺 não contiver um
subgrafo homeomorfo a 𝐾5 ou 𝐾3,3 .

Este resultado fornece um critério objetivo para caracterizar planaridade, embora seja de difícil apli-
cação prática em algoritmos. Em resumo, o Teorema de Kuratowski descreve como determinar se um
grafo 𝐺 é planar ou não por meio de três operações básicas:

i) remoção de arestas;

ii) remoção de vértices;

iii) reduções de série.

Exemplo ilustrativo:

1. Remoção de arestas: (𝑣1 , 𝑣2 ), (𝑣3 , 𝑣5 ), (𝑣4 , 𝑣6 );

182
2. Redução de séries: 𝑣1 − 𝑣4 − 𝑣8 e 𝑣3 − 𝑣6 − 𝑣7 .

O grafo resultante é claramente o 𝐾3,3 , portanto 𝐺 não é planar.


Exercício: Mostre que o grafo de Petersen não é planar utilizando o Teorema de Kuratowski.

14.1 Considerações finais


O estudo de grafos planares mostra como aspectos topológicos influenciam propriedades combi-
natórias dos grafos. A ideia central de planaridade está na possibilidade de desenhar um grafo em
uma superfície plana sem cruzamento de arestas, o que conecta de maneira natural a teoria dos grafos
à geometria e à topologia.
Neste capítulo, vimos resultados fundamentais como a Fórmula de Euler, que estabelece uma
relação elegante entre o número de vértices, arestas e faces em grafos planares, e desigualdades deri-
vadas que limitam a densidade de tais grafos. Também discutimos exemplos clássicos de grafos não
planares, como 𝐾5 e 𝐾3,3 , e vimos como eles se relacionam ao Teorema de Kuratowski, que fornece
uma caracterização completa, embora de difícil aplicação prática, da planaridade.
Do ponto de vista aplicado, a planaridade é relevante em diversos contextos práticos, como na
elaboração de circuitos eletrônicos, na modelagem de redes de transporte, no planejamento urbano e
em problemas de visualização de dados. Além disso, muitos problemas computacionalmente difíceis
em grafos gerais tornam-se mais tratáveis quando restringidos a grafos planares, o que evidencia a
importância desse estudo em ciência da computação e engenharia.
Assim, o tema dos grafos planares não apenas enriquece a teoria dos grafos com resultados ele-
gantes e profundos, mas também fornece ferramentas importantes para aplicações concretas. Ele
constitui um elo fundamental entre matemática discreta, algoritmos e problemas reais.

183
15 Teoria dos grafos: coloração de vértices
A coloração de grafos é um dos temas mais fascinantes e estudados da teoria dos grafos, tanto
pelo seu apelo visual quanto pela diversidade de aplicações práticas. O problema básico consiste em
atribuir “cores” aos vértices de um grafo de modo que vértices adjacentes recebam cores diferentes.
Apesar da simplicidade de sua formulação, esse problema envolve questões profundas de caráter
combinatório e algorítmico.
Do ponto de vista teórico, a coloração de vértices está intimamente relacionada a propriedades
estruturais dos grafos, como o grau dos vértices, a presença de ciclos e a existência de subgrafos
especiais. A noção central é o número cromático de um grafo, definido como o menor número de
cores necessárias para realizar uma coloração própria. Determinar esse número, em geral, é um
problema difícil e que ocupa posição central na teoria dos grafos.
Além da relevância matemática, problemas de coloração surgem naturalmente em diversas apli-
cações reais. Exemplos incluem a elaboração de horários escolares (onde aulas que compartilham
alunos não podem ocorrer no mesmo horário), a alocação de frequências em redes de comunicação
sem fio (evitando interferências entre transmissores próximos), e o projeto de circuitos eletrônicos.
Assim, o estudo da coloração de vértices combina elegância teórica com utilidade prática.
Neste capítulo, exploraremos definições fundamentais, exemplos clássicos e teoremas importantes
que ajudam a compreender a complexidade do problema de coloração. Também veremos limites
superiores e inferiores para o número cromático, algoritmos de coloração e, finalmente, resultados
marcantes como o Teorema das Quatro Cores, que garante que qualquer grafo planar pode ser colorido
com no máximo quatro cores.

Ideia: Dado um grafo 𝐺 = (𝑉, 𝐸), particionar o conjunto de vértices 𝑉 em conjuntos independentes.

Definição 88. Seja 𝐺 = (𝑉, 𝐸) um grafo e 𝑃1 , 𝑃2 , . . . , 𝑃𝑛 uma partição de 𝑉 . Dizemos que 𝑃𝑖 é um


subconjunto independente se quaisquer dois vértices de 𝑃𝑖 não compartilham arestas (ou seja, não
são vizinhos).

Objetivo: particionar o conjunto 𝑉 no menor número possível de subconjuntos independentes.

Definição 89. Uma 𝑘-coloração de 𝐺 atribui uma entre 𝑘 cores a cada vértice de 𝐺, de modo que
vértices adjacentes sempre recebam cores (ou rótulos) diferentes.

Assim, podemos descrever a partição induzida por uma 𝑘-coloração da seguinte forma:

𝑃1 : subconjunto dos vértices de cor 1,


𝑃2 : subconjunto dos vértices de cor 2,
..
.
𝑃𝑘 : subconjunto dos vértices de cor k.

Pergunta: Dado um grafo 𝐺 = (𝑉, 𝐸), existe uma 𝑘-coloração para 𝐺 (com 𝑘 > 2)?

184
Trata-se de um problema NP-Completo. Em outras palavras, queremos responder se, para um
dado 𝐺, é possível encontrar 2, 3, 4, . . . subconjuntos independentes.

Definição 90. O número mínimo 𝑘 para o qual existe uma coloração de 𝐺 é chamado de número
cromático de 𝐺, denotado por 𝜒(𝐺). Este é um atributo do grafo.

Propriedades
As seguintes propriedades nos ajudam a limitar os valores de 𝜒(𝐺) em problemas reais, forne-
cendo limites inferiores e superiores:

a) Se |𝑉 | = 𝑛, então 𝜒(𝐺) ≤ 𝑛.

i) Se 𝐺 é o grafo completo 𝐾𝑛 , então 𝜒(𝐺) = 𝑛.


ii) Se 𝐺 contém 𝐾𝑚 como subgrafo, então 𝜒(𝐺) ≥ 𝑚.

Teorema 62. Seja 𝐺 um grafo. Então 𝐺 é bipartido ⇐⇒ 𝜒(𝐺) = 2.

Demonstração. Antes de provar a equivalência, vale uma observação importante sobre casos degene-
rados: o grafo sem arestas (grafo nulo) é bipartido, mas tem 𝜒(𝐺) = 1. Assim, a equivalência acima
deve ser entendida com a convenção usual:

𝐺 é bipartido e 𝐺 possui pelo menos uma aresta ⇐⇒ 𝜒(𝐺) = 2.

Ainda assim, para clareza, provaremos a implicação nos dois sentidos e indicaremos a observação
quando necessário.
(⇒) Suponha que 𝐺 é bipartido. Então existe uma bipartição 𝑉 (𝐺) = 𝑋 ∪ 𝑌 com 𝑋 ∩ 𝑌 = ∅
e tais que não há arestas internas em 𝑋 nem em 𝑌 (todas as arestas ligam um vértice de 𝑋 a um
vértice de 𝑌 ). Basta então definir uma 2–coloração própria atribuindo a mesma cor, digamos cor 1, a
todos os vértices de 𝑋 e a cor 2 a todos os vértices de 𝑌 . Como não existem arestas entre vértices da
mesma parte, vértices adjacentes têm cores diferentes; logo existe uma coloração própria com 2 cores
e 𝜒(𝐺) ≤ 2.
Se 𝐺 possui pelo menos uma aresta, então 𝜒(𝐺) ≥ 2 (pois uma aresta exige duas cores distintas).
Portanto, nesse caso 𝜒(𝐺) = 2. (No caso degenerado em que 𝐺 não tem arestas, a mesma construção
dá 𝜒(𝐺) = 1, conforme observado.)
(⇐) Suponha que 𝜒(𝐺) = 2. Então existe uma coloração própria de 𝐺 com exatamente duas
cores; seja 𝑉 (𝐺) = 𝐶1 ∪ 𝐶2 a partição dos vértices segundo as cores (com 𝐶1 ∩ 𝐶2 = ∅). Como
a coloração é própria, não há arestas entre vértices dentro de 𝐶1 nem dentro de 𝐶2 . Assim, todas as
arestas ligam um vértice de 𝐶1 a um vértice de 𝐶2 , e portanto 𝐺 é bipartido com bipartição 𝐶1 , 𝐶2 .

185
Esses dois argumentos mostram que, salvo o caso trivial do grafo sem arestas (que é bipartido mas
tem 𝜒(𝐺) = 1), ter uma bipartição é equivalente a admitir uma coloração própria com duas cores.
Concluímos que, para grafos com pelo menos uma aresta,

𝐺 é bipartido ⇐⇒ 𝜒(𝐺) = 2.

Observação: Uma consequência prática: um grafo é bipartido ⇐⇒ ele não contém ciclos de com-
primento ímpar. Essa caracterização é frequentemente usada para testar biparticidade (por exemplo,
via busca em largura).

Teorema 63. Seja 𝐺 = (𝑉, 𝐸) um grafo e seja ∆(𝐺) = max{𝑑(𝑣) : 𝑣 ∈ 𝑉 } o grau máximo de 𝐺.
Então, 𝜒(𝐺) ≤ ∆(𝐺) + 1.

Demonstração. 1. Inicie colorindo os vértices em uma sequência arbitrária.

2. Um vértice deve sempre receber uma cor livre, ou seja, diferente da cor de todos os seus vizi-
nhos.

3. Seja o grau máximo de um vértice 𝑣 em 𝐺, ∆(𝐺).

4. Pelo princípio da casa dos pombos, sempre irá existir uma cor livre no conjunto definido como
{1, 2, . . . , ∆(𝐺) + 1}.

Teorema 64. Seja 𝐺 = (𝑉, 𝐸) um grafo conexo com ∆(𝐺) ≥ 3. Se 𝐺 não é completo, então

𝜒(𝐺) ≤ ∆(𝐺).

Definição 91 (Grafo dual). Seja 𝐺 = (𝑉, 𝐸) um grafo básico simples planar. Um grafo dual 𝐺′ de
𝐺 é definido da seguinte forma: cada região (ou face) de 𝐺 corresponde a um vértice de 𝐺′ , e para
cada aresta de 𝐺 que delimita duas regiões adjacentes, há uma aresta em 𝐺′ ligando os vértices
correspondentes.
Em outras palavras, o centro de cada face do mapa se torna um vértice de 𝐺′ , e se duas faces com-
partilham uma fronteira, então existe uma aresta entre os vértices correspondentes no dual. Assim,
todo mapa pode ser transformado em um grafo planar, já que mapas são, por definição, estruturas
planares.

186
Teorema 65 (Teorema das 4 cores). Todo mapa pode ser colorido com apenas 4 cores, de modo que
duas regiões vizinhas não recebam a mesma cor.
Em termos de grafos: o dual de um grafo planar simples básico satisfaz

𝜒(𝐺) ≤ 4.

O Teorema das 4 Cores afirma que todo mapa pode ser colorido com apenas quatro cores de
forma que regiões vizinhas recebam cores distintas. Em termos de grafos, o resultado pode ser for-
mulado assim: o número cromático de qualquer grafo planar é no máximo 4. A seguir, apresentamos
um esboço intuitivo da prova.

1. Tradução para grafos planares: Cada região do mapa é representada por um vértice de um
grafo planar, e duas regiões vizinhas são ligadas por uma aresta. Assim, o problema de colorir
mapas é equivalente ao problema de colorir vértices de grafos planares.

2. Hipótese de contraexemplo mínimo: Suponha, por contradição, que exista um grafo planar 𝐺
que não pode ser colorido com 4 cores. Escolhe-se um contraexemplo mínimo, isto é, um grafo
𝐺 tal que todos os seus subgrafos possam ser 4-coloridos, mas 𝐺 não.

187
3. Propriedades estruturais: Pela fórmula de Euler e restrições de planaridade, todo grafo planar
possui ao menos um vértice de grau no máximo 5. Logo, o contraexemplo mínimo teria essa
propriedade.

4. Redução e reconstrução: Remove-se um vértice de grau ≤ 5 e aplica-se a hipótese indutiva:


o grafo restante pode ser 4-colorido. Em seguida, recoloca-se o vértice removido:

• Se o vértice tinha grau ≤ 3, sempre sobra uma cor disponível.


• Se o vértice tinha grau 4 ou 5, é necessário reorganizar as cores dos vizinhos.

5. Uso das cadeias de Kempe: Para os casos de vértices de grau 5, utiliza-se a técnica das cadeias
de Kempe. Trata-se de trocar cores em certos subgrafos conexos de modo a liberar uma cor
distinta para o vértice removido.

6. Conclusão: Esse processo mostra que sempre é possível colorir o grafo com 4 cores, o que
contradiz a suposição da existência de um contraexemplo mínimo. Assim, todo grafo planar é
4-colorível.

A conjectura foi feita em 1852 por Francis Guthrie. Em 1890, Heawood provou o Teorema das 5
Cores. A prova completa do Teorema das 4 Cores só foi estabelecida em 1976 por Appel e Haken,
com auxílio de computador para verificar milhares de configurações críticas.
Do ponto de vista da classificação dos problemas em computação, encontrar o número cromático
𝜒(𝐺) de grafos arbitrários é um problema NP-Hard. Alguns fatos relevantes:

1. Não se conhece algoritmo polinomial que colore um grafo arbitrário com exatamente 𝜒(𝐺)
cores.

2. Existe um algoritmo polinomial para coloração de grafos que colore qualquer grafo 𝐺 com no
máximo 𝑂(𝜒(𝐺) log 𝑛) cores, onde 𝑛 = |𝑉 | é o número de vértices de 𝐺.

15.1 Algoritmos para coloração de vértices


Objetivo: Dado um grafo 𝐺, obter 𝜒(𝐺).
Problema NP-completo: não há garantias de que sempre retornem o verdadeiro 𝜒(𝐺).
A seguir veremos como podemos definir um algoritmo exato para encontrar o número cromático
de um grafo 𝐺.
Seja 𝐺 = (𝑉, 𝐸) o grafo de entrada. Se 𝐺 = 𝐾𝑛 , então 𝜒(𝐺) = 𝑛. Caso contrário, existem
𝑣, 𝑤 ∈ 𝑉 adjacentes. A ideia é realizar duas alterações estruturais em 𝐺:

1. 𝛼𝑣,𝑤 (𝐺) = 𝐺 + (𝑣, 𝑤): adição da aresta (𝑣, 𝑤) em 𝐺.

2. 𝛽𝑣,𝑤 (𝐺) = 𝐺 ∖ (𝑣, 𝑤): condensação dos vértices 𝑣 e 𝑤, onde 𝐺 ∖ (𝑣, 𝑤) é o grafo resultante da
fusão dos vértices 𝑣 e 𝑤 seguida da eliminação de loops e arestas paralelas que possam surgir.

188
A figura a seguir ilustra um exemplo dessas operações.

O método exato de coloração de vértices inicia verificando se 𝐺 = 𝐾𝑛 . Em caso positivo, 𝜒(𝐺) =


𝑛. Caso contrário, determina-se 𝛼𝑣,𝑤 (𝐺) e 𝛽𝑣,𝑤 (𝐺). O número cromático 𝜒(𝐺) será o mínimo entre
os números cromáticos de 𝛼𝑣,𝑤 (𝐺) e 𝛽𝑣,𝑤 (𝐺), que devem ser calculados recursivamente. Através da
recursão, chegaremos em um grafo completo, onde 𝜒(𝐺) é facilmente computado (caso base). O
resultado a seguir fundamenta o algoritmo exato em questão.

Teorema 66. Seja 𝐺 = (𝑉, 𝐸) um grafo não completo e 𝑣, 𝑤 ∈ 𝑉 um par de vértices não adjacentes.
Então, o número cromático de 𝐺 satisfaz:

𝜒(𝐺) = min{𝜒(𝛼𝑣,𝑤 (𝐺)), 𝜒(𝛽𝑣,𝑤 (𝐺))}.

Demonstração. 1. Suponha uma coloração ótima 𝐶 de 𝐺.

2. Se os vértices 𝑣, 𝑤 possuem cores distintas em 𝐶, então a aresta (𝑣, 𝑤) pode ser adicionada em
𝐺 sem alterar 𝐶. Neste caso, 𝜒(𝐺) = 𝜒(𝛼𝑣,𝑤 (𝐺)).

3. Se os vértices 𝑣, 𝑤 possuem cores iguais a 𝑐𝑖 ∈ 𝐶, então, ao fundirmos 𝑣, 𝑤 em um único


vértice 𝑧 e atribuirmos a cor 𝑐𝑖 a 𝑧, mantendo as demais cores, temos 𝜒(𝐺) = 𝜒(𝛽𝑣,𝑤 (𝐺)).

189
4. Portanto, 𝜒(𝐺) deve ser o menor valor entre 𝜒(𝛼𝑣,𝑤 (𝐺)) e 𝜒(𝛽𝑣,𝑤 (𝐺)).

Note que 𝜒(𝐺) é igual ao número de vértices do menor grafo completo obtido através das opera-
ções 𝛼𝑣,𝑤 (𝐺) e 𝛽𝑣,𝑤 (𝐺).
O método a seguir define um algoritmo exato para o problema da coloração de vértices.

Algoritmo 1 Chromatic_Number(G)
1: 𝑛 ← |𝑉 |
2: if 𝐺 = 𝐾𝑛 then
3: 𝜒 ← min{𝜒, 𝑛}
4: else
5: Encontre um par de vértices não adjacentes 𝑣, 𝑤 ∈ 𝑉
6: call Chromatic_Number(𝛼𝑣,𝑤 (𝐺))
7: call Chromatic_Number(𝛽𝑣,𝑤 (𝐺))
8: end if

Inicializamos 𝜒 ← 𝑛 e executamos Chromatic_Number(G).


O algoritmo acima dispara um processo recursivo que constrói uma árvore binária em que cada
nó corresponde a um grafo: se 𝐺 é um nó corrente, seu filho à esquerda é 𝛼𝑣,𝑤 (𝐺) e seu filho à direita
é 𝛽𝑣,𝑤 (𝐺). As folhas da árvore, que indicam a condição de parada da recursão, serão sempre grafos
completos. A figura a seguir ilustra um exemplo simples.

Portanto, o número cromático 𝜒(𝐺) = 2.

190
Análise da complexidade
Note que o número máximo de grafos a serem examinados é igual ao número total de nós na
árvore binária. Como em cada nível ligamos/fundimos apenas dois vértices, a profundidade da árvore
é proporcional ao número de arestas no grafo complementar de 𝐺, denotado por 𝑚′ .

𝑚 ′

𝑚′
∑︁
0 1 2
2 + 2 + 2 + ··· + 2 = 2𝑖
𝑖=0

Note que 2𝑖+1 = 2 · 2𝑖 = 2𝑖 + 2𝑖 , o que nos leva a 2𝑖 = 2𝑖+1 − 2𝑖 . Dessa forma, temos:

𝑚 ′
′ ′
∑︁
(2𝑖+1 − 2𝑖 ) = 2𝑚 +1 − 20 = 2𝑚 +1 − 1
𝑖=0

Ou seja, a complexidade é exponencial, 𝑂(2𝑚 ). Portanto, esse algoritmo torna-se inviável para
grafos com muitos vértices. Para isso, existem algoritmos gulosos aproximados, como o algoritmo de
Welsh & Powell, por exemplo.

Abordagem gulosa para coloração de vértices

Suponha que os vértices estejam ordenados em ordem decrescente dos graus, ou seja, temos
𝑣1 , 𝑣2 , . . . , 𝑣𝑛 com respectivos graus ∆ = 𝑑1 ≥ 𝑑2 ≥ · · · ≥ 𝑑𝑛 .

Teorema 67.
𝜒(𝐺) ≤ max min{𝑑𝑖 + 1, 𝑖}
1≤𝑖≤𝑛

Demonstração. No instante em que colorimos 𝑣𝑖 (i-ésimo vértice da sequência), note que:

(a) No máximo 𝑖 − 1 cores foram utilizadas em seus vizinhos, pois antes dele foram exatamente
𝑖 − 1 vértices.

(b) No máximo 𝑑𝑖 cores são utilizadas pelos vizinhos, já que o grau de 𝑣𝑖 é 𝑑𝑖 .

Esse resultado fundamenta o algoritmo de Welsh & Powell, utilizado para colorir um grafo e
aproximar o verdadeiro valor do número cromático 𝜒(𝐺).

Análise da Complexidade do Algoritmo Welsh & Powell

1. Note que a ordenação dos vértices pode ser realizada em 𝑂(𝑛 log 𝑛).

2. A criação das listas de cores envolve trabalhar com 𝑛 listas de tamanhos variáveis. Para o
𝑖-ésimo vértice, a lista de cores tem tamanho 𝑖, de modo que o número de operações é dado por:
𝑛
∑︁
1 + 2 + 3 + ··· + 𝑛 = 𝑖
𝑖=1

191
Algoritmo 2 Welsh_Powell(G)
1: Ordene os vértices 𝑣𝑖 ∈ 𝑉 em ordem decrescente de grau
2: for cada 𝑣𝑖 ∈ 𝑉 do
3: 𝐶𝑖 = [1, 2, . . . , 𝑖] ◁ Lista de cores do vértice 𝑣𝑖
4: end for
5: for 𝑖 = 1 to 𝑛 do
6: color = 𝐶𝑖 [1] ◁ Escolhe a primeira cor da lista
7: 𝑣𝑖 .𝑐 = color ◁ Colore 𝑣𝑖 com a cor escolhida
8: for cada 𝑣𝑗 ∈ 𝑁 (𝑣𝑖 ) do
9: 𝐶𝑗 = 𝐶𝑗 − color ◁ Remove a cor da lista dos vizinhos
10: end for
11: end for
12: 𝜒 = 0
13: for cada 𝑣𝑖 ∈ 𝑉 do
14: if 𝑣𝑖 .𝑐 > 𝜒 then
15: 𝜒 = 𝑣𝑖 .𝑐
16: end if
17: end for
18: return 𝜒

3. Porém, é possível reduzir esse custo, sabendo que o número cromático em um grafo que não
é 𝐾𝑛 é limitado superiormente pelo maior grau. Seja 𝐾 o maior grau de um vértice em 𝐺,
então basta que as listas de cores contenham 𝐾 cores distintas, e não 𝑛, ou seja, o número de
operações gastas é:
1 + 2 + 3 + · · · + 𝐾 + 𝐾 + 𝐾 ≤ 𝑛𝐾

Portanto, a etapa de criação das listas de cores tem complexidade 𝑂(𝑛𝐾).

4. O loop principal do algoritmo percorre todos os vértices 𝑣 ∈ 𝐺 uma vez e, para cada vértice,
acessa os seus 𝑑(𝑣) vizinhos. Se utilizarmos um array estático, podemos apagar a cor color da
lista 𝐶𝑖 em 𝑂(1). Logo, a complexidade desse loop é:

𝑑(𝑣1 ) + 𝑑(𝑣2 ) + · · · + 𝑑(𝑣𝑛 ) = 2𝑚 =⇒ 𝑂(𝑚)

5. Por fim, o último loop serve apenas para encontrar o maior rótulo utilizado como cor, o que é
equivalente a encontrar o máximo do vetor. Assim, o custo é 𝑂(𝑛).

Portanto, o custo total é:

𝑂(𝑛 log 𝑛) + 𝑂(𝑛𝐾) + 𝑂(𝑚) + 𝑂(𝑛)

Note que, no pior caso, 𝑚 = 𝑂(𝑛2 ), o que nos leva à conclusão de que a complexidade do algoritmo
Welsh & Powell é 𝑂(𝑛2 ).
A seguir, apresentaremos alguns exemplos de problemas que podem ser resolvidos através da
coloração de vértices.

192
O Problema da Alocação de Frequências

Considere 7 antenas de transmissão de sinais de telefonia. Sabe-se que, devido a fatores como
localização geográfica e tipo de serviço oferecido, as antenas possuem regiões de influência de modo
que temos a seguinte matriz de interferências:

Essa matriz indica quando duas antenas interferem uma na outra, representado por um “x”.
Pergunta-se:

1. Qual o menor número de frequências necessárias para que a comunicação se dê de forma cor-
reta?

2. As antenas devem operar em qual configuração de frequência?

Passos para a solução:

1. Construção do grafo de incompatibilidade: Neste grafo, dois vértices são ligados por uma
aresta se existe interferência entre as duas antenas.

193
2. Ordenação dos vértices: Ordenar os vértices em ordem decrescente de graus: 𝑣1 , 𝑣3 , 𝑣5 , 𝑣6 , 𝑣4 , 𝑣2 , 𝑣7 .

3. Definição das listas de cores: Para cada vértice, criam-se listas de cores possíveis:

𝐶1 = {1}, 𝐶3 = {1, 2}, 𝐶5 = {1, 2, 3}, 𝐶6 = {1, 2, 3, 4},

𝐶4 = {1, 2, 3, 4, 5}, 𝐶2 = {1, 2, 3, 4, 5}, 𝐶7 = {1, 2, 3, 4, 5}.

4. Coloração iterativa: Colorir os vértices seguindo a ordem e removendo as cores já usadas dos
vizinhos:

Tabela 1: Coloração gulosa iterativa dos vértices (listas de cores atualizadas)


Passo 𝑣1 𝑣2 𝑣3 𝑣4 𝑣5 𝑣6 𝑣7
Inicial {1} {1, 2, 3, 4, 5} {1, 2} {1, 2, 3, 4, 5} {1, 2, 3} {1, 2, 3, 4} {1, 2, 3, 4, 5}
𝑣1 → 1 1 {2, 3, 4, 5} {2} {1, 2, 3, 4, 5} {2, 3} {2, 3, 4} {2, 3, 4, 5}
𝑣3 → 2 1 {2, 3, 4, 5} 2 {1, 2, 3, 4, 5} {3} {3, 4} {3, 4, 5}
𝑣5 → 3 1 {2, 3, 4, 5} 2 {1, 4, 5} 3 {4} {4, 5}
𝑣6 → 2 1 {2, 3, 4, 5} 2 {1, 4, 5} 3 2 {4, 5}
𝑣4 → 1 1 {3, 4, 5} 2 1 3 2 {4, 5}
𝑣2 → 3 1 3 2 1 3 2 {4, 5}
𝑣7 → 4 1 3 2 1 3 2 4

A aproximação para o número cromático obtida pelo algoritmo guloso é 𝜒(𝐺) = 3, o que, neste
caso, corresponde ao verdadeiro valor de 𝜒(𝐺). As partições obtidas são:

𝑃1 = {𝑣1 , 𝑣4 },
𝑃2 = {𝑣3 , 𝑣6 },
𝑃3 = {𝑣2 , 𝑣5 , 𝑣7 }.

194
O problema do semáforo

O objetivo deste problema consiste em sincronizar os semáforos de um cruzamento utilizando


coloração de vértices.
Dado o cruzamento de ruas a seguir, deve-se desenvolver um semáforo com o menor número de
tempos possíveis. Pergunta-se: qual deve ser o modo de funcionamento do mesmo?

1º passo: Consiste em gerar o grafo de incompatibilidade. Para isso, cada uma das faixas de A a
H deve ser representada por um vértice, e a cada possível cruzamento de faixas deve existir uma aresta
(ou seja, deve existir uma aresta sempre que for possível ocorrer uma batida). O grafo resultante é
ilustrado na figura a seguir.

2º passo: Consiste na aplicação do algoritmo guloso (Welsh & Powell) para colorir o grafo acima
utilizando o menor número de cores possíveis. Como o grau máximo é 4 e o grafo não é completo,

195
temos garantia de que o número cromático é menor ou igual a 4. A execução desse passo é deixada
como exercício para o leitor.

O problema do aeroporto

Uma nova empresa aérea irá começar a operar com 7 aeronaves seguindo a programação de vôos
(de A a G) definida na tabela abaixo, sendo que todos os vôos partem de São Paulo e visitam cada
uma das cidades listadas nas rotas na sequência em que elas aparecem:

Vôo Rota
A Florianópolis – Rio de Janeiro – Natal – Fortaleza
B Curitiba – Campinas – Ribeirão Preto – Fortaleza
C Belo Horizonte – Natal – Fortaleza – Manaus
D Belo Horizonte – São José do Rio Preto – Rio de Janeiro
E Belo Horizonte – Recife – Natal
F Brasília – Ribeirão Preto – Fortaleza
G Brasília – Presidente Prudente – Campinas

Devido ao número limitado de aeronaves, o diretor da companhia não quer mais de um vôo por dia
visitando uma determinada cidade. Ou seja, se dois vôos passam pela mesma cidade X, eles devem
obrigatoriamente não estar alocados para o mesmo dia.
Modelando o problema com um grafo e utilizando coloração de vértices, determine o número
mínimo de dias necessários para que a empresa opere de acordo com sua política de funcionamento.

15.2 Polinômio cromático


O polinômio cromático é uma ferramenta fundamental na teoria dos grafos que generaliza a noção
de coloração de vértices. Para um grafo 𝐺, o polinômio 𝑃 (𝐺, 𝑘) conta o número de maneiras válidas
de colorir os vértices de 𝐺 com 𝑘 cores, de modo que vértices adjacentes recebam cores diferentes.
Além de fornecer informações sobre o número cromático do grafo, 𝑃 (𝐺, 𝑘) captura propriedades
combinatórias profundas da estrutura de 𝐺, permitindo não apenas estudar grafos específicos, como
também derivar fórmulas gerais para famílias inteiras de grafos, como caminhos, ciclos, árvores e
grafos completos. Este conceito é particularmente útil em problemas de planejamento e otimização,
como alocação de recursos e programação de tarefas, onde restrições de conflito podem ser modeladas
através de colorações de grafos.

Definição 92. Para um grafo 𝐺 = (𝑉, 𝐸), seja 𝑃 (𝐺, 𝑘) o número de 𝑘-colorações válidas de 𝐺.
Pode-se mostrar que 𝑃 (𝐺, 𝑘) é um polinômio para todo grafo 𝐺.

Iremos iniciar com grafos simples e calcular os polinômios cromáticos fundamentais. Primeiro,
considere um grafo nulo com 3 vértices. Nesse caso, podemos utilizar 𝑘 cores em cada vértice, pois
não há arestas, e nenhum vértice é vizinho de outro:

196
𝑃 (𝐺1 , 𝑘) = 𝑘 3

Ao adicionarmos uma aresta no grafo anterior, temos:

𝑃 (𝐺2 , 𝑘) = 𝑘 2 (𝑘 − 1)

pois a cor do segundo vértice não pode ser utilizada para colorir o terceiro. Ao adicionarmos mais
uma aresta, o polinômio cromático fica:

𝑃 (𝐺3 , 𝑘) = 𝑘(𝑘 − 1)2

É fácil notar que o grafo caminho de 𝑛 vértices, conhecido como 𝑃𝑛 (path), possui o seguinte
polinômio cromático:

𝑃 (𝑃𝑛 , 𝑘) = 𝑘(𝑘 − 1)𝑛−1

O grafo completo 𝐾3 (triângulo) possui outro polinômio fundamental:

𝑃 (𝐾3 , 𝑘) = 𝑘(𝑘 − 1)(𝑘 − 2)

No caso do grafo completo de 4 vértices, 𝐾4 , temos:

𝑃 (𝐾4 , 𝑘) = 𝑘(𝑘 − 1)(𝑘 − 2)(𝑘 − 3)

Generalizando para o grafo completo de 𝑛 vértices, 𝐾𝑛 , temos:

197
𝑃 (𝐾𝑛 , 𝑘) = 𝑘(𝑘 − 1)(𝑘 − 2) . . . (𝑘 − (𝑛 − 1))

No caso de árvores, note que o polinômio cromático é idêntico ao do grafo caminho. Aliás, isso
já era esperado, uma vez que o grafo caminho é uma árvore:

𝑃 (𝑇𝑛 , 𝑘) = 𝑘(𝑘 − 1)𝑛−1

Porém, surge a pergunta: como calcular o polinômio cromático para um grafo arbitrário? O
resultado a seguir é fundamental para responder a essa pergunta.

15.2.1 O teorema fundamental da redução

Teorema 68. Seja 𝐺 = (𝑉, 𝐸) um grafo simples e 𝑒 ∈ 𝐸 uma aresta de 𝐺. Então, o polinômio
cromático de 𝐺 satisfaz a seguinte relação de recorrência:

𝑃 (𝐺, 𝑘) = 𝑃 (𝐺 − 𝑒, 𝑘) − 𝑃 (𝐺/𝑒, 𝑘),

onde 𝐺 − 𝑒 denota o grafo obtido pela remoção da aresta 𝑒, e 𝐺/𝑒 representa o grafo obtido pela
contração da aresta 𝑒 em 𝐺.

Devido à complexidade matemática da demonstração, omitiremos aqui a prova formal deste re-
sultado. Um esboço intuitivo da prova é discutido a seguir.

Esboço intuitivo da prova. O polinômio cromático 𝑃 (𝐺, 𝑘) conta o número de 𝑘-colorações válidas
de um grafo 𝐺, isto é, atribuições de cores aos vértices de 𝐺 de modo que vértices adjacentes recebam
cores distintas. Seja 𝑒 = (𝑢, 𝑣) uma aresta de 𝐺.

1. Considere inicialmente o grafo 𝐺 − 𝑒, ou seja, o grafo 𝐺 com a aresta 𝑒 removida. O número


de colorações possíveis desse grafo é 𝑃 (𝐺 − 𝑒, 𝑘). Note que algumas dessas colorações ainda
são válidas para 𝐺, enquanto outras atribuem a mesma cor aos vértices 𝑢 e 𝑣, o que violaria a
restrição de 𝐺.

198
2. As colorações inválidas para 𝐺 correspondem exatamente àquelas em que 𝑢 e 𝑣 recebem a
mesma cor. Nesse caso, podemos fundir os vértices 𝑢 e 𝑣 em um único vértice, obtendo o grafo
𝐺/𝑒 (contração da aresta 𝑒). O número dessas colorações é precisamente 𝑃 (𝐺/𝑒, 𝑘).

3. Portanto, para obter o número de colorações válidas de 𝐺, devemos subtrair do total 𝑃 (𝐺−𝑒, 𝑘)
aquelas que atribuem a mesma cor a 𝑢 e 𝑣. Assim:

𝑃 (𝐺, 𝑘) = 𝑃 (𝐺 − 𝑒, 𝑘) − 𝑃 (𝐺/𝑒, 𝑘).

Esse raciocínio mostra, de maneira intuitiva, porque o Teorema Fundamental da Redução é válido.

A seguir, aplicaremos o teorema em um exemplo prático para ilustrar sua utilidade.


Exemplo: Determine o polinômio cromático do grafo 𝐺 a seguir.

Para resolver, aplicamos o Teorema Fundamental da Redução a fim de gerar a árvore de decom-
posição do grafo. No primeiro estágio, devemos decompor os níveis da árvore até obter polinômios
cromáticos fundamentais. Em seguida, percorremos a árvore no sentido inverso, combinando os re-
sultados para calcular o polinômio cromático final de 𝐺.
Iniciamos pela aplicação do teorema fundamental da redução em 𝐺:

𝑃 (𝐺, 𝑘) = 𝑃 (𝐺 − 𝑒, 𝑘) − 𝑃 (𝐺/𝑒, 𝑘) = 𝑃 (𝐶4 , 𝑘) − 𝑃 (𝑃3 , 𝑘).

Como 𝑃3 tem um polinômio fundamental, é folha da árvore de decomposição. Assim, temos:

𝑃 (𝑃3 , 𝑘) = 𝑘(𝑘 − 1)2 .

Esta folha está encerrada. Vamos agora aplicar o teorema da redução em 𝐶4 :

𝑃 (𝐶4 , 𝑘) = 𝑃 (𝐶4 − 𝑒, 𝑘) − 𝑃 (𝐶4 /𝑒, 𝑘) = 𝑃 (𝑃4 , 𝑘) − 𝑃 (𝐾3 , 𝑘).

Note que ambos 𝑃4 e 𝐾3 possuem polinômios fundamentais, o que nos leva a:

𝑃 (𝑃4 , 𝑘) = 𝑘(𝑘 − 1)3 , 𝑃 (𝐾3 , 𝑘) = 𝑘(𝑘 − 1)(𝑘 − 2).

199
Como ambos são folhas, podemos voltar na árvore e computar o polinômio de 𝐶4 como:

𝑃 (𝐶4 , 𝑘) = 𝑘(𝑘 − 1)3 − 𝑘(𝑘 − 1)(𝑘 − 2) = 𝑘(𝑘 − 1) (𝑘 − 1)2 − (𝑘 − 2) .


[︀ ]︀

Expandindo o quadrado, temos:

𝑃 (𝐶4 , 𝑘) = 𝑘(𝑘 − 1) 𝑘 2 − 2𝑘 + 1 − 𝑘 + 2 = 𝑘(𝑘 − 1) 𝑘 2 − 3𝑘 + 3 .


[︀ ]︀ [︀ ]︀

Agora que temos o polinômio de 𝐶4 , podemos voltar e calcular o polinômio final de 𝐺 como:

𝑃 (𝐺, 𝑘) = 𝑘(𝑘 − 1) 𝑘 2 − 3𝑘 + 3 − 𝑘(𝑘 − 1)2 .


[︀ ]︀

Colocando o termo 𝑘(𝑘 − 1) em evidência:

𝑃 (𝐺, 𝑘) = 𝑘(𝑘 − 1) (𝑘 2 − 3𝑘 + 3) − (𝑘 − 1) = 𝑘(𝑘 − 1)(𝑘 2 − 4𝑘 + 4).


[︀ ]︀

Fatorando o polinômio quadrático, finalmente chegamos em:

𝑃 (𝐺, 𝑘) = 𝑘(𝑘 − 1)(𝑘 − 2)2 .

Pergunta: quantas 5-colorações válidas existem para o grafo 𝐺 em questão?

𝑃 (𝐺, 5) = 5 × 4 × 32 = 20 × 9 = 180.

Exercício: Utilizando o teorema fundamental da redução, encontre o polinômio cromático dos grafos

200
a seguir. Mostre a árvore de decomposição.

15.3 Considerações finais


O estudo da coloração de vértices em grafos revela a profundidade e a riqueza das conexões en-
tre teoria dos grafos e aplicações práticas em diversas áreas da ciência e da engenharia. Embora o
conceito inicial seja simples — atribuir cores a vértices de modo que vértices adjacentes não com-
partilhem a mesma cor — os resultados obtidos mostram-se surpreendentemente complexos e desa-
fiadores. A determinação exata do número cromático, por exemplo, é um problema NP-difícil, o que
justifica o desenvolvimento de algoritmos exatos, heurísticas e métodos aproximados.
Além do interesse teórico, a coloração de vértices desempenha um papel central em problemas do
mundo real, como alocação de frequências em redes de telecomunicações, escalonamento de tarefas,
organização de horários escolares e até mesmo na modelagem de problemas de tráfego urbano. A
análise de algoritmos clássicos, como o de Welsh & Powell, bem como o estudo de abordagens exatas
baseadas em decomposição, reforçam a importância do equilíbrio entre eficiência computacional e
precisão na solução.
Encerrando este capítulo, é importante destacar que a coloração de vértices representa apenas uma
das muitas faces do estudo da coloração em grafos. Extensões naturais, como a coloração de arestas e
de faces em grafos planares, ampliam ainda mais o leque de aplicações e abrem caminho para novos
desafios. Assim, compreender os fundamentos apresentados aqui é essencial para avançar em tópicos
mais complexos da teoria dos grafos e para explorar suas aplicações no contexto de problemas reais
e computacionalmente relevantes.

201
Informações sobre o autor
Alexandre L. M. Levada é Bacharel em Ciência da Computação pela Universidade Estadual Pau-
lista (UNESP) em 2002. Concluiu seu Mestrado em Ciência da Computação pela Universidade Fe-
deral de São Carlos (UFSCar) em 2006 e seu Doutorado em Física Computacional pela Universidade
de São Paulo (USP) em 2010. No mesmo ano, ingressou no Departamento de Computação da Uni-
versidade Federal de São Carlos. De 2010 a 2024, foi professor assistente no Departamento de Com-
putação, onde lecionou diversas disciplinas de graduação e pós-graduação como lógica matemática,
teoria dos grafos, matemática discreta, processamento digital de imagens, análise de sinais e sistemas,
reconhecimento de padrões, visão computacional, algoritmos e estruturas de dados 1 e 2, projeto e
análise de algoritmos, programação científica e otimização matemática. Desde 2024 é professor as-
sociado do mesmo departamento. Seus principais temas de pesquisa incluem redução de ruído em
sinais e imagens, reconhecimento de padrões e aprendizado de máquina, com ênfase em algoritmos
de classificação baseados em grafos, métodos de redução de dimensionalidade baseados em teoria
da informação e aplicação da geometria da informação na análise da dinâmica de campos aleatórios.
É autor de um livro, 3 capítulos de livro, 28 artigos em periódicos e 56 artigos em conferências. É
bolsista produtividade nível C do CNPq.

“Se você tiver um pão e eu tiver um euro, e eu uso o meu euro para comprar o seu pão, no final
da troca eu terei o pão e você o euro. Parece um equilíbrio perfeito, não? A tem um euro, B
tem um pão; depois, A tem o pão e B o euro. É uma transação justa, mas meramente material.
Agora, imagine que você tem um soneto de Verlaine ou conhece o teorema de Pitágoras, e eu
não tenho nada. Se me ensinar, no final dessa troca, eu terei aprendido o soneto e o teorema,
mas você ainda os terá também. Nesse caso, não há apenas equilíbrio, mas crescimento. No
primeiro, trocamos mercadorias. No segundo, compartilhamos conhecimento. E enquanto a
mercadoria se consome, a cultura se expande infinitamente.”

Michel Serres, filósofo francês.

202
Referências

Kenneth H. Rosen. Discrete Mathematics and its Applications, 8ª edição, McGraw Hill, 2019.

Susanna S. Epp. Discrete Mathematics with Applications, 4ªedição, Cengage Learning, 2011.

Anamaria Gomide; Jorge Stolfi. Elementos de Matemática Discreta para Computação, 2013. Dispo-
nível em: [Link]
[Link]

Steven Roman. An Introduction to Discrete Mathematics, Harcourt College Publishers, 1985.

Edward R. Scheinerman. Matemática Discreta - Uma Introdução, Tradução da 3ª Edição Norte-


Americana, Cengage Learning, 2016.

Clifford Stein; Robert L. Drysdale; Kenneth Bogart. Matemática discreta para ciências da computa-
ção, Pearson, 2013.

Paulo Blauth Menezes. Matemática Discreta Para Computação e Informática, 4ª Edição, Bookman,
2013.

Paulo Blauth Menezes; Laira Vieira Toscani; Javier García López. Aprendendo Matemática Discreta
com Exercícios, 1ª Edição, 2009.

Ralph P. Grimaldi. Discrete and Combinatorial Mathematics: An Applied Introduction, 5a edição,


2003.

Maria do Carmo Nicoletti; Estevam R. Hruschka Jr. Fundamentos da Teoria dos Grafos para Com-
putação, 2ª edição, Série Apontamentos, EdUFSCar, 2009.

Douglas West. Introduction to Graph Theory, 2ª edição, Prentice Hall, 2001.

Robin Wilson. Introduction to Graph Theory, 3ª edição, Longman Scientific & Technical, 1985.

M. Goldbarg e E. Goldbarg. Grafos: conceitos, algoritmos e aplicações, Elsevier, 2012.

John Clark; Derek Allan Holton. A First Look at Graph Theory. World Scientific, 1998.

Aldous, J. M. e Wilson, R. J. Graphs and Applications: An Introductory Approach, Springer, 2000.

203

View publication stats

Você também pode gostar