Одинарная параметричность против двоичной параметричности


15

Недавно я очень заинтересовался параметричностью после просмотра статьи LICS Бернарди и Мулена 2012 года ( https://dl.acm.org/citation.cfm?id=2359499 ). В этой статье они усваивают унарную параметричность в системе чистого типа с зависимыми типами и подсказывают, как можно расширить конструкцию до произвольных арностей.

Я видел только двоичную параметричность, определенную ранее. Мой вопрос: что является примером интересной теоремы, которую можно доказать с помощью бинарной параметричности, но не с унарной параметрическостью? Также было бы интересно увидеть пример теоремы, доказуемой третичной параметричностью, но не бинарной (хотя я видел доказательства того, что n-параметричность эквивалентна для n> = 2: см. Http: //www.sato.kuis .kyoto-u.ac.jp / ~ takeuti / art / par-tlca.ps.gz )

Ответы:


12

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

Обычно вы используете унарную модель, если все, что вас интересует, это унарное свойство. Например, см. Наш недавний проект « Поверхностно-субструктурные типы» , в котором мы доказываем результат правильности типа, используя унарную модель. Поскольку разумность говорит о поведении одной программы (если то она либо расходится, либо уменьшается до значения v : A ), унарной модели достаточно. Если бы мы хотели дополнительно доказать эквивалентность программы, нам понадобилась бы бинарная модель.е:Av:A

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

Определение «отношения» и «отношения идентичности» в параметричности на самом деле немного подходит, и эта свобода действительно необходима, если вы хотите поддерживать причудливые типы, такие как более высокие или зависимые типы, или хотите работать с более интересными семантическими структурами. Наиболее доступное изложение, которое я знаю, находится в проекте Боба Атки « Реляционная параметричность для высших видов» .

Если у вас хороший аппетит к теории категорий, это было впервые сформулировано Розолини абстрактно в его статье « Рефлексивные графы и параметрический полиморфизм» . С тех пор он был развит Данфи и Редди в их работе « Параметрические пределы» , а также Биркедалом, Могельбергом и Петерсеном в « Теоретических моделях параметрического полиморфизма» .


5

Это должен быть комментарий к ответу Нила, но он немного длинный. По подсказке Расмуса Петерсена я обнаружил в тезисе Мегельберга следующее (подчеркну мое):

Ивар Руммельхофф [36] изучил кодирование натуральных чисел в моделях для разных PCA и показал, что в некоторых из этих моделей кодирование содержит больше, чем натуральные числа. Таким образом, эти модели не могут быть параметрическими. Даже если он не упоминает об этом, это показывает, что унарная параметричность отличается от бинарной (реляционной) параметричности, поскольку можно легко показать, что кодирование натуральных чисел в любой модели является унарным параметрическим.

Цитируемая статья - Полинат в PER-моделях .


3

NNр(N+1)р'(Икс,Y)р(Икс)Yзнак равноИксяя[1 ..N]NN+1N+1N, Поскольку большее число отношений означает более сильную параметричность, а меньшее количество семейств функций будет считаться «параметрическим», мы понимаем, что «истинная параметричность» - это то, что мы получаем в пределе, и каждая конечная параметричность является приближением к ней.

Эти бесконечные отношения были формализованы как «логические отношения Крипке различной арности», также называемые отношениями Юнга-Тьюрина. Юнг и Тьюрин показали, что такой бесконечной параметричности достаточно, чтобы охарактеризовать лямбда-определимость, а О'Хирн и Рике показали, что этого достаточно, чтобы охарактеризовать полностью абстрактные модели для языков программирования, включая последовательную PCF. Это фундаментальные и прекрасные результаты!

Таким образом, унарная параметричность является самым простым и наименее выразительным приближением истинной параметричности, а двоичная параметричность становится немного лучше. Ваш вопрос "насколько лучше"? У меня сложилось впечатление, что это намного лучше. Причина в том, что на унарном уровне «отношение идентичности» является отношением «все-истинно», что не очень много значит. На двоичном уровне «отношение идентичности» является равенством. Таким образом, вы получаете внезапный скачок мощности параметрическости при переходе от унарного к бинарному уровню. После этого он становится все более изысканным.

Курт Зибер детально изучил эти вопросы: на предмет последовательности и на языках, подобных Алголу .


2

Вероятно, самая простая статья для приложений двоичной параметричности - это « Теоремы Вадлера бесплатно»! ,

На самом деле, я немного удивлен этим вопросом, потому что двоичная параметричность - это то, что чаще всего упоминается в параметрических работах. Даже оригинальная статья Рейнольдса «Типы, абстракция и параметрический полиморфизм» упоминает об этом повсюду. Это скорее унарная параметричность, которая широко не известна.


Это отличная статья, но я знаком с бинарной параметричностью - я хотел получить четкое объяснение того, почему бинарная параметричность является более мощной, чем унарная параметрическость.
Кристофер Монсанто

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