Teoria kategorii dla informatyków/Ćwiczenia 1: Teoria kategorii jako abstrakcyjna teoria funkcji
==Zadanie 1.1==
Udowodnij, że dla dwóch funkcji oraz
, jeśli
oraz
, to funkcja
jest bijekcją.
Pokażemy najpierw, że jest funkcją różnowartościową. Przypuśćmy, że
dla pewnych elementów
. Wówczas
. Ponadto, dla dowolnego
, element
jest jedynym takim elementem, że
, co w szczególności oznacza, że
jest surjekcją. Wnioskujemy więc, że
jest różnowartościową surjekcją, czyli bijekcją.
==Zadanie 1.2==
Udowodnij Fakt 1.2.
Fakt, że liczby naturalne posiadają własność wspomnianą w Fakcie 1.2 jest dokładnie twierdzeniem o rekursji. Pozostaje nam zatem udowodnienie implikacji przeciwnej.
To wiemy z założenia.
To wiemy z założenia.
Przypuśćmy przeciwnie, że dla pewnego mamy
. Wtedy, kładąc
oraz
, z założenia istnieje funkcja
taka, że
oraz
. A zatem
, sprzeczność.
jest injekcją.
Przypuśćmy, że dla pewnych
. Kładąc
(jest to podzbiór
) oraz
, wiemy, że istnieje funkcja
taka, że
oraz
. Taka funkcja jest tylko jedna, więc jej zawężenie do
musi być równe funkcji
, która spełnia warunki
oraz
dla
. Dlatego założenie
implikuje
, co należało pokazać.
W tym punkcie przedstawimy najpierw rozumowanie teoriomnogościowe, a potem skorzystamy z okazji, aby ten sam dowód pokazać bardziej w duchu teorii kategorii (stopniowo ten drugi rodzaj dowodów będzie zastępował pierwszy).
Rozważmy zatem funkcję , która - będąc obcięciem
do
- spełnia warunek
, gdzie
jest inkluzją
w
. Zgodnie z założeniem zadania, dla funkcji
istnieje dokładnie jedna funkcja
taka, że
oraz
. Łącząc tą równość z poprzednią, dostajemy
. Zwróćmy teraz uwagę na funkcję
. Oczywiste spostrzeżenie, że
pozwala nam stwierdzić, że
jest jedyną funkcją typu
, która spełnia ostatnią z równości. Skoro tak, to musi być równa identyczności na
. Pokazaliśmy więc, że
, a stąd - jak łatwo pokazać - wynika, że
jest injekcją. A zatem
, co należało wykazać.
Pokazaliśmy zatem, że aksjomaty Peano są spełnione dla zbioru , a zatem teoria mnogości uczy nas, że
jest zbiorem liczb naturalnych nat.
Dowód ostatniego z aksjomatów Peano prowadzony w duchu teorii kategorii, czyli teorii przekształceń, korzysta z dobrodziejstwa, jakim jest możliwość przedstawiania funkcji i ich złożeń na diagramach.
Po pierwsze, spróbujmy przedstawić graficznie (na diagramach) założenia, które mamy, tzn. zdanie: jest zbiorem, który posiada wyróżniony element
oraz funkcję
takie, że dla dowolnego innego zbioru
i elementu
oraz funkcji
istnieje dokładnie jedna funkcja
spełniająca warunki
oraz
.
Zauważmy więc, że element może być zawsze traktowany jako funkcja
, gdzie
jest dowolnym zbiorem jednoelementowym (zwróćmy uwagę, że w tej interpretacji aplikacja funkcji staje się złożeniem, np.
staje się złożeniem
). Podobnie dla
. Po drugie, wszelkie równości pomiędzy funkcjami przedstawiamy jako komutowanie odpowiedniego diagramu, np. równość
zachodzi wtedy i tylko wtedy, gdy poniższy diagram komutuje:

Następnie umawiamy się, że jeśli funkcja w diagramie jest jedyną, która może znajdować się pomiędzy dwoma danymi obiektami, to zaznaczamy ją przerywaną linią, np. zdanie ... jest jedyną funkcją taką, że... odzwierciedla się graficznie jako:

Jeśli diagram jest bardziej skomplikowany, to umawiamy się, że odczytujemy wszystkie możliwe równania, przy czym umawiamy się, że nie musimy rysować identyczności. A zatem diagram:

komutuje wtedy i tylko wtedy, gdy ,
,
,
,
(ten wniosek wynika z czterech pozostałych!) i
jest jedyną taką funkcją, która spełnia wszystkie wymienione zależności. Tak więc powyższy diagram zawiera całą informację dostępną w założeniach zadania. Przystąpmy więc do kategoryjnego dowodu ostatniego aksjomatu Peano. Oto on: skoro diagram

komutuje, co możemy przedstawić również w skrócie jako:

jak również komutuje diagram:

to z warunku jednoznaczności istnienia funkcji dostajemy . To jednak implikuje, że
jest injekcją, czyli
, co należało pokazać.
Jak zobaczymy w toku wykładu, dowody poprzez pokazanie komutujących diagramów (czyli de facto wyeksplikowanie pewnych równości między funkcjami – czy też ogólniej: morfizmami) są bardzo często spotykane w teorii kategorii, a nawet zastępują wszelkie inne dowody
==Zadanie 1.3==
Znajdź przykład na to, że w kategorii Pos bijekcje nie zawsze są izomorfizmami.
Wystarczy rozważyć częściowe porządki dwuelementowe.
==Zadanie 1.4==
Pokaż, że każda grupa może być traktowana jako kategoria, w której każdy morfizm jest izomorfizmem.
Niech będzie grupą. Podobnie jak w przypadku monoidów, deklarujemy
jako jedyny obiekt pewnej kategorii, zaś elementy zbioru
jako morfizmy tejże kategorii, działanie
jako złożenie morfizmów, element
traktując jako identyczność na obiekcie
. Zauważmy, że każdy element posiada element odwrotny, czyli dla każdego
istnieje
tak, że
. Te równania interpretowane w naszej kategorii czynią tenże dowolnie wybrany element
izomorfizmem.
==Zadanie 1.5==
Dla dowolnej kategorii zaproponuj konstrukcję nowej kategorii, w której – żądamy – obiektami są morfizmy z
.
Niech będzie dowolną kategorią; dla dwóch jej dowolnych morfizmów
oraz
, musimy zaproponować taką operację, dla której
jest dziedziną i
jest kodziedziną. Gdyby przedstawić to graficznie, w postaci diagramu, łatwo przyjdzie nam na myśl definicja takiej operacji: będzie to para morfizmów
z kategorii
taka, że poniższy diagram komutuje:

Teraz już łatwo dopowiedzieć szczegóły konstrukcji.
Zaproponujemy najpierw złożenie: dwa morfizmy oraz
jak poniżej:

składają się tak:

albo formalnie: . Oczywiście
oraz
. W końcu, identycznościami w nowej kategorii, którą często oznacza się jako
są pary identyczności z kategorii
. Wszelkie pozostałe czynności, które musimy wykonać, by sprawdzić, że
jest kategorią, są trywialne.
==Zadanie 1.6==
Niech będzie kategorią, zaś
jej ustalonym obiektem. Zaproponuj konstrukcję nowej kategorii, której obiektami są wszystkie morfizmy z
o kodziedzinie
.
Wykorzystaj Zadanie 1.5
Tak jak w Zadaniu1.5 morfizmami nowej kategorii, oznaczanej często i nazywanej
-warstwą
, są komutujące diagramy: ponieważ wszystkie obiekty
jako morfizmy
mają wspólną kodziedzinę, więc możemy przyjąć, że morfizmami są komutujące trójkąty:

albo formalnie: jeśli oraz
są obiektami
, to morfizmem o dziedzinie
i kodziedzinie
jest morfizm
z
taki, że powyższy diagram komutuje. Sprawdzenie, że
jest kategorią jest już trywialne.
==Zadanie 1.7==
Udowodnij, że złożenie izomorfizmów jest izomorfizmem, że morfizm odwrotny do izomorfizmu jest tylko jeden, a także, że identyczności w dowolnej kategorii są izomorfizmami.
Pokażmy najpierw, że złożenie izomorfizmów jest izomorfizmem. Załóżmy, że oraz
są izmorfizmami. Wówczas ich złożenie
posiada morfizm odwrotny
. Rzeczywiście,
i podobnie pokazujemy drugie z równań dla izomorfizmu.
Rozwiążemy to samo zadanie graficznie: zauważmy, że fakt, iż jest izomorfizmem z odwrotnością
jest wyrażony przez fakt, że poniższy diagram komutuje:

(Przypomnijmy sobie umowę z Zadania 1.2, że nie rysujemy identyczności.)
Podobnie, diagram:

komutuje, a co za tym idzie, złożenie tych dwóch diagramów komutuje:

To zaś kończy dowód faktu, że jest odwrotnością
.
Po drugie, pokażmy, że morfizm odwrotny do izmorfizmu jest tylko jeden: załóżmy przeciwnie, że dla pewnego izomorfizmu istnieją dwie odwrotności
. Wówczas
, co należało pokazać.
Po trzecie, niech będzie dowolnym obiektem dowolnej kategorii. Identyczność
spełnia oczywiście (z definicji kategorii) równanie
, co świadczy o tym, że jest izomorfizmem.
==Zadanie 1.8==
Znajdź kategorię, która ma tę własność, że jeśli dwa obiekty są izomorficzne, to muszą być sobie równe.
Można wziąć pod uwagę te szczególne kategorie, w których istnieje co najwyżej jedna strzałka pomiędzy dowolnymi dwoma obiektami.
Niech będzie częściowym porządkiem. Traktowany jako kategoria, posiada tę własność, że pomiędzy dwoma jego obiektami (elementami) istnieje co najwyżej jeden morfizm (w przypadku, gdy elementy te są w częściowym porządku). Niech
będą obiektami izomorficznymi. W języku częściowych porządków oznacza to, że
i
. Antysymetria relacji porządkującej daje nam
, co należało pokazać.
==Zadanie 1.9==
Pokaż, że w kategorii Mon izomorfizmy to dokładnie bijektywne homomorfizmy monoidów.
Jedna z implikacji jest bardzo łatwa: jeśli jest izomorfizmem w Mon, to w szczególności jest morfizmem, czyli homomorfizmem monoidów. Równania dla
jako izomorfizmu implikują, że
jest też bijekcją, w dokładnie ten sam sposób, w jaki pokazaliśmy dla funkcji między zbiorami (patrz dyskusja po Fakcie 1.1). Wystarczy więc udowodnić implikację odwrotną.
Załóżmy, że jest bijektywnym homomorfizmem z odwrotnością
. Wystarczy pokazać, że
jest homomorfizmem, tzn., że
oraz
dla dowolnych
. Wykorzystując fakt, że
- jako homomorfizm - zachowuje jedynkę, mamy:
, czyli pierwszą z szukanych równości. Znów, opierając się na własnościach
, mamy:
, co należało pokazać.
==Zadanie 1.10==
Przekonaj się, że kategorie i funktory tworzą kategorię, którą oznaczamy .
Przeczytaj najpierw Definicję 5.1, w której mówimy czym są funktory.
Najpierw definiujemy identyczności: dla dowolnej kategorii proponujemy przekształcenie
jako
dla dowolnych . Wtedy oczywiście
jest funktorem. Złożenie funktorów definiujemy w sposób naturalny, tak jak złożenie funkcji w
. Niech
,
,
będą funktorami.
dla i taki sam dowód działa dla morfizmów. Wnioskujemy więc, że:
Ponadto:
gdzie oznacza miejsce, w które można wstawić obiekt lub morfizm z
– taka konwencja notacyjna będzie często używana w przyszłości. A zatem wnioskujemy, że złożenie funktorów jest łączne.
==Zadanie 1.11==
Podaj dwa dalsze przykłady kategorii.
Najprościej zdefiniować nowe kategorie poprzez modyfikację istniejących przykładów (np. kategorię tworzą zbiory i funkcje częściowe). Nasz drugi przykład jest tego typu: jako język funkcyjny bierzemy -rachunek i tworzymy dla niego kategorię, tak jak opisaliśmy to w jednym z ostatnich przykładów podanych podczas wykładu.
Przykład pierwszy: Automaty. Niech będzie monoidem. Definiujemy
-automat jako parę
składającą się ze zbioru stanów
i funkcji przejścia
tak, że:
dla dowolnych ,
. Morfizmem
-automatów
,
jest funkcja
taka, że
. Sprawdzenie, że taka struktura jest kategorią jest oczywiste, nieprawdaż?
Drugi przykład: Rachunek lambda. Rozważamy prosty rachunek z typami. (
-rachunek jest formalizmem pozwalającym na wygodną manipulację funkcjami. Umożliwia opis funkcji bez podawania jej nazwy, np: funkcja
jest w rachunku lambda zapisywana jako
, zaś funkcja, której wartością jest również funkcja:
zapisuje się jako
.) Formalnie,
-rachunek składa się z:
- typów:
- termów, w skład których wchodzą:
- dla każdego typu
zmienne tego typu:
,
- stałe różnych typów:
,
- dla dowolnych
, para:
,
- dla dowolnego
, projekcja
,
- dla dowolnego
, projekcja
,
- dla dowolnych
, aplikacja
,
- dla dowolnych
, abstrakcja
.
- dla każdego typu
- równań:
,
,
,
,
, o ile
nie występuje w
.
Definiujemy też relację na termach (nazywaną zwyczajowo
-równoważnością), jako relację równoważności generowaną przez równania i zamianę nazwy zmiennych związanych: o ile
nie występuje w
, to:
Kategorię definiujemy teraz, jak następuje:
- obiekty: typy
-rachunku,
- morfizm z
do
to termy domknięte
(identyfikowane ze sobą, jeśli
),
- identyczności:
dla każdego
,
- złożenie:
.
Sprawdźmy, że jest kategorią:
,
.
Kategorii przyjrzymy się jeszcze uważniej w Wykładach 3. i 4.