Skip to content

shd/tt2019

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Mar 14, 2020
bcd9b30 · Mar 14, 2020

History

34 Commits
Dec 6, 2019
Dec 19, 2019
Nov 20, 2019
Nov 20, 2019
Mar 14, 2020
Mar 14, 2020
Mar 14, 2020
Mar 14, 2020
Jan 18, 2020
Jan 18, 2020

Repository files navigation

Курс теории типов, КТ, осень 2019

Материалы

Лекция 1

Лямбда-исчисление, базовые определения, примеры

  • Немного об истории
  • Лямбда-выражения, синтаксис
  • Альфа-эквивалентность, бета-редекс, бета-редукция
  • Булевские выражения, чёрчевские нумералы

Где почитать

Лекция 2

Теорема Чёрча-Россера, Y-комбинатор

  • Бета-редуцируемость и параллельная бета-редукция
  • Теорема Чёрча-Россера
  • Комбинаторы: определение и примеры (I,S,K)
  • Рекурсия и Y-комбинаторы
  • Ленивые вычисления, нормальный порядок редукции

Где почитать

Лекция 3

Просто типизированное лямбда-исчисление

  • Почему бестиповое лямбда-исчисление не подходит в качестве исчисления высказываний
  • Импликационный фрагмент интуиционистского исчисления высказываний
  • Просто типизированное лямбда-исчисление по Карри
  • Исчисление по Чёрчу
  • Комбинаторы, базис SK

Где почитать

Лекция 4

Свойства просто типизированного лямбда-исчисления

  • Теорема о полноте импликационного фрагмента ИИВ
  • Сильная нормализация просто типизированного лямбда-исчисления
  • Класс вычислимых в просто типизированном лямбда-исчислении функций (формулировка)
  • Три задачи: обитаемость типа, вывод (реконструкция) типа, проверка типа

Где почитать

Лекция 5

Алгоритм унификации, вывод типа

  • Алгебраические термы, задача унификации
  • Алгоритм унификации
  • Алгоритм вывода типов в просто типизированном лямбда-исчислении

Где почитать

Лекция 6

Увеличение выразительности языка

  • Интуиционистское исчисление высказываний (связки: конъюнкция, дизъюнкция, ложь) и соответствующие новым связкам конструкции в лямбда-исчислении.
  • Логика второго порядка
  • Выразимость всех связок через импликацию и квантор всеобщности
  • Система F

Где почитать

Лекция 7

Экзистенциальные типы

  • Экзистенциальные типы

Где почитать

Лекция 8

Типовая система Хиндли-Милнера

  • Ранг типа
  • Типы и типовые схемы, уточнение/обобщение типов, конструкция let.
  • Типовая система Хиндли-Милнера.

Где почитать

Лекция 9

Алгоритм W

  • Алгоритм W
  • Добавление Y-комбинатора в типовую систему
  • Экви- и изорекурсивные типы

Где почитать

Лекция 10

Обобщённые типовые системы

  • Обобщённая типовая система
  • Зависимые типы
  • Лямбда-куб

Где почитать

  • Henk Barendregt, An Introduction to Generalized Type Systems (1991) // Journal of Functional Programming, April 1991, 1(2):125-154 http://homepages.inf.ed.ac.uk/wadler/papers/barendregt/pure-type-systems.pdf
  • Бенджамин Пирс, Типы в языках программирования. Издательство «Лямбда пресс» & «Добросвет», Москва, 2011

Лекция 11

Введение в язык Идрис

  • Общий синтаксис (определение функций, алгебраических типов)
  • Разбор конструкций языка на примере функции с зависимым типом (printf)

Где почитать

Лекция 12

Доказательства в Идрис

  • Равенство в Idris, конструктор Refl
  • Конструкции replace и rewrite

Где почитать