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 A
Tree A
Tree A
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.
Antworten:
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,
blackCats
lautetcat == 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.
quelle
Als Trottel meinst du
data Stream a = ...
eher alsdata 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.
quelle