Нет, в этом случае предсказуемость и монотонность не тесно связаны.
Проверка позитивности в Coq / Adga служит для того, чтобы убедиться, что вы берете наименьшую фиксированную точку монотонной вещи, примерно.
Вот как следует думать об индуктивных типах в терминах решеток и монотонных операторов. Напомним, что теорема Кнастера-Тарского гласит, что на полной решетке каждый монотонный оператор f : L → L имеет наименьшую неподвижную точку μ ( fLf:L→L . Далее, мы можем думать о типах в теории типов как о формировании решетки при доказуемости. То есть, тип S ниже T , если истина S влечетсобойчто из T . Теперь, что мы хотели бы сделать, это взять монотонный оператор Fμ(f)STSTF для типов и использовать Кнастера-Тарского, чтобы получить интерпретацию наименее неподвижной точки этого оператора. . μ(F)
Однако типы в теории типов - это не просто решетка: они образуют категорию. То есть, учитывая два типа и T , есть потенциально много способов для S , чтобы быть ниже Т с одним способом для каждого доказательства е : S → TSTSTe:S→T . Таким образом, оператор типа также должен сделать что-то разумное в этих доказательствах. Подходящим обобщением монотонности является функториальность . То есть мы хотим, чтобы F имел оператор над типами, а также имел действие над доказательствами, например, если e : S → T , то F (FFe:S→T .F(e):F(S)→F(T)
Теперь функториальность сохраняется с помощью сумм и произведений (т. Е. Если и G являются эндофункторами на типах, то F + G и F × G (действующие точечно) также являются функторами на типах (предполагая, что в нашей алгебре есть суммы и произведения). типы). Однако оно не сохраняется функциональным пространством, так как экспоненциальный бифунктор F → G является контравариантным в своем левом аргументе. Поэтому, когда вы пишете определение индуктивного типа, вы определяете функтор, который принимает наименьшую фиксированную точку. Чтобы убедиться, что это действительно функтор, вам нужно исключить вхождения рекурсивного параметра в левой части функциональных пространств - отсюда и проверка положительности.FGF+GF×GF→G
Обычно исключают непредсказуемость (в смысле Системы F), потому что это принцип, который заставляет вас выбирать между классической логикой и теоретико-множественными моделями. Вы не можете интерпретировать типы как наборы в классической теории множеств, если у вас есть индексация в F-стиле. (См. Знаменитое «Полиморфизм Рейнольдса не является теоретико-множественным».)
Категорически непредсказуемость в стиле F говорит о том, что категория типов и терминов образует небольшую законченную категорию (то есть, homs и объекты являются обоими наборами, и существуют ограничения для всех маленьких диаграмм). Классически это заставляет категорию быть сетом. Многие конструктивисты конструктивны, потому что они хотят, чтобы их теоремы содержались в большем количестве систем, чем просто классическая логика, и поэтому они не хотят доказывать что-либо, что было бы классически ложным. Следовательно, они опасаются непредсказуемого полиморфизма.
Тем не менее, полиморфизм позволяет вам сказать много условий, которые классически «велики» внутри вашей теории типов - и положительность является одним из них! Оператор типа является функториальным, если вы можете создать полиморфный термин:F
Fmap:∀α,β.(α→β)→(F(α)→F(β))
Видите, как это соответствует функториальности? IMO, это был бы очень хороший вариант, чтобы иметь в Coq, так как это позволило бы вам сделать общее программирование намного проще. Синтаксическая природа проверки положительности является большим препятствием для общего программирования, и я был бы рад обменять возможность классических аксиом на более гибкие функциональные программы.
РЕДАКТИРОВАТЬ: Вопрос, который вы спрашиваете о разнице между Prop и Set, возникает из-за того, что разработчики Coq хотят разрешить вам думать о теоремах Coq, если хотите, в наивных теоретико-множественных терминах, не заставляя вас делать это. Технически они разделяют Prop и Set, а затем запрещают сетам зависеть от вычислительного содержания Prop.
Таким образом, вы можете интерпретировать Prop как истинные значения в ZFC, которые являются логическими значениями true и false. В этом мире все доказательства предложений равны, и поэтому очевидно, что вы не сможете перейти к доказательству предложения. Таким образом, запрет на множества в зависимости от вычислительного содержания доказательств Prop абсолютно разумен. Кроме того, двухэлементная булева решетка, очевидно, является полной решеткой, поэтому она должна поддерживать индексирование с непредсказуемостью, поскольку существуют произвольные множественные числа. Ограничение предикативности для множеств возникает из-за того факта (упомянутого выше), что индексация в F-стиле вырождена в классических теоретико-множественных моделях.
У Coq есть и другие модели (это конструктивная логика!), Но дело в том, что с полки она никогда не докажет ничего, что могло бы озадачить классического математика.
Inductive Blah : Prop := Foo : (Blah -> Blah) -> Blah
же, как и все остальное?Inductive prop : Prop := prop_intro : Prop -> prop.
противInductive set : Set := set_intro: Set -> set.
. Почему различие, если предсказуемость не имеет отношения к индуктивному определению?Type@{i}
, должен, по крайней мере, жить в большей вселеннойType@{i+1}
.Существует очень глубокая связь между индуктивными определениями и непредсказуемостью, но, насколько я понимаю, в контексте того, о чем вы говорите, (im) предикативность не особенно актуальна, и тест предназначен исключительно для гарантии монотонности, так что теория с фиксированной точкой может быть применяется, а именно, что принцип индукции четко определен. (Я хочу быть исправленным в этом пункте.)
В этом выступлении Коквандом рассматривается связь между непредсказуемостью и индуктивными определениями . Возвращается к некоторым результатам 50-х годов Дж. Такеути о том, что предикативные определения могут быть сведены к индуктивным определениям. Книга
дает хороший анализ темы, если вы можете получить в свои руки это. Эти слайды дают обзор.
источник
Просто, чтобы завершить превосходное объяснение Нейла, непредсказуемость имеет «мягкий» смысл: определение наборов или коллекций с использованием ссылки на себя. В этом смысле:
является предикативным определением, так как оно определяет индуктивный тип, Lam использует функциональное пространство (Lam -> Lam), которое ссылается на саму коллекцию. В этой ситуации непредсказуемость вредна : можно использовать теорему Кантора, чтобы доказать Ложь. Фактически это та же самая марка непредсказуемости, которая обесценивает наивную теорию множеств как непротиворечивую основу для математики. Поэтому запрещено в Coq. Другая форма impredicativity будет позволена, как вы знаете:
Определение Единицы как предложения делает ссылку на совокупность всех предложений, членом которых она является. Однако, по причинам, несколько неясным для меня, эта непредсказуемость не вредна, поскольку она присутствует в ZFC (в форме неограниченного понимания ), который, как известно, не является противоречивым.
В заключение следует отметить, что отрицательные вхождения индуктивных типов в определениях - это одна из форм неуместности, но не та, которую обычно называют, когда речь идет о CoC как о непредсказуемой структуре .
источник
-impredicative-set
в своей книге: adam.chlipala.net/cpdt/html/Universes.html , и упоминает некоторые ограничения на устранение, но это также неясно для меня.