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

9

Большинство зависимых типизированных систем имеют строгие условия положительности для индуктивных типов. Кто-нибудь знает пример, когда нарушение условия приводит к несогласованности в системе?

Константин Соломатов
источник

Ответы:

10

На самом деле можно ослабить строгий позитив и оставаться последовательным. Например, достаточно иметь только положительное условие. То есть мы можем принять определения типа, такие как

Tμα.(α2)2

где переменные рекурсивного типа встречаются слева от четного числа стрелок и сохраняют согласованность.

Однако теории, допускающие такого рода индуктивный тип, не имеют теоретико-множественных моделей - вы не можете интерпретировать типы как множества, а термины как элементы множеств. В этом случае мы говорим, что изоморфно своему двойному множеству (т. Е. ), и это нарушает теорему Кантора .TTP(P(T))

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

РЕДАКТИРОВАТЬ: я добавляю это изменение в ответ на вопрос Андрея. Тип непротиворечив, если вы добавите его в (скажем) Agda; проблем с этим нет вообще. У нас проблема только в том случае, если мы объединяем нестрогую положительность с исключенным средним.T

Интуиция о том, почему это безопасно, (ИМО) лучше всего видна сквозь призму параметричности. В Системе F мы можем показать с помощью параметричности, что для любого определяемого функтора тип действительно индуктивный тип.FμFα.(Fαα)α

Теперь напомним, что определяемый функтор является оператором типа вместе с оператором удовлетворяющие условиям функториальности (т. е. и ).FF:

map:α,β.(αβ)FαFβ
mapid=idmapfmapg=map(fg

Теперь мы можем определить оператор типа для двойного powerset

C=λα.(α2)2

и поскольку встречается только положительно, мы также можем определить для нее оператор карты:α

mapC=λf:αβ,a:(α2)2,k:β2.a(λa:α.k(fa))

Итак, мы знаем, что является законным индуктивным типом.T=μC

Нил Кришнасвами
источник
Можем ли мы привести пример, который сам по себе создает несоответствие? Ваш пример противоречив, если мы также предполагаем (достаточно) исключенное среднее.
Андрей Бауэр
Другая причина состоит в том, что мы можем добавить теорему FAN к Agda, после чего мы можем доказать, что рассматриваемый тип является (изоморфным) натуральным числам.
Андрей Бауэр
Я думаю должно быть довольно плохо. μα.(α2)α
Андрей Бауэр
1
Ах, я неправильно понял вопрос - дело в том, что строгая позитивность является достаточным, но не необходимым условием. Ваш пример (с фактическим негативным явлением) противоречив.
Нил Кришнасвами
Да, я только что понял это. Мой пример не выдерживает критики.
Андрей Бауэр