Kostenlos in Wadlers rekursiven Typen! [1] demonstrierte er zwei Typen, und , und behauptete, dass sie dual sind . Insbesondere wies er darauf hin, dass der Typ ist nicht das Duale des ersteren. Es scheint, dass sich die fragliche Dualität von der De Morgan-Dualität in der Logik unterscheidet. Ich frage mich, wie die Dualität von Typen definiert ist, speziell für die drei genannten Typen, warum die zweite dual ist von der ersten, während die dritte nicht. Vielen Dank.
[1] http://homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/free-rectypes.txt
Antworten:
In diesem Zusammenhang bezieht sich die Dualität auf den kleinsten Fixpunkt in einem Fall und den größten Fixpunkt im anderen. Wir sollten versuchen zu verstehen, in welchem Sinne und sind die "mindestens" und "höchste" -Lösungen der rekursiven Gleichung F ( X ) ≅ X .G = ∃ X . ( X → F ( X ) ) × XL=∀X.(F(X)→X)→X G=∃X.(X→F(X))×X F(X)≅X
Erstens sind und G in der Tat Fixpunkte (unter bestimmten technischen Voraussetzungen, die die Natur von F einschränken ), weil die Vergleichskarten v : F ( L ) → L und w : G → F ( G ) durch v gegeben sindL G F v : F( L ) → L w : G → F( G )
und
W ( X , ( f , x ) ) = F ( λ y : X
Angenommen , ist eine beliebige Lösung F ( Y ) ≅ Y mit einer vermittelnden Isomorphismus U : F ( Y ) → Y . Dann haben wir kanonische Karten α : L → Y und β : Y → G, die durch α definiert sindY F(Y)≅Y u:F(Y)→Y
In der Praxis sind die wenigsten Lösungen eifrige Datentypen und die größten Lösungen sind verzögerte Datentypen. Wenn zum Beispiel dann im ersten Fall erhalten wir endlich Listen A ‚s und in den zweiten endlichen und unendliche Listen A ‘ s.F(X)=1+A×X A A
quelle
w'
ein Isomorphismus ist, aber gibt es Ihnen eine gültige Kohlegebra? (Ich vermute, dass es sollte, aber ich könnte mich irren ...) Sieht nicht so aus, als würde der Platz pendeln.Die Antwort kann durch die Linse der F-Algebren kategorisch verstanden werden . Die kategoriale Darstellung eines rekursiven Typs in einer Kategorie C kann grob mit einem Funktor F : C → C angegeben werden . Man arbeitet dann in der Kategorie der F- Algebren mitI C F:C→C F
als Pfeile: Quadrate
Jetzt die rekursive Art von dargestellt wird F , I muss in den Anfang in dieser Kategorie: Wir brauchenI F I
Nun definieren . Es ist ziemlich klar , wie zu bauen f o l d : nur nehmen f o l d = λ i : I . i A α : I → A - Gebäude i n ein wenig komplizierter ist, erklärt Wadler es, so dass ich nicht versuchen. Beachten Sie jedoch, dass F ein Funktor sein mussI=∀X.(F(X)→X)→X fold
Jetzt wollen wir in der Kategorietheorie oft die Situation betrachten, in der alle Pfeile umgekehrt sind. In diesem Fall können wir bei gegebenem die Kategorie der F- Kohlegebren mit betrachtenF F
Nun wollen wir die untersuchen Terminal Objekt dieser Kategorie. Die Anforderungen sind nun umgekehrt:T
Wie machen wir das? Nun , wie Wadler schreibt vor, nehmen wir . In ähnlicher Weise als vorher, haben wir c o f o l d = λ z : Z . ( Z , ω , z ) : Z → T Diese Konstruktion hätte nicht funktioniert, wenn wir stattdessen T = ∃ X genommen hätten . X → ( XT=∃X.(X→F(X))×X
quelle
Nach meiner Erfahrung besteht ein guter und praktischer Weg, die Dualität von Typen für Kalkuli zu verstehen , darin, π- Kalkulus zu durchlaufen.λ π
Wenn Sie Typen in Prozesskalküle übersetzen (zerlegen), wird die Dualität einfach: Eingabe ist dual zu Ausgabe und umgekehrt . Die Dualität hat nicht (viel) mehr zu bieten.
Was bedeutet die universelle Quantifizierung auf Prozessebene? Es gibt eine einfache Interpretation: Wenn Daten von einer Typvariablen eingegeben werden, können sie nicht als Subjekt einer Ausgabe, sondern nur als Objekt verwendet werden. Wir können diese Daten also nicht einsehen, nur weitergeben oder vergessen.
Die Theorie dazu wurde in [1, 2, 3] und einigen anderen, schwer zugänglichen Arbeiten detailliert ausgearbeitet und bezieht sich sehr genau auf die polarisierte lineare Logik und ihren Dualitätsbegriff in 4 .
4 K. Honda et al., Eine genaue Entsprechung zwischen einem typisierten Pi-Kalkül und polarisierten Beweisnetzen .
5 R. Milner, Funktionen als Prozesse .
quelle