stringtranslate.com

Demostración automática de teoremas

La demostración automática de teoremas (también conocida como ATP o deducción automática ) es un subcampo del razonamiento automático y la lógica matemática que se ocupa de la demostración de teoremas matemáticos mediante programas informáticos . El razonamiento automático sobre la demostración matemática fue un factor motivador importante para el desarrollo de la informática .

Fundamentos lógicos

Aunque las raíces de la lógica formalizada se remontan a Aristóteles , a finales del siglo XIX y principios del XX se produjo el desarrollo de la lógica moderna y las matemáticas formalizadas. La Begriffsschrift (1879) de Frege introdujo tanto un cálculo proposicional completo como lo que es esencialmente la lógica de predicados moderna . [1] Su Fundamentos de aritmética , publicado en 1884, [2] expresó (partes de) las matemáticas en lógica formal. Este enfoque fue continuado por Russell y Whitehead en su influyente Principia Mathematica , publicado por primera vez entre 1910 y 1913, [3] y con una segunda edición revisada en 1927. [4] Russell y Whitehead pensaron que podían derivar toda la verdad matemática utilizando axiomas y reglas de inferencia de la lógica formal, abriendo en principio el proceso a la automatización. En 1920, Thoralf Skolem simplificó un resultado previo de Leopold Löwenheim , lo que condujo al teorema de Löwenheim-Skolem y, en 1930, a la noción de un universo de Herbrand y una interpretación de Herbrand que permitía reducir la (in)satisfacibilidad de fórmulas de primer orden (y, por lo tanto, la validez de un teorema) a (potencialmente infinitos) problemas de satisfacibilidad proposicional. [5]

En 1929, Mojżesz Presburger demostró que la teoría de primer orden de los números naturales con adición e igualdad (ahora llamada aritmética de Presburger en su honor) es decidible y dio un algoritmo que podía determinar si una oración dada en el lenguaje era verdadera o falsa. [6] [7]

Sin embargo, poco después de este resultado positivo, Kurt Gödel publicó On Formally Undecidable Propositions of Principia Mathematica and Related Systems (1931), mostrando que en cualquier sistema axiomático suficientemente fuerte hay enunciados verdaderos que no pueden ser probados en el sistema. Este tema fue desarrollado más a fondo en la década de 1930 por Alonzo Church y Alan Turing , quienes por un lado dieron dos definiciones independientes pero equivalentes de computabilidad , y por otro dieron ejemplos concretos de cuestiones indecidibles .

Primeras implementaciones

Poco después de la Segunda Guerra Mundial , aparecieron las primeras computadoras de propósito general. En 1954, Martin Davis programó el algoritmo de Presburger para una computadora de tubo de vacío JOHNNIAC en el Instituto de Estudios Avanzados de Princeton, Nueva Jersey. Según Davis, "su gran triunfo fue demostrar que la suma de dos números pares es par". [7] [8] Más ambicioso fue el Logic Theorist de 1956, un sistema de deducción para la lógica proposicional de los Principia Mathematica , desarrollado por Allen Newell , Herbert A. Simon y JC Shaw . También ejecutándose en un JOHNNIAC, el Logic Theorist construyó pruebas a partir de un pequeño conjunto de axiomas proposicionales y tres reglas de deducción: modus ponens , sustitución de variable (proposicional) y el reemplazo de fórmulas por su definición. El sistema utilizó una guía heurística y logró demostrar 38 de los primeros 52 teoremas de los Principia . [7]

El enfoque "heurístico" del teórico de la lógica intentó emular a los matemáticos humanos y no pudo garantizar que se pudiera encontrar una prueba para cada teorema válido ni siquiera en principio. En contraste, otros algoritmos más sistemáticos lograron, al menos teóricamente, la completitud para la lógica de primer orden. Los enfoques iniciales se basaron en los resultados de Herbrand y Skolem para convertir una fórmula de primer orden en conjuntos sucesivamente más grandes de fórmulas proposicionales mediante la instanciación de variables con términos del universo de Herbrand . Las fórmulas proposicionales luego podían verificarse para determinar su insatisfacción utilizando varios métodos. El programa de Gilmore utilizó la conversión a la forma normal disyuntiva , una forma en la que la satisfacibilidad de una fórmula es obvia. [7] [9]

Decidibilidad del problema

Dependiendo de la lógica subyacente, el problema de decidir la validez de una fórmula varía de trivial a imposible. Para el caso común de la lógica proposicional , el problema es decidible pero co-NP-completo y, por lo tanto, se cree que solo existen algoritmos de tiempo exponencial para tareas de prueba generales. Para un cálculo de predicados de primer orden , el teorema de completitud de Gödel establece que los teoremas (enunciados demostrables) son exactamente las fórmulas bien formadas semánticamente válidas , por lo que las fórmulas válidas son computablemente enumerables : dados recursos ilimitados, cualquier fórmula válida puede eventualmente ser demostrada. Sin embargo, las fórmulas inválidas (aquellas que no están implicadas por una teoría dada), no siempre pueden reconocerse.

Lo anterior se aplica a las teorías de primer orden, como la aritmética de Peano . Sin embargo, para un modelo específico que puede ser descrito por una teoría de primer orden, algunas afirmaciones pueden ser verdaderas pero indecidibles en la teoría utilizada para describir el modelo. Por ejemplo, por el teorema de incompletitud de Gödel , sabemos que cualquier teoría consistente cuyos axiomas sean verdaderos para los números naturales no puede probar que todas las afirmaciones de primer orden sean verdaderas para los números naturales, incluso si se permite que la lista de axiomas sea infinitamente enumerable. De ello se deduce que un demostrador de teoremas automatizado no podrá terminar mientras busca una prueba precisamente cuando la afirmación que se investiga sea indecidible en la teoría que se utiliza, incluso si es verdadera en el modelo de interés. A pesar de este límite teórico, en la práctica, los demostradores de teoremas pueden resolver muchos problemas difíciles, incluso en modelos que no están completamente descritos por ninguna teoría de primer orden (como los números enteros ).

Problemas relacionados

Un problema más simple, pero relacionado, es la verificación de pruebas , en la que se certifica la validez de una prueba existente para un teorema. Para ello, generalmente se requiere que cada paso de prueba individual pueda verificarse mediante una función o programa recursivo primitivo y, por lo tanto, el problema siempre es decidible.

Dado que las pruebas generadas por los demostradores de teoremas automatizados suelen ser muy grandes, el problema de la compresión de pruebas es crucial, y se han desarrollado varias técnicas destinadas a hacer que la salida del demostrador sea más pequeña y, en consecuencia, más fácilmente comprensible y comprobable.

Los asistentes de prueba requieren que un usuario humano dé pistas al sistema. Dependiendo del grado de automatización, el probador puede reducirse esencialmente a un verificador de pruebas, en el que el usuario proporciona la prueba de manera formal, o se pueden realizar tareas de prueba importantes de forma automática. Los probadores interactivos se utilizan para una variedad de tareas, pero incluso los sistemas completamente automáticos han demostrado una serie de teoremas interesantes y difíciles, incluido al menos uno que ha eludido a los matemáticos humanos durante mucho tiempo, a saber, la conjetura de Robbins . [10] [11] Sin embargo, estos éxitos son esporádicos y el trabajo en problemas difíciles generalmente requiere un usuario competente.

A veces se hace otra distinción entre la demostración de teoremas y otras técnicas, donde un proceso se considera una demostración de teoremas si consiste en una prueba tradicional, que comienza con axiomas y produce nuevos pasos de inferencia utilizando reglas de inferencia. Otras técnicas incluirían la comprobación de modelos , que, en el caso más simple, implica la enumeración por fuerza bruta de muchos estados posibles (aunque la implementación real de los verificadores de modelos requiere mucha inteligencia y no se reduce simplemente a la fuerza bruta).

Existen sistemas híbridos de demostración de teoremas que utilizan la comprobación de modelos como regla de inferencia. También hay programas que se escribieron para demostrar un teorema en particular, con una prueba (generalmente informal) de que si el programa termina con un resultado determinado, entonces el teorema es verdadero. Un buen ejemplo de esto fue la prueba asistida por máquina del teorema de los cuatro colores , que fue muy controvertida por ser la primera prueba matemática que era esencialmente imposible de verificar por humanos debido al enorme tamaño del cálculo del programa (tales pruebas se denominan pruebas no verificables ). Otro ejemplo de una prueba asistida por programa es la que muestra que el juego de Conecta 4 siempre lo puede ganar el primer jugador.

Aplicaciones

El uso comercial de la demostración automatizada de teoremas se concentra principalmente en el diseño y verificación de circuitos integrados . Desde el error FDIV de Pentium , las complicadas unidades de punto flotante de los microprocesadores modernos han sido diseñadas con un escrutinio adicional. AMD , Intel y otros utilizan la demostración automatizada de teoremas para verificar que la división y otras operaciones se implementan correctamente en sus procesadores. [12]

Otros usos de los demostradores de teoremas incluyen la síntesis de programas y la construcción de programas que satisfacen una especificación formal . [13] Los demostradores de teoremas automatizados se han integrado con asistentes de prueba , incluido Isabelle/HOL . [14]

También se encuentran aplicaciones de los demostradores de teoremas en el procesamiento del lenguaje natural y la semántica formal , donde se utilizan para analizar representaciones del discurso . [15] [16]

Demostración del teorema de primer orden

A finales de los años 1960, las agencias que financiaban la investigación en deducción automática comenzaron a enfatizar la necesidad de aplicaciones prácticas. [ cita requerida ] Una de las primeras áreas fructíferas fue la de la verificación de programas , mediante la cual se aplicaron probadores de teoremas de primer orden al problema de verificar la corrección de programas informáticos en lenguajes como Pascal , Ada , etc. Entre los primeros sistemas de verificación de programas, se destacó el Stanford Pascal Verifier desarrollado por David Luckham en la Universidad de Stanford . [17] [18] [19] Este se basaba en el Stanford Resolution Prover, también desarrollado en Stanford, utilizando el principio de resolución de John Alan Robinson . Este fue el primer sistema de deducción automática que demostró la capacidad de resolver problemas matemáticos que se anunciaron en los Avisos de la Sociedad Matemática Estadounidense antes de que se publicaran formalmente las soluciones. [ cita requerida ]

La demostración de teoremas de primer orden es uno de los subcampos más maduros de la demostración automatizada de teoremas. La lógica es lo suficientemente expresiva como para permitir la especificación de problemas arbitrarios, a menudo de una manera razonablemente natural e intuitiva. Por otro lado, todavía es semidecidible, y se han desarrollado varios cálculos sólidos y completos que permiten sistemas completamente automatizados. [20] Las lógicas más expresivas, como las lógicas de orden superior , permiten la expresión conveniente de una gama más amplia de problemas que la lógica de primer orden, pero la demostración de teoremas para estas lógicas está menos desarrollada. [21] [22]

Relación con SMT

Existe una superposición sustancial entre los probadores de teoremas automáticos de primer orden y los solucionadores SMT . En general, los probadores de teoremas automáticos se centran en respaldar la lógica de primer orden completa con cuantificadores, mientras que los solucionadores SMT se centran más en respaldar varias teorías (símbolos de predicado interpretados). Los ATP se destacan en problemas con muchos cuantificadores, mientras que los solucionadores SMT funcionan bien en problemas grandes sin cuantificadores. [23] La línea es lo suficientemente borrosa como para que algunos ATP participen en SMT-COMP, mientras que algunos solucionadores SMT participen en CASC . [24]

Puntos de referencia, competencias y fuentes

La calidad de los sistemas implementados se ha beneficiado de la existencia de una gran biblioteca de ejemplos de referencia estándar (la biblioteca de problemas de miles de problemas para demostradores de teoremas (TPTP) [25]) , así como de la Competencia de sistemas CADE ATP (CASC), una competencia anual de sistemas de primer orden para muchas clases importantes de problemas de primer orden.

A continuación se enumeran algunos sistemas importantes (todos han ganado al menos una división de competición CASC).

El Museo de Demostradores de Teoremas [27] es una iniciativa para conservar las fuentes de los sistemas de demostración de teoremas para su análisis futuro, ya que son importantes artefactos culturales y científicos. Contiene las fuentes de muchos de los sistemas mencionados anteriormente.

Técnicas populares

Sistemas de software

Software libre

Software propietario

Véase también

Notas

  1. ^ Frege, Gottlob (1879). Begriffsschrift. Editorial Louis Neuert.
  2. ^ Frege, Gottlob (1884). Die Grundlagen der Arithmetik (PDF) . Breslau: Wilhelm Kobner. Archivado desde el original (PDF) el 26 de septiembre de 2007 . Consultado el 2 de septiembre de 2012 .
  3. ^ Russell, Bertrand; Whitehead, Alfred North (1910–1913). Principia Mathematica (1.ª ed.). Prensa de la Universidad de Cambridge.
  4. ^ Russell, Bertrand; Whitehead, Alfred North (1927). Principia Mathematica (2.ª ed.). Prensa de la Universidad de Cambridge.
  5. ^ Herbrand, J. (1930). Recherches sur la théorie de la démonstration (Doctor) (en francés). Universidad de París.
  6. ^ Presburger, Mojżesz (1929). "Über die Vollständigkeit eines gewissen Systems der Arithmetik ganzer Zahlen, in welchem ​​die Addition als einzige Operation hervortritt". Comptes Rendus du I Congrès de Mathématiciens des Pays Slaves . Varsovia: 92-101.
  7. ^ abcd Davis, Martin (2001). "La historia temprana de la deducción automatizada". Robinson & Voronkov 2001. Archivado desde el original el 28 de julio de 2012. Consultado el 8 de septiembre de 2012 .
  8. ^ Bibel, Wolfgang (2007). «Historia temprana y perspectivas de la deducción automatizada» (PDF) . Ki 2007. LNAI (4667). Springer: 2–18. Archivado (PDF) desde el original el 2022-10-09 . Consultado el 2 de septiembre de 2012 .
  9. ^ Gilmore, Paul (1960). "Un procedimiento de prueba para la teoría de la cuantificación: su justificación y realización". IBM Journal of Research and Development . 4 : 28–35. doi :10.1147/rd.41.0028.
  10. ^ McCune, WW (1997). "Solución del problema de Robbins". Revista de razonamiento automatizado . 19 (3): 263–276. doi :10.1023/A:1005843212881. S2CID  30847540.
  11. ^ Kolata, Gina (10 de diciembre de 1996). "Computer Math Proof Shows Reasoning Power". The New York Times . Consultado el 11 de octubre de 2008 .
  12. ^ Goel, Shilpi; Ray, Sandip (2022), Chattopadhyay, Anupam (ed.), "Aseguramiento del microprocesador y el papel de la demostración de teoremas", Handbook of Computer Architecture , Singapur: Springer Nature Singapore, págs. 1–43, doi :10.1007/978-981-15-6401-7_38-1, ISBN 978-981-15-6401-7, consultado el 10 de febrero de 2024
  13. ^ Basin, D.; Deville, Y.; Flener, P.; Hamfelt, A.; Fischer Nilsson, J. (2004). "Síntesis de programas en lógica computacional". En M. Bruynooghe y K.-K. Lau (ed.). Desarrollo de programas en lógica computacional . LNCS. Vol. 3049. Springer. págs. 30–65. CiteSeerX 10.1.1.62.4976 . 
  14. ^ Meng, Jia; Paulson, Lawrence C. (1 de enero de 2008). "Traducción de cláusulas de orden superior a cláusulas de primer orden". Revista de razonamiento automatizado . 40 (1): 35–60. doi :10.1007/s10817-007-9085-y. ISSN  1573-0670. S2CID  7716709.
  15. ^ Bos, Johan. "Análisis semántico de amplia cobertura con Boxer". Semántica en el procesamiento de textos. Actas de la conferencia Step 2008. 2008.
  16. ^ Muskens, Reinhard. "Combinando la semántica de Montague y la representación del discurso". Lingüística y filosofía (1996): 143-186.
  17. ^ Luckham, David C.; Suzuki, Norihisa (marzo de 1976). Automatic Program Verification V: Verification-Oriented Proof Rules for Arrays, Records, and Pointers (Informe técnico AD-A027 455). Centro de información técnica de defensa . Archivado desde el original el 12 de agosto de 2021.
  18. ^ Luckham, David C.; Suzuki, Norihisa (octubre de 1979). "Verificación de operaciones de matriz, registro y puntero en Pascal". ACM Transactions on Programming Languages ​​and Systems . 1 (2): 226–244. doi : 10.1145/357073.357078 . S2CID  10088183.
  19. ^ Luckham, D.; German, S.; von Henke, F.; Karp, R.; Milne, P.; Oppen, D.; Polak, W.; Scherlis, W. (1979). Manual de usuario del verificador Stanford Pascal (informe técnico). Universidad de Stanford. CS-TR-79-731.
  20. ^ Loveland, DW (1986). "Demostración automatizada de teoremas: mapeo de la lógica en la IA". Actas del simposio internacional ACM SIGART sobre metodologías para sistemas inteligentes . Knoxville, Tennessee, Estados Unidos: ACM Press. p. 224. doi : 10.1145/12808.12833 . ISBN . 978-0-89791-206-8.S2CID14361631  .​
  21. ^ Kerber, Manfred. "Cómo demostrar teoremas de orden superior en lógica de primer orden" (1999).
  22. ^ Benzmüller, Christoph, et al. "LEO-II: un demostrador automático cooperativo de teoremas para lógica clásica de orden superior (descripción de sistemas)". Conferencia conjunta internacional sobre razonamiento automatizado. Berlín, Alemania y Heidelberg: Springer, 2008.
  23. ^ Blanchette, Jasmin Christian; Böhme, Sascha; Paulson, Lawrence C. (1 de junio de 2013). "Extendiendo Sledgehammer con solucionadores SMT". Journal of Automated Reasoning . 51 (1): 109–128. doi :10.1007/s10817-013-9278-5. ISSN  1573-0670. S2CID  5389933. Los ATP y los solucionadores SMT tienen fortalezas complementarias. Los primeros manejan los cuantificadores de manera más elegante, mientras que los segundos sobresalen en problemas grandes, principalmente de base.
  24. ^ Weber, Tjark; Conchon, Sylvain; Déharbe, David; Heizmann, Matthias; Niemetz, Aina; Reger, Giles (1 de enero de 2019). "La competencia SMT 2015-2018". Revista sobre satisfacibilidad, modelado booleano y computación . 11 (1): 221–259. doi : 10.3233/SAT190123 . En los últimos años, hemos visto cómo se difuminan las líneas entre SMT-COMP y CASC, con los solucionadores SMT compitiendo en CASC y los ATP compitiendo en SMT-COMP.
  25. ^ Sutcliffe, Geoff. "La biblioteca de problemas TPTP para la demostración automatizada de teoremas" . Consultado el 15 de julio de 2019 .
  26. ^ "Historia". vprover.github.io .
  27. ^ "Museo del demostrador de teoremas". Michael Kohlhase . Consultado el 20 de noviembre de 2022 .
  28. ^ Bundy, Alan (1999). La automatización de la prueba por inducción matemática (PDF) (Informe técnico). Informatics Research Report. Vol. 2. División de Informática, Universidad de Edimburgo. hdl :1842/3394.
  29. ^ Gabbay, Dov M. y Hans Jürgen Ohlbach. "Eliminación de cuantificadores en lógica de predicados de segundo orden". (1992).

Referencias

Enlaces externos