Giter Club home page Giter Club logo

tt2021's Introduction

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

Материалы

Лекция 1

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

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

Где почитать

Лекция 2

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

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

Где почитать

Лекция 3

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

  • Язык просто типизированного исчисления (типы, контекст)
  • Типизация по Чёрчу и по Карри.
  • Правила вывода
  • Теоремы о типизации редукции, Чёрча-Россера, об уникальности типизации по Чёрчу.

Где почитать

Лекция 4

Импликационный фрагмент интуиционистского исчисления высказываний

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

Где почитать

Лекция 5

Вывод типа. Введение в исчисление предикатов второго порядка

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

Где почитать

Лекция 6

Система F. Экзистенциальные типы

  • Правила для кванторов существования
  • Экзистенциальные типы

Где почитать

Лекция 7

Система Хиндли-Милнера.

  • Ранг типа
  • Аксиоматика
  • Алгоритм W
  • Расширения системы: экви- и изорекурсивные типы, тип для Y-комбинатора

Где почитать

  • Luis Damas and Robin Milner, Principal type-schemes for functional programs POPL'82: Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, ACM, pp. 207–212
  • Robin Milner, A theory of type polymorphism in programming (1978) // Journal of Computer and System Sciences, 1978, vol. 17, pp. 348--375 https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.67.5276
  • Бенджамин Пирс, Типы в языках программирования. Издательство «Лямбда пресс» & «Добросвет», Москва, 2011

Лекция 8

Обобщённые типовые системы. Лямбда-куб Барендрегта

  • Аксиоматика
  • Лямбда-куб
  • Зависимые типы, примеры зависимых типов в языках программирования
  • Языки программирования на лямбда-кубе.

Где почитать

  • Henk Barendregt, Introduction to generalized type systems. Journal of Functional Programming 1 (2): 125-154, April 1991

Лекция 9

Введение в гомотопическую теорию типов, язык Аренд

  • Интуиционистские типовые системы для формализации доказательств
  • Равенство, интенсиональные и экстенсиональные типовые системы
  • Непрерывные функции
  • Связные множества, линейная связность, пути
  • Изоморфизм Карри-Ховарда-Воеводского
  • Равенство в Аренд. Простейшие примеры программ на Аренд.

Где почитать

Лекция 10

Равенство в языке Аренд

  • Магия: элиминатор для интервального типа coe
  • Вспомогательные функции: transport, pmap
  • Типы Empty и Not. Доказательство неравенства

Где почитать

Лекция 11

Типы данных, специальные конструкции

  • Неравенство: два способа определения (через экзистенциальный тип и через обобщённый алгебраический тип)
  • rewrite и contradiction
  • Set и Prop

Где почитать

  • Документация по языку Аренд

Лекция 12

Универсумы, гомотопические уровни, фактор-множества

  • Универсумы
  • Гомотопические уровни
  • Фактор-множества, способы определения нетривиальных равенств

Где почитать

  • Документация по языку Аренд

Лекция 13

Парадокс Жирара

  • Постановка задачи, необходимость дополнительной выразительной силы теории.
  • Каков тип типа? Типовые системы U и U-.
  • Парадокс Бурали-Форте
  • Парадокс Бурали-Форте для парадоксальных универсумов (схема доказательства)
  • Воспроизведение парадокса в системе U (схема), применение правила (\square,\triangle)

Где почитать

Лекция 14

Теорема Диаконеску

  • Конструктивная аксиома выбора и её доказуемость.
  • Сетоиды, аксиома выбора для сетоидов.
  • Аксиома выбора в HoTT и Аренде (как аксиома о перестановке кванторов и пропозиционального обрезания).

Лекция 15

Линейные и уникальные типы

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

Где прочесть

  • Philip Wadler. A taste of linear logic
  • Edsko de Vries, Rinus Plasmeijer, David M Abrahamson. Uniqueness Typing Simplified

Лекция 16

Система F-Sub

  • Общие понятия (что такое подтип, ко- и контравариантность)
  • Система F<:
  • Полный и ядерный вариант системы F<:

Где прочесть

  • Бенджамин Пирс, Типы в языках программирования. Издательство «Лямбда пресс» & «Добросвет». Москва, 2011

tt2021's People

Contributors

artem avatar brat-vseznamus avatar daniil-eshkin avatar dave11ar avatar dk318 avatar iliayar avatar jovvik avatar mizzza54 avatar sancho20021 avatar shd avatar unrealeugene avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.