Teoria kategorii dla informatyków: Różnice pomiędzy wersjami
Nie podano opisu zmian |
m →Autor |
||
(Nie pokazano 50 wersji utworzonych przez 5 użytkowników) | |||
Linia 2: | Linia 2: | ||
Wykład (30 godzin) + ćwiczenia (30 godzin) | Wykład (30 godzin) + ćwiczenia (30 godzin) | ||
== | == Opis == | ||
Stefan Banach powiedział kiedyś, że dobry matematyk to taki, który potrafi znaleźć analogie pomiędzy twierdzeniami, zaś wybitny matematyk to ten, który widzi analogie pomiędzy analogiami. Teoria kategorii jest nauką o analogiach między teoriami matematycznymi. Daje ona jednolity obraz różnorodnych (tzw. uniwersalnych) konstrukcji, które pod wieloma postaciami i nazwami pojawiają się w różnorodnych gałęziach matematyki. | |||
Teoria kategorii wyrosła z prac Samuela Eilenberga i Saundersa MacLane'a w topologii algebraicznej i algebrze homologicznej prowadzonych w latach 40. ubiegłego stulecia. Od tamtego czasu zarówno język, jak i metody teorii kategorii spowodowały ujednolicenie i uproszczenie wielu pojęć algebry, topologii, geometrii algebraicznej, analizy funkcjonalnej, a także, ostatnimi czasy, logiki matematycznej i informatyki teoretycznej. | |||
Wykład ma za cel uświadomienie słuchaczom jedności wielu dyscyplin matematycznych, które są często prezentowane jako oddzielne, niezwiązane ze sobą przedmioty. Zbadamy zastosowania teorii kategorii w informatyce. Omawiamy przykłady konstrukcji uniwersalnych z różnorodnych gałęzi matematyki i informatyki: analizy, algebry, logiki, topologii, teorii dziedzin i semantyki języków programowania, lambda rachunku, teorii obliczalności. Student, który ukończy kurs z oceną pozytywną powinien sprawnie posługiwać się podstawowym aparatem pojęciowym teorii kategorii, który jest często oficjalnym językiem wielu prac naukowych w informatyce teoretycznej. | |||
== Sylabus == | |||
=== Autor === | |||
*Paweł Waszkiewicz - Uniwersytet Jagielloński, Wydział Matematyki i Informatyki, Zakład Podstaw Informatyki. | |||
== | === Wymagania wstępne === | ||
*Logika i teoria mnogości | |||
=== | === Zawartość === | ||
Część pierwsza wykładu obejmuje tematy fundamentalne: kategorie, funktory, transformacje naturalne, równoważność kategorii, zasadę dualności, granice i kogranice, lemat Yonedy i funktory reprezentowalne, sprzężenia i monady. Część druga skupia się na zastosowaniach teorii kategorii w informatyce, wybierając spośród tematów dotyczących: kategorii kartezjańsko zamkniętych i lambda rachunku, koalgebr, koindukcji i bisymulacji, teorii dziedzin i rozwiązywania równań na dziedzinach. Ćwiczenia, ilustrujące wykład, budują zestaw sztandarowych przykładów konkretnych kategorii, funktorów i ich własności. | Część pierwsza wykładu obejmuje tematy fundamentalne: kategorie, funktory, transformacje naturalne, równoważność kategorii, zasadę dualności, granice i kogranice, lemat Yonedy i funktory reprezentowalne, sprzężenia i monady. Część druga skupia się na zastosowaniach teorii kategorii w informatyce, wybierając spośród tematów dotyczących: kategorii kartezjańsko zamkniętych i lambda rachunku, koalgebr, koindukcji i bisymulacji, teorii dziedzin i rozwiązywania równań na dziedzinach. Ćwiczenia, ilustrujące wykład, budują zestaw sztandarowych przykładów konkretnych kategorii, funktorów i ich własności. | ||
Linia 28: | Linia 27: | ||
* '''Morfizmy specjalne''' | * '''Morfizmy specjalne''' | ||
** | ** monomorfizmy i epimorfizmy | ||
** sekcje i retrakcje | ** sekcje i retrakcje | ||
** uogólnione elementy | ** uogólnione elementy | ||
* '''Zasada dualności i proste konstrukcje uniwersalne''' | * '''Zasada dualności i proste konstrukcje uniwersalne''' | ||
** produkty i koprodukty | ** produkty i koprodukty | ||
** | ** pulbaki i pushouty | ||
** ekwalizatory i koekwalizatory | ** ekwalizatory i koekwalizatory | ||
** obiekt końcowy i początkowy | ** obiekt końcowy i początkowy | ||
** | ** własności pulbaków | ||
* '''Zaawansowane konstrukcje uniwersalne''' | * '''Zaawansowane konstrukcje uniwersalne''' | ||
** eksponent | ** eksponent | ||
** kategorie kartezjańsko zamknięte; algebry Heytinga | ** kategorie kartezjańsko zamknięte; algebry Heytinga | ||
* '''Funktory i transformacje naturalne''' | * '''Funktory i transformacje naturalne''' | ||
** pojecie funktora, przykłady | ** pojecie funktora, przykłady | ||
** | ** funktory zapominania | ||
** funktory pełne i wierne | ** funktory pełne i wierne | ||
** transformacje naturalne; naturalne izomorfizmy | ** transformacje naturalne; naturalne izomorfizmy | ||
Linia 54: | Linia 52: | ||
* '''Lemat Yonedy i funktory reprezentowalne''' | * '''Lemat Yonedy i funktory reprezentowalne''' | ||
** | ** Lemat Yonedy, funktor Yonedy | ||
** | ** funktory reprezentowalne | ||
* '''Diagramy, granice i kogranice''' | * '''Diagramy, granice i kogranice''' | ||
** konstrukcje uniwersalne jako granice | ** konstrukcje uniwersalne jako granice | ||
** zachowywanie granic przez funktory; funktory ciągłe | ** zachowywanie granic przez funktory; funktory ciągłe | ||
** | ** granice w kategoriach funktorow | ||
** kategorie zupełne i kozupełne | ** kategorie zupełne i kozupełne | ||
Linia 70: | Linia 67: | ||
* '''Sprzężenia II''' | * '''Sprzężenia II''' | ||
** sprzężenia a równoważność kategorii | |||
** sprzężenia między posetami | ** sprzężenia między posetami | ||
** kwantyfikatory jako sprzężenia | ** kwantyfikatory jako sprzężenia | ||
** twierdzenie Freyda | ** twierdzenie Freyda o istnieniu sprzężeń | ||
* '''Monady''' | * '''Monady''' | ||
** monady a sprzężenia | ** monady a sprzężenia | ||
** algebry dla monad | ** algebry dla monad | ||
** | ** monady w Haskellu | ||
* '''Teoria dziedzin I''' | * '''Teoria dziedzin I''' | ||
** ciągłość, zupełność i aproksymacja | ** ciągłość, zupełność i aproksymacja | ||
** topologia Scotta | ** topologia Scotta | ||
* '''Teoria dziedzin II''' | * '''Teoria dziedzin II''' | ||
** dziedziny Scotta jako modele języków funkcyjnych | ** dziedziny Scotta jako modele języków funkcyjnych | ||
** | ** kartezjańsko zamknięte kategorie dziedzin | ||
* ''' | * '''Teoria dziedzin III''' | ||
** | ** rekursywne równania na dziedzinach typu <math>D\cong [D,D]</math> | ||
* '''Algebry i koalgebry endofunktorów''' | * '''Algebry i koalgebry endofunktorów''' | ||
** indukcja | ** algebry i indukcja | ||
** | ** koalgebry i koindukcja, bisymulacja | ||
** | ** dowody koindukcyjne własności list | ||
== Literatura == | === Literatura === | ||
#A. Asperti, G.Longo, ''Categories, Types and Structures. An introduction to Category Theory for the working Computer Scientist'', MIT Press, 1991. | #A. Asperti, G.Longo, ''Categories, Types and Structures. An introduction to Category Theory for the working Computer Scientist'', MIT Press, 1991. | ||
Linia 107: | Linia 102: | ||
== Moduły == | == Moduły == | ||
# [[Teoria kategorii dla informatyków/Wykład 1: Teoria kategorii jako abstrakcyjna teoria funkcji|Teoria kategorii jako abstrakcyjna teoria funkcji]] ([[Teoria kategorii dla informatyków/Ćwiczenia 1: Teoria kategorii jako abstrakcyjna teoria funkcji|ćwiczenia]]) ([[Teoria kategorii dla informatyków/Test 1: Teoria kategorii jako abstrakcyjna teoria funkcji|test]]) | |||
# [[Teoria kategorii dla informatyków/Wykład 2: Morfizmy specjalne|Morfizmy specjalne]] ([[Teoria kategorii dla informatyków/Ćwiczenia 2: Morfizmy specjalne|ćwiczenia]]) ([[Teoria kategorii dla informatyków/Test 2: Morfizmy specjalne|test]]) | |||
# [[Teoria kategorii dla informatyków/Wykład 3: Zasada dualności i proste konstrukcje uniwersalne|Zasada dualności i proste konstrukcje uniwersalne]] ([[Teoria kategorii dla informatyków/Ćwiczenia 3: Zasada dualności i proste konstrukcje uniwersalne|ćwiczenia]]) ([[Teoria kategorii dla informatyków/Test 3: Zasada dualności i proste konstrukcje uniwersalne|test]]) | |||
# [[Teoria kategorii dla informatyków/Wykład 4: Zaawansowane konstrukcje uniwersalne|Zaawansowane konstrukcje uniwersalne]] ([[Teoria kategorii dla informatyków/Ćwiczenia 4: Zaawansowane konstrukcje uniwersalne|ćwiczenia]]) ([[Teoria kategorii dla informatyków/Test 4: Zaawansowane konstrukcje uniwersalne|test]]) | |||
# [[Teoria kategorii dla informatyków/Wykład 5: Funktory i transformacje naturalne|Funktory i transformacje naturalne]] ([[Teoria kategorii dla informatyków/Ćwiczenia 5: Funktory i transformacje naturalne|ćwiczenia]]) ([[Teoria kategorii dla informatyków/Test 5: Funktory i transformacje naturalne|test]]) | |||
# [[Teoria_kategorii dla informatyków/Wykład 6: Równoważność kategorii|Równoważność kategorii]] ([[Teoria kategorii dla informatyków/Ćwiczenia 6: Równoważność kategorii|ćwiczenia]]) ([[Teoria kategorii dla informatyków/Test 6: Równoważność kategorii|test]]) | |||
# [[Teoria kategorii dla informatyków/Wykład 7: Lemat Yonedy i funktory reprezentowalne|Lemat Yonedy i funktory reprezentowalne]] ([[Teoria kategorii dla informatyków/Ćwiczenia 7: Lemat Yonedy i funktory reprezentowalne|ćwiczenia]]) ([[Teoria kategorii dla informatyków/Test 7: Lemat Yonedy i funktory reprezentowalne|test]]) | |||
# [[Teoria kategorii dla informatyków/Wykład 8: Diagramy, granice i kogranice|Diagramy, granice i kogranice]] ([[Teoria kategorii dla informatyków/Ćwiczenia 8: Diagramy, granice i kogranice|ćwiczenia]]) ([[Teoria kategorii dla informatyków/Test 8: Diagramy, granice i kogranice|test]]) | |||
# [[Teoria kategorii dla informatyków/Wykład 9: Sprzężenia I|Sprzężenia I]] ([[Teoria kategorii dla informatyków/Ćwiczenia 9: Sprzężenia I|ćwiczenia]]) ([[Teoria kategorii dla informatyków/Test 9: Sprzężenia I|test]]) | |||
# [[Teoria kategorii dla informatyków/Wykład 10: Sprzężenia II|Sprzężenia II]] ([[Teoria kategorii dla informatyków/Ćwiczenia 10: Sprzężenia II|ćwiczenia]]) ([[Teoria kategorii dla informatyków/Test 10: Sprzężenia II|test]]) | |||
# [[Teoria kategorii dla informatyków/Wykład 11: Monady|Monady]] ([[Teoria kategorii dla informatyków/Ćwiczenia 11: Monady|ćwiczenia]]) ([[Teoria kategorii dla informatyków/Test 11: Monady|test]]) | |||
# [[Teoria kategorii dla informatyków/Wykład 12: Teoria dziedzin I|Teoria dziedzin I]] ([[Teoria kategorii dla informatyków/Ćwiczenia 12: Teoria dziedzin I|ćwiczenia]]) ([[Teoria kategorii dla informatyków/Test 12: Teoria dziedzin I|test]]) | |||
# [[Teoria kategorii dla informatyków/Wykład 13: Teoria dziedzin II|Teoria dziedzin II]] ([[Teoria kategorii dla informatyków/Ćwiczenia 13: Teoria dziedzin II|ćwiczenia]]) ([[Teoria kategorii dla informatyków/Test 13: Teoria dziedzin II|test]]) | |||
# [[Teoria kategorii dla informatyków/Wykład 14: Teoria dziedzin III|Teoria dziedzin III]] ([[Teoria kategorii dla informatyków/Ćwiczenia 14: Teoria dziedzin III|ćwiczenia]]) ([[Teoria kategorii dla informatyków/Test 14: Teoria dziedzin III|test]]) | |||
# [[Teoria kategorii dla informatyków/Wykład 15: Algebry i koalgebry endofunktorów|Algebry i koalgebry endofunktorów]] ([[Teoria kategorii dla informatyków/Ćwiczenia 15: Algebry i koalgebry endofunktorów|ćwiczenia]]) ([[Teoria kategorii dla informatyków/Test 15: Algebry i koalgebry endofunktorów|test]]) |
Aktualna wersja na dzień 10:52, 27 lis 2006
Forma zajęć
Wykład (30 godzin) + ćwiczenia (30 godzin)
Opis
Stefan Banach powiedział kiedyś, że dobry matematyk to taki, który potrafi znaleźć analogie pomiędzy twierdzeniami, zaś wybitny matematyk to ten, który widzi analogie pomiędzy analogiami. Teoria kategorii jest nauką o analogiach między teoriami matematycznymi. Daje ona jednolity obraz różnorodnych (tzw. uniwersalnych) konstrukcji, które pod wieloma postaciami i nazwami pojawiają się w różnorodnych gałęziach matematyki.
Teoria kategorii wyrosła z prac Samuela Eilenberga i Saundersa MacLane'a w topologii algebraicznej i algebrze homologicznej prowadzonych w latach 40. ubiegłego stulecia. Od tamtego czasu zarówno język, jak i metody teorii kategorii spowodowały ujednolicenie i uproszczenie wielu pojęć algebry, topologii, geometrii algebraicznej, analizy funkcjonalnej, a także, ostatnimi czasy, logiki matematycznej i informatyki teoretycznej.
Wykład ma za cel uświadomienie słuchaczom jedności wielu dyscyplin matematycznych, które są często prezentowane jako oddzielne, niezwiązane ze sobą przedmioty. Zbadamy zastosowania teorii kategorii w informatyce. Omawiamy przykłady konstrukcji uniwersalnych z różnorodnych gałęzi matematyki i informatyki: analizy, algebry, logiki, topologii, teorii dziedzin i semantyki języków programowania, lambda rachunku, teorii obliczalności. Student, który ukończy kurs z oceną pozytywną powinien sprawnie posługiwać się podstawowym aparatem pojęciowym teorii kategorii, który jest często oficjalnym językiem wielu prac naukowych w informatyce teoretycznej.
Sylabus
Autor
- Paweł Waszkiewicz - Uniwersytet Jagielloński, Wydział Matematyki i Informatyki, Zakład Podstaw Informatyki.
Wymagania wstępne
- Logika i teoria mnogości
Zawartość
Część pierwsza wykładu obejmuje tematy fundamentalne: kategorie, funktory, transformacje naturalne, równoważność kategorii, zasadę dualności, granice i kogranice, lemat Yonedy i funktory reprezentowalne, sprzężenia i monady. Część druga skupia się na zastosowaniach teorii kategorii w informatyce, wybierając spośród tematów dotyczących: kategorii kartezjańsko zamkniętych i lambda rachunku, koalgebr, koindukcji i bisymulacji, teorii dziedzin i rozwiązywania równań na dziedzinach. Ćwiczenia, ilustrujące wykład, budują zestaw sztandarowych przykładów konkretnych kategorii, funktorów i ich własności.
- Teoria kategorii jako abstrakcyjna teoria funkcji
- definicja
- przykłady: k.dyskretne, k.konkretne, Pos, monoidy, grupy jako kategorie, etc.
- izomorfizmy
- podstawy teoriomnogościowe: kategorie małe, duże, lokalnie małe
- Morfizmy specjalne
- monomorfizmy i epimorfizmy
- sekcje i retrakcje
- uogólnione elementy
- Zasada dualności i proste konstrukcje uniwersalne
- produkty i koprodukty
- pulbaki i pushouty
- ekwalizatory i koekwalizatory
- obiekt końcowy i początkowy
- własności pulbaków
- Zaawansowane konstrukcje uniwersalne
- eksponent
- kategorie kartezjańsko zamknięte; algebry Heytinga
- Funktory i transformacje naturalne
- pojecie funktora, przykłady
- funktory zapominania
- funktory pełne i wierne
- transformacje naturalne; naturalne izomorfizmy
- Równoważność kategorii
- dualność Stone'a
- Lemat Yonedy i funktory reprezentowalne
- Lemat Yonedy, funktor Yonedy
- funktory reprezentowalne
- Diagramy, granice i kogranice
- konstrukcje uniwersalne jako granice
- zachowywanie granic przez funktory; funktory ciągłe
- granice w kategoriach funktorow
- kategorie zupełne i kozupełne
- Sprzężenia I
- trzy równoważne opisy zjawiska sprzężenia
- sprzężenia w teoriach matematycznych: przykłady
- sprzężenia jako fundamentalne pojęcie teorii kategorii
- Sprzężenia II
- sprzężenia a równoważność kategorii
- sprzężenia między posetami
- kwantyfikatory jako sprzężenia
- twierdzenie Freyda o istnieniu sprzężeń
- Monady
- monady a sprzężenia
- algebry dla monad
- monady w Haskellu
- Teoria dziedzin I
- ciągłość, zupełność i aproksymacja
- topologia Scotta
- Teoria dziedzin II
- dziedziny Scotta jako modele języków funkcyjnych
- kartezjańsko zamknięte kategorie dziedzin
- Teoria dziedzin III
- rekursywne równania na dziedzinach typu
- Algebry i koalgebry endofunktorów
- algebry i indukcja
- koalgebry i koindukcja, bisymulacja
- dowody koindukcyjne własności list
Literatura
- A. Asperti, G.Longo, Categories, Types and Structures. An introduction to Category Theory for the working Computer Scientist, MIT Press, 1991.
- S. Awodey Category theory. Wykład z uniwersytetu Carnegie Mellon. Dostępny tutaj.
- M. Barr, C. Wells, Category Theory for Computing Science, Cambridge University Press, 1995.
- S. MacLane, Categories for the Working Mathematician, Springer 1991.
- D. Turi, Category Theory Lecture Notes. Wykład z uniwersytetu w Edynburgu. Dostępny tutaj.
Moduły
- Teoria kategorii jako abstrakcyjna teoria funkcji (ćwiczenia) (test)
- Morfizmy specjalne (ćwiczenia) (test)
- Zasada dualności i proste konstrukcje uniwersalne (ćwiczenia) (test)
- Zaawansowane konstrukcje uniwersalne (ćwiczenia) (test)
- Funktory i transformacje naturalne (ćwiczenia) (test)
- Równoważność kategorii (ćwiczenia) (test)
- Lemat Yonedy i funktory reprezentowalne (ćwiczenia) (test)
- Diagramy, granice i kogranice (ćwiczenia) (test)
- Sprzężenia I (ćwiczenia) (test)
- Sprzężenia II (ćwiczenia) (test)
- Monady (ćwiczenia) (test)
- Teoria dziedzin I (ćwiczenia) (test)
- Teoria dziedzin II (ćwiczenia) (test)
- Teoria dziedzin III (ćwiczenia) (test)
- Algebry i koalgebry endofunktorów (ćwiczenia) (test)