Skip to main content

Construcții universale

În teoria categoriilor ne vor interesa obiecte cu proprietăți speciale. De obicei, ne vom pune întrebarea care dintre aceste obiecte au proprietățile cele mai "mari", respectiv cele mai "mici", acestea fiind obiecte universale cu aceste proprietăți. Chiar dacă pare neintuitiv modul cum ne punem problema când nu avem un mod prin care comparăm aceste obiecte putem totuși găsi o analogie cu lucruri care sunt comparabile și avem o măsură prin care determinăm care obiect este cel mai mare sau cel mai mic.

Produse carteziene

Fie două obiecte X,YCX, Y \in \mathcal{C}, spunem că produsul lor, dacă există, este un obiect notat X×YCX \times Y \in \mathcal{C} echipat cu morfismele p1:X×YXp_1 : X \times Y \rightarrow X, p2:X×YYp_2 : X \times Y \rightarrow Y (numite proiecții) cu proprietatea că este universal cu această proprietate. Adică, pentru oricare obiect ZCZ \in \mathcal{C} și oricare două morfisme f1:ZXf_1 : Z \rightarrow X, f2:ZYf_2 : Z \rightarrow Y există un morfism unic f1,f2\langle f_1, f_2 \rangle prin care f1f_1 factorizează p1p_1 și f2f_2 factorizează p2p_2. Cu alte cuvinte, p1f1,f2=f1p_1 \circ \langle f_1, f_2 \rangle = f_1 și p2f1,f2=f2p_2 \circ \langle f_1, f_2 \rangle = f_2 ca în diagrama:

Putem extinde definiția la mai multe obiecte. Fie o mulțime de obiecte cu elemente XiCX_i \in \mathcal{C}. Produsul lor, dacă există, este un obiect notat iXi\prod\limits_i X_i echipat cu o mulțime de morfisme de forma pi:iXiXip_i : \prod\limits_i X_i \rightarrow X_i cu proprietatea că pentru oricare obiect ZCZ \in \mathcal{C} și oricare mulțime de morfisme de forma fi:ZXif_i : Z \rightarrow X_i există un morfism unic kfk\langle \prod\limits_k f_k \rangle prin care toate morfismele fif_i factorizează pip_i, adică pikfk=fip_i \circ \langle\prod\limits_k f_k\rangle = f_i.

Intuiția, dacă facem analogia cu mulțimi în Set\mathbf{Set} unde produsul cartezian este produsul cartezian obișnuit dintre mulțimi, ne arată că produsele carteziene produc cele mai mici mulțimi cu proprietatea că avem morfisme de la acesta către fiecare componentă din tuplu. Totuși, obiectele care reprezinta produse caterziene în alte categorii nu au neapărat structura unei mulțimi formate din perechi sau tupluri de elemente. Trebuie înțeles că în teoria categoriilor lucrurile sunt chiar mai abstracte decât în alte teorii matematice și chiar dacă folosim intuiții ale unor concepte bine cunoscute nu mereu vom putea lucra cu aceleași asumpții. Aici, produsul cartezian este generalizat și nu este definit prin structura internă a sa ca la o mulțime ci prin proprietățile relațiilor cu alte obiect.

Când inversăm săgețile obținem noțiunea duală de coproduse.

Coproduse carteziene

Fie două obiecte X,YCX, Y \in \mathcal{C}, spunem că coprodusul sau suma lor, dacă există, este un obiect notat X+YCX + Y \in \mathcal{C} echipat cu morfismele i1:XX+Yi_1 : X \rightarrow X + Y, i2:YX+Yi_2 : Y \rightarrow X + Y (numite coproiecții sau injecții) cu proprietatea că este universal cu această proprietate. Adică, pentru oricare obiect ZCZ \in \mathcal{C} și oricare două morfisme f1:XZf_1 : X \rightarrow Z, f2:YZf_2 : Y \rightarrow Z există un morfism unic [f1,f2][f_1, f_2] prin care f1f_1 factorizează i1i_1 și f2f_2 factorizează i2i_2. Cu alte cuvinte, [f1,f2]i1=f1[f_1, f_2] \circ i_1 = f_1 și [f1,f2]i2=f2[f_1, f_2] \circ i_2 = f_2 ca în diagrama:

Putem extinde definiția la mai multe obiecte. Fie o mulțime de obiecte cu elemente XiCX_i \in \mathcal{C}. Coprodusul lor, dacă există, este un obiect notat iXi\coprod\limits_i X_i echipat cu o mulțime de morfisme de forma ij:XjjXji_j : X_j \rightarrow \coprod\limits_j X_j cu proprietatea că pentru oricare obiect ZCZ \in \mathcal{C} și oricare mulțime de morfisme de forma fj:XjZf_j : X_j \rightarrow Z există un morfism unic [kfk][\coprod\limits_k f_k] prin care toate morfismele fjf_j factorizează iji_j, adică [kfk]ij=fj[\coprod\limits_k f_k] \circ i_j = f_j.

Dacă facem analogia cu mulțimile din Set\mathbf{Set}, coprodusul corespunde uniunilor disjuncte.

Obiect inițial

Un obiect II într-o categorie C\mathcal{C} este obiect inițial dacă pentru XOb(C)\forall X \in Ob(\mathcal{C}) există un morfism unic IXI \rightarrow X. Dacă obiectul inițial există într-o categorie acesta este unic pâna la un izomorfism din moment ce morfismele înspre acestea trebui să fie unice. În cazul categoriei Set\mathbf{Set} obiectul inițial este mulțimea vidă pentru că există o singură funcție posibilă pe care o putem avea de la mulțimea vidă la oricare altă mulțime. Conceptul dual obiectului inițial este cel de obiect terminal.

Obiect terminal

Un obiect TT într-o categorie C\mathcal{C} este obiect terminal dacă pentru XOb(C)\forall X \in Ob(\mathcal{C}) există un morfism unic XTX \rightarrow T. Dacă obiectul terminal există într-o categorie acesta este unic pâna la un izomorfism la fel cum este obiectul inițial. În cazul categoriei Set\mathbf{Set} obiectul inițial este mulțimea cu un singur element (sau numit singleton) pentru că există o singură funcție posibilă pe care o putem avea de la orice mulțimea la mulțimea cu un singur element care mapează toate elementele la singurul element.

Obiect exponențial

Fie C\mathcal{C} o categorie cu toate produsele binare și X,YCX, Y \in \mathcal{C}. Un obiect exponențial este un obiect ZYZ^Y echipat cu un morfism de evaluare eval:ZY×YZeval : Z^Y \times Y \rightarrow Z care este universal în sensul că pentru oricare XX și orice morfism f:X×YZf : X \times Y \rightarrow Z există un morfism unic λf:XZY\lambda f : X \rightarrow Z^Y astfel încât eval(λf×idY)=feval \circ (\lambda f \times id_Y) = f ca în diagrama:

Un obiect exponențial în Set\mathbf{Set} nu este altceva decât obiecte care reprezintă funcții iar λf\lambda f nu este altceva decât currying-ul pentru ff cunoscut din programare funcțională și calcul lambda. Zicem că atunci când există ZYZ^Y ZZ exponențiază Y iar notația nu este întâmplătoare. Este puțin neintuitiv să ne imaginâm, dacă vorbim de tipuri de date, cum am putea ridica la putere un tip de date dar dacă considerăm tipurile ca fiind mulțimi are sens. Mulțimea funcțiilor dintre două mulțimi de la XX la YY are un număr de elemente de YX|Y|^{|X|}, adică cardinal de YY la cardinal de XX.

Mai mult, putem înțelege obiecte și prin prisma logicii. Dacă în logică un morfism ar fi o relație de implicare logica are sens sa vorbim și de currying deoarece:

X×Y    ZX    Y    ZX    ZYX \times Y \implies Z \simeq X \implies Y \implies Z \simeq X \implies Z^Y

Această observație se mai numește corespondența Curry-Howard-Lambek care arată că există între calcul lambda, logica intuiționistă și categorii care sunt carteziene închise și cocateziene. Vom vorbi despre aceste tipuri de categorii în capitolele următoare.