Punteros para aplicaciones CS de lógica


17

Soy un estudiante graduado en matemáticas con una sólida formación en lógica. He tomado un curso de posgrado en lógica junto con cursos de posgrado sobre teoría de modelos finitos y otro sobre forzado y teoría de conjuntos. La mayoría de los textos de CS parecen asumir solo un trasfondo muy modesto en lógica, que cubre principalmente conceptos básicos de lógica proposicional y lógica de primer orden.

Me gustaría obtener algunos consejos sobre dónde ir para aplicaciones CS donde se está utilizando material más pesado de la lógica. Un interés mío sería la teoría de tipos y los métodos formales en general. ¿Alguien podría sugerir algunas buenas lecturas más allá de los libros introductorios sobre comprobación de modelos y lenguajes de programación?


Hice este CW ya que la lista es muy larga. Solo eche un vistazo a 11 volúmenes de Handbook of Logic en Computer Science y Handbook of Logic en AI.
Kaveh

Un buen punto de partida es el siguiente documento: - Samuel R. Buss, Alexander A. Kechris, Anand Pillay y Richard A. Shore, " Perspectivas de la lógica matemática en el siglo XXI ", 2001. En particular, la sección de Sam Buss.
Kaveh

Esta pregunta podría ampliarse y las respuestas se estructurarían de manera uniforme para que esta página se convierta en un recurso útil de punto de partida en lógica computacional. Únete a la discusión sobre meta.
Vijay D

Respuestas:


15

Revisé brevemente algunas áreas aquí, tratando de enfocarme en ideas que serían atractivas para alguien con experiencia en lógica matemática avanzada.

Teoría de modelo finito

La restricción más simple de la teoría de modelos clásicos desde el punto de vista de la informática es estudiar estructuras sobre un universo finito. Estas estructuras se presentan en forma de bases de datos relacionales, gráficos y otros objetos combinatorios que surgen en todas partes en la informática. La primera observación es que varios teoremas fundamentales de la teoría de modelos de primer orden fallan cuando se restringen a modelos finitos. Estos incluyen el teorema de compacidad, el teorema de integridad de Godel y las construcciones de ultraproductos. Trakhtenbrot demostró que, a diferencia de la lógica clásica de primer orden, la satisfacción sobre los modelos finitos es indecidible.

Las herramientas fundamentales en esta área son la localidad de Hanf, la localidad de Gaifman y numerosas variaciones en los juegos de Ehrenfeucht-Fraisse. Los temas estudiados incluyen lógicas infinitarias, lógicas con conteo, lógicas de punto fijo, etc. siempre con un enfoque en modelos finitos. Hay un trabajo centrado en la expresividad en fragmentos de variables finitas de lógica de primer orden y estas lógicas tienen caracterizaciones a través de juegos de guijarros. Otra dirección de investigación es identificar las propiedades de las lógicas clásicas que sobreviven a la restricción de los modelos finitos. Un resultado reciente en esa dirección de Rossman muestra que ciertos teoremas de preservación del homomorfismo aún se mantienen sobre modelos finitos.

  1. Teoría de modelos finitos , Ebbinghaus y Flum
  2. Elementos de la teoría de modelos finitos , Libkin
  3. Sobre estrategias ganadoras en los juegos de Ehrenfeucht-Fraisse , Arora y Fagin, 1997.
  4. Teoremas de preservación del homomorfismo , Rossman

El cálculo proposicionalμ

Una línea de trabajo de finales de los años 60 mostró que numerosas propiedades de los programas podían expresarse en extensiones de lógica proposicional que apoyaban el razonamiento sobre puntos fijos. El cálculo modal es una lógica desarrollada en este período que ha encontrado una amplia gama de aplicaciones en métodos formales automatizados. Muchos métodos formales están conectados a la lógica temporal, o la lógica de estilo Hoare, y gran parte de esto se puede ver en términos del cálculo μ . De hecho, he oído decir que el cálculo μ es el lenguaje ensamblador de la lógica temporal.μμμ

En su artículo de presentación del cálculo , Kozen realizó una axiomatización y solo demostró que era sólida y completa para un fragmento restringido de la lógica. La prueba de integridad fue uno de los grandes problemas abiertos en la informática lógica hasta que Walukiewicz dio una prueba (basada en autómatas infinitos). La teoría modelo del cálculo μ tiene muchos resultados ricos. Similar al teorema de van Benthem para la lógica modal, Janin y Walukiewicz demostraron que el cálculo μ es expresamente equivalente al fragmento invariante de bisimulación de la lógica monádica de segundo orden. El μμμμμ-cálculo también se ha caracterizado en términos de juegos de paridad y autómatas sobre árboles infinitos. El problema de satisfacción para esta lógica es EXPTIME completo y Emerson y Jutla mostraron que la lógica tiene la propiedad de modelo pequeño. Bradfield demostró que la jerarquía de alternancia del cálculo es estricta, mientras que Berwanger demostró que la jerarquía variable también es estricta. Las herramientas clásicas importantes utilizadas en esta área son el teorema de Rabin y el teorema de determinación de Martin.μ

  1. Resultados sobre el cálculo proposicionalμ , Kozen, 1983
  2. Rudimentos del cálculo μ Arnold y Niwinski, 2001
  3. Integridad de la axiomatización de la proposicionales de Kozen -Calculusμ , Walukiewicz 1995
  4. Lógicas modales y cálculos μ , Bradfield y Stirling, 2001
  5. La jerarquía modal de alternancia de cálculo mu es estricta , Bradfield, 1996
  6. La jerarquía variable del cálculo mu es estricta , Berwanger, E. Grädel y G. Lenzi, 2005

Lógica Temporal Lineal

La lógica temporal lineal se adoptó de la lógica filosófica a la informática para razonar sobre el comportamiento de los programas informáticos. Se consideraba una buena lógica porque podía expresar propiedades como la invariancia (ausencia de errores) y la terminación. La teoría de la prueba de la lógica temporal fue desarrollada por Manna y Pnueli (y otros, más adelante) en sus artículos y libros. La comprobación del modelo y el problema de satisfacción de LTL pueden resolverse en términos de autómatas sobre palabras infinitas.

Pnueli también demostró resultados fundamentales sobre LTL en su artículo original que presenta la lógica para razonar sobre los programas. Vardi y Wolper dieron una compilación mucho más simple de fórmulas LTL en autómatas Buchi. La conexión con la lógica temporal ha llevado a un intenso estudio de algoritmos para derivar eficientemente autómatas de LTL, y para la determinación y complementación de autómatas Buchi. El teorema de Kamp muestra que LTL con desde y hastaωμμ

  1. La lógica temporal de los programas , Pnueli 1977
  2. De la Iglesia y antes de PSL , Vardi, 2008
  3. Una aproximación teórica autómata a la lógica temporal lineal , Vardi y Wolper, 1986
  4. La lógica temporal de los sistemas reactivos y concurrentes: especificación , maná y Pnueli
  5. Una jerarquía Hasta y otras aplicaciones de un juego de Ehrenfeucht-Fraïssé para lógica temporal , Etessami y Wilke, 2000

Lógica del árbol computacional

μ

El problema de verificación del modelo para CTL sobre estructuras finitas es en tiempo polinómico. El problema de comprobación del modelo para CTL * es EXPTIME completo. La axiomatización de CTL * fue un problema abierto desafiante que finalmente fue resuelto por Reynolds 2001. El análogo del teorema de van Benthem para la lógica modal y el teorema de Kamp para LTL se da para CTL * por un teorema de Hafer y Thomas que muestra que CTL * corresponde a Un fragmento de lógica monádica de segundo orden sobre árboles binarios. Una caracterización posterior de Hirschfeld y Rabinovich es que CTL * es expresamente equivalente al fragmento de MSO invariante con bisimulación con cuantificación de ruta.

  1. "A veces" y "no nunca" revisitados: en la ramificación versus la lógica temporal del tiempo lineal , Emerson y Halpern, 1986
  2. Sobre el poder expresivo de CTL , Moller, Rabinovich, 1999
  3. Lógica de árbol de cómputo CTL * y cuantificadores de ruta en la teoría monádica del árbol binario , Hafer y Thomas, 1987
  4. Una axiomatización de la lógica del árbol de computación completa , Reynolds, 2001

Lenguajes de palabras infinitas

ω

ωωω-palabras. Además, utilizando la topología elemental, demostraron que cada propiedad de tiempo lineal puede expresarse como la intersección de una propiedad de seguridad y de vida. Este resultado tiene consecuencias prácticas significativas porque significa que, en lugar de construir verificadores de propiedades complejos, es suficiente construir un verificador de seguridad y de vida. Una reducción adicional muestra que es suficiente construir un verificador de invariancia y un verificador de terminación. La caracterización de seguridad-vida se extendió a los árboles por Manolios y Trefler y más recientemente a conjuntos de trazas, en el marco de las hiperpropiedades, por Clarkson y Schneider.

  1. Palabras infinitas: autómatas, semigrupos, lógica y juegos , Perrin y Pin, 2004
  2. ω
  3. ω
  4. Sobre congruencias sintácticas para ω — idiomas , Maler y Staiger, 1993

Autómatas en palabras infinitas

Donde hay idiomas, los informáticos tendrán autómatas. Ingrese la teoría de los autómatas sobre palabras infinitas y árboles infinitos. Es extremadamente triste que aunque los autómatas sobre palabras infinitas aparecieron dentro de los dos años de autómatas en palabras finitas, este tema fundamental rara vez se cubre en los planes de estudios estándar de informática. Los autómatas sobre palabras y árboles infinitos proporcionan un enfoque muy robusto para demostrar la capacidad de decisión de la satisfacción de una familia muy lógica.

ω

  1. Decidabilidad de teorías de segundo orden y autómatas en árboles infinitos , Rabin, 1969
  2. Autómatas sobre objetos infinitos , Thomas, 1988
  3. Autómatas: de la lógica a los algoritmos , Vardi, 2007

Juegos infinitos

Los juegos lógicos e infinitos son un área activa de investigación. Las nociones teóricas de los juegos aparecen en la informática por todas partes en la dualidad entre no determinismo y paralelismo (alternancia), un programa y su entorno, cuantificación universal y existencial, modalidades de caja y diamante, etc. Los juegos resultaron ser un Una excelente manera de estudiar las propiedades de los diversos tipos de lógicas no clásicas enumeradas anteriormente.

Al igual que con los criterios de aceptación para los autómatas, tenemos diferentes condiciones de victoria para los juegos y se puede demostrar que muchos son equivalentes. Como preguntaste sobre los resultados clásicos, el teorema de la Determinación de Borel y los juegos de Gale-Stewart a menudo se encuentran discretamente en el fondo de varios modelos de juegos que estudiamos. Una pregunta apremiante de nuestro tiempo ha sido sobre la complejidad de resolver juegos de paridad. Jurdzinski dio un algoritmo de mejora de estrategia y demostró que decidir el ganador estaba en la intersección de las clases de complejidad UP y coUP. La complejidad precisa del algoritmo de Jurdzinski estuvo abierta hasta que Friedmann le dio un límite inferior de tiempo exponencial en 2009.

  1. Decidir el ganador en los juegos de paridad es en UP ∩ co-UP , Jurdzinski, 1998
  2. Juegos para el cálculo μ , Niwinski y Walukiewicz, 1996
  3. Un límite inferior exponencial para el algoritmo de mejora de la estrategia del juego de paridad tal como lo conocemos , Friedmann, 2009

10

Edmund M. Clarke, Orna Grumberg, Doron A. Peled: Comprobación del modelo . MIT Press 1999, es un buen libro (para mí) sobre verificación de modelos.

Glynn Winskel: la semántica formal de los lenguajes de programación: una introducción . MIT Press 1994, es uno de los libros de texto estándar sobre lenguajes de programación.

Mordechai Ben-Ari: lógica matemática para la informática . Springer 2001, es quizás lo que estás buscando.


7

La teoría de la base de datos es un campo extenso que proporciona muchas aplicaciones de la lógica. La complejidad descriptiva y la teoría de modelos finitos son campos estrechamente asociados. Por lo que puedo decir, todas estas áreas tienden a usar estilos algebraicos de lógica (siguiendo los pasos de Birkhoff y Tarski) en lugar de la teoría de la prueba. Sin embargo, parte del trabajo de Peter Buneman , Leonid Libkin , Wenfei Fan , Susan Davidson , Limsoon Wong , Atsushi Ohori y otros investigadores que trabajaban en UPenn en las décadas de 1980 y 1990, sí intentaron unir la teoría del lenguaje de programación y las bases de datos. Esto parece requerir estar cómodo con ambos estilos de lógica. Lo mismo ocurre con el trabajo más reciente de James Cheney.y Philip Wadler .

En términos de referencias específicas, el libro de texto estándar está disponible en línea para una referencia conveniente:

Desafortunadamente, no conozco ningún libro de texto o encuesta general actualizado que cubra este campo de rápido movimiento. He encontrado útiles dos encuestas anteriores. Primero,

muestra cómo conectar los puntos entre Tarski y un subcampo específico, bases de datos de restricciones. Segundo,

lanza la teoría de bases de datos (estilo 1996) a teóricos de modelos finitos, y en el proceso destaca muchas aplicaciones interesantes de lógica en bases de datos. Para trabajos más recientes (como la teoría de XML, procedencia, modelos de transmisión o bases de datos de gráficos), la lectura de trabajos de investigación altamente citados es un enfoque razonable.



4

Un uso clave de la lógica en CS es la lógica del programa, también llamada lógica de Hoare.

2(π17)

Una situación similar se obtiene en el estudio de lógicas modales que (simplificando un poco más) no son tan expresivas como la lógica de primer orden, pero lo que pueden expresar, lo hacen con fórmulas y pruebas más cortas.

Identificar fragmentos adecuados de ZFC no es difícil para los lenguajes de programación simples, pero se vuelve rápidamente más desafiante a medida que los lenguajes de programación adquieren más funciones. Los últimos dos años han visto un progreso sustancial en este esfuerzo.

El artículo Una base axiomática para la programación de computadoras de T. Hoare se considera a menudo como el estudio de la lógica de los programas en serio, es fácil de leer y probablemente sea una buena forma de comenzar a aventurarse en el campo. La misma lógica se estudia con más detalle en el libro de Winskel "Semántica formal de lenguajes de programación" mencionado por @vb le.

La teoría de tipos se puede ver en una luz similar. El punto clave de venta de la teoría de tipos es la identificación de pruebas con programas (puramente funcionales), que conducen a una gran economía de conceptos y a una automatización poderosa (en forma de inferencia de tipos y demostradores de teoremas interactivos). El precio de que la teoría de tipos sea una forma elegante de organizar pruebas es que no parece funcionar tan bien con lenguajes de programación que no son puramente funcionales.

Un texto reciente y completamente moderno que introduce la lógica del programa en una forma teñida de tipo teórico es Software Foundations de Pierce et al. Le llevará cerca de la (a) vanguardia de la investigación en verificación de programas y, como libro de texto, probablemente le dará una idea de cómo se enseñarán las ciencias de la computación y las matemáticas en el futuro.

Una vez que se ha desarrollado la lógica de un programa para un lenguaje, el siguiente paso es la automatización, o la automatización parcial: la construcción de pruebas para programas no triviales requiere mucha mano de obra, y nos gustaría que las máquinas hagan la mayor cantidad posible. Mucha de la investigación actual en métodos formales que ver con dicha automatización.


3

Hay una tradición muy fuerte de lógica en informática. Los problemas que estudiamos y la estética de la comunidad de lógica computacional no son idénticos a los de la comunidad de lógica matemática. Tiene toda la razón en que los desarrollos significativos en la teoría de modelos, la metateoría de la lógica de primer orden y la teoría de conjuntos no se usan comúnmente en la lógica computacional. Uno puede investigar con éxito la lógica computacional sin ver o usar ultrafiltros, análisis no estándar, forzado, el teorema de Paris-Harrington y una gran cantidad de otros conceptos fascinantes que se consideran importantes en la lógica clásica.

Así como uno aplica ideas matemáticas para estudiar lógica así como ideas lógicas para estudiar matemáticas, nosotros aplicamos lógica para estudiar ciencias de la computación y también aplicamos perspectivas computacionales para estudiar lógica. Este enfoque diferente tiene consecuencias bastante dramáticas para los tipos de resultados que son importantes para nosotros.

Aquí hay una cita de John Baez sobre lógica e informática. No tengo exactamente la misma opinión porque no estoy muy familiarizado con la lógica matemática avanzada.

Cuando era estudiante universitario, estaba bastante interesado en la lógica y los fundamentos de las matemáticas: siempre estaba buscando los conceptos más alucinantes que pudiera conocer, y el teorema de Goedel, el teorema de Loewenheim-Skolem, etc. a la altura de la mecánica cuántica y la relatividad general en lo que a mí respecta. [...] Recuerdo haber sentido en ese momento que la lógica se había vuelto menos revolucionaria que en la primera parte del siglo. Me pareció que la lógica se había convertido en una rama de las matemáticas como cualquier otra, estudiando las oscuras propiedades de los modelos de los axiomas de Zermelo-Fraenkel, en lugar de cuestionar las presunciones básicas implícitas en esos axiomas y atreverse a buscar enfoques nuevos y diferentes. [...]

De todos modos, ahora es bastante claro para mí que simplemente no había estado leyendo las cosas correctas. Creo que Rota ha dicho que el trabajo realmente interesante en lógica ahora se llama "informática", [...] - Semana 40, El hallazgo de esta semana, John Baez

La lógica en informática es un campo vasto y de rápido desarrollo. Encuentro que cada perspectiva de la lógica clásica puede modificarse para derivar alguna perspectiva sobre la lógica computacional. La entrada de Wikipedia sobre lógica matemática divide el campo en teoría de conjuntos, teoría de modelos, teoría de pruebas y teoría de recursión. Esencialmente, puede tomar estas áreas y agregarles un sabor computacional y obtener un subcampo de lógica computacional.

Teoría del modelo Nos gusta estudiar la teoría del modelo de la lógica no clásica y los modelos no clásicos de la lógica clásica. Con esto quiero decir que estudiamos lógicas modales, temporales y subestructurales, y que estudiamos lógicas sobre árboles, palabras y modelos finitos, a diferencia de los modelos clásicos como las álgebras. Los dos problemas fundamentales son la satisfacción y la verificación del modelo. Ambos tienen una inmensa importancia práctica y teórica. En contraste, estos problemas son menos centrales en la lógica clásica.

Teoría de la prueba Estudiamos la complejidad y eficiencia con la que podemos generar pruebas en los sistemas de prueba clásicos, así como también desarrollamos nuevos sistemas de prueba no clásicos que son sensibles a consideraciones de complejidad y eficiencia. La deducción automatizada estudia la generación de pruebas con soporte de máquina, en términos generales. El proceso puede involucrar interacción humana o ser completamente automático. Hay mucho trabajo en desarrollar procedimientos de decisión para teorías lógicas. La complejidad de la prueba se centra en el tamaño de las pruebas y la complejidad computacional de la generación de pruebas. Existe una línea de trabajo fascinante que relaciona los programas con las pruebas, que se combina con el trabajo que desciende de la lógica lineal para desarrollar sistemas de pruebas y, en consecuencia, lenguajes de programación sensibles a los recursos.

Teoría de la recursión Nuestra teoría de la recursión es la teoría de la complejidad. En lugar de estudiar qué es computable, estudiamos qué tan eficientemente podemos calcular. Existen muchos análogos de la teoría de la recursividad en la teoría de la complejidad, pero los resultados y las separaciones de la teoría de la recursividad no siempre se mantienen por sus análogos teóricos de la complejidad. En lugar de conjuntos computables y una jerarquía aritmética, tenemos el tiempo polinomial, la jerarquía de tiempo polinomial y el espacio polinomial que encierra la jerarquía. En lugar de la cuantificación limitada en la jerarquía aritmética, tenemos la satisfacción y las fórmulas booleanas cuantificadas y la cuantificación limitada de las fórmulas booleanas.

El artículo de la encuesta

Sobre la efectividad inusual de la lógica en informática

Es un buen punto de partida para obtener una vista de muy alto nivel de la lógica computacional. Voy a enumerar varios campos de la informática orientados lógicamente. Espero que otros editen esta respuesta y la agreguen a esa lista aquí, y posiblemente agreguen un enlace a una respuesta en esta página.

  1. Teoría de modelo finito
  2. Complejidad de prueba
  3. Deducción algorítmica (procedimientos de decisión para teorías lógicas)
  4. Lógica de programas.
  5. Lógica dinámica
  6. Lógica temporal lineal y sus variantes.
  7. Computational Tree Logic y sus variantes
  8. Lógica epistémica
  9. Teoría de la base de datos
  10. Teoría de tipo
  11. Autómatas sobre palabras infinitas.
  12. Lógica categórica
  13. Teoría de concurrencia y álgebra de procesos
  14. Teoría del dominio
  15. Lógica lineal
  16. Complejidad descriptiva
  17. Comprobación de modelo
  18. Cálculos de punto fijo y lógicas de cierre transitivas

1

Un área de fuerte superposición entre la lógica y la informática es la prueba automatizada de teoremas , por ejemplo, [4]. también, por ejemplo, ref [1] es el uso del probador de teoremas de Boyer-Moore para verificar / verificar el teorema de Godels. Otro resultado importante / impresionante reciente es la reciente finalización de la verificación del software del teorema de los cuatro colores (y otros como Odd Order y Feit-Thompson [3]) en la investigación de Microsoft por Gonthier. [2]

[1] Metamathematics, Machines and Gödel's Proof (Cambridge Tracts in Theoretical Computer Science por Shankar

[2] Una prueba verificada por computadora del Teorema de los cuatro colores Georges Gonthier

[3] Algoritmos interesantes en la formalización del teorema de Feit-Thompson? tcs.se

[4] ¿Dónde y cómo ayudaron las computadoras a probar un teorema? tcs.se

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.