Test Arka: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
==Moduł: Teoria kategorii jako abstrakcyjna teoria funkcji== | |||
Teoria kategorii jako ogólny dział algebry wyrosła z prac Samuela | |||
Eilenberga i Saundersa MacLane'a: pionierską pracą jest tu ''General | |||
theory of natural equivalences'', Transactions of the American | |||
Mathematical Society 58 (1945), pp. 231-294 -- autorzy wprowadzili tam | |||
pojęcie kategorii, funktora i naturalnej transformacji funktorów. Teoria | |||
kategorii szybko przekroczyła granice algebry i jej język okazał się | |||
uniwersalnym sposobem mówienia o innych teoriach matematycznych: logice, | |||
teorii zbiorów, topologii, teorii porządku, geometrii, analizie itd. Jak | |||
to możliwe? Treść tych wykładów stanowi jedną z odpowiedzi na to pytanie. | |||
== | ===Przekształcenia i ich algebra=== | ||
Zacznijmy od niegroźnego przeformułowania dwóch znanych pojęć z teorii | |||
mnogości. | |||
=== | Jak pamiętamy, funkcja <math>f\colon A\to B</math> jest '''bijekcją''' | ||
jeśli jest różnowartościową surjekcją, tj. <math>\forall x,y\in A\ | |||
f(x)=f(y)\Rightarrow x=y</math> oraz <math>\forall z\in B\ \exists x\in | |||
A\ f(x)=z.</math> | |||
Zauważmy, że drugi warunek pozwala nam każdemu elementowi <math>z</math> | |||
zbioru <math>B</math> przyporządkować element <math>x</math> zbioru | |||
<math>A</math>, zaś warunek pierwszy mówi, że to przekształcenie | |||
(nazwijmy je <math>g</math>) jest funkcją (śmiało napiszmy więc | |||
<math>g\colon B\to A</math>). W tym świetle z warunku drugiego wynika, | |||
że złożenie <math>f\circ g</math> jest funkcją identycznościową na | |||
zbiorze <math>B</math>, a stąd wynika <math>f\circ g\circ f = f</math>, | |||
co w połączeniu z pierwszym warunkiem oznacza, że <math>g\circ f</math> | |||
jest identycznością na zbiorze <math>A</math>. Idąc dalej tym tropem | |||
(patrz Zadanie [[#mod1:zad1|Uzupelnic mod1:zad1|]]) jesteśmy w stanie | |||
bez trudu pokazać, że: | |||
{{ Fakt||uzupelnic| | |||
{{kotwica|mod1:fact:bij|}} Funkcja <math>f\colon A\to B</math> jest | |||
bijekcją wtedy i tylko wtedy, gdy istnieje funkcja <math>g\colon B\to | |||
A</math> taka, że <math>f\circ g = 1_B</math> oraz <math>g\circ f = | |||
1_A</math>. }} | |||
Sam wynik nie wygląda, być może, ekscytująco, ale w koniunkcji z kolejnymi | |||
przykładami pozwoli nam wyciągnąć ekscytujące wnioski. | |||
Rozważmy zatem zbiór liczb naturalnych | |||
<math>\mathrm'''nat'''</math>. Teoria mnogości definiuje | |||
<math>\mathrm'''nat'''</math> jako najmniejszy zbiór zawierający | |||
liczbę zero <math>0</math> i spełniający: <math>n\in \mathrm'''nat''' | |||
\Rightarrow \mathrm{succ}(n)\in \mathrm'''nat'''</math>, gdzie | |||
<math>\mathrm{succ}\colon \mathrm'''nat'''\to \mathrm'''nat'''</math> | |||
jest funkcją następnika (która jest injektywna i posiada tę | |||
właściwość, że <math>\mathrm{succ}(n)\neq 0</math> dla dowolnego | |||
<math>n\in \mathrm'''nat'''</math>). Okazuje się, że zbiór liczb | |||
naturalnych można wyróżnić spośród innych zbiorów w ten sposób (Zadanie | |||
[[#mod1:zad2|Uzupelnic mod1:zad2|]]): | |||
{{ Fakt||uzupelnic| {{kotwica|mod1:fact:naturalne|}} Zbiór liczb | |||
naturalnych <math>\mathrm'''nat'''</math> jest to zbiór zawierający | |||
<math> | liczbę zero oraz wyposażony w funkcję <math>\mathrm{succ}\colon | ||
<math> | \mathrm'''nat'''\to \mathrm'''nat'''</math> taką, że: dla dowolnego | ||
zbioru <math>X</math> i elementu <math>e\in X</math> oraz funkcji | |||
<math>g\colon X\to X</math> istnieje dokładnie jedna funkcja <math>f\colon | |||
\mathrm'''nat'''\to X</math> spełniająca dwa warunki: <math>f(0)= e</math> | |||
oraz <math>f\circ \mathrm{succ} = g\circ f</math>. }} | |||
Dwa powyższe przykłady wskazują na to, że definicje teorii mnogości można | |||
wyrażać operując jedynie pojęciem funkcji i złożenia funkcji (zauważmy, | |||
że elementy zbiorów można traktować jako funkcje, których dziedziną | |||
jest singleton). Postawmy więc śmiałe pytanie: czy można prezentować | |||
różnorodne teorie matematyczne badając jedynie własności przekształceń | |||
obiektów matematycznych będących przedmiotem zainteresowania danej teorii? | |||
A zatem pytamy czy: można prezentować teorię mnogości badając własności | |||
funkcji między zbiorami, teorię grup badając własności homomorfizmów grup, | |||
topologię badając własności funkcji ciągłych pomiędzy przestrzeniami | |||
topologicznymi? W ogólności zapytajmy więc jeszcze raz: czy można badać | |||
dowolne obiekty matematyczne z określoną strukturą za pomocą własności | |||
przekształceń, które tę strukturę zachowują? | |||
Odpowiedź brzmi: ''tak'' -- i ta właśnie twierdząca odpowiedź powołuje do | |||
życia teorię kategorii. Teoria kategorii składa się bowiem z twierdzeń | |||
dotyczących uniwersalnych własności przekształceń, niezależnych od cech | |||
szczególnych danych teorii matematycznych. Tak więc, teoria kategorii | |||
bada wspólne, uniwersalne własnościami zbiorów, grup, przestrzeni | |||
topologicznych, przestrzeni wektorowych, częściowych porządków, i tak | |||
matematycznych | dalej, wszystko w języku przekształceń danej struktury. | ||
Czy da się krótko, nieformalnie zebrać najważniejsze cechy przekształceń | |||
-- cechy niezależne od konkretnej teorii matematycznej? Spróbujmy! | |||
Zaczynamy od nazwy: przekształcenie nazywać będziemy również | |||
'''morfizmem''' (bo w przeróżnych teoriach matematycznych natykamy | |||
się na homomorfizmy, homeomorfizmy, endomorfizmy, itd.) lub po | |||
prostu '''strzałką''' (bo tak zwykle graficznie przedstawia się | |||
przekształcenia). Przekształcenie działa pomiędzy '''obiektami''', | |||
np. funkcja to przekształcenie zbiorów, homomorfizm to przekształcenie | |||
grupy w grupę, funkcja ciągła to przekształcenie przestrzeni topologicznej | |||
w przestrzeń topologiczną, funkcja monotoniczna to przekształcenie | |||
posetu w poset, itd. (Załóżmy na początku dla prostoty, że w naszych | |||
przykładach nie bierzemy pod uwagę przekształceń obiektów pewnej klasy | |||
w obiekty innej klasy, na przykład wyznacznika, który przekształca | |||
macierz w liczbę. Takimi morfizmami zajmiemy się poźniej.) Każde | |||
przekształcenie <math>f</math> działa na pewien jedyny obiekt, nazwijmy go | |||
'''dziedziną''' <math>f</math> i oznaczmy <math>\mathrm''dom''(f)</math>, | |||
i przekształca go w inny jedyny obiekt nazywany '''przeciwdziedziną''' | |||
<math>f</math> i oznaczany jako <math>\mathrm''cod''(f)</math>. Fakt, | |||
że morfizm <math>f</math> ma dziedzinę <math>A</math> i przeciwdziedzinę | |||
<math>B</math> zapisujemy | |||
\begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.1}\end_quote | |||
\ | lub po prostu <math>f\colon A\to B</math>. Nasza teoria nie może istnieć | ||
bez pojęcia '''złożenia''' przekształceń: zakładamy, że dwóm morfizmom | |||
<math>f,g</math> takim, że <math>\mathrm{cod}(g)=\mathrm{dom}(f)</math> | |||
(strzałki takie nazywamy '''składalnymi''') przypisujemy morfizm <math>f | |||
\circ g</math> zwany złożeniem, dla którego mamy <math>\mathrm{dom}(f\circ | |||
g) = \mathrm{dom}(g)</math> i <math>\mathrm{cod}(f\circ | |||
g)=\mathrm{cod}(f)</math>. Przykłady wskazują na to, że kolejność | |||
złożenia składalnych przekształceń nie powinna grać roli, czyli dla: | |||
\begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.2}\end_quote | |||
\begin_quote | |||
morfizm: | morfizm: | ||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.3}\end_quote | ||
może powstać albo z: | może powstać albo z: | ||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.4}\end_quote | ||
albo, równoważnie, z: | albo, równoważnie, z: | ||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.5}\end_quote | ||
W końcu, w naszej nieformalnej teorii przekształceń postulujemy | W końcu, w naszej nieformalnej teorii przekształceń postulujemy istnienie | ||
przekształceń, które - jak to się potocznie mówi: nic nie zmieniają, | |||
zmieniają, tak zwanych | tak zwanych '''identyczności''': | ||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.6}\end_quote | ||
To kończy nieformalny opis języka, w którym główną rolę grają | To kończy nieformalny opis języka, w którym główną rolę grają | ||
Linia 143: | Linia 142: | ||
===Definicja kategorii=== | ===Definicja kategorii=== | ||
{{ | {{ Definicja||uzupelnic| | ||
{{kotwica|mod1:def:kategria1|}} Kategoria <math>\mathbf{C}</math> składa | |||
się z następujących danych: | |||
* (D1): '''obiektów''': <math>A,B,C,...</math>, * (D2): '''morfizmów''': | |||
<math>f,g,h,...</math>, * (D3): dwóch operacji <math>\mathrm{dom}, | |||
\mathrm{cod}</math> przypisującej każdemu morfizmowi <math>f</math> | |||
obiekty <math>\mathrm{dom}(f)</math>i <math>\mathrm{cod}(f)</math>, | |||
* (D4): operacji <math>1</math> przypisującej każdemu obiektowi | |||
<math>A</math> morfizm <math>1_A</math> nazywany identycznością, * | |||
(D5): operacji <math>\circ</math> przypisującej każdej parze morfizmów | |||
<math>f,g</math> takich, że <math>\mathrm{cod}(g) = \mathrm{dom}(f)</math> | |||
morfizm <math>f\circ g</math> nazywany złożeniem, | |||
spełniających następujące aksjomaty: | spełniających następujące aksjomaty: | ||
* (A1): <math>\mathrm{dom}(1_A) = A = \mathrm{cod}(1_A)</math>; | |||
<math>\mathrm{dom}(f\circ g) = \mathrm{dom}(g)</math>; <math>\mathrm{cod}(f\circ | <math>\mathrm{dom}(f\circ g) = \mathrm{dom}(g)</math>; | ||
g)=\mathrm{cod}(f)</math>, | <math>\mathrm{cod}(f\circ g)=\mathrm{cod}(f)</math>, * (A2): <math>f\circ | ||
1_A = f = 1_B \circ f</math>, gdzie <math>A=\mathrm{dom}(f)</math> | |||
gdzie <math>A=\mathrm{dom}(f)</math> oraz <math>B=\mathrm{cod}(f)</math>, | oraz <math>B=\mathrm{cod}(f)</math>, * (A3): jeśli <math>f,g</math> | ||
są składalne oraz <math>g,h</math> są składalne, to <math>(f\circ g) | |||
<math>(f\circ g) \circ h = f\circ(g\circ h)</math>. | \circ h = f\circ(g\circ h)</math>. | ||
}} | }} | ||
{\ | Kolekcję obiektów kategorii <math>\mathbf{C}</math> będziemy w dalszym | ||
ciągu oznaczać jako <math>\mathbf{C}_0</math>, zaś kolekcję jej morfizmów | |||
jako <math>\mathbf{C}_1</math>. | |||
{{ uwaga||uwaga_uzupelnic| Tylko dla dociekliwych: Wiemy więc z | |||
czego ''składa się'' kategoria. Nie znamy jednak odpowiedzi na -- | |||
być może -- równie ważne pytanie: czym ''jest'' kategoria? W naszym | |||
wykładzie przyjmiemy po prostu, że kategorią będzie każda interpretacja | |||
aksjomatów przedstawionych w Definicji [[#mod1:def:kategria1|Uzupelnic | |||
mod1:def:kategria1|]] na gruncie teorii mnogości. }} | |||
Pokażmy, że o kategorii można też myśleć jako o specjalnym grafie | Pokażmy, że o kategorii można też myśleć jako o specjalnym grafie | ||
skierowanym. Oto druga, równie dobra dla naszych potrzeb, definicja kategorii: | skierowanym. Oto druga, równie dobra dla naszych potrzeb, definicja | ||
kategorii: | |||
{{ | {{ Definicja||uzupelnic| | ||
{{kotwica|mod1:def:kategoria2|}} Grafem skierowanym nazywamy kolekcję | |||
obiektów (wierzchołków) <math>O</math>, kolekcję strzałek (krawędzi) <math>A</math> i | obiektów (wierzchołków) <math>O</math>, kolekcję strzałek (krawędzi) | ||
dwie funkcje | <math>A</math> i dwie funkcje | ||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.7}\end_quote | ||
W grafie, kolekcja składalnych par strzałek to zbiór | W grafie, kolekcja składalnych par strzałek to zbiór <math>A\times_O A =\{ | ||
<math>A\times_O A =\{ (g,f)\mid g,f\in A \wedge \mathrm{dom}(g) = | (g,f)\mid g,f\in A \wedge \mathrm{dom}(g) = \mathrm{cod}(f)\}</math> | ||
\mathrm{cod}(f)\}</math> nazywany | nazywany '''produktem nad <math>O</math>'''. O kategorii można myśleć | ||
można myśleć jako o grafie skierowanym <math>\mathbf{C}</math>, który posiada | jako o grafie skierowanym <math>\mathbf{C}</math>, który posiada dwie | ||
dodatkowe funkcje <math>1\colon O\to A</math>, <math>C\mapsto 1_C</math> | |||
<math>\circ\colon A\times_O A\to A</math>, <math>(g,f)\mapsto g\circ f</math> takie, że | oraz <math>\circ\colon A\times_O A\to A</math>, <math>(g,f)\mapsto | ||
spełnione są warunki (A1)--(A3) Definicji | g\circ f</math> takie, że spełnione są warunki (A1)--(A3) Definicji | ||
[[#mod1:def:kategria1|Uzupelnic mod1:def:kategria1|]]. }} | |||
}} | |||
Poniżej pokażemy trzecią, równoważną, algebraiczną definicję | Poniżej pokażemy trzecią, równoważną, algebraiczną definicję kategorii | ||
(na podstawie książki: Peter J. Freyd, Andre Scedrov, ''Categories, | |||
Allegories'', North Holland, 1989). | |||
{{ | {{ Definicja||uzupelnic| | ||
{{kotwica|mod1:def:kategoria3|}} Kategoria <math>\mathbf{C}</math> składa | |||
dwóch operacji unarnych i jednej częściowej operacji binarnej. | się z dwóch operacji unarnych i jednej częściowej operacji binarnej. | ||
Zmienne, na które działają te operacje nazywamy | Zmienne, na które działają te operacje nazywamy '''morfizmami''' | ||
( | ('''strzałkami'''). Wartości tych operacji są zapisywane i czytane jako: | ||
jako: | |||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.8}\end_quote | ||
Operacje podlegają następującym aksjomatom: | Operacje podlegają następującym aksjomatom: | ||
* (b1): <math>xy</math> jest zdefiniowane wtw, gdy <math>x\Box = | |||
\Box y</math>, * (b2): <math>(\Box x )\Box = \Box x</math> oraz | |||
<math>\Box (x\Box) = x\Box</math>, * (b3): <math>(\Box x)x = x</math> | |||
oraz <math>x(x\Box)=x</math>, * (b4): <math>\Box(xy) = \Box(x(\Box | |||
y))</math> oraz <math>(xy)\Box = ((x\Box)y)\Box</math> * (b5): | |||
<math>x(yz)=(xy)z</math>. | |||
}} | }} | ||
W tym wypadku równoważność definicji z dwiema pozostałymi | W tym wypadku równoważność definicji z dwiema pozostałymi | ||
(Definicje | (Definicje [[#mod1:def:kategria1|Uzupelnic mod1:def:kategria1|]] i | ||
nie jest oczywista. Aby ją wykazać, rozpocznijmy od lematu, który | [[#mod1:def:kategoria2|Uzupelnic mod1:def:kategoria2|]]) nie jest | ||
rzuci trochę światła na strukturę algebraiczną, którą przed chwilą | oczywista. Aby ją wykazać, rozpocznijmy od lematu, który rzuci trochę | ||
opisaliśmy. | światła na strukturę algebraiczną, którą przed chwilą opisaliśmy. | ||
{{ Lemat||uzupelnic| {{kotwica|mod1:lemma:freyd1|}} Dla morfizmu | |||
równoważne: istnieje <math>x</math> taki, że <math>e=\Box x</math>; istnieje <math>y</math> taki, | <math>e</math> następujące warunki są równoważne: istnieje <math>x</math> | ||
taki, że <math>e=\Box x</math>; istnieje <math>y</math> taki, że | |||
x</math> (co oznacza, że jeśli złożenie <math>ex</math> jest zdefiniowane, to jest | <math>e=y\Box</math>; <math>e=\Box e</math>; <math>e=e\Box</math>; dla | ||
równe <math>x</math>), dla każdego <math>x</math>, <math>xe\approx x</math>. | każdego <math>x</math>, <math>ex\approx x</math> (co oznacza, że jeśli | ||
złożenie <math>ex</math> jest zdefiniowane, to jest równe <math>x</math>), | |||
dla każdego <math>x</math>, <math>xe\approx x</math>. | |||
\proof{Dowód} (1)<math>\to</math>(2) Dla <math>y=\Box x</math> mamy <math>y\Box = (\Box | \proof{Dowód} (1)<math>\to</math>(2) Dla <math>y=\Box x</math> mamy | ||
x)\Box = \Box x = e</math>. (2)<math>\to</math>(3) <math>\Box e = \Box(y\Box) = y\Box = | <math>y\Box = (\Box x)\Box = \Box x = e</math>. (2)<math>\to</math>(3) | ||
e</math>. (3)<math>\to</math>(4) <math>e\Box = (\Box e)\Box)=\Box e = e</math>. (4)<math>\to</math>(5) | <math>\Box e = \Box(y\Box) = y\Box = e</math>. (3)<math>\to</math>(4) | ||
Załóżmy, że <math>ex</math> jest zdefiniowane dla każdego <math>x</math>; to oznacza, że | <math>e\Box = (\Box e)\Box)=\Box e = e</math>. (4)<math>\to</math>(5) | ||
<math>e\Box = \Box x</math>, czyli z (4), <math>e=\Box x</math> dla każdego <math>x</math>. A zatem | Załóżmy, że <math>ex</math> jest zdefiniowane dla każdego <math>x</math>; | ||
<math>ex =(\Box x)x = x</math>. (3)<math>\to</math>(1) Oczywiste. (4)<math>\to</math>(3) <math>\Box e = | to oznacza, że <math>e\Box = \Box x</math>, czyli z (4), <math>e=\Box | ||
\Box(e\Box) = e\Box = e</math>. (5)<math>\to</math>(4) Połóżmy <math>x=e\Box</math>. Mamy | x</math> dla każdego <math>x</math>. A zatem <math>ex =(\Box x)x = | ||
<math>\Box x = \Box (e \Box) = e\Box</math>, czyli <math>ex</math> istnieje. Z (5) | x</math>. (3)<math>\to</math>(1) Oczywiste. (4)<math>\to</math>(3) | ||
<math>\Box e = \Box(e\Box) = e\Box = e</math>. (5)<math>\to</math>(4) | |||
Połóżmy <math>x=e\Box</math>. Mamy <math>\Box x = \Box (e | |||
\Box) = e\Box</math>, czyli <math>ex</math> istnieje. Z (5) | |||
wynika, że <math>e(e\Box) = e\Box</math>. Ale (b3) implikuje, że | wynika, że <math>e(e\Box) = e\Box</math>. Ale (b3) implikuje, że | ||
<math>e(e\Box)=e</math>, czyli <math>e=e\Box</math>. Dowód równoważności (6) z (3) jest | <math>e(e\Box)=e</math>, czyli <math>e=e\Box</math>. Dowód równoważności | ||
podobny do równoważności (5) z (4). | (6) z (3) jest podobny do równoważności (5) z (4). }} | ||
Morfizm <math>e</math> spełniający dowolny z powyższych warunków nazywamy | Morfizm <math>e</math> spełniający dowolny z powyższych warunków nazywamy | ||
'''identycznością'''. | |||
A zatem równoważność trzeciej definicji kategorii z pierwszą | A zatem równoważność trzeciej definicji kategorii z | ||
uzyskujemy następująco (tak naprawdę, to pokażemy jedynie, że dane | pierwszą uzyskujemy następująco (tak naprawdę, to pokażemy | ||
jedynie, że dane Definicji [[#mod1:def:kategoria3|Uzupelnic | |||
mod1:def:kategoria3|]] wystarczą do zrekonstruowania Definicji | |||
<math>x</math> taka, że <math>x=\Box x =x\Box</math>. Dziedziną <math>x</math> jest <math>\Box x</math>, | [[#mod1:def:kategria1|Uzupelnic mod1:def:kategria1|]]: | ||
przeciwdziedziną <math>x\Box</math>. Złożenie <math>x\circ y</math> to <math>yx</math>. Kolekcja | Identyczność <math>1_x</math> to zmienna <math>x</math> taka, | ||
że <math>x=\Box x =x\Box</math>. Dziedziną <math>x</math> jest | |||
morfizmów identycznościowych Definicji | <math>\Box x</math>, przeciwdziedziną <math>x\Box</math>. Złożenie | ||
Zauważmy, że dla dowolnego <math>x</math>, zarówno <math>\Box x</math>, jak i <math>x\Box</math> są | <math>x\circ y</math> to <math>yx</math>. Kolekcja obiektów | ||
obiektami (identycznościami), bo <math>\Box(\Box x) = \Box x</math>, <math>(\Box | Definicji [[#mod1:def:kategria1|Uzupelnic mod1:def:kategria1|]] | ||
x)\Box = \Box x</math>, <math>(x\Box)\Box =(\Box(x\Box))\Box = \Box(x\Box) = | pokrywa się z kolekcją morfizmów identycznościowych Definicji | ||
x\Box</math>, <math>\Box(x\Box)=x\Box</math>. | [[#mod1:def:kategoria3|Uzupelnic mod1:def:kategoria3|]]. Zauważmy, | ||
że dla dowolnego <math>x</math>, zarówno <math>\Box x</math>, | |||
jak i <math>x\Box</math> są obiektami (identycznościami), bo | |||
<math>\Box(\Box x) = \Box x</math>, <math>(\Box x)\Box = \Box x</math>, | |||
<math>(x\Box)\Box =(\Box(x\Box))\Box = \Box(x\Box) = x\Box</math>, | |||
<math>\Box(x\Box)=x\Box</math>. | |||
Sprawdźmy aksjomaty: <math>\mathrm{dom}(1_x) = \Box x = x = x\Box = | Sprawdźmy aksjomaty: <math>\mathrm{dom}(1_x) = \Box x = x = x\Box | ||
\mathrm{cod}(1_x)</math>. Aby pokazać, że <math>f</math> jest morfizmem, załóżmy, | = \mathrm{cod}(1_x)</math>. Aby pokazać, że <math>f</math> jest | ||
że <math>x=\mathrm{dom}(f)</math>(czyli <math>1_x = \Box f</math>) oraz | morfizmem, załóżmy, że <math>x=\mathrm{dom}(f)</math>(czyli <math>1_x = | ||
<math>y=\mathrm{cod}(f)</math> (czyli <math>1_y = f\Box</math>)). Wówczas <math>f\circ 1_x = | \Box f</math>) oraz <math>y=\mathrm{cod}(f)</math> (czyli <math>1_y = | ||
1_x f = (\Box f)f = f</math>, <math>1_y \circ f = f 1_y =f(f\Box) = f</math>. | f\Box</math>)). Wówczas <math>f\circ 1_x = 1_x f = (\Box f)f = f</math>, | ||
<math>1_y \circ f = f 1_y =f(f\Box) = f</math>. | |||
Załóżmy teraz, że <math>\mathrm{dom}(f)=\mathrm{cod}(g)</math>. Wówczas | Załóżmy teraz, że <math>\mathrm{dom}(f)=\mathrm{cod}(g)</math>. Wówczas | ||
<math>\mathrm{dom}(f\circ g) = \Box(gf) = \Box(g\Box f) = | <math>\mathrm{dom}(f\circ g) = \Box(gf) = \Box(g\Box | ||
\mathrm{dom}(1_{\mathrm{dom}(f)}\circ g) = | f) = \mathrm{dom}(1_{\mathrm{dom}(f)}\circ g) = | ||
\mathrm{dom}(1_{\mathrm{cod}(g)}\circ g) = \mathrm{dom}(g)</math>. | \mathrm{dom}(1_{\mathrm{cod}(g)}\circ g) = \mathrm{dom}(g)</math>. | ||
Ostatnia równość wynika z poprzedniego paragrafu. Podobnie, | Ostatnia równość wynika z poprzedniego paragrafu. Podobnie, | ||
Linia 285: | Linia 296: | ||
===Przykłady kategorii=== | ===Przykłady kategorii=== | ||
* <math>\mathbf{Set}</math>: Obiektami są zbiory, morfizmami funkcje. | |||
Uwaga! W teorii mnogości funkcja jest zdefiniowana jako zbiór par | |||
Uwaga! W teorii mnogości funkcja jest zdefiniowana jako zbiór | uporządkowanych takich, że \begin_equation {{kotwica|eq:funkcja|}} | ||
((x,y)\in f\ \wedge \ (x,y')\in f)\ \Rightarrow \ y=y'. \end_equation | |||
\begin_equation | |||
((x,y)\in f\ \wedge \ (x,y')\in f)\ \Rightarrow \ y=y'. | |||
\end_equation | |||
Aby traktować funkcje jako morfizmy musimy precyzyjnie znać | Aby traktować funkcje jako morfizmy musimy precyzyjnie znać | ||
<math>\mathrm{dom}(f)</math> i <math>\mathrm{cod}(f)</math>. Na przykład funkcje | <math>\mathrm{dom}(f)</math> i <math>\mathrm{cod}(f)</math>. Na przykład | ||
<math>\sin\colon \mathbb{R}\to [-1,1]</math> oraz <math>\sin\colon \mathbb{R}\to | funkcje <math>\sin\colon \mathbb{R}\to [-1,1]</math> oraz <math>\sin\colon | ||
\mathbb{R},</math>, które mają takie samo działanie na argumentach, będą | \mathbb{R}\to \mathbb{R},</math>, które mają takie samo działanie | ||
traktowane jako dwa różne morfizmy. Formalnie, w języku teorii | na argumentach, będą traktowane jako dwa różne morfizmy. Formalnie, | ||
mnogości morfizmem będzie trójka <math>(X,f,Y)</math> taka, że <math>f\subseteq | w języku teorii mnogości morfizmem będzie trójka <math>(X,f,Y)</math> | ||
X\times Y</math> spełnia powyższe równanie ( | taka, że <math>f\subseteq X\times Y</math> spełnia powyższe równanie | ||
\begin_equation | ([[#eq:funkcja|Uzupelnic eq:funkcja|]]) wraz z poniższym: \begin_equation | ||
x\in X \Rightarrow (\exists y\in Y\ (x,y)\in f). | x\in X \Rightarrow (\exists y\in Y\ (x,y)\in f). \end_equation Wtedy | ||
\end_equation | <math>\mathrm{dom}</math> jest projekcją na pierwszą współrzędną | ||
<math>(X,f,Y)\mapsto X</math>, a <math>\mathrm{cod}</math> projekcją | |||
<math>(X,f,Y)\mapsto X</math>, a <math>\mathrm{cod}</math> projekcją na trzecią | na trzecią współrzędną. * Kategoria zbiorów skończonych i funkcji | ||
współrzędną. | <math> \mathbf{Set}_{fin} </math>, jak również wiele innych kategorii, | ||
w których obiektami i morfizmami są ograniczone klasy zbiorów i funkcji, | |||
</math>, jak również wiele innych kategorii, w których obiektami i | np. kategoria wszystkich zbiorów skończonych i injekcji. * Kategorie, | ||
morfizmami są ograniczone klasy zbiorów i funkcji, np. kategoria | w których obiektami są zbiory z pewną dodatkową stukturą algebraiczną, | ||
wszystkich zbiorów skończonych i injekcji. | zaś morfizmami te funkcje, które tę strukturę zachowują. | ||
stukturą algebraiczną, zaś morfizmami te funkcje, które tę | * <math>\mathbf{Vect}</math>: Przestrzenie wektorowe i odwzorowania | ||
strukturę zachowują. | liniowe * <math>\mathbf{Grp}</math>: Grupy i homomorfizmy grup * | ||
<math>\mathbf{Ab}</math>: Grupy abelowe i homomorfizmy grup * | |||
<math>\mathbf{Mon}</math>: Monoidy i homomorfizmy monoidów * | |||
<math>\mathbf{Pos}</math>: Częściowe porządki i funkcje monotoniczne * | |||
<math>\mathbf{Top}</math>: Przestrzenie topologiczne i funkcje ciągłe | |||
* <math>\mathbf{Graph}</math>: Grafy i homomorfizmy grafów * liczby | |||
naturalne <math>\mathrm'''nat'''</math> i wszystkie funkcje obliczalne | |||
* Mając dowolny częściowy porządek (poset) <math>(P,\leq)</math> | |||
definiujemy kategorię o tej samej nazwie <math>P</math> jak następuje: | |||
jako obiekty bierzemy elementy <math> P</math>, zaś dla dwóch | |||
obiektów <math> x,y\in P</math> przyjmujemy, że istnieje morfizm z | |||
definiujemy kategorię o tej samej nazwie <math>P</math> jak następuje: jako | <math>x</math> do <math>y</math> wtedy i tylko wtedy, gdy <math>x\leq | ||
obiekty bierzemy elementy <math> P</math>, zaś dla dwóch obiektów <math> x,y\in P</math> | y</math>. Zauważmy, że wystarczy tu, by <math>P</math> był preporządkiem, | ||
przyjmujemy, że istnieje morfizm z <math>x</math> do <math>y</math> wtedy i tylko wtedy, | tzn. aby relacja <math>\leq</math> była zaledwie zwrotna i przechodnia. | ||
gdy <math>x\leq y</math>. Zauważmy, że wystarczy tu, by <math>P</math> był preporządkiem, tzn. aby relacja <math>\leq</math> była zaledwie zwrotna i przechodnia. | * <math>\mathbf{Rel}</math>: Obiektami tej kategorii są zbiory, zaś | ||
morfizmami relacje binarne, tzn. <math> f\colon A\to B</math> wtedy | |||
zbiory, zaś morfizmami relacje binarne, tzn. <math> f\colon A\to B</math> | i tylko wtedy, gdy <math> f\subseteq A\times B</math>. Wówczas rolę | ||
identyczności spełniają relacje identycznościowe: <math> 1_A = \{ | identyczności spełniają relacje identycznościowe: <math> 1_A = \{ | ||
(a,a)\mid a\in A \}</math>, zaś złożeniem morfizmów jest po prostu | (a,a)\mid a\in A \}</math>, zaś złożeniem morfizmów jest po prostu | ||
złożenie relacji znane z kursu teorii mnogości: mając dane <math> | złożenie relacji znane z kursu teorii mnogości: mając dane <math> | ||
R\subseteq A\times B</math> oraz <math> S \subseteq B\times C</math> przyjmujemy: | R\subseteq A\times B</math> oraz <math> S \subseteq B\times C</math> | ||
<math> (a,c)\in S\circ R \Leftrightarrow \exists b\in B\ ((a,b)\in | przyjmujemy: <math> (a,c)\in S\circ R \Leftrightarrow \exists b\in | ||
R\wedge (b,c)\in S)</math> | B\ ((a,b)\in R\wedge (b,c)\in S)</math> * \bfKategorie skończone: | ||
\ | (skończoność dotyczy ilości istniejących ''morfizmów'', choć nazwy tych | ||
dotyczy ilości istniejących | kategorii odnoszą się do ilości ''obiektów''): | ||
kategorii odnoszą się do ilości | |||
* <math>\mathbf{1}</math>: Ta kategoria ma jeden obiekt i jedną strzałkę: | |||
identyczność. | identyczność. | ||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.9}\end_quote | ||
* <math>\mathbf{0}</math>: Ta kategoria nie ma obiektów i nie ma strzałek. | |||
* <math>\mathbf{2}</math>: Kategoria ta ma dwa obiekty i jedną strzałkę | |||
pomiędzy nimi (a także oczywiście dwie wymagane identyczności). | |||
\ | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.10}\end_quote | ||
\ | * <math>\mathbf{3}</math>: Kategoria ma trzy obiekty, trzy identyczności, | ||
dokładnie jedną strzałkę z obiektu pierwszego do drugiego, dokładnie | |||
jedną strzałkę z obiektu drugiego do trzeciego i dokładnie jedną strzałkę | |||
z obiektu pierwszego do trzeciego (co oznacza, że ta ostatnia musi być | |||
złożeniem dwóch pozostałych nieidentycznościowych strzałek!) | |||
\ | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.11}\end_quote | ||
* Inne kategorie skończone możemy tworzyć biorąc skończoną ilość obiektów | |||
wraz z odpowiadającymi im identycznościami, a następnie dodając dowolną | |||
skończoną ilość morfizmów. W tym wypadku musimy jednak zadbać o to, aby | |||
- jeśli morfizmy będą tworzyły cykle - zadeklarować złożenia wszystkich | |||
morfizmów w cyklu jako równe odpowiednim identycznościom. W innym bowiem | |||
przypadku uzyskana kategoria nie musi już być skończona (może mieć | |||
nieskończenie wiele morfizmów odpowiadających wielokrotnościom cyklu). | |||
\ | * \bfKategorie dyskretne: są to takie kategorie, w których nie ma | ||
innych morfizmów niż identyczności. Łatwo uzmysłowić sobie, że kategorie | |||
dyskretne możemy utożsamiać ze zbiorami, bo przecież obiekty możemy | |||
interpretować jako elementy zbioru. | |||
nie ma innych morfizmów niż identyczności. Łatwo uzmysłowić sobie, że | |||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.12}\end_quote | ||
* Niech <math>(M, *, e)</math> będzie monoidem (<math>e</math> jest | |||
biorąc <math>M</math> jako jedyny obiekt, zaś elementy <math>M</math> jako morfizmy (z | jego jedynką). Wówczas biorąc <math>M</math> jako jedyny obiekt, | ||
dziedziną i kodziedziną <math>M</math>), a działanie <math>*</math> jako złożenie | zaś elementy <math>M</math> jako morfizmy (z dziedziną i kodziedziną | ||
morfizmów, otrzymujemy kategorię. Można łatwo pokazać również | <math>M</math>), a działanie <math>*</math> jako złożenie morfizmów, | ||
konstrukcję odwrotną, tj. przekonać się, że każda kategoria z | otrzymujemy kategorię. Można łatwo pokazać również konstrukcję odwrotną, | ||
jednym obiektem może być traktowana jako monoid. Mówiąc krótko: | tj. przekonać się, że każda kategoria z jednym obiektem może być | ||
kategorie z jednym obiektem to monoidy. (Jak w takim razie | traktowana jako monoid. Mówiąc krótko: kategorie z jednym obiektem to | ||
traktować grupy? Odpowiedź znajdziemy jeszcze przed końcem | monoidy. (Jak w takim razie traktować grupy? Odpowiedź znajdziemy jeszcze | ||
wykładu...) | przed końcem wykładu...) | ||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.13}\end_quote | ||
* Dla danego rachunku logicznego możemy stworzyć kategorię w ten | |||
sposób, że obiektami są formuły: <math>\phi, \psi, ...</math> zaś | |||
morfizmem z <math>\phi</math> do <math>\psi</math> jest każda dedukcja | |||
(dowód) <math>\psi</math> z założenia <math>\phi</math>. Złożeniem | |||
morfizmów jest wtedy połączenie dowodów, które jest oczywiście | |||
łączne. Identyczność <math>1_\phi{}</math> to dowód pusty, bowiem | |||
z aksjomatów logicznych zawsze wynika <math>\phi\vdash\phi</math>. | |||
* Dla danego typowanego języka funkcyjnego <math>L</math> tworzymy | |||
kategorię w ten sposób, że obiektami są typy danych, zaś strzałkami są | |||
programy (procedury) języka <math>L</math>. Złożenie dwóch programów | |||
<math>X\stackrel{f}\to{}Y\stackrel{g}\to{}Z</math> jest program dany | |||
poprzez zaaplikowanie wyjścia programu <math>f</math> na wejściu programu | |||
<math>g</math>. Identycznością jest procedura, która ''nic nie robi''. | |||
Inne przykłady kategorii zamieścimy w Ćwiczeniach do tego wykładu. | Inne przykłady kategorii zamieścimy w Ćwiczeniach do tego wykładu. | ||
Linia 400: | Linia 412: | ||
Definicja izomorfizmu jest pierwszą definicją teorii kategorii, | Definicja izomorfizmu jest pierwszą definicją teorii kategorii, | ||
definicją abstrakcyjną, niezależną od specyficznych wymagań | definicją abstrakcyjną, niezależną od specyficznych wymagań konkretnej | ||
teorii matematycznej, definicją wyrażoną tylko w języku strzałek (czyli | |||
strzałek (czyli w języku teorii kategorii). | w języku teorii kategorii). | ||
{{ | {{ Definicja||uzupelnic| {{kotwica|mod1:def:iso|}} Niech | ||
<math>\mathbf{C}</math> będzie dowolną kategorią. Morfizm <math> | |||
f\colon A\to B</math> jest '''izomorfizmem''' jeśli istnieje morfizm | |||
kategorią. Morfizm <math> f\colon A\to B</math> jest | <math> g\colon B\to A</math> taki, że <math> f\circ g = 1_B </math> | ||
istnieje morfizm <math> g\colon B\to A</math> taki, że <math> f\circ g = 1_B </math> | oraz <math> g\circ f = 1_A</math>. Morfizm <math> g</math> nazywa się | ||
oraz <math> g\circ f = 1_A</math>. Morfizm <math> g</math> nazywa się | '''morfizmem odwrotnym do <math> f</math>''' . Jeśli dla obiektów <math> | ||
odwrotnym do <math> f</math> | A,B</math> kategorii <math> \mathbf{C}</math> istnieje izomorfizm <math> | ||
\mathbf{C}</math> istnieje izomorfizm <math> f\colon A\to B</math>, to obiekty <math> A</math> | f\colon A\to B</math>, to obiekty <math> A</math> i <math> B</math> | ||
i <math> B</math> nazywamy izomorficznymi, co zapisujemy jako <math>A\cong B</math>. | nazywamy izomorficznymi, co zapisujemy jako <math>A\cong B</math>. }} | ||
}} | |||
Ponieważ dowolny morfizm <math> f</math> posiada dokładnie jeden morfizm | Ponieważ dowolny morfizm <math> f</math> posiada dokładnie jeden | ||
odwrotny (dowód?), będziemy go oznaczać jako <math> f^{-1} </math>. Można | morfizm odwrotny (dowód?), będziemy go oznaczać jako <math> f^{-1} | ||
łatwo pokazać (dowód?), że morfizm odwrotny do izomorfizmu jest | </math>. Można łatwo pokazać (dowód?), że morfizm odwrotny do izomorfizmu | ||
izomorfizmem. | jest izomorfizmem. | ||
Fakt | Fakt [[#mod1:fact:bij|Uzupelnic mod1:fact:bij|]] wyraża zatem | ||
<math>\mathbf{Set}</math> są dokładnie bijekcje. Ale uwaga: w kategoriach, | myśl, że izomorfizmami w <math>\mathbf{Set}</math> są dokładnie | ||
których obiektami są zbiory z pewną strukturą, a morfizmami | bijekcje. Ale uwaga: w kategoriach, których obiektami są zbiory | ||
funkcje zachowujące tę strukturę (kategorie o takich własnościach | z pewną strukturą, a morfizmami funkcje zachowujące tę strukturę | ||
nazywamy konkretnymi, patrz Definicja | (kategorie o takich własnościach nazywamy konkretnymi, patrz Definicja | ||
kategoria <math> \mathbf{Pos}</math> (Zadanie | [[#mod5:def:konkret|Uzupelnic mod5:def:konkret|]], bijekcje ''nie zawsze'' | ||
są izomorfizmami. Prosty kontrprzykład stanowi tutaj kategoria <math> | |||
\mathbf{Pos}</math> (Zadanie [[#mod1:zad3|Uzupelnic mod1:zad3|]]). | |||
===Podstawy teoriomnogościowe=== | ===Podstawy teoriomnogościowe=== | ||
Teoria mnogości uczy nas, że nie istnieje zbiór wszystkich | Teoria mnogości uczy nas, że nie istnieje zbiór wszystkich zbiorów. Jeśli | ||
zbiorów. Jeśli więc rozważamy kategorię <math> \mathbf{Set} </math>, której | więc rozważamy kategorię <math> \mathbf{Set} </math>, której obiektami | ||
są zbiory, to widzimy, że kolekcja wszystkich obiektów <math> | |||
\mathbf{Set}</math> nie tworzy zbioru (jest zbyt duża!). Podobnie, | \mathbf{Set}</math> nie tworzy zbioru (jest zbyt duża!). Podobnie, | ||
kolekcja wszystkich morfizmów <math> \mathbf{Set}</math> jest zbyt wielka, | kolekcja wszystkich morfizmów <math> \mathbf{Set}</math> jest zbyt wielka, | ||
aby być zbiorem (zauważmy, że samych identyczności jest już tyle, | aby być zbiorem (zauważmy, że samych identyczności jest już tyle, ile | ||
obiektów). Kategoria <math> \mathbf{Set}</math> nie jest taką jedyną. W | |||
związku z tym definiujemy: | związku z tym definiujemy: | ||
{{ | {{ Definicja||uzupelnic| {{kotwica|mod1:def:size|}} Kategorię | ||
<math>\mathbf{C}</math> nazywamy '''małą''', jeśli kolekcja wszystkich | |||
obiektów <math> \mathbf{C}_0 </math> i morfizmów <math> \mathbf{C}_1 | |||
kolekcja wszystkich obiektów <math> \mathbf{C}_0 </math> i morfizmów <math> | </math> kategorii <math>\mathbf{C}</math> są zbiorami. W przeciwnym | ||
\mathbf{C}_1 </math> kategorii <math>\mathbf{C}</math> są zbiorami. W przeciwnym | wypadku <math>\mathbf{C}</math> jest '''duża'''. }} | ||
wypadku <math>\mathbf{C}</math> jest | |||
}} | |||
A zatem <math> \mathbf{Pos}</math>, <math> \mathbf{Grp}</math>, <math> \mathbf{Vec}</math> są duże, | A zatem <math> \mathbf{Pos}</math>, <math> \mathbf{Grp}</math>, <math> | ||
zaś kategorie skończone są małe. Kategorie duże wyglądają na | \mathbf{Vec}</math> są duże, zaś kategorie skończone są małe. Kategorie | ||
pierwszy rzut oka bardzo nieprzyjaźnie, część z nich posiada | duże wyglądają na pierwszy rzut oka bardzo nieprzyjaźnie, część z nich | ||
jednak bardzo często następującą cechę: | posiada jednak bardzo często następującą cechę: | ||
{{ | {{ Definicja||uzupelnic| {{kotwica|mod1:def:localsize|}} Kategorię <math> | ||
\mathbf{C} </math> nazywamy '''lokalnie małą''' jeśli dla każdej pary | |||
obiektów <math> A,B</math> z <math> \mathbf{C} </math> kolekcja <math> | |||
dla każdej pary obiektów <math> A,B</math> z <math> \mathbf{C} </math> kolekcja <math> | \mathrm{Hom}_{\mathbf{C}}(A,B) = \{ f\in \mathbf{C}_1\mid f\colon A\to B | ||
\mathrm{Hom}_{\mathbf{C}}(A,B) = \{ f\in \mathbf{C}_1\mid f\colon | \} </math> jest zbiorem (o takim zbiorze mówimy w skrócie '''homset''', | ||
A\to B \} </math> jest zbiorem (o takim zbiorze mówimy w skrócie | podobnie jak o zbiorze częściowo uporządkowanym przyjęło się mówić: | ||
homset | poset). }} | ||
się mówić: poset). | |||
}} | |||
Większa część teorii kategorii, którą zaprezentujemy w dalszym | Większa część teorii kategorii, którą zaprezentujemy | ||
toku wykładu dotyczy kategorii lokalnie małych (takich jak | w dalszym toku wykładu dotyczy kategorii lokalnie małych | ||
<math>\mathbf{Pos}</math>, <math>\mathbf{Grp}</math>, <math>\mathbf{Vec}</math> itd. czy wszystkie | (takich jak <math>\mathbf{Pos}</math>, <math>\mathbf{Grp}</math>, | ||
kategorie małe). Po dalsze wiadomości dotyczące podstaw | <math>\mathbf{Vec}</math> itd. czy wszystkie kategorie małe). Po dalsze | ||
teoriomnogościowych teorii kategorii odsyłamy do dyskusji tego | wiadomości dotyczące podstaw teoriomnogościowych teorii kategorii | ||
tematu w podręczniku | odsyłamy do dyskusji tego tematu w podręczniku ''Categories for the | ||
Working Mathematician'', Springer, 1997, Saundersa Mac Lane'a. Bardzo | |||
ciekawą dyskusję roli teorii kategorii w badaniach nad podstawami | |||
matematyki zaproponował Steven Awodey w artykule: ''An answer to | |||
Hellman's question: ``Does category theory provide a framework for | |||
mathematical structuralism?'''', Philosophia Mathematics (3) vol. 12 | |||
(2004), dostępnym również na stronie domowej autora pracy. | |||
===Ćwiczenia do Modułu 1=== | ===Ćwiczenia do Modułu 1=== | ||
{{ Zadanie||uzupelnic| | |||
oraz <math>g\colon B\to A</math> jeśli <math>f\circ g = 1_B</math> oraz <math>g\circ f = | {{kotwica|mod1:zad1|}} Udowodnij, że dla dwóch funkcji <math>f\colon | ||
1_A</math>, to funkcja <math>f</math> jest bijekcją. | A\to B</math> oraz <math>g\colon B\to A</math> jeśli <math>f\circ g = | ||
1_B</math> oraz <math>g\circ f = 1_A</math>, to funkcja <math>f</math> | |||
jest bijekcją. | |||
\proof[Rozwiązanie:] Pokażemy najpierw, że <math>f</math> jest funkcją | \proof[Rozwiązanie:] Pokażemy najpierw, że <math>f</math> jest funkcją | ||
różnowartościową. Przypuśćmy, że <math>f(x)= f(y)</math> dla pewnych | różnowartościową. Przypuśćmy, że <math>f(x)= f(y)</math> dla pewnych | ||
elementów <math>x,y\in A</math>. Wówczas <math>x = 1_A(x) = (g\circ f)(x) = | elementów <math>x,y\in A</math>. Wówczas <math>x = 1_A(x) = (g\circ | ||
g(f(x)) = g(f(y)) = (g\circ f)(y) = 1_A(y) = y</math>. Ponadto, dla | f)(x) = g(f(x)) = g(f(y)) = (g\circ f)(y) = 1_A(y) = y</math>. Ponadto, | ||
dowolnego <math>z\in B</math> element <math>g(z)</math> jest jedynym takim elementem, że | dla dowolnego <math>z\in B</math> element <math>g(z)</math> jest jedynym | ||
<math>f(g(z)) = z</math>, co w szczególności oznacza, że <math>f</math> jest surjekcją. | takim elementem, że <math>f(g(z)) = z</math>, co w szczególności oznacza, | ||
Wnioskujemy więc, że <math>f</math> jest różnowartościową surjekcją, czyli | że <math>f</math> jest surjekcją. Wnioskujemy więc, że <math>f</math> | ||
bijekcją. | jest różnowartościową surjekcją, czyli bijekcją. }} | ||
{{ Zadanie||uzupelnic| | |||
{{kotwica|mod1:zad2|}} Udowodnij Fakt [[#mod1:fact:naturalne|Uzupelnic | |||
mod1:fact:naturalne|]]. | |||
\proof[Wskazówka:] Fakt, że liczby naturalne posiadają wspomnianą | \proof[Wskazówka:] Fakt, że liczby naturalne posiadają wspomnianą w | ||
Fakcie [[#mod1:fact:naturalne|Uzupelnic mod1:fact:naturalne|]] jest | |||
rekursji. Pozostaje nam zatem udowodnienie implikacji przeciwnej. | dokładnie twierdzeniem o rekursji. Pozostaje nam zatem udowodnienie | ||
implikacji przeciwnej. | |||
\proof[Rozwiązanie:] Załóżmy zatem, że <math>N</math> jest pewnym zbiorem, który | \proof[Rozwiązanie:] Załóżmy zatem, że <math>N</math> jest pewnym | ||
posiada wyróżniony element <math>0\in N</math> i funkcję <math>s\colon N\to N</math> | zbiorem, który posiada wyróżniony element <math>0\in N</math> i funkcję | ||
spełniającą warunki zadania. Udowodnimy po kolei następujące | <math>s\colon N\to N</math> spełniającą warunki zadania. Udowodnimy | ||
zdania (znane jako aksjomaty Peano), które -- zgodnie z wykładnią | po kolei następujące zdania (znane jako aksjomaty Peano), które -- | ||
teorii mnogości -- w sposób jednoznaczny determinują liczby | zgodnie z wykładnią teorii mnogości -- w sposób jednoznaczny determinują | ||
naturalne spośród innych zbiorów, a co za tym idzie, potwierdzą, | liczby naturalne spośród innych zbiorów, a co za tym idzie, potwierdzą, | ||
że zbiór <math>N</math> jest zbiorem liczb naturalnych: | że zbiór <math>N</math> jest zbiorem liczb naturalnych: | ||
* <math>\exists 0\in N</math> | |||
To wiemy z założenia. | To wiemy z założenia. | ||
* <math>\forall n\in N \ s(n)\in N</math> | |||
To wiemy z założenia. | To wiemy z założenia. | ||
* <math>\forall n\in N \ s(n)\neq 0</math> | |||
Przypuśćmy przeciwnie, że dla pewnego <math>n\in N</math> mamy <math>s(n)=0</math>. | Przypuśćmy przeciwnie, że dla pewnego <math>n\in N</math> mamy | ||
Wtedy kładąc <math>X=\{e, a\}</math> oraz <math>g(e)=g(a)=a</math>, z założenia | <math>s(n)=0</math>. Wtedy kładąc <math>X=\{e, a\}</math> oraz | ||
istnieje funkcja <math>f\colon N\to X</math> taka, że <math>f(0)=e</math> oraz | <math>g(e)=g(a)=a</math>, z założenia istnieje funkcja <math>f\colon N\to | ||
<math>f(s(n))=g(f(n))</math>. A zatem <math>f(s(n))=f(0)=e\neq a = g(f(n))</math>, | X</math> taka, że <math>f(0)=e</math> oraz <math>f(s(n))=g(f(n))</math>. A | ||
sprzeczność. | zatem <math>f(s(n))=f(0)=e\neq a = g(f(n))</math>, sprzeczność. | ||
* <math>s</math> jest injekcją. | |||
Przypuśćmy, że <math>s(n) = s(m)</math> dla pewnych <math>n,m\in N</math>. Kładąc <math>X := | Przypuśćmy, że <math>s(n) = s(m)</math> dla pewnych <math>n,m\in | ||
\{0,s(0),s(s(0)), ...\}</math> (jest to podzbiór <math>N</math>) oraz <math>e:=0</math>, | N</math>. Kładąc <math>X := \{0,s(0),s(s(0)), ...\}</math> (jest to | ||
wiemy, że istnieje funkcja <math>f\colon N\to X</math> taka, że <math>f(0)=0</math> oraz | podzbiór <math>N</math>) oraz <math>e:=0</math>, wiemy, że istnieje | ||
funkcja <math>f\colon N\to X</math> taka, że <math>f(0)=0</math> oraz | |||
<math>f(s(n))=s(f(n))</math>. Taka funkcja jest tylko jedna, więc jej | <math>f(s(n))=s(f(n))</math>. Taka funkcja jest tylko jedna, więc jej | ||
zawężenie do <math>X</math> musi być równe funkcji <math>h\colon X\to X</math>, która | zawężenie do <math>X</math> musi być równe funkcji <math>h\colon | ||
spełnia warunki <math>h(0)=0</math> oraz <math>h(s(n))=n</math> dla <math>n\neq 0</math>. Dlatego | X\to X</math>, która spełnia warunki <math>h(0)=0</math> oraz | ||
<math>h(s(n))=n</math> dla <math>n\neq 0</math>. Dlatego założenie | |||
pokazać. | <math>s(n)=s(m)</math> implikuje <math>n=h(s(n))=h(s(m))=m</math>, | ||
co należało pokazać. | |||
* <math>\forall A\subseteq N\ ((0\in A\wedge (a\in A\Rightarrow s(a)\in | |||
A))\Rightarrow A=N)</math> | A))\Rightarrow A=N)</math> | ||
W tym punkcie przedstawimy najpierw rozumowanie teoriomnogościowe, | W tym punkcie przedstawimy najpierw rozumowanie teoriomnogościowe, a potem | ||
a potem skorzystamy z okazji, aby ten sam dowód pokazać bardziej w | skorzystamy z okazji, aby ten sam dowód pokazać bardziej w duchu teorii | ||
duchu teorii kategorii (stopniowo ten drugi rodzaj dowodów będzie | kategorii (stopniowo ten drugi rodzaj dowodów będzie zastępował pierwszy). | ||
zastępował pierwszy). | |||
Rozważmy zatem funkcję <math>s'\colon A\to A</math>, która -- będąc obcięciem | Rozważmy zatem funkcję <math>s'\colon A\to A</math>, która -- będąc | ||
<math>s</math> do <math>A</math> -- spełnia warunek <math>s\circ i = i\circ s'</math>, gdzie | obcięciem <math>s</math> do <math>A</math> -- spełnia warunek <math>s\circ | ||
<math>i\colon A\to N</math> jest inkluzją <math>A</math> w <math>N</math>. Zgodnie z założeniem | i = i\circ s'</math>, gdzie <math>i\colon A\to N</math> jest inkluzją | ||
zadania, dla funkcji <math>s'</math> istnieje dokładnie jedna funkcja | <math>A</math> w <math>N</math>. Zgodnie z założeniem zadania, dla | ||
<math>f\colon N\to A</math> taka, że <math>f(0)=0</math> oraz <math>s'\circ f = f\circ s</math>. | funkcji <math>s'</math> istnieje dokładnie jedna funkcja <math>f\colon | ||
Łącząc tą równość z poprzednią, dostajemy <math>s\circ i\circ f = | N\to A</math> taka, że <math>f(0)=0</math> oraz <math>s'\circ | ||
i\circ f\circ s</math>. Zwróćmy teraz uwagę na funkcję <math>i\circ f\colon | f = f\circ s</math>. Łącząc tą równość z poprzednią, dostajemy | ||
N\to N</math>. Oczywiste spostrzeżenie, że <math>i\circ f(0)=0</math> pozwala nam | <math>s\circ i\circ f = i\circ f\circ s</math>. Zwróćmy teraz uwagę na | ||
stwierdzić, że <math>i\circ f</math> jest | funkcję <math>i\circ f\colon N\to N</math>. Oczywiste spostrzeżenie, | ||
N</math>, która spełnia ostatnią z równości. Skoro tak, to musi być | że <math>i\circ f(0)=0</math> pozwala nam stwierdzić, że <math>i\circ | ||
równa identyczności na <math>N</math>. Pokazaliśmy więc, że <math>i\circ f = | f</math> jest ''jedyną'' funkcją typu <math>N\to N</math>, która spełnia | ||
1_N</math>, a stąd -- jak łatwo pokazać wynika, że <math>f\colon N\to A</math> jest | ostatnią z równości. Skoro tak, to musi być równa identyczności na | ||
injekcją. A zatem <math>N\subseteq A</math>, co należało wykazać. | <math>N</math>. Pokazaliśmy więc, że <math>i\circ f = 1_N</math>, | ||
a stąd -- jak łatwo pokazać wynika, że <math>f\colon N\to A</math> | |||
jest injekcją. A zatem <math>N\subseteq A</math>, co należało wykazać. | |||
Pokazaliśmy zatem, że aksjomaty Peano są spełnione dla zbioru <math>N</math>, | Pokazaliśmy zatem, że aksjomaty Peano są spełnione dla zbioru | ||
a zatem teoria mnogości uczy nas, że <math>N</math> jest zbiorem liczb | <math>N</math>, a zatem teoria mnogości uczy nas, że <math>N</math> | ||
naturalnych <math>\mathrm | jest zbiorem liczb naturalnych <math>\mathrm'''nat'''</math>. | ||
Dowód ostatniego z aksjomatów Peano prowadzony w duchu teorii | Dowód ostatniego z aksjomatów Peano prowadzony w duchu teorii kategorii, | ||
kategorii, czyli teorii przekształceń, korzysta z dobrodziejstwa, | czyli teorii przekształceń, korzysta z dobrodziejstwa, jakim jest | ||
jakim jest możliwość przedstawiania funkcji i ich złożeń na | możliwość przedstawiania funkcji i ich złożeń na diagramach. | ||
diagramach. | |||
Po pierwsze, spróbujmy przedstawić graficznie (na diagramach) | Po pierwsze, spróbujmy przedstawić graficznie (na diagramach) założenia, | ||
założenia, które mamy, tzn. zdanie: | które mamy, tzn. zdanie: ''<math>N</math> jest zbiorem, który posiada | ||
wyróżniony element <math>0</math> oraz funkcję <math>s\colon N\to | |||
takie, że dla dowolnego innego zbioru <math>X</math> i elementu <math>e\in X</math> oraz | N</math> takie, że dla dowolnego innego zbioru <math>X</math> i elementu | ||
funkcji <math>g\colon X\to X</math> istnieje dokładnie jedna funkcja <math>f\colon | <math>e\in X</math> oraz funkcji <math>g\colon X\to X</math> istnieje | ||
N\to X</math> spełniająca warunki <math>f(0)=e</math> oraz <math>f\circ s = g\circ f</math>. | dokładnie jedna funkcja <math>f\colon N\to X</math> spełniająca warunki | ||
<math>f(0)=e</math> oraz <math>f\circ s = g\circ f</math>.'' | |||
Zauważmy więc, że element <math>0\in N</math> może być zawsze traktowany jako | Zauważmy więc, że element <math>0\in N</math> może być zawsze traktowany | ||
funkcja <math>0\colon \top \to N</math>, gdzie <math>\top</math> jest dowolnym zbiorem | jako funkcja <math>0\colon \top \to N</math>, gdzie <math>\top</math> jest | ||
jednoelementowym (zwróćmy uwagę, że w tej interpretacji aplikacja | dowolnym zbiorem jednoelementowym (zwróćmy uwagę, że w tej interpretacji | ||
funkcji staje się złożeniem, np. <math>f(0)</math> staje się złożeniem | aplikacja funkcji staje się złożeniem, np. <math>f(0)</math> staje się | ||
<math>f\circ 0</math>). Podobnie dla <math>e\in X</math>. Po drugie, wszelkie równości | złożeniem <math>f\circ 0</math>). Podobnie dla <math>e\in X</math>. Po | ||
pomiędzy funkcjami przedstawiamy jako komutowanie odpowiedniego | drugie, wszelkie równości pomiędzy funkcjami przedstawiamy jako | ||
diagramu, np. równość <math>f\circ s = g\circ f</math> zachodzi wtedy i tylko | komutowanie odpowiedniego diagramu, np. równość <math>f\circ s = g\circ | ||
wtedy, gdy poniższy diagram komutuje: | f</math> zachodzi wtedy i tylko wtedy, gdy poniższy diagram komutuje: | ||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.14}\end_quote | ||
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 | Następnie umawiamy się, że jeśli funkcja w diagramie jest jedyną, | ||
N\to X</math> jest jedyną funkcją taką, że... | która może znajdować się pomiędzy dwoma danymi obiektami, to zaznaczamy | ||
graficznie jako: | ją przerywaną linią, np. zdanie ''...<math>f\colon N\to X</math> jest | ||
jedyną funkcją taką, że...'' odzwierciedla się graficznie jako: | |||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.15}\end_quote | ||
Jeśli diagram jest | Jeśli diagram jest bardziej skomplikowany, to umawiamy się, że odczytujemy | ||
bardziej skomplikowany, to umawiamy się, że odczytujemy | '''wszystkie''' możliwe równania, przy czym umawiamy się, że nie musimy | ||
wszystkie | |||
rysować identyczności. A zatem diagram: | rysować identyczności. A zatem diagram: | ||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.16}\end_quote | ||
komutuje wtedy i | komutuje wtedy i tylko wtedy, gdy <math>0\in N</math>, <math>e\in | ||
tylko wtedy, gdy <math>0\in N</math>, <math>e\in X</math>, <math>f(0)=e</math>, <math>f\circ s = g\circ | X</math>, <math>f(0)=e</math>, <math>f\circ s = g\circ f</math>, | ||
f</math>, <math>(f\circ s)(0) = g(e)</math> (ten wniosek wynika z czterech | <math>(f\circ s)(0) = g(e)</math> (ten wniosek wynika z czterech | ||
pozostałych!) i <math>f</math> jest jedyną taką funkcją, która spełnia | pozostałych!) i <math>f</math> jest jedyną taką funkcją, która spełnia | ||
wszystkie wymienione zależności. Tak więc powyższy diagram zawiera | 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 | Przystąpmy więc do kategoryjnego dowodu ostatniego aksjomatu Peano. Oto | ||
on: skoro diagram | |||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.17}\end_quote | ||
komutuje, co możemy | komutuje, co możemy przedstawić również w skrócie jako: | ||
przedstawić również w skrócie jako: | |||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.18}\end_quote | ||
jak również | jak również komutuje diagram: | ||
komutuje diagram: | |||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.19}\end_quote | ||
to z warunku | to z warunku jednoznaczności istnienia funkcji dostajemy <math>i\circ | ||
jednoznaczności istnienia funkcji dostajemy <math>i\circ f = 1_N</math>. To | f = 1_N</math>. To jednak implikuje, że <math>f</math> jest injekcją, | ||
jednak implikuje, że <math>f</math> jest injekcją, czyli <math>N\subseteq A</math>, co | czyli <math>N\subseteq A</math>, co należało pokazać. | ||
należało pokazać. | |||
Jak zobaczymy w toku wykładu, dowody poprzez pokazanie | Jak zobaczymy w toku wykładu, dowody poprzez pokazanie komutujących | ||
diagramów (czyli de facto wyeksplikowanie pewnych równości między | |||
równości między funkcjami -- czy też ogólniej: morfizmami) są | funkcjami -- czy też ogólniej: morfizmami) są bardzo często spotykane | ||
bardzo często spotykane w teorii kategorii, a nawet zastępują | w teorii kategorii, a nawet zastępują wszelkie inne dowody. | ||
wszelkie inne dowody. | |||
}} | |||
{{ Zadanie||uzupelnic| | |||
{{kotwica|mod1:zad3|}} Znajdź przykład na to, że w kategorii | |||
<math>\mathrm'''Pos'''</math> bijekcje nie zawsze są izomorfizmami. | |||
\proof[ | \proof[Wskazówka:] Wystarczy rozważyć częściowe porządki dwuelementowe. | ||
\ | \proof[Rozwiązanie:] Rozważmy dwa posety dwuelementowe | ||
<math>P=\{x,y\}</math>, <math>Q=\{z,w\}</math> i funkcję <math>g\colon | |||
Q\to P</math>, <math>g(z)=x, g(w)=y</math>, jak na rysunku: | |||
\begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.20}\end_quote | |||
\ | |||
\ | Funkcja <math>g</math> jest oczywiście bijekcją, ale funkcja do | ||
niej odwrotna nie jest monotoniczna, a zatem nie jest morfizmem w | |||
<math>\mathrm'''Pos'''</math>. To oznacza, że <math>g</math> nie może | |||
być izomorfizmem. }} | |||
{{ Zadanie||uzupelnic| | |||
{{kotwica|mod1:zad4|}} Pokaż, że każda grupa może być traktowana jako | |||
kategoria, w której każdy morfizm jest izomorfizmem. | kategoria, w której każdy morfizm jest izomorfizmem. | ||
\proof[Rozwiązanie:] Niech <math>(G,\circ, e)</math> będzie grupą. Podobnie jak w | \proof[Rozwiązanie:] Niech <math>(G,\circ, e)</math> będzie | ||
przypadku monoidów, deklarujemy <math>G</math> jako jedyny obiekt pewnej | grupą. Podobnie jak w przypadku monoidów, deklarujemy <math>G</math> | ||
kategorii, zaś elementy zbioru <math>G</math> jako morfizmy tejże kategorii, | jako jedyny obiekt pewnej kategorii, zaś elementy zbioru <math>G</math> | ||
działanie <math>\circ</math> jako złożenie morfizmów, element <math>e</math> traktując | jako morfizmy tejże kategorii, działanie <math>\circ</math> jako złożenie | ||
jako identyczność na obiekcie <math>G</math>. Zauważmy, że każdy element | morfizmów, element <math>e</math> traktując jako identyczność na obiekcie | ||
posiada element odwrotny, czyli dla każdego <math>g\in G</math> istnieje | <math>G</math>. Zauważmy, że każdy element posiada element odwrotny, | ||
<math>g^{-1}\in G</math> tak, że <math>g\circ g^{-1} = e = g^{-1}\circ g</math>. Te | czyli dla każdego <math>g\in G</math> istnieje <math>g^{-1}\in G</math> | ||
tak, że <math>g\circ g^{-1} = e = g^{-1}\circ g</math>. Te równania | |||
wybrany element <math>g</math> izomorfizmem. | interpretowane w naszej kategorii czynią tenże dowolnie wybrany element | ||
<math>g</math> izomorfizmem. }} | |||
{{ Zadanie||uzupelnic| | |||
{{kotwica|mod1:zad5|}} Dla dowolnej kategorii <math>\mathbf{C}</math> | |||
zaproponuj konstrukcję nowej kategorii, w której -- żądamy -- obiektami | |||
konstrukcję nowej kategorii, w której -- żądamy -- obiektami są | są morfizmy z <math>\mathbf{C}</math>. | ||
morfizmy z <math>\mathbf{C}</math>. | |||
\proof[Wskazówka:] Niech <math>\mathbf{C}</math> będzie dowolną kategorią; dla dwóch jej dowolnych morfizmów <math>f\colon A\to B</math> oraz <math>g\colon C\to D</math>, musimy zaproponować taką operację, dla której <math>f</math> jest dziedziną i <math>g</math> jest kodziedziną. Gdyby przedstawić to graficznie, w postaci diagramu, łatwo przyjdzie nam na myśl definicja takiej operacji: będzie to | \proof[Wskazówka:] Niech <math>\mathbf{C}</math> będzie dowolną | ||
kategorią; dla dwóch jej dowolnych morfizmów <math>f\colon A\to | |||
B</math> oraz <math>g\colon C\to D</math>, musimy zaproponować taką | |||
operację, dla której <math>f</math> jest dziedziną i <math>g</math> | |||
jest kodziedziną. Gdyby przedstawić to graficznie, w postaci diagramu, | |||
łatwo przyjdzie nam na myśl definicja takiej operacji: będzie to ''para | |||
morfizmów'' <math>(a\colon A\to C, b\colon B\to D)</math> z kategorii | |||
<math>\mathbf{C}</math> taka, że poniższy diagram komutuje: | |||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.21}\end_quote | ||
Teraz już łatwo dopowiedzieć szczegóły konstrukcji. | Teraz już łatwo dopowiedzieć szczegóły konstrukcji. | ||
\proof[Rozwiązanie:] Zaproponujemy najpierw złożenie: dwa morfizmy <math>(a,b)</math> oraz <math>(c,d)</math> jak poniżej: | \proof[Rozwiązanie:] Zaproponujemy najpierw złożenie: dwa morfizmy | ||
<math>(a,b)</math> oraz <math>(c,d)</math> jak poniżej: | |||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.22}\end_quote | ||
składają się tak: | składają się tak: | ||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.23}\end_quote | ||
albo formalnie: <math>(a,b)\circ (c,d) = (a\circ c, b\circ | |||
d)</math>. Oczywiście <math>\mathrm''dom''((a\circ c, b\circ d)) = | |||
h</math> oraz <math>\mathrm''cod''((a\circ c, b\circ d)) = g</math>. | |||
W końcu, identycznościami w nowej kategorii, która często oznacza się | |||
jako <math>\mathbf{C}^\to{}</math> są pary identyczności z kategorii | |||
<math>\mathbf{C}</math>. Wszelkie pozostałe czynności, które musimy | |||
wykonać, by sprawdzić, że <math>\mathbf{C}</math> jest kategorią, | |||
są trywialne. }} | |||
{{ Zadanie||uzupelnic| | |||
{{kotwica|mod1:zad6|}} Niech <math>\mathbf{C}</math> będzie kategorią, | |||
zaś <math>A\in \CC_0</math> jej ustalonym obiektem. Zaproponuj | |||
jej ustalonym obiektem. Zaproponuj konstrukcję nowej kategorii, | konstrukcję nowej kategorii, której obiektami są wszystkie morfizmy z | ||
której obiektami są wszystkie morfizmy z <math>\mathbf{C}</math> o kodziedzinie <math>A</math>. | <math>\mathbf{C}</math> o kodziedzinie <math>A</math>. | ||
\proof[Wskazówka:] Wykorzystaj Zadanie | \proof[Wskazówka:] Wykorzystaj Zadanie [[#mod1:zad5|Uzupelnic | ||
mod1:zad5|]]. | |||
\proof[Rozwiązanie:] Tak jak w Zadaniu | \proof[Rozwiązanie:] Tak jak w Zadaniu [[#mod1:zad5|Uzupelnic mod1:zad5|]] | ||
morfizmami nowej kategorii, oznaczanej często <math>\mathbf{C} / | |||
A</math> i nazywanej <math>A</math>-warstwą <math>\mathbf{C}</math> | |||
są komutujące diagramy: ponieważ wszystkie obiekty <math>\mathbf{C} / | |||
A</math> jako morfizmy <math>\mathbf{C}</math> mają wspólną kodziedzinę, | |||
więc możemy przyjąć, że morfizmami są komutujące trójkąty: | |||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.24}\end_quote | ||
albo formalnie: jeśli <math>f\colon B\to A</math> oraz <math>g\colon C\to A</math> są obiektami <math>\mathbf{C} / A</math>, to morfizmem o dziedzinie <math>f</math> i kodziedzinie <math>g</math> jest morfizm <math>h\colon B\to C</math> z <math>\mathbf{C}</math> taki, że powyższy diagram komutuje. Sprawdzenie, że <math>\mathbf{C} / A</math> jest kategorią jest już trywialne. | albo formalnie: jeśli <math>f\colon B\to A</math> oraz <math>g\colon | ||
C\to A</math> są obiektami <math>\mathbf{C} / A</math>, to morfizmem | |||
o dziedzinie <math>f</math> i kodziedzinie <math>g</math> jest morfizm | |||
<math>h\colon B\to C</math> z <math>\mathbf{C}</math> taki, że powyższy | |||
diagram komutuje. Sprawdzenie, że <math>\mathbf{C} / A</math> jest | |||
kategorią jest już trywialne. }} | |||
{{ Zadanie||uzupelnic| | |||
{{kotwica|mod1:zad7|}} Udowodnij, że złożenie izomorfizmów jest | |||
izomorfizmem, że morfizm odwrotny do izomorfizmu jest tylko jeden, | izomorfizmem, że morfizm odwrotny do izomorfizmu jest tylko jeden, | ||
a także, że identyczności w dowolnej kategorii są izomorfizmami. | a także, że identyczności w dowolnej kategorii są izomorfizmami. | ||
\proof[Rozwiązanie:] Pokażmy najpierw, że złożenie izomorfizmów jest | \proof[Rozwiązanie:] Pokażmy najpierw, że złożenie izomorfizmów jest | ||
izomorfizmem. Załóżmy, że <math>f\colon A\to B</math> oraz <math>g\colon B\to C</math> | izomorfizmem. Załóżmy, że <math>f\colon A\to B</math> oraz <math>g\colon | ||
są izmorfizmami. Wówczas ich złożenie <math>g\circ f\colon A\to C</math> | B\to C</math> są izmorfizmami. Wówczas ich złożenie <math>g\circ | ||
posiada morfizm odwrotny <math>f^{-1}\circ g^{-1}</math>. Rzeczywiście, | f\colon A\to C</math> posiada morfizm odwrotny <math>f^{-1}\circ | ||
<math>(g\circ f)\circ (f^{-1}\circ g^{-1}) = g\circ )f\circ | g^{-1}</math>. Rzeczywiście, <math>(g\circ f)\circ (f^{-1}\circ g^{-1}) | ||
f^{-1})\circ g^{-1} = g\circ 1_B \circ g^{-1} = g\circ g^{-1} = | = g\circ )f\circ f^{-1})\circ g^{-1} = g\circ 1_B \circ g^{-1} = g\circ | ||
1_C</math> i podobnie pokazujemy drugie z równań dla izomorfizmu. | g^{-1} = 1_C</math> i podobnie pokazujemy drugie z równań dla izomorfizmu. | ||
Rozwiążemy to samo zadanie graficznie: zauważmy, że fakt, że <math>f</math> | Rozwiążemy to samo zadanie graficznie: zauważmy, że fakt, że | ||
jest izomorfizmem z odwrotnością <math>f^{-1}</math> jest wyrażony przez | <math>f</math> jest izomorfizmem z odwrotnością <math>f^{-1}</math> | ||
fakt, że poniższy diagram komutuje: | jest wyrażony przez fakt, że poniższy diagram komutuje: | ||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.25}\end_quote | ||
(Przypomnijmy sobie umowę z Zadania | (Przypomnijmy sobie umowę z Zadania [[#mod1:zad2|Uzupelnic mod1:zad2|]], | ||
rysujemy identyczności.) | że nie rysujemy identyczności.) | ||
Podobnie, diagram: | Podobnie, diagram: | ||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.26}\end_quote | ||
komutuje, a co za tym idzie, złożenie tych dwóch diagramów | komutuje, a co za tym idzie, złożenie tych dwóch diagramów komutuje: | ||
komutuje: | |||
\begin_quote | \begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.27}\end_quote | ||
To zaś kończy dowód faktu, że <math>f^{-1}\circ g^{-1}</math> jest | To zaś kończy dowód faktu, że <math>f^{-1}\circ g^{-1}</math> jest | ||
odwrotnością <math>g\circ f</math>. | odwrotnością <math>g\circ f</math>. | ||
Po drugie, pokażmy, że morfizm odwrotny do izmorfizmu jest tylko | Po drugie, pokażmy, że morfizm odwrotny do izmorfizmu jest tylko jeden: | ||
jeden: załóżmy przeciwnie, że dla pewnego izomorfizmu <math>f\colon | załóżmy przeciwnie, że dla pewnego izomorfizmu <math>f\colon A\to B</math> | ||
A\to B</math> istnieją dwie odwrotności <math>g,h\colon B\to A</math>. Wówczas <math>g = | istnieją dwie odwrotności <math>g,h\colon B\to A</math>. Wówczas <math>g | ||
g\circ 1_B = g \circ (f\circ h) = (g\circ f)\circ h = 1_A\circ h = | = g\circ 1_B = g \circ (f\circ h) = (g\circ f)\circ h = 1_A\circ h = | ||
h</math>, co należało pokazać. | h</math>, co należało pokazać. | ||
Po trzecie, niech <math>A</math> będzie dowolnym obiektem dowolnej kategorii. | Po trzecie, niech <math>A</math> będzie dowolnym obiektem dowolnej | ||
Identyczność <math>1_A</math> spełnia oczywiście (z definicji kategorii) | kategorii. Identyczność <math>1_A</math> spełnia oczywiście (z definicji | ||
równanie <math>1_A = 1_A\circ 1_A</math>, co świadczy o tym, że jest | kategorii) równanie <math>1_A = 1_A\circ 1_A</math>, co świadczy o tym, | ||
izomorfizmem. | że jest izomorfizmem. }} | ||
{{ Zadanie||uzupelnic| | |||
{{kotwica|mod1:zad8|}} Znajdź kategorię, która ma tę własność, że jeśli | |||
dwa obiekty są izomorficzne, to muszą być sobie równe. | dwa obiekty są izomorficzne, to muszą być sobie równe. | ||
\proof[Wskazówka:] Można wziąć pod uwagę te szczególne kategorie, | \proof[Wskazówka:] Można wziąć pod uwagę te szczególne kategorie, w | ||
których istnieje co najwyżej jedna strzałka pomiędzy dowolnymi dwoma | |||
obiektami. | |||
\proof[Rozwiązanie:] Niech <math>(P,\sqsubseteq)</math> będzie częściowym porządkiem. | \proof[Rozwiązanie:] Niech <math>(P,\sqsubseteq)</math> będzie | ||
Traktowany jako kategoria, posiada tę własność, że pomiędzy dwoma | częściowym porządkiem. Traktowany jako kategoria, posiada tę własność, | ||
jego obiektami (elementami) istnieje co najwyżej jeden morfizm (w | że pomiędzy dwoma jego obiektami (elementami) istnieje co najwyżej jeden | ||
przypadku, gdy elementy te są w częściowym porządku). Niech <math>p,q</math> | 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 | <math>p,q</math> będą obiektami izomorficznymi. W języku częściowych | ||
oznacza to, że <math>p\sqsubseteq q</math> i <math>q\sqsubseteq p</math>. Antysymetria relacji | porządków oznacza to, że <math>p\sqsubseteq q</math> i <math>q\sqsubseteq | ||
porządkującej daje nam <math>p=q</math>, co należało pokazać. | p</math>. Antysymetria relacji porządkującej daje nam <math>p=q</math>, | ||
co należało pokazać. }} | |||
{{ Zadanie||uzupelnic| | |||
{{kotwica|mod1:zad9|}} Pokaż, że w kategorii <math>\mathrm'''Mon'''</math> | |||
izomorfizmy to dokładnie bijektywne homomorfizmy monoidów. | |||
\proof[Rozwiązanie:] Załóżmy, że <math>f\colon M\to N</math> jest bijektywnym | \proof[Wskazówka:] Jedna z implikacji jest bardzo łatwa: jeśli | ||
homomorfizmem z odwrotnością <math>g\colon N\to M</math>. Wystarczy pokazać, | <math>f</math> jest izomorfizmem w <math>\mathrm'''Mon'''</math>, to w | ||
że <math>g</math> jest homomorfizmem, tzn., że <math>g(e_N)=e_M</math> oraz | szczególności jest morfizmem, czyli homomorfizmem monoidów. Równania dla | ||
<math>g(n_1\circ_N n_2) = g(n_1)\circ_M g(n_2)</math> dla dowolnych <math>n_1, | <math>f</math> jako izomorfizmu implikują, że <math>f</math> jest też | ||
n_2\in N</math>. Wykorzystując fakt, że <math>f</math> -- jako homomorfizm -- | bijekcją, w dokładnie ten sam sposób, w jaki pokazaliśmy dla funkcji | ||
zachowuje jedynkę, mamy: <math>e_M = g(f(e_M)) = g(e_N)</math>, czyli | między zbiorami (patrz dyskusja po Fakcie [[#mod1:fact:bij|Uzupelnic | ||
pierwszą z szukanych równości. Znów opierając się na własnościach | mod1:fact:bij|]]). Wystarczy więc udowodnić implikację odwrotną. | ||
<math>f</math> mamy: <math>g(n_1)\circ_M g(n_2) = g(f(g(n_1)\circ_M g(n_2))) = | |||
\proof[Rozwiązanie:] Załóżmy, że <math>f\colon M\to N</math> | |||
jest bijektywnym homomorfizmem z odwrotnością <math>g\colon N\to | |||
M</math>. Wystarczy pokazać, że <math>g</math> jest homomorfizmem, tzn., | |||
że <math>g(e_N)=e_M</math> oraz <math>g(n_1\circ_N n_2) = g(n_1)\circ_M | |||
g(n_2)</math> dla dowolnych <math>n_1, n_2\in N</math>. Wykorzystując | |||
fakt, że <math>f</math> -- jako homomorfizm -- zachowuje jedynkę, | |||
mamy: <math>e_M = g(f(e_M)) = g(e_N)</math>, czyli pierwszą z | |||
szukanych równości. Znów opierając się na własnościach <math>f</math> | |||
mamy: <math>g(n_1)\circ_M g(n_2) = g(f(g(n_1)\circ_M g(n_2))) = | |||
g(f(g(n_1))\circ_N f(g(n_2))) = g(n_1\circ_N n_2)</math>, co należało | g(f(g(n_1))\circ_N f(g(n_2))) = g(n_1\circ_N n_2)</math>, co należało | ||
pokazać. | pokazać. }} | ||
\ | |||
{{ Zadanie||uzupelnic| | |||
{{kotwica|mod1:zad10|}} Przekonaj się, że kategorie i funktory | |||
tworzą kategorię, którą oznaczamy <math>\mathrm'''Cat'''</math>. | |||
\proof[Wskazówka:] Przeczytaj najpierw Definicję | |||
[[#mod5:def:funktor|Uzupelnic mod5:def:funktor|]], w której mówimy czym | |||
są funktory. \proof[Rozwiązanie:] Najpierw definiujemy identyczności: | |||
dla dowolnej kategorii <math>\mathbf{C}</math> proponujemy przekształcenie | |||
<math>1_\mathbf{C}{}</math> jako <math>1_\mathbf{C}{}(A) := A</math> | |||
<math>1_\mathbf{C}{}(f\colon A\to B) := f</math> dla dowolnych <math>A\in | |||
\CC_0, f\in \CC_1</math>. Wtedy oczywiście <math>1_\mathbf{C}{}</math> | |||
jest funktorem. Złożenie funktorów definiujemy w sposób naturalny, | |||
tak jak złożenie funkcji w <math>\mathrm'''Set'''</math>. Niech | |||
<math>F\colon \mathbf{C}\to \mathbf{D}</math>, <math>G\colon \mathbf{D}\to | |||
\mathbf{A}</math>, <math>H\colon \mathbf{A}\to\mathbf{B}</math> będą | |||
funktorami. <math>(1_\mathbf{D}{}\circ F)(A) = 1_\mathbf{D}{}(F(A))=F(A)= | |||
F(1_\mathbf{C}{})(A)=(F\circ 1_\mathbf{C}{})(A)</math> dla <math>A\in | |||
\CC_0</math> i taki sam dowód działa dla morfizmów. Wnioskujemy więc, | |||
że <math>1_\mathbf{D}{}\circ F = F= F\circ 1_\mathbf{C}{}.</math> Ponadto: | |||
<math>H\circ (G\circ F)(-) = H((G\circ F)(-))=H(G(F(-)))=(H\circ G)(F(-)) | |||
= ((H\circ G)\circ F)(-),</math> gdzie <math>(-)</math> oznacza miejsce, | |||
w które można wstawić obiekt lub morfizm z <math>\mathbf{C}</math> -- | |||
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||uzupelnic| | |||
{{kotwica|mod1:zad11|}} Podaj dwa dalsze przykłady kategorii. | |||
\proof[Wskazówka:] 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 <math>\lambda</math>-rachunek i tworzymy dla niego kategorię, | |||
tak jak opisaliśmy to w jednym z ostatnich przykładów podanych podczas | |||
wykładu. | |||
\proof[Rozwiązanie:] | |||
* \bfAutomaty:: Niech <math>M=(M,*, e)</math> będzie | |||
monoidem. Definiujemy '''<math>M</math>-automat''' jako parę | |||
<math>(S,\delta)</math> składającą się ze zbioru stanów <math>S</math> | |||
i funkcji przejścia <math>\delta\colon M\times S\to S</math> | |||
tak, że: <math>\delta(x*y,s) := \delta(x,\delta(y,s)),</math> | |||
<math>\delta(e,s)=s,</math> dla dowolnych <math>x,y\in M</math>, | |||
<math>s\in S</math>. Morfizmem <math>M</math>-automatów | |||
<math>(S,\delta)</math>, <math>(Z,\eta)</math> jest funkcja | |||
<math>f\colon S\to Z</math> taka, że <math>f(\delta(x,s)) = | |||
\eta(x,f(s))</math>. Sprawdzenie, że taka struktura jest kategorią jest | |||
oczywiste, nieprawdaż? * \bfRachunek lambda:: rozważamy prosty rachunek | |||
<math>\lambda</math> z typami. (<math>\lambda</math>-rachunek jest | |||
formalizmem pozwalającym na wygodną manipulację funkcjami. Umożliwia opis | |||
funkcji bez podawania jej nazwy, np: funkcja <math>x\mapsto x^2</math> | |||
jest w rachunku lambda zapisywana jako <math>\lambda x.x^2</math>, | |||
zaś funkcja, której wartością jest również funkcja: <math>y\mapsto | |||
(x\mapsto x^2+2y)</math> zapisuje się jako <math>\lambda y.\lambda | |||
x.x^2+2y</math>.) Formalnie, <math>\lambda</math>-rachunek składa się z: | |||
* typów: <math>A,B, A\times B,A\to B, ...</math> * termów, w skład | |||
których wchodzą: | |||
* dla każdego typu <math>A</math> zmienne tego typu: | |||
<math>x:A,y:A,z:A,...</math>, * stałe różnych typów: | |||
<math>a:A,b:B,...</math>, * dla dowolnych <math>a:A, b:B</math>, | |||
para: <math>\langle a,b\rangle:A\times B</math>, * dla dowolnego | |||
<math>c:A\times, B</math>, projekcja <math>\pi_1(c):A</math>, * dla | |||
<math> | dowolnego <math>c:A\times B</math>, projekcja <math>\pi_2(c):B</math>, * | ||
dla dowolnych <math>A | dla dowolnych <math>c:A\times B, a:A</math>, aplikacja <math>ca:B</math>, | ||
* dla dowolnych <math>x:A, b:B</math>, abstrakcja <math>\lambda x.b:A\to | |||
B</math>. | |||
<math> | |||
dla <math>A\ | |||
<math> | |||
<math> | |||
* równań: | |||
* <math>\pi_1(\langle a,b\rangle)=a</math>, * <math>\pi_2(\langle | |||
a,b\rangle)=b</math>, * <math>\langle\pi_1(c),\pi_2(c)\rangle=c</math>, | |||
* <math>(\lambda x.b)a = b[a/x]</math>, * <math>\lambda x.cx = c</math>, | |||
o ile <math>x</math> nie występuje w <math>c</math>. | |||
Definiujemy też relację <math>a\approx b</math> na termach (nazywaną | |||
zwyczajowo <math>\beta\eta</math>-równoważnością), jako relację | |||
równoważności generowaną przez równania i zamianę nazwy zmiennych | |||
związanych: o ile <math>y</math> nie występuje w <math>b</math>, to | |||
Definiujemy też relację <math>a\approx b</math> na termach (nazywaną zwyczajowo <math>\beta\eta</math>-równoważnością), jako relację równoważności generowaną przez równania i zamianę nazwy zmiennych związanych: o ile <math>y</math> nie występuje w <math>b</math>, to | |||
<math>\lambda x.b = \lambda y.b[y/x].</math> | <math>\lambda x.b = \lambda y.b[y/x].</math> | ||
Kategorię <math>\mathbf{C}(\lambda)</math> definiujemy teraz jak następuje: | Kategorię <math>\mathbf{C}(\lambda)</math> definiujemy teraz jak | ||
następuje: | |||
* obiekty: typy <math>\lambda</math>-rachunku, * morfizm z <math>A</math> | |||
do <math>B</math> to termy domknięte <math>c\colon A\to B</math> | |||
(identyfikowane ze sobą, jeśli <math>c\approx c'</math>), * identyczności: | |||
<math>1_A = \lambda x.x</math> dla każdego <math>x:A</math>, * złożenie: | |||
<math>c\circ b = \lambda x.c(bx)</math>. | |||
Sprawdźmy, że <math>\mathbf{C}(\lambda)</math> jest kategorią: | Sprawdźmy, że <math>\mathbf{C}(\lambda)</math> jest kategorią: | ||
<math>c\circ 1_B = \lambda x.c((\lambda y.y)x)=\lambda x.c(y[x/y])=\lambda x.cx=c,</math> | <math>c\circ 1_B = \lambda x.c((\lambda y.y)x)=\lambda x.c(y[x/y])=\lambda | ||
<math>1_C \circ c= \lambda x.(\lambda y.y)(cx) = \lambda x.y[cx/y]=\lambda x.cx = c,</math> | x.cx=c,</math> <math>1_C \circ c= \lambda x.(\lambda y.y)(cx) = \lambda | ||
\begin_eqnarray* | x.y[cx/y]=\lambda x.cx = c,</math> \begin_eqnarray* c\circ (b\circ a) & | ||
c\circ (b\circ a) & = & \lambda x.c((b\circ a)x)\\ | = & \lambda x.c((b\circ a)x)\\ & = & \lambda x.c((\lambda y.b(ay))x)\\ | ||
& = & \lambda x.c((\lambda y.b(ay))x)\\ | & = & \lambda x.c(b(ax))\\ & = & \lambda x.\lambda y.c((by)(ax))\\ & = | ||
& = & \lambda x.c(b(ax))\\ | & \lambda x.(c\circ b)(ax)\\ & = & (c\circ b)\circ a. \end_eqnarray* | ||
& = & \lambda x.\lambda y.c((by)(ax))\\ | Kategorii <math>\mathbf{C}(\lambda)</math> przyjrzymy się jeszcze | ||
& = & \lambda x.(c\circ b)(ax)\\ | uważniej w wykładach [[#wyklad3|Uzupelnic wyklad3|]], [[#wyklad4|Uzupelnic | ||
& = & (c\circ b)\circ a. | wyklad4|]]. | ||
\end_eqnarray* | |||
Kategorii <math>\mathbf{C}(\lambda)</math> przyjrzymy się jeszcze uważniej w wykładach | |||
}} |
Wersja z 15:05, 20 lip 2006
==Moduł: Teoria kategorii jako abstrakcyjna teoria funkcji==
Teoria kategorii jako ogólny dział algebry wyrosła z prac Samuela Eilenberga i Saundersa MacLane'a: pionierską pracą jest tu General theory of natural equivalences, Transactions of the American Mathematical Society 58 (1945), pp. 231-294 -- autorzy wprowadzili tam pojęcie kategorii, funktora i naturalnej transformacji funktorów. Teoria kategorii szybko przekroczyła granice algebry i jej język okazał się uniwersalnym sposobem mówienia o innych teoriach matematycznych: logice, teorii zbiorów, topologii, teorii porządku, geometrii, analizie itd. Jak to możliwe? Treść tych wykładów stanowi jedną z odpowiedzi na to pytanie.
Przekształcenia i ich algebra
Zacznijmy od niegroźnego przeformułowania dwóch znanych pojęć z teorii mnogości.
Jak pamiętamy, funkcja jest bijekcją jeśli jest różnowartościową surjekcją, tj. Parser nie mógł rozpoznać (błąd składni): {\displaystyle \forall x,y\in A\ f(x)=f(y)\Rightarrow x=y} oraz
Zauważmy, że drugi warunek pozwala nam każdemu elementowi zbioru przyporządkować element zbioru , zaś warunek pierwszy mówi, że to przekształcenie (nazwijmy je ) jest funkcją (śmiało napiszmy więc ). W tym świetle z warunku drugiego wynika, że złożenie jest funkcją identycznościową na zbiorze , a stąd wynika , co w połączeniu z pierwszym warunkiem oznacza, że jest identycznością na zbiorze . Idąc dalej tym tropem (patrz Zadanie Uzupelnic mod1:zad1|) jesteśmy w stanie bez trudu pokazać, że:
Fakt
Funkcja jest
bijekcją wtedy i tylko wtedy, gdy istnieje funkcja taka, że oraz .Sam wynik nie wygląda, być może, ekscytująco, ale w koniunkcji z kolejnymi przykładami pozwoli nam wyciągnąć ekscytujące wnioski.
Rozważmy zatem zbiór liczb naturalnych . Teoria mnogości definiuje jako najmniejszy zbiór zawierający liczbę zero i spełniający: , gdzie jest funkcją następnika (która jest injektywna i posiada tę właściwość, że dla dowolnego ). Okazuje się, że zbiór liczb naturalnych można wyróżnić spośród innych zbiorów w ten sposób (Zadanie Uzupelnic mod1:zad2|):
Fakt
naturalnych jest to zbiór zawierający liczbę zero oraz wyposażony w funkcję taką, że: dla dowolnego zbioru i elementu oraz funkcji istnieje dokładnie jedna funkcja spełniająca dwa warunki:
oraz .Dwa powyższe przykłady wskazują na to, że definicje teorii mnogości można wyrażać operując jedynie pojęciem funkcji i złożenia funkcji (zauważmy, że elementy zbiorów można traktować jako funkcje, których dziedziną jest singleton). Postawmy więc śmiałe pytanie: czy można prezentować różnorodne teorie matematyczne badając jedynie własności przekształceń obiektów matematycznych będących przedmiotem zainteresowania danej teorii? A zatem pytamy czy: można prezentować teorię mnogości badając własności funkcji między zbiorami, teorię grup badając własności homomorfizmów grup, topologię badając własności funkcji ciągłych pomiędzy przestrzeniami topologicznymi? W ogólności zapytajmy więc jeszcze raz: czy można badać dowolne obiekty matematyczne z określoną strukturą za pomocą własności przekształceń, które tę strukturę zachowują?
Odpowiedź brzmi: tak -- i ta właśnie twierdząca odpowiedź powołuje do życia teorię kategorii. Teoria kategorii składa się bowiem z twierdzeń dotyczących uniwersalnych własności przekształceń, niezależnych od cech szczególnych danych teorii matematycznych. Tak więc, teoria kategorii bada wspólne, uniwersalne własnościami zbiorów, grup, przestrzeni topologicznych, przestrzeni wektorowych, częściowych porządków, i tak dalej, wszystko w języku przekształceń danej struktury.
Czy da się krótko, nieformalnie zebrać najważniejsze cechy przekształceń -- cechy niezależne od konkretnej teorii matematycznej? Spróbujmy! Zaczynamy od nazwy: przekształcenie nazywać będziemy również morfizmem (bo w przeróżnych teoriach matematycznych natykamy się na homomorfizmy, homeomorfizmy, endomorfizmy, itd.) lub po prostu strzałką (bo tak zwykle graficznie przedstawia się przekształcenia). Przekształcenie działa pomiędzy obiektami, np. funkcja to przekształcenie zbiorów, homomorfizm to przekształcenie grupy w grupę, funkcja ciągła to przekształcenie przestrzeni topologicznej w przestrzeń topologiczną, funkcja monotoniczna to przekształcenie posetu w poset, itd. (Załóżmy na początku dla prostoty, że w naszych przykładach nie bierzemy pod uwagę przekształceń obiektów pewnej klasy w obiekty innej klasy, na przykład wyznacznika, który przekształca macierz w liczbę. Takimi morfizmami zajmiemy się poźniej.) Każde przekształcenie działa na pewien jedyny obiekt, nazwijmy go dziedziną i oznaczmy , i przekształca go w inny jedyny obiekt nazywany przeciwdziedziną i oznaczany jako . Fakt, że morfizm ma dziedzinę i przeciwdziedzinę zapisujemy
\begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.1}\end_quote
lub po prostu . Nasza teoria nie może istnieć bez pojęcia złożenia przekształceń: zakładamy, że dwóm morfizmom takim, że (strzałki takie nazywamy składalnymi) przypisujemy morfizm zwany złożeniem, dla którego mamy i . Przykłady wskazują na to, że kolejność złożenia składalnych przekształceń nie powinna grać roli, czyli dla:
\begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.2}\end_quote
morfizm:
\begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.3}\end_quote
może powstać albo z:
\begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.4}\end_quote
albo, równoważnie, z:
\begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.5}\end_quote
W końcu, w naszej nieformalnej teorii przekształceń postulujemy istnienie przekształceń, które - jak to się potocznie mówi: nic nie zmieniają, tak zwanych identyczności:
\begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.6}\end_quote
To kończy nieformalny opis języka, w którym główną rolę grają przekształcenia. Zapiszmy to teraz formalnie.
Definicja kategorii
Definicja
Kategoria składa się z następujących danych:
- (D1): obiektów: , * (D2): morfizmów:
, * (D3): dwóch operacji przypisującej każdemu morfizmowi obiekty i ,
- (D4): operacji przypisującej każdemu obiektowi
morfizm nazywany identycznością, * (D5): operacji przypisującej każdej parze morfizmów takich, że morfizm nazywany złożeniem,
spełniających następujące aksjomaty:
- (A1): ;
; , * (A2): , gdzie oraz , * (A3): jeśli są składalne oraz są składalne, to .
Kolekcję obiektów kategorii będziemy w dalszym ciągu oznaczać jako , zaś kolekcję jej morfizmów jako .
czego składa się kategoria. Nie znamy jednak odpowiedzi na -- być może -- równie ważne pytanie: czym jest kategoria? W naszym wykładzie przyjmiemy po prostu, że kategorią będzie każda interpretacja aksjomatów przedstawionych w Definicji Uzupelnic
mod1:def:kategria1| na gruncie teorii mnogości.Pokażmy, że o kategorii można też myśleć jako o specjalnym grafie skierowanym. Oto druga, równie dobra dla naszych potrzeb, definicja kategorii:
Definicja
Grafem skierowanym nazywamy kolekcję obiektów (wierzchołków) , kolekcję strzałek (krawędzi) i dwie funkcje
\begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.7}\end_quote
W grafie, kolekcja składalnych par strzałek to zbiór nazywany produktem nad . O kategorii można myśleć jako o grafie skierowanym , który posiada dwie dodatkowe funkcje , oraz , takie, że spełnione są warunki (A1)--(A3) Definicji
Uzupelnic mod1:def:kategria1|.Poniżej pokażemy trzecią, równoważną, algebraiczną definicję kategorii (na podstawie książki: Peter J. Freyd, Andre Scedrov, Categories, Allegories, North Holland, 1989).
Definicja
Kategoria składa się z dwóch operacji unarnych i jednej częściowej operacji binarnej. Zmienne, na które działają te operacje nazywamy morfizmami (strzałkami). Wartości tych operacji są zapisywane i czytane jako:
\begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.8}\end_quote
Operacje podlegają następującym aksjomatom:
- (b1): jest zdefiniowane wtw, gdy , * (b2): oraz
, * (b3): oraz , * (b4): oraz * (b5): .
W tym wypadku równoważność definicji z dwiema pozostałymi (Definicje Uzupelnic mod1:def:kategria1| i Uzupelnic mod1:def:kategoria2|) nie jest oczywista. Aby ją wykazać, rozpocznijmy od lematu, który rzuci trochę światła na strukturę algebraiczną, którą przed chwilą opisaliśmy.
Lemat
następujące warunki są równoważne: istnieje taki, że ; istnieje taki, że ; ; ; dla każdego , (co oznacza, że jeśli złożenie jest zdefiniowane, to jest równe ), dla każdego , .
\proof{Dowód} (1)(2) Dla mamy . (2)(3) . (3)(4) . (4)(5) Załóżmy, że jest zdefiniowane dla każdego ; to oznacza, że , czyli z (4), dla każdego . A zatem . (3)(1) Oczywiste. (4)(3) . (5)(4) Połóżmy . Mamy , czyli istnieje. Z (5) wynika, że . Ale (b3) implikuje, że , czyli . Dowód równoważności
(6) z (3) jest podobny do równoważności (5) z (4).Morfizm spełniający dowolny z powyższych warunków nazywamy identycznością.
A zatem równoważność trzeciej definicji kategorii z pierwszą uzyskujemy następująco (tak naprawdę, to pokażemy jedynie, że dane Definicji Uzupelnic mod1:def:kategoria3| wystarczą do zrekonstruowania Definicji Uzupelnic mod1:def:kategria1|: Identyczność to zmienna taka, że . Dziedziną jest , przeciwdziedziną . Złożenie to . Kolekcja obiektów Definicji Uzupelnic mod1:def:kategria1| pokrywa się z kolekcją morfizmów identycznościowych Definicji Uzupelnic mod1:def:kategoria3|. Zauważmy, że dla dowolnego , zarówno , jak i są obiektami (identycznościami), bo , , , .
Sprawdźmy aksjomaty: . Aby pokazać, że jest morfizmem, załóżmy, że (czyli ) oraz (czyli )). Wówczas , .
Załóżmy teraz, że . Wówczas . Ostatnia równość wynika z poprzedniego paragrafu. Podobnie, .
W końcu, przy odpowiednich założeniach.
Przykłady kategorii
- : Obiektami są zbiory, morfizmami funkcje.
Uwaga! W teorii mnogości funkcja jest zdefiniowana jako zbiór par uporządkowanych takich, że \begin_equation ((x,y)\in f\ \wedge \ (x,y')\in f)\ \Rightarrow \ y=y'. \end_equation
Aby traktować funkcje jako morfizmy musimy precyzyjnie znać i . Na przykład funkcje oraz , które mają takie samo działanie na argumentach, będą traktowane jako dwa różne morfizmy. Formalnie, w języku teorii mnogości morfizmem będzie trójka taka, że spełnia powyższe równanie (Uzupelnic eq:funkcja|) wraz z poniższym: \begin_equation x\in X \Rightarrow (\exists y\in Y\ (x,y)\in f). \end_equation Wtedy jest projekcją na pierwszą współrzędną , a projekcją na trzecią współrzędną. * Kategoria zbiorów skończonych i funkcji , jak również wiele innych kategorii, w których obiektami i morfizmami są ograniczone klasy zbiorów i funkcji, np. kategoria wszystkich zbiorów skończonych i injekcji. * Kategorie, w których obiektami są zbiory z pewną dodatkową stukturą algebraiczną, zaś morfizmami te funkcje, które tę strukturę zachowują.
- : Przestrzenie wektorowe i odwzorowania
liniowe * : Grupy i homomorfizmy grup * : Grupy abelowe i homomorfizmy grup * : Monoidy i homomorfizmy monoidów * : Częściowe porządki i funkcje monotoniczne * : Przestrzenie topologiczne i funkcje ciągłe
- : Grafy i homomorfizmy grafów * liczby
naturalne i wszystkie funkcje obliczalne
- Mając dowolny częściowy porządek (poset)
definiujemy kategorię o tej samej nazwie jak następuje: jako obiekty bierzemy elementy , zaś dla dwóch obiektów przyjmujemy, że istnieje morfizm z do wtedy i tylko wtedy, gdy . Zauważmy, że wystarczy tu, by był preporządkiem, tzn. aby relacja była zaledwie zwrotna i przechodnia.
- : Obiektami tej kategorii są zbiory, zaś
morfizmami relacje binarne, tzn. wtedy i tylko wtedy, gdy . Wówczas rolę identyczności spełniają relacje identycznościowe: , zaś złożeniem morfizmów jest po prostu złożenie relacji znane z kursu teorii mnogości: mając dane oraz przyjmujemy: * \bfKategorie skończone: (skończoność dotyczy ilości istniejących morfizmów, choć nazwy tych kategorii odnoszą się do ilości obiektów):
- : Ta kategoria ma jeden obiekt i jedną strzałkę:
identyczność.
\begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.9}\end_quote
- : Ta kategoria nie ma obiektów i nie ma strzałek.
- : Kategoria ta ma dwa obiekty i jedną strzałkę
pomiędzy nimi (a także oczywiście dwie wymagane identyczności).
\begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.10}\end_quote
- : Kategoria ma trzy obiekty, trzy identyczności,
dokładnie jedną strzałkę z obiektu pierwszego do drugiego, dokładnie jedną strzałkę z obiektu drugiego do trzeciego i dokładnie jedną strzałkę z obiektu pierwszego do trzeciego (co oznacza, że ta ostatnia musi być złożeniem dwóch pozostałych nieidentycznościowych strzałek!)
\begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.11}\end_quote
- Inne kategorie skończone możemy tworzyć biorąc skończoną ilość obiektów
wraz z odpowiadającymi im identycznościami, a następnie dodając dowolną skończoną ilość morfizmów. W tym wypadku musimy jednak zadbać o to, aby - jeśli morfizmy będą tworzyły cykle - zadeklarować złożenia wszystkich morfizmów w cyklu jako równe odpowiednim identycznościom. W innym bowiem przypadku uzyskana kategoria nie musi już być skończona (może mieć nieskończenie wiele morfizmów odpowiadających wielokrotnościom cyklu).
- \bfKategorie dyskretne: są to takie kategorie, w których nie ma
innych morfizmów niż identyczności. Łatwo uzmysłowić sobie, że kategorie dyskretne możemy utożsamiać ze zbiorami, bo przecież obiekty możemy interpretować jako elementy zbioru.
\begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.12}\end_quote
- Niech będzie monoidem ( jest
jego jedynką). Wówczas biorąc jako jedyny obiekt, zaś elementy jako morfizmy (z dziedziną i kodziedziną ), a działanie jako złożenie morfizmów, otrzymujemy kategorię. Można łatwo pokazać również konstrukcję odwrotną, tj. przekonać się, że każda kategoria z jednym obiektem może być traktowana jako monoid. Mówiąc krótko: kategorie z jednym obiektem to monoidy. (Jak w takim razie traktować grupy? Odpowiedź znajdziemy jeszcze przed końcem wykładu...)
\begin_quote\tt{Tu wstawić brakujący rysunek o numerze 1.13}\end_quote
- Dla danego rachunku logicznego możemy stworzyć kategorię w ten
sposób, że obiektami są formuły: zaś morfizmem z do jest każda dedukcja (dowód) z założenia . Złożeniem morfizmów jest wtedy połączenie dowodów, które jest oczywiście łączne. Identyczność to dowód pusty, bowiem z aksjomatów logicznych zawsze wynika .
- Dla danego typowanego języka funkcyjnego tworzymy
kategorię w ten sposób, że obiektami są typy danych, zaś strzałkami są programy (procedury) języka . Złożenie dwóch programów jest program dany poprzez zaaplikowanie wyjścia programu na wejściu programu . Identycznością jest procedura, która nic nie robi.
Inne przykłady kategorii zamieścimy w Ćwiczeniach do tego wykładu.
Izomorfizmy
Definicja izomorfizmu jest pierwszą definicją teorii kategorii, definicją abstrakcyjną, niezależną od specyficznych wymagań konkretnej teorii matematycznej, definicją wyrażoną tylko w języku strzałek (czyli w języku teorii kategorii).
Definicja
będzie dowolną kategorią. Morfizm jest izomorfizmem jeśli istnieje morfizm taki, że oraz . Morfizm nazywa się morfizmem odwrotnym do . Jeśli dla obiektów kategorii istnieje izomorfizm , to obiekty i
nazywamy izomorficznymi, co zapisujemy jako .Ponieważ dowolny morfizm posiada dokładnie jeden morfizm odwrotny (dowód?), będziemy go oznaczać jako . Można łatwo pokazać (dowód?), że morfizm odwrotny do izomorfizmu jest izomorfizmem.
Fakt Uzupelnic mod1:fact:bij| wyraża zatem myśl, że izomorfizmami w są dokładnie bijekcje. Ale uwaga: w kategoriach, których obiektami są zbiory z pewną strukturą, a morfizmami funkcje zachowujące tę strukturę (kategorie o takich własnościach nazywamy konkretnymi, patrz Definicja Uzupelnic mod5:def:konkret|, bijekcje nie zawsze są izomorfizmami. Prosty kontrprzykład stanowi tutaj kategoria (Zadanie Uzupelnic mod1:zad3|).
Podstawy teoriomnogościowe
Teoria mnogości uczy nas, że nie istnieje zbiór wszystkich zbiorów. Jeśli więc rozważamy kategorię , której obiektami są zbiory, to widzimy, że kolekcja wszystkich obiektów nie tworzy zbioru (jest zbyt duża!). Podobnie, kolekcja wszystkich morfizmów jest zbyt wielka, aby być zbiorem (zauważmy, że samych identyczności jest już tyle, ile obiektów). Kategoria nie jest taką jedyną. W związku z tym definiujemy:
Definicja
nazywamy małą, jeśli kolekcja wszystkich obiektów i morfizmów kategorii są zbiorami. W przeciwnym
wypadku jest duża.A zatem , , są duże, zaś kategorie skończone są małe. Kategorie duże wyglądają na pierwszy rzut oka bardzo nieprzyjaźnie, część z nich posiada jednak bardzo często następującą cechę:
Definicja
obiektów z kolekcja jest zbiorem (o takim zbiorze mówimy w skrócie homset, podobnie jak o zbiorze częściowo uporządkowanym przyjęło się mówić:
poset).Większa część teorii kategorii, którą zaprezentujemy w dalszym toku wykładu dotyczy kategorii lokalnie małych (takich jak , , itd. czy wszystkie kategorie małe). Po dalsze wiadomości dotyczące podstaw teoriomnogościowych teorii kategorii odsyłamy do dyskusji tego tematu w podręczniku Categories for the Working Mathematician, Springer, 1997, Saundersa Mac Lane'a. Bardzo ciekawą dyskusję roli teorii kategorii w badaniach nad podstawami matematyki zaproponował Steven Awodey w artykule: An answer to Hellman's question: ``Does category theory provide a framework for mathematical structuralism?', Philosophia Mathematics (3) vol. 12 (2004), dostępnym również na stronie domowej autora pracy.
Ćwiczenia do Modułu 1
Zadanie
uzupelnic
Rozwiązanie
Zadanie
uzupelnic
Rozwiązanie
Zadanie
uzupelnic
Rozwiązanie
Zadanie
uzupelnic
Rozwiązanie
Zadanie
uzupelnic
Rozwiązanie
Zadanie
uzupelnic
Rozwiązanie
Zadanie
uzupelnic
Rozwiązanie
Zadanie
uzupelnic
Rozwiązanie
Zadanie
uzupelnic
Rozwiązanie
Zadanie
uzupelnic
Rozwiązanie
Zadanie
uzupelnic
Rozwiązanie