
Kategoriateoria on matematiikan osa-alue, joka tutkii matemaattisia rakenteita keskittymällä objektien välisiin suhteisiin ja yhteyksiin. Kategoriateorian peruskäsite on kategoria, jonka voidaan ajatella olevan tietty matemaattinen konteksti, jossa käsillä olevan matemaattisen teorian diskurssi tapahtuu. Kategorioita tavataan lähes kaikilla matematiikan osa-alueilla, joten kategoriateoreettisia käsitteitä ja tuloksia voidaan käyttää matemaattisten teorioiden jäsentelyyn ja tutkimiseen. Kategorioita voidaan kuitenkin tutkia myös itsenäisinä olioina, ilman suoraa yhteyttä muihin matematiikan osa-alueisiin.
Kategoriateorian keskiössä ovat niin sanotut universaaliominaisuudet: oliot määritellään suhteessa kaikkiin tietyn kontekstin (eli kategorian) olioiden suhteen. Tällä tavoin määritellyt oliot eivät siis ole olemassa itsenäisesti, vaan oleellisella tavalla riippuvat ja sisältävät informaatiota siitä kontekstista tai teoriasta, johon kuuluvat. Tärkeä kategoriateoreettinen tulos on Yonedan lemma, joka karkeasti ottaen sanoo, että kaikki kategorian objektit määräytyvät yksikäsitteisesti universaaliominaisuuksiensa kautta.
Kategoriateoria syntyi puhtaan matematiikan osa-alueena homologisen algebran tarpeisiin, minkä jälkeen sitä on sovellettu ja kehitetty matematiikan sisällä muun muassa algebrallisen topologian, algebran ja matemaattisen logiikan yhteydessä. Tämän lisäksi kategoriateoriaa on sovellettu matematiikan ulkopuolella muun muassa tietojenkäsittelytieteessä, fysiikassa, teoreettisessa biologiassa, systeemiteoriassa ja kieliteknologiassa.
Saunders Mac Lane ja Samuel Eilenberg määrittelivät funktorit ja luonnolliset isomorfismit ryhmäteorian kontekstissa artikkelissaan vuodelta 1942. Heidän tarkoituksensa oli homologisessa algebrassa usein esiintyneiden "luonnollisten isomorfismien" systematisointi ja täsmällinen määrittely. Näiden määrittelemistä varten tarvittiin funktorin määritelmä, mikä puolestaan johti heidät esittelemään esimerkkejä luonnollisista muunnoksista muilta matematiikan osa-alueilta heidän seuraavassa artikkelissaan vuodelta 1945. Tässä artikkelissa myös määriteltiin kategoria ensimmäisen kerran.
Kategoria on kategoriateorian perusyksikkö, joka koostuu objekteista sekä näiden välisistä morfismeista. Morfismit voidaan ajatella prosesseina, joilla on lähtöpiste tietyssä oliossa (morfismin lähtöobjekti) sekä päätepiste jossakin toisessa oliossa (morfismin maaliobjekti). Morfismien ja objektien määritelmä on kuitenkin täysin formaali eikä edellytä tällaista intuitiota. Kategorian mille tahansa objektille on olemassa identiteettimorfismi, ja mitkä tahansa kaksi peräkkäistä morfismia voidaan yhdistää yhdisteeksi. Lisäksi pätevät identiteettilaki ja liitäntälaki: minkä tahansa morfismin yhdiste identiteettimorfismin kanssa on sama kuin kyseinen morfismi, ja yhdisteen järjestyksellä ei ole väliä (katso kategorian täsmällinen määritelmä).

Kategoriateorian tunnusomaisin merkintä ja samalla tärkeä todistustekniikka on kommutatiivinen kaavio. Tässä kontekstissa kaavioita (kommutatiivisia tai ei) käytetään yleensä epämuodollisesti, mutta mikä tahansa kaavio voitaisiin periaatteessa esittää muodollisesti kaavion määritelmän avulla.
Kaavio koostuu objekteista, joita merkitään pistein tai kirjaimin, esimerkiksi ja , ja näiden välisistä morfismeista, joita merkitään nuolin, esimerkiksi ja . Kaavio on kommutatiivinen, jos kaikki kaavion morfismit kaavion minkä tahansa kahden objektin välillä (mukaan lukien yhdisteet) ovat yhtä suuria. Toisin sanoen kommutatiivisessa kaaviossa ei ole väliä, mitä "reittiä" (eli morfismien yhdisteitä) yhdestä objektista päädytään toiseen. Yllä olevassa esimerkissä kommutatiivisuus tarkoittaisi, että .
Koska kategoriateoria keskittyy objektien (ja morfismien) keskinäisiin suhteisiin, tietty objekti tai morfismi määritellään yleensä suhteessa muihin kategorian objekteihin tai morfismeihin. Tällöin puhutaan objektin tai morfismin universaaliominaisuudesta. Universaaliominaisuuden kautta määriteltyä objektia tai morfismia kutsutaan vastaavasti universaaliobjektiksi tai universaalimorfismiksi.
Esimerkiksi alkuobjekti määritellään universaaliominaisuuden kautta: objekti on alkuobjekti mikäli mille tahansa objektille on olemassa täsmälleen yksi morfismi .
Objekteille (ja morfismeille), jotka on määritelty universaaliominaisuuden kautta, on tyypillistä yksikäsitteisyys, mikäli isomorfisten objektien katsotaan olevan "yhtä suuria" tai "samoja". Täsmällisesti, määritellään objektien yksikäsitteisyys isomorfismia vaille ominaisuuden suhteen seuraavasti: mikäli sekä objektilla että objektilla on ominaisuus , niin on olemassa isomorfismi :sta :hen (eli siis myös isomorfismi :stä :hen). Tätä tiukempi käsite on yksikäsitteisyys yksikäsitteistä isomorfismia vaille, joka määritellään muuten samalla tavalla kuin yksikäsitteisyys isomorfismia vaille, mutta objektien välinen isomorfismi on lisäksi yksikäsitteinen.
Esimerkiksi alkuobjekti, mikäli se on olemassa, on yksikäsitteistä isomorfismia vaille yksikäsitteinen.
Olkoon kategoria. Tällöin sen vastakkainen kategoria määritellään siten että , ja jokaiselle objektiparille olkoon . Selvästi .
Tärkeä kategoriateoreettinen käsite on duaalisuus: mitä tahansa lausetta tai käsitettä, joka pätee tai on määritelty jossakin kategoriassa, vastaa lause tai käsite vastakkaisessa kategoriassa, jota kutsutaan duaalilauseeksi tai -käsitteeksi. Esimerkiksi yllä mainituista käsitteistä alku- ja loppuobjekti sekä mono- ja epimorfismi ovat toistensa duaalikäsitteitä. Täsmällisesti, erään kategorian objekti on alkuobjekti jos ja vain jos se on loppuobjekti vastakkaisessa kategoriassa, ja morfismi on monomorfismi jos ja vain jos se on epimorfismi vastakkaisessa kategoriassa.
Tietyn käsitteen duaalikäsitteen nimi muodostetaan usein, muttei kuitenkaan aina, lisäämällä kyseisen käsitteen nimen eteen ko-etuliite.
Myös kategoriat muodostavat kategorian, jonka morfismeina ovat funktorit.
Olkoot ja kategorioita. Funktori kategoriasta kategoriaan koostuu seuraavista kuvauksista:
jotka lisäksi toteuttavat seuraavat ehdot:
Olkoon funktori. Määritellään jokaiselle objektiparille kuvaus siten että . Funktori on
Kahden kategorian väliset funktorit voidaan niin ikään järjestää kategoriaksi. Morfismeiksi tarvitaan tällöin luonnolliset muunnokset. Itse asiassa Eilenbergin ja Mac Lanen alkuperäinen motivaatio oli algebrallisessa topologiassa käytettyjen "luonnollisten" kuvausten täsmällinen määritelmä, jota varten he määrittelivät sekä kategoriat että funktorit.
Olkoot funktoreita. Luonnollinen muunnos koostuu :n morfismista jokaiselle :n objektille , siten että jokaiselle :n morfismille pätee . Toisin sanottuna jokaiselle morfismille kaavio

on kommutatiivinen.
Luonnollisesta muunnoksesta käytetään myös suomenkielistä nimeä luonnollinen transformaatio (engl. natural transformation).
Yksittäistä morfismia , joka on osa luonnollista muunnosta, kutsutaan :n komponentiksi, tai täsmällisemmin -komponentiksi.
Luonnollista muunnosta, jonka jokainen komponentti on isomorfismi, kutsutaan luonnolliseksi isomorfismiksi. Luonnolliset isomorfismit ovat isomorfismeja kategoriassa, jonka muodostavat kahden kategorian väliset funktorit sekä näiden väliset luonnolliset muunnokset.
Koska (pienet) kategoriat ja funktorit muodostavat (suuren) kategorian, isomorfismin määritelmä pätee myös funktoreille. Kategorioiden isomorfisuus yhtenevyyden mittana on kuitenkin useissa tilanteissa liian tiukka, sillä se sivuuttaa sen faktan, että kategorioiden kategoriassa jokainen objekti omaa kategorian rakenteen. "Oikeampi", tai ainakin käytännällisempi, yhtenevyyden mitta onkin kategorioiden ekvivalenssi, joka muistuttaa muodoltaan topologisten avaruuksien homotopiaekvivalenssia.
Olkoot ja kategorioita. Tällöin kategorioiden ja ekvivalenssi koostuu seuraavista:

Olkoon pieni kategoria. Tällöin funktoria kutsutaan :n muotoiseksi kaavioksi kategoriassa . Kategoriaa kutsutaan kaavion indeksikategoriaksi.
Kaavion kartio on luonnollinen muunnos . Objektia kutsutaan kartion kärjeksi ja luonnollisen muunnoksen komponentteja kartion särmiksi. Yksityiskohtaisesti kartio koostuu siis objektista ja kokoelmasta morfismeja jokaiseen objektin kuvaan, siten että jokaiselle :n morfismille kaavio

on kommutatiivinen.
Merkitään kartiota, jonka kärki on ja luonnollinen muunnos . Määritellään kartiomorfismi kartiosta kartioon morfismina siten että , jossa on vakio luonnollinen muunnos, jonka jokainen komponentti on . Yksityiskohtaisesti ehto, jonka :n pitää toteuttaa ollakseen kartiomorfismi on: jokaiselle objektille pätee . Jokaisen kaavion kartiot ja kartiomorfismit muodostavat kategorian, jota merkitään ja jota kutsutaan kaavion kartiokategoriaksi.
Raja voidaan määritellä hyvin lyhyesti kartiokategorian avulla: kaavion raja on kategorian loppuobjekti. Huomataan, että kaikilla kaavioilla ei välttämättä ole rajaa, sillä kartiokategoriassa ei välttämättä ole loppuobjektia. Tästä määritelmästä seuraa, että raja on yksikäsitteistä isomorfismia vaille yksikäsitteinen.
Koska yllä annettu rajan määritelmä on hyvin tiivis, rajan käsitteen merkitys ei välttämättä avaudu siitä. Näin ollen annetaan seuraavaksi yksityiskohtaisempi, mutta yhtäpitävä määritelmä. Olkoon kaavio. Tällöin :n raja koostuu objektista sekä kokoelmasta morfismeja jokaiselle objektille siten että muodostavat kartion (eli jokaiselle :n morfismille alla olevan kaavion sisempi kolmio on kommutatiivinen), ja kartio on lisäksi universaali tämän ominaisuuden suhteen: mikäli on :n objekti ja on morfismi jokaiselle objektille siten että on kartio (eli jokaiselle :n morfismille alla olevan kaavion ulompi kolmio on kommutatiivinen), niin tällöin on olemassa yksikäsitteinen morfismi siten että jokaiselle objektille pätee , eli toisin sanottuna kaavio

on kommutatiivinen.
Kaavion kokartio on kaavion kartio, eli luonnollinen muunnos . Samoin kuin kartiolle, objektia kutsutaan kokartion kärjeksi ja komponentteja särmiksi, ja kokartiota merkitään . Kokartiomorfismi kokartiosta kokartioon on morfismi siten että . Merkitään kaavion kokartioiden ja kokartiomorfismien kategoriaa . Tällöin kaavion koraja on kategorian alkuobjekti, mikäli se on olemassa.
Yksityiskohtaisesti, kaavion koraja on kokartio siten että mille tahansa kokartiolle on olemassa yksikäsitteinen morfismi , joka jokaiselle :n morfismille tekee kaaviosta

kommutatiivisen.
Esimerkkejä rajoista:
Esimerkkejä korajoista:
Kategorian sanotaan omaavan :n muotoiset (ko)rajat mikäli millä tahansa :n muotoisella kaaviolla on (ko)raja :ssä. Kategoria on (ko)täydellinen mikäli se omaa :n muotoiset (ko)rajat jokaiselle indeksikategorialle . Kategoria on äärellisesti (ko)täydellinen mikäli se omaa :n muotoiset (ko)rajat jokaiselle äärelliselle indeksikategorialle .
Kategorian esilyhde on funktori . Esilyhteet ja niiden väliset luonnolliset muunnokset muodostavat kategorian, jota merkitään . Mikäli on jonkin topologisen avaruuden avointen joukkojen osittaisjärjestys, niin tämä esilyhteen määritelmä vastaa algebrallisen topologian joukkojen esilyhteen määritelmää.
Olkoon lokaalisti pieni kategoria ja olkoon . Määritellään esilyhde seuraavasti: jos ja ovat :n objekteja ja morfismi, niin
jossa on funktio .
Esilyhdettä kutsutaan :n (kontravariantiksi) hom-funktoriksi.
Sillä hom-funktori on määritelty mille tahansa lokaalisti pienen kategorian objektille , tämä määrittää kuvauksen
Laajennetaan kyseinen kuvaus funktoriksi
määrittelemällä jokaiselle morfismille luonnollinen muunnos , jonka -komponentti on funktio , joka kuvaa .
Funktoria kutsutaan :n Yonedan upotukseksi. Termin upotus käyttö on perusteltua, sillä yksi Yonedan lemman (ks. alla) seurauksista on Yonedan upotuksen täysi uskollisuus. Näin ollen mikä tahansa lokaalisti pieni kategoria voidaan upottaa sen esilyhteiden kategoriaan; toisin sanottuna on olemassa esilyhteiden kategorian alakategoria, joka on isomorfinen sen kanssa.
Hom-funktoreiden erityistä asemaa esilyhteiden kategoriassa kuvastaa Yonedan lemma.
Lause. Olkoon lokaalisti pieni kategoria. Tällöin on olemassa isomorfismi
joka on luonnollinen sekä objektin että esilyhteen suhteen.
Korollaari. Yonedan upotus on täysi ja uskollinen.
Korollaari. Olkoon lokaalisti pieni kategoria. Tällöin kaikille objekteille pätee:
Olkoot ja lokaalisti pieniä kategorioita, ja vastakkaisiin suuntiin osoittavien funktoreiden pari. Tällöin sanotaan, että on funktorin vasen liittofunktori (ja vastaavasti on :n oikea liittofunktori) mikäli on olemassa luonnollinen isomorfismi . Isomorfismin luonnollisuus voidaan ilmaista eksplisiittisemmin seuraavasti. Merkitään sekä isomorfismia että sen käänteismorfismia viivalla, eli:
Tällöin luonnollisuusehto on yhtäpitävä seuraavan ehdon kanssa: kaikille :n morfismeille sekä :n morfismeille pätee
Yllä määriteltyä tilannetta merkitään .
Oletetaan, että on olemassa luonnollinen muunnos sekä luonnollinen muunnos . Tällöin on liitto mikäli molemmat kaaviot

kommutoivat.
Lause. on liitto jos ja vain jos on :n vasen liittofunktori. Tällöin liitto määrää morfismijoukkojen isomorfismin yksikäsitteisesti, ja käänteisesti, morfismijoukkojen isomorfismi määrää yksikön ja koyksikön yksikäsitteisesti.
Matematiikan ulkopuolella kategoriateoriaa on hyödynnetty eniten teoreettisen tietojenkäsittelytieteen alalla. Esimerkiksi Haskell-ohjelmointikielen voidaan ajatella melkein muodostavan kategorian. Laajemmin ottaen, tarpeeksi abstraktilla tasolla mikä tahansa funktionaalinen ohjelmointikieli voidaan ajatella kategoriana.
Sovellukset pyrkivät usein teorioiden yhdenmukaistamiseen, yksinkertaistamiseen sekä oleellisimpien aspektien esille tuomiseen. Tavoitteena saattaa olla myös informaation, tiedon ja käytänteiden siirron helpottaminen eri alojen välillä. Esimerkiksi samoja matemaattisia rakenteita hyödyntäviä kategoriateoreettisia malleja on kehitetty sekä kvanttilaskennan että luonnollisen kielen käsittelyn tarpeisiin.
Monissa sovelluksissa lähtökohtana on monoidaalinen kategoria, eli kategoria , jolle on olemassa funktori , joka toteuttaa tietyt ehdot. Siinä missä tavallinen kategoria sallii prosessien (morfismien) peräkkäisen yhdistämisen, monoidaalinen kategoria sallii tämän lisäksi prosessien yhdistämisen suuremmaksi kokonaisuudeksi, siten että prosesseilla voi olla vaihteleva määrä syöttöjä (lähtöobjekteja) ja tulosteita (engl. output) (maalibjekteja). Esimerkiksi kvanttiteoriasta sekä kemiallisia reaktioita mallintavista Petri-verkoista on kehitetty matemaattisia malleja, jotka hyödyntävät monoidaalisia kategorioita.
Biologi Robert Rosen on ehdottanut, että kategoriateorian metodit soveltuvat relaatiobiologian tarpeisiin. Osittain Rosenin ajatuksiin perustuen, kategoriateoriaan nojaavaa mallia on ehdotettu biologisten organismien hierarkkisen järjestyksen hahmottamiseen.