Test Arka: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Arek (dyskusja | edycje)
Arek (dyskusja | edycje)
Nie podano opisu zmian
Linia 35: Linia 35:
pokazać, że:
pokazać, że:


{{ fakt|[Uzupelnij]|| {{kotwica|mod1:fact:bij|}} Funkcja <math>f\colon
{{ fakt|[Uzupelnij]|| Funkcja <math>f\colon A\to B</math> jest bijekcją
A\to B</math> jest bijekcją wtedy i tylko wtedy,  gdy  istnieje funkcja
wtedy i tylko wtedy,  gdy  istnieje funkcja <math>g\colon B\to A</math>
<math>g\colon B\to A</math> taka, że <math>f\circ g = 1_B</math> oraz
taka, że <math>f\circ g = 1_B</math> oraz <math>g\circ f = 1_A</math>.
<math>g\circ f = 1_A</math>. }}
}}


Sam wynik nie wygląda, być może, ekscytująco, ale w koniunkcji z
Sam wynik nie wygląda, być może, ekscytująco, ale w koniunkcji z
Linia 55: Linia 55:
(Zadanie [[#mod1:zad2|Uzupelnic mod1:zad2|]]):
(Zadanie [[#mod1:zad2|Uzupelnic mod1:zad2|]]):


{{ fakt|[Uzupelnij]||{{kotwica|mod1:fact:naturalne|}} Zbiór liczb
{{ fakt|[Uzupelnij]|| Zbiór liczb naturalnych
naturalnych <math>\mathrm\bf{nat}</math> jest to zbiór zawierający
<math>\mathrm\bf{nat}</math> jest to zbiór zawierający liczbę zero
liczbę zero oraz wyposażony w funkcję <math>\mathrm{succ}\colon
oraz wyposażony w funkcję <math>\mathrm{succ}\colon \mathrm\bf{nat}\to
\mathrm\bf{nat}\to \mathrm\bf{nat}</math> taką, że: dla dowolnego zbioru
\mathrm\bf{nat}</math> taką, że: dla dowolnego zbioru <math>X</math>
<math>X</math> i elementu <math>e\in X</math> oraz funkcji <math>g\colon
i elementu <math>e\in X</math> oraz funkcji <math>g\colon X\to X</math>
X\to X</math> istnieje dokładnie jedna funkcja <math>f\colon
istnieje dokładnie jedna funkcja <math>f\colon \mathrm\bf{nat}\to
\mathrm\bf{nat}\to X</math> spełniająca dwa warunki: <math>f(0)=
X</math> spełniająca dwa warunki: <math>f(0)= e</math> oraz <math>f\circ
e</math> oraz <math>f\circ \mathrm{succ} = g\circ f</math>.  }}
\mathrm{succ} = g\circ f</math>.  }}


Dwa powyższe przykłady wskazują na to, że definicje teorii mnogości
Dwa powyższe przykłady wskazują na to, że definicje teorii mnogości
Linia 145: Linia 145:
===Definicja kategorii===
===Definicja kategorii===


{{ definicja|[Uzupelnij]|XXXX| Kategoria
{{ definicja|[Uzupelnij]|| Kategoria <math>\mathbf{C}</math> składa
<math>\mathbf{C}</math> składa się z następujących danych:
się z następujących danych:


* (D1):  '''obiektów''': <math>A,B,C,...</math>,
* (D1):  '''obiektów''': <math>A,B,C,...</math>,
Linia 192: Linia 192:
kategorii:
kategorii:


{{ definicja|[Uzupelnij]|| {{kotwica|mod1:def:kategoria2|}} Grafem
{{ definicja|[Uzupelnij]|| Grafem skierowanym nazywamy kolekcję obiektów
skierowanym nazywamy kolekcję obiektów (wierzchołków) <math>O</math>,
(wierzchołków) <math>O</math>, kolekcję strzałek (krawędzi)
kolekcję strzałek (krawędzi) <math>A</math> i dwie funkcje
<math>A</math> i dwie funkcje


{Tu wstawić brakujący rysunek o numerze 1.7}
{Tu wstawić brakujący rysunek o numerze 1.7}
Linia 211: Linia 211:
''Categories, Allegories'', North Holland, 1989).
''Categories, Allegories'', North Holland, 1989).


{{ definicja|[Uzupelnij]|| {{kotwica|mod1:def:kategoria3|}}  Kategoria
{{ definicja|[Uzupelnij]|| Kategoria <math>\mathbf{C}</math> składa
<math>\mathbf{C}</math> składa się z dwóch operacji unarnych i jednej
się z dwóch operacji unarnych i jednej częściowej operacji binarnej.
częściowej operacji binarnej. Zmienne, na które działają te operacje
Zmienne, na które działają te operacje nazywamy '''morfizmami'''
nazywamy '''morfizmami''' ('''strzałkami'''). Wartości tych operacji
('''strzałkami'''). Wartości tych operacji są zapisywane i czytane
są zapisywane i czytane jako:
jako:


{Tu wstawić brakujący rysunek o numerze 1.8}
{Tu wstawić brakujący rysunek o numerze 1.8}
Linia 242: Linia 242:
światła na strukturę algebraiczną, którą przed chwilą opisaliśmy.
światła na strukturę algebraiczną, którą przed chwilą opisaliśmy.


{{ lemat|[Uzupelnij]||{{kotwica|mod1:lemma:freyd1|}} Dla
{{ lemat|[Uzupelnij]||  Dla morfizmu <math>e</math> następujące warunki
morfizmu <math>e</math> następujące warunki są równoważne:
są równoważne: istnieje <math>x</math> taki, że <math>e=\Box x</math>;
istnieje <math>x</math> taki, że <math>e=\Box x</math>; istnieje
istnieje <math>y</math> taki, że <math>e=y\Box</math>; <math>e=\Box
<math>y</math> taki, że <math>e=y\Box</math>; <math>e=\Box e</math>;
e</math>; <math>e=e\Box</math>; dla każdego <math>x</math>,
<math>e=e\Box</math>; dla każdego <math>x</math>, <math>ex\approx
<math>ex\approx x</math> (co oznacza, że jeśli złożenie
x</math> (co oznacza, że jeśli złożenie <math>ex</math> jest
<math>ex</math> jest zdefiniowane, to jest równe <math>x</math>),
zdefiniowane, to jest równe <math>x</math>), dla każdego <math>x</math>,
dla każdego <math>x</math>, <math>xe\approx x</math>.
<math>xe\approx x</math>.


{Dowód} (1)<math>\to</math>(2) Dla <math>y=\Box x</math> mamy <math>y\Box
{Dowód} (1)<math>\to</math>(2) Dla <math>y=\Box x</math> mamy <math>y\Box
Linia 457: Linia 456:
strzałek (czyli w języku teorii kategorii).
strzałek (czyli w języku teorii kategorii).


{{ definicja|[Uzupelnij]||{{kotwica|mod1:def:iso|}} Niech
{{ definicja|[Uzupelnij]||  Niech <math>\mathbf{C}</math> będzie dowolną
<math>\mathbf{C}</math> będzie dowolną kategorią. Morfizm <math>
kategorią. Morfizm <math> f\colon A\to B</math> jest '''izomorfizmem'''
f\colon A\to B</math> jest '''izomorfizmem''' jeśli istnieje morfizm
jeśli istnieje morfizm <math> g\colon B\to A</math> taki, że <math>
<math> g\colon B\to A</math> taki, że <math> f\circ g = 1_B </math>
f\circ g = 1_B </math> oraz <math> g\circ f = 1_A</math>. Morfizm <math>
oraz <math> g\circ f = 1_A</math>. Morfizm <math> g</math> nazywa się
g</math> nazywa się '''morfizmem odwrotnym do <math> f</math>''' . Jeśli
'''morfizmem odwrotnym do <math> f</math>''' . Jeśli dla obiektów <math>
dla obiektów <math> A,B</math> kategorii <math> \mathbf{C}</math>
A,B</math> kategorii <math> \mathbf{C}</math> istnieje izomorfizm <math>
istnieje izomorfizm <math> f\colon A\to B</math>, to obiekty <math>
f\colon A\to B</math>, to obiekty <math> A</math> i <math> B</math>
A</math> i <math> B</math> nazywamy izomorficznymi, co zapisujemy jako
nazywamy izomorficznymi, co zapisujemy jako <math>A\cong B</math>.  }}
<math>A\cong B</math>.  }}


Ponieważ dowolny morfizm <math> f</math> posiada dokładnie jeden
Ponieważ dowolny morfizm <math> f</math> posiada dokładnie jeden
Linia 492: Linia 491:
\mathbf{Set}</math> nie jest taką jedyną. W związku z tym definiujemy:
\mathbf{Set}</math> nie jest taką jedyną. W związku z tym definiujemy:


{{ definicja|[Uzupelnij]||{{kotwica|mod1:def:size|}} Kategorię
{{ definicja|[Uzupelnij]||  Kategorię <math>\mathbf{C}</math>
<math>\mathbf{C}</math> nazywamy '''małą''', jeśli kolekcja wszystkich
nazywamy '''małą''', jeśli kolekcja wszystkich obiektów <math>
obiektów <math> \mathbf{C}_0 </math> i morfizmów <math> \mathbf{C}_1
\mathbf{C}_0 </math> i morfizmów <math> \mathbf{C}_1 </math>
</math> kategorii <math>\mathbf{C}</math> są zbiorami. W przeciwnym
kategorii <math>\mathbf{C}</math> są zbiorami. W przeciwnym wypadku
wypadku <math>\mathbf{C}</math> jest '''duża'''.  }}
<math>\mathbf{C}</math> jest '''duża'''.  }}


A zatem <math> \mathbf{Pos}</math>, <math> \mathbf{Grp}</math>,
A zatem <math> \mathbf{Pos}</math>, <math> \mathbf{Grp}</math>,
Linia 504: Linia 503:
następującą cechę:
następującą cechę:


{{ definicja|[Uzupelnij]||{{kotwica|mod1:def:localsize|}} Kategorię
{{ definicja|[Uzupelnij]|| Kategorię <math> \mathbf{C} </math> nazywamy
<math> \mathbf{C} </math> nazywamy '''lokalnie małą''' jeśli dla
'''lokalnie małą''' jeśli dla każdej pary obiektów <math> A,B</math>
każdej pary obiektów <math> A,B</math> z <math> \mathbf{C} </math>
z <math> \mathbf{C} </math> kolekcja <math> \mathrm{Hom}_{\mathbf{C}}(A,B)
kolekcja <math> \mathrm{Hom}_{\mathbf{C}}(A,B) = \{ f\in \mathbf{C}_1\mid
= \{ f\in \mathbf{C}_1\mid f\colon A\to B \} </math> jest zbiorem (o
f\colon A\to B \} </math> jest zbiorem (o takim zbiorze mówimy w
takim zbiorze mówimy w skrócie '''homset''', podobnie jak o zbiorze
skrócie '''homset''', podobnie jak o zbiorze częściowo uporządkowanym
częściowo uporządkowanym przyjęło się mówić: poset).  }}
przyjęło się mówić: poset).  }}


Większa część teorii kategorii, którą zaprezentujemy
Większa część teorii kategorii, którą zaprezentujemy
Linia 527: Linia 525:
===Ćwiczenia do Modułu 1===
===Ćwiczenia do Modułu 1===


{{ cwiczenie|| {{kotwica|mod1:zad1|}} Udowodnij, że dla dwóch funkcji
{{ cwiczenie|| Udowodnij, że dla dwóch funkcji <math>f\colon A\to
<math>f\colon A\to B</math> oraz <math>g\colon B\to A</math> jeśli
B</math> oraz <math>g\colon B\to A</math> jeśli <math>f\circ g =
<math>f\circ g = 1_B</math> oraz <math>g\circ f = 1_A</math>, to funkcja
1_B</math> oraz <math>g\circ f = 1_A</math>, to funkcja <math>f</math>
<math>f</math> jest bijekcją.
jest bijekcją.


[Rozwiązanie:] Pokażemy najpierw, że <math>f</math> jest funkcją
[Rozwiązanie:] Pokażemy najpierw, że <math>f</math> jest funkcją
Linia 542: Linia 540:
różnowartościową surjekcją, czyli bijekcją.  }}
różnowartościową surjekcją, czyli bijekcją.  }}


{{ cwiczenie|| {{kotwica|mod1:zad2|}} Udowodnij Fakt
{{ cwiczenie|| Udowodnij Fakt [[#mod1:fact:naturalne|Uzupelnic
[[#mod1:fact:naturalne|Uzupelnic mod1:fact:naturalne|]].
mod1:fact:naturalne|]].


[Wskazówka:] Fakt, że liczby naturalne posiadają wspomnianą w Fakcie
[Wskazówka:] Fakt, że liczby naturalne posiadają wspomnianą w Fakcie
Linia 687: Linia 685:
}}
}}


{{ cwiczenie|| {{kotwica|mod1:zad3|}} Znajdź przykład na to, że
{{ cwiczenie|| Znajdź przykład na to, że w kategorii
w kategorii <math>\mathrm\bf{Pos}</math> bijekcje nie zawsze są
<math>\mathrm\bf{Pos}</math> bijekcje nie zawsze są izomorfizmami.
izomorfizmami.


[Wskazówka:] Wystarczy rozważyć częściowe porządki dwuelementowe.
[Wskazówka:] Wystarczy rozważyć częściowe porządki dwuelementowe.
Linia 704: Linia 701:
być izomorfizmem.  }}
być izomorfizmem.  }}


{{ cwiczenie|| {{kotwica|mod1:zad4|}} Pokaż, że każda grupa może być
{{ cwiczenie|| Pokaż, że każda grupa może być traktowana jako
traktowana jako kategoria, w której każdy morfizm jest izomorfizmem.
kategoria, w której każdy morfizm jest izomorfizmem.


[Rozwiązanie:] Niech <math>(G,\circ, e)</math> będzie grupą. Podobnie
[Rozwiązanie:] Niech <math>(G,\circ, e)</math> będzie grupą. Podobnie
Linia 718: Linia 715:
<math>g</math> izomorfizmem.  }}
<math>g</math> izomorfizmem.  }}


{{ cwiczenie|| {{kotwica|mod1:zad5|}} Dla dowolnej kategorii
{{ cwiczenie|| Dla dowolnej kategorii <math>\mathbf{C}</math> zaproponuj
<math>\mathbf{C}</math> zaproponuj konstrukcję nowej kategorii, w
konstrukcję nowej kategorii, w której -- żądamy -- obiektami są
której -- żądamy -- obiektami są morfizmy z <math>\mathbf{C}</math>.
morfizmy z <math>\mathbf{C}</math>.


[Wskazówka:] Niech <math>\mathbf{C}</math> będzie dowolną kategorią;
[Wskazówka:] Niech <math>\mathbf{C}</math> będzie dowolną kategorią;
Linia 753: Linia 750:
są trywialne.  }}
są trywialne.  }}


{{ cwiczenie|| {{kotwica|mod1:zad6|}} Niech <math>\mathbf{C}</math>
{{ cwiczenie|| Niech <math>\mathbf{C}</math> będzie kategorią,
będzie kategorią, zaś <math>A\in \CC_0</math> jej ustalonym
zaś <math>A\in \CC_0</math> jej ustalonym obiektem. Zaproponuj
obiektem. Zaproponuj konstrukcję nowej kategorii, której obiektami
konstrukcję nowej kategorii, której obiektami są wszystkie morfizmy
są wszystkie morfizmy z <math>\mathbf{C}</math> o kodziedzinie
z <math>\mathbf{C}</math> o kodziedzinie <math>A</math>.
<math>A</math>.


[Wskazówka:] Wykorzystaj Zadanie [[#mod1:zad5|Uzupelnic mod1:zad5|]].
[Wskazówka:] Wykorzystaj Zadanie [[#mod1:zad5|Uzupelnic mod1:zad5|]].
Linia 778: Linia 774:
kategorią jest już trywialne.  }}
kategorią jest już trywialne.  }}


{{ cwiczenie|| {{kotwica|mod1:zad7|}} Udowodnij, że złożenie
{{ cwiczenie|| Udowodnij, że złożenie izomorfizmów jest izomorfizmem,
izomorfizmów jest izomorfizmem, że morfizm odwrotny do izomorfizmu
że morfizm odwrotny do izomorfizmu jest tylko jeden, a także, że
jest tylko jeden, a także, że identyczności w dowolnej kategorii
identyczności w dowolnej kategorii są izomorfizmami.
są izomorfizmami.


[Rozwiązanie:] Pokażmy najpierw, że złożenie izomorfizmów
[Rozwiązanie:] Pokażmy najpierw, że złożenie izomorfizmów
Linia 823: Linia 818:
co świadczy o tym, że jest izomorfizmem.  }}
co świadczy o tym, że jest izomorfizmem.  }}


{{ cwiczenie|| {{kotwica|mod1:zad8|}} Znajdź kategorię, która ma tę
{{ cwiczenie|| Znajdź kategorię, która ma tę własność, że jeśli
własność, że jeśli dwa obiekty są izomorficzne, to muszą być
dwa obiekty są izomorficzne, to muszą być sobie równe.
sobie równe.


[Wskazówka:] Można wziąć pod uwagę te szczególne kategorie,
[Wskazówka:] Można wziąć pod uwagę te szczególne kategorie,
Linia 840: Linia 834:
porządkującej daje nam <math>p=q</math>, co należało pokazać.  }}
porządkującej daje nam <math>p=q</math>, co należało pokazać.  }}


{{ cwiczenie|| {{kotwica|mod1:zad9|}} Pokaż, że w kategorii
{{ cwiczenie|| Pokaż, że w kategorii <math>\mathrm\bf{Mon}</math>
<math>\mathrm\bf{Mon}</math> izomorfizmy to dokładnie bijektywne
izomorfizmy to dokładnie bijektywne homomorfizmy monoidów.
homomorfizmy monoidów.


[Wskazówka:] Jedna z implikacji jest bardzo łatwa: jeśli <math>f</math>
[Wskazówka:] Jedna z implikacji jest bardzo łatwa: jeśli <math>f</math>
Linia 864: Linia 857:
pokazać.  }}
pokazać.  }}


{{ cwiczenie|| {{kotwica|mod1:zad10|}} Przekonaj się, że
{{ cwiczenie|| Przekonaj się, że kategorie i funktory tworzą
kategorie i funktory tworzą kategorię, którą oznaczamy
kategorię, którą oznaczamy <math>\mathrm\bf{Cat}</math>.  [Wskazówka:]
<math>\mathrm\bf{Cat}</math>.  [Wskazówka:] Przeczytaj najpierw
Przeczytaj najpierw Definicję [[#mod5:def:funktor|Uzupelnic
Definicję [[#mod5:def:funktor|Uzupelnic mod5:def:funktor|]], w której
mod5:def:funktor|]], w której mówimy czym są funktory.
mówimy czym są funktory. [Rozwiązanie:] Najpierw definiujemy
[Rozwiązanie:] Najpierw definiujemy identyczności: dla dowolnej
identyczności: dla dowolnej kategorii <math>\mathbf{C}</math>
kategorii <math>\mathbf{C}</math> proponujemy przekształcenie
proponujemy przekształcenie <math>1_{\mathbf{C}}</math> jako
<math>1_{\mathbf{C}}</math> jako <math>1_{\mathbf{C}}(A) := A</math>
<math>1_{\mathbf{C}}(A) := A</math> <math>1_{\mathbf{C}}(f\colon
<math>1_{\mathbf{C}}(f\colon A\to B) := f</math> dla dowolnych <math>A\in
A\to B) := f</math> dla dowolnych <math>A\in \CC_0, f\in \CC_1</math>.
\CC_0, f\in \CC_1</math>. Wtedy oczywiście <math>1_{\mathbf{C}}</math>
Wtedy oczywiście <math>1_{\mathbf{C}}</math> jest funktorem.  Złożenie
jest funktorem.  Złożenie funktorów definiujemy w sposób naturalny,
funktorów definiujemy w sposób naturalny, tak jak złożenie funkcji
tak jak złożenie funkcji w <math>\mathrm\bf{Set}</math>.  Niech
w <math>\mathrm\bf{Set}</math>.  Niech <math>F\colon \mathbf{C}\to
<math>F\colon \mathbf{C}\to \mathbf{D}</math>, <math>G\colon \mathbf{D}\to
\mathbf{D}</math>, <math>G\colon \mathbf{D}\to \mathbf{A}</math>,
\mathbf{A}</math>, <math>H\colon \mathbf{A}\to\mathbf{B}</math> będą
<math>H\colon \mathbf{A}\to\mathbf{B}</math> będą funktorami.
funktorami. <math>(1_{\mathbf{D}}\circ F)(A) = 1_{\mathbf{D}}(F(A))=F(A)=
<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
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
\CC_0</math> i taki sam dowód działa dla morfizmów.  Wnioskujemy
Linia 889: Linia 881:
jest łączne.  }}
jest łączne.  }}


{{ cwiczenie|| {{kotwica|mod1:zad11|}} Podaj dwa dalsze przykłady
{{ cwiczenie|| Podaj dwa dalsze przykłady kategorii.  [Wskazówka:]
kategorii.  [Wskazówka:] Najprościej zdefiniować nowe kategorie poprzez
Najprościej zdefiniować nowe kategorie poprzez modyfikację
modyfikację istniejących przykładów (np. kategorię tworzą zbiory i
istniejących przykładów (np. kategorię tworzą zbiory i funkcje
funkcje częściowe). Nasz drugi przykład jest tego typu: jako język
częściowe). Nasz drugi przykład jest tego typu: jako język funkcyjny
funkcyjny bierzemy <math>\lambda</math>-rachunek i tworzymy dla niego
bierzemy <math>\lambda</math>-rachunek i tworzymy dla niego kategorię,
kategorię, tak jak opisaliśmy to w jednym z ostatnich przykładów
tak jak opisaliśmy to w jednym z ostatnich przykładów podanych
podanych podczas wykładu.
podczas wykładu.


[Rozwiązanie:]
[Rozwiązanie:]

Wersja z 05:28, 22 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 f:AB 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 zB xA f(x)=z.

Zauważmy, że drugi warunek pozwala nam każdemu elementowi z zbioru B przyporządkować element x zbioru A, zaś warunek pierwszy mówi, że to przekształcenie (nazwijmy je g) jest funkcją (śmiało napiszmy więc g:BA). W tym świetle z warunku drugiego wynika, że złożenie fg jest funkcją identycznościową na zbiorze B, a stąd wynika fgf=f, co w połączeniu z pierwszym warunkiem oznacza, że gf jest identycznością na zbiorze A. Idąc dalej tym tropem (patrz Zadanie Uzupelnic mod1:zad1|) jesteśmy w stanie bez trudu pokazać, że:

Fakt [Uzupelnij]

Funkcja f:AB jest bijekcją

wtedy i tylko wtedy, gdy istnieje funkcja g:BA taka, że fg=1B oraz gf=1A.

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 Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathrm\bf{nat}} . Teoria mnogości definiuje Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathrm\bf{nat}} jako najmniejszy zbiór zawierający liczbę zero 0 i spełniający: Parser nie mógł rozpoznać (błąd składni): {\displaystyle n\in \mathrm\bf{nat} \Rightarrow \mathrm{succ}(n)\in \mathrm\bf{nat}} , gdzie Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathrm{succ}\colon \mathrm\bf{nat}\to \mathrm\bf{nat}} jest funkcją następnika (która jest injektywna i posiada tę właściwość, że succ(n)0 dla dowolnego Parser nie mógł rozpoznać (błąd składni): {\displaystyle n\in \mathrm\bf{nat}} ). 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 [Uzupelnij]

Zbiór liczb naturalnych

Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathrm\bf{nat}} jest to zbiór zawierający liczbę zero oraz wyposażony w funkcję Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathrm{succ}\colon \mathrm\bf{nat}\to \mathrm\bf{nat}} taką, że: dla dowolnego zbioru X i elementu eX oraz funkcji g:XX

istnieje dokładnie jedna funkcja Parser nie mógł rozpoznać (błąd składni): {\displaystyle f\colon \mathrm\bf{nat}\to X} spełniająca dwa warunki: f(0)=e oraz fsucc=gf.

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 f działa na pewien jedyny obiekt, nazwijmy go dziedziną f i oznaczmy Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathrm\it{dom}(f)} , i przekształca go w inny jedyny obiekt nazywany przeciwdziedziną f i oznaczany jako Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathrm\it{cod}(f)} . Fakt, że morfizm f ma dziedzinę A i przeciwdziedzinę B zapisujemy

{Tu wstawić brakujący rysunek o numerze 1.1}

lub po prostu f:AB. Nasza teoria nie może istnieć bez pojęcia złożenia przekształceń: zakładamy, że dwóm morfizmom f,g takim, że cod(g)=dom(f) (strzałki takie nazywamy składalnymi) przypisujemy morfizm fg zwany złożeniem, dla którego mamy dom(fg)=dom(g) i cod(fg)=cod(f). Przykłady wskazują na to, że kolejność złożenia składalnych przekształceń nie powinna grać roli, czyli dla:

{Tu wstawić brakujący rysunek o numerze 1.2}

morfizm:

{Tu wstawić brakujący rysunek o numerze 1.3}

może powstać albo z:

{Tu wstawić brakujący rysunek o numerze 1.4}

albo, równoważnie, z:

{Tu wstawić brakujący rysunek o numerze 1.5}

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:

{Tu wstawić brakujący rysunek o numerze 1.6}

To kończy nieformalny opis języka, w którym główną rolę grają przekształcenia. Zapiszmy to teraz formalnie.

Definicja kategorii

Definicja [Uzupelnij]

Kategoria 𝐂 składa

się z następujących danych:

  • (D1): obiektów: A,B,C,...,
  • (D2): morfizmów: f,g,h,...,
  • (D3): dwóch operacji dom,cod

przypisującej każdemu morfizmowi f obiekty dom(f)i cod(f),

  • (D4): operacji 1 przypisującej każdemu obiektowi

A morfizm 1A nazywany identycznością,

  • (D5): operacji przypisującej każdej parze

morfizmów f,g takich, że cod(g)=dom(f) morfizm fg nazywany złożeniem,

spełniających następujące aksjomaty:

  • (A1): dom(1A)=A=cod(1A);

dom(fg)=dom(g); cod(fg)=cod(f),

  • (A2): f1A=f=1Bf, gdzie

A=dom(f) oraz B=cod(f),

  • (A3): jeśli f,g są składalne oraz g,h

są składalne, to (fg)h=f(gh).

Kolekcję obiektów kategorii 𝐂 będziemy w dalszym ciągu oznaczać jako 𝐂0, zaś kolekcję jej morfizmów jako 𝐂1.

{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 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 [Uzupelnij]

Grafem skierowanym nazywamy kolekcję obiektów

(wierzchołków) O, kolekcję strzałek (krawędzi) A i dwie funkcje

{Tu wstawić brakujący rysunek o numerze 1.7}

W grafie, kolekcja składalnych par strzałek to zbiór A×OA={(g,f)g,fAdom(g)=cod(f)} nazywany produktem nad O. O kategorii można myśleć jako o grafie skierowanym 𝐂, który posiada dwie dodatkowe funkcje 1:OA, C1C oraz :A×OAA, (g,f)gf 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 [Uzupelnij]

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:

{Tu wstawić brakujący rysunek o numerze 1.8}

Operacje podlegają następującym aksjomatom:

  • (b1): xy jest zdefiniowane wtw, gdy x=y,
  • (b2): (x)=x oraz (x)=x,
  • (b3): (x)x=x oraz x(x)=x,
  • (b4): (xy)=(x(y)) oraz (xy)=((x)y)
  • (b5): x(yz)=(xy)z.

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 [Uzupelnij]

Dla morfizmu e następujące warunki

są równoważne: istnieje x taki, że e=x; istnieje y taki, że e=y; e=e; e=e; dla każdego x, exx (co oznacza, że jeśli złożenie ex jest zdefiniowane, to jest równe x), dla każdego x, xex.

{Dowód} (1)(2) Dla y=x mamy y=(x)=x=e. (2)(3) e=(y)=y=e. (3)(4) e=(e))=e=e. (4)(5) Załóżmy, że ex jest zdefiniowane dla każdego x; to oznacza, że e=x, czyli z (4), e=x dla każdego x. A zatem ex=(x)x=x. (3)(1) Oczywiste. (4)(3) e=(e)=e=e. (5)(4) Połóżmy x=e. Mamy x=(e)=e, czyli ex istnieje. Z (5) wynika, że e(e)=e. Ale (b3) implikuje, że e(e)=e, czyli e=e. Dowód

równoważności (6) z (3) jest podobny do równoważności (5) z (4).

Morfizm e 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ść 1x to zmienna x taka, że x=x=x. Dziedziną x jest x, przeciwdziedziną x. Złożenie xy to yx. 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 x, zarówno x, jak i x są obiektami (identycznościami), bo (x)=x, (x)=x, (x)=((x))=(x)=x, (x)=x.

Sprawdźmy aksjomaty: dom(1x)=x=x=x=cod(1x). Aby pokazać, że f jest morfizmem, załóżmy, że x=dom(f)(czyli 1x=f) oraz y=cod(f) (czyli 1y=f)). Wówczas f1x=1xf=(f)f=f, 1yf=f1y=f(f)=f.

Załóżmy teraz, że dom(f)=cod(g). Wówczas dom(fg)=(gf)=(gf)=dom(1dom(f)g)=dom(1cod(g)g)=dom(g). Ostatnia równość wynika z poprzedniego paragrafu. Podobnie, cod(fg)=(gf)=((g)f)=cod(f1cod(g))=cod(f1dom(f))=cod(f).

W końcu, f(gh)=(hg)f=h(gf)=(fg)h 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

((x,y)f  (x,y)f)  y=y.

Aby traktować funkcje jako morfizmy musimy precyzyjnie znać dom(f) i cod(f). Na przykład funkcje sin:[1,1] oraz sin:,, 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 (X,f,Y) taka, że fX×Y spełnia powyższe równanie (Uzupelnic eq:funkcja|) wraz z poniższym:

xX(yY (x,y)f).

Wtedy dom jest projekcją na pierwszą współrzędną (X,f,Y)X, a cod projekcją na trzecią współrzędną.

  • Kategoria zbiorów skończonych i funkcji 𝐒𝐞𝐭fin, 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 Parser nie mógł rozpoznać (błąd składni): {\displaystyle \mathrm\bf{nat}} i wszystkie funkcje

obliczalne

  • Mając dowolny częściowy porządek (poset) (P,)

definiujemy kategorię o tej samej nazwie P jak następuje: jako obiekty bierzemy elementy P, zaś dla dwóch obiektów x,yP przyjmujemy, że istnieje morfizm z x do y wtedy i tylko wtedy, gdy xy. Zauważmy, że wystarczy tu, by P był preporządkiem, tzn. aby relacja była zaledwie zwrotna i przechodnia.

  • 𝐑𝐞𝐥: Obiektami tej kategorii są zbiory, zaś

morfizmami relacje binarne, tzn. f:AB wtedy i tylko wtedy, gdy fA×B. Wówczas rolę identyczności spełniają relacje identycznościowe: 1A={(a,a)aA}, zaś złożeniem morfizmów jest po prostu złożenie relacji znane z kursu teorii mnogości: mając dane RA×B oraz SB×C przyjmujemy: Parser nie mógł rozpoznać (błąd składni): {\displaystyle (a,c)\in S\circ R \Leftrightarrow \exists b\in B\ ((a,b)\in R\wedge (b,c)\in S)}

  • Kategorie 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ść.

{Tu wstawić brakujący rysunek o numerze 1.9}

  • 𝟎: 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).

{Tu wstawić brakujący rysunek o numerze 1.10}

  • 𝟑: 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!)

{Tu wstawić brakujący rysunek o numerze 1.11}

  • 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).

  • Kategorie 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.

{Tu wstawić brakujący rysunek o numerze 1.12}

  • Niech (M,*,e) będzie monoidem (e jest

jego jedynką). Wówczas biorąc M jako jedyny obiekt, zaś elementy M jako morfizmy (z dziedziną i kodziedziną M), 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...)

{Tu wstawić brakujący rysunek o numerze 1.13}

  • 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ść 1ϕ to dowód pusty, bowiem z aksjomatów logicznych zawsze wynika ϕϕ.

  • Dla danego typowanego języka funkcyjnego L tworzymy

kategorię w ten sposób, że obiektami są typy danych, zaś strzałkami są programy (procedury) języka L. Złożenie dwóch programów XfYgZ jest program dany poprzez zaaplikowanie wyjścia programu f na wejściu programu g. 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 [Uzupelnij]

Niech 𝐂 będzie dowolną

kategorią. Morfizm f:AB jest izomorfizmem jeśli istnieje morfizm g:BA taki, że fg=1B oraz gf=1A. Morfizm g nazywa się morfizmem odwrotnym do f . Jeśli dla obiektów A,B kategorii 𝐂 istnieje izomorfizm f:AB, to obiekty A i B nazywamy izomorficznymi, co zapisujemy jako

AB.

Ponieważ dowolny morfizm f posiada dokładnie jeden morfizm odwrotny (dowód?), będziemy go oznaczać jako f1. 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 [Uzupelnij]

Kategorię 𝐂

nazywamy małą, jeśli kolekcja wszystkich obiektów 𝐂0 i morfizmów 𝐂1 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 [Uzupelnij]

Kategorię 𝐂 nazywamy

lokalnie małą jeśli dla każdej pary obiektów A,B z 𝐂 kolekcja Hom𝐂(A,B)={f𝐂1f:AB} 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

Ćwiczenie

{{{3}}}

Ćwiczenie

{{{3}}}

Ćwiczenie

{{{3}}}

Ćwiczenie

{{{3}}}

Ćwiczenie

{{{3}}}

Ćwiczenie

{{{3}}}

Ćwiczenie

{{{3}}}

Ćwiczenie

{{{3}}}

Ćwiczenie

{{{3}}}

Ćwiczenie

{{{3}}}

Ćwiczenie

{{{3}}}