KM-111-10

Гомотопічна теорія типів

Курс лекцій для студентів третього курсу кафедри чистої математики КМ-111-10

Курс "Мова простору"

Вступ

Цей курс є сучасним вступом в теорію типів яка викоростовується для побудови не тільки мов програмування, але і мов для математичної верифікації. Оскільки модальна гомотопічна теорія типів підходить для формалізації усієї математики її ще називають "мовою простору".

Серія лекцій присвячена базовій бібліотеці Групоїд Інфініті та здобуттю навичок програмування математичних визначень та теорем на одній з реалізацій цієї теорії типів — мові Anders.

Мотивація

Головні завдання курсу: 1) безпосередня побудова термів-доведень в кубічній теорії типів за допомогою комп'ютерної верифікації; 2) вирішення домашніх завдань або вправ з підручника HoTT на мовах Groupoid Infinity; 3) запис нонаток у TeX як основна культура документування; 5) курсова робота по формалізації певної математичної теорії або порт існуючої формалізації з Agda або Lean; 6) гуртування людей які намагаються поєднати професійну математику та програмування; 7) отримання інтелектуального задоволення.

Підручник HoTT

Що стосується теорії та дидактичних матеріалів, то курс побудований таким чином аби можна було використовувати як текстуальне джерело-компаньон класичний Підручник HoTT Структура курсу теж ділиться на дві великі частини: 1) програмування (або базові синтетичні конструкції теорії типів); та 2) математика (математичні теорії написані на цій мові програмування). На додаток до класчних тем підручника HoTT, цей курс містить початковий вступ у формальну алгебраїчну топологію та диференціальну геометрію.

Кубічні мови

На практиці професійні математики зосереджені навколо двох мов математичного програмування: Agda та Lean. У той час як Agda підтримує кубічні примітиви в ядрі прувера, для Lean існує бібліотека яка інтерналізує кубічні примітиви в примитіви ядра Lean які називаються фактортипами (така система є консистентною проте не завжди має нормальні форми). Усього існує небагато кубічних мов програмування: 1) cubical/cubicaltt (CCHM); 2) RedPRL/redtt/cooltt (ABCFHL). 3) yacctt (ABCFHL); 4) Arend (I-HoTT); 5) Agda (CCHM); 6) Anders (CCHM). Ми покажемо відмінності між ними, проте курс зосереджений навколо синтаксису CCHM. Посилання на адаптації нашої бібліотеки Групоїд Інфініті для усіх цих кубічних пруверів, а також посилання на самі прувери та їх математичні моделі наведені на сайті AXIO/1.

Програмування

Випуск I: Теорія типів

Перший розділ є введенням у теорію типів, її предметну область та методи комп'ютерних наук. Ми розглянемо основні принципи лямбда-числення, його найпотужнішу версію — System , Calculus of Constructions та Pure Type Systems. Потім ми закодуємо теореми системи типів MLTT в кубічних верифікаторах. Цей розділ охопить типи Pi, Sigma, Path.

HoTT 1.3, 1.4, 1.5, 1.6, 1.12, 2.7, 2.9, 2.11, 6.2

  Випуск I: Інтерналізція теорії типів Мартіна-Льофа

Випуск II: Індуктивні типи

Другий розділ є введенням у базові індуктивні типи та принцип індукції. Індуктивні типи формують основу так званого Calculus of Inductive Constructions, теорії, що лежить в основі Coq. Ми покажемо, як доведення теорем за принципом індукції відрізняється від кубічних конструкцій. Також ми представимо загальне імпредикативне кодування індуктивних типів (Awodey). Цей розділ охопить типи: W, Empty, Unit, Either, Prod, Bool, Maybe, Nat, List. Для неконсистетних систем факультативно розглядаються Fix, Mu, Nu, Free, Cofree.

HoTT 1.7, 1.8, 1.9, 5.1, 5.6

  Випуск II: Індуктивні типи та кодування

Випуск III: Гомотопічна теорія типів

Ця тема дає фундаментальне уявлення про типи Pi як фібрування, що використовуються в конструктивній еквівалентності. Також тут ми розглянемо нескінченну ієрархію типів, що містить вищі глобулярні рівності, які використовуються як основа для IPL, теорії множин та симпліціальної геометрії. Цей розділ охопить типи Fiber, n-Groupoid.

У теорії типів існують три рівності: 1) вбудована в перевірник типів, що представляє тип Id, Equ або Path з J-елімінатором; 2) еквівалентність на основі фібрування; 3) ізоморфізм, що містить ретракт і секцію. Цей факт призводить до аксіоми унівалентності, яка стверджує, що всі еквівалентність дорівнює простору шляхів, і це може бути доведено в кубічних перевірниках типів. Цей розділ охопить типи: Equiv, Iso, Homotopy, Univalence, Injective, Surjective.

HoTT 2.1, 2.3, 2.4, 2.6, 2.7

  Випуск III: Гомотопічна теорія типів

Випуск IV: Вищі індуктивні типи

Однією з основних мотивацій HoTT є конструктивна геометрія та клітинні комплекси, простори, побудовані шляхом склеювання n-дисків уздовж їхніх меж. У цьому розділі ми покажемо, як будувати топологічні примітиви та як міркувати про них. Цей розділ охопить типи: Line, Suspension, n-Sphere, Pushout, Pullback, Truncation, Quotient.

HoTT 6.3, 6.4, 6.5, 6.6, 6.9, 6.10

  Випуск IV: Вищі індуктивні типи

Випуск V: Модальності

Цей розділ охопить тип Infinitesimal.

HoTT 7.7

  Випуск V: Модальності

Математика

Випуск XXII: Теорія множин

Цей розділ є введенням у інтуїціоністську логіку висловлювань (IPL), її відмінність від класичної логіки, аксіому вибору, закон виключеного третього, пропозіційну урізку, теорему Хедберга, вирішувані типи, конструктивну теорію множин. Цей розділ охопить типи: Prop, Set, Decidable, Stable, Discrete.

HoTT 3.1, 3.3, 3.11

Випуск XXIII: Теорія категорій

Понад 10 медалей Філдса отримано завдяки теорії категорій (CT) як інструменту. Для занять математикою CT є вирішальною. Як супровід до розділу HoTT про CT, ми пропонуємо курс Стіва Аводі (учня Сондерса Мак Лейна), який також зробив HoTT можливим.

Цей розділ дасть фундаментальне уявлення про такі типи: Precategory, Rezk Completion, Functor, Natural Transformation, Adjoint, Cone, Structure Identity Principle, Limit, Pullback, Kan Extension, Monomorphism, Epimorphism, Universal Mapping Property.

Основне застосування CT у комп'ютерних науках — побудова категоріальної моделі залежно типізованого лямбда-числення як внутрішньої мови локально декартово замкненої категорії. У цьому курсі згадуються дві моделі: Categories with Families (Dybjer) та C-Systems (Voevodsky).

Також як приклади екземплярів категорій використовуються такі типи: Категорія множин, Категорія функцій, Категорія категорій, Категорія функторів, Срізна категорія, Добуткова категорія. Використовуючи їх, ми можемо побудувати базові приклади 2-категорій та дати дуже базове введення в -Категорії. Типи в цьому розділі: Category of Commutative Monoids, Category of Abelian Groups, Grothendieck Group.

  Випуск XXII: Теорія категорій
  Випуск XXX: Контекстуальні категорії для теорії типів Мартіна-Льофа

Випуск XXXIX: Теорія топосів

Теорія топосів дасть більш глибоке розуміння категоріальних моделей і створить міцніший фундамент для побудови мосту між CT та логікою простору.

У цьому розділі я згадаю типи Subobject Classifier та Topos.

  Випуск XXXIX: Формальний топос на категорії множин

Випуск IX: Алгебраїчна топологія

Типи в цьому розділі: Monoid, Commutative Monoid, Group, Ring, Abelian Group, Abelian Ring, Hopf, Loop Space, Homotopy Group.

Випуск X: Диференціальна геометрія

Типи в цьому розділі: Abstract Homogeneous Structure, Shape, Étale Map, Automorphism, Fiber Bundle, Manifold, Covering Space (G-Set).

Історія

Історичні нотатки

Щодо вежі теорій типів, необхідних для введення CCHM (Cohen-Coquand-Huber-Mortberg), ми використаємо наступне налаштування.

Системи типів

    PTS

  1. PI

    MLTT

  1. PI
  2. SIGMA
  3. ID
  4. W

    CIC

  1. PI
  2. SIGMA
  3. ID
  4. FIX
  5. INDUCTION

    CCHM

  1. PI
  2. SIGMA
  3. ID
  4. PATH
  5. GLUE
  6. HIT

Ці історичні передумови (PTS, MLTT, CIC) будуть розглянуті протягом курсу.