Унарна параметричність проти двійкової параметричності


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 ), одинарної моделі достатньо. Якби ми хотіли довести додаткові еквівалентності програми, нам би потрібна двійкова модель.е:Аv:А

EDIT: Я щойно зрозумів, що якщо ви подивитесь на нашу статтю, це просто схожа на звичайну стару модель логічних відносин / реалізації. Слід сказати трохи більше про те, що робить його (та інші моделі) параметричними. В основному модель є параметричною, коли ви можете довести лему розширення ідентичності для неї: тобто для будь-якого виразу типу, якщо всі змінні вільного типу пов'язані з відносинами ідентичності, тоді вираз типу є відношенням ідентичності. Ми прямо не доводимо це як лемму (я не знаю чому, але вам це рідко потрібно, коли ви робите оперативні моделі), але ця властивість є важливою для міцності нашої мови.

Визначення параметричності "відношення" та "відношення ідентичності" насправді є дещо схожим на захоплення, і ця свобода насправді є важливою, якщо ви хочете підтримувати вигадливі типи, такі як вищі або залежні типи, або хочете працювати з химернішими семантичними структурами. Найдоступніший розповідь про це, що я знаю, - у проекті документа Боба Аткі Реляційна параметричність для вищих видів .

Якщо у вас є гарний апетит до теорії категорій, це вперше було сформульовано абстрактно Росоліні у своїй роботі « Рефлексивні графіки та параметричний поліморфізм» . З цього часу Данфі та Редді були розроблені далі у своїй роботі Параметричні межі , а також Біркедалом, Могельбергом та Петерсеном у доменно -теоретичних моделях параметричного поліморфізму .


5

Це має бути коментарем до відповіді Ніла, але це трохи довго. Запропонований натяком від Расмуса Петерсена, я виявив у дисертації Мегельберга наступне (підкресли моє):

Івар Руммельхоф [36] вивчав кодування натуральних чисел у моделях на різних ПКС і показав, що в деяких із цих моделей кодування містить більше, ніж натуральних чисел. Тому ці моделі не можуть бути параметричними. Хоча він і не згадує про це, це свідчить про те, що одинарна параметричність відрізняється від бінарної (реляційної) параметричності, оскільки можна легко показати, що кодування натуральних чисел у будь-якій кожній моделі не є параметричною.

Цитований папір є Polynat в PER-моделях .


3

ннR(н+1)R'(х,у)R(х)у=хii[1.н]нн+1н+1н. Оскільки більше співвідношень означає сильнішу параметричність, а менша кількість функціональних сімей вважатиметься "параметричною", ми розуміємо, що "справжня параметричність" - це те, що ми отримуємо в межах, і кожна остаточна параметричність є наближенням до неї.

Ці інфінітарні відносини були формалізовані як "логічні відносини Крипке різної спадщини", які також називаються відносинами Юнга-Тюрина. Юнг і Тюрін показали, що такої інфінітарної параметричності достатньо, щоб охарактеризувати лямбда-визначеність, а О'Герн і Рікке показали, що досить характеризувати повністю абстрактні моделі для мов програмування, включаючи послідовну PCF. Це фундаментальні та красиві результати!

Таким чином, одинарна параметричність є найпростішим і найменш виразним наближенням справжньої параметричності, а двійкова параметричність стає трохи кращою. Ваше питання "наскільки краще"? Моє враження, що це набагато краще. Причина полягає в тому, що на одинарному рівні "відношення ідентичності" - це всеістинне відношення, що не означає дуже багато. На бінарному рівні "відношення ідентичності" - це рівність. Отже, ви отримуєте раптовий стрибок сили параметричності при переході від одинарного до бінарного рівня. Після цього він все більше вдосконалюється.

Курт Зібер вивчив ці питання досить глибоко: для послідовності та для алгольських мов .


2

Мабуть, найпростіший документ для читання для додатків бінарної параметричності - теореми Вадлера безкоштовно! .

Власне, я трохи здивований питанням, оскільки двійкова параметричність - це те, що найчастіше згадується в документах про параметричність. Навіть оригінальний документ Рейнольдса "Типи, абстракція та параметричний поліморфізм" згадує його скрізь. Це швидше не відома параметричність одинарної параметричності.


Це чудовий документ, але я знайомий з бінарною параметричністю - те, що я хотів, було чітким поясненням того, чому бінарна параметричність є більш потужною, ніж унарна параметричність.
Крістофер Монсанто

Зараз я додав деякі розробки, які, на мою думку, могли бути очевидними, але вони не широко відомі. Отже, здається, це добре документувати тут.
Удай Редді
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.