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


9

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

Ответы:


10

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

T≜μα.(α→2)→2

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

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

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

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

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

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

map:∀α,β.(α→β)→Fα→Fβ
mapid=idmapf∘mapg=map(f∘g

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

C=λα.(α→2)→2

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

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

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


Можем ли мы привести пример, который сам по себе создает несоответствие? Ваш пример противоречив, если мы также предполагаем (достаточно) исключенное среднее.
— Андрей Бауэр

Другая причина состоит в том, что мы можем добавить теорему FAN к Agda, после чего мы можем доказать, что рассматриваемый тип является (изоморфным) натуральным числам.
— Андрей Бауэр

Я думаю должно быть довольно плохо. μα.(α→2)→α
— Андрей Бауэр

1
Ах, я неправильно понял вопрос - дело в том, что строгая позитивность является достаточным, но не необходимым условием. Ваш пример (с фактическим негативным явлением) противоречив.
— Нил Кришнасвами

Да, я только что понял это. Мой пример не выдерживает критики.
— Андрей Бауэр
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.