Was ist das Volksmodell der linearen Logik?


23

Wahrscheinlich ist die häufigste Anwendung von linearen Typen in PL, sie zu verwenden, um Sprachen zu geben, die das Aliasing steuern (dh ein linearer Wert hat mehr oder weniger einen einzelnen Zeiger darauf).

Es gibt jedoch eine leichte Abweichung zwischen dieser Verwendung und typischen Denotationsmodellen der linearen Logik. IIRC, Benton zeigte, dass, wenn eine kartesische geschlossene Kategorie eine starke kommutative Monade hat, ihre Kategorie von Algebren symmetrisch monoidal geschlossen ist (dh ein Modell der linearen Logik). Dieser Satz gilt jedoch nicht für die Verwendung der Alias-Kontrolle, da die Zustandsmonade nicht kommutativ ist. In der Tat haben Simpson und seine Mitarbeiter in den letzten Jahren Kalküle für allgemeine starke Monaden angegeben, die nicht als Kalküle für lineare Logik bezeichnet werden.

Meine Frage ist also, was ist die Denotationssemantik linearer Sprachen mit Staat? Gibt es eine nicht degenerierte (dh Tensor ist kein kartesisches Produkt) symmetrische monoidale geschlossene Kategorie, in der Zuordnung, Lesen und lineare Aktualisierung modelliert werden können?


6
Dies ist die Art von Frage, von der ich erwarte, dass Sie Neel antworten und nicht fragen. ;-)
Marc Hamann

5
Wenn Sie Forscher für cstheory.stackoverflow.com gewinnen können, die in der Lage sind, diese Frage zu beantworten, ist die Welt ein besserer Ort dafür.
Dave Clarke

Antworten:


9

Mir scheint, dass sich die Richtung, in die Sie schauen sollten, um die Spielsemantik für allgemeine Verweise und die damit zusammenhängende Semantik für lineare Logik dreht , wie etwa die auf Conway-Spielen basierenden . Ein algebraischer Bericht über Referenzen in der Spielesemantik von Paul-André Melliès und Nicolas Tabareau ist wahrscheinlich der beste Ausgangspunkt. In diesem Artikel wird die lineare Logik zu einer sogenannten Tensorlogik gelockert, um die Dinge zum Laufen zu bringen. Da sie sich jedoch auf Conway-Spiele verlassen, besteht sicherlich ein Zusammenhang mit Modellen der linearen Logik. Sie nutzen die Linearität auch nicht wirklich wie bei linearen Typen, aber die Maschinerie ist da, wenn Sie wollen, glaube ich.

Die Arbeit von Jim Laird (wie A Game Semantics of Names and Pointers ) und Guy McCusker kann ebenfalls zu Ihrer Suche beitragen. Die kürzlich erschienene interessante Dissertation Spielesemantik für eine objektorientierte Sprache von Nicholas Wolverson treibt diese Ideen in einem OO-Setting weiter voran. Er geht im Detail auf lineares Threading ein , wobei jeweils nur eine Operation aktiv ist, und beschreibt, wie lineare Klassen hinzugefügt werden . Beide setzen auf lineare Eingabe. Auch hier ist das zugrunde liegende Modell kein Modell der linearen Logik, aber es ist eng.


1
Einfach nur neugierig Neel. Hat dir das etwas gebracht oder wusstest du schon von all dem Zeug?
Dave Clarke

T(EIN)=SEIN×S

1
Vielleicht wurde Uday Reddys globaler Zustand als unnötig angesehen: Eine Einführung in die objektbasierte Semantik, J. Lisp und Symbolic Computation, 9 (1996): 7-76.
Dave Clarke

Das lese ich gerade!
Neel Krishnaswami

7

(Meine Güte, Neel, das war eine schwierige Frage.)

Das "Volksmodell" der linearen Logik ist definitiv das kohärente Raummodell, das in Girards linearer Logik (und auch in "Proofs and Types") diskutiert wird. Dies ist nicht in dem von Ihnen beschriebenen Sinne entartet.

Ob diese Semantik Aufschluss darüber gibt, wie eine lineare funktionale Sprache implementiert werden kann, weiß ich nicht. Wenn Sie über Zuweisung, Lesen und lineare Aktualisierung sprechen, sprechen Sie tatsächlich über die Implementierung. Vielleicht könnte Ihre Frage so formuliert sein: "Wie beweise ich die Implementierung einer linearen funktionalen Sprache, die state-update verwendet, als korrekt?" Ich kenne die Antwort darauf nicht, aber ich denke, es muss in den Papieren vorhanden sein, die lineare Update-Implementierungen vorschlagen.


Tatsächlich ist es zu einfach , die Richtigkeit von Implementierungen linearer Zustände zu beweisen - Linearität ist eine so starke strukturelle Einschränkung, dass Sie für diese Beweise kaum eine Semantik benötigen. Daher kenne ich keine einfache Denotationssemantik des linearen Zustands. Die beiden Dinge, die mir am nächsten kommen, sind Ihre Arbeiten zur objektbasierten Semantik und das "Längenraummodell" von Hofmann in seiner Arbeit zur impliziten Komplexität.
Neel Krishnaswami

Eigentlich würde ich objektbasierte Semantik nicht als Modellierung eines "linearen Zustands" bezeichnen. Es ist eher "sequentieller Zustand" und "lineare Objekte", wobei der Latte durch SCI auferlegt wird. Die Spielmodelle von Idealized Algol, die im gleichen Sinne auch "objektbasiert" sind, haben nichts Lineares.
Uday Reddy

Können Sie Hinweise geben, wo solche Korrektheitsnachweise zu finden sind? (Entschuldigung, die Frage zurück zu dir!)
Uday Reddy

1
Der einfachste Soliditätsnachweis für eine lineare Sprache mit dem Status, den ich kenne, ist Ahmed, Fluet und Morisetts "L3: Eine lineare Sprache mit Standorten". ( ttic.uchicago.edu/~amal/papers/linloc-fi07.pdf ) In der Arbeit geben sie eine einfache logische Beziehung an, erwähnen aber, dass auch ein syntaktischer Fortschritts- und Erhaltungsbeweis durchläuft.
Neel Krishnaswami

Hier ist eine weitere Arbeit, auf die ich gerade aufmerksam geworden bin. Versuchen Sie citeseer für Stephen Cooper, "On Linear - Typen und Imperative Update" Link . Ich hätte es wissen sollen, tat es aber nicht.
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.