Teoria kategorii dla informatyków/Wykład 3: Zasada dualności i proste konstrukcje uniwersalne

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Kilkakrotnie podczas naszych wykładów pojawiła się dualność, która - jak wyjaśniliśmy w Definicji 2.3 - polega na tym, że dla dowolnej kategorii 𝐂 możemy zbudować kategorię 𝐂op poprzez odwrócenie kierunku strzałek i wszelkie własności 𝐂 mają swoje odbicie we własnościach 𝐂op. Ta intuicja jest bardzo pomocna, więc warto precyzyjnie i systematycznie zbadać pojęcie dualności w teorii kategorii, które - na pierwszy rzut oka - trywialne, ma daleko idące konsekwencje: każde udowodnione twierdzenie ma swój dualny odpowiednik, równie ciekawy jak oryginalny, którego dowód dostajemy za darmo, zgodnie z zasadą dualności.

Zasada dualności

Przypomnijmy formalną definicję kategorii: składa się ona z obiektów: A,B,.., morfizmów: f,g,.., czterech operacji dom,cod,,1, które podlegają siedmiu aksjomatom: dom(1A)=A, cod(1A)=A, f1dom(f)=f, 1cod(f)f=f, dom(gf)=dom(f), cod(gf)=cod(g), h(gf)=(hg)f, przy czym gf jest zdefiniowane tylko jeśli dom(g)=cod(f), więc w rzeczywistości trzy ostatnie aksjomaty powinny być zastąpione przez implikacje, np. dom(gf)=dom(f) to w rzeczywistości dom(g)=cod(f)dom(gf)=dom(f). Niech CT będzie zdaniem, które oznacza koniunkcję wszystkich siedmiu aksjomatów w ich pełnej wersji.

Powiemy, że zdanie Σ jest wyrażone w elementarnym języku teorii kategorii, jeśli w Σ jest poprawnie zbudowanym wyrażeniem mówiącym jedynie o obiektach, morfizmach i operacjach dom, cod, , 1. Na przykład CT jest wyrażone w elementarnym języku teorii kategorii.

Dla dowolnego takiego zdania elementarnego Σ możemy utworzyć elementarne zdanie dualne Σ*, dokonując następującej zamiany:

fg na gf
cod na dom
dom na cod

Widzimy, że wówczas Σ* jest poprawnie zbudowanym wyrażeniem. Przypuśćmy zatem, że ze zdania Σ wynika inne elementarne zdanie Δ bez użycia aksjomatów teorii kategorii. Wtedy ze zdania Σ* wynika Δ*. Ale aksjomaty teorii kategorii są samodualne: CT= CT*. To znaczy, że następujące metastwierdzenie jest prawdziwe:


Fakt 3.1 [formalna zasada dualności]

Dla dowolnego zdania elementarnego Σ w języku teorii kategorii, które wynika z aksjomatów teorii kategorii, również Σ* wynika z aksjomatów teorii kategorii.

To znaczy również, że każda interpretacja zdania Σ w kategorii 𝐂 daje interpretację zdania Σ* w 𝐂op. Ponieważ jednak (𝐂op)op=𝐂, dostajemy:


Fakt 3.2 [zasada dualności]

Jeśli zdanie Σ jest prawdziwe w każdej kategorii, to Σ* również jest prawdziwe w dowolnej kategorii.

Dowód

Skoro Σ jest prawdziwe w każdej kategorii 𝐂, to jest prawdziwe w każdej kategorii 𝐂op. Stąd wynika, że Σ* jest prawdziwe w (𝐂op)op, czyli w 𝐂.

Produkt i koprodukt

Naszym zadaniem jest teraz zaproponowanie takiej definicji produktu obiektów kategorii, aby wszystkie znane pojęcia: produktu zbiorów, produktu grup, produktu przestrzeni wektorowych, produktu częściowych porządków, i tak dalej, stały się szczególnym przypadkiem naszej propozycji. Czy to możliwe? Okazuje się, że tak! Ta możliwość jest odbiciem bardzo ważnej własności pojęcia produktu: własności uniwersalnej. Własność ta jest wyrażona w języku strzałek i mówi, że produkt jest zdefiniowany z dokładnością do izomorfizmu, tzn. jest to taki obiekt, który jest izomorficzny z każdym możliwym dobrym kandydatem na produkt. Rozważmy najpierw produkt w 𝐒𝐞𝐭, którego obserwacja wskaże nam sposób, w jaki najlepiej sformułować własność uniwersalną produktu i podać definicję kategoryjną, niezależną od specyfiki kategorii zbiorów 𝐒𝐞𝐭. Często będziemy pracować w ten właśnie sposób: podglądamy jak dana konstrukcja uniwersalna wygląda dla zbiorów (bo tam mamy najlepsze intuicje), potem wyciągamy wnioski ogólne, a na końcu testujemy nasze kategoryjne definicje na dalszych przykładach.

Niech A,B będą zbiorami. Teoria mnogości definiuje ich produkt jako następujący zbiór par uporządkowanych:

A×B:={(a,b)aAbB}

Produkt zbiorów możemy zdekonstruować za pomocą projekcji:

AπAA×BπBB

gdzie πA((a,b)):=a i πB((a,b)):=b. Użyliśmy słowa dekonstrukcja nieprzypadkowo: informatykowi, który przecież zna podstawy programowania obiektowego, wygodnie będzie myśleć o produkcie A×B jako o obiekcie wyposażonym w destruktory πA,πB, pozwalające z informacji zawartych w produkcie wydobyć informację o jego składowych. Ta dekonstrukcja przebiega w sposób bardzo porządny, odwracalny, ponieważ dla każdego cA×B mamy c=(πA(c),πB(c)). To równanie jest niezwykle ważne, gdyż wskazuje na własność uniwersalną produktu: poniższy diagram komutuje:

gdzie 𝟏 oznacza obiekt końcowy w 𝐒𝐞𝐭. Ten diagram czytamy oczywiście tak: dla dowolnych elementów a:𝟏A, b:𝟏B istnieje dokładnie jeden element (a,b):𝟏A×B taki, że πA(a,b)=a i πB(a,b)=b. Jeśli teraz zastąpimy elementy przez elementy uogólnione (patrz ten podrozdział), dostajemy:


Definicja 3.3 [produkt]

Niech 𝐂 będzie dowolną kategorią, zaś A,B𝐂0 jej obiektami. Produktem obiektów A i B nazywamy obiekt A×B𝐂0 wraz ze strzałkami pA:A×BA𝐂1 i pB:A×BB𝐂1:

ApAA×BpBB

który posiada następującą własność uniwersalną:

Dla dowolnego diagramu:

AfXgB

w kategorii 𝐂, istnieje dokładnie jedna strzałka h:XA taka, że f=pAh i g=pBh (czyli taka, że poniższy diagram komutuje).

Taką strzałkę h oznaczamy zwyczajowo (f,g).


Fakt 3.4

Produkt jest jedyny z dokładnością do izomorfizmu.

Dowód

Niech
ApAPpBB
AqAQqBB

będą dwoma produktami A i B. Wówczas poniższy diagram komutuje:

ponieważ wszystkie trzy jego części komutują (a przyczyną tego jest dokładnie po trzykroć definicja produktu):

To znaczy, że kh=1P. Zamieniając miejscami na diagramach role P i Q, otrzymamy również zależność hk=1Q, co świadczy o tym, że P i Q są izomorficzne: PQ.

Przykłady:

  • W zbiorach z dodatkową strukturą, jak np. grupy czy monoidy, produkt konstruuje się, biorąc produkt zbiorów podkładowych wraz z operacjami po współrzędnych; np. produktem dwóch grup (G,,eG), (H,,eH) jest zbiór G×H wraz z działaniami:
(g,h)(g,h):=(gg,hh)

i elementem neutralnym e:=(eG,eH). Projekcje to homomorfizmy (g,h)g i (g,h)h.

  • Kategoria 𝐂𝐚𝐭 posiada produkty, to znaczy: dla dowolnych dwóch małych kategorii 𝐂, 𝐃 istnieje ich produkt 𝐂×𝐃. Obiektami są uporządkowane pary obiektów z 𝐂 i 𝐃, morfizmami - uporządkowane pary morfizmów z 𝐂 i 𝐃 projekcjami funktory P𝐂:𝐂×𝐃𝐂 oraz P𝐃:𝐂×𝐃𝐃 dane jako:
P𝐂((C,D)):=C
P𝐂((f,g)):=f
P𝐃((C,D)):=D
P𝐃((f,g)):=g

dla C𝐂0,D𝐃0,f𝐂1,g𝐃1. Sprawdzenie, że taka definicja daje nam produkt jest bardzo łatwe - wszystko dzieje się tak, jak w 𝐒𝐞𝐭.

  • W Zadaniu 1.11 zdefiniowaliśmy kategorię typów 𝐂(λ) dla λ-rachunku. Ta kategoria posiada produkty, to znaczy: każde dwa obiekty tej kategorii posiadają produkt. Przekonajmy się o tym. Rzeczywiście, mając dane typy A i B, definiujemy:
pA:=λz.π1(z)
pB:=λz.π2(z)

Mając dane a i b jak na diagramie:

definiujemy

(a,b):=λx.ax,bx

Sprawdźmy, że diagram rzeczywiście komutuje:

pA(a,b)=λx.pA((λy.ay,by)x)=λx.pAax,bx=λx.ax=a

i podobnie pB(a,b)=b. Jeśli teraz c:XA×B również spełnia pAc=a i pBc=b, to wtedy:

(a,b)=λx.ax,bx=λx.(pAc)x,(pBc)x=λx.λy.(pA(cy))x,λy.(pB(cy))x=λx.λy.((λz.π1(z))(cy))x,λy.((λz.π2(z))(cy))x=λx.λy.(π1(cy))x,λy.(π2(cy))x=λx.π1(cx),π2(cx)=λx.cx=c

Wykazaliśmy więc, że kategoria 𝐂(λ) ma produkty.

Jeszcze jeden przykład znajduje się w Zadaniu 3.1.

Dzięki zasadzie dualności, definicję i własności obiektu dualnego do produktu, tzw. koproduktu dostajemy za darmo (porównaj bardzo dokładnie(!) z Definicją 3.3):


Definicja 3.5 [koprodukt]

Niech 𝐂 będzie dowolną kategorią, zaś A,B𝐂0 jej obiektami. Koproduktem obiektów A i B nazywamy obiekt A+B𝐂0 wraz ze strzałkami iA:AA+B𝐂1 i iB:BA+B𝐂1:

AiAA+BiBB

który posiada następującą własność uniwersalną:

Dla dowolnego diagramu:

AfXgB

w kategorii 𝐂, istnieje dokładnie jedna strzałka h:A+BX taka, że f=hiA i g=hiB (czyli taka, że poniższy diagram komutuje). Strzałkę h oznaczmy zwyczajowo jako [f,g].

Stwierdzenie dualne do Faktu 3.4 mówi nam, że koprodukt jest jedyny z dokładnością do izomorfizmu! Omówienie koproduktu w 𝐒𝐞𝐭 jest przedmiotem Zadania 3.2.

Ekwalizator i koekwalizator

Definicja 3.6 [ekwalizator]

Dla dwóch równoległych strzałek f,g:AB w kategorii 𝐂, ich ekwalizatorem nazywamy obiekt E wraz ze strzałką e:EA, która:

  • ekwalizuje f i g, tzn. fe=ge oraz
  • jest uniwersalna, tzn. dla dowolnej strzałki z:ZA, takiej że fz=gz, istnieje dokładnie jedna strzałka u:ZE taka, że ez=u, tzn. taka, że poniższy diagram komutuje:


W 𝐒𝐞𝐭 ekwalizatorem dwóch funkcji f,g:AB musi być zbiór, na którym funkcje się zgadzają, więc zgadujemy, że E:={xAf(x)=g(x)}. Z takim zbiorem w oczywisty sposób jest związana inkluzja e:EA, e(x):=x dla xE. Pokażmy, że (E,e) jest ekwalizatorem.

Niech Z będzie dowolnym zbiorem z funkcją z:ZA tak, że fz=gz. Wtedy z(w)E dla każdego wZ. Ale to oznacza, że z faktoryzuje się przez E. Ta faktoryzacja jest jednoznaczna, bo e jest mono (jeśli eu=z i eu=z, to eu=eu, stąd mono implikuje u=u).

To nie przypadek, że e jest monomorfizmem:


Fakt 3.7

Każdy ekwalizator jest monomorfizmem.

Dowód

Rozważmy diagram:

gdzie zakładamy, że e ekwalizuje f,g oraz ex=ey. Ponieważ ex jest typu ZA oraz f(ex)=(fe)x=(ge)x=g(ex), więc z własności uniwersalnej e wynika, że istnieje dokładnie jedna strzałka u:ZE taka, że eu=ex. Jako u da się podstawić zarówno x jak i y i ostatnie równanie pozostanie prawdziwe, więc musi być x=y. To kończy dowód, że e jest mono.

W innych kategoriach, jak 𝐓𝐨𝐩, 𝐏𝐨𝐬, 𝐌𝐨𝐧 ekwalizatorem jest zbiór strzałek f,g:AB jest podzbiór E={xAf(x)=g(x)} zbioru A wraz ze strukturą dziedziczoną z A, zawężoną do E (np. w 𝐓𝐨𝐩, zbiór E dostaje topologię podprzestrzeni).

Pojęciem dualnym do ekwalizatora jest koekwalizator. Co ciekawe - koekwalizatory są uogólnieniem pojęcia przestrzeni ilorazowej i odwzorowania ilorazowego przypisującego elementowi jego klasę abstrakcji.


Definicja 3.8

Koekwalizatorem pary strzałek f,g:AB nazywamy taki obiekt Q wraz ze strzałką q:BA, która:
  • koekwalizuje f,g, tzn. qf=qg oraz
  • jest uniwersalna, tzn. dla dowolnej strzałki z:BZ, która koekwalizuje: zf=zg, istnieje dokładnie jednak strzałka u:QZ taka, że uq=z.

Dualność wraz z Faktem 3.7 implikują, że koekwalizator jest zawsze epimorfizmem. Sztandarowym przykładem koekwalizatora w 𝐒𝐞𝐭 jest koekwalizator typu

gdzie RX×X jest relacją równoważności na X, zaś p1,p2 są projekcjami. Koekwalizatorem jest wtedy zbiór ilorazowy X/R wraz z kanonicznym przekształceniem ilorazowym q:XX/R danym jako q(x):=[x]R, gdzie [x]R jest klasą równoważności elementu xX przy relacji R.

Oczywiście w 𝐒𝐞𝐭 istnieją wszystkie koekwalizatory, tzn. dla każdej pary f,g:AB znajdziemy koekwalizator. Jest nim zbiór B podzielony przez relację równoważności RB×B daną jako przecięcie wszystkich relacji równoważności S takich, że b1,b2S wtedy i tylko wtedy, gdy f(b1)=g(b2). Szczegóły techniczne nie są ciekawe, więc je pomijamy.

Pulbak i pushout

Przed nami terra incognita, gdzie znane z 𝐒𝐞𝐭 intuicje odszukujemy w coraz bardziej złożonych formach, trudniejszych niż w przypadku poprzednio omówionych granic. Pulbak (produkt włóknisty), który pojawia się bardzo często w matematyce, w logice w szczególności, w 𝐒𝐞𝐭 stanowi uogólnienie zarówno operacji przecięcia zbiorów, jak i przeciwobrazu funkcji. Jego dualnym odpowiednikiem jest pushout. (Pozwalamy sobie pozostać przy angielskich nazwach, ustępując pola lingwistom, którzy chcieliby znaleźć, choćby dla pushoutu, wygodniejszą nazwę niż koprodukt włóknisty.)


Definicja 3.9 [pulbak]

Pulbakiem strzałek f,g takich, że cod(f)=cod(g) w kategorii 𝐂

nazywamy obiekt P wraz ze strzałkami

taki, że:

  • poniższy kwadrat pulbakowy komutuje, tzn. fp=gq oraz
  • uniwersalny, tzn. dla dowolnego innego kandydata na pulbak
ArQsB

istnieje dokładnie jedna strzałka u:QP taka, że: r=pu i s=qu, tzn. taka, że poniższy diagram komutuje:


Uwaga
O takiej sytuacji będziemy mówili, że p jest pulbakiem g wzdłuż f lub że q jest pulbakiem f wzdłuż g (stąd nazwa pulbak - od angielskiego pulling back).

Pulbak nazywa się często w literaturze produktem włóknistym i jest ku temu dobra przyczyna: w dowolnej kategorii 𝐂 z produktami (tzn. w takiej kategorii 𝐂, w której istnieje produkt dowolnych dwóch obiektów) i ekwalizatorami, dla diagramu

AfZgB

rozważmy inny diagram:

gdzie pA,pB są projekcjami produktu A×B. Niech

będzie ekwalizatorem. Wtedy

jest pulbakiem strzałek AfZgB.

Oto dowód (pomijamy dla prostoty symbol złożenia ): oczywiście f(pAe)=(fpA)e=(gpB)e=g(pBe), więc pierwszy punkt definicji pulbaku jest spełniony. Po drugie, jeśli

komutuje, to dla strzałki

Q(r,s)A×B

z własności uniwersalnej ekwalizatora istnieje dokładnie jedna strzałka u:QP taka, że

komutuje. Oczywiście komutuje też

co kończy dowód faktu, że (P,pAe,pBe) jest pulbakiem. q.e.d.

A zatem można sobie wyobrażać, że pulbak powstaje jako ekwalizator produktu, co w szczególności dla 𝐒𝐞𝐭 implikuje, że pulbak funkcji

AfZgB

jest zbiorem

A×ZB={(a,b)A×Bf(a)=g(b)}

wraz z zanurzeniem A×ZBA×B.

Podsumowując powyższą dyskusję, pokazaliśmy że:

Wniosek 3.10

W dowolnej kategorii 𝐂 z produktami i ekwalizatorami istnieją wszystkie pulbaki.

Prawdziwe jest również stwierdzenie odwrotne, które jest treścią Zadania 3.4. Wykład zakończymy podrozdziałem, który ilustruje własności pulbaków i do którego warto wrócić raz jeszcze po przeczytaniu Wykładu 5.

Własności pulbaków

Lemat 3.11 [Lemat Pulbakowy]

Załóżmy, że diagram

komutuje. Wówczas:

  • Jeśli prawy kwadrat i zewnętrzny prostokąt są kwadratami pulbakowymi, to lewy kwadrat też.
  • Jeśli dwa wewnętrzne kwadraty są pulbakami, to zewnętrzny prostokąt też jest pulbakiem.

Dowód powyższego lematu jest treścią Zadania 3.8. Konsekwencją Lematu Pulbakowego jest natychmiast:

Wniosek 3.12

Pulbak komutującego trójkąta jest komutującym trójkątem. To znaczy: jeśli na poniższym diagramie w kształcie pryzmy

prawy trójkąt komutuje i dla h:CC tworzymy pulbaki:

  • α jako pulbak α wzdłuż h,
  • β jako pulbak β wzdłuż h,

to istnieje dokładnie jedna strzałka γ:AB taka, że lewy trójkąt komutuje i taka, że trzecia ze ścian pryzmy (górna) również jest pulbakiem.

Dowód

Wynika natychmiast z Lematu Pulbakowego, jeśli przyjmiemy jako γ strzałkę uniwersalną pulbaku β wzdłuż h i przerysujemy wygodnie pryzmę jako:

(wtedy z faktu, że najbardziej zewnętrzny prostokąt i prawy kwadrat są pulbakami wynika, teza: lewy kwadrat jest pulbakiem).

Stwierdzenie 3.13

Pulbak jest funktorem tzn. w kategorii 𝐂 z pulbakami, dla każdej strzałki h:CC𝐂1 istnieje funktor Pbh:𝐂/C𝐂/C definiowany na obiekcie α:AC(𝐂/C)0 jako:
Pbh(AαC):=(C×CAαC)

i na strzałce γ:αβ(𝐂/C)1 jak w powyższym wniosku (tzn: γγ: porównaj diagram-pryzmę).

Dowód

Musimy pokazać, że
Pbh(1A)=1Pbh(A)

i

Pbh(γη)=Pbh(γ)Pbh(η)

Obie własności łatwo sprawdzić, stosując Lemat Pulbakowy. My pokażemy tylko pierwszą, pozostawiając drugą dla zainteresowanego czytelnika. Rozważmy zatem diagram:

Jeśli dolny kwadrat jest pulbakiem, to oczywiście zewnętrzny prostokąt też. Z Lematu Pulbakowego wynika, że górny kwadrat komutuje. A zatem Pbh(1α)=Pbh(1A)=1A=1α=1Pbh(α).