¿Se había usado alguna vez la lógica modal para descubrir algo?

Respuesta un tanto nicho: el operador “hasta” de la lógica temporal, una especie de lógica modal, llevó al descubrimiento de una abstracción unificadora novedosa para la programación reactiva funcional (FRP).

Si no está familiarizado con FRP, escribí una introducción de alto nivel en otra respuesta: la respuesta de Tikhon Jelvis a ¿Qué es la programación reactiva funcional?

La idea central con el FRP clásico es que podemos expresar código que varía con el tiempo de forma natural con dos abstracciones principales:

  • eventos : un valor que sucede en un tiempo discreto
  • Comportamientos : un valor que varía continuamente con el tiempo.

Como sucede, ambos de estos corresponden naturalmente a las modalidades temporales de la lógica temporal:

  • los eventos corresponden a eventualmente : [math] \ diamond x [/ math]
  • los comportamientos corresponden a siempre : [math] \ square x [/ math]

Estos dos operadores tienen la misma relación dual que otros tipos de modalidades:

  • [math] \ diamond x \ Leftrightarrow \ lnot \ square \ lnot x [/ math]
  • [math] \ square x \ Leftrightarrow \ lnot \ diamond \ lnot x [/ math]

Piense por qué estas leyes tienen que sostenerse para “eventualmente” y “siempre”.

Esta es una relación muy satisfactoria y demuestra que las dos abstracciones (eventos y comportamientos) no son completamente arbitrarias, pero creo que se descubrió después de que se formuló el FRP clásico, por lo que realmente no cuenta para esta respuesta.

Afortunadamente, algunas investigaciones recientes en FRP han ido en la dirección opuesta, comenzando con la lógica temporal y derivando primitivas de FRP. No creo que haya habido mucho trabajo sobre la idea, pero hubo un interesante artículo de PLPV 2013: “Lógica temporal con” Hasta “, Programación reactiva funcional con procesos y categorías de procesos concretos” por Wolfgang Jeltsch. Aquí está el resumen:

Una investigación reciente ha revelado que los operadores “siempre” y “eventualmente” de la lógica temporal corresponden a los constructores de tipo para comportamientos y eventos de la programación reactiva funcional (FRP). Además, es bien sabido que los operadores “hasta” de LTL son generalizaciones de “siempre” y “eventualmente”. En este documento, mostramos que los comportamientos y los eventos se pueden generalizar de manera análoga. El resultado es una noción de proceso, que combina aspectos continuos y discretos. Desarrollamos una semántica categórica común para una lógica temporal intuicionista con “hasta” y FRP con procesos. Esta semántica refleja la veracidad dependiente del tiempo en la lógica temporal, la habitabilidad del tipo dependiente del tiempo en FRP y la causalidad de las operaciones de FRP.

(Para referencia, LTL significa “lógica temporal lineal”, que es la variante específica de la lógica temporal que se utiliza en la investigación de FRP).

En un nivel alto, el documento desarrolla una versión de lógica temporal con varias variaciones del operador “until” ([math] \ triangleright [/ math]) que se puede usar para codificar [math] \ square [/ math] y [math] \ diamond [/ math]. Luego, utilizando esta idea, desarrollan un lenguaje FRP con una abstracción de “proceso” que corresponde a [math] \ triangleright [/ math] y admite una combinación de tiempo discreto y continuo, con comportamientos continuos y eventos discretos que caen como casos especiales de procesos.

No creo que nadie haya implementado realmente un sistema FRP basado en estas ideas, ni siquiera sé si sería útil o práctico, pero definitivamente es un ejemplo de algo interesante que se descubrió directamente utilizando la lógica modal.

La lógica temporal es una instancia de la lógica modal, en la que los operadores [math] \ Box \ phi [/ math] se interpretan como “[math] \ phi [/ math] es cierto en todas partes a lo largo del camino” y [math] \ Diamond \ phi [/ math] se interpreta como “[math] \ phi [/ math] se mantiene en algún lugar del camino”. Con la adición de algunos operadores más para aumentar la expresividad, la lógica temporal ha demostrado ser útil en la verificación formal del tiempo en aplicaciones de ingeniería como el diseño asistido por computadora de hardware digital.

La versión modal de Alvin Plantinga del argumento ontológico es considerada por muchos filósofos (y creo que correctamente) que demuestra que la existencia de Dios es necesaria o imposible. En otras palabras, Plantinga demostró que Dios debe existir o no puede existir. Desafortunadamente, no parece haber ninguna manera de determinar cuál de los dos es correcto. Sin embargo, este es un descubrimiento significativo.

Sí. Por ejemplo, la versión de Alvin Platinga del argumento ontológico para descubrir la existencia de Dios emplea la lógica modal.

Si puedes probar que X es imposible, no solo sabes que X es falso sino que también sabes que bajo ninguna circunstancia X puede ser verdad.