Теорія категорій для програмістів (кн дввс)

Тип: На вибір студента

Кафедра: інформаційних систем

Навчальний план

СеместрКредитиЗвітність
83.5Залік

Лекції

СеместрК-сть годинЛекторГрупа(и)
828професор, ст. наук. співробітник Жолткевич Г. М.ПМі-41, ПМі-42, ПМі-43, ПМі-44, ПМі-45, ПМі-46

Лабораторні

СеместрК-сть годинГрупаВикладач(і)
828ПМі-41професор, ст. наук. співробітник Жолткевич Г. М.
ПМі-42професор, ст. наук. співробітник Жолткевич Г. М.
ПМі-43професор, ст. наук. співробітник Жолткевич Г. М.
ПМі-44професор, ст. наук. співробітник Жолткевич Г. М.
ПМі-45професор, ст. наук. співробітник Жолткевич Г. М.
ПМі-46професор, ст. наук. співробітник Жолткевич Г. М.

Опис курсу

 Дисципліна «Теорія категорій для програмістів» присвячена вивченню фундаментальних математичних структур, які складають основу сучасної комп’ютерної науки та теорії типів. Курс розкриває поняття категорії як математичної структури, що складається з об’єктів та морфізмів (стрілок) із визначеною операцією композиції та тотожними морфізмами.

Основна мета курсу — продемонструвати зв’язок між абстрактною математикою та практичним програмуванням. Зокрема, розглядається, як специфікації типів у мовах програмування (наприклад, Python) стають об’єктами категорії, а «чисті» функції одного аргументу — її морфізмами. Такий підхід дозволяє програмістам використовувати математичну суворість для моделювання складних систем.

Програма дисципліни охоплює наступні ключові аспекти:

  • Основи теорії: визначення категорій (малих, локально малих), вивчення прикладів категорій множин, препорядків та орієнтованих графів.
  • Класифікація морфізмів: вивчення властивостей ізоморфізмів, мономорфізмів та епіморфізмів, що дозволяє глибше зрозуміти структуру зв’язків між об’єктами.
  • Функтори та натуральні перетворення: аналіз відображень між категоріями (коваріантні та контраваріантні функтори Hom) та способів трансформації самих функторів.
  • Універсальні конструкції: розгляд ініціальних та термінальних об’єктів, побудова добутків та ко-добутків (сум), а також вивчення експоненціалів, що веде до поняття декартово замкнених категорій.
  • Фундаментальні результати: вивчення Леми Йонеди, яка є потужним інструментом для представлення категорій та вирішення складних задач через аналіз функторів.

Курс спрямований на формування у розробників високого рівня абстрактного мислення, що дозволяє створювати більш надійне та модульне програмне забезпечення, спираючись на такі поняття як кома-категорії, слайс-категорії та діаграми.

Рекомендована література

Основна література:

  1. Milewski B. Category Theory for Programmers. 2023. https://ai.dmi.unibas.ch/research/reading_group/milewski-2023-01-30.pdf
  2. Awodey S. Category Theory. 2nd edition. Oxford Logic Guides, 2010. http://files.farka.eu/pub/Awodey_S._Category_Theory(en)(305s).pdf

Додаткова література:

  1. Mac Lane S. Category Theory for Working Mathematicians. 2nd edition. Springer; 2013.
  2. Pierce B. C. Basic Category Theory for Computer Scientists. 1991.
  3. Fong B., Spivak D.I. An Invitation to Applied Category Theory. Cambridge University Press, 2019.

Силабус:

Завантажити силабус