Lógica Simbólica para Informáticos Pascual Julián Iranzo Departamento de Informática Universidad de Castilla–La Mancha EDITORIAL RA–MA i ii Índice general PRÓLOGO XV 1. INTRODUCCIÓN A LA LÓGICA 1.1. Qué es la lógica . . . . . . . . . . . 1.2. De qué trata la lógica . . . . . . . 1.3. Corrección, Verdad y Analiticidad 1.4. Presentación de los sistemas lógicos 1.5. Resumen . . . . . . . . . . . . . . . 1.6. Cuestiones y Problemas . . . . . . I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LÓGICA DE PROPOSICIONES 2. SEMÁNTICA 2.1. El lenguaje formal de la lógica de enunciados . . . . . . . 2.1.1. Traducción del lenguaje natural al lenguaje formal 2.2. Conectivas, tablas de verdad y funciones de verdad . . . . 2.2.1. Significado de las conectivas . . . . . . . . . . . . . 2.2.2. Álgebra de Boole y operadores booleanos . . . . . 2.2.3. Tablas de verdad y funciones de verdad . . . . . . 2.3. Valoración y equivalencia lógica . . . . . . . . . . . . . . . 2.4. Conjuntos adecuados de conectivas . . . . . . . . . . . . . 2.5. Argumentación, validez y consecuencia lógica . . . . . . . 2.6. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.7. Cuestiones y Problemas . . . . . . . . . . . . . . . . . . . 1 1 3 5 9 12 13 15 . . . . . . . . . . . . . . . . . . . . . . 17 17 23 25 25 30 31 34 40 42 44 45 3. CÁLCULO AXIOMÁTICO Y PROPIEDADES FORMALES 49 3.1. Sistema formal . . . . . . . . . . . . . . . . . . . . . . . . . . 49 iii ÍNDICE GENERAL iv 3.2. 3.3. 3.4. 3.5. 3.6. Lenguaje objeto y metalenguaje . . . . . . . . . El sistema formal axiomático L . . . . . . . . . El concepto de deducción formal . . . . . . . . Teorema de la deducción . . . . . . . . . . . . . Propiedades formales de la lógica de enunciados 3.6.1. Corrección . . . . . . . . . . . . . . . . 3.6.2. Consistencia . . . . . . . . . . . . . . . 3.6.3. Completitud . . . . . . . . . . . . . . . 3.6.4. Deducibilidad y consecuencia lógica . . 3.6.5. Decidibilidad . . . . . . . . . . . . . . . 3.7. Ley de intercambio . . . . . . . . . . . . . . . . 3.8. Otros sistemas formales . . . . . . . . . . . . . 3.9. Resumen . . . . . . . . . . . . . . . . . . . . . . 3.10. Cuestiones y Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. CÁLCULO DE DEDUCCIÓN NATURAL 4.1. Métodos de Prueba y Deducción Natural . . . . . . . . . . 4.1.1. Métodos de prueba de los matemáticos . . . . . . . 4.1.2. Estrategias de deducción natural . . . . . . . . . . 4.2. El Sistema de Deducción Natural . . . . . . . . . . . . . . 4.2.1. Reglas de construcción de una deducción . . . . . 4.2.2. Reglas de inferencia básicas . . . . . . . . . . . . . 4.2.3. Reglas de inferencia derivadas . . . . . . . . . . . . 4.3. Consejos para la resolución de argumentos . . . . . . . . . 4.4. Equivalencia entre el sistema L y el de deducción natural . 4.5. Otros sistemas de deducción natural . . . . . . . . . . . . 4.6. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.7. Cuestiones y Problemas . . . . . . . . . . . . . . . . . . . II . . . . . . . . . . . . . . . . . . . . . . . . . . LÓGICA DE PREDICADOS 5. SEMÁNTICA 5.1. Nombres, functores y relatores . . . . . . . . . . 5.2. Cuantificadores . . . . . . . . . . . . . . . . . . . 5.3. Lenguaje formal de primer orden, L . . . . . . . 5.3.1. Vocabulario . . . . . . . . . . . . . . . . . 5.3.2. Términos y fórmulas . . . . . . . . . . . . 5.3.3. Ocurrencia libre y ligada de una variable 5.4. Teorı́a de modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 53 57 61 65 65 67 70 71 72 73 76 77 79 . . . . . . . . . . . . 81 82 82 84 85 86 88 94 97 99 101 103 103 107 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 . 110 . 113 . 115 . 116 . 117 . 120 . 121 ÍNDICE GENERAL v 5.4.1. Interpretaciones . . . . . . . . . . . . . . . . . . . . . 121 5.4.2. Traducción del lenguaje natural al lenguaje formal e interpretaciones . . . . . . . . . . . . . . . . . . . . . 124 5.4.3. Valoración, satisfacibilidad, equivalencia lógica y verdad132 5.4.4. Fórmulas cerradas y verdad en una interpretación . . 138 5.4.5. Verdad lógica . . . . . . . . . . . . . . . . . . . . . . . 140 5.4.6. Consecuencia lógica y Modelos . . . . . . . . . . . . . 142 5.4.7. Independencia . . . . . . . . . . . . . . . . . . . . . . 145 5.5. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 5.6. Cuestiones y Problemas . . . . . . . . . . . . . . . . . . . . . 150 6. CÁLCULO AXIOMÁTICO Y PROPIEDADES LES 6.1. El sistema formal axiomático KL . . . . . . . . . . 6.2. Teorema de la deducción . . . . . . . . . . . . . . . 6.3. Propiedades formales de la lógica de predicados . . 6.3.1. Corrección y consistencia . . . . . . . . . . 6.3.2. Completitud . . . . . . . . . . . . . . . . . 6.3.3. Deducibilidad y consecuencia lógica . . . . 6.3.4. Relaciones entre sintaxis y semántica . . . . 6.3.5. El problema de la indecidibilidad . . . . . . 6.4. Resumen . . . . . . . . . . . . . . . . . . . . . . . . 6.5. Cuestiones y Problemas . . . . . . . . . . . . . . . FORMA155 . . . . . . 155 . . . . . . 159 . . . . . . 162 . . . . . . 163 . . . . . . 166 . . . . . . 168 . . . . . . 169 . . . . . . 170 . . . . . . 174 . . . . . . 175 7. CÁLCULO DE DEDUCCIÓN NATURAL 7.1. Métodos de Prueba y Deducción Natural . . . . . . 7.2. Reglas de inferencia . . . . . . . . . . . . . . . . . 7.2.1. Sustituciones . . . . . . . . . . . . . . . . . 7.2.2. Reglas de inferencia básicas . . . . . . . . . 7.2.3. Reglas de inferencia derivadas . . . . . . . . 7.3. Consejos para la resolución de argumentos . . . . . 7.4. Equivalencia entre el sistema KL y el de deducción 7.5. Resumen . . . . . . . . . . . . . . . . . . . . . . . . 7.6. Cuestiones y Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . natural . . . . . . . . . . III EXTENSIONES Y OTRAS LÓGICAS . . . . . . . . . 177 177 179 179 182 185 188 190 192 193 197 8. EXTENSIONES DE LA LÓGICA DE PREDICADOS 199 8.1. Lógica de Predicados con Identidad . . . . . . . . . . . . . . . 199 ÍNDICE GENERAL vi 8.2. 8.3. 8.4. 8.5. 8.1.1. Sistema axiomático . . . . . . . . . . . . . . . . . . . . 8.1.2. Sistema de deducción natural . . . . . . . . . . . . . . 8.1.3. Traducción del lenguaje formal al lenguaje natural: cuantificadores numéricos . . . . . . . . . . . . . . . . Tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.2.1. Lógica heterogénea . . . . . . . . . . . . . . . . . . . . 8.2.2. Tipos y lenguajes de programación . . . . . . . . . . . Orden Superior . . . . . . . . . . . . . . . . . . . . . . . . . . 8.3.1. Lógica de predicados de orden superior y expresividad 8.3.2. Lógica de predicados de segundo orden . . . . . . . . . 8.3.3. Orden superior y metateorı́a . . . . . . . . . . . . . . 8.3.4. Orden superior y lenguajes de programación . . . . . . Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cuestiones y Problemas . . . . . . . . . . . . . . . . . . . . . 9. OTRAS LÓGICAS 9.1. Lógica Clásica y Otras Lógicas . . . . . . . . . . . . . 9.2. Problemas Expresivos y la Necesidad de Otras Lógicas 9.3. Lógicas Multivalentes . . . . . . . . . . . . . . . . . . 9.3.1. Lógica trivalente . . . . . . . . . . . . . . . . . 9.3.2. Lógica borrosa . . . . . . . . . . . . . . . . . . 9.4. Lógica Modal . . . . . . . . . . . . . . . . . . . . . . . 9.4.1. Sintaxis . . . . . . . . . . . . . . . . . . . . . . 9.4.2. Semántica de los mundos posibles . . . . . . . . 9.4.3. Cálculos deductivos . . . . . . . . . . . . . . . 9.5. Lógica Temporal . . . . . . . . . . . . . . . . . . . . . 9.6. Lógica Intuicionista . . . . . . . . . . . . . . . . . . . . 9.7. Lógica no Monótona . . . . . . . . . . . . . . . . . . . 9.8. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . 9.9. Cuestiones y Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 201 205 206 206 210 218 218 220 221 223 225 228 233 . 233 . 236 . 237 . 238 . 241 . 242 . 243 . 244 . 253 . 254 . 256 . 258 . 263 . 266 A. FUNDAMENTOS MATEMÁTICOS 271 A.1. Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 A.2. Relaciones y Funciones . . . . . . . . . . . . . . . . . . . . . . 273 A.3. Números Naturales y Principio de Inducción Matemática . . 277 B. NOTACIONES PARA LOS OPERADORES LÓGICOS 281 ÍNDICE GENERAL vii C. REGLAS DE INFERENCIA 283 C.1. Reglas de inferencia básicas . . . . . . . . . . . . . . . . . . . 283 C.2. Reglas de inferencia derivadas . . . . . . . . . . . . . . . . . . 285 C.3. Fórmulas lógicamente equivalentes . . . . . . . . . . . . . . . 287 BIBLIOGRAFÍA 289 ÍNDICE ALFABÉTICO 293 viii ÍNDICE GENERAL Índice de figuras 2.1. Representación arborescente de una forma enunciativa. . . . . 2.2. Puertas lógicas y circuito combinacional. . . . . . . . . . . . . 21 32 3.1. Jerarquı́a de lenguajes y diseño en capas. . . . . . . . . . . . 53 4.1. Pasos en la construcción de la deducción del Ejemplo 20. . . . 88 5.1. Árbol de relaciones familiares. . . . . . . . . . . . . . . . . . . 125 5.2. Operaciones con conjuntos y enunciados categóricos. . . . . . 130 6.1. Relaciones entre sintaxis y semántica. . . . . . . . . . . . . . 170 8.1. Relación de equivalencia sobre un dominio finito. . . . . . . . 201 8.2. Una lista de enteros. . . . . . . . . . . . . . . . . . . . . . . . 214 A.1. Diferentes clases de funciones. . . . . . . . . . . . . . . . . . . 275 ix x ÍNDICE DE FIGURAS Índice de tablas 2.1. Tabla de verdad para las conectivas binarias. . . . . . . . . . 2.2. Conectivas binarias más notables. . . . . . . . . . . . . . . . . 2.3. Algunas fórmulas lógicamente equivalentes. . . . . . . . . . . 29 30 37 5.1. Lenguaje natural y su formalización. . . . . . . . . . . . . . . 113 5.2. Enunciados categóricos y su formalización. . . . . . . . . . . . 129 8.1. Cuantificadores numéricos. . . . . . . . . . . . . . . . . . . . . 206 9.1. Operadores modales y su interdefinibilidad. . . . . . . . . . . 244 9.2. Relaciones entre los sistemas modales. . . . . . . . . . . . . . 252 xi xii PRÓLOGO La lógica simbólica o matemática estudia la lógica utilizando técnicas y nociones matemáticas. Al mismo tiempo ha contribuido a la fundamentación de las matemáticas. Aunque la lógica es una disciplina muy antigua, que hunde sus raı́ces en los filósofos griegos de la escuela de Megara, la escuela Estoica y Aristóteles, solamente se ha constituido en disciplina formal, es decir, en lógica simbólica (en adelante, simplemente ‘lógica’), a partir de la segunda mitad del siglo XIX, con los trabajos de A. De Morgan y G. Boole. Con el comienzo del segundo tercio del siglo XX la lógica se ha visto fertilizada por los nuevos problemas y técnicas surgidos alrededor de la informática (Ciencias de la Computación e Inteligencia Artificial). La mayorı́a de los informáticos reconocen la ı́ntima conexión existente entre la lógica y la informática, comparable en importancia a la relación existente entre el análisis matemático y la fı́sica. Desde el comienzo de su relación la lógica ha jugado diferentes papeles en el campo de la informática [3, 4]: 1. Como una fuente de lenguajes y sistemas para el razonamiento, debido a su capacidad deductiva. Se han empleado diferentes tipos de lógica para describir e implementar sistemas que razonan sobre un dominio en particular (e.g. en los campos de la teorı́a de la especificación y la inteligencia artificial). La lógica temporal, una clase de lógica modal, se ha empleado para razonar sobre sistemas que incorporan el tiempo como un parámetro principal. La lógica multimodal se ha empleado para razonar sobre sistemas concurrentes e indeterministas. La lógica multimodal también es útil en el campo de los lenguajes de especificación. La lógica no monótona se ha aplicado a una gran variedad de problemas que van desde la herencia de propiedades a las bases de datos deductivas y en todas aquellas áreas en las que es necesario emular razonamientos de sentido común o manejar informaciones imprecisas. xiii CAPÍTULO 0. PRÓLOGO xiv La lógica borrosa también se ha utilizado para razonar sobre sistemas en los que el conocimiento es incierto. 2. Como una fuente de herramientas y técnicas de análisis y fundamentación. La lógica se ha empleado como una herramienta para la representación del conocimiento y en otras muchas áreas de la inteligencia artifial. Desde el punto de vista de la fundamentación, la lógica se ha utilizado para proporcionar un modelo de cómputo. El λ-cálculo y la reducción de λ-expresiones a formas normales, o bien la lógica de cláusulas de Horn y el principio de resolución SLD representan visiones idealizadas de la idea de cómputo. La lógica también se ha empleado para establecer una descripción formal del significado (semántica) de los lenguajes de programación y en la especificación y verificación formal de programas. Vemos, pues, que pueden darse un gran número de razones para el estudio de la lógica aparte de ser una buena vacuna contra la obsolescencia tecnológica que siempre amenaza a los profesionales de la informática. Como se afirma en [1]: “la lógica es particularmente importante porque es la base matemática del software”. Audiencia y objetivos El libro que estamos presentando nace de la experiencia acumulada en la docencia de la asignatura de Lógica en la Escuela Superior de Informática de la Universidad de Castilla–La Mancha, aunque también se ha beneficiado de la experiencia obtenida en la docencia de otras asignaturas, como la de Programación Declarativa y la de Inteligencia Artificial. La asignatura de Lógica se imparte, durante el primer cuatrimestre, tanto a alumnos de primer curso de las Ingenierı́as Técnicas como de la Ingenierı́a Superior de Informática. Esto supone que muchos de ellos nunca han cursado una asignatura de lógica o poseen conocimientos muy básicos de lógica proposicional y/o matemáticas. Por este motivo, no se presuponen conocimientos previos, salvo algunos rudimentos sobre teorı́a de conjuntos y aritmética. Éste es un curso de lógica matemática elemental1 y si bien la selección de los temas 1 Aquı́ la palabra ‘elemental’ no debe tomarse en un sentido técnico, esto es, para hacer referencia a la parte de la lógica en la que las variables toman valores entre los individuos de un conjunto y no se les asignan otros conjuntos o propiedades de individuos (lo que xv se ha hecho pensando en las necesidades de los alumnos de informática, también puede ser útil a alumnos de matemáticas u otras ingenierı́as. Este libro se centra, principalmente, en el estudio de las caracterı́sticas y propiedades fundamentales de los sistemas lógicos tradicionales: la lógica de proposiciones y la de predicados. Sin desdeñar el rigor matemático y el estudio de las propiedades formales de la lógica se ha dado gran importancia a las técnicas de formalización, y más generalmente a las técnicas de representación del conocimiento mediante la lógica, ası́ como a los procesos deductivos. Conscientemente se ha buscado un equilibrio entre ambos extremos, lo que distingue a este libro de otras propuestas existentes en la literatura, en las que o bien se hace hicapié en los contenidos matemáticos y la metateorı́a, o bien se aborda el estudio de la lógica de forma meramente descriptiva y centrándose en los problemas de deducción formal (en la propia lógica). Al tomar esta orientación se pretende que el alumno sea capaz de: Tener fluidez en el uso de los formalismos lógicos y la manipulación de fórmulas. Esto es de gran interés, tanto en cuanto los lenguajes de programación pueden considerarse sistemas formales y sus instrucciones fórmulas. Realizar demostraciones usando diferentes sistemas de deducción. Principalmente los llamados sistemas de deducción natural, que permiten instruir al alumno en diferentes técnicas de prueba con mayor facilidad: i) pruebas indirectas o por reducción al absurdo; y ii) pruebas directas (dentro de éstas, las pruebas por casos y las basadas en el teorema de la deducción). Distinguir entre sintaxis y semántica y la relación existente entre ambas. Distinguir entre los diferentes niveles de lenguaje: lenguaje objeto y metalenguaje. Esto es de gran ayuda para un informático, ya que muchos sistemas informáticos están diseñados y estructurados como sistemas de capas de lenguajes en los que el lenguaje definido en una capa superior actúa como metalenguaje del lenguaje de la capa inmellamamos ‘lógica de primer orden’ o ‘logica de predicados’). La palabra ‘elemental’ la empleamos en un sentido coloquial, para indicar que el alcance de los temas seleccionados —si exceptuamos la Parte III— y la profundidad con la que se abordan es de fácil comprensión o al menos no entraña dificultades insalvables para el lector que por primera vez se acerca a la lógica. CAPÍTULO 0. PRÓLOGO xvi diatamente inferior, que es considerado como lenguaje objeto respecto al primero. Conocer las técnicas de definición por inducción y de traducción del lenguaje natural al lenguaje formal, que son de interés en las tareas de programación de computadoras. Conocer las propiedades formales de la lógica y sus implicaciones. Entender el lenguaje preciso pero informal empleado por los matemáticos y sus métodos de prueba. Dado que creemos que un ingeniero debe conocer y ser capaz de expresarse usando el lenguaje de las matemáticas, concedemos gran importancia a que el alumno adquiera fluidez en ese lenguaje y pueda entender pruebas matemáticas (relacionadas con propiedades de la lógica) de complejidad pequeña y media. Aunque, como hemos dicho, el libro se centra en la lógica clásica, también se dedica atención a las nuevas tendencias de la lógica, que a pesar de su reciente aparición (en términos del devenir histórico de esta disciplina) ya tienen una gran influencia en la ciencia y tecnologı́a actuales: por ejemplo, la lógica modal o las lógicas multivalentes. El objetivo principal, respecto a este punto, es que el alumno se familiarice con estos nuevos sistemas y reconozca su utilidad práctica en las ciencias de la computación. Organización y Contenidos Tras un primer capı́tulo introductorio, que quiere ser una aproximación a la lógica en la que presentamos de manera informal el objeto de la lógica y algunos de los conceptos que consideramos más importantes (enunciado, argumento, corrección, verdad, analiticidad, y relación de consecuencia lógica), el contenido de este libro se ha organizado como sigue: Parte I. Lógica de Proposiciones. • Capı́tulo 2. Semántica. Se estudia la lógica de proposiciones desde una perspectiva semántica. Se introduce el lenguaje formal de la lógica de proposiciones: el lenguaje de las formas enunciativas. Se define el concepto de valoración que formaliza el proceso de atribución de significado para las formas enunciativas. El concepto de valoración nos permite precisar varios conceptos importantes y demostrar algunas de sus propiedades: formas enunciativas lógicamente equivalentes; xvii formas enunciativas tautológicas y el concepto de consecuencia lógica y forma argumentativa correcta. • Capı́tulo 3. Cálculo axiomático L y propiedades formales. Se estudia la lógica de proposiciones desde una perspectiva sintáctica. Comenzamos definiendo el concepto de sistema formal e introducimos el problema de la distinción entre lenguaje y metalenguaje, al que damos gran relevancia durante todo el desarrollo de este libro. Después, describimos el sistema formal axiomático L, dedicando especial atención al concepto de deducción, ya que una de las finalidades del sistema formal es proporcionarnos un método de cálculo que sirva para establecer la corrección de un argumento. Puesto que deducir en el sistema formal L es difı́cil, buscamos herramientas para facilitar esta tarea: el teorema de la deducción y el teorema de intercambio. Estudiamos las propiedades formales de la lógica de proposiciones, centrándonos en la corrección, la consistencia, la completitud y la decidibilidad; probamos que el sistema formal L posee todas estas propiedades. Para finalizar, se introduce el sistema de Kleene, como ejemplo de sistema axiomático distinto del que nosotros empleamos. • Capı́tulo 4. Cálculo de deducción natural. Se presenta un sistema de deducción natural de tipo Gentzen que flexibiliza el proceso de deducción en la propia lógica. Primero se describen algunos de los métodos de prueba usados por los matemáticos, que tienen su reflejo en las distintas reglas de inferencia básicas que componen nuestro sistema de deducción natural. El sistema que presentamos se caracteriza por hacer uso de un amplio conjunto de conectivas lógicas, por poseer sólo reglas de inferencia (pero no contener axiomas, contrariamente a lo que sucede con otras caracterizaciones de los sistemas de deducción natural) y por tener un reducido número de reglas para la construcción de una deducción. Finalizamos el capı́tulo discutiendo la relación de nuestro sistema de deducción natural con otros similares, como el cálculo de secuentes. También demostramos la equivalencia deductiva entre el sistema L y el sistema de deducción natural. Parte II. Lógica de Predicados. • Capı́tulo 5. Semántica En este capı́tulo se introduce el lenguaje de la lógica de predica- xviii CAPÍTULO 0. PRÓLOGO dos y se estudian sus aspectos semánticos. Primero se muestra la necesidad de introducir un lenguaje formal más rico, en términos expresivos, que permita dar cuenta de los nombres, los functores, los relatores y la cuantificación que es habitual en los lenguajes naturales. Después se define el lenguaje formal de la lógica de predicados como un sistema de sı́mbolos desprovisto de toda significación e inmediatamente se plantea el problema de su interpretación desde la perspectiva de la teorı́a de modelos. Se precisan los conceptos de interpretación, valoración, satisfacibilidad, verdad y validez. Estos conceptos nos permiten ampliar el concepto de equivalencia lógica a la lógica de predicados. También se demuestran diversas propiedades relativas a la noción de verdad y validez. Introducimos la noción de interpretación modelo, asociada a un determinado tipo de fórmulas que llamamos ‘cerradas’. La noción de modelo es determinante en la definición del concepto de consecuencia lógica. El teorema de la deducción semántica pone en relación los conceptos de consecuencia lógica y fórmula lógicamente válida. Para finalizar, se introduce el concepto de independencia y la técnica de prueba de independencia, que es útil para detectar cuándo una fórmula no es consecuencia lógica de otro conjunto de fórmulas. • Capı́tulo 6. Cálculo axiomático KL y propiedades formales. Estudiamos los aspectos sintácticos y las propiedades de la lógica de predicados. Con este objetivo se introduce el sistema formal axiomático KL . El sistema KL puede considerarse como una extensión del sistema L con nuevos recursos expresivos y axiomas para poder tratar un lenguaje más rico en el que tienen cabida las fórmulas cuantificadas. Dado que deducir en el sistema formal KL es tan difı́cil o más que en el sistema L, también aquı́ buscamos herramientas para facilitar la tarea de deducir. Probamos que tanto el teorema de la deducción (con ciertas restricciones) como el teorema de intercambio siguen siendo válidos en el sistema KL . Estudiamos las propiedades formales de la lógica de predicados, comprobando que el sistema formal KL es: correcto, consistente y completo; pero indecidible (si bien fragmentos de la lógica de predicados pueden probarse decidibles). La indecidibilidad de la lógica de predicados impide su completa automatización y sólo es posible implementar procedimientos de semidecisión, es decir, que permiten comprobar la validez de una fórmula pero pueden xix no terminar, si la fórmula es insatisfacible. • Capı́tulo 7. Cálculo de deducción natural. Aquı́, se extiende el sistema de deducción natural del Capı́tulo 4 con las reglas de inferencia apropiadas para tratar la cuantificación. Después de resumir los principales métodos de prueba usados por los matemáticos cuando tratan con fórmulas cuantificadas, se introducen las reglas de inferencia básicas para los cuantificadores: un par de reglas de introducción/eliminación del cuantificador universal y otro par de reglas de introducción/eliminación del cuantificador existencial. También se introducen y justifican las reglas de inferencia derivadas y se dan consejos prácticos para la resolución de argumentos cuando se usa el sistema de deducción natural. Para finalizar, se demuestra la equivalencia deductiva entre el sistema KL y el sistema de deducción natural. Parte III. Extensiones de la Lógica Clásica y Otras Lógicas. • Capı́tulo 8. Extensiones de la Lógica de Predicados. En este capı́tulo nos centramos en los sistemas de primer orden con igualdad, que se abordan desde el punto de vista de los sistemas axiomáticos y desde el punto de vista de los sistemas de deducción natural. También estudiamos la problemática que ocasiona la introducción de tipos y caracterı́ticas de orden superior en el lenguaje de lógica de predicados. Comprobamos, mediante numerosos ejemplos, que tanto el empleo de tipos como del orden superior mejora la expresividad y el diseño de los lenguajes de programación. • Capı́tulo 9. Otras Lógicas. En la segunda parte del capı́tulo se caracterizan los principios básicos sobre los que se fundamenta la lógica clásica (principio de identidad, principio de bivalencia, principio de no contradicción, principio del tercio excluso,...) y se estudian algunas de las llamadas ‘lógicas desviadas’ (lógicas multivalentes, lógica modal, lógica intuicionista y lógica no monótona), indagando cómo se ven afectados esos principios fundamentales de la lógica clásica por las nuevas concepciones de la lógica. También se comentan algunas de las aplicaciones de las lógicas no clásicas. CAPÍTULO 0. PRÓLOGO xx Es conveniente notar que a lo largo del libro aparecen una serie de temas recurrentes2 que son de gran interés para la formación del informático, como son: la distinción entre lenguaje y metalenguaje; la técnica de definición por inducción; el conocimiento de las diferentes técnicas de prueba y el problema de la representación del conocimiento. Dado que la representación del conocimiento es de singular importancia en el campo de la Inteligencia Artificial, hemos querido prestarle suficiente atención. En nuestro contexto, ese problema se concreta en el problema de la traducción del lenguaje natural al lenguaje formal de la lógica. En lugar de dedicar un capı́tulo ex professo a esta materia, a lo largo del libro se proporcionan reglas prácticas y ejemplos que permiten al lector adquirir pericia en el proceso de transformar frases del lenguaje natural en fórmulas del lenguaje formal. Hemos preferido hacerlo ası́ tanto porque las técnicas son muy diversas como porque conviene introducirlas desde el primer momento y agruparlas significarı́a postergar el estudio de algunas de ellas hasta muy tarde. Se ha dedicado el Apéndice A a la introducción de un limitado número de notaciones y nociones matemáticas que es conveniente que el lector conozca. Este apéndice puede usarse como un manual de referencia rápido al que dirigirse sólo cuando se necesite. Para finalizar, diremos que los contenidos enumerados en las dos primeras partes se adaptan a una asignatura cuatrimestral (impartida en 15 semanas, con tres horas de teorı́a y una de problemas por semana). Dichos contenidos pueden ampliarse con apartados de la tercera parte hasta cubrir un semestre, dependiendo de la profundidad y el detalle con el que se expliquen los mismos. En cualquier circunstancia es recomendable incluir el Apartado 8.1 en un primer curso de lógica. El resto de los contenidos presentados en la tercera parte se consideran temas avanzados. También es recomendable que un curso de estas caracterı́sticas se complemente y prosiga con uno de programación declarativa. Agradecimientos Deseo agradecer la colaboración y el apoyo de los compañeros que han impartido o imparten la asignatura de lógica: Eduardo Fernández-Medina, Mar Jiménez y Ramón Manjavacas. Un especial recuerdo en este momento para Jose Ángel Olivas que participó en los inicios de este proyecto y 2 Usando la terminologı́a de Denning et al. [2]. xxi que, lamentablemente, otras obligaciones profesionales le han impedido colaborar en la elaboración de este libro. Sus opiniones han sido muy valiosas y de ellas se ha beneficiado este texto. Algunos ejercicios sobre deducción natural son de su autorı́a y cedidos desinteresadamente. También deseo reconocer la aportación de Serafı́n Benito, ya que su lectura atenta de algunos capı́tulos ha servido para detectar y solucionar algunos errores introducidos inadvertidamente. Ginés Moreno ha revisado el Capı́tulo 8 y Jaime Penabad ha revisado el Capı́tulo 9, aportando extensos comentarios. Desde estas páginas mi más sincero agradecimiento a todos ellos. Finalmente, quisiera agradecer a Nieves su paciencia continua, su comprensión y apoyo, sin los que no hubiese sido posible escribir este libro. Sagunto, Navidad de 2003 xxii CAPÍTULO 0. PRÓLOGO Bibliografı́a [1] M. Ben-Ari. Mathematical Logic for Computer Science. Springer-Verlag, London, UK, 2001. [2] P.J. Denning, D.E. Comer, D. Gries, M.C. Mulder, A.B. Tucker, A.J. Turner, and P.R. Young. Computing as a discipline. Communications of the ACM, 32(1):9–23, 1989. [3] D.J. Israel. The role(s) of logic in artificial intelligence. In J.A. Robinson D.M. Gabbay, C.J. Hogger, editor, Handbook of Logic in Artificial Intelligence and Logic Programming, volume 1 Logical Foundations, pages 67–182. Oxford University Press, Oxford, UK, 1992. [4] M. Ryan and M. Sadler. Valuation systems and consequence relations. In T.S.E. Maibaum S. Abramsky, D.M. Gabbay, editor, Handbook of Logic in Computer Science, volume 1 Background: Mathematical Structures, pages 321–363. Oxford University Press, Oxford, UK, 1992. xxiii