Vous êtes sur la page 1sur 228

Lgica Computacional

Jos Luis Fernndez Vindel


ngeles Manjarrs Riesco
Francisco Javier Dez Vegas
Dpto. Inteligencia Articial
E.T.S.I. Informtica
UNED
2007
Presentacin
Estos apuntes se facilitan como material de estudio de la asignatura Lgica Computacional, impartida
por los autores en cuarto curso de Ingeniera Informtica en la UNED.
Los alumnos de este curso encontrarn, en su grupo de tutorizacin en la Red, otros documentos
con ejemplos, actividades, ampliaciones o exmenes previos resueltos.
Los captulos 1-2 y 5-6 han sido desarrollados por Jos Luis Fernndez Vindel, el captulo 3 por
ngeles Manjarrs Riesco y el captulo 4 por Francisco Javier Dez Vegas, todos ellos profesores del
Departamento de Inteligencia Articial de la UNED.
Agradeceramos sinceramente cualquier comunicacin sobre erratas as como sugerencias sobre
los contenidos y su exposicin. En particular nos preocupa cmo mantener un tono expositivo amiga-
ble sin renunciar al rigor: hasta qu punto facilitar demostraciones formales (y dnde situarlas), cmo
reubicar ejemplos y ejercicios para no entorpecer la exposicin, etc.
Estas aportaciones se estn canalizado a travs del grupo de tutorizacin en la Red. La pgina
www.ia.uned.asignaturas/logica4resume los detalles de planicacin de este curso y facilita la
direccin electrnica del grupo.
Los autores
UNED, Madrid, 1 de octubre de 2007
Sobre esta edicin 2007
Esta edicin, de Octubre de 2007, diere de la utilizada el pasado curso 06-07 en dos puntos:
1. algunas actualizaciones menores en los apartados sobre el uso de los apuntes (presentacin,
localizacin de ejercicios, direcciones de la asignatura, etc.)
2. una variacin sustancial en el captulo 6: se ha sustituido ntegramente su contenido. El nue-
vo captulo 6 corresponde al contenido del artculo sobre lgica temporal CTL que se facilit
separadamente el pasado curso.
Si el estudiante dispone de la versin impresa previa de estos apuntes y del citado artculo, no es
necesario que imprima esta nueva versin. Cualquier duda puede consultarse en los Foros habilitados
en el grupo de tutorizacin telemtica.
II
ndice general
Introduccin 1
Objetivos y contenidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Motivacin para los alumnos de Ingeniera Informtica . . . . . . . . . . . . . . . . . . . 2
Bibliografa recomendada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Parte I. LGICA DE PREDICADOS 5
1 LGICA DE PROPOSICIONES 7
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.1 El lenguaje de la Lgica de Proposiciones . . . . . . . . . . . . . . . . . . . 9
1.1.2 Sobre la estructura inductiva del lenguaje . . . . . . . . . . . . . . . . . . . 12
1.1.3 Derivacin de conceptos sintcticos . . . . . . . . . . . . . . . . . . . . . . 15
1.1.4 Eliminacin de parntesis . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2 Semntica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2.2 Valores de verdad de frmulas atmicas . . . . . . . . . . . . . . . . . . . . 22
1.2.3 Semntica de las conectivas . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.2.4 Valores de verdad de frmulas complejas . . . . . . . . . . . . . . . . . . . 24
1.2.5 Tablas de verdad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.2.6 Tautologas y contradicciones . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.3 Conceptos semnticos bsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.3.1 Satisfacibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.3.2 Validez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.3.3 Consecuencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.3.4 Equivalencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.4 Sistemas deductivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.4.1 Deduccin natural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1.4.2 Resolucin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
1.4.3 Tablas semnticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Bibliografa complementaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Actividades y evaluacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2 LGICA DE PREDICADOS DE PRIMER ORDEN 63
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.1.1 Lenguajes de primer orden . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.1.2 Induccin y recursin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.1.3 Subfrmulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.1.4 Eliminacin de parntesis . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.1.5 Variables libres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.1.6 Sustituciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.2 Semntica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.2.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.2.2 Interpretaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.2.3 Asignaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.2.4 Satisfaccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.2.5 Ejemplos de interpretacin . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.2.6 Conceptos semnticos bsicos . . . . . . . . . . . . . . . . . . . . . . . . . 87
2.3 Deduccin Natural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.3.1 Consideraciones previas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
2.3.2 Cuanticadores universales . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
2.3.3 Cuanticadores existenciales . . . . . . . . . . . . . . . . . . . . . . . . . . 92
2.4 Tablas semnticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
2.4.1 Frmulas proposicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
2.4.2 Notacin uniforme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
2.4.3 Reglas de expansin y . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
2.4.4 Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
2.5 Resolucin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
2.5.1 Forma prenexa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
2.5.2 Funciones de Skolem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
2.5.3 Forma clausulada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
2.5.4 Unicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
2.5.5 Resolucin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Bibliografa complementaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Actividades y evaluacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Parte II. FORMALISMOS PARA PROGRAMACIN 113
3 PROGRAMACIN LGICA 115
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
3.1 Cmo interpretar una frmula lgica como un programa . . . . . . . . . . . . . . . 116
3.1.1 Declaracin de programa versus algoritmo de solucin . . . . . . . . . . . . 116
3.1.2 La resolucin como algoritmo para la solucin de problemas . . . . . . . . . 119
3.1.3 Programacin lgica versus programacin algortmica . . . . . . . . . . . . 121
3.2 Formalismo lgico para la representacin de problemas . . . . . . . . . . . . . . . . 123
IV
3.3 Resolucin SLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
3.4 El lenguaje PROLOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
3.4.1 Denicin de predicados recursivos. Reglas de computacin y bsqueda . . . 128
3.4.2 Usos procedimentales del PROLOG . . . . . . . . . . . . . . . . . . . . . . 133
3.4.3 Ventajas de la programacin en PROLOG. Principales aplicaciones. . . . . . 140
Bibliografa complementaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Actividades y evaluacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
4 VERIFICACIN DE PROGRAMAS SECUENCIALES 145
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
4.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
4.2 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
4.2.1 Un micro-lenguaje de programacin . . . . . . . . . . . . . . . . . . . . . . 146
4.2.2 Especicacin de estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
4.2.3 Ternas de Hoare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
4.2.4 Variables de programa y variables lgicas . . . . . . . . . . . . . . . . . . . 148
4.3 Semntica de los programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
4.3.1 Correccin total . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
4.3.2 Correccin parcial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
4.4 El sistema deductivo de Hoare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
4.4.1 Regla de asignacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
4.4.2 Regla del condicional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
4.4.3 Regla del condicional modicada . . . . . . . . . . . . . . . . . . . . . . . 153
4.4.4 Regla del bucle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
4.4.5 Regla de composicin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
4.4.6 Regla de encadenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
4.5 Vericacin parcial de programas . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
4.5.1 Composicin y encadenamiento . . . . . . . . . . . . . . . . . . . . . . . . 156
4.5.2 Tratamiento de las asignaciones . . . . . . . . . . . . . . . . . . . . . . . . 157
4.5.3 Tratamiento de las instrucciones condicionales . . . . . . . . . . . . . . . . 158
4.5.4 Tratamiento de los bucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
4.6 Vericacin total de programas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
4.7 Comentarios adicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
4.7.1 Consistencia y completitud . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
4.7.2 Otras cuestiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Bibliografa complementaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Actividades y evaluacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Parte III. LGICA MODAL 165
5 FUNDAMENTOS DE LGICA MODAL 167
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
5.1 Perspectiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
V
5.1.1 Estructuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
5.1.2 Frmulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
5.1.3 Modelos adecuados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
5.2 Estructuras relacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
5.2.1 Sistemas de transiciones etiquetadas . . . . . . . . . . . . . . . . . . . . . . 171
5.2.2 Propiedades de una relacin binaria . . . . . . . . . . . . . . . . . . . . . . 172
5.2.3 Cierres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
5.3 Lgica monomodal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
5.3.1 Lgica modal bsica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
5.3.2 Teora de la correspondencia . . . . . . . . . . . . . . . . . . . . . . . . . . 191
5.3.3 Lgicas normales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
5.4 Lgicas polimodales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
5.4.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
5.4.2 Semantica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
5.4.3 Lgica temporal bsica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
5.4.4 Lgica epistmica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Bibliografa complementaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Actividades y evaluacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
6 Lgica Modal Temporal 201
6.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
6.1.1 Diseo de sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
6.1.2 Propiedades de un diseo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
6.1.3 Vericacin de las propiedades de un diseo . . . . . . . . . . . . . . . . . 202
6.2 CTL: Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
6.3 CTL: semntica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
6.3.1 Introduccin informal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
6.3.2 Denicin de la semntica de CTL . . . . . . . . . . . . . . . . . . . . . . . 206
6.3.3 Expresin de propiedades en CTL . . . . . . . . . . . . . . . . . . . . . . . 207
6.3.4 Equivalencias bsicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
6.4 Vericacin CTL: un primer algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . 209
6.4.1 Frmulas sin operadores temporales . . . . . . . . . . . . . . . . . . . . . . 209
6.4.2 Frmulas con operadores temporales . . . . . . . . . . . . . . . . . . . . . . 210
6.4.3 Pseudocdigo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
6.5 Consideraciones nales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Bibliografa 215
VI
ndice de guras
1 Dependencia conceptual entre los temas. . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 rboles sintcticos: presentacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2 rbol sintctico: p q) p)) . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 Los colores de las frmulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4 Denicin recursiva de rbol sintctico . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5 Sustitucin uniforme [p, q,] sobre un rbol sintctico . . . . . . . . . . . . . . . 17
1.6 rboles y parntesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.7 Interpretacin inducida por una asignacin . . . . . . . . . . . . . . . . . . . . . . . 24
1.8 Deduccin natural. pqr) pr . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.9 rbol de la deduccin natural. pqr) pr . . . . . . . . . . . . . . . . . . . 44
1.10 Deduccin natural. pqr) pq) pr) . . . . . . . . . . . . . . . . . . . 46
1.11 rbol de la deduccin natural. pqr) pq) pr) . . . . . . . . . . . . . 47
1.12 Deduccin natural. pq) pr) pqr) . . . . . . . . . . . . . . . . . . . 47
1.13 Deduccin natural. p q q r p r . . . . . . . . . . . . . . . . . . . . . . . 48
1.14 Deduccin natural. pq) r p q r) . . . . . . . . . . . . . . . . . . . . 49
1.15 Deduccin natural. p q r) pq) r . . . . . . . . . . . . . . . . . . . . 49
1.16 Deduccin natural. p pq) . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
1.17 Deduccin natural. p q q p . . . . . . . . . . . . . . . . . . . . . . . . . . 50
1.18 rbol de la resolucin {pq pr qr r} . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1.19 Una derivacin de la clusula vaca . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1.20 Una derivacin de la clusula vaca . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
1.21 Notacin uniforme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
1.22 Tableau de p qr)) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
1.23 Tableau de {p qr) r p} . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.1 Frmula de Primer Orden: rbol sintctico . . . . . . . . . . . . . . . . . . . . . . . 66
2.2 Dos frmulas de Primer Orden: subfrmulas . . . . . . . . . . . . . . . . . . . . . . 69
2.3 mbitos y variables libres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.4 Tres estructuras sobre el mismo universo . . . . . . . . . . . . . . . . . . . . . . . . 81
2.5 Estructuras con dos predicados mondicos . . . . . . . . . . . . . . . . . . . . . . . 84
2.6 Inferencia sobre instancias de frmulas proposicionales . . . . . . . . . . . . . . . . 90
2.7 Tableau que conrma que p qr) r p . . . . . . . . . . . . . . . . . . 95
2.8 p p

) qq

) r r

)) r r

) p p

) . . . . . . . . . . . . . . . 95
2.9 xPx yQy zRz) zRz xPx . . . . . . . . . . . . . . . . . . . . . . 98
2.10 Tableau que conrma que xPx yQy yxPx Qy) . . . . . . . . . . . . . . . 99
2.11 Tableau que conrma que xyRxy Qy) xyRxy zQz . . . . . . . . . . . . 100
3.1 rbol SLD del objetivo qy b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
3.2 rbol SLD del objetivo conectadoY b) conectadob Z) . . . . . . . . . . . . . . . 130
3.3 Reevaluacin del objetivo conectadoY b) conectadob Z) . . . . . . . . . . . . . . 131
3.4 Exploracin del rbol SLD del objetivo conectadoY b) conectadob Z) por un in-
trprete PROLOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
3.5 Rama innita del rbol SLD del objetivo conectadoXY) . . . . . . . . . . . . . . 132
3.6 Funcionamiento del operador de corte . . . . . . . . . . . . . . . . . . . . . . . . . 138
5.1 Estructura relacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
VII
5.2 Un modelo: marco y asignacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
5.3 Relaciones binarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
5.4 rbol sintctico de pq) r)) . . . . . . . . . . . . . . . . . . . . . . . . 177
5.5 dos marcos sobre un mismo conjunto W . . . . . . . . . . . . . . . . . . . . . . . . 180
5.6 una relacin sobre un conjunto de 4 elementos . . . . . . . . . . . . . . . . . . . . . 180
5.7 Un modelo: marco y asignacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
5.8 satisfaccin de una frmula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
5.9 Marco para un lenguaje bimodal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
6.1 Diagrama de transiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
6.2 Transiciones desde el nodo 1 de la gura 6.1 . . . . . . . . . . . . . . . . . . . . . . 202
6.3 E[ AFpq) U EXp) ] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
6.4 Propagacin de la marca AF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
VIII
ndice de tablas
1.1 Alfabeto griego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2 2
3
asignaciones distintas sobre 3 letras proposicionales . . . . . . . . . . . . . . . . 22
1.3 Semntica de las conectivas binarias . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.4 Tabla de verdad de pq) )) . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.5 Tabla de verdad de pq) p)) . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.6 Tabla de verdad, compacta, de pq) p)) . . . . . . . . . . . . . . . . . . . . 26
1.7 Una frmula insatisfacible y dos satisfacibles . . . . . . . . . . . . . . . . . . . . . 27
1.8 El conjunto ={p qr) pq) r q r p)} es satisfacible . . . . . . . . 28
1.9 El conjunto ={p qr) pq) r p)} es insatisfacible . . . . . . . . . . 28
1.10 Consecuencia. {pq) pr)} |= qr) . . . . . . . . . . . . . . . . . . . . . . 31
1.11 Consecuencia. {pr p q)} |= pq) . . . . . . . . . . . . . . . . . . . . . 31
1.12 Si {
1
. . .
n
} |= entonces
1
. . .
n
es tautologa . . . . . . . . . . . . . 33
1.13 Si {
1
. . .
n
} |= entonces
1
. . .
n
es insatisfacible . . . . . . . . . . . 35
1.14 Si
1
. . .
n
insatisfacible entonces {
1
. . .
j1

j+1
. . .
n
} |=
j
. . . . . . 35
1.15 Algunas frmulas de dos variables, agrupadas por clases de equivalencia . . . . . . . 37
1.16 Todas las clases de equivalencia sobre frmulas con dos variables . . . . . . . . . . 37
1.17 Equivalencias bsicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.18 Forma normal disyuntiva de una frmula . . . . . . . . . . . . . . . . . . . . . . . . 40
1.19 Formas normales conjuntivas y disyuntivas . . . . . . . . . . . . . . . . . . . . . . 41
1.20 Reglas de expansin de un tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.1 Relaciones y funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
2.2 Dos relaciones sobre el mismo universo . . . . . . . . . . . . . . . . . . . . . . . . 86
2.3 Notacin uniforme, conectivas binarias . . . . . . . . . . . . . . . . . . . . . . . . . 98
2.4 Notacin uniforme, frmulas cuanticadas . . . . . . . . . . . . . . . . . . . . . . . 98
2.5 Reglas de expansin de un tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
2.6 Equivalencias de inters para alcanzar la forma prenexa . . . . . . . . . . . . . . . . 101
2.7 Otras equivalencias de inters para alcanzar la forma prenexa . . . . . . . . . . . . . 102
4.1 Tabla para probar el bucle de la funcin fact1.. . . . . . . . . . . . . . . . . . . . . 161
5.1 Propiedades de una relacin binaria, expresadas en lgica de primer orden . . . . . . 172
5.2 denicin recursiva de satisfaccin M w . . . . . . . . . . . . . . . . . . . . . . 183
5.3 Frmulas modales que caracterizan relaciones binarias . . . . . . . . . . . . . . . . 192
IX
X
Introduccin
Objetivos y contenidos
El objetivo fundamental de este libro es exponer los mtodos de la lgica (concretamente de la lgica
de predicados y de la lgica modal) que ms se utilizan hoy en da en ciencias de la computacin,
inteligencia articial e ingeniera del software.
Por ello, algunos de los temas son de ndole puramente terica, mientras que otros tratan de es-
tablecer el puente con las aplicaciones concretas. As, la primera parte, que es de naturaleza terica,
estudia dos aspectos de la lgica de predicados: la lgica de proposiciones (tema 1) y la de predicados
de primer orden (tema 2), mientras que la segunda parte se centra en dos formalismos lgicos apli-
cables a problemas de computacin: el tema 3 estudia el fundamento de la programacin lgica y el
tema 4 la lgica de Hoare como formalismo para la vericacin de programas secuenciales.
Anlogamente, dentro de la tercera parte, dedicada a la lgica modal, el tema 5 (fundamentos
de lgica modal) es puramente terico, mientras que el tema ?? estudia la lgica modal temporal,
que sirve, entre otras aplicaciones, para la vericacin de sistemas concurrentes y de tiempo real
(software) y de componentes fsicos (hardware).
La gura 1 muestra la dependencia conceptual entre los temas tratados en el libro.
1. Lgica
de proposiciones
2. Lgica
de predicados
5. Lgica
modal
3. Programacin
lgica
4. Vericacin de
progr. secuenciales
6. Lgica
modal temporal


Figura 1: Dependencia conceptual entre los temas.
Conviene sealar, sin embargo, que el objeto de este libro no es ninguno de los campos de aplica-
cin anteriores, sino los formalismos lgicos. Por eso no vamos a estudiar aqu los detalles de cada
una de estas tcnicas aplicadas, sino que insistiremos ante todo en el fundamento lgico comn en
2 Introduccin
que se apoyan. En la bibliografa complementaria de cada uno de los temas encontrar el lector las
referencias necesarias para conocer a fondo las tcnicas que ms le interesen.
Motivacin para los alumnos de Ingeniera Informtica
La lgica constituye la herramienta formal de razonamiento de la mayor parte de las asignaturas de
la carrera de informtica, sobre todo de las que estn ms relacionadas con las matemticas y la
programacin, tales como lgebra, Anlisis Matemtico, Matemtica Discreta, Electrnica Digital,
Teora de Autmatas y Lenguajes Formales, Programacin (incluida la Programacin Concurrente y
la Programacin Declarativa), Bases de Datos, etc.
En cuanto a la inteligencia articial, la lgica es el fundamento de todos los mtodos de repre-
sentacin del conocimiento y del razonamiento, especialmente en sistemas expertos, razonamiento
con incertidumbre (encadenamiento de reglas, lgica difusa, etc.), procesado del lenguaje natural,
razonamiento espacial y temporal, visin articial, robtica, lgica epistmica,
1
etc.
En tercer lugar, los mtodos formales tienen una aplicacin inmediata en la ingeniera del soft-
ware. El uso de lenguajes de especicacin formal es benecioso en todos los desarrollos, ya que
promueve la denicin de modelos estructurados, concisos y precisos en diferentes niveles de abs-
traccin, y facilita el razonamiento sobre ellos incluso a un nivel informal. Cuando a las notaciones
formales se les asigna una semntica operacional, es posible disear herramientas automticas que
detecten ambigedades en los requisitos iniciales, veriquen y validen modelos a lo largo del ciclo
de desarrollo, ayuden en la evolucin y el mantenimiento de los productos y generen automtica o
semi-automticamente prototipos o incluso partes del cdigo nal. Finalmente, los mtodos formales
sirven tambin para propsitos de documentacin, ingeniera inversa y reutilizacin de componentes.
No obstante, aun siendo reconocidas las importantes contribuciones de los mtodos formales a la
ingeniera del software, su uso no se ha extendido tanto como caba prever hace un par de dcadas.
Lo cierto es que los proyectos de desarrollo formal han fracasado con frecuencia, si bien por razones
ms ergonmicas que tcnicas. La experiencia ha mostrado que introducir mtodos formales en un
proceso de desarrollo puede provocar dicultades no relacionadas con la potencia de los mtodos.
En primer lugar, pueden resultar excesivamente restrictivos, tanto porque obligan a sobreespecicar
ciertos aspectos como porque constrien el proceso de desarrollo, que tienen tendencia a monopolizar.
En segundo lugar, su introduccin puede ser problemtica desde un punto de vista prctico, debido a
su dicultad real y percibida, de forma que el coste inicial de entrenamiento en estas tcnicas puede ser
signicativo, y en ocasiones los mtodos son infrautilizadas incluso por parte de ingenieros instruidos
en su uso.
El incremento en costes de desarrollo que los mtodos formales suponen en las primeras fases del
ciclo software se puede ver no obstante compensado por el decremento de los costes de las ltimas
fases, particularmente de la fase de validacin, as como de las subsecuentes fases de mantenimiento y
evolucin. El problema fundamental de los mtodos formales ha sido siempre que la comunidad cien-
tca dedicada al desarrollo mtodos formales ha invertido un escaso esfuerzo en transferir la tecnolo-
ga a los entornos de ingeniera. Las dicultades antes referidas podran solventarse si se difundiesen
pautas para seleccionar notaciones adecuadas para cada problema, evitar la sobre-formalizacin, iden-
ticar dominios adecuados, integrar las tcnicas formales con tcnicas semi-formales de uso extendi-
1
La lgica epistmica es una rama de la lgica modal que sirve para razonar sobre el conocimiento (propio y ajeno), y
se utiliza sobre todo para modelar el conocimiento de varios agentes. Hay que tener en cuenta que el enfoque ms actual
de la inteligencia articial, tanto en el estudio terico como en el desarrollo de aplicaciones, consiste en analizar y construir
los sistemas inteligentes como agentes que interactan entre s (por ejemplo, cooperando o compitiendo, segn el dominio
de que se trate).
Introduccin 3
do, comercializar herramientas de desarrollo amigables, desarrollar tcnicas especcas de estimacin
de costes de desarrollo, etc. Una buena estrategia para promover la integracin de tcnicas formales
en un proceso de desarrollo es construir una base formal detrs de un lenguaje semi-formal bien cono-
cido y difundido. Tal fue la estrategia seguida en el caso del exitoso lenguaje SDL en el campo de las
telecomunicaciones, y es asimismo la estrategia seguida actualmente por algunos investigadores del
lenguaje UML, con el propsito de introducir estas tcnicas en los procesos de desarrollo orientados
a objeto, actualmente tan en boga.
De los mtodos formales se ha armado, irnicamente, que siempre han tenido un gran futuro
y siempre lo tendrn. No obstante, recientemente hay motivos razonables para conar al n en un
lanzamiento denitivo de estas tcnicas, particularmente en los cada vez ms numerosos complejos
dominios que exigen un alto grado de calidad del software, tales como: telecomunicaciones, tran-
sacciones bancarias, comercio electrnico, votaciones electrnicas, tarjetas inteligentes, dispositivos
inalmbricos, etc.
En resumen, los avances realizados en la ltima dcada en este campo han hecho de los mtodos
formales de vericacin una herramienta cada vez ms utilizada, y es de prever que su uso se extienda
signicativamente en los prximos aos.
Por eso, el alumno debe tener presente que, adems del valor educativo de la lgica en la formacin
de una mente ordenada, las tcnicas estudiadas en este libro han llegado a ser una herramienta cada
vez ms utilizada en aplicaciones industriales en la ltima dcada; las empresas ms importantes del
mundo de la informtica y las telecomunicaciones, como AT&T, BT, IBM, Intel, Motorola, Siemens,
SRI, etc., cuentan con equipos especializados en este tema y los profesionales que conocen estas
tcnicas estn cada vez ms solicitados.
En este sentido, puede ser til la lectura del artculo disponible en Internet en que Clarke y
Wing [1996] enumeran algunas de las herramientas de vericacin formal que se estn utilizando en
la actualidad. Como ancdota curiosa, este artculo menciona que el error que el primer procesador
Pentium presentaba al efectuar ciertas divisiones, y que provoc unas prdidas econmicas conside-
rables para Intel, se podra haber evitado con las tcnicas disponibles en la actualidad; las referencias
bibliogrcas se encuentran en dicho artculo.
Entre las aplicaciones desarrolladas recientemente utilizando un proceso de desarrollo enteramen-
te formal cabe destacar la automatizacin de la nueva lnea de metro de Pars, METEOR, que ha
obtenido una enorme publicidad. Esta lnea funciona sin conductores y dejando un pequeo margen
temporal entre trenes, de modo que los requisitos de seguridad requieren una alta conanza en el
software.
En la misma lnea, recomendamos tambin los sitios de Internet www.afm.sbu.ac.uk/ y
www.cs.indiana.edu/formal-methods-education/, donde el alumno podr encontrar numerosos
recursos sobre mtodos formales aplicados a la especicacin y vericacin de sistemas (hardware y
software), tales como herramientas gratuitas, abundante bibliografa e incluso ofertas de empleo.
Finalmente, aunque el alumno no llegue a ser un experto en vericacin, el estudio de la lgica
computacional puede aportar al alumno dos benecios importantes: por un lado, le ayudar a formar
una mente lgica, lo cual le servir tanto para estudiar las asignaturas de esta carrera como para en su
prctica profesional, especialmente en las labores de diseo y programacin.
Bibliografa recomendada
Adems de la bibliografa complementaria que hemos incluido en cada captulo de este libro, quere-
mos ofrecer una seleccin general de bibliografa que puede ser til para el alumno que quiera ampliar
los temas tratados en esta asignatura.
4 Introduccin
Logic in Computer Science [Huth y Ryan, 2000]
Es un libro excelente, que explica la aplicacin de las tcnicas de la lgica computacional a pro-
blemas del mundo real. Lo recomendamos encarecidamente a los alumnos que quieran profundizar en
los temas que tratamos en este texto y conocer otras tcnicas nuevas. Aunque el nivel de complejidad
es mayor que el de nuestro texto, se encuentra al alcance cualquier estudiante de pregrado que decida
estudiarlo detenidamente. Recomendamos a quienes estn interesados que visiten la pgina web del
libro, http://www.cs.bham.ac.uk/research/lics/, creada por sus autores; en ella podrn en-
contrar una fe de erratas, ejercicios de autoevaluacin en forma de test (con soluciones explicadas),
enlaces de inters, etc.
Mathematical Logic for Computer Science [Ben-Ari, 2001]
Desde su aparicin, en 1993, este libro se ha convertido en uno de los textos ms conocidos de
lgica matemtica. La segunda edicin, publicada en junio de 2001, ampla y actualiza sensiblemente
los contenidos de la primera. Se trata de un texto para pregraduados, que intenta ser bastante didctico,
y en general lo consigue, aunque a nosotros nos gustara que fuera ms intuitivo en las explicaciones;
por ejemplo, dando la traduccin a lenguaje natural de las expresiones matemticas, especialmente
de los teoremas (lo hace en algunas ocasiones, pero en otras muchas no). Los ejemplos y ejercicios
del libro estn bien escogidos y constituyen un apoyo importante para el estudio.
La pgina web http://stwww.weizmann.ac.il/g-cs/benari/books.htm#ml2, creada por el
autor, contiene una fe de erratas, enlaces muy interesantes sobre lgica matemtica y el cdigo fuente
en PROLOG de algunos algoritmos para los formalismos lgicos (demostradores de teoremas, etc.),
descritos en el libro, cuyo estudio puede resultar muy interesante para asentar los conceptos y los
mtodos expuestos en nuestro texto.
Handbook of Logic in Articial Intelligence and Logic Programming [Gabbay et al., 1993, 1994b,
1994c, 1995, 1998]
Es una coleccin de cinco volmenes, en que cada captulo est escrito por un autor diferente. El
primer volumen se ocupa de los fundamentos lgicos (incluida la lgica modal bsica y las clusulas
de Horn), el segundo de las metodologas de deduccin, el tercero del razonamiento no-montono, el
cuarto de las lgicas epistmicas y temporales y el quinto de la programacin lgica. Constituye una
excelente obra de consulta, pero puede resultar demasiado compleja para alumnos pregraduados.
(No se debe confundir esta obra con el Handbook of Logic in Computer Science [Abramsky et
al., 1992-2001]. Ambas constan de cinco volmenes y estn editadas por Oxford University Press,
pero esta ltima es de una complejidad an mayor, por lo que no la incluimos como bibliografa
complementaria para nuestros alumnos.)
Introduction to Mathematical Logic [Mendelson, 1997]
Uno de los mejores libros sobre lgica por la claridad de las explicaciones y la amplitud de los
temas que cubre. Muchos de estos temas superan ampliamente el nivel de una asignatura de pregrado.
Para mayor informacin, en http://aracne.usal.es/results/biblioes.html hay una lista
de ms de 40 libros de lgica en ingls y en espaol. A travs de esa pgina puede acceder tambin a
recursos muy interesantes desarrollados dentro del Proyecto Aracne.
Parte I
LGICA DE PREDICADOS
Captulo 1
LGICA DE PROPOSICIONES
Resumen
Se presenta el primero de los sistemas lgicos de este texto. Como en todos los restantes, se cubren
tres etapas:
primero se facilita un lenguaje formal,
despus se dene con precisin cmo evaluar el valor de verdad de una expresin del lenguaje
y por ltimo se facilitan sistemas deductivos para decidir, mediante clculos, sobre propiedades
o relaciones entre unas expresiones y otras (ms precisamente, entre sus valores de verdad).
Este captulo tiene, por un lado, un inters intrnseco por sus aplicaciones en Matemticas, Com-
putacin y en la formalizacin incipiente de razonamientos cotidianos, en lenguaje natural.
Adicionalmente ofrece un marco formal sencillo donde plantearse propiedades e interrelaciones
sobre los valores de las expresiones (satisfacibilidad, validez, consecuencia, equivalencia), sobre
sus mtodos de decisin y sobre los sistemas deductivos creados para abordar estas cuestiones. Y
lo que es ms importante: tales conceptos son todos exportables a otros sistemas lgicos, con las
restricciones propias de cada sistema.
Objetivos
1. Respecto a la comprensin y uso del lenguaje formal:
es primordial ser capaz de generar, a mano, expresiones correctas (con todos los parn-
tesis que conllevan) y sus rboles sintcticos. Asimismo se debe poder analizar cualquier
expresin correcta facilitada.
adicionalmente, se requiere la comprensin de la estructura inductiva del lenguaje con
dos nes: primero porque facilita la automatizacin del lenguaje y segundo porque facilita
el seguimiento de demostraciones sobre el propio lenguaje.
2. Respecto a la semntica, a la evaluacin de los valores de verdad de una expresin
es bsico ser capaz de evaluar, a mano, el valor de verdad de una expresin frente a una
determinada interpretacin; y ser capaz de listar todas las interpretaciones posibles y
evaluar la expresin sobre cada una de ellas (es decir, de construir la tabla de verdad de
la expresin).
7
8 Captulo 1. LGICA DE PROPOSICIONES
tan bsico como lo anterior resulta comprender, trabajando sobre tablas de verdad, los
conceptos semnticos que manejaremos permanentemente: satisfaccin, satisfacibilidad,
validez (tautologas), equivalencia. Es crtico tanto entender estos conceptos por separa-
do como empaparse de sus interrelaciones.
adicionalmente se puede considerar una primera automatizacin de los procesos de de-
cisin de estas cuestiones, basada en el recorrido extensivo de la tabla de verdad hasta
donde se requiera.
3. Sobre los sistemas deductivos:
es importante darse cuenta de que tanto la Resolucin como las Tablas Analticas se
utilizan para conrmar que el conjunto de frmulas de partida es insatisfacible. Y de
cmo se utiliza esta conrmacin para detectar relaciones de consecuencia.
sera deseable que el lector trabajara sobre al menos uno de los sistemas deductivos
hasta sentirse cmodo desarrollando demostraciones en ese marco. No obstante, para
problemas complejos se requiere en seguida la asistencia de un sistema automatizado de
apoyo.
como objetivo ms avanzado se propone la reexin sobre la automatizacin de estos
sistemas, principalmente de los basados en Resolucin o en Tablas Analticas
otro objetivo avanzado, ste muy formal, conlleva la comprensin de los teoremas de
correccin y completud (que an no facilita el texto) para entender cmo se engarzan y
convergen los conceptos semnticos con esos clculos sintcticos de los sistemas deducti-
vos. En particular, cmo conuyen el concepto de consecuencia lgica y el de derivacin,
prueba o demostracin sintctica.
Metodologa
De un texto lineal conviene saber qu debe leerse primero, qu se debe posponer y cmo contrastar
el nivel de conocimiento en cada instante.
Utilice el apartado Objetivos como referencia: trate de abordar, por ese orden, los objetivos
bsicos de cada uno de los tres puntos analizados. En el estado actual de estas notas no es difcil: no
hay muchos contenidos sobre automatizacin ni demostraciones formales.
Le recomendamos que aborde mnimamente el captulo de sintaxis, hasta donde formalmente le
resulte cmodo. Y que, con ese conocimiento intuitivo sobre la generacin correcta de expresiones
dedique tanto tiempo como requiera a la comprensin en profundidad de los conceptos semnticos
bsicos. Slo entonces puede comenzar a trabajar sobre los sistemas deductivos.
Lamentamos que, salvo los ejemplos y guras, no se incluyan todava ejercicios sucientes.
1.1 Sintaxis
Denicin 1.1 Alfabeto) Un alfabeto es un conjunto de smbolos.
Ejemplo 1.2 Los dos siguientes conjuntos pueden considerarse alfabetos:
A
1
={$ s 5} A
2
={p
1
p
2
p
3
p
4
. . .}
A
1
es un alfabeto nito, que consta de 3 smbolos. Por contra, A
2
puede aceptarse como un alfabeto
innito (si se considera cada p
j
como un nico carcter, distinto del resto).
1.1. Sintaxis 9
Denicin 1.3 Expresin) Una expresin es una secuencia nita de smbolos.
Por expresin sobre el alfabeto A se entender una expresin compuesta exclusivamente de
smbolos del alfabeto A. A los smbolos tambin se les denomina caracteres y a las expresiones,
cadenas.
Ejemplo 1.4 Cada una de las cinco secuencias siguientes es una expresin sobre el alfabeto A
1
:
5 ss $$s55s ss5 5555ss$$
Observe que en una expresin se pueden repetir smbolos, pero no incluir smbolos ajenos: la cadena
55ss4s, que incluye el carcter 4, no contenido en A
1
, no es una expresin sobre A
1
.
Sobre un alfabeto nito, como A
1
, cuntas expresiones distintas pueden formarse?, alguna de
estas expresiones puede ser innita?.
Observe que la denicin de expresin exige que cada secuencia sea nita: no es una expre-
sin

5555. . .

, donde se espera que detrs de cada 5 siempre aparezca otro. Sin embargo, no se ja
una longitud mxima: por muy grande que sea una expresin siempre puede construirse otra mayor
adjuntando un nuevo carcter.
As, puede generarse un nmero innito de cadenas incluso con un alfabeto nito, como p. ej.
A
3
={a} con un solo smbolo: a aa aaa aaaa aaaaa . . . Al conjunto (siempre innito) de todas las
expresiones que pueden construirse sobre un alfabeto A se le suele notar como A

.
Denicin 1.5 Lenguaje) Un lenguaje es un conjunto de expresiones. Ms concretamente, un len-
guaje sobre el alfabeto A es cualquier subconjunto de A

.
Dado un alfabeto A, el conjunto total de cadenas A

es un lenguaje sobre A, pero tambin lo es


cualquier subconjunto suyo L A

(vaco, nito o innito).


Ejemplo 1.6 Sobre A ={$ s 5} se pueden denir, entre otros, los lenguajes
L
1
={5 $$ ss 55} L
2
={s ss sss . . .}
L
2
es un lenguaje con un nmero innito de cadenas. Para denir este tipo de lenguajes se requiere
precisar las propiedades que distinguen sus expresiones. Por ejemplo, para los lenguajes
L
3
={s s$ s5 $s 5s ss . . .} L
4
={s5 5s s$5 $s5 5$s . . .}
L
3
: todas las cadenas formadas al menos por una s ; o L
4
: todas las cadenas que incluyen igual
nmero de smbolos s que de 5.
1.1.1 El lenguaje de la Lgica de Proposiciones
El alfabeto de la Lgica de Proposiciones debe proporcionar los smbolos necesarios para representar
proposiciones sobre el mundo. Como el nmero de proposiciones que pueden manejarse en un mismo
razonamiento no est limitado, debe proveer un nmero innito de letras proposicionales.
Denicin 1.7 Alfabeto de la Lgica de Proposiciones) El alfabeto A de la Lgica de Proposicio-
nes consta de los siguientes elementos:
10 Captulo 1. LGICA DE PROPOSICIONES
1. innitas letras proposicionales: p
0
p
1
p
2
p
3
. . .
2. smbolos lgicos: constantes ), conectiva monaria ) y conectivas binarias )
3. dos smbolos auxiliares de puntuacin: parntesis izquierdo( y derecho )
As, A ={p
0
p
1
. . . )}
En las exposiciones tericas, el nmero de letras proposicionales que se consideran simultneamente es
pequeo (por ejemplo, de p
0
a p
8
). En estos caso se suelen notar informalmente con las ltimas letras del
alfabeto latino: {p q r s t . . .}. Seguiremos esta notacin informal a partir de este punto.
Lectura y representaciones alternativas En la siguiente tabla se adjunta el nombre usual de ca-
da conectiva y su lectura. Tambin se aaden algunas formas alternativas de representacin en otros
textos. Ciertos lenguajes de programacin pueden reservar smbolos distintos para estas mismas co-
nectivas.
, falso, verdadero f alse, true
p no p negacin p
pq p y q conjuncin p&q
pq p o q disyuncin
p q si p entonces q condicional p q, p q
p q p si y slo si q bicondicional p q, p q
Ejemplo 1.8 Las siguientes secuencias son expresiones sobre el alfabeto jado:
pq p) pp) r pq)
p p) p q) p p) ) r ) r q)))
Para nuestros nes, algunas de estas cadenas no son tiles. En este ejemplo, slo aceptaramos
las de la segunda la. A las expresiones aceptables se las denominar frmulas o expresiones bien
formadas. El conjunto (innito) que incluye todas estas frmulas (y nada ms) es el Lenguaje de la
Lgica de Proposiciones, que notaremos como Form.
Como introduccin intuitiva le proponemos que estudie el proceso de generacin de la frmula
(correcta, aceptable) p ) p)). Se representa grcamente en la siguiente gura, que debe
recorrerse de abajo arriba.
p) p))
p)

p)

Figura 1.1: rboles sintcticos: presentacin


Observe que, partiendo de bloques mnimos, se van construyendo expresiones ms complejas.
stas, a su vez, siempre pueden ser reutilizadas como nuevos bloques componentes:
1.1. Sintaxis 11
p p
Los bloques mnimos aceptables, las frmulas atmicas, estn compuestas por un nico caracter
del alfabeto. Pero no cualquiera: slo letra proposicional o constante.
Denicin 1.9 Frmula atmica) Una frmula atmica es una expresin compuesta exclusivamen-
te por una letra proposicional, la constante o la constante .
El conjunto de todas las frmulas, el lenguaje buscado, podra denirse (en primera aproximacin)
como el conjunto X que vericase:
1. todas las frmulas atmicas pertenecen a X
2. si la expresin X entonces ) X
3. si las expresiones X entonces ) ) ) ) X
Un conjunto as garantiza que todas las frmulas pertenecen al mismo. Pero puede adems constar
de otros elementos. En particular, el conjunto A

formado por todas las cadenas generables a partir


del alfabeto, verica esas tres propiedades. Pero tambin las verica el conjunto A

menos la cadena
).
Intuitivamente, si slo se partiera de las frmulas atmicas y se produjeran todas las negaciones
y conexiones binarias posibles, debiera obtenerse un conjunto que contiene frmulas y slo frmulas.
Y estara incluido en cada uno de los dos conjuntos antes citados (y, por tanto, en su interseccin).
Denicin 1.10 Lenguaje de la Lgica de Proposiciones) El conjunto Form, que contiene todas
las expresiones aceptables en nuestro lenguaje (y slo stas), es el menor de los conjuntos X que
verica:
1. todas las frmulas atmicas pertenecen a X
2. si la expresin X entonces ) X
3. si las expresiones X entonces ) ) ) ) X
Esta familia de conjuntos X no es vaca: pertenece a la misma al menos el conjunto A

. La interseccin de
todos ellos produce un conjunto que verica tambin las tres propiedades requeridas. Y es el menor de todos,
est incluido en cada uno. En particular, es el conjunto que incluye todas las expresiones que pueden generarse
con estas tres reglas y exclusivamente tales expresiones.
Ejemplo 1.11 Las siguientes cuatro lneas muestran tanto frmulas atmicas como compuestas con
1, 2 y 3 conectivas, respectivamente:
p, q, r, ,
p), ), ), pq), p )
p)), )), pq) r), p ))
pq)) p), p r) ))
Trate de explicitar los pasos (las reglas utilizadas), desde las frmulas atmicas, hasta la generara-
cin de una frmula del ejemplo. Puede resultarle til considerar una representacin como la de gura
1.2. A este tipo de grcos se les denomina rboles sintcticos. Posponemos su denicin formal.
12 Captulo 1. LGICA DE PROPOSICIONES
p q) p))
p q)

p)

Figura 1.2: rbol sintctico: p q) p))


Metalenguaje
A lo largo de estas notas encontrar expresiones como ). sta es una abreviatura de frmula:
la que se compone uniendo por un bicondicional dos frmulas cualesquiera, denotadas como y .
Puesto que y no forman parte del alfabeto, esta expresin no es una frmula del lenguaje sino
una frase para hablar acerca del lenguaje. A este lenguaje superior, utilizado para analizar otro, se le
denomina metalenguaje. En concreto, en estos apuntes se utilizar el castellano ms algunos smbolos
adicionales como metalenguaje.
Algunas de las expresiones del metalenguaje sern meras abreviaturas de frmulas, o esquemas
de frmulas: por ) se entender la frmula construida por cualesquiera dos otras y una de las
conectivas binarias. Observe que, como y pueden ser cualesquiera frmulas, no se descarta que
puedan particularizarse en la misma frmula. Otras expresiones del metalenguaje abreviarn frases
ms complejas, ya no frmulas, expresando propiedades o relaciones entre frmulas; por ejemplo,
se leer como las frmulas y son equivalentes.
En este texto se utilizarn letras griegas minsculas para denotar frmulas y letras griegas mays-
culas para denotar conjuntos de frmulas. La siguiente tabla facilita su lectura:
A alfa
B beta
gamma
delta
E psilon
Z dseta
H eta
, zeta
I iota
K kappa
lambda
M mu
N nu
xi
O o omicron
, pi
P ro
, sigma
T tau
psilon
,
X ji
psi
omega
Tabla 1.1: Alfabeto griego
1.1.2 Sobre la estructura inductiva del lenguaje
En la denicin 1.10 de lenguaje, con tres reglas de composicin se ha denido un conjunto de
frmulas, innito pero muy estructurado. Este conjunto, por denicin, tiene una estructura inductiva:
nuevas frmulas se construyen a partir de otras utilizando alguna de las cinco opciones de generacin,
alguna de las cinco conectivas jadas.
1.1. Sintaxis 13
Sobre un conjunto con esta estructura, las demostraciones y deniciones se producen por mtodos
inductivos y recursivos respectivamente. As, en muy pocas lneas, se puede jar una denicin
aplicable sobre cualquier frmula, por muy compleja que sea. O demostrar que todas y cada una de
las innitas frmulas verican cierta propiedad.
Demostraciones inductivas
El lector puede estar familiarizado con el Principio de Induccin aritmtico, donde slo se requiere
un paso inductivo: el que lleva de un nmero a su sucesor. As, para demostrar una propiedad de los
nmeros naturales, basta demostrar que el primer nmero la verica y que dado un nmero cualquiera
tambin la verica su sucesor.
Sobre el conjunto de frmulas existen varias opciones de generacin de frmulas ms complejas.
Es preciso disponer de un retocado Principio de Induccin, que je tanto el caso base como cada una
de las alternativas inductivas.
Denicin 1.12 Principio de induccin estructural) Para demostrar que toda frmula Form
tiene la propiedad P basta demostrar que:
1. Caso base: toda frmula atmica tiene la propiedad P
2. Pasos inductivos:
(a) si la expresin tiene la propiedad P, entonces ) tiene la propiedad P
(b) si las expresiones y tienen la propiedad P, entonces ), ), ),
) tienen la propiedad P
Sea P el conjunto de expresiones de A

que tienen la propiedad P. Si se verican los puntos 1 y 2,


P contiene todas las frmulas atmicas, la negacin de cualquier expresin que est en P y la composicin
binaria de cualesquiera dos expresiones pertenecientes a P.
As, el conjunto P es uno de aquellos conjuntos X que vericaban las propiedades exigidas en la denicin
1.10 del Lenguaje de la Lgica de Proposiciones. Es decir, FormP: todas las frmulas verican la propiedad
P (adems de, quiz, otras expresiones).
Ejercicio 1.13 Demuestre, mediante induccin, que toda frmula tiene un nmero par de parntesis.
Entre otras propiedades demostrables, resaltaremos una en este punto: si se facilita una expresin,
supuesto que sea una frmula, slo existe un medio de descomponerla sintcticamente.
Teorema 1.14 Anlisis sintctico nico) Cada frmula proposicional pertenece a una y slo una
de las siguientes categorias:
1. es atmica
2. es de la forma ), para frmula nica
3. es de la forma ), para una determinada conectiva y para y frmulas nicas
La descomposicin de una frmula no atmica en una o dos componentes produce sus subfr-
mulas inmediatas. La conectiva que se aplicaba sobre ella o ellas es la conectiva principal de .
14 Captulo 1. LGICA DE PROPOSICIONES
Ejemplo 1.15 La frmula
p q)) pr))
es una conjuncin. Es decir, es de la forma ) con
= p q)) = pr)
Su conectiva principal es y sus subfrmulas inmediatas son esas y .
Ejercicio 1.16 Trate de encontrar un algoritmo que determine la conectiva principal de cualquier
frmula, contabilizando los parntesis abiertos y cerrados.
Observe que, de acuerdo al teorema 1.14 previo, cualquier frmula (por muy extensa que sea)
presenta la siguiente estructura:
. . . ? . . . ? . . . ? p
Deniciones recursivas
En el ejercicio 1.13 se utilizaba el concepto intuitivo de nmero de parntesis. Hay que suponer que
estamos rerindonos a una funcin del conjunto de frmulas en el conjunto de nmeros naturales
num
par
) = n. Cmo puede denirse rigurosamente esta funcin? Observe que un proceso como
cuente usted ... no nos sirve como denicin.
Si las frmulas hablasen, una frmula conjuntiva como ) dira: yo slo s que tengo 2
parntesis ms que mis componentes inmediatas. De esta forma, el nmero que se quiere calcular
supone una operacin sobre el nmero que aportan las componentes. Y sobre el que aportan las
componentes de las componentes de stas, recursivamente hasta llegar al caso base. Para las frmulas
atmicas su aportacin debe estar jada.
Ms precisamente, la funcin num
par
: Form N buscada se dene como:
num
par
) =

2+num
par
) +num
par
) = )
2+num
par
) = )
0 atmica
Ejemplo 1.17 La funcin num

: Form N hace corresponder a cada frmula el nmero total de


sus conectivas bicondicionales. Se dene como:
num

) =

1+num

) +num

) = ) con =
0+num

) +num

) = ) con =
0+num

) = )
0 atmica
Observe que, aunque de forma compacta, se ja la imagen tanto para las frmulas atmicas como
para cada una de las 5 conectivas. En algunos casos, la imagen para alguna de estas alternativas puede
coincidir.
En el ejemplo 1.17, el nmero de bicondicionales es una funcin num

: Form N, del con-


junto de frmulas en el conjunto de nmeros naturales. En general, las deniciones sobre frmulas
resultarn ser una funcin de Form en algn conjunto, aunque no necesariamente sobre N.
1.1. Sintaxis 15
Ejemplo 1.18 Deniremos una funcin color, de Form en el conjunto Semforo={verde,mbar,rojo},
que abreviaremos como conjunto S ={v a r}.
El primer objetivo es jar el color de cualquier frmula atmica. Denamos una funcin color
at
slo desde el conjunto de frmulas atmicas sobre el conjunto Semforo:
color
at
p
0
) = v color
at
p
1
) = a color
at
p
2
) = r
color
at
p
3
) = v color
at
p
4
) = a color
at
p
5
) = r
. . .
color
at
p
0+3 j
) = v color
at
p
1+3 j
) = a color
at
p
2+3j
) = r
con color
at
) = v, color
at
) = r. En este punto, pueden empezarse a valorar los nodos terminales
(inferiores) de una gura como la 1.3. Y continuar la valoracin hacia el nodo raz.
color

r a)

a
color

v r)

color
at
p
0
)

color
at
)

color

a)

color
at
p
4
)

a
Figura 1.3: Los colores de las frmulas
Para ello es preciso denir qu color sale de un nodo (negacin), segn el color que entre.
Y qu color sale de cada conjuntiva binaria, segn qu par de colores entren. Para el ejemplo de la
gura: color

a) = a, color

v r) = r, color

r a) = a. As,
color p
0
) p
4
) ) = a
Observe que, para denir la funcin color : Form S se requiere denir las funciones auxiliares:
color
at
: Form_Atom S color

: S S color

: S
2
S para cada conectiva binaria
Teorema 1.19 Principio de Recursin Estructural) Dadas las funciones
f
at
: Form_Atom X f

: X X f

: X
2
X para cada conectiva binaria
existe una nica funcin F : Form X tal que:
F) =

F) F) ) =
f

F) ) =
f
at
) Form_Atom
El Principio de Recursin estructural garantiza que, para una determinada eleccin de las funcio-
nes previas, la funcin resultante es nica y est bien denida.
1.1.3 Derivacin de conceptos sintcticos
Con ayuda del Principio de Recursin Estructural se pueden denir otros conceptos sintcticos. En
este apartado abordaremos la denicin de rango, nmero de smbolos, apariciones de un determinado
smbolo, la denicin de rbol sintctico y la de conjunto de subfrmulas de una frmula dada.
16 Captulo 1. LGICA DE PROPOSICIONES
Rango
La funcin rango : Form N, intuitivamente, proporciona la longitud de la mayor rama del rbol
sintctico de la frmula. Se dene:
rango) =

1+maxrango) rango)) = )
1+rango) = )
0 atmica
Dejamos al lector la denicin de otros conceptos similares, como nmero de smbolos o nmero
de apariciones de conectivas (o de algunas, en particular).
Ejercicio 1.20 Construya, exclusivamente con 7 conectivas binarias, una frmula con el mayor rango
posible y otra con el menor.
Dada una frmula, reexione sobre cmo su rango, nmero de smbolos o apariciones de conec-
tivas se acotan entre s.
El lector puede encontrar en la literatura demostraciones inductivas sobre el lenguaje que no uti-
lizan el Principio de Induccin Estructural. Son demostraciones que emplean el conocido Principio
de Induccin Completa sobre nmeros naturales. En este caso, el nmero natural asignado a cada
frmula es su rango o su nmero de smbolos:
Teorema 1.21 Principio de Induccin Completa) Si para cualquier frmula se demuestra que:
todas las frmulas con rango (o nmero de smbolos) menor que tienen la propiedad P
entonces todas las frmulas tienen la propiedad P.
La demostracin de que ambos principios de induccin son equivalentes no se aborda en este
texto.
rboles sintcticos
Se ha estado utilizando el concepto de rbol sintctico sin una denicin. En la gura 1.4 se repre-
sentan, respectivamente, las deniciones de arbol), arbol) y arbol) para atmica.
Puede precisar y formalizar ms esta denicin si utiliza como conjunto imagen el de las re-
presentaciones matemticas del concepto de rbol, o el de alguna estructura computacional que lo
represente.
[ arbol) =]
)
arbol)

arbol)


[ arbol) =]
)
arbol)

[ arbol) at omica]

Figura 1.4: Denicin recursiva de rbol sintctico


1.1. Sintaxis 17
Subfrmulas
Denicin 1.22 Subfrmulas) Dada una frmula , el conjunto de todas sus subfrmulas se dene
recursivamente como:
sub f orm) =

{}sub f orm) subf orm) = )


{}sub f orm) = )
{} atmica
Observe que sub f orm : FormPForm) es una funcin del conjunto de frmulas en el conjunto
de subconjuntos de frmulas.
Ejemplo 1.23 El conjunto de subfrmulas de
= pr) qt))
es
subf orm) ={pr) qt)) pr) qt)) p r q t) t}
Sustitucin uniforme
La sustitucin uniforme permite escribir una frmula a partir de otra. Ser una operacin sintctica de
extraordinaria utilidad en las secciones siguientes. Intuitivamente, se puede visualizar contemplando
los rboles de la gura 1.5.
p q) p))
p q)

p)

) ))
)

arbol)

arbol)

arbol)

Figura 1.5: Sustitucin uniforme [p, q,] sobre un rbol sintctico


Ejemplo 1.24 Considere la frmula
:= p q) p)
y sustituya todas la apariciones de:
p, por la frmula := r s) q, por la frmula := t u)
el resultado es la frmula
r s)

t u)

) r s)

)
donde las marcas de subrayado se han aadido ocasionalmente para facilitar la correspondencia.
18 Captulo 1. LGICA DE PROPOSICIONES
Cuidado Observe que la sustitucin se produce uniformemente, por igual, en todas y cada una
de las apariciones de la letra proposicional sustituida.
Sobre la misma frmula de partida, se podan haber sustituido todas las instancias de:
p, por la frmula := q q, por la frmula := q p)
el resultado sera entonces la frmula
q

q p)

) q

)
Cuidado Observe que la sustitucin no vuelve a aplicarse sobre instancias nuevamente apareci-
das de la letra proposicional. En [p,q q,q p))] se produce las sustituciones atmicas simul-
tneamente: no se convierten primero las p en q y, luego, todas las q (las primitivas y las recin
aparecidas) en q p)).
Algo ms formalmente, dada una frmula su sustitucin )

es una frmula. Y esta funcin


)

: Form Form se puede denir recursivamente.


Denicin 1.25 Instancia, por sustitucin, de una frmula) Considere una frmula y una fun-
cin
at om
: Form_At om Form que dene la sustitucin para cada frmula atmica . Entonces, la
sustitucin uniforme )

se dene como:
)

) =
)

) =

at om
) atmica
De la sustitucin atmica
at om
se requiere que
at om
) = y que
at om
) = . Cada
at om
ja
una nica sustitucin uniforme )

. La frmula )

es la instancia de por la sustitucin .


As, si una sustitucin se aplica sobre una frmula, por ejemplo, conjuntiva, el resultado ser la
conjuncin de las transformadas. Si se aplica sobre una negacin, el resultado es la negacin de la
transformada. Cuando se llega a una letra proposicional, se cambia sta por su frmula sustituyente.
Ejemplo 1.26 Sea
at om
: Form_At om Form tal que:

at om
) =
at om
) =

at om
p
0
) = p
1
p
0
)
at om
p
1
) = p
3

at om
p
k
) = p
k
para toda letra proposicional p
k
con k = 0 1
Entonces est denida la transformada )

de cualquier frmula , por ejemplo := p


0
p
1
)
)

= p
0
p
1
)

= p
0
)

p
1
)

) =
= p
0
)

p
1
)

)) =
at om
p
0
)
at om
p
1
))) = p
1
p
0
) p
3
))
Ejercicio 1.27 Con la sustitucin denida en el ejemplo previo, calcule:
p
0
p
1
) p
3
))

Cuando en una sustitucin atmica, como


at om
= [p,qr) q,t q)], no se facilite la sustitucin
para todas (las innitas) letras proposicionales, se entender que
at om
p
k
) = p
k
para esas letras.
Aunque no fuera as, suelen precisarse slo las sustituciones atmicas de las letras incluidas en
las frmulas analizadas en ese momento. Si dos sustituciones coinciden sobre esas letras (aunque di-
eran en alguna de las innitas restantes), producen las mismas transformaciones sobre esas frmulas
consideradas.
1.1. Sintaxis 19
1.1.4 Eliminacin de parntesis
Considere el rbol sintctico de la gura (g. 1.6). Cada nodo es una de las subfrmulas utilizadas en
su generacin. Y una frmula no es ms que la expresin lineal de esta estructura.
Con todos sus parntesis (y correctamente situados) a cada frmula le corresponde un nico rbol
sintctico. Y a cada rbol una nica frmula. Si se omiten los parntesis, a una frmula le pueden
corresponder varios rboles: resulta ambigua. Por ejemplo,
pqp
puede tener por conectiva principal una conjuncin o una negacin. Trate de dibujar sus posibles
rboles sintcticos.
pq) p))
pq)

p)

Figura 1.6: rboles y parntesis


Adems de los parntesis (cuya anidacin replica la del arbol) existen otras dos maneras de li-
nealizar un rbol sintctico: utilizando notacin preja o conviniendo un orden de precedencia entre
conectivas.
Notacin preja
Una operacin aritmtica binaria como 3+5) puede representarse as (en notacin inja) o + 3 5)
(en notacin preja). Tambin se puede considerar la notacin posja.
As, una frmula como
pq) p))
se puede representar en notacin preja como


pq

p
Donde las llaves y lneas se han aadido para facilitar la lectura. Observe que corresponde a un
recorrido del rbol en profundidad. Y que la frmula, ya sin parntesis, no resulta ambigua.
A la notacin preja tambin se la conoce como notacin polaca.
Precedencia
Para interpretar una expresin aritmtica como 3 5 +7 4, ambigua, se suele suponer que existe un
convenio entre el escritor y el lector que deshace esta ambiguedad. El convenio ms generalizado per-
mite interpretar esa expresin como 3 5) +7 4)). Se suele explicar informalmente este convenio
jando que, en caso de ambiguedad, las multiplicaciones se consideran antes que las sumas.
20 Captulo 1. LGICA DE PROPOSICIONES
Entre los operadores lgicos, en este mismo tono informal, se suelen considerar primero las nega-
ciones, luego conjunciones y disyunciones, y despus condicionales y bicondicionales. Como quiera
que es un convenio, trate de determinar con exactitud qu precedencia utiliza el autor del texto que
est leyendo.
1.2 Semntica
1.2.1 Introduccin
Los sistemas lgicos no son meros ejercicios formales. Se utilizan para representar declaraciones
sobre el mundo y operar sobre estas representaciones.
Representacin de declaraciones Cada declaracin, cada expresin declarativa, enuncia un estado
de cosas. LLueve es una expresin declarativa. Una orden o una pregunta no lo son. De una
expresin declarativa se puede juzgar cunto de verdadera es.
La sintaxis del lenguaje natural, con el que nos comunicamos diariamente, permite construir ex-
presiones declarativas a partir de otras. As, en una frase como llueve y es de da se distinguen 3
expresiones: llueve, es de da y llueve-y-es de da.
llueve y es de da
Los sistemas lgicos proporcionan un lenguaje formal. Ysobre este lenguaje se intenta representar
las declaraciones del lenguaje natural. Como el lenguaje natural es mucho ms rico en matices,
excepciones, ambigedades y contextos, este proceso de representacin no es fcil. Ciertamente,
algunos lenguajes formales son ms expresivos que otros, permiten captar ms detalles del lenguaje
natural. Si estos detalles son signicativos para describir un nuevo tipo de razonamiento, bienvenidos.
Si no, podamos habernos quedado con el lenguaje formal previo, ms rgido.
La lgica de proposiciones facilita un lenguaje muy pobre. Sin embargo, hay procesos de razo-
namiento utilizados diariamente que pueden ser formalizados, captados convenientemente, sobre este
lenguaje. Para formalizar otros procesos habr que denir nuevos sistemas lgicos.
En el lenguaje proposicional, el ejemplo previo sobre la lluvia y el estado diurno, se representara
como:
p q
Observe que, de nuevo, se pueden considerar 3 frmulas: p, q y pq.
Valores de verdad de una declaracin Volvamos al lenguaje natural, a las 3 declaraciones detec-
tadas en llueve y es de da. Sobre cada una de ellas se puede considerar su grado de verdad, pero no
de forma totalmente independiente. Una vez que se ha jado el valor de verdad de las componentes,
el de la expresin compuesta est determinado: es funcin de los anteriores. Para este ejemplo, si slo
una componente fuese verdadera, el uso habitual de la conjuncin y nos obliga a aceptar que la frase
compuesta no lo es. Otra cosa sera si estuvieran unidas por una disyuncin o.
La lgica de proposiciones trata de captar estas dependencias entre valores de verdad: una depen-
dencia distinta para cada conectiva, que debe precisar qu valor de verdad tiene la expresin compues-
ta para cada combinacin de valores de las componentes.
Los posibles valores de las componentes hay que jarlos. Si se admite que una declaracin puede
ser ms bien verdadera, o un 80% falsa, la funcin asociada a cada conectiva debiera denirse para
todos estos casos. Se estara entonces en el marco de lgicas polivaluadas o lgicas borrosas.
1.2. Semntica 21
En todos los sistemas lgicos abordados este curso se considerarn slo dos valores de
verdad. As, una expresin es verdadera o falsa, necesariamente slo una de las dos
opciones: si se arma que no es una de ellas, entonces tiene el otro valor de verdad.
Sobre la utilidad del formalismo A un lector tcnico puede (slo puede) que no le motive un
ejemplo sobre lluvia, luz y olor a campo. Considere este otro:
Si (<encendido> y <congurado> y <conectado>) entonces <accedo servidor>
Si <luce piloto> entonces <encendido>
Si <icono parpadea> entonces <conectado>
<luce piloto> e <icono parpadea> y no <accedo servidor>
Consta de cuatro expresiones declarativas compuestas, con componentes comunes. Que se hayan
enunciado no supone que se acepten como verdaderas, todas o algunas. En algunos textos se podra
encontrar, previo a su enunciado, la frase suponga que son ciertas todas las siguientes expresiones.
En otras situaciones, s que al enunciarlas se acepta implcitamente que se suponen todas ellas verda-
deras. No ser nuestro caso.
Considere el valor de cada componente. Si se opta por pensar que <luce piloto> es verdad, lo
aceptaremos en las cuatro expresiones. Igualmente se puede tomar partido ante el resto de las com-
ponentes bsicas. Se tendr entonces una interpretacin comn del estado de las cosas. Para esa
interpretacin, resultar que cada una de las cuatro declaraciones compuestas tendrn denido su va-
lor de verdad, (funcin del de las componentes y de las conectivas usadas). En este punto es posible
plantearse algunas cuestiones:
Satisfacibilidad: efectivamente, de todas las interpretaciones posibles, alguna hay que consigue
que esas cuatro declaraciones compuestas resulten simultneamente verdaderas. No obstante,
si se aade como quinta declaracin <congurado>, no se encontrar interpretacin alguna que
haga verdaderas a estas cinco declaraciones: resultar un conjunto insatisfacible de expresiones.
Consecuencia: en todas las interpretaciones en que las cuatro declaraciones sean verdaderas (en
todas, todas), resultar que la expresin no <congurado> se evaluara como verdadera. Esta
expresin es consecuencia lgica de las cuatro anteriores. Vuelva a leer las cuatro declaraciones
del ejemplo, suponiendo que efectivamente son verdaderas, y trate de llegar a esta conclusin.
Equivalencia: si se compara la declaracin Si <luce piloto> entonces <encendido> con esta
otra Si no <encendido> entonces no <luce piloto>, resultar que presentan una relacin curio-
sa: toda interpretacin que hace a una de ellas verdadera tambin lo hace a la otra, y lo mismo
ocurre con las interpretaciones que las hacen falsas. Son dos formas distintas de expresar lo
mismo.
Validez: es posible construir expresiones que sean verdaderas en toda interpretacin, anloga-
mente a cmo, en el lenguaje de la aritmtica, x +3+x) = 3 no importa cul sea el valor de
x. En nuestro ejemplo, sera posible contruir una nica expresin de este estilo con las cuatro
declaraciones y una quinta: no <congurado>.
Como se puede intuir, todas estas cuestiones estn interrelacionadas. Para expresar formalmente
esta interrelacin es necesario denir cada uno de los conceptos utilizados. Todo ello se produce sobre
la semntica de la lgica de proposiciones: la manera precisa de evaluar una expresin en funcin de
los valores de sus componentes.
22 Captulo 1. LGICA DE PROPOSICIONES
1.2.2 Valores de verdad de frmulas atmicas
Slo se considerarn dos posibles valores de verdad: verdadero o falso. Se denotarn preferentemente
como 1 (verdadero) y 0 (falso). Alternativamente, se utilizar la notacin v (verdadero) y f (falso).
Denicin 1.28 Asignacin) Una asignacin
atom
: Form_Atom {0 1} es una funcin del con-
junto de frmulas atmicas en el conjunto de valores de verdad, con
atom
) = 0 y
atom
) = 1.
Ejemplo 1.29 Para jar ideas, si nuestro alfabeto contuviera slo 3 letras proposicionales, una asigna-
cin hara corresponder a cada una de estas letras su valor de verdad: bien 0 (falso), bien 1 (verdadero).
En cuanto a las constantes, toda asignacin debe hacer corresponder 0 a y 1 a .
En este caso, la siguiente correspondencia
atom
es una asignacin:

atom
p) = 0
atom
q) = 1
atom
r) = 0;
atom
) = 0
atom
) = 1
Se pueden denir, en este conjunto de 3 letras, hasta 8 asignaciones distintas. En la tabla (tabl. 1.2)
se enumeran todas: cada lnea es una asignacin distinta. La inferior ja que las 3 proposiciones son
falsas y la superior que son verdaderas. Si se consideran las las como codicacin en binario de un
nmero, es fcil generarlas todas.
En general, para n variables, hay 2
n
asignaciones distintas.
p q r
7 1 1 1
6 1 1 0
5 1 0 1
4 1 0 0
3 0 1 1
2 0 1 0
1 0 0 1
0 0 0 0
Tabla 1.2: 2
3
asignaciones distintas sobre 3 letras proposicionales
1.2.3 Semntica de las conectivas
El valor de verdad de una frmula compuesta debe depender slo del valor de sus subfrmulas inme-
diatas y de la conectiva que las une. En el caso ms simple, p) ser verdadera si p es falsa y ser
falsa si p es verdadera.
La tabla (tabl. 1.3) reune la funcin asociada a cada conectiva binaria, en denitiva, la funcin que
la caracteriza y la distingue de otras. As, p q) tendr como valor de verdad 0 si p es verdadera y
q falsa.
Observe que = q p) tendr como valor 1 si p es verdadera y q falsa. En la tabla, p se reere
a la subfrmula izquierda y q a la derecha y lo que se expresa es si la subfrmula izquierda es falsa
(0) y la derecha verdadera (1), entonces la frmula es verdadera (1). Exactamente lo que se j para
.
Lo que distingue una conectiva de otra es exclusivamente su funcin. Si en otro texto se dene una
conectiva & con, exactamente, la misma funcin que , considere que se trata del mismo concepto de
1.2. Semntica 23
p q pq pq p q p q
1 1 1 1 1 1
1 0 0 1 0 0
0 1 0 1 1 0
0 0 0 0 1 1
Tabla 1.3: Semntica de las conectivas binarias
conjuncin, denotado de otra forma. Sobre estas cuatro conectivas binarias conviene resaltar algunos
detalles:
Conjuncin (): formalmente, slo es verdadera en un caso, cuando todas las subfrmulas
inmediatas lo son. Representa el concepto de conjuncin del lenguaje natural.
Disyuncin (): formalmente, slo es falsa en un caso, cuando todas las subfrmulas inmedia-
tas lo son. Representa el concepto de disyuncin no exclusiva del lenguaje natural: cuando se
acepta una cosa, la otra o ambas. Una frase como vienes o te quedas utiliza una disyuncin
exclusiva que representa ms elmente otra conectiva.
Condicional (): en expresiones condicionales, a la subfrmula izquierda se le denomina
antecedente y a la derecha, consecuente. Un condicional slo es falso en un caso, cuando el
antecedente es verdadero y el consecuente es falso. Capta, en parte, el uso que se hace de la
implicacin en lenguaje natural: efectivamente, si el antecedente es verdadero y el consecuente
(lo implicado) no lo es, no se admite que exista, que sea verdadera, esa relacin de implicacin.
Sin embargo, la implicacin en lenguaje natural suele llevar asociada una causalidad fsica: si
lo sueltas, se cae. Hay algo en la estructura interna del antecedente o en lo que expresa sobre
el mundo que obliga al consecuente a ser verdad, cuando el antecedente lo es. Nada de eso es
formalmente expresable sobre un condicional proposicional.
No se suelen establecer relaciones de implicacin, en lenguaje natural, usando antecedentes
que son falsos: si 8 es un nmero primo entonces ... Nuestro condicional ha resaltado, muy
tilmente, un nico caso en que es falso a costa de agrupar los otros tres. En la evaluacin formal
de expresiones, puede ocurrir que el antecedente de un condicional resulte falso, entonces se
admitir, se aceptar como verdadera la relacin condicional expresada, puesto que no se est
en el (nico) caso en que es falsa.
Todas estas reexiones slo tienen que ver con la capacidad de expresar implicaciones natu-
rales con condicionales en este formalismo. Si uno se mantiene slo dentro del formalismo,
el condicional es la funcin que lo dene, como en cualquier otra conectiva. Observe que,
automticamente,
si el antecedente es falso ya se puede armar que el condicional es verdadero (sin evaluar
el consecuente),
y, si el consecuente es verdadero, tambin lo es el condicional (sin necesidad de evaluar el
antecedente).
Bicondicional (): si se admite que es verdad que si un nmero es divisible por cuatro en-
tonces es divisible por dos, se est aceptando una relacin condicional entre antecedente y
consecuente (en ese sentido). Esta aceptacin, direccional, no arma (ni niega) que se verique
24 Captulo 1. LGICA DE PROPOSICIONES
la relacin en el otro sentido. Cuando se enuncia un bicondicional, se enuncia una relacin con-
dicional en ambos sentidos: un nmero es mltiplo de 10 (si y slo si, bicondicional) termina
en 0.
Un bicondicional es falso en dos interpretaciones: las que, respectivamente, haran falso el
condicional en un sentido u otro.
1.2.4 Valores de verdad de frmulas complejas
No slo las frmulas atmicas tienen asignado un valor de verdad. Cualquier frmula, por muy
compleja que sea, debe poder evaluarse. De hecho, la funcin que dene las conectivas ya facilita
evaluar frmulas con, a lo sumo, una conectiva.
Si el nmero de frmulas fuera nito y pequeo, se podra establecer a mano una corresponden-
cia entre frmulas y valores de verdad. No todas las correspondencias seran aceptables. En concreto,
se descartara las correspondencias que evaluaran como verdadera tanto a una frmula como a su
negacin. Las correspondencias aceptables se denominan interpretaciones y deben vericar ciertas
propiedades.
Denicin 1.30 Interpretacin) Una interpretacin : Form {0 1} es una funcin que asigna a
cada frmula un valor de verdad y que verica las siguientes restricciones:
1. ) = 0, ) = 1
2. ) =)
3. ) =) ), para cada uno de los operadores binarios
La ltima propiedad requiere que el valor asignado a una frmula compleja coincida con el que
calcula la conectiva cuando se aplica sobre los valores de las dos subfrmulas.
La gura (g. 1.7) representa el rbol sintctico de una frmula. Se ha jado una asignacin de
partida
atom
p) = 1,
atom
q) = 0, que se propaga hacia arriba hasta producir el valor de la frmula.
En todo nodo, cada conectiva calcula exactamente la funcin que la dena.
pq) ))
pq)

0
Figura 1.7: Interpretacin inducida por una asignacin
Parece, grcamente, que partiendo de una asignacin sobre las frmulas atmicas queda determi-
nado un valor para cada frmula: una interpretacin. Efectivamente, este proceso se puede formalizar
recursivamente. Y el principio de recursin estructural garantiza que la funcin obtenida es nica
(para cada asignacin de partida) y est bien denida.
1.2. Semntica 25
Denicin 1.31 Interpretacin, por extensin de una asignacin) :
) =

) = ) ) = )

) = ) = )

atom
) atmica
Resta slo un pequeo detalle formal. Si el alfabeto consta de 100 letras proposicionales (o de
innitas), una asignacin debe facilitar el valor de verdad de todas ellas. Suponga que se est
trabajando, en ese momento, sobre una frmula (o frmulas) que no contiene ms que 10 letras
proposicionales distintas. Existen, entonces, muchas asignaciones que coinciden en los valores sobre
esas 10 letras pero dieren en el resto. Escoja cualquiera de ellas para calcular el valor de , todas
producirn el mismo. Depende slo de la asignacin sobre esas 10 letras, no de la asignacin sobre el
resto.
Teorema 1.32 Si
1
p
k
) =
2
p
k
) para todas las variables p
k
que aparecen en , entonces
1
) =

2
)
Este resultado permite que, cuando se ja una asignacin, slo se haga sobre las letras que apare-
cen en las frmulas analizadas, sin precisar el valor de otras letras del alfabeto no utilizadas.
1.2.5 Tablas de verdad
Si vuelve a observar la gura (g. 1.7) apreciar que, lo nico necesario para interpretar la frmu-
la, es jar una asignacin. Y tambin que, por contener slo dos letras proposicionales, existen 4
asignaciones distintas.
As, si el problema es interpretar la frmula, basta una asignacin. Pero si interesa conocer cmo
se comporta globalmente la frmula habr que estudiarla frente a toda asignacin posible. La tabla
(tabl. 1.4) es una enumeracin completa del valor de la frmula para cada asignacin distinta. A este
tipo de tablas se le denomina tabla de verdad de la frmula.
p q pq) ))
1 1 1
1 0 1
0 1 1
0 0 1
Tabla 1.4: Tabla de verdad de pq) ))
Para este ejemplo, slo cuando se consideran todas las interpretaciones se conrma una propiedad
de esta frmula: es invariablemente verdadera bajo toda interpretacin. Para conrmar propiedades
como sta resultar inevitable calcular ntegramente la tabla (hasta disponer de otros mtodos). Otras
cuestiones se resolvern considerando slo algunas interpretaciones determinadas.
Considere una frmula casi idntica a la del ejemplo previo:pq)p)). Tiene el mismo rbol
que el de la gura (g. 1.7), sustituyendo por p. En este nuevo rbol, p aparece en dos posiciones
iniciales. Sintcticamente se requiere as. Semnticamente, ambas apariciones estn relacionadas:
bajo una misma asignacin no se puede considerar que una aparicin de p es verdadera al tiempo que
la otra es falsa.
La tabla de verdad de esta nueva frmula se presenta en (tabl. 1.5). Cuando la frmula es compleja
suele ser til ir calculando la tabla de verdad de algunas subfrmulas como pasos intermedios. En
concreto, en esta tabla, la ltima columna se obtiene por disyuncin de las dos auxiliares previas.
26 Captulo 1. LGICA DE PROPOSICIONES
p q pq) p) pq) p))
1 1 1 0 1
1 0 0 0 0
0 1 0 1 1
0 0 0 1 1
Tabla 1.5: Tabla de verdad de pq) p))
Es quiz ms efectivo rellenar la tabla de verdad con el rbol en mente: de abajo arriba, se calcula
el resultado de cada nodo-conectiva que se visita y se escriben los valores de salida en la columna
debajo de la conectiva. Un ejemplo de este proceso se muestra en la tabla (tabl. 1.6). Los valores que
resultan debajo de la conectiva principal (en negrita) son los ltimos que se calculan y corresponden
a la frmula total.
p q pq) p
1 1 1 1 0
1 0 0 0 0
0 1 0 1 1
0 0 0 1 1
Tabla 1.6: Tabla de verdad, compacta, de pq) p))
1.2.6 Tautologas y contradicciones
Ya se ha visto un ejemplo de frmula que es verdadera en toda interpretacin, en toda lnea de la tabla
de verdad. Tambin pueden denirse frmulas que sean falsas en toda interpretacin. Y la tabla (tabl.
1.6) facilita un ejemplo de frmula tanto con valores 1 como 0, segn fuera la interpretacin.
Denicin 1.33 Tautologas y contradicciones) A una frmula verdadera para toda interpretacin
se le denomina tautologa. A una frmula falsa para toda interpretacin se le denomina contradiccin.
Las tautologas y contradicciones son dos presentaciones de la misma realidad. Resultarn ex-
tremadamente importantes en el estudio de la lgica proposicional. A las frmulas que no son ni
tautologa ni contradiccin se las suele denominar contingentes.
1.3 Conceptos semnticos bsicos
1.3.1 Satisfacibilidad
La satisfacibilidad es la potencialidad de ser satisfecho. En Lgica, una interpretacin satisface una o
varias frmulas cuando stas se evalan como verdaderas en esa interpretacin.
Denicin 1.34 Satisfaccin) Una interpretacin satisface una frmula si ) = 1. Una inter-
pretacin satisface un conjunto de frmulas ={
1
. . .
n
} si
k
) = 1 para toda frmula
k
de
.
1.3. Conceptos semnticos bsicos 27
Grcamente, sobre la tabla de verdad, cualquier lnea (interpretacin) donde una frmula se
evala como 1 satisface esa frmula. Una interpretacin satisface a un conjunto de frmulas si todas
ellas presentan valor 1 en esa misma lnea.
La satisfaccin de una frmula coincide con la satisfaccin del conjunto de frmulas que slo la
contiene a ella. Cuando una interpretacin satisface a una frmula (o a un conjunto) se dice que es un
modelo de esa frmula (o conjunto).
El concepto de satisfaccin requiere: (1) disponer de una interpretacin y (2) de un conjunto de
frmulas. Entonces se puede decidir si esa interpretacin satisface o no a ese conjunto. La satisfaci-
bilidad es la posibilidad de ser satisfecho por alguna interpretacin. No se facilita la interpretacin,
slo la frmula o frmulas, y se requiere encontrar al menos una interpretacin que las satisfaga.
p q r pq) qr) pq) qr) pq) qr)
1 1 1 0 1 1
1 1 0 0 0 1
1 0 1 0 1 1
1 0 0 0 1 1
0 1 1 0 1 1
0 1 0 0 1 1
0 0 1 0 1 1
0 0 0 0 1 1
Tabla 1.7: Una frmula insatisfacible y dos satisfacibles
Denicin 1.35 Satisfacibilidad) Una frmula es satisfacible si existe alguna interpretacin tal
que ) =1. Un conjunto de frmulas ={
1
. . .
n
} es satisfacible si existe alguna interpretacin
tal que
k
) = 1, para toda
k
en .
De nuevo coloquialmente, basta que exista una lnea (al menos) donde se satisfaga (simultnea-
mente) ese conjunto de frmulas, para armar que es satisfacible. Si un conjunto (o una frmula)
no es satisfacible se denominar insatisfacible. Las frmulas insatisfacibles tambin se denominan
contradicciones.
Ejemplo 1.36 Observe la tabla de verdad (tabl. 1.7). La primera frmula (por la izquierda) es insa-
tisfacible, una contradiccin. Las dos restantes son satisfacibles. De estas dos frmulas satisfacibles,
una resulta ser verdadera en toda interpretacin y la otra no.
Ejemplo 1.37 Observe la tabla de verdad (tabl. 1.8). Ese conjunto de 3 frmulas es satisfacible.
Existe una lnea (al menos) donde todas las frmulas tienen el valor 1. La tabla (tabl. 1.9) corresponde
a un conjunto de frmulas insatisfacible.
Propiedades
El conjunto de frmulas de la tabla (tabl. 1.8) se satisface simultneamente en 5 lneas. Si se eliminase
una de las frmulas, el conjunto resultante se satisfara en un nmero igual o mayor de lneas. Por
contra, si se aadiese una frmula cualquiera, el conjunto resultante se satisfara en un nmero igual
o menor de lneas.
En la generalizacin de este estudio, los siguientes resultados sern especialmente tiles. Se los
adjuntamos en un nico teorema, de nuevo sin demostracin:
28 Captulo 1. LGICA DE PROPOSICIONES
p q r p qr) pq) r r r p)
1 1 1 1 1 1

1 1 0 1 1 1

1 0 1 1 1 1

1 0 0 0 0 1
0 1 1 1 1 1

0 1 0 1 0 1
0 0 1 1 1 1

0 0 0 1 0 1
Tabla 1.8: El conjunto ={p qr) pq) r q r p)} es satisfacible
Teorema 1.38 Sea ={
1
. . .
n
} un conjunto de frmulas:
Si es satisfacible
y se elimina una de sus frmulas, entonces el conjunto resultante es satisfacible
y se le aade una tautologa, el conjunto resultante es satisfacible
y se le aade una contradiccin, el conjunto resultante es insatisfacible
Si es insatisfacible
y se aade una frmula cualquiera, entonces el conjunto resultante es insatisfacible
y se elimina de entre sus frmulas una tautologa (si la hubiera), el conjunto resultante es
insatisfacible
Si a un conjunto satisfacible se le aade una frmula satisfacible no se puede asegurar que el
conjunto resultante sea satisfacible. Tampoco se puede asegurar nada si de un conjunto insatisfacible
se elimina una frmula cualquiera (no tautolgica).
p q r p qr) pq) r p)
1 1 1 1 1 0
1 1 0 1 1 0
1 0 1 1 0 0
1 0 0 0 0 0
0 1 1 1 0 0
0 1 0 1 0 1
0 0 1 1 0 0
0 0 0 1 0 0
Tabla 1.9: El conjunto ={p qr) pq) r p)} es insatisfacible
Procedimiento de decisin
El mtodo ms directo (aunque ms costoso) para decidir la satisfacibilidad de una frmula (o de un
conjunto) consiste en recorrer todas las interpretaciones de la tabla de verdad, hasta producir:
1.3. Conceptos semnticos bsicos 29
un resultado armativo: es satisfacible; para ello, basta encontrar la primera interpretacin
satisfactoria.
o un resultado negativo: no es satisfacible; para ello es preciso recorrer todas las interpretacio-
nes posibles.
Si en un conjunto de frmulas aparecen n letras proposicionales, el nmero de interpretaciones
distintas es 2
n
. Es decir, si n = 30, sera preciso comprobar una tabla de verdad con ms de mil
millones de entradas.
Afortunadamente, en lgica proposicional, el nmero de interpretaciones distintas (aunque in-
tratable por exponencial) es nito. En lgica de primer orden se pierde esta cualidad: existen innitas
interpretaciones distintas para una frmula.
Satisfacibilidad y conjuncin
Existe una relacin estrecha entre la satisfacibilidad de un conjunto de frmulas y la satisfacibilidad
de una nica frmula: la que se construye por conjuncin de todas las frmulas del conjunto.
Teorema 1.39 Sea ={
1
. . .
n
} un conjunto de frmulas:
={
1
. . .
n
} es satisfacible si y slo si la frmula
1
. . .
n
es satisfacible
={
1
. . .
n
} es insatisfacible si y slo si la frmula
1
. . .
n
es una contradiccin
Observe que los resultados se aseguran de forma bicondicional: si es satisfacible entonces la
conjuncin lo es; y si la conjuncin es satisfacible, entonces el conjunto de las frmulas conectadas
por esas conjunciones es satisfacible. Cualquier interpretacin que satisfaga al conjunto satisfar a la
conjuncin (y viceversa).
1.3.2 Validez
Una frmula vlida es aqulla que es verdadera frente a cualquier interpretacin. Las tautologas
son frmulas vlidas. La satisfacibilidad divide en dos al conjunto de frmulas: en insatisfacibles
(contradicciones) y satisfacibles. Este ltimo conjunto tambin se divide en dos: frmulas tautolgicas
y frmulas contingentes. Observe que:
si niega una frmula insatisfacible, la frmula resultante es una tautologa
si niega una tautologa, la frmula resultante es insatisfacible
si niega una frmula contingente, la frmula resultante es contigente
si niega una frmula satisfacible, la frmula resultante puede ser satisfacible o no serlo; tan slo
se puede armar que no ser tautologa
Notacin Para expresar que una frmula es vlida se utilizar la notacin |=.
30 Captulo 1. LGICA DE PROPOSICIONES
Procedimiento de decisin
Para decidir la validez de una frmula, de nuevo, el procedimiento semntico extensivo requiere re-
correr toda la tabla de verdad. Los resultados negativos se pueden obtener ms rpidamente: basta
encontrar la primera interpretacin que no satisface la frmula. Pero los resultados positivos requieren
una comprobacin completa.
De los resultados del apartado anterior volvemos a resaltar que:
una frmula es vlida si y slo si es insatisfacible
Por lo tanto:
cualquier mtodo de decisin de la (in)satisfacibilidad permite decidir la validez, y vice-
versa
Preservacin por sustitucin
La sustitucin uniforme (1.25) es una operacin sintctica que permite, a partir de una frmula y de
una sustitucin, obtener otra: su instancia por esa sustitucin dada. Es una operacin extremadamente
til, ya que preserva la validez.
Teorema 1.40 Si es una frmula vlida entonces su instancia por sustitucin )

es una frmula
vlida, para cualquier sustitucin .
Ejemplo 1.41 Compruebe que la frmula :
pq) qr))
es una tautologa. Fijemos la sustitucin
p) = p q) = pr) r) = r)
entonces )

es una tautologa:
ppr)) pr) r)))
1.3.3 Consecuencia
Observe la tabla (tabl. 1.10). La ltima frmula verica una interesante relacin respecto al conjunto
de las frmulas previas:
en todas (todas, todas) las lneas en que esas frmulas coinciden en ser verdaderas, la
ltima tambin lo es (y quiz en alguna ms).
Esta es una descripcin informal de la relacin ser consecuencia lgica de. En este ejemplo, qr)
es consecuencia lgica del conjunto de frmulas {p) q) p r)}, a las que denominaremos
premisas o hiptesis.
Muy coloquialmente: en cualquier estado de cosas en que las hiptesis, todas, sean verdaderas, la
consecuencia (para merecer tal nombre) no puede dejar de serlo. Observe que la consecuencia puede
ser cierta en ms lneas, pero debe ser cierta en las lneas verdaderas comunes de las hiptesis.
1.3. Conceptos semnticos bsicos 31
p q r pq pr qr
1 1 1 1 1 1

1 1 0 1 1 1

1 0 1 1 1
1 0 0 1
0 1 1 1 1 1

0 1 0 1 1
0 0 1 1 1 1

0 0 0 1
Tabla 1.10: Consecuencia. {pq) pr)} |= qr)
Denicin 1.42 Consecuencia) Una frmula es consecuencia de un conjunto = {
1
. . .
n
}
de frmulas si toda interpretacin que satisface a tambin satisface a .
Notacin Para representar que es consecuencia lgica de ={
1
. . .
n
} se suele emplear la notacin
|=, {
1
. . .
n
} |=. Cuando no se cumple la relacin de consecuencia se denota tachando el smbolo:
|=.
Es tambin usual omitir las llaves del conjunto:
1
. . .
n
|=. En particular, |=denota que la frmula
es consecuencia lgica de la frmula .
p q r pr p q) pq
1 1 1 0 0 1
1 1 0 0 0 1
1 0 1 0 1 1
1 0 0 0 1 1
0 1 1 1 1 1

0 1 0 0 1 1
0 0 1 1 0 0
0 0 0 0 0 0
Tabla 1.11: Consecuencia. {pr p q)} |= pq)
La denicin anterior se puede presentar, semiformalmente, como:
|= si
para toda interpretacin : [ ( satisface ) ( satisface ) ]
Es decir, es preciso comprobar, una a una, que toda interpretacin verica el condicional entre
corchetes. En la tabla (tabl. 1.11), de las 8 interpretaciones posibles, 7 verican el condicional porque
hacen falso el antecedente (ninguna de ellas satisface a toda frmula del conjunto de premisas).
Y la interpretacin restante tambin verica el condicional porque hace verdadero el antecedente y
verdadero el consecuente.
Observe que para que ese condicional no se satisfaga debe existir (al menos) una interpretacin
(una lnea) que satisfaga todas las premisas de pero no satisfaga a .
32 Captulo 1. LGICA DE PROPOSICIONES
Procedimiento de decisin
En Lgica de Proposiciones, donde el nmero de interpretaciones distintas es nito, la relacin de
consecuencia lgica se puede decidir mediante el siguiente procedimiento:
1. construya la tabla de verdad comn de todas las frmulas (considerando todas las variables
distintas)
2. seale las lneas verdaderas de la primera hiptesis (
1
), de la segunda (
2
), . . ., de la ensima

n
3. determine la interseccin de estos conjuntos de lneas
4. valore la consecuencia () slo en esas lneas comunes (el valor de la consecuencia en el res-
to es irrelevante): si es verdadera en todas ellas, entonces es consecuencia del conjunto
{
1

2
. . .
n
}. Es decir, {
1

2
. . .
n
} |=
Propiedades de inters
La relacin de consecuencia, entre una frmula y un conjunto de frmulas, presenta las siguientes
propiedades:
Reexividad: |=; es decir, toda frmula es consecuencia lgica de s misma
Transitividad: si {
1
. . .
n
} |= y |=, entonces {
1
. . .
n
} |=
Monotona: sea = {
1
. . .
n
}; si |= y , entonces |= ; es decir, si de un
conjunto de premisas se sigue una consecuencia , la incorporacin de nuevas premisas a este
conjunto no altera este hecho: sigue siendo consecuencia de este conjunto ampliado.
Consecuencia de un conjunto insatisfacible
El ltimo punto del apartado anterior puede resultar chocante: si se aaden nuevas premisas a un
conjunto, es posible que produzca un conjunto insatisfacible. La denicin de consecuencia permite
que una frmula sea consecuencia de un conjunto insatisfacible?
En la denicin (def. 1.42) de consecuencia, no existe restriccin alguna sobre el conjunto de
premisas. De hecho, en el anlisis que se hace del ejemplo de la tabla (tabl.1.11), se acepta que |=
(para las frmulas de esa tabla) porque 7 interpretaciones no satisfacen (hacen falso el antecedente
de la denicin) y la restante satisface tanto como .
Con el mismo argumento empleado all, si fueran 8 (todas) las interpretaciones que no satiscieran
, el condicional de la denicin
para toda interpretacin : [ ( satisface ) ( satisface ) ]
no se hara falso en ningn caso. Y, por tanto, se admitira que |=.
Observe que el condicional requerido es verdadero para toda interpretacin, en toda lnea, porque
ninguna consigue hacer falso el condicional, porque ninguna interpretacin satisface . Y todo esto,
fuera quien fuera la consecuencia propuesta .
Importante: Absolutamente cualquier frmula verica que es consecuencia lgica de
un conjunto de frmulas insatisfacible.
1.3. Conceptos semnticos bsicos 33
Observe que, cuando se dice cualquier frmula, sto incluye a una frmula cualquiera, pero
tambin a su negacin. Es decir:
{p p} |= pq , pero tambin, {p p} |=pq)
Si el conjunto de hiptesis es satisfacible sto nunca ocurre: si una frmula es consecuencia lgica
de ese conjunto, su negacin no lo es.
Importante: |= y |= si y slo si es insatisfacible
Para desarrollar cualquier teora es importante garantizar que el conjunto de premisas inicial es
satisfacible.
Consecuencia, validez y satisfacibilidad
Ya se j la relacin entre validez y satisfacibilidad: una frmula es vlida si y slo si es
insatisfacible. Tambin existe una dependencia formal entre estos dos conceptos y el concepto de
consencuencia.
Consecuencia y validez Observe la Tabla 1.12. Obviando la ltima columna, corresponde a la
comprobacin semntica de que r es consecuencia lgica de las tres frmulas previas: {pq) p
r) q r)} |= r.
Si esto es as (si se verica la consecuencia lgica), no puede dejar de ser cierto lo siguiente:
la frmula condicional que se construye con la conjuncin de todas las hiptesis como
antecedente, y la consecuencia como consecuente resulta siempre ser una tautologa
p q r pq p r q r r [pq) p r) qr)] r
1 1 1 1 1 1 1

1
1 1 0 1 1
1 0 1 1 1 1 1

1
1 0 0 1 1 1
0 1 1 1 1 1 1

1
0 1 0 1 1 1
0 0 1 1 1 1 1
0 0 0 1 1 1
Tabla 1.12: Si {
1
. . .
n
} |= entonces
1
. . .
n
es tautologa
Puede comprobar que el condicional construido no puede dejar de ser verdadero en lnea alguna:
1. slo sera falso si su antecedente fuera verdadero y su consecuente fuera falso.
2. su antecedente es verdadero exclusivamente en todas las lneas en que coinciden las hiptesis
en ser verdaderas
3. en esas lneas en concreto, el consecuente no puede dejar de ser verdadero (puesto que es
consecuencia lgica de las hiptesis con las que se ha construido el antecedente).
34 Captulo 1. LGICA DE PROPOSICIONES
4. en el resto de las lneas, alguna hiptesis es falsa; luego, el antecedente es falso (y el condicional
global analizado no corre el riesgo de ser falso).
Si {
1
. . .
n
} |=
entonces
1
. . .
n
) es tautologa
Pero, adems, se puede demostrar el resultado recproco
Si
1
. . .
n
) es tautologa
entonces {
1
. . .
n
} |=
Por lo tanto, en general
{
1
. . .
n
} |= si y slo si
1
. . .
n
es tautologa.
Consecuencia y satisfacibilidad
Existe una interdependencia formal entre consecuencia e insatisfacibilidad que trataremos de justicar
de la forma ms intuitiva posible:
1. Si {
1
. . .
n
} |= entonces el conjunto {
1
. . .
n
} es insatisfacible
2. Si el conjunto {
1
. . .
n
} es insatisfacible entonces {
1
. . .
n
} |=
Recuerde que un conjunto es insatisfacible si y slo si la conjuncin de sus frmulas es insatisfa-
cible. As, el resultado anterior se poda haber escrito:
1. Si {
1
. . .
n
} |= entonces la frmula
1
. . .
n
es insatisfacible
2. Si la frmula
1
. . .
n
es insatisfacible entonces {
1
. . .
n
} |=
De consecuencia a insatisfacibilidad Observe la Tabla 1.13. Se supone, de partida, que se verica
la relacin de consecuencia: {
1

2

3
} |= , donde = r. Puede comprobarse que efectivamente
ocurre.
Las frmulas del conjunto {
1

2

3
} coinciden en ser verdad en 3 lneas y en todas ellas es
verdad r (puesto que es consecuencia). La frmula r garantiza que es falsa en todas ellas. Luego el
conjunto {
1

2

3
r} es insatisfacible.
El lector puede fcilmente generalizar este ejemplo: si una frmula es consecuencia de un con-
junto, la negacin de esa frmula garantiza que ser falsa en todas las lneas en que se satisfaca el
conjunto.
Si el conjunto de partida fuera insatisfacible se mantiene igualmente la propiedad: cualquier fr-
mula es consecuencia suya, y la inclusin de su negacin en ese conjunto no lo convierte en satisfaci-
ble.Luego, se obtiene el resutado:
si {
1
. . .
n
} |= entonces,
1
. . .
n
es insatisfacible
1.3. Conceptos semnticos bsicos 35
p q r pq p r q r r [pq) p r) qr)] r
1 1 1 1 1 1 1

1 0
1 1 0 1
1 0 1 1 1 1 1

1 0
1 0 0 1 1
0 1 1 1 1 1 1

1 0
0 1 0 1 1
0 0 1 1 1 1 0
0 0 0 1 1
Tabla 1.13: Si {
1
. . .
n
} |= entonces
1
. . .
n
es insatisfacible
De insatisfacibilidad a consecuencia En el resultado anterior, la frmula que hay que negar y
aadir a las hiptesis est perfectamente denida: la que se arma como consecuencia lgica de ellas.
Suponga que quiere convencerse intuitivamente del resultado recproco:
si {
1
. . .
n
} es insatisfacible, entonces {
1
. . .
n
} |=
En la expresin formal del conjunto se ha sealado una frmula, pero realmente, en cada caso
particular, lo nico que se conoce es estas 10 frmulas son insatisfacibles. La pregunta ahora es
hay alguna de ellas que sea consecuencia lgica del resto? La respuesta sera: cualquiera de ellas
(negada) es consecuencia lgica del resto.
Sobre la Tabla 1.14, compruebe que {
1

2

3
} es insatisfacible. Entonces, debe resultar (puede
comprobarlo sobre la tabla) que:
1. {
2

3
} |=
1
2. {
1

3
} |=
2
3. {
1

2
} |=
3
Observe que {
2

3
} y {
1

3
} resultan ser satisfacibles, mientras {
1

2
} es insatisfacible.
Recapitulando hasta el momento: se parte de que un conjunto es insatisfacible, se extrae una
frmula, se niega, y se pretende demostrar que es consecuencia del resto. Al extraer esa frmula
del conjunto insatisfacible, ste (el conjunto resultante) puede seguir siendo insatisfacible o ya no.
Consideremos la demostracin buscada para estos dos casos.
p q r
1
: p qr)
2
: pq
3
: pqr
1

2

3
1 1 1 1 1 1
1 1 0 1 1 1
1 0 1 1 1 1
1 0 0 1 1 1
0 1 1 1 1 1
0 1 0 1 1 1
0 0 1 1 1 1
0 0 0 1 1 1
Tabla 1.14: Si
1
. . .
n
insatisfacible entonces {
1
. . .
j1

j+1
. . .
n
} |=
j
Si un conjunto es insatisfacible y suprimo una de las frmulas
j
el conjunto restante puede
resultar satisfacible o no:
36 Captulo 1. LGICA DE PROPOSICIONES
1. si resulta satisfacible: la frmula
j
taponaba (era falsa en) todas las lneas en que ahora
resultan coincidir las restantes; luego
j
resulta verdadera en todas esas lneas. As que
j
es consecuencia del conjunto restante.
2. si resulta insatisfacible: cualquier frmula (incluida
j
) es consecuencia de este conjunto
resultante.
Combinando este resultado con el recproco anterior se obtiene:

1
. . .
n
es insatisfacible si y slo s {
1
. . .
n
} |=
Resultados equivalentes Aprovechando la relacin existente entre satisfacibilidad y validez, este
mismo resultado podra reescribirse como:

1
. . .
n
) es vlida si y slo s {
1
. . .
n
} |=
En la subseccin anterior ya se j un resultado similar:

1
. . .
n
es vlida si y slo s {
1
. . .
n
} |=
Las dos expresiones vlidas de estos resultados son equivalentes: su tabla de verdad es exacta-
mente la misma (la de una tautologa). Cada una es vlida si y slo si la otra lo es. La equivalencia
entre expresiones es el prximo objeto de estudio.
1.3.4 Equivalencia
Denicin 1.43 Frmulas equivalentes) Dos frmulas, y , son equivalentes si |= y |=.
Es decir, se requiere que una frmula sea consecuencia lgica de la otra (y viceversa). Para jar ideas, si
se satisface en 5 lneas de la tabla de verdad, cualquier consecuencia suya se satisfar en esas 5 lneas y quiz
en alguna ms. Pero se exige adems, que tambin la primera sea consecuencia de la segunda.
Estas dos restricciones slo se cumplen si ambas frmulas son verdaderas exclusivamente en las mismas 5
lneas. As, se poda haber partido de esta otra denicin.
Denicin 1.44 Frmulas equivalentes) Dos frmulas, y , son equivalentes si ) =) para
toda interpretacin
Notacin Escribiremos cuando ambas frmulas sean equivalentes y cuando no lo sean.
Sobre la tabla de verdad, dos frmulas equivalentes tienen exactamente los mismos valores de
verdad sobre cada lnea. Muy coloquialmente, son dos formas sintcticamente distintas de expresar
lo mismo (puesto que semnticamente son indistinguibles).
Propiedades A cualquier relacin binaria que es reexiva, simtrica y transitiva se le denomina
relacin de equivalencia. La que nos ocupa, (tener la misma tabla de verdad que), que representamos
con el smbolo , tiene esas propiedades:
Reexividad:
Simetra: si entonces
Transitividad: si y entonces
1.3. Conceptos semnticos bsicos 37
Recuerde que una relacin de equivalencia produce una particin en clases de equivalencia. La
tabla (tabl. 1.15) muestra algunas frmulas con dos letras proposicionales, agrupando las frmulas
equivalentes en la misma clase.
C
0
C
1
C
8
C
11
C
15
p q pp pq) pq q p) pq p q pq qq p pq
1 1 0 0 0 0 1 1 1 1 1
1 0 0 0 0 0 0 0 0 1 1
0 1 0 0 0 0 0 1 1 1 1
0 0 0 1 1 1 0 1 1 1 1
Tabla 1.15: Algunas frmulas de dos variables, agrupadas por clases de equivalencia
Para frmulas con dos letras proposicionales, slo hay 16 clases de equivalencia distintas:
C
0
. . . C
15
. En nuestra notacin, el subndice k de la clase C
k
resulta de leer las columnas como
si codicaran nmeros binarios (con el dgito ms signicativo arriba). Es fcil comprobar que las
frmulas con 3 letras proposicionales admiten 8 interpretaciones distintas, y por tanto, existen 2
8
clases de equivalencia distintas, desde C
0
a C
255
.
Conjuntos completos de conectivas
Cualquier frmula que contenga slo dos letras proposicionales, por muy compleja que sea, pertenece
a una (y slo una) de las 16 clases de equivalencia posibles. Es equivalente, entonces, a cualquier
frmula de esa clase.
La frmula ms simple de la clase C
8
es p q). De igual forma, si se hubieran denido 16
conectivas binarias, la frmula ms simple de cada clase sera de la forma pq), donde representa
cualquiera de estas 16 conectivas. La tabla (tabl. 1.16) muestra las 16 clases de equivalencia y un
posible smbolo para cada hipottica conectiva binaria.
Observe las clases C
7
y C
8
. Presentan valores de verdad complementarios. De hecho, para toda
clase existe otra complementaria. Se pueden buscar por simetra respecto al eje que separa C
8
y C
7
.
p q

c
0

c
1

c
2

p
c
3

c
4

q
c
5

c
6

c
7

c
8

c
9

q
c
10

c
11

p
c
12

c
13

c
14

c
15
1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
1 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Tabla 1.16: Todas las clases de equivalencia sobre frmulas con dos variables
Puesto que nuestro alfabeto contiene slo 4 conectivas binarias, es menos expresivo que otro que
contuviera las 16 posibles? No. Cualquier expresin de la forma ) puede escribirse equivalen-
temente como ). O una frmula como
p
) se puede escribir como ) ).
Sentaremos, sin demostracin, que cualquier frmula que contuviera alguna de las 12 restantes
conectivas puede expresarse equivalentemente como una frmula slo con las 4 primitivas del alfabeto
(ms la negacin). Evidentemente, a costa de aumentar la longitud de las frmulas.
38 Captulo 1. LGICA DE PROPOSICIONES
Es ms, algunas conectivas binarias primitivas pueden escribirse en trminos de otra (ms la ne-
gacin). A un conjunto de conectivas sobre las que se puede representar cualquier otra se le denomina
completo.
Teorema 1.45 Los conjuntos de conectivas { }, { }, { } son conjuntos completos de co-
nectivas. Los nicos conjuntos completos de conectivas con una sola conectiva son {} y {}.
Si el lector consulta textos diversos podr observar que en el alfabeto no siempre se utilizan todas
las conectivas empleadas en estas notas. Algunos sistemas lgicos slo reconocen como conectivas a
las de uno de estos sistemas completos. Las otras conectivas se denen como abreviaturas metalin-
gisticas de las primitivas. Este enfoque acorta las demostraciones inductivas y las deniciones por
recursin.
Clculo de equivalencias
Equivalencias bsicas La tabla 1.17 muestra algunas de las equivalencias bsicas de la lgica de
proposiciones. Puede utilizar cualquiera de estos pares para comprobar su dominio de las tablas de
verdad: salvo erratas, deben producir tablas iguales.
p p doble negacin

p p p p
p p
p p p idempotencia p p p
pq q p conmutatividad pq q p
pqr) pq) r asociatividad pqr) pq) r
ppq) p absorcin ppq) p
pqr) pq) pr) distributividad pqr) pq) pr)
pq pq) De Morgan pq) pq)
p q p q) q p) p q pq) pq)
p q pq) p q q p
Tabla 1.17: Equivalencias bsicas
Sustitucin y reemplazo El siguiente resultado relaciona la equivalencia entre dos frmulas con la
validez de una nica frmula.
Teorema 1.46 Dadas dos frmulas, y , son equivalentes si y slo si la frmula es una
tautologa.
Observe que la implicacin entre resultados se produce en ambos sentidos (si y slo si): si se
conoce que son equivalentes se puede armar que esa nica frmula bicondicional es vlida. Y, si
se facilita una frmula bicondicional (y adems se asegura que es vlida) entonces sus subfrmulas
izquierda y derecha, por separado, resultan ser equivalentes.
1.3. Conceptos semnticos bsicos 39
Teorema 1.47 Dadas dos frmulas equivalentes, , si se produce la misma sustitucin uniforme
en ambas, sus instancias por sustitucin resultan ser equivalentes:

.
Puesto que la sustitucin uniforme preserva la validez, si es vlida tambin lo ser su
instancia por sustitucin )

, es decir,

. Luego, de la validez de este bicondicional se


sigue

.
Importante: En la tabla de equivalencias bsicas, stas estn expresadas en trminos
de letras proposicionales. Pero se pueden sustituir uniformemente, preservando la equi-
valencia: es decir, que si p q pq tambin se verica que , para
todo par de frmulas.
Ejemplo 1.48 Partamos de la equivalencia
p q pq
y de la sustitucin
p) = t s) q) = pv)
Se obtiene entonces un par de expresiones equivalentes entre s (no necesariamente con las de partida):
t s) pv) t s) pv)
Recuerde que la sustitucin uniforme supone cambiar cada aparicin de una letra proposicional
por su frmula sustituta. Es posible denir otro tipo de sustitucin que no requiera cambiar cada
aparicin de la cadena sustituida. Para diferenciar esta operacin de la sustitucin uniforme, la deno-
minaremos reemplazo.
Denicin 1.49 Reemplazo) Sea , y X una frmula donde puede aparecer varias veces
como subfrmula. Si se reemplaza en X la subformula por (sobre una o varias apariciones, no
necesariamente en todas) la frmula Y resultante es equivalente a la X de partida.
Muy intuitivamente: si en un circuito electrnico aparece un componente en varias posiciones y
se reemplaza en una (o varias) por un componente equivalente (quiz con otro diseo interno, pero
con la misma relacin entrada-salida), el circuito global resultante es equivalente al circuito global de
partida.
La sustitucin uniforme preserva la equivalencia porque se produce en toda aparicin del ele-
mento sustituido (en ambas frmulas equivalentes). No requiere que el sustituido sea equivalente al
sustituyente.
El reemplazo preserva la equivalencia porque el elemento sustituyente es equivalente al sustituido.
Se produce sobre una frmula para generar una equivalente. No requiere que se produzca en toda
aparicin del sustituido.
Ejemplo 1.50 Partamos de la frmula
X = p q) p q) p)
y de la equivalencia
p q) q p)
entonces, la frmula
Y = p q) q p) p)
verica que
X Y
40 Captulo 1. LGICA DE PROPOSICIONES
Formas normales
Forma normal disyuntiva En una tabla de verdad donde slo se consideren las variables p, q y r,
la frmula =pqr es verdadera en una nica lnea:
p q r pqr
0 1 1 1
Si se considerase otra variable adicional s, la misma frmula sera verdadera en dos lneas:
p q r s pqr
0 1 1 1 1
0 1 1 0 1
Situmonos en el primer caso: la conjuncin utiliza todas las letras proposicionales consideradas
(negadas o no). Una conjuncin similar, como = p q r tambin ser verdadera en otra nica
lnea. As, la disyuncin de estas conjunciones ser verdadera exactamente en dos interpretaciones:
p q r )
1 1 0 0 1 1
0 1 1 1 0 1
Los resultados anteriores sugieren que cualquier frmula puede escribirse equivalentemente como
una disyuncin de estas conjunciones. Por ejemplo, de la frmula de la tabla (tabl. 1.18) no se
facilita su expresin sintctica: podra ser cualquiera de las expresiones equivalentes que producen
esa tabla de verdad. Una de esas expresiones equivalentes ser la disyuncin de las tres conjunciones
sealadas en la tabla: la forma normal disyuntiva de .
p q r

1 1 1 0
1 1 0 1 pqr)
1 0 1 0
1 0 0 1 pqr)
0 1 1 0
0 1 0 0
0 0 1 1 pqr)
0 0 0 0
Tabla 1.18: Forma normal disyuntiva de una frmula
Para ser ms precisos, a esta forma normal disyuntiva se le denomina completa: cada letra propo-
sicional aparece una vez y slo una. Toda frmula puede ser reescrita equivalentemente a esta forma
salvo las contradicciones.
Para poder expresar contradicciones es preciso relajar la completitud, permitiendo que algunas le-
tras falten e incluso que algunas se repitan. Observe que una forma disyuntiva con una sola conjuncin
como ppq) ya expresa una contradiccin.
Denicin 1.51 Forma normal disyuntiva) Una frmula est en forma normal disyuntiva si es de
la forma
1
. . .
n
, donde cada
k
es una conjuncin de literales.
Se denomina literal a una letra proposicional o a su negacin.
Una forma normal disyuntiva es una contradiccin si y slo si cada una de sus conjunciones
incluye una letra negada y no negada.
1.3. Conceptos semnticos bsicos 41
Forma normal conjuntiva Observe la Tabla (tabl. 1.19). Las frmulas
1
y
2
slo son falsas en
una nica lnea cada una. Luego, su conjuncin slo es falsa en esas dos lneas. Es una frmula ex-
presada en forma normal conjuntiva completa respecto al conjunto de letras proposicionales {p q r}
Toda frmula es expresable, equivalentemente, en esta forma completa, salvo las tautologas. De
forma dual a la exposicin anterior, jaremos una denicin de forma normal conjuntiva que incluya
a las completas y a otras (en particular, a las que permiten expresar tautologas). As, toda frmula
ser expresable en forma normal conjuntiva.
p q r
1
: pqr
2
: pqr
1

2

1
: pqr
2
: pqr
1

2
1 1 1
1 1 0 1 1 0 0
1 0 1
1 0 0
0 1 1 1 1 0 0
0 1 0
0 0 1
0 0 0
Tabla 1.19: Formas normales conjuntivas y disyuntivas
Denicin 1.52 Forma normal conjuntiva) Una frmula est en forma normal conjuntiva si es de
la forma
1
. . .
n
, donde cada
k
es una disyuncin de literales.
Una forma normal conjuntiva es una tautologa si y slo si cada una de sus disyunciones incluye
una letra negada y no negada.
Forma clausulada
Considere una forma normal conjuntiva

1
) . . .
n
)
A cada una de las disyunciones
k
se le denomina clusula. Como la conjuncin es conmutativa,
resulta que se obtiene una expresin equivalente si se vara el orden de las clusulas. Puesto que este
orden es irrelevante, se puede escribir la expresin como un conjunto de clusulas:
{
1
) . . .
n
)}
Recuerde que el concepto de conjunto no supone un orden entre sus elementos. Obviamente, para que
esta reescritura mantenga las propiedades de la forma original recordaremos que entre los elementos
de este conjunto (sus clusulas) se aplicaba una conjuncin.
De forma anloga, si nos centramos en una nica clusula

k
=
1
k
. . .
m
k
)
se puede tambin escribir como un conjunto de literales (recordando que estaban unidos por una
disyuncin). As, una frmula cualquiera se puede almacenar en un sistema como un conjunto de
clusulas, es decir, como un conjunto de conjuntos de literales:
{
1
) . . .
n
)} ={{
1
1
. . .
r
1
} . . . {
1
n
. . .
t
n
}}
A esta forma de expresin se le denomina forma clausulada de una frmula. Tambin se utiliza
este trmino, en algunos textos, como sinnimo de forma normal conjuntiva.
42 Captulo 1. LGICA DE PROPOSICIONES
Ejemplo 1.53 Sea la frmula
pqr) s t)
Entonces, su forma normal conjuntiva se obtiene:
pq) r) s t) pq) r) s t) ya que X Y X Y
pq) r) s t) ya que X Y) X Y)
pq) r) s t) ya que X Y) X Y)
pqr s t) asociatividad de (abuso de notacin)
Para la frmula de partida, su forma normal conjuntiva slo contiene una clusula, con cinco
literales. Su forma clausulada se puede escribir como:
{{p q r s t}}
Puede comprobar que la forma normal conjuntiva de p s q) es ps) pq). Y su forma
clausulada
{{p s} {p q}}
En el ejemplo previo, a partir de una frmula, se obtiene nalmente otra equivalente. Este resul-
tado se calcula, sin necesidad de utilizar tablas de verdad: la primera frmula es equivalente a una
segunda (y se justica por qu), sta segunda a una tercera, y as sigue una cadena de equivalencias
hasta llegar a la forma deseada. La transitividad de la equivalencia garantiza que la primera es equi-
valente a la ltima (en realidad, que todas son equivalentes: este clculo no se sale de la clase de
equivalencia de la frmula inicial).
El clculo (manual) de frmulas equivalentes es una habilidad operacional necesaria. Se facilita-
rn ejercicios sobre este punto. Estas notas se estn ciendo a resaltar los conceptos bsicos funda-
mentales, que se resumen en el prximo apartado.
Equivalencia, consecuencia, validez y satisfacibilidad
El concepto de equivalencia tiene conexiones formales con los otros conceptos semnticos expuestos:
consecuencia, validez e insatisfacibilidad.
Todos los resultados que siguen han ido apareciendo en la exposicin:
si y slo si |= y |=
si y slo si ) es una tautologa y ) es una tautologa
si y slo si ) es una tautologa
si y slo si )) es insatisfacible.
1.4 Sistemas deductivos
Los sistemas deductivos son de naturaleza sintctica, combinatoria. En general, constan de un con-
junto quiz vaco de frmulas especialmente sealadas, denominadas axiomas y de un conjunto deter-
minado de reglas de inferencia. El juego formal consiste en construir una secuencia nita de pasos, de
aplicaciones de esas reglas, que llamaremos demostracin o prueba. El inters de estas construcciones
reside en su conexin con el concepto semntico de consecuencia (o su expresin como insatisfacibi-
lidad).
1.4. Sistemas deductivos 43
Si un sistema es correcto, consistente o coherente, cada frmula derivada desde un conjunto de
premisas es consecuencia de ellas. Y si un sistema es completo, cualquier relacin de consecuencia
existente se puede llegar a explicitar como una derivacin, como una demostracin.
En estos apuntes no se ha abordado el anlisis formal de estas propiedades. Estn ms bien
enfocados a facilitar el uso de los sistemas descritos, garantizando su buen comportamiento. Le reco-
mendamos que se familiarice con los sistemas deductivos propuestos porque todos ellos se ampliarn
para el caso de la Lgica de Primer Orden.
1.4.1 Deduccin natural
Los sistemas de deduccin natural, sistema de tipo Gentzen, son quiz los que ms directamente
reejan nuestra propia manera de construir argumentos. Constan de varias reglas de inferencia y de
ningn axioma. Y permiten hacer suposiciones adicionales, de abrir lneas argumentales adicionales
que, cuando se cierran, aportan algo al ujo argumental principal.
Puesto que se pueden aplicar varias reglas distintas, su implementacin es ms complicada que la
de los otros dos sistemas abordados. No obstante, cuando se conoce la frmula que se pretende de-
mostrar, su estructura y la de las premisas casi determina alguna de las secuencias de reglas necesarias.
El resto es creatividad (humana o de silicio).
Conjunciones
Introduccin de la conjuncin Si se aceptan como verdaderas las dos siguientes frases: (p) hoy
es viernes, (q) son las cinco, el uso habitual de la conjuncin obliga a aceptar como verdadera la
frase nica (pq) hoy es viernes y son las cinco.
hoy es viernes p
son las cinco q
hoy es viernes y son las cinco pq
Observe que se genera una sentencia nal a partir de dos previas, con una forma determinada.
Esta forma garantiza que la frase construida es consecuencia de las anteriores.
p q)
r p)
p q) r p)
Eliminacin de la conjuncin Veamos otro proceso distinto de generacin, esta vez partiendo de
una nica frmula previa:
p q) r p)
p q)
O tambin:
p q) r p)
r p)
Compruebe en qu lneas de la tabla de verdad son verdaderas las frmulas previas: en todas ellas
(y quiz en alguna ms) ser verdadera la frmula generada. Esta opcin siempre es posible, aunque
44 Captulo 1. LGICA DE PROPOSICIONES
costosa. A partir de este punto se describe una alternativa sintctica, basada en clculo: respete
estrictamente la forma de generacin de nuevas frmulas y resultarn consecuencia de las de partida.
Hasta el momento se han propuesto 3 de estas reglas sintcticas. Nos referiremos a ellas como:
introduccin de la conjuncin (I ), eliminacin derecha (E
d
) y eliminacin izquierda (E
i
) de la
conjuncin.

E
d

E
i
En la gura (g. 1.8) se utilizan estas reglas para demostrar que de pqr) se deduce pr. La
expresin de partida (que suponemos verdadera) se denomina premisa. A partir de ella se deducen
tanto p (lnea 2) como qr) (lnea 3) por eliminacin de la conjuncin. En la lnea 4 se deduce r por
eliminacin de la conjuncin sobre 3: observe la explicacin E
i
3. Por ltimo, a partir de 2 y de 4,
por introduccin de la conjuncin se obtiene 5.
1 pqr) premisa
: p E
d
1
qr) E
i
1
r E
i
3
pr I 2 4
Figura 1.8: Deduccin natural. pqr) pr
Los nmeros que etiquetan cada lnea del argumento permiten linealizar la deduccin, que real-
mente tiene estructura de rbol (g. 1.9).
pr

I

5

E
d

pqr)

1

E
i


E
i

3
pqr)

1
Figura 1.9: rbol de la deduccin natural. pqr) pr
En este apartado aparece un nuevo smbolo distinto de (aunque esperamos que relacionado con)
|=. La relacin pq |= p es de carcter semntico: compruebe todas las interpretaciones donde ....
Mientras que pq p es de carcter sintctico, combinatorio: utilizando adecuadamente las reglas
del clculo se ha conseguido llegar a generar la frmula p.
1.4. Sistemas deductivos 45
Cada regla, de las 3 propuestas, es correcta, consistente o coherente puesto que toda frmula
deducida () es adems consecuencia (|=) de las premisas de la regla.
Cuando se arma que suponemos las premisas verdaderas no signica que sean tautologas. Sig-
nica que nos estamos restringiendo a las lneas de la tabla de verdad en que todas ellas coinciden en
ser verdaderas. En todas esas interpretaciones, las frmulas deducidas resultarn verdaderas.
Disyunciones
Introduccin de la disyuncin La introduccin de la disyuncin se acepta intuitivamente con faci-
lidad: si se admite que es verdad que llueve, tambin debe aceptarse llueve o hace viento.
llueve
llueve o hace viento
I
d

I
d

I
i
p q)
r s) p q)
I
i
La frmula nueva (cualquiera) que se introduce disyuntivamente puede hacerlo por la derecha
(I
d
) o por la izquierda (I
i
).
Eliminacin de la disyuncin Tambin existe otra regla denominada eliminacin de la disyun-
cin. El sistema propuesto se recuerda fcilmente: se dene una regla de introduccin y otra de
eliminacin para cada conectiva. Sin embargo, en este caso, el nombre eliminacin de la disyuncin
NO corresponde a su materializacin ms directa:
pq
p
NO
pq
q
En su lugar, considere esta introduccin:
1. pq): pago la hipoteca o pago el recibo del coche o ambos)
2. [p. . . r]: suponiendo que pago la hipoteca, entonces (bla,bla,bla), y entonces ..., conclusin:
no llego a n de mes.
3. [q. . . r]: suponiendo que pago el recibo del coche, entonces (quiza otro bla,bla,bla), conclu-
sin: no llego a n de mes.
Partiendo de que es verdadera la premisa disyuntiva p q), se supone (adicional y moment-
neamente) p. Con esta hiptesis adicional, razonando adecuadamente, se llega a r. Cerremos este
argumento opcional, es decir, dejemos de dar por supuesto p (y todo a lo que nos llevaba). Ahora
supongamos alternativamente q, que vuelve a llevarnos a r. En este caso, de la disyuncin pq) se
deduce r, con el auxilio de los dos argumentos opcionales mencionados:

.
.
.

.
.
.

E
46 Captulo 1. LGICA DE PROPOSICIONES
Ejemplo 1.54 Observe la gura (g. 1.10). Es un argumento con una nica premisa (lnea 1) que
intenta concluir la frmula de la lnea 7. Escriba slo ambas, dejando un hueco entremedias. Cuando
(1) sea verdadera no podrn dejar de serlo (2) y (3): as que las escribimos automticamente, por si
nos son tiles. Ahora bien, (3) es una disyuncin, presenta 2 caminos. con todo lo que ya s, desde
1 hasta 3, puedo llegar por ambos caminos a la misma conclusin (7)?
Para intentar probarlo, supongo primero que es verdadera q (que es verdadero el primer camino).
En este caso, como ya era verdadera p (lnea 2) tambin lo ser su conjuncin con q. En (6) se aade
disyuntivamente la frmula que se necesitaba para llegar a la (7) buscada.
Por el otro camino, supuesto que es r verdadera, se efecta un proceso parecido que acaba con-
cluyendo (6) en esa caja derecha. Yo no s qu camino es verdadero, slo s que (3) me garantiza que
uno de ellos lo es. Y eso garantiza que (7) lo es.
La frmula (7) est fuera del mbito de ambas cajas: es verdadera si la premisa lo es. Sin embargo,
pq (lnea 5, caja izquierda) se supone verdadera si lo es la hiptesis que abre la caja izquierda.
Observe que, dado el principio y el n, slo los pasos de las lneas 5-6 (en cada caja) requieren un
esfuerzo creativo para obtener el resultado jado.
1 pqr) premisa
: p E1
qr) E1
q suposic
pq) I 3 4
6 pq) pr) I 5
r suposic
pr) I 3 4
pq) pr) I 5
pq) pr) E3
Figura 1.10: Deduccin natural. pqr) pq) pr)
La dependencia entre expresiones del argumento anterior puede verse en el rbol de la gura (g.
1.11).
Ejemplo 1.55 Observe el argumento de la gura (g. 1.12). Utiliza de nuevo todas las reglas anterio-
res. Aqu, de nuevo, slo hay unas pocas lneas (5-6) que requieren un poco de creatividad.
Si se ja en la premisa y la conclusin de (g. 1.10) y (g. 1.12) ver que estn intercambiadas:
cada una se deduce de la otra. Esta puede ser una denicin sintctica de equivalencia. Puesto
que efectivamente las reglas usadas son correctas no hacen ms que reejar el hecho de que ambas
frmulas son semnticamente equivalentes.
Condicionales
Eliminacin del condicional La eliminacin del condicional (E) es una de las reglas de inferen-
cia con ms tradicin. Se conoce alternativamente como Modus Ponens y es tambin intuitivamente
inmediata.
Si presiono entonces se rompe p q
Presiono p
Se rompe q
1.4. Sistemas deductivos 47
pq) pr)

E

7

E

premisa

6

I

5
supos

premisa

1

I

supos

premisa

1
Figura 1.11: rbol de la deduccin natural. pqr) pq) pr)
1 pq) pr) premisa
: pq) suposic
p E2
q E2
qr) I 4
6 pqr) I 3 5
pr) suposic
p E2
r E2
qr) I 5
pqr) I 3 5
pqr) E1
Figura 1.12: Deduccin natural. pq) pr) pqr)
48 Captulo 1. LGICA DE PROPOSICIONES
Observe que cuando el condicional p q se supone verdadero slo se descarta una de las cuatro
lneas de su tabla de verdad. No se sigue ni se descarta que p sea verdadero o que q lo sea: slo que
no puede ocurrir simultneamente que p sea verdadero y q falso. Si a esta premisa se aade que otra
que arma que p es verdadero, necesariamente q debe serlo.
Introduccin del condicional De nuevo, esta es otra regla que no puede aplicarse tan directamente
como su nombre evoca. Corresponde a este esquema formal:

.
.
.


I
Si en el curso de un argumento se aventura una hiptesis adicional (), lo que se deduce a partir
de ella, en el mbito de su caja, se garantiza verdadero en tanto que lo sea. Cundo se puede cerrar
ese mbito? En cualquier momento, mediante introduccin de la implicacin.
Suponga que en el punto en que quiere cerrarse se haba llegado a derivar . En ese punto se
arma que es verdadera, siempre dependiendo de que lo sea. Es decir, en el argumento de esa
caja se ha demostrado (quiz con ayuda de frmulas previas a la caja), que si es verdadera entonces
no puede dejar de serlo. Entonces, el condicional es verdadero.
Observe que est ya fuera de la caja: no depende de la verdad de . Si es falso resultar
verdadero. Y si es verdadero, en la caja se ha demostrado que no puede dejar de ser verdadero.
Como esta derivacin puede haber utilizado frmulas externas previas, el condicional s depende de
que sean verdaderas las premisas de la lnea argumental exterior.
En resmen, si se abre una hiptesis adicional luego no puede cerrarse con un condicional cual-
quiera: el consecuente del mismo ser la ltima frmula efectivamente derivada en la caja. Los
siguientes ejemplos le ayudarn a ver la aplicacin correcta de esta regla de inferencia.
1 pq premisa
: qr premisa
p suposic
q E1 3
r E2 4
6 pr I 3 5
Figura 1.13: Deduccin natural. p q q r p r
Ejemplo 1.56 Considere primero el ejemplo de la gura (g. 1.15). Como se trata de derivar nal-
mente el condicional pq) r, conviene abrir una caja con la hiptesis adicional pq), el antece-
dente, y ver si se puede llegar a derivar internamente r, el consecuente. Y, en efecto, se consigue con
ayuda de las premisas.
El argumento de (g. 1.13) es muy parecido. Y el de (g. 1.14) abre una caja dentro de otra. Sus
cierres sucesivos, mediante introduccin de la implicacin, producen condicionales sucesivos.
Resulta particularmente interesante el ltimo ejemplo (g. 1.16): no existen premisas del argu-
mento, tan slo una suposicin que se descarga. La frmula resultante no depende de la verdad de
1.4. Sistemas deductivos 49
1 pq) r premisa
: p suposic
q suposic
pq) I 2 3
r E1
6 qr) I 3 5
pqr) I 2 6
Figura 1.14: Deduccin natural. pq) r p q r)
p, ni de la de las premisas (puesto que no hay). El lector puede comprobar que dicha frmula es una
tautologa: es verdadera en todo caso. Trate de derivar de forma anloga (con 2 cajas anidadas) la
tautologa p q qr)).
1 pqr) premisa
: pq) suposic
p E2
q E2
qr) E1 3
6 r E5 4
pq) r I 2 6
Figura 1.15: Deduccin natural. p q r) pq) r
1 p suposic
: pq I 1
ppq) I 1 2
Figura 1.16: Deduccin natural. p pq)
Negaciones
Restan cuatro reglas para completar la descripcin del sistema: introduccin y eliminacin de la
negacin, eliminacin de la contradiccin y eliminacin de la doble negacin.
Introduccin de la negacin Si de una suposicin adicional se deriva una contradiccin, puede
cerrarse el mbito de aqulla y concluir la negacin de la suposicin.
50 Captulo 1. LGICA DE PROPOSICIONES
Eliminacin de la negacin Dadas dos frmulas, donde una es negacin de la otra, se puede con-
cluir la contradiccin.

.
.
.

E
Eliminacin de la contradiccin De una contradiccin se puede concluir cualquier frmula.
Eliminacin de la doble negacin De una frmula doblemente negada se puede derivar dicha fr-
mula.

E
En este punto le recomendamos que haga una recopilacin, en una hoja en blanco, de las reglas
de inferencia propuestas. Preste atencin a las reglas que requieren abrir una o varias cajas. Si no
se quiere que la derivacin dependa nalmente de estas suposiciones, deber cerrarlas. Cada una de
estas reglas permite cerrar ese mbito de una forma determinada. En todo caso, en cualquiera de estos
mbitos puede utilizarse una frmula anterior, siempre que pertenezca a ese mbito o a uno que le
englobe (es decir, que no haya sido cerrado ).
Reglas derivadas
Cuando se utilizan frecuentemente las reglas propuestas se advierte que hay ciertos patrones que se
repiten. Observe el argumento de la gura (g. 1.17). Esta derivacin se puede producir en cualquier
punto de un argumento, no se precisa que las dos primeras frmulas sean las premisas.
De hecho, si desde un cierto punto del argumento se pueden utilizar dos frmulas como la 1 y la 2
(estn donde estn, mientras sean formalmente accesibles), ya se sabe que se puede derivar la frmula
6, repitiendo exactamente esos pasos.
1 pq premisa
: q premisa
p suposic
q E3 1
E2 4
6 p I 3 5
Figura 1.17: Deduccin natural. p q q p
Con el mismo argumento (g. 1.17) se puede derivar , para dos frmulas y
cualesquiera.
Como los pasos que llevan de 1 y 2 a 6 son conocidos y repetibles (y, de hecho, muy frecuentes),
se suelen obviar los pasos intermedios. Se justica entonces la derivacin diciendo que se ha utilizado
1.4. Sistemas deductivos 51
una determinada regla derivada, a la que se le asigna un nombre. En concreto, la regla del ejemplo
propuesto se suele denominar Modus Tollens.
1 pr) qs)
: qs)
pr) MT1 2
Para jar ideas, puede contemplar las reglas derivadas como lo hace con las subrutinas en progra-
macin.
1.4.2 Resolucin
Introduccin
Estrategia deductiva por refutacin Ya se resalt que exista una estrecha relacin entre conse-
cuencia y satisfacibilidad. De tal forma que, decidir si es consecuencia de un conjunto de frmulas
= {
1
. . .
n
} se puede reducir a otro problema: decidir si y pueden ser simultneamente
verdaderos.

1
. . .
n
|= si y slo si {} ={
1
. . .
n
} es insatisfacible
As, si desea comprobar que una frmula es consecuencia de otras, niguela e incorporla a esas
otras. Si resulta insatisfacible este nuevo conjunto, efectivamente exista aquella relacin de conse-
cuencia.
Constatacin sintctica de la insatisfacibilidad En general resulta difcil decidir si varias frmulas
complejas pueden (simultneamente) satisfacerse por alguna interpretacin. La operacin que se
propone facilita este proceso: si el conjunto de partida {} era insatisfacible, en algn momento
del clculo se evidencia claramente.
Para ello, la resolucin ampla este conjunto: va aadindole sucesivamente nuevas frmulas (me-
nos complejas). Pero todas estas frmulas se construyen a partir de las que hay en ese momento en
el conjunto. Y lo que es ms importante: este proceso no altera la satisfacibilidad. Si el conjunto
de partida era satisfacible, ninguna ampliacin por este mtodo produce un conjunto ampliado in-
satisfacible. Y si era insatisfacible, esta propiedad se mantiene en todo conjunto ampliado por este
mtodo.
Cmo se detecta la insatisfacibilidad? Si el conjunto inicial lo es, el proceso mencionado acaba
aportando una nueva frmula que slo aparece en este caso: la clusula vaca. De hecho, aparece si y
slo si el conjunto inicial {} es insatisfacible.
Requisitos formales del proceso El clculo que se menciona arriba se dene sobre frmulas en
forma normal conjuntiva. En otro caso no sabe cmo operar. Tanto las premisas como la negacin de
la supuesta consecuencia deben reescribirse equivalentemente en esta forma. Existe un procedimiento
que garantiza la expresin equivalente en esta forma de cualquier frmula proposicional.
A partir de la forma normal conjuntiva se puede denotar una frmula de manera ms compacta,
sin conectivas. Esta notacin se conoce como forma clausulada y es realmente la que se maneja en
este apartado.
52 Captulo 1. LGICA DE PROPOSICIONES
Forma clausulada
Denicin 1.57 Literal) Un literal es una frmula atmica o la negacin de una frmula atmica.
Es decir, son literales cada una de las siguientes seis expresiones: p, q, r, p, , . Y no son
literales las expresiones: p, r q, pq).
A cada literal l le corresponde un literal complementario l
c
. El complementario de un literal
positivo como p es p. Y el de un literal negativo como p es p.
Forma normal conjuntiva Una frmula como la siguiente est en forma normal conjuntiva:
pq) r qr p) r q)
Es decir, es una conjuncin de frmulas, cada una de las cuales es una disyuncin de literales. A
toda frmula proposicional se le puede hacer corresponder una frmula normal conjuntiva equivalente.
Para ello basta:
1. eliminar los bicondicionales, si los hubiera, mediante el reemplazo:
X Y X Y) Y X)
2. eliminar los condicionales, si los hubiera, mediante el reemplazo:
X Y X Y
3. introducir todas las negaciones hasta que afecten a frmulas atmicas:
X Y) X Y) X Y) X Y)
4. eliminar las dobles negaciones:
X X
5. reubicar correctamente las conjunciones y disyunciones:
X Y Z) X Y) X Z) X Y Z) X Y) X Z)
La demostracin de que es un proceso correcto requiere precisar un poco ms. De momento es
suciente si le permite calcular, a mano, la frmula normal conjuntiva equivalente a una dada.
Ejemplo 1.58 Una frmula normal conjuntiva equivalente a q st) puede calcularse como sigue:
q s t) q s t)) s t) q) X Y X Y) Y X)
qs t)) s t) q) X Y X Y
qs t) s t) q) asociatividad , abuso notacin
qs t) s t) q) X Y) X Y
qs t) s q) t q)) X Y) Z X Z) Y Z)
qs t) s q) t q) asociatividad , abuso notacin
En el penltimo paso, la aplicacin de la distributividad no corresponde exactamente al esquema
jado en el punto 5. Se ha utilizado implcitamente la permutacin conmutativa X Y Y X.
1.4. Sistemas deductivos 53
Ejemplo 1.59 Puede comprobar que una frmula normal conjuntiva equivalente a
p t p)) p pq))
resulta ser
pt p) p pq)
que puede simplicarse equivalentemente como:
p p) t) p p) q) t) pq) pq) pq)
Forma clausulada El valor de verdad de una frmula como p q r p) (dada una interpre-
tacin) no depende de la posicin de los literales, que pueden permutarse. Tampoco del correcto
emplazamiento de parntesis interiores, para determinar exactamente qu dos subfrmulas une ca-
da disyuncin. Es ms, tambin es independiente de la aparicin repetida de algunos literales en la
misma clusula.
Todo esto permite que este tipo de frmulas se puedan denotar como conjuntos de literales. As,
la frmula mencionada puede expresarse como el conjunto {p q r}. Recuerde que un conjunto no
supone secuencia alguna entre sus elementos y que tampoco es signicativa la enumeracin repetida
de un elemento: ese elemento pertenece o no pertenece al conjunto, sin ms.
Denicin 1.60 Forma clausulada) Una clusula C es un conjunto de literales C ={l
1
. . . l
n
}. Im-
plcitamente se suponen disyuntivamente unidos.
Una frmula en forma clausulada est escrita como un conjunto de clusulas {C
1
. . . C
k
}, impl-
citamente unidas por conjunciones.
Toda frmula en forma normal conjuntiva es fcilmente expresable en forma clausulada. Por
ejemplo,
pq p) r pt) se puede escribir como {{p q} {r p t}}
Se puede obtener una notacin un poco ms compacta si se denota p como p y simplemente se
yuxtaponen los literales de cada clusula. As, la frmula anterior se escribira como: {pq r p t}
El camino descrito permite representar una frmula cualquiera en notacin clausulada: como
conjunto de clusulas. En trminos de implementacin de estos sistemas deductivos, como listas de
clusulas (es decir, como listas de listas de literales).
Denicin 1.61 Satisfacibilidad de clusulas) La satisfacibilidad de las clusulas se dene como:
Una clusula C ={l
1
. . . l
n
} es satisfacible si y slo si la frmula l
1
. . . l
n
) es satisfacible.
La clusula vaca {} es insatisfacible.
Un conjunto de clusulas {C
1
. . . C
k
} es satisfacible si y slo si existe una misma interpretacin
que satisface a cada clusula del conjunto.
Recuerde que una clusula es un disyuncin implcita. Es, por lo tanto satisfacible si existe un
literal que se hace verdadero bajo cierta asignacin. En la clusula vaca no existe ningn literal que
pueda hacerla verdadera, luego es insatisfacible. Denotaremos a la clusula vaca como {} o como .
Para satisfacer un conjunto de clusulas basta encontrar una interpretacin que satisface al menos
un literal en cada clusula.
54 Captulo 1. LGICA DE PROPOSICIONES
Principio de Resolucin
Considere dos clusulas cualesquiera, por ejemplo:
{p q r} {s t r}
Tratemos de encontrar interpretaciones que satisfagan ambas clusulas. Para ello, recuerde que los
literales en cada una estn implcitamente unidos por disyunciones. As, en la primera, basta que
p sea verdadera para que lo sea toda la clusula. Entonces, jar que p y s son verdaderas produce
la satisfaccin de ambas clusulas (con independencia de los valores del resto de las variables). El
mismo resultado se produce si se ja que q es falsa y s es verdadera. O simplemente si se asigna el
valor verdadero a r, que aparece en ambas clusulas.
Considere ahora dos clusulas con una particularidad especial. Por ejemplo, la que presentan
{p q r} y {q t}
En ambas aparece la misma letra proposicional q, negada en una y no negada en la otra. Es decir, para
cierto literal l de una clusula, la otra contiene el literal complementario l
c
.
Tratemos, de nuevo, de encontrar interpretaciones que las satisfagan. En este caso no basta con
asignar un cierto valor a q, aunque la letra aparezca repetida. Si se arma que es falsa, se satisface
sin ms la primera clusula (pero no la segunda). Si se arma que es verdadera, slo se asegura la
satisfaccin de la segunda. Es decir, para un cierto valor de q se satisface slo una clusula: debe
existir al menos otro literal (distinto de q y de q) que produzca la satisfaccin de la otra clusula. En
este ejemplo, p debe ser verdadera o r, o t debe ser falsa.
Esta simple consideracin produce unos excelentes resultados. Observe la clusula {p r t}. Se
ha obtenido por unin de las dos anteriores salvo los literales q y q. Cualquier interpretacin que
satisciera a las dos clusulas generatrices satisface a la clusula generada.
Denicin 1.62 Principio de Resolucin) Sean X e Y clusulas tales que l X y l
c
Y. Se deno-
mina Resolucin a la regla:
X Y
X Y) {l l
c
}
Las clusulas X e Y se resuelven sobre l. A la clusula resultante se la denomina resolvente.
Teorema 1.63 El Principio de Resolucin preserva la satisfacibilidad. Esto es, si una asignacin
satisface un conjunto de clusulas, tambin satisface cualquier resolvente de dos de ellas.
Para jar ideas, suponga que se parte de un conjunto satisfacible de 6 clusulas y se genera (si
es posible) la resultante de dos de ellas. Entonces las 7 clusulas (la generada y las 6 previas) se
siguen satisfaciendo por las mismas interpretaciones que las originales. De nuevo, si de estas 7 clu-
sulas se vuelven a resolver dos, las 8 clusulas resultantes siguen siendo satisfechas por las mismas
interpretaciones originales.
Cuidado En las clusulas {p q} y {p q} se puede escoger el par de literales sobre el que
efectuar la resolucin. Una resolucin sobre p producira {q q} y una resolucin sobre q producira
{p p}. Puede comprobarse que una interpretacin como p) = 0 q) = 0 satisface tanto las dos
clusulas originales como sus resolventes.
Sin embargo, una resolucin simultnea sobre p y q producira la clusula vaca, que no se satisfa-
ce para la interpretacin que satisfaca a las clusulas generatrices. De hecho, ste es un uso incorrecto
de la regla de Resolucin, que dena el resolvente sobre un nico literal.
1.4. Sistemas deductivos 55
A partir de un conjunto de clusulas, una derivacin por resolucin es una secuencia nita de
clusulas, donde cada una de ellas es bien una de la clusulas de partida o bien la resolvente de dos
previas.

qr

pq

pr

qr

Figura 1.18: rbol de la resolucin {pq pr qr r}


1 {p q}
: {p r}
{q r}
{r}
{q r} 1 2)
6 {q} 3 4)
{r} 6 5)
8 {} 4 7)
Figura 1.19: Una derivacin de la clusula vaca
Teorema 1.64 Consistencia y Completud de la Resolucin) Un conjunto no vaco de clusulas es
insatisfacible si y slo si existe a partir del mismo una derivacin por resolucin de la clusula vaca.
Como de todos los sistemas deductivos, la consistencia garantiza la correccin de las reglas: que
todo lo que se va obteniendo es consecuencia de lo anterior. Algo ms complicado generalmente de
demostrar es la completud de un sistema: dame cualquier consecuencia de un conjunto de premisas
y encontrar una derivacin de la misma en este sistema.
Cuando se aborda indirectamente el concepto de consecuencia, via insatisfacibilidad, la consis-
tencia y completud toman una forma como la del teorema previo. La mencin a la clusula vaca es
especca de este sistema. De los dos sentidos del bicondicional si y slo si trate de ver cul se
reere a la consistencia (lo que hago, lo hago correctamente) y cul a la completud (todo lo que es
necesario ser hecho, se puede hacer).
Ejemplo 1.65 Se quiere comprobar si := r es consecuencia lgica de , donde = {p q p
r q r}. O, equivalentemente, si {} es insatisfacible. Puesto que el sistema es completo, si
efectivamente este conjunto es insatisfacible, existir una derivacin de la clusula vaca a partir del
mismo.
56 Captulo 1. LGICA DE PROPOSICIONES
Escribamos en forma clausulada cada premisa y la negacin de la supuesta conclusin. Cada una
de estas frmulas se expresa como una nica clusula. As, el conjunto inicial de clusulas es
{{p q} {p r} {q r} {r}}
El rbol de la gura (g. 1.18) muestra el proceso de resolucin. Observe que una de las clusulas
(r) se ha utilizado dos veces. Una linealizacin de este proceso se encuentra en la gura (g. 1.19).
Ejemplo 1.66 Consideremos un conjunto ={
1

2

3
} con las siguientes frmulas:
1.
1
:= p qr)
2.
2
:=s t)
3.
3
:= q s t)
Se quiere comprobar si :=p es consecuencia lgica de . O, equivalentemente, si {}
es insatisfacible. Puesto que el sistema es completo, si efectivamente este conjunto es insatisfacible,
existir una derivacin de la clusula vaca a partir del mismo.
Escribamos en forma clausulada cada premisa y la negacin de la supuesta consecuencia:
1.
1
:={{p q} {p r}}
2.
2
:={{s} {t}}
3.
3
:={{q s t} {s q} {t q}}
4. :={{p}}
Ahora en este conjunto de frmulas algunas producen ms de una clusula. Entre todas las fr-
mulas se han producido 8 clusulas. Recuerde que las clusulas estn implcitamente unidas entre s
por conjunciones. En denitiva, las cuatro frmulas sern simultneamente satisfacibles si y slo si
lo son las 8 clusulas (por separado, sin importar qu frmulas las produjo).
En la gura (g. 1.20) se puede encontrar una derivacin que conrma que el conjunto inicial era
insatisfacible.
Clusulas de Horn
Considere la frmula p q r) s. En ciertas aplicaciones, a este tipo de frmulas se les deno-
mina reglas. Con varias de estas reglas puede tratar de modelizar una mquina expendedora o el
comportamiento de un programa.
Supuesta verdadera una regla como pqr) s, si se verican adems las tres frmulas p, q y
r, no puede dejar de ser verdadera s.
Escribamos ahora esta regla en forma normal conjuntiva o en forma clausulada:
pqr) s pqr) s pqr s)
Observe que las frmulas atmicas del antecedente aparecen como literales negativos y las del
consecuente como literales positivos. Recorramos el camino inverso desde esta otra frmula, con dos
literales positivos:
a
1
a
2
a
3
c
1
c
2
) a
1
a
2
a
3
) c
1
c
2
) a
1
a
2
a
3
) c
1
c
2
)
1.4. Sistemas deductivos 57
1 {p q}
: {p r}
{s}
{t}
{q s t}
6 {s q}
{t q}
8 {p}
{q} 8 1)
1o {r} 8 2)
11 {s t} 9 5)
1: {t} 11 3)
1 {} 12 4)
Figura 1.20: Una derivacin de la clusula vaca
Denicin 1.67 Clusulas de Horn) Una clusula de Horn es una clusula con, a lo sumo, un literal
positivo.
Ejemplo de clusulas de Horn son:
1. {p q r s}
2. {p q}
3. {s}
A las del primer tipo se le conoce como reglas y a las del ltimo como hechos. Las del segundo
tipo son equivalentes a un condicional como pq) .
Analizaremos ms en detalle las clusulas de Horn cuando se aborde la resolucin en Lgica de
Primer Orden. Baste en este momento saber que resultan especialmente tiles no slo porque facilitan
una representacin legible e intuitiva de ciertos sistemas sino porque la resolucin con clusulas de
Horn facilita la labor computacional.
1.4.3 Tablas semnticas
Las tablas semnticas tambin se denominan tablas analticas y ms comnmente tableaux (tableau,
en singular).
Introduccin
Estrategia deductiva por refutacin Las tablas semnticas proporcionan un medio sintctico de
investigar la satisfacibilidad de un conjunto. Todo lo que se mencion en (1.4.2) sobre la relacin
entre consecuencia y satisfacibilidad es aplicable en este punto.
58 Captulo 1. LGICA DE PROPOSICIONES
As, si desea comprobar que una frmula es consecuencia de otras, niguela e incorporla a esas
otras. Si resulta insatisfacible este nuevo conjunto, efectivamente exista aquella relacin de conse-
cuencia.
Constatacin sintctica de la insatisfacibilidad De nuevo, si el conjunto de partida {} era
insatisfacible, en algn momento del clculo se evidencia claramente.
Intuitivamente, las frmulas del conjunto inicial se estructuran como rbol. En particular como un
rbol muy lineal, con una sola rama. Existen dos tipos de reglas de inferencia y ambas aaden nodos
al rbol: una, linealmente, y otra produciendo una bifurcacin binaria. La satisfacibilidad de un rbol
se puede comprobar en cualquier momento, considerando la satisfacibilidad de cada rama. Existen
indicadores sintcticos que lo explicitan.
De nuevo, la clave de estas operaciones consiste en la preservacin de la satisfacibilidad. Cada
aplicacin de una regla ampla el rbol sin modicar la satisfacibilidad. Si el rbol original (las
frmulas de partida) eran satisfacibles as resultar el rbol ampliado en todo momento. Y si eran
insatisfacibles, se llegar a constatar sintcticamente en algn momento.
Notacin uniforme
Considere la frmula pq). Una interpretacin la satisface si y slo si satisface a sus componentes
conjuntivos. Es decir,
pq) es satisfacible si y slo si {p q} es satisfacible
La frmula propuesta era evidentemente conjuntiva. Otra frmula como p q) se puede
fcilmente reescribir de forma equivalente como una frmula conjuntiva. En particular como p
q). Y se satisfara, de nuevo, si y slo si se satisfacen simultneamente sus componentes.
Dualmente, una frmula disyuntiva como pq) se satisface si y slo si se satisface alguna de
sus dos frmulas inmediatas. Otras frmulas, no explcitamente disyuntivas como p q) tambin
se puede reescribir equivalentemente como pq).
Vamos a jar el desarrollo que se persigue con esta introduccin. Observe la tabla en (g. 1.21).
Cada frmula de la izquierda es equivalente a la conjuncin de sus componentes
1
y
2
. Y cada
frmula , a la disyuncin de sus componentes
1
,
2
.
Tanto en un caso como en otro, las componentes son subfrmulas de la frmula principal. Y a
partir slo de ellas y de sus negaciones se construye una conjuncin o una disyuncin equivalente a la
frmula dada.

1

2

1

2
X Y X Y X Y) X Y
X Y) X Y X Y X Y
X Y) X Y X Y X Y
X Y) X Y X Y X Y
X Y) X Y X Y X Y
X Y X Y X Y) X Y
X Y X Y X Y) X Y
X Y X Y X Y) X Y
Figura 1.21: Notacin uniforme
1.4. Sistemas deductivos 59
En las tres primeras lneas se utilizan las conectivas bsicas que se jaron en el alfabeto. Las
cinco lneas restantes utilizan otras conectivas binarias que se podan haber incorporado igualmente
al alfabeto. Si se asume esta notacin, incluso utilizando todas estas conectivas, cada frmulas es
simplemente de tipo o de tipo . Y, recursivamente, cada una de sus subfrmulas es de uno de estos
dos tipos.
Ni el bicondicional ni su negacin (la disyuncin exclusiva) se pueden escribir como una con-
juncin o disyuncin de sus subfrmulas (negadas o no). Por tanto, no se considerarn conectivas
primarias del lenguaje sino abreviaturas.
Tableaux: denicin
Ejemplo 1.68 Observe la gura (g. 1.22) considerando que inicialmente slo consta del nodo 1.
Esto es as porque el conjunto de frmulas iniciales analizado consta de una nica frmula: p
qr)). Luego se construye un rbol A que consta de ese nico nodo.
Puede comprobarse que la frmula analizada es de tipo , en concreto X Y). Expandamos
el rbol A con dos nodos ms:
1
(nodo 2) y
2
(nodo 3). El resultado es otro rbol A

: una rama
compuesta por tres frmulas que son satisfacibles por las mismas interpretaciones.
La frmula del nodo 3 puede an expandirse. Es una frmula de tipo (disyuntiva), y por tanto
para su satisfacin basta que una de las dos componentes se satisfaga. Representemos ese hecho
bifurcando el rbol en ese punto terminal. El resultado es el rbol A

nal que se observa en la gura


(g. 1.22).
Con las consideraciones anteriores, la frmula inicial se satisface si y slo si se satisfacen todas
las de la rama 1-4 o las de la rama 1-5. Cuando se recorren, tanto una como otra, no hay seales
evidentes de que tales frmulas no puedan ser satisfechas a la vez. De hecho, para que la rama 1-4 se
satisfaga basta considerar q falsa y p verdadero. Y en la rama 1-5, r falso y p verdadero.
1. p qr))
2. p

3. qr)

4. q

5. r

Figura 1.22: Tableau de p qr))


Ejemplo 1.69 La gura (g. 1.23) inicialmente constaba slo de los nodos 1 y 2. Se pretende analizar
la satisfacibilidad del conjunto formado por esas dos frmulas.
Nos situaremos en el nodo 2, por ser el extremo actual de ese rbol. Y aplicaremos all la expan-
sin de una de esas dos frmulas. En concreto, escogemos expandir la frmula 2 (poda haber sido la
1). La frmula 2 es de tipo y produce los nodos 3 y 4.
Nos situamos en el nodo 4 y expandimos otra frmula. En este caso, la 1, que es de tipo . Como
la satisfaccin de esta frmula puede venir por un lado o por otro, se produce la bifurcacin de los
nodos 5 y 6. En este punto, las frmulas iniciales son (simultneamente) satisfacibles si y slo si lo
son todas las frmulas de la rama 1-5 o todas las frmulas de la rama 1-6.
60 Captulo 1. LGICA DE PROPOSICIONES
Recorriendo las frmulas de la rama 1-5 se observa que una de las frmulas es p mientras otra
es p. Luego la satisfacibilidad simultnea de todas las frmulas de esa rama queda descartada (se
marca su extremo). Parafraseando a Bogart, siempre nos quedar Pars, que en este caso es la otra
rama: el conjunto inicial es satisfacible si y slo si lo es esta rama.
Como an se pueden expandir ms frmulas, nos situamos en 6 y lo hacemos. En concreto se
expande la propia frmula 6, que produce los nodos 7 y 8 por ser de tipo conjuntivo. De nuevo,
recorriendo esta rama se encuentra uno con r y r y se pierde, por ltimo, la esperanza, que es lo
ltimo que se pierde.
El conjunto formado por las dos frmulas iniciales no es satisfacible.
1. p qr))
2. r p

3. r

4. p

5. p

6. qr)

7. q

8. r

Figura 1.23: Tableau de {p qr) r p}


Denicin 1.70 Tableau de un conjunto de frmulas) Sea {
1
. . .
n
} un conjunto de frmulas.
Entonces el rbol formado por la nica rama
1
. . .
n
es un tableau A para este conjunto.
Si A es un tableau para ese conjunto y A

resulta de aplicar a A alguna de las reglas de expansin


de tableaux, entonces A

es un tableau para ese conjunto.


Falta precisar cules son las reglas de expansin, dnde y cmo se puede expandir un rbol y si
existe un nal determinado para este proceso.
Las reglas de expansin son las que se muestran en la tabla (tabl. 2.5). Dado un rbol, se escoge
una rama cualquiera del mismo y una frmula de esa rama que pueda expandirse, que no sea un
literal. La expansin se produce en el terminal de esa rama: una bifurcacin si la frmula escogida
era disyuntiva o la secuencia de dos nodos si era conjuntiva.
Denicin 1.71 Tableau cerrado) Una rama se dice cerrada si ocurren en ella tanto una frmula
X como una frmula X, o si ocurre la frmula . Est atmicamente cerrado si la frmula X es
atmica o si ocurre .
Un rbol se ha cerrado si se han cerrado todas sus ramas. Cuando todos los cierres son atmicos
se dice que el rbol se ha cerrado de forma atmica.
1.4. Sistemas deductivos 61
X
X

1
|
2
Tabla 1.20: Reglas de expansin de un tableau
Observe que las reglas de expansin son no deterministas. Se puede escoger la rama y la frmula
siguientes que se van a expandir. Esta opcin obliga a plantearse si existen estrategias de eleccin,
heursticas, ms ecientes que otras. En efecto, por regla general, trate de expandir todas las frmulas
primero.
Previa a esta preocupacin por la complejidad, conviene jar si el proceso para en algn momento.
No hay nada en las deniciones que impida expandir la misma frmula una y otra vez sobre una
rama, puesto que no se elimina. Afortunadamente, para la lgica proposicional abordada, basta utilizar
una nica vez cada frmula para garantizar el cierre del tableau (si es que debe cerrarse). No ocurra
as en la Resolucin.
El sistema descrito es consistente y completo en los mismo trminos con que se enunci para
Resolucin: un conjunto es insatisfacible si y slo si existe un tableau cerrado del mismo.
Bibliografa complementaria
Entre la bibliografa inicial en castellano, sin nimo de ser exhaustivos, puede consultar [Badesa et
al. 98], [Garrido 95] o [Deao 93] como primeras lecturas. Son textos enfocados hacia alumnos
de losofa pero le facilitarn una buena compresin de la semntica y de la formalizacin del len-
guaje natural. Ms orientados al uso de la lgica en computacin, puede considerar [Cuena 85]
[Kowalski 86]
En [Huth y Ryan 2000], [Ben-Ari 90] [Burris 98] puede encontrar una buena introduccin
a la lgica de proposiciones, desde una perspectiva aplicada. Una presentacin ms formal puede
encontrarse en [Dalen 97] o en [Mendelson 97].
Los sistemas de deduccin natural se encuentran claramente descritos en [Broda et al., 94]
[Huth y Ryan 2000]. En [Fitting 96] se describe la implementacin de sistemas basados en resolucin
o en tableaux, con especial nfasis en stos.
ctividades y evaluacin
El alumno dispone de ejemplos y actividades en el grupo de tutorizacin telemtica del curso, as
como exmenes resueltos de aos pasados.
62
Captulo 2
LGICA DE PREDICADOS DE
PRIMER ORDEN
Resumen
Este captulo extiende el lenguaje de la Lgica de Proposiciones mediante la introduccin de los cuan-
ticadores (todos los ...) y la explicitacin de propiedades y de relaciones entre trminos (sujetos
relacionados). La sintaxis es ahora ms compleja pero mucho ms expresiva.
Acorde con esta ampliacin sintctica, tanto los objetos matemticos necesarios para interpre-
tar una expresin como su proceso de evaluacin son ahora ms complejos. Es preciso ahora estar
pendiente de ms detalles, en particular de la posicin relativa de las variables respecto a los cuan-
ticadores (si existen) que las referencian.
Como contrapartida, se dispone de un lenguaje y de una semntica sobre la que se est edicando
(con algunas limitaciones) gran parte de la matemtica y de las teoras formalizadas. Desde el punto
de vista computacional, la lgica de predicados es la base de los procesos de representacin y de
razonamiento. A partir de aqu han derivado otros sistemas particulares, generalmente por razones
de eciencia.
Todos los conceptos semnticos bsicos del captulo anterior se pueden reformular en ste. Des-
graciadamente aqu, incluso para la frmula ms sencilla existen innitas representaciones posibles.
Resultan ahora (salvo casos particulares) inabordables los procedimientos de decisin que requeran
un recorrido exhaustivo por todas las interpretaciones. Los sistemas deductivos se convierten en la
nica opcin general posible, siempre que se demuestren correctos y completos.
Objetivos
El uso correcto de los diversos lenguajes de primer orden es el primer objetivo. No obstante, es difcil
manipular con soltura uno de estos lenguajes sin tener clara su semntica. As, estos dos objetivos
bsicos se realimentan en su proceso de consolidacin.
El siguiente objetivo debiera ser la compresin y uso de (al menos) los sistemas basados en Reso-
lucin, ampliamente utilizados en Computacin. Adicionalmente, los sistemas basados en Tableaux
se estn imponiendo como una eciente alternativa de implementacin.
En el estado actual de estos apuntes an no se han abordado las estrategias de implementacin.
63
64 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
Metodologa
Trabaje con lenguajes de primer orden progresivamente ms complejos. Primero, slo cuanticadores
y predicados mondicos (luego didicos, etc.) Introduzca posteriormente el uso de funciones para
referirse a ciertos sujetos, es decir, como trminos (aparte de las variables y constantes). Por ltimo,
introduzca la igualdad en su lenguaje.
En cada una de estas etapas, procure cuidar la correcta generacin e interpretacin de frmulas
(as como de sus rboles sintcticos). Y ponga un especial cuidado en encontrar tanto interpretacio-
nes que satisfagan sus expresiones como interpretaciones que no las satisfagan (si es posible).
Por ltimo, en los sistemas basados en Resolucin y Tableaux recuerde, de la lgica de propo-
siciones, que facilitan la identicacin de conjuntos de frmulas insatisfacibles. Ahora, en estos
procesos es importante no introducir espreamente la insatisfacibilidad por una incorrecta manipu-
lacin de los pasos intermedios. En particular, tenga cuidado con los procesos que requieren una
particularizacin de un caso general: si no se siguen las restricciones sobre la eleccin de esos suje-
tos particulares (constantes, trminos unicables ...) puede armarse como insatisfacible un conjunto
de frmulas que no lo era. O perderse indenidamente en intentos vanos de conrmacin, incluso
aunque s pueda llegarse sintcticamente a la misma.
2.1 Sintaxis
2.1.1 Lenguajes de primer orden
Alfabetos
Todos los lenguajes de Lgica de Primer Orden utilizan un conjunto comn de smbolos. Adems de
este conjunto, cada lenguaje utiliza algunos smbolos propios. Los smbolos propios de cada lenguaje
determinan qu constantes, funciones y relaciones considera.
Denicin 2.1 Alfabeto) El alfabeto de un lenguaje de Primer Orden incluye:
smbolos comunes:
variables: Var ={x
1
x
2
x
3
. . .}
conectivas: { }
cuanticadores: { }
smbolos de puntuacin: parntesis y comas
(smbolo de igualdad: {})
smbolos propios:
su conjunto de constantes: ={c
1
c
2
. . .}
su conjunto de funciones: F ={f
1
f
2
. . .}
su conjunto de relaciones: R ={R
1
R
2
. . .}
Notacin Se denomina A al conjunto de smbolos comunes, S al de smbolos propios y A
S
al alfabeto
resultante. Cada eleccin de S determina un lenguaje: se denotar como LS) LR F ).
Los conjuntos , F y R se escogen independientemente: un lenguaje puede o no contener constantes, o
funciones o relaciones. Un lenguaje sin relaciones propias debe, al menos, utilizar la relacin de igualdad.
2.1. Sintaxis 65
Toda funcin y toda relacin tienen asignado un nmero n. Una funcin o relacin n-dica o n-aria se
aplica sobre una n-tupla de trminos: Rt
1
. . . t
n
).
No todos los lenguajes utilizan la relacin de igualdad. Por su especial tratamiento semntico convena
excluirla del conjunto R . En los lenguajes con igualdad, se utilizar excepcionalmente la notacin inja (t
1
t
2
)
en vez de la preja t
1
t
2
).
Al cuanticador (lase para todo) se le denomina universal y al cuanticador (existe), existencial.
En las exposiciones tericas, cuando son muy pocos los smbolos requeridos, se utilizan como constantes
las letras iniciales del alfabeto latino {a b c d . . .}, las letras nales como variables {. . . u v w x y z} y letras
intermedias {f g h . . .} como funciones. Para las relaciones se usarn letras maysculas.
Ejemplo 2.2 Para representar y analizar el conjunto de nmeros naturales se requieren, al menos, una
constante y una funcin. La constante ja el primer nmero (el que no es sucesor de otro) y la funcin
proporciona el sucesor de cada nmero.
Para desarrollar una teora sobre grafos basta un lenguaje con una nica relacin binaria (la rela-
cin entre nodos). En principio, no se precisa de smbolos constantes ni de funciones.
Las ecuaciones son relaciones de igualdad entre trminos: t
1
t
2
. La lgica ecuacional estudia
este fragmento de la lgica de primer orden, donde la nica relacin precisa es la de igualdad. Los
trminos se construyen a partir de variables, constantes y funciones.
Lenguajes
Suponga jado un cierto alfabeto A
S
. Todas las deniciones y resultados que siguen se restringen
a ese alfabeto. As, los trminos y frmulas sern expresiones sobre este alfabeto; y las constantes,
funciones y relaciones requeridas en su denicin deben pertenecer a este alfabeto. En las escasas
ocasiones en que se consideren varios alfabetos, se avisar explcitamente.
Denicin 2.3 Trmino) Un trmino es una expresin obtenida por aplicacin de las siguientes re-
glas:
1. cada constante c es un trmino
2. cada variable x es un trmino
3. si f es una funcin n-aria y t
1
. . . t
n
son trminos, entonces f t
1
. . . t
n
) es un trmino
Notacin El conjunto de todos los trminos se denotar como Term.
Denicin 2.4 Frmula atmica) Una frmula atmica es una expresin de la forma:
Rt
1
. . . t
n
) , donde R es un smbolo relacional n-ario y t
1
. . . t
n
son trminos
En los lenguajes con igualdad tambin es una frmula atmica t
1
t
2
), donde t
1
y t
2
son trminos.
Asimismo en los lenguajes que utilicen los smbolos y (que se pueden entender como conectivas
0-arias), ambas frmulas sern frmulas atmicas.
Notacin Al conjunto de todas las frmulas atmicas se le denominar Atom.
Denicin 2.5 Frmula) Una frmula es una expresin obtenida por aplicacin de las siguientes
reglas:
66 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
1. toda frmula atmica es una frmula
2. si es una frmula entonces ) es una frmula
3. si y son frmulas entonces ) es una frmula, para toda conectiva binaria
4. si es un frmula y x una variable entonces x) y x) son frmulas
Notacin El conjunto de todas las frmulas se denotar como Form.
xRx c) P f y))))
Rx c) P f y)))

Rx c)

P f y))

f y)

(a) rbol sintctico



x

(b) rbol, ms esquemtico


Figura 2.1: Frmula de Primer Orden: rbol sintctico
Ejemplo 2.6 En la gura (g. 2.1) se representa el rbol sintctico de la frmula xRx c)
P f y)). Se han marcado echas ascendentes para resaltar el proceso de generacin:
x (variable) y c (constante) son trminos; si R es un smbolo relacional didico, Rx c) es una
frmula atmica.
y es un trmino; si f es un smbolo mondico de funcin, f y) es un trmino; si P es un smbolo
relacional mondico, P f y)) es una frmula atmica.
el condicional de dos frmulas es una frmula: Rx c) P f y)))
la cuanticacin de una frmula es una frmula: xRx c) P f y))))
En la subgura derecha se han enmarcado con un crculo los nodos que representan una frmula. El
resto de los nodos representan trminos.
Ejemplo 2.7 Todas las expresiones siguientes son trminos, no frmulas: x, z, c, f x), f c), gx y),
gx c), g f y) x), hx c gx y) f z)). Trate de expresar el rbol sintctico de este ltimo trmino.
Los trminos son los sujetos, los individuos citados en nuestras frases formales. Sobre ellos no
se podr armar si son verdaderos o falsos, slo tendr sentido determinar quines son.
Ejemplo 2.8 Todas las expresiones siguientes son frmulas:
2.1. Sintaxis 67
Px), Qy), Px) Qy))), Pc) Rx y)) Qy))
P f x)) Q f c)))), Rgx f y)) f c))
xPx) Qy))), xPx) yQy))), yxRgx f y)) f c))
Asegrese de que puede expresar el rbol sintctico de cualquiera de estas frmulas. Los anidamientos
relativos de los parntesis facilitan la determinacin de los nodos hijo.
2.1.2 Induccin y recursin
Cada lenguaje de primer orden tiene una estructura inductiva. Ya se consider esta estructura en
el estudio de los lenguajes proposicionales. Recuerde que permita enunciar deniciones de manera
concisa, recursiva, sobre el conjunto innito de frmulas. Tambin facilitaba un mecanismo de prueba,
por induccin estructural, de propiedades de estas frmulas. Estrictamente, en los lenguajes de primer
orden hay dos conjuntos inductivos: el de trminos y el de frmulas.
Denicin 2.9 Principio de induccin estructural) Para demostrar que todos los trminos de un
lenguaje de primer orden tienen la propiedad P basta demostrar que:
1. toda variable tiene la propiedad P
2. toda constante del alfabeto tiene la propiedad P
3. si los trminos t
1
. . . t
n
tienen la propiedad P y f es una funcin n-aria del alfabeto, entonces
f t
1
. . . t
n
) tiene la propiedad P
Para demostrar que todas las frmulas tienen la propiedad P basta demostrar que:
1. toda frmula atmica tiene la propiedad P
2. si la frmula tiene la propiedad P, entonces ) tiene la propiedad P
3. si las frmulas y tienen la propiedad P, entonces ) tiene la propiedad P
4. si la frmula tiene la propiedad P y x es una variable, entonces
tanto x) como x) tienen la propiedad P
El Principio de Induccin estructural puede demostrarse a partir del conocido Principio de Induc-
cion sobre nmeros naturales: aplicndolo sobre la longitud de cada expresin, sobre su nmero de
smbolos. Entre las propiedades de inters que pueden demostrarse inductivamente resaltaremos la
unicidad en la descomposicin sintctica de un trmino y de una frmula.
Teorema 2.10 Anlisis sintctico nico) Cada trmino pertenece a una y slo una de las siguientes
categorias:
1. es una variable
2. es una constante de A
S
3. es de la forma f t
1
. . . t
n
)
para una funcin n-aria f de A
S
y trminos t
1
. . . t
n
) unvocamente determinados
68 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
Cada frmula pertenece a una y slo una de las siguientes categorias:
1. es atmica
2. es de la forma ), para una determinada
3. es de la forma ), para , y conectiva binaria determinadas
4. es de la forma x), o de la forma x)
para cuanticador, variable y frmula determinados
Este resultado permite escribir el rbol de un trmino o de una frmula, garantizando que tendr
estructura de rbol y que a cada frmula le corresponde exactamente uno.
Observe que en el ejemplo (ej. 2.6), para generar una frmula, se parta de varios nodos inconexos
y se ascenda, intentando construir un rbol. Ahora, de arriba abajo, el proceso de anlisis garantiza
que, si la expresin es un trmino o una frmula, se produce un rbol.
2.1.3 Subfrmulas
Denicin 2.11 Subfrmulas) Dada una frmula , el conjunto de todas sus subfrmulas se dene
recursivamente como:
subf orm) =

{} atmica
{}sub f orm) = )
{}sub f orm) sub f orm) = )
{}sub f orm) = x)
{}sub f orm) = x)
Las subfrmulas de una frmula dada son todas las que aparecen en su rbol sintctico, incluida
ella misma. Observe que no todos los nodos de este rbol representan frmulas: cada frmula atmica
tiene por subrbol el rbol de todos sus trminos.
Ejemplo 2.12 En la gura (g. 2.2), la frmula analizada a la izquierda, tiene 4 subfrmulas: todas
las de sus nodos salvo los trminos x, c, f y), y. La frmula analizada a la derecha tiene 5 subfrmulas,
todas las de sus nodos salvo los trminos: x, y, y.
Esta denicin (def. 2.11) es un ejemplo de denicin recursiva sobre el conjunto de frmulas. En
particular, dene una funcin sub f orm : FormPForm) de frmulas en subconjuntos de frmulas.
Observe que la denicin de sub f orm) requiere 5 funciones previas que facilitan la imagen de
segn se encuentre en una de los 5 categoras en que puede estar. En realidad, son ms las categoras:
todas la conexiones binarias se han condensado en una lnea y las dos opciones de frmulas atmicas
tambin. Una funcin recursiva que, por ejemplo, calcule el nmero de conjunciones de una frmula
necesita diferenciar en dos la lnea nica dedicada a conectivas binarias.
Ya se ha garantizado que una frmula pertence a una y slo una de esas categoras. Adems, el
Principio de Recursin estructural garantiza que, para una eleccin dada de esas funciones previas
en cada categora, la funcin f : Form X est bien denida y es nica. Y esto, sea cual sea el
conjunto X. Puede intentar denir recursivamente una funcin del conjunto de frmulas Form sobre
un conjunto de 2 equipos de ftbol o sobre los 3 colores de un semforo.
2.1. Sintaxis 69
xRx c) P f y))))
Rx c) P f y)))

Rx c)

P f y))

f y)

(a)
xRx y)) yPy))))
Rx y)) yPy)))

Rx y)

yPy))

Py)

(b)
Figura 2.2: Dos frmulas de Primer Orden: subfrmulas
Ejemplo 2.13 La funcin numsub f : Form N calcula el nmero de subfrmulas de una dada:
numsub f ) =

1 atmica
1+numsub f ) = ) | x) | )
1+numsub f ) +numsubf ) = )
2.1.4 Eliminacin de parntesis
La sintaxis descrita, con todo el rigor necesario, permite:
1. evitar un lenguaje ambiguo, donde una frmula se pueda descomponer en ms de una forma
distinta
2. comprobar la correcta denicin de conceptos
3. describir procedimientos para el clculo efectivo de estas deniciones (subfrmulas, variables
libres, etc.) y de otras, relativas a la interpretacin de las frmulas.
Todo esto es an ms crtico si se pretenden disear sistemas automticos que utilicen las lgicas
descritas. Como contrapartida, el exceso de parntesis diculta la comprensin de un lector, de un
agente lgico humano. Los convenios de precedencia, como los jados para la lgica proposicional,
permiten eliminar parntesis sin caer en la ambigedad: en caso de duda, el convenio es todo lo que
se necesita para deshacerla.
1. Se prescindir de los parntesis externos de la frmula. Tambin de los que rodean a una
expresin cuanticada xPx)) y a una frmula negada Px)). Asimismo se prescinde de
los parntesis que delimitan los trminos de una relacin Rx y z). Se podra prescindir de los
que delimitan los trminos de una funcin gx y), pero preferimos conservarlos.
2. En caso de duda, se aplicarn primero los cuanticadores y las negaciones, despus las conjun-
ciones y disyunciones, y luego los condicionales y bicondicionales. No se establece precedencia
entre conjunciones y disyunciones o entre condicionales y bicondicionales.
70 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
3. Gracias a la propiedad asociativa de la conjuncin, en una expresin ambigua
1

3
no
importar (a efectos semnticos) si se ha evaluado como
1

2
)
3
o como
1

3
).
Luego, en una conjuncin de n frmulas se eliminarn los parntesis. Lo mismo ocurre para la
disyuncin.
Ejemplo 2.14 Con este convenio, una expresin como
xPx Qx es una abreviatura de la frmula xPx)) Qx)) y no de xPx) Qx)))
Px Qy es una abreviatura de la frmula Px)) Qy)) y no de Px Qy)))
xPx Qx Rxyz Sxy es una abreviatura de la frmula xPx)) Qx)) Rx y z))
Sx y)))
2.1.5 Variables libres
No es difcil denir una funcin que produzca todas las variables de una frmula dada. Para ello basta
denir el conjunto de las variables de una frmula en funcin de los conjuntos de variables de sus
frmulas componentes. Al llegar a las frmulas atmicas, sus variables son las que hayan aparecido
en sus trminos.
Ejemplo 2.15 La funcin var
t
: Term PVar) calcula el conjunto de variables que aparecen en un
trmino:
var
t
t) =

0 t = c
{x} t = x
var
t
t
1
) . . . var
t
t
n
) t = f t
1
. . . t
n
)
La funcin var : Form PVar) calcula el conjunto de variables que aparecen en una frmula:
var) =

var
t
t
1
) var
t
t
2
) = t
1
t
2
)
var
t
t
1
) . . . var
t
t
n
) = Rt
1
. . . t
n
)
var) = ) | x) | x)
var) var) = )
mbito de un cuanticador Si una frmula es de la forma x) o x) se dice que es el mbito
de ese cuanticador. En la gura (g. 2.3a), toda la frmula condicional que ocurre como subrbol
de x determina el mbito de este cuanticador. En la gura (g. 2.3b) hay dos cuanticadores: el
mbito de y es la frmula atmica Py, y est incluido en el mbito de x.
Los mbitos de los cuanticadores (sus respectivos subrboles) no se solapan: se anidan, como en
el ejemplo de la gura (g. 2.3b) o son disjuntos, como en xPx) yQy)).
Apariciones libres y ligadas Todas las apariciones de una variable x, en el mbito de un cuantica-
dor para esa variable, x) o x), se denominan ligadas. As, en una frmula sin cuanticadores
ninguna variable ser ligada. Y todo cuanticador liga, a lo sumo, las apariciones de una variable en
su mbito.
En la gura (g. 2.3b) hay 5 frmulas distintas. Vemos cul es el comportamiento de las variables
en esas frmulas:
en las frmulas atmicas Rx y) y Py) ninguna aparicin de variable es ligada
2.1. Sintaxis 71
en la frmula yPy) la aparicin de y es ligada
en la frmula disyuntiva Rx y) yPy)) slo es ligada la ltima aparicin de la variable y
en la frmula xRx y) yPy))) todas las apariciones son ligadas salvo la de la primera y
Observe que a cada (sub)frmula le corresponde un nodo del rbol sintctico. Para determinar si
una variable est ligada en esa (sub)frmula basta ascender desde el nodo de esa variable hasta el nodo
de esa (sub)frmula: si se encuentra en esa rama un cuanticador aplicable a esa variable, entonces
est ligada en esa (sub)frmula.
x

(a)
x

(b)
Figura 2.3: mbitos y variables libres
Si la aparicin de una variable no es ligada, se la denomina libre. Una aparicin es ligada o libre;
pero, como se observa en la frmula raz de 2.3, una variable puede tener apariciones libres y ligadas
en una misma frmula:
xRx y) yPy)))
Una variable se denomina libre en una frmula si todas sus apariciones en esa frmula son libres.
En la frmula precedente ni x ni y son variables libres.
Denicin 2.16 Variables libre) El conjunto de variables libres de una frmula se dene como la
siguiente funcin, libres : Form PVar), de frmulas en conjuntos de variables:
libres) =

vart
1
) vart
2
) = t
1
t
2
)
vart
1
) . . . vart
n
) = Rt
1
. . . t
n
)
libres) = )
libres) libres) = )
libres) {x} = x) | x)
Denicin 2.17 Sentencia) Una frmula sin variables libres se denomina sentencia.
En una sentencia toda variable est en el mbito de un cuanticador para esa variable.
72 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
2.1.6 Sustituciones
Una frmula de primer orden tiene siempre estructura de rbol. El desarrollo de este rbol, desde la
frmula inicial, llega necesariamente a las subfrmulas elementales: las subfrmulas atmicas. Un
ejemplo de frmula atmica es Qx a) Qx ga)); en general: un predicado n-ario aplicado a n
trminos.
Cada uno de estos trminos (de estos sujetos del predicado) admite asimismo un desarrollo en
rbol. Un trmino puede ser simplemente una variable (y), o una constante (b) o una funcin k-aria
aplicada a k trminos: f a x gb x)). Observe que uno de los tres trminos sobre los que se aplica la
funcin f es, a su vez, otra funcin binaria g aplicada sobre dos trminos.
La operacin sintctica que se propone en esta seccin se aplicar slo sobre trminos.
Ms especcamente, sustituir trminos que sean variables por otros trminos.
El lector ya ha utilizado sustituciones y reemplazos de frmulas, no de trminos. Por ejemplo,
cuando reemplaza un condicional por la frmula equivalente antecedente consecuente. En cada
caso, este proceso de sustitucin deba ajustarse a unas normas, a unas restricciones. Como contra-
partida, se garantizaba que el resultado obtenido segua manteniendo cierta propiedad determinada, si
sta exista en la frmula inicial.
La sustitucin de variables por trminos tambin se ajustar a ciertas restricciones: las que se
necesiten para que sea til. En particular, la utilidad bsica consistir en descubrir, por manipulacin
sintctica, si un mismo predicado (aplicado a trminos distintos) se est reriendo, implcitamente, a
los mismos elementos del universo.
Sustituciones de variables
Denicin 2.18 Sustituciones) Una sustitucin
v
es una funcin
v
: Var Term, del conjunto de
variables en el conjunto de trminos.
Observe que esta denicin depende del lenguaje L F R ) empleado. Si no existen constantes
ni funciones en el lenguaje, los nicos trminos posibles son los formados por una variable. En este
caso, se trata de sustituir una variable por otra.
Ejemplo 2.19 Considere un lenguaje L F R ) tal que el conjunto de constantes del lenguaje es
={a b} y el conjunto de funciones es F ={g} (donde g es binaria).
Una sustitucin
v
ja, para cada variable, qu trmino de este lenguaje le corresponde. Por
ejemplo:
. . .
v
v) = a
v
w) = a
v
x) = y
v
y) = gx z)
v
z) = ggb y) ga gz w))) . . .
Los puntos suspensivos anteriores responden al hecho de que en todo lenguaje de primer orden
(salvo que se indique lo contrario) el nmero de variables es innito. La sustitucin
v
asigna a cada
una de ellas un trmino.
Ejemplo 2.20 La sustitucin del ejemplo anterior no estaba bien denida: no se especicaba la ima-
gen de cada variable (salvo de unas pocas). La forma ms sencilla de jar la imagen de las restantes
es precisar que no se modican. Es decir, que
v
u) =u, que cada una de estas variables se sustituye
por s misma.
2.1. Sintaxis 73
En este caso, basta enumerar las variables que s se modican. Una sustitucin como la del
ejemplo anterior se denotar como:

v
= [v,a w,a x,y y,gx z) z,ggb y) ga gz w)))]
entendiendo que, para el resto de variables,
v
u) = u.
Para este ejemplo, tan slo 5 variables se sustituyen por un trmino distinto de s mismas. Cuando
el nmero de estas variables sea nito se dir que la sustitucin tiene un soporte nito.
Sustituciones en trminos
Dado un trmino como f x a) y una sustitucin
v
tal que
v
x) = b, el resultado de aplicar tal
sustitucin es f b a). Es decir, dado un trmino de entrada, una sustitucin determina un nico
trmino de salida. Se puede ampliar cada funcin
v
(de variables en trminos) a otra funcin
t
(de
trminos en trminos).
Denicin 2.21 Sustituciones: extensin a trminos) Sea
v
: Var Term una sustitucin, se de-
ne entonces recursivamente una funcin
t
: Term Term tal que:
x
t
=
v
x), para cada variable x del lenguaje
c
t
= c, para cada constante c del lenguaje
[ f t
1
. . . t
n
)]
t
= f t
1

t
. . . t
n

t
) para cada funcin n-aria f del lenguaje.
Notacin Escribiremos (trmino) o, ms adelante, (frmula), para designar la imagen de la sustitu-
cin, en lugar de (trmino) (frmula) . En particular, escribiremos x para referirnos al trmino imagen
de la variable x.
Desafortunadamente, cada texto utiliza una notacin particular para denotar sustituciones. As, en unos
se usa (trmino) y en otros (trmino) . Adems, la sustitucin de la variable x por el trmino t se puede
encontrar como: [x,t] [t,x] x t)
x
t
, entre otras notaciones.
Ejemplo 2.22 Sea la sustitucin sobre variables
v
= [x,f y a) y,z]. Entonces, para cada uno de los
cuatro siguientes trminos su imagen es:
w
t
= w, donde w es una variable distinta de x e y
a
t
= a, donde a es una constante
ha x w))
t
= ha
t
x
t
w
t
) = ha f x
v
a) w
v
) = ha f y a) w)
ha f x y) w)
t
= ha
t
f x y))
t
w
t
) = ha f x
v
y
v
) w
v
) = ha f f y a) z) w)
Trate de visualizar, de dos maneras, una sustitucin sobre trminos sobre el rbol de un trmino
(an no de una frmula). Primero, de forma recursiva, desde la raz a los nodos hoja. Alternativamen-
te, efectuando la sustitucin sobre las nodos hoja y propagndola hasta el nodo raz.
Composicin de sustituciones
Los modernos procesadores de texto permiten (casi) simular este proceso de sustitucin. Dado un
texto como f x b gx c)) se puede requerir la sustitucin en todas las apariciones de la variable x
por la cadena gx b). El resultado sera f gx b) b ggx b) c)). Observe que:
la sustitucin afecta a todas las apariciones de x en el texto original,
no se modican las nuevas apariciones de x (si las hubiera) introducidas por la sustitucin.
74 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
Una nica sustitucin que afecta varias variables Si el texto inicial hubiera sido f x b gx z)) se
poda haber requerido simultneamente la sustitucin de las x por gz b) y la de las z por a. Se habra
obtenido entonces la cadena f gz b) b ggz b) a)).
Esta operacin no se encuentra generalmente en un procesador de texto. Supone aplicar una nica
sustitucin
t
, pero
t
asigna a cada variable el trmino que debe sustituirla. Y la sustitucin de cada
variable se produce simultneamente, sin interrelacin entre ellas. No se sustituyen primero las x y
luego, sobre ese resultado, se produce la sustitucin de las z (las originales y las que aparecen tras
sustituir x). Compruebe, sobre la cadena ejemplo, que este proceso conduce a otro resultado.
Una sustitucin tras otra Si se dispone de dos sustituciones
1
y
2
se pueden componer. Dada
una cadena de entrada, se puede aplicar una de ellas (p.ej.,
1
), sustituyendo simultneamente todas las
variables de la cadena por el trmino asignado por
1
. Despus, sobre el resultado nal, se producen
las sustituciones jadas por
2
.
Denicin 2.23 Composicin de sustituciones) Si
1
y
2
son sustituciones sobre trminos, la
composicin =
1

2
es otra composicin sobre trminos denida como:
t =t[
1

2
] = t
1
)[
2
] = t
1
)
2
)
donde t es un trmino.
Es decir, sustituya en t primero (y simultneamente) cada variables por su trmino sustituyente
jado en
1
. Y, sobre la cadena resultante, sustituya simltneamente cada variable (aunque hayan
aparecido tras la sustitucin anterior) por su trmino en
2
. El resultado es bviamente otro trmino,
al que denominaremos t
1

2
.
En la denicin se ha denominado a esta nueva sustitucin para resaltar que efectivamente es una
nica sustitucin, aunque construida a partir de dos previas. Generalmente, a esta nueva sustitucin
se le denomina simplemente
1

2
, nombre que explicita su gnesis. El trmino correspondiente a t
por esta nica sustitucin (compuesta a partir de las anteriores) es t t[
1

2
].
Observe que, con nuestra notacin postja para composiciones, en x
1

2
es
1
la que se aplica
primero (la ms prxima a la cadena original). sta misma composicin, en notacin preja, se
escribira como
2

1
x.
Ejemplo 2.24 Dadas las sustituciones
1
= [x,f z a) y,w]
2
= [x,b z,gw)], aplicando la de-
nicin previa:
x[
1

2
] = x
1
)[
2
] = f z a)[
2
] = f z
2
a
2
) = f gw) a)
y[
1

2
] = y
1
)[
2
] = w[
2
] = w
2
= w
z[
1

2
] = z
1
)[
2
] = z[
2
] = z
2
= gw)
w[
1

2
] = w
1
)[
2
] = w[
2
] = w
2
= w
ha y x)[
1

2
] = ha y x))
1
)[
2
] = ha w f z a))[
2
] = ha
2
w
2
f z a))
2
) =
ha w f gw) a))
De los resultados previos se sigue que la sustitucin
1

2
es:

2
= [x,f gw) a) y,w z,gw)]
En general:
2.1. Sintaxis 75
1. cualquier variable, como w, que no se sustituya ni en
1
ni en
2
tampoco se ver alterada por

2
. Es decir, w
1

2
= w
2. todas las variables sustituidas en
1
resultarn sustituidas en
1

2
. Observe cmo se llega tanto
a x
1

2
= f gw) a) como a y
1

2
= w
3. todas las variables sustituidas en
2
que no lo fueran en
1
, tambin sern sustituidas en
1

2
.
Observe cmo se llega a z
1

2
= gw)
Obviamente, una vez que se dispone de la denicin de esta nueva sustitucin =
1

2
=
1

2
= [x,f gw) a) y,w z,gw)]
se puede aplicar directamente sobre cualquier trmino:
ha y x)[
1

2
] = ha y x)) = ha y x) = ha w f gw) a))
Proposicin 2.25 Sean
1
y
2
dos sustituciones con soporte nito, tales que
1
= [x
1
,t
1
. . . x
n
,t
n
] y

2
= [y
1
,u
1
. . . y
k
,u
k
]. Entonces, la sustitucin compuesta
1

2
tiene soporte nito, y viene denida
por:

1
= [x
1
,t
1

2
) . . . x
n
,t
n

2
) z
1
,z
1

2
) . . . z
m
,z
m

2
)]
donde x
1
. . . x
n
son todas las variables modicadas por la primera sustitucin y z
1
. . . z
m
son slo
algunas de las variables y
1
. . . y
k
, en particular, aquellas variables nuevas, no incluidas entre las
x
1
. . . x
n
.
En el ejemplo previo, las variables modicadas por la primera sustitucin eran x e y. Y las va-
riables slo modicadas por la segunda se limitaban a z. Observe qu trminos se asignan a cada
una.
Proposicin 2.26 La composicin de sustituciones es asociativa:

2
)
3
=
1

3
)
En general, la composicin no es conmutativa. Es decir, habitualmente
1

2
producir
una sustitucin distinta a
2

1
(salvo excepciones).
Ejemplo 2.27 Sean las sustituciones:

1
= [x, f y) y,w ]
2
= [x,gw) z,b]
3
= [y,b w,f c) v,w]
entonces:

2
= [x, f y) y,w z,b]
y

2
)
3
= [x,f b) y,f c) z,b w,f c) v,w]
76 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
Sustituciones en frmulas
Cuando se produce la sustitucin de las variables de un trmino el resultado es otro trmino. Esto
nos llev a extender el concepto de sustitucin hasta una funcin de trminos en trminos. De igual
forma, cuando se sustituyen las variables de una frmula, el resultado es otra frmula. De ah, que la
simple sustitucin denida inicialmente pueda ser extendida como funcin de frmulas en frmulas.
Ahora bien, una vez que somos capaces de calcular cualquier sustitucin, nos limitaremos a utili-
zar slo unas pocas. Aquellas que nos garanticen un buen comportamiento. En particular:
1. tan slo sustituiremos las apariciones libres de las variables
2. las apariciones de las variables que aporte cada trmino sustituyente deben resultar libres en la
frmula nal
Este camino formal tiene una recompensa valiosa:
Las sustituciones de variables en frmulas, con las restricciones mencionadas, producen
nuevas frmulas que son tan satisfacibles (positiva o negativamente) como las de partida.
Este resultado ser fundamental para decidir relaciones de consecuencia via insatisfacibilidad.
En concreto, esta es la estrategia que se utiliza en sistemas deductivos tales como los basados en
Resolucin o los basados en Tablas Semnticas.
Sustituir slo en apariciones libres Las deniciones siguientes tienen por objetivo incluir esta
restriccin en la propia denicin de sustitucin en una frmula.
Denicin 2.28 Sea
t
una sustitucin sobre trminos. Se puede entonces extender, recursivamente,
a una funcin de frmulas en frmulas:
1. Qt
1
. . . t
n
)) = Qt
1

t
. . . t
n

t
)
2. =, =,
3. X) =X)
4. X Y) = XY), para toda conectiva binaria
5. xX) =xX
x
), xX) =xX
x
)
Donde
x
es una sustitucin sobre frmulas igual a salvo el hecho de que no modica la variable
x.
Ejemplo 2.29 Sea la sustitucin = [x,f y) y,b]. Entonces
xQx Rxy)) =xQx Rxy)
x
) =xQx)
x
Rxy)
x
) =xQx Rxb)
Qx xRxy) = Qx) xRxy) = Q f y)) xRxy)
x
) = Q f y)) xRxb
xQx yRxy)) = xQx yRxy)
x
) = xQx)
x
yRxy))
x
) = xQx
yRxy)
xy
)) =xQx yRxy)
2.2. Semntica 77
Observe que se ha incorporado, en la propia denicin de sustitucin sobre frmulas, la primera
de las restricciones: dada una sustitucin, aplquese slo sobre las apariciones libres de las variables.
Notacin Suponga una frmula . Resaltaremos, cuando interese, que existen apariciones libres de, p.ej.,
las variables x e y, mediante la notacin x y).
Se denotar como x,t
1
y,t
2
) la frmula resultado de aplicar una sustitucin a que sustituye las x libres
por t
1
y las y libres por t
2
.
Usualmente, la notacin x y) no requiere que estas dos sean las nicas variables con apariciones libres. A
veces no es preciso enumerar todas, cuando lo que realmente es signicativo para la demostracin o el desarrollo
es que al menos esas dos tengan apariciones libres.
En una frmula del tipo x no existen variables x libres. As, ninguna sustitucin, tal y como se
ha denido, modicar las x. Por otro lado, las apariciones de x que estuvieran ligadas por el cuan-
ticador resultan apariciones libres en la subfrmula (si slo se considera sta, sin el cuanticador
previo).
Ms adelante, dada una frmula como x y una sustitucin, se le pedir que la efecte sobre
y observar en los ejemplos que s se modican las x. Observe, en esos casos, que se requiere la
sustitucin sobre la frmula y no sobre la frmula x.
Ejercicio 2.30 Aplique la sustitucin = [x, f y) y,w] sobre las frmulas:
Px Qy
Px yQy
xPx yQy
Producir slo apariciones libres La utilidad de esta restriccin (como de la anterior) se entender
cuando se explique la semntica de las frmulas de Primer Orden.
Denicin 2.31 Sustitucin libre para una frmula) Una sustitucin se denomina libre para una
frmula cuando todas las apariciones de variables introducidas por la sustitucin en esa frmula re-
sultan libres.
Ejemplo 2.32 La sustitucin [z, f x)] no es libre para la frmula
Rz xPx yRxyz)
porque algunas de las apariciones de la variable x que introduce ocurren en el mbito de un cuanti-
cador x.
2.2 Semntica
2.2.1 Introduccin
La interpretacin en Lgica de Proposiciones Para decidir si una frmula proposicional es ver-
dadera se requiere interpretarla. La interpretacin se produce sobre un objeto matemtico: sobre una
asignacin, sobre una funcin del conjunto de letras proposicionales en {0 1}.
Basta una asignacin para que, de cualquier frmula, se decida su valor de verdad. Es decir, basta
una asignacin para que se compruebe si esa interpretacin de la frmula la satisface. La denicin
recursiva de satisfaccin facilita esta decisin, por muy compleja que sea la frmula.
78 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
Es ms, sobre una misma asignacin se pueden interpretar todas las frmulas de un conjunto de
frmulas dado. Se puede apreciar as su distinto comportamiento (su valor de verdad) frente a un
mismo estado de cosas (una misma interpretacin). Bastaba escribir la tabla de verdad conjunta,
para todas las letras proposicionales que aparecan en esas frmulas.
La interpretacin en Lgica de Primer Orden Los lenguajes de primer orden tienen un alfabeto
ms expresivo: constantes, funciones, relaciones,. . . Para interpretar cualquiera de sus frmula es
preciso un objeto matemtico ms complejo. De hecho, tanto ms complejo cuntos ms smbolos
propios tenga el lenguaje. Para no perdernos, cuando la notacin sea ms farragosa, conviene ofrecer
una descripcin coloquial de este objeto matemtico:
1. Escoja primero un conjunto U no vaco, cualquiera.
2. Por cada predicado mondico, como Px), debe escoger un subconjunto de U. Por cada pre-
dicado didico, como Rx y) debe escoger una relacin binaria en U: un conjunto de pares de
elementos de U. En general, por cada predicado n-dico, un conjunto de n-tuplas de elementos
de U.
3. Por cada smbolo constante en la frmula debe escoger un elemento de U.
4. Por cada smbolo funcional, como gx z), en la frmula debe escoger una funcin sobre U con
el mismo nmero de argumentos: 2, en el caso de g.
A una construccin como sta se la denominar estructura. Por ejemplo, si una frmula no con-
tiene constantes, ni funciones y todos sus predicados son mondicos, una estructura adecuada es
simplemente un conjunto y varios de sus subconjuntos.
Cualquier sentencia se puede interpretar sobre una estructura adecuada a esa frmula. Si existen
apariciones de variables libres, la interpretacin va a depender de quines se suponen que son esas
variables sobre la estructura. En este caso es preciso establecer una correspondencia entre variables
y elementos de U, que denominaremos asignacin.
Relaciones y funciones sobre un universo
Sea U un conjunto no vaco. El conjunto U
n
es el conjunto de todas las n-tuplas de U. Una relacin
n-aria R sobre U es un subconjunto de U
n
.
Ejemplo 2.33 Sea U ={a b c}. Entonces,
U
2
={a a) a b) a c) b a) b b) b c) c a) c b) c c)}
y
U
4
={a a a a) a a a b) a a a c) a a a d) . . . c c c b) c c c c)}
Una relacin binaria R es un subconjunto de U
2
. Posibles relaciones binarias son: R
1
= 0 (sin
pares de U
2
) o R
2
=U
2
(con todos los pares). O bien,
R
3
={a a) a c) b a) b b) c c)}
La relacin R
3
se puede representar como una matriz, como una tabla (tabl. 2.1a). Si se ja en el
par a c) R
3
sobre esta tabla ver que las las representan el primer elemento del par y las columnas
el segundo. Existen 2
33
relaciones R
k
binarias distintas sobre un conjunto de 3 elementos.
2.2. Semntica 79
Tambin pueden representarse grcamente como grafos: dibuje los nodos a, b y c; si a c) R
3
trace una echa desde el nodo a hasta el c. Observe que alguna de estas echas pueden ir de un nodo
a s mismo.
(a) R
3
U
2
R
3
a b c
a x x
b x x
c x
(b) f : U U
R
f
a b c
a x
b x
c x
Tabla 2.1: Relaciones y funciones
Una funcin f : U
n
U hace correspoder a cada n-tupla de su dominio U
n
un elemento de U.
Observe la relacin binaria R
f
U
2
de la tabla (tabl. 2.1b). Determina una funcin monaria
f : U U. Es una funcin porque cada lnea de la tabla contiene una marca y slo una. En general,
las funciones n-arias son especiales relaciones n+1)-arias.
2.2.2 Interpretaciones
Dada una frmula , una estructura adecuada a ella ser una construccin matemtica sobre la que
se pueda interpretar : un conjunto U y la eleccin de un representante para cada smbolo propio
empleado en (constantes,funcionales,relacionales). En realidad, se ofrecer una interpretacin para
cada smbolo propio del lenguaje, as se podrn interpretar varias frmulas sobre una misma estructura
an cuando alguna utilice un smbolo propio que otra no usaba.
Denicin 2.34 Estructura) Una estructura adecuada al lenguaje LR F ) es un par U I tal que:
1. U es un conjunto no vaco, denominado dominio o universo
2. I es una funcin sobre el conjunto de smbolos propios de S =R F que hace corresponder:
(a) a cada smbolo relacional n-ario R S, una relacin n-aria sobre U
(b) a cada smbolo funcional n-ario f S, una funcin n-aria sobre U
(c) a cada constante c S, un elemento de U
Ejemplo 2.35 Suponga un lenguaje LR F ) con una relacin binaria R, una funcin monaria f y
una constante c. Las dos frmulas siguientes pertenecen a ese lenguaje:
xRxc y xRf x)c zRzz
Para decidir su valor de verdad sobre una misma estructura, primero es preciso escoger un universo y
elegir qu relacin sobre el mismo representa a R, qu funcin a f y qu elemento a c.
Restrinjmonos a un universo U ={1 2 3}. Existen 2
33
relaciones binarias distintas. Y 3
3
fun-
ciones monarias distintas. Y 3 elecciones de elemento representante de c. Salvo error de clculo, hay
272
9
interpretaciones distintas sobre este universo (adecuadas a ese conjunto de smbolos propios).
El nmero es lo de menos. Escojamos una de ellas:
R
I
={1 2) 2 1) 2 3)} f
I
={1 1) 2 3) 3 3)} c
I
= 2
80 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
Es decir, sobre este universo, 2 est relacionado por R con 1, la imagen por f de 2 es 3 = f 2)
y el elemento 2 representa a c. Cualquier frmula sobre este lenguaje se podr interpretar en esta
estructura.
Las frmulas de alfabeto A
S
se pueden interpretar sobre un nmero innito de estructuras:
puede escoger cualquier universo (nito o innito) y, sobre l, cualquier combinacin de
elecciones de subconjuntos, relaciones, funciones y elementos (constantes).
2.2.3 Asignaciones
Denicin 2.36 Asignacin) Una asignacin A sobre una estructura U I es una funcin A : Var
U: hace corresponder a cada variable x del alfabeto con un elemento del universo U.
Al elemento de U imagen de x por A se le denotar preferentemente como x
A
, en vez de Ax).
Denicin 2.37 Suponga que U I es una estructura adecuada a un lenguaje LR F ). Y que A
es una asignacin sobre esta estructura. Entonces, se puede ampliar el concepto de asignacin para
que a cada trmino t del lenguaje le corresponda un nico elemento t
IA
del universo U:
c
IA
= c
I
xt
IA
= x
A
f t
1
. . . t
n
)
IA
= f
I
t
IA
1
. . . t
IA
n
)
Los dos primeros casos son inmediatos. A cada constante le corresponde su elemento por la
interpretacin I (sea cual sea la asignacin). Y a cada variable le corresponde su elemento por la
asignacin A (sea cual sea la interpretacin).
El ltimo caso se ocupa de trminos como g f x) y c), donde f es una funcin monaria del
lenguaje y g una funcin ternaria del lenguaje. Por ejemplo, suponga un universo de 3 elementos
donde c
I
= 2, x
A
= 1, y
A
= 1. Adems, a la funcin f de la frmula le representa una funcin tal que
f
I
1) = 3. Entonces se trata de determinar qu termino es g
I
3 1 2), que debe ser un elemento del
universo.
Denicin 2.38 Asignacin variante de otra) Suponga que sobre una estructura se ha jado una
asignacin A, que hace corresponder a cada variable de la frmula con un elemento del universo. Otra
asignacin A
x
es una variante en x de A si coincide con A en la asignacin de toda variable excepto
para la variable x.
2.2.4 Satisfaccin
Denicin 2.39 Satisfaccin de una frmula) Sea U I una estructura adecuada al lenguaje
LR F ) y A una asignacin. A cada frmula de LR F ) se le hace corresponder un valor de
verdad
IA
como sigue:
1. Frmulas atmicas

IA
= 0 ,
IA
= 1
t
1
t
2
)
IA
= 1 si y slo si t
A
1
=t
A
2
[Rt
1
. . . t
n
)]
IA
= 1 si y slo si t
A
1
. . . t
A
n
) R
I
2.2. Semntica 81
2. []
IA
=[
IA
]
3. []
IA
=
IA

IA
4. [x)]
IA
= 1 si y slo si
IA
x
para toda asignacin A
x
variante en x respecto a A
5. [x)]
IA
= 1 si y slo si
IA
x
para alguna asignacin A
x
variante en x respecto a A
2.2.5 Ejemplos de interpretacin
Slo con predicados
Mondicos Los ejemplos de este apartado son bsicos. Consideran frmulas con, a lo sumo, 2
predicados mondicos y 3 constantes. No contienen funciones ni el smbolo de igualdad. En concreto,
son frmulas de un lenguaje LR F ) con:
R ={P Q} F = 0 ={a b c}
donde todos los smbolos de R son mondicos. Para cada una de estas frmulas se escogern (1) un
universo U, (2) una interpretacin I adecuada y (3) una asignacin A, sobre los que decidir el valor
de verdad de la frmula en ese caso.
Cada interpretacin de este lenguaje debe jar: (1) qu subconjuntos del universo son P
I
y Q
I
y
(2) qu elementos del universo son a
I
, b
I
y c
I
.
En las frmulas que no contengan todos estos smbolos, basta especicar la interpretacin slo
para los smbolos que aparecen. Lo mismo ocurre con las asignaciones A: basta precisar qu elemento
u = x
A
del universo representa a cada variable x que aparece en la frmula.
Salvo en los ejemplos iniciales, en vez de P
I
, se denotar smplemente como P, en negrita,
al subconjunto representante del predicado P en la frmula. Lo mismo se har con las
constantes.
Figura 2.4: Tres estructuras sobre el mismo universo
Ejemplo 2.40 Pc) El proceso de interpretacin que se propone se enuncia coloquialmente como:
yo no s qu propiedad formaliza P, pero en este universo de n elementos marco arbitrariamente que
estos m tienen esa propiedad; dme quin consideras que es c en este universo y comprobaremos si se
encuentra entre los m marcados.
82 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
Sobre la gura (g. 2.4b), si c es el elemento 1, entonces la frmula Pc es verdadera. Por contra,
si se considera que 2 representa a c, entonces es falsa. Observe que se ha utilizado una interpretacin
I adecuada que facilita quin es P en ese universo y quin es c.
Ms formalmente, siempre se requiere un universo U, una interpretacin I adecuada y una corres-
pondencia A entre variables y elementos. En este caso, el valor de verdad de Pc resultar independiente
de la asignacin A: no hay variables en la frmula. Por eso, se suele omitir:
U ={1 2 3}; P
I
={1 3}; c
I
= 1
Entonces, aplicando la denicin de satisfaccin de una frmula:
Pc)
IA
= 1 si y slo si c
IA
P
I
si y slo si c
I
P
I
si y slo si 1 {1 3}
Luego Pc resulta verdadera sobre esta estructura. Sobre toda estructura en que Pc sea verdadera
su negacin Pc es falsa. Y sobre toda estructura en que Pc sea falsa, su negacin Pc es verdadera.
Una frmula como Pc podra representar la frase: Antonio es rubio o El nmero 0 es par. Y
una frmula como Pc: Antonio no es rubio o El nmero 0 no es par; o tambien: Antonio es
no-rubio o El nmero 0 es no-par.
Ejemplo 2.41 Px) Observe la gura (g. 2.4b). La frmula Px es verdadera sobre la siguiente es-
tructura y asignacin:
U ={1 2 3}; P
I
={1 3} con Ax) = 3
Efectivamente, aplicando la denicin de satisfaccin de una frmula:
Px)
IA
= 1 si y slo si x
IA
P
I
si y slo si x
A
P
I
si y slo si 3 {1 3}
Sin embargo, sobre esta misma estructura, si se utiliza otra asignacin A

U ={1 2 3}; P
I
={1 3} con A

x) = 2
entonces la frmula Px resulta falsa. Observe que slo variando la asignacin sobre x, en la misma
estructura, se consigue que la frmula sea bien verdadera, bien falsa.
Hay dos casos extremos donde lo anterior no se produce. En estructuras como (g. 2.4a), donde
P = U, ninguna asignacin consigue que la frmula Px sea falsa. Y en (g. 2.4c), donde P = 0,
ninguna asignacin consigue que la frmula Px sea verdadera.
Una frmula como sta puede representar la frase x es rubio x es par. Su valor de verdad
depende de la asignacin de x.
Ejemplo 2.42 xPx) Una frmula como sta puede representar la frase todos los elementos del
universo) son rubios o todos los elementos del universo) son pares. Es slo verdadera en las
estructuras en que P sea igual a todo el universo (g. 2.4a) y falsa en otros casos (b y c).
Observe que su valor de verdad no depende de la asignacin. De hecho, as se valora el cuanti-
cador: si toda asignacin de la variable x hace verdadera Px entonces xPx es verdadero. En (g.
2.4a) las tres asignaciones posibles Ax) = 1, A

x) = 2 y A

x) = 3 hacen verdadera Px sobre esa


estructura; y por tanto, xPx es verdadera sobre esa estructura.
xPx) La frmula xPx es verdadera donde xPx es falsa: (g. 2.4b-c). Podra representar las
frases no todos son rubios o no todos son pares.
2.2. Semntica 83
xPx) No confunda la frmula anterior con xPx: todos son no-rubios, todos son no-pares.
O, ms bien, ninguno es rubio, ninguno es par. Esta frmula slo es cierta en (g. 2.4c), donde
todos los elementos verican P, es decir, donde todos estn en

P, complementario de P.
Ejemplo 2.43 xPx) Una frmula como sta puede representar la frase alguno elemento del uni-
verso) es rubio o hay alguien elemento del universo) que es par. Es slo verdadera en las estruc-
turas en que P sea distinto del vaco (g. 2.4a-b) y falsa en otro caso (c).
Observe que su valor de verdad no depende de la asignacin. De hecho, as se valora el cuanti-
cador: si al menos una asignacin de la variable x hace verdadera Px entonces xPx es verdadero.
En (g. 2.4b), dos de las asignaciones posibles Ax) = 1, A

x) = 3 hacen verdadera Px sobre esa


estructura; y por tanto, xPx es verdadera sobre la estructura de (g. 2.4b).
xPx) La frmula xPx es verdadera donde xPx es falsa: (g. 2.4c). Podra representar las
frases no existe alguien rubio o ningn nmero es par.
xPx) No confunda la frmula anterior con xPx: alguien es no-rubio, alguien es no-par.
Para que esta frmula sea verdadera basta que exista un elemento que tenga la propiedad P, que est
fuera del conjunto P.
Ejercicio 2.44 Interprete los siguientes pares de frmulas sobre la misma estructura:
xPx , xPx
xPx , xPx
xPx , xPx
xPx , xPx
Qu distingue a esos pares de frmulas de los siguientes?
Pa , Pc
Px , Pc
Px , xPx
Pc , yPy
Ejemplo 2.45 xPx Qx)) Esta frmula es verdadera en las estructuras donde al menos un elemen-
to pertenece a P
I
y (ese mismo elemento) pertenece tambin a Q
I
. Es decir, cuando la interseccin
de ambos conjuntos no sea vaca. Efectivamente, en ese caso, hay una asignacin de x que verica
Px Qx), y por lo tanto xPx Qx) es verdadera.
Sobre universos nitos, puede ser til la siguiente aproximacin. Considere su evaluacin como
un proceso iterativo, como un bucle:

x
Px Qx)
En cada iteracin (para cada asignacin), la variable x del bucle es un elemento distinto del uni-
verso. Suponga que en la primera iteracin es x
A
= 1. Entonces, en el cuerpo del bucle se pregunta si
P1Q1); en la siguiente iteracin P2Q2), . . ., hasta que nalizan los elementos del universo.
En realidad, se abandona el proceso (contestando armativamente) tan pronto como se verica la fr-
mula para un elemento. Slo es preciso recorrer todo el universo para ofrecer una respuesta negativa.
Obviamente, para universos innitos hay que armarse con algo de paciencia.
84 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
Observe la gura (g. 2.5a). La frmula analizada es verdadera en ella. De hecho, basta que exista
(al menos) un elemento en la regin PQ, con independencia de los elementos que hubiera en las otras
3 regiones.
xPx Qx) Esta frmula es falsa en (g. 2.5a). Requiere que un mismo elemento no verique P
pero si Q. Es decir, debera haber (al menos) un elemento en la regin

PQ.
xPx Qx) Esta frmula es verdadera en (g. 2.5a). Hay dos elementos (1 y 3) que cuando se les
pregunta, en ese hipottico bucle, si verican P o Q (o ambos) responde armativamente. De hecho,
podan estar situado en cualquiera de las 3 regiones que comprende la unin PQ, que no debe ser
vaca.
Figura 2.5: Estructuras con dos predicados mondicos
Ejemplo 2.46 xPx) xQx)) Para interpretar esta frmula es fundamental percatarse de que hay
dos mbitos disjuntos cuanticados. Siguiendo con la imagen del bucle, correspondera al siguiente
proceso:

x
Px

x
Qx
Se pregunta primero, a todos los elementos del universo, si tienen la propiedad P. Si se encuentra un
elemento (una asignacin de la variable x del bucle) que lo verique, entonces se sale de este mbito
dando un valor verdadero a la subfrmula xPx). Otro tanto se hace con la subfrmula xQx).
Y se evala su conjuncin.
En la evaluacin de xPxQx), las dos variables del mbito de x referencian al mismo elemento.
En xPx)xQx) no existe esa relacin entre esas variables, de mbitos distintos. Alguien es rubio
y alguien es alto se hace verdadera aunque el rubio (3) no sea el mismo que el alto (1). Observe que
una evaluacin equivalente se obtiene para la frmula xPx) yQy)
2.2. Semntica 85
En lgica de proposiciones, cuando se repeta una letra como p dentro de la misma frmula re-
presentaba la misma p, la misma proposicin. En lgica de primer orden las variables (slo las
variables) puede que no tengan esa restriccin: dependen del mbito del cuanticador en que se en-
cuentren.
Ejemplo 2.47 xyPx Qy)) Para poder evaluar esta frmula primero analizaremos una previa:
yPx Qy). Volviendo a la imagen del bucle, la variable y va a recorrer todas las posibles asigna-
ciones, luego no hace falta precisar una en concreto para ella. Sin embargo, la variable libre x va a
adoptar el valor, el elemento (nico) que se le asigne:

y
Px Qy)
Sobre la gura (g. 2.5a), con la asignacin Ax) = 3 la frmula es verdadera. Observe que, dentro
de este bucle, se pregunta primero si P3Q1), despus si P3Q2), si P3Q3). La primera
asignacin de y (Ay) = 1) satisface el cuerpo del bucle, la frmula cuanticada existencialmente.
Luego hace verdadera la frmula existencial.
xyPxQy) Los mbitos de los cuanticadores o se anidan o son disjuntos, sintcticamente nunca
se solapan. Esta es una frmula del tipo x, donde puede informalmente verse como un bucle
anidado. La frmula global ser verdadera si alguna asignacin de x hace verdadera . En concreto,
como se ha visto antes, para Ax) = 3 (o para Ax) = 1) se satisface la frmula existencial interna.
Ejemplo 2.48 xPx Qx)) Observe la gura (g. 2.5b). En tres de las cuatro regiones marcadas
puede haber elementos sin que esta frmula sea falsa:

x
Px Qx)
De este bucle informal slo se sale armativamente si todas las asignaciones de x verican la sub-
frmula de su mbito. Basta que haya un elemento en P

Q, que haga verdadero el antecedente y falso
el consecuente, para que se evale como falso todo el bucle.
Observe que una estructura en que P no tenga elementos tambin satisface esta frmula. No se
requiere que P tenga elementos, pero, si los tiene, deben estar en la regin PQ. Es decir, la frmula se
hace verdadera donde P Q es verdadero. Esta frmula puede leerse todos los P son Q.
Ejercicio 2.49 Evale sobre la misma estructura los siguientes pares de frmulas:
xPx Qx) , xPx Qx)
xPx Qx) , xPx Qx)
xPx Qx) , xPx Qx)
Didicos Las frmulas de este apartado utilizan, a lo sumo, un par de predicados didicos (R y S),
un par de predicados mondicos (P y Q) y un par de constantes (a y b).
86 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
Ejemplo 2.50 Rxy) Esta frmula, con ambas variables libres, es verdadera sobre la siguiente estruc-
tura y asignacin:
U ={1 2 3}; R
I
={1 3) 2 2)} con Ax) = 1 Ay) = 3
Grcamente, sobre la tabla (tabl. 2.2a), supone vericar que si se entra por la la 1 y la columna 3,
la casilla pertenece a la relacin.
(a) R U
2
R 1 2 3
1 x
2 x
3
(b) S U
2
S 1 2 3
1 x x
2 x
3 x x
Tabla 2.2: Dos relaciones sobre el mismo universo
Ejemplo 2.51 yRxy) Esta frmula, con la variable libre x, es verdadera sobre la siguiente estructura
y asignacin:
U ={1 2 3}; R
I
={1 3) 2 2)} con Ax) = 1
Puesto que existe una asignacin de y que satisface R1y. Grcamente, sobre la tabla (tabl. 2.2a),
supone vericar que si se entra por la la 1 para alguna columna y, la casilla pertenece a la relacin.
Ejemplo 2.52 xyRxy) Esta frmula ya no requiere asignaciones: todas las variables estn ligadas.
Informalmente se puede leer como para toda la x existe una columna y tal que la casilla x y)
pertenece a la relacin.
Sobre la tabla (tabl. 2.2), es falsa en (a), si R
I
= R pero es verdadera en (b), si R
I
= S.
yxRxy Existe una columna y tal que, para toda la x sobre esa columna, la casilla pertenece a
la relacin. Sobre la tabla (tabl. 2.2), es falsa en (a), pero verdadera en (b) para y
A
= 2. Observe
que esta frmula es la que se obtiene de la ltima analizada permutando los cuanticadores: no son
equivalentes, no es lo mismo decir todo el mundo quiere a alguien que alguien es querido por todo
el mundo.
Puede comprobar que la frmula xyRxy no se satisface sobre ninguna de las dos relaciones de
la tabla (tabl. 2.2).
Ejemplo 2.53 xyRxy Sxy)) Interprete R
I
= R y S
I
= S de la tabla (tabl. 2.2). Este doble bucle
anidado es verdadero si en todas sus 33 iteraciones el condicional no se hace falso. Para ello basta
que nunca el antecedente sea verdadero y el consecuente falso: que ninguna casilla marcada de R deje
de estar marcada en S. Es decir, que R S, el conjunto de pares R sea un subconjunto del de S.
Compruebe que, si esta frmula es verdadera sobre una estructura, no pueden dejar de ser verda-
deras xyRxy Sxy) y xyRxy Sxy), menos exigentes.
Ejemplo 2.54 xyRxy Px)) Esta expresin podra formalizar una sentencia como existe alguien
que quiere a todo el mundo y que es rubio. En una estructura como:
U ={1 2 3}; R
I
={1 3) 2 1) 2 2) 2 3)} P
I
={2}
efectivamente existe alguien (el 2) que verica esta frmula. Observe que si alguien quiere a todo el
mundo no puede dejar de quererse a s mismo.
2.2. Semntica 87
La interpretacin de predicados polidicos Ux
1
. . . x
n
) es grca e intuitivamente menos inme-
diata. Tambin lo es la interpretacin sobre universos innitos o con muchos elementos. Es preciso
utilizar sistemticamente la denicin formal de satisfaccin. Esperamos que los ejemplos previos
hayan facilitado el uso del formalismo.
Funciones e igualdad
En esta seccin se completan los posibles smbolos propios que pueden utilizarse en un lenguaje de
primer orden.
Ejemplo 2.55 xRx f c)) Esta frmula podra representar la sentencia todo el mundo quiere a la
madre de Juan. Grcamente, considere la estructura de la tabla (tabl. 2.2b), donde c
I
= 3 y la
funcin f
I
: U U es tal que f
I
3) = 2. La frmula es verdadera en esa estructura.
xRf x)x Esta frmula podra ser una versin simblica de la expresin mi mam me mima: para
toda persona, su madre quiere a esa persona. Considere la relacin de esta frmula con xyRyx.
Cul de ellas no puede dejar de vericarse donde se verica la otra?
Ejemplo 2.56 Pc xPx x c)) Esta frmula es una conjuncin: slo es verdadera cuando se
satisfagan ambas subfrmulas. As, c
I
debe pertenecer a P
I
, y adems el condicional no debe ser falso
para ninguna asignacin de x. Es decir, nunca puede darse que x tenga la propiedad P sin que coincida
que esa x es c. En pocas palabras: c tiene la propiedad P y es el nico del universo que la tiene.
Observe que el predicado didico no se interpreta arbitrariamente como cualquier relacin bi-
naria sobre el universo. Una interpretacin normal requiere que t
1
t
2
sea verdad cuando el elemento
que representa a t
1
sea el mismo que el que representa a t
2
: t
I
1
=t
I
2
.
Ejemplo 2.57 xyzggx y) z) gx gy z))) Esta frmula slo es verdadera sobre estructuras
donde la funcin binaria g sea asociativa. Por poner un ejemplo con universo innito, considere el
conjunto de los nmeros naturales donde g
I
es la funcin suma.
2.2.6 Conceptos semnticos bsicos
En las notas sobre semntica proposicional se utilizaron profusamente las tablas de verdad para jar
los conceptos de consecuencia lgica, validez y equivalencia. Para aprovechar estas mismas intui-
ciones basta considerar que ahora, para una frmula cualquiera, tiene algo parecido a una tabla de
verdad con innitas lneas (interpretaciones) distintas.
Todos los esquemas utilizados en lgica de proposiciones siguen siendo vlidos: as, una frmula
ser consecuencia de otra si es verdadera en todas las lneas en que sta lo es (y quiz en alguna
ms). Y un conjunto de frmulas ser satisfacible si existe al menos una lnea (una interpretacin-
asignacin) donde coincidan en ser verdaderas.
Denicin 2.58 Satisfacibilidad) Una frmula es satisfacible si existe algn universo, interpreta-
cin y asignacin donde sea verdadera. Un conjunto de frmulas es satisfacible si existe algn uni-
verso, interpretacin y asignacin donde coincidan todas en ser verdaderas.
Denicin 2.59 Validez) Una frmula es verdadera en un universo, con interpretacin I y asigna-
cin A, si se satisface
IA
en el mismo. Una frmula es vlida si se satisface para todo universo, toda
interpretacin y asignacin.
88 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
Una frmula es vlida si y slo si su negacin es insatisfacible. Un conjunto de frmulas es
satisfacible si y slo si la frmula conjuncin de todas ellas es satisfacible.
Denicin 2.60 Consecuencia) Una frmula es consecuencia lgica de un conjunto de frmulas
si en toda estructura U I y asignacin en que todas las frmulas de sean verdaderas tambin lo
es . Se expresar entonces como |=.
Es decir, si las frmulas de slo fueran simultneamente verdaderas en 3 casos, debera serlo
en esos 3 casos (y opcionalmente puede serlo en alguno ms). Si el conjunto es insatisfacible
cualquier frmula es consecuencia lgica suya.
Denicin 2.61 Equivalencia) Dos frmulas y son equivalentes si |= y |=.
2.3 Deduccin Natural
Los sistemas deductivos en Lgica Proposicional eran (casi) un lujo. Y lo eran, en tanto que terica-
mente mediante tablas de verdad podan decidirse las cuestiones semnticas bsicas sobre frmulas
dadas. Otro tema, tanto en los mtodos semnticos como en los sintcticos, era su complejidad tem-
poral.
Las consideraciones siguientes tratan de presentar las sutilezas que deben considerar los sistemas
deductivos en Lgica de Predicados, sean stos del tipo que sean.
2.3.1 Consideraciones previas
Decida cules de estas consecuencias admite intuitivamente. Los prrafos siguientes conrmarn su
intuicin.
1. xPx |= Pa ? todos los elementos tienen la propiedad P, luego el elemento a la tiene)
2. xPx |= Pa ? algn elemento tiene la propiedad P, luego el elemento a la tiene)
3. Pa |=xPx ? el elemento a tiene la propiedad P, luego todos la tienen)
4. Pa |=xPx ? el elemento a tiene la propiedad P, luego alguno la tiene)
No son consecuencia ... La segunda y tercera propuestas no se verican. Entre las interpretaciones
que satisfacen xPx, efectivamente, algunas satisfacen Pa, pero no todas. Para jar ideas, en toda
situacin en que alguien es rubio no tiene por qu satisfacerse de forma general que Juan es rubio.
Formalmente, xPx |= Pa.
Tampoco en toda situacin en que Juan es rubio debe satisfacerse que todos sean rubios. Pue-
de que existan situaciones donde se satisfagan ambas, pero la primera no garantiza generalmente la
satisfaccin de la segunda: Pa |=xPx.
Para negar una relacin de consecuencia
1
. . .
n
|= basta mostrar un contrajemplo, una inter-
pretacin que satisface a todas las frmulas de {
1
. . .
n
} pero no a . En nuestro caso:
2. xPx |= Pa I =U ={1 2} con P
I
={1} a
I
= 2
3. Pa |=xPx I =U ={1 2} con P
I
={1} a
I
= 1
Es importante insistir en que xPx |= Pa. No siempre que alguien tiene la propiedad P se puede
asegurar que precisamente este determinado elemento la tiene.
2.3. Deduccin Natural 89
Son consecuencia ... Sin embargo, s se puede armar:
1. xPx |= Pa 4. Pa |=xPx
1. Siempre que todos los elementos del universo, todas las asignaciones posibles de la variable x,
resultan pertenecer a P, no se va a poder escoger un elemento representante de la constante a que no
pertenezca a P.
4. Siempre que ha sido posible encontrar un representante de a en el universo tal que pertenece
a P, basta asignar ese elemento a x para que se satisfaga Px y por tanto xPx. Al n y al cabo, esta
ltima frmula se satisface si hay alguna asignacin de x que satisface Px.
Ejemplo 2.62 Considere la frmula universalmente cuanticada:
yQy Ryy)
Una de las (innitas) interpretaciones que la satisfacen es:
I =U ={1 2 3} con Q
I
={1 2} R
I
={1 1) 1 3) 2 2)}
Esto es as porque, cuando se considera que y es el elemento 1, efectivamente:

Q1 R11

, ms formalmente, 1 Q
I
1 1) R
I
Y porque resulta verdadera cualquier otra asignacin de y. Compruebe que son verdaderas tanto

Q2 R22

como

Q3 R33

.
Compruebe que en todos los modelos en que es verdadera la frmula yQy Ryy) tambin lo
es una frmula como Qa Raa.
Propiedades preservadas La pregunta inicial se poda haber planteado sobre frmulas ms com-
plejas, como las de la segunda columna de esta tabla:
1. xPx |= Pa ? x

Px Qz yRyx)

|=

Pa Qz yRya)

? x |=x,a) ?
2. xPx |= Pa ? x

Px Qz yRyx)

|=

Pa Qz yRya)

? x |=x,a) ?
3. Pa |=xPx ?

Pa Qz yRya)

|=x

Px Qz yRyx)

? x,a) |=x ?
4. Pa |=xPx ?

Pa Qz yRya)

|=x

Px Qz yRyx)

? x,a) |=x ?
Para cada caso, para cada lnea, la respuesta es la misma que la que se adelant para las frmulas
iniciales ms sencillas. Es decir, dada una frmula existencial (lnea 2) no resultar consecuencia
lgica de ella la que se produzca eliminando el cuanticador y particularizando (sustituyendo) la
variable x por una constante a. Esto es lo que expresa como x,a).
En la tercera lnea, una expresin como x,a) |= x se interpreta como que la hiptesis tiene
la misma forma que la de la supuesta conclusin, si a sta se le hubiera eliminado el cuanticador y
sustituido las x por a.
Todos los sistemas deductivos que siguen hacen uso adecuado de estas particularizaciones, que
toman la forma sintctica de una sustitucin. Todas las restricciones sobre las mismas (qu puede
ser sustituido y qu sustituyente) garantizarn en cada caso que se mantiene el buen comportamiento
semntico de la expresin obtenida.
Por buen comportamiento semntico entendemos que, a veces, se querr garantizar que la ex-
presin resultante sea consecuencia de la inicial: que todo modelo de la primera lo sea de la segunda.
O, a veces, algo menos fuerte, que sean ambas satisfacibles o ambas insatisfacibles.
Observe que esto ltimo slo requiere que si hay un modelo que satisface una de las frmulas
entonces hay un modelo (quiz distinto) que satisface a la otra. Por ejemplo, si bien xPx |= Pa, sin
embargo son igualmente satisfacibles. Basta que se muestre un slo modelo de una para (recticn-
dolo si es necesario) obtener un modelo de la otra.
90 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
2.3.2 Cuanticadores universales
Ya se ha expuesto un sistema de deduccin natural para la Lgica de Proposiciones. Con aquellas
reglas de inferencia se puede, por ejemplo, demostrar (vase g. 2.6a):
p q q r p r
Sin ampliar aquellas reglas de inferencia puede demostrarse (vase g. 2.6b):
xPx yQy yQy zSz xPx zSz
Observe este ltimo esquema deductivo: se obtiene por sustitucin uniforme de cada letra propo-
sicional por una frmula de primer orden.
1 pq premisa
: qr premisa
p suposic
q E1 3
r E2 4
6 pr I 3 5
(a) Frmulas proposic.
1 xPx yQy premisa
: yQy zSz premisa
xPx suposic
yQy E1 3
zSz E2 4
6 xPx zSz I 3 5
(b) Instancias de frm. proposic.
Figura 2.6: Inferencia sobre instancias de frmulas proposicionales
No obstante, con las reglas expuestas hasta el momento no se puede deducir un secuente correcto
como:
xPx Qx)
xQx Sx)
xPx Sx)
Es preciso, por tanto, aadir nuevas reglas de inferencia para (cuando se requiera):
abrir las frmulas cuanticadas (eliminar cuanticadores)
aplicar las reglas de inferencia proposicionales
cerrar las frmulas resultantes (introducir cuanticadores)
Existen, respectivamente, una regla de introduccin y otra de eliminacin para cada uno de los
cuanticadores.
Eliminacin
La eliminacin de un cuanticador universal es intuitiva y no requiere demasiadas cautelas:
x
[x,t]
xE
Es decir, de una frmula universal x se puede derivar en cualquier momento una particulariza-
cin: la que resulta de instanciar todas las apariciones libres de x en por un trmino cualquiera t.
Tan slo se requiere que el trmino t sea libre para x en .
2.3. Deduccin Natural 91
Ejemplo 2.63 Por aplicacin directa de esta regla, sin complicaciones, se deriva:
xQx Rxa)
Qgy b) Rgy b)a
xE
donde el trmino t = gy b) ha sustituido a todas las apariciones libres de x en esa subfrmula Qx
Rxa).
Ejemplo 2.64 Por aplicacin de esta regla se deriva:
xQx xRxx)
QaxRxx
xE
donde el trmino t =a ha sustituido a todas las apariciones libres de x en esa subfrmula QxxRxx).
Una frmula como xQx xRxx) conviene escribirla en su forma equivalente xQx yRyy).
No obstante, sintcticamente puede ocurrir, y la instanciacin (por sustitucin) slo debe afectar a
todas las apariciones libres de x tras prescindir del cuanticador x.
Ejemplo 2.65 Por aplicacin incorrecta de esta regla se podra derivar:
incorrecto
xQx yRxy)
Qy yRyy
xE
donde el trmino t = y ha sustituido a todas las apariciones libres de x en esa frmula Qx yRxy),
pero no era un trmino libre para x en esa frmula.
El trmino t = y con el que se sustituye a x no es libre para x en esa frmula porque produce
incorrectamente una aparicin ligada de y.
Ejemplo 2.66 Un ejemplo algo ms completo:
1 yPy Qy) premisa
: Pa premisa
PaQa yE : 1
Qa E : 2 3
Observe que Pa es una de las premisas. Para poder concluir Qa es preciso instanciar la frmula
universal de (1) con la sustitucin [y/a]. Cualquier otra instanciacin, de las muchas posibles, no
permite concluir Qa.
Introduccin
El ejemplo ms citado de generalizacin se encuentra en la geometra eucldea. En ella hay varias
frmulas que se aceptan como premisas. Y un argumento podra comenzar y acabar as: Sea un
triangulo a cualquiera [...varios pasos deductivos...] por lo tanto, en a sus ngulos suman 180 grados,
as que en todo tringulo sus ngulos suman 180 grados.
La correccin del argumento reside en que a es un tringulo cualquiera: es decir, en ninguna de
las premisas (o suposiciones previas no cerradas) aparece ese trmino a. Ninguna frmula previa ja
propiedades especiales para ese tringulo a.
Por otro lado, toda frmula universal previa se puede particularizar para ese a (como para cualquier
otro trmino). Trabajando, inferiendo, a partir de estas propiedades no especcas de a se puede
92 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
llegar a una determinada expresin. La generalizacin del resultado se produce sustituyendo todas las
apariciones de a por una variable (por ejemplo, x) y ligando esta variable, anteponiendo x.
a
.
.
.
[x,a]
x
xI
Ejemplo 2.67 Un breve ejemplo que incluye eliminacin e introduccin de cuanticadores universa-
les:
1 xPx premisa
a : Pa yE : 1
yPy xI : 2
El sentido de la caja, del marco que rodea a la frmula (2) es: a partir de este punto vamos a hablar de
un trmino a, no utilizado antes, sin propiedades especcas, con afn de generalizar los resultados.
Observe que la caja slo marca el mbito donde se utilizar el trmino a: no se abre porque se haga
una suposicin que haya que eliminar posteriormente. De hecho, la frmula (2) no es una de estas
suposiciones adicionales, sino la particularizacin de una propiedad general para este trmino a.
En este ejemplo, el resultado que se quera conseguir para ese a se consigue en un slo paso: a
tiene la propiedad P. Como Pa se puede obtener a partir de Py mediante la sustitucin [y,a], se ajusta
al esquema propuesto para la regla, y se puede generalizar como yPy.
Ejemplo 2.68 Otro ejemplo breve que incluye tanto eliminacin como introduccin de universales:
1 xPx Qx) premisa
: yQy Sy) premisa
a PaQa xE : 1
QaSa yE : 2
Pa suposic
6 Qa E : 3 5
Sa E : 4 6
8 PaSa I : 5 7
xPx Sx) xI : 8
2.3.3 Cuanticadores existenciales
Introduccin
La introduccin del cuanticador existencial tambin es directa e intuitiva:
[x,a]
x
xI
Si un elemento a tiene cierta propiedad, se puede armar que existe algn elemento que la tiene.
2.4. Tablas semnticas 93
Ejemplo 2.69
1 xPx Qx) premisa
: PaQa xE : 1
Pa E : 2
PaSa I : 3
xPx Sx) xI : 4
Eliminacin
La eliminacin del cuanticador existencial no se puede realizar directamente: ya se ha visto que aun-
que se conozca que alguien tiene cierta propiedad no se puede derivar que tal elemento determinado
la tiene. De hecho, la regla de eliminacin del existencial tiene esta otra forma (no muy intuitiva):
xx
a [x,a]
.
.
.

xE
Es decir, si se conoce que alguien tiene cierta propiedad se abre una caja con la suposicin de
que es un determinado elemento, por ejemplo a. Esta constante no debe aparecer en ninguna frmula
previa (fuera de la caja). Tampoco se exportar posteriormente fuera de ese mbito. De hecho, en
no debe aparecer este trmino.
Ejemplo 2.70
1 xPx Qx) premisa
a : PaQa suposic
Pa E : 2
xPx xI : 3
xPx xE : 1 2
2.4 Tablas semnticas
2.4.1 Frmulas proposicionales
Recordemos las propiedades bsicas de los tableaux para frmulas proposicionales:
1. se utilizan para decidir la satisfacibilidad de un conjunto de frmulas; indirectamente, para de-
cidir la relacin de consecuencia entre una frmula y un conjunto: niegue aqulla e incorprela
al conjunto inicial analizado
2. se construye un primer rbol, con una sola rama, que consta de tantos nodos como frmulas
haya en el conjunto inicial
3. las ramas se pueden bifurcar o ampliar linealmente; los nodos aadidos son subfrmulas ade-
cuadas (negadas o no) de una frmula en esa rama
94 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
4. una rama es satisfacible si lo es el conjunto de todas sus frmulas; obviamente, si entre ellas se
encuentran tanto una frmula como su negacin, la rama es insatisfacible
5. un rbol es satisfacible si lo es alguna de sus ramas
6. el arbol inicial es tan satisfacible como los sucesivos rboles ampliados; as, si se detecta que
alguno de ellos es insatisfacible, tambin lo era el conjunto inicial de frmulas
Ejemplo 2.71 Observe el rbol de la gura (g. 2.7). Muestra que, de la hiptesis p q r), es
consecuencia lgica r p. Ms apropiadamente, que esto segundo se deduce de aquello primero.
Pero en este sistema (consistente) todo lo que se deduce es consecuencia.
[nodos 1-2] El rbol inicial lo constituyen el nodo 1 (nica hiptesis) y el nodo 2 (negacin de la
supuesta conclusin). Situados en el nodo ms bajo de esta rama (el 2), tratamos de ampliarla
descomponiendo adecuadamente alguna de las frmulas de esa rama. Estratgicamente, se
recomienda descomponer primero las frmulas (conjuntivas) y despus las (disyuntivas).
[nodos 3-5] Optamos por utilizar la frmula 2 (, conjuntiva): da lugar a una expansin lineal de esa
rama (nodos 3 y 4). Y seguimos expandiendo: estamos en el nodo 4 y podemos expandir esa
rama utilizando cualquiera de las frmulas de la misma. Entre las diversas opciones, se opta por
utilizar la propia frmula 4: la doble negacin se puede expandir como sin negacin (nodo
5).
[nodos 6-7] En el nodo 5 se decide expandir la frmula 1 (, disyuntiva), que bifurca la rama (nodos
6 y 7). La rama del nodo 6 se puede cerrar inmediatamente: entre las frmulas de esa rama
(1-6) hay tanto una frmula (la 6) como su negacin (en 5).
[nodos 8-9] En la rama del nodo 7 no se observa an este tipo de contradiccin. Pero todava se
pueden expandir frmulas de esa rama; en concreto, la propia frmula 7 (de tipo ). Se obtienen
los nodos 8 y 9. Y el nodo 9 es la negacin de la frmula del nodo 3, en esa misma rama desde
la raz.
El rbol se ha cerrado. Luego el conjunto de partida ( en nodo 1, en nodo 2) era insatisfacible.
As que se ha demostrado que , es decir, que |=.
Ejemplo 2.72 El rbol de la gura (g. 2.8) es igual al del ejemplo previo (g. 2.7). Compare las
frmulas de uno y otro: todas las frmulas del segundo ejemplo se obtienen, por sustitucin uniforme,
de las del primero. Observe cmo se produce el cierre del segundo ejemplo: donde antes se cerraban
en frmulas atmicas, ahora se pueden cerrar en sus frmulas sustituyentes.
El rbol de la gura (g. 2.9) es ya una primera incursin en lgica de predicados. Sin embargo,
no se van a necesitar aqu reglas adicionales: tambin es una instancia por sustitucin del primer rbol
considerado. Compruebe qu frmula ha sustituido a qu proposicin.
2.4.2 Notacin uniforme
En lgica de predicados, no todas las relaciones de consecuencia entre frmulas tienen raz puramente
conectiva (proposicional). Por eso se requieren nuevas reglas de inferencia. En concreto, en este
sistema, se aadirn dos nuevas reglas:
1. una, para manipular frmulas universalmente cuanticadas (tipo )
2.4. Tablas semnticas 95
1. p qr))
2. r p)

3. r

1
2

4. p

2
2

5. p
4

6. p
5

1
1

7. qr)

2
1

8. q

1
7

9. r
3

2
8
Figura 2.7: Tableau que conrma que p qr) r p
1. p p

) qq

) r r

)))
2. r r

) p p

))

3. r r

1
2

4. p p

2
2

5. p p

)
4

6. p p

)
5

1
1

7. qq

) r r

))

2
1

8. qq

1
7

9. r r

)
3

2
8
Figura 2.8: p p

) qq

) r r

)) r r

) p p

)
96 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
2. otra, para manipular frmulas existencialmente cuanticadas (tipo )
As, toda frmula en este sistema es (intrnsecamente) conjuntiva (), disyuntiva (), universal
(), existencial () o una doble negacin ( ).
La tabla (tabl. 2.4) resume las frmulas que se consideran intrnsecamente universales () y exis-
tenciales (), junto a su expansin. Todas ellas producen una expansin del rbol en un slo nodo. No
producen, por tanto, bifurcacin del rbol.
Ejemplo 2.73 Considere la frmula:
xzPz Qx) wRwa)
es de tipo existencial (). Su subfrmula inmediata:
zPz Qx) wRwa)
es de tipo (). Sus subfrmulas inmediatas:
zPz Qx) wRwa
son, respectivamente, () y (). Y la subfrmula:
Pz Qx)
es de tipo ().
2.4.3 Reglas de expansin y
En ambos tipos de frmulas la expansin aporta un slo nodo. En concreto, la subfrmula inmediata:
la frmula que resta cuando se omite el cuanticador principal. Ms precisamente, una instancia por
sustitucin de esta subfrmula. El prrafo siguiente expone cules pueden ser las cadenas sustituyen-
tes. Ms adelante se determinar qu se debe sustituir y con qu restricciones.
Parmetros Cada lenguaje de primer orden ja sus propias constantes y funciones. Si se pretende
que el lenguaje sirva, por ejemplo, para razonar sobre nmeros naturales, debe incluir una constante
(que se asignar al 0) y una funcin (la funcin sucesor).
Las demostraciones sobre frmulas de un lenguaje suelen requerir, como herramienta, el uso de
constantes auxiliares. A estas constantes adicionales se les denomina parmetros. As, las demos-
traciones sobre frmulas de un cierto lenguaje L se describen usando frmulas del lenguaje L
par
:
extensin del L por adicin de estas constantes.
Las cadenas sustituyentes en la expansin sern, segn los casos, parmetros o trminos cerrados:
trminos de L
par
que no incluyen variables.
Regla de expansin Las frmulas son del tipo x x. Su expansin es un nico nodo de
la forma x,p) x,p) (respectivamente), donde todas las apariciones libres en de la variable
del cuanticador se han sustituido por el mismo parmetro p. Este parmetro, esta constante auxiliar,
debe ser nueva en el rbol: no puede gurar en ninguna frmula previa (realmente, basta que sea
nueva en la rama).
De una frmula como xPx no tiene por qu ser consecuencia Pa. Sin embargo, si xPx es satis-
facible, tambin lo ser Pa. Y estamos trabajando en un sistema que trata de decidir la satisfacibilidad
de un conjunto de frmulas.
2.4. Tablas semnticas 97
Cada instanciacin debe hacerse sobre una constante nueva. De lo contrario, esta constante tendra
unas propiedades (jadas en otras frmulas, donde aparece) que pueden modicar (innecesariamente)
la decisin nal sobre la satisfabilidad del conjunto.
Este cuidado se mantiene en toda manipulacin de frmulas de primer orden. Si no se considera,
se puede llegar a armar (errneamente) que siempre que hay alguien que tiene la propiedad P y
hay alguien que tiene la propiedad Q, entonces alguien tiene ambas propiedades. Un razonamiento
errneo (en deduccin natural) sera: puesto que alguien tiene la propiedad P, llammosle a, luego
Pa. Puesto que alguien tienen la propiedad Q, llammosle a, luego Qa. Entonces, Pa Qa. Luego
alguien tiene (a la vez) la propiedad P y la Q.
Regla de expansin Las frmulas son del tipo x x. Su expansin es un nico nodo
de la forma x,t) x,t) (respectivamente), donde todas las apariciones libres de la variable del
cuanticador se han sustituido por el mismo trmino t. Este trmino debe ser cerrado: no debe incluir
variables, slo constantes y funciones de L o constantes auxiliares.
La particularizacin de una frmula universal no requiere de ningn cuidado especial: lo que es
verdadero para todo elemento del universo lo ser para el que represente al trmino t.
Todas las reglas de expansin se recogen en la tabla (tabl. 2.5).
2.4.4 Ejemplos
Ejemplo 2.74 El rbol de la gura (g. 2.10) muestra que:
xPx yQy yxPx Qy)
[nodos 1-2]Respectivamente, hiptesis y negacin de la supuesta conclusin.
[nodos 3-4] Expansin () de la frmula 1. Estratgicamente, siempre es preferible expan-
dir primero las frmulas proposicionales ( y ), luego las existenciales () y nalmente las
universales () para intentar cerrar.
[nodo 5] Expansin de la frmula 2 (universal, ), porque no exista ninguna frmula existencial
en la rama 1-3. Se puede instanciar y por cualquier parmetro.
[nodo 6] Expansin de la frmula 5 (existencial, ). El parmetro de la instanciacin debe ser
nuevo: b.
[nodos 7-8]Expansin de la frmula 6 ()
[nodo 9]Aprovechando que ya existe Pb en el nodo 8, expandiremos la frmula 3 (universal).
Como se puede escoger cualquier trmino, elegiremos instanciarla para b, cerrando esta rama.
[nodos 10-14] Se procede de manera anloga (indicada en el rbol). Tan slo merece resear
la eleccin de parmetros. El de la lnea 10 deba ser un parmetro nuevo en la rama. Se ha
escogido incluso nuevo en el rbol (c).
[nodos 11-14]El parmetro de la lnea 11 proviene de una sustitucin universal: poda ser cual-
quiera. Como ya exista Qc previamente, se escoge asimismo Qc. El parmetro de la lnea 12
deba ser nuevo: d. La eleccin correcta de la instancia universal en la lnea 11 acaba favore-
ciendo el cierre de esta ltima rama en 14.
Ejemplo 2.75 La tabla (2.11) conrma que
xyRxy Qy) xyRxy zQz
98 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
1. xPx yQy zRz))
2. zRz xPx)

3. zRz

1
2

4. xPx

2
2

5. xPx
4

6. xPx
5

1
1

7. yQy zRz)

2
1

8. yQy

1
7

9. zRz
3

2
8
Figura 2.9: xPx yQy zRz) zRz xPx
conjuntivas disyuntivas

1

2

1

2
X Y X Y X Y) X Y
X Y) X Y X Y X Y
X Y) X Y X Y X Y
X Y) X Y X Y X Y
X Y) X Y X Y X Y
X Y X Y X Y) X Y
X Y X Y X Y) X Y
X Y X Y X Y) X Y
Tabla 2.3: Notacin uniforme, conectivas binarias
universales existenciales
t) a)
xX Xt) xX Xa)
xX Xt) xX Xa)
Tabla 2.4: Notacin uniforme, frmulas cuanticadas
2.4. Tablas semnticas 99
conectivas monarias:
X
X

conectivas binarias:

1
|
2
cuanticador universal:

t)
(para cualquier trmino t cerrado de L
par
)
cuanticador existencial:

p)
(para cualquier parmetro p nuevo)
Tabla 2.5: Reglas de expansin de un tableau
1. xPx yQy
2. yxPx Qy)

3. xPx

1
1

5. xPx Qa)
2

6. PbQa)
5

7. Pb

1
6

8. Qa

2
6

9. Pb
7
3
4. yQy

2
1

10. Qc
4

11. xPx Qc)


2

12. Pd Qc)
11

13. Pd

1
12

14. Qc
10

2
12
Figura 2.10: Tableau que conrma que xPx yQy yxPx Qy)
100 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
1. xyRxy Qy)
2. xyRxy

3. zQz

4. yRay Qy)
1

5. Rab Qb)
4

6. Rab

1
5

8. yRay
2

9. Rab
8
8
7. Qb

2
5

10. Qb
7
3
Figura 2.11: Tableau que conrma que xyRxy Qy) xyRxy zQz
2.5 Resolucin
2.5.1 Forma prenexa
Toda frmula de primer orden admite innitas frmulas equivalentes: frmulas satisfacibles exacta-
mente por los mismos modelos. Dos frmulas equivalentes son dos expresiones sintcticas distintas
que signican lo mismo (sobre esta semntica).
El objetivo de esta seccin se resume en pocas palabras: dada una frmula cualquie-
ra, encontrar una frmula equivalente tal que todos sus cuanticadores estn situados al
principio de la frmula.
Ejemplo 2.76 El lector aprender, a lo largo de esta seccin, a calcular que, dada la frmula:
xPx yQy) twRtw
cualquiera de las siguientes frmulas son equivalentes a ella (y por tanto, entre s):
xytwPx Qy) Rtw)
yxtwPx Qy) Rtw)
txywPx Qy) Rtw)
Sin embargo, entre otras muchas, no ser equivalente a las anteriores:
wxytPx Qy) Rtw)
ni ninguna otra donde w aparezca antes de t.
2.5. Resolucin 101
Lo primero que hay que jar es que esto es posible: efectivamente, se demuestra que para toda
frmula existen frmulas prenexas equivalentes. Inmediatamente despus la pregunta es cmo: exis-
te un procedimiento que permita calcular una frmula prenexa equivalente a una frmula dada?. El
desarrollo de esta seccin responde esta pregunta.
Equivalencias bsicas El Teorema de Reemplazo permite calcular sintcticamente frmulas equi-
valentes entre s: reemplace, en la frmula inicial, una de sus subfrmulas por otra equivalente y
obtendr una frmula global nal equivalente a la frmula inicial.
Este teorema comienza a ser til cuando se dispone de algunas equivalencias elementales, que
permiten sustituir unas subfrmulas por otras. Para nuestro objetivo, entre otras, ser imprescindible
utilizar las equivalencias mostradas en la tabla (tabl. 2.6).
Siempre que la funcin no contenga apariciones libres de la variable x:
x x) x x)
x x) x x)
x x) x x)
x x) x x)
Tabla 2.6: Equivalencias de inters para alcanzar la forma prenexa
A estas equivalencias habr que aadir otras que se utilizarn para:
introducir negaciones: x x, x x (ms las equivalencias de De Mor-
gan)
renombrar variables: x yx,y) x yx,y)
permutar cuanticadores del mismo tipo: xy yx xy yx
Ejemplo 2.77 Dada la frmula xPxyQy, si se pretende desplazar el cuanticador x, se observa
que es de la forma x donde no tiene apariciones libres de x. Luego:
xPx yQy xPx yQy)
Alternativamente, la frmula inicial era tambin de la forma y donde en no hay apariciones
libres de y (del cuanticador que se desea desplazar). Luego, tambin:
xPx yQy yxPx Qy)
Siguiendo con este ltimo caso, la subfrmula xPx Qy) es de la forma x , donde no
contiene x libres, luego xPx Qy) xPx Qy) . Y por tanto:
xPx yQy yxPx Qy) yxPx Qy)
Alternativamente se poda haber obtenido:
xPx yQy xPx yQy) xyPx Qy)
Le recomendamos que interprete este sencillo ejemplo sobre algn universo pequeo (de 2 o 3
elementos). Ajuste la interpretacin hasta que satisfaga a una de las frmulas. Compruebe que todas
las dems frmulas equivalentes se satisfacen. Si tiene dicultades para interpretar alguna de las
frmulas convendra, en este punto, que repase las notas sobre semntica de primer orden.
102 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
Ejemplo 2.78 Considere la frmula xPx xQx. Puesto que es una frmula condicional:
xPx xQx xPx xQx xPx xQx xPx xQx)
Este ltimo paso se justica porque la frmula era de la forma x, donde en no haba x libres.
Conviene que lo contraste sobre una interpretacin sencilla.
No obstante, llegados a este punto no se puede conseguir la forma prenexa nal. En la subfrmula
Px xQx) no se puede desplazar de forma equivalente el cuanticador x puesto que la otra
frmula (Px) s contiene apariciones libres de la variable del cuanticador:
Px xQx) xPx Qx)
Basta ver que U = {1 2} con P = {1} Q = 0 satisface la frmula derecha: efectivamente existe
un elemento (2) que satisface Px Qx). Esta misma interpretacin, con la asignacin x
A
= 1 para
la variable libre x sigue satisfaciendo la frmula derecha, puesto que no hay variables libres en ellas.
Pero ya no satisface la frmula la izquierda.
Sin embargo, puesto que xQx yQy, an se puede obtener:
Px xQx) Px yQy) yPx Qy)
Y se consigue la frmula prenexa equivalente a la inicial:
xPx xQx) xPxxQx) xPxxQx) xPxxQx) xPxyQy) xyPxQy)
En este ltimo ejemplo siga la pista del cuanticador existencial del antecedente: acaba produ-
ciendo un cuanticador universal en la cabecera de la frmula prenex. Intrnsecamente, su signicado
no era existencial sino universal puesto que estaba en el mbito de una negacin. Este comportamiento
es generalizable y produce nuevas relaciones de equivalencia:
Siempre que la funcin no contenga apariciones libres de la variable x:
x x ) x x )
x x ) x x )
Tabla 2.7: Otras equivalencias de inters para alcanzar la forma prenexa
Ejemplo 2.79 Los inconvenientes mostrados en el ejemplo previo se pueden evitar desde el principio.
Basta renombrar variables inicialmente. As, la frmula:
yxRxy xSxy yPy))
puede reescribirse equivalentemente como:
zxRxz wSwz yPy))
donde cada cuanticador afecta a una variable distinta. A partir de aqu, uno de los posibles caminos
hacia la forma prenexa es:
2.5. Resolucin 103
1. yxRxy xSxy yPy)) zxRxz wSwz yPy)) [renombrar variables]
2. zxRxz wSwz yPy)) [eliminar ]
3. zxRxz wSwz yPy)) [introducir ]
4. zxRxz wSwz yPy)) [introducir ]
6. zxRxz wSwz yPy)) [introducir ]
7. zxRxz ywSwz Py)) [desplaz. cuantif.]
8. zxRxz ywSwz Py)) [desplaz. cuantif.]
9. zyxRxz wSwz Py)) [desplaz. cuantif.]
10. zyxRxz wSwz Py)) [desplaz. cuantif.]
11. zyxwRxz Swz Py)) [desplaz. cuantif.]
Los cuanticadores de una frmula prenexa constituyen la cabecera de la frmula. La subfrmula
restante (sin cuanticadores ya) se denomina matriz de la frmula.
En este punto, el lector puede volver al ejemplo (2.76). Trate de obtener las frmulas prenexas all
expuestas e intente justicar por qu no se podan desplazar los cuanticadores en cualquier orden.
2.5.2 Funciones de Skolem
En la seccin (secc. 2.4.3) ya se present el concepto de parmetro: constantes auxiliares que se
introducan en el curso de una demostracin. Facilitaban las demostraciones sobre las frmulas de un
cierto lenguaje aunque no eran constantes de ese lenguaje.
Las derivaciones por resolucin requieren introducir no slo constantes auxiliares sino tambin
funciones auxiliares, que se denominan constantes y funciones de Skolem. Su eleccin adecuada en
cada caso suele denominarse skolemizacin eskolemizacin de una frmula. Se utilizan para
eliminar cuanticadores existenciales a costa de introducir tales elementos auxiliares.
El objetivo de esta seccin es: dada una frmula que puede incluir cuanticadores
existenciales, generar otra frmula sin tales cuanticadores pero que sea tan satisfacible
como la anterior.
Observe que el proceso que se va a describir no genera necesariamente una frmula equi-
valente a la anterior. Es decir, no en todos los modelos donde la inicial se satisfaga lo har
la resultante. Sin embargo, si existe algn modelo donde la inicial se satisface existir
otro (quiz distinto) que satisface la resultante.
Ejemplo 2.80 Dada una frmula como xyRxy, su eskolemizacin produce yRay. Si la frmula
con el existencial era satisfacible en algn modelo es intuitivo es porque exista una asignacin para x
en ese modelo tal que yRxy se satistaca. Utilizando ese mismo elemento del universo para interpretar
la constante a se consigue que yRay sea tambin satisfacible.
Obviamente, sobre ese mismo modelo, si no se interpreta adecuadamente la constante se satisfar
la frmula existencial pero no la otra. De hecho,
yRay |=xyRxy pero xyRxy |=yRay
La reexin anterior slo nos sirve para resaltar que no son expresiones equivalentes. Quedmo-
nos con la propiedad que efectivamente conserva este proceso:
Satis f aciblexyRxy) si slo si Satis f acibleyRay)
104 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
El camino total en que estamos inmersos puede describirse as: para conrmar que una frmula
es consecuencia de otras, niguela e inclyala entre stas; escriba todas estas frmulas en forma
clausulada y determine si este conjunto es insatisfacible por Resolucin.
La eskolemizacin forma parte del proceso de escritura de una frmula en su forma clausulada.
Luego la forma clausulada no es equivalente a la frmula inicial, sino tan slo igualmente satisfaci-
ble. Pero eso es justo lo que requiere un sistema deductivo que trata de detectar sintcticamente la
insatisfacibilidad.
La explicacin del proceso de eskolemizacin se simplica bastante si se considera que las fr-
mulas estn en forma prenexa. No obstante, no es un paso previo necesario.
Ejemplo 2.81 Una frmula como xyQyx podra expresar existe alguien (al menos uno) tal que
todo el mundo le quiere. Con esta misma lectura, yxQyx se entendera como todo el mundo tiene
alguien (al menos uno) al que quiere.
En la primera frmula, puesto que hay alguien a quien todo el mundo quiere, llammosle a y
escribamos yQya todo el mundo quiere a a. Recuerde que estas dos frmulas no son equivalentes
pero s igualmente satisfacibles.
En el segundo caso no se puede elegir una constante como receptor universal del cario de todos.
De hecho en yxQyx cada elemento debe apreciar al menos a uno, que puede coincidir o diferir
del apreciado por otro elemento. La frmula yQy f y) es ms restrictiva: ahora cada elemento y se
relaciona slo con uno, su f y), aunque an se puede coincidir en el afecto a un mismo elemento.
Volviendo al formalismo puro y duro: yxQyx es satisfacible si y slo si yQy f y) lo es.
En general, dada una frmula prenexa, para eliminar un existencial es preciso considerar cuntos
cuanticadores universales la preceden. La variable del existencial, en la matriz, se debe sustituir por
una funcin nueva de las variables de los cuanticadores universales precedentes.
Ejemplo 2.82 Al eliminar (en el proceso de eskolemizacin) los existenciales de las siguientes fr-
mulas se obtiene:
1. xyzQzx Syz) xyQf xy)x Sy f xy))
2. xyzwRzxwSyz) xywRf xy)xwSy f xy))
3. xyztwRzxwTyzt) xywRf xy)xwTy f xy)gxy))
4. xtyzwRzxwTyzt) xywRf xy)xwTy f xy)hx))
5. txyzwRzxwTyzt) xywRf xy)xwTy f xy)a)
6. tzxywRzxwTyzt) xywRbxwTyba)
Las constantes de Skolem se pueden interpretar como una funcin de Skolem de cero argumentos; es
decir, se producen cuando no hay ningn cuanticador universal delante del existencial eliminado.
2.5.3 Forma clausulada
Dada una frmula inicial cualquiera se puede obtener una expresin prenexa equivalente
prenex
.
Si incluyera existenciales, mediante constantes y funciones de Skolem, se puede obtener una frmula
prenexa sin ellos
sko
prenex
, que resulta tan satisfacible como las anteriores. Supuesta esta frmula
sko
prenex
,
2.5. Resolucin 105
el objetivo de esta seccin es reescribir equivalentemente la matriz de esta frmula hasta
expresarla como una conjuncin de clusulas.
Si se han seguido los pasos sugeridos en las secciones previas, sobre la frmula original:
1. se independizaron los mbitos, renombrando las variables utilizadas en ms de un cuanticador
2. se eliminaron bicondicionales (reescribindolos como condicionales) y condicionales (como
no antecedente consecuente)
3. se introdujeron las negaciones (cambiando el tipo de cuanticador y utilizando las leyes de De
Morgan)
4. se desplazaron sucesivamente todos los cuanticadores a la cabeza; estratgicamente conviene
desplazar al inicio los existenciales primero, si es posible
5. se eliminaron los existenciales mediante el uso de constantes y funciones de Skolem (constantes
y funciones nuevas en la frmula para cada existencial eliminado)
En este punto se tiene una frmula matriz, con sus variables universalmente cuanticadas en la ca-
becera, donde las negaciones no afectan ms que a frmulas atmicas (estn pegadas directamente a
los predicados) y donde las nicas conectivas binarias son conjunciones y disyunciones. Basta enton-
ces aplicar adecuadamente la distributividad entre ellas para reescribir la matriz como una conjuncin
de clusulas.
Un ejemplo de clusula es: Pa Rx f x) Qby) donde las frmulas atmicas (negadas o no)
estn unidas por disyunciones. Si se denomina literal a una frmula atmica o a su negacin, una
clusula C se puede denir como una disyuncin de literales: C = l
1
. . . l
n
). La matriz debe tener la
forma de una conjuncin de tales clusulas: C
1
. . . C
k
.
Ejemplo 2.83 Los pasos que se han enumerado se pueden apreciar en el siguiente desarrollo:
xyRxy xPx yQy) xyRxy zPz wQw)
xyRxy) zPz wQw) xyRxy) zPz wQw)
xyRxy) zPz wQw) xyRxy) zwPz Qw)
zxywRxy Pz Qw)) xwRx f x) PaQw))
xwRx f x) Pa) Rx f x) Qw))
La matriz de esta ltima frmula est efectivamente en forma normal conjuntiva: consta de dos clusu-
las unidas por una conjuncin. Ambas clusulas comparten algunas variables en comn (en concreto,
x). En este punto siempre se puede (y se debe, ya que ser til) evitar conexin entre clusulas:
xwRx f x) Pa) Rx f x) Qw))
es equivalente a
xRx f x) Pa) wRx f x) Qw))
utilizando, en el otro sentido, la equivalencia que permita desplazar cuanticadores a la cabeza, y
xRx f x) Pa) xwRx f x) Qw))
puesto que x) xx) distributividad que presenta el universal slo frente a la conjun-
cin (as como el existencial frente a la disyuncin). Renombrando variables:
xRx f x) Pa) twRt f t) Qw))
106 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
y volviendo a colocar los cuanticadores en cabeza:
xtwRx f x) Pa) Rt f t) Qw))
En resmen: llegados a la forma normal conjuntiva, a clusulas distintas se les puede (y debe) inde-
pendizar sus variables comunes, renombrndolas.
Lo que resta es un casi un mero cambio notacional: prescinda de los cuanticadores y simplemente
muestre el conjunto de clusulas de la frmula:
{Rx f x) Pa) Rt f t) Qw)}
o, incluso, dena cada clusula como el conjunto de sus literales:
{{Rx f x) Pa} {Rt f t) Qw}}
2.5.4 Unicacin
Introduccin
Recordemos brevemente el Principio de Resolucin para lgica de proposiciones. Suponga que una
interpretacin satisface las siguientes dos clusulas:
pr t) r q)
tales que una contiene un literal (r) y la otra su complementario (r). Sea cual sea el valor asignado
a r esta interpretacin slo garantiza la satisfaccin de una de las dos clusula. En la otra, debe ser
verdadero algn literal para que la clusula lo sea. Esto garantiza que, en una clusula que los contenga
a todos (salvo r y r), al menos uno de estos literales ser verdadero frente a la misma interpretacin.
Es decir, que toda interpretacin que satisface:
pr t) r q)
tambin satisface
pt q)
No es difcil aceptar el mismo principio sobre clusulas con predicados sin variables. Toda inter-
pretacin que satisface:
PaRbaTcb) RbaQe)
tambin satisface
PaTcbQe)
Este principio no se verica si los alguno de los trminos del literal sobre el que se resuelve
fueran distintos: si en vez de Rba y Rba aparecieran Rba y Rca. Otra cosa sera si se cuenta,
respectivamente en cada clusula, con Rxa y Rba. Por ejemplo, si se parte de las clusulas:
PaRxaTcx) RbaQe)
Sobre ellas no es aplicable directamente el principio de resolucin previo; no obstante, si son satisfa-
cibles ambas tambin lo sern las siguientes dos clusulas:
PaRbaTcb) RbaQe)
obtenidas de las anteriores por instanciacin (por sustitucin) de la variable x por el trmino b. Y ya
s se podr aplicar el principio de resolucin, generando la clusula:
PaTcbQe)
2.5. Resolucin 107
Al proceso previo de instanciacin se le denomina unicacin. Se produce utilizando
sustituciones. El objetivo es que en dos referencias a un mismo predicado sus trminos
(los sujetos del predicado) lleguen a ser respectivamente idnticos en ambas referen-
cias.
Respetada cierta condicin, este proceso de sustitucin no altera la satisfacibilidad. Si
dos clsulas eran satisfacibles, tambin lo sern las clusulas resultantes de estas sustitu-
ciones. Adems, si lo que se ha unicado son literales complementarios (un predicado
en una clusula y su negacin en la otra), se puede aplicar el Principio de Resolucin.
ste nos facilita adicionalmente una tercera clusula a partir de estas dos, tan satisfacible
como ellas.
Puesto que ninguna de las acciones que se ejecutan (unicacin y resolucin) alteran la
satisfacibilidad: si se parte de un conjunto de clusulas satisfacible nunca se obtendr la
clusula vaca (seal sintctica inequvoca de contradicciones en el conjunto analizado).
Para jar ideas, si se parte de 10 clusulas y se utilizan la unicacin y resolucin adecuadamente,
se va ampliando este conjunto de clusulas garantizando que es tan satisfacible como el de partida.
Si el proceso de ampliacin incluye la clusula vaca, se puede ya armar que el conjunto inicial de
clusulas (o cualquiera de sus sucesivas expansiones) es insatisfacible.
Despus de esta declaracin de intenciones y de rumbo, slo faltan adjuntar las deniciones y
algoritmos que las materializan.
Unicadores
Considere las siguientes dos frmulas atmicas:
Px f gc)) x) Pb f y) b)
donde el mismo predicado ternario P est relacionando, respectivamente, ternas de trminos distintos.
Si las dos ternas fueran idnticas, estas dos frmulas ya estaran unicadas. Y si el predicado en una
y otra no fuera el mismo, no seran unicables.
Observe tambin que las deniciones sobre unicacin, sin ms, no requieren contar con un pre-
dicado P) y su negacin P). Se centran slo en los trminos que hay dentro del predicado. Ser
posteriormente, cuando se aplique Resolucin, cuando se escogern pares tales que uno slo est
adems negado.
Ejemplo 2.84 Para unicar las frmulas mencionadas:
Px f gc)) x) Pb f y) b)
se puede intentar inicialmente unicar los primeros trminos. Como uno de ellos es una variable, la
sustitucin
1
= x,b servir:
Pb f gc)) b) Pb f y) b)
Los segundos trminos empiezan igual en ambos predicados. Cuando comienzan a diferir, aparece
una variable y en uno y otro subtrmino en el otro. Basta ejecutar la sustitucin
2
= y,gc). Observe
que no bastara con la susticin y,c: la variable debe sustituirse por el subtrmino mximo en que no
coinciden. El resultado nal de este proceso es:
Pb f gc)) b) Pb f gc)) b)
108 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
que se obtiene de las clusulas originales por aplicacin sucesiva de
1
y
2
. Una sustitucin total,
nica, que produce este resultado es
3
=
1

2
={x,b y,gc)}
La unicacin de todos los pares de trminos correspondientes de un par de predicados se puede
descomponer en pasos. Cada uno de ellos considera sucesivamente la unicacin de un nico par de
trminos correspondientes. Hasta que se diga lo contrario, nos limitaremos a estudiar este problema.
Ejemplo 2.85 Si se precisara unicar los trminos t
1
= f gc hx))) y t
2
= f gc y)) se deberan
recorrer ambos desde la izquierda hasta que se detecte la posicin en que comienzan a diferir. En
este caso dieren en los subtrminos hx) en t
1
e y en t
2
. Es decir, el rbol de t
1
y t
2
es idntico
salvo en estos dos subrboles respectivamente. A estos subtrminos de desacuerdo se les denominar
subtrminos crticos.
En este caso, como uno de los subtrminos crticos es una variable, basta efectuar la sustitucin
de esta variable por el otro subtrmino: y,hx).
No es posible unicar si ninguno de los dos subtrminos es una variable, sino constantes o funcio-
nes. Por ejemplo: en t
1
= f gc hx))) y t
2
= f gc b)) en t
1
= f gc hx))) y t
2
= f gc gx))).
Ejemplo 2.86 Al intentar unicar t
1
= f x hgx)) y t
2
= f gy) hz)) se observa que el primer par
de subtrminos crticos es x en t
1
y gy) en t
2
. Si se consigue unicar ambos an habr que unicar
los subtrminos crticos z y gx).
Para unicar el primer par de subtrminos crticos basta ejecutar la sustitucin
1
= x,gy). Se
obtiene entonces t
1
= f gy) hggy))) y t
2
= f gy) hz)). Luego, los siguientes subtrminos cr-
ticos unicables ya no son los que se detectaron: ahora son z en t
2
y ggy)) en t
1
. Basta ejecutar la
sustitucin
2
= z,ggy)) para obtener: t
1
=t
2
= f gy) hggy))).
Una sola sustitucin que unica ambos trminos se calcula por composicin de las anteriores:
=
2

1
. Y es tal que t
1
=t
2
.
Unicacin de un par de trminos Para un nico par t
1
y t
2
de trminos (de argumentos de un
predicado), se puede proceder a su unicacin mediante el siguiente algoritmo:
Sea inicialmente la sustitucin identidad (la que sustituye cada variable por s misma);
WHILE t
1
=t
2
DO:
(principio)
determine un par de subtrminos crticos s
1
y s
2
entre t
1
y t
2

IF ni s
1
ni s
2
es una variable
THEN no unicables
ELSE
sea var la variable s
1
o s
2
(si ambas lo son, escoja una)
sea term el otro trmino (s
1
o s
2
) no asignado a var
IF la variable var aparece en term
THEN no unicables
ELSE recalcule componindola con la sustitucin var/term; es decir: :=
{var,term}
(n)
2.5. Resolucin 109
En el pseudocdigo anterior, no unicables supone una salida del bucle, sin xito. Puede deberse
a que ninguno de los subtrminos crticos sea una variable, caso del par h f x)) y f a) del par
b y gw). O puede deberse a que se intenta unicar pares como x y f x) z y g(h(z,a)),
donde la variable sustituida aparece en el trmino que debe sustituirla.
En este ltimo caso, la unicacin de x y de f x), que se puede interpretar como la solucin
de x = f x), no es generalmente garantizable. A la comprobacin de que la variable no aparece en el
trmino sustituyente se la denominar comprobacin de aparicin (occurs check, en ingls).
Ejemplo 2.87 Tratemos de unicar los trminos
t
1
= f x gx a) z) t
2
= f hz) y gb y))
El primer par de subtrminos crticos es x y hz). Como uno de ellos es una variable (x) y sta no
ocurre en el otro trmino: se efecta la sustitucin
1
= x,hz). Entonces:
t
1
= f hz) ghz) a) z) t
2
= f hz) y gb y))
Todava =
1
es tal que t
1
= t
2
, luego se contina ejecutando el bucle. El siguiente par de
subtrminos crticos es y y ghz) a). Igual que en el caso anterior, no hay inconveniente: se efecta
la sustitucin
2
= y,ghz) a). Entonces:
t
1
= f hz) ghz) a) z) t
2
= f hz) ghz) a) gb ghz) a)))
Como para este =
1

2
an se verica t
1
= t
2
, se contina la ejecucin. El siguiente par de
subtrminos crticos es:
z ghz) a)
donde la variable z ocurre en el trmino ghz) a), luego no resultan unicables.
Si el algoritmo propuesto naliza con xito no slo se obtiene la unicacin de ambos trminos,
sino que se garantiza adems que se han unicado con el unicador ms general posible.
Para introducir este ltimo concepto observe que f x) y f y) se pueden unicar mediante la
sustitucin ={x,a y,a}, o tambin mediante ={x,hz) y,hz)}, o tambin mediante ={x,y}.
El unicador es el unicador ms general porque instancia, particulariza lo mnimo necesario
para que ambos trminos coincidan. Particularizar ambos trminos a la misma constante a tambin
produce la unicacin, pero es una unicacin ms fuerte que la necesaria.
En concreto, si se unican ambos trminos mediante se obtiene: t
1
= t
2
= f y). Desde aqu
an se puede obtener el mismo resultado que hubiera supuesto la aplicacin directa de : t
1
=
t
2
= f a). Basta aplicar la sustitucin {y,a} sobre t
1
= t
2
= f y). O la sustitucin sobre los
trminos originales.
Ms formalmente, dadas dos sustituciones
1
y
2
se dice que
2
es ms general que
1
si existe
otra sustitucin tal que
1
=
2
.
Unicacin de literales Ya se ha precisado cmo unicar, si es posible, dos trminos t y t

corres-
pondientes. Volvamos al problema de unicar Pt
0
t
1
. . . t
n
) y Pt

0
t

1
. . . t

n
). Comencemos por
unicar un primer par de trminos correspondientes (p.ej. t
0
y t

0
), encontrando su unicador ms
general. Entonces:
[Pt
0
t
1
. . . t
n
)]
0
=Pt
0

0
t
1

0
. . . t
n

0
) [Pt

0
t

1
. . . t

n
)]
0
=Pt

0
t

0
. . . t

0
) con t
0

0
=t

0
110 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
Es decir, las sustituciones de
0
se aplican tambin a los restantes trminos. Si se desea unicar
el par de trminos en segunda posicin, stos son ahora t
1

0
y t

0
. Si se encuentra un unicador
1
para ellos
[Pt
0
t
1
. . . t
n
)]
0

1
[Pt

0
t

1
. . . t

n
)]
0

1
producen:
Pt
0

1
t
1

1
. . . t
n

1
) Pt

1
t

1
. . . t

1
)
donde ya:
t
0

0
)
1
= t

0
)
1
y t
1

0
)
1
= t

0
)
1
El proceso se repite hasta obtener la composicin
0

1
. . .
n
necesaria.
Ejemplo 2.88 Tratemos de unicar los dos siguientes literales:
P( x, f w), g f x) b) )
P( hy), y, g f h f t))) t) )
Para el primer par de trminos correspondientes se obtiene
0
= {x,hy)}. Aplicando esta susti-
tucin sobre ambos literales resulta:
P( hy), f w), g f hy)) b) )
P( hy), y, g f h f t))) t) )
Para el segundo par de trminos se obtiene
1
={y,f w)}. Su aplicacin produce:
P( h f w)), f w), g f h f w))) b) )
P( h f w)), f w), g f h f t))) t) )
Para unicar el tercer par de trminos se necesita primero que las w se sustituyan por t (para el
primer argumento) y luego que las t se sustituyan por b. El resultado de la composicin de ambas (el
resultado del algoritmo previo que unicaba este par) es
2
= {w,t}{t,b} = {w,b t,b}. Aplicando

2
:
P( h f w)), f w), g f h f b))) b) )
P( h f w)), f w), g f h f b))) b) )
Es decir,
[Px f w) g f x) b))]
0

2
= [Phy) y g f h f t))) t))]
0

2
donde
=
0

2
={x,hy)}{y, f w)}{w,b t,b} ={x,h f b)) y, f b) w,b t,b}
2.5.5 Resolucin
La resolucin, como en el caso proposicional, se produce sobre dos clusulas que contengan, respec-
tivamente, un literal y su complementario. Por ejemplo, en:
Px f y)) Qx) y Rz) Pa z)
se puede intentar la resolucin sobre los predicado P) y P); pero esto requiere unicar sus trmi-
nos:
Pa f y)) Qa) y R f y)) Pa f y))
El resultado de la resolucin es entonces la clusula:
Qa) R f y))
Este principio, junto a los desarrollos previos, facilita la ejecucin de los siguientes pasos:
2.5. Resolucin 111
1. Dado un conjunto de frmulas = {
1
. . .
k
}, se quiere comprobar si una frmula es
consecuencia de ellas. Nieguela y verique si el conjunto {} es insatisfacible.
2. Para ello, en este sistema, debe escribir cada frmula de este conjunto en forma clausulada:

m
C
1
. . . C
r
). Recuerde que, si se han introducido constantes o funciones de Skolem,
ambas expresiones no son equivalentes. No obstante,
m
ser satisfacible si y slo si lo son
todas sus r clusulas. Luego, el conjunto de frmulas analizado ser satisfacible si y slo si lo
son todas y cada una de las clusulas que se han producido.
3. Busque dos clusulas que contengan literales complementarios. Su unicacin, si es posible,
produce dos nuevas clusulas tan satisfacibles como las previas. La resolucin de stas produce
una nueva clusula tan satisfacible como las anteriores (an ms, consecuencia de ellas).
4. Si se obtiene la clusula vaca, el conjunto {} es insatisfacible.
Ejemplo 2.89 Comprobemos, por resolucin, que:
xPx yQy zRz) zRz xPx
Este mismo ejemplo ya fue resuelto mediante tablas semnticas (tabl. 2.9). Ambos sistemas comprue-
ban que:
{xPx yQy zRz) zRz xPx)}
es insatisfacible.
La forma clausulada de la primera frmula es:
1. xPx yQy zRz) xPx yQy zRz)
2. xPx yQy zRz)
3. xyzPx Qy Rz))
4. zPaQbRz))
5. zPaQb) PaRz))
6. PaQb) PaRz)
Luego la primera frmula es tan satisfacible como este par de clusulas. Observe que, en (3.), se
podan haber sacado los cuanticadores en cualquier orden. Interesa desplazar primero los existencia-
les para simplicar la eskolemizacin en (4.). Esta frmula (4) no es equivalente a la anterior, sino
igualmente satisfacible. Cada eliminacin de un existencial requiere una constante distinta. En (5) se
reescribre equivalentemente la matriz en forma normal conjuntiva. En (6) se omiten los cuanticado-
res universales, que quedan implcitos.
En una expresin como (5) siempre es posible volver a introducir los cuanticadores universales
y renombrar variables de forma tal que clusulas distintas no utilicen las mismas variables.
La forma clausulada de la segunda frmula es:
1. zRz xPx) zRz xPx)
2. zRz xPx
3. zRz xPx
4. Rc Px
112 Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN
Observe que el resultado son dos clusulas, no una. La frmula inicial es tan satisfacible como
estas dos clusulas. Se ha escogido la constante c porque no se haba utilizado hasta el momento.
El conjunto de dos frmulas iniciales es tan satisfacible como el conjunto de estas cuatro clausulas:
{PaQb) PaRz) Rc) Px)}
Utilizando unicacin y resolucin:
1. PaQb)
2. PaRz)
3. Rc)
4. Px)
5. Pa) 2 3 z,c
6. ) 4 5 x,a
Como se obtiene la clusula vaca, el conjunto de clusulas es insatisfacible.
Bibliografa complementaria
Cualquiera de los textos citados en el captulo de Lgica de Proposiciones aborda tambin su exten-
sin a Lgica de Primer Orden.
Entre los textos ms enfocados a su uso computacional se encuentrar [Huth y Ryan 2000], [Ben-
Ari 90], [Burris 98] y muy especialmente [Fitting 96]. Los lectores ms interesados por la fundamen-
tacin y uso en Matemticas pueden consultar [Ebbinghaus et al. 96], [Dalen 97] especialmente
[Mendelson 97].
Aunque no se citen repetidamente, existen varios compendios de inters sobre Lgica en Compu-
tacin e Inteligencia Articial, por ejemplo [Gabbay el al. 93-98] entre otros.
ctividades y evaluacin
El alumno dispone de ejemplos y actividades en el grupo de tutorizacin telemtica del curso, as
como exmenes resueltos de aos pasados.
Parte II
FORMALISMOS PARA
PROGRAMACIN
Captulo 3
PROGRAMACIN LGICA
Resumen
En este tema se presenta el paradigma de la programacin lgica, basado en los procedimientos
de deduccin de frmulas vlidas en sistemas de axiomas. En particular, se introduce, un eciente
mtodo de deduccin aplicable en sistemas de clusulas de Horn: la resolucin SLD. Este tipo de
resolucin constituye la base de la semntica operacional del PROLOG, el lenguaje de programacin
lgica ms difundido. Se analiza nalmente en qu medida este lenguaje verica los presupuestos de
la programacin lgica.
Objetivos
El objetivo principal de este tema no es ensear un lenguaje de programacin lgica, sino presentar
los fundamentos tericos de este paradigma de computacin y mostrar cmo los lenguajes como PRO-
LOG se apartan de la programacin lgica pura por motivos de eciencia. El alumno debe aprender
a interpretar un conjunto de clusulas de Horn como un programa lgico, y a simular manualmente
la ejecucin de dicho programa aplicando el mtodo de resolucin SLD. Debe asimismo conocer el
funcionamiento del motor de inferencia que implementan los intrpretes PROLOG y adquirir unos
conocimientos bsicos de la sintaxis de este lenguaje, de modo que sea capaz de disear programas
sencillos y utilizar adecuadamente sus predicados ms caractersticos (en particular, el predicado
de corte). Finalmente, se busca que el alumno repare en las particularidades del paradigma de la
programacin lgica e identique sus naturales campos de aplicacin, en el contexto global de los
paradigmas computacionales.
Metodologa
En el captulo anterior se ha mostrado cmo convertir una frmula de la lgica de predicados en
una frmula equivalente que tiene la forma clausulada. Se ha explicado tambin cmo extender las
tcnicas de resolucin al caso de la lgica de predicados, incorporando tcnicas de sustitucin y
unicacin, con el n de obtener un procedimiento coherente y completo para dictaminar la satis-
facibilidad de sus frmulas. En este tema se muestra cmo estas tcnicas sirven de base para la
implementacin de los denominados lenguages de programacin lgica.
En el paradigma de la computacin lgica, un problema se formaliza como una sentencia lgica
(denominada sentencia objetivo) que ha de probarse bajo los supuestos de un sistema de axiomas,
115
116 Captulo 3. PROGRAMACIN LGICA
que constituye el programa. La ejecucin del programa consiste en la prueba de satisfacibilidad de
la sentencia.
En este tema nos centraremos en el caso de particular inters en que los axiomas pueden ex-
presarse como clusulas de Horn. Veremos cmo en un sistema de clusulas de Horn es posible
demostrar la satisfacibilidad de una frmula aplicando un eciente mtodo de deduccin: la resolu-
cin SLD. Esta forma peculiar de resolucin constituye el fundamento de la programacin lgica y,
concretamente, es la base de la semntica operacional del difundido lenguaje PROLOG.
En la seccin 1 de este captulo mostramos cmo una frmula lgica puede interpretarse como
un programa que utiliza como motor de inferencia el mtodo de resolucin. En la seccin 2 deni-
mos el concepto de clusula de Horn, y otros conceptos relacionados de utilidad en el contexto de la
programacin lgica. En la seccin 3 exponemos el mtodo de resolucin SLD, que constituye un pro-
cedimiento de deduccin coherente y completo cuando se aplica en sistemas de clusulas de Horn, e
investigamos la eciencia de sus posibles implementaciones. Dedicamos la ltima seccin del captu-
lo al lenguaje PROLOG, mostrando cmo sus intrpretes implementan la resolucin SLD, y llamando
la atencin sobre cmo en la prctica algunas de sus construcciones vulneran los presupuestos de la
programacin lgica pura por motivos de eciencia.
3.1 Cmo interpretar una frmula lgica como un programa
3.1.1 Declaracin de programa versus algoritmo de solucin
Segn Kowalski, un algoritmo que resuelve un problema particular consta de dos componentes: la
lgica o declarativa, y el control. El componente lgico especica el conocimiento til para la reso-
lucin del problema, y el componente de control determina la forma en que ese conocimiento puede
utilizarse para resolverlo.
Ejemplo 3.1 El factorial de un nmero se dene como:
Factn) =

1 cuando n = 0
nFactn1) cuando n 0
denicin que constituye el componente lgico de cualquier algoritmo de clculo de la funcin
factorial.
As como el componente lgico de un algoritmo es nico, un programador puede usualmente
elegir entre varios diseos de componentes de control alternativos en funcin de sus requisitos de
eciencia, plataforma de implementacin, etc. En nuestro ejemplo, el cmputo del factorial puede
realizarse mediante dos algoritmos diferentes:
Entrada n
Paso
1
Fact = 1
Paso
2
I f n = 0 then return Fact
Paso
3
Fact = Fact n n = n1 go to Paso
2
y:
Entrada n
Paso
1
Fact = 1 n
1
= 0
Paso
2
I f n
1
= n then return Fact
Paso
3
n
1
= n
1
+1 Fact = Fact n
1
go to Paso
2
3.1. Cmo interpretar una frmula lgica como un programa 117
Podramos decir que el primer algoritmo calcula el factorial de arriba a abajo, es decir va de n a
0, aportando en cada iteracin un factor n1 al cmputo del factorial. El segundo algoritmo, por el
contrario, calcula el factorial de abajo a arriba, partiendo de la armacin expresada en el compo-
nente lgico como Fact0) = 1 y derivando de sta nuevas armaciones sucesivamente (Fact1) = 1,
Fact2) = 2,...) hasta encontrar la solucin. Ambos algoritmos generan las mismas respuestas, pero
la eciencia y el consumo de espacio de almacenamiento que requieren diere. Los dos algoritmos
constituyen dos diferentes componentes de control para el mismo componente lgico.
En la programacin algortmica, el nfasis se pone en disear algoritmos que resuelvan problemas,
de modo que al ejecutarlos se calcule la solucin. En la programacin lgica, por el contrario, el
nfasis se sita en el problema que se pretende resolver. El programador especica el componente
lgico de los algoritmos, es decir, el conjunto de condiciones que las soluciones satisfacen. Los
mecanismos genricos de inferencia incorporados en los intrpretes de los lenguajes lgicos permiten
deducir las soluciones a partir de las condiciones que satisfacen. Utilizando el lenguaje de la lgica,
las condiciones que satisface el factorial de un nmero se expresan como:
Fact0 1) nn
1
mm
1
[n 0) n
1
= n1) Factn
1
m
1
) m = nm
1
) Factn m)]
donde la interpretacin de Factx y) es y es el nmero factorial del nmero x. Vemos que la
frmula anterior expresa una propiedad de la solucin (si m es el factorial de n entonces se cumple
que ...) sin proporcionar instrucciones explcitas para su clculo. Sin embargo, a la vista de los algo-
ritmos antes presentados, es evidente que el componente lgico est implcito en los procedimientos
de solucin. El componente lgico de un programa insina un procedimiento de clculo. Veamos
otro ejemplo.
Ejemplo 3.2 Consideremos la teora de cadenas, donde se han denido la funcin de concatenacin
(que denotaremos con el smbolo ), los predicados subcadena pre f i jo y suf i jo, y los axiomas si-
guientes:
1. x subcadenax x)
2. xyz subcadenax y) su f i joy z)) subcadenax z))
3. xy suf i jox y x)
4. xyz subcadenax y) pre f i joy z)) subcadenax z))
5. xy pre f i jox x y)
Esta teora tambin puede expresarse utilizando el operador de implicacin inversa , de modo
que cada axioma A se escriba como: A =x
1
...x
k
B B
1
... B
m
).
1. x subcadenax x)
2. xyz subcadenax z) subcadenax y) suf i joy z)))
3. xy su f i jox y x)
4. xyz subcadenax z) subcadenax y) pre f i joy z)))
5. xy pre f i jox x y)
118 Captulo 3. PROGRAMACIN LGICA
Bajo esta forma, resulta intuitivo interpretar cada axioma A como un procedimiento que se lee
como:
para computar B, es necesario computar previamente B
1
...B
m

o, dicho de otro modo,


si desea averiguar si se satisface la conclusin B, averige si se satisfacen las premisas
B
1
...B
m

En trminos informales, el anterior procedimiento constituye el componente de control o meca-


nismo de inferencia genrico de los programas lgicos. En el caso de los axiomas de nuestro ltimo
ejemplo, cabe interpretarlos como:
1. x es una subcadena de x
2. Para averiguar si x es una subcadena de z, encuentre un sujo y de z y averige si x es una
subcadena de y
3. x es un sujo de y x
4. Para averiguar si x es una subcadena de z, encuentre un prejo y de z y averige si x es una
subcadena de y
5. x es un prejo de x y
Ejercicio 3.3 Dena una clusula que permita resolver el problema de ordenar los tres nmeros dis-
tintos del conjunto X ={X
1
X
2
X
3
}. La secuencia ordenada {X
i
X
j
X
k
} deber satisfacer:
X
i
X
j
X
k
pertenecen a X;
X
i
X
j
X
k
son distintos entre s;
X
i
es menor que X
j
;
X
j
es menor que X
k
.
Suponga denidas las relaciones: perteneceX
i
X) distintosX
i
X
j
) menorX
i
X
j
).
Algunos lenguajes de programacin lgica permiten especicar ambas componentes especcas
de un programa lgico: la pura lgica o declaracin de axiomas que caracteriza las soluciones, y el
control o procedimiento de deduccin de conclusiones a partir de los axiomas. En este caso la e-
ciencia de los programas puede incrementarse cambiando el componente de control sin modicar el
componente lgico. Sin embargo el ideal de la programacin lgica es que el programador se despreo-
cupe del procedimiento de solucin, que estara predeterminado en los entornos de programacin en
que los programas se ejecutan. Un programa consiste exclusivamente, en este caso ideal, en su parte
lgica o declarativa, y no existe ningn modo en que el programador pueda optimizar la bsqueda
de la solucin. A continuacin veremos como las tcnicas de resolucin pueden verse como un tal
procedimiento genrico de solucin.
3.1. Cmo interpretar una frmula lgica como un programa 119
3.1.2 La resolucin como algoritmo para la solucin de problemas
En captulos anteriores hemos visto cmo las tcnicas de resolucin se aplican a sistemas de axiomas
expresados en forma clausulada. Vimos tambin cmo cualquier frmula lgica poda expresarse en
esta forma. Habitualmente los axiomas se declaran a modo de reglas:
Si premisa1 y premisa2 y ... entonces conclusiones
Formalmente, se escribe:
A =x
1
...x
k
B
1
... B
m
B)
donde B y B
i
son los tomos que representan, respectivamente, la conclusin (o consecuente) y
las correspondientes premisas (o antecedentes). En el caso degenerado en que no hay antecedentes, la
frmula se escribe: A =x
1
...x
k
B.
En un captulo anterior vimos cmo traducir este tipo de frmulas a una clase particular de clusu-
las denominadas clusulas de Horn, en el caso de la lgica proposicional. La extensin del concepto
de clusula de Horn al caso de la lgica de predicados es inmediata. En esta seccin recordaremos
cmo aplicar el mtodo de resolucin en sistemas de clusulas de Horn para dictaminar si una frmula
G es una consecuencia lgica de un conjunto de axiomas. A continuacin veremos cmo la aplica-
cin de dicho mtodo puede interpretarse como la ejecucin de un programa lgico que averigua la
satisfacibilidad de la frmula G.
La traduccin a forma normal conjuntiva de una regla, prescindiendo de los cuanticadores y
eliminando el condicional, es inmediata:
A = B
1
... B
m
) B = B
1
.... B
m
B
Podemos ahora aplicar el mtodo de resolucin para dictaminar si una frmula escrita en forma
normal conjuntiva G = G
1
... G
l
es una consecuencia lgica del conjunto de axiomas: basta con
aadir G al conjunto de axiomas, expresados en forma clausulada, y refutarla por resolucin. G se
denomina habitualmente la clusula objetivo.
Un conjunto de axiomas es presumiblemente satisfacible, de modo que en la refutacin no tiene
sentido buscar resolventes entre los axiomas; en lugar de ello buscaremos resolver la clusula objetivo
con un axioma. Como G se expresa como una disyuncin de literales negativos, G = G
1

... G
l
) = G
1
... G
l
, slo existe la posibilidad de que uno de tales literales negativos, G
i
,
se resuelva con el nico literal positivo del axioma, B. El resolvente ser por tanto una clsula que
constar slo de literales negativos:
B
1
... B
m
G
1
. . . G
i1
G
i+1
. . . G
l
.
Por tanto, todos los resolventes que aparezcan a lo largo de la refutacin contendrn slo literales
negativos. Eventualmente, la resolucin tendr lugar con axiomas que no tengan antecedentes, es
decir, axiomas cuyas formas clausuladas consistan en un nico literal positivo. Progresivamente se
producirn resolventes ms cortos y, nalmente, la clusula vaca. De este modo quedar refutada la
frmula G y se habr probado la satisfacibilidad de la frmula G.
Ejemplo 3.4 Expresemos la teora de cadenas presentada en el ejemplo 3.2 anterior en forma clausal:
120 Captulo 3. PROGRAMACIN LGICA
1 subcadenax x)
2 subcadenax y) suf i joy z) subcadenax z))
3 su f i jox y x)
4 subcadenax y) pre f i joy z) subcadenax z))
5 pre f i jox x y)
Una forma de probar que la frmula subcadenaa b c a a b c c) es una consecuencia lgica
de la teora es refutar mediante resolucin la frmula subcadenaa b c a a b c c), segn se
describe en la siguiente secuencia:
6 substra b c a a b c c)
7 substra b c y
1
) su f f ixy
1
a a b c c) ( de 6 y 2 con x = a b c z = a a b c c)
8 substra b c a b c c) (resolvente de 7 y 3)
9 substra b c y
2
) pre f ixy
2
a b c c) (resolvente de 8 y 4)
10 substra b c a b c) (resolvente de 9 y 5)
11 (resolvente de 10 y 1)
Como vimos en la seccin anterior, resulta ms intuitivo ver este sistema axiomtico como un
programa si se utiliza el operador de implicacin inversa . Abreviadamente (asumiendo que to-
das las variables estn cuanticadas de forma universal y que las comas en el antecedente denotan
conjuncin.), la teora se transforma entonces en:
1. subcadenax x)
2. subcadenax z) subcadenax y) suf i joy z))
3. suf i jox y x)
4. subcadenax z) subcadenax y) pre f i joy z))
5. pre f i jox x y)
Bajo esta perspectiva, la refutacin de subcadenaa b c a a b c c), prueba de que la clusula
bsica subcadenaa b c a a b c c) es una consecuencia lgica de los axiomas de la teora de
cadenas, puede verse como la aplicacin de un procedimiento o programa para averiguar si la cadena
a b c es una subcadena de la cadena a a b c c. Los distintos pasos del procedimiento de resolucin
pueden verse como subprocedimientos de un procedimiento principal.
La utilidad de este programa se ve ms claramente si la frmula bajo prueba es:
subcadena a a b c c)
El procedimiento de prueba consiste en este caso en refutar en el sistema de axiomas la frmula
subcadena a a b c c))
equivalente a:
subcadena a a b c c)
Es fcil ver que el proceso de resolucin produce como resultado la clsula vaca bajo la sustitu-
cin:
{ a b c}
El procedimiento, en este caso, no slo sirve para probar que la frmula subcadena a a b
c c) es una consecuencia lgica de los axiomas, sino que adems computa un valor de = a b c
que hace cierta la frmula subcadena a a b c c).
Ejercicio 3.5 Muestre cmo puede utilizarse el sistema de clusulas siguiente :
1. Fact0 1)
3.1. Cmo interpretar una frmula lgica como un programa 121
2. nn
1
mm
1
n 0) n
1
= n1) Factn
1
m
1
) m = nm
1
) Factn m))
para calcular el factorial del nmero 3.
Idem en el caso del sistema de clusulas solucin del ejercicio 3.3 y el problema de ordenar los
nmeros 9, 2 y 5.
La refutacin de frmulas en un sistema de axiomas sirve de mecanismo de inferencia genrico
de los programas lgicos. Ha de observarse, no obstante, que la conversin de un procedimiento de
refutacin en un programa no es del todo inmediata. El programa esbozado anteriormente es altamente
no determinista, ya que el procedimiento de refutacin generalmente lo es: en cada paso puede darse
la opcin de qu literal resolver y de qu axioma, ya que la resolucin puede ser posible con ms
de un axioma y utilizando distintos literales. Esto signica que no se ha especicado por completo
el control de ejecucin, condicin indispensable para que un algoritmo pueda ejecutarse de forma
automtica. Traducir un procedimiento de refutacin a un programa exige especicar reglas que jen
las opciones anteriores. Tales reglas concretan la semntica operacional del lenguaje de programacin
lgica utilizado. Entre las mencionadas reglas cabe distinguir entre reglas de computacin y reglas de
bsqueda, que a continuacin denimos.
Denicin 3.6 Regla de computacin: Regla que indica el literal y la clusula objetivo con que se
efectuar una resolucin.
Denicin 3.7 Regla de bsqueda: Regla que indica la clusula con que se efectuar una resolucin
con un literal y clusula objetivo previamente escogidos.
3.1.3 Programacin lgica versus programacin algortmica
La programacin lgica nace a principios de los aos 70 fruto de los primeros trabajos sobre demos-
tradores automticos de teoremas, que culminan con la regla de resolucin publicada por Robinson en
1965. En 1972, Kowalski publica las primeras ideas acerca de cmo la lgica de primer orden podra
ser usada como un lenguaje de programacin. Poco despus Colmerauer lleva a la prctica estas ideas
con la implementacin del lenguaje PROLOG (PROgramming in LOGic), el primer y ms difundido
lenguaje de programacin lgica, cuyo intrprete primitivo se desarroll en el lenguaje ALGOL-W
(Roussel, Universidad de Marsella).
El paradigma de la programacin lgica se encuadra dentro del paradigma ms general de la pro-
gramacin declarativa, cuyo enfoque es esencialmente distinto del de la convencional programacin
algortmica. Frente a los lenguajes algortmicos (tales como Modula-2, C++, Java, etc), tambin
llamados procedimentales o imperativos, los lenguajes declarativos no sirven para especicar cmo
resolver un problema, sino qu problema se desea resolver. En la programacin algortmica un pro-
grama consiste en una secuencia de instrucciones que una computadora ha de ejecutar para resolver un
problema. El diseo del control de ejecucin de tales instrucciones forma tambin parte del programa.
Por el contrario, idealmente en la programacin declarativa la labor del programador no consiste en
codicar instrucciones explcitas, sino en especicar conocimiento y suposiciones acerca del proble-
ma. Los intrpretes de los lenguajes declarativos tienen incorporado un motor de inferencia genrico
que resuelve los problemas a partir de su especicacin.
Entre los lenguajes declarativos se distinguen los lenguajes funcionales y los lenguajes lgicos.
Mientras que en la programacin funcional el mecanismo de inferencia genrico se basa en la reduc-
cin de una expresin funcional a otra equivalente simplicada, en el paradigma de la computacin
lgica, un problema se formaliza como una sentencia lgica que ha de probarse bajo los supuestos de
un sistema axiomtico, que constituye el programa. La ejecucin del programa consiste en la prueba
de satisfacibilidad de la sentencia.
122 Captulo 3. PROGRAMACIN LGICA
El paradigma lgico, independiente del modelo de mquina En los prrafos anteriores hemos
presentado el paradigma de programacin lgica en su forma ms pura. Los programas lgicos no in-
cluyen instrucciones explcitas de operacin, considerndose que el conocimiento y las suposiciones
acerca del problema, proporcionados en forma de axiomas lgicos, son sucientes para resolverlo. El
conjunto de axiomas describe as la relacin entre la entrada y salida del programa, y constituye la al-
ternativa al programa convencional. El programador escribe el conjunto de axiomas, y el compilador
o intrprete utilizado incorpora un motor de inferencia de resolucin que, junto con las correspon-
dientes reglas de bsqueda y computacin, constituye una estructura de control nica, sea cual sea el
programa ejecutado. El problema que se desea resolver se formaliza como una sentencia lgica (la
sentencia objetivo) que ha de probarse en el sistema axiomtico que constituye el programa lgico. Su
computacin es un intento de resolver el problema, es decir, de probar la sentencia objetivo dados los
supuestos del programa lgico o, dicho de otro modo, de deducir las consecuencias del programa.
Mencionamos anteriormente que la diferencia esencial entre la programacin lgica y la progra-
macin algortmica radica en que en la programacin algortmica el programador disea el conoci-
miento del problema en forma de instrucciones explcitas, y disea tambin el control de la com-
putacin como parte esencial del programa. Existe, sin embargo otra diferencia clave entre ambos
paradigmas de programacin: los lenguajes algortmicos slo tienen signicado con referencia al
procedimiento que realizan en una mquina Von Neumann. La mayora de los ordenadores modernos
se basan en este modelo de mquina, caracterizado por un conjunto homogneo de celdas de me-
moria y una unidad de procesamiento con algunas celdas locales denominadas registros. La unidad
de procesamiento puede cargar datos desde la memoria a los registros, realiza operaciones lgicas y
aritmticas en stos y almacena valores en la memoria. Los lenguajes de programacin se han di-
seado para comunicar al ordenador los procedimientos de resolucin de los problemas desde la
perspectiva de la ingeniera del ordenador. De este modo, un programa diseado para una mquina
Von Neumann consiste en una secuencia de instrucciones encaminadas a realizar las operaciones an-
teriores y un conjunto adicional de instrucciones de control. Para alguien no familiarizado con las
restricciones de la ingeniera que conducen al diseo von Neuman, pensar en trminos de un conjunto
restringido de operaciones no resulta nada fcil. De ah que surja la divisin de tareas entre el diseo
de mtodos de solucin y la codicacin o traduccin de las instrucciones de los diseadores a las
instrucciones que puede entender el ordenador.
Partiendo del denominado lenguaje mquina, directamente comprendido por el ordenador, se
han ido desarrollando formalismos y notaciones ms convenientes para la expresin humana, aunque
en un principio tambin en correspondencia bastante directa con el lenguaje subyacente de la mquina,
al que los programas deben nalmente traducirse para ser ejecutados. Los lenguajes de programacin
lgica, por el contrario, se derivan del lenguaje abstracto de la lgica matemtica, y no guardan de-
pendencia ni relacin directa con ningn modelo de mquina. La lgica proporciona un lenguaje
preciso para expresar explcitamente los objetivos, conocimiento y presunciones caractersticos de un
problema, en trminos ms cercanos a los que un ser humano utiliza en sus razonamientos. De este
modo, no obliga al programador a pensar en trminos de las operaciones de un ordenador.
El compromiso entre programacin lgica y procedimental La indiscutible ventaja de dejar el
control de la ejecucin al completo cuidado de un intrprete tiene, no obstante una importante contra-
partida. Obviamente, por muy eciente que sea un compilador de programas lgicos, su predetermi-
nada estructura de control nunca podr equipararse a una estructura especcamente concebida para
una cierta computacin. Los investigadores en programacin lgica han explorado los compromisos
entre la pura lgica declarativa y las construcciones procedimentales que permiten a los programado-
res escribir programas de eciencia razonable frente a la de los lenguajes procedimentales.
3.2. Formalismo lgico para la representacin de problemas 123
Dejar que un intrprete de PROLOG asuma exclusivamente el control de ejecucin de un pro-
grama puede conducir a soluciones inecientes, por ejemplo, cuando se entra en ramas de recursin
innita (hay que tener presente que el clculo de predicados es indecidible). Como veremos en las
siguientes secciones, los sistemas PROLOG proporcionan algunos mecanismos bsicos de especi-
cacin de control, como la posibilidad de ordenar clusulas y objetivos y el predicado de corte.
Desafortunadamente, en sistemas actuales de PROLOG algunos programas pueden entenderse slo
pensando en trminos procedimentales, al abusarse de estas caractersticas no lgicas del lenguaje.
En muchas ocasiones, la semntica declarativa de un programa PROLOG (que es la semntica de un
sistema de clusulas de Horn en lgica de predicados) no coincide con su semntica operacional (es
decir, la ejecucin del programa no proporciona exactamente el conjunto de soluciones que dene el
sistema de clusulas). En la seccin 3.4.2 de este captulo discutiremos estos aspectos del lengua-
je PROLOG. En la siguiente seccin exploramos primero ms en profundidad la base terica de la
programacin lgica.
3.2 Formalismo lgico para la representacin de problemas
En esta seccin recordamos el concepto de clusula de Horn, as como otra serie de conceptos tiles
en el contexto de la programacin lgica, y mostramos cmo la aplicacin de un procedimiento de
resolucin se expresa en trminos de los nuevos conceptos denidos. La utilidad de las clusulas de
Horn radica en la existencia de un eciente mtodo de resolucin que constituye un mtodo cohe-
rente y completo de deduccin cuando se aplica a clusulas de este tipo. Este mtodo de resolucin,
denominado SLD, se analiza en la seccin 3.3.
Denicin 3.8 Clusula Horn: Clusula A B
1
... B
n
, en forma clausulada B
1
... B
m
) A =
B
1
... B
m
A, con a lo sumo un literal positivo. El literal positivo, A, se denomina cabeza y
los literales negativos B
i
, se denominan cuerpo. Su semntica informal es: para cada asignacin de
cada variable, si B
1
... B
n
son frmulas ciertas, A es una frmula cierta. Las clusulas de Horn se
clasican en clusulas de programa y clusulas obtetivo.
Denicin 3.9 Clusula objetivo u objetivo: clusula Horn que carece de literales positivos
B
1
... B
n
(en forma clasular B
1
... B
m
). Cada B
i
es un subobjetivo del objetivo principal.
Denicin 3.10 Clusula de programa: clusula Horn que consta de un literal positivo y uno o ms
literales negativos.
Denicin 3.11 Clusula unitaria o hecho: clusula Horn de programa que consta de un nico
literal positivo A (en forma clasular, A). Su semntica informal es: para cada asignacin de cada
variable, A es una frmula cierta.
Denicin 3.12 Procedimiento o denicin de un predicado: conjunto de clusulas de Horn de
programa cuyas cabezas comparten la letra de predicado.
Denicin 3.13 Programa lgico: Conjunto de procedimientos
Denicin 3.14 Base de datos (en un programa lgico): Procedimiento consistente en un conjunto
de hechos bsicos (es decir, sin variables libres).
124 Captulo 3. PROGRAMACIN LGICA
Denicin 3.15 Respuesta correcta: Sea P un programa y G una clusula objetivo. Una substitucin
para las variables de G es una respuesta correcta si P G), donde denota el cierre universal
de las variables libres de G. Si G carece de variables, la nica respuesta correcta es la sustitucin
identidad. El conjunto de respuestas correctas de un programa P dene su semntica declarativa
S
D
P).
A continuacin ilustramos con un ejemplo cmo la aplicacin de un mtodo de resolucin en
un sistema de clusulas de Horn se interpreta como la ejecucin de un programa, y se describe en
trminos de los conceptos denidos.
Ejemplo 3.16 El conjunto de clusuas de Horn:
1. qx y) px y) (en forma clausulada px y) qx y))
2. qx y) px z) qz y) (en forma clausulada px z) qz y) qx y))
3. pb a) 7. p f b)
4. pc a) 8. ph g)
5. pd b) 9. pi h)
6. pe b) 10. p j h)
Es un programa que tiene dos procedimientos, uno de los cuales es una base de hechos. Suponga-
mos que se desea utilizar este programa para demostrar la validez de la frmula yzqy b) qb z))
y, ms an, para obtener una sustitucin de las variables y, z que hace cierta la frmula qy b) qb z).
La validez de la frmula queda demostrada refutando su negacin yzqy b) qb z)) =
qy b) qb z)) en el sistema de clusulas. Una refutacin posible consiste en la siguiente
secuencia:
1. Se escoge resolver qy b) con la clusula 1 obtindose py b) qb z) (en forma clausulada
py b) qb z))
2. Se escoge resolver py b) con la clusula 5 aplicando la sustitucin {y d} obtindose
qb z) (en forma clausulada qb z))
3. Se toma el nico literal posible para resolver con la clusula 1, obtenindose pb z) (en
forma clausulada pb z))
4. Se toma el nico literal posible para resolver con la clusula 3 aplicando la sustitucin {z a}
, obtenindose la clusula vaca .
De la secuencia anterior deducimos que la sustitucin ={y d z a} hace falsa la frmula
qy b) qb z)), con lo que queda demostrada la validez de la frmula yzqy b) qb z)).
Veamos ahora que el problema resuelto equivale al problema de encontrar una respuesta correcta
para la frmula qy b) qb z), es decir, que la sustitucin encontrada, = {y d z a},
es una respuesta correcta para las variables de la clusula objetivo py b) qb z). Efectivamente,
segn la denicin antes presentada, una substitucin para las variables de G = py b) qb z)
es una respuesta correcta si P G), es decir, si P qy b) qb z))) ), es decir,
P qy b) qb z)) ). Esta frmula es precisamente la frmula demostrada para la sustitucin
={y d z a}.
Como esta sustitucin es bsica, en este caso el cierre universal es prescindible, de modo que
P qy b) qb z)). Pero la sustitucin que conlleva un proceso de refutacin por resolucin
no siempre es bsica. A veces, la clusula vaca puede obtenerse sin necesidad de sustituir todas las
variables de la frmula demostrada. Baste como ejemplo sencillo el clculo de una sustitucin de
respuesta correcta para la frmula G = x = y +13) en el conjunto de axiomas de la aritmtica. La
3.3. Resolucin SLD 125
sustitucin ={y x13} proporciona la frmula G) =x x = x))) =x x = x), que
es vlida en el sistema de axiomas considerado.
En resumen, los sistema de programacin lgica ideales usan nicamente la regla de resolucin
como regla de inferencia. La prueba de que una frmula B = B
1
... B
n
) es una consecuencia
lgica de un programa P es decir, si P B) se lleva a cabo negando la frmula y aadindola al
conjunto de axiomas que constituyen el programa, para averiguar si el sistema de frmulas extendido
es insatisfacible (contradictorio). Si ste es el caso se ir derivando una serie de objetivos sucesivos
hasta llegarse a la clusula vaca. Esta prueba es pues equivalente a la prueba de que existe una
respuesta correcta para la clusula objetivo G = B
1
... B
n
). Baste ver que: G = B
1

... B
n
) = B
1
... B
n
) = B. Encontrar una respuesta correcta para una clusula objetivo G es
encontrar una sustitucin de variables que conduce a la refutacin de G en el sistema de axiomas. Si
esta sustitucin se encuentra, se habr probado la validez de la frmula G.
3.3 Resolucin SLD
En esta seccin exponemos el mtodo de resolucin SLD, debido a Kowalski, que constituye un
procedimiento de deduccin coherente y completo cuando se aplica en sistemas de clusulas de Horn.
La denominancin SLD signica Seleccin Lineal de programas Denidos, haciendo as referencia
a la esencia del mtodo, que radica en la seleccin sucesiva de clusulas y literales para resolver de
acuerdo a criterios especicados por reglas de computacin y bsqueda. Al trmino de la seccin se
investiga cmo la eciencia del mtodo se ve condicionada por las reglas elegidas.
Denicin 3.17 Derivacin por resolucin SLD: Sea P un conjunto de clusulas de programa, R
una regla de computacin y G una clusula objetivo. Una derivacin por resolucin SLD de P
{G} se dene como una secuencia de etapas de resolucin entre clsulas objetivo y clusulas de
programa. La primera clusula objetivo es G
0
= G. Asumiendo que se ha derivado G
i
G
i+1
se dene
seleccionando un literal A
i
G
i
de acuerdo a la regla de computacin R, escogiendo una clusula
C
i
P tal que la cabeza de C
i
pueda unicarse con A
i
mediante una sustitucin MGU (Unicador de
Mxima generalidad)
i
y resolviendo:
G
i
= A
1
... A
i1
A
i
A
i+1
... A
n
C
i
= A B
1
... B
k
A
i

i
= A
i
G
i+1
= A
1
... A
i1
B
1
... B
k
A
i+1
... A
n
)
i
Una refutacin SLD de P{G} es una derivacin SLD nita de P{G} que tiene la clusula
vaca, , como ltimo objetivo en la derivacin. Si G
n
es la clusula vaca, decimos que la longitud
de refutacin es n.
Denicin 3.18 Respuesta computada: Sea P un conjunto de clusulas de programa, R una regla
de computacin y G una clusula objetivo. Una respuesta computada para P{G} es la sustitucin
obtenida por la composicin
1
...
n
de todas las variables de G, donde
1
...
n
es la secuencia
de MGUs usados en una refutacin SLD de P{G}. Se consideran incluidas slo las que sean
sustituciones de las variables del programa. El conjunto de respuestas computadas de un programa
dene su semntica operacional S
O
P).
Ejemplo 3.19 Sea el programa P ={pa) qa b)} y la clusula objetivo: px) qx y)
1. Resolviendo px) con pa), aplicando la sustitucin
1
= {x,a}, se obtiene como nuevo
objetivo: qa y)
126 Captulo 3. PROGRAMACIN LGICA
2. Resolviendo qa y) con qa b), aplicando la sustitucin
2
={y,b}, se obtiene
La respuesta computada en la refutacin de la clusula objetivo en el programa P es {x,a y,b}.
Ejercicio 3.20 Derive por resolucin SLD aplicada a la clusula objetivo qy b) qb z) en el
programa del ejemplo 3.16, y obtenga la respuesta computada. Observe que la derivacin equivale a
la refutacin de la clusula qy b) qb z)).
Puede demostrarse que el mtodo de resolucin SLD constituye un procedimiento de deduccin
coherente y completo cuando se aplica en sistemas de clusulas de Horn. Este resultado se enuncia en
los siguientes teoremas (cuya demostracin no inclumos):
Teorema 3.21 Consistencia de la resolucin SLD
Sea P un conjunto de clusulas de programa, R una regla de computacin y G una clusula objeti-
vo. Se supone la existencia de una refutacin SLD de G. Sea =
1
...
n
la secuencia de unicadores
usados en la refutacin y sea la restriccin de a las variables de G, es decir, la respuesta computada
en la refutacin. Entonces, es una respuesta correcta para G. Como las respuestas computadas de-
nen la semntica operacional del programa, S
O
P), y las respuestas correctas la semntica declarativa,
S
D
P), se concluye que S
O
P) S
D
P).
Teorema 3.22 Completitud de la resolucin SLD aplicada a clusulas de Horn
Sea P un conjunto de clusulas de programa, R una regla de computacin y G una clusula ob-
jetivo. Sea una respuesta correcta para G. Entonces existe una refutacin SLD de G a partir de P
tal que es la restriccin de la secuencia de unicadores =
1
...
n
a las variables de G, es decir, la
respuesta computada en la refutacin. Del mismo modo, ya que para cada respuesta correcta existe
una respuesta computada, podemos armar que S
D
P) S
O
P).
De los dos teoremas anteriores se deduce que S
D
P) = S
O
P), es decir, la semntica declarativa de
un programa lgico descrito en trminos de clusulas de Horn coincide con su semntica operacional
cuando el control de ejecucin consiste en la derivacin SLD.
Ejemplo 3.23 Consideremos el programa
P ={pa) qx y) px) qa b)}
donde el dominio de las variables x e y es {a b}. La semntica declarativa
1
de este programa est
denida por el conjunto de trminos bsicos ms sencillos que son consecuencia lgica del conjunto
de clusulas del programa (el modelo de Herbrand), es decir: S
D
P) ={pa) qa b)}. Para obtener la
semntica operacional debemos ver cuales son las respuestas ms sencillas (es decir, pertenecientes a
la base de Herbrand) que pueden computarse mediante la aplicacin del procedimiento de resolucin
SLD, obtenindose igualmente S
O
P) ={pa) qa b)}.
En la seccin anterior sealbamos la necesidad de denir reglas de computacin y reglas de bs-
queda que permitiesen sistematizar los procedimientos de resolucin conviertindolos en programas
ecientes. Para visualizar la aplicacin de tales reglas es til representar las posibles derivaciones
SLD de una clusula objetivo, bajo una cierta regla de computacin R, en forma de una estructura tipo
rbol, denominada rbol SLD. Las reglas de bsqueda pueden verse como algoritmos de bsqueda en
el rbol SLD. A continuacin denimos una serie de conceptos tiles en este contexto.
1
Nos referimos aqu a los conceptos rigurosos de semntica declarativa y semntica operacional, denidos en trminos
de modelos de Herbrand . En el resto del captulo se usan segn sus acepciones informales (con frecuencia utilizadas en la
literatura), haciendo referencia, respectivamente, al conjunto de todas las respuestas correctas y computadas; habida cuenta
de que los modelos de Herbrand no son materia de estudio obligatorio en esta asignatura.
3.3. Resolucin SLD 127
Denicin 3.24 Arbol SLD. Sea P un conjunto de clusulas de programa, R una regla de compu-
tacin y G una clusula objetivo. Todas las posibles derivaciones SLD pueden representarse en una
estructura de tipo rbol denominada rbol SLD. La raz se etiqueta con la clusula objetivo G. Dado
un nodo n etiquetado por la clusula objetivo G
n
, se crea un nodo n
i
para cada nueva clusula objetivo
G
n
i
que puede obtenerse resolviendo el literal escogido por R con la cabeza de una clusula en P.
Denicin 3.25 Rama de xito de un rbol SLD: Rama que conduce a una refutacin
Denicin 3.26 Rama de fallo de un rbol SLD: Rama que conduce a una clusula objetivo cuyo
literal seleccionado no pude unicarse con ninguna clusula del programa.
Denicin 3.27 Rama innita de un rbol SLD: Rama correspondiente a una derivacin no termi-
nante.
Denicin 3.28 Regla de bsqueda en un rbol SLD: Procedimiento de bsqueda de una refutacin
en un rbol SLD.
Denicin 3.29 Procedimiento de refutacin SLD: Algoritmo de refutacin SLD junto con la es-
pecicacin de una regla de computacin y una regla de bsqueda.
Ejemplo 3.30 Sea el programa: P ={pb) pa) qa b)}
Los siguientes rboles SLD consisten en una nica rama:
pb) rama de xito
pa) rama de xito
qa a) rama de fallo
qa b) rama de xito
qb a) rama de fallo
qb b) rama de fallo
Ejemplo 3.31 En la gura 3.1 se muestra el rbol de derivacin correspondiente a la clusula objetivo
qy b), en el conjunto de clusulas de programa del ejemplo 3.16, y donde la regla de computacin
consiste en escoger siempre el literal situado ms a la izquierda de la clusula objetivo. Los nmeros
que etiquetan las aristas sealan la clusula del programa con que se aplica la resolucin. Las ramas
etiquetadas con 5, 6 y 7 conducen a la clusula vaca.
Ejercicio 3.32 Construya los rboles de derivacin de la clusula objetivo py b) qb z) cuando
la regla de computacin consiste en seleccionar el ltimo literal de la clusula objetivo, y cuando
consiste en seleccionar el primer literal de la clusula objetivo.
Teorema 3.33 Sea P un programa y G una clusula objetivo. Entonces, cada rbol SLD de P y G
bien tiene innitas ramas de xito o bien cada una de sus ramas tiene el mismo nmero nito de ramas
de xito.
Del teorema de completitud se deduce que la resolucin SLD es un procedimiento completo inde-
pendientemente de la eleccin de la regla de computacin, pero slo indica que existe una refutacin.
La eleccin de la regla de bsqueda determinar el que la refutacin se encuentre o no. Surge de este
modo un compromiso entre completitud y eciencia. Una bsqueda en anchura en un rbol SLD,
donde se comprueban todos los nodos de cada nivel antes de adentrarse ms en el rbol, garantiza
que se encontrar la rama de xito siempre que exista. Por el contrario, si se aplica una estrategia
128 Captulo 3. PROGRAMACIN LGICA
q(y,b)
p(y,b)
(1)
x
(2)
p(y,z), q(z,b)
(5)

(7) (6) (3) (10)

q(a,b)
(1) (2)
q(h,b)
(1) (2)
q(a,z), q(z,b) p(a,b) p(h,z), q(z,j) p(h,j)
x .
.
.
.
.
.
Figura 3.1: rbol SLD del objetivo qy b)
de bsqueda en profundidad, siempre existe la posibilidad de explorar una rama no terminante. La
regla de bsqueda en anchura es completa en el sentido de que siempre encuentra la respuesta correc-
ta cuando sta existe. Sin embargo, el tamao del rbol que requiere almacenar en una estructura de
datos crece exponencialmente con la profundidad de la bsqueda, de modo que la aplicacin pura de
esta estrategia no resulta una regla prctica.
3.4 El lenguaje PROLOG
El PROLOG surgi de los trabajos de Colmerauer sobre el procesamiento del lenguaje natural. Su
primera implementacin eciente se debe a Warren y otros investigadores de la universidad de Edim-
burgo. Adems de tratarse del primer y ms difundido lenguaje de programacin lgica, su estudio
es muy interesante debido a que la traduccin de clusulas de Horn a procedimientos codicados en
PROLOG es inmediata, e ilustra particularmente bien el paradigma de programacin lgica expuesto
en las secciones anteriores. A continuacin presentamos los principios bsicos de la programacin en
PROLOG y sus mecanismos operacionales ms interesantes. Reexionamos tambin sobre sus pe-
culiaridades como lenguaje de programacin, y sobre sus caractersticas no-lgicas, particularmente
sobre las derivadas del uso de la controvertida primitiva de corte.
3.4.1 Denicin de predicados recursivos. Reglas de computacin y bsqueda
Comenzaremos por ver los sencillos cambios notacionales que introduce PROLOG con respecto a la
notacin matemtica que hemos utilizado en los apartados anteriores. En un programa PROLOG, las
variables empiezan con letras maysculas, los predicados y las constantes con letras minsculas y en
lugar del smbolo se utiliza : . Las clusulas, denominadas tambin en PROLOG reglas, se
terminan con un punto.
Ejemplo 3.34 El ejemplo de la seccin 3.16 se escribe pues en PROLOG de la forma siguiente:
1. qXY) : pXY).
2. qXY) : pX Z) qZY).
3.4. El lenguaje PROLOG 129
3. pb a). 7. p f b).
4. pc a). 8. ph g).
5. pd b). 9. pi h).
6. pe b). 10. p j h).
De hecho, este programa ilustra una tpica denicin recursiva de predicado PROLOG. Los predi-
cados ms complejos (qXY)) se denen en trminos de predicados ms sencillos (pXY)), y las
clusulas ms generales son recursivas, es decir, el predicado denido (cabeza de la clusula) aparece
en la denicin (cuerpo de la clusula). As como en los lenguajes algortmicos se utiliza la itera-
cin (mediante estructuras de bucle tipo for, while, y repeat/until), en los lenguajes lgicos la
recursin es el recurso principal que el programador utiliza para disear los predicados.
Ejemplo 3.35 Efectivamente, es fcil imaginar diferentes programas que respondan al patrn ante-
rior. Considrese, por ejemplo, el problema de estudiar la conectividad en un grafo dirigido. Un
grafo dirigido puede representarse en un programa lgico por medio de una coleccin de hechos.
Un hecho arcoNodo1 Nodo2) estar presente en el programa si existe un arco desde el Nodo1 al
Nodo2 en el grafo. Dos nodos estarn conectados si existe una serie de arcos que pueden recorrerse
para llegar desde el primer nodo hasta el segundo. Es decir, la relacin que representa el predicado
conectadoNodo1 Nodo2), que es cierta si los nodos Nodo1 y Nodo2 estn conectados, es el cierre
transitivo de la relacin arco. El predicado conectado se dene mediante el siguiente programa:
1. conectadoNodo1 Nodo2) : arcoNodo1 Nodo2).
2. conectadoNodo1 Nodo2) : arcoNodo1 Enlace) conectadoEnlace Nodo2).
El siguiente conjunto de hechos representara un grafo inconexo:
3. arcob a). 7. arco f b).
4. arcoc a). 8. arcoh g).
5. arcod b). 9. arcoi h).
6. arcoe b). 10. arco j h).
Ejercicio 3.36 Dena en PROLOG el predicado ancestro, cierre transitivo de la relacin padre. Pro-
porcione asimismo una denicin recursiva en PROLOG para el predicado f actorial, partiendo de su
denicin como sentencia lgica presentada en la seccin 3.1.1.
Utilizando el programa anterior, un intrprete de PROLOG puede responder, por ejemplo, a la
pregunta qu nodos Y y Z pueden conectarse a travs de un camino que pase por el nodo b?. Se
denominan preguntas PROLOG a los objetivos introducidos en un sistema PROLOG con el n de
comprobar su satisfacibilidad y/o computar las correspondientes respuestas. Normalmente, la lnea
de comandos en que se introducen los objetivos sometidos a prueba se identica con el smbolo ?.
En el sistema de clusulas asociado, responder a la anterior pregunta supone computar una res-
puesta para el objetivo conectadoy b) conectadob z), que se introduce en la lnea de comandos
del intrprete como: ?conectadoY b) conectadob Z). La respuesta correcta obtenida en el ejem-
plo 3.16 de la demostracin de validez de la frmula yzqy b) qb z)), = {y d z a},
es precisamente una de las respuestas que buscamos. El motor de inferencia de PROLOG computa
esta respuesta aplicando el mtodo de resolucin en el sistema de clusulas contenido en su base de
datos. Como regla de computacin utiliza la seleccin del literal situado ms a la izquierda en la
clusula objetivo, y como regla de bsqueda la seleccin de la clusula situada ms arriba en la lista
de clusulas de cada procedimiento, de forma que realiza la computacin en los siguientes pasos:
130 Captulo 3. PROGRAMACIN LGICA
1. Escoge resolver conectadoY b) (el subobjetivo situado ms a la izquierda) con la primera
clusula en que la equiparacin es posible (la clusula 1). La nueva clusula objetivo es:
arcoY b) conectadob Z).
2. Escoge resolver arcoY b) (el subobjetivo situado ms a la izquierda del objetivo actual) con la
primera clusula en que la equiparacin es posible (la clusula 5), aplicando la sustitucin {Y
d}. La nueva clusula objetivo es: conectadob Z)
3. Toma el nico subobjetivo posible, conectadob Z), para resolver con la primera clusula en
que la equiparacin es posible (la clusula 1). La nueva clusula objetivo es: arcob Z)
4. Toma el nico subobjetivo posible, arcob Z) para resolver con la nica clusula en que la
equiparacin es posible (la clusula 3), aplicando la sustitucin {Z a} , obtenindo la clusula
vaca .
El rbol SLD correspondiente se muestra en la gura 3.2.
arco(Y,b), conectado(b,Z)
conectado (b,Z)
arco (b,Z)
Y d
conectado(Y,b), conectado(b,Z)
(1)
(5)
(1)

Z a (3)


Figura 3.2: rbol SLD del objetivo conectadoY b) conectadob Z)
Es la aplicacin de una estrategia de bsqueda en profundidad lo que hace que los intrpretes de
PROLOG sean tan ecientes. Gracias a esta estrategia, en tiempo de ejecucin basta con almacenar:
a) la clusula objetivo actual, con un puntero al subobjetivo actual, b) un puntero a la clusula del
procedimiento cuya cabeza se puede unicar con el citado suobjetivo y c) el conjunto de sustitucio-
nes de variables realizadas hasta el momento. Adicionalmente, resulta til sealar de algn modo
los nodos previos del rbol SLD donde an quedan ramas por explorar. De este modo, en caso de
ocurrir un fallo, se puede retroceder directamente hasta el nodo ms cercano cuyos subrboles puedan
proporcionar soluciones adicionales. Tales nodos se registran en una lista y se denominan puntos de
retroceso ( backtracking). Debido a la regla de bsqueda de PROLOG, las ramas no exploradas
estn siempre situadas a la derecha de la rama actual. Esta estrategia es eciente desde el punto de
vista del almacenamiento, ya que no requiere guardar memoria de todos los caminos explorados, que
estn implcitos en los datos anteriores. Los puntos de retroceso no slo son tiles en caso de fallo de
3.4. El lenguaje PROLOG 131
alguna rama, sino en los casos en que se desea computar ms de una respuesta correcta, o todas las
respuestas correctas para un objetivo dado.
Explorando nuevas ramas del rbol SLD, PROLOG puede computar respuestas adicionales, en
particular las soluciones {Y e Z a} y {Y f Z a}, como se muestra en el rbol SLD de
la gura 3.3, donde los puntos de retroceso se han sealado con un asterisco.
*arco(Y,b), conectado(b,Z)
*conectado (b,Z)
arco (b,Z)
Y d
*conectado(Y,b), conectado(b,Z)
(1)
(5)
(1)

Z a (3)


(6)
(7)
*conectado (b,Z) *conectado (b,Z)
arco (b,Z)
(1)
Z a (3)

arco (b,Z)
(1)

Z a (3)


Y e Y f
arco(b,X), conectado(X,Z)
(2)
X a (3)
*conectado(a,Z)
FALLO
FALLO
arco (a,Z)
(1)
arco(a,P), conectado(P,Z)
(2)
FALLO
FALLO FALLO
Figura 3.3: Reevaluacin del objetivo conectadoY b) conectadob Z)
En la gura 3.4 se muestra cmo PROLOG explora el rbol en busca de nuevas soluciones, retro-
cediendo en cada paso al punto de retroceso ms recientemente sealado.
Supongamos ahora que se formula a PROLOG la pregunta ? conectadoXY), con el propsito
de encontrar todos los pares de nodos conectados entre s. La posibilidad de encontrar la solucin ra-
dica en dar con una rama nita. PROLOG encuentra las soluciones porque su estrategia de recorrido
del rbol le conduce en este caso a evaluar primero las ramas nitas. En concreto, comenzar por sa-
tisfacer repetidas veces el subobjetivo arcoXY) hasta agotar todas las respuestas. A continuacin, el
retroceso le llevar a intentar satisfacer conectadoXY) utilizando la segunda clusula, encontrando
primero un tercer nodo Z ligado mediante un arco a X, es decir, intentado satisfacer arcoX Z), etc.
Sin embargo, consideremos las clusulas y sus literales ordenados en la siguiente forma:
1. conectadoNodo1 Nodo2) : conectadoEnlace Nodo2) arcoNodo1 Enlace).
2. conectadoNodo1 Nodo2) : arcoNodo1 Nodo2).
Al desplegar el correspondiente rbol de bsqueda de respuestas para ? conectadoXY), nos
encontramos con que es innito. Debido a la recursin, de las ramas situadas ms a la izquierda cuelga
siempre un subrbol que reproduce el rbol global (vase la gura 3.5). PROLOG no sera capaz de
132 Captulo 3. PROGRAMACIN LGICA
*arco(Y,b), conectado(b,Z)
*conectado (b,Z)
*conectado(Y,b), conectado(b,Z)



*conectado (b,Z)



*conectado(a,Z)
FALLO
FALLO FALLO
FALLO FALLO
*conectado (b,Z)
Figura 3.4: Exploracin del rbol SLD del objetivo conectadoY b) conectadob Z) por un intrprete
PROLOG
computar ni una sola respuesta, quedndose eternamente explorando la primera rama innita.
conectado(X,Y)
conectado(Z,Y), arco(X,Z)
(1)
conectado(P,Y),arco(P,Z), arco(X,Z)
(1)
Figura 3.5: Rama innita del rbol SLD del objetivo conectadoXY)
Vemos pues, como se anticip en la seccin anterior, que las estrategias de bsqueda en profun-
didad pueden conducir a computaciones no terminantes incluso en casos en que existe una respuesta
correcta. Un programador de PROLOG debe ordenar cuidadosamente las clusulas dentro de cada
procedimiento, as como los literales dentro de las clusulas, para evitar la no-terminacin. Es por
esta razn que es muy importante conocer las estrategias de computacin y bsqueda de PROLOG
y tenerlas presentes cuando se disean los programas. En realidad, sta es una caracterstica de la
programacin en PROLOG impropia de un paradigma puramente lgico, donde idealmente el progra-
mador puede por completo despreocuparse del control de ejecucin de sus programas. En la seccin
3.4.2 veremos algunas otras caractersticas no-lgicas del lenguaje PROLOG.
Ejercicio 3.37 En el caso de la primera versin del programa anterior, muestre cmo PROLOG en-
cuentra todas las soluciones a la pregunta ? conectadoNodo1 Nodo2) explorando su rbol SLD.
3.4. El lenguaje PROLOG 133
Qu ocurre si se intercambian las clusulas 1 y 2, conservando el orden de los literales dentro de las
clusulas?
Finalmente supngase que se desea conocer la lista de nodos conectados a un nodo dado, por ejemplo,
el nodo h. Bastara con formular la pregunta PROLOG ? conectadoNodo h) y solicitar todas
las respuestas posibles. La tarea puede facilitarse no obstante deniendo un nuevo predicado que
proporcione en una sola respuesta la lista de tales nodos. Obsrvese que la pregunta anterior podra
haberse formulado en la forma ? conectadosListaNodos h), donde el predicado conectados se
habra denido previamente como:
conectadosNodo1|ListaNodos Nodo2) : conectadoNodo1 Nodo2)
conectadosListaNodos Nodo2).
conectados[] Nodo).
En este caso el intrprete PROLOG proporcionara todas las soluciones en la primera respuesta,
con la notacin caracterstica de las listas PROLOG, donde los elementos aparecen separados por
comas y encerrados entre corchetes. La notacin Nodo1|ListaNodos, denota una lista cuyo primer
elemento es Nodo1. Hemos introducido este ltimo ejemplo para ilustrar la utilidad de las estructuras
de tipo lista en los programas PROLOG, as como la forma en que se manipulan. La posibilidad que
proporciona la recursin de denir estructuras de datos innitas como la lista dota a los programas
PROLOG de una gran potencia matemtica.
Ejercicio 3.38 a) Dena un predicado PROLOG que descomponga un nmero en la suma de dos
nmeros pares, utilizando los predicados predenidos betweenA BC) (pertenencia de un nmero a
un intervalo), + (suma), =:=(igualdad), mod (mdulo o resto de divisin entera). Muestre el rbol
SLD correspondiente a la computacin de descomponer6 a b).
b) Dena en PROLOG un predicado de ordenacin utilizando el programa lgico del ejercicio
3.3 , haciendo uso de los predicados predenidos PROLOG memberX Xs) (pertenecencia de un
elemento a una lista), = , = (distinto) y < (menor). Muestre el rbol SLD correspondiente a la
computacin de ordenar[2 5 9]).
3.4.2 Usos procedimentales del PROLOG
A lo largo del captulo hemos sealado en diversas ocasiones la necesidad de los lenguajes prcti-
cos de alejarse del ideal de la programacin lgica puramente declarativa. As, no es posible disear
buenos programas PROLOG ignorando los mecanismos de ejecucin que implementan sus intrpre-
tes. Una programacin lgica efectiva requiere conocimiento y utilizacin de estos mecanismos, de
este modelo de ejecucin. En la seccin previa veamos cmo un programador de PROLOG se vea
obligado a pensar en trminos del control de ejecucin de sus programas ordenando cuidadosamente
clusulas y literales con el n de evitar ejecuciones no terminantes.
En esta seccin veremos cmo es posible simular en PROLOG las construcciones iterativas de
los lenguajes algortmicos, y cmo determinadas circunstancias exigen que el programador piense en
trminos procedimentales e interera en el control de ejecucin del programa utilizando predicados no
lgicos, en particular, el potente predicado de corte. Este ltimo es el nico predicado que realmente
afecta la estrategia de evaluacin en los programas PROLOG, y su uso pone en cuestin el carcter
autnticamente declarativo del lenguaje.
134 Captulo 3. PROGRAMACIN LGICA
Programas iterativos
En la introduccin de este captulo presentamos dos algoritmos de clculo de la funcin factorial. En
PROLOG, dicha funcin se codica naturalmente como:
f actorial0 1).
f actorialN M) : N 0 N1 is N1 f actorialN1 M1) .M is NM1.
En este lenguaje no existen construcciones iterativas, de modo que cuando se traduce un algoritmo
iterativo habitualmente la iteracin se sustituye por la recursin. Existe, sin embargo, una clase de
programas PROLOG recursivos que guardan una relacin cercana con los programas iterativos con-
vencionales. Estos programas incluyen un tipo particular de variables denominadas acumuladores,
que hacen las veces de variables de almacenamiento de resultados intermedios, variables de las que
PROLOG carece. Tpicamente, estos resultados intermedios se producen como resultado de la com-
putacin de cada etapa de una iteracin. Ilustramos la tcnica con una versin iterativa del programa
anterior:
f actorialN M):- f actorialN 1 M).
f actorialN T M):- N 0,
T1 is T N,
N1 is N1,
f actorialN1 T1 M).
f actorial0 M M).
Este programa no vulnera estrictamente los principios de la programacin lgica. Sin embargo,
su signicado declarativo no es muy intuitivo, mientras que resulta una traduccin bastante inmediata
de un clsico algoritmo para el clculo del factorial.
Predicados no lgicos de entrada/salida y clculo aritmtico
Los predicados no lgicos son predicados que carecen de signicado declarativo como frmulas lgi-
cas y cuyo propsito principal es generar determinados efectos laterales. En esta seccin trataremos
dos categoras de predicados no lgicos que no intereren en lo esencial con el mecanismo operacional
de PROLOG: los predicados de entratada y salida y los predicados de clculo aritmtico.
Predicados para la gestin de entradas y salidas. Los ejemplos ms obvios de predicados no
lgicos son los predicados de entrada/salida get y put. Como literales de una clusula objetivo, estos
predicados siempre se verican (salvando el caso en que el predicado get detecta el nal de un chero,
que produce un fallo). Su signicado es procedimental: put pone un caracter en la pantalla y get lee un
carcter por teclado. Ambos predicados son imprescindibles para que los sistemas PROLOG puedan
interaccionar con perifricos y otros sistemas. Puesto que su uso est normalmente connado a reas
bien denidas de los programas, y puesto que su comportamiento lgico es trivial, no intereren
realmente con la estructura lgica declarativa de los programas PROLOG.
Predicados para el clculo aritmtico La mayora de los programas implican algn clculo aritm-
tico. Si bien la aritmtica puede formalizarse en clculo de predicados, lo cierto es que su formulacin
resulta muy poco prctica. As por ejemplo, los nmeros naturales pueden denirse recursivamente
del siguiente modo:
numero_natural0).
numero_naturalsucesorX)) : numero_naturalX).
3.4. El lenguaje PROLOG 135
Todos los nmeros naturales se obtienen as recursivamente como
0 sucesor0) sucesorsucesor0)) sucesorsucesorsucesor0)))
y, en general, sucesor
n
0). Las operaciones de adicin, multiplicacin y exponenciacin puede de-
nirse asimismo de forma recursiva:
+0 X X) : numero_naturalX).
+sucesorX) sucesorY) sucesorsucesorZ))) : +XY Z).
0Y 0).
sucesorX)Y Z) : XY XY) +XYY Z).
expsucesorX) 0 0).
exp0 sucesorX) sucesor0)).
expsucesorN) XY) : expN X Z) Z XY).
Estas deniciones recursivas plantean varios problemas. En primer lugar, la resolucin no es un
mtodo eciente de computacin numrica. En segundo lugar, la notacin resulta larga y tediosa de
interpretar. Todos los computadores contienen instrucciones ecientes, directamente implementadas
en la mquina, para llevar a cabo operaciones sobre enteros, mientras que, utilizando los predicados
anteriores, una operacin tan trivial como la suma de la constante 10 a un nmero requiere al menos
10 unicaciones y resoluciones. La formalizacin axiomtica de los nmeros en coma otante resulta
ya completamente inmanejable.
PROLOG no dene la aritmtica de acuerdo a los axiomas y denicin de tipo precedentes, sino
que proporciona un conjunto de predicados predinidos para la realizacin de computaciones aritm-
ticas estndar que utilizan directamente las capacidades aritmticas subyacentes del ordenador. Estos
predicados se utilizan en sentencias de sintaxis: Resultado is Expresion. Los predicados aritmticos
se comportan de forma diferente a los predicados ordinarios, particularmente con respecto a la unica-
cin. Un predicado aritmtico se interpreta en una nica direccin. As por ejemplo, 10 is X +Y sera
una sentencia ilegal, que no producira una secuencia de instanciaciones de X e Y a 0 10), 1 9), etc.
Si Resultado is Expresion, Resultado slo puede ser una variable sin instanciar y Expresion ha de
evaluarse a un nmero bsico. Ntese que las sentencias anteriores no son sentencias de asignacin,
tal y como se conciben en los lenguajes algortmicos. La sentencia is slo puede pues asignar valor a
una variable Resultado una nica vez en el cuerpo de un predicado.
Los predicados de la aritmtica denidos al comienzo de este apartado presentan sin embargo una
ventaja: los mltiples usos que puede hacerse de ellos. As, plantear una pregunta como
? +sucesor0) sucesor0) sucesorsucesor0)))
signica comprobar si 1+1 = 2, mientras que la consulta
? +sucesor0) X sucesorsucesor0)))
implica llevar a cabo una substraccin, y la pregunta
? +XY sucesorsucesor0)))
incluso da al sistema la posibilidad de ofrecer mltiples soluciones.
Ejercicio 3.39 Utilizando los predicados predinidos de clculo aritmtico de PROLOG, proporcione
dos deniciones distintas del predicado mod (mduloo resto de una divisin entera). La primera
de ellas ha de ser una traduccin directa de la denicin matemtica del resto de una divisin entera:
Z es el valor de X mod Y si Z es estrictamente menor que Y y existe un nmero Q tal que X =
QY +Z. La segunda debe constar de dos clusulas, de modo que la segunda de ellas sea recursiva.
Compruebe la mayor eciencia de la segunda denicin, dada la menor dimensin de los rboles SLD
que genera.
136 Captulo 3. PROGRAMACIN LGICA
Predicado de corte
El corte es el predicado no lgico ms controvertido de PROLOG, por la modicacin tan importante
que supone de la programacin lgica. El predicado de corte, denotado con el smbolo , interere di-
rectamente en el procedimiento de refutacin SLD evitando que se lleve a cabo el retroceso en ciertos
puntos. Una vez que el predicado de corte se ha ejecutado en un potencial punto de retroceso, todas
las ramas alternativas del rbol SLD que penden del nodo correspondiente se podan automticamente.
Puesto que el principal objetivo de la programacin lgica es permitir que el programador escriba
programas declarativos dejando la parte de control para el motor de inferencia genrico implementado
en los intrpretes, los cortes deberan evitarse, puesto que slo pueden entenderse desde una perspec-
tiva procedimental de la programacin. Sin embargo, los programadores deben estar familiarizados
con los diferentes usos del corte, por lo que a continuacin presentamos algunos ejemplos de cmo
el predicado de corte permite resolver esencialmente problemas de ineciencia y, en particular, de
computacin no terminante.
Ejemplo 3.40 Consideremos la siguiente denicin del predicado mezcla en PROLOG:
%mezclaXsYs Zs) :
%mezcla dos listas ordenadas de n umeros enteros Xs e Ys en la lista ordenada Zs
mezcla[X|Xs] [Y|Ys] [X|Zs]) : X <Y mezclaXs [Y|Ys] Zs).
mezcla[X|Xs] [Y|Ys] [XY|Zs]) : X =Y mezclaXsYs Zs).
mezcla[X|Xs] [Y|Ys] [X Zs]) : X Y mezcla[X|Xs]Ys Zs).
mezclaXs [] Xs).
mezcla[]YsYs).
Ante cualquier pregunta PROLOG, una y slo una de las cinco clusulas es aplicable. Sin embargo
en caso de solicitarse todas las respuestas posibles, el intrprete tantear todas las opciones.
Ejercicio 3.41 Compruebe la ineciencia del predicado construyendo el rbol SLD correspondiente
a la computacin del objetivo mezcla[1 3 5] [2 3] Ks).
Ejemplo 3.42 Consideremos ahora la denicin de un predicado de ordenacin de listas:
%ordenaXsYs) :
%ordena la lista Xs en la lista Ys
ordenaXsYs):- appendAs [XY|Bs] Xs)
X Y
appendAs [Y X|Bs]Vs)
ordenaVsYs).
ordenaXs Xs) : ordenadaXs).
%appendPs Qs PsQs) :
%PsQs es la concatenaci on de las listas Ps y Qs
append[] Qs Qs).
append[P|Ps] Qs [P|Zs]) : appendPs Qs Zs).
%ordenadaXs) :
3.4. El lenguaje PROLOG 137
%Xs es una lista ordenada
ordenada[]).
ordenada[X]).
ordenada[XY|Ys]) : X Y ordenada[Y|Ys]).
El programa busca un par de elementos adyacentes desordenados, los intercambia y contina hasta
que la lista est ordenada. Dado que slo existe una lista ordenada, cualquier alternativa de bsqueda
conduce a la misma solucin. Sin embargo, ante una solicitud de todas las respuestas posibles el
intrprete buscar intilmente otras alternativas.
Ejercicio 3.43 Comprueba la ineciencia del predicado construyendo el rbol SLD correspondiente
a la computacin del objetivo ordena[3 2 1] Ks).
Veamos ahora cmo se puede utilizar el predicado de corte para aumentar la eciencia de los
programas anteriores. Un predicado de corte dene un objetivo que siempre se satisface y que com-
promete todas las elecciones hechas desde que el objetivo que se est resolviendo se unic con la
cabeza de la clusula en que el corte ha ocurrido, es decir, poda todas las ramas alternativas que
penden del punto de retroceso ms reciente del correspondiente rbol SLD. En denitiva, si un cor-
te se satisface, no intentarn satisfacerse clusulas alternativas a la clusula que lo contiene. Como
consecuencia, una conjuncin de objetivos seguida de un corte producir a lo sumo una solucin.
Obsrvese, sin embargo, que un corte no afecta a los objetivos situados a su derecha, que s podrn
producir ms de una solucin. Sin embargo, si estos fallan, la bsqueda proceder desde la ltima
alternativa previa a la eleccin de la clusula que contiene el corte.Veamos cmo denir formalmente
este predicado (ver gura 3.6).
Denicin 3.44 Sea una clusula C en un procedimiento que dene el predicado A:
C = A : B
1
....B
k
B
k+2
... B
n
Si el objetivo actual G se unica con la cabeza de C y B
1
....B
k
se satisfacen, el corte:
1. compromete la eleccin de C para reducir G; cualesquiera clusulas alternativas para A unica-
bles con G son ignoradas;
2. si B
i
falla para i k +1, el retroceso opera slo hasta llegar a . Las computaciones restantes
en B
i
, i k, se podan del rbol de bsqueda;
3. si el retroceso alcanza a ste falla y la bsqueda procede desde la ltima eleccin hecha antes
de elegir a C para la reduccin de G.
Ejemplo 3.45 Coloquemos cortes en el predicado mezcla, con el n de solventar los problemas de
eciencia antes destacados:
mezcla[X|Xs] [Y|Ys] [X|Zs]) : X <Y mezclaXs [Y|Ys] Zs).
mezcla[X|Xs] [Y|Ys] [XY|Zs]) : X =Y mezclaXsYs Zs).
mezcla[X|Xs] [Y|Ys] [X Zs]) : X Y mezcla[X|Xs]Ys Zs).
mezclaXs [] Xs) : .
mezcla[]YsYs) : .
138 Captulo 3. PROGRAMACIN LGICA
A:- B1....Kk,!,Bk+2 ,..., Bn
!
B1....Kk
FALLO FALLOFALLO
Bk+i
A
Figura 3.6: Funcionamiento del operador de corte
Obsrvese que el corte se sita tras el test en las tres clusulas recursivas, y como nica clusula del
cuerpo de la regla en los casos base.
Ejercicio 3.46 Compruebe la eciencia del nuevo predicado construyendo el rbol SLD correspon-
diente a la computacin del objetivo mezcla[1 3 5] [2 3] Ks).
Coloquemos tambin cortes en el predicado ordena:
ordenaXsYs):- appendAs [XY|Bs] Xs)
X Y
appendAs [Y X|Bs]Vs)
ordenaVsYs).
ordenaXs Xs) : ordenadaXs) .
Ejercicio 3.47 Compruebe la eciencia del nuevo predicado construyendo el rbol SLD correspon-
diente a la computacin del objetivo ordena[3 2 1] Ks).
Ntese que la utilizacin del predicado de corte ha implicado, en los dos casos anteriores, mejorar
la ecicencia tanto espacial como temporal: al podarse ramas del rbol de bsqueda se reduce el tiem-
po de computacin y, al requerirse guardar menos informacin para usar en caso de retroceso, se gana
espacio de almacenamiento. Como contrapartida, al podar dinmicamente los rboles de bsqueda, el
corte ha alterado la estrategia de evaluacin de los programas. Como ilustran los ejemplos anteriores,
el corte permite evitar caminos de computacin infructuosos que el programador sabe que no pro-
ducirn soluciones o producirn soluciones redundantes o indeseadas. En particular, podr tambin
utilizarse para podar caminos innitos origen de computaciones no terminantes.
Ejercicio 3.48 El siguiente predicado permite averiguar si el factorial de un nmero es menor que
100:
compruebaN) : f actorialN F) minimoF 100 F).
Identique posibles computaciones no terminantes en la utilizacin de este predicado e indique
cmo evitarlas con la utilizacin del predicado de corte.
3.4. El lenguaje PROLOG 139
El predicado de corte se introdujo inicialmente para aumentar la eciencia de los programas PRO-
LOG, sin embargo, su utilizacin puede tener otros efectos no relacionados con la eciencia. A este
respecto se distingue entre los denominados cortes verdes y cortes rojos.
Los cortes verdes podan ramas de computacin que no conducen a nuevos resultados, proporcio-
nando una solucin ms eciente sin que su adicin o eliminacin altere el signicado declarativo de
los predicados. Estos corte se utilizan, por ejemplo, para hacer explcita la naturaleza mutuamente
exclusiva de tests aritmticos (como en el caso del predicado mezcla) o para eliminar computaciones
redundantes (como en el caso del predicado ordena).
Ejercicio 3.49 Reexiona sobre el uso del corte verde en la denicin del predicado:
%minimoXY Min) :
%Min es el m nimo de los n umeros X e Y
minimoXY X) : X Y .
minimoXYY) : X Y .
Comprueba la eciencia del predicado construyendo el rbol SLD correspondiente a la computa-
cin del objetivo minimo5 3 K).
Los cortes rojos, por el contrario, podan ramas de computacin que podran conducir a nuevas
soluciones, de modo que su adicin y eliminacin altera el signicado declarativo del predicado.
Veamos un uso habitual de este tipo de cortes: la omisin de condiciones explcitas.
Previamente denimos una versin del predicado ordenaXsYs) con cortes verdes. Considere-
mos ahora una nueva denicin que incluye cortes rojos:
Ejemplo 3.50 %ordenaXsYs) :
ordena la lista Xs en la lista Ys
ordenaXsYs):- appendAs [XY|Bs] Xs)
X Y
appendAs [Y X|Bs]Vs)
ordenaVsYs).
ordenaXs Xs) : .
Puede observarse que la primera regla se aplica siempre que hay un par de elementos adyacentes
en la lista que estn desordenados. Debido al corte, cuando se usa la segunda ya no existen tales
elementos y la lista est ordenada: la condicin ordenadaXs) puede pues omitirse. Este uso del
corte es ciertamente peligroso, ya que puede olvidarse que si el corte se suprime el programa dara
soluciones falsas.
Ejercicio 3.51 Reexione sobre la posible adicin de cortes rojos y verdes en la denicin del predi-
cado borraLista X SinXs)
% borraLista X SinXs) :- la lista SinXs es el resultado de eliminar todas las ocurrencias
% de X de la lista Lista
borra[X | Xs] XYs) : borraXs XYs).
borra[X Xs] Z [X | Ys]):- X = = Z,
borraXs ZYs).
borra[] X []).
140 Captulo 3. PROGRAMACIN LGICA
Observemos, nalmente, que la utilizacin de cortes puede conducir a deniciones errneas de predi-
cados. Consideremos la denicin de predicado del siguiente ejemplo:
Ejemplo 3.52 %minimimoXY Z) :
%Z es el m nimo de los enteros X e Y
minimoXY X) : X =<Y .
minimoXYY).
El razonamiento implcito en esta denicin es: si X es menor o igual que Y, entonces el mnimo
es X; de otro modo el mnimo es Y, y cualquier otra comparacin entre X e Y es innecesaria. Esta
denicin de predicado es incorrecta: conduce a la satisfaccin de objetivos incorrectos debido a la
omisin de la condicin X Y en la segunda regla.
Ejercicio 3.53 Compruebe la satisfaccin del objetivo minimo2 5 5) utilizando la anterior deni-
cin del predicado.
El error anterior puede evitarse haciendo explcita la unicacin entre los argumentos primero y ter-
cero, que est implcita en la primera regla:
minimoXY Z) : X =<Y Z = X.
minimoXYY).
El problema de este modo de usar el corte es que genera un cdigo difcil de interpretar.
El uso de cortes para la eliminacin de condiciones explcitas es un buen ejemplo de uso peligroso
del operador de corte. Se basa en el conocimiento del comportamiento de PROLOG, especcamente
sobre el orden en que se usan las reglas, para omitir condiciones que podran inferirse como ciertas.
Omitir una condicin es posible si el fallo de las clusulas previas la implica; en general, la condicin
es la negacin de las condiciones previas. A veces resulta esencial en la programacin prctica ya que
las condiciones explcitas, especialmente las negativas, son engorrosas de especicar o inecientes en
ejecucin. Sin embargo, la omisin de condiciones es propensa a error, obliga a tener en mente el
comportamiento operacional de PROLOG y permite escribir programas que resultan falsos ledos co-
mo programas lgicos: proporcionan conclusiones falsas, aunque se comportan correctamente porque
PROLOG es incapaz de probarlas. En general, omitir condiciones simples es desaconsejable: la ga-
nancia en eciencia es mnima comparada con la prdida de legibilidad y mantenimiento del cdigo.
Siempre ser preferible escribir el programa lgico correcto y despus aadir cortes si es importante
para la eciencia:
minimoXY Z) : X =<Y .
minimoXYY) : X Y .
3.4.3 Ventajas de la programacin en PROLOG. Principales aplicaciones.
Las caractersticas de la programacin lgica descritas a lo largo de este captulo, junto a las pro-
pias del lenguaje, proporcionan las siguientes ventajas de la programacin en PROLOG frente a la
programacin convencional:
Programacin declarativa, en un alto nivel de abstraccin No obstante las objeciones plantea-
das en la seccin anterior, el programador de PROLOG se ve en gran parte liberado de la tarea de
especicar como resolver los problemas de forma compleja y paso a paso, y se concentra principal-
mente en describir el propio problema, mientras que la solucin es llevada a cabo por los mecanismos
operacionales predenidos de PROLOG.
3.4. El lenguaje PROLOG 141
Prototipado rpido Tanto la lgica como la programacin requieren la expresin explcita de co-
nocimiento y mtodos de solucin de un problema en un formalismo. Sin embargo, mientras que
la formalizacin del conocimiento en lgica con frecuencia contribuye a profundizar en el problema
en consideracin, la formalizacin en trminos de un lenguaje de programacin convencional raras
veces aporta benecios. PROLOG se ha demostrado muy til para el diseo de prototipos en las fases
de especicacin de sistemas, proporcionando al mismo tiempo una especicacin estructurada del
problema y una fuente compilable.
Facilidad de aprendizaje A pesar de que sus races se encuentren en la disciplina matemtica de la
lgica, el uso de PROLOG no requiere conocimientos de lgica formal. De hecho, su sintxis simple
y compacta lo convierten en un lenguaje muy fcil de aprender, incluso para los que no tienen previa
experiencia en programacin. No hay que pensar, no obstante que escribir programas en PROLOG es
tarea sencilla. Un principiante puede ser rpidamente capaz de escribir sus primeros programas, pero
el desarrollo de programas grandes requiere un modo riguroso de pensar y una maestra del lenguaje
difciles de adquirir.
Tiempo de desarrollo corto En PROLOG, el nmero de lneas de cdigo que se requieren pa-
ra resolver un problema es tpicamente solo una fraccin del tiempo requerido con un lenguaje de
programacin en forma de procedimientos como C o Pascal. Claramente esto puede reducir consi-
derablemente los costes de desarrollo, y puesto que el cdigo es ms fcil de modicar, los costes
subsiguientes de mantenimiento son con frecuencia tambin ms bajos.
Facilidad de lectura y modicacin Muchos de los tpicos errores de programacin comunes en
lenguajes como C o Pascal -por ejemplo, un bucle que itera demasiadas veces o una variable sin
instanciar - no se producen cuando se programa en PROLOG. El cdigo puede verse como la especi-
cacin de un problema bien estructurada que adems es ejecutable. Tal cdigo es adems fcilmente
legible y modicable cuando se modican aspectos del dominio en cuestin.
Fcil manipulacin de estructuras de datos complejas Trabajar con complejas estructuras de
datos como rboles, listas o grafos con frecuencia da lugar a programas grandes y complejos que
gestionan la reserva y liberacin de memoria. Por el contrario, PROLOG proporciona una notacin
simple y elegante para acceder a tales estructuras de datos y denirlas recursivamente, ahorrando al
programador la implementacin de todos los detalles, punteros y gestin explcita del almacenamien-
to.
Mecanismos de control alternativos El control en los programas PROLOG es en cierto modo si-
milar al de los lenguajes convencionales. La invocacin de objetivos se corresponde con la invocacin
de procedimientos, y la ordenacin de los objetivos en el cuerpo de las reglas se corresponde con el
secuenciamiento de sentencias. Las diferencias ocurren cuando tiene lugar la reevaluacin. En un
lenguaje convencional, si la computacin no puede proseguir (por ejemplo, todas las ramas de una
sentencia case son falsas), tiene lugar un error en tiempo de ejecucin. En PROLOG, simplemente
la computacin retrocede hasta el ltimo punto donde se seleccion una alternativa, y se intenta un
camino de computacin diferente.
Manipulacin exible de estructuras de datos. Lenguaje no tipado. Las estructuras de datos
manipuladas por los programas lgicos, denominadas trminos, se corresponden en general con es-
tructuras registro en los lenguajes convencionales. La gestin de las estructuras de datos en PROLOG
142 Captulo 3. PROGRAMACIN LGICA
es muy exible. Como el Lisp, PROLOG es un lenguaje no tipado, libre de declaraciones. Las dife-
rencias ms importantes entre el PROLOG y los lenguajes convencionales en el uso de estructuras de
datos surge de la naturaleza de las variables lgicas. Las variables lgicas se reeren a entes ms que
a localizaciones de memoria. Consecuentemente, una vez que una variable se ha ligado a un objeto
particular, ya no es posible asignrsela a otro. El contenido de una variable inicializada no puede
cambiar. La manipulacin de datos en los programas lgicos es llevada a cabo enteramente por el
algoritmo de unicacin, que implica asignacin, paso de parmetro y alojamiento en memoria. Estas
operaciones se llevan a cabo en programacin convencional usando listas lincadas y manipulacin de
punteros. La manipulacin de las variables lgicas por medio de la unicacin puede verse como una
abstraccin de la manipulacin de bajo nivel de punteros a complejas estructuras de datos.
Diversidad de aplicaciones El uso de los lenguajes de programacin lgica no se ha limitado a
las aplicaciones de investigacin. Entre sus campos de mayor difusin destacan las aplicaciones de
Inteligencia Articial (sistemas expertos - basados en reglas y marcos - , resolucin de restriccio-
nes, procesamiento del lenguaje natural), la teora y desarrollo de las bases de datos deductivas, y
tambin aplicaciones ms convencionales tales como bases de datos, problemas de planicacin di-
nmica, conguracin y logstica, implementacin de compiladores, etc. Un rea de inters actual en
la programacin lgica es el de los sistemas concurrentes y paralelos. Mientras que PROLOG se ha
a daptado particularmente para su ejecucin en arquitecturas Von Neumann, lo cierto es que la pro-
gramacin lgica en sus formas ms puras, en parte por las caractersticas antes sealadas, se adapta
particularmente al diseo de lenguajes de programacin concurrente (tales como el difundido Parlog.
Bibliografa complementaria
Un excelente libro sobre los fundamentos de la programacin lgica, con un estudio del PROLOG
como caso particular, es[1]. Otros dos libros interesantes - y en cierto modo complementarios - son
[2], que no trata ningn lenguaje particular, y [3], que incluye un captulo sobre la vericacin de
programas en PROLOG. Una comparacin de distintos lenguajes de programacin lgica se encuen-
tra en [4]. Textos recomendados para un estudio ms en profundidad del lenguaje Prolog son [5],
[6],[7] y el clsico y muy completsimo [8]. El alumno que desee ampliar conocimientos puede es-
tudiar programacin lgica concurrente y programacin lgica con restricciones respectivamente en
las secciones 8.4 y 8.5 de [9].
[1] J. Lloyd. Foundations of Logic Programming. Addison-Wesley, Reading, MA, 1987. 2
a
edi-
cin.
[2] K. Doets, From Logic to Logic Programming. MIT Press, Cambridge, MA, 1994.
[3] K.R. Apt. From Logic Programming to Prolog.
[4] E. Shapiro, The family of concurrent logic programming languages ACM Computing Surveys,
21 (1989) 413-510.
[5] W.F. Clocksin y C.S. Mellish. Programacin en Prolog. Springer-Verlag (1984). Traducido en
Editorial Gustavo Gili, 1987.
[6]I. Bratko (1991).Prolog programming for articial intelligence. Addison-Wesley (Segunda edi-
cin).
[7]F. Giannesini, R. H. Kanoui, R. Pasero, M. van Caneghem. Prolog. Versin traducida (1989).
Addison-Wesley Iberoamericana.
[8]L. Sterling, E. Shapiro (1986). The art of prolog. MIT Press.
[9] M. Ben-Ari. Principles of Concurrent and Distributed Programming. Prentice-Hall Interna-
tional, Londres, 1990.
3.4. El lenguaje PROLOG 143
ctividades y evaluacin
Los ejercicios ms interesantes de este tema consisten en construir el rbol de deduccin SLD aso-
ciado a la ejecucin de un pequeo programa lgico; vanse los ejercicios 4, 5 y 6 del captulo 8
del texto: Ben-Ari M. Mathematical Logic for Computer Science. Springer-Verlag, London, 2001.
Tambin es conveniente realizar los ejercicios 4 a 7 tal como estn enunciados en el libro. Como
apoyo para la realizacin de estos ejercicios puede ser muy interesante utilizar un programa para la
visualizacin de rbolos SLD, tal como el que ofrece un alumno de la Universidad de Mlaga en la
direccin Web: http://polaris.lcc.uma.es/ pacog/apuntes/pd/
Finalmente, es muy interesante que el alumno se inicie en la programacin en PROLOG mediante
la codicacin de pequeos programas. Los ejercicios no se centrarn en cuestiones de estilo ni se
orientarn al desarrollo de grandes aplicaciones, ya que tan slo se pretende que el alumno com-
prenda las idiosincrasias de la programacin lgica y los compromisos (programacin lgica frente
a algortmica) que supone el diseo de programas ecientes. Adicionalmente, la programacin en
PROLOG mejorar la comprensin de la lgica proposicional y de predicados, particularmente de
los mtodos deductivos que utilizan la resolucin (junto con los procesos de equiparacin y unica-
cin de variables que conlleva), ya que la traduccin de las clusulas Horn a cdigo PROLOG es
inmediata.
Para este propsito el alumno instalar en su ordenador un intrprete de PROLOG. En las p-
ginas web de la asignatura Programacin orientada a la inteligencia articial, cuya direccin
es:
http://www.ia.uned.es/asignaturas/prog-ia/util/index.html
se pueden encontrar diferentes intrpretes tanto para los sistemas LINUX como para los sistemas
WINDOWS. Por su sencillez, aconsejamos utilizar el entorno SWI. Sugerimos la utilizacin de las fa-
cilidades de traza que los intrpretes proporcionan, con el n de depurar los programas y comprender
en profundidad la semntica operacional que los sistemas PROLOG implementan (algoritmo de bs-
queda, mecanismos de unicacin y equiparacin...). Una vez codicado un predicado, es tambin
altamente recomendable que el alumno ensaye a dibujar el rbol SLD correspondiente a la ejecucin
de determinadas preguntas PROLOG y compruebe cmo el intrprete lleva a cabo el correspondiente
proceso de resolucin.
144
Captulo 4
VERIFICACIN DE PROGRAMAS
SECUENCIALES
Resumen
Este tema estudia cmo denir con precisin la semntica de un lenguaje formal mediante la lgica
de Hoare y cmo utilizar un mtodo deductivo basado en ella para la vericacin de programas
secuenciales.
Objetivos
El objetivo principal es que el alumno aprenda a vericar pequeos programas secuenciales mediante
la lgica de Hoare.
Metodologa
Para poder comprobar que un programa es correcto hace falta establecer con precisin su semntica.
Por ello, casi al principio de este tema se dene un lenguaje que contiene slo tres instrucciones: if
thenelse, whiledo y := (asignacin de valores a variables); aunque se trata de un lenguaje aparente
muy simple, la mayor parte de las instrucciones de lenguajes de programacin ms complejos salvo
las relativas a interfaces de entrada/salida se pueden construir a partir de estas tres instrucciones
bsicas. Luego se establece la semntica de este lenguaje mediante ciertas expresiones lgicas, las
ternas de Hoare, que representan la transformacin de estados asociada a cada instruccin. Final-
mente, se expone un sistema deductivo para la lgica de Hoare y se explica cmo aplicarlo a la
vericacin y sntesis de programas.
4.1 Introduccin
El hecho de que un programa tenga un error puede resultar sumamente costoso, no slo en trminos
econmicos, sino que en ciertos casos incluso puede poner en peligro la vida de muchos seres huma-
nos. Por eso es importante disponer de mtodos que permitan comprobar que un programa cumple
las especicaciones con que fue diseado. Generalmente las especicaciones suelen venir dadas en
lenguaje natural. Por ejemplo: Quiero un programa que calcule las nminas de mis empleados, a
partir de los siguientes datos. . .. Naturalmente, dada la ambigedad y falta de precisin del lenguaje
145
146 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES
natural y la ausencia de mtodos que permitan una compresin automtica del mismo, se hace necesa-
rio contar con descripciones formales que indiquen de forma precisa e inequvoca las especicaciones
de cada programa. Una vez que se conocen las especicaciones, sera deseable contar con un mtodo,
implementable en un programa de ordenador, que generase automticamente el programa buscado,
libre de errores. Dado que esto es todava hoy ciencia-ccin, al menos sera deseable contar con
mtodos que permitan comprobar de forma automtica o semiautomtica que cierto programa cumple
las especicaciones, es decir, que hace lo que se espera de l, sin cometer nunca errores; es lo que se
conoce como vericacin de programas.
An estamos lejos de contar con vericadores totalmente automticos, pero recientemente se han
desarrollado ya vericadores semiautomticos para lenguajes de alto nivel.
1
Los grandes avances que
se han producido en las ltimas tres dcadas y los intereses de los fabricantes de software por garan-
tizar la abilidad de sus productos hacen pensar que en los prximos aos se seguirn produciendo
progresos muy signicativos en este campo. Precisamente por la importancia del tema, es de esperar
que el conocimiento de los mtodos de vericacin formal sea una de las cualidades ms valoradas de
los ingenieros en informtica de un futuro no muy lejano.
En este tema vamos a estudiar los mtodos de vericacin de programas secuenciales. En con-
creto, vamos a estudiar un sistema deductivo que permite vericar programas de un lenguaje de pro-
gramacin muy sencillo, tan sencillo que slo tiene tres instrucciones: asignacin de variables (:=),
condicional (if-then-else), y bucle (while-do). Aunque se trata de un lenguaje aparentemente
muy simple, la mayor parte de las instrucciones de lenguajes de programacin ms complejos salvo
las relativas a interfaces de entrada/salida se pueden construir a partir de estas tres instrucciones b-
sicas. Luego introduciremos ciertas expresiones lgicas, las ternas de Hoare, que permiten especicar
formalmente un programa. Ms adelante expondremos un sistema deductivo (el sistema de Hoare) y
explicaremos cmo aplicarlo a la vericacin de programas escritos en nuestro micro-lenguaje.
4.2 Sintaxis
4.2.1 Un micro-lenguaje de programacin
Como hemos dicho en la introduccin, la vericacin de un programa escrito en un lenguaje de alto
nivel es sumamente complicada. Para simplicar nuestro estudio, vamos a denir un pequeo lenguaje
que slo tiene tres instrucciones y dos tipos de datos: booleanos y enteros. En las conclusiones
comentaremos las limitaciones de este micro-lenguaje en comparacin con los lenguajes habituales.
Utilizando la notacin gramatical de Naur Backus (NBF), denimos nuestro micro-lenguaje as:
E :== n | x | (E) | E +E) | E -E) | E *E)
B :== true | false | B | B &B) | B | B) | E ==E) | E =E)
| E < E) | E =< E) | E E) | E =E)
S :== x:=E | if B then (S)[ else (S)] | while B do (S) | S;S
Observe que en este lenguaje tenemos dos tipos de expresiones: boleanas (B) y enteras (E) y tres
tipos de instrucciones (S, del ingls, statement). Una expresin booleana puede venir dada por un
entero (n), tal como 1 3758, una variable de programa (por ejemplo, x), el opuesto de una expresin
entera (por ejemplo, -1o -y) o bien por la suma, resta o multiplicacin de dos expresiones enteras.
1
Vea, por ejemplo, el proyecto KeY, http://i12www.ira.uka.de/~key/, que ha conseguido integrar especicacin
formal (en OCL) y vericacin semiautomtica (con una ampliacin de las tcnicas expuestas en este captulo) en una
herramienta CASE de modelado mediante objetos (UML), especialmente diseada para programar en Java.
4.2. Sintaxis 147
Las palabras reservadas true y false son expresiones boolenas. La negacin de una expresin
booleana tambin lo es, as como la conjuncin y disyuncin de expresiones booleanas y la compara-
cin de expresiones enteras.
2
El primer tipo de instruccin que tenemos es la asignacin de una expresin numrica E a una
variable x. Hay tambin expresiones condicionales (de la forma if-then o if-then-else) y, en
tercer lugar, bucles (instrucciones while). La concatenacin de dos expresiones (C;C) tambin es una
expresin.
Ejemplo 4.1 El siguiente programa, que denominaremos fact1, est escrito en nuestro micro-
lenguaje:
fact := 1;
i := 0;
while (i = x) do (
i := i + 1;
fact := fact * i
)
Como el lector habr adivinado, este programa sirve para calcular el factorial de x. Ms adelante
vamos a demostrar formalmente que esto es as.
4.2.2 Especicacin de estados
Dado el conjunto de variables que aparecen en un programa, un estado viene dado por la asignacin
de un valor a cada una de variables. Por ejemplo, si las variables son x, i y fact, la expresin
{x = 10i = 4fact = 24} representa un estado.
Puede haber tambin expresiones en que no aparezcan todas las variables que se usan en el progra-
ma. Tales expresiones no representan un estado, sino un conjunto innito de ellos. As, si las variables
de un programa son x, iy fact, la expresin {i = 4} no representa un nico estado, sino el conjunto
de todos los estados en que la variable i tiene el valor 4; este conjunto tiene tantos estados como
valores puedan tomar xy fact. Otro ejemplo de expresin que representa un conjunto de estados es
la siguiente: {x 0x 10i = x}.
Cualquier expresin lgica, por tanto, representa un estado o un conjunto de estados. En particular,
{} representa todos los estados posibles, y {} no representa ningn estado (conjunto vaco).
4.2.3 Ternas de Hoare
Dado un lenguaje que expresa los estados de un sistema y un lenguaje de programacin (cada frmula
de este lenguaje representa una instruccin, es decir, un programa), denimos un nuevo lenguaje
formado por ternas de la forma
{precondicin}(instruccin){postcondicin}
Estas expresiones se denominan ternas de Hoare. La interpretacin intuitiva de esta expresin es que
si un sistema que se encuentra en alguno de los estados representados por la precondicin ejecuta la
instruccin, pasa a alguno de los estados representados por la postcondicin.
2
Observe que en Pascal la asignacin de variables se representa mediante := y la comparacin mediante =, mientras
que en C y Java la asignacin se representa mediante = y la comparacin mediante ==. Para evitar confusiones, en
nuestro micro-lenguaje hemos utilizado := para la asignacin y == para la comparacin. En cambio, en las expresiones
lgicas utilizaremos el signo = para denotar la igualdad porque en ellas no hay confusin sobre su signicado.
148 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES
Ejemplo 4.2 La terna {i = 4}(i:=i+1){i = 5} signica que si el sistema se encuentra en un estado
en que ivale 4 y ejecuta la instruccin i:=i+1, pasa a un estado en que ivale 5.
Ejemplo 4.3 {i 0}(i:=i+1){i 1}.
Ejemplo 4.4 Dado que la condicin es cierta para todos los estados, la terna {}(i:=5){i = 5}
signica que, cualquiera que se sea el estado inicial del sistema, la ejecucin de la instruccin i:=5
hace que el sistema pase a un estado en que i vale 5.
Nota. Como hemos visto anteriormente al denir nuestro micro-lenguaje, la concatenacin de
dos instrucciones es una nueva instruccin. En la prctica llamamos programa a una instruccin
compuesta que realiza cierta tarea. Sin embargo, formalmente no hay diferencia entre programas e
instrucciones.
Cuando tenemos una terna de Hoare en que el programa no est denido todava, se dice que
tenemos una especicacin del programa, pues estamos indicando solamente cules son los requisitos
que debe cumplir el programa. Por ejemplo, la condicin
{x 0}S){fact = x} (4.1)
es una especicacin, porque indica que el programa debe calcular el factorial de un nmero no
negativo (ms adelante veremos por qu esta especicacin no es del todo correcta).
4.2.4 Variables de programa y variables lgicas
Imagine que queremos expresar mediante una terna de Hoare la propiedad de que, cualquiera que sea
el valor inicial de la variable i, la instruccin i:=i+1hace que el valor de esta variable aumente en una
unidad. Por analoga con el ejemplo 4.4, un aprendiz de lgica ingenuo podra intentar representarla
as:
{}i:=i+1){i = i +1} (incorrecta)
Claramente, esta expresin es incorrecta, porque la condicin i = i +1 siempre es falsa. La forma
correcta de representar la propiedad anterior es sta:
a {i = a}i:=i+1){i = a+1}
Observe que en este caso la variable a no aparece en la instruccin. Estas variables, que no forman
parte del programa, sino que se introducen para relacionar la precondicin con la postcondicin,
se denominan variables lgicas, para distinguirlas de las variables de programa, que son las que
aparecen la instruccin S. En las ternas de Hoare, las variables lgicas estn siempre sujetas a un
cuanticador universal, que en la prctica suele omitirse, de modo que lo habitual ser escribir la
expresin anterior simplemente as:
{i = a}i:=i+1){i = a+1}
Pero no debemos olvidar que en realidad hay un cuanticador en esta expresin, aunque no lo hayamos
escrito.
Veamos con otro ejemplo la necesidad de introducir variables lgicas. Ya hemos dicho antes que
la expresin (4.1) es una especicacin para el clculo del factorial de enteros no negativos. Aunque
todava no hemos desarrollado los mtodos formales, no ser difcil para el lector comprobar que el
4.3. Semntica de los programas 149
programa fact1 del ejemplo 4.1 cumple esta condicin, lo cual es correcto. Sin embargo, observe
que el programa (x:=1;fact:=1)tambin cumple la condicin (4.1),
{x 0}x:=1;fact:=1){fact = x}
a pesar de que no calcula correctamente el factorial cuando x 1. Esto nos muestra que la especica-
cin (4.1) no es satisfactoria.
En cambio, el siguiente programa, que llamaremos fact2,
fact := 1;
while (x = 0) do (
fact := fact * x;
x = x - 1;
)
s calcula correctamente el factorial, pero no cumple la condicin (4.1). Por tanto, la especica-
cin (4.1) no es necesaria ni suciente para garantizar que el programa calcula el factorial.
Cul es la forma correcta de representar esta especicacin? Una solucin es la siguiente:
a {x = a}S){fact = a} (4.2)
En esta expresin hemos indicado explcitamente el cuanticador universal para que quede claro que
a es una variable lgica, y por tanto no puede aparecer en el cuerpo del programa. (Si el programa
utilizase la variable a tendramos que escoger una variable lgica diferente, como es natural.) Reco-
medamos al lector que compruebe que el programa (x:=1;fact:=1)no cumple esta especicacin,
pero los programas fact1y fact2s la cumplen.
La conclusin que se saca de los ejemplos anteriores es que hay que utilizar variables lgicas
cuando queremos que la poscondicin haga referencia al valor que toma cierta variable en la precon-
dicin y el cuerpo del programa modica el valor de esa variable. As, en nuestro ejemplo, queremos
que, despus de ejectutar el programa S, la variable fact contenga el factorial del valor asignado ini-
cialmente a x. Cuando el programa no modica el valor de x (como era el caso del programa fact1),
la especicacin (4.1) no plantea problemas, porque el valor nal de x es el mismo que el inicial. En
cambio, cuando el programa modica el valor de x (como era el caso del programa fact2), la post-
condicin {fact = x}, que hace referencia al valor nal de x, no nos sirve, y por eso debemos utilizar
la especicacin (4.2).
4.3 Semntica de los programas
4.3.1 Correccin total
Una terna de Hoare, {p}(S){q), puede considerarse como una proposicin y por tanto es posible
asignarle un valor de verdad. Decimos que una terna de Hoare es cierta si todo sistema que parte de
un estado (cualquiera) que satisface p pasa a un estado que satisface q, y se representa as:
3

tot
{p}S){q}
3
En este captulo estamos deniendo la semntica de modo un tanto informal, basada en el estado inicial y el estado
nal de una computacin. Para un tratamiento riguroso, el lector puede consultar el libro de Francez [1992] o el de Apt y
Olderog [1997]. La denicin de semntica que ofrece el libro de Ben-Ari [2001] es diferente, y est basada en el concepto
de condicin ms dbil (weakest precondition).
150 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES
Esta propiedad, denominada correccin total, es muy importante en la prctica, pues la verica-
cin del programa S consiste precisamente en demostrar que siempre que el sistema satisface ciertas
condiciones (p) la ejecucin de S hace que se satisfaga la condicin que nos interesa (q). Las dos
tareas ms frecuentes que vamos encontrar en la prctica son:
Vericacin: Tenemos las condiciones p y el programa S (codicado por nosotros mismos o por
otro programador) y queremos demostrar que el programa es correcto (es decir, la ejecucin del
programa hace que se satisfaga la condicin q).
Programacin: Conocemos las condiciones p y q y queremos encontrar el programa S. En este
caso, se trata de un problema de programacin.
En este captulo vamos a estudiar mtodos formales de vericacin. En la seccin 4.7.2 mencio-
naremos brevemente la posibilidad de utilizar estos mtodos para realizar a la vez la programacin y
la vericacin.
Para algunas instrucciones sencillas es fcil ver que se satisface la correccin total. Por ejemplo,

tot
{i = 4}(i:=i+1){i = 5}
En la prctica, demostrar la correccin total directamente suele ser bastante complicado. En estos
casos podemos resolver el problema dividindolo en dos subtareas: (1) demostrar que el programa,
si termina, llega a q es lo que se denomina correccin parcial y (2) demostrar que el programa
termina.
4
En la prctica, el mtodo que se sigue es demostrar primero la correccin parcial y adaptar
luego la demostracin para probar la correccin total (vase la sec. 4.6).
4.3.2 Correccin parcial
La correccin parcial se expresa as:

par
{p}S){q}
y, como hemos dicho, signica que si un sistema que se encuentra en un estado que satisface la
condicin ejecuta el programa S, si el programa termina, llega al estado q.
De esta denicin se deduce que un programa que no termina nunca siempre es parcialmente
correcto (para toda p y toda q), pero nunca es totalmente correcto. Por ejemplo,

par
{p}while true do (i:=0)){q}

tot
{p}while true do (i:=0)){q}
Otro ejemplo trivial es que para todo S se cumple que

par
{}S){q} (4.3)
Por tanto, todo programa S es parcialmente correcto para la precondicin cualquiera que sea la
postcondicin.
5
Anlogamente tenemos que

par
{p}S){} (4.4)
4
Obviamente, las nicas instrucciones que pueden hacer que el programa no termine son los bucles while. Por eso, para
demostrar que un programa termina basta demostrar que todos sus bucles terminan.
5
Naturalmente, este ejemplo slo tiene inters didctico, porque la precondicin excluye todos los estados. Dado
que un ordenador real siempre va a encontrarse en algn estado, la propiedad (4.3) nunca puede aplicarse en la prctica.
4.4. El sistema deductivo de Hoare 151
porque la condicin se satisface siempre, y de ah se deduce que todo programa es parcialmente
correcto para la prostcondicin cualquiera que sea la precondicin.
6
En la prxima seccin vamos a estudiar un sistema deductivo que nos permitir demostrar la
correccin parcial de programas que presentan inters real. En la seccin 4.6 discutiremos cmo
demostrar la terminacin en el caso de programas con bucles.
4.4 El sistema deductivo de Hoare
El sistema deductivo de Hoare se basa en cinco axiomas, que sirven como reglas de deduccin:
Asignacin:
{PE)}x:=E){Px)} (4.5)
Condicional:
{pB}S
1
){q} {pB}S
2
){q}
{p}if B then (S
1
) else (S
2
)){q}
(4.6)
Bucle:
{pB}S){p}
{p}while B do (S)){pB}
(4.7)
Composicin:
{p}S
1
){q} {q}S
2
){r}
{p}S
1
;S
2
){r}
(4.8)
Encadenamiento:
{p p

} {p

}S){q

} {q

q}
{p}S){q}
(4.9)
A estas reglas habra que aadir los axiomas propios del dominio. En el caso de nuestro micro-
lenguaje el dominio es la aritmtica entera, pues el nico tipo de datos que admite son enteros (a parte
de expresiones booleanas, naturalmente, que formarn parte de la lgica). Por ejemplo, un axioma del
dominio puede ser x x = x. Otro axioma puede ser x y z x = y x +z = y +z. De hecho,
ms adelante veremos que en la vericacin de programas se combinan dos sistemas deductivos, uno
para razonar sobre las ternas de Hoare y otro para razonar sobre el dominio (la aritmtica).
Vamos a explicar a continuacin cada una de estas reglas. Pero antes debemos mencionar que los
nombres varan mucho de un texto a otro. Por eso no es importante recordar los nombres de las reglas
sino su signicado y la forma en que se aplican.
4.4.1 Regla de asignacin
La regla de asignacin nos dice que si una condicin, expresada en forma de predicado, se cumple
para la expresin E entonces se cumple tambin para x despus de haber asignado a la variable x el
valor E (x:=). Dicho de otra forma, si queremos demostrar que la variable x cumple el predicado
P tenemos que demostrar que el valor (dado por la expresin E) que hemos asignado a x cumpla el
predicado P, porque si no se cumpla PE), tampoco va a cumplir Px).
6
De nuevo encontramos un ejemplo que slo tiene inters didctico, a pesar de que la propiedad (4.4) siempre es cierta:
la razn es que esta propiedad slo nos dice que, si el programa S termina, el sistema se va a encontrar en algn estado, lo
cual es tanto como no decir nada.
152 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES
Ejemplo 4.5 La regla de asignacin nos permite deducir que
{a = 0}x:=a){x = 0}
En este ejemplo, el predicado P es igual a cero y la expresin E (el valor asignado a la variable) es
a; por eso PE) es a = 0. El signicado de la regla de asignacin, en este ejemplo, es que si a
vala inicialmente 0, la instruccin x:=ahace que x tambin valga 0.
En la prctica esta regla se aplica hacia atrs, de modo que si queremos demostrar que despus de
la asignacin x:=Ese cumple Px), intentaremos demostrar que PE) era cierto antes de la asignacin.
La forma de hacer esto consiste en tomar la postcondicin y sustituir en ella x por E. As, en el ejemplo
anterior, debemos tomar la postcondicin x =0, y sustituir x por el valor que le asigna la instruccin
(x:=a), con lo cual obtenemos la precondicin a = 0.
Ejemplo 4.6 Si queremos ver qu precondicin satisface esta terna
{?}x:=a+1){x = 0}
tenemos que tomar la postcondicin, x = 0, y sustituir x por el valor que se le asigna, que es a+1,
con lo cual la precondicin que obtenemos es a+1 = 0:
{a+1 = 0}x:=a+1){x = 0}
Ejemplo 4.7
{x +y = 7}z:=x+y){z = 7}
Ejemplo 4.8
{x +1 = 4}x:=x+1){x = 4}
Como se ve en estos ejemplos, la precondicin se obtiene tomando la postcondicin y sustituyendo
en ella la variable por el valor que se le asigna.
4.4.2 Regla del condicional
La regla del condicional nos dice que si tenemos que demostrar una terna de la forma
{p}if B then (S
1
) else (S
2
)){q}
podemos hacerlo en dos pasos: por un lado demostramos que, cuando partimos de la condicin p y B
es cierto, la ejecucin de S
1
garantiza la condicin q,
{pB}S
1
){q}
y por otro lado, demostramos que, cuando partimos de la misma condicin p y B es falso, la ejecucin
de S
2
tambin garantiza la condicin q,
{pB}S
2
){q}
4.4. El sistema deductivo de Hoare 153
Ejemplo 4.9 Para demostrar que
{x = 0}if (x 0) then (y:=x) else (y:=-x)){y 0}
basta demostrar que
{x = 0x 0}y:=x){y 0}
y que
{x = 0x 0)}y:=-x){y 0}
Naturalmente, al traducir las expresiones booleanas del programa al lenguaje de la lgica hay que
recordar la equivalencia entre los operadores de programa y los operadores lgico-matemticos. Por
ejemplo, las expresiones booleanas (x=0)y (0=<x & x=<10)se traducen, respectivamente, como
x = 0) y 0 x x 10).
7
Como hemos visto, la regla del condicional es muy fcil de entender. Vamos a ver a continuacin
otra versin de esta regla que, aunque no es tan intuitiva ni tan fcil de recordar, resulta ms cmoda
de aplicar en la prctica.
4.4.3 Regla del condicional modicada
Queremos que el sistema, despus de ejecutar la instruccin ifB then(S
1
)else(S
2
) satisfaga la
condicin q.
{p}if B then S
1
) else S
2
)){q}
Supongamos que hemos encontrado dos condiciones, p
1
y p
2
, tales que {p
1
}S
1
){q} y {p
2
}S
2
){q}.
Denimos p as
p = B p
1
) B p
2
) (4.10)
Como pB p
1
, por la regla de encadenamiento tenemos que
{pB}S
1
){q}
Anlogamente, como pB p
2
,
{pB}S
2
){q}
Introduciendo estos dos resultados en la regla del condicional (expresin (4.6)) tenemos que
{p
1
}S
1
){q} {p
2
}S
2
){q}
{B p
1
) B p
2
)}if B then (S
1
) else (S
2
)){q}
(4.11)
Esta nueva versin de la regla del condicional nos dice que para asegurar que el sistema, despus
de ejecutar la instruccin ifB then(S
1
)else(S
2
) satisfaga la postcondicin q, es suciente que
satisfaga la precondicin B p
1
) B p
2
).
Esta nueva versin tiene la ventaja de que es ms fcil buscar p
1
y p
2
por separado que tener
que buscar directamente una condicin p que satisfaga las dos condiciones, {p B}S
1
){q} y {p
B}S
2
){q}. O visto de otra forma, el buscar p
1
y p
2
por separado es una forma de buscar p, de
acuerdo con la ecuacin (4.10).
En la seccin 4.5.3 veremos cmo se aplica esta regla en la prctica.
7
Tenga cuidado de no confundir x=0, que signica x es distinto de 0, con x = 0, que signica que el factorial de x
es 0.
154 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES
4.4.4 Regla del bucle
La regla del bucle est ntimamente ligada al concepto de invariante.
Denicin 4.10 La condicin p es un invariante para la instruccin while B do (S) si y slo si
se cumple que
{pB}S){p} (4.12)
De esta denicin se deduce que, si p es cierto antes de ejecutar la instruccin while tambin
lo ser despus de haberla ejecutado. Por qu? Supongamos que B es falsa. Entonces el cuerpo S
no se ejecuta; por tanto, el estado del sistema no se modica y la condicin p sigue siendo cierta.
Supongamos que B es cierta. Eso signica que el cuerpo S se ejecuta en un estado que satisface la
condicin p B, y entonces la propiedad (4.12) nos garantiza que despus de ejecutar S el sistema
va a seguir cumpliendo la condicin p. Dicho de otro modo, no sabemos a priori cuntas veces se
va a ejecutar el cuerpo S dentro de la instruccin while, pero s sabemos que en cada una de las
ejecuciones se va a mantener la propiedad p. Por eso p se denomina invariante. Esto es lo que nos
permite concluir que
{pB}S){p}
{p}while B do (S)){p}
Por otro lado, la instruccin while slo termina cuando B es falsa. Uniendo estos dos resultados
tenemos
{pB}S){p}
{p}while B do (S)){pB}
que es precisamente la regla del bucle.
Proposicin 4.11 Para toda instruccin while, es un invariante.
Demostracin. La frmula {B}S){} es una tautologa, porque la postcondicin siempre es
cierta.
Naturalmente, en la prctica nos interesa encontrar invariantes no triviales. Veamos otros ejemplos
de invariantes.
Ejemplo 4.12 La regla del bucle nos dice que para demostrar
{x = 0}while (y=0) do (z:=3)){x = 0y = 0)}
basta demostrar que {x = 0 y = 0}z:=3){x = 0}. (Esta frmula se demuestra por la regla de
asignacin, pues en la postcondicin x =0 no aparece z, y por eso al sustituir z por 3 la precondicin
que se obtiene es la misma, x = 0.) El invariante es x = 0.
En este ejemplo se da una paradoja: inicalmente no sabemos cul es el valor de y y sin embargo
concluimos que, despus de ejecutar el bucle, se cumple que y = 0), es decir, y = 0, a pesar de
que el bucle no ha modicado el valor de y. Cmo se explica esto? Debemos tener en cuenta
dos situaciones: si inicialmente y = 0, la instruccin while no hace nada, y el programa termina,
satisfaciendo la condicin {x = 0 y = 0}. En cambio, si inicialmente y = 0, el programa entra en
un bucle innito. Por eso no hay contradiccin al armar que si el programa termina (algo que no
ocurre cuando y = 0), el valor de y al salir del bucle es 0.
Como ya hemos mencionado, el sistema deductivo de Hoare slo garantiza la correccin parcial:
la armacin {p}S){q} es equivalente a
par
{p}S){q}, que, como vimos anteriormente, signi-
ca que si el sistema satisface inicialmente la condicin p y ejecuta el programa S y el programa
termina, entonces el sistema satisface la condicin q.
4.4. El sistema deductivo de Hoare 155
En el ejemplo anterior era muy fcil encontrar un invariante: como el cuerpo de la instruccin
while, que es z:=3, no modica el valor de x ni de y, cualquier condicin en que slo aparezcan estas
dos variables ser un invariante.
Otro ejemplo similar es el siguiente:
Ejemplo 4.13
{x < 5}while (x==0) do (y:=1)){x < 5x = 0)}
En estos dos ejemplos, el cuerpo de la instruccin while, S, no modica la condicin, B, y por eso
hay dos posibilidades: o bien la condicin es cierta antes de ejecutar la instruccin while, con lo cual
el programa entra en un bucle innito, o bien la condicin es falsa antes de ejecutar la instruccin,
con lo cual la instruccin while no hace nada, y es como si no estuviera en el programa. Por eso en
la prctica slo nos interesan los casos en que el cuerpo, S, puede modicar la condicin, B.
Ejemplo 4.14 Queremos demostrar que
{x 0}while (x=0) do (x:=x-1)){x = 0}
Para ello, demostramos la expresin
{x 0x = 0}x:=x-1){x 0}
que indica que x 0 es un invariante para este bucle. Aplicando la regla del bucle, con las equiva-
lencias p = x 0, B = x = 0 y S = x:=x-1 se obtiene que
{x 0}while (x=0) do (x:=x-1)){x 0x = 0)}
de donde se deduce la expresin que queramos demostrar.
4.4.5 Regla de composicin
La regla de composicin es muy sencilla: si queremos demostrar {p}S
1
;S
2
){r} tenemos que buscar
una propiedad q tal que {p}S
1
){q} y {q}S
1
;S
2
){r}.
Ejemplo 4.15 Para demostrar que
{x 0}y:=x+1;z:=2*y)){z 0}
basta demostrar estas dos frmulas:
{x 0}y:=x+1){y 0}
{y 0}z:=2*y)){z 0}
o bien estas dos:
{x 0}y:=x+1){y 1}
{y 1}z:=2*y)){z 0}
156 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES
4.4.6 Regla de encadenamiento
La regla de encadenamiento tambin es muy sencilla y ya la hemos aplicado en algunos de los ejem-
plos anteriores. Tan slo vamos a indicar que de la regla de encadenamiento y de la propiedad p p
se deducen estas dos reglas, que pueden considerarse como casos particulares de ella:
{p p

} {p

}S){q}
{p}S){q}
{p}S){q

} {q

q}
{p}S){q}
4.5 Vericacin parcial de programas
4.5.1 Composicin y encadenamiento
Supongamos que tenemos un programa S compuesto por una serie de instrucciones, S = S
1
;. . .;S
n
.
Una forma de expresar la vericacin de este programa consiste en escribir una cadena de condiciones
e instrucciones, de este modo,
{p}
S
1
{p
1
} [Justicacin-1]
.
.
.
{p
n1
} [Justicacin-n1)]
S
n
{q} [Justicacin-n]
(Denimos p
0
= p y p
n
= q.) Para cada eslabn {p
i1
}S
i
){p
i
} se indica entre corchetes cul
es la regla que lo justica. Al demostrar todos y cada uno de los eslabones, el programa S queda
demostrado, por la regla de composicin. Si S
i
es una instruccin compuesta, hay que repetir el pro-
ceso anterior anidando las cadenas de demostracin, y as sucesivamente, hasta llegar a instrucciones
simples.
A veces puede resultar que la postcondicin de S
i
no coincida con la precondicin que requiere
S
i+1
. En ese caso es posible insertar varias condiones entre S
i
y S
i+1
,
{p}
S
i
{p
i1
} [Justicacin-i]
{p
i2
} [Justicacin-i,1]
.
.
.
{p
ik
} [Justicacin-i k]
S
i+1
de modo que la primera condicin intermedia, p
i1
, es la postcondicin de S
i
, y la ltima condicin
intermedia, p
ik
, sirve de precondicin para S
i+1
. Para cada par de proposiciones consecutivas, la
frmula p
i j
p
i j+1
se demuestra por alguno de los axiomas del dominio o por alguna de las
propiedades de la lgica de predicados, que se indica entre corchetes como [Justicacin-i j]. La
validez de la demostracin viene garantizada por la regla de encadenamiento.
4.5. Vericacin parcial de programas 157
Observe que en el proceso de vericacin estamos combinando dos sistemas deductivos. Por
un lado, tenemos el sistema deductivo de Hoare, que nos permite justicar los eslabones del tipo
{p
i1
}S
i
){p
i
}, y por otro lado el sistema deductivo propio del dominio, que nos permite justicar
los eslabones del tipo p
i j
p
i j+1
. Como hemos dicho ya, en el caso de nuestro micro-lenguaje, el
dominio es la aritmtica de los nmeros enteros.
Ejemplo 4.16 La demostracin de {}x:=2;y:=3*x+1){y = 7} puede ser sta:
{}
{2 = 2} [x x = x]
x:=2
{x = 2} [Regla de asignacin]
{3x +1 = 7} [32+1 = 7]
y:=3*x+1
{y = 7} [Regla de asignacin]
Observe que la demostracin de {2 =2}x:=2){x =2} y de {3x+1 =7}y:=3*x+1){y =7}
se basa en la regla de asignacin, que pertenece al sistema deductivo de Hoare, mientras que
2=2 y x = 2) 3x +1 = 7) se demuestran mediante el sistema deductivo de la aritmtica.
Aunque resulta ms intuitivo entender la demostracin leyndola en el sentido de ejecucin del
programa, es decir, de arriba a abajo (o hacia adelante, si se preere), la construccin de la demostra-
cin suele ser ms sencilla en sentido inverso, es decir, desde la postcondicin hasta la precondicin
(de abajo a arriba, o hacia atrs). La razn es que generalmente la regla de asignacin y la del condi-
cional son ms fciles de aplicar hacia atrs que hacia adelante, como vamos a ver a continuacin.
4.5.2 Tratamiento de las asignaciones
La regla de asignacin puede expresarse as:
{PE)}
x := E
{Px)} [Regla de asignacin]
Como acabamos de indicar, generalmente esta regla es ms fcil de aplicar hacia atrs. Lo vemos
volviendo al ejemplo anterior.
Ejemplo 4.17 Queremos demostrar que {}x:=2;y:=3*x+1){y = 7}. Para ello escribimos la
precondicin, las instrucciones simples y la postcondicin. Entre cada par de instrucciones insertamos
la condicin correspondiente que, como an no conocemos, la hemos representado mediante una
interrogacin. Una interrogacin entre corchetes indica que an no hemos demostrado ese paso. (Si
el lector lo preere, al construir sus demostraciones puede dejar un espacio en blanco en vez de escribir
una interrogacin; nosotros utilizamos la interrogacin para que quede ms claro cundo hay todava
algn paso pendiente de demostrar.)
{}
x := 2
{?} [?]
y := 3*x+1
{y = 7} [?]
158 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES
Si queremos construir la demostracin de arriba a abajo, tenemos que buscar un predicado P que
nos permita aplicar la regla de asignacin {PE)}x:=2){Px)}. El problema es que, en nuestro
esbozo de demostracin, la precondicin de x:=2 es ; si tomamos este predicado tenemos que
PE) = P2) = , con lo que concluimos que {}x:=2){}, lo cual es cierto pero no nos sirve
para nada. Para esta primera instruccin tampoco podemos buscar el predicado P a partir de su
postcondicin porque an no la conocemos (por eso hemos escrito una interrogacin).
Vamos a intentar vericar el programa anterior de abajo a arriba. Ahora s es fcil aplicar la
regla de asignacin: basta tomar la postcondicin de la ltima instruccin, y = 7, y en esta expresin
sustituimos y por el valor asignado, con lo cual obtenemos la precondicin de y:=3*x+1:
{}
x := 2
{3x +1 = 7} [?]
y := 3*x+1
{y = 7} [Regla de asignacin]
Siguiendo el mismo proceso para la instruccin x := 2, tomamos su postcondicin y sustituimos
x por el valor asignado: con lo cual llegamos a
{}
{32+1 = 7} [?]
x := 2
{3x +1 = 7} [Regla de asignacin]
y := 3*x+1
{y = 7} [Regla de asignacin]
Para concluir la demostracin, basta probar que 3 2 +1 = 7, que es equivalente a probar
que 32+1 = 7 (habra que demostrarlo por la aritmtica de nmeros enteros).
4.5.3 Tratamiento de las instrucciones condicionales
Para tratar las instrucciones if-then-else aplicamos la regla del condicional modicada (expre-
sin (4.11)), que se traduce en:
{B p
1
) B p
2
)}
if B then (
{p
1
}
S
1
{q} [Justicacin-1]
) else (
{p
2
}
S
2
{q} [Justicacin-2]
)
{q} [Regla del condicional]
Ejemplo 4.18 Para demostrar que
{x = 0}if (x0) then (y:=x) else (y:=-x)){y 0}
escribimos este esbozo de demostracin:
4.5. Vericacin parcial de programas 159
{x = 0}
{?} [?]
if (x0) then (
{p
1
?}
y:=x
{y 0} [?]
) else (
{p
2
?}
y:=-x
{y 0} [?]
)
{y 0} [?]
Las condiciones p
1
y p
2
se obtienen por la regla de asignacin:
{x = 0}
{?} [?]
if (x0) then (
{x 0}
y:=x
{y 0} [Regla de asignacin]
) else (
{x) 0}
y:=-x
{y 0} [Regla de asignacin]
)
{y 0} [?]
La precondicin de la instruccin condicional es B p
1
) B p
2
), de modo que
{x = 0}
{x 0 x 0) x 0) x) 0} [?]
if (x0) then (
{x 0}
y:=x
{y 0} [Regla de asignacin]
) else (
{x) 0}
y:=-x
{y 0} [Regla de asignacin]
)
{y 0} [Regla de asignacin]
Dejamos como ejercicio para el lector demostrar que x = 0 x 0 x 0) x 0) x)
0, con lo cual se completa la vericacin del programa. (En este caso, la vericacin parcial es una
vericacin total, porque el programa no contiene bucles.)
160 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES
4.5.4 Tratamiento de los bucles
Hemos visto anteriormente que el tratamiento de las instrucciones de asignacin y condicionales es
bastante fcil, pues se limita a la aplicacin de un algoritmo. Sin embargo, el tratamiento de los
bucles es mucho ms complicado, pues requiere encontrar invariantes, una tarea para la cual no existe
un algoritmo, sino tan slo algunas heursticas.
8
Cuando en la demostracin de un programa nos encontramos con una situacin como sta,
{?}
while B do (S)
{q} [?]
tenemos que encontrar un invariante que nos permita escribir
{p}
while B do (
{pB}
S
{p} [Justicacin (de que p es un invariante)]
)
{pB} [Regla del bucle]
{q} [pB q]
Para ello, el invariante p debe satisfacer tres condiciones:
1. {pB}S){p} (es la denicin de invariante);
2. pB q (para poder obtener la postcondicin del bucle);
3. Hace falta que p pueda deducirse a partir de la postcondicin de la instruccin anterior al bucle
(para poder continuar luego la demostracin hacia arriba).
Ejemplo 4.19 Dado el programa fact1 introducido en el ejemplo 4.1, queremos demostrar que
se cumple la condicin (4.1).
9
Para ello buscamos un invariante p que cumpla que {p i =
x}i:=i+1;fact:=fact*i;){p} y pi = x) fact = x.
Una heurstica que recomiendan algunos autores para encontran invariantes es construir una tabla
que reeje el valor que toman las variables del programa en cada ejecucin del bucle, y tratar de
ver qu propiedad(es) se cumplen para cada una de las las. Para este ejemplo, tomando x = 6 (un
valor escogido arbitrariamente, con la nica condicin de que no sea demasiado grande ni demasiado
pequeo), obtenemos la tabla 4.1. En todas las columnas de esta tabla se cumple que fact = i. Vamos
a comprobar si esta condicin es un invariante:
8
Como ya sabe el lector, en inteligencia articial se denomina heurstica a una regla que ayuda a buscar una solucin,
aunque generalmente la aplicacin de una heurstica ni garantiza que se encuentre una solucin, ni garantiza que la solucin
encontrada sea ptima.
Por eso podramos decir que el tratamiento de las condiciones de asignacin y condicionales es una tcnica, mientras que
el tratamiento de los bucles es un arte, que slo se aprende con la prctica.
9
Recordemos que la especicacin (4.2) era ms correcta, pero la especicacin (4.1) tambin era vlida cuando el
programa no modica el valor de la variable x, y en nuestro caso es ms sencilla de aplicar. Dejamos como ejercicio para el
lector comprobar que el programa fact1cumple la especicacin (4.2).
4.5. Vericacin parcial de programas 161
iteracin x i fact B
1
a
6 0 1
2
a
6 1 1
3
a
6 2 2
4
a
6 3 6
5
a
6 4 24
6
a
6 5 120
7
a
6 6 720
Tabla 4.1: Tabla para probar el bucle de la funcin fact1..
{fact = i i = x}
i := i + 1;
{?} [?]
fact := fact * i;
{fact = i} [?]
Aplicando dos veces la regla de asignacin llegamos a
{fact = i i = x}
{fact = i} [pq p]
{fact i +1) = i +1)} [a a+1) = a+1) a]
i := i + 1;
{fact i = i} [Regla de asignacin]
fact := fact * i;
{fact = i} [Regla de asignacin]
lo cual demuestra que fact = i es un invariante. Podemos integrar este resultado en la vericacin del
programa completo, que queda as:
{x 0}
{1 = 0} [Axioma (denicin de factorial)]
fact := 1; [Regla de asignacin]
{fact = 0}
i := 0;
{fact = i} [Regla de asignacin]
while (i = x) do (
{fact = i i = x}
{fact = i} [pq p]
{fact i +1) = i +1)} [a a+1) = a+1) a]
i = i + 1;
{fact i = i} [Regla de asignacin]
fact := fact * i;
{fact = i} [Regla de asignacin]
)
{fact = i i = x)} [Regla del bucle]
{fact = i i = x} [a b a = b a = b)]
{fact = x} [Regla de sustitucin (propiedad de la lgica)]
162 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES
Observe que la precondicin {x 0} no nos ha hecho falta para demostrar {0 = 1}, porque ste
es un axioma del sistema. Por tanto, tambin habramos podido demostrar que
{}fact1){fact = x}
Sin embargo, cuando x < 0, el programa fact1 entra en un bucle innito. Por eso la precondicin
{x 0} es necesaria para garantizar la correcin total, mientras que, de acuerdo con la expresin que
acabamos de escribir, no es necesaria ninguna precondicin para garantizar la correcin parcial.
Ejercicio 4.20 Demostrar que
a {x = a}fact1){fact = a}
a {x = a}fact2){fact = a}
4.6 Vericacin total de programas
El sistema deductivo expuesto en la seccin 4.4 slo garantiza la correccin parcial. Para demostrar
la correccin total es necesario sustituir la regla del bucle anterior por esta otra:
10
Regla del bucle para correccin total):
{pBE 0E =a}S){pE 0E <a}
{pE 0}while B do (S)){pB}
En esta regla p sigue siendo un invariante, porque si se cumple antes de que se ejecute el bucle,
se cumple tambin despus. Si hemos demostrado ya la correccin parcial para este bucle, podemos
utilizar aqu el mismo invariante.
La expresin E se denomina variante,
11
porque si es igual a a (un nmero entero) antes de que
se ejecute el bucle, ser estrictamente menor que a cuando el bucle se ha ejecutado, y continuar
decreciendo cada vez que se ejecuta el cuerpo del bucle. Como esta expresin no puede decrecer
indenidamente (porque siempre es mayor que 0), el bucle debe terminar.
De este modo, el nuevo sistema deductivo garantiza tanto la correccin parcial como la termina-
cin de los bucles, con lo que se demuestra la correccin total.
Ejemplo 4.21 Dado el programa fact1 introducido en el ejemplo 4.1, queremos demostrar que se
cumple la condicin (4.1) en el nuevo sistema deductivo (que garantiza la correccin total). Recorde-
mos que el bucle que aparece en este programa es
while (i=x) do (i=i+1;fact:=fact*i)
y que en la vericacin parcial habamos tomado como invariante fact= i. Por tanto, aunque todava
no hemos encontrado E, sabemos que se cumple que
{pBE 0E =a}S){p}
10
Desde un punto de vista conceptual, no era necesario denir primero el sistema deductivo de vericacin parcial, sino
que podramos haber denido directamente el de vericacin total. Sin embargo, por motivos pedaggicos nos ha parecido
mejor abordar el problema en dos pasos, discutiendo primero la vericacin parcial y viendo luego cmo se debe modicar
la regla del bucle para obtener la vericacin total.
11
Observe que el invariante es una proposicin (por ejemplo, fact = i), y por eso lo hemos representado por p, mientras
que el variante es una expresin numrica (por ejemplo, x i), y por eso lo representamos por E. Observe tambin que, en
general, tanto p como E hacen referencia al valor de las variables del programa.
4.7. Comentarios adicionales 163
es decir,
{fact =i i =x E 0E =a}i:=i+1;fact:=fact*i){fact =i}
(lo hemos demostrado en el ejemplo 4.19).
Vamos a buscar ahora una expresin E (un variante) que cumpla que
{pBE 0E =a}S){E 0E <a}
Tomamos la expresin x i, pues cumple que
{i =x xi 0xi =a}i:=i+1;fact:=fact*i){xi 0xi <a}
(Invitamos al lector a que lo demuestre formalmente.) Esto implica que si antes de ejecutar el cuerpo
del bucle se cumple 0 xi =a, despus de su ejecucin se cumple 0 xi <a. Como la expresin
E siempre decrece al menos una unidad en cada ejecucin del cuerpo del bucle (en este ejemplo x i
decrece exactamente una unidad) y siempre es mayor o igual que 0, el bucle debe terminar.
Ejercicio 4.22 Demostrar la correccin total de fact2dada la especicacin (4.2).
Como en el caso de los invariantes, encontrar un variante puede ser complicado, ya que no hay re-
glas algortmicas, sino slo algunos consejos heursticos. Por ejemplo, se recomienda la construccin
de una tabla de ejecucin, como la del ejemplo 4.19 (tabla 4.1), que puede ayudar a encontrar tanto el
invariante como el variante.
4.7 Comentarios adicionales
4.7.1 Consistencia y completitud
El sistema deductivo que hemos denido en la seccin 4.4 es consistente para la vericacin parcial,
lo cual signica que toda terna deducida mediante la aplicacin de sus reglas es parcialmente correcta:
{p}S){q} implica que
par
{p}S){q}
Recordemos que
par
{p}S){q} que signica que si el sistema (el ordenador) se encuentra inicial-
mente en alguno de los estados representados por la precondicin p y ejecuta el programa S y el
programa termina, el sistema se encontrar en alguno de los estados representados por la postcondi-
cin q (cf. sec. 4.3.2).
Anlogamente, el sistema deductivo que hemos denido en la seccin 4.6 es consistente para la
vericacin total:
{p}S){q} implica que
tot
{p}S){q}
Por tanto, la consistencia signica que un programa vericado mediante este sistema deductivo satis-
face realmente la especicacin {p}S){q}.
Para demostrar la consistencia de ambos sistemas deductivos deberamos establecer primero una
semntica formal de nuestro micro-lenguaje de programacin (cmo y cundo se pasa de un estado a
otro al ejecutar cada una de las instrucciones del programa), algo que no hemos hecho. Sin embargo, el
conocimiento que tiene el lector sobre cmo funciona cada una de esas instrucciones en un lenguaje
de programacin y las explicaciones que hemos dado para justicar cada regla hacen verosmil la
armacin de que el sistema es consistente. El lector interesado en la demostracin formal de la
consistencia puede consultar el libro de Francez [1992] o el de Apt y Olderog [1997].
164 Captulo 4. VERIFICACIN DE PROGRAMAS SECUENCIALES
A su vez, cada uno de estos sistemas es completo en sentido relativo. La completitud es la
propiedad recproca de la consistencia, y signica que toda terna semnticamente correcta puede ser
obtenida mediante el sistema deductivo correspondiente: si se cumple
tot
{p}S){q} entonces esta
terna puede ser demostrada (el programa puede ser vericado) por el sistema deductivo de vericacin
total:

tot
{p}S){q} implica que {p}S){q}
La propiedad de completitud para el sistema deductivo de vericacin parcial es anloga.
La expresin completo en sentido relativo signica que completo si consideramos cada frmula
del dominio como un axioma (recordemos que en el caso de nuestro micro-lenguaje el dominio es la
aritmtica de nmeros enteros). En la prctica es imposible incluir todas las frmulas del dominio
dentro del sistema deductivo, porque son innitas. Por eso nos interesa que las frmulas del dominio
puedan deducirse a partir de un nmero nito de axiomas. Sin embargo, no se puede construir un
sistema deductivo completo para la aritmtica de nmeros enteros. Dado que el sistema deductivo de
vericacin que hemos tratado en este captulo (en sus dos versiones, parcial y total), adems de tener
como axiomas las cinco reglas propias de la vericacin, incluye tambin los axiomas del sistema
deductivo del dominio, si ste no es completo tampoco puede serlo aqul. Por eso se dice que el
sistema deductivo de vericacin de programas no es completo en sentido absoluto.
4.7.2 Otras cuestiones
El micro-lenguaje que hemos estudiado en este captulo est limitado sobre todo porque no utiliza
arrays ni procedimientos, dos recursos imprescindibles para desarrollar programas de cierta enverga-
dura. Estos aspectos se estudian en el libro de Francez [1992].
Segn los mtodos presentados en este captulo, antes de vericar un programa es necesario ha-
berlo construido. Sin embargo, es posible integrar ambas tareas en una sola, si se escribe el programa
mediante bloques que se enlazan y expanden; en cada uno de los pasos se verica el cdigo genera-
do, hasta llegar a un programa cuya correccin est garantizada. Puede encontrarse ms informacin
sobre este mtodo en el libro de Apt y Olderog [1997].
Bibliografa complementaria
La referencia histrica bsica para este tema es [Hoare, 1969]. Los libros de de Huth y Ryan y de
Ben-Ari que hemos mencionado en la Bibliografa Recomendada (pg. 3) explican este tema, aunque
dejan algunos cabos sueltos (especialmente el libro de Ben-Ari). Un tratamiento mucho ms completo
y riguroso se encuentra en dos libros excelentes: [Apt y Olderog, 1997] y [Francez, 1992].
Por otro lado, los recursos bibliogrcos e informticos, disponibles en Internet, que hemos co-
mentado en la seccin Motivacin para los alumnos de Ingeniera Informtica (pg. 2) pueden ser
tiles para hacer ms interesante el estudio de este tema.
ctividades y evaluacin
Los ejercicios de evaluacin ms importantes de este tema consisten, naturalmente, en la vericacin
de pequeos programas secuenciales mediante la lgica de Hoare; por ejemplo, los ejercicios 7 a 10
del captulo 9 del libro de texto [Ben-Ari, 2001, pg. 220], o los ejercicios que aparecen al nal de
cada seccin en [Huth y Ryan, 2000, cap. 4].
En el grupo de tutorizacin telemtica se encuentra la resolucin detallada de algunos ejemplos
sencillos (planteados en exmenes previos).
Parte III
LGICA MODAL
Captulo 5
FUNDAMENTOS DE LGICA MODAL
Resumen
Este captulo se poda haber titulado Lgicas modales proposicionales. Sintcticamente, todos es-
tos lenguajes se construyen a partir del proposicional, aadiendo uno o ms pares de operadores
modales. Resultan, en todo caso, sintaxis ms sencillas que la de los lenguajes de Primer Orden.
La semntica habitual de estos sistemas requiere una estructura relacional: un universo y relacio-
nes sobre el mismo. En el caso ms simple, la lgica modal bsica, basta un universo y una relacin
binaria. Es decir, intuitivamente, para evaluar la satisfaccin de una frmula se requiere interpretar-
la sobre un grafo dirigido. Ms precisamente, cada frmula se puede evaluar sobre cada nodo del
grafo, satisfacindose quiz en unos y no en otros. Esta evaluacin local es lo que caracteriza a este
tipo lgicas.
Las lgicas modales son una insustituible herramienta para analizar estructuras relacionales. Y
en computacin stas son las estructuras sobre las que se modela prcticamente toda la actividad
del campo (sistemas de transiciones etiquetadas, autmatas, redes, agentes, etc.). La eleccin de los
operadores modales adecuados, siempre con un enfoque semntico comn, permite proponer sistemas
lgicos especcos para ciertas actividades.
Desde el punto de vista formal, es interesante observar cmo las frmulas modales pueden tradu-
cirse sistemticamente a frmulas de Primer Orden. Y cmo denen, con una sintaxis sencilla y una
evaluacin local, propiedades globales de la estructura.
Objetivos
El primer escaln lo constituye la lgica modal bsica: su sintaxis y su semntica. A partir de estos
conceptos se pueden ampliar nuestros horizontes considerando sistemas polimodales: su sintaxis,
semntica y propiedades.
Desde el punto de vista aplicado, un mismo operador modal abstracto se puede leer, se puede
interpretar, de unas formas u otras dependiendo del dominio. O se pueden disear sistemas lgicos
adecuados al problema.
El paso siguiente puede ser el estudio formal de los diversos sistemas deductivos de estas lgicas:
de sus propiedades comunes y de las particuliaridades de ciertas familias.
Ms all, pero no menos interesante, resulta el estudio de la reinterpretacin de estas frmulas
como sentencias en Lgica de Predicados: qu puede expresarse de forma modal, como fragmento de
la Lgica de Predicados, y qu ventajas computacionales aporta su expresin en estos lenguajes.
167
168 Captulo 5. FUNDAMENTOS DE LGICA MODAL
Metodologa
Le recomendamos que se centre inicialmente en la compresin semntica de la lgica modal bsica:
se puede conseguir intuitiva y grcamente. Y todos los resultados sern fcilmente exportables a
otros sistemas lgicos.
A partir de este punto, contine con la perspectiva semntica (no se preocupe de los sistemas
deductivos) ampliando este lenguaje bsico con otros operadores. Reexiones sobre las diversas
lecturas propuestas.
Slo despus de estos pasos le recomendamos que aborde las diversas opciones de sistemas de-
ductivos y opcionalmente su implementacin.
En el estado actual de estas notas, dispone de material introductorio slo para cubrir la primera
parte de este camino.
5.1 Perspectiva
Esta seccin anticipa los principales conceptos abordados. Se pretende ofrecer una perspectiva en un
tono coloquial. Las deniciones precisas se posponen a las secciones siguientes.
5.1.1 Estructuras
Estructuras relacionales
Observe la gura (g.5.1.1). Es la representacin grca de un conjunto y de una relacin R entre sus
elementos. En este ejemplo,
el elemento 5 est relacionado con el 1: R5 1),
pero el 1 no lo est con el 5;
slo el elemento 3 est relacionado consigo mismo: R3 3).

1


2


3


4

5


6
Figura 5.1: Estructura relacional
A este tipo de construcciones matemticas se les denomina estructuras relacionales: un conjunto
no vaco y relaciones sobre el mismo. Tambin se les denominar marcos.
Modelos
Considere de nuevo la gura (g.5.1.1), ahora como representacin de una imprecisa relacin entre
escenarios de un videojuego. Pueden surgir, de inmediato, algunas objeciones razonables: no debe-
ra ser reexiva?, qu sentido tienen los escenarios aislados?, no deberan considerarse transiciones
5.1. Perspectiva 169
etiquetadas?. Estas y otras cuestiones dependen del tipo de relacin (o relaciones) entre escenarios
que se pretende modelizar.
Las estructuras relacionales se utilizan para modelizar sistemas, situaciones, procesos. En ge-
neral, una modelizacin adecuada requiere que la estructura relacional verique ciertas propiedades
formales.
Los lenguajes modales permitarn, por un lado, expresar lo que ocurre en cada nodo y por otro,
formalizar las particularidades de la relacin entre nodos
Proposiciones en cada nodo
Volvamos al ejemplo del videojuego, sobre el grafo propuesto. El comportamiento de nuestro h-
roe virtual, en cada escenario, puede venir descrito por un conjunto de proposiciones: {p q r ...}.
Resulta entonces un grafo como el de la gura (g.5.2), donde cada nodo se etiqueta con las letras
proposicionales localmente verdaderas en el mismo.
Observe que la proposicin p puede ser verdadera en unos nodos y falsa en otros, pero en todos
ellos describe el mismo comportamiento, enuncia la misma proposicin.
A este proceso de etiquetado se le denomina asignacin. Un marco adecuado con una asignacin
es un modelo.

1
p,r


2
p


3
q


4
q,r

5
p,r


6
p,r
Figura 5.2: Un modelo: marco y asignacin
5.1.2 Frmulas
Razonamiento local proposicional
Sitese en cualquiera de estos escenarios. En el 1, por ejemplo, puesto que son ciertas p y r, admitire-
mos que debe ser verdadera la proposicin pr). No se satisface esta conjuncin en el 2, donde slo
es verdadera p. Es decir, en cada nodo razonaremos correctamente por igual, dentro de la lgica de
proposiciones; pero los valores de las proposiciones atmica (los detalles dentro de cada escenario)
varan de nodo en nodo.
Es decir, (de momento) las frmulas en cada nodo slo se reeren a l mismo: son mundos
cerrados e inconexos. Ahora bien, supongamos que una decisin de nuestro ciberprotagonista en un
escenario dependa de su conocimiento del estado de otros. Veamos cmo se formalizan este tipo de
expresiones.
170 Captulo 5. FUNDAMENTOS DE LGICA MODAL
Razonamiento local modal
La inspeccin de otros escenarios se simboliza mediante el uso de operadores modales: p, qr),
q) r) son ejemplos de frmulas que incluyen un operador modal .
Como se parte del lenguaje proposicional, es preciso aumentar su sintaxis con reglas que delimiten
dnde puede insertarse este nuevo smbolo.
La interpretacin de p se produce localmente, en cada nodo, previa inspeccin de otros nodos
determinados. Permtanos explicarlo sobre el ejemplo de la gura (g.5.2):
en el escenario 3, p es verdadera porque existe al menos un nodo relacionado (el 2) donde p
es verdadera;
sin embargo, en el escenario 2, p no es verdadera porque no es cierto que exista algn nodo
relacionado con 2 donde es verdadera p (observe que 2 no est relacionado consigo mismo).
Observe cmo una misma frmula (p.ej. p) es verdadera en un nodo y falsa en otros: depender
de dos factores. Primero, de los escenarios que sean visibles (estn relacionados) desde el nodo donde
se evala la frmula. Segundo, del estado de esos escenarios (del valor de las variables proposiciona-
les).
5.1.3 Modelos adecuados
Lecturas de los operadores modales
Un operador como permite representar situaciones, sistemas o conceptos diversos. Uno de ellos es
el concepto de posibilidad: una proposicin como, por ejemplo, pq) es posible en el mundo w si pq)
es verdadera en w, es decir, si en algn mundo accesible desde w se verica pq)
Es decir, nuestro hroe virtual considera, en un nodo, que es posible reunir la llave y el cofre si
es capaz de ver un escenario accesible desde el mismo donde estn ambos.
Slo una ligera objecin: con la semntica propuesta para , la proposicin p puede ser verdadera
en el escenario actual sin que lo sea p. Es decir, puede ser localmente verdadero algo sin que se
acepte que es posible ese algo. Formalmente, basta considerar un escenario que no se relaciona
consigo mismo.
El problema planteado se soluciona admitiendo que, efectivamente, representa adecuadamente
el concepto de posibilidad pero slo en marcos reexivos. Otras aplicaciones del operador , como
representante formal de otros conceptos, pueden requerir nuevas restricciones sobre los marcos.
Caracterizacin modal de relaciones
Se acaba de considerar que la lectura de como posibilidad slo es adecuada sobre marcos reexi-
vos.
Por otro lado, independientemente de que lo que represente (de su lectura), tiene una propiedad
formal contrastable: la frmula p p) es verdadera en un mundo si y slo si est relacionado
consigo mismo. Es decir, esta frmula es verdadera en todo mundo de un marco si y slo si ste es
reexivo.
As, si se disea una teora modal de la posibilidad, ya no es necesario adjuntar la advertencia,
externa e informal, utilcese slo sobre marcos reexivos. Basta aadir la frmula p p) como
uno de los axiomas de la teora. Se produce el mismo efecto de restriccin sobre los marcos adecuados,
de forma local, interna y expresada en el mismo lenguaje modal.
Se pueden caracterizar otras muchas propiedades de las relaciones mediante frmulas modales.
De ello se ocupa la Teora de la Correspondencia.
5.2. Estructuras relacionales 171
Aplicaciones
Existe una gran variedad de lenguajes modales, con ms o menos operadores, cuya lectura pretende
modelizar un concepto o un sistema: relaciones entre tiempos, interaccin de agentes, protocolos de
comunicacin ...
Todos ellos se basan en las mismas ideas sintcticas y semnticas: las que se pueden encontrar
en la lgica modal bsica, objeto del captulo siguiente. Estos formalismos permiten disponer de
un lenguaje para expresar qu ocurre en cada nodo (en cada tiempo, en cada estado mental de un
agente) y qu relaciones son admisibles en esa lectura. Adems, los sistemas deductivos asociados a
estos lenguajes permiten obtener conclusiones, localmente, dependientes del contexto facilitado por
los estados accesibles.
5.2 Estructuras relacionales
Denicin 5.1 Estructuras relacionales) Una estructura relacional es una tupla W R
1
. . . R
k

donde:
W es un conjunto no vaco, y
R
1
. . . R
k
son relaciones sobre W.
Existe al menos una relacin en la estructura.
Las relaciones denidas sobre W pueden ser de distinto tipo: monarias (predicados Pw), binarias
(Rw
i
w
j
), ternarias (R

w
i
w
j
w
k
), etc. As, una estructura puede contener, por ejemplo, dos relaciones
monarias, tres binarias y una ternaria, siempre sobre el mismo conjunto W.
5.2.1 Sistemas de transiciones etiquetadas
Entre las posibles estructuras relacionales, se prestar especial inters a las que slo constan de rela-
ciones binarias (una o ms). Se pueden ver dos ejemplos en la gura (g.5.3).
La gura (g.5.3a) consta de una nica relacin binaria. En (g.5.3b) se han superpuesto, en la
misma representacin grca, dos relaciones binarias sobre el mismo conjunto. Se puede generalizar
la representacin, etiquetando como v los arcos de cada nueva relacin binaria R
v
.
El estudiante de Informtica habr encontrado multitud de representaciones como las del ejemplo,
donde las etiquetas se suelen interpretar como entradas externas que producen una transicin desde
un nodo a otro. Por eso, genricamente, se denominan Sistemas de transiciones etiquetadas a estas
estructuras relacionales.
Denicin 5.2 Sistemas de transiciones etiquetadas) Un sistema de transiciones etiquetadas es
una estructura relacional donde cada relacin R
k
es una relacin binaria:
R
k
W W para toda k L conjunto de etiquetas
Otro ejemplo, entre muchos, de sistemas de transiciones son las redes semnticas utilizadas para
representacin del conocimiento. Aqu, una de las etiquetas de los arcos puede ser encima-de, si se
consideran relaciones espaciales entre los objetos representados por los nodos. Observe que, a pesar
de su denominacin, no siempre una etiqueta se interpretar como una transicin entre estados.
Los sistemas de transiciones etiquetadas con una nica relacin tambin estn ubicuamente pre-
sentes en el anlisis y el desarrollo informtico. Un ejemplo son las estructuras de rbol de un direc-
torio, denidas tras imponer ciertas restricciones formales a la relacin entre nodos.
172 Captulo 5. FUNDAMENTOS DE LGICA MODAL

1


2


3


4

5


6
(a) Relacin R
a

1
a


2
a


3
a


4

5
a b

b


6
(b) Relaciones R
a
y R
b
1 2 3 4 5 6
1 a
2 a a
3 a a a
4
5 a/b b
6
(c) tabla con ambas relaciones
Figura 5.3: Relaciones binarias
5.2.2 Propiedades de una relacin binaria
Obviamente, las propiedades impuestas sobre las relaciones denirn unas u otras familias de estruc-
turas, ms o menos adecuadas para modelizar cierta aplicacin en estudio. Las propiedades de estas
relaciones binarias se suelen describir formalmente en lgica de primer orden. A lo largo de este
captulo se presentar la lgica modal como un lenguaje alternativo sobre el que describir y analizar
estructuras relacionales.
Revisemos algunas de las propiedades formales que puede vericar (o no) una relacin R. La
tabla (tabl.5.2.2) reune algunas de estas propiedades, expresadas como sentencias de primer orden.
Reexiva xRxx
Simtrica xyRxy Ryx)
Transitiva xyzRxy Ryz Rxz)
Euclidea xyzRxy Rxz Ryz)
Lineal xyzRxy Rxz Ryz y = z Rzy))
Funcional xyRxy zRxz y = z))
Determinista xyzRxy Rxz y = z)
Serial xyRxy
Total xyRxy Ryx)
Densa xyRxy zRxz Rzy))
Tabla 5.1: Propiedades de una relacin binaria, expresadas en lgica de primer orden
Para jar ideas, considere el grafo de una nica relacin R como el de la gura (g.5.3a) o su ex-
presin como tabla, como matriz, en (g.5.3c). Los prrafos siguiente pretende facilitar la compresin
de las sentencias de primer orden utilizadas.
5.2. Estructuras relacionales 173
Reexividad Una relacin es reexiva si todo elemento est relacionado consigo mismo. Grca-
mente, cada nodo del grafo tiene un arco hacia s mismo. En la tabla de la relacin, toda las celdas de
la diagonal pertenecen a la relacin.
Una relacin es irreexiva si ningn elemento est relacionado consigo mismo: xRxx. Ningn
elemento de la diagonal pertenece a la relacin. Observe que esta sentencia no es la negacin de la
anterior. Para que una relacin no sea reexiva (para que verique xRxx) basta con que al menos
un elemento no est relacionado consigo mismo (xRxx).
Simetra, asimetra, antisimetra Una relacin simtrica no exige a ningn par de elementos estar
relacionado. Ahora bien, si lo estn en un sentido (Rxy), tambin deben estarlo en el otro (Ryx).
Grcamente, los arcos en los grafos dirigidos ocurren por pares, en ambos sentidos. En la tabla, si
una celda pertenece a la relacin, su simtrica respecto a la diagonal debe pertenecer.
Una relacin asimtrica exige justo lo contrario: que si una relacin se produce en un sentido, no
se produzca en el otro (xyRxy Ryx)). En la tabla, no puede haber dos celdas de la relacin
simtricas respecto a la diagonal. En particular, ningn elemento puede estar relacionado consigo
mismo.
Una relacin antisimtrica mantiene la exigencia de la asimetra, pero permite que existan ele-
mentos relacionados consigo mismo (no necesariamente todos): xyRxy Ryx x = y)
Observe que ninguna de las tres sentencias precedentes es la negacin de alguna de las otras.
Considere en qu casos una relacin no es simtrica, no es asimtrica o no es antisimtrica.
Transitividad, relaciones eucldeas, lineales Coloquial y grcamente, la transitividad exige que
haya un arco directo desde cada elemento x a cualquier otro z accesible desde x por cualquier camino
de arcos.
En las relaciones eucldeas, dos elementos cualesquiera relacionados con un mismo x deben estar
relacionados entre s. Es decir, todos los vecinos accesibles desde x deben estar relacionados entre s.
Observe que, si w
1
y w
2
estn ambos relacionados con x, se satisface tanto Rxw
1
Rxw
2
) Rw
1
w
2
)
como Rxw
2
Rxw
1
) Rw
2
w
1
). Asimismo Rxw
1
Rxw
1
) Rw
1
w
1
). En las relaciones lineales,
los elementos distintos relacionados con x slo deben estar relacionados entre s en, al menos, un
sentido. Adems, Rxw
1
Rxw1) Rw
1
w
1
w
1
= w
1
Rw
1
w
1
)) ya no requiere que todo elemento
relacionado con x est relacionado consigo mismo.
Relaciones funcionales, deterministas, seriales Una funcin de W en W no es ms que una rela-
cin de la que se exige que cada elemento x est relacionado con un nico elemento y W. En el
grafo dirigido de una funcin, de cada nodo parte un arco y slo uno. Observe que no se descarta que
un elemento est relacionado (tenga por imagen) a s mismo.
En una relacin determinista, de un nodo pueden o no partir arcos, pero si parte un arco ser nico.
En una relacin serial, de cada nodo parte un arco al menos (si no ms).
Relaciones totales, densas En una relacin total, cualesquiera dos elementos deben estar relacio-
nados, en un sentido u otro. Los nmeros enteros, los racionales o los reales, con su relacin usual de
orden, verican esta propiedad.
Muy coloquialmente, en una relacin densa, si dos nodos x e y estn relacionados, debe aparecer
(existir) un nodo intermedio z, tal que Rxz y Rzy. Si la relacin R es reexiva, ese nodo intermedio
z podra ser siempre el mismo x. La relacin menor que entre nmeros naturales o enteros no es
densa; s lo es entre nmeros racionales o reales.
174 Captulo 5. FUNDAMENTOS DE LGICA MODAL
Satisfaccin de un conjunto de propiedades
A una relacin se le puede exigir que verique varias de estas propiedades. Por ejemplo, que sea
reexiva, simtrica y transitiva (es decir, una relacin de equivalencia). O que sea reexiva, antisim-
trica y transitiva (es decir, una relacin de orden).
Considere, por separado, todas las estructuras W R con relacin R reexiva o con relacin R
transitiva. Las estructuras con relacin R reexiva y transitiva forman el conjunto interseccin de los
dos anteriores. Cada nueva propiedad exigida a R reduce el nmero de estructuras que la verican.
En el caso extremo, puede que en ninguna estructura se satisfaga una relacin con un determinado
conjunto de propiedades. Es decir, que ese conjunto de propiedades (de sentencias de primer orden)
sea insatisfacible. Por ejemplo, una relacin no puede ser simultneamente reexiva y asimtrica.
Por otra lado,de la exposicin coloquial se intuye que si una relacin satisface un conjunto deter-
minado de propiedades no podr dejar de satisfacer sta o aqulla otra. En trminos ms formales,
alguna de estas sentencias es consecuencia lgica de ciertos conjuntos de otras. La conexin entre
insatisfacibilidad y consecuencia se encuentra en cualquier exposicin de lgica de primer orden.
El lector puede comprobar que:
Si R es simtrica y transitiva, entonces es eucldea
Si R es reexiva entonces es serial
R es simtrica, transitiva y serial si y solo si
es reexiva y eucldea si y slo si
es una relacin de equivalencia
(reexiva, simtrica y transitiva)
5.2.3 Cierres
Una relacin R cualquiera puede perfectamente no ser reexiva: quiz algunos elementos estn rela-
cionados consigo mismo, pero no todos. Si se aaden a R todos los pares x x) que faltaban se obtiene
otra relacin R

, que se denomina cierre reexivo de la relacin R.


Observe que a la relacin R de partida se le pueden aadir todos esos pares x x) que faltaban y
algn par x y) ms. La relacin resultante ser tambin reexiva e incluir tambin a la relacin R
inicial. Lo que caracteriza al cierre reexivo es que se aaden slo los pares x x) necesarios y ningn
otro. Es decir, que es la menor relacin reexiva que incluye a R.
Denicin 5.3 Cierre reexivo) Sea W un conjunto no vaco y R una relacin binaria sobre el mis-
mo. Entonces R

, el cierre reexivo de R se dene como:


R

={R

| R

es reexiva y R R

}
De igual forma se pueden denir el cierre simtrico o el cierre transitivo de una relacin, entre
otros.
Notemos como R
+
al cierre transitivo de una relacin R. Se puede visualizar grcamente como
sigue: desde cada nodo w, produzca un arco directo a cualquier otro accesible desde w mediante un
camino de arcos en R:
R
+
={R

| R

es transitiva y R R

}
Para ciertas deniciones convendr considerar cierres ms complejos, por ejemplo, el cierre R

,
transitivo y reexivo, de una relacin R:
R

={R

| R

es reexiva y transitiva, y R R

}
5.3. Lgica monomodal 175
De cualquiera de estas deniciones se sigue que si una relacin ya satisface una propiedad, su
cierre respecto a ella coincide con la relacin de partida. Para jar ideas, se presenta la denicin de
rbol, que utiliza el cierre transitivo y el transitivo-reexivo de su relacin.
Denicin 5.4 Arbol) Un rbol es una estructura relacional W R tal que:
1. existe un nico elemento (raz) r W que verica wR

rw
2. para cada w = r existe un nico w

tal que Rww

3. wR
+
ww
5.3 Lgica monomodal
5.3.1 Lgica modal bsica
Permtanos presentarle el lenguaje modal ms simple. Se construye sobre el lenguaje de la lgica de
proposiciones, con la incorporacin de dos nuevos smbolos. Como es usual, la sintaxis del lenguaje
facilita el conjunto de frmulas, de expresiones correctamente formadas.
Dada una frmula de la lgica modal bsica, mediante su semntica se comprueba si es verdadera
o no en una determinada estructura relacional. En concreto, las estructuras sobre las que se evala una
frmula de este lenguaje constan de una nica relacin binaria.
Lenguaje
Alfabeto y lenguaje
Denicin 5.5 Alfabeto) El alfabeto de la lgica modal bsica consta de los siguientes elementos:
1. letras proposicionales: p
o
p
1
p
2
. . .
2. smbolos lgicos:
(a) constantes proposicionales: ,
(b) conectivas monarias () y binarias: ,,
(c) operadores modales: ,
3. smbolos auxiliares: ( y )
Cuando el nmero de proposiciones que se consideran simultneamente es pequeo, se suelen utilizar
como letras proposicionales las ltimas del alfabeto latino: p q r s ...). El lector quiz est familiarizado con
un lenguaje proposicional sin constantes; simplemente representan proposiciones que son siempre falsas () o
verdaderas ().
Se utilizar el smbolo como abreviatura. As, ) abreviar la frmula ) )).
Anlogamente, se poda haber considerado un nmero menor de conectivas primitivas, por ejemplo { }.
El resto se deniran como abreviaturas metalingisticas en la forma usual. Este planteamiento acorta las
deniciones y demostraciones sobre el lenguaje.
Denicin 5.6 Frmulas del lenguaje modal bsico) Las frmulas del lenguaje se denen por la
siguiente expresin BNF:
::= p | | | | ) | ) | ) | |
176 Captulo 5. FUNDAMENTOS DE LGICA MODAL
Es decir, una frmula es, exclusivamente, cualquier cadena que se genere por aplicacin nita de
las siguientes reglas.
1. Cada letra proposicional es una frmula
2. Las constantes proposicionales y son frmulas
3. Si es una frmula, entonces es una frmula
4. Si y son frmulas, entonces son frmulas ), ) y )
5. Si es una frmula, entonces son frmulas y
Notacin Notaremos como Var al conjunto de las letras proposicionales y como Form al conjunto de las
frmulas.
Ejemplo 5.7 De la denicin anterior se sigue:
Si slo se utilizan las reglas 1-4, las frmulas generadas son todas las frmulas de la lgica de
proposiciones: pq), p ). Esta es la parte, el subconjunto, no modal del lenguaje.
Considere la frmula p q), que abreviaremos como . De la regla 5 se sigue que es
una frmula: p q). A su vez, esta nueva frmula puede utilizarse para formar otras ms
complejas: (regla 4) pq) p)).
La aplicacin reiterada de la regla 3 permite la construccin de frmulas con negaciones su-
cesivas: p. De igual forma, la regla 5 permite la generacin de frmulas con operadores
modales consecutivos: p q).
Todas las expresiones siguientes son frmulas del lenguaje de la lgica modal bsica: p,
p), p q),q r) p)
Subfrmulas
Al igual que en la lgica de proposiciones o de predicados, las demostraciones sobre el lenguaje uti-
lizan el principio de induccin estructural. Las deniciones se producen recursivamente. La siguiente
denicin es un primer ejemplo de ello.
Denicin 5.8 Conjunto de subfrmulas) A cada frmula le corresponde un (nico) conjunto de
frmulas Subf ), el conjunto de sus subfrmulas, denido como:
Sub f ) ={}Sub f ),
Sub f ) ={}Sub f )
Sub)) ={)}Sub) Sub)
para toda conectiva binaria
Sub f ) ={}Sub f )
Sub f ) ={},
Sub f ) ={}
5.3. Lgica monomodal 177
Sub f p) ={p}
para cada letra proposicional
Ejemplo 5.9 De acuerdo con la denicin anterior,
Sub f pq) r)) = {pq) r) pq) r) pq) r p q r r}
rboles sintcticos
Entre las propiedades que pueden demostrarse inductivamente se encuentra el Principio de anlisis
sintctico nico: toda frmula (por muy compleja que sea) est en una y slo una de las 9 siguientes
categoras:
, , (para una determinada)
) para , y conectiva binaria determinadas
, o es una letra proposicional
As, la descomposicin sintctica no presenta ambigedad en ningn caso. En pocas palabras: a
toda frmula se le podr hacer corresponder un nico rbol sintctico como el que se presenta (sin
denicin formal) en la gura (g.5.4). Y viceversa.
pq) r))
pq) r))

pq)

r)

r)

Figura 5.4: rbol sintctico de pq) r))


Antes de continuar, asegrese de que es capaz de dibujar el rbol sintctico de cualquiera de las
frmulas que se han visto hasta este punto.
Sustituciones
La sustitucin uniforme permite escribir una frmula a partir de otra. Se puede presentar, intuitiva-
mente, mediante un ejemplo inicial.
Ejemplo 5.10 Considere la frmula
:= p q) p)
y sustituya todas la apariciones de:
178 Captulo 5. FUNDAMENTOS DE LGICA MODAL
p, por la frmula := r s)
q, por la frmula := t u)
el resultado es la frmula
r s)

t u)

) r s)

)
donde las marcas de subrayado se han aadido ocasionalmente para facilitar la correspondencia.
Cuidado Observe que la sustitucin se produce uniformemente, por igual, en cada aparicin de
la letra proposicional sustituida.
Sobre la misma frmula de partida, se podan haber sustituido todas las instancias de:
p, por la frmula := q
q, por la frmula := q p)
el resultado sera entonces la frmula
q

q p)

) q

)
Cuidado Observe que la sustitucin no vuelve a aplicarse sobre instancias nuevamente apareci-
das de la letra proposicional. Se producen todas simultneamente: no se convierten primero las p en
q y, luego, todas las q (las primitivas y las recin aparecidas) en q p).
Algo ms formalmente, una sustitucin es una funcin del conjunto de letras proposicionales en
el conjunto de frmulas: : Var Form. Gracias a esta funcin se puede denir otra que asigna a
cada frmula su transformada (por una cierta sustitucin): )

: FormSust Form.
Denicin 5.11 Instancia, por sustitucin, de una frmula) Dada una sustitucin : Var
Form, la transformada

de una frmula se dene como:


1. )

,
)

2. )

),
para toda conectiva binaria
3. )

4.

=,

=
5. p

=p),
para cada letra proposicional
La frmula

es la instancia de por la sustitucin .


5.3. Lgica monomodal 179
Ejemplo 5.12 Sea : Var Form tal que
p) = qp) q) = pq)
Entonces est denida la transformada )

de cualquier frmula , por ejemplo := p q) :


)

= p q)

= p)

q)

= p)

q)

= p)

q)

= p) q) = qp) pq)
Las sustituciones del ejemplo previo hacen corresponder a p y q con sus frmulas respectivas. Si p
y q no son las nicas letras proposicionales del alfabeto, la sustitucin debe precisar qu frmula le
corresponde a cada una de las letras restantes. En este caso existir todo un conjunto de sustituciones
distintas que coincidan en la asignacin de p y q y dieran en la de alguna de las letras restantes.
Afortunadamente, cualquiera de estas sustituciones producir la misma tranformacin sobre una
frmula , siempre que en slo aparezcan las letras proposicionales p y q.
Instancias, por sustitucin, de tautologas Especial inters van a tener las sustituciones sobre
tautologas clsicas proposicionales (no modales). Por ejemplo, la que transforma pp) en:
q r) q r))
Semntica relacional
Las frmulas de la lgica modal se interpretan sobre objetos matemticos denominados modelos. Un
modelo (5.18) se dene a partir de un marco (el grafo, 5.13) y de una asignacin (5.16), que precisa
qu letras proposicionales son ciertas en cada nodo.
Dada una frmula y un modelo, se denir (5.22) cundo se satisface (es verdadera) en un
nodo determinado del modelo. Sobre esta semntica se consideran los conceptos usuales de validez,
equivalencia y consecuencia lgica.
Marcos
Denicin 5.13 Marco) Un marco F (para la lgica modal bsica) es un par W R, donde W es un
conjunto no vaco y R es una relacin binaria sobre W.
Notacin Dependiendo del contexto o de la aplicacin, los elementos de W se denominan mundos, mun-
dos posibles, estados, instantes, ... A lo largo de estas notas usaremos indistintamente mundos, estados y
nodos.
Cuando el mundo w
1
est relacionado con w
2
diremos que desde w
1
se accede a w
2
o que w
2
es accesible
desde w
1
. Se notar como Rw
1
w
2
. A la relacin R se la denomina relacin de accesibilidad.
En la notacin se han mantenido las iniciales en ingls de los conceptos: F =W R corresponde a Frame =
Worlds Relation
Un marco es, en general, una estructura relacional: un conjunto y relaciones diversas n-arias
sobre el mismo. En este caso, para interpretar la lgica modal bsica slo se necesita una relacin bi-
naria. Para jar ideas seguiremos considerando ejemplos de marcos con pocos elementos, fcilmente
representables como grafos dirigidos (g.5.5).
Ejemplo 5.14 Observe la gura (g.5.5). En ambos marcos, el mundo w
2
es accesible desde el w
1
,
pero el w
1
no lo es desde el w
2
. Observe que el w
2
tampoco es accesible desde s mismo. El mundo
w
3
es accesible desde el w
1
slo en el marco de la derecha.
En el marco izquierdo, desde el nodo w
4
no se accede a ningn otro: es un mundo nal o terminal;
de hecho, el nico. En el marco derecho, el estado w
4
se relaciona consigo mismo, luego no es un
nodo nal.
180 Captulo 5. FUNDAMENTOS DE LGICA MODAL

1


2


3


4
(a) marco F
1
=W R
1


1


2

(b) marco F
2
=W R
2

Figura 5.5: dos marcos sobre un mismo conjunto W


Conjuntos o familias de marcos Algunos resultados tericos sern vlidos no slo para un cierto
marco en estudio, sino para todos los de un determinado conjunto: por ejemplo, todos los marcos con
relacin reexiva, o los que sean reexivos y transitivos. Se utilizar la notacin F para referirse a
un conjunto (no vaco) de marcos.
Ejercicio 5.15 Con ayuda de la gura (g.5.6), calcule cuntos marcos distintos pueden denirse
sobre un conjunto de 4 elementos. Observe que, independientemente, cada casilla de la tabla puede
pertenecer o no a la relacin. Cuntas de las relaciones anteriores son reexivas, es decir, verican
que todo estado es accesible desde s mismo?

1


2


3


4
(a) marco W R
1

1 2 3 4
1 x x
2 x x
3 x x
4
(b) relacin R
1
Figura 5.6: una relacin sobre un conjunto de 4 elementos
Modelos
Denicin 5.16 Asignacin) Una asignacin en un marco W R es una funcin : Var PW)
que asocia a cada letra proposicional el subconjunto de mundos donde es verdadera.
Ejemplo 5.17 La gura (g.5.7) representa grcamente un marco W R con una asignacin , don-
de:
W ={1 2 3 4 5 6}
R ={1 2) 2 3) 2 4) 3 2) 3 3) 3 4)}
p) ={1 2 5 6}, q) ={3 4}, r) ={1 4 5 6}
Observe que se dene qu letras proposicionales son ciertas en qu estados mediante una funcin
del conjunto de las letras proposicionales en el conjunto de subconjuntos de estados.
Otras exposiciones consideran una funcin

que asocia a cada estado el subconjunto de letras


proposicionales verdaderas en l; por ejemplo,

1) = {p r}. Tambin puede denirse una funcin


5.3. Lgica monomodal 181

que asocia a cada par estado-letra proposicional el valor verdadero o falso, segn sea o no verdadera
esa letra en ese estado:

1 p) = verdadero.

1
p,r


2
p


3
q


4
q,r

5
p,r


6
p,r
Figura 5.7: Un modelo: marco y asignacin
Denicin 5.18 Modelo) Un modelo M (para la lgica modal bsica) es una terna W R , donde
W R es un marco y es una asignacin sobre el mismo. Se notar tambin como F .
Cuidado El trmino modelo, en lgica de primer orden, se aplica a toda estructura sobre la que
se satisface una frmula. En lgica modal, se denomina modelo a la estructura matemtica sobre la
que se interpreta la frmula, con independencia de su satisfaccin sobre la misma.
Conjuntos o familias de modelos Algunos resultados tericos son aplicables a todos los modelos
de un determinado conjunto. Se utilizar la notacin M para designar a un conjunto de modelos.
Denicin 5.19 Conjunto de modelos sobre un marco) Dado un marco F = W R, cada asigna-
cin distinta sobre el mismo produce un modelo diferente. Si se consideran todas las asignaciones
posibles, cada marco determina un conjunto de modelos.
Ejemplo 5.20 Considere de nuevo la gura (g.5.7). Supongamos que el conjunto de variables es
slo Var ={p q r}. La asignacin del modelo de la gura se puede representar con la tabla siguiente:
1 2 3 4 5 6
p v v v v
q v v
r v v v v
Como cada celda (por ejemplo, la (p,1)) se puede marcar o no indistintamente del resto, existen 2
36
asignaciones distintas sobre este marco. El conjunto de modelos basados en este marco F consta de
los 2
18
modelos:
sobre ese mismo conjunto W,
con esa misma relacin R representada en el grafo,
para cada una de las 2
18
asignaciones distintas posibles
182 Captulo 5. FUNDAMENTOS DE LGICA MODAL
Observe que, si se vara la relacin R, se obtiene otro marco F

sobre ese conjunto W. El conjunto


de modelos basados en el nuevo marco F

tambin constar de 2
18
modelos, generados aplicando
todas las posibles asignaciones distintas.
Si se considera el conjunto de ambos marcos F ={F F

}, el conjunto de modelos basados en el


conjunto de marcos F ser la unin de los modelos basados sobre F y sobre F

.
Ejemplo 5.21 Se pueden denir conjuntos de modelos que no son conjuntos basados en marcos. Un
primer ejemplo lo constituye el conjunto de modelos M que consta slo del modelo representado en
la gura (g.5.7).
Sobre ese mismo marco, se pueden considerar slo los 2
17
modelos en que la variable p es
verdadera en el mundo 1. Tambin se pueden considerar los modelos, sobre ese conjunto W, en que
la variable p es verdadera en 1 sea cual sea la relacin (el marco).
Intuitivamente, un conjunto genrico M de modelos puede constar: de algunos de los posible
modelos sobre cierto marco F, o de algunos modelos escogidos sobre el marco F
1
y de otros sobre
F
2
F
3
. . . O bien, escogiendo paquetes completos, de todos los modelos sobre un marco F, o de
todos los modelos sobre los marcos de un conjunto F .
Satisfaccin
La denicin de una semntica, en un sistema lgico, permite responder a la pregunta se satisface (es
verdadera) la frmula , interpretada sobre el objeto matemtico O?. Para el sistema que nos ocupa:
se satisface la frmula , interpretada en el mundo w del modelo M?
Observe el modelo de la gura (g.5.8). Sitese localmente en un estado cualquiera. En el mundo
w
4
, por ejemplo, son verdaderas slo las letras proposicionales q y r. Con la semntica usual de la
lgica de proposiciones, en ese mundo, son verdaderas las frmulas qr), p r), pq) .
Y falsas otras como: p, r p) .
Cmo se interpretan las frmulas que incluyen operadores modales? Sitese localmente en un
estado cualquiera y tenga en cuenta sus mundos accesibles. Por ejemplo, el estado w
2
est relacionado
tanto con el estado w
3
como con el w
4
(sin embargo, no est relacionado consigo mismo):
una frmula como r se satisface en w
2
porque existe al menos un estado accesible (w
4
) donde
es r verdadera; tambin en w
2
se satisface r p), puesto que r p) se satisface en su
estado accesible w
3
una frmula como q se satisface en w
2
porque en todos sus estados accesibles (w
3
y w
4
) es q
verdadera; tambin en w
2
se satisface r q)
Para evaluar frmulas ms complejas se necesita una denicin precisa y formal del concepto de
satisfaccin.
Denicin 5.22 Satisfaccin) La satisfaccin de una frmula en un mundo w del modelo M, no-
tada como M w , se dene recursivamente como se adjunta en la tabla 5.2.
Observe cmo la satisfaccin de una frmula compleja se hace depender recursivamente de la
satisfaccin de sus subfrmulas, hasta llegar al caso base: las frmulas atmicas 1[a-c].
Las lneas 1[a-c] y 2[a-d] son una copia de la semntica de la lgica proposicional. Denen c-
mo interpretar, en un mundo, una frmula sin operadores modales: simplemente proceda como
ya lo haca en lgica proposicional (considerando qu letras proposicionales son verdaderas en
ese mundo).
5.3. Lgica monomodal 183
1a M w en ningn caso
1b M w en todo caso
1c M w p si y slo si w p)
2a M w si y slo si no M w
2b M w ) si y slo si M w y M w
2c M w ) si y slo si M w M w
2d M w ) si y slo si no M w M w
3a M w si y slo si existe un w

W tal que Rww

y M w


3b M w si y slo si para todo w

W, si Rww

entonces M w


Tabla 5.2: denicin recursiva de satisfaccin M w
En la lnea 2a, conviene jarse en que, coloquialmente, el no metalingistico externo se con-
vierte en un no interno del lenguaje (). Y viceversa. Se abreviar no M w como
M w .
Tambin informalmente, 3a se puede ver desde una perspectiva procedimental: para vericar
que se satisface en un mundo, inspeccione todos sus mundos accesibles y compruebe que
en cada uno (sin excepcin) se satisface la subfrmula .
La misma perspectiva se puede ofrecer de 3b: para vericar que se satisface en un mundo,
inspeccione sus mundos accesibles hasta encontrar al menos uno donde se satisface la subfr-
mula .
La satisfaccin es el concepto clave de la lgica modal. Para jarlo, revisemos algunos ejemplos
de complejidad creciente.
Ejemplo 5.23 Frmulas sin operadores modales) Considere el modelo M de la gura 5.8:
Una frmula modal bsica sin operadores modales resulta ser una frmula proposicional. Su sa-
tisfaccin en un mundo, como frmula modal, utiliza slo las entradas 1[a-c] y 2[a-d] de la denicin
de satisfaccin.
La negacin p se satisface slo en los mundos w
3
y w
4
. La conjuncin qr) slo en el mundo
w
4
. Un condicional como p qr)) slo puede ser falso en los mundos en que p es verdadera
(y de stos, slo aqullos en que el consecuente sea falso: w
1
, w
5
y w
6
).
Para todo modelo y mundo, la satisfaccin de estas frmulas, sin operadores modales,
no depende de la relacin de accesibilidad.
La frmula atmica se satisface en todo mundo w. Pero tambin cualquier otra tautologa; por
ejemplo: M w q p p)), no importa cul sea el mundo w. Incluso, independientemente de
cul sea el modelo M.
En todo mundo de todo modelo: se satisface cualquiera de las tautologas de la lgica
de proposiciones, y no se satisface ninguna de las contradicciones.
184 Captulo 5. FUNDAMENTOS DE LGICA MODAL

1
p,r


2
p,r


3
q


4
q,r

5
p,r


6
p,r
Figura 5.8: satisfaccin de una frmula
Ejemplo 5.24 Frmulas simples con operadores modales) Sigamos considerando el modelo M de
la gura (g.5.8). La frmula p r) se satisface sobre w
3
, puesto que en alguno de sus mundos
accesibles se satisface la subfrmula pr). Ms formalmente:
M w
3
pr) si y slo si w W tal que Rw
3
w y M w pr)
Los nicos mundos relacionados con w
3
son w
2
, w
4
y w
6
. Como el conjunto W es nito y pequeo,
expandamos las opciones:
M w
3
pr) sii
_
)

M w
2
pr) sii M w
2
p y M w
2
r [

: si]
M w
4
pr) sii M w
4
p y M w
4
r
M w
6
pr) sii M w
6
p y M w
6
r [

: si]
Efectivamente, en los mundos w
2
y w
6
se satisface p r), luego en w
3
se satisface p r).
Observe que en w
3
no se satisface p r) puesto que la subfrmula p r) debera satisfacerse en
los tres mundos relacionados:
M w
3
pr) sii
^
)

M w
2
pr) sii M w
2
p y M w
2
r
M w
4
pr) sii M w
4
p y M w
4
r [: no]
M w
6
pr) sii M w
6
p y M w
6
r
Un resultado negativo, como M w
2
r se demuestra simplemente sealando un mundo accesi-
ble desde w
2
(por ejemplo w
3
) donde no se satisface r. Qu ocurre en estados como w
4
w
6
donde
no se puede mostrar un slo contraejemplo de mundo accesible donde no se satisfaga r? Se verica o
no M w
4
r? Denominaremos a estos mundos nales o terminales, y los analizamos en el ejemplo
siguiente.
Ejemplo 5.25 Satisfaccin en mundos nales) Considere, de nuevo, el modelo M de la gura
(g.5.8). Desde el mundo w
4
no es accesible ningn otro (ni siquiera l mismo). En el modelo M
slo encontramos dos de estos mundos terminales: w
4
y w
6
. La denicin de satisfaccin se aplica
en ellos de igual forma que en el resto, pero esta aplicacin produce resultados poco intuitivos que
conviene resaltar:
M w
4
se produce si y slo si existe un mundo accesible desde w
4
donde se satisfaga . Pero
w
4
no tiene mundos accesibles. No importa cul sea la subfrmula : ese mundo relacionado donde
5.3. Lgica monomodal 185
deba satisfacerse no existe, y por tanto, M w
4
cualquiera que fuera , incluso aunque fuese
una tautologa.
Si w es un mundo nal, entonces M w (en todo modelo M, para toda frmula )
La satisfaccin M w
4
se produce si y slo si en todo mundo de W se verica que si es
accesible desde w
4
entonces se satisface . Esta expresin condicional ser verdadera salvo que algn
mundo verique el antecedente(ser accesible desde w
4
) sin vericar el consecuente (satisfacer ). Y,
efectivamente, en ningn caso deja de ser verdadero el condicional, porque ningn mundo verica el
antecedente. Luego M w
4
para toda frmula , incluso aunque fuese una contradiccin.
Si w es un mundo nal, entonces M w (en todo modelo M, para toda frmula )
Insistiendo en estos resultados anteriores, recuerde que M w y M w slo en mundos
nales w, por la inexistencia de mundos relacionados. En cualquier otro caso, cuando w tenga mundos
relacionados, en todos ellos se satisfar y en ninguno de ellos se satisfar .
Si w no es un mundo nal

M w M w
M w M w
Ejemplo 5.26 Frmulas
n

n
) La sintaxis permite generar frmulas como p. Para vericar
si esta frmula se satisface en un mundo w hay que considerar la subfrmula p en los mundos
accesibles de w, que, de nuevo, requiere inspeccionar los mundos accesibles de estos ltimos:
M w p si y slo si xRwxM x p si y slo si yRxyM y p
As, en el modelo de la gura (g.5.8), p se satisface en w
5
:
M w
5
p ya que M w
2
p puesto que M w
1
p Y w
5
R
w
2
R
w
1
)
Sin embargo, p no se satisface en w
1
. En general:
M w
n
si y slo si existe un mundo z al que se puede acceder desde w tras recorrer
n arcos tal que M z
M w
n
si y slo si para todo mundo z al que se puede acceder desde w tras recorrer
n arcos se verica M z
Observe que no se descarta el uso de arcos reexivos en este camino. Es decir, si un mundo
est relacionado consigo mismo y p es all verdadero, entonces
n
p para toda n. Sin embargo, no se
puede garantizar que se satisfaga
n
p, por qu?.
Ejemplo 5.27 Frmulas generales) De nuevo sobre el modelo de la gura (g.5.8), comprobare-
mos que M w
1
p q r)):
M w
1
p q r)) ya que existe w
2
, con Rw
1
w
2
, donde
M w
2
p q r)) condicional que se satisface, puesto que
si
M w
2
p
entonces
M w
2
q r)
186 Captulo 5. FUNDAMENTOS DE LGICA MODAL
Como el antecedente M w
2
p efectivamente se satisface, para completar el desarrollo hay que
mostrar que M w
2
q r):
M w
2
q r) ya que existe w
3
, con Rw
2
w
3
, donde
M w
3
q r) ya que, para todo w relacionado con w
3
M w q r) en todo w {w
2
w
4
w
6
}
si
M w q
entonces
M w r
Ejercicio 5.28 Determine los mundos (si los hay) en el modelo de la gura (g.5.8) donde se satisfa-
cen las frmulas:
p q) r) p q) p q q))
Retomando el hilo de la exposicin, tras los ejemplos, conviene resaltar la relacin que existe entre
los dos operadores modales. Tan estrecha, que cada uno no es sino una representacin tranformada
del otro.
Denicin 5.29 Operadores duales) Para todo operador modal que se dena, consideraremos el
operador , al que denominaremos su operador dual.
Los operadores y son duales el uno del otro. Observe que, con la semntica denida:
M w
si y slo si para todo w

accesible desde w se satisface


si y slo si no existe un w

accesible desde w donde no se satisfaga


si y slo si
no M w
si y slo si
M w
El operador tiene un sentido existencial (sobre el dominio de mundos localmente relacionados),
mientras que el operador tiene un sentido universal. Se poda haber denido el lenguaje con uno
slo de los dos operadores y considerar el otro como una abreviatura. As, el lenguaje de la lgica
modal bsica es monomodal: slo requiere denir un operador modal.
En general, los operadores modales que se irn deniendo, ocurrirn por pares duales.
A veces, ambos smbolos se denen como operadores primitivos del alfabeto; si no, se
suele denir un smbolo adicional como abreviatura del dual del primitivo.
Sobre satisfaccin y satisfacibilidad Para terminar este apartado, y entre otros problemas relativos,
resaltaremos los dos siguientes:
Dada una frmula , as como un modelo M y uno de sus mundos w se satisface en M w?
Dada una frmula , es satisfacible: existen M w tales que M w ?
5.3. Lgica monomodal 187
Conceptos semnticos bsicos
En el apartado anterior se ha denido recursivamente la relacin de satisfaccin. Basndose en ella
se denirn otros conceptos semnticos fundamentales como verdad, validez, consecuencia o equiva-
lencia.
Denicin 5.30 Frmula verdadera) Si M w , es decir, si una frmula se satisface en un estado
w de un modelo M diremos que es localmente verdadera o verdadera en ese estado.
Validez
Recuerde que, en lgica de proposiciones, la satisfaccin de una frmula se produca, o no, en una
lnea de la tabla de verdad. La frmula era vlida (una tautologa) si se satisfaca en todas las lneas.
Anlogamente, una frmula modal ser vlida si se satisface en toda interpretacin posible.
Denicin 5.31 Validez) Una frmula es vlida si se satisface en todo mundo de todo modelo.
Notacin Para expresar la validez de una frmula se utilizar la notacin .
Un frmula vlida se satisface en todo caso: en todo dominio W y con cualquier relacin R (es
decir, en todo marco), cualquiera que sea la asignacin y el mundo w donde se evala. As, la validez
no puede depender de una eleccin particular de estas opciones: depende slo de la propia estructura
de la frmula y de la semntica de las frmulas modales.
Teorema 5.32 Toda tautologa proposicional clsica es una frmula vlida.
Considere un marco y un mundo cualesquiera. No importa cul sea la asignacin, (los valores de las letras
proposicionales en ese mundo): la frmula (por ser tautologa) ser verdadera en l.
Las tautologas no son las nicas frmulas vlidas. La frmula del siguiente teorema es un ejemplo
de ello, sucientemente importante como para recibir un nombre propio: se denomina K en honor del
lgico Saul Kripke.
Teorema 5.33 La frmula p q) p q)) es una frmula vlida.
Para demostrar K se precisa demostrar M w K para todo mundo w de todo modelo M. El esquema
de demostracin que sigue se reere a un mundo w y a un modelo M cualesquiera. Como no se utilizan
caractersticas particulares de los mismos, resultar un esquema de demostracin correcto para todo mundo y
todo modelo.
La frmula K es un condicional. El nico caso en que un condicional no se satisface es cuando s lo hace el
antecedente pero no el consecuente. Pero esto no se produce para K: si se supone la satisfaccin del antecedente
esto nos conduce lgicamente a la satisfaccin del consecuente.
As, supongamos M w p q). Entonces (1): se satisface p q) para todo mundo de M accesible
desde w. Por otro lado, el consecuente de K es asmismo un condicional. Slo ser falso si se satisface su
antecedente pero no su consecuente. Supongamos, entonces, M w p. Es decir, (2): se satisface p para todo
mundo M accesible desde w.
De (1) y (2) se sigue que se satisface q en todo mundo accesible desde w, y por tanto M w q.
Algunas frmulas, sin llegar a ser vlidas, pueden an cumplir propiedades menos exigentes. Por
ejemplo: pueden ser verdaderas en todo mundo de cierto modelo M, o de cierta familia de modelos.
En estos casos, W R w an se requiere para todo w pero ya slo para ciertos modelos, ciertas
elecciones de marco y asignacin. Un caso particular se produce cuando esa familia de modelos
coincide con todos los modelos basados en cierto marco en un conjunto de ellos.
188 Captulo 5. FUNDAMENTOS DE LGICA MODAL
Denicin 5.34 Validez en un conjunto de modelos)
Una frmula es vlida en un modelo M si es verdadera en todo mundo de M.
Una frmula es vlida en un conjunto de modelos M si es vlida en todo modelo M M.
Como caso particular, resultar especialmente interesante la validez sobre todos los modelos de un
marco o de un conjunto de marcos:
Una frmula es vlida en un marco F si es vlida en todo modelo basado en F.
Una frmula es vlida en un conjunto de marcos F si es vlida en todo marco F F .
Notacin Las frmulas vlidas en un modelo, un conjunto de modelos, un marco y un conjunto de marcos
se notan, respectivamente, como M , M , F , F .
Ejemplo 5.35 Elija un marco F cualquiera (universo W y relacin R). Considere slo las asignacio-
nes tales que cada letra proposicional es cierta a lo sumo en un mundo. Obtendr un conjunto M de
modelos.
Una frmula como pq) es verdadera en todo mundo de cualquiera de estos modelos MM;
es decir, M , es vlida en M. Si este conjunto de modelos M coincidiera con todos los modelos
basados en F, utilizaramos la notacin (ms expresiva) F . Pero no es el caso.
El lector puede construir conjuntos de modelos como el anterior: escogiendo uno o varios marcos
y deniendo asignaciones peculiares. Observar que el diseo de frmulas vlidas en ese conjunto
depende de las restricciones sobre las relaciones y asignaciones utilizadas.
Si el conjunto de modelos incluye todos los modelos basados en uno o varios marcos, slo sern
relevantes las restricciones sobre las relaciones. Observe que, en este caso, la frmula debe ser vlida
no slo en todo mundo sino frente a cualquier asignacin.
Ejemplo 5.36 Considere un marco con una relacin reexiva. La frmula T := p p) ser ver-
dadera en cualquier mundo de este marco, no importa cul sea la asignacin utilizada. Es decir, si F
es el conjunto de los marcos reexivos entonces T es vlida en todos los modelos basados en estos
marcos: F T.
Sobre el conjunto de frmulas vlidas en M En este punto, concentramos nuestra atencin so-
bre el siguiente problema: dado un conjunto M de modelos, qu frmulas son vlidas en l?.
Recapitulemos algunos resultados parciales y anticipemos otros:
Cualquier frmula vlida, por ser cierta en todo modelo, lo es sobre cualquier subconjunto de
modelos. De momento, en esta categora, conocemos las tautologas y la frmula K
Aparte de estas frmulas generales, pueden existir otras particularmente vlidas en M. La
frmula T era un ejemplo de ello
Existen operaciones sintcticas que preservan la validez: dada una frmula vlida en un con-
junto M, se garantiza que su transformada resultar asimismo vlida en M.
La sustitucin uniforme se encuentra entre estas operaciones: preserva la validez, pero cuidado
slo en conjuntos de modelos completos basados en marcos.
5.3. Lgica monomodal 189
Teorema 5.37 Suponga que es una instancia por sustitucin uniforme de . Para cualquier conjunto
de marcos F :
Si F entonces F
Observe que el conjunto de todos los modelos posibles se puede denir como el conjunto de los
modelos basados en todos los marcos posibles. Las tautologas y K son vlidas sobre este F global.
Y, por tanto, todas sus instancias por sustitucin seguirn siendo vlidas sobre este conjunto F . Es
decir:
Las instancias por sustitucin de tautologas y de la frmula K resultan ser vlidas, y por
tanto, son vlidas en cualquier conjunto de modelos M.
Ejercicio 5.38 Plantese un conjunto M de modelos que conste de un nico modelo M: un marco F
y una asignacin adecuada que consiga que cierta frmula sea ocasionalmente vlida en M.
Puesto que ste no es un conjunto de todos los modelos basados en ciertos marcos, el teorema
(teor.5.37) no garantiza que toda instancia de siga siendo vlida en M. Trate de encontrar una
sustitucin que, efectivamente, no preserve la validez.
Teorema 5.39 Si M es una coleccin de modelos, el conjunto de frmulas vlidas en M:
1. incluye todas las instancias de tautologas
2. incluye todas las frmulas de la forma ) ))
3. si incluye y ) , entonces incluye
4. si incluye , entonces incluye
Adems, si F es una coleccin de marcos, el conjunto de frmulas vlidas sobre F es cerrado respecto
a la sustitucin.
Las dos primeras categoras son frmulas vlidas, en general, y por tanto frmulas vlidas en cualquier
conjunto restringido de modelos. El conjunto M puede contar adems con otras frmulas vlidas en l (aunque
no vlidas en general). Lo que garantizan las dos ltimas condiciones es que en M el conjunto total de sus
frmulas vlidas (las generales y las particulares) est cerrado respecto a ellas; es decir:
3. en cada mundo en que y ) se satisfacen tambin se satisface . Si se supone que y )
se satisfacen en todo mundo de todo modelo de M, igualmente ocurrir con .
4. si fuese una frmula cualquiera, puede satisfacerse sin que se satisfaga . Ahora bien, si se parte
de que es vlida (verdadera en todo mundo), lo ser en todos los vecinos accesibles, luego se satisface
en todo mundo (para el mismo conjunto de modelos en que sea vlida).
Adems, slo en el caso de que se considere un conjunto de modelos basados en marcos, la sustitucin uniforme
preserva la validez sobre este conjunto.
Dado un conjunto de marcos F , denominaremos la lgica basada en F al conjunto de frmulas
vlidas en F .
190 Captulo 5. FUNDAMENTOS DE LGICA MODAL
Consecuencia
Se dir que un conjunto de frmulas se satisface en un mundo w del modelo M si M w para toda
frmula . Se nota como M w .
Denicin 5.40 Consecuencia) Una frmula es consecuencia de un conjunto de frmulas cuan-
do:
si M w entonces M w , (para todo mundo w de todo modelo M)
Notacin Esta relacin semntica entre el conjunto de frmulas y la frmula se notar |=. Se suele
escribir . . . |= en vez de { . . . } |=, omitiendo las llaves que delimitan las frmulas del conjunto .
As, se notar |= cuando el conjunto conste de una nica frmula .
La denicin requiere algo ms que el mero hecho de que las frmulas y la frmula coincidan, puntual
y ocasionalmente, en ser verdaderas. Se requiere que donde quiera que se evalen (mundo y modelo) no pueda
ocurrir que se satisfacen las frmulas y no se satisfaga .
Ejemplo 5.41 Como ejemplo trivial, considere p q |= p q). Menos trivialmente, tambin puede
demostrarse ) |= )
Contrajemplos Para demostrar un resultado negativo, que no es consecuencia lgica del conjunto
de frmulas ( |=) basta mostrar un slo mundo w de un modelo M donde:
M w y, sin embargo, M w ,
Desgraciadamente, los resultados positivos ( |= ) no pueden decidirse extensivamente, vericando
todos los (innitos) modelos posibles.
Consecuencia restringida a un conjunto de modelos La relacin de consecuencia propuesta es
muy exigente: debe vericarse en todo mundo de todo modelo. As, p |=p, ya que existen mundos
donde p es verdadera sin que lo sea en ninguno de sus mundos accesibles. No obstante, si slo
considersemos los modelos basados en marcos reexivos, en todo mundo en que sea verdadera p
debe serlo p. Es decir, p es consecuencia lgica de p (restringida al conjunto de modelos basados
en marcos reexivos).
Esta relacin restringida se notar como |=
M
y se dene como:
si M w entonces M w , (para todo mundo w de todo modelo M M)
Es importante tener en cuenta que, restringidos a un cierto conjunto de modelos M:
todas las relaciones generales de consecuencia se siguen manteniendo; por ejemplo,
) |=
M
)
se satisfacen relaciones que no se satisfacan en el conjunto total de modelos; por ejemplo,
p |=
M
p (para M igual al conjunto de modelos sobre marcos reexivos).
5.3. Lgica monomodal 191
Equivalencia
Denicin 5.42 Equivalencia) Las frmulas y son equivalentes si |= y |= . Para repre-
sentar esta relacin semntica entre ambas frmulas se utilizar la notacin .
Observe que la denicin de equivalencia se ha formalizado utilizando el concepto de consecuen-
cia (5.40). De esta denicin resultar que dos frmulas son equivalentes si en todo mundo de todo
modelo se satisface una si y slo si se satisface la otra.
Ejemplo 5.43 Equivalencia de frmulas sin operadores modales) Las frmulas p q) y p
q) son equivalentes en lgica de proposiciones: p q)
p
pq). Como esta propiedad se mantie-
ne en todo mundo de todo modelo, resultan ser frmulas modales equivalentes: p q) pq).
Ejemplo 5.44 Equivalencias modales bsicas) Entre las equivalencias modales ms tiles e inme-
diatas se encuentran:

) )
) )
Ejercicio 5.45 Dena un ejemplo de modelo y mundo donde se compruebe que:
) )
) )
Ejemplo 5.46 La frmula K es equivalente a :
) ))
) ))
) ))
) ) )
) ) )
) ) )
5.3.2 Teora de la correspondencia
Ya se ha expuesto que, dado un conjunto de modelos M existe un conjunto de frmulas vlidas en l.
Algunas, porque son vlidas en todo modelo, junto a otras particularmente vlidas en M. Considere
una frmula de este segundo grupo: no es vlida (en general), pero s lo es sobre los modelos de M.
No se descarta que esta frmula sea tambin vlida sobre otros conjuntos de modelos (M
1
. . . M
k
).
Cuando no ocurre esto, cuando una frmula es vlida sobre un conjunto de modelos y slo
sobre ese conjunto, esta frmula modal caracteriza sintcticamente a todo ese conjunto
(normalmente innito) de modelos.
En esta seccin nos restringiremos al estudio de los conjuntos de modelos basados en marcos y
de las frmulas modales que los caracterizan. Ejemplos de estos conjuntos son: todos los modelos
con marco reexivo, o con marco transitivo, o con marco transitivo y eucldeo, o cuya relacin sea
una relacin de equivalencia, o de orden ... En general, todas estas propiedades son denibles por
sentencias de la lgica clsica de primer (o de segundo) orden.
192 Captulo 5. FUNDAMENTOS DE LGICA MODAL
Esta lnea de investigacin suele denominarse Teora de la Correspondencia porque trata
de buscar la correspondencia adecuada entre las frmulas modales y las frmulas en otros
lenguajes, cuando todas ellas se satisfacen exclusivamente sobre las mismas estructuras
relacionales.
En general, los teoremas presentan una estructura parecida a la del siguiente, donde una propiedad
de la relacin se presenta si y slo si se satisface una frmula (o, equivalentemente, un esquema):
Teorema 5.47 Sea F =W R un marco, entonces:
R es transitiva si y slo si F p p) si y slo si F )
Si R es transitiva entonces F p p):
Considere un modelo M basado en F (con relacin transitiva, por hiptesis) y un mundo w W. Se
satisface este condicional M w p p) si y slo si la suposicin M w p conduce a M w p.
Supongamos entonces M w p. Es decir, (1) que para todo w

accesible desde w se satisface p.


Consideremos todos los mundos w

relacionados con estos w

. Como la relacin R es transitiva, tambin


estn relacionados con w. Por el resultado (1), en todos ellos se satisface p. Luego en cada w

se satisface p,
y en w se satisface p.
Si F p p) entonces la relacin R de F es transitiva:
Si la frmula se satisface en F entonces se satisface para todo mundo y toda asignacin sobre F. Luego, se
satisface para todo mundo dada una asignacin particular (que construiremos).
Intentaremos demostrar que la satisfaccin sobre esta asignacin particular implica la transitividad de R.
O lo que es equivalente, que si R no fuera transitiva, la frmula no sera satisfacible para esa asignacin. As,
se habr demostrado que cuando es cierto que la frmula se satisface para todos los modelos de F debe ser
transitiva (o fallara, al menos, en ese modelo).
Elija un mundo cualquiera t y considere una asignacin p) = {w W | Rtw}; es decir, p es verdadera
slo en los mundos relacionados con t. Esta asignacin garantiza (1) que F t p.
Inicialmente supusimos F p p), que junto con (1) implica que (2) F t p.
As pues, para todo w

tales que Rtw

y Rw

, de (2) se sigue que en w

se satisface p. Y por tanto,


que Rtw

, puesto que slo satisfacian p los mundos relacionados con t.


Observe, del prrafo anterior, que se ha garantizado que para todo w

tales que Rtw

y Rw

, entonces
Rtw

: la transitividad de la relacin, puesto que no se ha utilizado ninguna propiedad especca del mundo t, y
por tanto el desarrollo es vlido para todo t.
Si F p p) entonces F ):
La segunda frmula es una instancia por sustitucin de la primera. Se preserva la validez porque nos hemos
ceido a conjuntos de modelos basados en marcos.
Si F ) entonces F p p):
La segunda frmula se ajusta al esquema de la primera, simplemente considerando = p.
La tabla (tabl.5.3.2) facilita algunas frmulas modales junto al tipo de relaciones que caracterizan.
Se adjunta tambin el nombre histrico dado a estas frmulas (o esquemas de frmulas).
Reexiva p p) (T)
Simtrica p p) (B)
Transitiva p p) (4)
Eucldea p p) (5)
Determinista p p) (Q)
Serial p p) (D)
Funcional p p)
Tabla 5.3: Frmulas modales que caracterizan relaciones binarias
5.3. Lgica monomodal 193
La demostracin de estas correspondencias se efecta de forma anloga a la del teorema
(teor.5.47). El nico paso no trivial consiste en demostrar la propiedad dada la satisfaccin de la
frmula. Para ello es preciso encontrar una asignacin particular afortunada, de la que se siga este
resultado.
5.3.3 Lgicas normales
Cada lgica normal es un conjunto determinado de frmulas. Como tales conjuntos, si una frmu-
la pertenece a uno de ellos y no a otro, resultan ser conjuntos distintos: lgicas normales distintas.
Existen multitud de lgicas normales distintas. Sin embargo, todas ellas cumplen, para serlo, caracte-
rsticas comunes.
Denicin 5.48 Lgica normal) Una lgica normal es un conjunto de frmulas que, incluye:
1. todas las tautologas
2. todas las frmulas de la forma ) ))
y es cerrado respecto de:
3. modus ponens: si incluye y ) , entonces incluye
4. generalizacin: si incluye , entonces incluye
5. sustitucin uniforme: si incluye , entonces incluye cualquier instancia suya por sustitucin
uniforme
Observe que esta denicin no hace ninguna referencia a estructuras relacionales. Cualquier con-
junto de frmulas que sintcticamente garantice estas propiedades es una lgica normal. No obstante,
esta denicin recuerda a los resultados del teorema (teor.5.39). Efectivamente, toda lgica basada en
marcos (todas las frmulas vlidas sobre un conjunto de marcos) resultar ser una lgica normal. Sin
embargo, no a toda lgica normal le corresponder una lgica basada en marcos. En estas notas no se
considerar ninguna de estas lgicas normales no basadas en marcos.
Lgica K Es la menor de las lgicas normales incluye slo las tautologas y la frmula K, as como
las frmulas que resultan del cierre frente a las tres condiciones propuestas. Todas sus frmulas son
vlidas.
Lgica KT Resulta tras aadir el axioma T := p p, a la lgica K (junto a todas las frmulas
que se obtienen por cierre). Todas sus frmulas son vlidas sobre marcos reexivos.
Lgica K4 Resulta tras aadir el axioma 4 :=p p, a la lgica K (junto a todas las frmulas
que se obtienen por cierre). Todas sus frmulas son vlidas sobre marcos transitivos.
Lgica KT4 S4 Resulta tras aadir T y 4 a la lgica K (considerando todos sus cierres). Todas sus
frmulas son vlidas sobre el conjunto de marcos reexivos y transitivos.
194 Captulo 5. FUNDAMENTOS DE LGICA MODAL
Lgica KT45 S5 Resulta tras aadir T, 4 y 5 := p p) a la lgica K (considerando todos
sus cierres). Todas sus frmulas son vlidas sobre el conjunto de marcos reexivos, eucldeos y
transitivos, que resultan tambin ser los marcos reexivos, simtricos y transitivos, es decir, sobre
todas las relaciones que sean de equivalencia.
Existen otras muchas lgicas normales de inters. En los ejemplos citados (y en otros omitidos)
estos conjuntos de frmulas presentan 3 perspectivas complementarias que las hacen especialmente
atrayentes:
Por un lado, todas sus frmulas son vlidas sobre conjuntos de marcos que tienen una propiedad
formal de inters.
As, cuando se quiere modelizar un concepto o un sistema (tiempo, agentes, etc.) se escoge la
lgica adecuada a las propiedades que presentan las relaciones del sistema (simetra, transitivi-
dad, ...)
Por otro lado, todas estas lgicas tienen diversos sistemas de demostracin bien denidos. Por
ejemplo, a partir de los axiomas K, T y 4, mediante reglas de inferencia adecuadas, se puede
ir generando sintcticamente frmulas de KT4, de las que se garantiza que son vlidas en su
conjunto de marcos (reexivos y transitivos).
La exposicin de estos sistemas de demostracin (de tipo Hilbert, de deduccin natural y basados
en tablas semnticas) es un material avanzado que no se incluye en los objetivos bsicos del curso (en
esta edicin).
Lecturas del operador modal
Este apartado poda haberse incluido dentro de una seccin genrica dedicada a la Ingeniera Lgica.
Antes de abordar (ligeramente) este concepto, analicemos un ejemplo estndar.
Se pretende formalizar el concepto de necesidad. Es factible hacerlo sobre la lgica modal presen-
tada si se considera que algo es necesario en un mundo (una situacin) si se satisface en todo mundo
accesible desde l. Informalmente, all hasta donde se puede mirar se produce p, luego desde esta
situacin p es necesario. En este contexto, una frmula como p se puede leer como es necesario
p.
Como p equivale a p, debiera leerse como no es necesario que no se satisfaga p; es decir:
es posible p.
La semntica modal denida hasta el momento parece ajustarse perfectamente a la modelizacin
de este concepto. No es extrao, gran parte del trabajo en lgica monomodal se hizo con esta lectura
en mente.
Cuando se desarrolla en detalle esta modelizacin se encuentra una objecin evidente: qu ocurre
en un mundo no relacionado consigo mismo? Puede satisfacerse p sin que se satisfaga p en ese
mundo. Con la lectura propuesta, supone admitir que p es necesario en un situacin sin que se
verique en la misma.
La adecuacin del formalismo se produce, sin ms sorpresas, si se requiere que la interpretacin de
este concepto se produzca sobre marcos reexivos. Es decir, si uno se restringe a la lgica KT. Todas
las frmulas que se pueden demostrar partiendo de estos axiomas sern vlidas en marcos formales,
y todas ellas expresarn relaciones aceptables entre los conceptos de necesidad (), posibilidad () y
expresiones lgicas proposicionales.
5.4. Lgicas polimodales 195
La Ingeniera Lgica, en general, parte de una aplicacin que pretende formalizar y evala qu
sistema lgico es adecuado. Si se escoge un sistema modal, se considera qu restricciones forma-
les son exigibles al sistema para representar adecuadamente la aplicacin. Formalmente, cuando es
posible, esta adicin de restricciones, supone aadir axiomas (frmulas modales) al sistema.
5.4 Lgicas polimodales
El lenguaje utilizado hasta este punto es monomodal: contiene un nico operador modal , junto a
su operador dual . Gran parte de las aplicaciones de inters requieren lenguajes con ms operadores
modales.
5.4.1 Sintaxis
Ejemplo 5.49 Considere un lenguaje con dos operadores modales [a] y [b], junto a sus respectivos
operadores duales a y b. Deniremos la sintaxis de este lenguaje como una ampliacin de la
sintaxis monomodal:
Si es una frmula, entonces [a] [b] a y b son frmulas
Luego, todas las siguientes expresiones son frmulas:
p q), pq)
[a]p q), [b]pq), ap q)
[a][a]p q), [a]apq), bbp q)
[a][b]p q), [b]apq), ba[a]p q)
[a][b]p [b]apq)))
Un lenguaje modal proposicional con n operadores se dene de forma anloga.
Denicin 5.50 Frmulas de un lenguaje polimodal) Se parte de un alfabeto proposicional que in-
cluye el siguiente conjunto de operadores modales {[a] . . . [n] a . . . n}. Las frmulas del lengua-
je son, exclusivamente, todas aquellas que se pueden generar por aplicacin nita de las siguientes
reglas:
1. Cada letra proposicional es una frmula
2. Las constantes proposicionales y son frmulas
3. Si es una frmula, entonces es una frmula
4. Si y son frmulas, entonces son frmulas ), ) y )
5. Si es una frmula, entonces son frmulas [k] y k, para cada uno de los operadores
modales
Usualmente, no suelen incluirse los operadores duales como smbolos primitivos del alfabeto. Se
les asigna un smbolo posterior, como abreviatura.
196 Captulo 5. FUNDAMENTOS DE LGICA MODAL
5.4.2 Semantica
Como en el apartado anterior, comencemos considerando un lenguaje con dos nicos operadores [a]
y [b] (junto a sus duales).
Interpretar, en un mundo w, una frmula como [a]p o como ap requiere inspeccionar el valor
de p en sus mundos a-relacionados
Interpretar, en un mundo w, una frmula como [b]p o como bp requiere inspeccionar el valor
de p en sus mundos b-relacionados
Los mundos a-relacionados con w pueden ser distintos de sus mundos b-relacionados
Es decir, un lenguaje con dos operadores modales (junto a sus duales) requiere un marco W R
a
R
b

con dos relaciones binarias. En la gura (g5.9b) se muestra un marco de este estilo. La gura
(g5.9a) aisla la relacin R
a
sobre W, que sera suciente para las frmulas de este lenguaje que slo
utilizaran [a]p o ap.

1


2


3


4

5


6
(a) La relacin R
a
, separada

1
a


2
a


3
a


4

5
a b

b


6
(b) Marco, con relaciones R
a
y R
b
Figura 5.9: Marco para un lenguaje bimodal
Ejemplo 5.51 Sobre el marco del la gura (g.5.9b) construyamos un modelo M sencillo de recordar:
p y q son verdaderas slo en el mundo 3 y falsas en el resto. Es decir, p) = {w
3
} y q) = {w
3
}.
Entonces:
M w
3
pq), M w
3
p
M w
3
ap, ya que p es verdadera en alguno de sus mundos a-relacionados (p.ej. w
2
)
M w
3
[a]p, ya que p no es verdadera en todos sus mundos a-relacionados (en concreto es
falsa en w
3
)
M w
3
bp, ya que p es verdadera en alguno de sus mundos b-relacionados (w
5
). Es ms,
como ste es su nico mundo b-relacionado, tambin M w
3
[b]p
M w
1
aap ya que existe un mundo a-relacionado con w
1
(en concreto,w
2
) donde se satis-
face ap, puesto que p es verdadero en w
3
. Sin embargo, M w
1
[a][a]p (observe que p no se
satisface en w
4
).
Como w
1
(o w
2
, entre otros) son mundos nales en la relacin R
b
, para toda frmula se verica
M w
1
[a] pero M w
1
b
5.4. Lgicas polimodales 197
Mayor inters tiene la interpretacin de frmulas donde aparecen ambos operadores:
M w
2
abp ya que existe un mundo a-relacionado con w
2
(en concreto,w
3
) donde se
satisface bp, puesto que p es verdadero en w
5
.
M w
2
ab[b]p. Desde w
2
existe un a-arco seguido de un b-arco que nos sita en un
mundo (w
5
) donde se satisface [b]p.
En el caso general, con n operadores modales, basta modicar la denicin previa de satisfaccin
monomodal:
3

a M w k si y slo si existe un w

W tal que R
k
ww

y M w

b M w [k] si y slo si para todo w

W, si R
k
ww

entonces M w


Observe que esta denicin exige que cada operador modal tenga asignada un relacin binaria en
el marco sobre el que se interpreta.
Interdependencia entre relaciones El marco de la gura (g.5.9) facilita una relacin R
a
para
interpretar el par de operadores [a] a y otra R
b
para interpretar [b] b. Perfectamente R
a
y R
b
se
podan haber escogido tales que R
a
= R
b
. Grcamente, partiendo de R
a
, basta aadir la etiqueta b a
cada arco etiquetado como a. De esta forma, varios pares de operadores modales pueden interpretarse
sobre la misma relacin.
Existen otras muchas formas de denir una relacin R
b
a partir de una R
a
. Se puede requerir, por
ejemplo, que dos mundos estn relacionados en un sentido por R
a
si y slo si lo estn en el otro por R
b
.
Es decir, que R
a
y R
b
sean relaciones recprocas o inversas. Ms generalmente: ciertas aplicaciones
pueden requerir alguna dependencia entre las relaciones de los marcos donde se interpretan.
La formulacin de estas dependencias se puede expresar en lgica de predicados. Por ejemplo, la
reciprocidad a la que antes se aluda, se presenta en los marcos que verican
xyR
a
xy R
b
yx)
Resultar, sin embargo, mucho ms til si la dependencia entre relaciones se puede caracterizar me-
diante una o varias frmulas modales. Por ejemplo, en todos los marcos en que son vlidas las
frmulas
p [a]bp p [b]ap
las relaciones R
a
y R
b
son recprocas.
5.4.3 Lgica temporal bsica
Sintaxis y semntica
La lgica temporal bsica es una lgica modal proposicional con dos operadores: P y F. De
cada uno de ellos resultar til considerar su respectivo operador dual, e incluso reservarle un smbolo
especfo:
[H] =P [G] =F
La lectura pretendida para P y F es:
P existe al menos un mundo, un estado (un instante) en el pasado en que se satisface
F existe al menos un mundo, un estado (un instante) en el futuro en que se satisface
Con esta lectura, sus operadores duales deben interpretarse como:
198 Captulo 5. FUNDAMENTOS DE LGICA MODAL
[H] =P no existe un instante en el pasado en que no se satisfaga
en todo instante pasado se satisface
[G] =F no existe un instante en el futuro en que no se satisfaga
en todo instante futuro se satisface
Notacin Se han respetado las iniciales usuales, que en ingls corresponden con:
P: para algn instante en el pasado (Past)
F: para algn instante en el futuro (Future)
[H]: para todo instante pasado (it always Has been ...)
[G]: para todo instante futuro (it always is Going to ...)
Usualmente se escriben P F H G (sin corchetes). En esta introduccin se han aadido para recalcar el caracter
existencial de P y F frente al universal de H y G, sus respectivos operadores duales.
Modelizacin adecuada del tiempo
El lenguaje temporal bsico se puede interpretar en cualquier marco que facilite dos relaciones binarias
R
P
y R
F
. Incluso en el marco de la gura (g.5.9b). No obstante, la relacin entre nodos (entre
instantes) en esta gura no capta las restricciones mnimas de una modelizacin del tiempo.
Transitividad Parece razonable que, si en el futuro de w
1
se encuentra w
2
y en el futuro de w
2
se
encuentra w
3
, entonces en el futuro de w
1
debiera estar w
3
. Es decir, que la relacin R
F
sea transitiva:
w
i
w
j
w
k
R
F
w
i
w
j
R
F
w
j
w
k
R
F
w
i
w
k
)
La misma transitividad se puede pedir de R
P
, que relaciona a un instante w
i
con otro w
j
en su pasa-
do: R
P
w
i
w
j
. As, como mnimo, no se interpretar la lgica temporal bsica sobre cualquier marco
W R
P
R
F
, sino sobre aqullos donde tanto R
P
como R
F
sean transitivas. Es decir, en los marcos en
que sean vlidas las frmulas:
[H] [H][H] [G] [G][G]
o sus equivalentes
PP P FF F
Reciprocidad Pasado-Futuro Otra restriccin razonable introduce una dependencia entre ambas
relaciones: querramos que en el futuro de w
1
se encuentre w
2
si y slo si en el pasado de w
2
se
encuentra w
1
. Es decir, que una relacin sea la recproca de la otra. Ya se ha mencionado que los
marcos donde esto se verica son aquellos en que son vlidas las dos frmulas siguientes:
p [H]Fp p [G]Pp
Cuando se verica esta reciprocidad, se puede considerar que existe una nica relacin R (por
ejemplo, R = R
F
). Entonces, la relacin hacia el pasado utiliza R pero hacia atrs. Formalmente,
basta redenir la semntica de P y [H]:
M w F si y slo si existe un w

W tal que Rww

y M w


M w [G] si y slo si para todo w

W, si Rww

entonces M w


M w P si y slo si existe un w

W tal que Rw

w y M w


M w [H] si y slo si para todo w

W, si Rw

w entonces M w


Observe cmo, en la semntica de P y [H], los instantes se relacionan por R de forma inversa a
cmo lo hacen para F y [G].
5.4. Lgicas polimodales 199
Otras restricciones opcionales Aadiendo restricciones adicionales se pueden ir consiguiendo unas
u otras modelizaciones ms especcas. Por ejemplo, si se exige que todo instante tenga uno y slo
un R-sucesor, nos limitamos a los marcos temporales lineales; si se permiten varios R-sucesores,
consideramos lneas de tiempo que se bifurcan. Asimismo se pueden considerar modelos discretos o
modelos densos.
5.4.4 Lgica epistmica
En la economa, los juegos, los protocolos de comunicacin o la cooperacin entre agentes, no slo
es importante saber si se verica cierta relacin lgica entre proposiciones; adems interesa precisar
si Antonio es consciente de ello si Luis conoce que Antonio sabe que se verica eso. Ms
formalmente, notaremos como:
[K
j
] a la expresin la persona o el agente j conoce .
La formalizacin modal de este concepto se produce admitiendo tantos operadores modales [K
j
] dis-
tintos como agentes distintos estn interactuando. Sus respectivos operadores duales se leeran como:
[K
j
], j no conoce que no se satisfaga ; es decir, hasta donde sabe, es posible .
Este operador dual se representa como M
j
. El uso de los corchetes anticipa cmo se interpretan
estos operadores sobre las estructuras relacionales.
Considere de momento un nico agente. El operador [K] se comporta formalmente como ; es
decir,
M w [K]p q) si y slo si en todo mundo relacionado con w se satisface p q).
En este caso, se satisface si en todos los mundos relacionados con w nunca ocurre que p es verdadera
y q falsa. Informalmente, el agente sabe algo si eso se satisface en todo mundo que alcanza a ver.
Igual que se ha hecho anteriormente, desearamos forzar, restringir el modelo hasta captar for-
malmente nuestro concepto de conocimiento. Por ejemplo, puede parecer razonable que sea vlida la
siguiente expresin:
1. [K]p p): si en una situacin w el agente conoce p entonces efectivamente se satisface p en
w; es decir, lo que se conoce es verdad (en ese mismo mundo)
Esta frmula, con la semntica antes denida no es verdadera en todo caso. Falla en los mundos
no relacionados consigo mismo. El lector reconocer fcilmente que se trata de una reescritura del
esquema T. As pues, si se asume como axioma en un sistema de demostracin, todas las frmulas
que se deduzcan sern vlidas sobre marcos reexivos.
Puede considerarse la adicin de otras expresiones como axiomas del sistema. Por ejemplo:
2. [K]p [K][K]p: si el agente conoce p entonces conoce que conoce p; es decir, tiene capacidad
de introspeccin positiva
3. [K]p [K][K]p: si el agente no conoce p entonces conoce que no conoce p; es decir, tiene
capacidad de introspeccin negativa
Puede que un modelo realista del conocimiento no incluya todas estas capacidades. En todo caso,
si se miran detenidamente, las frmulas (2) y (3) son adaptaciones de los conocidos esquemas 4 y 5
(ste, en una versin equivalente). Es decir, si estas frmulas se incluyen como axiomas del sistema
(junto a la frmula K monomodal), se estara modelizando el conocimiento sobre la lgica KT45
(tambin conocida como S5).
En este caso, los marcos sobre los que se interpretan las frmulas se restringena a aqullos con
relacin de equivalencia; es decir, donde los mundos se dividen en clases de equivalencia disjuntas.
200 Captulo 5. FUNDAMENTOS DE LGICA MODAL
Bibliografa complementaria
El texto [Huth y Ryan 2000] tiene sus contenidos ordenados por su aplicacin ms que por la relacin
entre sus sistemas lgicos. El lector puede encontrar en su captulo 5 una buena introduccin a la
lgica modal y a su aplicacin para modelizar la relacin entre agentes. Anteriormente, en el captulo
3, se encuentra tambin una excelente introduccin a la lgica modal temporal y a su uso, que quiz
debiera haberse situado tras el captulo 5.
Para una introduccin ms formal y extensa conviene consultar [Popkorn 94], [Gabbay et al. 93
y 95] y [Blackburn et al., 01], quiz en ese orden creciente de dicultad.
La lgica epistmica slo se ha esbozado en estas notas introductorias. En [Meyer y van der
Hoek, 1995] y [Fagin et al., 1995] se pueden encontrar varios de estos sistemas junto a las aplicacio-
nes que se han venido desarrollando sobre ellos: razonamiento en sistemas multiagentes, vericacin
de protocolos de comunicacin, sistemas con operadores tanto epistmicos como temporales, ... Po-
siblemente, un lector novel encuentre [Fagin et al., 1995] algo ms fcil de seguir que [Meyer y van
der Hoek, 1995].
ctividades y evaluacin
El alumno dispone de ejemplos y actividades en el grupo de tutorizacin telemtica del curso, as
como exmenes resueltos de aos pasados.
Captulo 6
Lgica Modal Temporal
6.1 Introduccin
6.1.1 Diseo de sistemas
Las frmulas de lgica modal se interpretaban sobre estructuras de Kripke, como la de la gura 6.1.
Una estructura as puede utilizarse para modelar muy diversas relaciones, asignando adicionalmente
propiedades a cada una de las entidades relacionadas.
p,q
q
1 2
4 3
p,s p,r
Figura 6.1: Diagrama de transiciones
En el diseo de sistemas fsicos o de programas, una gura como la 6.1 se utiliza para describir
transiciones entre estados de un sistema. Un microondas o nuestro ltimo mvil no responde siempre
igual a la pulsacin de la misma tecla: conforme est en un estado u otro ejecutar o no alguna accin
y pasar o no a otro estado. La descripcin funcional de un sistema, o su diseo fsico ntegro, pueden
expresarse mediante estas relaciones entre estados etiquetados.
Gran parte de estos sistemas se disean para mantener una permanente actividad reactiva: de una
mquina de caf o de un sistema operativo se espera un funcionamiento continuo. En estos casos no
hay nodos, estados, nales: de todo estado surge al menos una transicin hacia otro. Formalmente, en
cualquier diagrama con n estados nales se pueden redirigir stos hacia un nuevo nodo adicional (con
un bucle hacia s mismo). A partir de este punto consideraremos que estamos trabajando con este tipo
de sistemas, sin estados nales.
En ese caso, cualquier traza de ejecucin de transiciones es ilimitada. Si se empieza en el nodo 1
de la gura 6.1 se puede pasar al 2 y de ste al 4,... Un posible camino que parte del estado 1 es:
1 2 4 1 2 4 3 4 3 4 1. . .
La gura 6.2 presenta todas las opciones de recorrido del diagrama de transiciones desde el nodo
1. Siempre se puede construir, desde un nodo cualquiera del diagrama de transiciones, este tipo de
201
202 Captulo 6. Lgica Modal Temporal
1
4
2
3 1
4
1 3
2
4
.
.
.
.
.
.
.
.
.
Figura 6.2: Transiciones desde el nodo 1 de la gura 6.1
rbol de alternativas. Observe que debajo del nodo 1 nal vuelve a repetirse toda la estructura de
alternativas que se muestra desde la raz. Algo anlogo ocurre desde cualquier nodo.
6.1.2 Propiedades de un diseo
De una mquina de caf no se espera que atienda peticiones mientras est sirviendo un caf, pero s
que (tras pasar por otros estados intermedios) llegue de nuevo al estado de recepcin de peticiones.
Esta es una propiedad positiva del sistema, que se espera que ocurra innitamente a menudo: en
cualquier tiempo futuro siempre se cona que en otro instante posterior se presentar esa propiedad.
Sobre el rbol de la gura 6.2: en toda rama se debe asegurar que, situados en cualquier nodo, otro
nodo posterior de esa rama tendr esa propiedad. De otras propiedades negativas, como el bloqueo
del sistema, se espera que no ocurran en ningn instante de ninguna de las alternativas de ejecucin:
que para toda rama, en todo estado de esa rama, no ocurra.
Hay multitud de propiedades de un sistema que pueden expresarse, escogiendo los trminos tem-
porales adecuados. De forma abstracta, y apoyndonos en el rbol 6.2 se pueden citar entre otros:
que algo ocurra en el instante siguiente, para alguna de las alternativas de ejecucin (para alguna
de las ramas que se abren desde el nodo considerado)
o que ocurra en el instante posterior, para toda rama
o que ocurra en algn tiempo futuro, en alguna de las ramas que se abren desde el nodo en
cuestin
o que que se garantice que en toda rama en algn tiempo futuro ocurrir (aunque en cada rama
ese futuro vendr ms tarde o ms temprano)
o que en toda rama se garantice que algo ocurre hasta que se produce otra cosa (de nuevo, ms
tarde o ms temprano en cada rama).
6.1.3 Vericacin de las propiedades de un diseo
Cualquier lenguaje formal que pretenda facilitar este tipo de sentencias debe disponer de operadores
temporales adecuados. Si adems ese lenguaje es el de un sistema lgico, debe precisar una semntica
(un signicado) para cada operador.
6.2. CTL: Sintaxis 203
Este documento presenta algunos sistemas lgicos temporales diseados para facilitar el anlisis
de sistemas. Las frmulas se interpretan sobre estrucuturas de Kripke, que resultan ser una descripcin
total o parcial de la funcionalidad del sistema. El sistema cumple la propiedad expresada en la frmula
si esa estructura de Kripke satisface la frmula.
Observe que esta vericacin de propiedades utiliza la satisfaccin de una frmula: dadas una
interpretacin (la estructura de Kripke, el diseo del sistema) y una frmula se trata slo de comprobar
si aqulla satisface sta. No se requiere un anlisis de satisfacibilidad, que supondra recorrer todas
las (quiz innitas) interpretaciones posibles para una frmula. U otros conceptos relacionados con la
satisfacibilidad, como el de consecuencia.
En concreto, a esta tcnica de vericacin se la conoce como comprobacin de modelo (model
checking) y est siendo utilizada con xito para vericar diseos con billones de estados posibles. Una
buena pgina de inicio (en ingls) la facilita Carnegie Mellon
http://www.cs.cmu.edu/ modelcheck/
donde tambin se presenta algn programa vericador, como SMV.
Lgicas temporales para la vericacin Este documento se limita a presentar la lgica denomina-
da CTL (Computation Tree Logic), que permite expresar propiedades sobre todas las posibles ejecu-
ciones del sistema a partir de un cierto estado (gura 6.2). Otros sistemas lgicos, como LTL (Linear
Temporal Logic), se restringen al anlisis de una posible ejecucin, de una rama. Siendo ms precisos,
LTL no es exactamente un fragmento de CTL: hay propiedades que pueden expresarse indistintamente
en ambas lgica, y otras que pueden expresarse en una y no en la otra. Ambas lgica s son un frag-
mento de una propuesta posterior, denominada CTL

. Ms informacin sobre estos sistemas puede


encontrarse en el texto de Huth y Ryan:
Logic in Computer Science: modelling and reasoning about systems; M. Huth y M.
Ryan, (segunda edicin) 2004 Cambridge University Press
Y un estudio ms detallado sobre vericacin en:
Model Checking; E. Clarke, O. Grumberg y D. A. Peled, 2000 MIT Press
6.2 CTL: Sintaxis
Denicin 6.1 La sintaxis de las frmulas CTL se puede expresar inductivamente como:
::= | | p | 1)
) | ) | ) | ) | ) | 2)
AG | AF | AX | 3a)
EG | EF | EX | 3b)
A[U] | 4a)
E[U] 4b)
Aunque la denicin es un poco extensa, basta apreciar que, sobre la sintaxis proposicional, se
proponen algunos nuevos operadores monarios (3) y otros binarios (4).
Simplemente hay que destacar que los nuevos operadores monarios (como ya lo era la negacin
), se escriben con dos smbolos, inseparables. Y que los nuevos operadores binarios (4), como ya
lo eran o , se escriben en una extraa forma mixta: podan haberse insertado ambos entre las
frmulas [AU] o antepuesto a ellas AU[ ].
204 Captulo 6. Lgica Modal Temporal
Ejemplo 6.2 El proceso de construccin, desde las frmulas del caso base, es el usual:
1. p y son frmulas CTL (vase (1)), as como p ) (por (2)) p )). Igualmente,
qr).
2. AGq r) lo es (3), as como EFp )). Y su conjuncin o su disyuncin (2). Tambin
lo es AGEFp )), que tiene la forma AG, donde es una frmula CTL previa.
3. A[pUq] es una frmula CTL correcta, as como cualquier sustitucin de las proposiciones p o q
por cualquier frmula CTL ms compleja (cualquiera de las anteriores). Incluso por frmulas
en cuya composicin hayan ya intervenido estos nuevos operadores binarios:
A[ E[ AGp U EXp ]

1
U AXEFp q)

2
]
Ejercicio 6.3 Construya el rbol sintctico de la frmula previa. Observe que cada nodo puede tener
un hijo o dos a lo sumo: uno, si la conectiva principal de la subfrmula es la negacin o las conectivas
temporales monarias (3a,3b); y dos si la conectiva principal de la subfrmula es alguna de las usadas
en (2, 4a, 4b). Etiquete el nodo con AU o EU, en el caso de las conectivas 4a o 4b.
Nota 1 Convenio de precedencia) La omisin de parntesis produce ambigedad de interpretacin.
Se pueden proponer convenios de precedencia entre las conectivas, que jan la interpretacin sintc-
tica adecuada cuando se duda entre varias.
En este documento, todas las conectivas monarias tendrn la mayor precedencia y las tempo-
rales AG AF AX EG EF EX). Seguidas de la conjuncin y disyuncin; despus, del condicional, y
por ltimo de las binarias temporales AU y EU.
Ejemplo 6.4 Con el convenio anterior, se tiene que:
1. AFp q se interpreta como AFp)) q. Cualquier otra interpretacin sintctica, fuera
de convenio, requiere ser forzada explcitamente por parntesis: AFp q).
2. Como interpretacin de una frmula ms compleja:
AFqr A[pq U pAGq]
AFq) r)

A[p) q) U p) AGq))])

6.3 CTL: semntica
6.3.1 Introduccin informal
Antes de facilitar una semntica precisa, conviene tener un primer acercamiento informal. En primer
lugar, la lgica CTL permite construir (como un fragmento de la misma) frmulas de la lgica pro-
posicional: sin operadores temporales. En estos casos, en cada nodo, la frmula ser o no verdadera
conforme lo sean los tomos (p,q,...) en ese nodo, siguiendo la semntica proposicional. Ya ocurra
sto en las lgicas modales estudiadas.
La aparicin de operadores temporales requiere consultar otros estados, relacionados con el ac-
tual para evaluar el valor de verdad de la frmula en el estado que se considera. Remitimos de nuevo
a la semntica de las lgicas modales previas. En estas lgicas (modales) temporales, los estados
6.3. CTL: semntica 205
que deben consultarse son un subconjunto de los estados accesibles en un futuro. Recuerde que cada
operador temporal consta de dos signos inseparables: primero A E, seguido de X, G, F U. Cada
uno de los dos signos contribuye a perlar la semntica del operador.
As, el primer signo acta como cuanticador sobre las ramas:
(A) para toda rama (desde el nodo evaluado), para toda posible ejecucin del sistema
(E) existe una rama, una posible ejecucin, desde el nodo evaluado
Mientras que el siguiente signo se centra en los estados de una rama, de una posible ejecucin del
sistema:
X (neXt) el siguiente
F (some Future state) existe algn estado futuro
G (Globally) en todo estado futuro
U (Until) existe algn estado futuro donde ocurre ... y hasta el cual ocurre ...
Observe que todos ellos se aplican sobre el conjunto de futuros estados en esa ejecucin en parti-
cular. Ante esto cabe optar por incluir o no el estado actual en ese conjunto de estados. As se hace
en este documento: cuando se pide que algn estado futuro cumpla algo, basta con que lo cumpla
el actual. Y si se pide que todos los estados futuros cumplan algo, no debe incumplirlo el actual:
el futuro incluye el presente. La referencia al siguiente estado (X) requiere evaluar el primer estado
futuro distinto al actual.
Ejemplo 6.5 Anticipamos algunos ejemplos de asignacin semntica, todos ellos sobre el sistema de
la gura 6.1, al que llamaremos modelo M. Todas sus ejecuciones se se pueden visualizar alternati-
vamente sobre el rbol de la gura 6.2, que se poda haber enriquecido con la mencin de qu letras
proposicionales son verdad en cada estado.
M 4 |= EXs La frmula EXs se satisface en el estado 4: existe al menos una ejecucin (la
que comienza pasando al estado 3) donde en el siguiente estado es verdad s. No se satisface en
el estado 1.
M 4 |= AXq r) La frmula AXq r) tambin es verdad en 4: para toda ejecucin
desde ese estado, en su estado siguiente se satisface qr). En la ejecucin que comienza en
3, porque all es verdad r. Y en la que comienza en 1, porque all es verdad tanto q como r.
M 1 |= EFs La frmula EFs, evaluada en 1, requiere que exista al menos una posible ejecu-
cin tal que en algn estado futuro de la misma se cumpla s. (Observe que es una composicin
de cuanticador existencial sobre ejecuciones y existencial sobre estados de la ejecucin). Efec-
tivamente, no toda ejecucin desde 1 tiene esa propiedad, pero s la que pasa por el estado 3.
M 1 |= AFs No se satisface esta frmula en 1: no es verdad que toda ejecucin desde 1
acceda a algn estado futuro donde se satisfaga s. En particular, no en la ejecucin que repite
cclicamente 1 2 4 1. . .
M 1 |= EGq r) Existe efectivamente al menos una ejecucin desde 1 tal que permanen-
temente, en todo estado de esa ejecucin, es verdad q r). En particular, la ejecucin cclica
antes citada: 1 2 4 1. . .
206 Captulo 6. Lgica Modal Temporal
M 1 |= AGq r) No es verdad que en toda ejecucin, en todos sus estados, sea verdad
qr). No en las ejecuciones desde 1 que acceden al estado 3.
M 1 |= A[qUr] En toda ejecucin, desde 1, ocurre (a) que existe (se acaba accediendo) a un
estado donde se satisface r y (b) en todo estado desde 1 inclusive hasta se (sin incluirlo) ocurre
q. No importa si q sigue ocurriendo, o no, en y a partir de ese estado.
M 1 |= E[p q)Us] Existe al menos una ejecucin desde 1 tal que p q) se satisface en
todo estado hasta que se llega a un estado que satisface s. No toda ejecucin desde 1 tiene esta
propiedad: requiere que efectivamente exista en ella ese estado que satisface s.
6.3.2 Denicin de la semntica de CTL
Las frmulas de CTL se interpretarn sobre un modelo M = S L) (una estructura de Kripke),
que se recuerda que consta de: un conjunto S de estados, una relacin entre ellos y un etiquetado
L tal que a cada estado se le asigna el conjunto de letras proposicionales que se satisfacen en el mismo.
Siguiendo, como en todo este documento, la notacin del texto de Huth y Ryan, llegamos a la
siguiente denicin formal de semntica para CTL.
Denicin 6.6 Dados un modelo M y uno de sus estados s, la satisfaccin de una frmula de CTL
en el estado s del modelo M se dene recursivamente como:
M s |= en todo estado.
M s |= en ningn estado.
M s |= p si el estado s se ha etiquetado con p, p Ls)
M s |= si no ocurre que M s |=
M s |= ) si M s |= y M s |=
M s |= ) si M s |= o M s |=
M s |= ) si no M s |= o M s |=
M s |= ) si M s |= si y slo si M s |=
M s |= AX si para todo s

S tal que s s

se cumple M s

|=
M s |= EX si existe un s

S tal que s s

tal que M s |=
M s |= AG si para todo posible camino s
0
s
1
s
2
. . . que comience en s (s
0
= s) se
satisface en todo estado s
k
del camino.
M s |= EG si existe al menos un camino s
0
s
1
s
2
. . . que comience en s (s
0
= s)
donde se satisface en todo estado s
k
del camino.
M s |= AF si en todo posible camino s
0
s
1
s
2
. . . que comience en s (s
0
= s)
existe al menos un estado donde se satisface .
M s |= EF si existe al menos un camino s
0
s
1
s
2
. . . que comience en s (s
0
= s)
donde existe al menos un estado que satisface .
6.3. CTL: semntica 207
M s |= A[U] si en todo camino s
0
s
1
s
2
. . . que comience en s (s
0
= s) existe
un estado s
i
tal que M s
i
|= y, para todo estado estrictamente anterior s
j
, j < i, se cumple
M s
j
|=.
M s |= E[U] si existe al menos un camino s
0
s
1
s
2
. . . que comience en s (s
0
=s)
donde exista un estado s
i
tal que M s
i
|= y, para todo estado estrictamente anterior s
j
, j < i,
se cumple M s
j
|=.
6.3.3 Expresin de propiedades en CTL
Sobre CTL (as como sobre otras lgicas temporales) pueden expresarse propiedades del diseo de un
sistema. Una recopilacin de estos patrones se encuentra en la pgina:
http://patters.projects.cis.ksu.edu/
Revisamos el posible uso algunas frmulas CTL sencillas. Para ello, suponemos que se estn
evaluando sobre un determinado modelo M en cierto estado s:
[AG] sta es una frmula muy exigente. Para que se satisfaga en el estado s debe ocurrir:
(Sobre rbol desplegado del modelo, gura 6.2): en toda rama y en todo estado en cada rama
debe satisfacerse ; es decir, en todo estado del subrbol situado debajo de s.
(Sobre modelo, gura 6.1): en todo estado de toda posible ejecucin desde s se cumple .
Se utiliza para expresar propiedades permanentes del sistema que se desean (AGp) o que se quieren
evitar AGq). Complicando un poco la frmula se pueden obtener patrones como AGq AGp):
de todo el subrbol del estado s, donde se evale, se espera que si algn estado s

tiene la propiedad
q, entonces, a partir de l no ocurra p (en todo estado de este subrbol de s

no ocurra p).
[AF] Para que se satisfaga en el estado s debe ocurrir:
(Sobre rbol desplegado del modelo, gura 6.2): que de cualquier rama que se escoja (a partir
de s), antes o despus (segn la rama) aparecer un estado que satisface .
(Sobre modelo, gura 6.1): en toda ejecucin del sistema a partir de s se acaba llegando a un
estado donde se cumple . Esto ocurre trivialmente si el mismo estado s ya satisface (recuerde
que en nuestra formulacin, el futuro incluye el presente).
Es usual que un sistema, a partir de cierto estado, puede evolucionar de muy diversas formas. Un
patrn como p AFq reclama que, si p se ha requerido en el estado actual, no deje de vericarse q
en un futuro estado (antes o despus, segn la ejecucin que tome el sistema).
Ejercicio 6.7 Sitese en el contexto de un sistema reactivo, como un sistema operativo o una mquina
de caf. Hay una propiedad de inters p
+
que se desea que aparezca ilimitadamente a menudo:
ocasionalmente sabiendo que siempre habr una prxima ocasin. Y otra propiedad negativa p

que
se desea garantizar que, evolucione como evolucione el sistema, acaba denitivamente dejando de
ocurrir.
Sustituya adecuadamente por p
+
o p

en las siguientes frmulas, para expresar los enunciados


anteriores sobre estas propiedades.
AGAF
AFAG
208 Captulo 6. Lgica Modal Temporal
[EG EF] La primera frmula arma que, si acertamos con la ejecucin adecuada, todos sus
estados tendrn cierta propiedad. Y la segunda que, si acertamos con la ejecucin adecuada, algn
estado acabar teniendo cierta propiedad. Estos patrones tal cual, sin que formen parte de otros
ms complejos, tienen poco inters como garanta de propiedades positivas del sistema: quiz no se
produzcan en toda ejecucin.
Ms inters tienen para sealar la existencia de estados peligrosos: EF bloqueo. O para armar
la ausencia de tales estados, M s |= EF bloqueo: a partir de s no existe ejecucin tal que se llegue
a estado con bloqueo. Observe que esta misma propiedad podra haberse expresado como M s |=
AGbloqueo.
Patrones que jan precedencia entre eventos El uso adecuado de condicionales (antes citado) jun-
to a los operadores que incluyen X o U permiten modelar el orden relativo de aparicin de propiedades
esperadas.
Conviene aqu revisar la semntica del operador A E)[pUq]: se comporta como un existencial
sobre estados, requiere que acabe existiendo un estado s

donde se satisfaga q (y que ocurra p hasta


entonces). As:
1. si q ya ocurre en el estado s actual, se satisfacen AU y EU: ocurre p en todos los estados donde
estaba obligada a ocurrir (en cero estados, en un conjunto vaco de estados).
2. si q no ocurre en la rama analizada a partir de s, [pUq] no se satisface, por mucho que ilimita-
damente todos los estados desde s satisfagan p
3. p est obligada a ocurrir hasta el estado estrictamente anterior al de ocurrencia de q; que ocurra
o no p en s

o despus es irrelevante, no inuye en la satisfaccin de [pUq]; en todo caso, no se


descarta: [pUq] no arma (ni niega) que p deje de ocurrir cuando q aparezca.
Es usual denir un operador menos exigente, denominado W (Weak Until), que se comporta
como U salvo por la restriccin jada en el anterior punto 2: pWq se satisface incluso aunque q
no llegue a ocurrir (siempre que siga vericndose p). Los patrones recopilados en la pgina Web
recomendada utilizan W en lugar de U.
6.3.4 Equivalencias bsicas
Ya se ha mencionado que EF AG. Si se contempla el primer signo de un operador temporal
como cuanticador sobre ramas (ejecuciones) y el segundo como cuanticador sobre estados de esa
rama, se llega a:
AF EG
EF AG
AX EX
Es decir, muy coloquialmente: donde quiera que aparezca en una frmula CTL el operador AG
es posible sustituir esta cadena por EF y obtener as una frmula equivalente. O sustituir AX por
EX, es decir, cada operador por su forma dual. Adicionalmente:
AF A[U]
EF E[U]
Como es posible reescribir unos operadores temporales en trminos de otros, podra utilizarse un
menor nmero de ellos. En lgica proposicional ya se vi cmo algunos subconjuntos de conectivas
eran sucientes para expresar cualquier frmula boolena: p. ej. { }, { }. En la eleccin de un
conjunto adecuado de conectivas CTL hay que tener presente el siguiente teorema:
6.4. Vericacin CTL: un primer algoritmo 209
Teorema 6.8 A. Martin) Un conjunto de conectivas temporales de CTL es adecuado si y slo si
contiene:
al menos una entre {AX EX} y
al menos una bien entre {EG AF AU}, o bien EU.
6.4 Vericacin CTL: un primer algoritmo
El objetivo de este tema es proponer un algoritmo para comprobar la satisfaccin de una frmula
CTL sobre un modelo M. En su aplicacin prctica, el modelo ser un diseo de un sistema real y la
frmula expresar una propiedad de inters sobre el mismo.
En el plano formal previo hay simplemente que garantizar que toda frmula CTL podr evaluarse
sobre cualquier modelo M nito. Como ejemplo, basta considerar la frmula de la gura 6.3 evaluada
sobre un modelo como el de la gura 6.1.
EU

AF

EX

Figura 6.3: E[ AFpq) U EXp) ]


6.4.1 Frmulas sin operadores temporales
Inicialmente, del modelo la nica informacin de la que se dispone es el etiquetado Ls) de las pro-
posiciones de cada estado s. De la frmula se puede requerir su descomposicin sintctica, su rbol
sintctico.
A partir de ah, se pueden recorrer uno a uno los estados y marcar explcitamente con la frmula
p) aquellos estados que no estuvieran inicialmente etiquetados con p. Y marcar explcitamente con
la frmula p q) aqullos estados previamente marcados tanto con p como con q. Anlogamente
para el resto de las conectivas proposicionales.
Si todas las subfrmulas fueran proposicionales (sin operadores temporales) es fcil denir un
proceso iterativo de marcado explcito de frmulas cada vez ms complejas en cada estado , depen-
diendo de las marcas que existan previamente. Este proceso considera las frmulas segn aparecen,
de abajo arriba, en el rbol sintctico de la frmula global evaluada.
Al nal del proceso, algunos estados presentarn la marca con la frmula global evaluada y otros
no (quiz slo satisfagan alguna de las subfrmulas de aqulla). Recuerde que la satisfaccin de una
frmula es local: en unos estados del modelo puede ocurrir, mientras que en otros no.
210 Captulo 6. Lgica Modal Temporal
Cuidado 1 Este proceso se lleva grcamente a cabo sobre el modelo del sistema (como el de la
gura 6.1), y computacionalmente sobre su codicacin. No se trabaja en ningn momento sobre una
representacin como la del rbol 6.2, que se present para jar ideas.
6.4.2 Frmulas con operadores temporales
Cuando aparecen operadores temporales el proceso se complica: las marcas que conrman que una
frmula se satisface en cada estado no se calculan exclusivamente a partir de las marcas previas de
ese estado. Tambin han de considerarse las de otros estados relacionados.
Frmulas del tipo AF
[Caso base] Si un estado presenta ya la marca , puede asegurarse sin ms que tambin satisfar
AF: puesto que se satisface ya en el presente de cualquier ejecucin que parta de ese estado y nuestra
denicin de estados futuros inclua el estado inicial.
[Propagacin] Ahora bien, (es suciente pero) no es necesario que un estado satisfaga para sa-
tisfacer AF: basta que en toda ejecucin desde ese estado se llegue a otro que s satisface . Este
hecho se calcula por propagacin, hacia atrs, de esta informacin.
1
4 3
paso n
AF
paso n + 1
4 3
1
AF
AF AF
AF
Figura 6.4: Propagacin de la marca AF
hiptesis 1: los estados 1 y 3 satisfacen AF
hiptesis 2: los estados 1 y 3 son todos los sucesores inmediatos del estado 4
conclusin: el estado 4 tambin satisface AF
El caso base facilita las primeras marcas AF y se entra en un proceso iterativo que propaga estas
marcas hacia otros nodos si sus sucesores cumplen las hiptesis anteriores. Se naliza el bucle tras la
primera iteracin que no produce cambios.
Nota 2 Un sencillo ajuste de la hiptesis 2 permite disear un algoritmo anlogo para EF: un estado
se marca como EF si alguno de sus sucesores inmediatos satisface EF.
Ejercicio 6.9 Sobre el modelo de la gura 6.1, ejecute manualmente este algoritmo para calcular qu
estados satisfacen las siguientes frmulas: AFr, EFs, AFs.
6.4. Vericacin CTL: un primer algoritmo 211
Frmulas del tipo AX
Bastar recorrer una nica vez todos los estados y etiquetar con AX cada estado tal que todos sus
sucesores inmediatos tengan marca . O requerirlo slo de uno de sus sucesores si se quiere etiquetar
EX.
Ejercicio 6.10 Ejecute este algoritmo sobre la gura 6.1 para calcular qu estados satisfacen AXp,
AXq, EXp, EXq, AXpq).
Frmulas del tipo AG
[Caso base] Se marcan primero todos los estados del modelo con AG. Y se elimina esta marca en
aqullos donde no se cumpla .
[Propagacin] Se entra en un proceso iterativo donde, en cada iteracin, se elimina esta marca de
todo estado tal que alguno de sus sucesores inmediatos carezca de la marca AG. La iteracin naliza
cuando ya no hay cambios de un paso a otro.
Se puede adaptar este algoritmo al clculo de la marca EG: en el proceso de propagacin basta
eliminar la marca de los estados tales que ninguno de sus sucesores inmediatos la tenga previamente.
Ejercicio 6.11 Sobre el modelo de la gura 6.1 aplique este algoritmo para calcular qu estados
satisfacen EGp, AGpq).
Frmulas del tipo A[U]
[Caso base] Se marcan inicialmente como A[U] todos los estados que tenan previamente marca
.
[Propagacin] Se marca con A[U] todo estado tal que:
1. tuviera ya una marca
2. y todos sus sucesores inmediatos tengan marca A[U]
La iteracin naliza cuando ya no hay cambios de un paso al otro.
Ejercicio 6.12 Sobre el modelo de la gura 6.1, ejecute manualmente este algoritmo para calcular
qu estados satisfacen A[qUp].
Si lo que se quiere calcular es el conjunto de estados que satisfacen EU], basta hacer unas
ligeras modicaciones sobre el procedimiento previo:
[Caso base] Se marcan inicialmente como E[U] todos los estados que tenan previamente marca
.
[Propagacin] Se marca con E[U] todo estado tal que:
1. tuviera ya una marca
2. y alguno de sus sucesores inmediatos tengan marca E[U]
La iteracin naliza cuando ya no hay cambios de un paso al otro.
212 Captulo 6. Lgica Modal Temporal
6.4.3 Pseudocdigo
El pseudocdigo del algoritmo 1 utiliza las consideraciones anteriores para construir un proceso
ESTADOS M), que acepta una frmula CTL y un modelo M; y devuelve el conjunto de estados
del modelo que satisfacen esa frmula.
Simplicable Puede ofrecerse una versin reducida, considerando menos casos, si se reescriben
algunas de las conectivas proposicionales y temporales en funcin de otras. Recuerde que, en lgica
proposicional, cualquier frmula era reescribible equivalentemente a otra con, p. ej., slo negaciones
y conjunciones. En este caso, la frmula de entrada tiene que haberse reescrito sobre este conjunto
adecuado de conectivas.
Proceso recursivo Es un algoritmo que procesa recursivamente la frmula, desde arriba abajo de su
rbol sintctico, haciendo las llamadas oportunas a las subrutinas que van procesando las subfrmulas.
Estas subrutinas, para las conectivas proposicionales, se resumen en una nueva llamada al programa
ESTADOS. Y para procesar las subfrmulas temporales se llama a subrutinas especcas para cada
una (basadas en los algoritmos de etiquetado y propagacin antes citados).
Subrutinas especcas Para facilitar el pseudocdigo de alguna de las subrutinas temporales espe-
ccas conviene utilizar una notacin que se encuentra en el texto de Huth y Ryan citado. Si Y es un
conjunto cualquiera de nodos de un modelo:
pre

Y) designar el conjunto de estados con algn sucesor inmediato entre los estados de Y
pre

Y) designar el conjunto de estados con todos sus sucesores inmediatos entre los estados
de Y
Observe que Y se utilizar como conjunto a partir del cual se propaga hacia atrs alguna marca
hacia nodos s: todos los elementos de Y tendrn esa marca y se exigir que todos los sucesores
inmediatos de s o alguno se encuentren en Y.
Los algoritmos 2, 3 y 4 son subrutinas sucientes (junto a las proposicionales) para desarrollar
el algoritmo ESTADOS M). Toda frmula CTL tiene una expresin equivalente que slo utiliza
operadores AF EU y EX (aparte de un conjunto adecuado de conectivas proposicionales)
6.5 Consideraciones nales
El caracter introductorio de este documento no aconseja presentar ms contenido. Atrs se ha quedado
la exposicin de otros sistemas temporales como LTL o CTL*, o la exposicin de vericadores que
los utilizan (SPIN,NuSMV,...) No obstante, queda un punto importante por resaltar: el fenmeno de
la explosin de estados, que hace del problema de la vericacin un problema difcil.
El algoritmo que se ha esbozado, con diversas mejoras, tiene complejidad lineal respecto al n-
mero de estados. Sin embargo, el nmero de estados del modelo crece exponencialmente respecto a
las propiedades que se pretenden evaluar del sistema.
Si en la descripcin funcional de un sistema hay 3 propiedades de inters (p q r), tpicamente
se proponen estados sucientes para modelar todas sus ausencias / presencias: pqr, p qr, p q r, ... Es
decir 2
3
estados. Aunque el modelo del sistema puede obviar alguno de estos estados, esta tendencia
exponencial persiste.
El texto recomendado de Clarke (y colaboradores) es una excelente recopilacin de todas las estra-
tegias de simplicacin del problema. Algunas de ellas sucientemente ecaces como para manejar
6.5. Consideraciones nales 213
Algorithm 1 ESTADOS M)
Require: Una frmula de CTL y un modelo M ={S L}
Ensure: El conjunto de estados de M que satisfacen
if es then
2: return: 0
else if es then
4: return: S
else if es atmica then
6: return: {s S | Ls)}
else if es
1
then
8: return: SESTADOS
1
M)
else if es
1

2
) then
10: return: ESTADOS
1
M) ESTADOS
2
M)
else if es
1

2
) then
12: return: ESTADOS
1
M) ESTADOS
2
M)
else if es
1

2
) then
14: return: ESTADOS
1

2
) M)
else if es
1

2
) then
16: return: ESTADOS
1

2
)
2

1
)) M)
else if es AG then
18: return: ESTADOS
AG
M)
else if es EG then
20: return: ESTADOS
EG
M)
else if es AF then
22: return: ESTADOS
AF
M)
else if es EF then
24: return: ESTADOS
EF
M)
else if es AX then
26: return: ESTADOS
AX
M)
else if es EX then
28: return: ESTADOS
EX
M)
else if es A[U] then
30: return: ESTADOS
AU
M)
else if es E[U] then
32: return: ESTADOS
EU
M)
else
34: return: No es una frmula CTL
end if
un elevadsimo nmero de estados, es decir, sucientes para abordar la vericacin de complejos
sistemas industriales.
En el texto de Huth y Ryan, que ha sido referencia de este documento, hay una buena exposicin
de una de estas estrategias: el uso de estructuras de datos ecientes, en particular OBDDs (Ordered
Binary Decision Diagrams), diagramas binarios de decisin ordenados.
214 Captulo 6. Lgica Modal Temporal
Algorithm 2 ESTADOS
EX
M)
Require: Una frmula de CTL y un modelo M ={S L}
Ensure: El conjunto de estados de M que satisfacen EX
local var X,Y
2: X := ESTADOS M)
Y := pre

X)
4: return: Y
Algorithm 3 ESTADOS
AF
M)
Require: Una frmula de CTL y un modelo M ={S L}
Ensure: El conjunto de estados de M que satisfacen AF
local var X,Y
2: X := S
Y := ESTADOS M)
4: repeat
X :=Y
6: Y =Y pre

Y)
until X =Y
8: return: Y
Algorithm 4 ESTADOS
EU
M)
Require: Dos frmulas, y , de CTL y un modelo M ={S L}
Ensure: El conjunto de estados de M que satisfacen E[U]
local var W,X,Y
2: W := ESTADOS M)
X := S
4: Y := ESTADOS M)
repeat
6: X :=Y
Y =Y W pre

Y))
8: until X =Y
return: Y
Bibliografa
[Abramsky et al., 1992-2001] S. Abramsky, D.M. Gabbay y T.S.E. Maibaum. Handbook of Logic
in Computer Science. Oxford University Press, Oxford, 1992 (primer volumen) - 2001 (quinto
volumen).
[Apt, 1996] K.R. Apt. From Logic Programming to Prolog. Prentice-Hall, Londres, 1996.
[Apt y Olderog, 1997] K.R. Apt y E.R. Olderog. Verication of Sequential and Concurrent Programs.
Springer-Verlag, Berln. 2
a
edicin.
[Badesa et al., 1998] . Badesa, I. Jan y R. Jansana. Elementos de lgica formal. Ariel, 1998.
[Ben-Ari, 1990] M. Ben-Ari. Principles of Concurrent and Distributed Programming. Prentice-Hall
International, Londres, 1990.
[Ben-Ari, 2001] M. Ben-Ari. Mathematical Logic for Computer Science. Springer-Verlag, Londres,
2001.
[Blackburn et al., 2001] P. Blackburn, M. de Rijke e Y. Venema. Modal Logic. Cambridge University
Press, Cambridge, RU, 2001.
[Broda et al., 1994] K. Broda, S. Eisenbach, H. Khoshnevisan y S. Vickers. Reasoned Programming.
Prentice Hall International, 1994.
[Burris, 1998] S. N. Burris. Logic for Mathematics and Computer Science. Prentice Hall, 1998.
[Clarke et al., 1994] E. Clarke, O. Grumberg y D. Long. Verication Tools for Finite-State Con-
current Systems. En: J.W. de Bakker, W.P. de Roever. A Decade of Concurrency: Reections
and Perspectives. Springer-Verlag, Berln, 1994.
[Clarke et al., 2000] E.M. Clarke, O. Grumberg y D. Peled. Model Checking. MIT Press, Cambridge,
MA, 2000.
[Clocksin et al., 1994] W. Clocksin y C.S. Mellish. Programming in Prolog. Springer, 1994. 4
a
edi-
cin.
[Chagrov y Zakharyaschev, 1997] A. Chagrov y M. Zakharyaschev. Modal Logic. Oxford University
Press, Oxford, 1997.
[Cuena, 1985] J. Cuena. Lgica Informtica. Alianza, 1985.
[Dalen, 1997] D. van Dalen. Logic and Structure Springer, 1997. 3
a
edicin.
[Deao, 1993] A. Deao. Introduccin a la lgica formal. Alianza Universidad, 1993. Dcima reim-
presin.
215
216 Bibliografa
[Doets, 1994] K. Doets, From Logic to Logic Programming. MIT Press, Cambridge, MA, 1994.
[Ebbinghaus et al., 1996] H.-D. Ebbinghaus, J. Flum y W. Thomas. Mathematical Logic. Springer,
1996. 2
a
edicin.
[Fagin et al., 1995] R. Fagin, J.Y. Halpern, Y. Moses y M.Y. Vardi. Reasoning about Knowledge. MIT
Press, Cambridge, MA, 1995.
[Fitting, 1996] M. Fitting. First-Order Logic and Automated TheoremProving. Springer-Verlag, Nue-
va York, 1996. 2
a
edicin.
[Francez, 1992] N. Francez. Program Verication. Addison-Wesley, Reading, MA, 1992.
[Gabbay et al., 1993] D.M. Gabbay, C.J. Hogger y J.A. Robinson (eds). Handbook of Logic in Arti-
cial Intelligence and Logic Programming. Vol. 1: Logic Foundations. Oxford University Press,
Oxford, 1993.
[Gabbay et al., 1994a] D.M. Gabbay, I. Hodkinson y M. Reynolds. Temporal Logic: Mathematical
Foundations and Computational Aspects. Oxford University Press, Oxford, 1994.
[Gabbay et al., 1994b] D.M. Gabbay, C.J. Hogger y J.A. Robinson (eds). Handbook of Logic in Arti-
cial Intelligence and Logic Programming. Vol. 2: Deduction Methodologies. Oxford University
Press, Oxford, 1994.
[Gabbay et al., 1994c] D.M. Gabbay, C.J. Hogger y J.A. Robinson (eds). Handbook of Logic in Arti-
cial Intelligence and Logic Programming. Vol. 3: Nonmonotonic Reasoning. Oxford University
Press, Oxford, 1994.
[Gabbay et al., 1995] D.M. Gabbay, C.J. Hogger y J.A. Robinson (eds). Handbook of Logic in Ar-
ticial Intelligence and Logic Programming. Vol. 4: Epistemic and Temporal Logics. Oxford
University Press, Oxford, 1995.
[Gabbay et al., 1998] D.M. Gabbay, C.J. Hogger y J.A. Robinson (eds). Handbook of Logic in Arti-
cial Intelligence and Logic Programming. Vol. 5: Logic Programming. Oxford University Press,
Oxford, 1998.
[Gabbay et al., 2000] D.M. Gabbay, M.A. Reynolds y I. Hodkinson. Temporal Logic: Mathematical
Foundations and Computational Aspects. Vol. 2. Oxford University Press, Oxford, 2000.
[Garrido, 1995] M. Garrido. Lgica Simblica. Tecnos, 1995. 3
a
edicin.
[Hoare, 1969] C.A.R. Hoare. An axiomatic basis for computer programming. Communications of
the ACM, 12 (1969) 576-580.
[Hughes y Cresswell, 1968] G.E. Hughes y M.J. Cresswell. An Introduction to Modal Logic. Met-
huen, Londres, 1968.
[Hughes y Cresswell, 1996] G.E. Hughes y M.J. Cresswell. A NewIntroduction to Modal Logic. Rou-
tledge, Londres, 1996.
[Huth y Ryan, 2000] M.R.A. Huth y M.D. Ryan. Logic in Computer Science. Modelling and Reaso-
ning about Systems. Cambridge University Press, Cambridge, RU, 2000.
Bibliografa 217
[Klir y Yuan, 1995] G.J. Klir y B. Yuan. Fuzzy Sets and Fuzzy Logic. Prentice-Hall, Englewood
Cliffs, NJ, 1995.
[Kowalski, 1986] R. Kowalski. Lgica, programacin e inteligencia articial. Daz de Santos, 1986.
Traducida de Logic for Problem Solving. Elsevier, 1979.
[Lloyd, 1987] J. Lloyd. Foundations of Logic Programming. Addison-Wesley, Reading, MA, 1987.
2
a
edicin.
[Manna y Pnueli, 1992] Z. Manna y A. Pnueli. The Temporal Logic of Reactive and Concurrent Sys-
tems. Vol. I: Specication. Springer-Verlar, Nueva York, 1992.
[Manna y Pnueli, 1995] Z. Manna y A. Pnueli. The Temporal Logic of Reactive and Concurrent Sys-
tems. Vol. II: Safety. Springer-Verlar, Nueva York, 1995.
[McMillan, 1993] K. McMillan. Symbolic Model Checking. Kluwer, Dordrecht, Holanda, 1993.
[Mendelson, 1997] E. Mendelson. Introduction to Mathematical Logic. Chapman and Hall, Londres,
1997. 4
a
edicin.
[Meyer y van der Hoek, 1995] J.J. Meyer y W. van der Hoek. Epistemic Logic for Computer Science
and Articial Intelligence. Cambridge University Press, Cambridge, RU, 1995.
[Pnueli, 1981] A. Pnueli. The temporal logic of concurrent programs. Theoretical Computer Scien-
ce, 13 (1981) 45-60.
[Pnueli y Shahar, 1996] A. Pnueli y E. Shahar. A platform for combining deductive with algorithmic
verication. Proceedings of the Eighth International Conference on Computer Aided Verica-
tion (CAV96). Springer-Verlag, Berln, 1996.
[Popkorn, 1994] S. Popkorn. First Steps in Modal Logic. Cambridge University Press, Cambridge,
1994.
[Smullyan, 1995] R.M. Smullyan. First-Order Logic. Dover, Nueva York, 1995. La primera edicin
de esta obra fue publicada por Springer Verlag, Nueva York, 1968.
[Vila, 1994] L. Vila. A survey on temporal reasoning in articial intelligence. AI Communications,
7 (1994) 4-28.

Vous aimerez peut-être aussi