Teoria kategorii w informatyce

Język wykładowy Polski
Semestr Zimowy
Status W ofercie
Opiekun Maciej Piróg
Liczba godzin 30 (wyk.) 30 (ćw.)
Rodzaj I2.T - teoria inf.
ECTS 6
Polecany dla I roku Nie
Egzamin Tak

Opis przedmiotu:

**Teoria kategorii** bada struktury wspólne dla wielu - czasem nawet bardzo odległych - działów matematyki. Znalazła mnogość zastosowań nie tylko w teoretycznej matematyce, ale też logice, informatyce, fizyce czy lingwistyce. Można ją rozumieć jako język opisu obiektów matematycznych, będący alternatywą dla języka teorii zbiorów. Podstawowym pomysłem jest skupienie się na *własnościach* obiektów, bez konieczności wnikania w to, jak są *skonstruowane* - tworząc rodzaj znanego informatykom podziału na *specyfikację* i *implementację*. Przedmiot skupia się na zastosowaniach teorii kategorii w informatyce, na przykład w programowaniu i teorii języków programowania. Pojęcia pochodzące z teorii kategorii przeniknęły już dawno do codziennego warsztatu programisty pod postacią konstrukcji takich jak *funktory* czy *monady*. Przedmiot ten pozwoli zrozumieć skąd wzięły się te pojęcia, jakie są ich własności i jak je wykorzystać w praktyce. Jedynym wymogiem wstępnym jest zdolność operowania podstawowymi pojęciami matematycznymi, ale pobieżna znajomość algebry abstrakcyjnej (np. wiedza co to jest *półgrupa*) i programowania funkcyjnego zdecydowanie pomogą w zrozumieniu motywacji dla wielu abstrakcyjnych i często początkowo nieintuicyjnych definicji. **Omawiane zagadnienia:** * Podstawowe pojęcia teorii kategorii: kategorie, funktory, transformacje naturalne, * Konstrukcje **w** kategoriach (tłumaczenie definicji z języka teorii zbiorów na język teorii kategorii) i konstrukcje **na** kategoriach (np. produkt kategorii, kategorie strzałkowe i przecinkowe), * Dualność: dwa pojęcia/twierdzenia w cenie jednego, * Konstrukcje uniwersalne: (ko)końcowość, (ko)produkty, (ko)granice, sprzężenia, * Lemat Yonedy, * Domknięte kategorie kartezjańskie jako modele rachunku lambda, * (Ko)rekurencyjne typy danych definiowane jako algebry (ko)końcowe, * Monady i ich algebry, * Wolne monady i semantyka efektów algebraicznych, * Kwantyfikatory jako sprzężenia. **Literatura:** Podstawowy podręcznik: * Steve Awodey, Category Theory (2nd ed.), Oxford Logic Guides, 2010 Inne podręczniki: * Saunders Mac Lane, Categories for the Working Mathematician (2nd ed.), Springer, 1998 * Michael Barr, Charles Wells, Category Theory for Computing Science, Prentice Hall,1990 * Harold Simmons, An Introduction to Category Theory, Cambridge University Press, 2011 * David Spivak, Category Theory for the Sciences, MIT Press, 2014 * Tom Leinster, Basic Category Theory, Cambridge University Press, 2014