Académique Documents
Professionnel Documents
Culture Documents
E.T.S.I. Informtica
UNED
2003
Presentacin
Estos apuntes son el embrin de un futuro texto sobre el papel de la lgica en la computacin. Han
surgido, en principio, como material de estudio de la asignatura Lgica Computacional que los autores
imparten en cuarto curso de Ingeniera Informtica en la UNED.
Quedan an por desarrollar algunos contenidos. En particular, los que se refieren a la implementacin de los sistemas de primer orden, as como un breve recorrido por su uso en computacin e
inteligencia artificial. El captulo dedicado a las lgicas modales todava no hace honor a la enorme
explosin terica y aplicada de este tipo de sistemas en los ltimos aos. Por ltimo, obviamente,
el captulo sobre lgica temporal debe ampliarse para recoger, al menos, las lgicas temporales de la
computacin (tales como CT L y sus subsistemas) y su empleo en la verificacin de sistemas reactivos
concurrentes.
Los captulos 1-2 y 5-6 estn siendo 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 Artificial 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 amigable sin renunciar al rigor: hasta qu punto facilitar demostraciones formales (y dnde situarlas), cmo
reubicar ejemplos y ejercicios para no entorpecer la exposicin, etc.
La direccin de correo logica4@dia.uned.es est a su disposicin para estas comunicaciones,
as como la pgina www.ia.uned.asignaturas/logica4 donde podr consultar la (inevitable) fe de
erratas y el desarrollo de estas notas.
Los autores
UNED, Madrid, 1 de octubre de 2003
II
ndice general
Introduccin
Objetivos y contenidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Motivacin para los alumnos de Ingeniera Informtica . . . . . . . . . . . . . . . . . . .
Bibliografa recomendada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
2
3
1 LGICA DE PROPOSICIONES
Resumen . . . . . . . . . . . . . . . . . . . . . . . . .
Objetivos . . . . . . . . . . . . . . . . . . . . . . . .
Metodologa . . . . . . . . . . . . . . . . . . . . . . .
1.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . .
1.1.1 El lenguaje de la Lgica de Proposiciones
1.1.2 Sobre la estructura inductiva del lenguaje
1.1.3 Derivacin de conceptos sintcticos . . .
1.1.4 Eliminacin de parntesis . . . . . . . .
1.2 Semntica . . . . . . . . . . . . . . . . . . . . .
1.2.1 Introduccin . . . . . . . . . . . . . . .
1.2.2 Valores de verdad de frmulas atmicas .
1.2.3 Semntica de las conectivas . . . . . . .
1.2.4 Valores de verdad de frmulas complejas
1.2.5 Tablas de verdad . . . . . . . . . . . . .
1.2.6 Tautologas y contradicciones . . . . . .
1.3 Conceptos semnticos bsicos . . . . . . . . . .
1.3.1 Satisfacibilidad . . . . . . . . . . . . . .
1.3.2 Validez . . . . . . . . . . . . . . . . . .
1.3.3 Consecuencia . . . . . . . . . . . . . . .
1.3.4 Equivalencia . . . . . . . . . . . . . . .
1.4 Sistemas deductivos . . . . . . . . . . . . . . . .
1.4.1 Deduccin natural . . . . . . . . . . . .
1.4.2 Resolucin . . . . . . . . . . . . . . . .
1.4.3 Tablas semnticas . . . . . . . . . . . . .
Bibliografa complementaria . . . . . . . . . . . . . .
Actividades y evaluacin . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
7
8
8
9
12
15
19
20
20
22
22
24
25
26
27
27
29
30
36
42
43
51
57
61
61
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
63
63
63
64
64
64
67
68
69
70
72
77
77
79
80
80
81
87
88
88
90
93
94
94
95
97
98
101
101
104
105
107
111
113
113
115
3 PROGRAMACIN LGICA
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1 Cmo interpretar una frmula lgica como un programa . . . . . .
3.1.1 Declaracin de programa versus algoritmo de solucin . . .
3.1.2 La resolucin como algoritmo para la solucin de problemas
3.1.3 Programacin lgica versus programacin algortmica . . .
3.2 Formalismo lgico para la representacin de problemas . . . . . . .
117
117
117
117
118
118
121
123
125
IV
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.3
3.4
Resolucin SLD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
El lenguaje PROLOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Definicin de predicados recursivos. Reglas de computacin y bsqueda .
3.4.2 Usos procedimentales del PROLOG . . . . . . . . . . . . . . . . . . . .
3.4.3 Ventajas de la programacin en PROLOG. Principales aplicaciones. . . .
Bibliografa complementaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Actividades y evaluacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 VERIFICACIN DE PROGRAMAS SECUENCIALES
Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . .
Metodologa . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1 Introduccin . . . . . . . . . . . . . . . . . . . . . . .
4.2 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1 Un micro-lenguaje de programacin . . . . . .
4.2.2 Especificacin de estados . . . . . . . . . . . .
4.2.3 Ternas de Hoare . . . . . . . . . . . . . . . .
4.2.4 Variables de programa y variables lgicas . . .
4.3 Semntica de los programas . . . . . . . . . . . . . .
4.3.1 Correccin total . . . . . . . . . . . . . . . . .
4.3.2 Correccin parcial . . . . . . . . . . . . . . .
4.4 El sistema deductivo de Hoare . . . . . . . . . . . . .
4.4.1 Regla de asignacin . . . . . . . . . . . . . .
4.4.2 Regla del condicional . . . . . . . . . . . . . .
4.4.3 Regla del condicional modificada . . . . . . .
4.4.4 Regla del bucle . . . . . . . . . . . . . . . . .
4.4.5 Regla de composicin . . . . . . . . . . . . .
4.4.6 Regla de encadenamiento . . . . . . . . . . .
4.5 Verificacin parcial de programas . . . . . . . . . . .
4.5.1 Composicin y encadenamiento . . . . . . . .
4.5.2 Tratamiento de las asignaciones . . . . . . . .
4.5.3 Tratamiento de las instrucciones condicionales
4.5.4 Tratamiento de los bucles . . . . . . . . . . . .
4.6 Verificacin total de programas . . . . . . . . . . . . .
4.7 Comentarios adicionales . . . . . . . . . . . . . . . .
4.7.1 Consistencia y completitud . . . . . . . . . . .
4.7.2 Otras cuestiones . . . . . . . . . . . . . . . .
Bibliografa complementaria . . . . . . . . . . . . . . . . .
Actividades y evaluacin . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
127
130
130
135
142
144
145
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
147
147
147
147
147
148
148
149
149
150
151
151
152
153
153
154
155
156
157
158
158
158
159
160
162
164
165
165
166
166
166
167
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
169
169
169
170
170
5.1.1 Estructuras . . . . . . . . . . . . .
5.1.2 Frmulas . . . . . . . . . . . . . .
5.1.3 Modelos adecuados . . . . . . . . .
5.2 Estructuras relacionales . . . . . . . . . . .
5.2.1 Sistemas de transiciones etiquetadas
5.2.2 Propiedades de una relacin binaria
5.2.3 Cierres . . . . . . . . . . . . . . .
5.3 Lgica monomodal . . . . . . . . . . . . .
5.3.1 Lgica modal bsica . . . . . . . .
5.3.2 Teora de la correspondencia . . . .
5.3.3 Lgicas normales . . . . . . . . . .
5.4 Lgicas polimodales . . . . . . . . . . . .
5.4.1 Sintaxis . . . . . . . . . . . . . . .
5.4.2 Semantica . . . . . . . . . . . . . .
5.4.3 Lgica temporal bsica . . . . . . .
5.4.4 Lgica epistmica . . . . . . . . .
Bibliografa complementaria . . . . . . . . . . .
Actividades y evaluacin . . . . . . . . . . . . .
6 LGICA MODAL TEMPORAL
Resumen . . . . . . . . . . . . . . . . . . .
Objetivos . . . . . . . . . . . . . . . . . .
Metodologa . . . . . . . . . . . . . . . . .
6.1 En Lgica de Primer Orden . . . . . .
6.2 En Lgica modal bsica . . . . . . . .
6.3 Lgica temporal bimodal . . . . . . .
6.4 Ms operadores temporales . . . . . .
6.5 Lgica temporal de las computaciones
6.6 Ampliacin y lecturas . . . . . . . . .
Bibliografa complementaria . . . . . . . .
Actividades y evaluacin . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Bibliografa
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
170
171
172
173
173
174
176
177
177
193
195
197
197
198
199
201
202
202
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
203
203
203
203
204
205
206
207
208
209
209
209
210
VI
ndice de figuras
1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
1.12
1.13
1.14
1.15
1.16
1.17
1.18
1.19
1.20
1.21
1.22
1.23
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 66
. 69
. 71
. 81
. 84
. 90
. 95
. 96
. 96
. 100
. 100
3.1
3.2
3.3
3.4
3.5
3.6
5.1
. . . .
. . . .
. . . .
un in. . . .
. . . .
. . . .
1
10
12
15
16
17
19
25
44
44
46
47
47
48
48
49
49
50
55
55
56
58
59
60
130
132
133
134
134
140
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
6.1
6.2
VIII
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
171
174
179
182
182
183
186
198
ndice de tablas
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
1.12
1.13
1.14
1.15
1.16
1.17
1.18
1.19
1.20
Alfabeto griego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23 asignaciones distintas sobre 3 letras proposicionales . . . . . . . . . .
Semntica de las conectivas binarias . . . . . . . . . . . . . . . . . . . .
Tabla de verdad de ((p q) ()) . . . . . . . . . . . . . . . . . . . .
Tabla de verdad de ((p q) (p)) . . . . . . . . . . . . . . . . . . . .
Tabla de verdad, compacta, de ((p q) (p)) . . . . . . . . . . . . . .
Una frmula insatisfacible y dos satisfacibles . . . . . . . . . . . . . . .
El conjunto = {p (q r) , (p q) r , q (r p)} es satisfacible . .
El conjunto = {(p (q r) , (p q) , (r p)} es insatisfacible . . . .
Consecuencia. {(p q) , (p r)} |= (q r) . . . . . . . . . . . . . . . .
Consecuencia. {p r , (p q)} |= (p q) . . . . . . . . . . . . . . .
Si {1 , . . . , n } |= entonces 1 . . . n es tautologa . . . . . . .
Si {1 , . . . , n } |= entonces 1 . . . n es insatisfacible . . . . .
Si 1 . . . n insatisfacible entonces {1 , . . . , j1 , j+1 , . . . , n } |= j
Algunas frmulas de dos variables, agrupadas por clases de equivalencia .
Todas las clases de equivalencia sobre frmulas con dos variables . . . .
Equivalencias bsicas . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Forma normal disyuntiva de una frmula . . . . . . . . . . . . . . . . . .
Formas normales conjuntivas y disyuntivas . . . . . . . . . . . . . . . .
Reglas de expansin de un tableau . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.1
2.2
2.3
2.4
2.5
2.6
2.7
Relaciones y funciones . . . . . . . . . . . . . . . . . . . .
Dos relaciones sobre el mismo universo . . . . . . . . . . .
Notacin uniforme, conectivas binarias . . . . . . . . . . . .
Notacin uniforme, frmulas cuantificadas . . . . . . . . . .
Reglas de expansin de un tableau . . . . . . . . . . . . . .
Equivalencias de inters para alcanzar la forma prenexa . . .
Otras equivalencias de inters para alcanzar la forma prenexa
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 79
. 86
. 99
. 99
. 99
. 102
. 103
4.1
5.1
5.2
5.3
IX
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
22
23
25
26
26
27
28
29
31
31
33
35
35
37
37
38
40
41
60
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 artificial e ingeniera del software.
Por ello, algunos de los temas son de ndole puramente terica, mientras que otros tratan de establecer 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 aplicables 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 verificacin 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 6 estudia la lgica modal temporal, que sirve,
entre otras aplicaciones, para la verificacin de sistemas concurrentes y de tiempo real (software) y de
componentes fsicos (hardware).
La figura 1 muestra la dependencia conceptual entre los temas tratados en el libro.
1. Lgica
de proposiciones
2. Lgica
de predicados
3. Programacin
lgica
5. Lgica
modal
4. Verificacin de
progr. secuenciales
6. Lgica
modal temporal
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.
Introduccin
Bibliografa recomendada
Adems de la bibliografa complementaria que hemos incluido en cada captulo de este libro, queremos ofrecer una seleccin general de bibliografa que puede ser til para el alumno que quiera ampliar
los temas tratados en esta asignatura.
Introduccin
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 define 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, Computacin 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 parntesis 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 fines: 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
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 separado como empaparse de sus interrelaciones.
adicionalmente se puede considerar una primera automatizacin de los procesos de decisin 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 confirmar que el conjunto de frmulas de partida es insatisfacible. Y de
cmo se utiliza esta confirmacin 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 reflexin 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 deductivos. En particular, cmo confluyen 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 figuras, no se incluyan todava ejercicios suficientes.
1.1 Sintaxis
Definicin 1.1 (Alfabeto) Un alfabeto es un conjunto de smbolos.
Ejemplo 1.2 Los dos siguientes conjuntos pueden considerarse alfabetos:
A1 = {$, s, 5}
A2 = {p1 , p2 , p3 , p4 , . . .}
A1 es un alfabeto finito, que consta de 3 smbolos. Por contra, A2 puede aceptarse como un alfabeto
infinito (si se considera cada p j como un nico carcter, distinto del resto).
1.1. Sintaxis
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 A1 , no es una expresin sobre A1 .
Sobre un alfabeto finito, como A1 , cuntas expresiones distintas pueden formarse?, alguna de
estas expresiones puede ser infinita?.
Observe que la definicin de expresin exige que cada secuencia sea finita: no es una expresin 0 5555 . . .0 , donde se espera que detrs de cada 5 siempre aparezca otro. Sin embargo, no se fija
una longitud mxima: por muy grande que sea una expresin siempre puede construirse otra mayor
adjuntando un nuevo carcter.
As, puede generarse un nmero infinito de cadenas incluso con un alfabeto finito, como p. ej.
A3 = {a} con un solo smbolo: a, aa, aaa, aaaa, aaaaa, . . . Al conjunto (siempre infinito) de todas las
expresiones que pueden construirse sobre un alfabeto A se le suele notar como A .
Definicin 1.5 (Lenguaje) Un lenguaje es un conjunto de expresiones. Ms concretamente, un lenguaje 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, finito o infinito).
Ejemplo 1.6 Sobre A = {$, s, 5} se pueden definir, entre otros, los lenguajes
L1 = {5, $$, ss, 55}
L2 es un lenguaje con un nmero infinito de cadenas. Para definir este tipo de lenguajes se requiere
precisar las propiedades que distinguen sus expresiones. Por ejemplo, para los lenguajes
L3 = {s, s$, s5, $s, 5s, ss, . . .}
L3 : todas las cadenas formadas al menos por una s ; o L4 : todas las cadenas que incluyen igual
nmero de smbolos s que de 5.
10
Lectura y representaciones alternativas En la siguiente tabla se adjunta el nombre usual de cada 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 conectivas.
,>
p
pq
pq
pq
pq
falso, verdadero
no p
p y q
p o q
si p entonces q
p si y slo si q
f alse, true
p
p&q
negacin
conjuncin
disyuncin
condicional
bicondicional
p q, p q
p q, p q
Ejemplo 1.8 Las siguientes secuencias son expresiones sobre el alfabeto fijado:
(
p
(pq
(p)
( p)
(p q)
(p p)
((p p) )
(r p q)
((r >) (r (q)))
Para nuestros fines, algunas de estas cadenas no son tiles. En este ejemplo, slo aceptaramos
las de la segunda fila. A las expresiones aceptables se las denominar frmulas o expresiones bien
formadas. El conjunto (infinito) 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 grficamente en la siguiente figura, que debe
recorrerse de abajo arriba.
(p >)
(p)
_??
??
??
>
()*+
/.-,
? _???
??
??
()*+
/.-,
/.-,
()*+
O
? ?_ ?
??
??
>
11
1.1. Sintaxis
p >
Los bloques mnimos aceptables, las frmulas atmicas, estn compuestas por un nico caracter
del alfabeto. Pero no cualquiera: slo letra proposicional o constante.
Definicin 1.9 (Frmula atmica) Una frmula atmica es una expresin compuesta exclusivamente por una letra proposicional, la constante o la constante >.
El conjunto de todas las frmulas, el lenguaje buscado, podra definirse (en primera aproximacin)
como el conjunto X que verificase:
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, verifica esas tres propiedades. Pero tambin las verifica 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).
Definicin 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
verifica:
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 verifica 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), (), (>), (p q), (p )
((p)), ((>)), ((p q) r), (p ())
(((p q)) p), ((p r) ())
Trate de explicitar los pasos (las reglas utilizadas), desde las frmulas atmicas, hasta la generaracin de una frmula del ejemplo. Puede resultarle til considerar una representacin como la de figura
1.2. A este tipo de grficos se les denomina rboles sintcticos. Posponemos su definicin formal.
12
((p q) (p))
_??
??
??
(p)
(p q)
_??
??
??
?
89:;
?>=<
? ?_ ??
??
??
?>=<
89:;
()*+
/.-,
O
? ?_ ?
?
?
??
E
Z
H
alfa
beta
gamma
delta
psilon
dseta
eta
zeta
I
K
M
N
o
,
iota
kappa
lambda
mu
nu
xi
omicron
pi
ro
sigma
tau
psilon
fi
ji
psi
omega
1.1. Sintaxis
13
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 subfrmulas inmediatas. La conectiva que se aplicaba sobre ella o ellas es la conectiva principal de
.
14
= (p r)
... ?
Definiciones recursivas
En el ejercicio 1.13 se utilizaba el concepto intuitivo de nmero de parntesis. Hay que suponer que
estamos refirindonos a una funcin del conjunto de frmulas en el conjunto de nmeros naturales
num par () = n. Cmo puede definirse rigurosamente esta funcin? Observe que un proceso como
cuente usted ... no nos sirve como definicin.
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 fijada.
Ms precisamente, la funcin num par : Form 7 N buscada se define como:
0
, atmica
Ejemplo 1.17 La funcin num : Form 7 N hace corresponder a cada frmula el nmero total de
sus conectivas bicondicionales. Se define como:
0
, atmica
Observe que, aunque de forma compacta, se fija 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 7 N, del conjunto de frmulas en el conjunto de nmeros naturales. En general, las definiciones sobre frmulas
resultarn ser una funcin de Form en algn conjunto, aunque no necesariamente sobre N.
15
1.1. Sintaxis
color (r, a)
o7
ooo
o
o
ooo
r
gOOO
OOaO
OOO
color (v, r)
colorat (p0 )
color (a)
_??
??
r ??
colorat ()
colorat (p4 )
color : S 7 S
f : X 7 X
f ( F( ) ) =
f ( F() )
=
F() =
fat ()
Form_Atom
El Principio de Recursin estructural garantiza que, para una determinada eleccin de las funciones previas, la funcin resultante es nica y est bien definida.
16
Rango
La funcin rango : Form 7 N, intuitivamente, proporciona la longitud de la mayor rama del rbol
sintctico de la frmula. Se define:
1 + max(rango(), rango()) , = ( )
1 + rango()
, = ()
rango() =
0
, atmica
Dejamos al lector la definicin 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, reflexione sobre cmo su rango, nmero de smbolos o apariciones de conectivas se acotan entre s.
El lector puede encontrar en la literatura demostraciones inductivas sobre el lenguaje que no utilizan 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 definicin. En la figura 1.4 se representan, respectivamente, las definiciones de arbol(
), arbol()
y arbol()
para atmica.
Puede precisar y formalizar ms esta definicin si utiliza como conjunto imagen el de las representaciones matemticas del concepto de rbol, o el de alguna estructura computacional que lo
represente.
[arbol(),
= ]
[arbol(),
= ]
[arbol(),
at omica]
( )
()
arbol()
arbol()
arbol()
17
1.1. Sintaxis
Subfrmulas
Definicin 1.22 (Subfrmulas) Dada una frmula , el conjunto de todas sus subfrmulas se define
recursivamente como:
{}
, atmica
Observe que sub f orm : Form 7 P (Form) es una funcin del conjunto de frmulas en el conjunto
de subconjuntos de frmulas.
Ejemplo 1.23 El conjunto de subfrmulas de
= ((p r) (q (t))
es
sub f orm() = {((p r) (q (t)), (p r), (q (t)), 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 figura 1.5.
(( ) ())
((p q) (p))
?
(p q)
oo7
ooo
o
o
oo
_??
??
??
( )
(p)
_??
??
??
?
arbol()
_??
??
??
gOOO
OOO
OOO
O
()
O
arbol()
arbol()
q, por la frmula := (t u)
el resultado es la frmula
((r s) (t u)) (r s))
| {z } | {z } | {z }
18
donde las marcas de subrayado se han aadido ocasionalmente para facilitar la correspondencia.
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)
Cuidado Observe que la sustitucin no vuelve a aplicarse sobre instancias nuevamente aparecidas de la letra proposicional. En [p/q, q/(q (p))] se produce las sustituciones atmicas 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, dada una frmula su sustitucin () es una frmula. Y esta funcin
() : Form 7 Form se puede definir recursivamente.
Definicin 1.25 (Instancia, por sustitucin, de una frmula) Considere una frmula y una funcin at om
7 Form que define la sustitucin para cada frmula atmica . Entonces, la
: Form_At om
sustitucin uniforme () se define como:
( () () ) , =
( () )
, =
() =
at om
()
, atmica
De la sustitucin atmica at om
se requiere que at om
() = y que at om
(>) = >. Cada at om
fija
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
7 Form tal que:
: Form_At om
at om
at om
() =
(>) = >
at om
(p
)
=
(p
p
)
0
1
0
at om
(p1 ) = p3
at om
(pk ) = pk para toda letra proposicional pk con k 6= 0, 1
Entonces est definida la transformada () de cualquier frmula , por ejemplo := (p0 p1 )
()
=
=
(p0 p1 )
((p0 ) ((p1 ) ))
=
=
((p0 ) (p1 ) )
(at om
(p0 ) (at om
(p1 )))
=
=
((p1 p0 ) (p3 ))
19
1.1. Sintaxis
((p q) (p))
?
_??
??
??
(p q)
(p)
_??
??
??
?
/.-,
()*+
? _???
??
??
()*+
/.-,
()*+
/.-,
O
? ?_ ?
?
??
??
20
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 permite interpretar esa expresin como ((3 5) + (7 4)). Se suele explicar informalmente este convenio
fijando que, en caso de ambiguedad, las multiplicaciones se consideran antes que las sumas.
Entre los operadores lgicos, en este mismo tono informal, se suelen considerar primero las negaciones, 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 expresiones 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. Y sobre 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 significativos 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 razonamiento utilizados diariamente que pueden ser formalizados, captados convenientemente, sobre este
lenguaje. Para formalizar otros procesos habr que definir 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 p q.
Valores de verdad de una declaracin Volvamos al lenguaje natural, a las 3 declaraciones detectadas 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 fijado el valor de verdad de las componentes,
el de la expresin compuesta est determinado: es funcin de los anteriores. Para este ejemplo, si slo
1.2. Semntica
21
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 dependencia distinta para cada conectiva, que debe precisar qu valor de verdad tiene la expresin compuesta para cada combinacin de valores de las componentes.
Los posibles valores de las componentes hay que fijarlos. Si se admite que una declaracin puede
ser ms bien verdadera, o un 80% falsa, la funcin asociada a cada conectiva debiera definirse para
todos estos casos. Se estara entonces en el marco de lgicas polivaluadas o lgicas borrosas.
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 afirma 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 <configurado> 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 verdaderas. 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 componentes 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 definido su valor 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 <configurado>, 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 <configurado> 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 curiosa: 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.
22
Validez: es posible construir expresiones que sean verdaderas en toda interpretacin, anlogamente 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 <configurado>.
Como se puede intuir, todas estas cuestiones estn interrelacionadas. Para expresar formalmente
esta interrelacin es necesario definir 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.
7
6
5
4
3
2
1
0
;
;
;
;
;
;
;
;
p
1
1
1
1
0
0
0
0
q
1
1
0
0
1
1
0
0
r
1
0
1
0
1
0
1
0
23
1.2. Semntica
La tabla (tabl. 1.3) reune la funcin asociada a cada conectiva binaria, en definitiva, 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 refiere
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 fij para
.
p
1
1
0
0
q
1
0
1
0
pq
1
0
0
0
pq
1
1
1
0
pq
1
0
1
1
pq
1
0
0
1
24
= () () , = ( )
()
()
= ()
, = ()
() =
atom ()
, atmica
25
1.2. Semntica
O
1
((p q) ())
_??
??
??
()
(p q)
_??
??
??
?
/.-,
()*+
? _???
??
?
0
1 ??
()*+
/.-,
()*+
/.-,
O
? ?_
???
?
0
0 ??
1
q
1
0
1
0
((p q) ())
1
1
1
1
26
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 figura (fig. 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.
p
1
1
0
0
q
1
0
1
0
(p q)
1
0
1
0
(p)
0
0
1
1
((p q) (p))
1
0
1
1
q
1
0
1
0
(p q)
1
0
0
0
1
0
1
1
p
0
0
1
1
27
q
1
1
0
0
1
1
0
0
r
1
0
1
0
1
0
1
0
(p q) (q r)
0
0
0
0
0
0
0
0
(p q) (q r)
1
0
1
1
1
1
1
1
(p q) (q r)
1
1
1
1
1
1
1
1
28
p
1
q
1
r
1
p (q r)
1
(p q) r
1
r (r p)
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
29
p
1
1
1
1
0
0
0
0
q
1
1
0
0
1
1
0
0
r
1
0
1
0
1
0
1
0
p (q r)
1
1
1
0
1
1
1
1
(p q)
1
1
0
0
0
0
0
0
(r p)
0
0
0
0
0
1
0
0
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 afirmar que no ser tautologa
Notacin Para expresar que una frmula es vlida se utilizar la notacin |= .
30
Procedimiento de decisin
Para decidir la validez de una frmula, de nuevo, el procedimiento semntico extensivo requiere recorrer 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 viceversa
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 :
((p q) (q r))
es una tautologa. Fijemos la sustitucin
(p) = p,
(q) = (p r),
(r) = (r)
1.3.3 Consecuencia
Observe la tabla (tabl. 1.10). La ltima frmula verifica 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, (q r)
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.
31
p
1
q
1
r
1
p q
1
pr
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
..
1
1
..
..
1
1
1
1
1
1
1
..
qr
1
p
1
1
1
1
0
0
0
0
q
1
1
0
0
1
1
0
0
r
1
0
1
0
1
0
1
0
p r
0
0
0
0
1
0
1
0
(p q)
0
0
1
1
1
1
0
0
..
pq
1
1
1
1
1
1
0
0
32
Procedimiento de decisin
En Lgica de Proposiciones, donde el nmero de interpretaciones distintas es finito, 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 resto 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:
Reflexividad: |= ; 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 definicin de consecuencia permite
que una frmula sea consecuencia de un conjunto insatisfacible?
En la definicin (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 definicin) y la restante satisface tanto como .
Con el mismo argumento empleado all, si fueran 8 (todas) las interpretaciones que no satisficieran
, el condicional de la definicin
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 verifica que es consecuencia lgica de
un conjunto de frmulas insatisfacible.
33
Observe que, cuando se dice cualquier frmula, sto incluye a una frmula cualquiera, pero
tambin a su negacin. Es decir:
{p, p} |= p q
, pero tambin,
{p, p} |= (p q)
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 fij 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: {(p q), (p
r), (q r)} |= r.
Si esto es as (si se verifica 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
1
1
1
1
0
0
0
0
q
1
1
0
0
1
1
0
0
r
1
0
1
0
1
0
1
0
pq
1
1
1
1
1
1
pr
1
qr
1
1
1
1
1
1
1
1
1
1
r
1
1
1
[(p q) (p r) (q r)] r
1
1
1
1
1
1
1
1
34
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
entonces
{1 , . . . , n } |=
(1 . . . n )
es tautologa
(1 . . . n )
{1 , . . . , n } |=
es tautologa
si y slo si
1 . . . n es tautologa.
Consecuencia y satisfacibilidad
Existe una interdependencia formal entre consecuencia e insatisfacibilidad que trataremos de justificar
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 insatisfacible. 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 verifica
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 conjunto, 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
frmula es consecuencia suya, y la inclusin de su negacin en ese conjunto no lo convierte en satisfacible.Luego, se obtiene el resutado:
si {1 , . . . , n } |= entonces, 1 . . . n es insatisfacible
35
p
1
1
1
1
0
0
0
0
q
1
1
0
0
1
1
0
0
r
1
0
1
0
1
0
1
0
pq
1
1
1
1
1
1
pr
1
qr
1
1
1
1
1
1
1
1
r
1
1
1
[(p q) (p r) (q r)]
1
r
0
q
1
1
0
0
1
1
0
0
r
1
0
1
0
1
0
1
0
1 : p (q r)
1
2 : p q
1
1
1
1
1
1
3 : p q r
1
1
1
1
1
1
1
1
1
1
2
1
1
3
1
1
1
1
1
36
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 } |=
si y slo s
{1 , . . . , n } |=
si y slo s
{1 , . . . , n } |=
Las dos expresiones vlidas de estos resultados son equivalentes: su tabla de verdad es exactamente 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
Definicin 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 fijar 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 definicin.
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 reflexiva, 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:
Reflexividad:
Simetra: si entonces
Transitividad: si y entonces
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.
p
1
1
0
0
q
1
0
1
0
C0
p p
0
0
0
0
(p q)
0
0
0
1
C1
p q
0
0
0
1
(q p)
0
0
0
1
C8
pq
1
0
0
0
C11
p q p q
1
1
0
0
1
1
1
1
q q
1
1
1
1
C15
p pq
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:
C0 , . . . ,C15 . En nuestra notacin, el subndice k de la clase Ck resulta de leer las columnas como
si codificaran nmeros binarios (con el dgito ms significativo arriba). Es fcil comprobar que las
frmulas con 3 letras proposicionales admiten 8 interpretaciones distintas, y por tanto, existen 28
clases de equivalencia distintas, desde C0 a C255 .
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 C8 es (p q). De igual forma, si se hubieran definido 16
conectivas binarias, la frmula ms simple de cada clase sera de la forma (p q), 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 C7 y C8 . Presentan valores de verdad complementarios. De hecho, para toda
clase existe otra complementaria. Se pueden buscar por simetra respecto al eje que separa C8 y C7 .
p
1
1
0
0
q
1
0
1
0
c0
0
0
0
0
c1
0
0
0
1
6
c2
0
0
1
0
p
c3
0
0
1
1
6
c4
0
1
0
0
q
c5
0
1
0
1
c6
0
1
1
0
c7
0
1
1
1
c8
1
0
0
0
c9
1
0
0
1
q
c10
1
0
1
0
c11
1
0
1
1
p
c12
1
1
0
0
c13
1
1
0
1
c14
1
1
1
0
>
c15
1
1
1
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 equivalentemente 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
Es ms, algunas conectivas binarias primitivas pueden escribirse en trminos de otra (ms la negacin). 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 conectivas. 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 definen como abreviaturas metalingisticas de las primitivas. Este enfoque acorta las demostraciones inductivas y las definiciones 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>
p
>
p
p p
pq
p (q r)
p (p q)
p (q r)
pq
p
q p
(p q) r
p
(p q) (p r)
(p q)
pq
pq
(p q) (q p)
(p q)
doble negacin
idempotencia
conmutatividad
asociatividad
absorcin
distributividad
De Morgan
>
p
p>
p
>
p p
pq
p (q r)
p (p q)
p (q r)
(p q)
p
q p
(p q) r
p
(p q) (p r)
(p q)
pq
pq
(p q) (p q)
q p
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 afirmar 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.
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 equivalencia: es decir, que si p q p q tambin se verifica que , para
todo par de frmulas.
Ejemplo 1.48 Partamos de la equivalencia
p q p q
y de la sustitucin
(p) = (t s)
(q) = (p v)
Se obtiene entonces un par de expresiones equivalentes entre s (no necesariamente con las de partida):
(t s) (p v) (t s) (p v)
Recuerde que la sustitucin uniforme supone cambiar cada aparicin de una letra proposicional
por su frmula sustituta. Es posible definir otro tipo de sustitucin que no requiera cambiar cada
aparicin de la cadena sustituida. Para diferenciar esta operacin de la sustitucin uniforme, la denominaremos reemplazo.
Definicin 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 elemento 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)
verifica que
X Y
40
Formas normales
Forma normal disyuntiva En una tabla de verdad donde slo se consideren las variables p, q y r,
la frmula = p q r es verdadera en una nica lnea:
p
0
q
1
p q r
1
r
1
Si se considerase otra variable adicional s, la misma frmula sera verdadera en dos lneas:
p
0
0
q
1
1
r
1
1
s
1
0
p q r
1
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
1
0
q
1
1
r
0
1
0
1
1
0
( )
1
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
1
1
1
1
0
0
0
0
q
1
1
0
0
1
1
0
0
r
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
(p q r)
(p q r)
(p q r)
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 expresada 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, fijaremos una definicin 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
1
1
1
1
0
0
0
0
q
1
1
0
0
1
1
0
0
r
1
0
1
0
1
0
1
0
1 : p q r
2 : p q r
1 2
1 : p q r
2 : p q r
1 2
42
((p q) r) (s t)
((p q) r) (s t)
((p q) r) (s t)
(p q r s t)
ya que X Y X Y
ya que (X Y ) (X Y )
ya que (X Y ) (X Y )
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 (p s) (p q). Y su forma
clausulada
{{p, s}, {p, q}}
En el ejemplo previo, a partir de una frmula, se obtiene finalmente otra equivalente. Este resultado se calcula, sin necesidad de utilizar tablas de verdad: la primera frmula es equivalente a una
segunda (y se justifica 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 equivalente 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 facilitarn ejercicios sobre este punto. Estas notas se estn ciendo a resaltar los conceptos bsicos fundamentales, 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
si y slo si
si y slo si
si y slo si
|= y |=
( ) es una tautologa y ( ) es una tautologa
( ) es una tautologa
(( )) es insatisfacible.
43
hoy es viernes
son las cinco
hoy es viernes y son las cinco
p
q
pq
Observe que se genera una sentencia final 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)
(p q) (r p)
(r p)
O tambin:
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
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 (Ed ) y eliminacin izquierda (Ei ) de la
conjuncin.
I
Ed
Ei
En la figura (fig. 1.8) se utilizan estas reglas para demostrar que de p (q r) se deduce p r. La
expresin de partida (que suponemos verdadera) se denomina premisa. A partir de ella se deducen
tanto p (lnea 2) como (q r) (lnea 3) por eliminacin de la conjuncin. En la lnea 4 se deduce r por
eliminacin de la conjuncin sobre 3: observe la explicacin Ei 3. Por ltimo, a partir de 2 y de 4,
por introduccin de la conjuncin se obtiene 5.
p (q r)
premisa
Ed 1
(q r)
Ei 1
Ei 3
pr
I 2, 4
p (q r)
1
3
ONML
HIJK
GFED
@ABC
Ed
Ei
??
4
??2
??
89:;
?>=<
I
pr
Figura 1.9: rbol de la deduccin natural. p (q r) ` p r
En este apartado aparece un nuevo smbolo ` distinto de (aunque esperamos que relacionado con)
|=. La relacin p q |= p es de carcter semntico: compruebe todas las interpretaciones donde ....
Mientras que p q ` p es de carcter sintctico, combinatorio: utilizando adecuadamente las reglas
del clculo se ha conseguido llegar a generar la frmula p.
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.
45
Cuando se afirma que suponemos las premisas verdaderas no significa que sean tautologas. Significa 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 facilidad: si se admite que es verdad que llueve, tambin debe aceptarse llueve o hace viento.
llueve
Id
llueve o hace viento
Id
Ii
(p q)
Ii
(r s) (p q)
La frmula nueva (cualquiera) que se introduce disyuntivamente puede hacerlo por la derecha
(Id ) o por la izquierda (Ii ).
Eliminacin de la disyuncin Tambin existe otra regla denominada eliminacin de la disyuncin. El sistema propuesto se recuerda fcilmente: se define 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
pq
q
NO!!
..
.
..
.
Ejemplo 1.54 Observe la figura (fig. 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)?
46
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 concluyendo (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,
p q (lnea 5, caja izquierda) se supone verdadera si lo es la hiptesis que abre la caja izquierda.
Observe que, dado el principio y el fin, slo los pasos de las lneas 5-6 (en cada caja) requieren un
esfuerzo creativo para obtener el resultado fijado.
p (q r)
premisa
E 1
(q r)
E 1
suposic r
suposic
(p q)
I 3, 4
I 3, 4
(p q) (p r) I 5
(p q) (p r)
(p r)
(p q) (p r) I 5
E 3
Condicionales
Eliminacin del condicional La eliminacin del condicional ( E ) es una de las reglas de inferencia con ms tradicin. Se conoce alternativamente como Modus Ponens y es tambin intuitivamente
inmediata.
Si presiono entonces se rompe
Presiono
Se rompe
pq
p
q
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 afirma que p es verdadero, necesariamente q debe serlo.
47
premisa
premisa
1
@ABC
GFED
GFED
@ABC
supos
E supos
E
??
??
0
??4
?
2
4
2
?
??
??
?
?
?>=<
89:;
?>=<
89:;
premisa
I
I
??
??
5
50
?
1 ?
89:;
@ABC
GFED
?>=<
89:;
I
I
E ? ?>=<
jjjj
j
??
0
j
j
6
j
j
?? 6
j
jjj
3 ?
jjjj
j
t
j
GFED
@ABC
E
(p q) (p r)
Figura 1.11: rbol de la deduccin natural. p (q r) ` (p q) (p r)
(p q) (p r)
premisa
(p q)
suposic (p r)
suposic
E 2
E 2
E 2
E 2
(q r)
I 4
(q r)
I 5
p (q r) I 3, 5
p (q r)
p (q r) I 3, 5
E 1
48
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
afirma 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 cualquiera: 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.
pq
premisa
qr
premisa
suposic
E 1, 3
E 2, 4
pr
I 3, 5
(p q) r
premisa
suposic
suposic
(p q)
I 2, 3
E 1
(q r)
I 3, 5
p (q r) I 2, 6
49
Ejemplo 1.56 Considere primero el ejemplo de la figura (fig. 1.15). Como se trata de derivar finalmente el condicional (p q) r, conviene abrir una caja con la hiptesis adicional (p q), el antecedente, 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 (fig. 1.13) es muy parecido. Y el de (fig. 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 (fig. 1.16): no existen premisas del argumento, tan slo una suposicin que se descarga. La frmula resultante no depende de la verdad de
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 (q r)).
p (q r)
premisa
(p q)
suposic
E 2
E 2
(q r)
E 1, 3
E 5, 4
(p q) r
I 2, 6
suposic
pq
I 1
p (p q) I 1, 2
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.
Eliminacin de la negacin Dadas dos frmulas, donde una es negacin de la otra, se puede concluir la contradiccin.
50
..
.
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 finalmente 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 figura (fig. 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.
pq
premisa
premisa
suposic
E 3, 1
E 2, 4
I 3, 5
51
(p r) (q s)
(q s)
(p r)
MT 1, 2
Para fijar ideas, puede contemplar las reglas derivadas como lo hace con las subrutinas en programacin.
1.4.2 Resolucin
Introduccin
Estrategia deductiva por refutacin Ya se resalt que exista una estrecha relacin entre consecuencia 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 consecuencia.
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 (menos 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 insatisfacible. 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 define 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.
Forma clausulada
Definicin 1.57 (Literal) Un literal es una frmula atmica o la negacin de una frmula atmica.
52
Es decir, son literales cada una de las siguientes seis expresiones: p, q, r, p, , . Y no son
literales las expresiones: p, r q, (p q).
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:
(p q) (r q r 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 )
X (Y Z) (X Y ) (X Z)
(q (s t)) ((s t) q)
(q (s t)) ((s t) q)
(q s t) ((s t) q)
(q s t) ((s t) q)
(q s t) ((s q) (t q))
(q s t) (s q) (t q)
X Y (X Y ) (Y X)
X Y X Y
asociatividad , abuso notacin
(X Y ) X Y
(X Y ) Z (X Z) (Y Z)
asociatividad , abuso notacin
53
Forma clausulada El valor de verdad de una frmula como (p q r p) (dada una interpretacin) 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 cada 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 significativa la enumeracin repetida
de un elemento: ese elemento pertenece o no pertenece al conjunto, sin ms.
Definicin 1.60 (Forma clausulada) Una clusula C es un conjunto de literales C = {l1 , . . . , ln }. Implcitamente se suponen disyuntivamente unidos.
Una frmula en forma clausulada est escrita como un conjunto de clusulas {C1 , . . . ,Ck }, implcitamente unidas por conjunciones.
Toda frmula en forma normal conjuntiva es fcilmente expresable en forma clausulada. Por
ejemplo,
(p q p) (r p t) 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 pt}
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).
Definicin 1.61 (Satisfacibilidad de clusulas) La satisfacibilidad de las clusulas se define como:
Una clusula C = {l1 , . . . , ln } es satisfacible si y slo si la frmula (l1 . . . ln ) es satisfacible.
La clusula vaca {} es insatisfacible.
Un conjunto de clusulas {C1 , . . . ,Ck } 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 2.
Para satisfacer un conjunto de clusulas basta encontrar una interpretacin que satisface al menos
un literal en cada clusula.
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, fijar que p y s son verdaderas produce
la satisfaccin de ambas clusulas (con independencia de los valores del resto de las variables). El
54
{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 afirma que es falsa, se satisface
sin ms la primera clusula (pero no la segunda). Si se afirma 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
satisficiera a las dos clusulas generatrices satisface a la clusula generada.
Definicin 1.62 (Principio de Resolucin) Sean X e Y clusulas tales que l X y l c Y . Se denomina 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 fijar 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 clusulas 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 satisface para la interpretacin que satisfaca a las clusulas generatrices. De hecho, ste es un uso incorrecto
de la regla de Resolucin, que defina el resolvente sobre un nico literal.
A partir de un conjunto de clusulas, una derivacin por resolucin es una secuencia finita de
clusulas, donde cada una de ellas es bien una de la clusulas de partida o bien la resolvente de dos
previas.
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.
55
p q?
q ?r
p r
??
??
??
q
qr O
OOO
ooo
o
OOO
o
OOO
ooo
OO' wooooo
r OOO
r
OOO
ooo
o
o
OOO
ooo
OOO
OO' wooooo
??
??
??
{p, q}
{p, r}
{q, r}
{r}
{q, r}
(1, 2)
{q}
(3, 4)
{r}
(6, 5)
{}
(4, 7)
56
{p, q}
{p, r}
{s}
{t}
{q, s,t}
{s, q}
{t, q}
{p}
{q}
(8, 1)
{r}
(8, 2)
{s,t}
(9, 5)
{t}
(11, 3)
{}
(12, 4)
57
Clusulas de Horn
Considere la frmula (p q r) s. En ciertas aplicaciones, a este tipo de frmulas se les denomina reglas. Con varias de estas reglas puede tratar de modelizar una mquina expendedora o el
comportamiento de un programa.
Supuesta verdadera una regla como (p q r) s, si se verifican 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:
(p q r) s (p q r) s (p q r 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:
58
X Y
(X Y )
(X Y )
(X Y )
(X Y )
X Y
X 6 Y
X 6 Y
1
X
X
X
X
X
X
X
X
2
Y
Y
Y
Y
Y
Y
Y
Y
(X Y )
X Y
X Y
X Y
X Y
(X Y )
(X 6 Y )
(X 6 Y )
1
X
X
X
X
X
X
X
X
2
Y
Y
Y
Y
Y
Y
Y
Y
59
Ni el bicondicional ni su negacin (la disyuncin exclusiva) se pueden escribir como una conjuncin o disyuncin de sus subfrmulas (negadas o no). Por tanto, no se considerarn conectivas
primarias del lenguaje sino abreviaturas.
Tableaux: definicin
Ejemplo 1.68 Observe la figura (fig. 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
(q r)). 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 A0 : 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 A00 final que se observa en la figura
(fig. 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 (q r))
2. p
3. (q r)
4. q
??
??
??
5. r
Ejemplo 1.69 La figura (fig. 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 expansin 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.
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.
60
X
X
>
1
2
>
1 | 2
2. r p
3. r
4. p?
5. p
??
??
?
6. (q r)
7. q
8. r
61
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 filosofa pero le facilitarn una buena compresin de la semntica y de la formalizacin del lenguaje 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.
Actividades y evaluacin
Hasta que se disponga de una batera de ejercicios, le recomendamos que utilice los ejercicios de los
textos referenciados.
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 cuantificadores (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 interpretar 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 cuantificadores (si existen) que las referencian.
Como contrapartida, se dispone de un lenguaje y de una semntica sobre la que se est edificando
(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 eficiencia.
Todos los conceptos semnticos bsicos del captulo anterior se pueden reformular en ste. Desgraciadamente aqu, incluso para la frmula ms sencilla existen infinitas 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 Resolucin, ampliamente utilizados en Computacin. Adicionalmente, los sistemas basados en Tableaux
se estn imponiendo como una eficiente alternativa de implementacin.
En el estado actual de estos apuntes an no se han abordado las estrategias de implementacin.
63
64
Metodologa
Trabaje con lenguajes de primer orden progresivamente ms complejos. Primero, slo cuantificadores
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 interpretaciones 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 proposiciones, que facilitan la identificacin de conjuntos de frmulas insatisfacibles. Ahora, en estos
procesos es importante no introducir espreamente la insatisfacibilidad por una incorrecta manipulacin 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 sujetos particulares (constantes, trminos unificables ...) puede afirmarse como insatisfacible un conjunto
de frmulas que no lo era. O perderse indefinidamente en intentos vanos de confirmacin, 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.
Definicin 2.1 (Alfabeto) El alfabeto de un lenguaje de Primer Orden incluye:
smbolos comunes:
variables: Var = {x1 , x2 , x3 . . .}
conectivas: {, >, , , , , }
cuantificadores: {, }
smbolos de puntuacin: parntesis y comas
(smbolo de igualdad: {})
smbolos propios:
su conjunto de constantes: C = {c1 , c2 , . . .}
su conjunto de funciones: F = { f1 , f2 , . . .}
su conjunto de relaciones: R = {R1 , R2 , . . .}
Notacin Se denomina A al conjunto de smbolos comunes, S al de smbolos propios y AS al alfabeto
resultante. Cada eleccin de S determina un lenguaje: se denotar como L(S) L(R , F , C ).
Los conjuntos C , 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: R(t1 , . . . ,tn ).
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 infija (t1 t2 )
en vez de la prefija (t1 ,t2 ).
Al cuantificador (lase para todo) se le denomina universal y al cuantificador (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 finales 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 fija 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 relacin entre nodos). En principio, no se precisa de smbolos constantes ni de funciones.
Las ecuaciones son relaciones de igualdad entre trminos: t1 t2 . 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 fijado un cierto alfabeto AS . Todas las definiciones 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 definicin deben pertenecer a este alfabeto. En las escasas
ocasiones en que se consideren varios alfabetos, se avisar explcitamente.
Definicin 2.3 (Trmino) Un trmino es una expresin obtenida por aplicacin de las siguientes reglas:
1. cada constante c es un trmino
2. cada variable x es un trmino
3. si f es una funcin n-aria y t1 , . . . ,tn son trminos, entonces f (t1 , . . . ,tn ) es un trmino
Notacin El conjunto de todos los trminos se denotar como Term.
Definicin 2.4 (Frmula atmica) Una frmula atmica es una expresin de la forma:
R(t1 , . . . ,tn ) , donde R es un smbolo relacional n-ario y t1 , . . . ,tn son trminos
En los lenguajes con igualdad tambin es una frmula atmica (t1 t2 ), donde t1 y t2 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.
Definicin 2.5 (Frmula) Una frmula es una expresin obtenida por aplicacin de las siguientes
reglas:
66
?>=<
89:;
xO
( R(x, c) P( f (y)) )
?>=<
89:;
? _???
??
??
89:;
?>=<
89:;
?>=<
P ?_
R
??
? ?_ ??
??
?
??
??
_??
??
??
P( f (y) )
R(x, c)
_??
??
??
?
_??
??
??
f (y)
O
y
(a) rbol sintctico
fO
2.1. Sintaxis
67
68
2.1.3 Subfrmulas
Definicin 2.11 (Subfrmulas) Dada una frmula , el conjunto de todas sus subfrmulas se define
recursivamente como:
{}
{} sub f orm()
{} sub f orm() sub f orm()
sub f orm() =
{} sub f orm()
{} sub f orm()
, atmica
, = ()
, = ( )
, = (x)
, = (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 figura (fig. 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 definicin (def. 2.11) es un ejemplo de definicin recursiva sobre el conjunto de frmulas. En
particular, define una funcin sub f orm : Form 7 P (Form) de frmulas en subconjuntos de frmulas.
Observe que la definicin 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 7 X est bien definida y es nica. Y esto, sea cual sea el
conjunto X. Puede intentar definir recursivamente una funcin del conjunto de frmulas Form sobre
un conjunto de 2 equipos de ftbol o sobre los 3 colores de un semforo.
69
2.1. Sintaxis
(x(R(x, c) P( f (y))))
(R(x, c) P( f (y)))
??
??
??
??
??
??
?
(yP(y))
R(x, y)
??
??
??
??
??
??
P( f (y))
R(x, c)
f (y)
??
??
??
?
??
??
??
y
(a)
P(y)
y
(b)
, atmica
1
1 + numsub f ()
, = () | (x) | ()
numsub f () =
1 + numsub f () + numsub f () , = ( )
70
2. En caso de duda, se aplicarn primero los cuantificadores y las negaciones, despus las conjunciones y disyunciones, y luego los condicionales y bicondicionales. No se establece precedencia
entre conjunciones y disyunciones o entre condicionales y bicondicionales.
3. Gracias a la propiedad asociativa de la conjuncin, en una expresin ambigua 1 2 3 no
importar (a efectos semnticos) si se ha evaluado como (1 2 ) 3 o como 1 (2 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 ((xP(x)) Q(x)) y no de (x(P(x) Q(x)))
Px Qy es una abreviatura de la frmula ((P(x)) Q(y)) y no de ((Px Q(y)))
xPx Qx Rxyz Sxy es una abreviatura de la frmula (((((xP(x)) Q(x)) R(x, y, z))
S(x, y)))
,t = c
0/
{x}
,t = x
vart (t) =
var() var()
= ( )
mbito de un cuantificador Si una frmula es de la forma (x) o (x) se dice que es el mbito
de ese cuantificador. En la figura (fig. 2.3a), toda la frmula condicional que ocurre como subrbol
de x determina el mbito de este cuantificador. En la figura (fig. 2.3b) hay dos cuantificadores: el
mbito de y es la frmula atmica Py, y est incluido en el mbito de x.
Los mbitos de los cuantificadores (sus respectivos subrboles) no se solapan: se anidan, como en
el ejemplo de la figura (fig. 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 cuantificador para esa variable, (x) o (x), se denominan ligadas. As, en una frmula sin cuantificadores
ninguna variable ser ligada. Y todo cuantificador liga, a lo sumo, las apariciones de una variable en
su mbito.
En la figura (fig. 2.3b) hay 5 frmulas distintas. Vemos cul es el comportamiento de las variables
en esas frmulas:
71
2.1. Sintaxis
R?
???
??
??
??
??
P?
c
??
??
??
??
??
??
R?
??
??
??
??
??
??
y
(a)
y ?
y
(b)
var(t1 ) var(t2 )
= (t1 t2 )
var(t
)
.
.
.
var(t
)
= R(t1 , . . . ,tn )
1
n
libres()
= ()
libres() =
libres()
libres()
= ( )
libres() {x}
= (x) | (x)
72
Definicin 2.17 (Sentencia) Una frmula sin variables libres se denomina sentencia.
En una sentencia toda variable est en el mbito de un cuantificador para esa variable.
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 Q(x, a) Q(x, g(a)); 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, g(b, 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 especficamente, 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 contrapartida, 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 refiriendo, implcitamente, a
los mismos elementos del universo.
Sustituciones de variables
Definicin 2.18 (Sustituciones) Una sustitucin v es una funcin v : Var 7 Term, del conjunto de
variables en el conjunto de trminos.
Observe que esta definicin depende del lenguaje L(C , 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(C , F , R ) tal que el conjunto de constantes del lenguaje es
C = {a, b} y el conjunto de funciones es F = {g} (donde g es binaria).
Una sustitucin v fija, para cada variable, qu trmino de este lenguaje le corresponde. Por
ejemplo:
. . . v (v) = a,
v (w) = a,
v (x) = y,
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 infinito. La sustitucin v asigna a cada
una de ellas un trmino.
Ejemplo 2.20 La sustitucin del ejemplo anterior no estaba bien definida: no se especificaba la imagen de cada variable (salvo de unas pocas). La forma ms sencilla de fijar la imagen de las restantes
73
2.1. Sintaxis
es precisar que no se modifican. Es decir, que v (u) = u, que cada una de estas variables se sustituye
por s misma.
En este caso, basta enumerar las variables que s se modifican. Una sustitucin como la del
ejemplo anterior se denotar como:
v = [v/a, w/a, x/y, y/g(x, z), z/g(g(b, y), g(a, g(z, 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 finito se dir que la sustitucin tiene un soporte finito.
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).
Definicin 2.21 (Sustituciones: extensin a trminos) Sea v : Var 7 Term una sustitucin, se define entonces recursivamente una funcin t : Term 7 Term tal que:
xt = v (x), para cada variable x del lenguaje
ct = c, para cada constante c del lenguaje
[ f (t1 , . . . ,tn )]t = f (t1 t , . . . ,tn t ) para cada funcin n-aria f del lenguaje.
Notacin Escribiremos (trmino) o, ms adelante, (frmula) , para designar la imagen de la sustitucin, 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) tx , 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:
wt = w, donde w es una variable distinta de x e y
at = a, donde a es una constante
(h(a, x, w))t = h(at , xt , wt ) = h(a, f (xv , a), wv ) = h(a, f (y, a), w)
(h(a, f (x, y), w)t = h(at , ( f (x, y))t , wt ) = h(a, f (xv , yv ), wv ) = h(a, 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. Alternativamente, efectuando la sustitucin sobre las nodos hoja y propagndola hasta el nodo raz.
74
Composicin de sustituciones
Los modernos procesadores de texto permiten (casi) simular este proceso de sustitucin. Dado un
texto como f (x, b, g(x, c)) se puede requerir la sustitucin en todas las apariciones de la variable x
por la cadena g(x, b). El resultado sera f (g(x, b), b, g(g(x, b), c)). Observe que:
la sustitucin afecta a todas las apariciones de x en el texto original,
no se modifican las nuevas apariciones de x (si las hubiera) introducidas por la sustitucin.
Una nica sustitucin que afecta varias variables Si el texto inicial hubiera sido f (x, b, g(x, z)) se
poda haber requerido simultneamente la sustitucin de las x por g(z, b) y la de las z por a. Se habra
obtenido entonces la cadena f (g(z, b), b, g(g(z, 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 final, se producen
las sustituciones fijadas por 2 .
Definicin 2.23 (Composicin de sustituciones) Si 1 y 2 son sustituciones sobre trminos, la
composicin = 1 2 es otra composicin sobre trminos definida como:
t = t[1 2 ] = (t1 )[2 ] = ((t1 )2 )
donde t es un trmino.
Es decir, sustituya en t primero (y simultneamente) cada variables por su trmino sustituyente
fijado 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 t1 2 .
En la definicin 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 postfija para composiciones, en x1 2 es 1 la que se aplica
primero (la ms prxima a la cadena original). sta misma composicin, en notacin prefija, se
escribira como 2 1 x.
Ejemplo 2.24 Dadas las sustituciones 1 = [x/ f (z, a), y/w], 2 = [x/b, z/g(w)], aplicando la definicin previa:
x[1 2 ] = (x1 )[2 ] = f (z, a)[2 ] = f (z2 , a2 ) = f (g(w), a)
y[1 2 ] = (y1 )[2 ] = w[2 ] = w2 = w
z[1 2 ] = (z1 )[2 ] = z[2 ] = z2 = g(w)
75
2.1. Sintaxis
76
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 definida inicialmente pueda ser extendida como funcin de frmulas en frmulas.
Ahora bien, una vez que somos capaces de calcular cualquier sustitucin, nos limitaremos a utilizar 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 final
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 definiciones siguientes tienen por objetivo incluir esta
restriccin en la propia definicin de sustitucin en una frmula.
Definicin 2.28 Sea t una sustitucin sobre trminos. Se puede entonces extender, recursivamente,
a una funcin de frmulas en frmulas:
1.
2. > = >,
= ,
3. (X) = (X)
4. (X Y ) = (X Y ), para toda conectiva binaria
5. (xX) = x(Xx ),
(xX) = x(Xx )
Donde x es una sustitucin sobre frmulas igual a salvo el hecho de que no modifica la variable
x.
Ejemplo 2.29 Sea la sustitucin = [x/ f (y), y/b]. Entonces
(x(Qx Rxy)) = x((Qx Rxy)x ) = x((Qx)x (Rxy)x ) = x(Qx Rxb)
(Qx xRxy) = (Qx) (xRxy) = Q( f (y)) x((Rxy)x ) = Q( f (y)) xRxb
(x(Qx yRxy)) = x((Qx yRxy)x ) = x((Qx)x (y(Rxy))x ) = x(Qx
y((Rxy)xy )) = x(Qx yRxy)
77
2.2. Semntica
En una frmula del tipo x no existen variables x libres. As, ninguna sustitucin, tal y como se
ha definido, modificar las x. Por otro lado, las apariciones de x que estuvieran ligadas por el cuantificador resultan apariciones libres en la subfrmula (si slo se considera sta, sin el cuantificador
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 modifican 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.
Definicin 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 resultan libres.
Ejemplo 2.32 La sustitucin [z/ f (x)] no es libre para la frmula
Rz x(Px yRxyz)
porque algunas de las apariciones de la variable x que introduce ocurren en el mbito de un cuantificador x.
2.2 Semntica
2.2.1 Introduccin
La interpretacin en Lgica de Proposiciones Para decidir si una frmula proposicional es verdadera 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 definicin
recursiva de satisfaccin facilita esta decisin, por muy compleja que sea la frmula.
78
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 P(x), debe escoger un subconjunto de U . Por cada predicado didico, como R(x, 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 g(x, 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 contiene 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: R1 = 0/ (sin
pares de U 2 ) o R2 = U 2 (con todos los pares). O bien,
R3 = {(a, a), (a, c), (b, a), (b, b), (c, c)}
La relacin R3 se puede representar como una matriz, como una tabla (tabl. 2.1a). Si se fija en el
par (a, c) R3 sobre esta tabla ver que las filas representan el primer elemento del par y las columnas
el segundo. Existen 233 relaciones Rk binarias distintas sobre un conjunto de 3 elementos.
79
2.2. Semntica
Tambin pueden representarse grficamente como grafos: dibuje los nodos a, b y c; si (a, c) R3
trace una flecha desde el nodo a hasta el c. Observe que alguna de estas flechas pueden ir de un nodo
a s mismo.
R3
a
b
c
a
x
x
c
x
Rf
a
b
c
x
x
a
x
x
(b) f : U 7 U
(a) R3 U 2
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.
Definicin 2.34 (Estructura) Una estructura adecuada al lenguaje L(R F C ) es un par hU , Ii 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 C 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 L(R , F , C ) con una relacin binaria R, una funcin monaria f y
una constante c. Las dos frmulas siguientes pertenecen a ese lenguaje:
xRxc
xR f (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 233 relaciones binarias distintas. Y 33 funciones monarias distintas. Y 3 elecciones de elemento representante de c. Salvo error de clculo, hay
27 29 interpretaciones distintas sobre este universo (adecuadas a ese conjunto de smbolos propios).
El nmero es lo de menos. Escojamos una de ellas:
RI = {(1, 2), (2, 1), (2, 3)},
cI = 2
80
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 AS se pueden interpretar sobre un nmero infinito de estructuras:
puede escoger cualquier universo (finito o infinito) y, sobre l, cualquier combinacin de
elecciones de subconjuntos, relaciones, funciones y elementos (constantes).
2.2.3 Asignaciones
Definicin 2.36 (Asignacin) Una asignacin A sobre una estructura hU , Ii es una funcin A : Var 7
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 xA , en vez de A(x).
Definicin 2.37 Suponga que hU , Ii es una estructura adecuada a un lenguaje L(R , F , C ). 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 I,A del universo U:
cI,A = cI
xt I,A = xA
f (t1 , . . . ,tn )I,A = f I (t1I,A , . . . ,tnI,A )
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 cI = 2, xA = 1, yA = 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 gI (3, 1, 2), que debe ser un elemento del
universo.
Definicin 2.38 (Asignacin variante de otra) Suponga que sobre una estructura se ha fijado una
asignacin A, que hace corresponder a cada variable de la frmula con un elemento del universo. Otra
asignacin Ax 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
Definicin 2.39 (Satisfaccin de una frmula) Sea hU , Ii una estructura adecuada al lenguaje
L(R , F , C ) y A una asignacin. A cada frmula de L(R , F , C ) se le hace corresponder un valor de
verdad I,A como sigue:
1. Frmulas atmicas
I,A = 0 , >I,A = 1
(t1 t2 )I,A = 1 si y slo si t1A = t2A
[R(t1 , . . . ,tn )]I,A = 1 si y slo si (t1A , . . . ,tnA ) RI
81
2.2. Semntica
2. []I,A = [I,A ]
3. [ ]I,A = I,A I,A
4. [(x)]I,A = 1 si y slo si I,Ax para toda asignacin Ax variante en x respecto a A
5. [(x)]I,A = 1 si y slo si I,Ax para alguna asignacin Ax variante en x respecto a A
2
3
3
1
3
1
(a) P = U
(b) P 6= U ,P 6= 0/
(c) P = 0/
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
Sobre la figura (fig. 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 correspondencia 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:
hU = {1, 2, 3}; PI = {1, 3}; cI = 1i
Entonces, aplicando la definicin de satisfaccin de una frmula:
(Pc)I,A = 1
si y slo si
cI,A PI
si y slo si
cI PI
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 figura (fig. 2.4b). La frmula Px es verdadera sobre la siguiente estructura y asignacin:
hU = {1, 2, 3}; PI = {1, 3}i, con A(x) = 3
Efectivamente, aplicando la definicin de satisfaccin de una frmula:
(Px)I,A = 1
si y slo si
xI,A PI
si y slo si
x A PI
si y slo si
3 {1, 3}
83
2.2. Semntica
(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 (fig. 2.4c), donde
complementario de P.
todos los elementos verifican P, es decir, donde todos estn en P,
Ejemplo 2.43 (xPx) Una frmula como sta puede representar la frase alguno (elemento del universo) es rubio o hay alguien (elemento del universo) que es par. Es slo verdadera en las estructuras en que P sea distinto del vaco (fig. 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 cuantificador: si al menos una asignacin de la variable x hace verdadera Px entonces xPx es verdadero.
En (fig. 2.4b), dos de las asignaciones posibles A(x) = 1, A0 (x) = 3 hacen verdadera Px sobre esa
estructura; y por tanto, xPx es verdadera sobre la estructura de (fig. 2.4b).
(xPx) La frmula xPx es verdadera donde xPx es falsa: (fig. 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
,
,
,
,
Pc
Pc
xPx
yPy
Ejemplo 2.45 (x(Px Qx)) Esta frmula es verdadera en las estructuras donde al menos un elemento pertenece a PI y (ese mismo elemento) pertenece tambin a QI . Es decir, cuando la interseccin
de ambos conjuntos no sea vaca. Efectivamente, en ese caso, hay una asignacin de x que verifica
(Px Qx), y por lo tanto x(Px Qx) es verdadera.
Sobre universos finitos, 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 universo. Suponga que en la primera iteracin es xA = 1. Entonces, en el cuerpo del bucle se pregunta
si (P1 Q1); en la siguiente iteracin (P2 Q2), . . ., hasta que finalizan los elementos del universo. En realidad, se abandona el proceso (contestando afirmativamente) tan pronto como se verifica
84
la frmula para un elemento. Slo es preciso recorrer todo el universo para ofrecer una respuesta
negativa. Obviamente, para universos infinitos hay que armarse con algo de paciencia.
Observe la figura (fig. 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.
x(Px Qx) Esta frmula es falsa en (fig. 2.5a). Requiere que un mismo elemento no verifique P
P
PQ
PQ
PQ
3
P Q
2
(a) Estructura
Ejemplo 2.46 ((xPx) (xQx)) Para interpretar esta frmula es fundamental percatarse de que hay
dos mbitos disjuntos cuantificados. Siguiendo con la imagen del bucle, correspondera al siguiente
proceso:
Px
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 verifique, 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 x(PxQx), 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
85
2.2. Semntica
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)
En lgica de proposiciones, cuando se repeta una letra como p dentro de la misma frmula representaba 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 cuantificador en que se encuentren.
Ejemplo 2.47 (xy(Px Qy)) Para poder evaluar esta frmula primero analizaremos una previa:
y(Px Qy). Volviendo a la imagen del bucle, la variable y va a recorrer todas las posibles asignaciones, 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:
(Px Qy)
Sobre la figura (fig. 2.5a), con la asignacin A(x) = 3 la frmula es verdadera. Observe que, dentro
de este bucle, se pregunta primero si (P3 Q1), despus si (P3 Q2), si (P3 Q3). La primera
asignacin de y (A(y) = 1) satisface el cuerpo del bucle, la frmula cuantificada existencialmente.
Luego hace verdadera la frmula existencial.
xy(PxQy) Los mbitos de los cuantificadores 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 A(x) = 3 (o para A(x) = 1) se satisface la frmula existencial interna.
Ejemplo 2.48 (x(Px Qx)) Observe la figura (fig. 2.5b). En tres de las cuatro regiones marcadas
puede haber elementos sin que esta frmula sea falsa:
(Px Qx)
De este bucle informal slo se sale afirmativamente si todas las asignaciones de x verifican la sub que haga verdadero el antecedente y falso
frmula de su mbito. Basta que haya un elemento en PQ,
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:
x(Px Qx)
x(Px Qx)
x(Px Qx)
,
,
,
x(Px Qx)
x(Px Qx)
x(Px Qx)
86
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).
Ejemplo 2.50 (Rxy) Esta frmula, con ambas variables libres, es verdadera sobre la siguiente estructura y asignacin:
hU = {1, 2, 3}; RI = {(1, 3), (2, 2)}i, con A(x) = 1, A(y) = 3
Grficamente, sobre la tabla (tabl. 2.2a), supone verificar que si se entra por la fila 1 y la columna 3,
la casilla pertenece a la relacin.
R
1
2
3
2
x
(a) R U 2
3
x
S
1
2
3
2
x
x
x
3
x
(b) S U 2
87
2.2. Semntica
Ejemplo 2.54 (x(yRxy Px)) Esta expresin podra formalizar una sentencia como existe alguien
que quiere a todo el mundo y que es rubio. En una estructura como:
hU = {1, 2, 3}; RI = {(1, 3), (2, 1), (2, 2), (2, 3)}, PI = {(2}i
efectivamente existe alguien (el 2) que verifica esta frmula. Observe que si alguien quiere a todo el
mundo no puede dejar de quererse a s mismo.
La interpretacin de predicados polidicos U(x1 , . . . , xn ) es grfica e intuitivamente menos inmediata. Tambin lo es la interpretacin sobre universos infinitos o con muchos elementos. Es preciso
utilizar sistemticamente la definicin 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. Grficamente, considere la estructura de la tabla (tabl. 2.2b), donde cI = 3 y la
funcin f I : U 7 U es tal que f I (3) = 2. La frmula es verdadera en esa estructura.
xR f (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 verificarse donde se verifica la otra?
Ejemplo 2.56 (Pc x(Px x c)) Esta frmula es una conjuncin: slo es verdadera cuando se
satisfagan ambas subfrmulas. As, cI debe pertenecer a PI , 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 binaria sobre el universo. Una interpretacin normal requiere que t1 t2 sea verdad cuando el elemento
que representa a t1 sea el mismo que el que representa a t2 : t1I = t2I .
Ejemplo 2.57 (xyzg(g(x, y), z) g(x, g(y, z))) Esta frmula slo es verdadera sobre estructuras
donde la funcin binaria g sea asociativa. Por poner un ejemplo con universo infinito, considere el
conjunto de los nmeros naturales donde gI es la funcin suma.
88
Definicin 2.58 (Satisfacibilidad) Una frmula es satisfacible si existe algn universo, interpretacin y asignacin donde sea verdadera. Un conjunto de frmulas es satisfacible si existe algn universo, interpretacin y asignacin donde coincidan todas en ser verdaderas.
Definicin 2.59 (Validez) Una frmula es verdadera en un universo, con interpretacin I y asignacin A, si se satisface I,A en el mismo. Una frmula es vlida si se satisface para todo universo, toda
interpretacin y asignacin.
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.
Definicin 2.60 (Consecuencia) Una frmula es consecuencia lgica de un conjunto de frmulas
si en toda estructura hU , Ii 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.
Definicin 2.61 (Equivalencia) Dos frmulas y son equivalentes si |= y |= .
2. xPx |= Pa ?
3. Pa |= xPx ?
4. Pa |= xPx ?
No son consecuencia ... La segunda y tercera propuestas no se verifican. Entre las interpretaciones
que satisfacen xPx, efectivamente, algunas satisfacen Pa, pero no todas. Para fijar ideas, en toda
situacin en que alguien es rubio no tiene por qu satisfacerse de forma general que Juan es rubio.
Formalmente, xPx 6|= Pa.
Tampoco en toda situacin en que Juan es rubio debe satisfacerse que todos sean rubios. Puede que existan situaciones donde se satisfagan ambas, pero la primera no garantiza generalmente la
satisfaccin de la segunda: Pa 6|= xPx.
89
Para negar una relacin de consecuencia 1 , . . . , n |= basta mostrar un contrajemplo, una interpretacin que satisface a todas las frmulas de {1 , . . . , n } pero no a . En nuestro caso:
2. xPx 6|= Pa
3. Pa 6|= xPx
Es importante insistir en que xPx 6|= Pa. No siempre que alguien tiene la propiedad P se puede
asegurar que precisamente este determinado elemento la tiene.
Son consecuencia ... Sin embargo, s se puede afirmar:
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 fin y al cabo, esta
ltima frmula se satisface si hay alguna asignacin de x que satisface Px.
Ejemplo 2.62 Considere la frmula universalmente cuantificada:
y(Qy Ryy)
Una de las (infinitas) interpretaciones que la satisfacen es:
I = hU = {1, 2, 3}, con QI = {1, 2}, RI = {(1, 1), (1, 3), (2, 2)}i
Esto es as porque, cuando se considera que y es el elemento 1, efectivamente:
0
Y porque resulta verdadera cualquier otra asignacin de y. Compruebe que son verdaderas tanto
0 Q2 R220 como 0 Q3 R330 .
Compruebe que en todos los modelos en que es verdadera la frmula y(Qy Ryy) tambin lo
es una frmula como Qa Raa.
Propiedades preservadas La pregunta inicial se poda haber planteado sobre frmulas ms complejas, como las de la segunda columna de esta tabla:
1.
2.
3.
4.
xPx |= Pa ?
xPx |= Pa ?
Pa |= xPx ?
Pa |= xPx ?
x |= (x/a) ?
x |= (x/a) ?
(x/a) |= x ?
(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 cuantificador y particularizando (sustituyendo) la
variable x por una constante a. Esto es lo que expresa como (x/a).
90
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 cuantificador 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 expresin 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 6|= Pa, sin
embargo son igualmente satisfacibles. Basta que se muestre un slo modelo de una para (rectificndolo si es necesario) obtener un modelo de la otra.
pq
premisa
xPx yQy
premisa
qr
premisa
yQy zSz
premisa
suposic
xPx
suposic
E 1, 3
yQy
E 1, 3
E 2, 4
zSz
E 2, 4
pr
I 3, 5
xPx zSz
I 3, 5
91
x(Qx yRxy)
x E
Qy yRyy
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:
y(Py Qy)
premisa
Pa
premisa
Pa Qa
yE : 1
Qa
E : 2, 3
92
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 fija
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 especficas de a se puede
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
x I
Ejemplo 2.67 Un breve ejemplo que incluye eliminacin e introduccin de cuantificadores universales:
xPx
premisa
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 especficas, 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.
93
Ejemplo 2.68 Otro ejemplo breve que incluye tanto eliminacin como introduccin de universales:
x(Px Qx)
premisa
y(Qy Sy)
premisa
Pa Qa
xE : 1
Qa Sa
yE : 2
Pa
suposic
Qa
E : 3, 5
Sa
E : 4, 6
Pa Sa
I : 5, 7
x(Px Sx)
xI : 8
x(Px Qx)
premisa
Pa Qa
xE : 1
Pa
E : 2
Pa Sa
I : 3
x(Px Sx)
xI : 4
Eliminacin
La eliminacin del cuantificador existencial no se puede realizar directamente: ya se ha visto que aunque 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]
..
.
x E
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.
94
Ejemplo 2.70
a
x(Px Qx)
premisa
Pa Qa
suposic
Pa
E : 2
xPx
xI : 3
xPx
xE : 1, 2
95
[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 |= .
1. (p (q r))
2. (r p)
1 ,2
3. r
2 ,2
4. p
1 ,1
6. p
, 5
,4
5. p?
?? 2 ,1
??
?
7. (q r)
1 ,7
8. q
2 ,8
9. r
, 3
Figura 2.7: Tableau que confirma que p (q r) ` r p
Ejemplo 2.72 El rbol de la figura (fig. 2.8) es igual al del ejemplo previo (fig. 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 figura (fig. 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.
96
2. ((r r0 ) (p p0 ))
1 ,2
3. (r r0 )
2 ,2
4. (p p0 )
,4
5. (p p0 )
1 ,1
OOO ,1
OOO2
OOO
'
6. (p p0 )
, 5
7. ((q q0 ) (r r0 ))
1 ,7
8. (q q0 )
2 ,8
9. (r r0 )
, 3
Figura 2.8: (p p0 ) ((q q0 ) (r r0 )) ` (r r0 ) (p p0 )
1. (xPx (yQy zRz))
2. (zRz xPx)
1 ,2
3. zRz
2 ,2
4. xPx
1 ,1
,4
5. xPxOO
6. xPx
, 5
OOO2 ,1
OOO
OO'
7. (yQy zRz)
1 ,7
8. yQy
2 ,8
9. zRz
, 3
Figura 2.9: xPx (yQy zRz) ` zRz xPx
97
wRwa
98
Cada instanciacin debe hacerse sobre una constante nueva. De lo contrario, esta constante tendra
unas propiedades (fijadas en otras frmulas, donde aparece) que pueden modificar (innecesariamente)
la decisin final 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 afirmar (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
cuantificador 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 figura (fig. 2.10) muestra que:
xPx yQy ` yx(Px Qy)
[nodos 1-2]Respectivamente, hiptesis y negacin de la supuesta conclusin.
[nodos 3-4] Expansin () de la frmula 1. Estratgicamente, siempre es preferible expandir primero las frmulas proposicionales ( y ), luego las existenciales () y finalmente 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 cualquiera. 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 favoreciendo el cierre de esta ltima rama en 14.
Ejemplo 2.75 La tabla (2.11) confirma que
xy(Rxy Qy), xyRxy ` zQz
99
conjuntivas
1
X Y
X
(X Y ) X
(X Y )
X
(X Y ) X
X
(X Y )
X Y
X
X 6 Y
X
X 6 Y
X
2
Y
Y
Y
Y
Y
Y
Y
Y
disyuntivas
1
(X Y ) X
X Y
X
X Y
X
X Y
X
X Y
X
(X Y )
X
(X 6 Y ) X
(X 6 Y )
X
2
Y
Y
Y
Y
Y
Y
Y
Y
universales
(t)
xX
X(t)
xX X(t)
existenciales
(a)
xX
X(a)
xX X(a)
conectivas monarias:
X
X
>
>
conectivas binarias:
1
2
cuantificador universal:
(t)
cuantificador existencial:
(p)
1 | 2
100
1. xPx yQy
2. yx(Px Qy)
OOO
OOO
O
2 ,1 OO'
oo
ooo
o
o
wooo 1 ,1
4. yQy
3. xPx
,2
5. x(Px Qa)
10. Qc
1 ,6
,11
7. Pb
,2
,5
6. (Pb Qa)
,4
2 ,6
1 ,12
8. Qa
13. Pd
,3
2 ,12
14. Qc
, 10
9. Pb
, 7
Figura 2.10: Tableau que confirma que xPx yQy ` yx(Px Qy)
1. xy(Rxy Qy)
2. xyRxy
3. zQz
,1
4. y(Ray Qy)
,4
5. (Rab Qb)
oo
ooo
o
o
wooo 1 ,5
6. Rab
,2
8. yRay
,8
OOO
OOO
O
2 ,5 OO'
7. Qb
,3
10. Qb
, 7
9. Rab
, 8
Figura 2.11: Tableau que confirma que xy(Rxy Qy), xyRxy ` zQz
101
2.5. Resolucin
2.5 Resolucin
2.5.1 Forma prenexa
Toda frmula de primer orden admite infinitas frmulas equivalentes: frmulas satisfacibles exactamente por los mismos modelos. Dos frmulas equivalentes son dos expresiones sintcticas distintas
que significan lo mismo (sobre esta semntica).
El objetivo de esta seccin se resume en pocas palabras: dada una frmula cualquiera, encontrar una frmula equivalente tal que todos sus cuantificadores 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):
xytw((Px Qy) Rtw)
yxtw((Px Qy) Rtw)
txyw((Px Qy) Rtw)
Sin embargo, entre otras muchas, no ser equivalente a las anteriores:
wxyt((Px Qy) Rtw)
ni ninguna otra donde w aparezca antes de t.
Lo primero que hay que fijar es que esto es posible: efectivamente, se demuestra que para toda
frmula existen frmulas prenexas equivalentes. Inmediatamente despus la pregunta es cmo: existe 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 equivalentes entre s: reemplace, en la frmula inicial, una de sus subfrmulas por otra equivalente y
obtendr una frmula global final 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).
A estas equivalencias habr que aadir otras que se utilizarn para:
introducir negaciones:
gan)
x x,
renombrar variables:
x y(x/y),
x x,
x y(x/y)
xy yx,
xy yx
102
x( )
x( )
x
x
x( )
x( )
x
x
x( )
x( )
x
x
x( )
x( )
Ejemplo 2.77 Dada la frmula xPx yQy, si se pretende desplazar el cuantificador x, se observa
que es de la forma x donde no tiene apariciones libres de x. Luego:
xPx yQy x(Px yQy)
Alternativamente, la frmula inicial era tambin de la forma y donde en no hay apariciones
libres de y (del cuantificador que se desea desplazar). Luego, tambin:
xPx yQy y(xPx Qy)
Siguiendo con este ltimo caso, la subfrmula (xPx Qy) es de la forma x , donde no
contiene x libres, luego (xPx Qy) x(Px Qy) . Y por tanto:
xPx yQy y(xPx Qy) yx(Px Qy)
Alternativamente se poda haber obtenido:
xPx yQy x(Px yQy) xy(Px 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 dificultades para interpretar alguna de las
frmulas convendra, en este punto, que repase las notas sobre semntica de primer orden.
Ejemplo 2.78 Considere la frmula xPx xQx. Puesto que es una frmula condicional:
xPx xQx xPx xQx xPx xQx x(Px xQx)
Este ltimo paso se justifica 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 final. En la subfrmula
(Px xQx) no se puede desplazar de forma equivalente el cuantificador x puesto que la otra
frmula (Px) s contiene apariciones libres de la variable del cuantificador:
(Px xQx) 6 x(Px Qx)
/ satisface la frmula derecha: efectivamente existe
Basta ver que hU = {1, 2}, con P = {1}, Q = 0i
un elemento (2) que satisface (Px Qx). Esta misma interpretacin, con la asignacin xA = 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.
103
2.5. Resolucin
En este ltimo ejemplo siga la pista del cuantificador existencial del antecedente: acaba produciendo un cuantificador universal en la cabecera de la frmula prenex. Intrnsecamente, su significado
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( )
Ejemplo 2.79 Los inconvenientes mostrados en el ejemplo previo se pueden evitar desde el principio.
Basta renombrar variables inicialmente. As, la frmula:
y(xRxy (xSxy yPy))
puede reescribirse equivalentemente como:
z(xRxz (wSwz yPy))
donde cada cuantificador afecta a una variable distinta. A partir de aqu, uno de los posibles caminos
hacia la forma prenexa es:
1.
2.
3.
4.
6.
7.
8.
9.
10.
11.
[renombrar variables]
[eliminar ]
[introducir ]
[introducir ]
[introducir ]
[desplaz. cuantif.]
[desplaz. cuantif.]
[desplaz. cuantif.]
[desplaz. cuantif.]
[desplaz. cuantif.]
104
2.5. Resolucin
105
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
cuantificadores universales la preceden. La variable del existencial, en la matriz, se debe sustituir por
una funcin nueva de las variables de los cuantificadores universales precedentes.
Ejemplo 2.82 Al eliminar (en el proceso de eskolemizacin) los existenciales de las siguientes frmulas se obtiene:
1. xyz(Qzx Syz) ; xy(Q f (xy)x Sy f (xy))
2. xyzw(Rzxw Syz) ; xyw(R f (xy)xw Sy f (xy))
3. xyztw(Rzxw Tyzt) ; xyw(R f (xy)xw Ty f (xy)g(xy))
4. xtyzw(Rzxw Tyzt) ; xyw(R f (xy)xw Ty f (xy)h(x))
5. txyzw(Rzxw Tyzt) ; xyw(R f (xy)xw Ty f (xy)a)
6. tzxyw(Rzxw Tyzt) ; xyw(Rbxw Tyba)
Las constantes de Skolem se pueden interpretar como una funcin de Skolem de cero argumentos; es
decir, se producen cuando no hay ningn cuantificador universal delante del existencial eliminado.
106
En este punto se tiene una frmula matriz, con sus variables universalmente cuantificadas en la cabecera, 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 entonces 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 definir como una disyuncin de literales: C = (l1 , . . . , ln ). La matriz debe tener la
forma de una conjuncin de tales clusulas: C1 . . . Ck .
Ejemplo 2.83 Los pasos que se han enumerado se pueden apreciar en el siguiente desarrollo:
La matriz de esta ltima frmula est efectivamente en forma normal conjuntiva: consta de dos clusulas 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:
xw((Rx f (x) Pa) (Rx f (x) Qw))
es equivalente a
x((Rx f (x) Pa) w(Rx f (x) Qw))
utilizando, en el otro sentido, la equivalencia que permita desplazar cuantificadores a la cabeza, y
(x(Rx f (x) Pa) xw(Rx f (x) Qw))
puesto que x( ) (x x) distributividad que presenta el universal slo frente a la conjuncin (as como el existencial frente a la disyuncin). Renombrando variables:
(x(Rx f (x) Pa) tw(Rt f (t) Qw))
y volviendo a colocar los cuantificadores en cabeza:
xtw((Rx f (x) Pa) (Rt f (t) Qw))
En resmen: llegados a la forma normal conjuntiva, a clusulas distintas se les puede (y debe) independizar sus variables comunes, renombrndolas.
Lo que resta es un casi un mero cambio notacional: prescinda de los cuantificadores y simplemente
muestre el conjunto de clusulas de la frmula:
{(Rx f (x) Pa), (Rt f (t) Qw)}
o, incluso, defina cada clusula como el conjunto de sus literales:
{{Rx f (x), Pa} , {Rt f (t), Qw}}
107
2.5. Resolucin
2.5.4 Unificacin
Introduccin
Recordemos brevemente el Principio de Resolucin para lgica de proposiciones. Suponga que una
interpretacin satisface las siguientes dos clusulas:
(p r 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:
(p r t)
(r q)
tambin satisface
(p t q)
No es difcil aceptar el mismo principio sobre clusulas con predicados sin variables. Toda interpretacin que satisface:
(Pa Rba T cb)
(Rba Qe)
tambin satisface
(Pa T cb Qe)
Este principio no se verifica 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:
(Pa Rxa T cx)
(Rba Qe)
Sobre ellas no es aplicable directamente el principio de resolucin previo; no obstante, si son satisfacibles ambas tambin lo sern las siguientes dos clusulas:
(Pa Rba T cb)
(Rba Qe)
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:
(Pa T cb Qe)
Al proceso previo de instanciacin se le denomina unificacin. 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 referencias.
Respetada cierta condicin, este proceso de sustitucin no altera la satisfacibilidad. Si
dos clsulas eran satisfacibles, tambin lo sern las clusulas resultantes de estas sustituciones. Adems, si lo que se ha unificado 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.
108
Puesto que ninguna de las acciones que se ejecutan (unificacin 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 fijar ideas, si se parte de 10 clusulas y se utilizan la unificacin 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 afirmar 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 definiciones y
algoritmos que las materializan.
Unificadores
Considere las siguientes dos frmulas atmicas:
P(x, f (g(c)), x)
P(b, 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 unificadas. Y si el predicado en una
y otra no fuera el mismo, no seran unificables.
Observe tambin que las definiciones sobre unificacin, sin ms, no requieren contar con un predicado 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 unificar las frmulas mencionadas:
P(x, f (g(c)), x)
P(b, f (y), b)
se puede intentar inicialmente unificar los primeros trminos. Como uno de ellos es una variable, la
sustitucin 1 = x/b servir:
P(b, f (g(c)), b)
P(b, 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/g(c). Observe
que no bastara con la susticin y/c: la variable debe sustituirse por el subtrmino mximo en que no
coinciden. El resultado final de este proceso es:
P(b, f (g(c)), b)
P(b, f (g(c)), b)
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/g(c)}
La unificacin de todos los pares de trminos correspondientes de un par de predicados se puede
descomponer en pasos. Cada uno de ellos considera sucesivamente la unificacin 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 unificar los trminos t1 = f (g(c, h(x))) y t2 = f (g(c, y)) se deberan
recorrer ambos desde la izquierda hasta que se detecte la posicin en que comienzan a diferir. En
este caso difieren en los subtrminos h(x) en t1 e y en t2 . Es decir, el rbol de t1 y t2 es idntico
109
2.5. Resolucin
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/h(x).
No es posible unificar si ninguno de los dos subtrminos es una variable, sino constantes o funciones. Por ejemplo: en t1 = f (g(c, h(x))) y t2 = f (g(c, b)) en t1 = f (g(c, h(x))) y t2 = f (g(c, g(x))).
Ejemplo 2.86 Al intentar unificar t1 = f (x, h(g(x)) y t2 = f (g(y), h(z)) se observa que el primer par
de subtrminos crticos es x en t1 y g(y) en t2 . Si se consigue unificar ambos an habr que unificar
los subtrminos crticos z y g(x).
Para unificar el primer par de subtrminos crticos basta ejecutar la sustitucin 1 = x/g(y). Se
obtiene entonces t1 = f (g(y), h(g(g(y))) y t2 = f (g(y), h(z)). Luego, los siguientes subtrminos crticos unificables ya no son los que se detectaron: ahora son z en t2 y g(g(y)) en t1 . Basta ejecutar la
sustitucin 2 = z/g(g(y)) para obtener: t1 = t2 = f (g(y), h(g(g(y))).
Una sola sustitucin que unifica ambos trminos se calcula por composicin de las anteriores:
= 2 1 . Y es tal que t1 = t2 .
Unificacin de un par de trminos Para un nico par t1 y t2 de trminos (de argumentos de un
predicado), se puede proceder a su unificacin mediante el siguiente algoritmo:
Sea inicialmente la sustitucin identidad (la que sustituye cada variable por s misma);
W HILE t1 6= t2 D O:
(principio)
determine un par de subtrminos crticos s1 y s2 entre t1 y t2
IF ni s1 ni s2 es una variable
THEN no unificables
ELSE
{var/term}
(fin)
En el pseudocdigo anterior, no unificables 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 g(w). O puede deberse a que se intenta unificar 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 unificacin 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).
110
El primer par de subtrminos crticos es x y h(z). Como uno de ellos es una variable (x) y sta no
ocurre en el otro trmino: se efecta la sustitucin 1 = x/h(z). Entonces:
t1 = f (h(z), g(h(z), a), z)
con t0 0 = t00 0
Es decir, las sustituciones de 0 se aplican tambin a los restantes trminos. Si se desea unificar
el par de trminos en segunda posicin, stos son ahora t1 0 y t10 0 . Si se encuentra un unificador 1
para ellos
[P(t0 ,t1 , . . . ,tn )]0 1 ,
[P(t00 ,t10 , . . . ,tn0 )]0 1
producen:
(t0 0 )1 = (t00 0 )1
(t1 0 )1 = (t10 0 )1
111
2.5. Resolucin
x,
h(y),
f (w),
y,
g( f (x), b)
g( f (h( f (t))),t)
)
)
Para el primer par de trminos correspondientes se obtiene 0 = {x/h(y)}. Aplicando esta sustitucin sobre ambos literales resulta:
P(
P(
h(y),
h(y),
f (w),
y,
g( f (h(y)), b)
g( f (h( f (t))),t)
)
)
h( f (w)),
h( f (w)),
f (w),
f (w),
g( f (h( f (w))), b)
g( f (h( f (t))),t)
)
)
Para unificar 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 unificaba este par) es 2 = {w/t}{t/b} = {w/b,t/b}. Aplicando
2 :
P(
P(
h( f (w)),
h( f (w)),
f (w),
f (w),
g( f (h( f (b))), b)
g( f (h( f (b))), b)
)
)
Es decir,
[P( x, f (w), g( f (x), b))]0 1 2 = [P( h(y), y, g( f (h( f (t))),t) )]0 1 2
donde
= 0 1 2 = {x/h(y)}{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, respectivamente, un literal y su complementario. Por ejemplo, en:
P(x, f (y)) Q(x)
R(z) P(a, z)
se puede intentar la resolucin sobre los predicado P() y P(); pero esto requiere unificar sus trminos:
P(a, f (y)) Q(a)
y
R( f (y)) P(a, f (y))
El resultado de la resolucin es entonces la clusula:
Q(a) R( f (y))
Este principio, junto a los desarrollos previos, facilita la ejecucin de los siguientes pasos:
1. Dado un conjunto de frmulas = {1 , . . . , k }, se quiere comprobar si una frmula es
consecuencia de ellas. Nieguela y verifique si el conjunto {} es insatisfacible.
2. Para ello, en este sistema, debe escribir cada frmula de este conjunto en forma clausulada:
m ; (C1 . . . Cr ). 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.
112
Luego la primera frmula es tan satisfacible como este par de clusulas. Observe que, en (3.), se
podan haber sacado los cuantificadores en cualquier orden. Interesa desplazar primero los existenciales para simplificar 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 cuantificadores universales, que quedan implcitos.
En una expresin como (5) siempre es posible volver a introducir los cuantificadores universales
y renombrar variables de forma tal que clusulas distintas no utilicen las mismas variables.
La forma clausulada de la segunda frmula es:
1.
2.
3.
4.
(zRz xPx)
(zRz xPx)
zRz xPx
zRz xPx
Rc Px
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:
{(Pa Qb), (Pa Rz), (Rc), (Px)}
Utilizando unificacin y resolucin:
113
2.5. Resolucin
1.
2.
3.
4.
5.
6.
(Pa Qb)
(Pa Rz)
(Rc)
(Px)
(Pa)
()
2, 3 z/c
4, 5 x/a
Bibliografa complementaria
Cualquiera de los textos citados en el captulo de Lgica de Proposiciones aborda tambin su extensin a Lgica de Primer Orden.
Entre los textos ms enfocados a su uso computacional se encuentrar [Huth y Ryan 2000], [BenAri 90], [Burris 98] y muy especialmente [Fitting 96]. Los lectores ms interesados por la fundamentacin 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 Computacin e Inteligencia Artificial, por ejemplo [Gabbay el al. 93-98] entre otros.
Actividades y evaluacin
Adjuntaremos ejercicios en las sucesivas actualizaciones de estas notas.
114
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 eficiente
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 finalmente en qu medida este lenguaje verifica 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 PROLOG se apartan de la programacin lgica pura por motivos de eficiencia. 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 identifique 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
unificacin, con el fin de obtener un procedimiento coherente y completo para dictaminar la satisfacibilidad 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,
117
118
Fact(n) =
1
n Fact(n 1)
cuando n = 0
cuando n > 0
n
Fact = 1
I f n = 0 then return Fact
Fact = Fact n, n = n 1, go to Paso2
y:
Entrada
Paso1
Paso2
Paso3
n
Fact = 1, n1 = 0
I f n1 = n then return Fact
n1 = n1 + 1, Fact = Fact n1 , go to Paso2
119
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 n 1 al cmputo del factorial. El segundo algoritmo, por el
contrario, calcula el factorial de abajo a arriba, partiendo de la afirmacin expresada en el componente lgico como Fact(0) = 1 y derivando de sta nuevas afirmaciones sucesivamente (Fact(1) = 1,
Fact(2) = 2,...) hasta encontrar la solucin. Ambos algoritmos generan las mismas respuestas, pero
la eficiencia y el consumo de espacio de almacenamiento que requieren difiere. 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 especifica 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:
Fact(0, 1) nn1 mm1 [(n > 0) (n1 = n 1) Fact(n1 , m1 ) (m = n m1 ) Fact(n, m)]
donde la interpretacin de Fact(x, 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 algoritmos 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 definido la funcin de concatenacin
(que denotaremos con el smbolo ), los predicados subcadena, pre f i jo y su f i jo, y los axiomas siguientes:
1. x subcadena(x, x)
2. xyz ((subcadena(x, y) su f i jo(y, z)) subcadena(x, z))
3. xy su f i jo(x, y x)
4. xyz ((subcadena(x, y) pre f i jo(y, z)) subcadena(x, z))
5. xy pre f i jo(x, x y)
Esta teora tambin puede expresarse utilizando el operador de implicacin inversa , de modo
que cada axioma A se escriba como: A = x1 ...xk (B B1 ... Bm ).
1. x subcadena(x, x)
2. xyz (subcadena(x, z) (subcadena(x, y) su f i jo(y, z)))
3. xy su f i jo(x, y x)
4. xyz (subcadena(x, z) (subcadena(x, y) pre f i jo(y, z)))
5. xy pre f i jo(x, x y)
120
Bajo esta forma, resulta intuitivo interpretar cada axioma A como un procedimiento que se lee
como:
para computar B, es necesario computar previamente B1 ...Bm
o, dicho de otro modo,
si desea averiguar si se satisface la conclusin B, averige si se satisfacen las premisas
B1 ...Bm
En trminos informales, el anterior procedimiento constituye el componente de control o mecanismo 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 sufijo y de z y averige si x es una
subcadena de y
3. x es un sufijo de y x
4. Para averiguar si x es una subcadena de z, encuentre un prefijo y de z y averige si x es una
subcadena de y
5. x es un prefijo de x y
Ejercicio 3.3 Defina una clusula que permita resolver el problema de ordenar los tres nmeros distintos del conjunto X = {X1 , X2 , X3 }. La secuencia ordenada {Xi , X j , Xk } deber satisfacer:
Xi , X j , Xk pertenecen a X;
Xi , X j , Xk son distintos entre s;
Xi es menor que X j ;
X j es menor que Xk .
Suponga definidas las relaciones: pertenece(Xi , X), distintos(Xi , X j ), menor(Xi , X j ).
Algunos lenguajes de programacin lgica permiten especificar ambas componentes especficas
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 eficiencia de los programas puede incrementarse cambiando el componente de control sin modificar el
componente lgico. Sin embargo el ideal de la programacin lgica es que el programador se despreocupe 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.
121
122
1 subcadena(x, x)
2 subcadena(x, y) su f i jo(y, z) subcadena(x, z))
3 su f i jo(x, y x)
4 subcadena(x, y) pre f i jo(y, z) subcadena(x, z))
5 pre f i jo(x, x y)
Una forma de probar que la frmula subcadena(a b c, a a b c c) es una consecuencia lgica
de la teora es refutar mediante resolucin la frmula subcadena(a b c, a a b c c), segn se
describe en la siguiente secuencia:
6
substr(a b c, a a b c c)
7
substr(a b c, y1 ) su f f ix(y1 , a a b c c) ( de 6 y 2 con x = a b c, z = a a b c c)
8
substr(a b c, a b c c)
(resolvente de 7 y 3)
9
substr(a b c, y2 ) pre f ix(y2 , a b c c)
(resolvente de 8 y 4)
10 substr(a 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 todas las variables estn cuantificadas de forma universal y que las comas en el antecedente denotan
conjuncin.), la teora se transforma entonces en:
1. subcadena(x, x)
2. subcadena(x, z) subcadena(x, y), su f i jo(y, z))
3. su f i jo(x, y x)
4. subcadena(x, z) (subcadena(x, y), pre f i jo(y, z))
5. pre f i jo(x, x y)
Bajo esta perspectiva, la refutacin de subcadena(a b c, a a b c c), prueba de que la clusula
bsica subcadena(a 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 sustitucin:
{ 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. Fact(0, 1)
123
124
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 incluyen instrucciones explcitas de operacin, considerndose que el conocimiento y las suposiciones
acerca del problema, proporcionados en forma de axiomas lgicos, son suficientes para resolverlo. El
conjunto de axiomas describe as la relacin entre la entrada y salida del programa, y constituye la alternativa 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 correspondientes 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 programacin algortmica radica en que en la programacin algortmica el programador disea el conocimiento del problema en forma de instrucciones explcitas, y disea tambin el control de la computacin como parte esencial del programa. Existe, sin embargo otra diferencia clave entre ambos
paradigmas de programacin: los lenguajes algortmicos slo tienen significado 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 memoria 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 diseado 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 anteriores 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 codificacin 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 finalmente traducirse para ser ejecutados. Los lenguajes de programacin
lgica, por el contrario, se derivan del lenguaje abstracto de la lgica matemtica, y no guardan dependencia 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.
125
Dejar que un intrprete de PROLOG asuma exclusivamente el control de ejecucin de un programa puede conducir a soluciones ineficientes, por ejemplo, cuando se entra en ramas de recursin
infinita (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 especificacin 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 define el
sistema de clusulas). En la seccin 3.4.2 de este captulo discutiremos estos aspectos del lenguaje PROLOG. En la siguiente seccin exploramos primero ms en profundidad la base terica de la
programacin lgica.
126
Definicin 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 define su semntica declarativa
SD (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 definidos.
Ejemplo 3.16 El conjunto de clusuas de Horn:
1. q(x, y) p(x, y)
(en forma clausulada p(x, y) q(x, y))
2. q(x, y) p(x, z), q(z, y)
(en forma clausulada p(x, z) q(z, y) q(x, y))
3. p(b, a)
7. p( f , b)
4. p(c, a)
8. p(h, g)
5. p(d, b)
9. p(i, h)
6. p(e, b)
10. p( j, h)
Es un programa que tiene dos procedimientos, uno de los cuales es una base de hechos. Supongamos que se desea utilizar este programa para demostrar la validez de la frmula yz(q(y, b) q(b, z))
y, ms an, para obtener una sustitucin de las variables y, z que hace cierta la frmula q(y, b) q(b, z).
La validez de la frmula queda demostrada refutando su negacin yz(q(y, b) q(b, z)) =
(q(y, b) q(b, z)) en el sistema de clusulas. Una refutacin posible consiste en la siguiente
secuencia:
1. Se escoge resolver q(y, b) con la clusula 1 obtindose p(y, b), q(b, z) (en forma clausulada
p(y, b) q(b, z))
2. Se escoge resolver p(y, b) con la clusula 5 aplicando la sustitucin {y d} obtindose
q(b, z) (en forma clausulada q(b, z))
3. Se toma el nico literal posible para resolver con la clusula 1, obtenindose p(b, z) (en
forma clausulada p(b, 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
(q(y, b) q(b, z)), con lo que queda demostrada la validez de la frmula yz(q(y, b) q(b, z)).
Veamos ahora que el problema resuelto equivale al problema de encontrar una respuesta correcta
para la frmula q(y, b) q(b, z), es decir, que la sustitucin encontrada, = {y d, z a},
es una respuesta correcta para las variables de la clusula objetivo p(y, b), q(b, z). Efectivamente,
segn la definicin antes presentada, una substitucin para las variables de G = p(y, b), q(b, z)
es una respuesta correcta si P ( G), es decir, si P ( (q(y, b) q(b, z))) ), es decir,
P ( (q(y, b) q(b, 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 (q(y, b) q(b, 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
127
128
129
Definicin 3.24 Arbol SLD. Sea P un conjunto de clusulas de programa, R una regla de computacin 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 Gn , se crea un nodo ni para cada nueva clusula objetivo
Gni que puede obtenerse resolviendo el literal escogido por R con la cabeza de una clusula en P.
Definicin 3.25 Rama de xito de un rbol SLD: Rama que conduce a una refutacin
Definicin 3.26 Rama de fallo de un rbol SLD: Rama que conduce a una clusula objetivo cuyo
literal seleccionado no pude unificarse con ninguna clusula del programa.
Definicin 3.27 Rama infinita de un rbol SLD: Rama correspondiente a una derivacin no terminante.
Definicin 3.28 Regla de bsqueda en un rbol SLD: Procedimiento de bsqueda de una refutacin
en un rbol SLD.
Definicin 3.29 Procedimiento de refutacin SLD: Algoritmo de refutacin SLD junto con la especificacin de una regla de computacin y una regla de bsqueda.
Ejemplo 3.30 Sea el programa: P = {p(b), p(a), q(a, b)}
Los siguientes rboles SLD consisten en una nica rama:
p(b) rama de xito
p(a) rama de xito
q(a, a) rama de fallo
q(a, b) rama de xito
q(b, a) rama de fallo
q(b, b) rama de fallo
Ejemplo 3.31 En la figura 3.1 se muestra el rbol de derivacin correspondiente a la clusula objetivo
q(y, 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 p(y, b), q(b, 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 infinitas ramas de xito o bien cada una de sus ramas tiene el mismo nmero finito de ramas
de xito.
Del teorema de completitud se deduce que la resolucin SLD es un procedimiento completo independientemente 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 eficiencia. 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
130
(2 )
p (y ,b )
(5 )
(6 )
p (y,z), q (z,b )
(7 )
(3 )
(1 0 )
q (a ,b )
q (h ,b )
(1 )
(2 )
p (a ,b )
x
q (a ,z), q (z,b )
.
.
.
(1 )
(2 )
p (h ,j)
p (h ,z), q (z,j)
.
.
.
131
3.
4.
5.
6.
p(b, a).
p(c, a).
p(d, b).
p(e, b).
7. p( f , b).
8. p(h, g).
9. p(i, h).
10. p( j, h).
De hecho, este programa ilustra una tpica definicin recursiva de predicado PROLOG. Los predicados ms complejos (q(X,Y )) se definen en trminos de predicados ms sencillos (p(X,Y )), y las
clusulas ms generales son recursivas, es decir, el predicado definido (cabeza de la clusula) aparece
en la definicin (cuerpo de la clusula). As como en los lenguajes algortmicos se utiliza la iteracin (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 anterior. 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 arco(Nodo1, 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
conectado(Nodo1, Nodo2), que es cierta si los nodos Nodo1 y Nodo2 estn conectados, es el cierre
transitivo de la relacin arco. El predicado conectado se define mediante el siguiente programa:
1. conectado(Nodo1, Nodo2) : arco(Nodo1, Nodo2).
2. conectado(Nodo1, Nodo2) : arco(Nodo1, Enlace), conectado(Enlace, Nodo2).
El siguiente conjunto de hechos representara un grafo inconexo:
3.
4.
5.
6.
arco(b, a).
arco(c, a).
arco(d, b).
arco(e, b).
7.
8.
9.
10.
arco( f , b).
arco(h, g).
arco(i, h).
arco( j, h).
Ejercicio 3.36 Defina en PROLOG el predicado ancestro, cierre transitivo de la relacin padre. Proporcione asimismo una definicin recursiva en PROLOG para el predicado f actorial, partiendo de su
definicin 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 fin 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 identifica con el smbolo ?.
En el sistema de clusulas asociado, responder a la anterior pregunta supone computar una respuesta para el objetivo conectado(y, b), conectado(b, z), que se introduce en la lnea de comandos
del intrprete como: ? conectado(Y, b), conectado(b, Z). La respuesta correcta obtenida en el ejemplo 3.16 de la demostracin de validez de la frmula yz(q(y, b) q(b, 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:
132
a rc o (Y ,b ), co n e cta d o (b ,Z )
(5 )
Y d
co n e cta d o (b ,Z )
(1 )
a rc o (b ,Z )
(3 )
Z a
133
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 figura 3.3, donde los puntos de retroceso se han sealado con un asterisco.
* co n e cta d o (Y ,b ), co n e cta d o (b ,Z )
(1 )
* a rco (Y ,b ), co n e cta d o (b ,Z )
(5 )
Y d
(1 )
a rco (b ,Z )
(3 )
X a
* con e ctado
(b ,Z )
(1 )
a rco (b ,Z )
a rco (b ,Z )
Z a
(3 )
* co n e cta d o (a ,Z )
(1 )
Y f
(1 )
a rco (b ,X ), c o n ecta d o (X ,Z )
Z a
FALLO
* co n e cta d o (b ,Z )
(b ,Z )
(2 )
(3 )
Z a
FALLO
FALLO
(2 )
a rco (a ,Z )
FALLO
(7 )
Y e
* con e ctado
(3 )
(6 )
a rco (a ,P ), c o n ecta d o (P ,Z )
FALLO
134
* a rco (Y ,b ), co n e cta d o (b ,Z )
FALLO
* con e ctado
* con e ctado
(b ,Z )
FALLO
* co n e cta d o (a ,Z )
FALLO
* co n e cta d o (b ,Z )
(b ,Z )
FALLO
FALLO
Figura 3.4: Exploracin del rbol SLD del objetivo conectado(Y, b), conectado(b, Z) por un intrprete
PROLOG
computar ni una sola respuesta, quedndose eternamente explorando la primera rama infinita.
co n e cta d o (X ,Y )
(1 )
Figura 3.5: Rama infinita del rbol SLD del objetivo conectado(X,Y )
Vemos pues, como se anticip en la seccin anterior, que las estrategias de bsqueda en profundidad 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 programador 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 encuentra todas las soluciones a la pregunta ? conectado(Nodo1, Nodo2) explorando su rbol SLD.
135
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 ? conectado(Nodo, h) y solicitar todas
las respuestas posibles. La tarea puede facilitarse no obstante definiendo 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 ? conectados(ListaNodos, h), donde el predicado conectados se
habra definido previamente como:
136
Programas iterativos
En la introduccin de este captulo presentamos dos algoritmos de clculo de la funcin factorial. En
PROLOG, dicha funcin se codifica naturalmente como:
f actorial(0, 1).
f actorial(N, M) : N > 0, N1 is N 1, f actorial(N1, M1), .M is N M1.
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 convencionales. 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 computacin de cada etapa de una iteracin. Ilustramos la tcnica con una versin iterativa del programa
anterior:
f actorial(N, M):f actorial(N, T, M):-
f actorial(N, 1, M).
N > 0,
T 1 is T N,
N1 is N 1,
f actorial(N1, T 1, M).
f actorial(0, M, M).
Este programa no vulnera estrictamente los principios de la programacin lgica. Sin embargo,
su significado 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 significado declarativo como frmulas lgicas y cuyo propsito principal es generar determinados efectos laterales. En esta seccin trataremos
dos categoras de predicados no lgicos que no interfieren 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 verifican (salvando el caso en que el predicado get detecta el final de un fichero,
que produce un fallo). Su significado 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 confinado a reas
bien definidas de los programas, y puesto que su comportamiento lgico es trivial, no interfieren
realmente con la estructura lgica declarativa de los programas PROLOG.
Predicados para el clculo aritmtico La mayora de los programas implican algn clculo aritmtico. 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 definirse recursivamente
del siguiente modo:
numero_natural(0).
numero_natural(sucesor(X)) : numero_natural(X).
137
138
Predicado de corte
El corte es el predicado no lgico ms controvertido de PROLOG, por la modificacin tan importante
que supone de la programacin lgica. El predicado de corte, denotado con el smbolo !, interfiere directamente 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 perspectiva 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 ineficiencia y, en particular, de
computacin no terminante.
Ejemplo 3.40 Consideremos la siguiente definicin del predicado mezcla en PROLOG:
%mezcla(Xs,Y s, Zs) :
%mezcla dos listas ordenadas de numeros
139
Ejemplo 3.45 Coloquemos cortes en el predicado mezcla, con el fin de solventar los problemas de
eficiencia antes destacados:
mezcla([X|Xs], [Y |Y s], [X|Zs]) : X < Y, !, mezcla(Xs, [Y |Y s], Zs).
mezcla([X|Xs], [Y |Y s], [X,Y |Zs]) : X = Y, !, mezcla(Xs,Y s, Zs).
mezcla([X|Xs], [Y |Y s], [X, Zs]) : X > Y, !, mezcla([X|Xs],Y s, Zs).
mezcla(Xs, [], Xs) : !.
mezcla([],Y s,Y s) : !.
140
A
B1....Kk
!
Bk+i
A:- B1....Kk,!,Bk+2 ,..., Bn
FALLO FALLOFALLO
141
El predicado de corte se introdujo inicialmente para aumentar la eficiencia de los programas PROLOG, sin embargo, su utilizacin puede tener otros efectos no relacionados con la eficiencia. 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, proporcionando una solucin ms eficiente sin que su adicin o eliminacin altere el significado 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 Reflexiona sobre el uso del corte verde en la definicin del predicado:
%minimo(X,Y, Min) :
%Min es el mnimo de los numeros
X eY
minimo(X,Y, X) : X Y, !.
minimo(X,Y,Y ) : X > Y, !.
Comprueba la eficiencia del predicado construyendo el rbol SLD correspondiente a la computacin del objetivo minimo(5, 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 significado declarativo del predicado.
Veamos un uso habitual de este tipo de cortes: la omisin de condiciones explcitas.
Previamente definimos una versin del predicado ordena(Xs,Y s) con cortes verdes. Consideremos ahora una nueva definicin que incluye cortes rojos:
Ejemplo 3.50
%ordena(Xs,Y s) :
X = \ = Z,
borra(Xs, Z,Y s).
142
Observemos, finalmente, que la utilizacin de cortes puede conducir a definiciones errneas de predicados. Consideremos la definicin de predicado del siguiente ejemplo:
Ejemplo 3.52
%minimimo(X,Y, Z) :
143
Prototipado rpido Tanto la lgica como la programacin requieren la expresin explcita de conocimiento 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 beneficios. PROLOG se ha demostrado muy til para el diseo de prototipos en las fases
de especificacin de sistemas, proporcionando al mismo tiempo una especificacin 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 para 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 considerablemente los costes de desarrollo, y puesto que el cdigo es ms fcil de modificar, los costes
subsiguientes de mantenimiento son con frecuencia tambin ms bajos.
Facilidad de lectura y modificacin 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 especificacin de un problema bien estructurada que adems es ejecutable. Tal cdigo es adems fcilmente
legible y modificable cuando se modifican 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 definirlas recursivamente, ahorrando al
programador la implementacin de todos los detalles, punteros y gestin explcita del almacenamiento.
Mecanismos de control alternativos El control en los programas PROLOG es en cierto modo similar 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 flexible de estructuras de datos. Lenguaje no tipado. Las estructuras de datos
manipuladas por los programas lgicos, denominadas trminos, se corresponden en general con estructuras registro en los lenguajes convencionales. La gestin de las estructuras de datos en PROLOG
144
es muy flexible. Como el Lisp, PROLOG es un lenguaje no tipado, libre de declaraciones. Las diferencias 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 refieren 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 unificacin, 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 unificacin 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 Artificial (sistemas expertos - basados en reglas y marcos - , resolucin de restricciones, 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 planificacin dinmica, configuracin 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 programacin 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 verificacin de
programas en PROLOG. Una comparacin de distintos lenguajes de programacin lgica se encuentra 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 estudiar 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. 2a edicin.
[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 artificial intelligence. Addison-Wesley (Segunda edicin).
[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 International, Londres, 1990.
145
Actividades y evaluacin
Los ejercicios ms interesantes de este tema consisten en construir el rbol de deduccin SLD asociado 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 codificacin 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 comprenda las idiosincrasias de la programacin lgica y los compromisos (programacin lgica frente
a algortmica) que supone el diseo de programas eficientes. 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 unificacin 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 pginas web de la asignatura Programacin orientada a la inteligencia artificial, 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 facilidades de traza que los intrpretes proporcionan, con el fin de depurar los programas y comprender
en profundidad la semntica operacional que los sistemas PROLOG implementan (algoritmo de bsqueda, mecanismos de unificacin y equiparacin...). Una vez codificado 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.
146
Captulo 4
VERIFICACIN DE PROGRAMAS
SECUENCIALES
Resumen
Este tema estudia cmo definir con precisin la semntica de un lenguaje formal mediante la lgica
de Hoare y cmo utilizar un mtodo deductivo basado en ella para la verificacin de programas
secuenciales.
Objetivos
El objetivo principal es que el alumno aprenda a verificar 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 define un lenguaje que contiene slo tres instrucciones: ifthen-else, while-do 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. Finalmente, se expone un sistema deductivo para la lgica de Hoare y se explica cmo aplicarlo a la
verificacin 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 humanos. Por eso es importante disponer de mtodos que permitan comprobar que un programa cumple
las especificaciones con que fue diseado. Generalmente las especificaciones 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
147
148
natural y la ausencia de mtodos que permitan una compresin automtica del mismo, se hace necesario contar con descripciones formales que indiquen de forma precisa e inequvoca las especificaciones
de cada programa. Una vez que se conocen las especificaciones, 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-ficcin, al menos sera deseable contar con
mtodos que permitan comprobar de forma automtica o semiautomtica que cierto programa cumple
las especificaciones, es decir, que hace lo que se espera de l, sin cometer nunca errores; es lo que se
conoce como verificacin de programas.
An estamos lejos de contar con verificadores totalmente automticos, pero recientemente se han
desarrollado ya verificadores 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 garantizar la fiabilidad de sus productos hacen pensar que en los prximos aos se seguirn produciendo
progresos muy significativos en este campo. Precisamente por la importancia del tema, es de esperar
que el conocimiento de los mtodos de verificacin 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 verificacin de programas secuenciales. En concreto, vamos a estudiar un sistema deductivo que permite verificar programas de un lenguaje de programacin 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 bsicas. Luego introduciremos ciertas expresiones lgicas, las ternas de Hoare, que permiten especificar
formalmente un programa. Ms adelante expondremos un sistema deductivo (el sistema de Hoare) y
explicaremos cmo aplicarlo a la verificacin de programas escritos en nuestro micro-lenguaje.
4.2
Sintaxis
4.2.1
Un micro-lenguaje de programacin
149
4.2. Sintaxis
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 comparacin 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 microlenguaje:
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
Especificacin 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 = 10 i = 4 fact = 24} representa un estado.
Puede haber tambin expresiones en que no aparezcan todas las variables que se usan en el programa. Tales expresiones no representan un estado, sino un conjunto infinito de ellos. As, si las variables
de un programa son x, i y 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 x y fact. Otro ejemplo de expresin que representa un conjunto de estados es
la siguiente: {x 0 x 10 i 6= 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), definimos 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 significado.
150
(4.1)
es una especificacin, porque indica que el programa debe calcular el factorial de un nmero no
negativo (ms adelante veremos por qu esta especificacin no es del todo correcta).
151
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 especificacin (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 especificacin (4.1) no es necesaria ni suficiente para garantizar que el programa calcula el factorial.
Cul es la forma correcta de representar esta especificacin? Una solucin es la siguiente:
a, {x = a}(S){fact = a!}
(4.2)
En esta expresin hemos indicado explcitamente el cuantificador 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.) Recomedamos al lector que compruebe que el programa (x:=1;fact:=1) no cumple esta especificacin,
pero los programas fact1 y fact2 s 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 precondicin y el cuerpo del programa modifica 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 inicialmente a x. Cuando el programa no modifica el valor de x (como era el caso del programa fact1),
la especificacin (4.1) no plantea problemas, porque el valor final de x es el mismo que el inicial. En
cambio, cuando el programa modifica el valor de x (como era el caso del programa fact2), la postcondicin {fact = x!}, que hace referencia al valor final de x, no nos sirve, y por eso debemos utilizar
la especificacin (4.2).
152
Esta propiedad, denominada correccin total, es muy importante en la prctica, pues la verificacin 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:
Verificacin: Tenemos las condiciones p y el programa S (codificado 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 verificacin. En la seccin 4.7.2 mencionaremos brevemente la posibilidad de utilizar estos mtodos para realizar a la vez la programacin y
la verificacin.
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
(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
153
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.
Condicional:
Bucle:
` {P(E)}(x:=E){P(x)}
(4.5)
` {p B}(S1 ){q}
` {p B}(S2 ){q}
` {p}(if B then (S1 ) else (S2 )){q}
(4.6)
` {p B}(S){p}
` {p}(while B do (S)){p B}
(4.7)
` {p}(S1 ){q}
` {q}(S2 ){r}
` {p}(S1 ;S2 ){r}
(4.8)
Composicin:
Encadenamiento:
` {p p0 }
` {p0 }(S){q0 }
` {p}(S){q}
` {q0 q}
(4.9)
A estas reglas habra que aadir los axiomas propios del dominio. En el caso de nuestro microlenguaje 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 verificacin 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 significado y la forma en que se aplican.
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.
154
4.4.2
La regla del condicional nos dice que si tenemos que demostrar una terna de la forma
{p}(if B then (S1 ) else (S2 )){q}
podemos hacerlo en dos pasos: por un lado demostramos que, cuando partimos de la condicin p y B
es cierto, la ejecucin de S1 garantiza la condicin q,
{p B}(S1 ){q}
y por otro lado, demostramos que, cuando partimos de la misma condicin p y B es falso, la ejecucin
de S2 tambin garantiza la condicin q,
{p B}(S2 ){q}
155
(4.11)
Esta nueva versin de la regla del condicional nos dice que para asegurar que el sistema, despus
de ejecutar la instruccin if B then (S1 ) else (S2 ) satisfaga la postcondicin q, es suficiente que
satisfaga la precondicin (B p1 ) (B p2 ).
Esta nueva versin tiene la ventaja de que es ms fcil buscar p1 y p2 por separado que tener
que buscar directamente una condicin p que satisfaga las dos condiciones, {p B}(S1 ){q} y {p
B}(S2 ){q}. O visto de otra forma, el buscar p1 y p2 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
es 0.
cuidado de no confundir x!=0, que significa x es distinto de 0, con x! = 0, que significa que el factorial de x
156
157
En el ejemplo anterior era muy fcil encontrar un invariante: como el cuerpo de la instruccin
while, que es z:=3, no modifica 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 < 5 (x = 0)}
En estos dos ejemplos, el cuerpo de la instruccin while, S, no modifica 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 infinito, 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 modificar 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 0 x 6= 0}(x:=x-1){x 0}
que indica que x 0 es un invariante para este bucle. Aplicando la regla del bucle, con las equivalencias p = x 0, B = x 6= 0 y S = x:=x-1 se obtiene que
` {x 0}(while (x!=0) do (x:=x-1)){x 0 (x 6= 0)}
de donde se deduce la expresin que queramos demostrar.
158
[Justificacin-1]
[Justificacin-(n1)]
[Justificacin-n]
(Definimos p0 = p y pn = q.) Para cada eslabn ` {pi1 }(Si ){pi } se indica entre corchetes cul
es la regla que lo justifica. Al demostrar todos y cada uno de los eslabones, el programa S queda
demostrado, por la regla de composicin. Si Si es una instruccin compuesta, hay que repetir el proceso anterior anidando las cadenas de demostracin, y as sucesivamente, hasta llegar a instrucciones
simples.
A veces puede resultar que la postcondicin de Si no coincida con la precondicin que requiere
Si+1 . En ese caso es posible insertar varias condiones entre Si y Si+1 ,
{p}
Si
{pi,1 }
{pi,2 }
..
.
{pi,k }
[Justificacin-i]
[Justificacin-i,1]
[Justificacin-i, k]
Si+1
de modo que la primera condicin intermedia, pi,1 , es la postcondicin de Si , y la ltima condicin
intermedia, pi,k , sirve de precondicin para Si+1 . Para cada par de proposiciones consecutivas, la
frmula ` pi, j pi, 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 [Justificacin-i, j]. La
validez de la demostracin viene garantizada por la regla de encadenamiento.
159
Observe que en el proceso de verificacin estamos combinando dos sistemas deductivos. Por
un lado, tenemos el sistema deductivo de Hoare, que nos permite justificar los eslabones del tipo
` {pi1 }(Si ){pi }, y por otro lado el sistema deductivo propio del dominio, que nos permite justificar
los eslabones del tipo ` pi, j pi, 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:=2
{x = 2}
{3x + 1 = 7}
y:=3*x+1
{y = 7}
[x, x = x]
[Regla de asignacin]
[3 2 + 1 = 7]
[Regla de asignacin]
[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 prefiere, 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}
[?]
160
Si queremos construir la demostracin de arriba a abajo, tenemos que buscar un predicado P que
nos permita aplicar la regla de asignacin {P(E)}(x:=2){P(x)}. El problema es que, en nuestro
esbozo de demostracin, la precondicin de x:=2 es >; si tomamos este predicado tenemos que
P(E) = P(2) = >, 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 verificar 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
{3 x + 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
{>}
{3 2 + 1 = 7}
[?]
x := 2
{3 x + 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 3 2 + 1 = 7 (habra que demostrarlo por la aritmtica de nmeros enteros). 2
4.5.3
Para tratar las instrucciones if-then-else aplicamos la regla del condicional modificada (expresin (4.11)), que se traduce en:
{(B p1 ) (B p2 )}
if B then (
{p1 }
S1
{q}
[Justificacin-1]
) else (
{p2 }
S2
{q}
[Justificacin-2]
)
{q}
161
{x 6= 0}
{?}
[?]
if (x>0) then (
{p1 ?}
y:=x
{y > 0}
[?]
) else (
{p2 ?}
y:=-x
{y > 0}
[?]
)
{y > 0}
[?]
Las condiciones p1 y p2 se obtienen por la regla de asignacin:
{x 6= 0}
{?}
[?]
if (x>0) 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 p1 ) (B p2 ), de modo que
{x 6= 0}
{(x > 0 x > 0) ((x > 0) (x) > 0}
if (x>0) 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 6= 0 (x > 0 x > 0) ((x > 0) (x) >
0, con lo cual se completa la verificacin del programa. (En este caso, la verificacin parcial es una
verificacin total, porque el programa no contiene bucles.)
162
163
iteracin
1a
2a
3a
4a
5a
6a
7a
x
6
6
6
6
6
6
6
i
0
1
2
3
4
5
6
fact
1
1
2
6
24
120
720
B
>
>
>
>
>
>
164
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 infinito. 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
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):
` {p B E 0 E = a}(S){p E 0 E < a}
` {p E 0}(while B do (S)){p B}
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
indefinidamente (porque siempre es mayor que 0), el bucle debe terminar.
De este modo, el nuevo sistema deductivo garantiza tanto la correccin parcial como la terminacin 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). Recordemos que el bucle que aparece en este programa es
while (i!=x) do (i=i+1; fact:=fact*i)
y que en la verificacin parcial habamos tomado como invariante fact= i!. Por tanto, aunque todava
no hemos encontrado E, sabemos que se cumple que
` {p B E 0 E = a}(S){p}
10 Desde
un punto de vista conceptual, no era necesario definir primero el sistema deductivo de verificacin parcial, sino
que podramos haber definido directamente el de verificacin total. Sin embargo, por motivos pedaggicos nos ha parecido
mejor abordar el problema en dos pasos, discutiendo primero la verificacin parcial y viendo luego cmo se debe modificar
la regla del bucle para obtener la verificacin 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.
165
es decir,
` {fact = i! i 6= x E 0 E = 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
` {p B E 0 E = a}(S){E 0 E < a}
Tomamos la expresin x i, pues cumple que
` {i 6= x xi 0 xi = a}(i:=i+1;fact:=fact*i){xi 0 xi < a}
(Invitamos al lector a que lo demuestre formalmente.) Esto implica que si antes de ejecutar el cuerpo
del bucle se cumple 0 x i = a, despus de su ejecucin se cumple 0 x i < 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. 2
Ejercicio 4.22 Demostrar la correccin total de fact2 dada la especificacin (4.2). 2
Como en el caso de los invariantes, encontrar un variante puede ser complicado, ya que no hay reglas 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
166
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 bibliogrficos e informticos, disponibles en Internet, que hemos comentado en la seccin Motivacin para los alumnos de Ingeniera Informtica (pg. 2) pueden ser
tiles para hacer ms interesante el estudio de este tema.
Actividades y evaluacin
Los ejercicios de evaluacin ms importantes de este tema consisten, naturalmente, en la verificacin
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 final de
cada seccin en [Huth y Ryan, 2000, cap. 4].
Parte III
LGICA MODAL
Captulo 5
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.
169
170
Metodologa
Le recomendamos que se centre inicialmente en la compresin semntica de la lgica modal bsica:
se puede conseguir intuitiva y grficamente. 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. Reflexiones sobre las diversas
lecturas propuestas.
Slo despus de estos pasos le recomendamos que aborde las diversas opciones de sistemas deductivos 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 definiciones precisas se posponen a las secciones siguientes.
5.1.1 Estructuras
Estructuras relacionales
Observe la figura (fig.5.1.1). Es la representacin grfica de un conjunto y de una relacin R entre sus
elementos. En este ejemplo,
el elemento 5 est relacionado con el 1: R(5, 1),
pero el 1 no lo est con el 5;
slo el elemento 3 est relacionado consigo mismo: R(3, 3).
+ ?>=<
89:;
2
F
?>=<
89:;
1
L
?>=<
89:;
3
E
?>=<
89:;
5
+ 89:;
?>=<
?>=<
89:;
6
171
5.1. Perspectiva
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 general, una modelizacin adecuada requiere que la estructura relacional verifique 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 hroe virtual, en cada escenario, puede venir descrito por un conjunto de proposiciones: {p, q, r, ...}.
Resulta entonces un grafo como el de la figura (fig.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.
, 2
ONML
HIJK
1
ONML
HIJK
p,r
,ONML
4
HIJK
3
ONML
HIJK
F q
5
ONML
HIJK
p,r
q,r
6
ONML
HIJK
p,r
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, admitiremos que debe ser verdadera la proposicin (p r). 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 refieren 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.
172
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 3, la proposicin p puede ser verdadera
en el escenario actual sin que lo sea 3p. 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, 3 representa adecuadamente
el concepto de posibilidad pero slo en marcos reflexivos. Otras aplicaciones del operador 3, 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 3 como posibilidad slo es adecuada sobre marcos reflexivos.
Por otro lado, independientemente de que lo que represente (de su lectura), 3 tiene una propiedad
formal contrastable: la frmula p (3p) 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
reflexivo.
As, si se disea una teora modal de la posibilidad, ya no es necesario adjuntar la advertencia,
externa e informal, utilcese slo sobre marcos reflexivos. Basta aadir la frmula p (3p) 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.
173
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.
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 presentes en el anlisis y el desarrollo informtico. Un ejemplo son las estructuras de rbol de un directorio, definidas tras imponer ciertas restricciones formales a la relacin entre nodos.
174
+ ?>=<
89:;
2
F
?>=<
89:;
1
L
?>=<
89:;
1
L
+ 89:;
?>=<
2
F
?>=<
89:;
3
E
+ ?>=<
89:;
?>=<
89:;
3
E
a b
+ 89:;
?>=<
89:;
?>=<
5
?>=<
89:;
6
?>=<
89:;
5
(a) Relacin Ra
+ 89:;
?>=<
(b) Relaciones Ra y Rb
1
1
2
3
4
5
6
2
a
a
a/b
a
a
a
a
xRxx
xy(Rxy Ryx)
xyz(Rxy Ryz Rxz)
xyz(Rxy Rxz Ryz)
xyz(Rxy Rxz (Ryz y = z Rzy))
xy(Rxy z(Rxz y = z))
xyz(Rxy Rxz y = z)
xyRxy
xy(Rxy Ryx)
xy(Rxy z(Rxz Rzy))
Tabla 5.1: Propiedades de una relacin binaria, expresadas en lgica de primer orden
175
Para fijar ideas, considere el grafo de una nica relacin R como el de la figura (fig.5.3a) o su expresin como tabla, como matriz, en (fig.5.3c). Los prrafos siguiente pretende facilitar la compresin
de las sentencias de primer orden utilizadas.
Reflexividad Una relacin es reflexiva si todo elemento est relacionado consigo mismo. Grficamente, 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 irreflexiva 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 reflexiva (para que verifique 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).
Grficamente, 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 (xy(Rxy 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 elementos relacionados consigo mismo (no necesariamente todos): xy(Rxy 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 grficamente, 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 w1 y w2 estn ambos relacionados con x, se satisface tanto ((Rxw1 Rxw2 ) Rw1 w2 )
como ((Rxw2 Rxw1 ) Rw2 w1 ). Asimismo ((Rxw1 Rxw1 ) Rw1 w1 ). En las relaciones lineales,
los elementos distintos relacionados con x slo deben estar relacionados entre s en, al menos, un
sentido. Adems, ((Rxw1 Rxw1) (Rw1 w1 w1 = w1 Rw1 w1 )) 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 relacin 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 relacionados, en un sentido u otro. Los nmeros enteros, los racionales o los reales, con su relacin usual de
orden, verifican esta propiedad.
176
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 reflexiva, 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.
Satisfaccin de un conjunto de propiedades
A una relacin se le puede exigir que verifique varias de estas propiedades. Por ejemplo, que sea
reflexiva, simtrica y transitiva (es decir, una relacin de equivalencia). O que sea reflexiva, antisimtrica y transitiva (es decir, una relacin de orden).
Considere, por separado, todas las estructuras hW, Ri con relacin R reflexiva o con relacin R
transitiva. Las estructuras con relacin R reflexiva y transitiva forman el conjunto interseccin de los
dos anteriores. Cada nueva propiedad exigida a R reduce el nmero de estructuras que la verifican.
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 reflexiva y asimtrica.
Por otra lado,de la exposicin coloquial se intuye que si una relacin satisface un conjunto determinado 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,
Si R es reflexiva
R es simtrica, transitiva y serial
es reflexiva y eucldea
es una relacin de equivalencia
(reflexiva, simtrica y transitiva)
entonces
entonces
si y solo si
si y slo si
es eucldea
es serial
5.2.3 Cierres
Una relacin R cualquiera puede perfectamente no ser reflexiva: quiz algunos elementos estn relacionados consigo mismo, pero no todos. Si se aaden a R todos los pares (x, x) que faltaban se obtiene
otra relacin R0 , que se denomina cierre reflexivo 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 reflexiva e incluir tambin a la relacin R
inicial. Lo que caracteriza al cierre reflexivo es que se aaden slo los pares (x, x) necesarios y ningn
otro. Es decir, que es la menor relacin reflexiva que incluye a R.
Definicin 5.3 (Cierre reflexivo) Sea W un conjunto no vaco y R una relacin binaria sobre el mismo. Entonces R0 , el cierre reflexivo de R se define como:
R0 = {R00 | R00 es reflexiva y R R00 }
De igual forma se pueden definir 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 grficamente como
sigue: desde cada nodo w, produzca un arco directo a cualquier otro accesible desde w mediante un
camino de arcos en R:
R+ = {R00 | R00 es transitiva y R R00 }
177
Para ciertas definiciones convendr considerar cierres ms complejos, por ejemplo, el cierre R ,
transitivo y reflexivo, de una relacin R:
R = {R00 | R00 es reflexiva y transitiva, y R R00 }
De cualquiera de estas definiciones se sigue que si una relacin ya satisface una propiedad, su
cierre respecto a ella coincide con la relacin de partida. Para fijar ideas, se presenta la definicin de
rbol, que utiliza el cierre transitivo y el transitivo-reflexivo de su relacin.
Definicin 5.4 (Arbol) Un rbol es una estructura relacional hW, Ri tal que:
1. existe un nico elemento (raz) r W que verifica wR rw
2. para cada w 6= r existe un nico w0 tal que Rww0
3. wR+ ww
178
Definicin 5.6 (Frmulas del lenguaje modal bsico) Las frmulas del lenguaje se definen por la
siguiente expresin BNF:
::= p | | > | | ( ) | ( ) | ( ) | 2 | 3
Es decir, una frmula es, exclusivamente, cualquier cadena que se genere por aplicacin finita 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 2 y 3
Notacin
frmulas.
Notaremos como Var al conjunto de las letras proposicionales y como Form al conjunto de las
179
Sub f () = {} Sub f ()
Sub f () = {},
Sub f (>) = {>}
Sub f (p) = {p}
para cada letra proposicional
Ejemplo 5.9 De acuerdo con la definicin anterior,
Sub f (2((p q) 3r)) = {2((p q) 3r), ((p q) 3r), (p q), 3r, p, q, 3r, 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:
2, 3, (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
definicin formal) en la figura (fig.5.4). Y viceversa.
2((p q) (3r))
((p q) (3r))
??
??
??
(p q)
??
??
??
?
(3r)
??
??
??
(r)
r
Figura 5.4: rbol sintctico de 2((p q) (3r))
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.
180
Sustituciones
La sustitucin uniforme permite escribir una frmula a partir de otra. Se puede presentar, intuitivamente, mediante un ejemplo inicial.
Ejemplo 5.10 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))
| {z } | {z } | {z }
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 )
|{z} | {z } |{z}
Cuidado Observe que la sustitucin no vuelve a aplicarse sobre instancias nuevamente aparecidas 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 7 Form. Gracias a esta funcin se puede definir otra que asigna a
cada frmula su transformada (por una cierta sustitucin): () : Form Sust 7 Form.
Definicin 5.11 (Instancia, por sustitucin, de una frmula) Dada una sustitucin : Var 7
Form, la transformada de una frmula se define como:
1. (2) = 2 ,
(3) = 3
2. ( ) = ( ),
para toda conectiva binaria
3. () =
181
4. = ,
> = >
5. p = (p),
para cada letra proposicional
La frmula es la instancia de por la sustitucin .
Ejemplo 5.12 Sea : Var 7 Form tal que
(p) = (q 3p)
(q) = (p 2q)
182
+ ?>=<
89:;
2
F
?>=<
89:;
1
I
?>=<
89:;
3
+ 89:;
?>=<
2
F
89:;
?>=<
1
89:;
?>=<
3
+ ?>=<
89:;
?>=<
89:;
4
+ ?>=<
89:;
2
F
?>=<
89:;
1
I
?>=<
89:;
3
+ ?>=<
89:;
1
2
3
4
1
x
2
x
x
x
x
(b) relacin R1
183
Modelos
Definicin 5.16 (Asignacin) Una asignacin en un marco hW, Ri es una funcin : Var 7 P (W )
que asocia a cada letra proposicional el subconjunto de mundos donde es verdadera.
Ejemplo 5.17 La figura (fig.5.7) representa grficamente un marco hW, Ri con una asignacin , donde:
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 define 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 0 que asocia a cada estado el subconjunto de letras
proposicionales verdaderas en l; por ejemplo, 0 (1) = {p, r}. Tambin puede definirse una funcin
00 que asocia a cada par estado-letra proposicional el valor verdadero o falso, segn sea o no verdadera
esa letra en ese estado: 00 (1, p) = verdadero.
, 2
ONML
HIJK
1
ONML
HIJK
p,r
,ONML
4
HIJK
3
ONML
HIJK
F q
5
ONML
HIJK
p,r
q,r
6
ONML
HIJK
p,r
184
Ejemplo 5.20 Considere de nuevo la figura (fig.5.7). Supongamos que el conjunto de variables es
slo Var = {p, q, r}. La asignacin del modelo de la figura se puede representar con la tabla siguiente:
p
q
r
1
v
v
2
v
v
v
5
v
6
v
Como cada celda (por ejemplo, la (p,1)) se puede marcar o no indistintamente del resto, existen 236
asignaciones distintas sobre este marco. El conjunto de modelos basados en este marco F consta de
los 218 modelos:
sobre ese mismo conjunto W ,
con esa misma relacin R representada en el grafo,
para cada una de las 218 asignaciones distintas posibles
Observe que, si se vara la relacin R, se obtiene otro marco F 0 sobre ese conjunto W . El conjunto
de modelos basados en el nuevo marco F 0 tambin constar de 218 modelos, generados aplicando
todas las posibles asignaciones distintas.
Si se considera el conjunto de ambos marcos F = {F, F 0 }, el conjunto de modelos basados en el
conjunto de marcos F ser la unin de los modelos basados sobre F y sobre F 0 .
Ejemplo 5.21 Se pueden definir 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 figura (fig.5.7).
Sobre ese mismo marco, se pueden considerar slo los 217 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 F1 y de otros sobre
F2 , F3 , . . . 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 definicin 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 figura (fig.5.8). Sitese localmente en un estado cualquiera. En el mundo
w4 , 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 (q r), (p r), (p q) >.
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 w2 est relacionado
tanto con el estado w3 como con el w4 (sin embargo, no est relacionado consigo mismo):
185
una frmula como 3r se satisface en w2 porque existe al menos un estado accesible (w4 ) donde
es r verdadera; tambin en w2 se satisface 3(r p), puesto que (r p) se satisface en su
estado accesible w3
una frmula como 2q se satisface en w2 porque en todos sus estados accesibles (w3 y w4 ) es q
verdadera; tambin en w2 se satisface 2(r q)
Para evaluar frmulas ms complejas se necesita una definicin precisa y formal del concepto de
satisfaccin.
Definicin 5.22 (Satisfaccin) La satisfaccin de una frmula en un mundo w del modelo M, notada como M, w , se define recursivamente como se adjunta en la tabla 5.2.
1a
1b
1c
M, w
M, w >
M, w p
si y slo si
en ningn caso
en todo caso
w (p)
2a
2b
2c
2d
M, w
M, w ( )
M, w ( )
M, w ( )
si y slo si
si y slo si
si y slo si
si y slo si
no M, w
M, w y M, w
M, w M, w
no M, w M, w
3a
3b
M, w 2
M, w 3
si y slo si
si y slo si
186
Ejemplo 5.23 (Frmulas sin operadores modales) Considere el modelo M de la figura 5.8:
Una frmula modal bsica sin operadores modales resulta ser una frmula proposicional. Su satisfaccin en un mundo, como frmula modal, utiliza slo las entradas 1[a-c] y 2[a-d] de la definicin
de satisfaccin.
La negacin p se satisface slo en los mundos w3 y w4 . La conjuncin (q r) slo en el mundo
w4 . Un condicional como ((p (q r)) slo puede ser falso en los mundos en que p es verdadera
(y de stos, slo aqullos en que el consecuente sea falso: w1 , w5 y w6 ).
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.
, 2
ONML
HIJK
1
ONML
HIJK
p,r
p,r
,ONML
4
HIJK
3
HIJK
ONML
q
q,r
5
ONML
HIJK
p,r
6
ONML
HIJK
p,r
si y slo si
Los nicos mundos relacionados con w3 son w2 , w4 y w6 . Como el conjunto W es finito y pequeo,
expandamos las opciones:
_ M, w2 (p r)
M, w3 3(p r) sii (
sii M, w2 p y M, w2 r
) M, w4 (p r) sii M, w4 p y M, w4 r
M, w6 (p r) sii M, w6 p y M, w6 r
[ : si]
[ : si]
187
^ M, w2 (p r)
M, w3 2(p r) sii (
sii M, w2 p y M, w2 r
) M, w4 (p r) sii M, w4 p y M, w4 r
M, w6 (p r) sii M, w6 p y M, w6 r
[ : no]
Un resultado negativo, como M, w2 6 2r se demuestra simplemente sealando un mundo accesible desde w2 (por ejemplo w3 ) donde no se satisface r. Qu ocurre en estados como w4 w6 donde
no se puede mostrar un slo contraejemplo de mundo accesible donde no se satisfaga r? Se verifica o
no M, w4 2r? Denominaremos a estos mundos finales o terminales, y los analizamos en el ejemplo
siguiente.
Ejemplo 5.25 (Satisfaccin en mundos finales) Considere, de nuevo, el modelo M de la figura
(fig.5.8). Desde el mundo w4 no es accesible ningn otro (ni siquiera l mismo). En el modelo M
slo encontramos dos de estos mundos terminales: w4 y w6 . La definicin de satisfaccin se aplica
en ellos de igual forma que en el resto, pero esta aplicacin produce resultados poco intuitivos que
conviene resaltar:
M, w4 3 se produce si y slo si existe un mundo accesible desde w4 donde se satisfaga . Pero
w4 no tiene mundos accesibles. No importa cul sea la subfrmula : ese mundo relacionado donde
deba satisfacerse no existe, y por tanto, M, w4 6 3 cualquiera que fuera , incluso aunque fuese
una tautologa.
Si w es un mundo final, entonces M, w 6 3 (en todo modelo M, para toda frmula )
La satisfaccin M, w4 2 se produce si y slo si en todo mundo de W se verifica que si es
accesible desde w4 entonces se satisface . Esta expresin condicional ser verdadera salvo que algn
mundo verifique el antecedente(ser accesible desde w4 ) sin verificar el consecuente (satisfacer ). Y,
efectivamente, en ningn caso deja de ser verdadero el condicional, porque ningn mundo verifica el
antecedente. Luego M, w4 2 para toda frmula , incluso aunque fuese una contradiccin.
Si w es un mundo final, entonces M, w 2 (en todo modelo M, para toda frmula )
Insistiendo en estos resultados anteriores, recuerde que M, w 6 3> y M, w 2 slo en mundos
finales 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 .
M, w 3> M, w 2>
Si w no es un mundo final
M, w 6 3 M, w 6 3
Ejemplo 5.26 (Frmulas 3n 2n ) La sintaxis permite generar frmulas como 33p. Para verificar
si esta frmula se satisface en un mundo w hay que considerar la subfrmula 3p en los mundos
accesibles de w, que, de nuevo, requiere inspeccionar los mundos accesibles de estos ltimos:
M, w 33p
si y slo si
x RwxM, x 3p
si y slo si
y RxyM, y p
ya que
M, w2 3p
puesto que
M, w1 p
( Y w5 w2 w1 )
188
M, w2
M, w2
32(q r)
si
entonces
Como el antecedente M, w2 p efectivamente se satisface, para completar el desarrollo hay que
mostrar que M, w2 32(q r):
M, w2
M, w3
M, w
32(q r)
2(q r)
(q r)
M, w
M, w
si
entonces
Ejercicio 5.28 Determine los mundos (si los hay) en el modelo de la figura (fig.5.8) donde se satisfacen las frmulas:
(2(p q) 3r),
22(p 3q),
(p 2(q 3q))
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.
Definicin 5.29 (Operadores duales) Para todo operador modal 4 que se defina, consideraremos el
operador 4, al que denominaremos su operador dual.
Los operadores 3 y 2 son duales el uno del otro. Observe que, con la semntica definida:
M, w 2
si y slo si
si y slo si
si y slo si
no M, w 3
si y slo si
M, w 3
189
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, suficientemente importante como para recibir un nombre propio: se denomina K en honor del
lgico Saul Kripke.
Teorema 5.33 La frmula (2(p q) (2p 2q)) es una frmula vlida.
190
Para demostrar K se precisa demostrar M, w K para todo mundo w de todo modelo M. El esquema
de demostracin que sigue se refiere 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 2(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 2p. 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 2q.
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.
Definicin 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 asignaciones 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 M M ;
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 definiendo 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 reflexiva. La frmula T := (2p p) ser verdadera en cualquier mundo de este marco, no importa cul sea la asignacin utilizada. Es decir, si F
es el conjunto de los marcos reflexivos entonces T es vlida en todos los modelos basados en estos
marcos: F T .
191
Sobre el conjunto de frmulas vlidas en M En este punto, concentramos nuestra atencin sobre 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 conjunto 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.
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 definir 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 (2( ) (2 2))
3. si incluye y ( ) , entonces incluye
4. si incluye , entonces incluye 2
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 .
192
4. si fuese una frmula cualquiera, puede satisfacerse sin que se satisfaga 2. Ahora bien, si se parte
de que es vlida (verdadera en todo mundo), lo ser en todos los vecinos accesibles, luego se satisface
2 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.
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 definicin 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 2( ) |= (2 2)
Contrajemplos Para demostrar un resultado negativo, que no es consecuencia lgica del conjunto
de frmulas ( 6|= ) basta mostrar un slo mundo w de un modelo M donde:
M, w y, sin embargo, M, w 6 ,
Desgraciadamente, los resultados positivos ( |= ) no pueden decidirse extensivamente, verificando
todos los (infinitos) modelos posibles.
Consecuencia restringida a un conjunto de modelos La relacin de consecuencia propuesta es
muy exigente: debe verificarse en todo mundo de todo modelo. As, p 6|= 3p, 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 reflexivos, en todo mundo en que sea verdadera p
debe serlo 3p. Es decir, 3p es consecuencia lgica de p (restringida al conjunto de modelos basados
en marcos reflexivos).
Esta relacin restringida se notar como |=M y se define como:
si M, w entonces M, w ,
193
Equivalencia
Definicin 5.42 (Equivalencia) Las frmulas y son equivalentes si |= y |= . Para representar esta relacin semntica entre ambas frmulas se utilizar la notacin .
Observe que la definicin de equivalencia se ha formalizado utilizando el concepto de consecuencia (5.40). De esta definicin 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 (p q). Como esta propiedad se mantiene en todo mundo de todo modelo, resultan ser frmulas modales equivalentes: (p q) (p q).
Ejemplo 5.44 (Equivalencias modales bsicas) Entre las equivalencias modales ms tiles e inmediatas se encuentran:
2 3
2( ) (2 2)
3( ) (3 3)
Ejercicio 5.45 Defina un ejemplo de modelo y mundo donde se compruebe que:
2( ) 6 (2 2)
3( ) 6 (3 3)
Ejemplo 5.46 La frmula K es equivalente a :
(2( ) (2 2))
((2( ) 2) 2)
(2( ) (2 2))
(2( ) (2 2))
((2( ) 2) 2)
((2( ) 2) 2)
194
si y slo si
F (2p 22p)
si y slo si
F (2 22)
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).
Reflexiva
Simtrica
Transitiva
Eucldea
Determinista
Serial
Funcional
(2p p)
(p 23p)
(2p 22p)
(2p 23p)
(3p 2p)
(2p 3p)
(2p 3p)
(T)
(B)
(4)
(5)
(Q)
(D)
195
196
197
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 formales 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.1 Sintaxis
Ejemplo 5.49 Considere un lenguaje con dos operadores modales [a] y [b], junto a sus respectivos
operadores duales hai y hbi. Definiremos la sintaxis de este lenguaje como una ampliacin de la
sintaxis monomodal:
Si es una frmula, entonces [a], [b], hai y hbi son frmulas
Luego, todas las siguientes expresiones son frmulas:
(p q), (p q)
[a](p q), [b](p q), hai(p q)
[a][a](p q), [a]hai(p q), hbihbi(p q)
[a][b](p q), [b]hai(p q), hbihai[a](p q)
[a][b](p ([b]hai(p q)))
Un lenguaje modal proposicional con n operadores se define de forma anloga.
Definicin 5.50 (Frmulas de un lenguaje polimodal) Se parte de un alfabeto proposicional que incluye el siguiente conjunto de operadores modales {[a], . . . , [n], hai, . . . , hni}. Las frmulas del lenguaje son, exclusivamente, todas aquellas que se pueden generar por aplicacin finita 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 hki, 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.
198
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 haip requiere inspeccionar el valor
de p en sus mundos a-relacionados
Interpretar, en un mundo w, una frmula como [b]p o como hbip 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 hW, Ra , Rb i
con dos relaciones binarias. En la figura (fig5.9b) se muestra un marco de este estilo. La figura
(fig5.9a) aisla la relacin Ra sobre W , que sera suficiente para las frmulas de este lenguaje que slo
utilizaran [a]p o haip.
+ ?>=<
89:;
2
F
?>=<
89:;
1
L
?>=<
89:;
1
L
+ 89:;
?>=<
2
F
?>=<
89:;
3
E
?>=<
89:;
5
+ ?>=<
89:;
?>=<
89:;
6
(a) La relacin Ra , separada
89:;
?>=<
3
E
a b
?>=<
89:;
5
+ ?>=<
89:;
b a
b
+ 89:;
?>=<
Ejemplo 5.51 Sobre el marco del la figura (fig.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) = {w3 } y (q) = {w3 }.
Entonces:
M, w3 (p q), M, w3 6 p
M, w3 haip, ya que p es verdadera en alguno de sus mundos a-relacionados (p.ej. w2 )
M, w3 6 [a]p, ya que p no es verdadera en todos sus mundos a-relacionados (en concreto es
falsa en w3 )
M, w3 hbip, ya que p es verdadera en alguno de sus mundos b-relacionados (w5 ). Es ms,
como ste es su nico mundo b-relacionado, tambin M, w3 [b]p
M, w1 haihaip ya que existe un mundo a-relacionado con w1 (en concreto,w2 ) donde se satisface haip, puesto que p es verdadero en w3 . Sin embargo, M, w1 6 [a][a]p (observe que p no se
satisface en w4 ).
199
Como w1 (o w2 , entre otros) son mundos finales en la relacin Rb , para toda frmula se verifica
M, w1 [a] pero M, w1 6 hbi
Mayor inters tiene la interpretacin de frmulas donde aparecen ambos operadores:
M, w2 haihbip ya que existe un mundo a-relacionado con w2 (en concreto,w3 ) donde se
satisface hbip, puesto que p es verdadero en w5 .
M, w2 haihbi[b]p. Desde w2 existe un a-arco seguido de un b-arco que nos sita en un
mundo (w5 ) donde se satisface [b]p.
En el caso general, con n operadores modales, basta modificar la definicin previa de satisfaccin
monomodal:
30 a
30 b
M, w hki
M, w [k]
si y slo si
si y slo si
Observe que esta definicin 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 figura (fig.5.9) facilita una relacin Ra para
interpretar el par de operadores [a], hai y otra Rb para interpretar [b], hbi. Perfectamente Ra y Rb se
podan haber escogido tales que Ra = Rb . Grficamente, partiendo de Ra , 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 definir una relacin Rb a partir de una Ra . Se puede requerir, por
ejemplo, que dos mundos estn relacionados en un sentido por Ra si y slo si lo estn en el otro por Rb .
Es decir, que Ra y Rb 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 verifican
xy(Ra xy Rb yx)
Resultar, sin embargo, mucho ms til si la dependencia entre relaciones se puede caracterizar mediante una o varias frmulas modales. Por ejemplo, en todos los marcos en que son vlidas las
frmulas
p [a]hbip
p [b]haip
las relaciones Ra y Rb son recprocas.
200
hPi
hFi
Notacin Se han respetado las iniciales usuales, que en ingls corresponden con:
hPi: para algn instante en el pasado (Past)
hFi: 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.
[G] [G][G]
o sus equivalentes
hPihPi hPi
hFihFi hFi
Reciprocidad Pasado-Futuro Otra restriccin razonable introduce una dependencia entre ambas
relaciones: querramos que en el futuro de w1 se encuentre w2 si y slo si en el pasado de w2 se
encuentra w1 . Es decir, que una relacin sea la recproca de la otra. Ya se ha mencionado que los
marcos donde esto se verifica son aquellos en que son vlidas las dos frmulas siguientes:
p [H]hFip
p [G]hPip
Cuando se verifica esta reciprocidad, se puede considerar que existe una nica relacin R (por
ejemplo, R = RF ). Entonces, la relacin hacia el pasado utiliza R pero hacia atrs. Formalmente,
basta redefinir la semntica de hPi y [H]:
201
M, w hFi
M, w [G]
M, w hPi
M, w [H]
si y slo si
si y slo si
si y slo si
si y slo si
Observe cmo, en la semntica de hPi y [H], los instantes se relacionan por R de forma inversa a
cmo lo hacen para hFi y [G].
Otras restricciones opcionales Aadiendo restricciones adicionales se pueden ir consiguiendo unas
u otras modelizaciones ms especficas. 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.
202
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 KT 45
(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.
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 dificultad.
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 aplicaciones que se han venido desarrollando sobre ellos: razonamiento en sistemas multiagentes, verificacin
de protocolos de comunicacin, sistemas con operadores tanto epistmicos como temporales, ... Posiblemente, un lector novel encuentre [Fagin et al., 1995] algo ms fcil de seguir que [Meyer y van
der Hoek, 1995].
Actividades y evaluacin
En este momento tan slo podemos remitirle a los ejercicios del primer texto citado.
Captulo 6
Objetivos
El objetivo inicial es la comprensin de las logicas temporales modales a partir de la lgica modal
bsica. Una vez establecida esta relacin conceptual puede utilizarse todo el bagaje modal previo
sobre estas lgicas temporales.
Metodologa
Las relaciones temporales son bsicas para analizar los fenmenos fsicos. Las aplicaciones computacionales son un caso particular de stos. As, los modelos abstractos de computacin tambin
incorporan las relaciones de orden o de preorden que se desean o se esperan de un proceso de este
tipo.
Un lenguaje lgico que permita manejar eficientemente las restricciones temporales puede facilitar
el diseo y verificacin de gran nmero de aplicaciones. Entre otras:
la verificacin y especificacin de sistemas concurrentes o reactivos
scheduling
la sincronizacin de procesos concurrentes
bases de datos temporales
sistemas en tiempo real
verificacin de hardware
En todos ellos, entre otros objetivos, puede interesar garantizar que:
203
204
lo que no debe ocurrir no ocurrir: por ejemplo, que el sistema nunca se bloquear, que dos
semforos nunca producirn una colisin, que no se alcanzarn las condiciones crticas de un
reactor ...
lo que debe ocurrir en algn momento ocurrir: por ejemplo, que se atender una peticin de
impresin, o que se recibir acuse de entrega de mensaje.
que todos los procesos tienen acceso en algn momento, de forma equilibrada, a los recursos
globales.
Es posible formalizar estos anlisis sobre Lgica de Primer Orden. La siguiente seccin se dedica
a ello. Las secciones restantes muestran varias alternativas, todas ellas lenguajes modales proposicionales.
Irreflexivo
Transivo
Lineal o total
205
Denso
5. xy(x < y)
Sin final
Cada modelizacin temporal requiere escoger algunos de estos (u otros) axiomas y comprobar
que no forman un conjunto insatisfacible. Por ejemplo, se puede pensar en un tiempo con inicio, sin
final, lineal, discreto:
x0 x1 x2 x3 . . .
donde la flecha representa la relacin de precedencia. Si adems fuera transitivo, de x0 deberan partir
directamente flechas hacia x2 , x3 , ... Observe que, efectivamente, cada elemento tiene un sucesor
inmediato. Observe tambin que aunque este marco se completara (se cerrara) de forma transitiva x2
no es sucesor inmediato de x0 . Y que la adicin de algn otro axioma (como el de densidad) no es
consistente con los axiomas escogidos hasta el momento.
Finalmente, resulta til contar con un predicado Ahora(x) que fije el momento presente. Entonces
se pueden formalizar expresiones como:
1. A(x) y(x < y (y))
206
Con esta lectura, todo lo que se estudi sobre la lgica modal bsica es aqu aplicable. Simplemente se interpretar:
M, x 2 si y slo si la frmula se satisface para todo instante futuro de x
M, x 3 si y slo si la frmula se satisface para algn instante futuro de x
89:;
?>=<
5 k
X
+ 89:;
3
9 ?>=<
?>=<
89:;
1
y
?>=<
89:;
4
?>=<
89:;
2
89:;
?>=<
1
* 89:;
?>=<
* 89:;
?>=<
89:;
?>=<
4
* 89:;
?>=<
207
208
Until Denotaremos a este operador binario como U, de forma infija: U. La semntica de este
operador se define como: M, x pUq si y slo si
1. existe un instante z, tal que x < z, donde se satisface q; es decir, M, z q y adems
2. en todo instante y, tal que x y < z, se satisface p; es decir, M, y p
/.-,
()*+
2 OOO
o
o
OOO
o
a oooo
OOO
o
o
o
a OOO
o
OO'
wooo
/.-,
()*+
()*+
/.-,
3 ??
4
??
a
b
?
b ??
/.-,
()*+
()*+
/.-,
/.-,
()*+
3 ??
5
2 ??
??
??
a
a
??
??
b
?
a
b ??
?
/.-,
()*+
()*+
/.-,
()*+
/.-,
/.-,
()*+
/.-,
()*+
3
5
6
2
4
(a) Inicio de desarrollo, desde 1
a
?>=<
89:;
1
L
+ ?>=<
89:;
2
F
?>=<
89:;
3 k
a b
?>=<
89:;
9 4
b
?>=<
89:;
5
b
b
+ ?>=<
89:;
Si se parte del nodo 1, el sistema computacional slo puede pasar al estado 2 (ejecutando la
transicin a). Desde el estado 2 se puede acceder bien al estado 3, bien al 4. El rbol de la izquierda
desarrolla todas las posibles transiciones desde cada nodo accedido. Todas las ramas de este rbol
resultarn infinitas, puesto que no hay ningn estado terminal (final, sin acceso a otro) en el sistema
de la derecha.
209
Observe que la relacin entre los nodos del rbol es una relacin de precedencia (temporal). Una
rama corresponde a una ejecucin determinada del proceso. Sobre este rbol se pueden interpretar
las frmulas temporales arriba indicadas, con ms o menos operadores modales, dependiendo del
lenguaje que se utilice.
En concreto, la lgica lineal temporal utiliza los operadores 2 y 3 ( G y F) as como next y
until. Y permite expresar propiedades sobre una rama, sobre una ejecucin.
Otra lgica, como la CTL, utiliza operadores modales que consideran las ramas futuras de cada
nodo. Permiten evaluar frmulas del estilo en toda rama futura existe un estado tal que ..., en
alguna de las ramas futuras existe un estado tal que ...
6.6
Ampliacin y lecturas
En estas breves notas no se introducido prcticamente nada nuevo respecto a los apuntes sobre lgica
de primer orden o sobre lgica modal. Se omite, por motivos de calendario, la exposicin sobre
aplicaciones de estos sistemas temporales. No sern materia de examen en este curso concreto.
Las aplicaciones reales de estas lgicas se tratan, entre otros, en los dos textos recomendados
en la asignatura. El texto de Ben-Ari se centra en lgica lineal mientras que el texto de Huth y
Ryan se centra en la lgica ramificada CTL. Sobre ambas se estn diseando sistemas automaticos de
verificacin, entre otras aplicaciones inmediatas.
El lector puede encontrar, bsicamente en textos de inteligencia artificial, otro tipo de formalizaciones: centradas en intervalos temporales y en sus relaciones bsicas (inclusin, precedencia disjunta,
solapamiento ...).
Bibliografa complementaria
En [Huth y Ryan 2000] puede encontrar una excelente introduccin a la lgica temporal (CTL principalmente) as como a su aplicacin terica sobre la verificacin de sistemas. Incluye tambin una
descripcin del verificador SMV como herramienta ya disponible para estos fines.
[Ben-Ari 90] aborda tambin la descripcin de las lgicas temporales, con nfasis en la lgica
LTL.
Un excelente libro dedicado enteramente a este tipo de verificaciones es [Clarke et al. 2000], que
ofrece una extensa revisin del campo.
Actividades y evaluacin
Los dos primeros libros citados incluyen ejercicios propuestos.
210
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. Verification of Sequential and Concurrent Programs.
Springer-Verlag, Berln. 2a 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. Verification Tools for Finite-State Concurrent Systems. En: J.W. de Bakker, W.P. de Roever. A Decade of Concurrency: Reflections 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. 4a edicin.
[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. 3a edicin.
[Deao, 1993] A. Deao. Introduccin a la lgica formal. Alianza Universidad, 1993. Dcima reimpresin.
211
212
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. 2a 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 Theorem Proving. Springer-Verlag, Nueva York, 1996. 2a edicin.
[Francez, 1992] N. Francez. Program Verification. Addison-Wesley, Reading, MA, 1992.
[Gabbay et al., 1993] D.M. Gabbay, C.J. Hogger y J.A. Robinson (eds). Handbook of Logic in Artificial 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 Artificial 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 Artificial 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 Artificial 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 Artificial 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. 3a 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. Methuen, Londres, 1968.
[Hughes y Cresswell, 1996] G.E. Hughes y M.J. Cresswell. A New Introduction to Modal Logic.
Routledge, Londres, 1996.
[Huth y Ryan, 2000] M.R.A. Huth y M.D. Ryan. Logic in Computer Science. Modelling and Reasoning about Systems. Cambridge University Press, Cambridge, RU, 2000.
Bibliografa
213
[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 artificial. 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.
2a edicin.
[Manna y Pnueli, 1992] Z. Manna y A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems. Vol. I: Specification. Springer-Verlar, Nueva York, 1992.
[Manna y Pnueli, 1995] Z. Manna y A. Pnueli. The Temporal Logic of Reactive and Concurrent Systems. 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. 4a edicin.
[Meyer y van der Hoek, 1995] J.J. Meyer y W. van der Hoek. Epistemic Logic for Computer Science
and Artificial Intelligence. Cambridge University Press, Cambridge, RU, 1995.
[Pnueli, 1981] A. Pnueli. The temporal logic of concurrent programs. Theoretical Computer Science, 13 (1981) 45-60.
[Pnueli y Shahar, 1996] A. Pnueli y E. Shahar. A platform for combining deductive with algorithmic
verification. Proceedings of the Eighth International Conference on Computer Aided Verification (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 artificial intelligence. AI Communications,
7 (1994) 4-28.