В главе 1 и Приложении A к книге Hott представлены несколько семейств примитивных типов (типы юниверсов, зависимые типы функций, типы зависимых пар, типы копроизведения, пустой тип, тип блока, тип натурального числа и типы идентификаторов), образующие основу для теории гомотопического типа.
Однако кажется, что с учетом типов юниверсов и зависимых типов функций вы можете создавать все эти другие «примитивные» типы. Например, тип Empty может быть определен как
ΠT:U.T
Я предполагаю, что другие типы также могут быть сконструированы аналогично тому, как они есть в чистом CC (т.е. просто выводят тип из индуктивной части определения).
Многие из этих типов явно делаются избыточными с помощью типов Inductive / W, которые представлены в главах 5 и 6. Но типы Inductive / W, по-видимому, являются необязательной частью теории, поскольку существуют открытые вопросы о том, как они взаимодействуют с HoTT (в минимум на момент выхода книги).
Поэтому я очень озадачен тем, почему эти дополнительные типы представлены как примитивные. Моя интуиция заключается в том, что основополагающая теория должна быть настолько минимальной, насколько это возможно, и переопределение избыточного пустого типа как примитива в теории кажется очень произвольным.
Был ли сделан этот выбор
- по некоторым метатеоретическим причинам, о которых я не знаю?
- по историческим причинам, чтобы теория типов выглядела как теории типов прошлого (которые не обязательно были основополагающими)?
- для «юзабилити» компьютерных интерфейсов?
- для некоторого преимущества в поиске доказательства, о котором я не знаю?
Аналогично: минимальная спецификация теории типов Мартина-Лёфа , /cs/82810/reduc-products-in-hott-to-church-scott-encodings/82891#82891
источник
Ответы:
Позвольте мне объяснить, почему предложенная кодировка пустого типа не работает. Мы должны быть откровенными об уровнях вселенной, а не скрывать их под ковром.
Когда люди говорят «пустой тип», они могут иметь в виду одно из двух:
Одного типа , который является пустым в отношении всех типов. Такой тип имеет правило исключения: для каждого п и типа семьи A : E → U п , существует отображение й н , : Е → .E n A:E→Un en,A:E→A
Семейство типов , по одному для каждого уровня юниверса k , так что E k является «пустым типом U k ». Такой тип должен удовлетворять E к : U к , очевидно, а также: для каждого типа семьи A : E к → U к , существует отображение е к , : E к → A .Ek k Ek Uk Ek:Uk A:Ek→Uk ek,A:Ek→A
Без каких-либо оговорок, когда люди говорят «пустой тип», они ожидают первое значение выше.
Как мы можем получить ? Первая попытка может быть что-то вроде E = Π ( T : U )E
но это как раз тот вид подметания, который создает путаницу. Мы должны записать явные уровни вселенной. Если мы напишем что-то вроде
E k = Π ( T : U k )
Еще одна попытка но теперь вы должны объяснить, что такое « Π n ». Вы можете испытать искушение сказать, что существует тип L вселенских уровней, и поэтому E = Π ( n : L )
Могут быть организованы непредсказуемые вселенные. Однако известная теорема Тьерри Коканда (если я не ошибаюсь) показывает, что наличие двух непредсказуемых вселенных, одна из которых содержится в другой, приводит к противоречию.
Мораль этой истории такова: просто аксиоматизируйте пустой тип напрямую и перестаньте кодировать вещи.
источник
Вы задаете несколько вопросов, которые похожи, но различны.
Почему книга HoTT не использует церковные кодировки для типов данных?
Церковные кодировки не работают в теории типов Мартина-Лёфа по двум причинам.
Во-вторых, даже если вы определили типы данных, такие как натуральные числа, с кодировками Церкви, чтобы делать доказательства с этими типами, вам нужны принципы индукции, чтобы доказать что-то о них. Чтобы вывести принципы индукции для церковных кодировок, вам нужно использовать аргумент, основанный на параметричности Рейнольдса, и вопрос о том, как включить принципы параметричности в теорию типов, до сих пор не решен полностью. (Современное состояние - статья Нейпса, Веццози и Devriese ICFP 2017 « Параметрические квантификаторы для теории зависимых типов» - обратите внимание, что это хорошо после того, как книга HoTT была написана!)
Далее вы спрашиваете, почему фундамент не минимален. Это на самом деле одна из отличительных социологических особенностей теоретико-типовых оснований - теоретики типов рассматривают наличие небольшого набора правил как техническое удобство, без особого фундаментального значения. Гораздо важнее иметь правильный набор правил, а не наименьший набор правил.
Мы разрабатываем теории типов, которые будут использоваться математиками и программистами, и очень и очень важно, чтобы доказательства, сделанные в рамках теории типов, были теми, которые математики и программисты считают правильными. Это объясняется тем, что аргументы, которые математики обычно рассматривают как имеющие хороший стиль, обычно структурированы с использованием ключевых алгебраических и геометрических принципов области исследования. Если вам приходится использовать сложные кодировки, большая часть структуры теряется или затеняется.
Вот почему даже теоретико-типичные представления пропозициональной классической логики неизменно дают все логические связки, даже если формально это эквивалентно логике только с NAND. Конечно, все логические связки могут быть закодированы с помощью NAND, но это кодирование затемняет структуру логики.
источник