Introduzione alla teoria delle categorie

  1. Introduzione
    1. Le categorie
    2. I funtori
    3. Le trasformazioni naturali
  2. Proprietà universali
    1. Prodotti
    2. Prodotti e funtori
    3. Oggetti iniziali e terminali
    4. Coprodotti
    5. Equalizzatori e coequalizzatori
    6. Limiti e colimiti
  3. Monoidi
    1. Linguaggio categoriale per i monoidi
  4. Categorie e funtori come oggetti
  5. Funtori rappresentabili
  6. Equivalenze di categorie
  7. Approfondimento su limiti e colimiti
  8. Introduzione alle aggiunzioni (adjunctions)
  9. Categorie monoidali

Introduzione

La teoria delle categorie fornisce una visione d’insieme della matematica. Osservando dall’alto, si perdono i dettagli, ma si colgono schemi e strutture comuni tra concetti apparentemente diversi. Ad esempio: in che senso il minimo comune multiplo di due numeri è simile alla somma diretta di due spazi vettoriali? Cosa accomuna gli spazi topologici discreti, i gruppi liberi e i campi delle frazioni?

Il concetto più importante introdotto è quello di proprietà universale. Più si va avanti nella matematica, più spesso ci si imbatte in oggetti definiti tramite proprietà universali. Gran parte della teoria delle categorie si occupa proprio di questo.

Un primo esempio è molto semplice. Sia 1 un insieme con un solo elemento. Allora vale la seguente proprietà: per ogni insieme X, esiste un’unica mappa da X a 1.

f : X \to 1

Questa mappa è unica, poiché ogni elemento di X viene mandato sull’unico elemento di 1.

Questo tipo di affermazioni (“esiste un’unica…”) è molto frequente in teoria delle categorie. Per dimostrare l’esistenza, bisogna costruire almeno una tale mappa. Per dimostrare l’unicità, si deve mostrare che qualunque due mappe con quella proprietà coincidono.

Si dice che la proprietà è “universale” perché afferma qualcosa sul rapporto tra un oggetto (ad esempio, l’insieme 1) e tutti gli altri oggetti di un certo tipo (tutti gli insiemi X).

Un secondo esempio riguarda gli anelli. L’anello degli interi \mathbb{Z} ha la seguente proprietà: per ogni anello R, esiste un unico omomorfismo \mathbb{Z} \to R.

Definiamo tale omomorfismo ponendo:

\varphi(n) = 1 + \cdots + 1 (n volte), se n > 0
\varphi(0) = 0
\varphi(n) = -\varphi(-n), se n < 0

Questa è una mappa ben definita e rispetta la struttura d’anello. Inoltre, qualsiasi altro omomorfismo \psi : \mathbb{Z} \to R deve mandare 1 in 1, e quindi coincide con \varphi per tutti gli interi. Quindi è unico.

In generale, oggetti con la stessa proprietà universale sono isomorfi. Più precisamente: se due oggetti A e B soddisfano la stessa proprietà universale, allora esiste un unico isomorfismo tra di essi.

Ad esempio, sia A un anello con la proprietà: per ogni anello R, esiste un’unica mappa da A a R. Allora A \cong \mathbb{Z}.

Anche se il contesto sembra riguardare solo anelli, in realtà questo tipo di argomentazione è molto generale e vale per qualunque oggetto definito tramite proprietà universali.

Un altro esempio è il seguente. Sia V uno spazio vettoriale con una base indicizzata da un insieme S. Allora, per ogni spazio vettoriale W, esiste una corrispondenza biunivoca tra le applicazioni lineari da V a W e le funzioni da S a W.

Ogni funzione da S a W si estende in modo unico a un’applicazione lineare da V a W. In simboli:

\text{Hom}(V, W) \cong \text{Fun}(S, W)

Cioè: specificare una mappa lineare da V a W equivale a specificare dove mandare gli elementi della base.

Un altro esempio riguarda la topologia. Dato un insieme S, si può costruire su di esso la topologia discreta, in cui ogni sottoinsieme è aperto. Questo spazio topologico, denotato D(S), ha la proprietà universale seguente: per ogni spazio topologico X, ogni funzione da S a X è automaticamente continua se S ha la topologia discreta.

Cioè: per ogni funzione f : S \to X, esiste un’unica mappa continua \bar{f} : D(S) \to X tale che \bar{f}(s) = f(s) per ogni s \in S.

Analogamente, nel caso delle mappe bilineari, dato uno spazio U \times V e una mappa bilineare b : U \times V \to T, si può costruire uno spazio T (detto prodotto tensoriale) tale che ogni mappa bilineare da U \times V a W fattorizza in modo unico tramite una mappa lineare da T a W.

Formalmente:

\text{Bil}(U \times V, W) \cong \text{Lin}(U \otimes V, W)

E, in effetti, questa proprietà determina in modo unico (a meno di isomorfismo) il prodotto tensoriale U \otimes V.

La lezione generale è la seguente: una volta che un oggetto è definito tramite una proprietà universale, esso è determinato univocamente (a meno di isomorfismo). Inoltre, spesso si può dimenticare completamente il modo in cui è stato costruito: la proprietà universale ne determina il comportamento.

Anche il concetto di nucleo in algebra ha una formulazione categorica tramite proprietà universali. Dato un omomorfismo di gruppi \theta : G \to H, il nucleo \ker(\theta) è caratterizzato dalla proprietà universale seguente: ogni mappa che si annulla su \theta fattorizza univocamente attraverso il nucleo.

Infine, si consideri un insieme coperto da due sottoinsiemi aperti: X = U \cup V. Allora, ogni coppia di mappe continue da U e V in un altro spazio Y che coincidono sull’intersezione U \cap V induce in modo unico una mappa continua da X a Y. Questo è un esempio classico di colla topologica, e la sua generalizzazione porta al teorema di van Kampen sull’invarianza del gruppo fondamentale.

Le categorie

Una categoria è un sistema di oggetti tra loro collegati tramite mappe (dette anche morfismi o frecce). Gli oggetti non vivono isolati: c’è sempre un modo di passare da uno all’altro tramite le frecce.

Esempi tipici di oggetti sono i gruppi o gli spazi topologici, mentre le mappe corrispondono, rispettivamente, agli omomorfismi di gruppi e alle applicazioni continue. Tuttavia, alcune categorie sono molto diverse da questi esempi classici: le “mappe” in una categoria possono non assomigliare affatto alle funzioni nel senso usuale.

Formalmente, una categoria \mathcal{A} è costituita da:

Tali dati devono soddisfare le seguenti proprietà:

La composizione è associativa e ogni oggetto ha un’identità neutra per la composizione.

In genere, si scrive f : A \to B per indicare una freccia da A a B, oppure si usa la notazione A \xrightarrow{f} B. Le mappe in \mathcal{A}(A, B) possono anche essere chiamate omomorfismi, anche se non sono necessariamente funzioni.

Una mappa identità è pensata come una composizione vuota, cioè la composizione di zero frecce. Analogamente, ogni oggetto può essere visto come la “partenza” e “arrivo” di una freccia identità.

Un diagramma è detto commutativo quando, se ci sono più cammini da un oggetto X a un oggetto Y, allora la composizione lungo ciascun cammino dà lo stesso risultato.

Per esempio, se nel seguente schema

A \xrightarrow{f} B \xrightarrow{g} C

e anche A \xrightarrow{h} C, allora si dice che il triangolo commuta se g \circ f = h.

Ogni mappa f \in \mathcal{A}(A, B) ha un dominio A e un codominio B. In genere si assume che \mathcal{A}(A, B) \cap \mathcal{A}(A', B') = \emptyset se A \ne A' o B \ne B'.

Esempi fondamentali di categorie:

Una mappa f : A \to B in una categoria è un isomorfismo se esiste una mappa g : B \to A tale che g \circ f = 1_A e f \circ g = 1_B. In tal caso A e B sono isomorfi e si scrive A \cong B.

Negli esempi sopra:

Non tutte le categorie sono “categorie di strutture su insiemi”. Alcuni esempi non hanno nemmeno elementi negli oggetti:

Un monoide è una categoria con un solo oggetto, ma non tutte le frecce devono essere invertibili.

Un preordine (cioè una relazione riflessiva e transitiva) può essere visto come una categoria dove tra ogni coppia di oggetti esiste al massimo una freccia. Se in più vale l’antisimmetria (A \leq B e B \leq A implica A = B), allora si parla di ordine parziale (o poset).

Una costruzione utile è quella della categoria opposta: data una categoria \mathcal{A}, si definisce \mathcal{A}^{\text{op}} invertendo tutte le frecce. Cioè: per ogni mappa f : A \to B in \mathcal{A}, esiste una mappa f : B \to A in \mathcal{A}^{\text{op}}.

La categoria prodotto \mathcal{A} \times \mathcal{B} ha come oggetti le coppie (A, B) con A \in \mathcal{A} e B \in \mathcal{B}, e come frecce le coppie (f, g) con f : A \to A' in \mathcal{A} e g : B \to B' in \mathcal{B}. La composizione è definita componente per componente.

I funtori

Un funtore è un modo per tradurre una categoria in un’altra, preservando la struttura delle frecce e degli oggetti. È come applicare una funzione non solo agli oggetti, ma anche alle relazioni tra oggetti.

Formalmente, un funtore F : \mathcal{A} \to \mathcal{B} consiste di:

Queste assegnazioni devono soddisfare due condizioni fondamentali:

  1. Il funtore preserva le identità:
    F(1_A) = 1_{F(A)}
  2. Il funtore preserva la composizione:
    F(g \circ f) = F(g) \circ F(f)

Un funtore trasforma i diagrammi commutativi in altri diagrammi commutativi.

Esempi:

Un funtore costante è un funtore che manda tutti gli oggetti su un oggetto fissato B in \mathcal{B}, e tutte le frecce sulla mappa identità 1_B.

Un funtore pieno è un funtore F : \mathcal{A} \to \mathcal{B} tale che per ogni coppia di oggetti A, A' in \mathcal{A}, la mappa

\mathcal{A}(A, A') \to \mathcal{B}(F(A), F(A'))

è suriettiva: cioè ogni freccia tra F(A) e F(A') è l’immagine di almeno una freccia da A a A'.

Un funtore fedele è un funtore per cui quella stessa mappa è iniettiva: cioè frecce diverse in \mathcal{A} restano diverse in \mathcal{B}.

Un funtore pieno e fedele è quindi biiettivo a livello degli insiemi di frecce tra ogni coppia di oggetti.

Un funtore si dice essenzialmente suriettivo sugli oggetti se ogni oggetto di \mathcal{B} è isomorfo a uno del tipo F(A) per qualche A.

Un funtore equivalenza di categorie è un funtore pieno, fedele ed essenzialmente suriettivo. In altre parole, stabilisce un’equivalenza tra la categoria sorgente e la categoria destinazione: anche se non sono identiche, si comportano allo stesso modo dal punto di vista categoriale.

Le trasformazioni naturali

Supponiamo di avere due funtori F, G : \mathcal{A} \to \mathcal{B}. Una trasformazione naturale \alpha : F \Rightarrow G è un modo sistematico di trasformare il funtore F nel funtore G tramite una famiglia di frecce nella categoria \mathcal{B}.

Per ogni oggetto A in \mathcal{A}, si assegna una freccia \alpha_A : F(A) \to G(A) in \mathcal{B}. Queste frecce devono essere coerenti con le frecce in \mathcal{A} nel senso seguente: per ogni freccia f : A \to A' in \mathcal{A}, il seguente diagramma deve commutare:

G(f) \circ \alpha_A = \alpha_{A'} \circ F(f)

In altre parole, la trasformazione naturale rende “intercambiabile” l’azione dei due funtori su ogni freccia, modulo l’applicazione delle frecce \alpha_A.

Questo significa che non solo esistono due modi di passare da F(A) a G(A'), ma che quei due modi sono uguali. Graficamente, ogni quadrato di questo tipo “commuta”.

Se ogni \alpha_A è un isomorfismo in \mathcal{B}, allora si dice che \alpha è una isomorfismo naturale, e si scrive F \cong G. Quindi, due funtori sono isomorfi in senso naturale se esiste una trasformazione naturale invertibile tra di essi.

Una equivalenza di categorie consiste in un funtore F : \mathcal{A} \to \mathcal{B} insieme a un funtore G : \mathcal{B} \to \mathcal{A} tale che G \circ F \cong 1_{\mathcal{A}} e F \circ G \cong 1_{\mathcal{B}} (con isomorfismi naturali da specificare).

Questo significa che anche se \mathcal{A} e \mathcal{B} non sono uguali, sono “la stessa cosa” dal punto di vista della teoria delle categorie.

Un esempio importante è la seguente equivalenza: la categoria dei gruppi abeliani finitamenti generati è equivalente alla categoria dei gruppi isomorfi a somme dirette del tipo \mathbb{Z}^n \oplus \mathbb{Z}/n_1 \oplus \dots \oplus \mathbb{Z}/n_k, con i divisori n_i disposti in ordine crescente e divisibili tra loro. Anche se non sono uguali, queste due categorie hanno esattamente la stessa struttura.

Infine, le trasformazioni naturali sono esse stesse oggetti matematici. Dato un insieme fisso di categorie \mathcal{A} e \mathcal{B}, si può costruire una categoria di funtori da \mathcal{A} a \mathcal{B}, i cui oggetti sono i funtori e le frecce sono le trasformazioni naturali.

Proprietà universali

Prodotti

Un tema centrale nella teoria delle categorie è quello delle proprietà universali. Lo scopo di questo capitolo è sviluppare gli strumenti per esprimere queste proprietà in modo generale e preciso.

La prima costruzione universale che esaminiamo è il prodotto.

Siano A e B oggetti in una categoria \mathcal{A}. Un prodotto di A e B è un oggetto P insieme a due frecce

p_1 : P \to A
p_2 : P \to B

tali che, per ogni oggetto X e ogni coppia di frecce

f : X \to A
g : X \to B

esiste un’unica freccia u : X \to P tale che:

p_1 \circ u = f
p_2 \circ u = g

Questa è la proprietà universale del prodotto.

In simboli, l’unicità di u si può esprimere dicendo che il seguente diagramma commuta:

      u
   X ---> P
   |       |\
 f |       | p₂
   v       v
   A       B

In parole semplici: ogni coppia di frecce verso A e B si “fattorizza” in modo unico attraverso il prodotto.

Il prodotto è determinato a meno di isomorfismo. Questo vuol dire che, se due oggetti soddisfano la proprietà universale del prodotto, allora sono isomorfi tra loro in modo unico (cioè esiste un unico isomorfismo che rende commutativo il diagramma).

Esempi:

Ma attenzione: non in tutte le categorie il prodotto coincide con il prodotto cartesiano. Il prodotto in senso categoriale è definito unicamente dalla proprietà universale.

Un caso particolare è quello in cui uno dei due oggetti è un oggetto terminale 1. In questo caso, il prodotto A \times 1 è isomorfo ad A.

L’unicità universale vale anche per i morfismi: data la proprietà universale, l’unicità della freccia u è garantita. Questo significa che possiamo spesso ragionare “al contrario”: se sappiamo che una certa mappa rende commutativo il diagramma, essa è l’unica possibile.

Infine, vale la seguente osservazione importante: la definizione di prodotto non dipende dalla struttura interna degli oggetti, ma solo dalle frecce che partono o arrivano ad essi. È un concetto puro, completamente determinato in termini categoriali.

Prodotti e funtori

Sia \mathcal{A} una categoria. La costruzione del prodotto può essere vista come un funtore. Fissati due oggetti A e B in \mathcal{A}, possiamo associare a ogni oggetto X l’insieme delle coppie di frecce (f, g) con f : X \to A e g : X \to B.

Se (P, p_1, p_2) è un prodotto di A e B, allora per ogni X esiste un’unica mappa u : X \to P tale che:

p_1 \circ u = f
p_2 \circ u = g

Quindi, la corrispondenza:

u \mapsto (p_1 \circ u, p_2 \circ u)

definisce una biiezione tra \mathcal{A}(X, P) e \mathcal{A}(X, A) \times \mathcal{A}(X, B).

Questa biiezione è naturale in X. Questo significa che possiamo interpretare il prodotto come un oggetto rappresentante del funtore

X \mapsto \mathcal{A}(X, A) \times \mathcal{A}(X, B)

in modo che le mappe da X al prodotto P corrispondano biiettivamente alle coppie di mappe da X a A e da X a B.

In generale, data una categoria \mathcal{A} e un funtore

F : \mathcal{A}^{\text{op}} \to \text{Set}

si dice che un oggetto R rappresenta il funtore F se esiste un’isomorfismo naturale

\mathcal{A}(-, R) \cong F

dove \mathcal{A}(-, R) è il funtore om-funzionale che associa a ogni oggetto X l’insieme \mathcal{A}(X, R).

Nel caso del prodotto, il funtore F che associa a ogni oggetto X il prodotto \mathcal{A}(X, A) \times \mathcal{A}(X, B) è rappresentato da P = A \times B.

Questa è una formulazione più astratta della proprietà universale: un oggetto rappresenta un funtore se “contiene” tutte le informazioni necessarie per descrivere il comportamento del funtore stesso.

Questo modo di pensare si applica anche ad altri concetti: coprodotti, oggetti iniziali e terminali, limiti e colimiti, tutti possono essere visti come oggetti che rappresentano certi funtori.

Oggetti iniziali e terminali

Un oggetto 0 in una categoria \mathcal{A} è detto iniziale se per ogni oggetto A in \mathcal{A} esiste un’unica freccia da 0 a A.

\forall A \in \mathcal{A},\ \exists !\ f : 0 \to A

Analogamente, un oggetto 1 è detto terminale se per ogni oggetto A esiste un’unica freccia da A a 1.

\forall A \in \mathcal{A},\ \exists !\ f : A \to 1

Esempi:

Un oggetto che è sia iniziale che terminale si dice zero. Ad esempio, in Grp e Vect$_k$, esiste un oggetto zero.

Proprietà fondamentali:

Un uso tipico dell’oggetto terminale è nella definizione di elementi di un oggetto: in una categoria con un oggetto terminale 1, si dice che un elemento di A è una freccia x : 1 \to A.

Questo generalizza l’idea di “elemento” in Set (dove ogni funzione da un singleton a A corrisponde a un elemento di A), e permette di definire concetti come “famiglia di elementi”, “mappa che agisce su elementi”, ecc., in un contesto puramente categoriale.

Coprodotti

Il coprodotto è la versione “dualizzata” del prodotto. Dati due oggetti A e B in una categoria \mathcal{A}, un coprodotto di A e B è un oggetto C insieme a due frecce

i_1 : A \to C
i_2 : B \to C

tali che, per ogni oggetto X e ogni coppia di frecce

f : A \to X
g : B \to X

esiste un’unica freccia u : C \to X tale che:

u \circ i_1 = f
u \circ i_2 = g

Questo è del tutto analogo alla definizione di prodotto, ma con tutte le frecce “rovesciate”. La proprietà universale del coprodotto dice che ogni coppia di frecce da A e B verso un oggetto comune X fattorizza in modo unico attraverso il coprodotto.

Esempi:

Anche il coprodotto è unico a meno di isomorfismo, esattamente come il prodotto.

Nel caso di Set, il coprodotto A \amalg B è costruito prendendo l’unione disgiunta degli insiemi, cioè si definisce:

A \amalg B = {(a, 1) \mid a \in A} \cup {(b, 2) \mid b \in B}

con le mappe di inclusione naturali. Questo trucco garantisce che gli elementi di A e quelli di B restino distinti anche se A e B hanno elementi in comune.

Dal punto di vista categoriale, i coprodotti sono i prodotti della categoria opposta. Cioè, il coprodotto in \mathcal{A} è un prodotto in \mathcal{A}^{\text{op}}.

Infine, analogamente agli oggetti terminali, si definisce un oggetto iniziale come un coprodotto del tipo “coprodotto vuoto”. Questo concetto è utile per costruzioni come le somme di famiglie arbitrariamente grandi di oggetti.

Equalizzatori e coequalizzatori

Dati due oggetti A e B in una categoria \mathcal{A}, e due frecce f, g : A \to B, un equalizzatore di f e g è un oggetto E insieme a una freccia e : E \to A tale che:

f \circ e = g \circ e

e per ogni altro oggetto Z con una freccia z : Z \to A che soddisfa f \circ z = g \circ z, esiste un’unica freccia u : Z \to E tale che e \circ u = z.

In simboli: il seguente diagramma commuta, e la fattorizzazione è unica.

f \circ e = g \circ e
\forall z : Z \to A,\ f \circ z = g \circ z \Rightarrow \exists !\ u : Z \to E,\ e \circ u = z

Intuitivamente, l’equalizzatore seleziona la massima parte di A su cui le due frecce f e g coincidono.

Esempi:

L’equalizzatore è unico a meno di isomorfismo.

In maniera duale, un coequalizzatore di f, g : A \to B è un oggetto Q insieme a una freccia q : B \to Q tale che:

q \circ f = q \circ g

e per ogni altro oggetto Z con una freccia z : B \to Z che soddisfa z \circ f = z \circ g, esiste un’unica freccia u : Q \to Z tale che u \circ q = z.

z \circ f = z \circ g \Rightarrow \exists !\ u : Q \to Z,\ u \circ q = z

In altre parole, il coequalizzatore è l’oggetto più generale su cui le due frecce diventano uguali.

Esempi:

Coequalizzatori ed equalizzatori sono concetti fondamentali per costruire limiti e colimiti, e per definire molte nozioni importanti come kernel, immagini, relazioni equivalenti e identità di oggetti in modo categorico.

Limiti e colimiti

Le nozioni di prodotto, equalizzatore e oggetti terminali possono essere viste come casi particolari di un concetto più generale: il limite.

Sia D : \mathcal{I} \to \mathcal{A} un funtore, chiamato diagramma in \mathcal{A}. L’idea è che \mathcal{I} codifica una struttura astratta (per esempio, un grafo), e D assegna a ciascun oggetto e freccia in \mathcal{I} un oggetto e una freccia in \mathcal{A}.

Un cono su D è costituito da un oggetto L in \mathcal{A} e una famiglia di frecce (\phi_I : L \to D(I)) per ogni oggetto I in \mathcal{I}, tali che per ogni freccia u : I \to J in \mathcal{I}, il seguente diagramma commuta:

D(u) \circ \phi_I = \phi_J

Un limite di D è un cono universale: cioè, è un cono (L, \phi) tale che, per ogni altro cono (X, \psi) su D, esiste una unica freccia u : X \to L che rende commutativo il diagramma, cioè per ogni I:

\phi_I \circ u = \psi_I

In simboli:

\forall (X, \psi),\ \exists !\ u : X \to L\ \text{t.c.}\ \forall I,\ \phi_I \circ u = \psi_I

Questo generalizza in un solo colpo il prodotto (limite di due oggetti), l’oggetto terminale (limite del diagramma vuoto), l’equalizzatore (limite di due frecce parallele), e altri ancora.

Dualmente, un colimite è definito come un cocono universale. Un cocono su D : \mathcal{I} \to \mathcal{A} è un oggetto C insieme a una famiglia di frecce (\psi_I : D(I) \to C) tali che per ogni freccia u : I \to J, si ha:

\psi_J \circ D(u) = \psi_I

Un colimite di D è un cocono universale: per ogni altro cocono (Y, \theta) esiste una unica freccia v : C \to Y tale che, per ogni I,

v \circ \psi_I = \theta_I

In simboli:

\forall (Y, \theta),\ \exists !\ v : C \to Y\ \text{t.c.}\ \forall I,\ v \circ \psi_I = \theta_I

Il coprodotto è un colimite, così come il coequalizzatore e l’oggetto iniziale.

Una categoria \mathcal{A} ammette tutti i limiti (risp. colimiti) se per ogni diagramma D : \mathcal{I} \to \mathcal{A} esiste un limite (risp. colimite) di D.

Queste nozioni astratte permettono di parlare di costruzioni “universali” in qualsiasi categoria. La teoria dei limiti e dei colimiti è uno degli strumenti più potenti della teoria delle categorie.

Monoidi

Un monoide è una struttura algebrica costituita da un insieme M con un’operazione binaria \cdot : M \times M \to M che è associativa e ammette un elemento neutro e \in M tale che:

\forall a \in M,\ e \cdot a = a = a \cdot e

Esempi:

In termini categoriali, un monoide può essere visto come una categoria con un solo oggetto, in cui tutte le frecce sono componibili e la composizione corrisponde all’operazione del monoide.

Cioè: dati (M, \cdot, e), si costruisce una categoria \mathcal{M} con un solo oggetto *, in cui:

Questo stabilisce una corrispondenza biiettiva tra i monoidi e le categorie con un solo oggetto.

Allo stesso modo, un omomorfismo di monoidi \varphi : M \to N è una funzione che preserva l’operazione e l’identità:

\varphi(e_M) = e_N
\varphi(a \cdot b) = \varphi(a) \cdot \varphi(b)

Questo corrisponde a un funtore tra le categorie associate ai due monoidi.

Il concetto di monoide generalizza a qualsiasi categoria monoidale, che verrà studiata più avanti. Per ora, ci basta sapere che la nozione di monoide è interna alla teoria delle categorie: può essere descritta interamente in termini di oggetti, frecce e composizione.

Un monoide può anche essere definito come un oggetto con struttura monoidale in una categoria che ammette prodotti. Questo significa che in una categoria con prodotto binario \times e oggetto terminale, un monoide è un oggetto M con due frecce:

\mu : M \times M \to M (moltiplicazione)
\eta : 1 \to M (unità)

soddisfacenti i diagrammi di associatività e unità (che esprimono le stesse condizioni viste sopra).

In altre parole: anche in categorie astratte possiamo definire cosa significhi “avere una struttura da monoide”.

Linguaggio categoriale per i monoidi

Supponiamo di lavorare in una categoria \mathcal{C} che ammette prodotti finiti, cioè ha prodotti binari e un oggetto terminale 1. In questo contesto, possiamo definire un monoide interno alla categoria \mathcal{C}.

Un monoide in \mathcal{C} è un oggetto M dotato di due frecce:

\mu : M \times M \to M (moltiplicazione)
\eta : 1 \to M (unità)

che soddisfano le condizioni di monoide espresse tramite commutatività di due diagrammi:

  1. Associatività: il seguente diagramma commuta

M \times (M \times M) \xrightarrow{\cong} (M \times M) \times M \xrightarrow{\mu \times 1} M \times M \xrightarrow{\mu} M
è uguale a:
M \times (M \times M) \xrightarrow{1 \times \mu} M \times M \xrightarrow{\mu} M

  1. Unità: il seguente diagramma commuta

1 \times M \xrightarrow{\eta \times 1} M \times M \xrightarrow{\mu} M
è uguale a
1 \times M \xrightarrow{\cong} M

e analogamente per
M \times 1 \xrightarrow{1 \times \eta} M \times M \xrightarrow{\mu} M

che deve essere uguale a
M \times 1 \xrightarrow{\cong} M

Queste due condizioni categoriali corrispondono esattamente all’associatività dell’operazione e all’esistenza dell’elemento neutro in un monoide classico.

Esempi:

La definizione di monoide interno mostra la potenza del linguaggio categoriale: possiamo descrivere strutture algebriche in qualunque categoria con prodotti, senza fare riferimento diretto agli elementi.

Categorie e funtori come oggetti

Uno dei punti di forza della teoria delle categorie è che può essere autoreferenziale: le categorie stesse, i funtori e le trasformazioni naturali possono essere considerati oggetti all’interno di una categoria più grande.

Esiste una categoria \mathbf{Cat} i cui:

La composizione è la composizione usuale di funtori, e le identità sono i funtori identità.

Un altro esempio è la categoria \mathbf{Set}, i cui oggetti sono insiemi e le frecce sono funzioni. Ma in \mathbf{Cat} possiamo fare di più: possiamo considerare anche le trasformazioni naturali tra funtori come morfismi di secondo livello, formando una struttura più ricca.

Possiamo definire quindi un 2-categoria, in cui:

La categoria \mathbf{Cat} è un esempio fondamentale di 2-categoria.

Esistono molte categorie le cui strutture rispecchiano le regole di \mathbf{Cat}. Per esempio, possiamo definire categorie di funtori, dette categorie funtoriali.

Dato un funtore F : \mathcal{A} \to \mathcal{B}, possiamo considerare l’insieme di tutte le trasformazioni naturali da F a un altro funtore G : \mathcal{A} \to \mathcal{B}. Questo insieme può essere inteso come l’insieme delle frecce tra due oggetti (funtori) nella categoria dei funtori da \mathcal{A} a \mathcal{B}.

In simboli, possiamo scrivere:

\text{Fun}(\mathcal{A}, \mathcal{B})

per la categoria i cui oggetti sono i funtori \mathcal{A} \to \mathcal{B} e le frecce sono trasformazioni naturali.

Questa struttura rende possibile definire concetti come limiti di funtori, monoidi di funtori, ecc., tutto all’interno del linguaggio categoriale.

Un altro concetto chiave è la categoria slice (o categoria comma). Dato un oggetto A in una categoria \mathcal{C}, la categoria slice \mathcal{C}/A ha:

Queste categorie sono utilissime, ad esempio, per definire fibrati, funtori rappresentabili, e concetti avanzati come i topoi.

Funtori rappresentabili

Uno degli strumenti più potenti della teoria delle categorie è il concetto di funtore rappresentabile.

Sia \mathcal{C} una categoria. Un funtore covariante F : \mathcal{C} \to \mathbf{Set} è detto rappresentabile se esiste un oggetto A in \mathcal{C} e un isomorfismo naturale:

\mathcal{C}(A, -) \cong F

In altre parole, esiste una corrispondenza naturale tra gli elementi di F(X) (per ogni oggetto X di \mathcal{C}) e le frecce A \to X in \mathcal{C}.

Il funtore \mathcal{C}(A, -) è chiamato funtore om rappresentato da A.

Un modo di interpretare questo è il seguente: il funtore F “si comporta come se fosse l’om-funtore da A“, anche se non lo è esplicitamente.

Esempi:

Dualmente, un funtore contravariante F : \mathcal{C}^{\text{op}} \to \mathbf{Set} è rappresentabile se esiste un oggetto A tale che:

\mathcal{C}(-, A) \cong F

Per esempio, nel caso degli “elementi generici”, se \mathcal{C} ha un oggetto iniziale 0, il funtore \mathcal{C}(0, -) rappresenta “la famiglia degli elementi liberi”.

Un risultato fondamentale è il Lemma di Yoneda, che collega profondamente i funtori rappresentabili con la struttura stessa della categoria. Esso afferma, in una delle sue forme:

Per ogni funtore F : \mathcal{C} \to \mathbf{Set} e ogni oggetto A in \mathcal{C}, esiste una biiezione naturale:

\text{Nat}(\mathcal{C}(A, -), F) \cong F(A)

cioè: le trasformazioni naturali da \mathcal{C}(A, -) a F sono in corrispondenza biunivoca con gli elementi di F(A).

Questo significa che conoscere tutte le trasformazioni naturali da un funtore om a un certo funtore F è equivalente a conoscere il valore di F su quell’oggetto.

Il Lemma di Yoneda è uno degli strumenti teorici più importanti della matematica moderna, con applicazioni in topologia, algebra, geometria algebrica, teoria dei modelli e oltre.

Equivalenze di categorie

Due categorie \mathcal{A} e \mathcal{B} sono dette equivalenti se “contengono la stessa informazione”, anche se non sono identiche.

Formalmente, una equivalenza di categorie consiste in:

\eta : 1_{\mathcal{A}} \Rightarrow G \circ F
\varepsilon : F \circ G \Rightarrow 1_{\mathcal{B}}

In altre parole, comporre F e G in entrambe le direzioni dà qualcosa naturalmente isomorfo all’identità.

Questo significa che, anche se \mathcal{A} e \mathcal{B} non sono la stessa categoria, si comportano come se lo fossero per ogni scopo categoriale.

Un funtore F : \mathcal{A} \to \mathcal{B} che realizza un’equivalenza di categorie deve essere:

Questo implica che \mathcal{A} e \mathcal{B} hanno la stessa struttura a livello di oggetti e frecce, almeno fino a isomorfismo.

Esempi:

Queste equivalenze sono potentissime perché ci permettono di trasferire problemi da una categoria complicata a una più semplice (ad esempio da oggetti astratti a numeri naturali).

In particolare, nella geometria algebrica moderna, gran parte del lavoro consiste nello stabilire equivalenze di categorie tra varietà, schemi, fasci, e oggetti più astratti: in quel contesto, due spazi “sono lo stesso” se le loro categorie di fasci coerenti sono equivalenti.

Approfondimento su limiti e colimiti

Nella trattazione iniziale abbiamo definito i limiti e i colimiti come oggetti universali rispetto a un diagramma. Ora generalizziamo questa idea per diagrammi arbitrari, anche complessi, e introduciamo concetti come pullback, pushout, limiti conici e altro ancora.

Sia D : \mathcal{J} \to \mathcal{C} un diagramma, cioè un funtore da una piccola categoria \mathcal{J} a una categoria \mathcal{C}. Un limite di D è un oggetto L in \mathcal{C} con una famiglia di frecce (\pi_J : L \to D(J)) per ogni oggetto J in \mathcal{J}, tali che per ogni freccia u : J \to J' in \mathcal{J}, il seguente diagramma commuta:

D(u) \circ \pi_J = \pi_{J'}

e con la proprietà universale che per ogni altro oggetto X dotato di frecce (\psi_J : X \to D(J)) che soddisfano le stesse condizioni di commutatività, esiste un’unica freccia u : X \to L tale che:

\pi_J \circ u = \psi_J\ \ \forall J

Questo tipo di struttura si chiama cono (cone), e il limite è il cono universale su D.

Coequivalentemente, un colimite è un cocono universale: un oggetto C con frecce (\iota_J : D(J) \to C) tali che per ogni freccia u : J \to J' in \mathcal{J} si abbia:

\iota_{J'} \circ D(u) = \iota_J

e per ogni altro cocono (\theta_J : D(J) \to Y) esiste un’unica freccia v : C \to Y tale che:

v \circ \iota_J = \theta_J\ \ \forall J


Pullback e Pushout

Il pullback è un esempio fondamentale di limite non banale. Dati due frecce f : X \to Z e g : Y \to Z, il pullback è un oggetto P con frecce p_1 : P \to X e p_2 : P \to Y tali che:

f \circ p_1 = g \circ p_2

e universale rispetto a questa proprietà: ogni altro oggetto Q con frecce q_1 : Q \to X, q_2 : Q \to Y tali che f \circ q_1 = g \circ q_2 fattorizza unicamente attraverso P.

Il pushout è il colimite duale: dato f : Z \to X e g : Z \to Y, il pushout è un oggetto P con frecce i_1 : X \to P e i_2 : Y \to P tali che:

i_1 \circ f = i_2 \circ g

e universale tra tali dati.

Pullback e pushout sono usati per costruire fibre e colla geometrica, e sono onnipresenti in topologia, algebra e geometria algebrica.


Limiti e colimiti conici

Un limite conico è un limite dove la categoria indice \mathcal{J} è discreta o dotata di una struttura semplice (come un grafo orientato). Il concetto di cono è chiamato “conico” perché tutti i vertici del diagramma convergono in un punto comune.

Analogamente, un colimite conico si ha quando tutti gli oggetti mappano in un unico oggetto in modo coerente.

Molti limiti usati nella pratica (prodotti, equalizzatori, pullback) sono limiti conici.


Categorie complete e cocomplete

Una categoria \mathcal{C} si dice completa se ammette tutti i limiti piccoli, cioè limiti per ogni funtore D : \mathcal{J} \to \mathcal{C} con \mathcal{J} piccola.

Si dice cocompleta se ammette tutti i colimiti piccoli.

Esempi:

Introduzione alle aggiunzioni (adjunctions)

In questo paragrafo introduciamo una nuova struttura fondamentale della teoria delle categorie: la adjunction, o aggiunzione. Si tratta di un concetto completamente nuovo rispetto a quelli già trattati: non è un approfondimento di limiti o colimiti, ma una relazione tra funtori.

Due funtori F : \mathcal{A} \to \mathcal{B} e G : \mathcal{B} \to \mathcal{A} si dicono aggiunti se, per ogni oggetto A in \mathcal{A} e ogni oggetto B in \mathcal{B}, esiste una biiezione naturale:

\mathcal{B}(F(A), B) \cong \mathcal{A}(A, G(B))

La naturalità significa che questa corrispondenza è compatibile con le frecce sia in \mathcal{A} che in \mathcal{B}.

Si dice che F è sinistro aggiunto di G, e G è destro aggiunto di F. Spesso si scrive:

F \dashv G

Questa relazione cattura moltissime situazioni naturali in matematica dove un processo ha un “inverso” solo fino a isomorfismo, e non un vero inverso nel senso stretto.


Esempi fondamentali di aggiunzione

  1. Inclusione e functor forgetful: Sia \mathbf{Set} la categoria degli insiemi e \mathbf{Grp} quella dei gruppi. Il funtore “forgetful” U : \mathbf{Grp} \to \mathbf{Set} manda un gruppo al suo insieme sottostante. Questo funtore ha un sinistro aggiunto: il funtore F che manda un insieme X al gruppo libero generato da X. Per ogni insieme X e gruppo G, si ha: \mathbf{Grp}(F(X), G) \cong \mathbf{Set}(X, U(G))
  2. Prodotto e hom-set (currying): In \mathbf{Set}, il prodotto ha un aggiunto: per ogni insieme fisso A, il funtore - \times A ha come destro aggiunto il funtore \text{Hom}(A, -). Cioè: \mathbf{Set}(X \times A, Y) \cong \mathbf{Set}(X, \text{Hom}(A, Y)) Questa è la forma categoriale della currificazione: trasformare una funzione in due variabili in una funzione che restituisce una funzione.

Unità e counità dell’aggiunzione

Ogni aggiunzione F \dashv G è associata a due trasformazioni naturali fondamentali:

Queste due trasformazioni soddisfano due condizioni di “triangolo” che garantiscono che F e G si comportino effettivamente come aggiunti l’uno dell’altro.

Conoscere F, G e la coppia (\eta, \varepsilon) è equivalente a conoscere tutta l’aggiunzione.


Significato concettuale delle aggiunzioni

Le aggiunzioni modellano processi matematici in cui un’operazione è “più libera possibile” o “migliore approssimazione compatibile” rispetto a qualche vincolo.

Per esempio:

Le aggiunzioni sono anche alla base delle definizioni di categorie monoidali chiuse, topoi, quantificatori logici in logica categoriale, e molto altro.

Categorie monoidali

Una categoria monoidale è una categoria dotata di una struttura che imita quella di un monoide, ma “a livello di categoria”.

Formalmente, una categoria monoidale è una quintupla (\mathcal{C}, \otimes, I, \alpha, \lambda, \rho) dove:

\alpha_{A,B,C} : (A \otimes B) \otimes C \to A \otimes (B \otimes C)
\lambda_A : I \otimes A \to A
\rho_A : A \otimes I \to A

Questi isomorfismi devono soddisfare alcune condizioni di coerenza fondamentali, tra cui:

La presenza degli isomorfismi naturali (anziché identità strette) riflette il fatto che in molte categorie, come \mathbf{Vect}_k o \mathbf{Top}, l’associatività del prodotto tensoriale o l’unità valgono solo fino a isomorfismo.


Esempi di categorie monoidali

  1. \mathbf{Set} con il prodotto cartesiano:
  1. \mathbf{Vect}_k con il prodotto tensoriale:
  1. \mathbf{Grp} con il prodotto diretto:

Categorie monoidali simmetriche

Una categoria monoidale è detta simmetrica se esiste un isomorfismo naturale:

\sigma_{A,B} : A \otimes B \to B \otimes A

tale che:

Esempi:


Monoidi in una categoria monoidale

Dato che una categoria monoidale generalizza la nozione di monoide, possiamo definire un monoide interno a una categoria monoidale.

Un monoide in \mathcal{C} (monoidale) è un oggetto M con frecce:

\mu : M \otimes M \to M (moltiplicazione)
\eta : I \to M (unità)

che soddisfano gli stessi diagrammi di associatività e unità già visti nel caso dei monoidi in \mathbf{Set}.

Questo concetto è potentissimo: ad esempio, un’algebra associativa su un campo è un monoide nella categoria \mathbf{Vect}_k con prodotto tensoriale.

Questa panoramica della teoria delle categorie si è concentrata sugli strumenti fondamentali: categorie, funtori, trasformazioni naturali, funtori rappresentabili, limiti, colimiti e aggiunzioni. Ogni concetto è stato presentato con l’obiettivo di coglierne l’universalità e il potere espressivo, più che la formalizzazione fine a sé stessa, ed è per questo che non ci siamo soffermati molto su dimostrazioni ed esercizi. La teoria delle categorie non è solo un linguaggio unificante, ma anche una lente attraverso cui osservare la matematica stessa. Anche se molti temi più avanzati come gli end, i coend e le generalizzazioni dinaturali non sono stati affrontati qui, quanto visto è più che sufficiente per muovere i primi passi in una delle aree più eleganti e profonde della matematica moderna.

Lascia un commento