Какие части теории гомотопического типа невозможны в Agda или Coq?

16

Когда мы смотрим на книгу «Гомотопическая теория типов» - мы видим следующие темы:

Homotopy type theory 
2.1 Types are higher groupoids
2.2 Functions are functors
2.3 Type families are fibrations
2.4 Homotopies and equivalences
2.5 The higher groupoid structure of type formers
2.6 Cartesian product types
2.7 S-types
2.8 The unit type
2.9 P-types and the function extensionality axiom
2.10 Universes and the univalence axiom
2.11 Identity type
2.12 Coproducts
2.13 Natural numbers
2.14 Example: equality of structures
2.15 Universal properties

Теперь мы знаем, что не вся теория гомотопического типа возможна - это Agda и Coq .

Мой вопрос: какие части теории гомотопического типа невозможны в Agda или Coq?

Hawkeye
источник
4
Не очень хорошо сформулированный вопрос. Какова связь между списком тем и вопросом?
Дейв Кларк
@ Дэйв Кларк, список тем выглядит как контекст мышления спрашивающего, поэтому отвечающий знает, что является отправной точкой спрашивающего, и может соответствующим образом адаптировать ответ. Другие учащиеся могут также оценить ответ в том же контексте и понять, что ответ, вероятно, будет полезен для них, если ответчик вдумчив и осторожен в отношении человеческой натуры. Надеюсь, что это также поможет в других будущих разговорах.
кодовый снимок

Ответы:

21

Если вы посмотрите на Заметки о главе 8 вы увидите , что уже уже формализованы, и я думаю , что это очень много. Есть библиотека Coq HoTT и библиотека Agda HoTT-Agda, которые формализуют большие куски теории гомотопического типа.

Чтобы добиться успеха в Coq, нам нужна была специальная версия Coq, которая была исправлена ​​только для целей HoTT. Однако Coq движется в направлении поддержки теории гомотопического типа, поэтому вскоре мы сможем сделать это с помощью стандартного Coq.

В Agda нужно включить --without-Kопцию, иначе Agda считает, что все типы являются 0-типами. Есть некоторые затянувшиеся сомнения относительно того, --without-Kдействительно ли избавляется от предположения, что все является 0-множеством, или, возможно, можно было бы повторно ввести его в Agda с хитрым использованием сопоставлений с образцом.

Следующие аспекты формализации Coq и Agda не являются удовлетворительными:

  1. Аксиома однолистности сформулирована как гипотеза. Было бы лучше, если бы он был встроен в систему. В частности, мы бы хотели, чтобы Coq и Agda поняли правила вычисления аксиомы однолистности.

  2. Аналогично, мы должны использовать хаки, чтобы получить работоспособные типы с более высокой индуктивностью. Опять же, было бы лучше иметь прямую поддержку.

Проблема с вышеуказанными недостатками состоит в том, что никто не знает, как их исправить, даже теоретически. Это активная область исследований.

Кроме того, я думаю , что это справедливо сказать , что HOTT может быть в основном сделано в Coq и Agda, просто не оптимальным образом.

Андрей Бауэр
источник
1
Спасибо, есть ли хорошее описание того, почему однолистность и индуктивные типы с более высокими значениями не подходят для теорий типов, таких как Agda и Coq?
Мартин Бергер
1
@MartinBerger это может быть отдельный вопрос (с некоторыми определениями для более случайных читателей и т. Д.).
Артем Казнатчеев
4
Проблема с однозначностью и HIT заключается не в том, что они «плохо согласуются с теориями типов, такими как Agda и Coq», а в том, что «мы не знаем, как сделать их правильно в любой теории типов».
Андрей Бауэр
1
@AndrejBauer Однолистность и высшие индуктивные типы формируются в рецензии HoTT, которая является (полуформальной) теорией типов. Какой недостающий ингредиент мешает правильной формализации в Agda / Coq? В связи с этим, если вы готовы отказаться от Карри-Ховарда, есть ли трудности с формулировкой однолистности и типов с более высокой индуктивностью в программе проверки стиля LCF, такой как Изабель, с использованием, например, LF в качестве метаязыка для формализации правил доказательства?
Мартин Бергер
4
Для чего нужны правила вычисления ua, константа, которая свидетельствует об аксиоме однолистности? Каковы правила вычисления для HIT? У нас есть некоторые идеи, но ничего водонепроницаемого.
Андрей Бауэр
12

Насколько я понимаю, в Agda можно представить все это (т. Е. Всю главу 2 - на github есть библиотека, которая делает; AFAIK, то же самое верно и для Coq). Только когда вы переходите к последующим главам, все становится рискованно. Есть два очевидных момента:

  1. Круг. Это представлено (в Агде) с использованием постулата , и поэтому не так хорошо, как другие вещи.

Есть и другие пункты, но я еще не дошел до прочтения этой части формализации Agda ... Но в целом большая часть HoTT может быть хорошо формализована как в Agda, так и в Coq.

Что еще более важно, обе команды разработчиков активно работают над адаптацией своих систем, чтобы можно было обрабатывать больше HoTT, по крайней мере, когда есть четкая теория о том, как реализовать необходимые функции. Это оказалось сложным по частям.

Жак Каретт
источник