Wie ist die Dualität von Typen definiert?

12

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.X.(F(X)X)XX.(XF(X))×XX.X(XF(X))

[1] http://homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/free-rectypes.txt

Tag
quelle
Ich werde hier nicht viel helfen, aber es klingt kategorietheoretisch.
Anthony

Antworten:

8

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)XG=X.(XF(X))×XF(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 sindLGFv:F(L)Lw:GF(G) und W ( X , ( f , x ) ) = F ( λ y : X

vxXg=g(F(λh:L.hXg)x)
sind Isomorphismen. Beachten Sie, dass wir die Tatsache verwendet haben, dass F ein Funktor ist, dh es ist monoton, wenn wir es auf Funktionen angewendet haben.
w(X,(f,x))=F(λy:X.(X,(f,y)))(fx)
F

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 sind YF(Y)Yu:F(Y)Y

α:LY and β:YG
und β
αf=fYu
Daher ist L amgeringsten,weil wir daraus eine andere Lösungableiten können, und G ist amgrößten,weil wir daraus eine andere Lösung ableiten können. Wir könnten das alles präzisieren, indem wir über Anfangsalgebren und Endkohlegebren sprechen, aber ich möchte, dass meine Antwort kurz und bündig ist und Cody die Algebren trotzdem erklärt.
βy=(Y,(u1,y)).
LG

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×XAA

Andrej Bauer
quelle
Meiner Antwort fehlt der Beweis, dass und G feste Punkte sind (unter einigen Annahmen über F , die möglicherweise nicht angegeben werden). Wie schreibe ich die Vergleichskarten F ( L ) L und G F ( G ) auf ? LGFF(L)LGF(G)
Andrej Bauer
Ok, habe die Maps und w mit Coq gefunden. vw
Andrej Bauer
Es scheint , wie es ein weiterer Kandidat ist für , nämlich w ' ( X , ( f , x ) ) = F ( λ y : Xw . Kann jemand erklären, was los ist? w(X,(f,x))=F(λy:X.(X,(f,x)))(fx)
Andrej Bauer
1
Ich nehme an, Sie haben bewiesen, dass dies 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.
CA McCann
In seiner Notiz: homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/… gibt Wadler die erste Version an. Er schreibt es jedoch etwas anders: w (X, (f, x)) = F (entfalte X k) (fx). Dies lässt die Struktur der Kohlegebra klarer erscheinen und liefert fast sofort eine Kommutierung der geeigneten Kernkursmorphismen. Wie camcann sagt, denke ich, dass Ihre andere Version diese Quadrate nicht pendeln lässt.
Cody
7

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 : CC angegeben werden . Man arbeitet dann in der Kategorie der F- Algebren mitICF:CCF

  • als Objekte: Objekte von C zusammen mit einem Morphismus α : F ( A ) AAC
    α:F(A)A
  • als Pfeile: Quadrate

    F-Algebra-Morphismus

Jetzt die rekursive Art von dargestellt wird F , I muss in den Anfang in dieser Kategorie: Wir brauchenIFI

  1. Ein Morphismus in:F(I)I
  2. Für jeden -Algebra ( A , α ) ein morphism f o l d : I A , die die entsprechenden quadratischen pendeln machen.F(A,α)fold:IA

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)Xfold

fold=λi:I.i A α:IA
inF, was als Positivitätsanforderung angesehen werden kann.

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 betrachtenFF

  • Als Objekte: Objekte von C zusammen mit einem Morphismus ω : Z F ( Z )ZC
    ω:ZF(Z)
  • Als Pfeile Quadrate wie im Fall der Algebra (jedoch mit umgekehrtem α und β ).Fαβ

Nun wollen wir die untersuchen Terminal Objekt dieser Kategorie. Die Anforderungen sind nun umgekehrt:T

  1. A morphism out:TF(T)
  2. Für jeden -coalgebra Z , a morphism c o f o l d : Z T .FZcofold:ZT

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.(XF(X))×X

cofold=λz:Z.(Z,ω,z):ZT
.T=X.X(XF(X))
Cody
quelle
6

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.

πα=(Bool,Int)ααxx¯false,7α¯(v,w)vwα¯(bool,int)α¯xc(v,w).0

β=(int,(int))(v,w)vwβ¯=(int,(int))αα¯PαxQα¯xPQββ¯

X.(X,(X))(v,w)vXwXx

x(vw).w¯v
X.(X,(X))

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.

X.(X,(X))X.(X,(X))

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 .

Martin Berger
quelle
1
Betreff: Dein Punkt über die Einwohnerzahl vom Typ ∀X. (X, (X) ↑) ↓. Gibt es dann für die pi-Rechnung ein Analogon von "freien Theoremen"? Wenn ja, wo wird das besprochen?
Dominic Mulligan
1
Hallo @DominicMulligan, ja, es gibt "freie Theoreme" und wir haben dies in [1, 2] ein wenig untersucht. Ich denke, in dieser Richtung könnte noch viel mehr gesagt werden.
Martin Berger
1
@MartinBerger: Können Sie anhand der Parametrizität herausfinden, wie die "richtige" Vorstellung von Prozessäquivalenz für typisierte Pi-Berechnungen aussieht? Beispielsweise entspricht in System F die parametrische logische Beziehung der kontextuellen Äquivalenz. In Analogie würde ich erwarten, dass der Begriff der Prozessäquivalenz, der der parametrischen logischen Beziehung für die pi-Rechnung entspricht, besonders interessant ist.
Neel Krishnaswami
@NeelKrishnaswami: Ja, das ist eine interessante Frage. Wir haben dies in [2] für das pi-Kalkül-Einbettungssystem F vollständig abstrakt untersucht und die Ergebnisse für den vollständigen Abstraktionsnachweis verwendet (z. B. eine typisierte Bisimulationscharakterisierung). Ich glaube nicht, dass dies allgemeiner untersucht wurde. Zunächst einmal gibt es unendlich viele getippteπ-Calculi. Und wenn wir uns von schönen, deterministisch typisierten Fragmenten entfernen, wird es wahrscheinlich schwieriger. Fast alle bisherigen konkurrierenden Typentheorien beziehen sich auf deterministische Fragmente. Es wäre faszinierend, weitreichende Verallgemeinerungen vorzunehmen.
Martin Berger
Bisimulationsbasierte Charakterisierungen sind nützlich für das praktische Denken, da sie nicht in allen Kontexten abgeschlossen werden müssen.
Martin Berger,