Conexões Matemáticas que Transformam o Mundo
Coleção Escola de Lógica Matemática
JOÃO CARLOS MOREIRA
Doutor em Matemática
Universidade Federal de Uberlândia
Copyright©2013-2025 Coleção Escola de Lógica Matemática. Todos os direitos reservados.
Imagine um mundo onde cada objeto, cada pessoa, cada ideia existe completamente isolada, sem qualquer ligação com as demais. Seria um universo fragmentado, incompreensível, onde o conhecimento seria impossível. Felizmente, nosso mundo é tecido por conexões invisíveis que ligam tudo a tudo: o preço de um produto ao seu peso, a temperatura ao longo do dia, a idade de uma pessoa ao seu ano de nascimento. Estas conexões, quando estudadas matematicamente, revelam-se como relações e funções — os protagonistas silenciosos que organizam nosso entendimento da realidade.
Desde os primórdios da civilização, o ser humano percebeu padrões e conexões. Os antigos babilônios relacionavam o movimento dos astros com as estações do ano. Os egípcios conectavam a altura da cheia do Nilo com a produtividade agrícola. Mas foi apenas com o desenvolvimento da matemática moderna que pudemos formalizar estas conexões de maneira precisa, criando uma linguagem universal para descrever como as coisas se relacionam umas com as outras.
Ao acordar pela manhã, você já está imerso em um mar de relações matemáticas. O despertador relaciona horas a sons. O café da manhã relaciona alimentos a preços no supermercado. O trajeto para o trabalho ou escola relaciona distâncias a tempos de percurso. O salário mínimo relaciona-se com o poder de compra. Até mesmo as amizades podem ser vistas como relações entre pessoas em uma rede social. Cada uma dessas situações esconde estruturas matemáticas fascinantes esperando para serem descobertas.
As funções representam um tipo especial de relação onde cada entrada produz exatamente uma saída. Esta simplicidade aparente esconde um poder transformador imenso. Com funções, podemos calcular juros, prever trajetórias de foguetes, comprimir músicas em MP3, processar imagens digitais, e até mesmo treinar inteligências artificiais. O conceito de função é tão fundamental que permeia toda a matemática moderna e suas aplicações tecnológicas.
Este livro convida você a uma jornada fascinante pelo universo das relações e funções. Começaremos com os conceitos mais básicos, como pares ordenados e produto cartesiano, construindo gradualmente nosso entendimento até alcançar aplicações sofisticadas que movem o mundo moderno. Cada capítulo revelará novas camadas de complexidade e beleza, mostrando como ideias simples se combinam para criar estruturas matemáticas poderosas.
Relações e funções formam uma linguagem universal que transcende barreiras culturais e temporais. Um matemático brasileiro pode comunicar-se perfeitamente com um colega japonês usando esta linguagem. As mesmas funções que descrevem o movimento dos planetas também modelam o crescimento populacional de bactérias ou as oscilações do mercado financeiro. Esta universalidade revela uma unidade profunda na natureza, sugerindo que a matemática não é apenas uma invenção humana, mas uma descoberta de padrões fundamentais do universo.
Antes de mergulharmos nos detalhes técnicos, é importante cultivar a intuição correta. Pense em uma relação como uma ponte que liga elementos de dois conjuntos (ou do mesmo conjunto consigo mesmo). Algumas pontes são de mão única (funções), outras permitem tráfego nos dois sentidos (relações gerais). Algumas conectam cada elemento a exatamente um outro (funções injetoras), outras podem conectar vários elementos ao mesmo destino (funções não-injetoras). Com esta metáfora em mente, estaremos prontos para explorar o rico mundo matemático que nos aguarda.
Nossa aventura começa com o conceito fundamental de produto cartesiano, a base sobre a qual todas as relações são construídas. Prepare-se para descobrir como pares ordenados simples podem gerar estruturas de complexidade e beleza surpreendentes!
René Descartes revolucionou a matemática ao perceber que podemos representar pontos no plano usando pares de números. Esta ideia aparentemente simples — combinar elementos de dois conjuntos em pares ordenados — tornou-se a fundação sobre a qual toda a geometria analítica e, posteriormente, grande parte da matemática moderna foi construída. O produto cartesiano, batizado em homenagem a Descartes (Cartesius em latim), é a operação que formaliza esta combinação sistemática de elementos.
Um par ordenado (a, b) é fundamentalmente diferente de um conjunto {a, b}. Enquanto no conjunto a ordem não importa — {a, b} = {b, a} — no par ordenado a posição é crucial: (a, b) ≠ (b, a) quando a ≠ b. Esta distinção pode parecer sutil, mas suas consequências são profundas. Considere a diferença entre dizer "João ama Maria" e "Maria ama João" — a ordem transforma completamente o significado!
Dados dois conjuntos A e B, o produto cartesiano A × B é o conjunto de todos os pares ordenados possíveis onde o primeiro elemento vem de A e o segundo de B. Matematicamente, escrevemos: A × B = {(a, b) | a ∈ A e b ∈ B}. Se A tem m elementos e B tem n elementos, então A × B terá exatamente m × n elementos. Esta multiplicação de quantidades justifica o nome "produto".
O produto cartesiano pode ser visualizado de várias maneiras esclarecedoras. A mais comum é o plano cartesiano, onde A × B forma uma grade de pontos. Também podemos usar tabelas, onde as linhas representam elementos de A e as colunas elementos de B, com cada célula contendo um par ordenado. Diagramas de árvore mostram como cada elemento de A se ramifica para conectar com todos os elementos de B, ilustrando a natureza combinatória da operação.
O produto cartesiano possui propriedades algébricas interessantes que diferem das operações usuais com números. Por exemplo, ele não é comutativo: A × B ≠ B × A em geral. Também não é associativo no sentido estrito, embora (A × B) × C e A × (B × C) sejam isomorfos. A distributividade funciona com a união: A × (B ∪ C) = (A × B) ∪ (A × C), uma propriedade útil em muitas demonstrações.
A aplicação mais famosa do produto cartesiano é o sistema de coordenadas cartesianas. Ao tomar ℝ × ℝ, obtemos o plano cartesiano familiar, onde cada ponto é identificado por suas coordenadas (x, y). Este sistema revolucionou a geometria ao permitir que problemas geométricos fossem resolvidos algebricamente. Círculos tornam-se equações, retas viram funções lineares, e a distância entre pontos pode ser calculada pela fórmula de Pitágoras.
O conceito se estende naturalmente para três ou mais conjuntos. O produto A × B × C consiste de triplas ordenadas (a, b, c). No espaço tridimensional, ℝ × ℝ × ℝ = ℝ³ representa todos os pontos do espaço físico. Esta generalização continua: ℝⁿ representa o espaço n-dimensional, fundamental em física, economia (espaço de bens), e aprendizado de máquina (espaço de características).
Na ciência da computação, produtos cartesianos aparecem constantemente. Bancos de dados relacionais são essencialmente produtos cartesianos com restrições (joins). Arrays bidimensionais são produtos cartesianos de índices. Loops aninhados percorrem produtos cartesianos. Até mesmo a tela do seu computador é um produto cartesiano de pixels horizontais e verticais, onde cada par (x, y) identifica um ponto luminoso específico.
A importância da ordem em pares ordenados vai além da matemática pura. Em linguística, a ordem das palavras determina significado. Em química, a ordem dos átomos em uma molécula define substâncias completamente diferentes. Em música, a ordem das notas cria melodias distintas. Em genética, a ordem das bases no DNA codifica a vida. O produto cartesiano captura matematicamente esta importância universal da ordem e estrutura.
Com o produto cartesiano firmemente estabelecido como nossa fundação, estamos prontos para construir sobre ele o conceito de relação. Como veremos, uma relação é simplesmente um subconjunto de um produto cartesiano — mas que subconjuntos fascinantes e úteis eles podem ser! Prepare-se para descobrir como esta ideia simples se desdobra em uma teoria rica e aplicável que permeia toda a matemática.
Se o produto cartesiano nos dá todas as conexões possíveis entre dois conjuntos, uma relação binária seleciona algumas dessas conexões como significativas. É como ter uma lista telefônica com todos os números possíveis versus sua agenda pessoal com apenas os contatos que realmente importam para você. Matematicamente, uma relação binária R de A em B é simplesmente um subconjunto de A × B. Mas esta definição aparentemente modesta esconde uma riqueza conceitual extraordinária que permeia toda a matemática e suas aplicações.
Uma relação binária R entre conjuntos A e B é qualquer subconjunto de A × B. Se (a, b) ∈ R, dizemos que a está relacionado com b, e escrevemos aRb. Esta notação captura a essência de como pensamos sobre relações: "João é amigo de Maria", "5 é menor que 7", "Brasília é capital do Brasil". Cada uma dessas afirmações expressa que certo par ordenado pertence a uma relação específica.
Relações podem ser representadas de várias maneiras, cada uma revelando aspectos diferentes de sua estrutura. Diagramas de setas (sagitais) mostram visualmente as conexões. Matrizes booleanas codificam relações finitas numericamente. Gráficos no plano cartesiano revelam padrões geométricos. Tabelas organizam dados relacionais. A escolha da representação depende do contexto e do que queremos enfatizar ou descobrir sobre a relação.
O domínio de uma relação R é o conjunto de todos os primeiros elementos dos pares em R. A imagem é o conjunto de todos os segundos elementos. Estes conceitos capturam quais elementos realmente participam da relação. Por exemplo, na relação "é pai de" entre pessoas, o domínio são todos os pais e a imagem são todos os filhos. Note que domínio e imagem podem ser subconjuntos próprios dos conjuntos de partida e chegada.
Quando A = B, temos uma relação em A (ou relação sobre A). Estas relações são especialmente importantes pois descrevem como elementos de um conjunto se relacionam entre si. Exemplos abundam: "é irmão de" entre pessoas, "é divisor de" entre números, "é subconjunto de" entre conjuntos. Relações em um conjunto podem ter propriedades especiais como reflexividade, simetria e transitividade, que exploraremos em detalhe.
Toda relação R de A em B possui uma relação inversa R⁻¹ de B em A, obtida invertendo todos os pares: R⁻¹ = {(b, a) | (a, b) ∈ R}. Se R representa "é pai de", então R⁻¹ representa "é filho de". A operação de inversão reverte o sentido da relação, trocando domínio por imagem. Curiosamente, (R⁻¹)⁻¹ = R, mostrando que inversão é uma operação involutiva.
Podemos compor relações como fazemos com funções. Se R é uma relação de A em B e S é uma relação de B em C, a composição S ∘ R é a relação de A em C definida por: a(S ∘ R)c se existe b tal que aRb e bSc. Esta operação captura encadeamentos: se R é "é pai de" e S é "é irmão de", então S ∘ R é "é tio de". A composição permite construir relações complexas a partir de relações simples.
Relações binárias em um conjunto finito podem ser representadas como grafos direcionados, onde vértices são elementos e arestas são pares da relação. Esta representação visual é poderosa para entender estrutura e encontrar padrões. Caminhos no grafo correspondem a composições da relação. Ciclos indicam elementos relacionados que formam grupos fechados. A teoria dos grafos fornece ferramentas poderosas para analisar relações.
O modelo relacional de bancos de dados, fundamento de sistemas como MySQL e PostgreSQL, baseia-se diretamente no conceito matemático de relação. Uma tabela é uma relação, onde cada linha é uma tupla (generalização de par ordenado). Chaves estrangeiras estabelecem relações entre tabelas. Consultas SQL são operações sobre relações. A álgebra relacional fornece a fundamentação teórica para otimização de consultas.
Relações binárias modelam conexões em todos os aspectos da vida. Redes sociais são grafos de relações de amizade. Cadeias alimentares são relações de predação. Organogramas são relações hierárquicas. Rotas aéreas formam relações entre cidades. O comércio internacional é uma relação entre países. Até mesmo o amor pode ser visto matematicamente como uma relação (esperamos que simétrica!). Esta ubiquidade mostra como o conceito matemático de relação captura algo fundamental sobre como organizamos e entendemos o mundo.
Agora que compreendemos o que são relações binárias, estamos prontos para explorar suas propriedades especiais. Como veremos, certas propriedades — reflexividade, simetria, transitividade — transformam relações genéricas em estruturas matemáticas poderosas que classificam, ordenam e organizam o universo matemático e o mundo real.
Nem todas as relações são criadas iguais. Algumas possuem características especiais que as tornam particularmente úteis para modelar situações específicas. Assim como classificamos triângulos em equiláteros, isósceles e escalenos baseados em propriedades de seus lados, classificamos relações baseadas em como elas conectam elementos. Estas propriedades — reflexividade, simetria, antissimetria e transitividade — são os blocos fundamentais que determinam o comportamento e a utilidade de uma relação.
Uma relação R em um conjunto A é reflexiva quando todo elemento está relacionado consigo mesmo: para todo a ∈ A, temos aRa. A igualdade é o exemplo perfeito — todo número é igual a si mesmo. A relação "nasceu no mesmo ano que" é reflexiva, pois todos nasceram no mesmo ano que si mesmos. Por outro lado, "é pai de" não é reflexiva — ninguém é pai de si mesmo. A reflexividade captura a ideia de auto-relação universal.
O oposto da reflexividade é a irreflexividade: nenhum elemento está relacionado consigo mesmo. A relação "menor que" (<) é irreflexiva — nenhum número é menor que si mesmo. "É pai de" também é irreflexiva. Note que uma relação pode não ser nem reflexiva nem irreflexiva: "gosta de" entre pessoas pode ter alguns que gostam de si mesmos e outros que não.
Uma relação R é simétrica quando aRb implica bRa para quaisquer a e b. É como uma rua de mão dupla — se você pode ir de A para B, também pode voltar de B para A. "É irmão de" é simétrica: se João é irmão de Maria, Maria é irmã de João. A simetria captura reciprocidade e mutualidade. Geometricamente, o gráfico de uma relação simétrica é espelhado em relação à diagonal principal.
Uma relação R é antissimétrica quando aRb e bRa implicam a = b. Em outras palavras, elementos distintos não podem estar mutuamente relacionados. A relação ≤ é antissimétrica: se a ≤ b e b ≤ a, então necessariamente a = b. Antissimetria não significa ausência de simetria — significa que a única simetria permitida é na diagonal (elementos iguais). Esta propriedade é fundamental para relações de ordem.
Uma relação é assimétrica quando aRb implica que bRa é falso. É mais forte que antissimetria — não apenas proíbe mutualidade para elementos distintos, mas a proíbe completamente. Toda relação assimétrica é antissimétrica e irreflexiva. "É pai de" é assimétrica: se A é pai de B, B não pode ser pai de A. Relações assimétricas modelam situações estritamente direcionais.
Uma relação R é transitiva quando aRb e bRc implicam aRc. É a propriedade do encadeamento lógico: se A leva a B e B leva a C, então A leva a C. "Menor que" é transitiva: se a < b e b < c, então a < c. A transitividade permite fazer inferências, pular etapas intermediárias, e estabelecer conexões indiretas. É fundamental para raciocínio dedutivo e para estabelecer ordens e equivalências.
As propriedades das relações raramente aparecem isoladas. Combinações específicas criam estruturas matemáticas importantes. Reflexiva + simétrica + transitiva = relação de equivalência (classificação). Reflexiva + antissimétrica + transitiva = ordem parcial (hierarquia). Irreflexiva + transitiva = ordem estrita. Estas combinações não são acidentais — elas capturam padrões fundamentais de organização que aparecem repetidamente na matemática e na natureza.
Para relações finitas, podemos testar propriedades sistematicamente. Reflexividade: verificar diagonal da matriz. Simetria: matriz simétrica. Antissimetria: não há 1s simétricos fora da diagonal. Transitividade: mais complexa, requer verificar todos os caminhos de comprimento 2. Para relações infinitas, usamos definições e demonstrações. Algoritmos eficientes existem para testar estas propriedades em grafos grandes.
As propriedades das relações revelam estrutura profunda. Simetria sugere equilíbrio e reciprocidade. Transitividade indica propagação e herança de características. Antissimetria implica hierarquia e direção. Reflexividade mostra completude e auto-contenção. Ao identificar estas propriedades, descobrimos a arquitetura oculta das relações, permitindo-nos prever comportamentos, fazer inferências e escolher a relação certa para modelar cada situação.
Com este arsenal de propriedades em mãos, estamos prontos para explorar duas das estruturas mais importantes da matemática: relações de equivalência, que classificam e particionam, e relações de ordem, que hierarquizam e organizam. Estas estruturas, construídas a partir das propriedades que acabamos de estudar, são os pilares sobre os quais grande parte da matemática moderna se apoia.
O ato de classificar é fundamental ao pensamento humano. Agrupamos pessoas por profissão, animais por espécie, palavras por significado, números por propriedades. Matematicamente, este processo de classificação é capturado pelas relações de equivalência — relações que são simultaneamente reflexivas, simétricas e transitivas. Estas três propriedades, quando combinadas, criam uma estrutura poderosa que particiona conjuntos em classes disjuntas, organizando o caos em categorias bem-definidas.
Uma relação de equivalência deve satisfazer três condições sagradas. Reflexividade garante que todo elemento pertence a alguma classe (está relacionado consigo mesmo). Simetria assegura que a relação é bidirecional (se a está na mesma classe que b, então b está na mesma classe que a). Transitividade permite que a classificação se propague (elementos relacionados ao mesmo elemento estão relacionados entre si). Juntas, estas propriedades criam uma classificação perfeita e consistente.
Dado um elemento a em um conjunto com relação de equivalência R, a classe de equivalência de a, denotada [a], é o conjunto de todos os elementos relacionados com a: [a] = {x | xRa}. É como o "time" ou "grupo" ao qual a pertence. Propriedade fundamental: dois elementos estão na mesma classe se e somente se estão relacionados. Classes diferentes são disjuntas — não há elementos em comum. Todo elemento está em exatamente uma classe.
Existe uma correspondência biunívoca entre relações de equivalência e partições. Toda relação de equivalência induz uma partição (as classes de equivalência), e toda partição define uma relação de equivalência (elementos estão relacionados se estão no mesmo bloco). Esta dualidade é profunda: classificar é o mesmo que particionar. Entender uma perspectiva automaticamente ilumina a outra.
A congruência módulo n é uma das relações de equivalência mais importantes da matemática. Dois números a e b são congruentes módulo n (escrito a ≡ b (mod n)) se têm o mesmo resto quando divididos por n. Esta relação particiona os inteiros em n classes: [0], [1], ..., [n-1]. A aritmética modular, fundamental em criptografia, teoria dos números e ciência da computação, opera nestas classes de equivalência.
O conjunto de todas as classes de equivalência é chamado conjunto quociente, denotado A/R. É o conjunto original "dividido" pela relação de equivalência. Por exemplo, ℤ/≡₅ tem 5 elementos: as classes [0], [1], [2], [3], [4]. O conjunto quociente captura a estrutura essencial após ignorar as diferenças consideradas "equivalentes". É uma forma de abstração matemática — tratamos classes inteiras como elementos únicos.
Geometria está repleta de relações de equivalência. Congruência: figuras com mesma forma e tamanho. Semelhança: mesma forma, tamanho pode diferir. Homotopia: deformação contínua. Cada uma define classes de figuras consideradas "iguais" sob certo aspecto. Estas equivalências permitem estudar propriedades invariantes — características que não mudam dentro de uma classe.
Os números racionais são construídos como classes de equivalência de frações. Definimos (a,b) ~ (c,d) se ad = bc (produtos cruzados iguais). Assim, 1/2, 2/4, 3/6, ... são todas representações da mesma classe de equivalência — o número racional que chamamos "um meio". Esta construção rigorosa mostra como relações de equivalência permitem criar novos objetos matemáticos a partir de objetos conhecidos.
Relações de equivalência são fundamentais em computação. Estados equivalentes em autômatos podem ser fundidos (minimização). Programas equivalentes produzem mesmas saídas para mesmas entradas. Complexidade: problemas na mesma classe têm dificuldade similar. Hash tables agrupam elementos por valor de hash. Tipos em linguagens de programação definem classes de equivalência de valores.
Relações de equivalência são ferramentas de abstração. Ao agrupar elementos "similares", podemos ignorar detalhes irrelevantes e focar no essencial. Este processo de abstração é fundamental em matemática e ciência. Números são abstrações de quantidades. Espécies são abstrações de organismos individuais. Conceitos são abstrações de instâncias específicas. A capacidade de criar e manipular classes de equivalência é central ao pensamento abstrato e à construção do conhecimento.
Tendo explorado como relações de equivalência classificam e organizam através de partições, voltamos nossa atenção para outro tipo fundamental de estrutura: relações de ordem. Enquanto equivalências agrupam elementos similares, ordens os arranjarão em hierarquias, sequências e estruturas que capturam noções de precedência, grandeza e prioridade.
A necessidade de ordenar e hierarquizar é tão antiga quanto a civilização. Ordenamos números do menor para o maior, organizamos tarefas por prioridade, classificamos competidores por desempenho, estruturamos empresas em hierarquias. Matematicamente, estas organizações são capturadas por relações de ordem — estruturas que combinam reflexividade, antissimetria e transitividade para criar hierarquias consistentes. Desde a simples ordenação dos números naturais até estruturas complexas em computação e matemática avançada, relações de ordem fornecem o arcabouço para organizar informação de maneira lógica e útil.
Uma relação de ordem parcial (ou parcialmente ordenada) satisfaz três propriedades: reflexividade (a ≤ a), antissimetria (se a ≤ b e b ≤ a, então a = b), e transitividade (se a ≤ b e b ≤ c, então a ≤ c). O termo "parcial" indica que nem todos os pares de elementos são comparáveis — podem existir elementos sem relação de ordem entre si. É como uma árvore genealógica: nem todas as pessoas são ancestrais ou descendentes umas das outras.
A relação de divisibilidade nos inteiros positivos é uma ordem parcial perfeita. O número 1 divide todos (elemento mínimo), mas 6 e 10 são incomparáveis — nenhum divide o outro. A relação de subconjunto (⊆) ordena parcialmente conjuntos: {1} ⊆ {1,2} e {2} ⊆ {1,2}, mas {1} e {2} são incomparáveis. Organogramas empresariais são ordens parciais: nem todos os funcionários têm relação hierárquica direta.
Uma ordem total (ou linear) é uma ordem parcial onde quaisquer dois elementos são comparáveis. Para quaisquer a e b, vale a ≤ b ou b ≤ a (ou ambos, se a = b). Os números reais com ≤ formam ordem total — dados dois números, sempre podemos dizer qual é menor. Alfabetos são totalmente ordenados, permitindo ordenação lexicográfica de palavras. Ordens totais permitem algoritmos de ordenação eficientes e busca binária.
Ordens parciais podem ter elementos com status especial. Elemento mínimo: menor que todos os outros (se existe, é único). Elemento minimal: nenhum elemento é menor (pode haver vários). Analogamente para máximo e maximal. Supremo (menor limite superior) e ínfimo (maior limite inferior) generalizam máximo e mínimo para subconjuntos. Estes conceitos são fundamentais em análise matemática e otimização.
Diagramas de Hasse visualizam ordens parciais de forma elegante. Elementos são pontos, e desenhamos linha de a para b se a < b e não existe c com a < c < b (cobertura imediata). Omitimos setas (direção é sempre para cima) e links transitivos (podem ser inferidos). O resultado é uma representação limpa e intuitiva da estrutura de ordem, revelando níveis, cadeias e anticadeias.
Um reticulado é uma ordem parcial onde cada par de elementos possui supremo e ínfimo. Conjuntos com ⊆ formam reticulado: supremo é união, ínfimo é interseção. Divisores de um número com divisibilidade formam reticulado: supremo é mmc, ínfimo é mdc. Reticulados aparecem em lógica (proposições com ∧ e ∨), topologia (abertos com união e interseção), e álgebra (ideais de um anel).
Uma boa ordem é uma ordem total onde todo subconjunto não-vazio tem elemento mínimo. Os naturais com ≤ são bem-ordenados, fundamentando o princípio de indução matemática. Nem toda ordem total é boa ordem: reais não são bem-ordenados (intervalos abertos não têm mínimo). O teorema da boa ordenação (equivalente ao axioma da escolha) afirma que todo conjunto pode ser bem-ordenado — resultado profundo com consequências surpreendentes.
Ordens parciais são ubíquas em computação. Ordenação topológica resolve dependências em compilação e agendamento de tarefas. Controle de versão usa ordem parcial de commits. Hierarquia de tipos em linguagens orientadas a objetos. Ordem de avaliação em planilhas. Prioridades em sistemas operacionais. Complexidade computacional ordena problemas por dificuldade. Estruturas de dados como heaps e árvores de busca exploram propriedades de ordem.
Problemas de otimização buscam elementos maximais ou minimais em ordens parciais. Programação linear busca vértices ótimos em poliedros. Teoria dos jogos analisa estratégias dominadas (ordem parcial de preferências). Algoritmos gulosos exploram ordem local para aproximar ótimos globais. Programação dinâmica decompõe problemas usando ordem de subproblemas. A estrutura de ordem guia a busca por soluções ótimas.
Relações de ordem fornecem a estrutura matemática para organizar, comparar e otimizar. Seja ordenando números, organizando tarefas, ou estruturando hierarquias complexas, os princípios que estudamos neste capítulo são fundamentais. Agora, preparados com sólido entendimento de relações, estamos prontos para explorar o caso especial mais importante: funções — relações que associam cada entrada a exatamente uma saída, o conceito que revolucionou a matemática e possibilitou a era da computação.
Funções são as máquinas matemáticas que transformam entradas em saídas de maneira previsível e única. Cada entrada produz exatamente uma saída — esta unicidade distingue funções de relações gerais e as torna ferramentas poderosas para modelar processos determinísticos. Desde a simples regra que dobra números até as complexas funções que processam imagens em seu smartphone, o conceito de função permeia toda a matemática e tecnologia moderna. Neste capítulo, exploraremos esta ideia fundamental que revolucionou nosso entendimento de mudança, transformação e causalidade.
Formalmente, uma função f de A em B é uma relação que satisfaz duas condições cruciais: existência (todo elemento de A tem uma imagem em B) e unicidade (cada elemento de A tem exatamente uma imagem). Matematicamente: para todo a ∈ A, existe único b ∈ B tal que f(a) = b. Esta definição rigorosa captura a essência da determinação — conhecendo a entrada, a saída está completamente determinada.
Funções admitem múltiplas representações, cada uma revelando aspectos diferentes. A notação f(x) = 2x + 3 mostra a regra explícita. Tabelas listam pares entrada-saída. Gráficos visualizam comportamento global. Diagramas de setas mostram mapeamentos individuais. Máquinas de estado representam funções como transformações. Código de computador implementa funções algoritmicamente. A escolha da representação depende do contexto e do que queremos enfatizar.
Três conjuntos são fundamentais ao estudar funções. O domínio é o conjunto de todas as entradas possíveis. O contradomínio é o conjunto onde as saídas "vivem". A imagem é o conjunto das saídas que realmente ocorrem — pode ser menor que o contradomínio. Por exemplo, f: ℝ → ℝ com f(x) = x² tem domínio ℝ, contradomínio ℝ, mas imagem [0, ∞) — apenas não-negativos são atingidos.
Para relações no plano, o teste da linha vertical determina se são funções: uma relação é função se e somente se toda linha vertical intercepta seu gráfico no máximo uma vez. Este teste visual captura a unicidade — múltiplas interseções significariam múltiplas saídas para mesma entrada. Círculos falham no teste (não são funções de x), enquanto parábolas com eixo vertical passam.
Pensar em funções como transformações é profundamente intuitivo. f(x) = 2x "estica" números por fator 2. f(x) = x + 5 "translada" 5 unidades. f(x) = -x "reflete" pelo zero. f(x) = x² "eleva ao quadrado", deformando não-linearmente. Esta perspectiva geométrica é poderosa em computação gráfica, física e engenharia, onde funções literalmente transformam objetos, sinais e dados.
Nem toda função tem uma única fórmula global. Funções definidas por partes usam diferentes regras em diferentes regiões do domínio. A função valor absoluto |x| equals x se x ≥ 0, equals -x se x < 0. Tarifas de táxi, impostos progressivos, e muitos fenômenos reais são modelados por funções definidas por partes. Cuidado especial é necessário nos pontos de transição para garantir continuidade quando desejada.
Duas funções são iguais quando têm mesmo domínio, mesmo contradomínio, e produzem mesmas saídas para todas as entradas. f(x) = x² e g(x) = |x|² são funções iguais em ℝ, apesar das fórmulas diferentes. Esta noção de igualdade extensional (baseada em comportamento, não em forma) é fundamental em matemática e programação funcional.
Em programação, funções são blocos fundamentais de código reutilizável. Recebem parâmetros (domínio), executam computações, e retornam resultados (imagem). Funções puras — sem efeitos colaterais, sempre retornando mesmo resultado para mesma entrada — correspondem exatamente ao conceito matemático. Programação funcional eleva funções a cidadãs de primeira classe, permitindo passá-las como argumentos e retorná-las como valores.
O conceito moderno de função revolucionou a matemática. Antes visto como fórmulas ou curvas, função tornou-se correspondência abstrata entre conjuntos quaisquer. Podemos ter funções de palavras para números (comprimento), de pessoas para cores (preferida), de programas para sim/não (halt). Esta generalização libertou a matemática de números e geometria, abrindo caminho para topologia, análise funcional, teoria das categorias e ciência da computação teórica.
Funções são pontes determinísticas entre mundos matemáticos. Sua unicidade as torna previsíveis e confiáveis, fundamento para ciência e engenharia. Mas nem todas as funções são criadas iguais — algumas preservam estrutura (injetoras), outras cobrem todo o contradomínio (sobrejetoras), e as mais especiais fazem ambos (bijetoras). No próximo capítulo, exploraremos estes tipos especiais de funções e suas propriedades extraordinárias.
Assim como pessoas têm diferentes talentos e características, funções possuem propriedades especiais que as tornam adequadas para diferentes propósitos. Algumas preservam a distinção entre elementos (injetoras), outras alcançam todos os valores possíveis (sobrejetoras), e as mais versáteis combinam ambas as qualidades (bijetoras). Neste capítulo, exploraremos estes tipos especiais de funções, descobrindo como suas propriedades únicas as tornam ferramentas indispensáveis em matemática, computação e modelagem do mundo real.
Uma função f: A → B é injetora (ou injetiva, ou um-para-um) quando elementos distintos do domínio têm imagens distintas. Formalmente: se f(x₁) = f(x₂), então x₁ = x₂. Equivalentemente: se x₁ ≠ x₂, então f(x₁) ≠ f(x₂). Funções injetoras preservam distinção — não há "colisões" onde diferentes entradas produzem mesma saída. São como carimbos únicos: cada marca identifica inequivocamente sua origem.
A função f(x) = 2x + 3 é injetora em ℝ: entradas diferentes sempre produzem saídas diferentes. A função exponencial f(x) = 2ˣ é injetora: potências distintas de 2 são sempre diferentes. CPF é função injetora de brasileiros para números de 11 dígitos. Por outro lado, f(x) = x² não é injetora em ℝ porque f(-2) = f(2) = 4, mas é injetora se restrita a ℝ⁺.
Uma função f: A → B é sobrejetora (ou sobrejetiva, ou sobre) quando todo elemento do contradomínio é imagem de algum elemento do domínio. Formalmente: para todo b ∈ B, existe a ∈ A tal que f(a) = b. Em outras palavras, Im(f) = B. Funções sobrejetoras "cobrem" completamente o contradomínio — não há elementos "inalcançáveis".
A função f: ℝ → ℝ com f(x) = x³ é sobrejetora: todo número real é cubo de algum número. A projeção π: ℝ² → ℝ com π(x, y) = x é sobrejetora: todo número real aparece como primeira coordenada de algum ponto. Arredondamento de ℝ para ℤ é sobrejetor: todo inteiro é arredondamento de algum real. Mas f(x) = x² de ℝ em ℝ não é sobrejetora: números negativos não são quadrados de reais.
Uma função é bijetora (ou bijetiva, ou correspondência biunívoca) quando é simultaneamente injetora e sobrejetora. Cada elemento do domínio mapeia para único elemento do contradomínio, e cada elemento do contradomínio é imagem de exatamente um elemento do domínio. Bijeções estabelecem correspondência perfeita um-para-um entre conjuntos, preservando toda a estrutura e informação.
Bijeções são fundamentais porque estabelecem "igualdade de tamanho" entre conjuntos. Dois conjuntos têm mesma cardinalidade se e somente se existe bijeção entre eles. Conjuntos infinitos podem ter bijeções surpreendentes: existe bijeção entre naturais e inteiros (ambos enumeráveis), mas não entre naturais e reais (reais são não-enumeráveis). Bijeções preservam estrutura, permitindo transferir propriedades entre espaços.
Nos extremos do espectro estão funções triviais mas importantes. Funções constantes f(x) = c mapeiam todo o domínio para único valor — extremamente não-injetoras (exceto se |A| = 1) mas sobrejetoras se o contradomínio é {c}. A função identidade id(x) = x é a bijeção mais simples, mapeando cada elemento para si mesmo. Estas funções servem como elementos neutros e casos-base em muitas construções.
Para verificar se uma função é injetora, sobrejetora ou bijetora, usamos diferentes estratégias. Injetividade: mostrar que f(x₁) = f(x₂) implica x₁ = x₂, ou encontrar contraexemplo. Sobrejetividade: para cada b ∈ B, resolver f(x) = b, ou mostrar elemento não atingido. Para funções entre conjuntos finitos, podemos verificar diretamente. Para funções em ℝ, técnicas de cálculo (derivadas, limites) ajudam.
Podemos modificar funções alterando domínio ou contradomínio. Restringir domínio pode tornar função injetora: x² restrita a [0, ∞) é injetora. Reduzir contradomínio para a imagem torna qualquer função sobrejetora. Estas técnicas permitem ajustar funções para ter propriedades desejadas, fundamental em análise matemática e modelagem.
Os tipos especiais de funções que exploramos — injetoras, sobrejetoras e bijetoras — não são meras curiosidades matemáticas. São ferramentas fundamentais que aparecem em criptografia (bijeções), compressão de dados (sobrejeções), identificação única (injeções), e inúmeras outras aplicações. Com este conhecimento, estamos prontos para explorar como funções podem ser combinadas através de composição e quando podem ser desfeitas através de inversão, ampliando ainda mais nosso arsenal matemático.
Na vida, raramente fazemos apenas uma coisa por vez. Preparamos café e depois adoçamos. Lavamos roupa e depois passamos. Digitamos texto e depois formatamos. Matematicamente, este encadeamento de ações é capturado pela composição de funções — aplicar uma função ao resultado de outra. Igualmente importante é poder desfazer ações: desfazer um nó, descriptografar uma mensagem, resolver uma equação. A inversão de funções formaliza este processo de reversão. Juntas, composição e inversão formam o cerne da álgebra de funções, permitindo construir transformações complexas e navegá-las em ambas as direções.
Dadas funções f: A → B e g: B → C, a composição g ∘ f: A → C é definida por (g ∘ f)(x) = g(f(x)). Lemos "g composta com f" ou "g após f". Note a ordem: primeiro aplicamos f, depois g. É como uma linha de montagem onde cada estação transforma o produto. A notação reflete o fato de que g opera sobre o resultado de f.
Considere f(x) = x² e g(x) = x + 1. Então (g ∘ f)(x) = g(f(x)) = g(x²) = x² + 1, enquanto (f ∘ g)(x) = f(g(x)) = f(x + 1) = (x + 1)². Claramente diferentes! No mundo real: converter Celsius para Fahrenheit, depois arredondar; aplicar desconto, depois calcular imposto; comprimir arquivo, depois criptografar. Cada sequência produz resultado diferente.
A composição é associativa mas não comutativa. A função identidade é elemento neutro: f ∘ id = id ∘ f = f. Composição preserva propriedades: compor injetoras resulta injetora, compor sobrejetoras resulta sobrejetora, compor bijetoras resulta bijetora. Estas preservações são fundamentais em álgebra abstrata e teoria das categorias.
Uma função f: A → B tem inversa se existe g: B → A tal que g ∘ f = idₐ e f ∘ g = idᵦ. Neste caso, g é única e denotada f⁻¹. Intuitivamente, f⁻¹ "desfaz" o que f "faz". Para que f tenha inversa, deve ser bijetora: injetividade garante unicidade da reversão, sobrejetividade garante que todo elemento de B tem pré-imagem.
Para encontrar a inversa de f(x) = y, resolvemos para x em termos de y. Por exemplo, se f(x) = 2x + 3, então y = 2x + 3 implica x = (y - 3)/2, logo f⁻¹(y) = (y - 3)/2. Geometricamente, o gráfico de f⁻¹ é a reflexão do gráfico de f pela linha y = x. Nem sempre a inversa tem forma fechada simples, mas quando existe, fornece solução única.
Mesmo quando f não é bijetora, pode ter inversas parciais. Se f é injetora (mas não sobrejetora), tem inversa à esquerda g tal que g ∘ f = id. Se f é sobrejetora (mas não injetora), tem inversa à direita h tal que f ∘ h = id. Estas inversas laterais são úteis em situações onde reversão completa é impossível mas reversão parcial é suficiente.
A inversa de uma composição é a composição das inversas em ordem reversa: (g ∘ f)⁻¹ = f⁻¹ ∘ g⁻¹. É como desfazer ações em ordem oposta: para desfazer "vestir meias então sapatos", fazemos "tirar sapatos então meias". Esta propriedade é fundamental em álgebra linear (inversa de produto de matrizes) e teoria dos grupos.
Criptografia depende crucialmente de funções com inversas difíceis de calcular sem chave. Compressão usa funções sobrejetoras (com perda) ou bijetoras (sem perda). Mudanças de coordenadas em física e engenharia são bijeções compostas. Transformada de Fourier e sua inversa convertem entre domínios temporal e frequencial. Calibração de instrumentos usa funções inversas para converter leituras em valores reais.
A capacidade de compor e inverter funções nos dá controle sobre transformações. Podemos construir processos complexos passo a passo, e quando necessário, reverter para estados anteriores. Esta reversibilidade é essencial em computação (undo/redo), física (processos reversíveis), e matemática (resolver equações). Funções inversíveis preservam informação — nada é perdido na transformação, permitindo recuperação completa do original.
Composição e inversão revelam a estrutura algébrica profunda do mundo das funções. Como peças de LEGO matemático, funções podem ser conectadas e desconectadas, criando arquiteturas de complexidade arbitrária. Com este entendimento, estamos prontos para o capítulo final: explorar como funções aparecem e operam no mundo real, desde as telas de nossos smartphones até os modelos que preveem o clima e a economia.
Funções não vivem apenas em livros de matemática — elas pulsam no coração da tecnologia moderna, dirigem a economia, modelam fenômenos naturais e até mesmo criam a arte digital que consumimos diariamente. Cada vez que você usa o GPS, faz uma compra online, tira uma foto ou ouve música digital, funções matemáticas trabalham incansavelmente nos bastidores. Neste capítulo final, exploraremos como os conceitos abstratos que estudamos se materializam em aplicações que transformam nossas vidas diariamente, revelando a onipresença e o poder das funções no mundo real.
Cada pixel em sua tela é resultado de funções que transformam dados em cores. Funções de mapeamento convertem coordenadas de memória em pontos luminosos. Funções de interpolação suavizam imagens ampliadas. Compressão JPEG usa transformadas cosseno discretas — funções que convertem dados espaciais em frequências. Filtros do Instagram são composições de funções que ajustam brilho, contraste, saturação e matiz. A realidade aumentada usa funções para mapear objetos virtuais no mundo real.
A economia moderna é governada por funções. Oferta e demanda são funções do preço. Juros compostos seguem funções exponenciais. O valor presente de investimentos usa funções de desconto. Modelos de precificação de opções (Black-Scholes) empregam funções estocásticas complexas. PIB é função de consumo, investimento, gastos governamentais e exportações líquidas. Até mesmo o índice de Gini, que mede desigualdade, é calculado usando funções de distribuição de renda.
Medicina moderna depende crucialmente de funções. Tomografia computadorizada usa a transformada de Radon — função que reconstrói imagens 3D de projeções 2D. Eletrocardiogramas são funções do tempo mostrando atividade elétrica cardíaca. Farmacocinética modela concentração de medicamentos como função do tempo. Crescimento de tumores e propagação de epidemias seguem funções exponenciais ou logísticas. Até a relação entre dose e resposta de medicamentos é modelada por funções sigmoides.
Engenheiros são mestres em aplicar funções. Pontes são projetadas usando funções que relacionam carga e deformação. Circuitos elétricos operam com funções relacionando voltagem, corrente e resistência (Lei de Ohm). Sistemas de controle usam funções de transferência para garantir estabilidade. Antenas de celular usam funções de onda para transmitir dados. Ar-condicionado usa funções de realimentação para manter temperatura constante.
Algoritmos de redes sociais são essencialmente funções complexas. O feed do Facebook é função de engajamento, relevância e tempo. O algoritmo do Google PageRank é função iterativa que calcula importância de páginas. Sistemas de recomendação da Netflix e Spotify são funções que mapeiam histórico de usuário para sugestões. Criptografia HTTPS usa funções de mão única para proteger dados. Hashtags funcionam como funções categorizando conteúdo.
Música digital é pura matemática de funções. Ondas sonoras são funções senoidais do tempo. MP3 usa transformada de Fourier para comprimir áudio. Sintetizadores geram sons combinando funções de onda. Auto-tune corrige pitch usando funções de processamento de sinal. Equalizadores são funções que amplificam ou atenuam frequências. Até mesmo harmonia musical segue funções matemáticas — oitava é frequência duplicada, quinta justa é razão 3:2.
GPS funciona triangulando sinais de satélites usando funções de distância e tempo. Waze otimiza rotas usando funções de custo que consideram distância, tempo e tráfego. Uber calcula preços com funções de oferta e demanda (preço dinâmico). Pilotos automáticos em aviões usam funções de controle para manter altitude e direção. Semáforos inteligentes usam funções para otimizar fluxo de tráfego. Até a curva de uma estrada é calculada usando funções para garantir segurança em diferentes velocidades.
Análise esportiva moderna é dominada por funções estatísticas. Sabermetrics no beisebol usa funções para avaliar jogadores. VAR no futebol usa funções de processamento de imagem para detectar impedimentos. Técnicos usam funções de probabilidade para decidir estratégias. Atletas usam funções de frequência cardíaca para otimizar treinos. Até a trajetória de uma bola de futebol ou basquete segue funções parabólicas influenciadas pela gravidade e resistência do ar.
IA moderna é construída sobre camadas e camadas de funções. Redes neurais são composições de funções não-lineares. Funções de ativação (ReLU, sigmoid, tanh) determinam quando neurônios "disparam". Funções de perda medem quão erradas estão as previsões. Gradiente descendente usa derivadas de funções para aprender. GPT e outros modelos de linguagem são funções gigantescas mapeando texto para probabilidades. Reconhecimento de voz transforma ondas sonoras em texto através de funções complexas.
À medida que avançamos para um mundo cada vez mais digital e interconectado, funções tornam-se ainda mais centrais. Computação quântica opera com funções de onda complexas. Blockchain usa funções hash criptográficas para garantir integridade. Internet das Coisas conecta bilhões de dispositivos através de funções de comunicação. Carros autônomos navegam usando milhares de funções processando dados de sensores em tempo real. Medicina personalizada usará funções para mapear genoma individual para tratamentos customizados.
As funções são a linguagem silenciosa que conecta ideias abstratas a realidades concretas. Desde o simples ato de fazer uma ligação telefônica até a complexidade de prever mudanças climáticas, funções matemáticas são as ferramentas invisíveis que tornam possível o mundo moderno. Ao compreender relações e funções, você não apenas domina conceitos matemáticos — você adquire uma lente poderosa para entender e moldar o mundo ao seu redor. Cada problema que resolver, cada modelo que criar, cada insight que tiver, será construído sobre os fundamentos sólidos que exploramos nesta jornada. As funções não são apenas matemática — são a arquitetura do pensamento quantitativo que define nossa era.
Este volume sobre Relações e Funções foi construído sobre séculos de desenvolvimento matemático, desde os trabalhos pioneiros de Descartes e Leibniz até as aplicações contemporâneas em ciência de dados e inteligência artificial. As referências a seguir oferecem recursos para aprofundamento em cada aspecto das relações e funções, cobrindo tanto fundamentos teóricos quanto aplicações práticas no mundo moderno.
ALENCAR FILHO, Edgard de. Relações, Funções e Gráficos. 4ª ed. São Paulo: Nobel, 2002.
ANTON, Howard; BIVENS, Irl; DAVIS, Stephen. Cálculo. 10ª ed. Porto Alegre: Bookman, 2014. 2 v.
ÁVILA, Geraldo. Introdução às Funções e à Derivada. São Paulo: Atual, 1994.
BEZERRA, Manoel Jairo. Matemática para o Ensino Médio. São Paulo: Scipione, 2001.
BIANCHINI, Edwaldo; PACCOLA, Herval. Matemática. São Paulo: Moderna, 2004. 3 v.
BOYCE, William E.; DIPRIMA, Richard C. Equações Diferenciais Elementares e Problemas de Valores de Contorno. 10ª ed. Rio de Janeiro: LTC, 2015.
BRASIL. Base Nacional Comum Curricular: Educação é a Base. Brasília: MEC/CONSED/UNDIME, 2018.
BRASIL. Parâmetros Curriculares Nacionais: Matemática. Brasília: MEC/SEF, 1998.
CARAÇA, Bento de Jesus. Conceitos Fundamentais da Matemática. Lisboa: Gradiva, 2003.
CARMO, Manfredo Perdigão do; MORGADO, Augusto César; WAGNER, Eduardo. Trigonometria e Números Complexos. Rio de Janeiro: SBM, 2005.
CARVALHO, Paulo Cezar Pinto. Introdução à Geometria Analítica. Rio de Janeiro: SBM, 2016.
CHURCHILL, Ruel V.; BROWN, James Ward. Variáveis Complexas e Aplicações. 9ª ed. Porto Alegre: AMGH, 2015.
COURANT, Richard; ROBBINS, Herbert. O que é Matemática? Rio de Janeiro: Ciência Moderna, 2000.
DANTE, Luiz Roberto. Matemática: Contexto e Aplicações. 3ª ed. São Paulo: Ática, 2016. 3 v.
DAVIS, Philip J.; HERSH, Reuben. A Experiência Matemática. Rio de Janeiro: Francisco Alves, 1985.
DELGADO, Jorge; FRENSEL, Katia; CRISSAFF, Lhaylla. Geometria Analítica. Rio de Janeiro: SBM, 2017.
DOMINGUES, Hygino H.; IEZZI, Gelson. Álgebra Moderna. 5ª ed. São Paulo: Saraiva, 2018.
ELON, Lages Lima. Curso de Análise. 14ª ed. Rio de Janeiro: IMPA, 2016. v. 1.
ELON, Lages Lima. Álgebra Linear. 9ª ed. Rio de Janeiro: IMPA, 2016.
FIGUEIREDO, Djairo Guedes de. Análise I. 2ª ed. Rio de Janeiro: LTC, 1996.
FLEMMING, Diva Marília; GONÇALVES, Mirian Buss. Cálculo A: Funções, Limite, Derivação e Integração. 6ª ed. São Paulo: Pearson, 2006.
GERSTING, Judith L. Fundamentos Matemáticos para a Ciência da Computação. 7ª ed. Rio de Janeiro: LTC, 2017.
GIOVANNI, José Ruy; BONJORNO, José Roberto; GIOVANNI JR., José Ruy. Matemática Fundamental: Uma Nova Abordagem. São Paulo: FTD, 2011.
GUIDORIZZI, Hamilton Luiz. Um Curso de Cálculo. 5ª ed. Rio de Janeiro: LTC, 2001. 4 v.
HALLIDAY, David; RESNICK, Robert; WALKER, Jearl. Fundamentos de Física. 10ª ed. Rio de Janeiro: LTC, 2016. 4 v.
HALMOS, Paul R. Naive Set Theory. New York: Springer-Verlag, 1974.
HEFEZ, Abramo; VILLELA, Maria Lúcia Torres. Códigos Corretores de Erros. Rio de Janeiro: IMPA, 2008.
HOFFMAN, Kenneth; KUNZE, Ray. Álgebra Linear. 2ª ed. Rio de Janeiro: LTC, 1979.
HOWARD, Anton. Álgebra Linear com Aplicações. 10ª ed. Porto Alegre: Bookman, 2012.
IEZZI, Gelson; MURAKAMI, Carlos. Fundamentos de Matemática Elementar: Conjuntos e Funções. 9ª ed. São Paulo: Atual, 2013. v. 1.
IEZZI, Gelson et al. Matemática: Ciência e Aplicações. 9ª ed. São Paulo: Saraiva, 2016. 3 v.
KOLMAN, Bernard; HILL, David R. Introdução à Álgebra Linear com Aplicações. 8ª ed. Rio de Janeiro: LTC, 2006.
KREYSZIG, Erwin. Matemática Superior para Engenharia. 9ª ed. Rio de Janeiro: LTC, 2009. 3 v.
LANG, Serge. Álgebra Linear. Rio de Janeiro: Ciência Moderna, 2003.
LEITHOLD, Louis. O Cálculo com Geometria Analítica. 3ª ed. São Paulo: Harbra, 1994. 2 v.
LIMA, Elon Lages; CARVALHO, Paulo Cezar Pinto; WAGNER, Eduardo; MORGADO, Augusto César. A Matemática do Ensino Médio. 11ª ed. Rio de Janeiro: SBM, 2016. 4 v.
LIPSCHUTZ, Seymour. Teoria dos Conjuntos. São Paulo: McGraw-Hill, 1972.
LIPSCHUTZ, Seymour; LIPSON, Marc. Matemática Discreta. 3ª ed. Porto Alegre: Bookman, 2013.
MACHADO, Antonio dos Santos. Matemática: Temas e Metas. São Paulo: Atual, 1986. 6 v.
MACHADO, Nilson José. Matemática e Realidade. 8ª ed. São Paulo: Cortez, 2013.
MENEZES, Paulo Blauth. Matemática Discreta para Computação e Informática. 4ª ed. Porto Alegre: Bookman, 2013.
MORGADO, Augusto César; CARVALHO, João Bosco Pitombeira de; CARVALHO, Paulo Cezar Pinto; FERNANDEZ, Pedro. Análise Combinatória e Probabilidade. 10ª ed. Rio de Janeiro: SBM, 2016.
MORETTIN, Pedro A.; BUSSAB, Wilton O. Estatística Básica. 9ª ed. São Paulo: Saraiva, 2017.
MUNKRES, James R. Topology. 2nd ed. Upper Saddle River: Prentice Hall, 2000.
NETO, Antonio Caminha Muniz. Tópicos de Matemática Elementar: Números Reais. Rio de Janeiro: SBM, 2013. v. 1.
PAIVA, Manoel. Matemática. 3ª ed. São Paulo: Moderna, 2015. 3 v.
POOLE, David. Álgebra Linear. São Paulo: Cengage Learning, 2016.
ROSEN, Kenneth H. Matemática Discreta e suas Aplicações. 6ª ed. São Paulo: McGraw-Hill, 2009.
RUDIN, Walter. Princípios de Análise Matemática. Rio de Janeiro: Ao Livro Técnico, 1971.
SANTOS, José Plínio O.; MELLO, Margarida P.; MURARI, Idani T. C. Introdução à Análise Combinatória. 4ª ed. Rio de Janeiro: Ciência Moderna, 2007.
SCHEINERMAN, Edward R. Matemática Discreta: Uma Introdução. 3ª ed. São Paulo: Cengage Learning, 2016.
SHOKRANIAN, Salahoddin. Uma Introdução à Teoria dos Números. Rio de Janeiro: Ciência Moderna, 2008.
SILVA, Valdir Vilmar da. Teoria dos Conjuntos. Goiânia: UFG, 2012.
SMOLE, Kátia Stocco; DINIZ, Maria Ignez. Matemática para Compreender o Mundo. São Paulo: Saraiva, 2016. 3 v.
SOUZA, Joamir Roberto de. Novo Olhar: Matemática. 2ª ed. São Paulo: FTD, 2013. 3 v.
SPIVAK, Michael. Calculus. 4th ed. Houston: Publish or Perish, 2008.
STEINBRUCH, Alfredo; WINTERLE, Paulo. Álgebra Linear. 2ª ed. São Paulo: Pearson, 1987.
STEWART, James. Cálculo. 8ª ed. São Paulo: Cengage Learning, 2017. 2 v.
STRANG, Gilbert. Álgebra Linear e suas Aplicações. 4ª ed. São Paulo: Cengage Learning, 2010.
SWOKOWSKI, Earl W. Cálculo com Geometria Analítica. 2ª ed. São Paulo: Makron Books, 1994. 2 v.
THOMAS, George B.; WEIR, Maurice D.; HASS, Joel. Cálculo. 12ª ed. São Paulo: Pearson, 2012. 2 v.
WAGNER, Eduardo. Construções Geométricas. 6ª ed. Rio de Janeiro: SBM, 2007.