En lógica , filosofía e informática teórica , la lógica dinámica es una extensión de la lógica modal capaz de codificar propiedades de los programas informáticos .
Un ejemplo sencillo de una declaración en lógica dinámica es:
lo cual establece que si el suelo está seco en ese momento y llueve, entonces después el suelo estará mojado.
La sintaxis de la lógica dinámica contiene un lenguaje de proposiciones (como "el suelo está seco") y un lenguaje de acciones (como "llueve"). Las construcciones modales centrales son:, que establece que después de realizar la acción a, la proposición p debe cumplirse, y, que establece que después de realizar la acción a es posible que se cumpla p . El lenguaje de acciones admite operaciones(realizar una acción seguida de otra),(realizando una acción u otra), e iteración(realizar una acción cero o más veces). El lenguaje de proposiciones admite operaciones booleanas (y, o y no). La lógica de acción es lo suficientemente expresiva como para codificar programas. Para un programa arbitrario, condición previay postcondición, la declaración de lógica dinámicacodifica la corrección del programa, lo que hace que la lógica dinámica sea más general que la lógica de Hoare .
Más allá de su uso en la verificación formal de programas, la lógica dinámica se ha aplicado para describir comportamientos complejos que surgen en la lingüística , la filosofía , la inteligencia artificial y otros campos.
Idioma
La lógica modal se caracteriza por los operadores modales.(recuadro p) afirmando quees necesariamente el caso, y(diamante p) afirmando queEs posible que sea así. La lógica dinámica extiende esto asociando a cada acciónlos operadores modalesy, convirtiéndola así en una lógica multimodal . El significado dees que después de realizar la acciónEs necesariamente cierto quesostiene, es decir,debe provocar. El significado dees que después de realizares posible quesostiene, es decir,podría provocarEstos operadores son duales entre sí, lo que significa que están relacionados pory, de forma análoga a la relación entre lo universal () y existencial () cuantificadores.
La lógica dinámica permite acciones compuestas construidas a partir de acciones más pequeñas. Si bien los operadores de control básicos de cualquier lenguaje de programación podrían usarse para este propósito, los operadores de expresiones regulares de Kleene se adaptan bien a la lógica modal. Acciones dadasy, la acción compuesta, elección , también escritoo, se realiza realizando una de laso. La acción compuesta, secuencia , se realiza realizando primeroy luego. La acción compuesta, iteración , se realiza mediante la ejecucióncero o más veces, secuencialmente. La acción constanteo BLOQUEAR no hace nada y no termina, mientras que la acción constanteo SKIP o NOP , definible como, no hace nada más que terminar.
Axiomas
Estos operadores pueden axiomatizarse en lógica dinámica de la siguiente manera, tomando como ya dada una axiomatización adecuada de la lógica modal que incluye tales axiomas para operadores modales como el axioma mencionado anteriormente.y las dos reglas de inferencia modus ponens (yimplica) y necesidad (implica).
A1.
A2.
A3.
A4.
A5.
A6.
El axioma A1 hace la promesa vacía de que cuando BLOCK termina,se mantendrá, incluso si¿Es falsa la proposición ? (Por lo tanto, BLOCK abstrae la esencia de la acción de congelar el infierno). A2 dice que NOP actúa como la función identidad en las proposiciones, es decir, transformaen sí mismo. A3 dice que si se hace uno deodebe provocar, entoncesdebe provocary asimismo paray viceversa. A4 dice que si se hacey luegodebe provocar, entoncesdebe generar una situación en la quedebe provocar. A5 es el resultado evidente de aplicar A2, A3 y A4 a la ecuacióndel álgebra de Kleene . A6 afirma que sise mantiene ahora, y no importa con qué frecuencia lo hagamosSigue siendo cierto que la verdad dedespués de esa actuación implica su verdad después de una actuación más de, entoncesdebe seguir siendo cierto sin importar con qué frecuencia lo hagamos. A6 es reconocible como inducción matemática con la acción n := n+1 de incrementar n generalizada a acciones arbitrarias..
Derivaciones
El axioma de la lógica modalpermite derivar los siguientes seis teoremas correspondientes a lo anterior:
T1.
T2.
T3.
T4.
T5.
T6.
T1 afirma la imposibilidad de lograr algo realizando BLOQUEO . T2 señala nuevamente que NOP no cambia nada, teniendo en cuenta que NOP es determinista y terminante, por lo queytienen la misma fuerza. T3 dice que si la elección deopodría provocar, entonces oopor sí solo podría provocar. T4 es igual que A4. T5 se explica igual que para A5. T6 afirma que si es posible provocarrealizandocon la suficiente frecuencia, entonceses cierto ahora o es posible realizarrepetidamente para provocar una situación en la quees (todavía) falso pero una actuación más depodría provocar.
La caja y el diamante son completamente simétricos con respecto a cuál se toma como primitivo. Una axiomatización alternativa habría sido tomar los teoremas T1–T6 como axiomas, a partir de los cuales podríamos haber derivado los teoremas A1–A6.
La diferencia entre implicación e inferencia es la misma en la lógica dinámica que en cualquier otra lógica: mientras que la implicaciónafirma que siSi es cierto, entonces también lo es., la inferenciaafirma que sies válido entonces también lo esSin embargo, la naturaleza dinámica de la lógica dinámica traslada esta distinción del ámbito de la axiomática abstracta a la experiencia del sentido común en situaciones cambiantes. La regla de inferencia, por ejemplo, es sólida porque su premisa afirma quese mantiene en todo momento, de dondequiera que seapodría llevarnos,será cierto allí. La implicaciónno es válido, sin embargo, porque la verdad deen el momento actual no hay garantía de su veracidad después de realizar. Por ejemplo,será cierto en cualquier situación dondees falso, o en cualquier situación dondees cierto, pero la afirmaciónes falso en cualquier situación dondetiene valor 1 y, por lo tanto, no es válido.
Reglas de inferencia derivadas
En cuanto a la lógica modal, las reglas de inferencia modus ponens y necessitation bastan también para la lógica dinámica como las únicas reglas primitivas que necesita, como se indicó anteriormente. Sin embargo, como es habitual en lógica, se pueden derivar muchas más reglas a partir de estas con la ayuda de los axiomas. Un ejemplo de una regla derivada de este tipo en lógica dinámica es que si patear un televisor roto una sola vez no puede arreglarlo, entonces patearlo repetidamente tampoco puede arreglarlo.por la acción de patear el televisor yPara la proposición de que el televisor está roto, la lógica dinámica expresa esta inferencia como, teniendo como premisay como conclusión. El significado dees que está garantizado que después de patear el televisor, se romperá. De ahí la premisaEsto significa que si el televisor está roto, después de darle una patada seguirá roto.denota la acción de patear el televisor cero o más veces. Por lo tanto, la conclusiónEsto significa que si el televisor está roto, después de patearlo cero o más veces seguirá roto. Porque si no, después de la penúltima patada el televisor estaría en un estado en el que patearlo una vez más lo arreglaría, lo cual, según la premisa, nunca puede ocurrir bajo ninguna circunstancia.
La inferenciaes sólido. Sin embargo, la implicaciónno es válido porque podemos encontrar fácilmente situaciones en las quese sostiene peroNo lo hace. En cualquier situación de contraejemplo de este tipo,debe sostener perodebe ser falso, mientras queSin embargo, debe ser cierto. Pero esto podría ocurrir en cualquier situación en la que el televisor esté roto pero pueda revivir con dos patadas. La implicación falla (no es válida) porque solo requiere queahora se sostiene, mientras que la inferencia tiene éxito (es sólida) porque requiere quemantenerlo en todas las situaciones, no solo en la presente.
Un ejemplo de implicación válida es la proposición. Esto dice que sies mayor o igual a 3, entonces después de incrementar,debe ser mayor o igual a 4. En el caso de acciones deterministasque tienen garantizada su finalización, como por ejemplo:, deben y podrían tener la misma fuerza, es decir,ytienen el mismo significado. Por lo tanto, la proposición anterior es equivalente aafirmando que sies mayor o igual a 3 entonces después de realizar,podría ser mayor o igual a 4.
Asignación
La forma general de una declaración de asignación esdóndees una variable yes una expresión construida a partir de constantes y variables con las operaciones que proporciona el lenguaje, como la suma y la multiplicación. El axioma de Hoare para la asignación no se presenta como un axioma único, sino como un esquema de axiomas .
A7.
Este es un esquema en el sentido de quepuede instanciarse con cualquier fórmulaque contiene cero o más instancias de una variable. El significado deescon esos sucesos deque ocurren libremente en, es decir, no limitado por algún cuantificador como en, reemplazado por. Por ejemplo, podemos instanciar A7 cono conDicho esquema axiomático permite escribir un número infinito de axiomas que tienen una forma común como una expresión finita que denota esa forma.
La instanciade A7 nos permite calcular mecánicamente que el ejemploencontrado hace unos párrafos es equivalente a, lo cual a su vez es equivalente apor álgebra elemental .
Un ejemplo que ilustra la asignación en combinación cones la proposición. Esto afirma que es posible, mediante incrementoscon la suficiente frecuencia como para hacerigual a 7. Esto, por supuesto, no siempre es cierto, por ejemplo, sies 8 para empezar, o 6.5, por lo que esta proposición no es un teorema de lógica dinámica. Sies de tipo entero, sin embargo, entonces esta proposición es verdadera si y solo sies como máximo 7 para empezar, es decir, es solo una forma indirecta de decir.
La inducción matemática se puede obtener como instancia de A6 en la que la proposiciónse instancia como, la accióncomo, ycomo. Las dos primeras de estas tres instancias son sencillas, convirtiendo A6 enSin embargo, la sustitución aparentemente simple deparano es tan simple, ya que pone de manifiesto la llamada opacidad referencial de la lógica modal en el caso en que una modalidad puede interferir con una sustitución.
Cuando sustituimosparaEstábamos pensando en el símbolo de proposicióncomo un designador rígido con respecto a la modalidad, lo que significa que es la misma proposición después de incrementarcomo antes, aunque incrementandopuede afectar su veracidad. Asimismo, la acciónsigue siendo la misma acción después del incremento, aunque incrementandodará como resultado su ejecución en un entorno diferente. Sin embargo,en sí mismo no es un designador rígido con respecto a la modalidad.; si denota 3 antes de incrementar, denota 4 después. Así que no podemos simplemente sustituirparaen todas partes en A6.
Una forma de lidiar con la opacidad de las modalidades es eliminarlas. Para ello, expandacomo la conjunción infinita, es decir, la conjunción sobre todosde. Ahora aplique A4 para convertiren, teniendomodalidades. Luego aplique el axioma de Hoare.tiempos para esto para producir, luego simplifica esta conjunción infinita a. Toda esta reducción debe aplicarse a ambas instancias deen A6, cediendo. La modalidad restante ahora puede eliminarse con un uso más del axioma de Hoare para dar.
Ahora que las modalidades opacas están fuera del camino, podemos sustituir con seguridadparade la manera habitual de la lógica de primer orden para obtener el célebre axioma de Peano., es decir, la inducción matemática.
Una sutileza que pasamos por alto aquí es quedebe entenderse como abarcando los números naturales, dondees el superíndice en la expansión decomo la unión desobre todos los números naturalesLa importancia de mantener esta información de escritura en orden se hace evidente sihabían sido de tipo entero , o incluso real , para cualquiera de los cuales A6 es perfectamente válido como axioma. Como ejemplo, sies una variable real yes el predicadoes un número natural , entonces el axioma A6 después de las dos primeras sustituciones, es decir,, es igualmente válido, es decir, verdadero en cada estado independientemente del valor deen ese estado, como cuandoes de tipo número natural . Si en un estado dadoes un número natural , entonces se cumple el antecedente de la implicación principal de A6, pero entoncestambién es un número natural, por lo que el consecuente también se cumple. Sino es un número natural, entonces el antecedente es falso y por lo tanto A6 sigue siendo verdadero independientemente de la verdad del consecuente. Podríamos fortalecer A6 a una equivalenciasin afectar nada de esto, siendo la otra dirección demostrable a partir de A5, de donde vemos que si el antecedente de A6 resulta ser falso en algún lugar, entonces el consecuente debe ser falso.
Prueba
La lógica dinámica se asocia a cada proposición.una acciónllamada prueba. CuandoSe mantiene la pruebaactúa como una NOP , sin cambiar nada mientras permite que la acción continúe. Cuandoes falso,actúa como BLOQUE . Las pruebas se pueden axiomatizar de la siguiente manera.
A8.
El teorema correspondiente paraes:
T8.
La construcción si p entonces a sino b se realiza en lógica dinámica comoEsta acción expresa una elección cautelosa: sientonces sostienees equivalente a, mientrases equivalente a BLOQUE, yes equivalente a. Por lo tanto, cuandoes cierto que el que realiza la acción solo puede tomar la rama izquierda, y cuandoes falso lo correcto.
La construcción mientras p hace a se realiza comoEsto realizacero o más veces y luego realiza. Mientrassigue siendo cierto, elal final impide que el intérprete termine la iteración prematuramente, pero tan pronto como se vuelve falso, se producen nuevas iteraciones del cuerpo.están bloqueados y el intérprete no tiene más remedio que salir a través de la prueba..
Cuantificación como asignación aleatoria
La declaración de asignación aleatoriadenota la acción no determinista de establecera un valor arbitrario.entonces dice queSe mantiene sin importar lo que configuresa, mientrasdice que es posible establecera un valor que haceverdadero.por lo tanto tiene el mismo significado que el cuantificador universal, mientrasde manera similar corresponde al cuantificador existencial. Es decir, la lógica de primer orden puede entenderse como la lógica dinámica de programas de la forma.
Dijkstra afirmó demostrar la imposibilidad de un programa que establezca el valor de una variable.a un entero positivo arbitrario. [ 1 ] Sin embargo, en lógica dinámica con asignación y el operador *,se puede establecer en un entero positivo arbitrario con el programa de lógica dinámicaPor lo tanto, debemos rechazar el argumento de Dijkstra o sostener que el operador * no es efectivo.
Semántica de mundos posibles
La lógica modal se interpreta comúnmente en términos de semántica de mundos posibles o estructuras de Kripke. Esta semántica se traslada naturalmente a la lógica dinámica al interpretar los mundos como estados de una computadora en la aplicación a la verificación de programas, o estados de nuestro entorno en aplicaciones a la lingüística, la IA, etc. Una función de la semántica de mundos posibles es formalizar las nociones intuitivas de verdad y validez, lo que a su vez permite definir las nociones de solidez y completitud para los sistemas axiomáticos. Una regla de inferencia es sólida cuando la validez de sus premisas implica la validez de su conclusión. Un sistema axiomático es sólido cuando todos sus axiomas son válidos y sus reglas de inferencia son sólidas. Un sistema axiomático es completo cuando toda fórmula válida puede derivarse como un teorema de dicho sistema. Estos conceptos se aplican a todos los sistemas lógicos, incluida la lógica dinámica.
Lógica dinámica proposicional (PDL)
La lógica ordinaria o de primer orden tiene dos tipos de términos, respectivamente, afirmaciones y datos. Como se puede ver en los ejemplos anteriores, la lógica dinámica agrega un tercer tipo de término que denota acciones. La afirmación de la lógica dinámicacontiene los tres tipos:,, yson datos,es una acción, yyson afirmaciones. La lógica proposicional se deriva de la lógica de primer orden omitiendo términos de datos y razonando solo sobre proposiciones abstractas, que pueden ser variables proposicionales simples o átomos o proposiciones compuestas construidas con conectores lógicos como y , o , y no .
La lógica dinámica proposicional, o PDL, fue derivada de la lógica dinámica en 1977 por Michael J. Fischer y Richard Ladner . La PDL combina las ideas de la lógica proposicional y la lógica dinámica al agregar acciones y omitir datos; por lo tanto, los términos de la PDL son acciones y proposiciones. El ejemplo de TV anterior se expresa en PDL, mientras que el siguiente ejemplo involucraestá en lógica dinámica de primer orden. PDL es a la lógica dinámica (de primer orden) como la lógica proposicional es a la lógica de primer orden.
Fischer y Ladner demostraron en su artículo de 1977 que la satisfacibilidad de PDL tenía una complejidad computacional de tiempo exponencial no determinista como máximo y de tiempo exponencial determinista como mínimo en el peor de los casos. Esta brecha se cerró en 1978 gracias a Vaughan Pratt, quien demostró que PDL era decidible en tiempo exponencial determinista. En 1977, Krister Segerberg propuso una axiomatización completa de PDL, concretamente cualquier axiomatización completa de la lógica modal K junto con los axiomas A1-A6 mencionados anteriormente. Gabbay (nota inédita), Parikh (1978), Pratt (1979) y Kozen y Parikh (1981) hallaron pruebas de completitud para los axiomas de Segerberg.
Historia
La lógica dinámica fue desarrollada por Vaughan Pratt en 1974 en apuntes para una clase sobre verificación de programas como un enfoque para asignar significado a la lógica de Hoare mediante la expresión de la fórmula de Hoare.comoEl enfoque se publicó posteriormente en 1976 como un sistema lógico independiente. El sistema es paralelo al sistema de lógica algorítmica de Andrzej Salwicki [ 2 ] y a la noción de transformador de predicados de precondición más débil de Edsger Dijkstra., concorrespondiente a la de Dijkstra, la condición previa liberal más débil. Sin embargo, esas lógicas no establecían ninguna conexión con la lógica modal, la semántica de Kripke , las expresiones regulares ni el cálculo de relaciones binarias. Por lo tanto, la lógica dinámica puede considerarse un refinamiento de la lógica algorítmica y los transformadores de predicados que los conecta con la axiomática y la semántica de Kripke de la lógica modal, así como con los cálculos de relaciones binarias y expresiones regulares.
El desafío de la concurrencia
La lógica de Hoare, la lógica algorítmica, las precondiciones más débiles y la lógica dinámica son muy adecuadas para el discurso y el razonamiento sobre el comportamiento secuencial. Sin embargo, extender estas lógicas al comportamiento concurrente ha resultado problemático. Existen varios enfoques, pero todos carecen de la elegancia del caso secuencial. En contraste, el sistema de lógica temporal de Amir Pnueli de 1977 , otra variante de la lógica modal que comparte muchas características con la lógica dinámica, se diferencia de todas las lógicas mencionadas anteriormente por ser lo que Pnueli caracterizó como una lógica "endógena", mientras que las demás son lógicas "exógenas". Con esto, Pnueli quería decir que las afirmaciones de la lógica temporal se interpretan dentro de un marco de comportamiento universal en el que una única situación global cambia con el paso del tiempo, mientras que las afirmaciones de las otras lógicas se hacen externamente a las múltiples acciones de las que hablan. La ventaja del enfoque endógeno es que no hace suposiciones fundamentales sobre qué causa qué a medida que el entorno cambia con el tiempo. En cambio, una fórmula de lógica temporal puede describir dos partes no relacionadas de un sistema que, precisamente por no estar relacionadas, evolucionan tácitamente en paralelo. En efecto, la conjunción lógica ordinaria de aserciones temporales es el operador de composición concurrente de la lógica temporal. La simplicidad de este enfoque de la concurrencia ha hecho que la lógica temporal sea la lógica modal de elección para razonar sobre sistemas concurrentes, con sus aspectos de sincronización, interferencia, independencia, interbloqueo , bloqueo mutuo , equidad, etc.
Véase también
Lecturas adicionales
- David Harel , Dexter Kozen y Jerzy Tiuryn, "Lógica dinámica". MIT Press, 2000 (450 págs.).
- Nicolas Troquard y Philippe Balbiani, "Lógica dinámica proposicional". Enciclopedia de filosofía de Stanford , 2007.
Notas a pie de página
Referencias
- Vaughan Pratt , "Consideraciones semánticas sobre la lógica de Floyd-Hoare", Actas del 17º Simposio Anual del IEEE sobre Fundamentos de la Informática , 1976, 109-121.
- David Harel , «Lógica dinámica», en D. Gabbay y F. Guenthner (eds.), Manual de lógica filosófica, volumen II: Extensiones de la lógica clásica, capítulo 10, páginas 497-604. Reidel, Dordrecht, 1984.
- David Harel , Dexter Kozen y Jerzy Tiuryn, «Lógica dinámica», en D. Gabbay y F. Guenthner (eds.), Manual de lógica filosófica, volumen 4: páginas 99-217. Kluwer, 2.ª edición, 2002.
Enlaces externos
- Consideraciones semánticas sobre la lógica de Floyd-Hoare (artículo original sobre lógica dinámica)
- Capítulo 6 : Lógica y acción en el sitio web Logic In Action.
- Apuntes de clase sobre lógica dinámica de André Platzer
- Lógica modal
- Lógica en informática
- Lógica no clásica
- Lógica del programa