A Matemática das Conexões Universais
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 uma matemática onde não importa tanto o que as coisas são, mas como elas se relacionam. Um mundo onde as conexões, transformações e padrões estruturais revelam verdades profundas sobre todos os ramos do conhecimento matemático. Bem-vindo ao fascinante universo da teoria das categorias, uma linguagem revolucionária que unifica conceitos aparentemente distintos através de uma visão abstrata e poderosa. Como um telescópio que nos permite ver galáxias distantes, as categorias nos revelam padrões universais escondidos na estrutura da matemática.
A teoria das categorias nasceu na década de 1940, quando Samuel Eilenberg e Saunders Mac Lane buscavam entender conexões profundas entre topologia algébrica e álgebra homológica. O que descobriram foi muito mais: uma linguagem capaz de expressar relações estruturais em qualquer área da matemática. Como uma partitura musical que pode ser tocada em diferentes instrumentos mantendo sua essência, as categorias capturam padrões que se repetem em contextos completamente diferentes.
Uma categoria é como uma cidade com suas ruas e conexões. Os prédios são os objetos, as ruas que os conectam são os morfismos (também chamados de setas ou flechas). Mas não é qualquer conjunto de ruas: elas devem permitir caminhos compostos (se posso ir de A para B e de B para C, deve existir um caminho direto de A para C) e cada prédio tem uma "rua circular" que sai e volta para ele mesmo (a identidade). Esta estrutura simples esconde uma profundidade surpreendente.
Tradicionalmente, a matemática se preocupava com a natureza interna dos objetos. O que é um número? O que é um conjunto? A teoria das categorias muda o foco: o importante não é o que algo é internamente, mas como se comporta em relação a outros objetos. É como conhecer uma pessoa não por sua aparência, mas por suas relações e interações com o mundo. Esta mudança de perspectiva revela conexões inesperadas entre áreas aparentemente desconectadas da matemática.
A categoria Set dos conjuntos e funções é nosso exemplo mais familiar. Os objetos são todos os conjuntos possíveis, os morfismos são todas as funções entre eles. A composição é a composição usual de funções, e cada conjunto A tem sua função identidade que leva cada elemento em si mesmo. Mas este é apenas o começo: existem categorias de grupos, espaços topológicos, espaços vetoriais, e até categorias de categorias!
Categorias nos permitem falar sobre matemática em um nível de abstração sem precedentes. Podemos discutir propriedades que valem para todas as categorias, descobrir quando duas categorias são essencialmente a mesma (equivalência), e até construir novas categorias a partir de antigas. É como ter uma metalinguagem que permite falar sobre todas as linguagens matemáticas de uma vez.
A teoria das categorias encontrou um lar inesperado na ciência da computação. Linguagens de programação funcional como Haskell usam conceitos categóricos fundamentalmente. Tipos são objetos, programas são morfismos, e a composição de programas espelha a composição categórica. Conceitos como mônadas, que veremos adiante, revolucionaram a forma como lidamos com efeitos colaterais em programação pura.
Este livro é sua porta de entrada para este universo fascinante. Começaremos com os conceitos básicos de objetos e morfismos, construindo gradualmente nossa intuição. Exploraremos functores, que são como tradutores entre categorias diferentes. Descobriremos transformações naturais, que capturam a ideia de "fazer a mesma coisa de maneiras diferentes". E veremos como estes conceitos abstratos iluminam problemas concretos em matemática e computação.
A beleza da teoria das categorias está em sua capacidade de revelar unidade na diversidade. Problemas que parecem completamente diferentes em álgebra, topologia e lógica podem ser a mesma questão vista através de lentes diferentes. Como a descoberta de que luz, ondas de rádio e raios X são todos radiação eletromagnética, as categorias nos mostram que muitos fenômenos matemáticos são manifestações de princípios estruturais profundos.
Antes de mergulharmos nos detalhes técnicos, é importante desenvolver a intuição correta. Pense em categorias como o estudo de processos e transformações, não apenas de objetos estáticos. Cada morfismo conta uma história de mudança, cada composição revela um caminho, cada functor estabelece uma analogia. Com esta mentalidade, os conceitos abstratos ganharão vida e significado.
A jornada que iniciamos agora transformará sua maneira de ver a matemática. Dos fundamentos mais básicos às aplicações mais sofisticadas, a teoria das categorias oferece uma perspectiva unificadora única. Prepare-se para descobrir que a matemática, em sua essência, é sobre conexões, padrões e a beleza das relações estruturais!
No coração de toda categoria estão dois ingredientes fundamentais: objetos e morfismos. Se uma categoria fosse uma sinfonia, os objetos seriam as notas e os morfismos seriam as transições melódicas entre elas. Mas diferentemente da música tradicional, onde importa o som de cada nota, nas categorias o que realmente importa são as relações. Neste capítulo, exploraremos estes blocos construtivos essenciais, descobrindo como sua interação cria a rica tapeçaria da matemática categórica.
Objetos em uma categoria são como cidades em um mapa. Não precisamos saber quantos habitantes tem cada cidade ou qual sua altitude – o que importa são as estradas que as conectam. Em categorias matemáticas, objetos podem ser conjuntos, espaços, estruturas algébricas, ou até proposições lógicas. O fundamental é que eles servem como origem e destino para os morfismos.
Se objetos são substantivos, morfismos são verbos – eles fazem as coisas acontecerem. Um morfismo f: A → B é uma seta direcionada do objeto A (domínio) para o objeto B (codomínio). Em Set, morfismos são funções. Em Top, são funções contínuas. Em Grp, são homomorfismos de grupos. Cada categoria define seus próprios morfismos, mas todos compartilham propriedades estruturais fundamentais.
Escrevemos f: A → B para indicar um morfismo f do objeto A para o objeto B. Esta notação simples carrega informação crucial: a direção importa! Um morfismo de A para B é diferente de um morfismo de B para A, assim como viajar de São Paulo para Rio é diferente de viajar do Rio para São Paulo. A coleção de todos os morfismos de A para B é denotada por Hom(A,B) ou C(A,B) quando queremos explicitar a categoria C.
Alguns morfismos têm propriedades especiais que os tornam particularmente importantes. Monomorfismos generalizam funções injetivas – são morfismos que podem ser "cancelados pela esquerda". Epimorfismos generalizam funções sobrejetivas – podem ser "cancelados pela direita". Isomorfismos são morfismos com inversa bilateral, indicando que dois objetos são essencialmente idênticos do ponto de vista categórico.
Diagramas são a linguagem visual da teoria das categorias. Objetos aparecem como pontos ou nomes, morfismos como setas entre eles. Um diagrama comuta quando todos os caminhos entre dois pontos dão o mesmo resultado. É como dizer que não importa se você vai de casa para o trabalho passando pelo parque ou pela avenida – você chega ao mesmo destino. Esta propriedade de comutatividade é fundamental para expressar relações complexas de forma clara.
Uma das descobertas mais elegantes em categorias é a dualidade. Para cada categoria C, existe uma categoria dual C° onde todas as setas são revertidas. É como olhar o mundo através de um espelho: origem vira destino, destino vira origem. Surpreendentemente, muitos teoremas vêm em pares duais – prove um e você ganha o outro de graça! Produto e coproduto, limite e colimite, monomorfismo e epimorfismo são todos pares duais.
Na categoria Set, um monomorfismo é exatamente uma função injetiva, mas em outras categorias a situação pode ser mais sutil. Em Top, os monomorfismos são as funções contínuas injetivas, mas nem todo epimorfismo é sobrejetivo! A inclusão dos racionais nos reais com a topologia usual é um epimorfismo que não é sobrejetivo. Estes exemplos mostram como conceitos categóricos generalizam e refinam noções familiares.
Alguns objetos ocupam posições especiais em uma categoria. Um objeto inicial é aquele de onde parte exatamente um morfismo para cada outro objeto – é como uma fonte universal. Um objeto terminal é o dual: para ele converge exatamente um morfismo de cada objeto – um sumidouro universal. Em Set, o conjunto vazio é inicial e qualquer conjunto com um elemento é terminal. Estes objetos especiais, quando existem, são únicos a menos de isomorfismo.
O poder de trabalhar com objetos e morfismos abstratos é que podemos provar teoremas que valem em múltiplos contextos simultaneamente. Um resultado sobre morfismos em categoria abstrata se aplica automaticamente a funções, transformações lineares, homomorfismos e qualquer outra instância específica. É como descobrir uma lei da física que governa tanto planetas quanto elétrons – a mesma estrutura matemática em escalas diferentes.
Para desenvolver intuição sobre objetos e morfismos, pense em diferentes metáforas. Objetos como cidades, morfismos como estradas. Objetos como estados, morfismos como transições. Objetos como tipos de dados, morfismos como programas. Cada metáfora ilumina aspectos diferentes da estrutura categórica. Com o tempo, você desenvolverá uma intuição abstrata que transcende metáforas específicas.
Objetos e morfismos são os átomos do universo categórico. Simples em sua definição, ricos em suas interações, eles formam a base sobre a qual toda a teoria se constrói. Como veremos no próximo capítulo, a verdadeira mágica acontece quando começamos a compor morfismos, criando caminhos complexos através do espaço abstrato das categorias. A jornada está apenas começando!
Se objetos e morfismos são os tijolos da teoria das categorias, composição e identidade são o cimento que os une em estruturas coerentes. A composição nos permite construir novos caminhos a partir de caminhos existentes, enquanto a identidade garante que cada objeto tenha uma noção de "não fazer nada". Juntos, estes conceitos transformam uma coleção de setas em uma categoria viva e dinâmica. Neste capítulo, exploraremos as leis fundamentais que governam toda categoria.
Quando temos um morfismo f: A → B e outro g: B → C, a composição g ∘ f: A → C representa o caminho composto que vai de A para C passando por B. É como conectar dois trechos de viagem: se você pode ir de São Paulo a Campinas e de Campinas a Ribeirão Preto, então existe um caminho de São Paulo a Ribeirão Preto. Esta operação simples é o motor que dá vida às categorias.
A primeira lei fundamental das categorias é a associatividade da composição. Se temos três morfismos componíveis f: A → B, g: B → C e h: C → D, então h ∘ (g ∘ f) = (h ∘ g) ∘ f. Não importa como agrupamos as composições – o resultado é o mesmo. É como dizer que o caminho total de uma viagem não depende de onde você faz as paradas para descanso.
Cada objeto A em uma categoria possui um morfismo identidade especial id_A: A → A que age como elemento neutro para composição. Compor qualquer morfismo com a identidade apropriada não muda nada: f ∘ id_A = f e id_B ∘ f = f para f: A → B. É como multiplicar por 1 ou somar 0 – uma operação que preserva sem alterar.
Diagramas comutativos são a linguagem visual para expressar igualdades entre composições. Quando dizemos que um diagrama comuta, significa que todos os caminhos entre dois pontos dados resultam no mesmo morfismo composto. Um quadrado comutativo, por exemplo, expressa que ir por cima-direita é igual a ir por baixo-esquerda. Esta notação visual torna demonstrações complexas intuitivas e elegantes.
A associatividade e as identidades nos permitem desenvolver um cálculo de morfismos. Podemos simplificar expressões, fatorar composições, e manipular diagramas algebricamente. Por exemplo, se f é um isomorfismo com inversa g, então f ∘ g = id e g ∘ f = id. Estas equações podem ser manipuladas como equações algébricas, mas com o cuidado de respeitar a ordem (a composição não é comutativa em geral).
Em Set, a composição é a composição usual de funções: (g ∘ f)(x) = g(f(x)). Em Grp, é a composição de homomorfismos. Em Top, funções contínuas compõem para dar funções contínuas. Cada categoria concreta interpreta a composição abstrata de uma maneira específica, mas todas respeitam as mesmas leis fundamentais. Esta uniformidade estrutural é o que torna a teoria das categorias tão poderosa.
Nem sempre dois morfismos podem ser compostos – eles precisam ser compatíveis (o codomínio de um deve ser o domínio do outro). Isto torna a composição uma operação parcial, diferente de operações totais como adição de números. Esta parcialidade é fundamental: ela codifica a estrutura da categoria, determinando quais caminhos são possíveis e quais não são.
Em muitas aplicações, composição representa sequência temporal: primeiro faça f, depois faça g. Mas cuidado com a notação! Escrevemos g ∘ f mas lemos "g após f" – a ordem de escrita é reversa à ordem de execução. Esta convenção vem da notação de funções, onde escrevemos g(f(x)) aplicando f primeiro. Em diagramas, seguimos as setas da esquerda para direita, tornando a ordem mais intuitiva.
A identidade de cada objeto é única. Se existissem duas identidades para o mesmo objeto, elas seriam iguais pela própria definição de identidade. Esta unicidade é fundamental: ela garante que cada objeto tem uma noção bem-definida de "morfismo trivial". Além disso, identidades caracterizam isomorfismos: f é iso se e somente se existe g tal que as composições dão identidades.
Com composição e identidade, uma categoria forma uma estrutura algébrica rica. Não é um grupo (composição é parcial e não-comutativa), nem um monoide (novamente, parcialidade), mas algo novo e mais flexível. Categorias generalizam estas estruturas clássicas permitindo múltiplos objetos e composição parcial, capturando situações onde as estruturas tradicionais são inadequadas.
Composição e identidade são o coração pulsante de toda categoria. Elas transformam uma coleção estática de objetos e setas em um sistema dinâmico onde caminhos podem ser construídos, simplificados e compreendidos. Como blocos de construção fundamentais, elas aparecem em cada teorema, cada construção, cada aplicação da teoria das categorias. No próximo capítulo, veremos como functores estendem estas ideias, criando pontes entre categorias diferentes!
Imagine poder traduzir uma sinfonia em uma pintura, preservando não as notas ou cores, mas as relações harmônicas e estruturais. Functores são exatamente isso no mundo das categorias: transformações que preservam estrutura, levando objetos a objetos e morfismos a morfismos, respeitando composição e identidades. São as pontes que conectam diferentes ilhas matemáticas, revelando quando estruturas aparentemente distintas compartilham a mesma essência organizacional.
Um functor F: C → D entre categorias C e D é como um tradutor estrutural perfeito. Ele consiste de duas partes coordenadas: uma função que leva objetos de C em objetos de D, e uma função que leva morfismos de C em morfismos de D. Mas não é qualquer tradução – ela deve preservar a estrutura categórica: composições são preservadas (F(g ∘ f) = F(g) ∘ F(f)) e identidades são respeitadas (F(id_A) = id_{F(A)}).
O functor esquecimento de Grp para Set "esquece" a estrutura de grupo, mantendo apenas o conjunto subjacente. Cada grupo vai para seu conjunto de elementos, cada homomorfismo vai para a função subjacente. É como tirar os óculos matemáticos e ver apenas os elementos, sem a operação. Já o functor livre de Set para Grp faz o oposto: constrói o grupo livre sobre um conjunto, adicionando estrutura mínima necessária.
Functores covariantes preservam a direção das setas – são os que descrevemos até agora. Mas existem também functores contravariantes, que revertem setas: F(f: A → B) = F(f): F(B) → F(A). O functor de dualização que leva espaços vetoriais em seus duais é contravariente: uma transformação linear T: V → W induz T*: W* → V* na direção oposta. É como olhar através de um espelho que inverte não apenas imagens, mas também movimentos.
Em linguagens funcionais como Haskell, functores aparecem naturalmente. O tipo List é um functor: dada uma função f: A → B, obtemos map(f): List(A) → List(B). A operação map preserva composição: map(g ∘ f) = map(g) ∘ map(f), e map(id) = id. Maybe, Either, IO – todos são functores, permitindo transformar valores dentro de contextos preservando estrutura.
Functores podem ser compostos como funções. Se F: C → D e G: D → E, então G ∘ F: C → E é também um functor. A composição de functores é associativa e tem identidades (functores identidade), então categorias e functores formam eles mesmos uma categoria – a categoria Cat das categorias pequenas! É matemática sobre matemática, estrutura sobre estrutura.
Um functor fiel (faithful) é injetivo nos morfismos entre cada par de objetos – não colapsa setas distintas. Um functor pleno (full) é sobrejetivo nos morfismos – toda seta no destino vem de alguma seta na origem. Functores fielmente plenos estabelecem equivalências locais perfeitas. O functor de inclusão de uma subcategoria é sempre fiel, e é pleno quando a subcategoria é "completa" em morfismos.
Functores são ferramentas poderosas para definir invariantes. O grupo fundamental π₁ é um functor de espaços topológicos para grupos que detecta buracos. Dois espaços homeomorfos têm grupos fundamentais isomorfos, mas a recíproca é falsa – o functor "esquece" informação. Esta perda controlada de informação é útil: simplifica problemas mantendo características essenciais.
Um dos resultados mais profundos sobre functores é o Lema de Yoneda, que diz que um objeto é completamente determinado por seus morfismos. Especificamente, conhecer todos os morfismos para um objeto (functor representável) determina o objeto até isomorfismo. É como dizer que você é definido por todas as suas relações – uma visão profundamente relacional da identidade matemática.
Alguns pares de functores mantêm uma relação especial chamada adjunção. F: C → D é adjunto à esquerda de G: D → C quando morfismos F(A) → B correspondem naturalmente a morfismos A → G(B). Livre e esquecimento formam um par adjunto clássico. Adjunções capturam a ideia de "melhor aproximação possível" e aparecem por toda matemática. São tão fundamentais que Mac Lane disse: "adjunções estão em toda parte".
Quando temos dois functores paralelos F,G: C → D, podemos querer compará-los. Uma transformação natural é uma forma sistemática de ir de F para G, dando para cada objeto A um morfismo αA: F(A) → G(A), de forma que estes morfismos sejam compatíveis com a estrutura functorial. É uma "morfismo entre functores", levando a teoria das categorias a um nível ainda mais alto de abstração.
Functores são as autoestradas do mundo categórico, conectando diferentes regiões matemáticas enquanto preservam a estrutura essencial do tráfego de morfismos. Eles nos permitem traduzir problemas entre contextos, aplicar técnicas de uma área em outra, e descobrir unidades profundas na diversidade matemática. Como veremos no próximo capítulo, transformações naturais levam esta ideia adiante, permitindo comparar e relacionar diferentes functores de maneira estruturada!
Na sinfonia das categorias, se functores são melodias que conectam diferentes tonalidades, transformações naturais são as modulações suaves que permitem passar de uma melodia para outra harmoniosamente. Elas capturam a essência do que significa fazer "a mesma coisa" de maneiras diferentes, fornecendo um conceito preciso para a noção intuitiva de naturalidade em matemática. Quando dizemos que algo é "natural" ou "canônico", frequentemente há uma transformação natural nos bastidores.
Uma transformação natural α: F ⇒ G entre functores F,G: C → D é uma família de morfismos αA: F(A) → G(A), um para cada objeto A de C, que respeitam a estrutura functorial. A condição crucial é que para todo morfismo f: A → B em C, o diagrama com F(f), G(f), αA e αB comute. É como ter uma receita que funciona uniformemente, não importa os ingredientes específicos.
A condição de naturalidade é expressa pelo famoso "quadrado naturality". Para f: A → B, temos G(f) ∘ αA = αB ∘ F(f). Este diagrama comutativo diz que não importa se primeiro aplicamos F e depois transformamos com α, ou se transformamos primeiro e depois aplicamos G – o resultado é o mesmo. É esta coerência que torna a transformação "natural" em vez de artificial.
O determinante é uma transformação natural de GLn (matrizes invertíveis) para multiplicação de escalares não-zero. Para cada n, det: GLn → ℝ* é um homomorfismo, e estas funções são compatíveis com mudanças de base. A dupla dualização V → V** é natural, enquanto escolher um isomorfismo V → V* requer escolhas não-naturais (uma base). Esta distinção entre natural e artificial é fundamental em matemática.
Quando cada componente αA é um isomorfismo e as inversas também formam transformação natural, temos um isomorfismo natural. Functores relacionados por isomorfismo natural são "essencialmente os mesmos" – fazem o mesmo trabalho de maneiras superficialmente diferentes. Por exemplo, (A × B) × C é naturalmente isomorfo a A × (B × C), capturando a associatividade do produto em nível functorial.
Transformações naturais compõem de duas maneiras. Verticalmente: se α: F ⇒ G e β: G ⇒ H, então (β ∘ α): F ⇒ H com componentes βA ∘ αA. Horizontalmente: se α: F ⇒ G entre C e D, e H: D → E, então H(α): H∘F ⇒ H∘G. Estas composições satisfazem leis de intercâmbio, formando uma estrutura 2-categórica rica.
O Lema de Yoneda estabelece uma correspondência natural entre transformações naturais de um functor representável Hom(A,−) para qualquer functor F e elementos de F(A). Esta correspondência é ela mesma natural! É um resultado meta-natural sobre naturalidade, mostrando que transformações naturais são objetos matematicamente robustos, não apenas conveniências notacionais.
Em Haskell, transformações naturais aparecem como funções polimórficas que funcionam uniformemente para todos os tipos. A função reverse: [a] → [a] é natural no tipo a – reverte listas independentemente do tipo de elementos. A condição de naturalidade é garantida por parametricidade: funções polimórficas não podem "espiar" dentro dos tipos, forçando comportamento uniforme.
Duas categorias são equivalentes quando existem functores F: C → D e G: D → C com transformações naturais Id ≅ G∘F e F∘G ≅ Id. Não exigimos igualdade, apenas isomorfismo natural – uma condição mais flexível e natural. Categorias equivalentes são "essencialmente as mesmas" para todos os propósitos práticos, diferindo apenas em apresentação.
Transformações naturais são essenciais para definir limites e colimites. Um cone sobre um diagrama D é uma transformação natural do functor constante para D. O limite é o cone universal – aquele através do qual todos os outros faturam unicamente. Esta definição elegante unifica produtos, equalizadores, pullbacks e outras construções universais sob um mesmo framework.
Transformações naturais capturam matematicamente o que significa fazer algo "sem escolhas arbitrárias". Elas distinguem construções canônicas de artificiais, revelam quando diferentes abordagens são essencialmente equivalentes, e fornecem a linguagem para expressar comutatividade em dimensões superiores. São a cola que mantém o edifício categórico coeso.
Com transformações naturais, completamos o trio fundamental da teoria das categorias: categorias organizam objetos e morfismos, functores conectam categorias, e transformações naturais relacionam functores. Esta hierarquia de estruturas – objetos, morfismos, functores, transformações – pode continuar subindo (modificações, etc.), mas já temos ferramentas suficientes para explorar a maioria da matemática categórica. No próximo capítulo, examinaremos categorias com propriedades especiais que aparecem frequentemente na prática!
Assim como na natureza encontramos ecossistemas com características únicas – desertos, florestas tropicais, recifes de coral – no universo matemático existem categorias com propriedades especiais que as tornam particularmente interessantes ou úteis. Algumas têm estrutura adicional que permite operações especiais, outras satisfazem condições que garantem bom comportamento, e algumas capturam essências específicas de áreas matemáticas. Neste capítulo, exploraremos este zoológico de categorias especiais.
Uma distinção fundamental é entre categorias pequenas (objetos e morfismos formam conjuntos) e grandes (formam classes próprias). Set é grande – não existe conjunto de todos os conjuntos. Mas a categoria de grupos finitos é pequena. Esta distinção não é mera tecnicalidade: categorias pequenas podem ser objetos em outras categorias, permitindo estudar "categorias de categorias" sem paradoxos conjuntistas.
Categorias abelianas generalizam a categoria de grupos abelianos, fornecendo contexto abstrato para álgebra homológica. Têm zeros, produtos, coprodutos, kernels e cokernels, com várias compatibilidades. Todo morfismo fatora como epi seguido de mono (como rank-nullity). Exemplos incluem grupos abelianos, módulos sobre anéis, e feixes de grupos abelianos. Aqui podemos fazer "álgebra linear abstrata".
Uma categoria monoidal tem uma operação "produto tensor" ⊗ que é associativa e tem unidade, tudo até isomorfismo natural coerente. Exemplos incluem (Set, ×), (Vect, ⊗), (Cat, ×). A coerência é crucial: diferentes formas de associar devem dar o mesmo resultado. Categorias monoidais são o contexto natural para estudar álgebra em sentido abstrato – monoides, álgebras, coálgebras vivem aqui.
Uma categoria cartesiana fechada tem produtos finitos e exponenciais (objetos de morfismos). Em Set, o exponencial B^A é o conjunto de funções de A para B. A propriedade crucial é o isomorfismo natural Hom(A × B, C) ≅ Hom(A, C^B) – curry/uncurry. Estas categorias modelam cálculo lambda tipado e são fundamentais em semântica de linguagens de programação.
Um topos é uma categoria que se comporta como Set em muitos aspectos: tem limites finitos, exponenciais, e um "classificador de subobjetos" Ω que generaliza {verdadeiro, falso}. Topos unificam geometria, lógica e teoria de conjuntos. Podem ser vistos como universos matemáticos alternativos onde lógica intuicionista vale. Feixes sobre espaços topológicos formam topos, conectando geometria e lógica.
Em categoria comum, Hom(A,B) é apenas um conjunto. Em categoria enriquecida sobre V, Hom(A,B) é objeto de V. Categorias 2 são enriquecidas sobre Cat. Categorias métricas são enriquecidas sobre ([0,∞], ≥) – "distâncias" como hom-sets! Categorias DG são enriquecidas sobre complexos de cadeias. Enriquecimento adiciona estrutura aos morphismos, permitindo análise mais refinada.
Categorias trianguladas aparecem em topologia algébrica e geometria algébrica, capturando estrutura de complexos de cadeias até homotopia. Têm shift (suspensão) [1], e triângulos distinguidos X → Y → Z → X[1] que generalizam sequências exatas. A categoria derivada D(A) de uma categoria abeliana A é triangulada. Aqui vivem functores derivados como Ext e Tor.
Um grupoide é uma categoria onde todo morfismo é isomorfismo. Generalizam grupos (grupoides com um objeto) e relações de equivalência (grupoides finos). O grupoide fundamental de um espaço captura informação sobre caminhos entre pontos. Grupoides aparecem naturalmente em situações com simetria – ações de grupos, espaços de órbitas, stacks em geometria algébrica.
n-categorias têm morfismos entre morfismos até nível n. 2-categorias têm 2-morfismos (transformações naturais). ∞-categorias têm morfismos em todos os níveis. São essenciais em topologia algébrica moderna, teoria de homotopia, e física matemática. A ideia é que igualdade rígida é substituída por isomorfismo/equivalência em níveis superiores, capturando estrutura homotópica.
Categorias modelo fornecem framework para fazer teoria de homotopia em contextos abstratos. Têm três classes de morfismos: equivalências fracas, fibrações, cofibrações, satisfazendo axiomas de levantamento e fatoração. Permitem inverter equivalências fracas de forma controlada. Espaços topológicos, conjuntos simpliciais, complexos de cadeias todos admitem estruturas modelo.
Este tour por categorias especiais mostra a riqueza e diversidade do mundo categórico. Cada tipo captura aspectos diferentes da matemática – álgebra, topologia, lógica, geometria – fornecendo linguagem precisa e ferramentas poderosas. Como um artesão que escolhe a ferramenta certa para cada trabalho, o matemático moderno seleciona a categoria apropriada para o problema em questão. No próximo capítulo, exploraremos uma das construções mais importantes: limites e colimites!
Na arquitetura das categorias, limites e colimites são as vigas mestras que suportam construções universais. Como o encontro de rios formando um delta, ou estradas convergindo em uma praça central, limites capturam a ideia de "melhor aproximação comum" enquanto colimites expressam "menor extensão compartilhada". Estas construções duais unificam produtos, somas, equalizadores, e muitas outras operações fundamentais sob um único princípio elegante.
Limites generalizam a noção de "encontro" ou "interseção generalizada". Dado um diagrama de objetos e morfismos, o limite é o objeto "universal" que se relaciona com todo o diagrama de forma coerente. É como encontrar o máximo divisor comum em teoria dos números, mas em contexto categórico arbitrário. A universalidade significa que qualquer outro objeto com a mesma propriedade fatora através do limite de forma única.
Um cone sobre um diagrama D consiste de um objeto apex A e morfismos de A para cada objeto de D, compatíveis com os morfismos de D. É como um guarda-chuva cobrindo o diagrama. O limite é o cone "mais geral" – aquele através do qual todos os outros cones faturam. Esta caracterização por propriedade universal, não por construção específica, é a marca da teoria das categorias.
O produto A × B é o limite do diagrama discreto {A, B}. O pullback (produto fibrado) é o limite de um diagrama A → C ← B. O equalizador de f,g: A ⇒ B é o limite deste par de setas paralelas. Em cada caso, a construção universal captura precisamente a noção intuitiva: produto como "par ordenado generalizado", pullback como "interseção relativa", equalizador como "onde duas funções concordam".
Colimites são limites na categoria dual – setas revertidas. Enquanto limites "encontram", colimites "colam". O coproduto A + B (soma disjunta) é colimite de {A, B}. O pushout cola dois objetos ao longo de um comum. O coequalizador identifica pontos relacionados por morfismos paralelos. Colimites capturam construções por colagem, quocientes, e uniões generalizadas.
Nem toda categoria tem todos os limites. Set tem todos os limites e colimites pequenos. Categorias finitas raramente têm limites não-triviais. Um functor preserva limites quando F(lim D) = lim F(D) – leva limites em limites. Functores representáveis Hom(A,−) sempre preservam limites. O functor esquecimento Grp → Set preserva limites mas não colimites (coproduto de grupos não é união disjunta).
Limites interagem bem com outras construções. Limite de limites é limite do diagrama combinado. Limite em categoria de functores é calculado pontualmente: (lim F_i)(C) = lim F_i(C). Esta compatibilidade permite calcular limites complexos decompondo em pedaços simples. Em categorias concretas, limites frequentemente são subconjuntos com estrutura induzida.
Em Top, limites curiosos acontecem. O produto tem topologia produto (base de abertos produtos). Equalizadores têm topologia subespaço. Mas colimites são sutis: coproduto tem topologia soma, mas quocientes requerem topologia quociente, não subespaço da soma. Pushouts em Top são espaços colados – fundamentais em topologia algébrica para construir CW-complexos.
Limites ponderados generalizam limites comuns permitindo "coeficientes". Dado diagrama D: J → C e peso W: J → Set, o limite ponderado é o objeto representando transformações naturais de W para Hom(−,D). Limites comuns têm peso constante 1. Esta generalização é crucial em categorias enriquecidas onde precisamos de noções mais refinadas de limite.
A propriedade universal de limites é sua característica definidora. Não importa como você constrói o limite – se satisfaz a propriedade universal, é único até isomorfismo único. Esta abordagem "livre de coordenadas" liberta a matemática de escolhas arbitrárias, focando no que realmente importa: relações estruturais. É a essência do pensamento categórico.
Limites aparecem em toda matemática. Em álgebra, produtos diretos e kernels são limites. Em topologia, espaços de laços e fibras homotópicas. Em geometria algébrica, produtos fibrados de esquemas. Em análise, limites de sequências de Cauchy (completion). Em lógica, conjunção e quantificação universal. A ubiquidade de limites revela sua importância fundamental.
Limites e colimites são o coração operacional da teoria das categorias. Eles unificam construções díspares sob um princípio comum, revelam dualidades profundas, e fornecem linguagem precisa para propriedades universais. Como ferramentas de construção e análise, são indispensáveis. No próximo capítulo, exploraremos adjunções – pares de functores em harmonia perfeita que generalizam e explicam a onipresença de construções universais!
Se a teoria das categorias fosse música, adjunções seriam os acordes perfeitos – pares de functores em ressonância harmônica que aparecem por toda a matemática. Mac Lane famosamente declarou que "adjunções estão em toda parte", e de fato, sempre que encontramos uma construção "livre", uma "melhor aproximação", ou uma correspondência natural entre diferentes contextos, há uma adjunção trabalhando nos bastidores. Este capítulo revela a ubiquidade e o poder deste conceito fundamental.
Uma adjunção consiste de functores F: C → D (adjunto à esquerda) e G: D → C (adjunto à direita), com uma correspondência natural entre morfismos: Hom_D(F(A), B) ≅ Hom_C(A, G(B)). É como uma conversa bilíngue perfeita onde questões em uma língua correspondem naturalmente a questões na outra. F e G não são inversos, mas mantêm uma relação mais sutil e flexível.
O functor esquecimento U: Grp → Set esquece estrutura de grupo. Seu adjunto à esquerda F: Set → Grp constrói o grupo livre. A adjunção diz: homomorfismos do grupo livre F(X) para qualquer grupo G correspondem bijetivamente a funções de X para U(G). Esta é a propriedade universal do grupo livre! Adjunções capturam e generalizam propriedades universais.
Toda adjunção vem com transformações naturais especiais. A unidade η: Id → G∘F insere cada objeto em sua versão "livre-depois-esquecida". A counidade ε: F∘G → Id projeta cada objeto "esquecido-depois-livre" de volta. Estas satisfazem equações triangulares que expressam que certas composições são identidades. São como operações de ida-e-volta que se cancelam apropriadamente.
Teorema fundamental: adjuntos à direita preservam limites, adjuntos à esquerda preservam colimites. Se F ⊣ G, então G preserva produtos, equalizadores, pullbacks. F preserva coprodutos, coequalizadores, pushouts. Isto explica muitos fenômenos: produto de grupos livres não é livre (F não preserva produtos), esquecimento preserva produtos (G preserva limites).
Em categoria cartesiana fechada, temos adjunção (− × A) ⊣ (−)^A. O functor "produto com A" é adjunto à esquerda do functor "exponencial por A". Isto é curry/uncurry categoricamente! Morfismos B × A → C correspondem a B → C^A. Em Set, isto diz que funções de duas variáveis correspondem a funções retornando funções – a essência da programação funcional.
Quando unidade e counidade são isomorfismos naturais, a adjunção é uma equivalência de categorias. As categorias são "essencialmente as mesmas", diferindo apenas em apresentação. Equivalências são adjunções "perfeitas" onde F e G são quase-inversos. Mas adjunções gerais são mais flexíveis, conectando categorias genuinamente diferentes.
Kan extensions são "adjunções relativas" – a extensão de Kan à esquerda é adjunta à esquerda da restrição. Dado F: C → D e K: C → C', procuramos extender F ao longo de K para obter F': C' → D. Se existe adjunto à esquerda para restrição por K, é a extensão de Kan à esquerda. Mac Lane disse: "todos os conceitos são Kan extensions" – hipérbole justificada pela ubiquidade.
Toda adjunção F ⊣ G gera uma mônada T = G∘F em C. A unidade da adjunção é a unidade da mônada, G(ε_F) é a multiplicação. Mônadas capturam a "essência algébrica" de adjunções. Em programação, mônadas estruturam computações com efeitos. Toda mônada vem de uma adjunção (não unicamente) – teorema de existência profundo.
Adjunções aparecem em toda matemática. Em topologia: suspensão ⊣ espaço de laços. Em álgebra: tensor ⊣ hom, localização ⊣ inclusão. Em análise: extensão ⊣ restrição de funções. Em lógica: quantificadores como adjuntos. Em geometria: imagem direta ⊣ imagem inversa de feixes. Reconhecer adjunções revela estrutura profunda e sugere generalizações.
Adjunções expressam a ideia de "melhor aproximação possível" entre mundos diferentes. F encontra a melhor aproximação em D para objetos de C, G encontra a melhor aproximação em C para objetos de D. Não são traduções perfeitas (isso seria equivalência), mas ótimas dado as restrições. Esta ideia de otimalidade com restrições aparece em toda matemática e além.
Adjunções são talvez o conceito mais importante da teoria das categorias após a própria noção de categoria. Elas unificam construções aparentemente distintas, revelam estrutura profunda, e fornecem ferramentas poderosas de análise e construção. Como pontes conceituais entre mundos matemáticos diferentes, adjunções mostram que a matemática não é uma coleção de ilhas isoladas, mas um arquipélago conectado por correspondências naturais profundas. No próximo capítulo, exploraremos mônadas e comônadas – as estruturas algébricas que emergem de adjunções!
Das profundezas das adjunções emergem estruturas algébricas que capturam padrões computacionais fundamentais: mônadas e comônadas. Como o DNA que codifica informação biológica, mônadas codificam padrões de composição e efeitos. Se você já programou com Promises em JavaScript, List comprehensions em Python, ou Maybe em Haskell, você usou mônadas – talvez sem saber. Neste capítulo, desvendamos estes conceitos que revolucionaram tanto a matemática pura quanto a ciência da computação.
Uma mônada em uma categoria C é um endofunctor T: C → C equipado com duas transformações naturais: unidade η: Id → T (inserção) e multiplicação μ: T∘T → T (achatamento), satisfazendo leis de associatividade e unidade. É como ter uma forma de empacotar valores (T), colocar valores na embalagem (η), e achatar embalagens duplas em simples (μ), tudo de forma coerente.
Toda adjunção F ⊣ G gera uma mônada T = G∘F. A unidade da adjunção torna-se unidade da mônada, e μ = G(εF) onde ε é a counidade. Por exemplo, a adjunção livre-esquecimento para monoides gera a mônada lista: T(X) = lista de elementos de X, η insere elemento como lista singular, μ concatena lista de listas em lista simples.
Em programação funcional, mônadas estruturam computações com efeitos. Maybe modela computações que podem falhar, List modela não-determinismo, State modela estado mutável, IO modela efeitos colaterais. A operação bind (>>=) combina μ e fmap: transforma e achata. Mônadas permitem programação com efeitos em linguagens puras, mantendo referencialidade transparente.
Uma T-álgebra é um objeto A com estrutura α: T(A) → A compatível com a mônada. Para a mônada lista, álgebras são monoides: α interpreta lista como produto múltiplo. A categoria de T-álgebras tem morfismos que preservam estrutura. Surpreendentemente, sempre existe adjunção livre-esquecimento que regenera T – mônadas e adjunções têm relação íntima bidirecional.
Comônadas são mônadas na categoria dual – a direção das setas se inverte. Um comônada W tem counidade ε: W → Id (extração) e comultiplicação δ: W → W∘W (duplicação). Onde mônadas modelam produção de efeitos, comônadas modelam consumo de contexto. Em programação, modelam computações que dependem de ambiente ou contexto global.
As leis de mônada garantem comportamento sensato. Associatividade diz que não importa como agrupamos achatamentos múltiplos. Unidades dizem que inserir-e-achatar não faz nada. Em notação de programação: return a >>= f = f a (unidade esquerda), m >>= return = m (unidade direita), (m >>= f) >>= g = m >>= (λx → f x >>= g) (associatividade). Estas leis garantem composicionalidade.
Como combinar efeitos de diferentes mônadas? Transformadores de mônadas resolvem este problema. StateT adiciona estado a qualquer mônada. MaybeT adiciona possibilidade de falha. A ordem importa: StateT Maybe é diferente de MaybeT State. Transformadores permitem modularidade na construção de efeitos complexos, essencial em aplicações reais.
Em categorias monoidais, mônadas fortes têm estrutura adicional permitindo "força" – levar pares ordenados através da mônada preservando parte. Força τ: A × T(B) → T(A × B) é natural e coerente com estrutura monádica. Em programação, toda mônada em linguagens com produtos é automaticamente forte. Força é essencial para semântica de linguagens com efeitos.
Operads generalizam mônadas permitindo operações n-árias, não apenas binárias. Uma operad tem operações de aridade arbitrária com composições coerentes. Mônadas são operads com apenas operações unárias. Esta generalização aparece em topologia algébrica, onde operads descrevem tipos de álgebras. A teoria de operads unifica estruturas algébricas diversas.
Quando temos duas mônadas, podemos compô-las? Nem sempre! Precisamos de uma lei distributiva λ: S∘T → T∘S compatível com estruturas monádicas. Quando existe, obtemos mônada composta. Leis distributivas são raras e preciosas. Exemplo: distribuir State sobre List requer cuidado – estado local vs global. Esta dificuldade motiva transformadores de mônadas.
Mônadas e comônadas são mais que curiosidades categóricas – são ferramentas fundamentais para estruturar computação e álgebra. Desde bancos de dados (mônada bag) até mecânica quântica (comônadas em espaços de fase), estes conceitos aparecem onde precisamos gerenciar complexidade composicionalmente. Como síntese de adjunções e fonte de estrutura algébrica, mônadas exemplificam o poder unificador da teoria das categorias. No capítulo final, veremos como todos estes conceitos se materializam em aplicações concretas!
A teoria das categorias transcendeu suas origens na topologia algébrica para tornar-se uma linguagem universal que conecta matemática pura, ciência da computação, física, linguística e até biologia. Como o DNA matemático que codifica padrões estruturais profundos, as categorias revelam unidades escondidas em sistemas complexos. Neste capítulo final, exploramos como os conceitos abstratos que estudamos se manifestam em aplicações concretas que moldam nosso mundo tecnológico e científico.
Linguagens funcionais modernas são laboratórios vivos de teoria das categorias. Haskell implementa categorias explicitamente: tipos são objetos, funções são morfismos, composição de funções é composição categórica. Functores aparecem como type constructors mapeáveis. Mônadas estruturam efeitos. A correspondência Curry-Howard-Lambek conecta lógica, computação e categorias. Programadores usam teoria das categorias diariamente, conscientemente ou não.
David Spivak desenvolveu fundamentos categóricos para bancos de dados. Schemas são categorias, instâncias são functores para Set. Migrações de dados são transformações naturais. Queries são construções de limites e colimites. Esta abordagem unifica modelos relacionais, graph databases, e RDF. Integridade referencial torna-se propriedade functorial. A teoria oferece novo paradigma para gerenciamento de dados.
Trabalhos recentes revelam estrutura categórica em deep learning. Redes neurais formam categoria com arquiteturas como objetos e transformações treináveis como morfismos. Backpropagation é functor contravariente. Composição de camadas é composição categórica. Redes convolucionais exploram simetrias via teoria de representação categórica. Esta perspectiva sugere novas arquiteturas e algoritmos de otimização.
Bob Coecke e colaboradores desenvolveram "quantum picturalism" – física quântica via categorias monoidais. Estados quânticos são objetos, processos são morfismos. Composição sequencial e paralela correspondem a composição categórica e produto tensorial. Emaranhamento emerge naturalmente da estrutura monoidal. Protocolos quânticos tornam-se diagramas comutativos. ZX-calculus simplifica computação quântica usando reescrita de diagramas.
Applied Category Theory estuda sistemas complexos composicionalmente. Redes elétricas, químicas, biológicas são modeladas como categorias onde morfismos são sistemas abertos com interfaces. Composição conecta sistemas via interfaces compartilhadas. Functores traduzem entre diferentes tipos de sistemas. Esta abordagem unifica análise de sistemas diversos, de circuitos a ecossistemas.
Lambek desenvolveu gramáticas categóricas onde tipos sintáticos formam categoria. Palavras são morfismos entre tipos. Sentenças são composições de morfismos. Significado é functor para semântica. DisCoCat (Distributional Compositional Categorical) combina semântica distribucional com estrutura categórica. Modelos de linguagem modernos podem ser vistos através desta lente categórica.
Contratos inteligentes formam categoria onde objetos são estados e morfismos são transações. Composição é sequenciamento de transações. A blockchain é um functor desta categoria para a categoria de provas criptográficas. Consenso distribuído requer naturalidade – todos os nós concordam sobre composições. Zero-knowledge proofs usam construções categóricas para privacidade verificável.
Redes biológicas – metabólicas, genéticas, proteicas – têm estrutura categórica natural. Reações químicas são morfismos entre estados moleculares. Pathways são composições. Regulação gênica forma categoria enriquecida sobre reais positivos (níveis de expressão). Esta perspectiva revela princípios organizacionais e sugere intervenções terapêuticas via functores.
Teoria dos jogos encontra nova formulação em categorias. Jogos são objetos, estratégias são morfismos. Composição é sequenciamento de jogadas. Equilíbrio de Nash emerge de propriedades universais. Jogos composicionais modelam interações complexas modularmente. Lenses bidirecionais capturam informação imperfeita. Esta abordagem unifica diferentes tipos de jogos e facilita análise.
Categorias superiores prometem revolucionar matemática e física. Homotopy Type Theory une lógica, topologia e computação. Derived categories transformam geometria algébrica. Stack categories capturam simetrias quânticas. À medida que sistemas tornam-se mais complexos e interconectados, o pensamento categórico – focado em relações e composição – torna-se indispensável.
A teoria das categorias começou como ferramenta técnica em topologia algébrica e floresceu em linguagem universal conectando domínios diversos. De programação funcional a física quântica, de bancos de dados a biologia, as categorias revelam estruturas profundas e sugerem novas direções. Como vimos nesta jornada, pensar categoricamente significa focar em relações, composição e estrutura universal. Em um mundo cada vez mais interconectado e complexo, esta perspectiva relacional e composicional não é apenas útil – é essencial. O futuro da matemática, computação e ciência será profundamente categórico!
Esta exploração da teoria das categorias fundamenta-se em décadas de desenvolvimento matemático, desde os trabalhos pioneiros de Eilenberg e Mac Lane até as aplicações contemporâneas em computação quântica e inteligência artificial. As referências aqui compiladas oferecem caminhos para aprofundamento, cobrindo desde textos introdutórios acessíveis até tratados avançados sobre categorias superiores e aplicações especializadas.
AWODEY, Steve. Category Theory. 2nd ed. Oxford: Oxford University Press, 2010.
BARR, Michael; WELLS, Charles. Category Theory for Computing Science. 3rd ed. Montreal: Centre de Recherches Mathématiques, 1998.
BORCEUX, Francis. Handbook of Categorical Algebra. Cambridge: Cambridge University Press, 1994. 3 v.
BRASIL. Base Nacional Comum Curricular: Educação é a Base. Brasília: MEC/CONSED/UNDIME, 2018.
COECKE, Bob; KISSINGER, Aleks. Picturing Quantum Processes: A First Course in Quantum Theory and Diagrammatic Reasoning. Cambridge: Cambridge University Press, 2017.
EILENBERG, Samuel; MAC LANE, Saunders. General Theory of Natural Equivalences. Transactions of the American Mathematical Society, v. 58, n. 2, p. 231-294, 1945.
FONG, Brendan; SPIVAK, David I. Seven Sketches in Compositionality: An Invitation to Applied Category Theory. Cambridge: Cambridge University Press, 2019.
FREYD, Peter; SCEDROV, Andre. Categories, Allegories. Amsterdam: North-Holland, 1990.
GOLDBLATT, Robert. Topoi: The Categorial Analysis of Logic. Revised ed. New York: Dover Publications, 2006.
GROTHENDIECK, Alexander. Sur quelques points d'algèbre homologique. Tôhoku Mathematical Journal, v. 9, n. 2, p. 119-221, 1957.
HATCHER, William S. The Logical Foundations of Mathematics. 2nd ed. Oxford: Pergamon Press, 1982.
JOHNSTONE, Peter T. Stone Spaces. Cambridge: Cambridge University Press, 1982.
JOHNSTONE, Peter T. Sketches of an Elephant: A Topos Theory Compendium. Oxford: Oxford University Press, 2002. 2 v.
KAN, Daniel M. Adjoint Functors. Transactions of the American Mathematical Society, v. 87, n. 2, p. 294-329, 1958.
KASHIWARA, Masaki; SCHAPIRA, Pierre. Categories and Sheaves. Berlin: Springer, 2006.
LAMBEK, Joachim; SCOTT, Philip J. Introduction to Higher Order Categorical Logic. Cambridge: Cambridge University Press, 1986.
LANE, Saunders Mac. Categories for the Working Mathematician. 2nd ed. New York: Springer, 1998.
LAWVERE, F. William; ROSEBRUGH, Robert. Sets for Mathematics. Cambridge: Cambridge University Press, 2003.
LAWVERE, F. William; SCHANUEL, Stephen H. Conceptual Mathematics: A First Introduction to Categories. 2nd ed. Cambridge: Cambridge University Press, 2009.
LEINSTER, Tom. Basic Category Theory. Cambridge: Cambridge University Press, 2014.
LURIE, Jacob. Higher Topos Theory. Princeton: Princeton University Press, 2009.
MAC LANE, Saunders; MOERDIJK, Ieke. Sheaves in Geometry and Logic: A First Introduction to Topos Theory. New York: Springer, 1992.
MAKKAI, Michael; PARÉ, Robert. Accessible Categories: The Foundations of Categorical Model Theory. Providence: American Mathematical Society, 1989.
MARQUIS, Jean-Pierre. From a Geometrical Point of View: A Study of the History and Philosophy of Category Theory. Dordrecht: Springer, 2009.
MAY, J. Peter. A Concise Course in Algebraic Topology. Chicago: University of Chicago Press, 1999.
MILEWSKI, Bartosz. Category Theory for Programmers. Scotts Valley: CreateSpace, 2018.
MOERDIJK, Ieke; REYES, Gonzalo E. Models for Smooth Infinitesimal Analysis. New York: Springer, 1991.
PIERCE, Benjamin C. Basic Category Theory for Computer Scientists. Cambridge: MIT Press, 1991.
QUILLEN, Daniel G. Homotopical Algebra. Berlin: Springer, 1967.
RIEHL, Emily. Category Theory in Context. New York: Dover Publications, 2016.
RIEHL, Emily. Categorical Homotopy Theory. Cambridge: Cambridge University Press, 2014.
ROMAN, Steven. An Introduction to the Language of Category Theory. Cham: Birkhäuser, 2017.
ROSICKÝ, Jiří. Accessible and Presentable Categories. Cambridge: Cambridge University Press, 2024.
SCHUBERT, Horst. Categories. Berlin: Springer, 1972.
SIMMONS, Harold. An Introduction to Category Theory. Cambridge: Cambridge University Press, 2011.
SPIVAK, David I. Category Theory for the Sciences. Cambridge: MIT Press, 2014.
STREET, Ross. Categorical Structures. In: HAZEWINKEL, M. (Ed.). Handbook of Algebra. Amsterdam: Elsevier, 1996. v. 1, p. 529-577.
TAYLOR, Paul. Practical Foundations of Mathematics. Cambridge: Cambridge University Press, 1999.
UNIVALENT FOUNDATIONS PROGRAM. Homotopy Type Theory: Univalent Foundations of Mathematics. Princeton: Institute for Advanced Study, 2013.
WEIBEL, Charles A. An Introduction to Homological Algebra. Cambridge: Cambridge University Press, 1994.
YETTER, David N. Functorial Knot Theory: Categories of Tangles, Coherence, Categorical Deformations, and Topological Invariants. Singapore: World Scientific, 2001.