Teoria kategorii dla informatyków/Wykład 9: Sprzężenia I

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Pojęcie sprzężenia jest jednym z najważniejszych w kursie teorii kategorii. Sprzężenie jest pewną prostą zależnością pomiędzy dwoma przeciwnie zwróconymi funktorami, która, jak się okazuje, występuje niezwykle często w matematyce.


Definicja 9.1 [sprzężenie I]

Dwa funktory F:𝐗𝐀 i G:𝐀𝐗

tworzą sprzężenie, jeśli dla dowolnej pary obiektów X𝐗0,A𝐀0 istnieje naturalna bijekcja:

ϕX,A:𝐗(FX,A)𝐀(X,GA)

W takim wypadku F nazywamy lewym sprzężeniem, G nazywamy prawym sprzężeniem i całą sytuację opisujemy krótko jako:

FG


Taka definicja wyjaśnia dobrze ideę sprzężenia, ale szczegóły trzeba rozszyfrować: naturalność bijekcji ϕX,A oznacza, że ϕ jest naturalnym izomorfizmem pomiędzy pewnymi funktorami (dociekliwym należy się wyjaśnienie, że oba te funktory są typu 𝐗op×𝐀𝐒𝐞𝐭), a naturalność ϕ, pomijając nieciekawe przekształcenia techniczne, sprowadza się ni mniej, ni więcej do faktu, że poniższe dwa diagramy komutują dla dowolnych morfizmów k:AA𝐀1 i h:XX𝐗1:

Równoważnie do Definicji 9.1 powiemy więc, że:


Definicja 9.2

Dwa funktory F:𝐗𝐀 i G:𝐀𝐗 tworzą sprzężenie, jeśli dla dowolnej pary obiektów X𝐗0,A𝐀0 istnieje naturalna bijekcja (piszmy niepoprawnie ϕ zamiast uciążliwego ϕX,A), która dowolnej strzałce f:FXA przypisuje strzałkę ϕ(f):XGA tak, że ϕ(kf)=G(k)ϕ(f) oraz ϕ(fF(h))=ϕ(f)h dla dowolnych strzałek k:AA i h:XX.


Wkrótce wykażemy, że jeśli funktor G ma lewe sprzężenie F (tzn. istnieje funktor F taki, że FG), to F jest jedyny z dokładnością do izomorfizmu (tzn. (FGHG)FH). Istnienie lewego lub prawego sprzężenia jest często ciekawym problemem matematycznym i jeśli da się udowodnić, sam dowód jest pożyteczną konstrukcją. Nie ma potrzeby dłużej strzępić języka, zobaczmy przykłady.


  • Wolne funktory są lewymi sprzężeniami do funktorów zapominania. Np. jeśli G jest grupą, zaś X jest zbiorem, to funkcje XG są w bijekcji z homomorfizmami typu F(X)G, gdzie F(X) jest wolną grupą nad X. A zatem FU, gdzie U:𝐆𝐫𝐩𝐒𝐞𝐭 jest funktorem zapominania, zaś F:𝐒𝐞𝐭𝐆𝐫𝐩 jest funktorem tworzącym wolną grupę nad X. Inny przykład tego typu znajduje się w Zadaniu 9.1.


Uwaga
Problem istnienia lewego sprzężenia do funktora zapominania U:𝐂𝐃 jest w zasadzie pytaniem o to, jak w sposób jednorodny zadać strukturę wymaganą przez 𝐂 na obiektach i strzałkach 𝐃. Pytania o lewe sprzężenie są więc pytaniami typu: w jaki sposób na dowolnym zbiorze zadać topologię? Czy dla dowolnego zbioru da się znaleźć działanie grupowe tak, by elementy tego zbioru były elementami powstałej grupy? Czy każda przestrzeń metryczna da się rozszerzyć do przestrzeni zupełnej? I tak dalej. Niezwykle interesującą klasą kategorii, które posiadają lewe sprzężenie do funktora zapominania z kodziedziną w 𝐒𝐞𝐭 są tzw. kategorie algebraiczne. Mówimy o nich więcej w Wykładzie 15.


  • Przypuśćmy, że 𝐂 jest kategorią kartezjańsko zamkniętą. Niech X𝐂0. Wówczas funktor:
[X,]:𝐂𝐂

jest lewym sprzężeniem funktora ×X:𝐂𝐂 (przypomnijmy sobie definicje pierwszego z tych funktorów podaną w Zadaniu 4.1 - definicja drugiego jest oczywista po przeczytaniu Zadania 3.6), co oznacza, że istnieje naturalna bijekcja pomiędzy morfizmami typu Z×XY i morfizmami typu Z[X,Y] (dla Y,Z𝐂0).

  • Jeśli 𝐉,𝐂 są dowolnymi kategoriami, to funktor diagonalny Δ:𝐂[𝐉,𝐂] jest lewym sprzężeniem do funktora lim𝐉:[𝐉,𝐂]𝐂. Rzeczywiście, wprost z Zadania 8.1, obiekt X𝐂0 jest granicą diagramu D:J𝐂 wtedy i tylko wtedy, gdy istnieje naturalny izomorfizm:
[J,𝐂](ΔX,D)cone𝐂(X,D)𝐂(X,lim𝐉D)

A zatem Δlim𝐉. Szczególne przypadki tego sprzężenia omówimy w Zadaniach 9.2, 9.3.

  • Dla posetów P,Q para funkcji monotonicznych r:PQ, s:QP jest sprzężeniem wtedy i tylko wtedy, gdy
xP yQ (xs(y)r(x)y)

Na przykład, inkluzja U:(,)(,) posiada lewe sprzężenie, które powszechnie nazywa się funkcją sufit :}:

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \lceil x\rceil := \mathrm{najmniejsza\ liczba\ całkowita} \geq x}

Rzeczywiście, równoważność definiująca sprzężenie:

xU(y)xy

zachodzi wtedy i tylko wtedy, gdy x jest najmniejszą liczbą całkowitą większą bądź równą x.

  • Dualność Stone'a (patrz Ćwiczenia do Wykładu 6.). Twierdzenie Stone'a jest jednym z najważniejszych wyników matematyki XX wieku. W ograniczonym brzmieniu (tj. dualność między algebrami Boole'a a przestrzeniami Stone'a) udowodnione przez Marshalla Stone'a w 1939 roku, twierdzenie to po raz pierwszy jednoznacznie potwierdziło użyteczność metod topologii ogólnej w algebrze i dało początek topologii algebraicznej. Wspaniałe omówienie roli dualności Stone'a znajduje się w książce Stone Spaces P.T.Johnstone'a (Cambridge University Press, 1982).


Wracając do głównego wątku wykładu, zanalizujmy głębiej strukturę sprzężenia. Przy ustalonych oznaczeniach z Definicji 9.2 (pominiemy też wszelkie zbędne nawiasy) zauważmy, że jeśli przyjmiemy A=F(X), to 1X𝐀(FX,FX). Możemy więc położyć dla każdego X𝐗 morfizm typu XGFX:

ηX:=ϕ(1FX)

Sama operacja η, która obiektowi X przypisuje strzałkę ηX jest transformacją naturalną typu 1𝐗GF, ponieważ każdy diagram:

komutuje. Rzeczywiście,

GFhηX=GFhϕ(1FX)=ϕ(Fh1FX)=ϕ(1FXFh)=ϕ(1FX)h=ηXh

gdzie dwukrotnie wykorzystaliśmy naturalność ϕ. Transformację η nazywamy jednością sprzężenia FG.

Pokażemy teraz, że bijekcja

ϕ

może być całkowicie odtworzona za pomocą

η

, to znaczy, że kolekcja komponentów

{ηX}X𝐗

wystarcza do zrekonstruowania bijekcji

ϕ

. Niech

f:FXA

. Wówczas

ϕX,A(f)=ϕ(f1FX)=Gfϕ(1FX)=GfηX

. Warto zapamiętać:

ϕX,A(f)=GfηX      (9.1)


Dualnie, jeśli przyjmiemy w Definicji 9.2, że X=GA, to możemy zdefiniować dla każdego A𝐀 strzałkę εA:FGAA:

εA:=ϕ1(1GA)

Transformację naturalną

ε

nazywamy kojednością sprzężenia

FG

. Mając na uwadze, że

ϕ1(gh)=ϕ1(g)Fh

oraz

ϕ1(Gkg)=kϕ1(g)

dla dowolnej

gXGA

mamy:

ϕ1(g):=εAFg      (9.2)

co oznacza, że kojedność wystarcza do odtworzenia

ϕ1

, a co za tym idzie,

ϕ

.

W końcu, zauważmy, że:

G(εA)ηGA=ϕ(εAηFGA)=ϕ(εA)=ϕ(ϕ1(1GA))=1GA

i podobnie:

εFXF(ηX)=ϕ1(ηX)=ϕ1(ϕ(1FX))=1FX

Pokazaliśmy najważniejsze kroki następującego twierdzenia:


Twierdzenie 9.3

Następujące warunki są równoważne:
  • FG,
  • Istnieją dwie transformacje naturalne η:1𝐗GF i ε:FG1𝐀 takie, że następujące diagramy trójkątne komutują:


Uwaga
aby w pełni zrozumieć treść powyższego twierdzenia, należy zauważyć, że transformacje naturalne można złożyć z funktorami (i to na dwa sposoby). Na przykład, ηG jest transformacją naturalną będącą złożeniem transformacji η i funktora G. To złożenie definiujemy przez komponenty jako (ηG)A:=ηGA; podobnie Gη jest transformacją naturalną daną przez komponenty (Gη)A:=G(ηA). I tak dalej. Uważny czytelnik powinien udowodnić, że złożenia, które tu opisujemy są rzeczywiście transformacjami naturalnymi.

Przejdźmy do ostatniej charakteryzacji sprzężenia, które uwypukla uniwersalny charakter jedności sprzężenia. Przypomnijmy sobie definicję elementu uniwersalnego dla funktora reprezentowalnego F:𝐂op𝐒𝐞𝐭 (Definicja 7.4): element eF jest uniwersalny jeśli dla każdego obiektu Y𝐂0 i elementu yFY istnieje dokładnie jedna funkcja f:YX taka, że F(f)(e)=y. Ale e może być traktowany jako strzałka 𝟏FX w 𝐒𝐞𝐭 (𝟏 jest dowolnym singletonem - obiektem końcowym 𝐒𝐞𝐭), Definicja elementu uniwersalnego może być więc uogólniona i postawiona dla funktorów dowolnego typu:


Definicja 9.4

Niech F:𝐃𝐂 będzie funktorem i niech C𝐂0. Strzałką uniwersalną z C do F jest para (X,e) składająca się z obiektu X𝐂0 i strzałki e:CFX𝐂1 taka, że dla dowolnego obiektu Y𝐂0 i strzałki y:CFX istnieje dokładnie jedna strzałka f:XY spełniająca Ffe=y.

Innymi słowy: każda strzałka y faktoryzuje się przez e.

Jak się okazuje, sprzężenie jest w pełni scharakteryzowane przez fakt, że jedność ηX jest strzałką uniwersalną z X do G (przy oznaczeniach Definicji 9.2).


Twierdzenie 9.5

Następujące warunki są równoważne:
  • FG
  • η:1𝐗GF jest transformacją naturalną taką, że dla każdego X𝐂0, ηX jest strzałką uniwersalną z X do G.

Dowód

Strzałka ηX jest uniwersalna wtedy i tylko wtedy, gdy dla dowolnego morfizmu f:XGA istnieje dokładnie jeden morfizm g:FXA tak, że następujący diagram komutuje:
Ale to oznacza, że θ(g):=GgηX jest bijekcją pomiędzy 𝐀(FX,A) i 𝐗(X,GA). Ta bijekcja jest naturalna względem X, bo η jest naturalna; jest naturalna względem A, bo G jest funktorem. To dowodzi FG.

Uwaga: Powyższe twierdzenie jest jednym z najpopularniejszych sposobów prezentowania sprzężenia. Śmiało możemy więc ująć je jako definicję:


Definicja 9.6 [Sprzężenie II]

Dla F:𝐗𝐀 i G:𝐀𝐗 mamy FG wtedy tylko wtedy, gdy dla każdego X𝐗0 istnieje strzałka ηX:XGFX taka, że: dla dowolnego morfizmu f:XGA istnieje dokładnie jeden morfizm g:FXA tak, że następujący diagram komutuje:

Oto dalsze przykłady sprzężeń:

  • Funktor List:𝐒𝐞𝐭𝐌𝐨𝐧 (patrz Przykład 5.3) jest lewym sprzężeniem do funktora zapominania U:𝐌𝐨𝐧𝐒𝐞𝐭 (bo List jest funktorem wolnym). Dla zbioru X jedność sprzężenia ηX:XList(X) jest funkcją x[x], czyli przekształca elementy X na listy jednoelementowe. W tym przykładzie, dla funkcji f:X, f(x):=1 jedyną funkcją (oznaczoną l), która sprawia, że diagram:

komutuje, jest funkcja przypisująca liście jej długość.

  • Niech 𝐌𝐞𝐭 oznacza kategorię przestrzeni metrycznych i funkcji niepowiększających odległości, zaś 𝐂𝐌𝐞𝐭 - kategorię przestrzeni metrycznych zupełnych, z takimi samymi morfizmami. Wówczas dla funktora zapominania U:𝐂𝐌𝐞𝐭𝐌𝐞𝐭 istnieje lewe sprzężenie, które każdej przestrzeni metrycznej przypisuje jej uzupełnienie. Jednością tego sprzężenia jest rodzina odwzorowań, które elementowi x przestrzeni metrycznej X przypisują stały ciąg Cauchy'ego (x,x,x,...).


W Ćwiczeniach do tego wykładu omówimy szczegółowo zarówno przykłady, które już się pojawiły, jak i całkiem nowe, często być może zaskakujące Czytelnika sytuacje, których ukrytym mechanizmem jest sprzężenie.