¿Alguien sabe de algún trabajo en la semántica de juegos para predicados coinductores?
Un predicado coinductivo es aquel en el que el predicado en sí se llama en el cuerpo del predicado, y estamos tomando el significado del predicado como el mayor punto fijo de la definición subyacente. Dicho predicado se definirá sobre una estructura de datos infinita, como una secuencia o árbol infinito o un sistema de transición etiquetado, etc.
Un ejemplo demasiado simple es el siguiente (en Haskell):
data Cat = BlackCat | WhiteCat
data Stream a = Stream a (Stream a)
allBlacks :: Stream Cat -> Bool
allBlacks (Stream cat rest) = cat == BlackCat && allBlacks rest
Puedo definir el flujo de todos los gatos negros como:
blackCats :: Stream Cat
blackCats = Stream BlackCat blackCats
y usar coinducción para probar:
allBlacks blackCats
Uno podría pensar en un predicado coinductivo como una conjunción o disyunción infinita, simplemente imaginando que se desenrolla por completo. La semántica del juego en esta configuración sería sencilla: para una conjunción infinita, el Falsificador necesita seleccionar qué conjunción falsificar para ganar el juego; para una disyunción infinita, el Verificador necesita seleccionar qué disyunción satisfacer para ganar el juego.
Sin embargo, existe un orden natural en la 'evaluación' del predicado coinductivo que se ignora cuando se considera como una conjunción o disyunción infinita, y me gustaría que este orden se capture en la semántica del juego, a saber, que el juego continúa jugando cada disyunct / conjunct a su vez.
Un problema adicional que tengo es entender qué condición ganadora usar para capturar la naturaleza infinita del predicado. O para decirlo en términos de laicos: ¿cómo sé que no hay un gato blanco en esta supuesta corriente infinita de gatos negros? ¿Podría ser simplemente después del punto en que dejo de buscar?
ejemplo adicional
Considere el siguiente tipo de datos (nuevamente en Haskell):
data Tree a = Tree (a -> Maybe (Tree a))
Tree A
Tree A
Tree A
Estoy buscando un formalismo para expresar tales predicados en términos de semántica de teoría de juegos. Un enlace al trabajo existente sería muy apreciado. Lo principal que tengo problemas para entender es la condición ganadora (como se discute en algunos de los comentarios a continuación). Aunque el juego dura para siempre, las jugadas infinitas no constituyen un empate.