Unäre Parametrizität vs. binäre Parametrizität


15

Ich habe mich in letzter Zeit ziemlich für Parametrizität interessiert, nachdem ich Bernardys und Moulins LICS-Artikel 2012 ( https://dl.acm.org/citation.cfm?id=2359499 ) gelesen habe . In diesem Artikel verinnerlichen sie unäre Parametrizität in einem reinen Typensystem mit abhängigen Typen und geben Hinweise, wie Sie die Konstruktion auf beliebige Aritäten erweitern können.

Ich habe nur zuvor definierte binäre Parametrizität gesehen. Meine Frage ist: Was ist ein Beispiel für ein interessantes Theorem, das mit binärer Parametrizität, aber nicht mit unärer Parametrizität bewiesen werden kann? Es wäre auch interessant, ein Beispiel eines Theorems zu sehen, das mit tertiärer Parametrizität beweisbar ist, aber nicht mit binärer (obwohl ich Beweise dafür gesehen habe, dass n-Parametrizität für n> = 2 äquivalent ist: siehe http: //www.sato.kuis .kyoto-u.ac.jp / ~ takeuti / art / par-tlca.ps.gz )

Antworten:


12

Normalerweise verwenden Sie die binäre Parametrizität, um Programmäquivalenzen zu beweisen. Es ist unnatürlich, dies mit einem unären Modell zu tun, da es sich jeweils nur um ein Programm handelt.

Normalerweise verwenden Sie ein unäres Modell, wenn Sie nur an einer unären Eigenschaft interessiert sind. Sehen Sie sich zum Beispiel unseren jüngsten Entwurf an, Oberflächliche Unterstrukturtypen , in dem wir ein Ergebnis der Typzuverlässigkeit unter Verwendung eines unären Modells nachweisen. Da es sich bei Soundness um das Verhalten eines Programms handelt (wenn dann weicht es entweder ab oder reduziert sich auf einen Wert v : A ), ist ein unäres Modell ausreichend. Wenn wir zusätzlich Programmäquivalenzen nachweisen wollten, bräuchten wir ein binäres Modell.e:EINv:EIN

EDIT: Mir ist gerade aufgefallen, dass unser Artikel wie ein einfaches altes Modell für logische Beziehungen / Realisierbarkeit aussieht. Ich sollte ein bisschen mehr darüber sagen, was es (und andere Modelle) parametrisch macht. Grundsätzlich ist ein Modell parametrisch, wenn Sie das Identitätserweiterungs-Lemma dafür nachweisen können: Wenn für einen beliebigen Typausdruck alle freien Typvariablen an Identitätsbeziehungen gebunden sind, ist der Typausdruck die Identitätsbeziehung. Wir beweisen es nicht explizit als Lemma (ich weiß nicht warum, aber Sie müssen es selten tun, wenn Sie Betriebsmodelle ausführen), aber diese Eigenschaft ist für die Solidität unserer Sprache von wesentlicher Bedeutung.

Die Definition von "Relation" und "Identitätsrelation" in Bezug auf die Parametrizität ist tatsächlich ein wenig zu gewinnen, und diese Freiheit ist tatsächlich wesentlich, wenn Sie ausgefallene Typen wie höhere oder abhängige Typen unterstützen oder mit schickeren semantischen Strukturen arbeiten möchten. Der am leichtesten zugängliche Bericht darüber, den ich kenne, ist in Bob Atkeys Entwurf für Relational Parametricity for Higher Kinds .

Wenn Sie einen guten Appetit auf Kategorietheorie haben, wurde dies zuerst von Rosolini in seinem Aufsatz Reflexive Graphen und Parametrischer Polymorphismus abstrakt formuliert . Es wurde seitdem von Dunphy und Reddy in ihrer Arbeit Parametric Limits sowie von Birkedal, Møgelberg und Petersen in domänentheoretischen Modellen des parametrischen Polymorphismus weiterentwickelt .


5

Dies sollte ein Kommentar zu Neels Antwort sein, aber es ist ein bisschen lang. Auf Anregung eines Hinweises von Rasmus Petersen fand ich in Møgelbergs These Folgendes (betonen Sie meine):

Ivar Rummelhoff [36] hat die Kodierung natürlicher Zahlen in Per-Modellen über verschiedene PCAs untersucht und gezeigt, dass in einigen dieser Modelle die Kodierung mehr als natürliche Zahlen enthält. Diese Modelle können also nicht parametrisch sein. Auch wenn er es nicht erwähnt, zeigt dies, dass sich die unäre Parametrizität von der binären (relationalen) Parametrizität unterscheidet, da man leicht nachweisen kann, dass die Kodierung der natürlichen Zahlen in jedem Modell unär parametrisch ist.

Das zitierte Papier ist Polynat in PER-Modellen .


3

nnR(n+1)R(x,y)R(x)y=xichich[1 ..n]nn+1n+1n. Da mehr Beziehungen eine stärkere Parametrizität bedeuten und weniger Funktionsfamilien als "parametrisch" angesehen würden, verstehen wir, dass "wahre Parametrizität" das ist, was wir an der Grenze erhalten, und jede finitäre Parametrizität ist eine Annäherung an diese.

Diese unendlichen Beziehungen wurden als "logische Kripke-Beziehungen unterschiedlicher Art", auch Jung-Tiuryn-Beziehungen genannt, formalisiert. Jung und Tiuryn ​​haben gezeigt, dass eine solche infinitäre Parametrizität ausreicht, um die Lambda-Definierbarkeit zu charakterisieren, und O'Hearn und Riecke haben gezeigt, dass es ausreicht, vollständig abstrakte Modelle für Programmiersprachen, einschließlich sequentieller PCF, zu charakterisieren. Das sind grundlegende und schöne Ergebnisse!

Somit ist die unäre Parametrizität die einfachste und am wenigsten aussagekräftige Annäherung an die wahre Parametrizität, und die binäre Parametrizität wird ein wenig besser. Ihre Frage ist "wie viel besser"? Mein Eindruck ist, dass es viel besser ist. Der Grund ist, dass die "Identitätsbeziehung" auf unärer Ebene die allwahre Beziehung ist, die nicht sehr viel bedeutet. Auf der binären Ebene ist die "Identitätsbeziehung" Gleichheit. So erhalten Sie einen plötzlichen Sprung in der Macht der Parametrizität beim Übergang von der unären zur binären Ebene. Danach wird es zunehmend verfeinert.

Kurt Sieber hat sich eingehend mit diesen Themen befasst: der Abfolge halber und mit algolähnlichen Sprachen .


2

Wahrscheinlich ist Wadlers Theorems for Free das am einfachsten zu lesende Dokument für die Anwendung der binären Parametrizität ! .

Eigentlich wundert mich die Frage ein wenig, denn binäre Parametrizität wird in Parametrizitätspapieren am häufigsten erwähnt. Sogar das Originalpapier von Reynolds "Typen, Abstraktion und parametrischer Polymorphismus" erwähnt es überall. Es ist eher die unäre Parametrizität, die nicht allgemein bekannt ist.


Das ist eine großartige Arbeit, aber ich kenne mich mit binärer Parametrizität aus - was ich wollte, war eine klare Erklärung, warum binäre Parametrizität mächtiger ist als unäre Parametrizität.
Christopher Monsanto

Ich habe jetzt einige Ausarbeitungen hinzugefügt, von denen ich dachte, dass sie offensichtlich waren, aber sie sind nicht allgemein bekannt. Es scheint also gut, dies hier zu dokumentieren.
Uday Reddy
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.