Spielesemantik für koinduktive Prädikate

8

Kennt jemand Arbeiten zur Spielesemantik für koinduktive Prädikate?

Ein koinduktives Prädikat ist eines, bei dem das Prädikat selbst im Körper des Prädikats aufgerufen wird, und wir nehmen die Bedeutung des Prädikats als den größten Fixpunkt der zugrunde liegenden Definition. Ein solches Prädikat wird über eine unendliche Datenstruktur definiert, wie beispielsweise einen Stream oder einen unendlichen Baum oder ein markiertes Übergangssystem und so weiter.

Ein zu einfaches Beispiel ist das folgende (in Haskell):

data Cat = BlackCat | WhiteCat
data Stream a = Stream a (Stream a)

allBlacks :: Stream Cat -> Bool
allBlacks (Stream cat rest) = cat == BlackCat && allBlacks rest

Ich kann den Strom aller schwarzen Katzen wie folgt definieren:

blackCats :: Stream Cat
blackCats = Stream BlackCat blackCats

und verwenden Sie die Koinduktion, um zu beweisen:

allBlacks blackCats

Man könnte sich ein koinduktives Prädikat als eine unendliche Konjunktion oder Disjunktion vorstellen, indem man sich einfach vorstellt, dass es vollständig ausgerollt ist. Die Spielsemantik in dieser Einstellung wäre unkompliziert: Für eine unendliche Konjunktion muss der Fälscher auswählen, welche Konjunktion gefälscht werden soll, um das Spiel zu gewinnen. Für eine unendliche Disjunktion muss der Verifizierer auswählen, welche Disjunktion erfüllt werden soll, um das Spiel zu gewinnen.

Es gibt jedoch eine natürliche Reihenfolge bei der "Bewertung" des koinduktiven Prädikats, die ignoriert wird, wenn es als unendliche Konjunktion oder Disjunktion betrachtet wird, und ich möchte, dass diese Reihenfolge in der Spielsemantik erfasst wird, nämlich, dass das Spiel durch Spielen jedes einzelnen fortgesetzt wird disjunkt / konjunkt wiederum.

Ein weiteres Problem, das ich habe, ist das Verständnis, welche Gewinnbedingung verwendet werden muss, um die Unendlichkeit des Prädikats zu erfassen. Oder um es mit Laien zu sagen: Woher weiß ich, dass es in diesem vermeintlich unendlichen Strom schwarzer Katzen keine weiße Katze gibt - es könnte nur nach dem Punkt sein, an dem ich aufhöre zu suchen?

zusätzliches Beispiel

Betrachten Sie den folgenden Datentyp (wieder in Haskell):

data Tree a = Tree (a -> Maybe (Tree a))

Tree AF(X)=(X+1)A

R:⊆A×AR

coversTree A×Tree A

covers(α,β)= aA if α(a) then bB such that aRb and β(b) and covers(α(a),β(b))

Ich suche einen Formalismus, um solche Prädikate in Bezug auf die spieltheoretische Semantik auszudrücken. Ein Link zu bestehenden Arbeiten wäre sehr dankbar. Die Hauptsache, bei der ich Probleme habe, meinen Kopf herumzukriegen, ist die Gewinnbedingung (wie in einigen der folgenden Kommentare besprochen). Obwohl das Spiel für immer dauert, sind unendliche Spiele kein Unentschieden.

Dave Clarke
quelle
Haben Sie sich bereits mit spielsemantischen Ansätzen zur Bisimulation befasst? Mit diesen gewinnt Verifier im Wesentlichen genau dann, wenn das Spiel unendlich ist, dh Falsifier konnte sie nicht stolpern.
Marc Hamann
In der Tat sollten mir Colin Sterlings Bisimulation, Model Checking und andere Spiele helfen. Sein Buch Modale und zeitliche Eigenschaften von Prozessen enthält ähnliches Material, wenn auch weniger detailliert.
Dave Clarke

Antworten:

4

Vicious Circles von Barwise and Moss ist ein Füllhorn an co-algebraischem / co-induktivem Denken und enthält Material zu co-induktiven Spielen.

Ich bin mir nicht sicher, ob es Ihnen bei Ihren spezifischen Bedürfnissen helfen wird, könnte aber die Quelle einiger Inspiration für diese Argumentation sein.

Bearbeiten (x2):

Ich denke, Sie können einem modifizierten Ansatz im Ehrenfeucht-Fraïssé- Stil folgendermaßen folgen : Falsifier kann jedes Element aus dem Stream / der Disjunktion / der Konjunktion auswählen. Der Prüfer muss dann nachweisen, dass es sich bei einem solchen Gegenstand um eine schwarze Katze handeln muss.

(Sie können die Reihenfolge oder die Anzahl der Auswahlmöglichkeiten für den Fälscher einschränken, ohne die Allgemeinheit für einen endlichen Satz von koinduktiven Regeln zu verlieren.)

Wenn Sie die Koinduktion nur als Induktion ohne Basisfall betrachten, ist es offensichtlich, dass die einzige (Co-) Induktionsregel, die Sie haben, blackCatslautet cat == BlackCat: Was könnte eine einzelne Katze sonst noch in diesem Strom sein? Jede Katze, die Falsifier auswählt, muss dieser Regel entsprechen, damit Verifier gewinnt.

Offensichtlich würde es zahlreicher und komplexe coinductive Regeln skalieren, wo die „Herausforderung“ für Verifier wird die entsprechende Regel für jede Art Element wählen Fälscher wählen.

Colin Sterlings Bisimulation, Model Checking und andere Spiele sollten Ihnen helfen. Sein Buch Modale und zeitliche Eigenschaften von Prozessen enthält ähnliches Material, wenn auch weniger detailliert.

Marc Hamann
quelle
Danke Mark. Das Buch enthält sicherlich Material, das mir helfen kann. Nun, mehr als einige.
Dave Clarke
Ich wollte "Marc" sagen.
Dave Clarke
Nochmals vielen Dank Marc. Das Problem, das ich vermeiden möchte, besteht darin, dass der Fälscher in die Mitte des Streams springen kann, um das Gegenbeispiel zu finden. Sie müssen das Spiel Schritt für Schritt spielen. Was mir fehlt, ist die Gewinnbedingung. Mir ist jetzt klar, dass mein Beispiel zu klein ist. Ich werde mir bald einen größeren einfallen lassen.
Dave Clarke
Wie ich in meinem Kommentar in Klammern angedeutet habe, können Sie darauf bestehen, dass Falsifier den Kopf des Streams auswählt. In diesem Fall möchten Sie ihn wahrscheinlich die Anzahl der Runden wählen lassen, die er spielen wird. Dann muss Verifier zeigen, dass sie für alle k immer die Schwärze überprüfen kann. Ich freue mich jedoch auf Ihr erweitertes Beispiel, anstatt Sie mit Dingen zu bombardieren, an die Sie vielleicht schon gedacht haben. ;-)
Marc Hamann
1

Als Trottel meinst du data Stream a = ...eher als data Stream a :: ....

Ihr allBlacks ist nur ein halbentscheidbares Prädikat, daher gibt es eine Strategie, die zu einem nicht beendenden Spiel führt, bei dem Sie weiterhin BlackCat spielen. Aus Sicht der Domänentheorie ist die Berechnung nicht produktiv, da beim Konsumieren eines Elements aus dem Stream keine Informationszunahme auftritt, wenn es BlackCat entspricht. Aus diesem Grund glaube ich nicht, dass das Prädikat wirklich als koinduktiv bezeichnet werden kann, oder? Mein Verdacht ist, dass dies Ihrer Verwirrung über die Gewinnbedingungen zugrunde liegt: Unbestimmtes Abwürgen ist ein Unentschieden.

Per Vognsen
quelle
Code jetzt behoben. Ich denke, es ist möglich, ein Spiel für dieses Prädikat vollständig anzugeben, aber ich kenne die Details nicht. Auf jeden Fall werde ich einige Ihrer Zweifel in die Frage einbeziehen.
Dave Clarke
Das ist nicht immer wahr. Nach meinem Verständnis bestimmen die verschiedenen Akzeptanzbedingungen von Büchi, Müller, Rabin und Streett sowie die Paritätsbedingung unendlich viele Spiele, was bedeutet, dass es kein Unentschieden gibt. Ich gebe zu, dass ich mich immer noch mit diesen Vorstellungen auseinandersetze.
Dave Clarke
Unendliche Spiele werden normalerweise so definiert, dass einer der Spieler (normalerweise der als Eloise, Duplicator oder Verifier bekannte, treffen Sie Ihre Wahl) gewinnt, solange er als Antwort auf den anderen Spieler, der gewinnt, immer einen gültigen Zug machen kann kann sie blockieren. Stellen Sie sich eine Spielesemantik zur Bisimulation oder sogar eine Spielesemantik von Turings ursprünglichem Konzept "kreisfreier" TMs vor und Sie können sehen, wie dies ein nützlicher und bedeutungsvoller Begriff für "Gewinnen" sein kann.
Marc Hamann