Какова роль предикативности в индуктивных определениях в теории типов?


16

Мы часто хотим определить объект соответствии с некоторыми правилами вывода. Эти правила обозначают производящую функцию F , которая, когда она монотонна, возвращающую мере неподвижную точку М F . Возьму А : = μ F , чтобы быть «индуктивным определением» А . Кроме того, монотонность F позволяет нам рассуждать с «принципом индукции», чтобы определить, когда множество содержит A (то есть когда свойство универсально выполняется на A ).AUFμFA:=μFAFAA

В Coq это соответствует написанию определения А с точкой зрения внедрения явной. Хотя это определение обозначает конкретную функцию F , эта функция не обязательно является монотонной. Поэтому Coq использует некоторые синтаксические проверки, чтобы гарантировать «правильность» определения. В некотором приближении он отклоняет вхождения A в отрицательные позиции в типах вводных терминов.InductiveAFA

(Если мое понимание до этого момента неверно, пожалуйста, поправьте меня!)

Сначала несколько вопросов в контексте Coq:

1) Синтаксическая проверка в Coq просто служит для гарантии того, что определение является предикативнымA ? (Если это так, является ли непредсказуемость единственным способом, которым определение будет плохо определено?) Или оно проверяет монотонность? (Соответственно, разве немонотонность может убить его?)

2) Есть ли такое отрицательное вхождение обязательно означает , что определение «ы является непредикативным / немонотонным? Или Coq просто не в состоянии проверить, что он хорошо определен в этом случае?AA

И в целом:

3) Какова связь между предсказуемостью индуктивного определения и монотонностью порождающей функции этого определения? Это две стороны одной медали? Они не связаны? Неофициально, какой из них важнее?

Ответы:


14

Нет, в этом случае предсказуемость и монотонность не тесно связаны.

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

Вот как следует думать об индуктивных типах в терминах решеток и монотонных операторов. Напомним, что теорема Кнастера-Тарского гласит, что на полной решетке каждый монотонный оператор f : L L имеет наименьшую неподвижную точку μ ( fLf:LL . Далее, мы можем думать о типах в теории типов как о формировании решетки при доказуемости. То есть, тип S ниже T , если истина S влечетсобойчто из T . Теперь, что мы хотели бы сделать, это взять монотонный оператор Fμ(f)STSTF для типов и использовать Кнастера-Тарского, чтобы получить интерпретацию наименее неподвижной точки этого оператора. . μ(F)

Однако типы в теории типов - это не просто решетка: они образуют категорию. То есть, учитывая два типа и T , есть потенциально много способов для S , чтобы быть ниже Т с одним способом для каждого доказательства е : S TSTSTe:ST . Таким образом, оператор типа также должен сделать что-то разумное в этих доказательствах. Подходящим обобщением монотонности является функториальность . То есть мы хотим, чтобы F имел оператор над типами, а также имел действие над доказательствами, например, если e : S T , то F (FFe:ST .F(e):F(S)F(T)

Теперь функториальность сохраняется с помощью сумм и произведений (т. Е. Если и G являются эндофункторами на типах, то F + G и F × G (действующие точечно) также являются функторами на типах (предполагая, что в нашей алгебре есть суммы и произведения). типы). Однако оно не сохраняется функциональным пространством, так как экспоненциальный бифунктор F G является контравариантным в своем левом аргументе. Поэтому, когда вы пишете определение индуктивного типа, вы определяете функтор, который принимает наименьшую фиксированную точку. Чтобы убедиться, что это действительно функтор, вам нужно исключить вхождения рекурсивного параметра в левой части функциональных пространств - отсюда и проверка положительности.FGF+GF×GFG

Обычно исключают непредсказуемость (в смысле Системы F), потому что это принцип, который заставляет вас выбирать между классической логикой и теоретико-множественными моделями. Вы не можете интерпретировать типы как наборы в классической теории множеств, если у вас есть индексация в F-стиле. (См. Знаменитое «Полиморфизм Рейнольдса не является теоретико-множественным».)

Категорически непредсказуемость в стиле F говорит о том, что категория типов и терминов образует небольшую законченную категорию (то есть, homs и объекты являются обоими наборами, и существуют ограничения для всех маленьких диаграмм). Классически это заставляет категорию быть сетом. Многие конструктивисты конструктивны, потому что они хотят, чтобы их теоремы содержались в большем количестве систем, чем просто классическая логика, и поэтому они не хотят доказывать что-либо, что было бы классически ложным. Следовательно, они опасаются непредсказуемого полиморфизма.

Тем не менее, полиморфизм позволяет вам сказать много условий, которые классически «велики» внутри вашей теории типов - и положительность является одним из них! Оператор типа является функториальным, если вы можете создать полиморфный термин:F

Fmap:α,β.(αβ)(F(α)F(β))

Видите, как это соответствует функториальности? IMO, это был бы очень хороший вариант, чтобы иметь в Coq, так как это позволило бы вам сделать общее программирование намного проще. Синтаксическая природа проверки положительности является большим препятствием для общего программирования, и я был бы рад обменять возможность классических аксиом на более гибкие функциональные программы.

РЕДАКТИРОВАТЬ: Вопрос, который вы спрашиваете о разнице между Prop и Set, возникает из-за того, что разработчики Coq хотят разрешить вам думать о теоремах Coq, если хотите, в наивных теоретико-множественных терминах, не заставляя вас делать это. Технически они разделяют Prop и Set, а затем запрещают сетам зависеть от вычислительного содержания Prop.

Таким образом, вы можете интерпретировать Prop как истинные значения в ZFC, которые являются логическими значениями true и false. В этом мире все доказательства предложений равны, и поэтому очевидно, что вы не сможете перейти к доказательству предложения. Таким образом, запрет на множества в зависимости от вычислительного содержания доказательств Prop абсолютно разумен. Кроме того, двухэлементная булева решетка, очевидно, является полной решеткой, поэтому она должна поддерживать индексирование с непредсказуемостью, поскольку существуют произвольные множественные числа. Ограничение предикативности для множеств возникает из-за того факта (упомянутого выше), что индексация в F-стиле вырождена в классических теоретико-множественных моделях.

У Coq есть и другие модели (это конструктивная логика!), Но дело в том, что с полки она никогда не докажет ничего, что могло бы озадачить классического математика.


FPropSetType

Я не понимаю ваш вопрос: Coq ненавидит так Inductive Blah : Prop := Foo : (Blah -> Blah) -> Blahже, как и все остальное?
Нил Кришнасвами

1
Ах, возможно, я ошибочно принимаю проверку положительности на другую проверку, связанную с непредсказуемостью. Считай Inductive prop : Prop := prop_intro : Prop -> prop.против Inductive set : Set := set_intro: Set -> set.. Почему различие, если предсказуемость не имеет отношения к индуктивному определению?
Скотт Килпатрик

@ScottKilpatrick: это действительно другая проверка, и о (im) предвидении. Необыкновенно сильные сигма-типы позволяют кодировать парадокс Жирара, поэтому тип данных, хранящий члена какой-то вселенной, скажем Type@{i}, должен, по крайней мере, жить в большей вселенной Type@{i+1}.
Blaisorblade

6

Существует очень глубокая связь между индуктивными определениями и непредсказуемостью, но, насколько я понимаю, в контексте того, о чем вы говорите, (im) предикативность не особенно актуальна, и тест предназначен исключительно для гарантии монотонности, так что теория с фиксированной точкой может быть применяется, а именно, что принцип индукции четко определен. (Я хочу быть исправленным в этом пункте.)

В этом выступлении Коквандом рассматривается связь между непредсказуемостью и индуктивными определениями . Возвращается к некоторым результатам 50-х годов Дж. Такеути о том, что предикативные определения могут быть сведены к индуктивным определениям. Книга

  • Доказательная теория импредикативных подсистем анализа - монографии и учебники по физике 2 У. Бухгольца, К. Шютте

дает хороший анализ темы, если вы можете получить в свои руки это. Эти слайды дают обзор.


4

Просто, чтобы завершить превосходное объяснение Нейла, непредсказуемость имеет «мягкий» смысл: определение наборов или коллекций с использованием ссылки на себя. В этом смысле:

Inductive Lam : Set :=
| Var : Nat -> Lam
| App : Lam -> Lam -> Lam
| Abs : (Lam -> Lam) -> Lam

является предикативным определением, так как оно определяет индуктивный тип, Lam использует функциональное пространство (Lam -> Lam), которое ссылается на саму коллекцию. В этой ситуации непредсказуемость вредна : можно использовать теорему Кантора, чтобы доказать Ложь. Фактически это та же самая марка непредсказуемости, которая обесценивает наивную теорию множеств как непротиворечивую основу для математики. Поэтому запрещено в Coq. Другая форма impredicativity будет позволена, как вы знаете:

Definition Unit : Prop := forall X:Prop, X -> X

Определение Единицы как предложения делает ссылку на совокупность всех предложений, членом которых она является. Однако, по причинам, несколько неясным для меня, эта непредсказуемость не вредна, поскольку она присутствует в ZFC (в форме неограниченного понимания ), который, как известно, не является противоречивым.

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


Я понимаю, что вы говорите, что ZFC имеет неограниченное понимание. Но это звучит неправильно - math.stackexchange.com/q/24507/79293 . Члипала обсуждает это, обсуждая -impredicative-setв своей книге: adam.chlipala.net/cpdt/html/Universes.html , и упоминает некоторые ограничения на устранение, но это также неясно для меня.
Blaisorblade

1
Не следует путать неограниченное понимание и неограниченное понимание . Последнее просто означает, что вы можете сформировать подмножества данного набораAвзяв расширение любой формулы с одной свободной переменной, а не только формул с ограниченными кванторами (квантификаторы видаИксВ или ИксВ). Ограниченная версия значительно слабее, поскольку такие вещи, как наименьшие верхние границы, трудно / невозможно определить. Смотрите это, например.
Коди

Ах, спасибо! Я также вижу, как вышеупомянутая непредсказуемость совпадает с той, что была в ZFC (хотя карта, которую я использую, вероятно, слишком наивна). Можете добавить ссылку в ответ?
Blaisorblade

К сожалению, это кажется трудным для Google (или я не знаю правильных ключевых слов). Что еще хуже, и в Википедии, и в nLab проводится различие между «ограниченным пониманием» (в ZFCen.wikipedia.org/wiki/Axiom_schema_of_specification) and "restricted/bounded separation" (what you linked to). See ncatlab.org/nlab/show/axiom+of+separation. But all this terminology looks like a misunderstanding waiting to happen — I usually reason that "separation ~ comprehension", like you and the author mathforum.org/kb/message.jspa?messageID=4492130 do, too.
Blaisorblade

Возможно, лучшими ключевыми словами для такого рода дискуссий являются «Конструктивная теория множеств», см., Например, Википедию или эту очень хорошую статью Ратхена.
Коди
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.