Repository files navigation Курс теории типов, КТ, осень 2018
Лямбда-исчисление, базовые определения, примеры
Немного об истории
Лямбда-выражения, синтаксис
Альфа-эквивалентность, бета-редекс, бета-редукция
Булевские выражения, чёрчевские нумералы
Лямбда-исчисление, теорема Чёрча-Россера
Формализация лямбда-термов, классы альфа-эквивалентных термов
Нормальная форма, лямбда-выражения без нормальной формы, комбинаторы K, I, Ω
Бета-редуцируемость (транзитивное и рефлексивное замыкание бета-редукции)
Ромбовидное свойство
Теорема Чёрча-Россера, следствие о единственности нормальной формы
Нормальный и аппликативный порядок вычислений, примеры в лямбда-исчислении и в языках высокого уровня
Y-комбинатор, просто типизированное лямбда-исчисление
Y-комбинатор, рекурсия
Парадоксы лямбда-исчисления как исчисления высказываний
Импликационный фрагмент интуиционистского исчисления высказываний
Просто типизированное лямбда-исчисление
Типизация по Карри
Отсутствие типа у Y-комбинатора
Изоморфизм Карри-Ховарда
Конъюнкция и дизъюнкция, просто типизированное лямбда-исчисление по Чёрчу.
Дизъюнкция и алгебраические типы
Конъюнкция и упорядоченные пары
Типизация по Чёрчу
Связь типизации по Чёрчу и по Карри
Изоморфизм Карри-Ховарда (завершение), Унификация
Теорема об изоморфизме Карри-Ховарда
Теорема о выразительной силе просто типизированного лямбда-исчисления (формулировка)
Основные задачи типизации в лямбда-исчислении: проверка типа, реконструкция типа, обитаемость типа
Алгебраические термы, алгоритм унификации
Реконструкция типов в просто типизированном лямбда-исчислении, комбинаторы
Алгоритм реконструкции (вывода) типов в просто типизированном лямбда-исчислении,
сведение задачи реконструкции типов к унификации.
Алгоритм унификации даёт наиболее общий унификатор --- формулировка утверждения и доказательство.
Наиболее общий унификатор соответствует наиболее общей (основной) паре (тип + контекст) в задаче о реконструкции типов.
Сильная и слабая нормализация термов и исчислений. Теорема о сильной нормализуемости просто типизированного лямбда-исчисления
(без доказательства)
Комбинаторы S,K,I. История возникновения, смысл названий. Выразимость замкнутых лямбда-выражений через S и K
(алгоритм устранения абстракций). Альтернативный базис B,C,K,W.
Комбинаторы S,K и исчисление высказываний в гильбертовском стиле.
Интуиционистское исчисление предикатов второго порядка, система F
Интуиционистское исчисление предикатов второго порядка, импликационный фрагмент.
Представление прочих связок ($&$ , $\vee$ , $\bot$ , $\exists$ ) через $(\rightarrow)$ и $(\forall)$ .
Система F, соответствие исчислению предикатов второго порядка.
Исключения, упорядоченная пара, значения алгебраических типов в системе F.
Обзор результатов без доказательства: базовые теоремы (Чёрча-Россера и т.п.), сильная нормализуемость, неразрешимость задач типизиации.
Экзистенциальные типы, ранг типа, система Хиндли-Милнера
Экзистенциальные типы: определение, пример реализации на Хаскеле
Ранг типа
Синтаксис лямбда-выражений в системе Хиндли-Милнера
Алгоритм W, расширения системы (Y-комбинатор и рекурсивные типы), зависимые типы
Правила вывода в системе Хиндли-Милнера
Алгоритм W
Тип Y-комбинатора
Изо- и эквирекурсивные типы, оператор μ, операции roll и unroll.
Зависимые типы, примеры (printf и int[n]), П-синтаксис.
Обобщённые типовые системы, лямбда-куб
Типы, рода, сорта. Символы * и □.
Обобщённые типовые системы.
Варианты типовых систем и Лямбда-куб. Положение распространённых языков программирования на нём.
Barendregt, Henk. Introduction to generalized type systems. Journal of Functional Programming 1 (2): 125-154, April 1991.
Языки с зависимыми типами, общая мотивация.
Идрис: несколько примеров кода, поясняющих структуру программы,
определение функций, сигнатуры, алгебраические типы в языке Идрис.
Идрис: конечные множества (ограниченные натуральные числа), вектора с зависимым от размера типом.
Идрис: реализация printf с зависимым типом.
Идрис: реализация конъюнкции.
Индекс де Брауна, обобщённые алгебраические типы, равенство, простые доказательства
Индекс де Брауна
Ещё раз про изоморфизм Карри-Ховарда и BHK-интерпретацию
Идрис: определение натуральных чисел
Идрис: определение конечных чисел
Идрис: определение векторов с зависимым от размера типом
Идрис: определение равенства
Идрис: доказательство 0+x=x+0
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Languages
TeX
86.3%
Haskell
9.0%
Idris
4.7%
You can’t perform that action at this time.