**Teorija kategorija** je grana matematike koja se bavi organiziranjem matematičkih struktura u tzv. kategorije i ispitivanjem matematičkih entiteta sa stanovišta teorije kategorija. Osnovali su je Saunders MacLane i Samuel Eilenberg u epohalnom radu 1944. godine. Osnovna filozofija je da se matematički objekti ne mjere sami po sebi, po svojem unutarnjem izgledu, nego odnosom prema svim sličnim objektima, s kojima zajedno čine neku prirodnu kategoriju. Ti odnosi među objektima opisuju se preko usmjerenih strelica, koje su neka vrsta apstraktnih preslikavanja među objektima, koji se nazivaju **morfizmi**. Morfizmi se mogu asocijativno komponirati kad god to ima smisla, tj. kad kodomena prvog preslikavanja odgovara domeni drugog.

Pokazalo se da je svojstvo matematičkih struktura koje je jednostavno opisati u terminima kategorija često inherentno važno. Tako je teorija kategorija vodič u nalaženju novih plodnih definicija u istraživanju matematičkih objekata. Također, te se definicije lakše prenose na druge slične kategorije objekata što dovodi do lakše i sustavnije interakcije raznih dijelova matematike.

### Definicija kategorije

**Kategorija** *C* sastoji se od 

* klase Ob(*C*) **objekata**:
* klase Hom(*C*) (ili Mor(*C*)) **morfizama**, ili **strelica**, među objektima.
* preslikavanja dom, koje svakom morfizmu *f* pridružuje njegovu domenu dom(*f*)
* preslikavanja cod, koje svakom morfizmu *f* pridružuje njegovu kodomenu cod(*f*).
* preslikavanja {\displaystyle \circ } (komponiranje), koje svakom uređenom paru morfizama (*f*,*g*) takvom da vrijedi dom*(g)* = cod*(f)* pridružuje kompoziciju *g* o *f* čija domena je (po definiciji) dom*(f)*, a kodomena je cod*(g)*
* preslikavanja koje svakom objektu *c* pridružuje jedan morfizam koji se naziva identitet u c i označava s 1*c* i čija domena i kodomena su jednaki *c*.

Ako je dom*(f)*=*a* i cod*(f)*= *b* tada se kaže da morfizam *f* ide iz (domene) *a* u (kodomenu) *b* i piše *f* : *a* → *b*. Pri tome se traži da je klasa svih morfizama (koji idu) iz *a* u *b* skup (ne samo klasa) koji se označava Hom(*a*,*b*), Hom*C*(*a*,*b*), Mor*C*(*a*,*b*) ili naprosto *C*(*a*,*b*).

Nadalje, traži se da kompozicija tri morfizma asocijativna kad god je definirana. Dakle, ako *f* : *a* → *b*, *g* : *b* → *c* i *h* : *c* → *d* tada *h* o (*g* o *f*) = (*h* o *g*) o *f*. Nadalje traži se da je kompozicija nekog morfizma *f* s bilo koje strane s identitom u nekom objektu *c* naprosto *f*, ukoliko je ta kompozicija definirana. Drugim riječima, ako je *f* : *a* → *b* morfizam, tada 1*b* o *f* = *f* = *f* o 1*a*. 

Kategorija je **mala** ako su klase Ob(*C*)0 i Mor(*C*)0 zapravo skupovi.

### Odnosi među morfizmima i tipovi morfizama

Morfizam *f*:*a* → *b* je lijevi inverz morfizma *g*:*b* → *a* ako *g* o *f* = 1a. Morfizam *f*:*a* → *b* je desni inverz morfizma *g*:*b* → *a* ako *f* o *g* = 1b. Morfizam je invertibilan s lijeva (s desna) ako ima lijevi (desni) inverz. Ako morfizam ima i lijevi i desni inverz onda je lako pokazati (iz asocijativnosti i svojstva identitete) da su oni jednaki. Taj lijevi ili desni inverz se tada naziva jednostavno inverz, a morfizam invertibilan. 

Morfizam je 

* **izomorfizam** ako je invertibilan
* **epimorfizam** ukoliko {\displaystyle g\circ f=h\circ f} za svaki {\displaystyle f} implicira {\displaystyle g=h}.
* **monomorfizam** ako {\displaystyle f\circ g=f\circ h} za svaki {\displaystyle f} implicira {\displaystyle g=h}

U kategoriji Set u kojoj su objekti skupovi, morfizmi preslikavanja skupova, a kompozicija je obična kompozicija preslikavanja, monomorfizmi su upravo injekcije, a epimorfizmi su upravo surjekcije.

### Suprotna kategorija

Svakoj kategoriji {\displaystyle C} možemo pridružiti **suprotnu kategoriju** {\displaystyle C^{\circ }} koja ima iste objekte i morfizme, no *morfizmi idu u suprotni smjer*. Tako za svaki objekt x imamo njegovu suprotnu kopiju {\displaystyle x^{\circ }}, a za morfizam {\displaystyle f:x\to y} njegov suprotnu kopiju {\displaystyle f^{\circ }:y^{\circ }\to x^{\circ }} sa zamijenjenom domenom i kodomenom; pri tome je kompozicija definirana s {\displaystyle g^{\circ }\circ f^{\circ }:=(f\circ g)^{\circ }}, a identitete s {\displaystyle 1\_{x^{\circ }}:=(1\_{x})^{\circ }:x^{\circ }\to x^{\circ }}. Suprotnu kategoriju nazivamo također dvojstvenom ili dualnom kategorijom kategorije {\displaystyle C}.

### Funktori i prirodne transformacije

Za svake dvije kategorije, *C* i *D*, funktor *F*:*C* → *D* se sastoji od para preslikavanja, *F*0:Ob(*C*) → Ob(*D*) i *F*1:Mor(*C*) → Mor(*D*) zajedno s dva uvjeta kompatibilnosti; grubo rečeno, *F*1 šalje identite u identitete, a kompozicije u kompozicije. 

Za svaka dva funktora *F*0, *G*0:Ob(*C*) → Ob(*D*) tada možemo govoriti o **prirodnoj transformaciji** (danas se često kaže samo transformacija) η : *F* →*G* kao familiji morfizama η*x* : *F*(*x*)→*G*(*x*) u *D*, indeksiranim s *x* u Ob(*C*), pri čemu se zahtijeva da za svaki morfizam *f* : *a* → *b* u *C* vrijedi tzv. **uvjet prirodnosti**: *G*(*f*) o η*a*= η*b* o *F*(*f*) : *F*(*a*)→*G*(*b*). 

Uvjet prirodnosti zapravo je bio osnovna motivacija za uvođenje pojma kategorije, jer se često pojavljivao, a nije bilo jasno kakav opći kontekst izražava taj uvjet. 

Nije teško poopćiti pojam funktora na funktor više varijabli. U slučaju dvije varijable ponekad kažemo bifunktor. Bifunktori s varijablama u kategorijama *C* i *D* i s vrijednostima u kategoriji *E* identificiramo s običnim funktorima iz kartezijevog produkta kategorija *C* x *D* u kategoriju *E*.

U starijoj literaturi funktori su se nazivali kovarijantnim funktorima, a uz njih je upotrebljavan i pojam kofunktora ili kontravarijantnog funktora. No, **kontravarijantan funktor** iz *C* u *D* je zapravo običan (kovarijantni) funktor iz suprotne kategorije {\displaystyle C^{\circ }} u *D*.

### Ekvivalencija kategorija

Funktor *F*:*C* → *D* je **ekvivalencija kategorija** ako postoji funktor *G*:*D* → *C* takav da je *G* o *F* prirodno izomorfno identičnom funktoru Id*C*, a *F* o *G* prirodno izomorfno identičnom funktoru Id*D*. U toj situaciji kažemo da je *G* slabi inverz (ponekad kažemo i kvaziinverz) od *F*. **Antiekvivalencija kategorija** je kontravarijantni funktor koji je ekvivalencija, tj. običan funktor sa suprotne kategorije {\displaystyle C^{\circ }} u *D* koji je ekvivalencija.

### Monoidalne kategorije

**Striktna monoidalna kategorija** je kategorija *C* opremljena monoidalnim produktom, koji je po definiciji (bi)funktor {\displaystyle \otimes :C\times C\to C} koji je asocijativan i jediničnim objektom, tj. objektom u {\displaystyle C} koji je jedinica s obzirom na taj produkt. Većina primjera u matematici vodi, međutim, na monoidalne produkte koji nisu striltno asocijativni, nego su asocijativni do na tzv. koherentni izomorfizam. Takve nestriktne monoidalne kategorije uveo je Saunders MacLane koji je dokazao i fundamentalni teorem o strukturi kompozicija više koherentnih izomorfizama, naime svake dvije kompozicije s istom domenom i kodomenom su jednake.

### Više kategorije

Postoji kategorija kategorija Cat, čiji su objekti (male) kategorije a morfizmi su funktori među kategorijama. Ta se kategorija može proširiti, može se govoriti o morfizmima među morfizmima, a to su prirodne transformacije, tako da Cat(*C*,*D*) nije samo skup morfizama nego zapravo kategorija. Tako se dolazi do primjera tzv. striktne 2-kategorije. Pri tome možemo svaki skup nazvati 0-kategorijom, a običnu kategoriju 1-kategorijom. Jean Benabou je uveo u razmatranje pojam bikategorije ili slabe 2-kategorije, čija asocijativnost kompozicije je oslabljena koherentnim izomorfizmima koji su po Benabouovoj definiciji dio njihove strukture. Bikategorije sa samo jednim objektom u prirodnoj su bijekciji s monoidalnim kategorijama; time teorija bikategorija efektivno poopćuje teoriju monoidalnih kategorija.

Alexandre Grothendieck uveo je pojam ekvivalencije kategorija, koja je pojam slabiji od izomorfizma kategorija i koji je prirodniji za 2-kategorije, pa tako i za 2-kategoriju Cat kategorija. Zapravo pokazuje se da se tako može nastaviti i doći do sve oslabljenijih tipova "jednakosti". Počevši od jednakosti unutar skupa, preko izomorfizama na nivou objekata unutar kategorije, pa ekvivalencije objekata u 2-kategoriji, do 2-ekvivalencije u 3-kategoriji i tako dalje. To podsjeća na pojam homotopije u algebarskoj topologiji. Naime, homotopija se može gledati kao morfizam među neprekidnim preslikavanjima. No može se gledati i homotopija među homotopijama i tako dalje, uvodeći više homotopije. To vodi području koje je između teorije kategorija i apstraktne teorije homotopija, a to je **teorija viših kategorija**. Pri tome je teorija striktnih viših kategorija mnogo jednostavnija od onih važnijih, slabih, u kojima je asocijativnost kompozicija (kojih ima više u višim kategorijama) do na koherencije, koje opet imaju svoje koherencije i tako dalje, što jako usložnjava njihovu definiciju i proučavanje. No slabe više kategorije su važne jer većina važnih primjera viših kategorija vodi na njih, a ne na jednostavnije, slabe, kategorije. 

U matematičkim istraživanjima, razvoj teorije viših kategorija je upravo sada u punom zamahu. Jedna od teškoća te teorije je postojanja više pristupa (formalizama) koji se tehnički dosta razlikuju i do nedavno je bilo vrlo nejasno koliko su sami ti pristupi međusobno ekvivalentni. Sada se ta pitanja znatno bolje razumiju nego prije desetak godina i teorija viših kategorija se sve više primjenjuje, i u teorijskoj fizici. Glavne ideje u teoriji viših kategorija razvili su Alexandre Grothendieck, André Joyal, Ross Street, Carlos Simpson, Tom Leinster, Michael Batanin (Mihajl Batanjin), John Baez, Bertrand Toen, Maxim Kontsevich i Jacob Lurie. Na neke od pristupa izrazito je uticala teorija modelnih kategorija (za apstraktnu teoriju homotopija) Davida Quillena, te simplicijalne metode iz algebarske topologije. 

Uz više kategorije promatra se i niz drugih poopćenja koja podsjećaju strukturom i formalizmom na više kategorije, npr. viši operadi.