SISTEMA EXPERTO PARA RESOLVER PROBLEMAS LÓGICOS DE DEDUCCIÓN Gabriel Garduño Soto,* David René Thierry García,** Rafael Vidal Uribe,* Hugo Padilla Chacón*** 1. Breves observaciones sobre formalización y aritmetización de la lógica La silogística de Aristóteles constituye, para la mayor parte de los historiadores de la lógica, el antecedente por excelencia en el desarrollo de la lógica formal. La silogística desde un punto de vista moderno resulta ser sólo una pequeña porción dentro del cálculo cuantificacional o del cálculo de clases (en virtud de esto último, métodos como los de Venn o de Ladd Franklin, son eficaces para el análisis de los silogismos). La lógica de los estoicos, olvidada durante muchos siglos y sólo redescubierta en el siglo XIX, constituye el antecedente de lo que ahora se conoce como cálculo proposicional. Ambas lógicas antiguas son, pues, puntos de referencia históricos para la lógica formal moderna. Hubo otros planteamientos que se quedaron en apreciaciones generales, en proyectos fallidos o inconclusos: tales como los que postularon la viabilidad de ciertos Calculus Ratiotinator, Ars Combinatoria, Mathesis Universalis, etc. Pero es hasta el siglo pasado cuando se recobra el vigor en las investigaciones lógicas, principalmente con los trabajos de Boole y de Frege. El programa de Frege, que da origen a la corriente logicista, pretende hacer plausible la reductibilidad de la matemática a la lógica y, para ello, estructura a la lógica misma como un sistema de símbolos; en sus propias palabras, como "eine der arithmetischen nachgebildete Formelsprache", es decir, como un lenguaje de fórmulas "semejante" (nachgebildete) al de la aritmética. La lógica, así, va a parecerse a la matemática en cuanto a la utilización como en ésta, de símbolos y de fórmulas. De aquí, precisamente, su caracter formal. Pero formalizar no es lo mismo que aritmetizar. Toda aritmetización de la lógica es, eo ipso, una formalización; la inversa no siempre es válida. La relación no es necesariamente simétrica. 2. Breves consideraciones sobre tres aritmetizaciones de la lógica Es bien conocido el recurso fundamental de que se sirve Gödel para desarrollar su teorema de incompletud (1931): aritmetiza el nivel de la lógica. A cada signo elemental, a cada fórmula y a cada secuencia de fórmulas de la lógica les asigna un número único (número de Gödel) de manera que la lógica queda "mapeada" en la aritmética. Este mapeo en Gödel no es un fin en sí mismo: es sólo un recurso, entre otros, de que se vale para alcanzar el propósito de probar el teorema. Quizá por ello no fue óbice que el mapeo no resultara biunívoco, es decir, que mientras a cada expresión o secuencia de expresiones lógicas les corresponde un único número (de Gödel), no todo número es un número de Gödel y, por lo tanto, no todo número representa una expresión o secuencia de expresiones lógicas. Por esto la aritmetización de Gödel no permite ir más allá, desde un punto de vista operativo. En diversos trabajos oukasiewicz empleó recursos de aritmetización para tratar problemas de lógica. Sin embargo, la aritmetización misma tampoco la tuvo como fin en sus investigaciones. A diferencia de Gödel que estableció un mecanismo estricto para garantizar la univocidad 1 * Facultad de Filosofía y Letras, UNAM. Colegio de Filosofía, División SUAFyL. ** Facultad de Economía, UNAM. División SUAE. *** Facultad de Filosofía y Letras, UNAM. División de Estudios de Posgrado. (aunque no la biunivocidad, como se dijo antes), oukasiewicz siempre estableció convenciones laxas y coyunturales, de manera que los números empleados, aunque reflejan ciertas estructuras profundas de la lógica, tampoco permiten una operatividad sistemática. En el método de Quine-McKlusky para minimizar funciones booleanas canónicas, también puede encontrarse una incipiente aritmetización. Tampoco es un objetivo en sí misma y sólo auxilia, dentro del propósito del método, al fin de agrupar los sumandos lógicos potencialmente minimizables. No hemos encontrado una aritmetización igual a la que ahora se expone en sus rasgos generales. 3. Aritmetización del cálculo proposicional 3.1 La aritmetización que hemos desarrollado está constituida por un grupo de algoritmos que resuelven como problemas estrictamente aritméticos los problemas del cálculo proposicional. 3.2 Las reglas de correspondencia permiten garantizar una biunivocidad, en el siguiente sentido: a toda y a cada fórmula del cálculo proposicional le corresponde uno y sólo un número; a todo y a cada número le corresponde una y sólo una fórmula del cálculo proposicional. 3.3 Los números constituyen los valores que pueden ser sustituidos por las variables y constantes en los algoritmos. Los números que resultan de realizar las operaciones aritméticas señaladas en los algoritmos representan la solución parcial o total de un problema lógico parcial o total. 3.4 Una vez resuelto un problema lógico por medio de los algoritmos, en virtud de 3.2 (biunivocidad) la solución aritmética se reinterpreta en notación lógica. 3.5 La validez de los algoritmos fue probada por medio de la inducción matemática. Como consecuencia de la aritmetización lograda, puede establecerse una conexión con el conocido teorema de Shannon (1938). El teorema de Shannon establece una biunivocidad entre las fórmulas del álgebra booleana y los circuitos en serie-paralelo: cada fórmula del álgebra booleana es realizable como un circuito en serie-paralelo; a la inversa, cada circuito en serie-paralelo es representable como una fórmula del álgebra booleana. Ahora puede postularse una extensión de este teorema: a cada número le corresponde una fórmula booleana canónica y, puesto que (teorema de Shannon) a cada fórmula booleana le corresponde un circuito en serie-paralelo, entonces a cada número le corresponde un circuito en serie-paralelo. La inversa es válida también. 4. Sistema para resolver problemas de deducción Los algoritmos mencionados conforman un sistema en el sentido en que grupos y subgrupos de los mismos están destinados a resolver problemas específicos, pero todos ellos son interrelacionables y, por esto, permiten resolver problemas con mayor grado de complejidad. De esta manera, el sistema, al que denominaremos, SD, puede ser definido como: SD = < {A1, A2 , K , An}, {0, 1, 2, K , n }, R > en donde {A1, A2 , K , An} es el conjunto de los algoritmos; {0, 1, 2, K , n} es el conjunto de los valores que pueden cobrar las variables y constantes de los algoritmos, y R es una relación que permite la interconexión entre los algoritmos. El sistema que conforman los algoritmos es experto en el sentido en que puede "simular" la conducta de un lógico especializado en problemas de deducción dentro del cálculo proposicional, aunque también 2 dentro del cálculo cuantificacional bajo ciertas restricciones. La silogística aristotélica, por ejemplo, aunque perteneciente por tradición a una lógica de "términos", es manejable dentro del sistema. Es experto aún en el sentido psicológico en que el sistema puede dar "sorpresas", inclusive a sus propios creadores. A manera de ilustración: cuando estaba siendo sometido a ensayos y provisto de información concerniente a la silogística clásica, "reportaba" como inválidos varios silogismos incluidos como válidos en algunos listados estándar: Bamalip, Darapti, etc. Se pensó, en primera y más grave instancia, en un error en los algoritmos; luego, en un error en la interconexión; luego, en un error en la información, etc. No había tal: el sistema estaba bien. Los silogismos que rechazaba son dubitables en tanto que silogismos genuinos, puesto que implican una presunción de existencia no contenida en las premisas universales. Para percatarse de esto, hubo necesidad de revisar las discusiones sobre la silogística clásica. Los creadores del sistema, supuestos expertos, habían olvidado estas cuestiones. No es posible ofrecer, en la reducida extensión a que están constreñidos los trabajos que se presentan en una conferencia, los algoritmos que conforman el sistema. Su exposición y explicación consumirían un tiempo equivalente, por lo menos, al de un curso con duración de dos semestres académicos. No son muy numerosos, son aproximadamente unos cien. Tampoco son difíciles de comprender: sólo se requiere el manejo de dos teorías elementales, la de la lógica y la de los números. Pero algunos de ellos son extensos y aparentemente complejos. No obstante, se destacarán en seguida algunas de sus características fundamentales: 4.1. Permiten distinguir entre las fórmulas bien formadas (wffs) y las simples expresiones. 4.2. Permiten transformar cualquier fórmula bien formada, con cualquier número y combinación de los operadores lógicos clásicos, en una fórmula canónica (normal disyuntiva). 4.3. Permiten decidir si una fórmula determinada cualquiera, con cualquier número y combinación de los operadores lógicos clásicos, es o no un teorema de un cálculo proposicional axiomatizado. 4.4. Permiten decidir, en deducción natural, si una fórmula determinada se deduce o no de un conjunto de premisas dado. 4.5. Permiten obtener, en deducción natural, todas las conclusiones semánticamente distintas que se deducen de un conjunto de premisas dado. 4.6. Resuelven un problema inusual dentro de la lógica. A saber: Permiten obtener, en deducción natural, todos los conjuntos semánticamente distintos de premisas de los cuales se deduce –una vez determinado el número de variables en que se quiera encuadrar el problema– una fórmula cualquiera propuesta a manera de conclusión. 4.7. Los problemas se pueden plantear con cualquier número y combinación de los operadores lógicos tradicionales; las soluciones, en los casos 4.5 y 4.6, se obtienen en forma normal disyuntiva. 5. Sistema y Programación Los algoritmos contenidos en el sistema permiten trabajar, en principio, con cualquier número finito de variables proposicionales, tan grande como se quiera. Sin embargo, las limitaciones propias de los equipos de cómputo personales (PC), restringen su efectividad, por ahora, a un máximo de cuatro variables. No obstante esto, se producen resultados interesantes: hay planteamientos, en el caso 4.5, en que se llegan a obtener más de 30,000 conclusiones semánticamente distintas, a partir de un conjunto de premisas con cuatro variables. 3 6. Acotación teórica La filosofía subyacente en el desarrollo de los algoritmos que utiliza el sistema está más cercana a la línea Poincaré-Brower-Weyl (intuicionismo), que a los enfoques Hilbert-Ackerman (formalismo) o Frege-Russell-Zermelo (logicismo).