Большинство зависимых типизированных систем имеют строгие условия положительности для индуктивных типов. Кто-нибудь знает пример, когда нарушение условия приводит к несогласованности в системе?
источник
Большинство зависимых типизированных систем имеют строгие условия положительности для индуктивных типов. Кто-нибудь знает пример, когда нарушение условия приводит к несогласованности в системе?
На самом деле можно ослабить строгий позитив и оставаться последовательным. Например, достаточно иметь только положительное условие. То есть мы можем принять определения типа, такие как
где переменные рекурсивного типа встречаются слева от четного числа стрелок и сохраняют согласованность.
Однако теории, допускающие такого рода индуктивный тип, не имеют теоретико-множественных моделей - вы не можете интерпретировать типы как множества, а термины как элементы множеств. В этом случае мы говорим, что изоморфно своему двойному множеству (т. Е. ), и это нарушает теорему Кантора .
Поскольку теории зависимого типа часто используются для формализации математики, их разработчики обычно не решаются добавлять принципы, которые не совместимы с теоретико-множественной семантикой, даже если они согласованы.
РЕДАКТИРОВАТЬ: я добавляю это изменение в ответ на вопрос Андрея. Тип непротиворечив, если вы добавите его в (скажем) Agda; проблем с этим нет вообще. У нас проблема только в том случае, если мы объединяем нестрогую положительность с исключенным средним.
Интуиция о том, почему это безопасно, (ИМО) лучше всего видна сквозь призму параметричности. В Системе F мы можем показать с помощью параметричности, что для любого определяемого функтора тип действительно индуктивный тип.
Теперь напомним, что определяемый функтор является оператором типа вместе с оператором удовлетворяющие условиям функториальности (т. е. и ).
Теперь мы можем определить оператор типа для двойного powerset
и поскольку встречается только положительно, мы также можем определить для нее оператор карты:
Итак, мы знаем, что является законным индуктивным типом.