Мне интересно, может ли кто-нибудь подсказать мне, почему строгая положительность индуктивных типов данных гарантирует строгую нормализацию.
Чтобы было ясно, я вижу, как наличие отрицательных явлений приводит к расхождению, то есть путем определения:
data X where Intro : (X->X) -> X
мы можем написать расходящуюся функцию.
Но мне интересно, как мы можем доказать, что строго положительные индуктивные типы не допускают расхождения? т.е. есть ли какая-то индукционная мера, которая позволяет нам построить доказательство сильной нормализации (используя логические отношения или подобное)? И где такое доказательство разрушается для негативных явлений? Есть ли хорошие ссылки, которые показывают сильную нормализацию для языка с индуктивными типами?
Ответы:
Похоже, вам нужен обзор аргументов нормализации для систем типов с положительными типами данных. Я бы порекомендовал кандидатскую диссертацию Накса Мендлера: http://www.nuprl.org/documents/Mendler/InductiveDefinition.html .
Inductive Ord = Zero : Ord | Suc : Ord -> Ord | Lim : (Nat -> Ord) -> Ord
Мы бы получили:
где колеблется над членами с нормальными формами. Предостережение заключается в том, что эта интерпретация определяется только в 3-м случае, когда имеет нормальную форму, что требует некоторой осторожности в определениях.n f n
Затем можно определить рекурсивные функции по индукции по этому порядковому номеру.
Обратите внимание , что эти типы данных могут быть определены уже в классической теории множеств, как указано в отличном Индуктивный Families бумаге Dybjer ( http://www.cse.chalmers.se/~peterd/papers/Inductive_Families.pdf ). Однако, поскольку функциональные пространства настолько огромны, для типов, таких как,
Ord
требуются действительно большие порядковые числа для интерпретации.источник
Ord
для моделирования ординалов, необходимых для демонстрации обоснованности?Другим хорошим источником для выхода за рамки строго положительных типов является кандидатская диссертация Ральфа Мэттса: http://d-nb.info/956895891
Он обсуждает расширения Системы F с (строго) положительными типами в главе 3 и доказывает много сильных результатов нормализации в главе 9. Есть несколько интересных идей, обсужденных в главе 3.
Мы можем добавить наименьшие фиксированные точки для любого типа со свободной переменной , при условии, что мы можем предоставить свидетельство монотонности . Эта идея уже присутствует в работе Мендлера, о которой упоминал Коди. Такие свидетели существуют канонически для любого положительного типа, потому что они синтаксически монотонны.ρ α ∀α∀β.(α→β)→ρ→ρ[β/α]
Когда мы переходим от строго положительных к положительным типам, то индуктивные типы больше не могут рассматриваться как деревья (кодирование W-типа). Вместо этого они вводят некоторую форму непредсказуемости, потому что конструкция положительного индуктивного типа уже количественно определяет сам тип. Обратите внимание, что это несколько умеренная форма непредсказуемости, поскольку семантика таких типов все еще может быть объяснена в терминах порядковой итерации монотонных функций.
Мэттес также приводит несколько примеров положительных индуктивных типов. Особенно интересны
Matthes также использует положительные индуктивные типы для анализа двойного отрицания, например, в этой статье: https://www.irit.fr/~Ralph.Matthes/papers/MatthesStabilization.pdf . Он вводит расширение Париго и доказывает сильную нормализацию.λμ
Я надеюсь, что это поможет с вашим вопросом.
источник