Logica Predicados
Logica Predicados
Logica Predicados
de predicados
PID_00265958
Ninguna parte de esta publicación, incluido el diseño general y de la cubierta, puede ser copiada,
reproducida, almacenada o transmitido de ninguna manera ni por ningún medio, tanto eléctrico
como químico, mecánico, óptico, de grabación, de fotocopia, o por otros métodos, sin la autorización
previa por escrito de los titulares de los derechos.
FUOC • PID_00265958 Lógica de predicados
Índice
Introducción ............................................................................................ 5
Objetivos ................................................................................................... 6
5. Resolución ........................................................................................... 44
5.1. Las novedades: forma normal de Skolem y sustituciones .............. 44
5.2. Sustituir variables por términos ..................................................... 44
5.2.1. Ejemplo comentado ............................................................ 44
5.2.2. Quién sustituye a quién y cómo lo hace ............................ 46
5.3. Más ejemplos .................................................................................. 46
FUOC • PID_00265958 Lógica de predicados
Resumen .................................................................................................... 63
Solucionario ............................................................................................. 71
Glosario ..................................................................................................... 93
Bibliografía .............................................................................................. 94
FUOC • PID_00265958 5 Lógica de predicados
Introducción
Objetivos
P, Q R,
• Otra formalización (que también se puede considerar correcta) es: si asignamos P a “ser
estudiante”, Q a “ser persona”, R a “Juan es un estudiante” y S a “Juan es una persona”,
entonces observamos que:
P Q, R S,
Informalmente, un predicado
Un predicado es una aplicación definida en un dominio que adquiere es un enunciado parametrizado
(con variables).
valores en el conjunto de enunciados. Formalmente se expresa de la
manera siguiente:
P(x): D enunciados.
FUOC • PID_00265958 8 Lógica de predicados
2) Los predicados no pueden ser elementos de ningún dominio. Así pues, nin-
guna variable puede ser sustituida por ningún predicado.
Cuando todas las variables de un predicado son sustituidas por constantes, en-
tonces éste se convierte en un enunciado. Así:
1.2.2. Cuantificadores
Cuantificadores
Correspondencia
Símbolo Nombre Significado
(aproximadamente)
todos los...
Cuantificador
‘(para) todo’ todas las...
universal
cada...
hay un...
Cuantificador
‘existe (alguno)’ existe un...
existencial
algún o algunos...
• x P(x) significa ‘hay estudiantes’, ‘existen estudiantes’, ‘algunos son estudiantes’, ‘al-
guno es un estudiante’, etc.
1.2.3. Fórmulas
Este lenguaje utiliza como alfabeto las cuatro conectivas del lenguaje de
enunciados, los dos cuantificadores, los símbolos de predicados, los
símbolos de constantes, los símbolos de variables y los paréntesis de
apertura y de cierre.
Términos
Las reglas siguientes definen cómo hay que construir fórmulas correctamente
a partir de los elementos básicos:
sos, y para mejorar la legibilidad, utilizaremos los corchetes ‘[’ y ‘]’ y las llaves
‘{’ y ‘}’.
Las variables que están afectadas por la acción de algún cuantificador se denomi-
nan variables ligadas. Las no afectadas por ningún cuantificador se denominan
variables libres.
Las fórmulas sin ninguna variable libre se denominan fórmulas cerradas. Las
que tienen alguna variable libre, fórmulas abiertas.
Variables libres
Variables ligadas
Cuando dos variables están designadas por el mismo símbolo (misma letra)
decimos que:
Misma variable
Variables diferentes
Así, el ejemplo que acabamos de ver también se podría haber escrito de la ma-
nera siguiente: u [P(u) t Q(t,z) y R(u,y)] Q(z,x).
Cuando todas las variables que aparecen en una fórmula están cuanti-
ficadas, la fórmula es un enunciado. Los cuantificadores representan
la sustitución de las variables cuantificadas por elementos del dominio.
1.3. La formalización
De manera general, los pasos que habrá que seguir son los siguientes:
• ¿Qué se dice de los objetos del dominio? ¿Cuáles son sus propiedades? ¿Có-
mo se relacionan entre sí?
4) Formalizar cada frase simple en términos de los predicados atómicos y las Fórmulas con variables
libres
constantes identificadas en los dos puntos anteriores. El resultado debe ser
una fórmula sin variables libres para cada frase. Para decidir la cuantificación Si una fórmula que formaliza
una frase contiene variables li-
adecuada para cada fórmula se prestará atención al sentido general (cuantifi- bres, ¡seguro que no es
correcta!
cación universal: ) o particular (cuantificador existencial: ) de la frase.
Ejemplo 2
x (P(x) H(x)) y (P(y) A(y)), x (P(x) H(x) A(x)) x (P(x) H(x) A(x))
Ejemplo 3
“Los que están tristes rinden por debajo de sus posibilidades. Hay quienes
no están tristes y que tienen dificultades. Relámpago no está triste, pero
rinde por debajo de sus posibilidades. Entonces es que Relámpago tiene di-
ficultades.”
Las frases de la forma “hay ...”, “hay quien...”, “algunos...” tienen un sentido
existencial. Esto, en el contexto de la lógica de predicados, quiere decir que se
refieren a algunos elementos de un subconjunto del dominio.
Las frases de la forma “todos los...”, “los...”, “todo el mundo que...” tienen un
sentido universal. En el contexto de la lógica de predicados, esto significa que
se refieren a todos los elementos de un subconjunto del dominio.
Para formalizar frases con cualquiera de estos dos significados, es útil hacerse
las preguntas siguientes:
Observación
x (Selección(x) Propiedades_de_la_selección(x))
Observad que en la formaliza-
ción de una frase con sentido
existencial, las dos partes
–selección y propiedades de
Asimismo, frases con sentido universal se formalizan según el patrón siguiente: ésta– se unen con una conjun-
ción, mientras que si el sentido
es universal, lo hacen
con una implicación.
x (Selección(x) Propiedades_de_la_selección(x))
Ejemplo 1
• Sentido: existencial.
Ejemplo 2
Formalizar la frase “Todos los directivos importantes llevan corbata” con D(x):
“x es un directivo”; I(x): “x es importante”; C(x): “x lleva corbata”:
• Sentido: universal.
Ejemplo 3
Formalizar “Los ordenadores viejos y los que no han sido actualizados, ni fun-
cionan correctamente ni se pueden mantener” con O(x): “x es un ordenador”;
V(x): “x es viejo”; A(x): “x ha sido actualizado”; “F(x): “x funciona correcta-
mente”; M(x): x puede mantenerse”:
• Sentido: universal.
• Selección: elementos del dominio que son ordenadores viejos o que son
ordenadores que no han sido actualizados.
Ejemplo 4
• Sentido: existencial.
x ( N x ( P x M x ))
Selección Propiedades de la selección
Ejemplo 5
• Sentido: universal.
x ( G x D x )
Propiedades de la selección
Ejemplo 6
• Sentido: existencial.
Observación
• Propiedades de la selección: de entre los elementos seleccionados (todo
el dominio), hay quienes vuelan. Como muestran los dos últi-
mos ejemplos, es posible hacer
referencia al dominio en su to-
talidad. En este caso, la parte
x V x de selección de la fórmula
no estará.
Propiedades de la selección
FUOC • PID_00265958 18 Lógica de predicados
Matices de significado
• x (P(x) C(x)): “Los programas (todos, en general) son caros”. No se afirma la exis-
tencia de nada que sea un programa, ni de nada que sea caro.
• x (P(x) C(x)): “Todo son programas y todo es caro (todo son programas caros)”. Se
afirma que en el dominio no hay otra cosa que programas caros. No es equivalente a
la anterior. Es equivalente a x P(x) x C(x).
• x (P(x) C(x)): “Hay programas caros”. Se afirma la existencia de, como mínimo, un
programa caro.
• x P(x) x C(x): “Hay un programa y hay algo que es caro”. Sin embargo, el programa
y lo que es caro no tienen por qué ser la misma cosa, de modo que no se afirma la exis-
tencia de ningún programa caro. No es equivalente a la anterior.
• x (P(x) C(x)): “Hay algo que, si fuese un programa, sería caro”. No se afirma la exis-
tencia de nada que sea un programa ni de nada que sea caro. No es equivalente a nin-
guna de las dos anteriores.
Ejemplo 1
• Sentido: universal.
• Sentido: existencial.
Ejemplo 2
Formalizar “Hay excursionistas que conocen todas las rutas y que no han pa-
seado por ningún bosque umbrío” con E(x): “x es un excursionista”; R(x): “x
es una ruta”; B(x): “x es un bosque umbrío”; C(x,y): “x conoce y”; P(x,y): “x pa-
sea (ha paseado) por y”.
• Sentido: existencial.
Esquemáticamente:
Para formalizar “x conoce todas las rutas”, hacemos la lectura “Todas las rutas
son conocidas por x” (se quiere evitar que la respuesta a la pregunta “¿de qué
habla frase?” sea x, porque x ya está cuantificado) y obtenemos:
y (R(y) C(x,y)).
Ejemplo 3
Formalizar “Cuando todos los conductores noveles respetan las señales, los
agentes sólo sancionan a los infractores reincidentes” con C(x): “x es un con-
ductor novel”; S(x): “x es una señal”; R(x,y): “x respeta a y”; A(x): “x es un agen-
te”; F(x,y): “x sanciona a y”; I(x): “x es un infractor reincidente”.
• Sentido: universal.
Esquemáticamente:
La frase “Las señales son respetadas por x” tiene sentido universal (todas las se-
ñales, las señales en general), la selección es el subconjunto de las señales y de
esta selección se dice que x la respeta: y (S(y) R(x,y)). De este modo, la for-
malización del antecedente de la implicación es: x (C(x) y (S(y) R(x,y))).
Esquemáticamente:
Ejemplo 4
Formalizamos “No hay ninguna persona que no conozca algún lugar habitado
por mamíferos” con P(x): “x es una persona”; I(x): “x es un lugar”; M(x): “x es
un mamífero”; H(x,y): “x habita y (y es habitado por x)”; C(x,y): “x conoce y”.
• Sentido: existencial.
Esquemáticamente:
• Sentido: existencial.
Esquemáticamente:
Ejemplo 5
Formalizamos “Sólo si hubiese un inversor que tuviera todas las acciones emiti-
das por compañías solventes, ningún inversor compraría bonos emitidos por es-
tados en vías de desarrollo” con I(x): “x es un inversor”; A(x): “x es una acción”;
S(x): “x es una compañía solvente”; B(x): “x es un bono”; D(x): “x es un estado
en vías de desarrollo”; E(x,y): “x emite y” (“y es emitido por x”); T(x,y): “x tiene y”
(“x es el propietario de y”); C(x,y): “x compra y”.
• “Hay un inversor que tiene todas las acciones emitidas por compañías sol-
ventes” es necesario para:
x (I(x) “Todas las acciones emitidas por compañías solventes son de x”)
• Sentido: universal.
Esquemáticamente:
Y con esto, la formalización de toda la frase que expresa una condición nece-
saria es:
2. La deducción natural
2.1. Reglas
La deducción natural de la lógica de predicados mantiene las nueve reglas de la Recordad que las nueve reglas
de la deducción natural para enunciados
lógica de enunciados y añade cuatro más: dos para cada cuantificador, una para se explican en el apartado 2 del módulo
“Lógica de enunciados” de esta asignatura.
eliminarlo y una para introducirlo.
x A x
------------------------
At
La regla E puede ser entendida de la manera siguiente: si algo (A) puede de-
cirse de todo el dominio (x A(x)), entonces puede decirse de cualquiera de sus
elementos (A(t), donde t es un término cualquiera). Si se quiere decir de un ele-
mento conocido o de un elemento al que se da un nombre, sustituiremos la
variable cuantificada universalmente por la constante que designa este ele-
mento (por ejemplo, A(b)). Si se quiere decir de un elemento cualquiera sin
precisar más, la sustituiremos por una variable cualquiera (por ejemplo, A(u)).
(1) x (I(x)A(x)) P
(2) I(a) P
(3) I(a) A(a) E 1 (x sustituida por la constante a)
(4) A(a) E 2, 3
Observad que en el paso 3 se pasa de “Todos los isleños son agradables” a “Si
Juan es isleño, entonces es agradable”. La constante a ha sido elegida para sus-
tituir x porque cualquier otro término no habría permitido la eliminación de
la implicación y la validación del razonamiento.
Cuando se dispone de una fórmula que contiene una variable libre, esta
variable puede cuantificarse universalmente:
Au
---------------------
x A x
Para que la aplicación de la regla sea correcta, son necesarias las condiciones
Observación
siguientes:
Fijaos en que la regla I va
acompañada de condiciones
a) La variable u debe ser arbitraria. Esto quiere decir que: que determinan la corrección
de la aplicación.
• Cuando se ha deducido A(u), donde hay u, podría haberse puesto cualquier
otro término.
La regla I puede ser entendida de la forma siguiente: si algo (A) puede decirse
de u (A(u)) y se puede garantizar que este u podría ser cualquier objeto del do-
minio (exigencia de arbitrariedad), entonces A puede decirse de todos los ele-
mentos del dominio (x A(x)).
x y A(x,y) z A(z,z)
(1) x y A(x,y) P
(2) y A(u,y) E 1 (x es sustituida por u)
(3) A(u,u) E 2 (y es sustituida por u)
(4) z A(z,z) I 3 (u era libre y arbitraria)
“Los números enteros son pares o impares. No todos los números enteros
son impares. En consecuencia, todos los números enteros son pares.”
(1) x P(x,x) P
(2) P(u,u) E 1
(3) y P(u,y) I 2 ¡error! Lo correcto hubiera sido y P(y,y)
(4) x y P(x,y)
FUOC • PID_00265958 27 Lógica de predicados
“Todo el mundo habla consigo mismo. Así pues, todo el mundo habla con
todo el mundo.”
x A x
---------------------
Aa
x A(x)
A(a)
...
B
B
“Si todos los programas han sido verificados, todos los resultados son co-
rectos. Sin embargo, hay un resultado que no es correcto. Esto quiere decir
que no todos los programas han sido verificados.”
La regla E se aplica mal cuando se utiliza una constante que ya ha sido utili-
zada antes, ya sea en alguna de las premisas o en una aplicación anterior de
esta misma regla o de la regla E:
At -
--------------------
x A x
Como hemos visto, algunas de las reglas referidas a cuantificadores van acom-
pañadas de restricciones que hay que tener en cuenta para garantizar que se
apliquen correctamente. A continuación se presentan dos más, una que afecta
a la introducción del cuantificador universal y otra que restringe el uso que
puede hacerse de las constantes introducidas al eliminar cuantificadores exis-
tenciales:
FUOC • PID_00265958 30 Lógica de predicados
(1) x y C(x,y) P
(2) y C(u,y) E 1
(3) C(u,a) E 2
(4) x C(x,a) I 3 ¡error! a proviene de un que estaba dentro del alcance
del del cual proviene u.
(5) y x C(x,y) I 4
“Todo el mundo conoce a alguien. Por lo tanto, hay alguien que conoce a
todo el mundo.”
2.2. Ejemplos
x y [P(x) R(x, y)], x y [Q(y) R(x, y)], x y [P(x) S(x, y)] x y S(x, y).
(5) P(w) E 4
(6) R(w) E 4
(7) Q(w) E 3, 5
(8) R(w) Q(w) I 6, 7
(9) x [R(x) Q(x)] I 8, w era una variable arbitraria.
FUOC • PID_00265958 32 Lógica de predicados
• x A(x) y A(y).
• x A(x) y A(y).
x A(x)
x A(x)
• x y A(x,y) y x A(x,y).
• x y A(x,y) y x A(x,y).
Estas leyes también ponen de manifiesto la relación que tienen los cuantifica-
dores entre sí.
z (A(z) B(z))
x A(x) y B(y)
FUOC • PID_00265958 33 Lógica de predicados
b) Para el caso del cuantificador universal no se da la equivalencia, y sólo te-
nemos:
x A(x) y B(y)
z (A(z) B(z))
z (A(z) B(z))
x A(x) y B(y)
x A(x) y B(y)
z (A(z) B(z))
FUOC • PID_00265958 34 Lógica de predicados
Todo lo que explicamos sobre la indiferencia de la lógica respecto al significa- Consultad el apartado 3 del módulo “Lógica
de enunciados”.
do de los enunciados se puede extender a la lógica de predicados y, concreta-
mente, a las fórmulas. La lógica de predicados también asume que cualquier
fórmula puede ser verdadera o falsa, pero no ambas cosas simultáneamente, y
garantiza que, si un razonamiento es correcto, entonces, siempre que las pre-
misas sean verdaderas, la conclusión también lo será.
Fijaos en que, una vez sustituidos los parámetros por valores concretos del domi-
nio, los predicados ya se pueden interpretar como V o F, del mismo modo que
los enunciados. La explicación es simple: recordad que un predicado en el que se
han sustituido todos los parámetros por elementos concretos del dominio es un
enunciado.
• El dominio es D { 1, 2 }.
• Todas las sustituciones que se pueden hacer de las variables del predicado
Q dan lugar a Q(1,1), Q(1,2), Q(2,1) y Q(2,2), y una posible interpretación
de todas estas sustituciones puede ser Q(1,1) F, Q(1,2) V, Q(2,1) V y
Q(2,2) F.
Si D { 1, 2, 3 }, entonces:
V F V F V V V
V F V
FUOC • PID_00265958 37 Lógica de predicados
Observación
Dependiendo del valor de verdad de una fórmula, tenemos que:
Por ‘en todas las posibles inter-
pretaciones’ entendemos ‘para
a) Una fórmula es una tautología cuando su valor de verdad es V en cualquier dominio’, ‘para cual-
quier combinación de atribu-
todas las posibles interpretaciones. ción de valores de verdad a las
posibles sustituciones’ y ‘para
b) Una fórmula es una antinomia cuando su valor de verdad es F en cualquier asignación de elemen-
tos del dominio a constantes’.
todas las posibles interpretaciones.
Una fórmula es una tautología si, y sólo si, es un teorema, y es una antinomia
si, y sólo si, es una contradicción.
V V V
F F F
Todas las interpretaciones que hacen verdadera la premisa también hacen verdadera la
conclusión. En este dominio, pues, no hemos encontrado ningún contraejemplo.
FUOC • PID_00265958 39 Lógica de predicados
• Cuando tenemos el dominio D { 1, 2 }, las sustituciones dan lugar a P(1) y P(2). La pre-
misa es equivalente a P(1) P(2), y la conclusión es equivalente a P(1) P(2). Así, tenemos
la siguiente tabla de verdad:
V V V V
V F V F
Contraejemplos
F V V F
F F F F
4. Formas normales
Prefijo Matriz
Es decir, una fórmula estará expresada en forma normal prenexa cuando todos
los cuantificadores están agrupados a su izquierda (la parte denominada pre-
fijo) y, consecuentemente, no aparece ningún cuantificador a su derecha (la
parte denominada matriz).
4) Aplicar las leyes de De Morgan para conseguir que las negaciones precedan
a los símbolos de predicado. Será necesario aplicar tanto las leyes de De Mor-
gan estudiadas para los enunciados como las que se aplican a las fórmulas
cuantificadas.
Los pasos de este proceso se deben seguir en el orden indicado. Alterar su or-
den podría provocar errores.
Ejemplo de eskolemización
x y [z P(x,z) u Q(u,y) w S(w) t (v R(v,t) S(t))] m S(m) S(a).
x y [z P(x,z) u Q(u,y) w S(w) t (v R(v,t) S(t))] m S(m) S(a)
Ámbito de y
Ámbito de t
Ahora ya podemos determinar cuáles son los cuantificadores universales que afectan a
cada cuantificador existencial:
x y [z P(x,z) u Q(u,y) w S(w) t (v R(v,t) S(t))] m S(m) S(a).
Con esta información podemos decir qué variables deben ser sustituidas y por qué cons-
tante o función lo deben ser:
La variable x será sustituida por la constante b (a no se puede utilizar porque ya aparece Nota
en la fórmula).
f(y), g(y), k(y) y h(y,t) son
• La variable z será sustituida por la función f(y). funciones nuevas cualesquiera.
Para acabar, sólo hay que hacer las sustituciones y eliminar los cuantificadores existen-
ciales, y obtenemos lo que presentamos a continuación:
* En negrita hemos indicado los
y [P(b,f(y)) Q(g(y),y) S(k(y)) t (R(h(y,t),t) S(t))] S(c) S(a).* cambios que se han producido.
Con la fórmula x [P(x) (t Q(x,t) y R(x,y)) z A(z) u B(u,x)]. ejemplificamos
el proceso completo de determinación de una forma normal de Skolem:
4) Se aplican las leyes de De Morgan para acercar las negaciones a los símbolos de predi-
cados:
x [(P(x) (t Q(x,t) y R(x,y))) (z A(z) u B(u,x))]
x [(P(x) (t Q(x,t) y R(x,y))) (z A(z) u B(u,x))]
5. Resolución
El método de resolución que hemos estudiado en esta asignatura para la lógica Recordad el método de resolución para
enunciados que hemos visto en el apartado
5 del módulo “Lógica de enunciados”.
de enunciados también se puede utilizar para validar o refutar razonamientos
expresados en el lenguaje de fórmulas. Sólo es necesario que adaptemos el mé-
todo de resolución a sus particularidades.
H(a) I(a)
H(a) H(a)
1) En cada momento se debe elegir aquella sustitución que, una vez aplicada,
permita eliminar el literal de más a la derecha de la cláusula troncal. Aunque
una variable pueda ser sustituida por cualquier término, sólo son útiles las sus-
tituciones que conducen a la eliminación de este literal.
3) Sólo se pueden sustituir las variables. Una variable puede ser sustituida por
una constante, por una función o por otra variable. Sin embargo, ni las cons-
tantes ni las funciones pueden ser sustituidas por nada.
Hay una excepción a la posibilidad de sustituir una variable por cualquier tér-
mino: una variable no puede ser sustituida por una función de sí misma.
4) Cuando una variable es sustituida, hay que sustituir todas las apariciones
Por ejemplo,...
de esta variable en la cláusula donde aparece. No obstante, la cláusula original
... x se puede sustituir por f(y)
se debe dejar intacta. La sustitución se debe hacer sobre la copia que se utiliza o por g(y,z), pero nunca por
en el árbol de resolución. f(x) o por g(y,x), ya que son
funciones de sí misma.
Observación
C(b,b) C(x,a)
No se puede continuar
Este intento fracasa porque aunque la variable x puede sustituirse por b ha-
ciendo que la cláusula lateral quede C(b,a), ni a puede sustituirse por b ni b
puede sustituirse por a.
FUOC • PID_00265958 48 Lógica de predicados
Sustituir u por a
C(b,a) C(b,a)
mente necesario.
a) Para la premisa:
Sustituir x por a
B(g(a),a) B(y,a)
Sustituir y por g(a)
B(g(a),a)
Este primer intento fracasa porque g(x) no puede sustituirse por f(g(x)) ni
Observación
f(g(x)) se puede sustituir por g(x). Y es que ninguno de los dos es una variable.
Os podéis dar cuenta de que al
utilizar la cláusula A(x,f(x)) he-
mos cambiado x por u para
El segundo intento también fracasa: evitar duplicidad de nombres
con la cláusula troncal.
Con esto se han agotado las posibilidades con las cláusulas del conjunto de
apoyo. Si descartamos estas cláusulas, el conjunto se reduce a { A(x,f(x)) }, y de
este conjunto nunca obtendremos . Ya podemos concluir que el razona-
miento no es correcto.
Antes de presentar este algoritmo, es necesario dar toda una serie de definicio-
nes que os serán útiles:
entonces
/* la discrepancia es superable */
variable: la variable de t1, t2
término: el término de t1, t2
/* ampliar la sustitución */
añadir variable/término al final de
/* aplicar la sustitución a las fórmulas */
F1: F1
F2: F2
/* aplicar la sustitución a lo que queda del conjunto */
/* de discrepancias */
D : D
sino
si t1 y t2 son la misma función con parámetros diferentes
entonces
aplicar este mismo algoritmo para unificar las funciones
si las funciones son unificables
entonces
Añadir su unificador al final de
F1: F1; F2: F2
D: D
sino
unificable : falso
fsi
sino
unificable : falso
fsi
fsi
fmientras
si unificable
entonces
finalizar el algoritmo con respuesta:
1. es el unificador que se buscaba
2. las fórmulas unificadas quedan: F1
sino
finalizar el algoritmo con respuesta:
las fórmulas no son unificables
fsi
falgoritmo
Unos cuantos ejemplos de aplicación del algoritmo de unificación, cuyas trazas mostra-
remos, nos servirán para ilustrar su funcionamiento.
El algoritmo es aplicable porque son fórmulas con el mismo predicado. Por tanto,
F1 P(x,g(x,y),a) y F2 P(f(z),u,w). El conjunto de discrepancias es D { <x,f(z)>,
<g(x,y),u>, <a,w> }. Inicialmente { }.
FUOC • PID_00265958 53 Lógica de predicados
El unificador se aplica a las fórmulas y a D (sólo hay que sustituir x por f(z)), y queda lo
siguiente:
• Iteración 3: la primera discrepancia del conjunto es a,w, que se saca del conjun-
to y queda vacío. La discrepancia es de la forma término/variable, y la sustitución
que hay que llevar a cabo para solucionarla es w/a. Esta sustitución se añade al
final de , y queda { <x/f(z)>, <u/g(f(z),y)>, <w/a> }.
F1 P(f(z),g(f(z),y),a), F2 P(f(z),g(f(z),y),a) y D { }.
P(f(z),g(f(z),y),a).
• Iteración 1: la primera discrepancia da lugar a la sustitución <z/a>, con lo cual las fór-
mulas quedan F1 Q(a,x,f(g(y))), F2 Q(a,h(a,w),f(w)), y el conjunto de discrepancias,
D { <x,h(a,w)>,<f(g(y)),f(w)> }.
Q(a,h(a,g(y)),f(g(y))).
c) Traza 3. Queremos unificar las fórmulas R(x,f(y,z)) y R(x,a). En este caso, el conjunto
de discrepancias es D { <f(y,z),a> }.
6. La programación lógica
Las cláusulas de Prolog no son más que implicaciones escritas con una sin-
taxis particular. Así, para la misma regla del ejemplo que acabamos de ver,
tenemos que:
B1 BnA
C1 CpA
Esta cláusula quiere decir que ‘para que X sea un progenitor de Y, es necesario
que X sea el padre de Y’.
Con frecuencia se dice que las partes izquierdas representan objetivos, mien-
tras que las derechas representan subobjetivos. Un objetivo queda conseguido
cuando se han conseguido todos los subobjetivos asociados.
Ejemplos de hechos
Un ejemplo de consulta, que parafraseamos como ‘¿Es Eliseo el padre de Ra- * Los caracteres ?- no deben ser
introducidos por el usuario.
fael?’*, es el siguiente:
2) Considera que el usuario pide que se valide la conclusión*. * En el ejemplo que acabamos de
exponer la conclusión sería padre
(eliseo, rafael).
Asumiendo que las reglas y los hechos conocidos por el intérprete son los que
se han utilizado antes como ejemplo, tenemos que:
Ante esta cláusula se entiende que, para demostrar que el abuelo de Enrique es
Si entendéis :- como ,...
Eliseo, se debe demostrar, en primer lugar, que Z1 es un progenitor de Enrique
... veréis que lo único que hace
y, después, que el padre de Z1 es Eliseo. Esto es como decir que para conseguir el intérprete es intentar llegar
al consecuente de una implica-
el objetivo de demostrar que Eliseo es el abuelo de Enrique, es necesario, en ción: primero, necesita conse-
primer lugar, conseguir los subobjetivos de demostrar que Z1 es un progenitor guir el antecedente.
también se podría haber utilizado. Esto es lo mismo que decir que la decisión
de utilizar la cláusula progenitor (X, Y) :- padre (X, Y) tiene una alternativa.
esta sustitución queda demostrado que padre (Z1, enrique). Aquí es im-
portante darse cuenta de la sustitución que se hace, porque todas las aparicio-
nes de la variable Z1 serán sustituidas por rafael.
Como queda demostrado que padre (rafael, enrique), también queda demos-
trado el hecho siguiente:
6) Dado que los dos subobjetivos que había que demostrar se han demostra-
do, el intérprete responde YES.
La resolución que ejecuta un intérprete de Prolog es equivalente a la que se ha Recordad que hemos explicado el método
de resolución mediante el algoritmo
estudiado en esta asignatura. El mismo ejemplo que se acaba de ver servirá de unificación en el subapartado 5.4
de este módulo didáctico.
para demostrar que, efectivamente, un intérprete de Prolog no hace más que
ejecutar una forma particular del algoritmo de resolución que conocemos.
Si observáis la cláusula del recuadro, veréis que se corresponde con aquella si-
tuación en la que el intérprete acaba de descubrir que, para demostrar que el
abuelo de Enrique es Eliseo, debe demostrar, en primer lugar, que Z1 es un
progenitor de Enrique y, después, que el padre de Z1 es Eliseo. La misma ana-
logía se puede hacer con las otras cláusulas troncales.
padre(eliseo,rafael) padre(rafael,enrique)
padre(eliseo,rafael) padre(eliseo,rafael)
X eliseo?
La consulta, que se puede parafrasear como ‘¿Hay algún X que sea el abuelo
* Esta consulta expresada
de Enrique?’, tiene la respuesta que podéis observar (XEliseo?). Esto quiere en el lenguaje de fórmulas quedaría
como x abuelo (X, Enrique).
decir dos cosas:
Resumen
Ejercicios de autoevaluación
1. Decid cuáles de estas listas de símbolos son fórmulas correctas del lenguaje de predicados
y cuáles no lo son.
a) T(a,b,x)
b) a b
c) T(x,y Q(y),a)
d) x y P(x,y)
e) x Q(x) y Q(y)
f) x (y Q(a) z (P(x,z) T(a,b,z)))
g) z (T(x,y,z) P(z,z))
h) x z P(x,z)
i) x z
j) x z P(x,z)
k) a x y T(a,x,y)
2. Decid qué variables son libres, cuáles están ligadas y en el ámbito de qué cuantificador se
hallan. En caso de que dos variables tengan el mismo nombre, decid si son diferentes o si son
la misma variable.
a) x Q(x) y P(x,y)
b) x Q(a) y P(x,y)
c) x (y T(x,y,z) x Q(x) z P(x,z))
d) x y (z R(x,y,z,t) y T(x,y,t) Q(y))
e) x (x Q(x) P(x,x)) T(x,x,x)
f) x y z (t R(x,y,z,t) x P(x,t))
g) x (x P(x,x) Q(a) y R(a,x,a,y) T(y,y,x))
3. Formalizad las frases que damos a continuación. Utilizad los predicados indicados entre
paréntesis.
a) Las manzanas y las naranjas son gustosas y nutritivas (P(x): “x es una manzana”; T(x): “x
es una naranja”; G(x): “x es gustoso”; N(x): “x es nutritivo”).
b) Hay alimentos que sólo se pueden comer si han sido cocinados (A(x): “x es un alimento”;
M(x): “x se puede comer”; C(x): “x ha sido cocinado”).
c) Sin frenos, no hay ningún auto seguro (F(x): “x tiene frenos”; A(x): “x es un auto”; S(x): “x
es seguro”).
d) No todo el mundo es rico, culto y educado, ni todos los ricos son educados y cultos (R(x):
“x es rico”; C(x): “x es culto”; E(x): “x es educado”. Dominio: conjunto de todas las personas).
e) No todas las cosas compradas a bajo precio son delicadas y quebradizas (C(x): “x es una cosa”;
B(x): “x ha sido comprada a bajo precio”; F(x): “x es delicada”; T(x): “x es quebradiza”).
f) No todo hombre que deserta es un cobarde (H(x): “x es un hombre”; D(x): “x deserta”; C(x):
“x es cobarde”).
4. Formalizad las frases siguientes teniendo en cuenta los dominios que se proponen.
a) Todas las personas son honradas (Dominio: el conjunto de las personas).
b) Todas las personas son honradas (Dominio: un conjunto no vacío cualquiera).
c) Algunas personas son honradas (Dominio: el conjunto de las personas).
d) Algunas personas son honradas (Dominio: un conjunto no vacío cualquiera).
e) Juan es honrado (Dominio: el conjunto de las personas).
f) Juan es honrado (Dominio: un conjunto no vacío cualquiera).
g) Las personas honradas se tratan con todo el mundo (Dominio: el conjunto de las personas).
h) Las personas honradas se tratan con todo el mundo (Dominio: un conjunto no vacío cual-
quiera).
i) Las personas honradas sólo tratan con gente honrada (Dominio: el conjunto de las personas).
j) Las personas honradas sólo tratan con gente honrada (Dominio: un conjunto no vacío
cualquiera).
k) Algunas personas honradas sólo tratan con gente honrada (Dominio: el conjunto de las
personas).
l) Hay gente no honrada que no se trata con nadie (Dominio: el conjunto de las personas).
m) Hay gente no honrada que no se trata con nadie (Dominio: un conjunto no vacío cualquiera).
n) Juan y Marta se tratan mutuamente (Dominio: el conjunto de las personas honradas).
o) Juan se trata con algunas personas honradas (Dominio: el conjunto de las personas honradas).
p) Juan se trata con algunas personas honradas (Dominio: un conjunto no vacío cualquiera).
5. Formalizad las frases siguientes, utilizando los predicados que se indican. Si no se dice ex-
plícitamente lo contrario, el dominio es un conjunto no vacío cualquiera.
a) Los hay blancos y los hay negros, pero no los hay que sean blancos y negros al mismo
tiempo (B(x): “x es blanco”; N(x): “x es negro”).
b) Los hombres y las mujeres tienen sentimientos (H(x): “x es un hombre”; D(x): “x es una
mujer”; T(x): “x tiene sentimientos”).
c) Todos los números racionales son reales, pero sólo algunos números reales son racionales
(Dominio: conjunto de todos los números; Q(x): “x es racional”; R(x): “x es real”).
FUOC • PID_00265958 66 Lógica de predicados
d) No todos los productos caros son de calidad (P(x): “x es un producto”; C(x): “x es caro”;
Q(x): “x es de calidad”).
e) Sólo las personas muy inteligentes son socias del club (Dominio: el conjunto de todas las
personas; I(x): “x es muy inteligente”; S(x): “x es socio del club”).
f) Todos los deportistas federados tienen un seguro (Dominio: el conjunto de todos los
deportistas; F(x): “x está federado”; T(x): “x tiene un seguro”).
g) Todos los deportistas federados tienen un seguro (Dominio: un conjunto no vacío cualquiera;
E(x): “x es un deportista”; F(x): “x está federado”; A(x): “x es un seguro”; T(x,y): “x tiene y”).
h) Si no hay subvenciones, ninguna institución funciona correctamente (S(x): “x es una sub-
vención”; I(x): “x es una institución”; F(x): “x funciona correctamente”).
i) Ciertos espectadores admiran a todos los presentadores, pero no hay ningún presentador
que admire a todos los espectadores (E(x): “x es un espectador”; P(x): “x es un presenta-
dor”; A(x,y): “x admira a y” –“y es admirado por x”–).
j) Todos los animales que viven en un zoológico sienten nostalgia de la libertad (A(x): “x es un
animal”; Z(x): “x es un zoológico”; V(x,y): “x vive en y”; N(x): “x siente nostalgia de la
libertad”).
k) Hay personas que compran todos los objetos que aparecen en los catálogos (P(x): “x es una
persona”; O(x): “x es un objeto”; C(x): “x es un catálogo”; B(x,y): “x compra y”; A(x,y): “x
aparece en y”).
l) Hay personas que compran todos los objetos que aparecen en todos los catálogos (P(x): “x
es una persona”; O(x): “x es un objeto”; C(x): “x es un catálogo”; B(x,y): “x compra y”;
A(x,y): “x aparece en y”).
m) Cada persona misteriosa tiene algún secreto que sus vecinos desconocen (P(x): “x es una
persona misteriosa”; S(x): “x es un secreto”; T(x,y): “x tiene y” –“y es de x”–; V(x,y): “x es
vecino de y”; D(x,y): “x desconoce y”).
6. Formalizad las frases siguientes en los dominios indicados. Antes de hacer la formaliza-
ción, debéis decir qué predicados utilizaréis y con qué significado:
a) Sólo los catalanes comen escudella (Dominio: el conjunto de todos los europeos).
b) En cada empresa trabaja un administrativo poco honrado (Dominio: un conjunto no
vacío cualquiera).
c) Cada diputado se sienta en un escaño (Dominio: un conjunto no vacío cualquiera).
d) Hay un escaño donde se han sentado todos los diputados (Dominio: un conjunto donde
hay escaños y diputados).
e) Hay periodistas que conocen todos los secretos de los famosos (Dominio: un conjunto no
vacío cualquiera).
f) Los informáticos sólo entienden a los informáticos (Dominio: un conjunto cualquiera de
personas).
g) Cuando un miembro de la pandilla se encuentra mal, todos se ponen de mal humor
(Dominio: el conjunto formado por todos los miembros de la pandilla).
h) Cuando un miembro de la pandilla se encuentra mal, todos se ponen de mal humor
(Dominio: un conjunto de personas cualquiera).
7. Formalizad las frases que se dan a continuación utilizando única y exclusivamente los pre-
dicados siguientes: O(x): “x es una oveja”; P(x): “x es un pastor”; T(x,y): “x tiene y” (“x es pro-
pietario de y”); N(x): “x es negro”; A(x): “x es alegre”.
a) Hay pastores que no tienen ovejas.
b) Si un pastor tiene ovejas, entonces tiene alguna negra.
c) Si un pastor no tiene ninguna oveja negra, entonces tiene alguna alegre.
d) Hay un pastor que sólo tiene ovejas negras (no tiene más que ovejas negras).
e) Hay un pastor que, ovejas, sólo tiene de negras.
f) Si se es pastor, hay que tener ovejas negras para tener ovejas alegres.
g) Hay una oveja que es propiedad de todos los pastores.
h) Hay un pastor que es el propietario de todas las ovejas negras.
8. Formalizad las frases que se dan a continuación, utilizando única y exclusivamente los pre-
dicados siguientes: H(x): “x es hombre”; D(x): “x es mujer”; A(x): “x es animal”; G(x): “x es pe-
rro”; T(x,y): “x tiene y” (“x es propietario de y”); C(x,y): “x e y están casados”; N(x): “x es noble”;
I(x): “x es inteligente”; a (constante): “Ana”; b (constante): “Bobby”; c (constante): “Carlos”.
a) Los perros nobles son animales inteligentes.
b) Si Carlos es propietario de Bobby, Ana también lo es.
c) Hay que ser propietario de un perro noble para ser un hombre inteligente.
d) Todos los animales nobles e inteligentes son propiedad de Carlos.
e) Si todos los propietarios de Bobby son inteligentes, entonces Ana está casada con algún
hombre noble.
f) Si todos los perros fuesen nobles, cada animal inteligente sería propiedad de alguna mujer.
g) Cada hombre casado con una mujer inteligente es propietario de un perro noble.
h) Hay hombres y mujeres que son propietarios de animales, pero que no son inteligentes.
i) Ana es una mujer noble que es propietaria de todos los perros que no son propiedad de
ningún hombre.
j) Todos los hombres casados con mujeres que no son propietarias de ningún animal inte-
ligente tienen un perro noble.
FUOC • PID_00265958 67 Lógica de predicados
9. Demostrad, utilizando las reglas de la deducción natural, que los siguientes razonamien-
tos son correctos.
a) x (H(x) M(x)), M(a) H(a)
b) x (H(x) M(x)), y M(y) z H(z)
c) x (H(x) D(x)), D(a) H(a)
d) x (H(x) D(x)), y D(y) z H(z)
e) x (M(x) H(x)), x H(x) x M(x)
f) x (H(x) M(x) F(x)), y (H(y) M(y)) z F(z)
g) x A(x) x A(x)
h) x A(x) x A(x)
i) x y P(x,y) y x P(x,y)
j) x [P(x) y (G(y) T(x,y)) M(x)], G(b) T(a,b) M(a) z P(z)
10. Demostrad con las reglas de la deducción natural que los razonamientos siguientes son
correctos.
a) x (C(x) N(x) P(x)), x (C(x) O(x) P(x)), x (O(x) S(x)) x (C(x) S(x) N(x))
b) x (H(x) M(x)), y M(y) z H(z). Plantead la demostración como una reducción al
absurdo e intentad hacerla sin utilizar las leyes de De Morgan.
c) x (H(x) M(x) F(x)), x (H(x) M(x)) z (H(z) F(z)). Atención, observad que la
fórmula x (H(x) M(x)) es la negación de una fórmula cuantificada existencialmente –
la conectiva principal no es el cuantificador existencial. No sería correcto aplicar la regla
E para obtener, por ejemplo, (H(a) M(a)). Plantead la demostración como una reduc-
ción al absurdo y utilizad las leyes de De Morgan y todas las equivalencias deductivas que
os sean necesarias.
d) x (H(x) D(x)), y D(y) z H(z)
e) x [C(x) P(x)] x y [M(x) C(y) F(x,y)], M(a), z (C(z) F(a,z)) x (C(x) P(x))
f) x [y P(x,y) z S(x,z)], y x P(x,y) x z S(x,z)
g) x P(x,x) x y P(x,y). Plantead la demostración como una reducción al absurdo y uti-
lizad las leyes de De Morgan tantas veces con sea necesario.
h) x [P(x) y (M(y) A(x,y))], x [P(x) y (C(y) A(x,y))] x (M(x) C(x)). Plantead
la demostración como una reducción al absurdo y utilizad las leyes de De Morgan y otras
equivalencias deductivas tantas veces como sea necesario.
13. Dado el razonamiento x P(x,x), x y (P(x,y) P(y,x)) x y P(x,y), decid si alguna de
estas tres interpretaciones es un contraejemplo:
I1: <{ 1 }, { P(1,1) V }, >
I2: <{ 1,2 }, { P(1,1) V, P(1,2) V, P(2,1) F, P(2,2) V }, >
I3: <{ 1,2 }, { P(1,1) V, P(1,2) F, P(2,1) F, P(2,2) F }, >
Considerando sólo estas tres interpretaciones, ¿hay algo que pueda afirmarse sobre la validez
del razonamiento?
14. Dado el razonamiento x [P(x) y Q(x,y)] , x y Q(x,y) x P(x), decid si alguna
de estas tres interpretaciones es un contraejemplo:
I1: < { 1, 2 }, { P(1) F, P(2) F, Q(1,1) V, Q(1,2) V, Q(2,1) V, Q(2,2) V }, >
I2: < { 1, 2 }, { P(1) V, P(2) V, Q(1,1) V, Q(1,2) V, Q(2,1) F, Q(2,2) F }, >
I3: < { 1, 2 }, { P(1) V, P(2) F, Q(1,1) V, Q(1,2) V, Q(2,1) F, Q(2,2) F }, >
Considerando sólo estas tres interpretaciones, ¿hay algo que pueda afirmarse sobre la validez
del razonamiento?
15. Dado el razonamiento x y (A(x) R(x,y) C(y)), A(a), x y R(x,y) x C(x), decid si
alguna de estas tres interpretaciones es un contrajemplo:
I1: <{ 1 }, { A(1) V, C(1) V, R(1,1) V }, { a 1 }>
I2: <{ 1, 2 }, { A(1) V, A(2) V, C(1) V, C(2) V, R(1,1) F, R(1,2) F, R(2,1) F, R(2,2) F }, {a 1}>
I3: <{ 1, 2 }, { A(1) V, A(2) F, C(1) F, C(2) F, R(1,1) F, R(1,2) F, R(2,1) V, R(2,2) V }, {a 1}>
Considerando sólo estas tres interpretaciones, ¿hay algo que pueda afirmarse sobre la validez
del razonamiento?
FUOC • PID_00265958 68 Lógica de predicados
16. Los razonamientos que se dan a continuación no son correctos. Formalizadlos y dad un
contraejemplo para cada uno.
a) Los políticos son inteligentes. Algunos funcionarios también lo son. Por lo tanto, hay po-
líticos que son funcionarios.
b) Hay mujeres responsables. Consiguientemente, todo el mundo es responsable.
c) Sólo los que se han examinado pueden ser aptos. Sólo los aptos pueden ser recomendados.
De esto se desprende que todos los examinados son recomendados.
d) Todos los marcianos tienen un desintegrador. Los desintegradores no existen. Por lo tan-
to, hay marcianos que no tienen ningún desintegrador.
18. Al obtener la forma normal de Skolem de las siguientes fórmulas, se han cometido errores.
Encontradlos y corregidlos (los números romanos indican los diferentes pasos que se dan).
a)
i) x y [Q(x) R(y) T(x,y)]
ii) x y [(Q(x) R(y)) T(x,y)]
iii) x y [Q(x) R(y) T(x,y)]
b)
i) y x T(x,y) z Q(z)
ii) x T(x,a) Q(a)
c)
i) y x [T(x,y) z Q(z,y)]
ii) y x [T(x,y) z Q(z,y)]
iii) x [T(x,a) Q(b,y)]
d)
i) y [C(y) x T(x,y)] z [R(z) t T(t,z)]
ii) y [C(y) x T(x,y)] z [R(z) t T(t,z))]
iii) [C(a) x T(x,a)] z [R(z) T(f(z),z)]
iv) x z [(C(a) T(x,a)) R(z) T(f(z),z)]
e)
i) x [C(x) y T(x,y) z R(z)]
ii) x [C(x) T(x,f(x)) z R(z)]
iii) x [(C(x) T(x,f(x))) z R(z)]
iv) x [C(x) T(x,f(x)) z R(z)]
v) x z [C(x) T(x,f(x)) R(z)]
f)
i) x [Q(x) R(x)] y z T(y,z)
ii) x [Q(x) R(x)] y z T(y,z)
iii) x[Q(x) R(x)] y z T(y,z)
iv) x [Q(x) R(x)] y z T(y,z)
v) [Q(a) R(a)] y T(y,f(y))
vi) y [(Q(a) R(a)) T(y,f(y))]
vii)y [(Q(a) T(y,f(y))) (R(a) T(y,f(y)))]
g)
i) x {R(x) y z [T(y,z) t (S(x,t,z) Q(t))]}
ii) x { R(x) y z [T(y,z) t (S(x,t,z) Q(t))]}
iii) x { R(x)z[T(f(x),z) (S(x,g(z),z) Q(g(z)))]}
iv) x z { R(x) T(f(x),z) [ S(x,g(z),z) Q(g(z))]}
v) x z {[R(x) T(f(x),z) S(x,g(z),z)] [R(x) T(f(x),z) Q(g(z))]}
h)
i) x y {T(x,y) z t u [S(z,t,u) R(x) Q(y)]}
ii) x y { T(x,y) z t u [S(z,t,u) (R(x) Q(y))]}
iii) x y { T(x,y) u [S(f(x,y),f(x,y),u) (R(x) Q(y))]}
iv) x y u { T(x,y) [S(f(x,y),f(x,y),u) (R(x) Q(y))]}
v) x y u {[T(x,y) S(f(x,y),f(x,y),u) R(x)] [T(x,y) S(f(x,y),f(x,y),u) Q(y)]}
19. Utilizad el método de resolución para descubrir si los siguientes razonamientos son o no
correctos:
a) x y P(x,y) y x P(x,y)
b) x [P(x) y(G(y) T(x,y)) M(x)], G(b) T(a,b), M(a) x P(x)
c) x (P(x) Q(x)), x (R(x) P(x)) x(Q(x) R(x))
d) x [y P(x,y) z S(x,z)], y x P(x,y) x z S(x,z)
e) x A(x) y B(y), x (B(x) C(x)), x C(x) x A(x)
f) x D(x), x [P(x) y (D(y) T(x,y))] x [P(x) y (D(y) T(x,y))]
g) x [P(x) y (C(y) A(x,y))], x [P(x) y (M(y) A(x,y))] x (C(x) M(x))
h) x P(x,x), x y (P(x,y) P(y,x)) x y P(x,y)
FUOC • PID_00265958 69 Lógica de predicados
21. Es posible que las siguientes aplicaciones del método de resolución contengan errores.
Decid de qué errores se trata, si los hay, y cómo se arreglarían. Las cláusulas en negrita
son el conjunto de apoyo.
No se puede continuar porque la cláusula A(x) no puede resolverse contra A(a) A(y),
ya que x e y son dos variables diferentes y por lo tanto la discrepancia es irresoluble.
d) {A(x) B(a), D(x,y,z) B(y), C(u) B(u), C(a), A(z), A(b) D(b,a,c)}
FUOC • PID_00265958 71 Lógica de predicados
Solucionario
Ejercicios de autoevaluación
1.
a) Correcta, porque T es un predicado ternario, a y b son constantes y x es una variable.
b) Incorrecta, porque a y b son constantes y no fórmulas.
c) Incorrecta, porque y Q(y) no es un término.
d) Correcta, porque P(x,y) es una fórmula atómica y y P(x,y) y x y P(x,y) son fórmulas co-
rrectas.
e) Correcta.
f) Correcta.
g) Incorrecta, porque el cuantificador universal, de hecho cualquier cuantificador, debe pre-
ceder una variable y en P(z,z) no lo hace.
h) Incorrecta, porque la conjunción debe “conectar” dos fórmulas y x no es una fórmula.
i) Incorrecta, porque igual que en el caso anterior, z no es una fórmula y, en consecuencia,
tampoco lo es z; entonces, x z tampoco es ninguna fórmula.
j) Correcta, porque P(x,z) es una fórmula; entonces: z P(x,z) también lo es. Dado que
z P(x,z) es una fórmula, z P(x,z) también lo es. Entonces x z P(x,z) es una fór-
mula y, finalmente, x z P(x,z) también lo es.
k) Incorrecta, porque las constantes no se pueden cuantificar.
2. Para esta solución se utilizarán subíndices para indicar qué variables son “la misma varia-
ble”. ¡Atención!, la utilización de subíndices no se contempla en la escritura de fórmulas. Se
trata sólo de un recurso utilizado en este ejercicio con el propósito de hacer su solución más
clara.
a) x1 Q(x1) y2 P(x3,y2). La variable x3 es libre.
b) x1 Q(a) y2 P(x3,y2). La variable x3 es libre.
c) x1(y2 T(x1,y2,z3) x4 Q(x4) z5 P(x1,z5)). La variable z3 es libre.
d) x1 y2 (z3 R(x1,y2,z3,t4) y5 T(x1,y5,t4) Q(y2)). La variable t4 es libre.
e) x1 (x2 Q(x2) P(x1,x1)) T(x3,x3,x3). La variables x3 es libre.
f) x1 y2 z3 (t4 R(x1,y2,z3,t4) x5 P(x5,t6)). La variable t6 es libre.
g) x1 (x2 P(x2,x2) Q(a) y3 R(a,x1,a,y3) T(y4,y4,x1)). La variable y4 es libre.
3.
a) x [P(x) T(x) G(x) N(x)].
También es correcto: x [P(x) G(x) N(x)] y [T(y) G(y) N(y)].
Son deductivamente equivalentes.
b) x [A(x) (M(x) C(x))]
O también: x [A(x) (C(x) M(x))].
Son deductivamente equivalentes. Observad que la condición que se expresa es de nece-
sidad.
c) x [A(x) (F(x) S(x))]
O también: x [A(x) (S(x) F(x))]
O también: x [A(x) F(x) S(x)]
Las tres son deductivamente equivalentes.
d) x [R(x) C(x) E(x)] x [R(x) C(x) E(x)]
O también: x [R(x) C(x) E(x)] x [R(x) (C(x) E(x))]
Son equivalentes.
e) x [C(x) B(x) F(x) T(x)]
O también: x [C(x) B(x) (F(x) T(x))]
Son equivalentes.
f) x [H(x) D(x) C(x)],
O también: x [H(x) D(x) C(x)]
Son equivalentes.
4.
a) H(x): “x es honrado”
x H(x)
x (P(x) H(x))
c) H(x): “x es honrado”
x H(x)
x (P(x) H(x))
FUOC • PID_00265958 72 Lógica de predicados
H(a)
H(a)
Observad que esta formalización no “afirma” que Juan sea una persona. Si creemos que sí
que lo es y que hay que explicitarlo, entonces: P(x): “x es una persona”; H(x): “x es honra-
do”; a: “Juan”.
P(a) H(a)
x (H(x) y T(x,y))
Observad que hemos entendido que “todo el mundo” quiere decir “todas las personas”.
i) H(x): “x es honrado”; T(x,y): “x trata con y”
Observad que hemos entendido que “nadie” quiere decir “ninguna persona”.
n) T(x,y): “x trata a y”: a: “Juan”; b: “María”
T(a,b) T(b,a)
x T(a,x)
Esta formalización no “afirma” que Juan sea una persona, ni mucho menos que sea honra-
do. Si quisiéramos mantener la misma semántica del punto anterior habría que formalizar:
5.
a) x B(x) y N(y) z (B(z) N(z))
Todas las formalizaciones siguientes también serían correctas (son equivalentes a la anterior):
x B(x) x N(x) x (B(x) N(x)),
x B(x) y N(y) z (B(z) N(z)) y
x B(x) y N(y) z (B(z) N(z))
FUOC • PID_00265958 73 Lógica de predicados
6.
x (M(x) C(x))
También habría sido correcto no distinguir entre “ser administrativo” y “ser poco honra-
do”, utilizando un solo predicado H(x): “x es un administrativo poco honrado”. Entonces,
la formalización sería:
También habría sido correcto prescindir de los predicados S(x) y F(x) con el significado que
se les ha otorgado y haber utilizado M(x): “x es un secreto de un famoso”. Entonces, la for-
malización habría sido: x [P(x) y (M(y) C(x,y))]
x M(x)y H(y)
7.
a) x { P(x) y [O(y) T(x,y)] }
b) x { P(x) [y (O(y) T(x,y)) z (O(z) N(z) T(x,z))] }
c) x { P(x) [y (O(y) N(y) T(x,y)) z (O(z) A(z) T(x, z))] }
d) x { P(x) y [T(x, y) O(y) N(y)] }
e) x { P(x) y [T(x, y) O(y) N(y)] }
f) x { P(x) [y (O(y) N(y) T(x,y)) z (O(z) A(z) T(x, z))] }
g) x { O(x) y [P(y) T(y,x)] }
h) x { P(x) y [O(y) N(y) T(x,y)] }
8.
a) x [G(x) N(x) A(x) I(x)]
b) T(c,b) T(a,b)
c) x [H(x) I(x) y (G(y) N(y) T(x,y))]
O también: x [y (G(y) N(y) T(x,y)) (H(x) I(x))]
d) x [A(x) N(x) I(x) T(c,x)]
e) x [T(x,b) I(x)] x [H(x) N(x) C(a,x)]
f) x [G(x) N(x)] x [A(x) I(x) y (D(y) T(y,x))]
g) x [H(x) y (D(y) I(y) C(x,y)) z (G(z) T(x,z) N(z))]
h) x [H(x) y (A(y) T(x,y)) I(x)] x [D(x) y (A(y) T(x,y)) I(x)], o también:
x [(H(x) D(x)) y (A(y) T(x,y)) I(x)]
i) N(a) D(a) x [G(x) y (H(y) T(y,x)) T(a,x)]
j) x { H(x) y [D(y) z (A(z) I(z) T(y,z)) C(x,y)] t (G(t) N(t) T(x,t)) }
9.
a)
Observad que el paso 3 es correcto porque x está cuantificada universalmente y, por lo tan-
to, puede ser sustituida por cualquier término.
b)
c)
d)
Observad que hay que eliminar primero el cuantificador existencial y después el universal.
La siguiente demostración no sería correcta:
En este caso el paso 4 es incorrecto, porque se utiliza una constante que ya ha aparecido
antes.
e)
Observad que el paso 7 es correcto porque la variable z era arbitraria: en el paso 3, z ha sido
utilizada para eliminar el cuantificador universal de 1, pero se podría haber utilizado cual-
quier otro término. Observad también que en el paso 4 se ha utilizado la misma variable
que en el paso anterior para poder aplicar después la regla MT.
f)
Observad que, en lo que respecta al orden en el que los cuantificadores se han eliminado,
se ha seguido la misma estrategia que en el punto d.
g)
(1) x A(x) P
(2) x A(x) H
(3) A(a) E 2
(4) A(a) E 1
(5) x A(x) I 2, 3, 4
h)
(1) x A(x) P
(2) x A(x) H
(3) A(a) E 1
(4) A(a) E 2
(5) x A(x) I 2, 3, 4
FUOC • PID_00265958 76 Lógica de predicados
i)
(1) x y P(x,y) P
(2) y P(a,y) E 1
(3) P(a,t) E 2
(4) x P(x,t) I 3
(5) y x P(x,y) I 4
j)
10.
a)
b)
c)
(9) M(u) H
(10) H(u) M(u) F(u) E 1
(11) F(u) H
(12) M(u) F(u) I 9, 11
(13) (M(u) F(u)) ED 12
(14) H(u) MT 10, 13
(15) F(u) H(u) I 11, 14
(16) H(u) F(u) ED 15
(17) H(u) F(u) E 5, 8, 16
(18) z (H(z) F(z)) I 17
d)
e)
Observad lo siguiente:
f)
g)
(1) x P(x,x) P
(2) x y P(x,y) H
(3) x y P(x,y) ED 2
(4) x y P(x,y) ED 3
(5) y P(a,y) E 4
(6) P(a,a) E 5
(7) P(a,a) E 1
(8) x y P(x,y) I 2, 6, 7
(9) x y P(x,y) E 8
Observad que los puntos 3 y 4 se podrían haber resumido en uno solo porque:
h)
11.
a)
b)
c)
d)
12.
a) En el dominio { 1, 2 }, la premisa del razonamiento es equivalente a:
trata del mismo enunciado, es imposible hacer cierto el primero y falso el segundo. En
consecuencia, podemos afirmar que el razonamiento no tiene ningún contraejemplo en
un dominio de un solo elemento.
Dado que es una disyunción, bastará con hacer que uno de los disyuntandos sea cierto.
Tomamos el primero (Q(1) P(1,1)) (Q(2) P(1,2)). Una manera de hacerlo cierto es
que: Q(1) F y Q(2) F. De este modo, una interpretación que no es un contraejemplo es:
y otra es:
Esto quiere decir que el razonamiento no tiene contraejemplos en los dominios de tamaño 1.
En el dominio { 1, 2 } podemos reescribir la primera premisa como P(1,1) P(2,2). La ter-
cera interpretación hace falsa este enunciado y, en consecuencia, no es un contraejemplo.
También en el dominio { 1, 2 }, podemos reescribir la conclusión del razonamiento como:
(P(1,1) P(1,2)) (P(2,1) P(2,2)).
14. Las tres interpretaciones hacen falsa la segunda premisa y, entonces, ninguna de las tres
es un contraejemplo. El hecho de no encontrar un contraejemplo no nos permite afirmar
nada sobre la validez o invalidez del razonamiento. Ahora bien, podemos demostrar que el
razonamiento es válido por otros medios:
15. Un contraejemplo debe hacer falsa la conclusión, pero la primera y la segunda interpre-
tación no lo hacen. La tercera interpretación sí que es un contraejemplo por lo siguiente.
(A(1) R(1,1) C(1)) (A(1) R(1,2) C(2)) (A(2) R(2,1) C(1)) (A(2) R(2,2) C(2)),
y su valor en la tercera interpretación es:
(V F F) (V F F) (F V F) (F V F) V
Dado que el razonamiento tiene, como mínimo, un contraejemplo, podemos afirmar que es
incorrecto.
16.
a) P(x): “x es un político”; I(x): “x es inteligente”; F(x): “x es funcionario”
V F V F
V F F F
F V V V V F
F V F V F
F F V V F
F F F V F
c) E(x): “x se ha examinado”; A(x): “x puede ser (es) apto”; R(x): “x puede ser (es) recomendado”
Un contraejemplo debe hacer falso E(1) R(1). La única posibilidad es E(1) V y R(1) F.
Para hacer cierto A(1) E(1) cuando E(1) V, puede ser A(1) V. De este modo, un con-
traejemplo del razonamiento es:
17. En cada apartado, los números romanos indican los pasos que se efectúan:
a)
i) x {P(x) y [O(y) T(x,y)]}
ii) x {P(x) y [O(y) T(x,y)]}
iii) P(a) y [O(y) T(a,y)]
iv) y [P(a) (O(y) T(a,y))]
b)
i) x [P(x) y Q(x,y)] z R(z)
ii) x [P(x) y Q(x,y)] z R(z)
iii) x [P(x) y Q(x,y)] z R(z)
iv) (P(a) y Q(a,y)) R(b)
v) y [(P(a) Q(a,y)) R(b)]
vi) y [(P(a) R(b)) (Q(a,y) R(b))]
c)
i) x [P(x) y Q(x,y)] z u R(z,u)
ii) x [P(x) y Q(x,y)] z u R(z,u)
iii) x [P(x) y Q(x,y)] z u R(z,u)
iv) x [P(x) Q(x,f(x))] z R(z,g(z))
v) x z [P(x) Q(x,f(x)) R(z,g(z))]
d)
i) x {P(x) y [O(y) T(x,y)] z [O(z) N(z) T(x,z)]}
ii) x { (P(x) y [O(y) T(x,y)]) z [O(z) N(z) T(x,z)]}
iii) x {(P(x) y [O(y) T(x,y)]) z [O(z) N(z) T(x,z)]}
iv) x {(P(x) y [O(y) T(x,y)]) [O(f(x)) N(f(x)) T(x, f(x))]}
v) x y { P(x) O(y) T(x,y) [O(f(x)) N(f(x)) T(x, f(x))]}
vi) x y {[ P(x) O(y) T(x,y) O(f(x))]
[P(x) O(y) T(x,y) N(f(x))]
[P(x) O(y) T(x,y) T(x,f(x))] }
e)
i) x {P(x) y [R(x,y) z T(y,z)] u Q(x,u)}
ii) x { (P(x) y [R(x,y) z T(y,z)]) u Q(x,u)}
iii) x {(P(x) y [R(x,y) z T(y,z)]) u Q(x,u)}
iv) x {(P(x) y [R(x,y) T(y,f(x,y))]) Q(x,g(x))}
v) x y [P(x) R(x,y) T(y,f(x,y)) Q(x,g(x))]
f)
i) x {P(x) y [T(x,y) O(y) N(y)]}
ii) x {P(x) y [T(x,y) (O(y) N(y))]}
iii) P(a) y [T(a,y) (O(y) N(y))]
iv) y {P(a) [T(a,y) (O(y) N(y))]}
v) y [P(a) (T(a,y) O(y)) (T(a,y) N(y))]
18.
a) En el último paso la interiorización de la negación (aplicación de De Morgan) no se ha he-
cho correctamente. Debería ser x y [(Q(x) R(y)) T(x,y)] y finalmente se obtendría:
x T(x,a) Q(b)
FUOC • PID_00265958 84 Lógica de predicados
x [T(x,a) Q(f(x),a)]
d) En el último paso, la matriz de la fórmula no está en FNC, sino en FND. Debería ser:
Al final se obtendría:
h) El error se halla en el tercer paso. Las variables z y t tienen que sustituirse por funciones
de x y de y pero cada una de las funciones debe tener un nombre diferente (para cada va-
riable la función debe ser nueva). Tendría que ser:
iii) x y { T(x,y) u [S(f(x,y),g(x,y),u) (R(x) Q(y))] }
iv) x y u { T(x,y) [S(f(x,y),g(x,y),u) (R(x) Q(y))] }
v) x y u { [T(x,y) S(f(x,y),g(x,y),u) R(x)] [T(x,y) S(f(x,y),g(x,y),u) Q(y)] }
19.
a)
• FNS(x y P(x,y)) y P(a,y)
• FNS(y x P(x,y)) x P(x,b)
{ P(a,y), P(x,b) }
El razonamiento es correcto.
FUOC • PID_00265958 85 Lógica de predicados
b)
• FNS(x [P(x) y (G(y) T(x,y)) M(x)]) x y (P(x) G(y) T(x,y) M(x))
• FNS(G(b) T(a,b)) G(b) T(a,b)
• FNS(M(a)) M(a)
• FNS(x P(x)) x P(x)
El razonamiento es correcto.
c)
• FNS(x (P(x) Q(x))) x (P(x) Q(x))
• FNS(x (R(x) P(x))) x (R(x) P(x))
• FNS(x (Q(x) R(x))) Q(a) R(a)
{ P(x) Q(x), R(x) P(x), Q(a), R(a) }
d)
• FNS(x [y P(x,y) z S(x,z)])
x y (P(x,y) S(x,f(x)))
• FNS(y x P(x,y)) x P(x,a)
• FNS(x z S(x,z)) z S(b,z)
El razonamiento es correcto.
FUOC • PID_00265958 86 Lógica de predicados
e)
• FNS(x A(x) y B(y)) x (A(x) B(a))
• FNS(x (B(x) C(x))) x (B(x) C(x))
• FNS(x C(x)) x C(x)
• FNS(x A(x)) A(b)
{ A(x) B(a), B(x) C(x), C(x), A(b) }
El razonamiento es correcto.
f)
• FNS(x D(x)) x D(x)
• FNS(x [P(x) y (D(y) T(x,y))]) x [(P(x) D(f(x))) (P(x) T(x,f(x)))]
• FNS(x [P(x) y (D(y) T(x,y))]) x [(P(x) D(g(x))) (P(x) T(x,g(x))]
La ausencia del literal P hace inútiles todas las cláusulas que contienen este predicado. Esto
reduce el conjunto a { D(x) }. De este conjunto no puede obtenerse la cláusula vacía.
g)
• FNS(x [P(x) y (C(y) A(x,y))]) x y (P(x) C(y) A(x,y))
• FNS(x [P(x) y (M(y) A(x,y))]) y [P(a) (M(y) A(a,y))]
• FNS(x (C(x) M(x))) C(b) M(b)
{ P(x) C(y) A(x,y), P(a), M(y) A(a,y), C(b), M(b) }
El razonamiento es correcto.
FUOC • PID_00265958 87 Lógica de predicados
h)
• FNS(x P(x,x)) x P(x,x)
• FNS(x y (P(x,y) P(y,x))) x y (P(x,y) P(y,x))
• FNS(x y P(x,y)) x P(x,f(x))
• Contra P(z,z) (cambiamos x por z para evitar duplicidad de nombres de variables en las dos
cláusulas que se pretende resolver) no se puede porque hay que sustituir una variable por
una función de sí misma.
• Contra P(z,y) P(y,z) (cambio de x por z para evitar duplicidades) hay que sustituir y por x
y z por f(x). La resolvente es P(f(x),x). Esta cláusula no puede resolverse contra P(z,z) porque
sería necesario hacer la sustitución de una variable por una función de sí misma. Hay
que volver a utilizar P(z,y) P(y,z) y sustituir y por f(x) y z por x. Con esto se obtiene
P(x,f(x)), que es la cláusula inicial.
El razonamiento sólo puede ser correcto si las premisas son inconsistentes. Sin embargo,
del conjunto { P(x,x), P(x,y) P(y,x) } no puede obtenerse , de modo que las premisas
no son inconsistentes.
20.
a) T(x): “x es (un) astrólogo”; C(x): “x es (un) científico”; F(x): “x es (un) físico”; A(x,y): “x es
amigo de y”
x [T(x) y (C(y) A(x,y))], x (F(x) C(x)) x [T(x) y (F(y) A(x,y))]
x { P(x) y [M(y) A(x,y)] }, x { P(x) y [C(y) A(x,y)] } x [M(x) C(x)]
d) 2, 4, 32, 73: constantes que designan los elementos dos, cuatro, treinta y dos y setenta y
tres, respectivamente; P(x): “x es par”; D(x,y): “x es divisible por y”.
Aclaración formal
x (D(x,32) D(x,4)),
Para mayor claridad, no hemos
x (D(x,4) P(x)),
permitido no seguir la conven-
x (D(x,2) P(x)), ción habitual según la cual las
D(73,2) constantes se deben designar
D(73,32) por letras minúsculas del prin-
cipio del alfabeto latino.
{ D(x,32) D(x,4), D(x,4) P(x), D(x,2) P(x), D(73,2), D(73,32) }
x L(x) y T(y),
x T(x) y { E(y) z [N(z) W(y,z)] },
x (N(x) M(x)),
x { N(x) y [E(y) W(y,x)] }
x { E(x) L(x) y [M(y) W(x,y)] }
{ L(x) T(a), T(x) E(y) N(f(y)), T(x) E(y) W(y,f(y)), N(x) M(x),
N(x) E(g(x)), N(x) W(g(x),x), E(b), L(b), M(y) W(b,y) }
Véase el árbol de resolución de la página siguiente. Observad que cuando se ha utilizado N(x)
M(x) se ha cambiado x por z para evitar la repetición de x en dos cláusulas diferentes. Lo mismo
cuando se ha utilizado T(x) E(y) W(y, f(y)) y L(x) T(a).
Observad también que no se han utilizado las cláusulas de la cuarta premisa “Todas las no-
velas son escritas por algún escritor”. Esto quiere decir que la conclusión no depende de ello
y que esta información es superflua para este razonamiento.
FUOC • PID_00265958 90 Lógica de predicados
21.
a) Las cláusulas A(x,f(x)) y A(b,c) no se pueden resolver entre sí porque no pueden unificar-
se: la primera discrepancia <x, b> se puede resolver sustituyendo x por b, con lo cual la pri-
mera cláusula queda A(b,f(b)). La segunda discrepancia es <f(b), c> y no se puede resolver.
Glosario
algoritmo de unificación
Algoritmo que permite calcular las sustituciones que hay que aplicar a dos fórmulas para ha-
cerlas idénticas.
constante
Representación (referencia) de un elemento distinguido de un dominio. Las constantes no se
poden cuantificar.
cuantificador
operador propio de la lógica de predicados. Afecta a las variables. Hay dos tipos de cuantifi-
cadores: el universal ( y el existencial ().
eskolemización
Eliminación de los cuantificadores existenciales de una fórmula. Las variables cuantificadas
existencialmente son sustituidas por constantes y funciones de Skolem.
fórmula
Elemento del lenguaje formal de la lógica de predicados.
predicado
Aplicación desde algún dominio hacia los enunciados. Más informalmente se puede decir
que se trata de un enunciado parametrizado.
Prolog
Lenguaje de programación. Es el más conocido de los lenguajes de programación denomina-
dos lógicos.
propiedad
Predicado unario.
relación
Predicado binario.
término
Referencia a un objeto de un dominio. Un término puede ser una constante, una variable o
una función (de Skolem).
variable
Referencia a un objeto no especificado de un dominio.
FUOC • PID_00265958 94 Lógica de predicados
Bibliografía
Bibliografía básica
Bibliografía complementaria
Deaño, A. (1993). Introducción a la lógica formal (ed. original 1974). Madrid: Alianza Editorial
(Alianza Universidad Textos, 11).