P. 1
logica_predicados

logica_predicados

|Views: 1.535|Likes:

More info:

Published by: María Laura Berniell on Sep 02, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

06/21/2013

pdf

text

original

Sections

  • Introducción
  • Objetivos
  • 1.La lógica de predicados y su lenguaje
  • 1.1.La capacidad expresiva del lenguaje de enunciados es limitada
  • 1.2.El lenguaje de la lógica de predicados
  • 1.2.1.Predicados, variables y constantes
  • 1.2.2.Cuantificadores
  • 1.2.3.Fórmulas
  • 1.2.4.Ámbito de los cuantificadores
  • 1.2.5.El significado de los cuantificadores
  • 1.3.La formalización
  • 1.3.1.Cómo formalizar
  • 1.3.2.Formalización de frases con significado existencial
  • o universal
  • 1.3.3.Formalización de frases complejas
  • 2.La deducción natural
  • 2.1.Reglas
  • 2.1.1.Eliminación e introducción de cuantificadores
  • 2.1.2.Restricciones adicionales
  • 2.2.Ejemplos
  • 2.3.Reglas derivadas y equivalencias deductivas
  • 3.Verdad y falsedad en la lógica de predicados
  • 3.1.El concepto de interpretación en la lógica de predicados
  • 3.2.Paso de fórmulas a enunciados
  • 3.3.Refutación de razonamientos
  • 4.Formas normales
  • 4.1.Forma normal de Skolem
  • 4.2.Eliminación de cuantificadores existenciales: eskolemización
  • 5.Resolución
  • 5.1.Las novedades: forma normal de Skolem y sustituciones
  • 5.2.Sustituir variables por términos
  • 5.2.1.Ejemplo comentado
  • 5.2.2.Quién sustituye a quién y cómo lo hace
  • 5.3.Más ejemplos
  • 5.4.Automatización del cálculo de sustituciones:
  • el algoritmo de unificación
  • 6.La programación lógica
  • 6.1.¿Qué es la programación lógica?
  • 6.2.La lógica de predicados “implementada”: Prolog
  • 6.2.1.Elementos básicos: cláusulas y reglas
  • 6.2.3.Prolog implementa el método de resolución
  • Resumen
  • Ejercicios de autoevaluación
  • Solucionario
  • Glosario
  • Bibliografía

Lógica

de predicados
Enric Sesa i Nogueras
PID_00149519
© FUOC • PID_00149519 Lógica de predicados
Índice
Introducción ............................................................................................ 5
Objetivos ................................................................................................... 6
1. La lógica de predicados y su lenguaje .......................................... 7
1.1. La capacidad expresiva del lenguaje de enunciados
es limitada ....................................................................................... 7
1.2. El lenguaje de la lógica de predicados ............................................ 7
1.2.1. Predicados, variables y constantes ...................................... 7
1.2.2. Cuantificadores ................................................................... 9
1.2.3. Fórmulas ............................................................................. 10
1.2.4. Ámbito de los cuantificadores ............................................. 11
1.2.5. El significado de los cuantificadores ................................... 12
1.3. La formalización ............................................................................. 12
1.3.1. Cómo formalizar ................................................................. 12
1.3.2. Formalización de frases con significado existencial
o universal ........................................................................... 15
1.3.3. Formalización de frases complejas ...................................... 18
2. La deducción natural ....................................................................... 24
2.1. Reglas .............................................................................................. 24
2.1.1. Eliminación e introducción de cuantificadores .................. 24
2.1.2. Restricciones adicionales ..................................................... 29
2.2. Ejemplos ......................................................................................... 31
2.3. Reglas derivadas y equivalencias deductivas .................................. 32
3. Verdad y falsedad en la lógica de predicados ............................ 34
3.1. El concepto de interpretación en la lógica de predicados .............. 34
3.2. Paso de fórmulas a enunciados ...................................................... 35
3.3. Refutación de razonamientos ......................................................... 37
4. Formas normales ............................................................................... 40
4.1. Forma normal de Skolem ............................................................... 40
4.2. Eliminación de cuantificadores existenciales: eskolemización ...... 41
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_00149519 Lógica de predicados
5.4. Automatización del cálculo de sustituciones:
el algoritmo de unificación ............................................................ 50
6. La programación lógica .................................................................. 54
6.1. ¿Qué es la programación lógica? .................................................... 54
6.2. La lógica de predicados “implementada”: Prolog .......................... 54
6.2.1. Elementos básicos: cláusulas y reglas .................................. 54
6.2.2. La validación de razonamientos entra
en juego: consultas .............................................................. 57
6.2.3. Prolog implementa el método de resolución ...................... 59
Resumen .................................................................................................... 63
Ejercicios de autoevaluación ............................................................... 65
Solucionario ............................................................................................. 71
Glosario ..................................................................................................... 92
Bibliografía .............................................................................................. 93
© FUOC • PID_00149519 5 Lógica de predicados
Introducción
Todo sistema formal tiene sus limitaciones. La lógica de enunciados no es
una excepción. Su simplicidad tiene una recompensa: es un vehículo ideal
para transmitir los conceptos básicos sobre los cuales se construye el edificio
de esta disciplina, pero también tiene un precio: es excesivamente simple para
poder ser una verdadera herramienta de trabajo.
No hay que preocuparse, porque una vez adentrados en el mundo de la lógica,
por medio de los enunciados y de su lenguaje, de la deducción natural y sus
reglas, de las tablas de verdad y del método de resolución, es el momento de
tratar más profundamente este ámbito y estudiar la lógica de predicados.
En este módulo didáctico entraréis en el mundo de la lógica de predicados y
conoceréis el lenguaje que le es propio: el lenguaje de las fórmulas. Con este
lenguaje aprenderéis a formalizar razonamientos que estaban fueran del mo-
desto alcance del lenguaje de enunciados. Veréis que muchos de los aspectos
de los que tratará no os son nada ajenos: habrá que validar razonamientos, uti-
lizando una versión ampliada de la deducción natural conocida; refutarlos
buscando contraejemplos; calcular formas normales y, por supuesto, estudiar
el método que permite mecanizar la tarea de validación: la resolución.
Observaréis que este módulo tiene un paralelismo estrecho con el anterior. Y
esto es así porque el objetivo es el mismo –formalizar y validar razonamien-
tos–, pero el lenguaje es más expresivo, es decir, más potente. El incremento
de expresividad comporta la necesidad de adaptar las herramientas conocidas.
Al final, veréis uno de los puntos donde la lógica y la informática confluyen,
la programación lógica y su lenguaje por excelencia: Prolog.
Repetimos el mismo consejo que os dimos en el módulo didáctico anterior:
leed, entended e intentad rehacer los muchos ejemplos que encontraréis.
© FUOC • PID_00149519 6 Lógica de predicados
Objetivos
En los materiales didácticos facilitados en este módulo encontraréis las herra-
mientas necesarias para conseguir, después del estudio y la asimilación, los ob-
jetivos que se enumeran a continuación:
1. Darse cuenta de la limitación expresiva del lenguaje de enunciados y del
incremento en expresividad que aporta el lenguaje de fórmulas.
2. Saber expresar en el lenguaje de la lógica de predicados aquellos razonamien-
tos expresados en lenguaje natural que son susceptibles de ser formalizados.
3. Conocer las reglas de inferencia de la deducción natural que manipulan
cuantificadores, y darse cuenta tanto de sus posibilidades como de sus li-
mitaciones. Apoyar la comprensión de los cuantificadores y de su papel en
el conocimiento de estas reglas.
4. Poder dar contraejemplos que expliquen, aunque de una manera limitada,
la razón por la cual un razonamiento no es formalmente correcto.
5. Manipular algebraicamente las fórmulas para expresarlas en la forma nor-
mal de Skolem.
6. Conocer el método de resolución y aplicarlo con desenvoltura para validar
razonamientos expresados en el lenguaje de fórmulas.
7. Tener un primer contacto con una de las aplicaciones de la lógica de pre-
dicados y, en concreto, de la mecanización del método de resolución en el
mundo de la informática: la programación lógica.
© FUOC • PID_00149519 7 Lógica de predicados
1. La lógica de predicados y su lenguaje
1.1. La capacidad expresiva del lenguaje de enunciados es limitada
La capacidad expresiva del lenguaje de enunciados es bastante limitada: no
cualquier frase declarativa simple se puede formalizar convenientemente. Este
hecho tiene como consecuencia que un gran número de razonamientos que
se pueden expresar utilizando el lenguaje natural no se puedan validar utili-
zando las herramientas de la lógica de enunciados.
Ejemplo de las limitaciones de la lógica de enunciados
A continuación presentamos un ejemplo bastante revelador de las carencias de la lógica
de enunciados y de su lenguaje. Imaginemos el razonamiento (correcto) siguiente: “Los
estudiantes son personas. Juan es un estudiante. Así pues, Juan es una persona.”
• La formalización (correcta) sería la siguiente: si asignamos P a “los estudiantes son per-
sonas”, Q a “Juan es un estudiante” y R a “Juan es una persona”, entonces tenemos que:
P, Q R,
no permite validar el razonamiento.
• 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,
tampoco permite validar el razonamiento.
1.2. El lenguaje de la lógica de predicados
1.2.1. Predicados, variables y constantes
La lógica de predicados es una ampliación de la lógica de enunciados
que cuenta con un lenguaje formal más rico (más expresivo) y con un
conjunto de reglas que permiten validar razonamientos expresados uti-
lizando este lenguaje. La lógica de enunciados se debe entender, a partir
de este momento, como un subconjunto de la lógica de predicados.
Un predicado es una aplicación definida en un dominio que adquiere
valores en el conjunto de enunciados. Formalmente se expresa de la
manera siguiente:
P(x): D ÷ enunciados.
Informalmente, un predicado
es un enunciado parametrizado
(con variables).
© FUOC • PID_00149519 8 Lógica de predicados
Por ejemplo, el predicado P(x) podría ser la formalización de “x es un estudiante”.
Notad que el predicado P(x) no es un enunciado. P(x) se puede convertir en un
enunciado sustituyendo la variable x (el parámetro) por algún elemento de su
dominio. Si el dominio de x es el conjunto de las personas, entonces P(Juan)
sí es un enunciado (y se corresponde con “Juan es un estudiante”).
Por regla general, no se habla de parámetros, sino de variables. Así lo haremos
a partir de este momento:
Ejemplos de predicados con diferente número de variables
a) Ejemplos de propiedades o predicados unarios:
• P(x): “x es una persona”.
• Q(x): “x es de color rojo”.
b)Ejemplos de relaciones o predicados binarios:
• P(x,y): “x come y”.
• Q(x,y): “El cuadrado de x es y”.
c) Ejemplos de relaciones ternarias:
• R(x,y,z): “x saluda a y en la calle z”.
• S(x,y,z): “La suma de x y de y es z”.
Representaremos un predicado utilizando una letra mayúscula del alfa-
beto latino, con los parámetros, preferentemente representados por le-
tras minúsculas del mismo alfabeto a partir de x, entre paréntesis y
separados por comas.
Un predicado puede tener cualquier número (n > 0) de variables. Según
este número, los predicados se clasifican de la manera siguiente:
1) Los predicados con n = 0 variables son los enunciados.
2) Los predicados con n = 1 variables se denominan propiedades o pre-
dicados unarios.
3) Los predicados con n = 2 variables se denominan relaciones o predi-
cados binarios.
4) A partir de n = 3 no existen nombres específicos. Un predicado con
tres variables se puede denominar relación ternaria; uno con cuatro,
relación cuaternaria, etc.
Ejemplo
La función f(x) = x
2
+ 1, con x
en el dominio de los números
reales, no es un número. Sin
embargo, f(x) puede convertir-
se en un número real sustitu-
yendo x por algún elemento
de su dominio. Así, f(3) = 10
sí que es un número real.
© FUOC • PID_00149519 9 Lógica de predicados
En referencia al dominio de una variable, debéis tener presentes los siguientes
aspectos:
1) Todo dominio se supone no vacío (es decir, diferente de C).
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í:
a) P(x,y,z) es un predicado, pero no un enunciado.
b) P(a,b,c) y P(a,a,d) son enunciados.
c) P(a,y,z) y P(x,e,a) son una relación y una propiedad, respectivamente.
1.2.2. Cuantificadores
El dominio de una variable es todo el conjunto de objetos que la pue-
den sustituir.
Una constante es la representación de un elemento de un dominio.
Las constantes se representan mediante letras minúsculas del alfabeto
latino. Se eligen, preferentemente, a partir de la letra a, para evitar con-
fusiones con las letras que representan las variables.
Las variables y las constantes se denominan términos cuando la distin-
ción no es importante.
Los cuantificadores son los dos operadores que el lenguaje de la lógica
de predicados añade a las conectivas, ya conocidas, del lenguaje de
enunciados. Los dos operadores específicos del lenguaje de la lógica de
predicados se corresponden, aproximadamente, con aquellas construc-
ciones del lenguaje natural que tienen un significado de ‘todos los.../to-
das las...’y de ‘algún o algunos/alguna o algunas...’. Se representan con
los símbolos ¬ y -, respectivamente. Son unarios, tienen prioridad
máxima y afectan a las variables.
Recordad que las conectivas se
tratan en el subapartado 1.3 del
módulo “Lógica de enunciados”.
© FUOC • PID_00149519 10 Lógica de predicados
A continuación, presentamos la tabla resumen de los cuantificadores:
Ejemplos con cuantificadores
Si P(x) quiere decir “x es un estudiante”, entonces:
• -x P(x) significa ‘hay estudiantes’, ‘existen estudiantes’, ‘algunos son estudiantes’, ‘al-
guno es un estudiante’, etc.
• ¬x P(x) significa ‘todos son estudiantes’, ‘todo el mundo es estudiante’, etc.
1.2.3. Fórmulas
Las reglas siguientes definen cómo hay que construir fórmulas correctamente
a partir de los elementos básicos:
1) Si P es un símbolo de predicado y t
1
, ..., t
n
(n > 0) son símbolos de términos,
entonces P(t
1
,...,t
n
) es una fórmula. Estas fórmulas también se denominan áto-
mos o fórmulas atómicas.
2) Si B y A son fórmulas, entonces (÷A), (A . B), (A v B) y (A ÷ B) también son
fórmulas.
3) Si A es una fórmula y x es una variable, entonces (¬x A) y (-x A) también
son fórmulas.
4) A excepción de los casos expuestos anteriormente, no hay ninguna otra
fórmula.
Cuantificadores
Símbolo Nombre Significado
Correspondencia
(aproximadamente)
¬
Cuantificador
universal
‘(para) todo’
todos los...
todas las...
cada...
-
Cuantificador
existencial
‘existe (alguno)’
hay un...
existe un...
algún o algunos...
El lenguaje de la lógica de predicados se denomina lenguaje de 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.
Alfabeto = = ´., v, ÷, ÷, ¬, -, P, Q, R, ..., ..., (,)`.
Términos
a, b, c
¦ ´ ¦ ¹
, x, y, z
¦ ´ ¦ ¹
,
Cons tes Variables tan
¦ ¦ ¦ ¦ ¦ ´ ¦ ¦ ¦ ¦ ¹
© FUOC • PID_00149519 11 Lógica de predicados
Observad a partir del alfabeto y de las reglas de construcción que el lenguaje
de enunciados es un subconjunto del lenguaje de fórmulas.
En el lenguaje de fórmulas se utilizan las mismas convenciones que en el len-
guaje de enunciados para hacer la notación menos pesada. Los cuantificadores
tienen la misma prioridad, que es máxima (por encima de ÷). En algunos ca-
sos, y para mejorar la legibilidad, utilizaremos los corchetes ‘[’ y ‘]’ y las llaves
‘{’ y ‘}’.
1.2.4. Ámbito de los cuantificadores
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.
Ejemplo de variables libres y de variables ligadas
Mostramos un ejemplo de variables libres y de variables que están bajo la influencia de
algún cuantificador:
Cuando dos variables están designadas por el mismo símbolo (misma letra)
decimos que:
1) Son la misma variable si están bajo el alcance del mismo cuantificador, o
si las dos son libres.
2) Son variables diferentes si están bajo el alcance de cuantificadores distintos,
o si una es libre y la otra no.
Se denomina ámbito de un cuantificador a aquella zona de una fór-
mula que está dentro de su campo de acción, es decir, bajo sus efectos.
Observad las convenciones
utilizadas para construir enunciados
en el subapartado 1.4. del módulo
“Lógica de enunciados”.
* Notad que la parentización tiene
efectos sobre el ámbito
de los cuantificadores.
¬x [P(x) . -x Q(x, z) ÷ -y R(x, y)] v Q(z, x)*.
Variable libre
Variables libres
Variables libres
Variables ligadas
Variable
© FUOC • PID_00149519 12 Lógica de predicados
Exponemos algunos ejemplos de variables diferentes y de variables que son la
misma en el gráfico siguiente:
Evitad confusiones innecesarias dando nombres diferentes a variables dife-
rentes.
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)] v Q(z,x).
1.2.5. El significado de los cuantificadores
Cuando el dominio de las variables es finito, se puede entender la cuantificación
universal como una forma abreviada de la conjunción, y la cuantificación exis-
tencial como una forma abreviada de la disyunción.
Ejemplo de sustitución de cuantificadores por conectivas
Si el dominio de la variable x es el conjunto {1, 2, 3, 4 }, entonces:
• La fórmula ¬x P(x) se puede entender como P(1) . P(2) . P(3) . P(4).
• La fórmula -x P(x) se puede entender como P(1) v P(2) v P(3) v P(4).
Si el dominio tiene cardinalidad infinita, estas sustituciones no se pueden hacer.
Incluso en el caso de dominios de cardinalidad finita, las sustituciones de las va-
riables por todas las constantes no se llevan nunca a la práctica. Se trata, más que
nada, de una forma de entender el significado de los cuantificadores.
1.3. La formalización
1.3.1. Cómo formalizar
La formalización de frases y/o de razonamientos en el lenguaje de la lógica de
predicados es una actividad parecida a la que se hace cuando se utiliza el len-
guaje de la lógica de enunciados.
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.
¬x [P(x) . -x Q(x, z) ÷ -y R(x, y)] v Q(z, x).
Misma variable
Variables diferentes
© FUOC • PID_00149519 13 Lógica de predicados
De manera general, los pasos que habrá que seguir son los siguientes:
1) Determinar el dominio. Se entenderá por dominio el conjunto de todos
los objetos de los cuales se hablará. Los predicados serán unos u otros según
cuál sea el dominio. Para determinar el dominio, habrá que responder a la pre-
gunta “¿de qué se habla?”. Cuando no es fácil responder a esta pregunta o el
dominio no admite una definición simple, puede decirse que el dominio es un
conjunto cualquiera no vacío.
2) Determinar los predicados atómicos. En este caso, habrá que preguntarse:
• ¿Qué subconjuntos se consideran dentro del dominio (que no se quiera o
no sea necesario definir en término de subconjuntos más simples)?
• ¿Qué se dice de los objetos del dominio? ¿Cuáles son sus propiedades? ¿Có-
mo se relacionan entre sí?
3) Determinar si hay elementos concretos del dominio que son identifica-
bles del resto. A cada uno le corresponderá una constante.
4) Formalizar cada frase simple en términos de los predicados atómicos y las
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
adecuada para cada fórmula se prestará atención al sentido general (cuantifi-
cación universal: ¬) o particular (cuantificador existencial: -) de la frase.
A continuación proponemos algunos ejemplos de formalización.
Ejemplo 1
“Las setas son apreciadas por su sabor. Todo lo que es apreciado por su sa-
bor o por sus propiedades curativas es caro. Los níscalos son setas. Así pues,
los níscalos son caros.”
Como dominio para formalizar este razonamiento se considerará un conjunto
no vacío cualquiera, porque la pregunta “¿de qué se habla?” no puede respon-
derse de manera precisa (se habla de setas, de níscalos, de cosas apreciadas por
su sabor, de cosas apreciadas por sus propiedades curativas y de cosas caras. Lo
máximo que podríamos precisar sería algo como por ejemplo “el conjunto de
todas estas cosas”).
Se asignan los significados siguientes a predicados atómicos: B(x): “x es una se-
ta”; S(x): “x es apreciado por su sabor”; P(x): “x es apreciado por sus propieda-
des curativas”; R(x): “x es un níscalo”; C(x): “x es caro”.
La formalización del razonamiento sería, pues:
¬x (B(x) ÷ S(x)), ¬x (S(x) v P(x) ÷ C(x)), ¬x (R(x) ÷ B(x)) ¬x (R(x) ÷ C(x))
El dominio
A efectos prácticos, decir que
el dominio es un conjunto
cualquiera no vacío es lo mis-
mo que decir que cualquier
objeto imaginable pertenece o
puede pertenecer al dominio.
Fórmulas con variables
libres
Si una fórmula que formaliza
una frase contiene variables li-
bres, ¡seguro que no es
correcta!
¡Atención!
Prestad atención a la elección
del dominio y la elección de
predicados atómicos en estos
ejemplos. Quizá de momento
os costará un poco entender
las formalizaciones, pero no os
preocupéis, ya las entenderéis
más adelante.
© FUOC • PID_00149519 14 Lógica de predicados
Ejemplo 2
“Hay personas honradas y hay personas sensatas. Las personas honradas
siempre son sensatas. Podemos concluir que hay personas que son honra-
das y sensatas.”
En este razonamiento sólo se hace referencia a personas, por lo cual podemos
decidir que el dominio será un conjunto de personas no vacío (o el conjunto
de todas las personas). Como predicados atómicos se utilizarán: H(x): “x es
honrado y A(x): “x es sensato”. Observad que, dado que el dominio sólo con-
tiene personas, esto es exactamente lo mismo que H(x): “x es una persona hon-
rada” y A(x): “x es una persona sensata”.
La formalización del razonamiento es:
-x H(x) . -y A(y), ¬x (H(x) ÷ A(x)) -x (H(x) . A(x))
Observad que la primera premisa es la conjunción de dos fórmulas cuantifica-
das.
Si el dominio elegido hubiese sido un conjunto no vacío cualquiera, entonces
se habría podido hacer la siguiente asignación de significado a predicados ató-
micos: P(x): “x es una persona”; H(x): “x es honrado”; A(x): “x es sensato”; y la
formalización sería:
-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.”
Como dominio, consideraremos un conjunto cualquiera no vacío, que contie-
ne un elemento singular (Relámpago). Lo que hace que sea singular es que nos
referimos a él por el nombre.
Asignaremos los significados a los predicados atómicos siguientes: T(x): “x está
triste”; R(x): “x rinde por debajo de sus posibilidades”; D(x): “x tiene dificultades”.
Para designar a Relámpago se utilizará una constante, a: “Relámpago”.
La formalización del razonamiento será:
¬x (T(x) ÷ R(x)), -x (÷T(x) . D(x)), ÷T(a) . R(a) D(a)
© FUOC • PID_00149519 15 Lógica de predicados
1.3.2. Formalización de frases con significado existencial
o universal
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:
1) ¿A qué subconjunto del dominio se hace referencia? Este subconjunto se
denominará selección.
2) ¿Qué se dice de este subconjunto del dominio? ¿Qué propiedad o propie-
dades tienen sus elementos? Denominaremos a esto propiedades de la selección.
Las frases con sentido existencial se formalizan según el patrón siguiente:
Asimismo, frases con sentido universal se formalizan según el patrón siguiente:
Si con P(x): “x es un programa”; A(x): “x es antiguo”; V(x): “x tiene un valor
considerable”; C(x): “El mantenimiento de x es complicado”, formalizamos las
frases “Algunos programas antiguos tienen un valor considerable pero su
mantenimiento es complicado” y “Todos los programas antiguos tienen un
valor considerable pero su mantenimiento es complicado” obtendremos, res-
pectivamente:
-x (P(x) . A(x) . V(x) . C(x))
Selección Propiedades de la selección
¬x (P(x) . A(x) ÷ V(x) . C(x))
Selección Propiedades de la selección
A continuación presentamos algunos ejemplos de formalización.
-x (Selección(x) . Propiedades_de_la_selección(x))
¬x (Selección(x) ÷ Propiedades_de_la_selección(x))
Observación
Observad que en la formaliza-
ción de una frase con sentido
existencial, las dos partes
–selección y propiedades de
ésta– se unen con una conjun-
ción, mientras que si el sentido
es universal, lo hacen
con una implicación.
}
}
} }
© FUOC • PID_00149519 16 Lógica de predicados
Ejemplo 1
Formalizar la frase “Hay programas correctos que no satisfacen al usuario”
con las asignaciones P(x): “x es un programa”; C(x): “x es correcto”; S(x): “x
satisface al usuario”:
• Sentido: existencial.
• Selección: la frase hace referencia a aquellos elementos del dominio que
son simultáneamente “programas” y “correctos”.
• Propiedades de la selección: de los elementos seleccionados (algunos),
dice que no satisfacen al usuario:
-x (P(x) . C(x) . ÷S(x))
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.
• Selección: elementos del dominio que son al mismo tiempo “directivos” e
“importantes”.
• Propiedades de la selección: los elementos seleccionados llevan corbata:
¬x (D(x) . I(x) ÷ C(x))
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.
• Propiedades de la selección: los elementos seleccionados no funcionan
correctamente y no se pueden mantener:
¬x (O(x) . (V(x) v ÷A(x)) ÷ ÷F(x) . ÷M(x))
© FUOC • PID_00149519 17 Lógica de predicados
Ejemplo 4
Formalizamos la frase “Algunos navegantes se marean cuando se acercan a
puerto” con N(x): “x es un navegante”; P(x): “x se acerca a puerto”; M(x): “x se
marea”:
• Sentido: existencial.
• Selección: elementos del dominio que son navegantes.
• Propiedades de la selección: los elementos seleccionados (algunos) se ma-
rean cuando se acercan a puerto:
-x ( . ( ))
Selección Propiedades de la selección
Ejemplo 5
Formalizamos “Todo es gris y de aspecto descuidado” con G(x): “x es gris” y
D(x): “x tiene el aspecto descuidado”:
• Sentido: universal.
• Selección: todo el dominio (no se concreta de qué se habla).
• Propiedades de la selección: todos los elementos seleccionados (todo el
dominio) son grises y de aspecto descuidado.
¬x ( )
Ejemplo 6
Formalizamos la proposición siguiente, “Hay quienes vuelan”, con la asigna-
ción V(x): “x vuela”:
• Sentido: existencial.
• Selección: todo el dominio (no se concreta de qué se habla).
• Propiedades de la selección: de entre los elementos seleccionados (todo
el dominio), hay quienes vuelan.
-x
N x ( )
¦ ´ ¹
P x ( ) M x ( ) ÷
¦ ¦ ¦ ´ ¦ ¦ ¹
G x ( ) D x ( ) .
¦ ¦ ¦ ´ ¦ ¦ ¹
Propiedades de la selección
Observación
Como muestran los dos últi-
mos ejemplos, es posible hacer
referencia al dominio en su to-
talidad. En este caso, la parte
de selección de la fórmula
no estará.
V x ( )
¦ ´ ¹
Propiedades de la selección
© FUOC • PID_00149519 18 Lógica de predicados
Matices de significado
Observad el significado de las fórmulas siguientes (P(x): “x es un programa”; C(x): “x es
caro”):
• ¬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.
1.3.3. Formalización de frases complejas
Con frecuencia, para formalizar con el lenguaje de la lógica de predicados es
conveniente reducir un problema complejo a una colección de problemas más
simples, de manera parecida a como se hace en la formalización al lenguaje de
la lógica de enunciados. Un buen ejemplo son aquellas frases que requieren el
uso de más de un cuantificador para su formalización. Los ejemplos siguientes
os ayudarán a verlo.
Ejemplo 1
Formalizar “Los programadores que tienen asignado un despacho rinden por
encima de la media” con P(x): “x es un programador”; D(x): “x es un despa-
cho”; R(x): “x rinde por encima de la media”; A(x,y): “x tiene y asignado” (“y
está asignado a x”).
• Sentido: universal.
• Selección: subconjunto de los programadores que tienen asignado un des-
pacho.
• Propiedades de la selección: los elementos del subconjunto rinden por
encima de la media.
Esquemáticamente la formalización será:
¬x (P(x) . “x tiene asignado un despacho” ÷ R(x))
Ahora queda por resolver el problema de formalizar la frase “x tiene asignado
un despacho”. Para formalizarla, se procederá como hasta ahora: preguntarse
© FUOC • PID_00149519 19 Lógica de predicados
si su sentido es universal o existencial, preguntarse de qué habla (selección) y
preguntarse qué afirma de aquello de lo que habla (propiedades de la selec-
ción). Dado que la respuesta a la pregunta “¿de qué habla la frase?” no puede
ser “habla de x” (porque x ya está afectado por un cuantificador), leeremos la
frase como “hay un despacho que está asignado a x”.
• Sentido: existencial.
• Selección: subconjunto de despachos.
• Propiedades de la selección: los elementos de la selección (algunos) están
asignados a x.
La formalización será: -y (D(y) . A(x,y)). Finalmente, la formalización de toda
la frase es:
¬x (P(x) . -y (D(y) . A(x,y)) ÷ R(x))
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.
• Selección: subconjunto de los excursionistas.
• Propiedades de la selección: los elementos de la selección (algunos) cono-
cen todas las rutas y nunca han paseado por ningún bosque umbrío.
Esquemáticamente:
-x (E(x) . “x conoce todas las rutas” .
. “x no ha paseado por ningún bosque umbrío”)
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)).
La frase “x no ha paseado por ningún bosque umbrío” se formalizará como la
negación de la frase “x ha paseado por algún bosque umbrío”. De esta última
frase, hacemos la lectura “hay algún bosque umbrío por el cual x ha paseado”
y obtenemos la formalización -z (B(z) . P(x,z)). La negación de esta fórmula es:
÷-z (B(z) . P(x,z))
© FUOC • PID_00149519 20 Lógica de predicados
Finalmente, la formalización de toda la frase es:
-x [E(x) . ¬y (R(y) ÷ C(x,y)) . ÷-z (B(z) . P(x,z))]
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”.
Globalmente, la frase expresa una condición suficiente porque:
• “Todos los conductores noveles respetan las señales” es la condición sufi-
ciente para:
• “Los agentes sólo sancionan a los infractores reincidentes”
En lo que respecta a la formalización de “Todos los conductores noveles res-
petan las señales”:
• Sentido: universal.
• Selección: subconjunto de los conductores noveles.
• Propiedades de la selección: los elementos seleccionados respectan las se-
ñales.
Esquemáticamente:
¬x (C(x) ÷ ”Las señales son respetadas por x”).
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))).
En lo que respecta a la formalización de la frase “Los agentes sólo sancionan a
los infractores reincidentes”:
• Sentido: universal (todos los agentes, los agentes en general).
Esquemáticamente:
¬x (A(x) ÷ ”x sólo sanciona a infractores reincidentes”).

© FUOC • PID_00149519 21 Lógica de predicados
La frase “x sólo sanciona a infractores reincidentes” expresa una condición ne-
cesaria porque:
– “Ser un infractor reincidente” es necesario para:
– “Ser sancionado por x”.
La lectura “Todo lo que no es un infractor reincidente no es sancionado por x”
nos lleva a la formalización: ¬y (÷I(y) ÷ ÷F(x,y)), que equivale a ¬y (F(x,y) ÷ I(y)).
De este modo, la formalización resultante es:
¬x (A(x) ÷ ¬y (÷I(y) ÷ ÷F(x,y))).
Y la formalización de toda la frase es:
¬x [C(x) ÷ ¬y (S(y) ÷ R(x,y))] ÷ ¬x [A(x) ÷ ¬y (÷I(y) ÷ ÷F(x,y))].
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”.
La frase que se quiere formalizar es la negación de “Hay personas que no co-
nocen ningún lugar habitado por mamíferos”. Para esta frase encontramos lo
siguiente.
• Sentido: existencial.
• Selección: subconjunto de las personas.
• Propiedades de la selección: los (algunos) elementos de la selección no
conocen ningún lugar habitado por mamíferos.
Esquemáticamente:
-x (P(x) . ”x no conoce ningún lugar habitado por mamíferos”).
La frase “x no conoce ningún lugar habitado por mamíferos” es la negación
de “x conoce algún lugar habitado por mamíferos”, que podemos leer como
“Hay lugares habitados por mamíferos que son conocidos por x”. Para esta úl-
tima frase:
• Sentido: existencial.
• Selección: el subconjunto de los lugares habitados por mamíferos.
• Propiedades: los elementos de la selección (algunos) son conocidos por x.
© FUOC • PID_00149519 22 Lógica de predicados
Esquemáticamente:
-y (I(y) . ”y es habitado por mamíferos”. C(x,y))
La frase “y es habitado por mamíferos” se formaliza como “Hay mamíferos que
habitan y”: -z (M(z) . H(z,y)). Finalmente, la formalización de la frase “x no
conoce ...” será:
÷-y [I(y) . -z (M(z) . H(z,y)) . C(x,y)]
Con esto, la formalización de “No hay ninguna persona ...” será:
÷-x {P(x) . ÷-y [I(y) . -z (M(z) . H(z,y)) . C(x,y)]}
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”.
Globalmente, la frase expresa una condición necesaria porque:
• “Hay un inversor que tiene todas las acciones emitidas por compañías sol-
ventes” es necesario para:
• “Ningún inversor compra bonos emitidos por estados en vías de desarrollo”.
En lo que respecta a la formalización de “Hay un inversor que tiene todas las
acciones emitidas por compañías solventes”, esquemáticamente es:
-x (I(x) . “Todas las acciones emitidas por compañías solventes son de x”)
Respecto a la formalización de “Todas las acciones emitidas por compañías
solventes son de x”:
• Sentido: universal.
• Selección: acciones emitidas por compañías solventes.
• Propiedades de la selección: los elementos de la selección son propiedad
de x.
Esquemáticamente:
¬y (A(y) . “y ha sido emitida por una compañía solvente” ÷ T(x,y))
© FUOC • PID_00149519 23 Lógica de predicados
La formalización de “y ha sido emitida por una compañía solvente” es la de
“Una compañía solvente ha emitido y”: -z (S(z) . E(z,y)).
La formalización de toda la frase “Hay un inversor...” es:
-x { I(x) . ¬y [A(y) . -z (S(z) . E(z,y)) ÷ T(x,y)] }
En lo que respecta a la formalización de “Ningún inversor compra bonos emi-
tidos por estados en vías de desarrollo”, su formalización es la negación de la
de “Algún inversor compra bonos emitidos por estados en vías de desarrollo”.
Respecto a la formalización de “Algún inversor compra bonos emitidos por es-
tados en vías de desarrollo”, esquemáticamente es:
-x (I(x) . “x compra bonos emitidos por estados en vías de desarrollo”)
La formalización de “x compra bonos emitidos por estados en vías de desarro-
llo” es la de “Hay bonos emitidos por estados en vías de desarrollo que son
comprados por x”. Esta formalización es:
-y (B(y) . -z(D(z) . E(z,y)) . C(x,y))
La formalización de toda la frase “Ningún inversor compra bonos emitidos
por estados en vías de desarrollo” es:
÷-x { I(x) . -y [B(y) . -z (D(z) . E(z,y)) . C(x,y)] }
Y con esto, la formalización de toda la frase que expresa una condición nece-
saria es:
÷-x { I(x) . -y [B(y) . -z (D(z) . E(z,y)) . C(x,y)] } ÷
÷ -x { I(x) . ¬y [A(y) . -z(S(z) . E(z,y)) ÷ T(x,y)] }
© FUOC • PID_00149519 24 Lógica de predicados
2. La deducción natural
2.1. Reglas
La deducción natural de la lógica de predicados mantiene las nueve reglas de la
lógica de enunciados y añade cuatro más: dos para cada cuantificador, una para
eliminarlo y una para introducirlo.
2.1.1. Eliminación e introducción de cuantificadores
a) Regla 10: eliminación del cuantificador universal (E¬)
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)).
Ejemplo de utilización correcta de la regla E¬
Como ejemplo de utilización correcta de esta regla, se validará el razonamiento:
“Los isleños son agradables. Juan es isleño. Luego, Juan es agradable.”
Se hace la siguiente asignación de significados a predicados atómicos: I(x): “x
es isleño”; A(x): “x es agradable”; a (constante): “Juan”. El razonamiento se for-
maliza:
¬x (I(x) ÷ A(x)), I(a) A(a)
Cuando una fórmula está cuantificada universalmente, la variable cuan-
tificada puede ser sustituida por cualquier término y el cuantificador se
puede eliminar:
Donde t es un término cualquiera (una constante o una variable, según
convenga).
Recordad que las nueve reglas de la
deducción natural para enunciados
se explican en el apartado 2
del módulo “Lógica de enunciados”
de esta asignatura.
x ¬ A x ( )
A t ( )
------------------------
© FUOC • PID_00149519 25 Lógica de predicados
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.
b) Regla 11: introducción del cuantificador universal (I¬)
Para que la aplicación de la regla sea correcta, son necesarias las condiciones
siguientes:
a) La variable u debe ser arbitraria. Esto quiere decir que:
• Cuando se ha deducido A(u), donde hay u, podría haberse puesto cualquier
otro término.
• No aparece en el encabezamiento (hipótesis) de la subdeducción donde la
regla se aplica.
b) La introducción del cuantificador universal no debe provocar capturas in-
voluntarias de variables libres. Esto quiere decir que la variable x no aparece
libre en la fórmula A.
c) Todas las ocurrencias de la variable libre u en la fórmula A deben ser susti-
tuidas por x.
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)).
Ejemplo de aplicación correcta de la regla I¬
Como ejemplo de utilización correcta de la regla se validará el razonamiento
siguiente:
“Todo el mundo es amigo de todo el mundo. Por lo tanto, todo el mundo
es amigo de sí mismo”.
(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
Cuando se dispone de una fórmula que contiene una variable libre, esta
variable puede cuantificarse universalmente:
A u ( )
x A ¬ x ( )
---------------------
Observación
Fijaos en que la regla I¬ va
acompañada de condiciones
que determinan la corrección
de la aplicación.
© FUOC • PID_00149519 26 Lógica de predicados
El dominio será un conjunto cualquiera, no vacío, de personas, y se utilizará
un solo predicado: A(x,y): “x es amigo de y”.
¬x ¬y A(x,y) ¬z A(z,z)
Ejemplos de aplicación incorrecta de la regla I¬
Lo siguiente son ejemplos de aplicaciones incorrectas de la regla I¬. En todos
los casos se viola alguna de las condiciones que garantizan su uso correcto:
1) Deducción incorrecta porque la variable libre de la fórmula en que se aplica
la regla aparece en el encabezamiento de la subdeducción donde se hace la
aplicación.
Esta deducción da por válido, sin serlo, el razonamiento siguiente:
“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.”
2) Esta deducción es incorrecta porque no todas las apariciones de la variable
libre se han sustituido en el momento de la introducción del cuantificador:
(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)
(1) ¬x (S(x) v P(x)) P
(2) ÷¬x S(x) P
(3) S(u) v P(u) E¬ 1
(4) S(u) H
(5) ¬x S(x) I¬ 4 ¡error!
(6) ÷¬x S(x) it 2
(7) ÷S(u) I÷ 4, 5, 6
(8) P(u) SD 3, 7
(9) ¬x P(x) I¬ 8
(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_00149519 27 Lógica de predicados
Esta deducción da por válido, sin serlo, el razonamiento siguiente:
“Todo el mundo habla consigo mismo. Así pues, todo el mundo habla con
todo el mundo.”
3) Ejemplo de captura involuntaria de una variable libre: se dispone de la
fórmula A(u) ÷ (B(x) ÷ C(u,x)) donde u es una variable libre y arbitraria.
Se elige x para sustituir u e introducir el cuantificador universal y se obtie-
ne ¬x (A(x) ÷ (B(x) ÷ C(x,x))). Huelga decir que cualquier otro nombre
para la variable haría correcta la introducción del cuantificador. Por ejem-
plo: ¬y (A(y) ÷ (B(x) ÷ C(y,x))).
c) Regla 12: eliminación del cuantificador existencial (E-)
La regla E- puede entenderse de la forma siguiente: si se sabe que hay un ele-
mento del dominio que cumple una determinada propiedad (A), nos podemos
referir al mismo con una constante (a), siempre y cuando la misma constante
no se utilice también para referirse a cualquier otro elemento del dominio.
La regla original de eliminación del cuantificador existencial
La regla de eliminación del cuantificador existencial que acabamos de ver no es la que
habitualmente se considera. La regla original es la siguiente:
Para aplicarla correctamente es necesario que la constante a no aparezca ni en la fórmula
A ni en la fórmula B, así como tampoco en ninguna hipótesis de ninguna subdeducción
que todavía esté abierta.
La regla de eliminación del cuantificador existencial que se estudia en este módulo es
equivalente a la original, pero más simple e intuitiva.
Cuando una fórmula está cuantificada existencialmente, la variable cuan-
tificada puede ser sustituida por una constante nueva y el cuantificador
se puede eliminar:
Para que la aplicación de la regla sea correcta, es necesario garantizar
que la constante utilizada es nueva, es decir, que no haya aparecido
nunca antes.
x A x ( ) -
A a ( )
---------------------
-x A(x)
A(a)
...
B
B
© FUOC • PID_00149519 28 Lógica de predicados
Ejemplo de aplicación correcta de la regla E-
Como ejemplo de aplicación correcta de la regla E- se validará el razonamien-
to siguiente:
“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.”
Se utilizará los predicados atómicos: P(x): “x es un programa”; V(x): “x ha sido
verificado”; R(x): “x es un resultado”; C(x): “x es correcto”.
¬x (P(x) ÷ V(x)) ÷ ¬y (R(y) ÷ C(y)), -x (R(x) . ÷C(x)) ÷¬x (P(x) ÷ V(x))
Ejemplo de aplicación incorrecta de la regla E-
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¬:
Esta deducción da por válido, sin serlo, el razonamiento siguiente:
“Todos los cow-boys llevan sombrero. Johny es un cow-boy. En consecuen-
cia, Johny es un sombrero.”
(1) ¬x (P(x) ÷ V(x)) ÷ ¬y (R(y) ÷ C(y)) P
(2) -x (R(x) . ÷C(x)) P
(3) ¬x (P(x) ÷ V(x)) H
(4) ¬y (R(y) ÷ C(y)) E÷ 1, 3
(5) R(a) . ÷C(a) E- 2
(6) R(a) ÷ C(a) E¬ 4
(7) R(a) E. 5
(8) C(a) E÷ 6, 7
(9) ÷C(a) E. 5
(10)
÷¬x (P(x) ÷ V(x))
I÷ 3, 8, 9
(1) ¬x [C(x) ÷ -y (B(y) . P(x,y))] P
(2) C(a) P
(3) C(a) ÷ -y (B(y) . P(a,y)) E¬ 1
(4) -y (B(y) . P(a,y)) E÷ 2, 3
(5) B(a) . P(a,a) E- 4 ¡error! Lo correcto habría sido B(b) . P(a,b)
(6) B(a) E. 5
La línea 6
La línea 6 de esta demos-
tración es correcta. Para aplicar
la regla E- es necesario utilizar
una constante nueva, pero esta
restricción no se aplica a la re-
gla E¬ donde puede utilizarse
cualquier término.
© FUOC • PID_00149519 29 Lógica de predicados
d) Regla 13: introducción del cuantificador existencial (I-)
La regla I- puede entenderse de la forma siguiente: si algo (A) puede decirse de t
(A(t)), entonces existe un elemento del dominio del cual puede decirse A (-x A(x)).
Ejemplo de aplicación correcta de la regla I-
Como ejemplo de utilización correcta de la regla, se validará el razonamiento
siguiente:
“Todos los bancos tienen ordenadores. Hay bancos. En consecuencia, hay
ordenadores”.
Se utilizarán los predicados siguientes: B(x): “x es un banco”; O(x): “x es un or-
denador”; T(x,y): “x tiene y”.
¬x [B(x) ÷ -y (O(y) . T(x,y))], -x B(x) -x O(x)
2.1.2. Restricciones adicionales
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:
Las variables libres de una fórmula se puede cuantificar existencialmen-
te. Las constantes de una fórmula pueden sustituirse por una variable
cuantificada existencialmente:
Donde t es un término cualquiera (si se trata de una variable, debe ser
libre).
(1) ¬x [B(x) ÷ -y (O(y) . T(x,y))] P
(2) -x B(x) P
(3) B(a) E- 2
(4) B(a) ÷ -y (O(y) . T(a,y)) E¬ 1
(5) -y (O(y) . T(a,y)) E÷ 3, 4
(6) O(b) . T(a,b) E- 5
(7) O(b) E. 6
(8) -x O(x) I- 7
A t ( )
x A x ( ) -
---------------------
© FUOC • PID_00149519 30 Lógica de predicados
1) Cuando una fórmula contiene a la vez:
• Una variable libre (u) que proviene de la eliminación de un cuantificador
universal, y
• Una constante (a) que proviene de la eliminación de un cuantificador exis-
tencial que estaba dentro del alcance del cuantificador universal anterior
(aquél cuya eliminación ha dado lugar a la aparición de la variable u),
entonces: no solo se puede aplicar la regla I¬ respecto a la variable libre u.
Por ejemplo, de la fórmula ¬x -y C(x,y) no se puede deducir la fórmula
-y ¬x C(x,y). Observad que el cuantificador existencial se halla dentro del al-
cance del universal.
Si se otorga a C(x,y) el significado “x conoce y”, la deducción anterior da por
válido, incorrectamente, el razonamiento siguiente:
“Todo el mundo conoce a alguien. Por lo tanto, hay alguien que conoce a
todo el mundo.”
Sin embargo, no hay ningún problema si el cuantificador existencial no se ha-
lla dentro del alcance del universal. De la fórmula ¬x P(x) . -y Q(y), sí que pue-
de deducirse la fórmula -y ¬x (P(x) . Q(y)).
2) Las constantes introducidas al aplicar la regla E- son locales en la (sub)de-
ducción que las ha originado y sólo pueden ser utilizadas en el mismo nivel o
en niveles más interiores, pero no pueden subir a niveles superiores.
(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
(1) ¬x P(x) . -y Q(y) P
(2) ¬x P(x) E. 1
(3) -y Q(y) E. 1
(4) P(u) E¬ 2
(5) Q(a) E- 3
(6) P(u) . Q(a) I. 4, 5
(7) ¬x (P(x) . Q(a)) I¬ 6
(8) -y ¬x (P(x) . Q(y)) I- 7
© FUOC • PID_00149519 31 Lógica de predicados
Un ejemplo de demostración que es incorrecta porque viola esta restricción es
el siguiente:
2.2. Ejemplos
A continuación exponemos dos ejemplos de aplicación de las reglas de deduc-
ción natural:
1) Demostramos la validez del razonamiento siguiente:
¬x ¬y [P(x) ÷ R(x, y)], -x -y [Q(y) . ÷R(x, y)], ¬x -y [P(x) v S(x, y)] -x -y S(x, y).
2) Demostramos la validez del razonamiento siguiente:
¬x [P(x) ÷ Q(x)], ¬y [P(y) . R(y)] ¬x [R(x) . Q(x)].
(1) ¬x P(x) ÷ -y R(y) P
(2) ¬x P(x) H
(3) -y R(y) E÷ 1, 2
(4) R(a) E- 3
(5) ¬x P(x) ÷ R(a)
I÷ 2, 4 ¡error! (a no puede salir de la subdeducción
donde ha sido introducida).
(1) ¬x ¬y [P(x) ÷ R(x,y)] P
(2) -x -y [Q(y) . ÷R(x,y)] P
(3) ¬x -y [P(x) v S(x,y)] P
(4) -y [Q(y) . ÷R(a,y)] E- 2, x sustituida por a*.
(5) Q(b) . ÷R(a,b) E- 4, y sustituida por b*.
(6) ¬y (P(a) ÷ R(a,y)) E¬ 1, x sustituida por a.
(7) P(a) ÷ R(a,b) E¬ 6, y sustituida por b.
(8) ÷R(a,b) E. 5
(9) ÷P(a) MT 7, 8
(10) -y [P(a) v S(a,y)] E¬ 3, x sustituida por a.
(11) P(a) v S(a,c) E- 10, y sustituida por c*.
(12) S(a,c) SD 9, 11
(13) -y S(a,y) I- 12
(14) -x -y S(x,y) I- 13
(1) ¬x [P(x) ÷ Q(x)] P
(2) ¬y [P(y) . R(y)] P
(3) P(w) ÷ Q(w) E¬ 1, w es arbitraria*.
(4) P(w) . R(w) E¬ 2, w es arbitraria*.
(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.
* Todas estas constantes
son constantes nuevas.
* En este caso w podría ser
cualquier otro término.
© FUOC • PID_00149519 32 Lógica de predicados
2.3. Reglas derivadas y equivalencias deductivas
En la lógica de predicados, la deducción natural es bastante más compleja que
en la lógica de enunciados, y la posibilidad de cometer errores también es ma-
yor. Para reducir tanto como sea posible el riesgo de errores, es interesante uti-
lizar, siempre que sea factible, reglas derivadas y equivalencias deductivas
de corrección probada. Las que se exponen a continuación son algunas de las
más útiles y las que se utilizan con más frecuencia:
1) Cambio de nombre de la variable cuantificada:
• ¬x A(x) ¬y A(y).
• -x A(x) -y A(y).
2) Paso del cuantificador universal al existencial:
¬x A(x)
-x A(x)
3) Conmutatividad de los cuantificadores:
• ¬x ¬y A(x,y) ¬y ¬x A(x,y).
• -x -y A(x,y) -y -x A(x,y).
4) Relación de los cuantificadores con la negación, leyes de De Morgan:
Estas leyes también ponen de manifiesto la relación que tienen los cuantifica-
dores entre sí.
5) Relación de los cuantificadores con la conjunción:
a) Para el caso del cuantificador universal, tenemos lo siguiente:
¬x A(x) . ¬y B(y) ¬z (A(z) . B(z)).
b) Para el caso del cuantificador existencial no se da la equivalencia y sólo
tenemos:
-z (A(z) . B(z))
-x A(x) . -y B(y)
÷¬x A(x) -x ÷A(x)
÷-x A(x) ¬x ÷A(x)
±
±
±
±
±
±
±
±
±
±
±
±
±
±
© FUOC • PID_00149519 33 Lógica de predicados
6) Relación de los cuantificadores con la disyunción:
a) Para el caso del cuantificador existencial, tenemos lo siguiente:
-x A(x) v -y B(y) -z (A(z) v B(z)).
b) Para el caso del cuantificador universal no se da la equivalencia, y sólo te-
nemos:
¬x A(x) v ¬y B(y)
¬z (A(z) v B(z))
7) Relación de los cuantificadores con la implicación:
a) En el caso de los cuantificadores universales, la relación es la siguiente:
¬z (A(z) ÷B(z))
¬x A(x) ÷ ¬y B(y)
b) En cambio, para el cuantificador existencial, tenemos:
-x A(x) ÷ -y B(y)
-z (A(z) ÷ B(z))
±
±
© FUOC • PID_00149519 34 Lógica de predicados
3. Verdad y falsedad en la lógica de predicados
3.1. El concepto de interpretación en la lógica de predicados
Todo lo que explicamos sobre la indiferencia de la lógica respecto al significa-
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á.
No obstante, una fórmula es algo más complejo que un enunciado. La defini-
ción de interpretación debe tener en cuenta esta mayor complejidad.
Ejemplos de construcción de una interpretación
1) Consideremos la fórmula ¬x -y P(x,y) y veamos cómo se puede construir
una interpretación de la misma:
• Como dominio se toma un conjunto de dos elementos, que se identifican
con los números 1 y 2, D = {1, 2}.
• Todas las posibles sustituciones que se pueden hacer de las variables del
predicado P por elementos del dominio dan lugar a P(1,1), P(1,2), P(2,1) y
P(2,2). Una posible interpretación de estas sustituciones en el predicado P
puede ser P(1,1) = V, P(1,2) = F, P(2,1) = V y P(2,2) = F.
Con una interpretación se asigna un valor de verdad a una fórmula. Hay
tres aspectos que condicionan el valor de verdad de una fórmula: el domi-
nio considerado, el valor de verdad de los predicados cuando las variables
son sustituidas por los elementos del dominio y el significado de las cons-
tantes (qué elemento del dominio designan). De este modo, para cons-
truir una interpretación es necesario explicitar los aspectos siguientes:
1) El dominio (D) de las variables, que no puede estar vacío (C).
2) Para cada símbolo de predicado, una interpretación (V o F) para cada
una de las posibles sustituciones de todas sus variable por elementos del
dominio. El conjunto de todas estas interpretaciones se denomina Ip.
3) Para cada símbolo de constante, una asignación de un elemento con-
creto del dominio. El conjunto de todas estas asignaciones se denomina Ic.
Una interpretación en lógica de predicados es, pues, un triplete de la
forma <D, Ip, Ic>.
Consultad el apartado 3 del módulo
“Lógica de enunciados”.
Recordad que...
... en la lógica de enunciados,
una interpretación se definió
como una asignación de valor
de verdad a cada uno de los
átomos de un enunciado.
Para construir
una interpretación...
... se consideran todas las
sustituciones de variables
por elementos del dominio,
mientras que sólo se conside-
ra una sustitución por cada
constante. Una constante
designa un elemento, y sólo
uno, del dominio.
© FUOC • PID_00149519 35 Lógica de predicados
• Dado que en la fórmula no hay constantes, no se pueden hacer asignacio-
nes a elementos concretos del dominio.
Así pues, finalmente, la interpretación ha quedado del modo que exponemos
a continuación:
<{1, 2}, {P(1,1) = V, P(1,2) = F, P(2,1) = V, P(2,2) = F}, C>.
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.
Solamente teniendo en cuenta que el número de posibles dominios es infinito
({ 1 }, { 1, 2 },{ 1, 2, 3 }...) ya se puede ver que el número de interpretaciones de
una fórmula también es infinito. Esto no sucede en el caso de los enunciados,
porque un enunciado con n átomos tiene, exactamente, 2n interpretaciones.
2) Para la fórmula -z Q(z,a), una interpretación sería la siguiente:
• 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.
• A la constante a se le debe asignar un elemento del dominio. Una posible
asignación es a = 2.
Así pues, finalmente, la interpretación ha quedado de la manera que presen-
tamos a continuación:
<{ 1, 2 }, { Q(1,1) = F, Q(1,2) = V, Q(2,1) = V, Q(2,2) = F }, { a = 2 }>.
3.2. Paso de fórmulas a enunciados
Acabamos de ver qué se entiende por interpretación en la lógica de predica-
dos. Ahora es necesario ver cómo se debe determinar el valor de verdad de una
fórmula, a partir de los valores de verdad asignados a los enunciados* y de la
asignación de elementos concretos a las constantes.
* Resultantes de sustituir
las variables de los predicados
por elementos del dominio.
© FUOC • PID_00149519 36 Lógica de predicados
Ejemplos de equivalencia entre enunciados y fórmulas
Si D = { 1, 2, 3 }, entonces:
1) la fórmula ¬x P(x) es equivalente al enunciado P(1) . P(2) . P(3);
2) la fórmula -y [Q(y) ÷ R(y)] es equivalente al enunciado siguiente:
(Q(1) ÷ R(1)) v (Q(2) ÷ R(2)) v (Q(3) ÷ R(3));
3) la fórmula ¬x -y P(x, y) es equivalente a -y P(1,y) . -y P(2,y) . -y P(3,y) y ésta lo es al
enunciado siguiente:
[P(1,1) v P(1,2) v P(1,3)] . [P(2,1) v P(2,2) v P(2,3)] . [P(3,1) v P(3,2) v P(3,3)].
Para determinar el valor de verdad de una fórmula, dada una interpretación
en concreto, sólo hay que convertirla en un enunciado, siguiendo las dos re-
glas que acabamos de describir, y proceder de la misma forma como lo hace-
mos para cualquier otro enunciado.
Ejemplos de determinación del valor de verdad de una fórmula
Dadas la fórmula ¬x -y P(x,y) y la interpretación <{ 1, 2 }, { P(1,1) = V, P(1,2) = F, P(2,1) = V,
P(2,2) = F }, C>, tenemos que en el dominio D = { 1, 2 } la fórmula es equivalente al enunciado
[P(1,1) v P(1,2)] . [P(2,1) v P(2,2)]. Finalmente, sólo hay que proceder como si se calculase
una única fila de una tabla de verdad, como mostramos a continuación:
De la misma manera, para la fórmula -x Q(z, a) y la interpretación <{ 1, 2 }, { Q(1,1) = F,
Q(1,2) = V, Q(2,1) = V, Q(2,2) = F }, { a = 2 }>, tendríamos que -z Q(z,a) es equivalente
a Q(1,a) v Q(2,a) y, dado que sería lo mismo que Q(1,2) v Q(2,2), quedaría la tabla siguiente:
Se debe tener en cuenta que, si el dominio a partir del cual se hace la
interpretación tiene n elementos (D = { 1, 2, ..., n }), entonces:
1) Toda fórmula del tipo ¬x p(x) es equivalente al enunciado:
P(1) . ... . P(n).
2) Toda fórmula del tipo es equivalente al enunciado:
P(1) v ... v P(n).
P(1,1) P(1,2) P(2,1) P(2,2) P(1,1) v P(1,2) P(2,1) v P(2,2) ¬x -y P(x,y)
V F V F V V V
Q(1,a) = Q(1,2) Q(2,a) = Q(2,2) -z Q(z,a) = Q(1,2) v Q(2,2) (con a = 2)
V F V
x P x) ( -
© FUOC • PID_00149519 37 Lógica de predicados
Volviendo a la fórmula ¬x -y P(x,y), la tabla de verdad para todas las interpretaciones
donde el dominio es D = { 1, 2 } sería la que presentamos a continuación; resulta sencillo
darse cuenta de que es posible construir la tabla de verdad para todas las interpretaciones
que tienen un mismo dominio.
Los conceptos de tautología y antinomia que se aplican a los enunciados tam-
bién se pueden aplicar a las fórmulas.
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.
3.3. Refutación de razonamientos
P(1,1) P(1,2) P(2,1) P(2,2) P(1,1) v P(1,2) P(2,1) v P(2,2) ¬x -y P(x,y)
V V V V V V V
V V V F V V V
V V F V V V V
V V F F V F F
V F V V V V V
V F V F V V V
V F F V V V V
V F F F V F F
F V V V V V V
F V V F V V V
F V F V V V V
F V F F V F F
F F V V F V F
F F V F F V F
F F F V F V F
F F F F F F F
Dependiendo del valor de verdad de una fórmula, tenemos que:
a) Una fórmula es una tautología cuando su valor de verdad es V en
todas las posibles interpretaciones.
b) Una fórmula es una antinomia cuando su valor de verdad es F en
todas las posibles interpretaciones.
c) Cuando una fórmula ni es una tautología ni es una contradicción,
se dice que es contingente.
Como en el caso de la lógica de enunciados, un razonamiento es correc-
to si, y sólo si, todas aquellas interpretaciones que hacen verdaderas las
premisas también hacen verdadera la conclusión.
Recordad los conceptos de
antinomia y de tautología que
hemos visto en el subapartado 3.3.
del módulo “Lógica de enunciados”.
Observación
Por ‘en todas las posibles inter-
pretaciones’ entendemos ‘para
cualquier dominio’, ‘para cual-
quier combinación de atribu-
ción de valores de verdad a las
posibles sustituciones’ y ‘para
cualquier asignación de elemen-
tos del dominio a constantes’.
© FUOC • PID_00149519 38 Lógica de predicados
La infinidad en el número de interpretaciones no permite validar un razona-
miento por la vía de comprobar que todas las interpretaciones que hacen ver-
daderas las premisas también hacen verdadera la conclusión. A pesar de esta
adversidad, sí que es posible utilizar esta vía para demostrar que un razona-
miento es formalmente inválido.
El proceso para buscar un contraejemplo, que invalide un razonamiento es
el siguiente:
1) Se comienza con el menor dominio posible (D = { 1 }) y todas las interpre-
taciones que se puedan construir con éste. Si alguna de éstas hace verdaderas
las premisas pero no la conclusión, ya se ha encontrado el contraejemplo que
se buscaba.
2) Se repite el proceso añadiendo cada vez un elemento más al dominio. El
proceso se para cuando se encuentra un contraejemplo.
Si el razonamiento es inválido, se acabará encontrando el contraejemplo que
se buscaba. Contrariamente, si el razonamiento es correcto, el proceso conti-
nuará indefinidamente*, cada vez con dominios de más elementos, sin encon-
trar nada. Esto hace que el procedimiento se tenga que reservar para encontrar
contraejemplos de razonamientos que se saben inválidos o de los cuales se tie-
nen sospechas fundadas de invalidez.
Ejemplo de cómo hay que buscar un contraejemplo
Demostramos la invalidez del razonamiento -x P(x) ¬z P(z)
• Cuando tenemos el dominio D = { 1 }. Sustituyendo todas las variables del predicado P
por elementos del dominio, se obtiene P(1). La fórmula -x P(x) es equivalente a P(1), y
¬z P(z) es equivalente a P(1). Entonces, obtenemos la siguiente tabla de verdad:
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.
Un razonamiento es formalmente inválido cuando existe una interpre-
tación, como mínimo, que hace verdaderas las premisas y falsa la con-
clusión. Estas interpretaciones se denominan, como en el caso de la
lógica de enunciados, contraejemplos.
P(1) -x P(x) ¬x P(x)
V V V
F F F
* Si el razonamiento es correcto,
el proceso se convierte en una
iteración infinita.
© FUOC • PID_00149519 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) v P(2), y la conclusión es equivalente a P(1) . P(2). Así, tenemos
la siguiente tabla de verdad:
En este dominio sí se han encontrado contraejemplos. En concreto, se ha encontrado que
las interpretaciones <{ 1, 2 }, {P(1) = V, P(2) = F }, C> y <{ 1, 2 }, {P(1) = F, P(2) = V }, C> hacen
verdadera la premisa, pero no la conclusión. Se acaba de demostrar que el razonamiento
es inválido y ya no es necesario continuar buscando en dominios de más elementos.
P(1) P(2) P(1) v P(2) = -x P(x) P(1) . P(2) = ¬x P(x)
V V V V
V F V F
Contraejemplos
F V V F
F F F F
© FUOC • PID_00149519 40 Lógica de predicados
4. Formas normales
4.1. Forma normal de Skolem
Las fórmulas, igual que los enunciados, se manipulan algebraicamente para
obtener fórmulas equivalentes. La transformación algebraica de una fórmula
tiene por objetivo la consecución de una forma normal.
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).
Para encontrar la forma normal de Skolem de cualquier fórmula, se siguen
los pasos siguientes:
1) Verificar que no existen variables libres. Si existen variables libres, esto es
un síntoma de error en la formalización y es necesario repasarla. Si la fórmula
se ha dado con variables libres, éstas se deben cuantificar existencialmente.
Los cuantificadores existenciales que se añadan deberán colocarse a la
izquierda del todo de la fórmula.
2) Opcionalmente, si se utiliza el mismo nombre para variables dentro del
ámbito de cuantificadores distintos, puede ser útil cambiar estos nombres.
La forma normal de una fórmula recibe el nombre de forma normal
prenexa. Una fórmula estará expresada en forma normal prenexa si, y
sólo si, presenta la siguiente estructura:
Q
1
x
1
... Q
n
x
n
(expressión sin cuantificadores),
Prefijo Matriz
donde los Q
i
son cuantificadores.
La forma normal denominada forma normal de Skolem (FNS) es la que
se utiliza para poder aplicar, posteriormente, el método de resolución. Es
una forma normal prenexa, con la matriz normalizada (FNC) y con un pre-
fijo que sólo contiene cuantificadores universales. Los cuantificadores exis-
tenciales se eliminan siguiendo un proceso denominado eskolemización.
} }
© FUOC • PID_00149519 41 Lógica de predicados
3) Eliminar todas las apariciones de la conectiva ÷ (A ÷ B ÷A v B).
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.
5) Eliminar los cuantificadores existenciales (eskolemización).
6) Mover todos los cuantificadores* hacia la izquierda.
7) Normalizar la matriz. Para poder aplicar el método de resolución, es nece-
sario que esté expresada en forma normal conjuntiva.
Los pasos de este proceso se deben seguir en el orden indicado. Alterar su or-
den podría provocar errores.
4.2. Eliminación de cuantificadores existenciales: eskolemización
El punto principal para encontrar la forma normal de Skolem de una fórmula
es la eliminación de los cuantificadores existenciales. Para llevarla a cabo, pro-
cederemos de la siguiente manera:
1) Si un cuantificador existencial no se encuentra dentro del ámbito de ningún
cuantificador universal, entonces hay que sustituir la variable cuantificada exis-
tencialmente por una constante que todavía no ha sido utilizada, y eliminar el
cuantificador existencial. La constante no se podrá utilizar posteriormente.
2) Si un cuantificador existencial se encuentra dentro del ámbito de un cuan-
tificador universal, entonces hay que sustituir la variable cuantificada existen-
cialmente por una función de la variable cuantificada universalmente, y
eliminar el cuantificador existencial. La función no se puede haber utilizado
previamente ni se podrá utilizar posteriormente.
3) Si un cuantificador existencial se encuentra dentro del ámbito de más de
un cuantificador universal, entonces hay que sustituir la variable cuantificada
existencialmente por una función de todas las variables afectadas por estos
cuantificadores universales y eliminar el cuantificador existencial. La función
no se puede haber utilizado previamente ni se podrá utilizar posteriormente.
Los cuantificadores universales afectan a las variables cuantificadas existen-
cialmente que están dentro de su ámbito, pero no afectan a las otras variables
cuantificadas universalmente.
Los cuantificadores existenciales no afectan ni a las variables cuantificadas
universalmente ni a ninguna otra variable cuantificada existencialmente.
±
±
* Sólo habrá cuantificadores
universales.
© FUOC • PID_00149519 42 Lógica de predicados
Ejemplo de eskolemización
Como ejemplo de eskolemización, aplicamos el proceso de eliminación de cuantificado-
res existenciales en la fórmula siguiente:
-x ¬y [-z P(x,z) v -u Q(u,y) v -w S(w) v ¬t (-v R(v,t) . S(t))] . -m S(m) . S(a).
El primer paso es la detección de los cuantificadores universales y sus ámbitos, como
mostramos a continuación:
Ahora ya podemos determinar cuáles son los cuantificadores universales que afectan a
cada cuantificador existencial:
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
en la fórmula).
• La variable z será sustituida por la función f(y).
• La variable u será sustituida por la función g(y).
• La variable w será sustituida por la función k(y).
• La variable v será sustituida por la función h(y,t).
• La variable m será sustituida por la constante c (b no se puede utilizar porque ya se ha
utilizado antes, igual que a).
Para acabar, sólo hay que hacer las sustituciones y eliminar los cuantificadores existen-
ciales, y obtenemos lo que presentamos a continuación:
¬y [P(b,f(y)) v Q(g(y),y) v S(k(y)) v ¬t (R(h(y,t),t) . S(t))] . S(c) . S(a).*
Las funciones de Skolem ponen en evidencia las relaciones funcionales que
existen entre las variables cuantificadas existencialmente y las cuantificadas
universalmente.
-x ¬y [-z P(x,z) v -u Q(u,y) v -w S(w) v ¬t (-v R(v,t) . S(t))] . -m S(m) . S(a)
. Ámbito de ¬t
Las funciones utilizadas para eliminar los cuantificadores existenciales
afectados por cuantificadores universales reciben el nombre de funcio-
nes de Skolem y se deben considerar términos. Como las constantes,
no se pueden cuantificar.
}
Afectado por ¬y Afectado por ¬y y ¬t
No afectado Afectado por ¬y
-x ¬y [-z P(x,z) v -u Q(u,y) v -w S(w) v ¬t (-v R(v,t) . S(t))] . -m S(m) . S(a).
No afectado
Afectado por ¬y
Nota
f(y), g(y), k(y) y h(y,t) son
funciones nuevas cualesquiera.
* En negrita hemos indicado los
cambios que se han producido.
Recordad el concepto término visto
en el subapartado 1.2.1 de este
módulo didáctico.
Ámbito de ¬ y
© FUOC • PID_00149519 43 Lógica de predicados
Un ejemplo os ayudará a entender este hecho. Supongamos que utilizamos el
predicado Q(x,y), “el cuadrado del número x es el número y”, para formalizar
la frase “Todo número natural tiene un cuadrado (que también es un número
natural)”. La formalización sería . Si esta fórmula es eskolemiza-
da, resulta ¬x Q(x,f (x)). Parafraseada, la fórmula resultante se puede leer como
‘todo número natural tiene un cuadrado que es su función’. En este caso, es
evidente que f(x) = x
2
.
En otros casos quizá no seremos capaces de dar una definición de la función
de Skolem. Sin embargo, éste es un hecho sin importancia; lo que es realmente
importante es que la función de Skolem evidencia la relación funcional entre
x e y (y = f(x)).
Ejemplo de determinación de una forma normal de Skolem
Con la fórmula ¬x [P(x) v (-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:
1) Se examina la fórmula para detectar variables libres. No las hay.
2) Se examina la fórmula para detectar repeticiones en el nombre de las variables. No se
detecta ninguna repetición.
3) Se eliminan las implicaciones:
¬x [÷(P(x) v (-t Q(x,t) . ¬y R(x,y))) v (-z A(z) . ÷-u B(u,x))].
4) Se aplican las leyes de De Morgan para acercar las negaciones a los símbolos de predi-
cados:
¬x [÷(P(x) v (-t Q(x,t) . ¬y R(x,y))) v (-z A(z) . ÷-u B(u,x))]
¬x [(÷P(x) . ÷(-t Q(x,t) . ¬y R(x,y))) v (-z A(z) . ¬u ÷B(u,x))]
¬x [(÷P(x) . (÷-t Q(x,t) v ÷¬y R(x,y))) v (-z A(z) . ¬u ÷B(u,x))]
¬x [(÷P(x) . (¬t ÷Q(x,t) v -y ÷R(x,y))) v (-z A(z) . ¬u ÷B(u,x))]
5) Se eliminan los cuantificadores existenciales: la variable y es sustituida por una fun-
ción de x. La variable z es sustituida por otra función de x:
¬x [(÷P(x) . (¬t ÷Q(x,t) v ÷R(x,f(x)))) v (A(g(x)) . ¬u ÷B(u,x))].
6) Se mueven todos los cuantificadores universales a la izquierda:
¬x ¬t ¬u [(÷P(x) . ( ÷Q(x,t) v ÷R(x,f(x)))) v (A(g(x)) . ÷B(u,x))].
7) Se calcula la forma normal conjuntiva de la matriz:
¬x ¬t ¬u [(÷P(x) v A(g(x))) . (÷P(x) v ÷B(u,x)) . (÷Q(x,t) v ÷R(x,f(x)) v A(g(x))) .
. (÷Q(x,t) v ÷R(x,f(x)) v ÷B(u,x))].
La aplicación de las leyes de De Morgan provoca que algunos cuantificadores
universales se conviertan en existenciales, y a la inversa. Ésta es la razón por la
cual la eskolemización (paso 5) no se puede aplicar antes: se correría el riesgo de
eliminar cuantificadores existenciales que posteriormente se tendrían que con-
vertir en universales y, además, podrían aparecer nuevos cuantificadores exis-
tenciales, por transformación de los universales.
x y Q x,y ) ( - ¬
±
±
±
±
±
±
±
±
±
±
±
±
© FUOC • PID_00149519 44 Lógica de predicados
5. Resolución
5.1. Las novedades: forma normal de Skolem y sustituciones
El método de resolución que hemos estudiado en esta asignatura para la lógica
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.
El último punto representa la novedad realmente importante de la resolución
en la lógica de predicados.
5.2. Sustituir variables por términos
5.2.1. Ejemplo comentado
El concepto de sustitución es muy importante. Una explicación mediante un
ejemplo nos permitirá una introducción informal.
Supongamos que queremos validar el razonamiento “Todos los hombres son
impacientes. Juan es un hombre. Consecuentemente, Juan es impaciente”.
Si asignamos a H(x) “x es un hombre”, a a (constante) “Juan” y a I(x) “x es im-
paciente”, entonces:
¬x [H(x) ÷ I(x)], H(a) I(a).
El método de resolución de la lógica de predicados se basa en:
1) Una única regla: la de resolución.
2) Una única estrategia: la reducción al absurdo.
3) La utilización de la forma normal de Skolem (con matriz en FNC).
4) La utilización de la técnica del replanteamiento de la última deci-
sión, para garantizar la sistematicidad.
5) El cálculo de sustituciones y el algoritmo de unificación.
Recordad el método de resolución
para enunciados que hemos visto
en el apartado 5 del módulo
“Lógica de enunciados”.
© FUOC • PID_00149519 45 Lógica de predicados
Encontramos a continuación las formas normales de Skolem:
• FNS (¬x [H(x) ÷ I(x)]) = ¬x [÷H(x) v I(x)].
• FNS (H(a)) = H(a).
• FNS ( ÷I(a)) = ÷I(a).
A la hora de considerar las cláusulas, los cuantificadores no se tienen en cuen-
ta, pero no hay que olvidar que todos son universales. Así pues, si en una cláu-
sula aparece una variable, esto quiere decir que estaba cuantificada y que el
cuantificador era universal.
El conjunto de cláusulas resultante es:
S = { ÷H(x) v I(x), H(a), ÷I(a) }.
con el conjunto de apoyo { ÷I(a) }.
El árbol de resolución correspondiente a este ejemplo sería el que presentamos
a continuación:
Parece que no se puede continuar porque en la cláusula troncal se tiene ÷I(a),
mientras que en la lateral se tiene I(x) y, dado que son diferentes, la regla de
resolución no se puede aplicar.
Efectivamente, la regla de resolución no se puede aplicar, ya que un literal no
es la negación del otro. Ahora bien, el literal I(x) contiene la variable x. Si esta
variable pudiese ser sustituida por la constante a, entonces la situación se des-
bloquearía. ¿Es posible esta sustitución?
La respuesta es afirmativa porque la cláusula troncal es realmente ¬x |÷H(x) v I(x)]
y porque la regla de eliminación del cuantificador universal afirma que una varia-
ble cuantificada universalmente puede ser sustituida por cualquier término, y la
constante a es un término.
En conclusión, la variable x se puede sustituir por la constante a (de hecho, lo
que se hace es aprovechar que ¬x |÷H(x) v I(x)] ÷H(a) v I(a)).
Parece que no se puede continuar
÷I(a) ÷H(x) v I(x)
Se podría aplicar...
... la regla de resolución en este
caso si la cláusula lateral contu-
viese el literal I(a).
±
© FUOC • PID_00149519 46 Lógica de predicados
Así pues, obtendríamos el árbol de resolución siguiente:
5.2.2. Quién sustituye a quién y cómo lo hace
Cuando el método de resolución se aplica a la lógica de predicados, la sustitu-
ción de variables es imprescindible. Así pues, hay que tener claros los aspec-
tos que presentamos a continuación:
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.
2) Si hay más de una sustitución que permite eliminar el literal de más a la
derecha de la cláusula troncal, se utiliza cualquiera, y el resto se reserva como
alternativa por si hay que aplicar el replanteamiento de la última decisión.
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
de esta variable en la cláusula donde aparece. No obstante, la cláusula original
se debe dejar intacta. La sustitución se debe hacer sobre la copia que se utiliza
en el árbol de resolución.
5.3. Más ejemplos
1) Queremos validar el siguiente razonamiento:
¬x ¬y [C(x,y) ÷ C(y,x)], -y ¬x C(x,y), ¬x ¬y ¬z [C(x,y) . C(y,z) ÷ C(x,z)] ¬x C(x,x).
÷I(a) ÷H(x) v I(x)
Sustituir x por a
÷H(a) v I(a)
÷H(a) H(a)

Por ejemplo,...
... x se puede sustituir por f(y)
o por g(y,z), pero nunca por
f(x) o por g(y,x), ya que son
funciones de sí misma.
© FUOC • PID_00149519 47 Lógica de predicados
En primer lugar, es necesario que encontremos las formas normales de Skolem
de las premisas y de la negación de la conclusión:
• FNS(¬x ¬y [C(x,y) ÷ C(y,x)]) = ¬x ¬y [ ÷C(x,y) v C(y,x)].
• FNS(-y ¬x C(x,y)) = ¬x C(x,a)*.
• FNS(¬x ¬y ¬z [C(x,y) . C(y,z) ÷ C(x,z)]) = ¬x ¬y ¬z [÷C(x,y) v ÷C(y,z) v C(x,z)].
• FNS(÷¬x C(x,x)) = ÷C(b,b)**
De este modo, el conjunto de cláusulas resultante es el siguiente:
S = { ÷C(x,y) v C(y,x), C(x,a), ÷C(x,y) v ÷C(y,z) v C(x,z), ÷C(b,b) }
con el conjunto de apoyo { ÷C(b,b) }.
El primer intento de empezar la resolución sería:
Dado que se ha producido una repetición, es necesario plantearse la última de-
cisión tomada.
El siguiente intento sería:
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.
* a es una constante nueva
que sustituye y.
** b es una constante nueva
que sustituye x.
Observación
Las sustituciones necesarias se
indican al lado del árbol de re-
solución. El resultado de apli-
carlas se indica bajo la cláusula
afectada (pueden ser las dos,
tanto la lateral como la tron-
cal). Cuando es necesaria más
de una sustitución, éstas se in-
dican en secuencia.
÷C(b,b)
No se puede continuar
C(x,a)
© FUOC • PID_00149519 48 Lógica de predicados
El tercer intento nos llevará al siguiente árbol de resolución (dejamos de mos-
trar los intentos sin éxito que comportan replanteamientos).
Observad que cuando se utiliza la cláusula ÷C(x,y) v C(y,x) se cambia el nom-
bre de la variable y por u. Esto se hace así para evitar que antes de empezar a
calcular las sustituciones necesarias, la cláusula troncal y la lateral tengan va-
riables con el mismo nombre. Esto podría provocar fácilmente confusiones en
las sustituciones. En este caso concreto, el cambio de nombre no era estricta-
mente necesario.
2) Validemos el razonamiento siguiente:
¬x [¬y A(y,x) ÷ -z B(z,x)] ¬x -y [A(y,x) ÷ B(y,x)]
En primer lugar buscamos las formas normales de Skolem:
a) Para la premisa:
FNS(¬x [¬y A(y,x) ÷ -z B(z,x)]) = ¬x [÷A(f(x),x) v B(g(x),x)].
b) Para la negación de la conclusión:
FNS(÷¬x -y [A(y,x) ÷ B(y,x)]) = ¬y [A(y,a) . ÷B(y,a)].
Sustituir x por b y z por b
Sustituir u por a
Sustituir x por b
÷C(b,b) ÷C(x,y) v ÷C(y,z) v C(x,z)
÷C(b,y) v ÷C(y,b) v C(b,b)
÷C(b,y) v ÷C(y,b)
÷C(b,u) v ÷C(u,b)
÷C(x,u) v C(u,x)
÷C(b,u) v C(u,b)
Sustituir
y por u
Sustituir x por b
÷C(b,u) v ÷C(b,u)
Se puede simplificar
÷C(b,u)
÷C(b,a)
C(x,a)
C(b,a)

Cambio de nombre
Pasar de ÷C(x,y) v C(y,x) a
÷C(x,u) v C(u,x) es perfecta-
mente lícito porque:
¬x¬y [÷C(x,y) v C(y,x)]
¬x¬u [÷C(x,u) v C(u,x)]
±
±
±
±
...
© FUOC • PID_00149519 49 Lógica de predicados
El conjunto de cláusulas resultante es:
S = { ÷A(f(x),x) v B(g(x),x), A(y,a), ÷B(y,a) }
con el conjunto de apoyo { A(y,a), ÷B(y,a) }.
El árbol que obtendremos será el que representamos a continuación:
3) Como en la lógica de enunciados, cuando todas las alternativas posibles se
han tenido en cuenta sin éxito, entonces se puede afirmar que el razonamien-
to no es correcto.
Es lo que muestra el ejemplo siguiente:
Demostrar que el razonamiento ¬x -y A(x,y) -x [¬y A(y,y) v ¬y A(y,x)] no es
válido.
Las formas normales de Skolem son las siguientes.
a) Para la premisa: FNS(¬x -y A(x,y)) = ¬x A(x,f(x)).
b) Para la negación de la conclusión:
FNS(÷-x [¬y A(y,y) v ¬y A(y,x)]) = ¬x [÷A(g(x), g(x)) . ÷A(h(x),x)].
El conjunto de cláusulas que se obtiene es (las dos últimas son el conjunto de
apoyo):
S = { A(x,f(x)), ÷A(g(x),g(x)), ÷A(h(x),x) }
Sustituir x por a
Sustituir x por a
A(y,a)
A(f(x),a)
A(f(a),a)
÷A(f(x),x) v B(g(x),x)
÷A(f(a),a) v B(g(a),a)

Sustituir y por f(x)
Sustituir y por g(a)
B(g(a),a) ÷B(y,a)
÷B(g(a),a)
© FUOC • PID_00149519 50 Lógica de predicados
El primer intento de iniciar la resolución es:
Este primer intento fracasa porque g(x) no puede sustituirse por f(g(x)) ni
f(g(x)) se puede sustituir por g(x). Y es que ninguno de los dos es una variable.
El segundo intento también fracasa:
En este caso el problema radica en que la sustitución de x por f(h(x)) no es po-
sible porque una variable no puede ser sustituida por una función de sí misma.
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.
5.4. Automatización del cálculo de sustituciones:
el algoritmo de unificación
El hecho de poder determinar en cada momento cuáles son las sustituciones
que hay que llevar a cabo es una cuestión muy importante para la aplicación
del método de resolución. A menudo es posible determinarlas a partir de la
simple inspección de los literales involucrados. Para aquellas situaciones don-
Observación
Os podéis dar cuenta de que al
utilizar la cláusula A(x,f(x)) he-
mos cambiado x por u para
evitar duplicidad de nombres
con la cláusula troncal.
© FUOC • PID_00149519 51 Lógica de predicados
de la simple inspección no es suficiente, o cuando se quiere mecanizar el mé-
todo, hay el algoritmo de unificación para calcular sustituciones.
Antes de presentar este algoritmo, es necesario dar toda una serie de definicio-
nes que os serán útiles:
a) Unificar significa determinar si dos expresiones pueden llegar a ser idénti-
cas aplicando las sustituciones adecuadas de sus variables.
b) Una sustitución es un par de la forma <v/t>, donde v es una variable y t es
un término*.
c) Un unificador (o) es una secuencia de sustituciones que unifica** dos ex-
presiones. Para denotar que el unificador o se aplica a la fórmula F, se escribe
Fo. Así, si o es un unificador de F1 y de F2, entonces F1o = F2o.
Cuando un par de fórmulas F1 y F2 de un único predicado tienen un unifica-
dor que las hace idénticas, entonces se dice que son fórmulas unificables.
d) Dadas dos fórmulas con el mismo predicado F1 y F2, una discrepancia es
un par de términos que son diferentes pero que ocupan la misma posición en
el predicado.
Cuando dos fórmulas con el mismo predicado no tienen ninguna discrepan-
cia, están unificadas (son fórmulas idénticas).
Dado un par de fórmulas con el mismo predicado, el algoritmo de unifica-
ción calcula el unificador que las hace idénticas, si éste existe, o informa de su
no-unificabilidad, si éste no existe:
Algoritmo cálculo_del_unificador (F1, F2: fórmulas con el mismo
predicado)
/* F1 y F2 son las fórmulas que se quiere unificar */
D: = conjunto de las discrepancias entre F1 y F2
o: = C /* inicialmente la sustitución está vacía –nula– */
unificable: = cierto
/* iterar mientras haya discrepancias y posibilidad de superarlas */
mientras D < > C y unificable hacer
*/ buscar la primera discrepancia y sacarla del conjunto */
<t1, t2> : = la primera discrepancia de D
D: = D ÷ ´<t1, t2>`
/* intentar superar la discrepancia */
si t1 es una variable y t2 es un término que no es una función de t1
o al revés, t1 es el término y t2 es la variable
* El término puede ser
una constante, una variable o una
función que no lo sea de v.
** Es decir, que hace idénticas
ambas expresiones.
Ejemplo de discrepancia
a) Las fórmulas P(x,b) y P(a,b)
presentan la discrepancia <x,a>,
porque en la primera posición
se tiene x en la primera fórmula
y a en la segunda.
b) Las fórmulas Q(x,f(x),y)
y Q(z,a,b) presentan las discre-
pancias <x,z>, <f(x),a> e <y,b>,
porque en ninguna de las
tres posiciones se tiene el
mismo término.
© FUOC • PID_00149519 52 Lógica de predicados
Ejemplos de aplicación del algoritmo de unificación
Unos cuantos ejemplos de aplicación del algoritmo de unificación, cuyas trazas mostra-
remos, nos servirán para ilustrar su funcionamiento.
a) Traza 1. Queremos unificar las fórmulas P(x,g(x,y),a) y P(f(z),u,w).
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 o = { }.
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 o
/* aplicar la sustitución a las fórmulas */
F1: = F1o
F2: = F2o
/* aplicar la sustitución a lo que queda del conjunto */
/* de discrepancias */
D : = Do
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 o
F1: = F1o; F2: = F2o
D: = Do
sino
unificable : = falso
fsi
sino
unificable : = falso
fsi
fsi
fmientras
si unificable
entonces
finalizar el algoritmo con respuesta:
1. o 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
© FUOC • PID_00149519 53 Lógica de predicados
• Iteración 1: la primera discrepancia del conjunto es <x,f(z)>. Se elimina del conjunto y
éste queda D = { <g(x,y),u>, <a,w> }. La discrepancia es de la forma variable (x)/término
(f(z)). La sustitución que hay que hacer para solucionarla es <x/f(z)>. Esta sustitución
se añade al final de o, y queda o = { <x/f(z)> }.
El unificador se aplica a las fórmulas y a D (sólo hay que sustituir x por f(z)), y queda lo
siguiente:
F1 = P(f(z),g(f(z),y),a), F2 = P(f(z),u,w) y D = { <g(f(z),y),u>, <a,w> }.
• Iteración 2: la primera discrepancia del conjunto es <g(f(z),y),u>. Se saca del conjunto
y éste queda D = { <a,w> }. La discrepancia es de la forma término/variable, y la susti-
tución que hay que hacer para solucionarla es <u/g(f(z),y)>. Esta sustitución se añade
al final de o, y queda o = { <x/f(z))>, <u/g(f(z),y)> }.
El unificador se aplica a las fórmulas y a D, y queda lo siguiente:
F1 = P(f(z),g(f(z),y),a), F2 = P(f(z),g(f(z),y),w) y D = { <a,w> }.
• 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 o, y queda o = { <x/f(z)>, <u/g(f(z),y)>, <w/a> }.
Este unificador se aplica a las fórmulas y a D, y queda lo siguiente:
F1 = P(f(z),g(f(z),y),a), F2 = P(f(z),g(f(z),y),a) y D = { }.
• Final: ambas fórmulas son unificables, el unificador es o = { <x/f(z)>, <u/g(f(z),y)>, <w/a> },
y el resultado de la unificación es el siguiente:
P(f(z),g(f(z),y),a).
b) Traza 2. Queremos unificar las fórmulas Q(a,x,f(g(y))) y Q(z,h(z,w),f(w)). En este caso,
el conjunto de discrepancias es D = { <a,z>, <x,h(z,w)>, <f(g(y)),f(w)> } ..
• 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)> }.
• Iteración 2: la primera discrepancia del conjunto da lugar a la sustitución <x/h(a,w)>.
Con esto, las fórmulas quedan F1 = Q(a,h(a,w),f(g(y))), F2 = Q(a,h(a,w),f(w)), y el con-
junto de discrepancias, D = { <f(g(y)),f(w)> }.
• Iteración 3: la última discrepancia del conjunto es <f(g(y)),f(w)>. Ésta no es una discre-
pancia de la forma término/variable, sino que se trata de una discrepancia de la forma
función/función. Dado que la función es la misma en ambos casos, es posible intentar
unificarlas. Como podéis ver, la discrepancia es <g(y),w>, que se puede solucionar con la
sustitución <w/g(y)>. Así, el unificador de f(g(y)) y f(w) es { <w/g(y)> }. Este unificador se
añade al final del que se construía para las dos fórmulas, y queda o = { <z/a>,<x/h(a,w)>,
<w/g(y)> }.
• Final: las dos fórmulas son unificables, el unificador es o = { <z/a>,<x/h(a,w)>, <w/g(y)> }, y
el resultado de la unificación es el siguiente:
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> }.
• Iteración 1: la única discrepancia de este conjunto no es de la forma variable/término
ni de la forma función/función. Consecuentemente, no hay ninguna sustitución que
la pueda solucionar.
• Final: las fórmulas no son unificables.
d) Traza 4. Queremos unificar las fórmulas S(f(a)) y S(f(h(b))). El conjunto de discrepan-
cias es D = { <f(a),f(h(b))> }.
• Iteración 1: la única discrepancia del conjunto es de la forma función/función. Por tanto,
se intenta la unificación de las dos funciones. En el caso de las funciones f(a) y f(h(b)), la
única discrepancia es <a,h(b)>. Esta discrepancia no es de la forma variable/término ni de
la forma función/función. Así, las dos funciones no son unificables y, consecuentemente,
no hay una sustitución que solucione la discrepancia original.
• Final: las fórmulas no son unificables.
© FUOC • PID_00149519 54 Lógica de predicados
6. La programación lógica
6.1. ¿Qué es la programación lógica?
La programación lógica es el punto donde confluyen la lógica y la informática.
Un programa escrito en un lenguaje de programación de los denominados lógicos
es una colección de sentencias lógicas (típicamente, fórmulas) que describen una
determinada situación. El programador debe especificar todas las propiedades y
todas las relaciones que son relevantes por lo que respecta a los objetos que parti-
cipan en la situación que se describe.
6.2. La lógica de predicados “implementada”: Prolog
6.2.1. Elementos básicos: cláusulas y reglas
Sintácticamente, una regla de un programa Prolog se compone de una o más
cláusulas. La forma general de una cláusula es la siguiente:
La programación lógica ofrece los mecanismos necesarios para poder
describir un algoritmo en términos de propiedades y de relaciones lógi-
cas entre objetos.
Ejecutar un programa lógico consiste en determinar si una conclu-
sión dada se sigue de las sentencias lógicas especificadas. Por esta ra-
zón, los intérpretes de estos lenguajes implementan un demostrador
automático.
El lenguaje de programación lógica más conocido y utilizado es el Pro-
log (Programming in the logic). Un programa Prolog es una colección de
reglas (también denominadas predicados). Cada regla especifica una re-
lación entre objetos.
<parte-izquierda> :- <parte-derecha>.
En el contexto...
... de la programación en Pro-
log, palabras como predicado
o cláusula tienen un significa-
do ligeramente diferente del
que se les ha dado hasta ahora.
© FUOC • PID_00149519 55 Lógica de predicados
donde <parte-izquierda> debe ser simple (no contener conectivas), mien-
tras que <parte-derecha> puede no serlo (puede contener conjunciones).
A continuación presentamos dos ejemplos en los que se definirán dos reglas
de un programa Prolog que contendrán una cláusula o dos, respectivamente:
a) Una regla con una única cláusula:
abuelo (X, Y) :- progenitor (Z, Y), padre (X, Z).
Si utilizamos la notación a la que estamos acostumbrados, podríamos decir lo
siguiente: asignamos a abuelo (X, Y) “X es el abuelo de Y”, a progenitor (Z, Y)
“Z es un progenitor de Y” y a padre (X, Z) “X es el padre de Z”.
b) Una regla que consta de dos cláusulas:
progenitor (X, Y) :- padre (X, Y).
progenitor (X, Y) :- madre (X, Y).
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:
abuelo (X, Y) :- progenitor (Z, Y), padre (X, Z).
que quiere decir que ‘si Z es un progenitor de Y y X es el padre de Z, entonces
X es el abuelo de Y’.
Si trasladamos la expresión anterior a la notación del lenguaje de fórmulas,
podemos escribir:
¬X ¬Y ¬Z [progenitor (Z, Y) . padre (X, Z) ÷ abuelo (X, Y)].
Finalmente, es fácil entender por qué se denominan cláusulas las construccio-
nes de la forma <parte-izquierda> :- <parte-derecha>. Si volvemos a
la fórmula del ejemplo que acabamos de ver, y calculamos la FNS, vemos que
ésta es la siguiente:
¬X ¬Y ¬Z [÷progenitor (Z, Y) v ÷padre (X, Z) v abuelo (X, Y)],
que, efectivamente, es una cláusula (una vez eliminados los cuantificadores).
En Prolog las variables se representan con letras mayúsculas o, más con-
cretamente, con cadenas de caracteres que comienzan con una letra
mayúscula. El símbolo :– puede leerse como una implicación invertida
(÷), y las comas hacen el papel de conjunciones.
Notad que,...
... para no alejarnos excesiva-
mente de la notación del
Prolog, utilizamos símbolos de
predicado de más de una letra
y representamos las variables
con letras mayúsculas.
© FUOC • PID_00149519 56 Lógica de predicados
La forma habitual de entender las cláusulas Prolog es la siguiente: la parte de-
recha especifica las condiciones que se deben cumplir (que deben ser verdade-
ras) para que se dé (es decir, sea verdadera) la parte izquierda.
Así, continuando con el ejemplo anterior, tenemos la cláusula que presenta-
mos a continuación:
progenitor (X, Y) :- padre (X, Y).
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
• padre (rafael, enrique).
• madre (margarita, enrique).
• madre (margarita, mercedes).
• padre (eliseo, rafael).
• padre (josé, margarita).
Una regla, según se entiende en Prolog, es un conjunto de implicacio-
nes de la forma:
B
1
. ... . B
n
÷ A
C
1
. ... . C
p
÷ A
donde A, B
i
y C
i
son predicados y donde las variables están cuantifica-
das universalmente.
Las cláusulas que no tienen parte izquierda se denominan hechos, y
representan aquellas propiedades y relaciones que se dan de forma
incondicional.
En Prolog las constantes se representan con cadenas de caracteres que
comienzan con una letra minúscula. Las cadenas que comienzan con
una letra mayúscula son variables.
© FUOC • PID_00149519 57 Lógica de predicados
6.2.2. La validación de razonamientos entra en juego: consultas
Un ejemplo de consulta, que parafraseamos como ‘¿Es Eliseo el padre de Ra-
fael?’*, es el siguiente:
Ante una consulta, el intérprete obra de la manera siguiente:
1) Considera todas las reglas y todos los hechos introducidos previamente
como premisas.
2) Considera que el usuario pide que se valide la conclusión*.
3) Intenta validar la conclusión e informa de si ha sido posible hacerlo.
Asumiendo que las reglas y los hechos conocidos por el intérprete son los que
se han utilizado antes como ejemplo, tenemos que:
a) El intérprete respondería YES, lo cual indica que la conclusión es correcta.
Entonces:
?- padre (eliseo, rafael).
YES
?-
b) Cuando la conclusión no se puede validar, el intérprete responde NO:
?- padre (enrique, josé).
NO
?-
c) No es necesario que las consultas se refieran a hechos explicitados. Dado el
ejemplo que nos ocupa, tenemos lo siguiente:
?- abuelo (eliseo, enrique).
YES
?-
Las cláusulas y los hechos son elementos computacionalmente pasivos,
es decir, describen propiedades y relaciones, pero no provocan que se
calcule (compute) nada. En Prolog los elementos activos se denominan
consultas. Típicamente, las consultas se introducen cuando el intérpre-
te muestra su prompt, que suelen ser los caracteres ?– o algo similar.
?- padre (eliseo, rafael).
* Los caracteres ?- no deben ser
introducidos por el usuario.
* En el ejemplo que acabamos de
exponer la conclusión sería padre
(eliseo, rafael).
© FUOC • PID_00149519 58 Lógica de predicados
En el caso del ejemplo, el intérprete no conoce ningún hecho como abuelo
(eliseo, enrique) y, a pesar de ello, es capaz de responder que la conclusión es
válida. ¿Cómo lo hace? Aplica el método de resolución para validar la conclu-
sión. El proceso, que explicaremos basándonos en el ejemplo en cuestión, es
el siguiente:
1) El intérprete descubre la cláusula siguiente:
abuelo (X, Y) :- progenitor (Z, Y), padre (X, Z).
Cambia los nombres de las variables y la reescribe así:
abuelo (X1, Y1) :- progenitor (Z1, Y1), padre (X1, Z1).
Como se quiere demostrar abuelo (eliseo, enrique), el intérprete susti-
tuye X1 por eliseo e Y1 por enrique, y queda la cláusula siguiente:
abuelo (eliseo, enrique) :- progenitor (Z1, enrique), padre
(eliseo, Z1).
Ante esta cláusula se entiende que, para demostrar que el abuelo de Enrique es
Eliseo, se debe demostrar, en primer lugar, que Z1 es un progenitor de Enrique
y, después, que el padre de Z1 es Eliseo. Esto es como decir que para conseguir
el objetivo de demostrar que Eliseo es el abuelo de Enrique, es necesario, en
primer lugar, conseguir los subobjetivos de demostrar que Z1 es un progenitor
de Enrique y, después, conseguir los de demostrar que Eliseo es el padre de Z1.
2) El intérprete intenta demostrar progenitor (Z1, enrique). En este inten-
to descubre la cláusula progenitor (X, Y) :- padre (X, Y) y la reescribe
como progenitor (X2, Y2) :- padre (X2, Y2). A continuación, sustituye X2
por Z1 e Y2 por enrique, y queda:
progenitor (Z1, enrique) :- padre (Z1, enrique).
En este punto entiende que para demostrar que Z1 es un progenitor de Enri-
que, debe demostrar que Z1 es el padre de Enrique.
Además, el intérprete “toma nota” de que la cláusula:
progenitor (X, Y) :- madre (X, Y).
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.
3) El intérprete intenta demostrar padre (Z1, enrique). En este intento des-
cubre el hecho padre (rafael, enrique) y sustituye Z1 por rafael. Con
Si entendéis :- como ÷,...
... veréis que lo único que hace
el intérprete es intentar llegar
al consecuente de una implica-
ción: primero, necesita conse-
guir el antecedente.
© FUOC • PID_00149519 59 Lógica de predicados
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:
progenitor (rafael, enrique).
4) En este punto, la cláusula:
Abuelo (eliseo, enrique) :- progenitor (Z1, enrique), padre
(eliseo, Z1).
ya se ha reescrito de la manera siguiente:
abuelo (eliseo, enrique) :- progenitor (rafael, enrique), pa-
dre (eliseo, rafael).
En el punto anterior, ya se ha demostrado progenitor (rafael, enrique)
y, por tanto, sólo queda demostrar padre (eliseo, rafael) para comple-
tar la demostración de abuelo (eliseo, enrique).
5) Ahora el intérprete intenta demostrar padre (eliseo, rafael). Des-
cubre el hecho que padre (rafael, enrique), pero este no sirve para de-
mostrar padre (eliseo, rafael). No obstante, hay una alternativa, que
es el hecho siguiente:
padre (eliseo, rafael).
y este hecho es el mismo que se quiere demostrar.
6) Dado que los dos subobjetivos que había que demostrar se han demostra-
do, el intérprete responde YES.
6.2.3. Prolog implementa el método de resolución
La resolución que ejecuta un intérprete de Prolog es equivalente a la que se ha
estudiado en esta asignatura. El mismo ejemplo que se acaba de ver servirá
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.
Las cláusulas y los hechos, que explicitamos a continuación:
• abuelo (X, Y) :- progenitor (Z, Y), padre (X, Z),
• progenitor (X, Y) :- padre (X, Y),
Recordad que hemos explicado
el método de resolución mediante
el algoritmo de unificación en el
subapartado 5.4 de este módulo
didáctico.
© FUOC • PID_00149519 60 Lógica de predicados
• progenitor (X, Y) :- madre (X, Y),
• padre (rafael, enrique),
• madre (margarita, enrique),
• madre (margarita, mercedes),
• padre (eliseo, rafael),
• padre (josé, margarita),
no son más que un conjunto de premisas como las siguientes:
• ¬X ¬Y ¬Z [progenitor (Z, Y) . padre (X, Z) ÷ abuelo (X, Y)],
• ¬X ¬Y ¬Z [padre (X, Y) ÷ progenitor (X, Y)],
• ¬X ¬Y ¬Z [madre (X, Y) ÷ progenitor (X, Y)],
• padre (Rafael, Enrique),
• madre (Margarita, Enrique),
• madre (Margarita, Mercedes),
• padre (Eliseo, Rafael),
• padre (José, Margarita),
mientras que la consulta abuelo (Eliseo, Enrique) es la conclusión.
Todo esto da lugar al conjunto de cláusulas siguientes:
S = { ÷progenitor(Z,Y) v ÷ padre(X,Z) v abuelo(X,Y), ÷padre(X,Y) v progeni-
tor(X,Y), ÷madre(X,Y) v progenitor(X,Y), padre (Rafael, Enrique), madre (Mar-
garita, Enrique), madre (Margarita, Mercedes), padre (Eliseo, Rafael), padre
(José, Margarita), ÷abuelo (Eliseo, Enrique) }
Con el conjunto de apoyo { ÷abuelo (Eliseo, Enrique) }.
A diferencia de la forma en que se hacía en el módulo anterior, en lugar de in-
tentar eliminar el literal de más a la derecha, se harán las eliminaciones en el
mismo orden en el que las haría un intérprete de Prolog. La cláusula que se
tenga que eliminar será la que se encuentra en negrita en el gráfico de la pági-
na siguiente.
© FUOC • PID_00149519 61 Lógica de predicados
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.
Un intérprete de Prolog demuestra todas sus capacidades* con consultas que
incluyen variables. Para el ejemplo que nos ocupa, tenemos lo siguiente:
?- abuelo (X, enrique).
X = eliseo?
La consulta, que se puede parafrasear como ‘¿Hay algún X que sea el abuelo
de Enrique?’, tiene la respuesta que podéis observar (X=Eliseo?). Esto quiere
decir dos cosas:
a) Que se ha podido demostrar que hay algún X que es el abuelo de Enrique.
÷abuelo (eliseo, enrique)
Cambiar el nombre
Sustituir X1 por eliseo
Cambiar el nombre
Sustituir X2 por Z1
Sustituir Z1 por rafael
÷progenitor(Z,Y) v ÷padre(X,Z) v abuelo(X,Y)
÷progenitor(Z1,Y1) v ÷padre(X1,Z1) v abuelo(X1,Y1)
÷progenitor(Z1,enrique) v ÷padre(eliseo,Z1) v abuelo(eliseo,enrique)
÷progenitor(Z1,enrique) v ÷padre(eliseo,Z1) ÷padre(X,Y) v progenitor(X,Y)
÷padre(X2,Y2) v progenitor(X2,Y2)
÷padre(Z1,enrique) v progenitor(Z1,enrique)
÷padre(eliseo,Z1) v ÷padre(Z1,enrique)
÷padre(eliseo,rafael) v ÷padre(rafael,enrique)
padre(rafael,enrique)
÷padre(eliseo,rafael) padre(eliseo,rafael)

de las variables
e Y1 por enrique
de las variables
e Y2 por enrique
* Y, por tanto, las capacidades
del método de resolución,
en el cual se basa.
* Esta consulta expresada
en el lenguaje de fórmulas quedaría
como -x abuelo (X, Enrique).
© FUOC • PID_00149519 62 Lógica de predicados
b) Que durante el proceso de demostración la variable X ha sido sustituida
por la constante Eliseo y que, por tanto, Eliseo es el abuelo de Enrique.
El intérprete ha “calculado” que Eliseo es el abuelo de Enrique. Sin embargo,
si después de la respuesta del intérprete el usuario escribe ;, entonces el resul-
tado es como el siguiente:
Utilizando el replanteamiento de la última decisión para explorar todas las al-
ternativas posibles, el intérprete es capaz de determinar que sustituyendo X
por José también puede demostrar la conclusión.
El método de resolución sirve para validar razonamientos y, gracias a
la sustitución de variables, para responder a determinadas cuestiones.
?- abuelo (X, enrique)
X=eliseo?,
X=josé?;
YES.
© FUOC • PID_00149519 63 Lógica de predicados
Resumen
Este módulo didáctico se ha iniciado con la constatación de la limitación ex-
presiva del lenguaje de la lógica de enunciados. Esta limitación es paliada por
el lenguaje de fórmulas, del cual el de enunciados es un subconjunto. Hemos
presentado los elementos básicos de este nuevo lenguaje: los predicados, los
términos –variables y constantes– y los cuantificadores. Y también la forma
que tienen de relacionarse entre sí. Inmediatamente después, el lenguaje de
fórmulas se ha puesto al servicio de la formalización de frases, expresadas en
lenguaje natural.
La deducción natural se ha ampliado con cuatro nuevas reglas que permiten
introducir y eliminar cuantificadores. La presencia de estos operadores pro-
porciona a este método de validación una complejidad que no tenía en el caso
de la lógica de enunciados y que, parcialmente, puede ser paliada por la utili-
zación de reglas derivadas y equivalencias deductivas.
Para poder refutar razonamientos de invalidez segura, o casi segura, se ha es-
tudiado la manera de encontrar contraejemplos. Antes ha sido necesario
adaptar el concepto de interpretación a la mayor complejidad del lenguaje
de fórmulas.
En el campo de la manipulación algebraica, la forma normal de Skolem ad-
quiere el relieve de la forma normal conjuntiva. Para calcular esta forma nor-
mal, hay que eliminar los cuantificadores existenciales. El proceso para llevar
a término esta eliminación recibe el nombre de eskolemización.
Después hemos vuelto al método de resolución. Éste, utilizando las formas
normales de Skolem y apoyándose en la sustitución de variables por términos,
permite validar y refutar razonamientos expresados en el lenguaje de fórmu-
las. Cuando es complicado calcular las sustituciones, el algoritmo de unifica-
ción describe minuciosamente lo que se debe hacer.
Finalmente, Prolog y la programación lógica muestran cómo la imple-
mentación del método de resolución es un punto donde lógica e informá-
tica confluyen.
© FUOC • PID_00149519 65 Lógica de predicados
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) v T(a,b,z)))
g) -z (T(x,y,z) v ¬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) v ¬y ÷T(x,y,t) v Q(y))
e) ÷-x (¬x Q(x) . P(x,x)) v ÷T(x,x,x)
f) ¬x -y ¬z (¬t R(x,y,z,t) ÷ -x P(x,t))
g) ¬x (¬x P(x,x) v ÷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_00149519 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_00149519 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) v D(x)), ÷D(a) H(a)
d) ¬x (H(x) v 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) v 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) v 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) v 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.
11. Validad por deducción natural los razonamientos siguientes:
a) ¬x ¬y [M(x) . G(x,y) ÷ P(x,y)], ÷P(a,b), G(a,b) ÷M(a)
b) -x A(x) ÷ -y B(y), ¬x (B(x) ÷ C(x)), ÷-x C(x) ¬x ÷A(x)
c) ¬x A(x) ÷ -y B(y) -z (A(z) ÷ B(z))
d) ÷-x {O(x) . -y [G(y) . A(x,y)]}, ¬x (P(x) ÷ G(x)) ÷-x {O(x) . -y [P(y) . A(x,y)]}
12. Dado el razonamiento ¬x -y (Q(x) ÷ P(y,x)) -y ¬x (Q(x) ÷ P(y,x)):
a) Indicad si la interpretación <{ 1, 2 }, { Q(1) = V, Q(2) = V, P(1,1) = V, P(1,2) = F, P(2,1) = F,
P(2,2) = V }, C> es o no un contraejemplo del mismo. ¿Puede afirmarse alguna cosa respecto
de la validez del razonamiento?
b) Dad, si la hay, una interpretación en un dominio de un solo elemento que sea un con-
traejemplo.
c) Dad, si la hay, una interpretación en un dominio de dos elementos que no sea un con-
traejemplo.
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:
I
1
: <{ 1 }, { P(1,1) = V }, C>
I
2
: <{ 1,2 }, { P(1,1) = V, P(1,2) = V, P(2,1) = F, P(2,2) = V }, C>
I
3
: <{ 1,2 }, { P(1,1) = V, P(1,2) = F, P(2,1) = F, P(2,2) = F }, C>
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:
I
1
: < { 1, 2 }, { P(1) = F, P(2) = F, Q(1,1) = V, Q(1,2) = V, Q(2,1) = V, Q(2,2) = V }, C>
I
2
: < { 1, 2 }, { P(1) = V, P(2) = V, Q(1,1) = V, Q(1,2) = V, Q(2,1) = F, Q(2,2) = F }, C>
I
3
: < { 1, 2 }, { P(1) = V, P(2) = F, Q(1,1) = V, Q(1,2) = V, Q(2,1) = F, Q(2,2) = F }, C>
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:
I
1
: <{ 1 }, { A(1) = V, C(1) = V, R(1,1) = V }, { a = 1 }>
I
2
: <{ 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}>
I
3
: <{ 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_00149519 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.
17. Encontrad la forma normal de Skolem de las fórmulas:
a) -x { P(x) . ÷-y [O(y) . T(x,y)] }
b) ¬x [P(x) ÷ -y Q(x,y)] ÷ -z R(z)
c) -x [P(x) . ¬y Q(x,y)] ÷ ¬z -u R(z,u)
d) ¬x { P(x) . -y [O(y) . T(x,y)] ÷ -z [O(z) . N(z) . T(x,z)] }
e) ¬x { P(x) . -y [R(x,y) . ¬z T(y,z)] ÷ -u Q(x,u) }
f) -x { P(x) . ¬y [T(x,y) ÷ O(y) . N(y)] }
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) v R(y) ÷ T(x,y)]
ii) ¬x ¬y [÷(Q(x) v R(y)) v T(x,y)]
iii) ¬x ¬y [÷Q(x) v ÷R(y) v 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) v -z Q(z,y)]
iii) ¬x [÷T(x,a) v Q(b,y)]
d)
i) -y [C(y) . ¬x T(x,y)] v ¬z [R(z) ÷ -t T(t,z)]
ii) -y [C(y) . ¬x T(x,y)] v ¬z [÷R(z) v -t T(t,z))]
iii) [C(a) . ¬x T(x,a)] v ¬z [÷R(z) v T(f(z),z)]
iv) ¬x ¬z [(C(a) . T(x,a)) v ÷R(z) v 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))) v ¬z R(z)]
iv) ¬x [÷C(x) v ÷T(x,f(x)) v ¬z R(z)]
v) ¬x ¬z [÷C(x) v ÷T(x,f(x)) v R(z)]
f)
i) -x [Q(x) v R(x)] ÷ ¬y -z T(y,z)
ii) ÷-x [Q(x) v R(x)] v ¬y -z T(y,z)
iii) -x÷[Q(x) v R(x)] v ¬y -z T(y,z)
iv) -x [÷Q(x) . ÷R(x)] v ¬y -z T(y,z)
v) [÷Q(a) . ÷R(a)] v ¬y T(y,f(y))
vi) ¬y [(÷Q(a) . ÷R(a)) v T(y,f(y))]
vii)¬y [(÷Q(a) v T(y,f(y))) . (÷R(a) v 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) v -y ¬z [÷T(y,z) v -t (S(x,t,z) . Q(t))]}
iii) ¬x { ÷R(x)v¬z[÷T(f(x),z) v (S(x,g(z),z) . Q(g(z)))]}
iv) ¬x ¬z { ÷R(x) v ÷T(f(x),z) v [ S(x,g(z),z) . Q(g(z))]}
v) ¬x ¬z {[÷R(x) v ÷T(f(x),z) v S(x,g(z),z)] . [÷R(x) v ÷T(f(x),z) v 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) v -z -t ¬u [÷S(z,t,u) v (÷R(x) . Q(y))]}
iii) ¬x ¬y { ÷T(x,y) v ¬u [÷S(f(x,y),f(x,y),u) v (÷R(x) . Q(y))]}
iv) ¬x ¬y ¬u { ÷T(x,y) v [÷S(f(x,y),f(x,y),u) v (÷R(x) . Q(y))]}
v) ¬x ¬y ¬u {[÷T(x,y) v ÷S(f(x,y),f(x,y),u) v ÷R(x)] . [÷T(x,y) v ÷S(f(x,y),f(x,y),u) v 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_00149519 69 Lógica de predicados
20. Formalizad los razonamientos siguientes y validadlos utilizando el método de resolución.
a) Ningún astrólogo es amigo de ningún científico. Todos los físicos son científicos. Como
conclusión podemos decir que ningún astrólogo es amigo de ningún físico.
b) Hay pacientes que sienten admiración por todos los médicos. No hay ningún paciente
que admire a ningún curandero. Así pues, no hay ningún médico que sea curandero.
c) Alberto es feliz si a todos sus amigos les gusta la música. Hoy no se ve a Alberto demasiado
feliz. Debe de ser que a algún amigo suyo no le gusta la música.
d) Todo número que puede dividirse por treinta y dos se puede dividir por cuatro. Los nú-
meros divisibles por cuatro son pares. Los números que no son divisibles por dos no son
pares. Setenta y tres no es divisible por dos. Consiguientemente, setenta y tres no puede
dividirse por treinta y dos.
e) Si hay lingüistas, hay traductores. Si hay traductores, todos los escritores escriben novelas
(cada escritor escribe alguna novela). Las novelas son escritos narrativos. Todas las nove-
las son escritas por algún escritor (cada novela es escrita por algún escritor). Pues bien,
todos los escritores lingüistas escriben algún escrito narrativo.
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.
a) S = { ÷A(x,y) v ÷B(y,x), A(b,c), B(f(x),x), ÷A(x,f(x)) }
b) S = { ÷C(x) v B(a,f(x)), C(b), ÷B(x,z) }
El razonamiento que da lugar al conjunto S no es correcto porque empezando con la
cláusula del apoyo no puede llegarse a  y las premisas son consistentes porque del con-
junto { ÷C(x) v B(a,f(x)), C(b) } no puede obtenerse la cláusula vacía.
© FUOC • PID_00149519 70 Lógica de predicados
c) { B(x) v ÷F(x,f(x)), ÷A(y) v ÷B(y) v ÷F(x,f(x)), A(x), ÷A(a) v F(c,z) }
No se puede continuar porque la cláusula A(x) no puede resolverse contra ÷A(a) v ÷A(y),
ya que x e y son dos variables diferentes y por lo tanto la discrepancia es irresoluble.
d) {A(x) v ÷B(a), D(x,y,z) v B(y), C(u) v ÷B(u), ÷C(a), A(z), ÷A(b) v ÷D(b,a,c)}
© FUOC • PID_00149519 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) ¬x
1
Q(x
1
) . -y
2
P(x
3
,y
2
). La variable x
3
es libre.
b) -x
1
Q(a) ÷ ¬y
2
P(x
3
,y
2
). La variable x
3
es libre.
c) ¬x
1
(¬y
2
T(x
1
,y
2
,z
3
) . ¬x
4
Q(x
4
) ÷ -z
5
P(x
1
,z
5
)). La variable z
3
es libre.
d) ¬x
1
-y
2
(-z
3
R(x
1
,y
2
,z
3
,t
4
) v ¬y
5
÷T(x
1
,y
5
,t
4
) v Q(y
2
)). La variable t
4
es libre.
e) ÷-x
1
(¬x
2
Q(x
2
) . P(x
1
,x
1
)) v ÷T(x
3
,x
3
,x
3
). La variables x
3
es libre.
f) ¬x
1
-y
2
¬z
3
(¬t
4
R(x
1
,y
2
,z
3
,t
4
) ÷ -x
5
P(x
5
,t
6
)). La variable t
6
es libre.
g) ¬x
1
(¬x
2
P(x
2
,x
2
) v ÷Q(a) ÷ ¬y
3
÷R(a,x
1
,a,y
3
) . T(y
4
,y
4
,x
1
)). La variable y
4
es libre.
3.
a) ¬x [P(x) v 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) v ÷C(x) v ÷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)
b) P(x): “x es una persona”; H(x): “x es honrado”
¬x (P(x) ÷ H(x))
c) H(x): “x es honrado”
-x H(x)
d) P(x): “x es una persona”; H(x): “x es honrado”
-x (P(x) . H(x))
© FUOC • PID_00149519 72 Lógica de predicados
e) H(x): “x es honrado”; a: “Juan”
H(a)
f) H(x): “x es honrado”; a: “Juan”
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)
g) H(x): “x es honrado”; T(x,y): “x trata con y”
¬x (H(x) ÷ ¬y T(x,y))
h) P(x): “x es una persona”; H(x): “x es honrado”; T(x,y): “x trata con y”
¬x (P(x) . H(x) ÷ ¬y (P(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”
¬x (H(x) ÷ ¬y (T(x,y) ÷ H(y)))
Observad que hemos entendido que “gente” es sinónimo de “personas”.
j) P(x): “x es una persona”; H(x): “x es honrado”; T(x,y): “x se trata con y”
¬x (P(x) . H(x) ÷ ¬y (T(x,y) ÷ P(y) . H(y)))
k) H(x): “x es honrado”. T(x,y): “x se trata con y”
-x (H(x) . ¬y (T(x,y) ÷ H(y)))
l) H(x): “x es honrado”; T(x,y): “x se trata con y”
-x (÷H(x) . ÷-y T(x,y))
m) P(x): “x es una persona”; H(x): “x es honrado”; T(x,y): “x se trata con y”
-x (P(x) . ÷H(x) . ÷-y (P(y) . T(x,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)
o) T(x,y): “x trata a y”; a: “Juan”
-x T(a,x)
p) P(x): “x es una persona”; H(x): “x es honrado”; T(x,y): “x trata a y”; a: “Juan”
-x (P(x) . H(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:
-x (P(x) . H(x) . T(a,x)) . P(a) . H(a)
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) v ÷N(z)) y
-x B(x) . -y N(y) . ¬z (B(z) ÷ ÷N(z))
© FUOC • PID_00149519 73 Lógica de predicados
b) ¬x (H(x) v D(x) ÷ T(x))
También serían correctas:
¬x (H(x) ÷ T(x)) . ¬y (D(y) ÷ T(y)) y
¬x (H(x) ÷ T(x)) . ¬x (D(x) ÷ T(x)).
En cambio, no sería correcta: ¬x (H(x) . D(x) ÷ T(x)).
c) ¬x (Q(x) ÷ R(x)) . -y (R(y) . Q(y)) . ÷¬z (R(z) ÷ Q(z))
También sería correcta:
¬x (Q(x) ÷ R(x)) . -y (R(y) . Q(y)) . -z (R(z) . ÷Q(z)).
Observad que “Sólo algunos números reales son racionales” se ha interpretado como “Hay
reales que son racionales, pero no todos los reales son racionales”.
d) Observad que la forma más sencilla de formalizar esta frase es negar la formalización de
“Todos los productos caros son de calidad”:
÷¬x (P(x) . C(x) ÷ Q(x))
También sería correcto: -x (P(x) . C(x) . ÷Q(x)).
e) ¬x (S(x) ÷ I(x)). También sería correcto: ¬x (÷I(x) ÷ ÷S(x)).
Observad que la frase expresa una condición necesaria: ser muy inteligente es necesario
para ser socio del club.
f) ¬x (F(x) ÷ T(x))
g) ¬x [E(x) . F(x) ÷ -y (A(y) . T(x,y))]
h) ÷-x S(x) ÷ ÷-y (I(y) . F(y))
También serían correctas: ÷-x S(x) ÷ ÷-x (I(x) . F(x)) y ÷-x S(x) ÷ ¬y (I(y) ÷ ÷F(y)).
Observad que la frase dada es una implicación y que cada parte de la implicación es una
fórmula cuantificada.
i) -x [E(x) . ¬y (P(y) ÷ A(x,y))] . ÷-x [P(x) . ¬y (E(y) ÷ A(x,y))]
j) ¬x [A(x) . -y (Z(y) . V(x,y)) ÷ N(x)]
k) -x { P(x) . ¬y[O(y) . -z (C(z) . A(y,z)) ÷ B(x,y)] }
l) -x { P(x) . ¬y [O(y) . ¬z (C(z) ÷ A(y,z)) ÷ B(x,y)] }
m)¬x { P(x) ÷ -y [S(y) . T(x,y) . ¬z (V(z,x) ÷ D(z,y))] }
6.
a) C(x): “x es catalán”; M(x): “x come escudella”
¬x (M(x) ÷ C(x))
También sería correcto: ¬x (÷C(x) ÷ ÷M(x)).
Dado que la frase expresa una condición necesaria (hay que ser catalán para comer escu-
della), la formalización ¬x (C(x) ÷ M(x)) no sería correcta.
b) E(x): “x es una empresa”; A(x): “x es un administrativo”; P(x): “x es poco honrado”; T(x,y):
“x trabaja en y”
¬x [E(x) ÷ -y (A(y) . P(y) . T(y,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:
¬x [E(x) ÷ -y (H(y) . T(y,x))]
c) D(x): “x es un diputado”; E(x): “x es un escaño”; S(x,y): “x se sienta en y”
¬x [D(x) ÷ -y (E(y) . S(x,y))]
d) D(x): “x es un diputado”; E(x): “x es un escaño”; S(x,y): “x se sienta en y” (o “x se ha sentado
en y”)
-x [E(x) . ¬y (D(y) ÷ S(y,x))]
e) P(x): “x es un periodista”; S(x): “x es un secreto”; F(x): “x es famoso”; T(x,y): “x es de y”;
C(x,y): “x conoce y”
-x { P(x) . ¬y [S(y) . -z (F(z) . T(y,z)) ÷ C(x,y)] }
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))]
f) I(x): “x es un informático”; E(x,y): “x entiende y”
¬x [I(x) ÷ ¬y (E(x,y) ÷ I(y))]
© FUOC • PID_00149519 74 Lógica de predicados
g) M(x): “x se encuentra mal”; H(x): “x se pone de mal humor”
-x M(x)÷¬y H(y)
También es correcto: -xM(x) ÷ ¬xH(x).
h) C(x): “x es miembro de la pandilla”; M(x): “x se encuentra mal”; H(x): “x se pone de mal
humor”
-x (C(x) . M(x)) ÷ ¬y (C(y) ÷ H(y)).
También es correcto: -x (C(x) . M(x)) ÷ ¬x (C(x) ÷ H(x)).
Observad que hemos interpretado que “Todos se ponen de mal humor” quiere decir “To-
dos los miembros de la pandilla”.
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) v 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)
Observad que en el paso 4 se elige la constante a para eliminar el cuantificador universal
porque con cualquier otro término no sería posible aplicar la regla MT en el paso 5.
c)
(1) ¬x (H(x) ÷ M(x)) P
(2) ÷M(a) P
(3) H(a) ÷ M(a) E¬ 1
(4) ÷H(a) MT 2, 3
(1) ¬x (H(x) ÷ M(x)) P
(2) -y ÷M(y) P
(3) ÷M(a) E- 2
(4) H(a) ÷ M(a) E¬ 1
(5) ÷H(a) MT 3, 4
(6) -z ÷H(z) I- 5
(1) ¬x (H(x) v D(x)) P
(2) ÷D(a) P
(3) H(a) v D(a) E¬ 1
(4) H(a) SD 2, 3
© FUOC • PID_00149519 75 Lógica de predicados
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)
h)
(1) ¬x (H(x) v D(x)) P
(2) -y ÷D(y) P
(3) ÷D(a) E- 2
(4) H(a) v D(a) E¬ 1
(5) H(a) SD 3, 4
(6) -z H(z) I- 5
(1) ¬x (H(x) v D(x)) P
(2) -y ÷D(y) P
(3) H(a) v D(a) E¬ 1
(4) ÷D(a) E- 2 ¡incorrecto!
(5) H(a) SD 3, 4
(6) -z H(z) I- 5
(1) ¬x (÷M(x) ÷ ÷H(x)) P
(2) ¬x H(x) P
(3) ÷M(z) ÷ ÷H(z) E¬ 1
(4) H(z) E¬ 2
(5) ÷÷M(z) MT 3, 4
(6) M(z) E÷ 5
(7) ¬x M(x) I¬ 6
(1) ¬x (H(x) ÷ M(x) v F(x)) P
(2) -y (H(y) . ÷M(y)) P
(3) H(a) . ÷M(a) E- 2
(4) H(a) ÷ M(a) v F(a) E¬ 1
(5) H(a) E. 3
(6) M(a) v F(a) E÷ 4, 5
(7) ÷M(a) E. 3
(8) F(a) SD 6, 7
(9) -z F(z) I- 8
(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
(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_00149519 76 Lógica de predicados
i)
j)
Tened presente que, antes de eliminar un cuantificador universal, es necesario reflexionar
sobre qué término (¿una variable?, ¿una constante?, ¿qué constante?) hay que utilizar
para su eliminación. En este caso, ha sido necesario utilizar la constante a para, por ejem-
plo, poder disponer de M(a) y luego aplicar la regla MT.
10.
a)
b)
(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
(1) ¬x [P(x) . -y (G(y) . T(x,y)) ÷ M(x)] P
(2) G(b) . T(a,b) . ÷M(a) P
(3) P(a) . -y (G(y) . T(a,y)) ÷ M(a) E¬ 1
(4) ÷M(a) E. 2
(5) ÷(P(a) . -y (G(y) . T(a,y))) MT 3, 4
(6) ÷P(a) v ÷-y (G(y) . T(a,y)) ED 5
(7) G(b) . T(a,b) E. 2
(8) -y (G(y) . T(a,y)) I- 7
(9) ÷P(a) SD 6, 8
(10) -z ÷P(z) I- 9
(1) ¬x (C(x) . N(x) ÷ P(x)) P
(2) -x (C(x) . O(x) . ÷P(x)) P
(3) ¬x (O(x) ÷ S(x)) P
(4) C(a) . O(a) . ÷P(a) E- 2
(5) C(a) . N(a) ÷ P(a) E¬ 1
(6) ÷P(a) E. 4
(7) ÷(C(a) . N(a)) MT 5, 6
(8) ÷C(a) v ÷N(a) ED 7
(9) C(a) E. 4
(10) ÷N(a) SD 8, 9
(11) O(a) ÷ S(a) E¬ 3
(12) O(a) E. 4
(13) S(a) E÷ 11, 12
(14) C(a) . S(a) . ÷N(a) I. 9, 10, 13
(15) -x (C(x) . S(x) . ÷N(x)) I- 14
(1) ¬x (H(x) ÷ M(x)) P
(2) -y ÷M(y) P
(3) ¬z H(z) H
(4) ÷M(a) E- 2
(5) H(a) ÷ M(a) E¬ 1
(6) H(a) E¬ 3
(7) M(a) E÷ 5, 6
(8) ÷M(a) it 4
(9) ÷¬z H(z) I÷ 3, 7, 8
© FUOC • PID_00149519 77 Lógica de predicados
c)
La siguiente demostración, que no es una reducción al absurdo, también sería correcta:
d)
(1) ¬x (H(x) ÷ M(x) v F(x)) P
(2) ÷-x (H(x) . M(x)) P
(3) ÷¬z (H(z) ÷ F(z)) H
(4) -z ÷(H(z) ÷ F(z)) ED 3
(5) ÷(H(a) ÷ F(a)) E- 4
(6) H(a) . ÷F(a) ED 5
(7) H(a) ÷ M(a) v F(a) E¬ 1
(8) H(a) E. 6
(9) M(a) v F(a) E÷ 7, 8
(10) ÷F(a) E. 6
(11) M(a) SD 9, 10
(12) H(a) . M(a) I. 8, 11
(13) -x (H(x) . M(x)) I- 12
(14) ÷-x (H(x) . M(x)) it 2
(15) ÷÷¬z (H(z) ÷ F(z)) I÷ 3, 13, 14
(16) ¬z (H(z) ÷ F(z)) E÷ 15
(1) ¬x (H(x) ÷ M(x) v F(x)) P
(2) ÷-x (H(x) . M(x)) P
(3) ¬x ÷(H(x) . M(x)) ED 2
(4) ÷(H(u) . M(u)) E¬ 3
(5) ÷H(u) v ÷M(u) ED 4
(6) ÷H(u) H
(7) ÷H(u) v F(u) Iv 6
(8) H(u) ÷ F(u) ED 7
(9) ÷M(u) H
(10) H(u) ÷ M(u) v F(u) E¬ 1
(11) ÷F(u) H
(12) ÷M(u) . ÷F(u) I. 9, 11
(13) ÷(M(u) v 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) Ev 5, 8, 16
(18) ¬z (H(z) ÷ F(z)) I¬ 17
(1) ¬x (H(x) v D(x)) P
(2) ÷¬y D(y) P
(3) -y ÷D(y) ED 2
(4) ÷D(a) E- 3
(5) H(a) v D(a) E¬ 1
(6) H(a) SD 4, 5
(7) -z H(z) I- 6
© FUOC • PID_00149519 78 Lógica de predicados
e)
Observad lo siguiente:
• La primera premisa es una implicación (÷ es su conectiva principal). Por este motivo
es lícito aplicarle la regla E÷ cuando se dispone de su antecedente (paso 5).
• La fórmula ¬x -y [M(x) ÷ C(y) . F(x,y)] está cuantificada universalmente (es el resultado
de cuantificar universalmente una fórmula cuantificada existencialmente). Por esta razón
el cuantificador que se elimina es el universal (paso 6). Después puede aplicarse la regla E-
a este resultado. No sería correcto pasar de ¬x -y [M(x) ÷ C(y) . F(x,y)] a ¬x [M(x) ÷ C(b) .
F(x,b)] por eliminación del cuantificador existencial.
• En el paso 6, la constante utilizada al aplicar E- ha sido b. La constante a no podía utili-
zarse porque ya había aparecido antes.
f)
g)
Observad que los puntos 3 y 4 se podrían haber resumido en uno solo porque:
÷¬x -y P(x,y) -x ¬y ÷P(x,y)
(1) -x [C(x) . P(x)] ÷ ¬x -y [M(x) ÷ C(y) . F(x,y)] P
(2) M(a) P
(3) ¬z (C(z) ÷ ÷F(a,z)) P
(4) -x (C(x) . P(x)) H
(5) ¬x -y [M(x) ÷ C(y) . F(x,y)] E÷ 1, 4
(6) -y [M(a) ÷ C(y) . F(a,y)] E¬ 5
(7) M(a) ÷ C(b) . F(a,b) E- 6
(8) M(a) it 2
(9) C(b) . F(a,b) E÷ 7, 8
(10) C(b) ÷ ÷F(a,b) E¬ 3
(11) C(b) E. 9
(12) ÷F(a,b) E÷ 10, 11
(13) F(a,b) E. 9
(14) ÷-x (C(x) . P(x)) I÷ 4, 12, 13
(1) ¬x [-y P(x,y) ÷ -z S(x,z)] P
(2) -y ¬x P(x,y) P
(3) ¬x P(x,a) E- 2
(4) P(t,a) E¬ 3
(5) -y P(t,y) I- 4
(6) -y P(t,y) ÷ -z S(t,z) E¬ 1
(7) -z S(t,z) E÷ 5, 6
(8) ¬x -z S(x,z) I¬ 7
(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
±
±
© FUOC • PID_00149519 79 Lógica de predicados
h)
Observad que el paso 7 es, en el fondo, la interiorización de la negación de la segunda premisa:
÷-x [P(x) . -y (C(y) . A(x,y))] ¬x ÷[P(x) . -y (C(y) . A(x,y))]
¬x [÷P(x) v ÷-y (C(y) . A(x,y))] ¬x [÷P(x) v ¬y ÷(C(y) . A(x,y))]
¬x [÷P(x) v ¬y (÷C(y) v ÷A(x,y))] ¬x [P(x) ÷ ¬y (÷C(y) v ÷A(x,y))]
¬x [P(x) ÷ ¬y (C(y) ÷ ÷A(x,y))]
11.
a)
b)
(1) -x [P(x) . ¬y (M(y) ÷ A(x,y))] P
(2) ÷-x [P(x) . -y (C(y) . A(x,y))] P
(3) ÷¬x (M(x) ÷ ÷C(x)) H
(4) -x (M(x) . C(x)) ED 3
(5) M(a) . C(a) E- 4
(6) P(b) . ¬y (M(y) ÷ A(b,y)) E- 1
(7) ¬x [P(x) ÷ ¬y (C(y) ÷ ÷A(x,y))] ED 2
(8) P(b) ÷ ¬y (C(y) ÷ ÷A(b,y)) E¬ 7
(9) P(b) E. 6
(10) ¬y (C(y) ÷ ÷A(b,y)) E÷ 8, 9
(11) ¬y (M(y) ÷ A(b,y)) E. 6
(12) C(a) ÷ ÷A(b,a) E¬ 10
(13) M(a) ÷ A(b,a) E¬ 11
(14) C(a) E. 5
(15) M(a) E. 5
(16) ÷A(b,a) E÷ 12, 14
(17) A(b,a) E÷ 13, 15
(18) ÷÷¬x (M(x) ÷ ÷C(x)) I÷ 3, 16, 17
(19) ¬x (M(x) ÷ ÷C(x)) E÷ 18
(1) ¬x ¬y [M(x) . G(x,y) ÷ P(x,y)] P
(2) ÷P(a,b) P
(3) G(a,b) P
(4) ¬y [M(a) . G(a,y) ÷ P(a,y)] E¬ 1
(5) M(a) . G(a,b) ÷ P(a,b) E¬ 4
(6) ÷(M(a) . G(a,b)) MT 2, 5
(7) ÷M(a) v ÷G(a,b) ED 6
(8) ÷M(a) SD 7, 3
(1) -x A(x) ÷ -y B(y) P
(2) ¬x (B(x) ÷ C(x)) P
(3) ÷-x C(x) P
(4) ¬x ÷C(x) ED 3
(5) B(u) ÷ C(u) E¬ 2
(6) ÷C(u) E¬ 4
(7) ÷B(u) MT 5, 6
(8) ¬y ÷B(y) I¬ 7
(9) ÷-y B(y) ED 8
(10) ÷-x A(x) MT 1, 9
(11) ¬x ÷A(x) ED 10
±
±
±
±
±
±
±
±
±
±
±
±
±
±
±
±
±
±
© FUOC • PID_00149519 80 Lógica de predicados
c)
d)
12.
a) En el dominio { 1, 2 }, la premisa del razonamiento es equivalente a:
¬x [(Q(x) ÷ P(1,x)) v (Q(x) ÷ P(2,x))], que es equivalente a:
[(Q(1) ÷ P(1,1)) v (Q(1) ÷ P(2,1))] . [(Q(2) ÷ P(1,2)) v (Q(2) ÷ P(2,2))],
y su valor en la interpretación dada es:
[(V ÷ V) v (V ÷ F)] . [(V ÷ F) v (V ÷ V)] = V
En lo que respecta a la conclusión, en el dominio { 1, 2 }, es equivalente a:
-y [(Q(1) ÷ P(y,1)) . (Q(2) ÷ P(y,2))] que es equivalente a:
[(Q(1) ÷ P(1,1)) . (Q(2) ÷ P(1,2))] v [(Q(1) ÷ P(2,1)) . (Q(2) ÷ P(2,2))],
y su valor en la interpretación dada es:
[(V ÷ V) . (V ÷ F) ] v [(V ÷ F) . (V ÷ V)] = F
De este modo, la interpretación es un contraejemplo del razonamiento porque hace cier-
tas sus premisas y falsa la conclusión. Y esto nos permite afirmar que el razonamiento no
es válido.
b) En un dominio de un solo elemento, por ejemplo { 1 }, la premisa del razonamiento es
equivalente a Q(1) ÷ P(1,1) y la conclusión es equivalente a Q(1) ÷ P(1,1). Dado que se
(1) ¬x A(x) ÷ -y B(y) P
(2) ÷-z (A(z) ÷ B(z)) H
(3) ¬z ÷(A(z) ÷ B(z)) ED 2
(4) ¬z (A(z) . ÷B(z)) ED 3
(5) A(u) . ÷B(u) E¬ 4
(6) A(u) E. 5
(7) ¬x A(x) I¬ 6
(8) -y B(y) E÷ 1, 7
(9) B(a) E- 8
(10) A(a) . ÷B(a) E¬ 4
(11) ÷B(a) E. 10
(12) ÷÷-z (A(z) ÷ B(z)) I÷ 2, 9, 11
(13) -z (A(z) ÷ B(z)) E÷ 12
(1) ÷-x { O(x) . -y [G(y) . A(x,y)] } P
(2) ¬x (P(x) ÷ G(x)) P
(3) -x { O(x) . -y [P(y) . A(x,y)] } H
(4) O(a) . -y [P(y) . A(a,y)] E- 3
(5) -y [P(y) . A(a,y)] E. 4
(6) P(b) . A(a,b) E- 5
(7) P(b) ÷ G(b) E¬ 2
(8) P(b) E. 6
(9) G(b) E÷ 7, 8
(10) A(a,b) E. 6
(11) G(b) . A(a,b) I. 9, 10
(12) -y [G(y) . A(a,y)] I- 11
(13) O(a) E. 4
(14) O(a) . -y [G(y) . A(a,y)] I. 12, 13
(15) -x { O(x) . -y [G(y) . A(x,y)] } I- 14
(16) ÷-x { O(x) . -y [G(y) . A(x,y)] } it 1
(17) ÷-x { O(x) . -y [P(y) . A(x,y)] } I÷ 3, 15, 16
© FUOC • PID_00149519 81 Lógica de predicados
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.
c) Una interpretación no es un contraejemplo si hace falsa alguna de las premisas o cierta la
conclusión (o las dos cosas simultáneamente). Intentaremos encontrar una interpreta-
ción que haga cierta la conclusión.
Se trata de que sea cierto el enunciado:
[(Q(1) ÷ P(1,1)) . (Q(2) ÷ P(1,2))] v [(Q(1) ÷ P(2,1)) . (Q(2) ÷ P(2,2))].
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:
<{ 1, 2 }, { Q(1) = F, Q(2) = F, P(1,1) = V, P(1,2) = V, P(2,1) = V, P(2,2) = V }, C>
y otra es:
<{ 1, 2 }, { Q(1) = F, Q(2) = F, P(1,1) = F, P(1,2) = V, P(2,1) = F, P(2,2) = V }, C>
13. En el dominio { 1 }, el razonamiento equivale a:
P(1,1), P(1,1) ÷ P(1,1) P(1,1), que és vàlid.
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)) v (P(2,1) . P(2,2)).
La segunda interpretación hace cierto este enunciado y, en consecuencia, tampoco es un
contraejemplo.
Dado que ninguna de las tres interpretaciones es un contraejemplo, no puede afirmarse
que el razonamiento sea incorrecto. Ahora bien, tampoco puede afirmarse que sea correc-
to porque quizá hay otra interpretación que sí sea un contraejemplo.
De hecho, el razonamiento no es correcto porque la siguiente interpretación sí que es un
contraejemplo:
<{ 1, 2 }, { P(1,1) = V, P(1,2) = F, P(2,1) = F, P(2,2) = V }, C>
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.
• La primera premisa se puede reescribir:
(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
• La segunda premisa se puede reescribir A(1) y es cierta en la tercera interpretación.
(1) ¬x [P(x) ÷ -y Q(x,y)] P
(2) ¬x ¬y ÷Q(x,y) P
(3) -x P(x) H
(4) P(a) E- 3
(5) P(a) ÷ -y Q(a,y) E¬ 1
(6) -y Q(a,y) E÷ 4, 5
(7) Q(a,b) E- 6
(8) ¬y ÷Q(a,y) E¬ 2
(9) ÷Q(a,b) E¬ 8
(10) ÷-x P(x) I÷ 3, 7, 9
© FUOC • PID_00149519 82 Lógica de predicados
• Finalmente, podemos reescribir la tercera premisa como:
R(1,1) v R(1,2) v R(2,1) v R(2,2)
Y su valor en la tercera interpretación es F v F v V v V = 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”
¬x (P(x) ÷ I(x)), -x (F(x) . I(x)) -x (P(x) . F(x))
En un dominio de un solo elemento, por ejemplo {1}, el razonamiento es equivalente a:
P(1) ÷ I(1), F(1) . I(1) P(1) . F(1)
Hacemos la tabla de verdad:
Descubrimos que la interpretación <{ 1 }, { P(1) = F, I(1) = V, F(1) = V }, C> es un contraejemplo.
b) D(x): “x es una mujer”; R(x): “x es responsable”
-x (D(x) . R(x)) ¬x R(x)
En un dominio de un solo elemento el razonamiento no tiene ningún contraejemplo porque:
D(1) . R(1) R(1) es un razonamiento correcto.
En un dominio de dos elementos, sí que hay contraejemplos (buscamos una situación en
la que no todos los elementos del dominio sean “responsable”, pero que uno de ellos –una
mujer– sí que lo sea. De esta forma haremos cierta la premisa y falsa la conclusión). Por
ejemplo:
<{ 1, 2 }, { D(1) = V, D(2) = V, R(1) = V, R(2) = F }, C>
c) E(x): “x se ha examinado”; A(x): “x puede ser (es) apto”; R(x): “x puede ser (es) recomendado”
¬x (A(x) ÷ E(x)), ¬x (R(x) ÷ A(x)) ¬x (E(x) ÷ R(x))
En un dominio de un solo elemento, { 1 }, podemos rescribir este razonamiento:
A(1) ÷ E(1), R(1) ÷ A(1) E(1) ÷ R(1)
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:
<{ 1 }, { E(1) = V, A(1) = V, R(1) = F }, C>
C on A(1) = F también se consigue que la primera premisa sea cierta.
P(1) I(1) F(1) P(1) ÷ I(1) F(1) . I(1) P(1) . F(1)
V V V V V V
V V F V F
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
© FUOC • PID_00149519 83 Lógica de predicados
d) M(x): “x es un marciano”; D(x): “x es un desintegrador”; T(x,y): “x tiene y”
¬x [M(x) ÷ -y (D(y) . T(x,y))], ÷-x D(x) -x[M(x) . ÷-y (D(y) . T(x,y))]
En un dominio de un solo elemento el razonamiento se puede reescribir:
M(1) ÷ D(1) . T(1,1), ÷D(1) M(1) . ÷(D(1) . T(1,1))
Un contraejemplo debe hacer cierto ÷D(1) y la única posibilidad es D(1) = F. La conclusión
del razonamiento debe ser falsa. Si M(1) = F entonces la conclusión es falsa y la primera
premisa cierta, independientemente de lo que sea T(1,1). De este modo, un contraejemplo
del razonamiento es:
<{ 1 }, { M(1) = F, D(1) = F, T(1,1) = F }, C>.
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) v ÷T(x,y)]}
iii) P(a) . ¬y [÷O(y) v ÷T(a,y)]
iv) ¬y [P(a) . (÷O(y) v ÷T(a,y))]
b)
i) ¬x [P(x) ÷ -y Q(x,y)] ÷ -z R(z)
ii) ÷¬x [÷P(x) v -y Q(x,y)] v -z R(z)
iii) -x [P(x) . ¬y ÷Q(x,y)] v -z R(z)
iv) (P(a) . ¬y ÷Q(a,y)) v R(b)
v) ¬y [(P(a) . ÷Q(a,y)) v R(b)]
vi) ¬y [(P(a) v R(b)) . (÷Q(a,y) v R(b))]
c)
i) -x [P(x) . ¬y Q(x,y)] ÷ ¬z -u R(z,u)
ii) ÷-x [P(x) . ¬y Q(x,y)] v ¬z -u R(z,u)
iii) ¬x [÷P(x) v -y ÷Q(x,y)] v ¬z -u R(z,u)
iv) ¬x [÷P(x) v ÷Q(x,f(x))] v ¬z R(z,g(z))
v) ¬x ¬z [÷P(x) v ÷Q(x,f(x)) v 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)]) v -z [O(z) . N(z) . T(x,z)]}
iii) ¬x {(÷P(x) v ¬y [÷O(y) v ÷T(x,y)]) v -z [O(z) . N(z) . T(x,z)]}
iv) ¬x {(÷P(x) v ¬y [÷O(y) v ÷T(x,y)]) v [O(f(x)) . N(f(x)) . T(x, f(x))]}
v) ¬x ¬y { ÷P(x) v ÷O(y) v ÷T(x,y) v [O(f(x)) . N(f(x)) . T(x, f(x))]}
vi) ¬x ¬y {[ ÷P(x) v ÷O(y) v ÷T(x,y) v O(f(x))] .
. [÷P(x) v ÷O(y) v ÷T(x,y) v N(f(x))] .
. [÷P(x) v ÷O(y) v ÷T(x,y) v 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)]) v -u Q(x,u)}
iii) ¬x {(÷P(x) v ¬y [÷R(x,y) v -z ÷T(y,z)]) v -u Q(x,u)}
iv) ¬x {(÷P(x) v ¬y [÷R(x,y) v ÷T(y,f(x,y))]) v Q(x,g(x))}
v) ¬x ¬y [÷P(x) v ÷R(x,y) v ÷T(y,f(x,y)) v 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) v (O(y) . N(y))]}
iii) P(a) . ¬y [÷T(a,y) v (O(y) . N(y))]
iv) ¬y {P(a) . [÷T(a,y) v (O(y) . N(y))]}
v) ¬y [P(a) . (÷T(a,y) v O(y)) . (÷T(a,y) v 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)) v T(x,y)] y finalmente se obtendría:
¬x ¬y [(÷Q(x) v T(x,y)) . (÷R(y) v T(x,y))]
b) Se ha utilizado la misma constante para cuantificadores existenciales distintos. Debería ser:
¬x T(x,a) . Q(b)
© FUOC • PID_00149519 84 Lógica de predicados
c) El error se halla en el tercer paso: la segunda aparición de la variable y dentro de la fórmula
está afectada por el mismo cuantificador que la primera. Las dos apariciones deben susti-
tuirse por la misma constante. Además, el cuantificador -z está dentro del alcance del
cuantificador ¬x, de modo que la variable z se debería sustituir por una función de x. Ten-
dría que ser:
¬x [÷T(x,a) v 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:
¬x ¬z [(C(a) v ÷R(z) v T(f(z),z)) . (T(x,a) v ÷R(z) v T(f(z),z))]
e) En el segundo paso la eliminación del cuantificador existencial se ha hecho prematura-
mente. Primero se tendría que haber eliminado la implicación. Debería ser:
ii) ¬x [÷(C(x) . -y T(x,y)) v ¬z R(z)]
iii) ¬x [÷C(x) v ÷-y T(x,y) v ¬z R(z)]
iv) ¬x [÷C(x) v ¬y ÷T(x,y) v ¬z R(z)]
v) ¬x ¬y ¬z [÷C(x) v ÷T(x,y) v R(z)]
f) En el tercer paso se ha aplicado mal la interiorización de la negación (De Morgan) porque
÷-x A(x) ¬x ÷A(x). Tendría que ser:
iii) ¬x ÷[Q(x) v R(x)] v ¬y -z T(y,z)
iv) ¬x [÷Q(x) . ÷R(x)] v ¬y -z T(y,z)
v) ¬x [÷Q(x) .÷R(x)] v ¬y T(y,f(y))
vi) ¬x ¬y [(÷Q(x) v T(y,f(y))) . (÷R(x) v T(y,f(y)))]
g) El tercer paso es incorrecto: el cuantificador -t está bajo el alcance de dos cuantificadores
universales: ¬x y ¬z. Por este motivo, la variable t debe sustituirse por una función de x y
de z. Debería ser:
¬x { ÷R(x) v ¬z [÷T(f(x),z) v (S(x,g(x,z),z) . Q(g(x,z)))] }.
Al final se obtendría:
¬x ¬z { (÷R(x) v ÷T(f(x),z) v S(x,g(x,z),z)) . (÷R(x) v ÷T(f(x),z) v Q(g(x,z))) }
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) v ¬u [÷S(f(x,y),g(x,y),u) v (÷R(x) . Q(y))] }
iv) ¬x ¬y ¬u { ÷T(x,y) v [÷S(f(x,y),g(x,y),u) v (÷R(x) . Q(y))] }
v) ¬x ¬y ¬u { [÷T(x,y) v ÷S(f(x,y),g(x,y),u) v ÷R(x)] . [÷T(x,y) v ÷S(f(x,y),g(x,y),u) v 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_00149519 85 Lógica de predicados
b)
• FNS(¬x [P(x) . -y (G(y) . T(x,y)) ÷ M(x)]) = ¬x ¬y (÷P(x) v ÷G(y) v ÷T(x,y) v 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)
{ ÷P(x) v ÷G(y) v ÷T(x,y) v M(x), G(b), T(a,b), ÷M(a), P(x) }
El razonamiento es correcto.
c)
• FNS(¬x (P(x) ÷ Q(x))) = ¬x (÷P(x) v Q(x))
• FNS(¬x (R(x) ÷ P(x))) = ¬x (÷R(x) v P(x))
• FNS(÷¬x (Q(x) ÷ R(x))) = Q(a) . ÷R(a)
{ ÷P(x) v Q(x), ÷R(x) v P(x), Q(a), ÷R(a) }
De este conjunto de cláusulas no po-
drá obtenerse la cláusula vacía. La au-
sencia del literal ÷Q descarta las
cláusulas que contienen este predica-
do y reducen el conjunto a { ÷R(x) v
P(x), ÷R(a) }. Las dos cláusulas que han
quedado no se pueden resolver entre
sí. El razonamiento no es correcto.
d)
• FNS(¬x [-y P(x,y) ÷ -z S(x,z)]) =
= ¬x ¬y (÷P(x,y) v S(x,f(x)))
• FNS(-y ¬x P(x,y)) = ¬x P(x,a)
• FNS(÷¬x -z S(x,z)) = ¬z ÷S(b,z)
{ ÷P(x,y) v S(x,f(x)), P(x,a), ÷S(b,z) }
El razonamiento es correcto.
© FUOC • PID_00149519 86 Lógica de predicados
e)
• FNS(-x A(x) ÷ -y B(y)) = ¬x (÷A(x) v B(a))
• FNS(¬x (B(x) ÷ C(x))) = ¬x (÷B(x) v C(x))
• FNS(÷-x C(x)) = ¬x ÷C(x)
• FNS(÷¬x ÷A(x)) = A(b)
{ ÷A(x) v B(a), ÷B(x) v 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) v D(f(x))) . (÷P(x) v T(x,f(x)))]
• FNS(÷-x [P(x) . ¬y ÷(D(y) . T(x,y))]) = ¬x [(÷P(x) v D(g(x))) . (÷P(x) v T(x,g(x))]
{÷D(x), ÷P(x) v D(f(x)), ÷P(x) v T(x,f(x)), ÷P(x) v D(g(x)), ÷P(x) v 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) v ÷C(y) v ÷A(x,y))
• FNS(-x [P(x) . ¬y (M(y) ÷ A(x,y))]) = ¬y [P(a) . (÷M(y) v A(a,y))]
• FNS(÷¬x (C(x) ÷ ÷M(x))) = C(b) . M(b)
{ ÷P(x) v ÷C(y) v ÷A(x,y), P(a), ÷M(y) v A(a,y), C(b), M(b) }
El razonamiento es correcto.
© FUOC • PID_00149519 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) v P(y,x))
• FNS(÷-x ¬y P(x,y)) = ¬x ÷P(x,f(x))
{ P(x,x), ÷P(x,y) v P(y,x), ÷P(x,f(x)) }
El razonamiento no es correcto. Empezando con la cláusula ÷P(x,f(x)), no es posible resol-
ver porque:
• 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) v 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) v 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) v 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))]
• FNS(÷-x [T(x) . -y (C(y) . A(x,y))]) = ¬x ¬y (÷T(x) v ÷C(y) v ÷A(x,y))
• FNS(¬x (F(x) ÷ C(x))) = ¬x (÷F(x) v C(x))
• FNS(÷÷-x [T(x) . -y (F(y) . A(x,y))]) = T(a) . F(b) . A(a,b)
{ ÷T(x) v ÷C(y) v ÷A(x,y), ÷F(x) v C(x), T(a), F(b), A(a,b) }
© FUOC • PID_00149519 88 Lógica de predicados
b) P(x): “x es un paciente”; M(x): “x es un médico”; C(x): “x es curandero”; A(x,y): “x admira
(siente admiración por él) a y”
-x { P(x) . ¬y [M(y) ÷ A(x,y)] }, ÷-x { P(x) . -y [C(y) . A(x,y)] } ÷-x [M(x) . C(x)]
• FNS(-x { P(x) . ¬y [M(y) ÷ A(x,y)] }) = ¬y [P(a) . (÷M(y) v A(a,y))]
• FNS(÷-x { P(x) . -y [C(y) . A(x,y)]) = ¬x ¬y (÷P(x) v ÷C(y) v ÷A(x,y))
• FNS(÷÷-x [M(x) . C(x)]) = M(b) . C(b)
{ P(a), ÷M(y) v A(a,y), ÷P(x) v ÷C(y) v ÷A(x,y), M(b), C(b) }
c) F(x): “x es feliz”; M(x): “A x le gusta la música”; A(x,y): “x es amigo de y”;
a (constante): “Alberto”
¬x (A(x,a) ÷ M(x)) ÷ F(a), ÷F(a) -x (A(x,a) . ÷M(x))
• FNS(¬x (A(x,a) ÷ M(x)) ÷ F(a)) = (A(b,a) v F(a)) . (÷M(b) v F(a))
• FNS(÷F(a)) = ÷F(a)
• FNS(÷-x (A(x,a) . ÷M(x))) = ¬x (÷A(x,a) v M(x))
{ A(b,a) v F(a), ÷M(b) v F(a), ÷F(a), ÷A(x,a) v M(x) }
El razonamiento también podía formalizarse así: F: “Alberto es feliz”; M(x): “A x le gusta
la música”; A(x): “x es amigo de Alberto”.
¬x (A(x) ÷ M(x)) ÷ F, ÷F -x (A(x) . ÷M(x))
© FUOC • PID_00149519 89 Lógica de predicados
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”.
¬x (D(x,32) ÷ D(x,4)),
¬x (D(x,4) ÷ P(x)),
¬x (÷D(x,2) ÷ ÷P(x)),
÷D(73,2)
÷D(73,32)
{ ÷D(x,32) v D(x,4), ÷D(x,4) v P(x), D(x,2) v ÷P(x), ÷D(73,2), D(73,32) }
e) L(x): “x es lingüista”; T(x): “x es traductor”; E(x): “x es escritor”; N(x): “x es una novela”;
M(x): “x es un escrito narrativo”; W(x,y): “x escribe y”
-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)] }
• FNS(-x L(x) ÷ -y T(y)) = ¬x (÷L(x) v T(a))
• FNS(-x T(x) ÷ ¬y { E(y) ÷ -z [N(z) . W(y,z)] }) =
= ¬x ¬y [(÷T(x) v ÷E(y) v N(f(y))) . (÷T(x) v ÷E(y) v W(y,f(y)))]
• FNS(¬x (N(x) ÷ M(x))) = ¬x (÷N(x) v M(x))
• FNS(¬x { N(x) ÷ -y [E(y) . W(y,x)]}) = ¬x [(÷N(x) v E(g(x))) . (÷N(x) v W(g(x),x))]
• FNS(÷¬x {E(x) . L(x) ÷ -y [M(y) . W(x,y)] }) =
= ¬y [E(b) . L(b) . (÷M(y) v ÷W(b,y))]
{ ÷L(x) v T(a), ÷T(x) v ÷E(y) v N(f(y)), ÷T(x) v ÷E(y) v W(y,f(y)), ÷N(x) v M(x),
÷N(x) v E(g(x)), ÷N(x) v W(g(x),x), E(b), L(b), ÷M(y) v ÷W(b,y) }
Véase el árbol de resolución de la página siguiente. Observad que cuando se ha utilizado ÷N(x) v
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) v ÷E(y) v W(y, f(y)) y ÷L(x) v 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.
Aclaración formal
Para mayor claridad, no hemos
permitido no seguir la conven-
ción habitual según la cual las
constantes se deben designar
por letras minúsculas del prin-
cipio del alfabeto latino.
© FUOC • PID_00149519 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.
El conjunto de cláusulas dado no permite llegar a . Empezando con la primera cláusula
de apoyo se llega a ÷A(x,f(x)) y a partir de este punto no se puede continuar. La situación
es exactamente la misma si se empieza con la segunda cláusula de apoyo, porque ésta es
precisamente ÷A(x,f(x)). Si se descartan las cláusulas de apoyo para verificar la posibilidad
de que las premisas del razonamiento sean inconsistentes, se obtiene el conjunto formado
por las dos primeras cláusulas, que no permite llegar a encontrar la cláusula vacía.
© FUOC • PID_00149519 91 Lógica de predicados
b) El problema radica en la forma en que se ha calculado y aplicado la sustitución. La variable
x de ÷B(x,z) no es la misma que la de ÷C(x) v B(a,f(x)). Esto quiere decir que si es necesario
sustituir x por a en ÷B(x,z), esta sustitución no debe aplicarse a la variable x de la otra cláu-
sula. Para enmendar el error sólo hay que recordar que es útil cambiar el nombre de las
variables de las cláusulas troncales para evitar coincidencias con las laterales.
c) Hay dos errores en la resolución: primero, cuando en el segundo paso se ha sustituido
y por c el resultado debería haber sido ÷A(c) v ÷B(c) v ÷F(x,f(x)). Y es que cuando se apli-
ca una sustitución, deben sustituirse todas las ocurrencias de la variable involucrada. Y
segundo, la afirmación de que A(x) no se puede resolver contra ÷A(a) v ÷A(y) es inco-
rrecta. Sólo hay que sustituir x por y o y por x. Siempre hay una solución (de hecho, dos)
para las discrepancias variable/variable.
Un árbol de resolución correcto sería:
© FUOC • PID_00149519 92 Lógica de predicados
d) La última aplicación de la regla de resolución no se ha hecho de forma correcta porque se
ha aplicado simultáneamente a dos literales, cuando sólo se puede aplicar a uno. El resul-
tado de resolver ÷A(b) v B(a) contra A(b) v ÷B(a) es un teorema (que fuerza el replantea-
miento de la última decisión).
De todas formas, el razonamiento es correcto:
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.
© FUOC • PID_00149519 93 Lógica de predicados
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.
Bibliografía
Bibliografía básica
Arenas, L. (1996). Lógica formal para informáticos. Madrid: Díaz de Santos.
Bibliografía complementaria
Deaño, A. (1993). Introducción a la lógica formal (ed. original 1974). Madrid: Alianza Editorial
(Alianza Universidad Textos, 11).
Garrido, M. (1995). Lógica simbólica (ed. original 1974). Madrid: Tecnos.
Sancho, J. (1990). Lógica matemática y computabilidad. Madrid: Díaz de Santos.
Suppes, P.; Hill, S. (1986). Introducción a la lógica matemática. Barcelona: Reverté.

 FUOC • PID_00149519

Lógica de predicados

Índice

Introducción ............................................................................................ Objetivos ................................................................................................... 1. La lógica de predicados y su lenguaje .......................................... 1.1. La capacidad expresiva del lenguaje de enunciados es limitada ....................................................................................... 1.2. El lenguaje de la lógica de predicados ............................................ 1.2.1. Predicados, variables y constantes ...................................... 1.2.2. Cuantificadores ...................................................................

5 6 7 7 7 7 9

1.2.3. Fórmulas ............................................................................. 10 1.2.4. Ámbito de los cuantificadores ............................................. 11 1.2.5. El significado de los cuantificadores ................................... 12 1.3. La formalización ............................................................................. 12 1.3.1. Cómo formalizar ................................................................. 12 1.3.2. Formalización de frases con significado existencial o universal ........................................................................... 15 1.3.3. Formalización de frases complejas ...................................... 18 2. La deducción natural ....................................................................... 24 2.1. Reglas .............................................................................................. 24 2.1.1. Eliminación e introducción de cuantificadores .................. 24 2.1.2. Restricciones adicionales ..................................................... 29 2.2. Ejemplos ......................................................................................... 31 2.3. Reglas derivadas y equivalencias deductivas .................................. 32 3. Verdad y falsedad en la lógica de predicados ............................ 34 3.1. El concepto de interpretación en la lógica de predicados .............. 34 3.2. Paso de fórmulas a enunciados ...................................................... 35 3.3. Refutación de razonamientos ......................................................... 37 4. Formas normales ............................................................................... 40 4.1. Forma normal de Skolem ............................................................... 40 4.2. Eliminación de cuantificadores existenciales: eskolemización ...... 41 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

................ La lógica de predicados “implementada”: Prolog ........... 63 Ejercicios de autoevaluación ........ 65 Solucionario .......................3.2........................................... Prolog implementa el método de resolución .................... La validación de razonamientos entra en juego: consultas ..................................................... Automatización del cálculo de sustituciones: el algoritmo de unificación ..4..................................................................... 57 6...........2.. 54 6......................................................... 54 6.............. 71 Glosario ....................................................................... 50 6.....2.................2.............. Elementos básicos: cláusulas y reglas .......................2....................................... 92 Bibliografía .................... 59 Resumen ......................................................... 54 6........................1.................. 93 .................. ¿Qué es la programación lógica? .................................... FUOC • PID_00149519 Lógica de predicados 5............................................. 54 6.......1........................... La programación lógica .......................................

pero también tiene un precio: es excesivamente simple para poder ser una verdadera herramienta de trabajo. calcular formas normales y. de las tablas de verdad y del método de resolución. porque una vez adentrados en el mundo de la lógica. Veréis que muchos de los aspectos de los que tratará no os son nada ajenos: habrá que validar razonamientos. por supuesto. es el momento de tratar más profundamente este ámbito y estudiar la lógica de predicados. estudiar el método que permite mecanizar la tarea de validación: la resolución. Observaréis que este módulo tiene un paralelismo estrecho con el anterior. pero el lenguaje es más expresivo. más potente. entended e intentad rehacer los muchos ejemplos que encontraréis. No hay que preocuparse. refutarlos buscando contraejemplos. Su simplicidad tiene una recompensa: es un vehículo ideal para transmitir los conceptos básicos sobre los cuales se construye el edificio de esta disciplina. es decir. FUOC • PID_00149519 5 Lógica de predicados Introducción Todo sistema formal tiene sus limitaciones. Y esto es así porque el objetivo es el mismo –formalizar y validar razonamientos–. . Con este lenguaje aprenderéis a formalizar razonamientos que estaban fueran del modesto alcance del lenguaje de enunciados. Repetimos el mismo consejo que os dimos en el módulo didáctico anterior: leed. El incremento de expresividad comporta la necesidad de adaptar las herramientas conocidas. En este módulo didáctico entraréis en el mundo de la lógica de predicados y conoceréis el lenguaje que le es propio: el lenguaje de las fórmulas. La lógica de enunciados no es una excepción. Al final. veréis uno de los puntos donde la lógica y la informática confluyen. de la deducción natural y sus reglas. utilizando una versión ampliada de la deducción natural conocida. la programación lógica y su lenguaje por excelencia: Prolog. por medio de los enunciados y de su lenguaje.

en concreto. Darse cuenta de la limitación expresiva del lenguaje de enunciados y del incremento en expresividad que aporta el lenguaje de fórmulas. Conocer las reglas de inferencia de la deducción natural que manipulan cuantificadores. Apoyar la comprensión de los cuantificadores y de su papel en el conocimiento de estas reglas. . los objetivos que se enumeran a continuación: 1. 3. 6. después del estudio y la asimilación. 4. Conocer el método de resolución y aplicarlo con desenvoltura para validar razonamientos expresados en el lenguaje de fórmulas. Saber expresar en el lenguaje de la lógica de predicados aquellos razonamientos expresados en lenguaje natural que son susceptibles de ser formalizados. FUOC • PID_00149519 6 Lógica de predicados Objetivos En los materiales didácticos facilitados en este módulo encontraréis las herramientas necesarias para conseguir. de la mecanización del método de resolución en el mundo de la informática: la programación lógica. y darse cuenta tanto de sus posibilidades como de sus limitaciones. la razón por la cual un razonamiento no es formalmente correcto. 5. Poder dar contraejemplos que expliquen. 2. Tener un primer contacto con una de las aplicaciones de la lógica de predicados y. Manipular algebraicamente las fórmulas para expresarlas en la forma normal de Skolem. 7. aunque de una manera limitada.

Este hecho tiene como consecuencia que un gran número de razonamientos que se pueden expresar utilizando el lenguaje natural no se puedan validar utilizando las herramientas de la lógica de enunciados. 1. Predicados.1. La lógica de enunciados se debe entender. Juan es una persona.2. R  S.2.1. La lógica de predicados es una ampliación de la lógica de enunciados que cuenta con un lenguaje formal más rico (más expresivo) y con un conjunto de reglas que permiten validar razonamientos expresados utilizando este lenguaje. tampoco permite validar el razonamiento. • Otra formalización (que también se puede considerar correcta) es: si asignamos P a “ser estudiante”. entonces observamos que: P  Q. Imaginemos el razonamiento (correcto) siguiente: “Los estudiantes son personas. . Un predicado es una aplicación definida en un dominio que adquiere valores en el conjunto de enunciados. Ejemplo de las limitaciones de la lógica de enunciados A continuación presentamos un ejemplo bastante revelador de las carencias de la lógica de enunciados y de su lenguaje. no permite validar el razonamiento. Q a “ser persona”. R a “Juan es un estudiante” y S a “Juan es una persona”. El lenguaje de la lógica de predicados 1. como un subconjunto de la lógica de predicados. Q a “Juan es un estudiante” y R a “Juan es una persona”. Formalmente se expresa de la manera siguiente: P(x): D  enunciados. La lógica de predicados y su lenguaje 1. variables y constantes Informalmente. un predicado es un enunciado parametrizado (con variables). FUOC • PID_00149519 7 Lógica de predicados 1. Así pues. Juan es un estudiante.” • La formalización (correcta) sería la siguiente: si asignamos P a “los estudiantes son personas”. entonces tenemos que: P. Q  R. a partir de este momento. La capacidad expresiva del lenguaje de enunciados es limitada La capacidad expresiva del lenguaje de enunciados es bastante limitada: no cualquier frase declarativa simple se puede formalizar convenientemente.

z): “x saluda a y en la calle z”.z): “La suma de x y de y es z”. Así.y): “x come y”.y): “El cuadrado de x es y”.y. Un predicado puede tener cualquier número (n  0) de variables. Notad que el predicado P(x) no es un enunciado. preferentemente representados por letras minúsculas del mismo alfabeto a partir de x. 2) Los predicados con n  1 variables se denominan propiedades o predicados unarios. entonces P(Juan) sí es un enunciado (y se corresponde con “Juan es un estudiante”). Si el dominio de x es el conjunto de las personas. los predicados se clasifican de la manera siguiente: 1) Los predicados con n  0 variables son los enunciados. relación cuaternaria. Ejemplos de predicados con diferente número de variables a) Ejemplos de propiedades o predicados unarios: • P(x): “x es una persona”. con los parámetros. f(3)  10 sí que es un número real. . entre paréntesis y separados por comas. etc. • Q(x): “x es de color rojo”. uno con cuatro. 3) Los predicados con n  2 variables se denominan relaciones o predicados binarios. Así lo haremos a partir de este momento: Ejemplo La función f(x)  x2  1. • S(x. el predicado P(x) podría ser la formalización de “x es un estudiante”. sino de variables. 4) A partir de n  3 no existen nombres específicos. P(x) se puede convertir en un enunciado sustituyendo la variable x (el parámetro) por algún elemento de su dominio. • Q(x. Un predicado con tres variables se puede denominar relación ternaria. Por regla general. FUOC • PID_00149519 8 Lógica de predicados Representaremos un predicado utilizando una letra mayúscula del alfabeto latino. b)Ejemplos de relaciones o predicados binarios: • P(x. no se habla de parámetros. no es un número. f(x) puede convertirse en un número real sustituyendo x por algún elemento de su dominio. con x en el dominio de los números reales. c) Ejemplos de relaciones ternarias: • R(x.y. Por ejemplo. Según este número. Sin embargo.

tienen prioridad máxima y afectan a las variables. ninguna variable puede ser sustituida por ningún predicado. 2) Los predicados no pueden ser elementos de ningún dominio.y. Se eligen. entonces éste se convierte en un enunciado. a partir de la letra a. Son unarios..b. diferente de ).y.. Cuantificadores Recordad que las conectivas se tratan en el subapartado 1. respectivamente.z) y P(x.. Los dos operadores específicos del lenguaje de la lógica de predicados se corresponden. Las constantes se representan mediante letras minúsculas del alfabeto latino.2. aproximadamente. Cuando todas las variables de un predicado son sustituidas por constantes. c) P(a... Así pues.a./todas las.’. Las variables y las constantes se denominan términos cuando la distinción no es importante. Una constante es la representación de un elemento de un dominio.2.3 del módulo “Lógica de enunciados”. b) P(a.. para evitar confusiones con las letras que representan las variables. . con aquellas construcciones del lenguaje natural que tienen un significado de ‘todos los. del lenguaje de enunciados. Se representan con los símbolos  y .’y de ‘algún o algunos/alguna o algunas.e.z) es un predicado. En referencia al dominio de una variable. respectivamente.c) y P(a. ya conocidas.a) son una relación y una propiedad. preferentemente. Así: a) P(x. Los cuantificadores son los dos operadores que el lenguaje de la lógica de predicados añade a las conectivas. FUOC • PID_00149519 9 Lógica de predicados El dominio de una variable es todo el conjunto de objetos que la pueden sustituir. debéis tener presentes los siguientes aspectos: 1) Todo dominio se supone no vacío (es decir.d) son enunciados. 1. pero no un enunciado.

.. entonces (x A) y (x A) también son fórmulas. FUOC • PID_00149519 10 Lógica de predicados A continuación.. 3) Si A es una fórmula y x es una variable. . hay un. . los símbolos de constantes. .     a partir de los elementos básicos: 1) Si P es un símbolo de predicado y t1. etc. z.tn) es una fórmula. Q.. no hay ninguna otra fórmula. etc.            Términos Cons tan tes Variables Las reglas siguientes definen cómo hay que construir fórmulas correctamente     . Estas fórmulas también se denominan átomos o fórmulas atómicas. 4) A excepción de los casos expuestos anteriormente. entonces P(t1. Fórmulas El lenguaje de la lógica de predicados se denomina lenguaje de fórmulas.. Alfabeto  = . ‘(para) todo’ todas las. c. entonces (A). los símbolos de variables y los paréntesis de apertura y de cierre..).3.. P. a.2.   Ejemplos con cuantificadores Si P(x) quiere decir “x es un estudiante”.. ... entonces: • x P(x) significa ‘hay estudiantes’. ‘algunos son estudiantes’.. . ‘existe (alguno)’ existe un. .. b. los dos cuantificadores. los símbolos de predicados. ‘existen estudiantes’.... 2) Si B y A son fórmulas. cada.. 1.. algún o algunos. (A  B). .. tn (n  0) son símbolos de términos. x.. ‘alguno es un estudiante’.. . R.. (A  B) y (A  B) también son fórmulas. y.. presentamos la tabla resumen de los cuantificadores: Cuantificadores Símbolo Nombre Cuantificador universal Cuantificador existencial Significado Correspondencia (aproximadamente) todos los... (. Este lenguaje utiliza como alfabeto las cuatro conectivas del lenguaje de enunciados.. • x P(x) significa ‘todos son estudiantes’. ‘todo el mundo es estudiante’.

fórmulas abiertas. que es máxima (por encima de ).4.2. x)*. Variable libre Variables libres Variables ligadas Variables libres Cuando dos variables están designadas por el mismo símbolo (misma letra) decimos que: 1) Son la misma variable si están bajo el alcance del mismo cuantificador. Ejemplo de variables libres y de variables ligadas Mostramos un ejemplo de variables libres y de variables que están bajo la influencia de algún cuantificador: * Notad que la parentización tiene efectos sobre el ámbito de los cuantificadores. Las variables que están afectadas por la acción de algún cuantificador se denominan variables ligadas. En algunos casos. Observad las convenciones utilizadas para construir enunciados en el subapartado 1. es decir. Las no afectadas por ningún cuantificador se denominan variables libres. utilizaremos los corchetes ‘[’ y ‘]’ y las llaves ‘{’ y ‘}’. En el lenguaje de fórmulas se utilizan las mismas convenciones que en el lenguaje de enunciados para hacer la notación menos pesada. o si las dos son libres. FUOC • PID_00149519 11 Lógica de predicados Observad a partir del alfabeto y de las reglas de construcción que el lenguaje de enunciados es un subconjunto del lenguaje de fórmulas. z)  y R(x. y para mejorar la legibilidad. del módulo “Lógica de enunciados”. . o si una es libre y la otra no. Los cuantificadores tienen la misma prioridad. Las que tienen alguna variable libre.4. y)]  Q(z. x [P(x)  x Q(x. Ámbito de los cuantificadores Se denomina ámbito de un cuantificador a aquella zona de una fórmula que está dentro de su campo de acción. 2) Son variables diferentes si están bajo el alcance de cuantificadores distintos. Las fórmulas sin ninguna variable libre se denominan fórmulas cerradas. bajo sus efectos. 1.

x). más que nada. • La fórmula x P(x) se puede entender como P(1)  P(2)  P(3)  P(4). el ejemplo que acabamos de ver también se podría haber escrito de la manera siguiente: u [P(u)  t Q(t. Incluso en el caso de dominios de cardinalidad finita.3. z)  y R(x.3. 1.z)  y R(u. 4 }. la fórmula es un enunciado. Así. Ejemplo de sustitución de cuantificadores por conectivas Si el dominio de la variable x es el conjunto {1. La formalización 1. y)]  Q(z.5. El significado de los cuantificadores Cuando todas las variables que aparecen en una fórmula están cuantificadas. 3. 1. Los cuantificadores representan la sustitución de las variables cuantificadas por elementos del dominio.y)]  Q(z. Cuando el dominio de las variables es finito.2. y la cuantificación existencial como una forma abreviada de la disyunción.1. 2. las sustituciones de las variables por todas las constantes no se llevan nunca a la práctica. Misma variable Variables diferentes Evitad confusiones innecesarias dando nombres diferentes a variables diferentes. x). se puede entender la cuantificación universal como una forma abreviada de la conjunción. Cómo formalizar La formalización de frases y/o de razonamientos en el lenguaje de la lógica de predicados es una actividad parecida a la que se hace cuando se utiliza el lenguaje de la lógica de enunciados. Se trata. de una forma de entender el significado de los cuantificadores. . Si el dominio tiene cardinalidad infinita. entonces: • La fórmula x P(x) se puede entender como P(1)  P(2)  P(3)  P(4). estas sustituciones no se pueden hacer. FUOC • PID_00149519 12 Lógica de predicados Exponemos algunos ejemplos de variables diferentes y de variables que son la misma en el gráfico siguiente: x [P(x)  x Q(x.

4) Formalizar cada frase simple en términos de los predicados atómicos y las constantes identificadas en los dos puntos anteriores. A continuación proponemos algunos ejemplos de formalización. puede decirse que el dominio es un conjunto cualquiera no vacío. de cosas apreciadas por sus propiedades curativas y de cosas caras. decir que el dominio es un conjunto cualquiera no vacío es lo mismo que decir que cualquier objeto imaginable pertenece o puede pertenecer al dominio. los pasos que habrá que seguir son los siguientes: 1) Determinar el dominio. pues: x (B(x)  S(x)). Los predicados serán unos u otros según cuál sea el dominio. Se entenderá por dominio el conjunto de todos los objetos de los cuales se hablará. pero no os preocupéis. ¡seguro que no es correcta! Ejemplo 1 “Las setas son apreciadas por su sabor. La formalización del razonamiento sería. Quizá de momento os costará un poco entender las formalizaciones. Así pues. de cosas apreciadas por su sabor. de níscalos. P(x): “x es apreciado por sus propiedades curativas”. Todo lo que es apreciado por su sabor o por sus propiedades curativas es caro. ya las entenderéis más adelante. 2) Determinar los predicados atómicos. C(x): “x es caro”. Los níscalos son setas. Se asignan los significados siguientes a predicados atómicos: B(x): “x es una seta”. FUOC • PID_00149519 13 Lógica de predicados De manera general. los níscalos son caros. x (R(x)  B(x))  x (R(x)  C(x)) Prestad atención a la elección del dominio y la elección de predicados atómicos en estos ejemplos. En este caso. A cada uno le corresponderá una constante.” Como dominio para formalizar este razonamiento se considerará un conjunto no vacío cualquiera. . x (S(x)  P(x)  C(x)). Lo máximo que podríamos precisar sería algo como por ejemplo “el conjunto de todas estas cosas”). Cuando no es fácil responder a esta pregunta o el dominio no admite una definición simple. El resultado debe ser una fórmula sin variables libres para cada frase. porque la pregunta “¿de qué se habla?” no puede responderse de manera precisa (se habla de setas. R(x): “x es un níscalo”. habrá que responder a la pregunta “¿de qué se habla?”. Para decidir la cuantificación adecuada para cada fórmula se prestará atención al sentido general (cuantificación universal: ) o particular (cuantificador existencial: ) de la frase. Para determinar el dominio. ¡Atención! El dominio A efectos prácticos. habrá que preguntarse: • ¿Qué subconjuntos se consideran dentro del dominio (que no se quiera o no sea necesario definir en término de subconjuntos más simples)? • ¿Qué se dice de los objetos del dominio? ¿Cuáles son sus propiedades? ¿Cómo se relacionan entre sí? 3) Determinar si hay elementos concretos del dominio que son identificables del resto. S(x): “x es apreciado por su sabor”. Fórmulas con variables libres Si una fórmula que formaliza una frase contiene variables libres.

que contiene un elemento singular (Relámpago). x (H(x)  A(x))  x (H(x)  A(x)) Observad que la primera premisa es la conjunción de dos fórmulas cuantificadas. Como predicados atómicos se utilizarán: H(x): “x es honrado y A(x): “x es sensato”. pero rinde por debajo de sus posibilidades. T(a)  R(a)  D(a) . dado que el dominio sólo contiene personas. A(x): “x es sensato”. Asignaremos los significados a los predicados atómicos siguientes: T(x): “x está triste”. La formalización del razonamiento es: x H(x)  y A(y). por lo cual podemos decidir que el dominio será un conjunto de personas no vacío (o el conjunto de todas las personas). R(x): “x rinde por debajo de sus posibilidades”. a: “Relámpago”. entonces se habría podido hacer la siguiente asignación de significado a predicados atómicos: P(x): “x es una persona”. FUOC • PID_00149519 14 Lógica de predicados Ejemplo 2 “Hay personas honradas y hay personas sensatas. consideraremos un conjunto cualquiera no vacío. Hay quienes no están tristes y que tienen dificultades. x (T(x)  D(x)).” Como dominio. Relámpago no está triste. Para designar a Relámpago se utilizará una constante. y la formalización sería: x (P(x)  H(x))  y (P(y)  A(y)).” En este razonamiento sólo se hace referencia a personas. Observad que. Lo que hace que sea singular es que nos referimos a él por el nombre. 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. Si el dominio elegido hubiese sido un conjunto no vacío cualquiera. esto es exactamente lo mismo que H(x): “x es una persona honrada” y A(x): “x es una persona sensata”. Las personas honradas siempre son sensatas. Entonces es que Relámpago tiene dificultades. Podemos concluir que hay personas que son honradas y sensatas. La formalización del razonamiento será: x (T(x)  R(x)). H(x): “x es honrado”. D(x): “x tiene dificultades”.

“los. “algunos.. Las frases con sentido existencial se formalizan según el patrón siguiente: Observación Observad que en la formalización de una frase con sentido existencial. Formalización de frases con significado existencial o universal Las frases de la forma “hay . esto significa que se refieren a todos los elementos de un subconjunto del dominio.. “hay quien. quiere decir que se refieren a algunos elementos de un subconjunto del dominio.2. 2) ¿Qué se dice de este subconjunto del dominio? ¿Qué propiedad o propiedades tienen sus elementos? Denominaremos a esto propiedades de la selección. “todo el mundo que.. Esto. lo hacen con una implicación. es útil hacerse las preguntas siguientes: 1) ¿A qué subconjunto del dominio se hace referencia? Este subconjunto se denominará selección. mientras que si el sentido es universal. en el contexto de la lógica de predicados.”. C(x): “El mantenimiento de x es complicado”.”. las dos partes –selección y propiedades de ésta– se unen con una conjunción..3.” tienen un sentido universal. En el contexto de la lógica de predicados. formalizamos las frases “Algunos programas antiguos tienen un valor considerable pero su mantenimiento es complicado” y “Todos los programas antiguos tienen un valor considerable pero su mantenimiento es complicado” obtendremos.”... V(x): “x tiene un valor considerable”.     Selección Propiedades de la selección Propiedades de la selección . Las frases de la forma “todos los. FUOC • PID_00149519 15 Lógica de predicados 1.” tienen un sentido existencial.. respectivamente: x (P(x)  A(x)  V(x)  C(x)) x (P(x)  A(x)  V(x)  C(x)) Selección A continuación presentamos algunos ejemplos de formalización. x (Selección(x)  Propiedades_de_la_selección(x)) Asimismo. frases con sentido universal se formalizan según el patrón siguiente: x (Selección(x)  Propiedades_de_la_selección(x)) Si con P(x): “x es un programa”.....”. Para formalizar frases con cualquiera de estos dos significados.. A(x): “x es antiguo”.

V(x): “x es viejo”. • Propiedades de la selección: los elementos seleccionados no funcionan correctamente y no se pueden mantener: x (O(x)  (V(x)  A(x))  F(x)  M(x)) . “F(x): “x funciona correctamente”. • Propiedades de la selección: de los elementos seleccionados (algunos). • Selección: elementos del dominio que son al mismo tiempo “directivos” e “importantes”. C(x): “x lleva corbata”: • Sentido: universal. • Propiedades de la selección: los elementos seleccionados llevan corbata: x (D(x)  I(x)  C(x)) Ejemplo 3 Formalizar “Los ordenadores viejos y los que no han sido actualizados. • Selección: elementos del dominio que son ordenadores viejos o que son ordenadores que no han sido actualizados. S(x): “x satisface al usuario”: • Sentido: existencial. I(x): “x es importante”. FUOC • PID_00149519 16 Lógica de predicados Ejemplo 1 Formalizar la frase “Hay programas correctos que no satisfacen al usuario” con las asignaciones P(x): “x es un programa”. dice que no satisfacen al usuario: x (P(x)  C(x)  S(x)) Ejemplo 2 Formalizar la frase “Todos los directivos importantes llevan corbata” con D(x): “x es un directivo”. A(x): “x ha sido actualizado”. ni funcionan correctamente ni se pueden mantener” con O(x): “x es un ordenador”. • Selección: la frase hace referencia a aquellos elementos del dominio que son simultáneamente “programas” y “correctos”. M(x): x puede mantenerse”: • Sentido: universal. C(x): “x es correcto”.

• Propiedades de la selección: todos los elementos seleccionados (todo el dominio) son grises y de aspecto descuidado. FUOC • PID_00149519 17 Lógica de predicados Ejemplo 4 Formalizamos la frase “Algunos navegantes se marean cuando se acercan a puerto” con N(x): “x es un navegante”. • Propiedades de la selección: los elementos seleccionados (algunos) se marean cuando se acercan a puerto: x ( N  x   ( P  x   M  x  ))    Selección Propiedades de la selección Ejemplo 5 Formalizamos “Todo es gris y de aspecto descuidado” con G(x): “x es gris” y D(x): “x tiene el aspecto descuidado”: • Sentido: universal. x V  x  Observación Como muestran los dos últimos ejemplos. “Hay quienes vuelan”. hay quienes vuelan. la parte de selección de la fórmula no estará. • Selección: elementos del dominio que son navegantes. es posible hacer referencia al dominio en su totalidad. Propiedades de la selección                  . • Propiedades de la selección: de entre los elementos seleccionados (todo el dominio). • Selección: todo el dominio (no se concreta de qué se habla). • Selección: todo el dominio (no se concreta de qué se habla). con la asignación V(x): “x vuela”: • Sentido: existencial. x ( G  x   D  x  ) Propiedades de la selección Ejemplo 6 Formalizamos la proposición siguiente. P(x): “x se acerca a puerto”. M(x): “x se marea”: • Sentido: existencial. En este caso.

A(x. • Propiedades de la selección: los elementos del subconjunto rinden por encima de la media. Esquemáticamente la formalización será: x (P(x)  “x tiene asignado un despacho”  R(x)) Ahora queda por resolver el problema de formalizar la frase “x tiene asignado un despacho”. No es equivalente a la anterior. • x (P(x)  C(x)): “Hay algo que. de manera parecida a como se hace en la formalización al lenguaje de la lógica de enunciados. No se afirma la existencia de nada que sea un programa ni de nada que sea caro. No es equivalente a la anterior. sería caro”. Sin embargo. para formalizar con el lenguaje de la lógica de predicados es conveniente reducir un problema complejo a una colección de problemas más simples. FUOC • PID_00149519 18 Lógica de predicados Matices de significado Observad el significado de las fórmulas siguientes (P(x): “x es un programa”.y): “x tiene y asignado” (“y está asignado a x”). si fuese un programa. Se afirma la existencia de. Es equivalente a x P(x)  x C(x). C(x): “x es caro”): • x (P(x)  C(x)): “Los programas (todos. • x (P(x)  C(x)): “Hay programas caros”. • Selección: subconjunto de los programadores que tienen asignado un despacho. de modo que no se afirma la existencia de ningún programa caro. 1. el programa y lo que es caro no tienen por qué ser la misma cosa. • x P(x)  x C(x): “Hay un programa y hay algo que es caro”. Los ejemplos siguientes os ayudarán a verlo. • x (P(x)  C(x)): “Todo son programas y todo es caro (todo son programas caros)”. Formalización de frases complejas Con frecuencia. como mínimo. • Sentido: universal. R(x): “x rinde por encima de la media”. se procederá como hasta ahora: preguntarse . D(x): “x es un despacho”. en general) son caros”. No es equivalente a ninguna de las dos anteriores.3. Ejemplo 1 Formalizar “Los programadores que tienen asignado un despacho rinden por encima de la media” con P(x): “x es un programador”. No se afirma la existencia de nada que sea un programa. Para formalizarla.3. Un buen ejemplo son aquellas frases que requieren el uso de más de un cuantificador para su formalización. Se afirma que en el dominio no hay otra cosa que programas caros. ni de nada que sea caro. un programa caro.

porque x ya está cuantificado) y obtenemos: y (R(y)  C(x. 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. • Sentido: existencial. • Sentido: existencial.y))  R(x)) Ejemplo 2 Formalizar “Hay excursionistas que conocen todas las rutas y que no han paseado por ningún bosque umbrío” con E(x): “x es un excursionista”. • Selección: subconjunto de despachos. La negación de esta fórmula es: z (B(z)  P(x. De esta última frase. • Propiedades de la selección: los elementos de la selección (algunos) están asignados a x.y): “x conoce y”. C(x. P(x. Finalmente. FUOC • PID_00149519 19 Lógica de predicados si su sentido es universal o existencial. la formalización de toda la frase es: x (P(x)  y (D(y)  A(x.y): “x pasea (ha paseado) por y”. La frase “x no ha paseado por ningún bosque umbrío” se formalizará como la negación de la frase “x ha paseado por algún bosque umbrío”. • Selección: subconjunto de los excursionistas. leeremos la frase como “hay un despacho que está asignado a x”. La formalización será: y (D(y)  A(x.y)). • Propiedades de la selección: los elementos de la selección (algunos) conocen todas las rutas y nunca han paseado por ningún bosque umbrío. preguntarse de qué habla (selección) y preguntarse qué afirma de aquello de lo que habla (propiedades de la selección). B(x): “x es un bosque umbrío”.z)) . hacemos la lectura “hay algún bosque umbrío por el cual x ha paseado” y obtenemos la formalización z (B(z)  P(x.y)). Dado que la respuesta a la pregunta “¿de qué habla la frase?” no puede ser “habla de x” (porque x ya está afectado por un cuantificador).z)). Esquemáticamente: x (E(x)  “x conoce todas las rutas”   “x no ha paseado por ningún bosque umbrío”) Para formalizar “x conoce todas las rutas”. R(x): “x es una ruta”.

y))).y)). .y): “x respeta a y”. R(x. • Propiedades de la selección: los elementos seleccionados respectan las señales. los agentes sólo sancionan a los infractores reincidentes” con C(x): “x es un conductor novel”. De este modo. S(x): “x es una señal”. I(x): “x es un infractor reincidente”. Esquemáticamente: x (C(x)  ”Las señales son respetadas por x”). • Selección: subconjunto de los conductores noveles. Globalmente. los agentes en general). A(x): “x es un agente”. la formalización de toda la frase es: x [E(x)  y (R(y)  C(x. La frase “Las señales son respetadas por x” tiene sentido universal (todas las señales. 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. FUOC • PID_00149519 20 Lógica de predicados Finalmente.y): “x sanciona a y”. la frase expresa una condición suficiente porque: • “Todos los conductores noveles respetan las señales” es la condición suficiente para: • “Los agentes sólo sancionan a los infractores reincidentes” En lo que respecta a la formalización de “Todos los conductores noveles respetan las señales”: • Sentido: universal.y))  z (B(z)  P(x.z))] Ejemplo 3 Formalizar “Cuando todos los conductores noveles respetan las señales. la formalización del antecedente de la implicación es: x (C(x)  y (S(y)  R(x. Esquemáticamente: x (A(x)  ”x sólo sanciona a infractores reincidentes”). F(x. En lo que respecta a la formalización de la frase “Los agentes sólo sancionan a los infractores reincidentes”: • Sentido: universal (todos los agentes. las señales en general).

Ejemplo 4 Formalizamos “No hay ninguna persona que no conozca algún lugar habitado por mamíferos” con P(x): “x es una persona”. • Propiedades de la selección: los (algunos) elementos de la selección no conocen ningún lugar habitado por mamíferos. De este modo.y))]. que equivale a y (F(x. I(x): “x es un lugar”.y): “x habita y (y es habitado por x)”. Esquemáticamente: x (P(x)  ”x no conoce ningún lugar habitado por mamíferos”). H(x. que podemos leer como “Hay lugares habitados por mamíferos que son conocidos por x”. FUOC • PID_00149519 21 Lógica de predicados La frase “x sólo sanciona a infractores reincidentes” expresa una condición necesaria porque: – “Ser un infractor reincidente” es necesario para: – “Ser sancionado por x”. C(x. • Sentido: existencial. La frase que se quiere formalizar es la negación de “Hay personas que no conocen ningún lugar habitado por mamíferos”. . Y la formalización de toda la frase es: x [C(x)  y (S(y)  R(x.y): “x conoce y”. • Propiedades: los elementos de la selección (algunos) son conocidos por x. La frase “x no conoce ningún lugar habitado por mamíferos” es la negación de “x conoce algún lugar habitado por mamíferos”.y)).y)  I(y)). Para esta frase encontramos lo siguiente. La lectura “Todo lo que no es un infractor reincidente no es sancionado por x” nos lleva a la formalización: y (I(y)  F(x.y))]  x [A(x)  y (I(y)  F(x. la formalización resultante es: x (A(x)  y (I(y)  F(x.y))). • Selección: el subconjunto de los lugares habitados por mamíferos. Para esta última frase: • Sentido: existencial. M(x): “x es un mamífero”. • Selección: subconjunto de las personas.

En lo que respecta a la formalización de “Hay un inversor que tiene todas las acciones emitidas por compañías solventes”. ningún inversor compraría bonos emitidos por estados en vías de desarrollo” con I(x): “x es un inversor”. Finalmente.y))  C(x. E(x.y))  C(x.y)) La frase “y es habitado por mamíferos” se formaliza como “Hay mamíferos que habitan y”: z (M(z)  H(z.. S(x): “x es una compañía solvente”. la formalización de la frase “x no conoce ..y): “x tiene y” (“x es el propietario de y”).y): “x emite y” (“y es emitido por x”). • Propiedades de la selección: los elementos de la selección son propiedad de x. la formalización de “No hay ninguna persona . D(x): “x es un estado en vías de desarrollo”. la frase expresa una condición necesaria porque: • “Hay un inversor que tiene todas las acciones emitidas por compañías solventes” es necesario para: • “Ningún inversor compra bonos emitidos por estados en vías de desarrollo”. B(x): “x es un bono”.y)] Con esto. C(x. esquemáticamente es: x (I(x)  “Todas las acciones emitidas por compañías solventes son de x”) Respecto a la formalización de “Todas las acciones emitidas por compañías solventes son de x”: • Sentido: universal. T(x.y): “x compra y”. • Selección: acciones emitidas por compañías solventes.y)]} Ejemplo 5 Formalizamos “Sólo si hubiese un inversor que tuviera todas las acciones emitidas por compañías solventes. A(x): “x es una acción”.” será: x {P(x)  y [I(y)  z (M(z)  H(z.y)). FUOC • PID_00149519 22 Lógica de predicados Esquemáticamente: y (I(y)  ”y es habitado por mamíferos” C(x. Esquemáticamente: y (A(y)  “y ha sido emitida por una compañía solvente”  T(x..” será: y [I(y)  z (M(z)  H(z.y)) .. Globalmente.

y))  C(x. Esta formalización es: y (B(y)  z(D(z)  E(z.y)] } En lo que respecta a la formalización de “Ningún inversor compra bonos emitidos por estados en vías de desarrollo”.y))  T(x.y)] } . su formalización es la negación de la de “Algún inversor compra bonos emitidos por estados en vías de desarrollo”.y)] }   x { I(x)  y [A(y)  z(S(z)  E(z.y)] } Y con esto.” es: x { I(x)  y [A(y)  z (S(z)  E(z. la formalización de toda la frase que expresa una condición necesaria es: x { I(x)  y [B(y)  z (D(z)  E(z..y)).y))  T(x.y)) La formalización de toda la frase “Ningún inversor compra bonos emitidos por estados en vías de desarrollo” es: x { I(x)  y [B(y)  z (D(z)  E(z. esquemáticamente es: x (I(x)  “x compra bonos emitidos por estados en vías de desarrollo”) La formalización de “x compra bonos emitidos por estados en vías de desarrollo” es la de “Hay bonos emitidos por estados en vías de desarrollo que son comprados por x”. La formalización de toda la frase “Hay un inversor..y))  C(x.y))  C(x. FUOC • PID_00149519 23 Lógica de predicados La formalización de “y ha sido emitida por una compañía solvente” es la de “Una compañía solvente ha emitido y”: z (S(z)  E(z. Respecto a la formalización de “Algún inversor compra bonos emitidos por estados en vías de desarrollo”.

Ejemplo de utilización correcta de la regla E Como ejemplo de utilización correcta de esta regla. Juan es agradable. Si se quiere decir de un elemento conocido o de un elemento al que se da un nombre. A(u)). La deducción natural 2. Si se quiere decir de un elemento cualquiera sin precisar más. FUOC • PID_00149519 24 Lógica de predicados 2. Reglas La deducción natural de la lógica de predicados mantiene las nueve reglas de la lógica de enunciados y añade cuatro más: dos para cada cuantificador. 2. una para eliminarlo y una para introducirlo.1. Luego. A(x): “x es agradable”. donde t es un término cualquiera). Juan es isleño.1. El razonamiento se formaliza: x (I(x)  A(x)). La regla E puede ser entendida de la manera siguiente: si algo (A) puede decirse de todo el dominio (x A(x)). sustituiremos la variable cuantificada universalmente por la constante que designa este elemento (por ejemplo. entonces puede decirse de cualquiera de sus elementos (A(t). A(b)). la variable cuantificada puede ser sustituida por cualquier término y el cuantificador se puede eliminar: x A  x  ----------------------At Donde t es un término cualquiera (una constante o una variable. se validará el razonamiento: “Los isleños son agradables. Eliminación e introducción de cuantificadores a) Regla 10: eliminación del cuantificador universal (E) Cuando una fórmula está cuantificada universalmente.” Se hace la siguiente asignación de significados a predicados atómicos: I(x): “x es isleño”. la sustituiremos por una variable cualquiera (por ejemplo.1. Recordad que las nueve reglas de la deducción natural para enunciados se explican en el apartado 2 del módulo “Lógica de enunciados” de esta asignatura. según convenga). I(a)  A(a) . a (constante): “Juan”.

donde hay u. . esta variable puede cuantificarse universalmente: Au --------------------x A  x  Para que la aplicación de la regla sea correcta. c) Todas las ocurrencias de la variable libre u en la fórmula A deben ser sustituidas por x. Esto quiere decir que: • Cuando se ha deducido A(u). La constante a ha sido elegida para sustituir x porque cualquier otro término no habría permitido la eliminación de la implicación y la validación del razonamiento. podría haberse puesto cualquier otro término. entonces A puede decirse de todos los elementos del dominio (x A(x)). FUOC • PID_00149519 25 Lógica de predicados (1) (2) (3) (4) x (I(x)A(x)) I(a) I(a) A(a) A(a) P P E 1 (x sustituida por la constante a) E 2. • No aparece en el encabezamiento (hipótesis) de la subdeducción donde la regla se aplica. Observación Fijaos en que la regla I va acompañada de condiciones que determinan la corrección de la aplicación. todo el mundo es amigo de sí mismo”. entonces es agradable”. b) Regla 11: introducción del cuantificador universal (I) Cuando se dispone de una fórmula que contiene una variable libre. 3 Observad que en el paso 3 se pasa de “Todos los isleños son agradables” a “Si Juan es isleño. Por lo tanto. 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 dominio (exigencia de arbitrariedad). Ejemplo de aplicación correcta de la regla I Como ejemplo de utilización correcta de la regla se validará el razonamiento siguiente: “Todo el mundo es amigo de todo el mundo. Esto quiere decir que la variable x no aparece libre en la fórmula A. son necesarias las condiciones siguientes: a) La variable u debe ser arbitraria. b) La introducción del cuantificador universal no debe provocar capturas involuntarias de variables libres.

6 SD 3.z) (1) (2) (3) (4) P E 1 (x es sustituida por u) E 2 (y es sustituida por u) I 3 (u era libre y arbitraria) Ejemplos de aplicación incorrecta de la regla I Lo siguiente son ejemplos de aplicaciones incorrectas de la regla I.y) A(u. y se utilizará un solo predicado: A(x.y)  z A(z.” 2) Esta deducción es incorrecta porque no todas las apariciones de la variable libre se han sustituido en el momento de la introducción del cuantificador: x P(x. x (S(x)  P(x)) x S(x) S(u)  P(u) S(u) x S(x) x S(x) S(u) P(u) x P(x) (1) (2) (3) (4) (5) (6) (7) (8) (9) P P E 1 H I 4 ¡error! it 2 I 4. FUOC • PID_00149519 26 Lógica de predicados El dominio será un conjunto cualquiera. En consecuencia. 7 I 8 Esta deducción da por válido.y) x y P(x.z) x y A(x.u) z A(z.u) y P(u.y) .y) (1) (2) (3) (4) P E 1 I 2 ¡error! Lo correcto hubiera sido y P(y. de personas. No todos los números enteros son impares. 5.y): “x es amigo de y”. x y A(x. En todos los casos se viola alguna de las condiciones que garantizan su uso correcto: 1) Deducción incorrecta porque la variable libre de la fórmula en que se aplica la regla aparece en el encabezamiento de la subdeducción donde se hace la aplicación.x) P(u. todos los números enteros son pares. no vacío.y) y A(u. sin serlo. el razonamiento siguiente: “Los números enteros son pares o impares.

es necesario garantizar que la constante utilizada es nueva. el razonamiento siguiente: “Todo el mundo habla consigo mismo.x)) donde u es una variable libre y arbitraria. así como tampoco en ninguna hipótesis de ninguna subdeducción que todavía esté abierta. Así pues. pero más simple e intuitiva. Por ejemplo: y (A(y)  (B(x)  C(y. La regla original es la siguiente: x A(x) A(a) . la variable cuantificada puede ser sustituida por una constante nueva y el cuantificador se puede eliminar: x A  x  -------------------Aa  Para que la aplicación de la regla sea correcta. sin serlo. que no haya aparecido nunca antes. La regla original de eliminación del cuantificador existencial La regla de eliminación del cuantificador existencial que acabamos de ver no es la que habitualmente se considera. Huelga decir que cualquier otro nombre para la variable haría correcta la introducción del cuantificador. todo el mundo habla con todo el mundo. siempre y cuando la misma constante no se utilice también para referirse a cualquier otro elemento del dominio.. B B Para aplicarla correctamente es necesario que la constante a no aparezca ni en la fórmula A ni en la fórmula B. Se elige x para sustituir u e introducir el cuantificador universal y se obtiene x (A(x)  (B(x)  C(x.. FUOC • PID_00149519 27 Lógica de predicados Esta deducción da por válido.” 3) Ejemplo de captura involuntaria de una variable libre: se dispone de la fórmula A(u)  (B(x)  C(u. es decir. La regla de eliminación del cuantificador existencial que se estudia en este módulo es equivalente a la original. La regla E puede entenderse de la forma siguiente: si se sabe que hay un elemento del dominio que cumple una determinada propiedad (A). nos podemos referir al mismo con una constante (a).x))). .x))). c) Regla 12: eliminación del cuantificador existencial (E) Cuando una fórmula está cuantificada existencialmente.

y)) y (B(y)  P(a. V(x): “x ha sido verificado”. En consecuencia.b) E 5 Esta deducción da por válido. 3 E 4 ¡error! Lo correcto habría sido B(b)  P(a. 3 E 2 E 4 E 5 E 6. Johny es un cow-boy. sin serlo. hay un resultado que no es correcto. ya sea en alguna de las premisas o en una aplicación anterior de esta misma regla o de la regla E: x [C(x)  y (B(y)  P(x. 8. R(x): “x es un resultado”. Johny es un sombrero. C(x): “x es correcto”. Sin embargo. 7 E 5 I 3. x (R(x)  C(x)) x (P(x)  V(x)) x (P(x)  V(x))  y (R(y)  C(y)) x (R(x)  C(x)) x (P(x)  V(x)) y (R(y)  C(y)) R(a)  C(a) R(a)  C(a) R(a) C(a) C(a) (1) (2) (3) (4) (5) (6) (7) (8) (9) P P H E 1. pero esta restricción no se aplica a la regla E donde puede utilizarse cualquier término.y)) B(a)  P(a. el razonamiento siguiente: “Todos los cow-boys llevan sombrero. x (P(x)  V(x))  y (R(y)  C(y)). (10) x (P(x)  V(x)) Ejemplo de aplicación incorrecta de la regla E La regla E se aplica mal cuando se utiliza una constante que ya ha sido utilizada antes. todos los resultados son corectos. Para aplicar la regla E es necesario utilizar una constante nueva.” .y))] C(a) C(a)  y (B(y)  P(a. Esto quiere decir que no todos los programas han sido verificados. FUOC • PID_00149519 28 Lógica de predicados Ejemplo de aplicación correcta de la regla E Como ejemplo de aplicación correcta de la regla E se validará el razonamiento siguiente: “Si todos los programas han sido verificados.a) B(a) (1) (2) (3) (4) (5) (6) P P E 1 E 2. 9 La línea 6 La línea 6 de esta demostración es correcta.” Se utilizará los predicados atómicos: P(x): “x es un programa”.

y))] x B(x) B(a) B(a)  y (O(y)  T(a. x [B(x)  y (O(y)  T(x.y))]. hay ordenadores”. A continuación se presentan dos más. Restricciones adicionales Como hemos visto. O(x): “x es un ordenador”. En consecuencia. T(x.1. algunas de las reglas referidas a cuantificadores van acompañadas de restricciones que hay que tener en cuenta para garantizar que se apliquen correctamente.y): “x tiene y”. x B(x) x O(x) (1) (2) (3) (4) (5) (6) (7) (8) x [B(x)  y (O(y)  T(x.b) O(b) x O(x) P P E 2 E 1 E 3. 4 E 5 E 6 I 7 2. Ejemplo de aplicación correcta de la regla I Como ejemplo de utilización correcta de la regla. Se utilizarán los predicados siguientes: B(x): “x es un banco”.2.y)) y (O(y)  T(a. entonces existe un elemento del dominio del cual puede decirse A (x A(x)). Las constantes de una fórmula pueden sustituirse por una variable cuantificada existencialmente: At -------------------x A  x  Donde t es un término cualquiera (si se trata de una variable. se validará el razonamiento siguiente: “Todos los bancos tienen ordenadores.y)) O(b)  T(a. FUOC • PID_00149519 29 Lógica de predicados d) Regla 13: introducción del cuantificador existencial (I) Las variables libres de una fórmula se puede cuantificar existencialmente. debe ser libre). Hay bancos. La regla I puede entenderse de la forma siguiente: si algo (A) puede decirse de t (A(t)). 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 existenciales: .

. pero no pueden subir a niveles superiores. De la fórmula x P(x)  y Q(y). sí que puede deducirse la fórmula y x (P(x)  Q(y)).y) P E 1 E 2 I 3 ¡error! a proviene de un  que estaba dentro del alcance del  del cual proviene u. I 4 Si se otorga a C(x.y) no se puede deducir la fórmula y x C(x. de la fórmula x y C(x.” Sin embargo.y) C(u. (1) (2) (3) (4) (5) x y C(x.y) y C(u. Por lo tanto. y • Una constante (a) que proviene de la eliminación de un cuantificador existencial que estaba dentro del alcance del cuantificador universal anterior (aquél cuya eliminación ha dado lugar a la aparición de la variable u). 5 I 6 I 7 2) Las constantes introducidas al aplicar la regla E son locales en la (sub)deducción que las ha originado y sólo pueden ser utilizadas en el mismo nivel o en niveles más interiores. Observad que el cuantificador existencial se halla dentro del alcance del universal. el razonamiento siguiente: “Todo el mundo conoce a alguien.y) el significado “x conoce y”.y). incorrectamente. Por ejemplo. no hay ningún problema si el cuantificador existencial no se halla dentro del alcance del universal. hay alguien que conoce a todo el mundo.a) y x C(x. entonces: no solo se puede aplicar la regla Irespecto a la variable libre u.a) x C(x. FUOC • PID_00149519 30 Lógica de predicados 1) Cuando una fórmula contiene a la vez: • Una variable libre (u) que proviene de la eliminación de un cuantificador universal. la deducción anterior da por válido. x P(x)  y Q(y) x P(x) y Q(y) P(u) Q(a) P(u)  Q(a) x (P(x)  Q(a)) y x (P(x)  Q(y)) (1) (2) (3) (4) (5) (6) (7) (8) P E 1 E 1 E 2 E 3 I 4.

E 10. Ejemplos A continuación exponemos dos ejemplos de aplicación de las reglas de deducción natural: 1) Demostramos la validez del razonamiento siguiente: x y [P(x)  R(x.y) P P P E 2.y)] (2) x y [Q(y)  R(x. * En este caso w podría ser cualquier otro término.b) (9) P(a) (10) y [P(a)  S(a. (1) x y [P(x)  R(x.c) (12) S(a. y)]  x y S(x. y)]. 5 I 6. E 6. 11 I 12 I 13 * Todas estas constantes son constantes nuevas. SD 9. x sustituida por a. E 5 MT 7. E 2. 7 I 8. E 1. 2 E 3 I 2. E 4 E 4 E  3. 4 ¡error! (a no puede salir de la subdeducción donde ha sido introducida).c) (13) y S(a. y). . y)]. x y [P(x)  S(x. (1) x [P(x)  Q(x)] (2) y [P(y)  R(y)] (3) P(w)  Q(w) (4) P(w)  R(w) (5) P(w) (6) R(w) (7) Q(w) (8) R(w)  Q(w) (9) x [R(x)  Q(x)] P P E 1.y)) (7) P(a)  R(a. x sustituida por a. y sustituida por b*.y) (14) x y S(x.y)] (3) x y [P(x)  S(x. x y [Q(y)  R(x.y)] (4) y [Q(y)  R(a.y)] (11) P(a)  S(a. y sustituida por b.2.b) (8) R(a. FUOC • PID_00149519 31 Lógica de predicados Un ejemplo de demostración que es incorrecta porque viola esta restricción es el siguiente: (1) x P(x)  y R(y) (2) (3) (4) (5) x P(x)  R(a) P H E 1. x P(x) y R(y) R(a) 2. y sustituida por c*. w es arbitraria*. w es arbitraria*. 2) Demostramos la validez del razonamiento siguiente: x [P(x)  Q(x)].y)] (5) Q(b)  R(a. E 4.b) (6) y (P(a)  R(a. w era una variable arbitraria. y [P(y)  R(y)]  x [R(x)  Q(x)]. 8 E 3. x sustituida por a*.

y la posibilidad de cometer errores también es mayor. reglas derivadas y equivalencias deductivas de corrección probada. siempre que sea factible. leyes de De Morgan: x A(x) x A(x) x A(x)   x A(x)  Estas leyes también ponen de manifiesto la relación que tienen los cuantificadores entre sí.y). Para reducir tanto como sea posible el riesgo de errores.y).y) y x A(x. la deducción natural es bastante más compleja que en la lógica de enunciados.   b) Para el caso del cuantificador existencial no se da la equivalencia y sólo tenemos: z (A(z)  B(z)) x A(x)  y B(y)  .y) • x y A(x.3. FUOC • PID_00149519 32 Lógica de predicados 2. 4) Relación de los cuantificadores con la negación. 5) Relación de los cuantificadores con la conjunción: a) Para el caso del cuantificador universal. Las que se exponen a continuación son algunas de las más útiles y las que se utilizan con más frecuencia: 1) Cambio de nombre de la variable cuantificada:   • x A(x) • x A(x) y A(y).   y x A(x. 2) Paso del cuantificador universal al existencial: x A(x) x A(x) 3) Conmutatividad de los cuantificadores:   • x y A(x. es interesante utilizar. tenemos lo siguiente: x A(x)  y B(y) z (A(z)  B(z)). Reglas derivadas y equivalencias deductivas En la lógica de predicados.   y A(y).

y sólo tenemos: x A(x)  y B(y) z (A(z)  B(z)) 7) Relación de los cuantificadores con la implicación: a) En el caso de los cuantificadores universales. tenemos: x A(x)  y B(y) z (A(z)  B(z)) . para el cuantificador existencial.   b) Para el caso del cuantificador universal no se da la equivalencia. la relación es la siguiente: z (A(z) B(z)) x A(x)  y B(y) b) En cambio. FUOC • PID_00149519 33 Lógica de predicados 6) Relación de los cuantificadores con la disyunción: a) Para el caso del cuantificador existencial. tenemos lo siguiente: x A(x)  y B(y) z (A(z)  B(z)).

2}. No obstante. la conclusión también lo será. del dominio. entonces. El conjunto de todas estas asignaciones se denomina Ic. P(1. La definición de interpretación debe tener en cuenta esta mayor complejidad. De este modo. Ejemplos de construcción de una interpretación 1) Consideremos la fórmula x y P(x. . P(1.1).2). P(2.. La lógica de predicados también asume que cualquier fórmula puede ser verdadera o falsa. para construir una interpretación es necesario explicitar los aspectos siguientes: 1) El dominio (D) de las variables. mientras que sólo se considera una sustitución por cada constante. una interpretación (V o F) para cada una de las posibles sustituciones de todas sus variable por elementos del dominio.1) y P(2. Una posible interpretación de estas sustituciones en el predicado P puede ser P(1..2)  F.1)  V. El conjunto de todas estas interpretaciones se denomina Ip. . en la lógica de enunciados. FUOC • PID_00149519 34 Lógica de predicados 3.2)  F. si un razonamiento es correcto. el valor de verdad de los predicados cuando las variables son sustituidas por los elementos del dominio y el significado de las constantes (qué elemento del dominio designan). se consideran todas las sustituciones de variables por elementos del dominio. Para construir una interpretación. D  {1. que se identifican con los números 1 y 2. P(2. pero no ambas cosas simultáneamente. Una interpretación en lógica de predicados es. 3) Para cada símbolo de constante.2).. Verdad y falsedad en la lógica de predicados 3. concretamente. una fórmula es algo más complejo que un enunciado. Una constante designa un elemento. y garantiza que. • Todas las posibles sustituciones que se pueden hacer de las variables del predicado P por elementos del dominio dan lugar a P(1.. una interpretación se definió como una asignación de valor de verdad a cada uno de los átomos de un enunciado. Ic.y) y veamos cómo se puede construir una interpretación de la misma: • Como dominio se toma un conjunto de dos elementos.1. una asignación de un elemento concreto del dominio. un triplete de la forma D. Ip.. .1)  V y P(2. El concepto de interpretación en la lógica de predicados Todo lo que explicamos sobre la indiferencia de la lógica respecto al significado de los enunciados se puede extender a la lógica de predicados y. 2) Para cada símbolo de predicado. que no puede estar vacío ().. Con una interpretación se asigna un valor de verdad a una fórmula. Consultad el apartado 3 del módulo “Lógica de enunciados”. siempre que las premisas sean verdaderas. Recordad que. Hay tres aspectos que condicionan el valor de verdad de una fórmula: el dominio considerado.. a las fórmulas. pues.. y sólo uno.

1)  F. Q(1. exactamente. porque un enunciado con n átomos tiene. Q(2. Q(1. { 1. una vez sustituidos los parámetros por valores concretos del dominio.) ya se puede ver que el número de interpretaciones de una fórmula también es infinito. . a partir de los valores de verdad asignados a los enunciados* y de la asignación de elementos concretos a las constantes. Q(2.2)  F.2).. 2 }. la interpretación ha quedado del modo que exponemos a continuación: {1. Así pues. 3.1)  V. finalmente. Ahora es necesario ver cómo se debe determinar el valor de verdad de una fórmula. la interpretación ha quedado de la manera que presentamos a continuación: <{ 1. Paso de fórmulas a enunciados Acabamos de ver qué se entiende por interpretación en la lógica de predicados.{ 1. Solamente teniendo en cuenta que el número de posibles dominios es infinito ({ 1 }. FUOC • PID_00149519 35 Lógica de predicados • Dado que en la fórmula no hay constantes. • Todas las sustituciones que se pueden hacer de las variables del predicado Q dan lugar a Q(1. Q(2. Una posible asignación es a  2. los predicados ya se pueden interpretar como V o F. 2) Para la fórmula z Q(z. 2 }.1)  V y Q(2. 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. Q(2. Fijaos en que. * Resultantes de sustituir las variables de los predicados por elementos del dominio. Q(1. { a  2 }>. . P(2.2)  F}. • A la constante a se le debe asignar un elemento del dominio.2). P(2.1). 2n interpretaciones.2. del mismo modo que los enunciados. finalmente. 2 }. Esto no sucede en el caso de los enunciados.2)  F }. P(1. no se pueden hacer asignaciones a elementos concretos del dominio. una interpretación sería la siguiente: • El dominio es D  { 1. 3 }.. 2}.2)  F.2)  V.1)  V. 2. { Q(1. {P(1.a). y una posible interpretación de todas estas sustituciones puede ser Q(1.2)  V. Así pues.1) y Q(2.1)  F.1)  V.

y) V De la misma manera.y) y la interpretación <{ 1. Q(1.. quedaría la tabla siguiente: Q(1.1)  F.2)  P(1.3)]. como mostramos a continuación: P(1.2)  F }. entonces: 1) Toda fórmula del tipo x p(x) es equivalente al enunciado: P(1)  . 2 } la fórmula es equivalente al enunciado [P(1. sólo hay que proceder como si se calculase una única fila de una tabla de verdad. Finalmente.2)  F. y) es equivalente a y P(1.a)  Q(1. entonces: 1) la fórmula x P(x) es equivalente al enunciado P(1)  P(2)  P(3).3)]  [P(3. { a  2 }>.1)  P(2. y proceder de la misma forma como lo hacemos para cualquier otro enunciado.2) F P(2. siguiendo las dos reglas que acabamos de describir.2)  Q(2.2) (con a  2) V ...1)  P(1. n }). 3 }. Ejemplos de equivalencia entre enunciados y fórmulas Si D  { 1. dado que sería lo mismo que Q(1. 2.1)  P(3. tenemos que en el dominio D  { 1. 2 }.1) V P(2.y) y ésta lo es al enunciado siguiente: [P(1.2)].2)]  [P(2..y)  y P(3.y)  y P(2.1)P(1. 3) la fórmula x y P(x.  P(n).2) V P(2. Para determinar el valor de verdad de una fórmula. { P(1.2)  F }. { Q(1. sólo hay que convertirla en un enunciado.2).2)  V. .2)  P(2.1) P(2.. P(2. FUOC • PID_00149519 36 Lógica de predicados Se debe tener en cuenta que.. para la fórmula x Q(z.2) F P(1. 2) la fórmula y [Q(y)  R(y)] es equivalente al enunciado siguiente: (Q(1)  R(1))  (Q(2)  R(2))  (Q(3)  R(3)).1) V P(1. >. 2 }.a) y.2)  Q(2.2) V Q(2.2) V x y P(x. a) y la interpretación <{ 1.a) es equivalente a Q(1.a) Q(2. P(2.1)  V. 2) Toda fórmula del tipo x P  x  es equivalente al enunciado: P(1) .1)  P(1. Q(2. si el dominio a partir del cual se hace la interpretación tiene n elementos (D  { 1. tendríamos que z Q(z.1)  P(2. Ejemplos de determinación del valor de verdad de una fórmula Dadas la fórmula x y P(x.a)  Q(1.2) F z Q(z. Q(2. P(1.a)  Q(2.2)  P(3. P(n).1)  V.3)]  [P(2. dada una interpretación en concreto.1)  V. 2..

 FUOC • PID_00149519 37 Lógica de predicados Volviendo a la fórmula x y P(x.2) V F V F V F V F V F V F V F V F P(1.3.1)  P(1. y sólo si.1) V V V V V V V V F F F F F F F F P(1. es un teorema. es una contradicción. P(1. se dice que es contingente.2) V V V V V V V V V V V V F F F F P(2. del módulo “Lógica de enunciados”.1) V V F F V V F F V V F F V V F F P(2. c) Cuando una fórmula ni es una tautología ni es una contradicción. un razonamiento es correcto si. y sólo si. la tabla de verdad para todas las interpretaciones donde el dominio es D  { 1.y).1) P(2. Dependiendo del valor de verdad de una fórmula.3. Refutación de razonamientos Como en el caso de la lógica de enunciados. b) Una fórmula es una antinomia cuando su valor de verdad es F en todas las posibles interpretaciones. y es una antinomia si. Recordad los conceptos de antinomia y de tautología que hemos visto en el subapartado 3. resulta sencillo darse cuenta de que es posible construir la tabla de verdad para todas las interpretaciones que tienen un mismo dominio.y) V V V F V V V F V V V F F F F F Los conceptos de tautología y antinomia que se aplican a los enunciados también se pueden aplicar a las fórmulas. Una fórmula es una tautología si.2) V V V F V V V F V V V F V V V F x y P(x. .2) V V V V F F F F V V V V F F F F P(2. y sólo si. Observación Por ‘en todas las posibles interpretaciones’ entendemos ‘para cualquier dominio’. 2 } sería la que presentamos a continuación. tenemos que: a) Una fórmula es una tautología cuando su valor de verdad es V en todas las posibles interpretaciones. ‘para cualquier combinación de atribución de valores de verdad a las posibles sustituciones’ y ‘para cualquier asignación de elementos del dominio a constantes’. 3. todas aquellas interpretaciones que hacen verdaderas las premisas también hacen verdadera la conclusión.

Si el razonamiento es inválido. como mínimo. Ejemplo de cómo hay que buscar un contraejemplo Demostramos la invalidez del razonamiento x P(x) z P(z) • Cuando tenemos el dominio D  { 1 }. cada vez con dominios de más elementos. se obtiene P(1). Un razonamiento es formalmente inválido cuando existe una interpretación. y z P(z) es equivalente a P(1). si el razonamiento es correcto. En este dominio. se acabará encontrando el contraejemplo que se buscaba. sí que es posible utilizar esta vía para demostrar que un razonamiento es formalmente inválido. como en el caso de la lógica de enunciados. La fórmula x P(x) es equivalente a P(1). Si alguna de éstas hace verdaderas las premisas pero no la conclusión. * Si el razonamiento es correcto. Esto hace que el procedimiento se tenga que reservar para encontrar contraejemplos de razonamientos que se saben inválidos o de los cuales se tienen sospechas fundadas de invalidez. obtenemos la siguiente tabla de verdad: P(1) V F x P(x) V F x P(x) V F Todas las interpretaciones que hacen verdadera la premisa también hacen verdadera la conclusión. ya se ha encontrado el contraejemplo que se buscaba. El proceso se para cuando se encuentra un contraejemplo. A pesar de esta adversidad. el proceso se convierte en una iteración infinita. sin encontrar nada. que hace verdaderas las premisas y falsa la conclusión. que invalide un razonamiento es el siguiente: 1) Se comienza con el menor dominio posible (D = { 1 }) y todas las interpretaciones que se puedan construir con éste. Estas interpretaciones se denominan. FUOC • PID_00149519 38 Lógica de predicados La infinidad en el número de interpretaciones no permite validar un razonamiento por la vía de comprobar que todas las interpretaciones que hacen verdaderas las premisas también hacen verdadera la conclusión. Contrariamente. Sustituyendo todas las variables del predicado P por elementos del dominio. contraejemplos. 2) Se repite el proceso añadiendo cada vez un elemento más al dominio. el proceso continuará indefinidamente*. pues. El proceso para buscar un contraejemplo. no hemos encontrado ningún contraejemplo. Entonces. .

2 }. En concreto. 2 }. FUOC • PID_00149519 39 Lógica de predicados • Cuando tenemos el dominio D  { 1. 2 }. las sustituciones dan lugar a P(1) y P(2).{P(1)F. Se acaba de demostrar que el razonamiento es inválido y ya no es necesario continuar buscando en dominios de más elementos. P(2)  F }y { 1. y la conclusión es equivalente a P(1)  P(2). P(2)  V }. La premisa es equivalente a P(1)  P(2). se ha encontrado que las interpretaciones { 1. . tenemos la siguiente tabla de verdad: P(1) V V F F P(2) V F V F P(1) P(2)  x P(x) P(1) P(2)  x P(x) V V V F V F F F Contraejemplos En este dominio sí se han encontrado contraejemplos.{P(1)V. Así.hacen verdadera la premisa. pero no la conclusión.

Si existen variables libres.  Prefijo . presenta la siguiente estructura: Q1x1 . posteriormente. no aparece ningún cuantificador a su derecha (la parte denominada matriz). Es una forma normal prenexa. y sólo si. el método de resolución. consecuentemente. se manipulan algebraicamente para obtener fórmulas equivalentes. éstas se deben cuantificar existencialmente. se siguen los pasos siguientes: 1) Verificar que no existen variables libres. Formas normales 4. igual que los enunciados. puede ser útil cambiar estos nombres. Los cuantificadores existenciales se eliminan siguiendo un proceso denominado eskolemización..  Matriz donde los Qi son cuantificadores. Forma normal de Skolem Las fórmulas. Los cuantificadores existenciales que se añadan deberán colocarse a la izquierda del todo de la fórmula. FUOC • PID_00149519 40 Lógica de predicados 4. Para encontrar la forma normal de Skolem de cualquier fórmula. Es decir. La forma normal de una fórmula recibe el nombre de forma normal prenexa. Qnxn (expressión sin cuantificadores). una fórmula estará expresada en forma normal prenexa cuando todos los cuantificadores están agrupados a su izquierda (la parte denominada prefijo) y. Si la fórmula se ha dado con variables libres. La transformación algebraica de una fórmula tiene por objetivo la consecución de una forma normal. La forma normal denominada forma normal de Skolem (FNS) es la que se utiliza para poder aplicar. 2) Opcionalmente.. Una fórmula estará expresada en forma normal prenexa si. si se utiliza el mismo nombre para variables dentro del ámbito de cuantificadores distintos. con la matriz normalizada (FNC) y con un prefijo que sólo contiene cuantificadores universales.1. esto es un síntoma de error en la formalización y es necesario repasarla.

Eliminación de cuantificadores existenciales: eskolemización El punto principal para encontrar la forma normal de Skolem de una fórmula es la eliminación de los cuantificadores existenciales. entonces hay que sustituir la variable cuantificada existencialmente por una constante que todavía no ha sido utilizada. La función no se puede haber utilizado previamente ni se podrá utilizar posteriormente. 7) Normalizar la matriz. entonces hay que sustituir la variable cuantificada existencialmente por una función de la variable cuantificada universalmente. 6) Mover todos los cuantificadores* hacia la izquierda. procederemos de la siguiente manera: 1) Si un cuantificador existencial no se encuentra dentro del ámbito de ningún cuantificador universal. pero no afectan a las otras variables cuantificadas universalmente. 3) Si un cuantificador existencial se encuentra dentro del ámbito de más de un cuantificador universal. 5) Eliminar los cuantificadores existenciales (eskolemización). La constante no se podrá utilizar posteriormente. 4. 2) Si un cuantificador existencial se encuentra dentro del ámbito de un cuantificador universal. Los cuantificadores universales afectan a las variables cuantificadas existencialmente que están dentro de su ámbito. La función no se puede haber utilizado previamente ni se podrá utilizar posteriormente. Los pasos de este proceso se deben seguir en el orden indicado. Alterar su orden podría provocar errores. FUOC • PID_00149519 41 Lógica de predicados 3) Eliminar todas las apariciones de la conectiva AB A B).  . Será necesario aplicar tanto las leyes de De Morgan estudiadas para los enunciados como las que se aplican a las fórmulas cuantificadas.2.  4) Aplicar las leyes de De Morgan para conseguir que las negaciones precedan a los símbolos de predicado. Para llevarla a cabo. es necesario que esté expresada en forma normal conjuntiva. Los cuantificadores existenciales no afectan ni a las variables cuantificadas universalmente ni a ninguna otra variable cuantificada existencialmente. * Sólo habrá cuantificadores universales. y eliminar el cuantificador existencial. Para poder aplicar el método de resolución. y eliminar el cuantificador existencial. entonces hay que sustituir la variable cuantificada existencialmente por una función de todas las variables afectadas por estos cuantificadores universales y eliminar el cuantificador existencial.

t).f(y)) Q(g(y). sólo hay que hacer las sustituciones y eliminar los cuantificadores existenciales. Las funciones de Skolem ponen en evidencia las relaciones funcionales que existen entre las variables cuantificadas existencialmente y las cuantificadas universalmente.t) S(t))] m S(m) S(a).2. como mostramos a continuación: x y [z P(x. • La variable v será sustituida por la función h(y. Afectado por y No afectado Afectado por y Afectado por y y t No afectado Afectado por y Con esta información podemos decir qué variables deben ser sustituidas y por qué constante o función lo deben ser: La variable x será sustituida por la constante b (a no se puede utilizar porque ya aparece en la fórmula). Nota f(y). aplicamos el proceso de eliminación de cuantificadores existenciales en la fórmula siguiente: x y [z P(x. Las funciones utilizadas para eliminar los cuantificadores existenciales afectados por cuantificadores universales reciben el nombre de funciones de Skolem y se deben considerar términos.z) u Q(u.t) son funciones nuevas cualesquiera. .1 de este módulo didáctico. • La variable m será sustituida por la constante c (b no se puede utilizar porque ya se ha utilizado antes. g(y). y obtenemos lo que presentamos a continuación: y [P(b. • La variable w será sustituida por la función k(y).y) w S(w) t (v R(v.z) u Q(u. El primer paso es la detección de los cuantificadores universales y sus ámbitos. FUOC • PID_00149519 42 Lógica de predicados Ejemplo de eskolemización Como ejemplo de eskolemización.z) u Q(u.* * En negrita hemos indicado los cambios que se han producido. Recordad el concepto término visto en el subapartado 1. Ámbito de t Ámbito de y Ahora ya podemos determinar cuáles son los cuantificadores universales que afectan a cada cuantificador existencial: x y [z P(x. Para acabar. • La variable u será sustituida por la función g(y).t). Como las constantes. k(y) y h(y.y) w S(w) t (v R(v.t) S(t))] S(c) S(a). no se pueden cuantificar. igual que a). • La variable z será sustituida por la función f(y).t) S(t))] m S(m) S(a)  .y) w S(w) t (v R(v.y) S(k(y)) t (R(h(y.t) S(t))] m S(m) S(a).

Sin embargo. No se detecta ninguna repetición.t) R(x. Supongamos que utilizamos el predicado Q(x. por transformación de los universales. y a la inversa.x))].t) y R(x.x)) Q(x.y)) z A(z) u B(u. Parafraseada.t) y R(x.x)].t) y R(x.x))] x [(P(x) (t Q(x.x))] x [(P(x) (t Q(x. podrían aparecer nuevos cuantificadores existenciales. éste es un hecho sin importancia.t) y R(x.x))] x [(P(x) (t Q(x. resulta x Q(x.t) y R(x.t) y R(x.y))) (z A(z) u B(u.y))) (z A(z) u B(u.f(x)) A(g(x)))  Q(x. “el cuadrado del número x es el número y”. Ésta es la razón por la cual la eskolemización (paso 5) no se puede aplicar antes: se correría el riesgo de eliminar cuantificadores existenciales que posteriormente se tendrían que convertir en universales y. ejemplificamos el proceso completo de determinación de una forma normal de Skolem: 1) Se examina la fórmula para detectar variables libres. En este caso.y))) (z A(z) u B(u. 3) Se eliminan las implicaciones: x [(P(x) (t Q(x. En otros casos quizá no seremos capaces de dar una definición de la función de Skolem. FUOC • PID_00149519 43 Lógica de predicados Un ejemplo os ayudará a entender este hecho. Si esta fórmula es eskolemizada. para formalizar la frase “Todo número natural tiene un cuadrado (que también es un número natural)”.t) R(x.f (x)).f(x)))) (A(g(x)) u B(u.x))].x))]. No las hay.t) R(x.y))) (z A(z) u B(u. lo que es realmente importante es que la función de Skolem evidencia la relación funcional entre x e y (y  f(x)).x))].y . 4) Se aplican las leyes de De Morgan para acercar las negaciones a los símbolos de predicados: x [(P(x) (t Q(x. 6) Se mueven todos los cuantificadores universales a la izquierda: x t u [(P(x) (Q(x. además.y). La variable z es sustituida por otra función de x: x [(P(x) (t Q(x.x))]            5) Se eliminan los cuantificadores existenciales: la variable y es sustituida por una función de x.y))) (z A(z) u B(u.t)  R(x. es evidente que f(x)  x2. La formalización sería x y Q  x. la fórmula resultante se puede leer como ‘todo número natural tiene un cuadrado que es su función’.f(x)) B(u. Ejemplo de determinación de una forma normal de Skolem Con la fórmula x [P(x) (t Q(x. 7) Se calcula la forma normal conjuntiva de la matriz: x t u [(P(x) A(g(x))) P(x) B(u.  .f(x)))) (A(g(x)) B(u. 2) Se examina la fórmula para detectar repeticiones en el nombre de las variables. La aplicación de las leyes de De Morgan provoca que algunos cuantificadores universales se conviertan en existenciales.

Sólo es necesario que adaptemos el método de resolución a sus particularidades. Resolución 5. Juan es impaciente”. Si asignamos a H(x) “x es un hombre”. para garantizar la sistematicidad. . Recordad el método de resolución para enunciados que hemos visto en el apartado 5 del módulo “Lógica de enunciados”.2. Una explicación mediante un ejemplo nos permitirá una introducción informal. Juan es un hombre. El método de resolución de la lógica de predicados se basa en: 1) Una única regla: la de resolución. a a (constante) “Juan” y a I(x) “x es impaciente”.2. 4) La utilización de la técnica del replanteamiento de la última decisión. 5. 5) El cálculo de sustituciones y el algoritmo de unificación. El último punto representa la novedad realmente importante de la resolución en la lógica de predicados. FUOC • PID_00149519 44 Lógica de predicados 5. Consecuentemente. 2) Una única estrategia: la reducción al absurdo. Las novedades: forma normal de Skolem y sustituciones El método de resolución que hemos estudiado en esta asignatura para la lógica de enunciados también se puede utilizar para validar o refutar razonamientos expresados en el lenguaje de fórmulas. Supongamos que queremos validar el razonamiento “Todos los hombres son impacientes. Sustituir variables por términos 5. Ejemplo comentado El concepto de sustitución es muy importante. H(a) I(a).1.1. entonces: x [H(x) I(x)]. 3) La utilización de la forma normal de Skolem (con matriz en FNC).

y la constante a es un término.. entonces la situación se desbloquearía. Ahora bien. FUOC • PID_00149519 45 Lógica de predicados Encontramos a continuación las formas normales de Skolem: • FNS (x [H(x) I(x)]) x [H(x) I(x)].. A la hora de considerar las cláusulas. El árbol de resolución correspondiente a este ejemplo sería el que presentamos a continuación: I(a) H(x) I(x) Parece que no se puede continuar Parece que no se puede continuar porque en la cláusula troncal se tiene I(a). H(a).  Se podría aplicar. los cuantificadores no se tienen en cuenta. la regla de resolución no se puede aplicar. . la regla de resolución en este caso si la cláusula lateral contuviese el literal I(a). la variable x se puede sustituir por la constante a (de hecho. ¿Es posible esta sustitución? La respuesta es afirmativa porque la cláusula troncal es realmente xH(x) I(x)] y porque la regla de eliminación del cuantificador universal afirma que una variable cuantificada universalmente puede ser sustituida por cualquier término. mientras que en la lateral se tiene I(x) y. Efectivamente.. dado que son diferentes. Si esta variable pudiese ser sustituida por la constante a. • FNS ( I(a)) I(a). esto quiere decir que estaba cuantificada y que el cuantificador era universal. Así pues. si en una cláusula aparece una variable. • FNS (H(a)) H(a). con el conjunto de apoyo { I(a) }. En conclusión. . la regla de resolución no se puede aplicar. El conjunto de cláusulas resultante es: S H(x) I(x).. I(a) }. ya que un literal no es la negación del otro. lo que se hace es aprovechar que xH(x) I(x)] H(a) I(a)). pero no hay que olvidar que todos son universales. el literal I(x) contiene la variable x.

No obstante. obtendríamos el árbol de resolución siguiente: I(a) H(x) I(x) Sustituir x por a H(a) I(a) H(a) H(a)  5. se utiliza cualquiera..x). por una función o por otra variable. ni las constantes ni las funciones pueden ser sustituidas por nada. 5.x).z)... Hay una excepción a la posibilidad de sustituir una variable por cualquier término: una variable no puede ser sustituida por una función de sí misma.2. Sin embargo.x)]. 2) Si hay más de una sustitución que permite eliminar el literal de más a la derecha de la cláusula troncal. ya que son funciones de sí misma. la cláusula original se debe dejar intacta. una vez aplicada. hay que sustituir todas las apariciones de esta variable en la cláusula donde aparece. y el resto se reserva como alternativa por si hay que aplicar el replanteamiento de la última decisión.2. x y z [C(x. 3) Sólo se pueden sustituir las variables. FUOC • PID_00149519 46 Lógica de predicados Así pues... 4) Cuando una variable es sustituida. sólo son útiles las sustituciones que conducen a la eliminación de este literal.z) C(x. y x C(x. . Más ejemplos 1) Queremos validar el siguiente razonamiento: x y [C(x. hay que tener claros los aspectos que presentamos a continuación: 1) En cada momento se debe elegir aquella sustitución que. x se puede sustituir por f(y) o por g(y.z)] x C(x. Por ejemplo. la sustitución de variables es imprescindible. permita eliminar el literal de más a la derecha de la cláusula troncal. pero nunca por f(x) o por g(y.y) C(y.3.y). La sustitución se debe hacer sobre la copia que se utiliza en el árbol de resolución. Quién sustituye a quién y cómo lo hace Cuando el método de resolución se aplica a la lógica de predicados. . Así pues.y) C(y. Aunque una variable pueda ser sustituida por cualquier término. Una variable puede ser sustituida por una constante.

ni a puede sustituirse por b ni b puede sustituirse por a.y) C(y.y)  C(y. .x)]. * a es una constante nueva que sustituye y. De este modo.y) C(y.a)*.z) C(x. El siguiente intento sería: C(b.a) No se puede continuar Este intento fracasa porque aunque la variable x puede sustituirse por b haciendo que la cláusula lateral quede C(b.z).z)].y) C(y. • FNS(x C(x.x)) C(b. Cuando es necesaria más de una sustitución. • FNS(x y z [C(x. éstas se indican en secuencia. C(x.y) C(y.x)]) x y [ C(x.a).y)  C(y. • FNS(y x C(x.b) C(x.a). es necesario plantearse la última decisión tomada. C(b.b) } con el conjunto de apoyo { C(b. El primer intento de empezar la resolución sería: Observación Las sustituciones necesarias se indican al lado del árbol de resolución. tanto la lateral como la troncal).z)]) x y z [C(x.b)** ** b es una constante nueva que sustituye x. C(x.z)  C(x.z) C(x. el conjunto de cláusulas resultante es el siguiente: S  { C(x. FUOC • PID_00149519 47 Lógica de predicados En primer lugar. Dado que se ha producido una repetición.y)) x C(x.x). es necesario que encontremos las formas normales de Skolem de las premisas y de la negación de la conclusión: • FNS(x y [C(x. El resultado de aplicarlas se indica bajo la cláusula afectada (pueden ser las dos.b) }.

b) C(b.y)  C(y. FUOC • PID_00149519 48 Lógica de predicados El tercer intento nos llevará al siguiente árbol de resolución (dejamos de mostrar los intentos sin éxito que comportan replanteamientos).u) C(u.a) C(x.b) C(x.x)] En primer lugar buscamos las formas normales de Skolem: a) Para la premisa: FNS(x [y A(y.x)])  y [A(y.x) Sustituir x por b C(b.u)  C(u.b) C(b.u) C(u.x)] xu [C(x.y)  C(y. En este caso concreto.u) C(b.u)  C(u.x)  B(y.u) Sustituir u por a C(b.b) C(x.y) C(y.x)]. Esto se hace así para evitar que antes de empezar a calcular las sustituciones necesarias.x) a C(x.x)] x y [A(y.x)]     .b) Sustituir x por b y z por b Sustituir y por u C(b.x)  B(g(x).y)  C(y.x)  B(y.a)  Observad que cuando se utiliza la cláusula C(x. b) Para la negación de la conclusión: FNS(x y [A(y.z) C(x.u) Se puede simplificar C(b. Cambio de nombre Pasar de C(x.z)  C(b. la cláusula troncal y la lateral tengan variables con el mismo nombre. C(b.a)].x)])  x [A(f(x).x) se cambia el nombre de la variable y por u.b) C(b.u) C(u.y) C(y.a)  B(y.a) Sustituir x por b C(b. Esto podría provocar fácilmente confusiones en las sustituciones. el cambio de nombre no era estrictamente necesario.x)  z B(z.x)  z B(z. 2) Validemos el razonamiento siguiente: x [y A(y.y) C(y.x) es perfectamente lícito porque: xy [C(x.

entonces se puede afirmar que el razonamiento no es correcto. Es lo que muestra el ejemplo siguiente: Demostrar que el razonamiento x y A(x.a) Sustituir y por g(a) B(g(a).a) A(f(x).x) } . B(y.a) }. b) Para la negación de la conclusión: FNS(x [y A(y.x)].x).y)  y A(y. g(x))  A(h(x).x) B(g(x).x) Sustituir x por a A(f(a).a). El árbol que obtendremos será el que representamos a continuación: A(y.x)])  x [A(g(x).a) } con el conjunto de apoyo { A(y. Las formas normales de Skolem son las siguientes.f(x)).a)  3) Como en la lógica de enunciados. cuando todas las alternativas posibles se han tenido en cuenta sin éxito.a) B(g(a).f(x)). El conjunto de cláusulas que se obtiene es (las dos últimas son el conjunto de apoyo): S  { A(x.x) B(g(x). A(h(x).g(x)).y))  x A(x.y)  x [y A(y.a) Sustituir y por f(x) A(f(x). A(y. a) Para la premisa: FNS(x y A(x. A(g(x).y)  y A(y.a) B(y.a).x)] no es válido. FUOC • PID_00149519 49 Lógica de predicados El conjunto de cláusulas resultante es: S  { A(f(x). B(y.a) B(g(a).a) Sustituir x por a A(f(a).

Automatización del cálculo de sustituciones: el algoritmo de unificación El hecho de poder determinar en cada momento cuáles son las sustituciones que hay que llevar a cabo es una cuestión muy importante para la aplicación del método de resolución. y de este conjunto nunca obtendremos . Ya podemos concluir que el razonamiento no es correcto. Si descartamos estas cláusulas. El segundo intento también fracasa: En este caso el problema radica en que la sustitución de x por f(h(x)) no es posible porque una variable no puede ser sustituida por una función de sí misma. Observación Os podéis dar cuenta de que al utilizar la cláusula A(x. Con esto se han agotado las posibilidades con las cláusulas del conjunto de apoyo. A menudo es posible determinarlas a partir de la simple inspección de los literales involucrados. FUOC • PID_00149519 50 Lógica de predicados El primer intento de iniciar la resolución es: Este primer intento fracasa porque g(x) no puede sustituirse por f(g(x)) ni f(g(x)) se puede sustituir por g(x). el conjunto se reduce a { A(x.f(x)) }.f(x)) hemos cambiado x por u para evitar duplicidad de nombres con la cláusula troncal. 5.4. Para aquellas situaciones don- . Y es que ninguno de los dos es una variable.

están unificadas (son fórmulas idénticas). ** Es decir.b) y P(a. d) Dadas dos fórmulas con el mismo predicado F1 y F2. hay el algoritmo de unificación para calcular sustituciones. porque en la primera posición se tiene x en la primera fórmula y a en la segunda. t1 es el término y t2 es la variable . <f(x).y) y Q(z.a> e <y. Antes de presentar este algoritmo. Ejemplo de discrepancia a) Las fórmulas P(x. el algoritmo de unificación calcula el unificador que las hace idénticas. si éste existe. porque en ninguna de las tres posiciones se tiene el mismo término. Dado un par de fórmulas con el mismo predicado. FUOC • PID_00149519 51 Lógica de predicados de la simple inspección no es suficiente.b>. donde v es una variable y t es un término*. t2 :  la primera discrepancia de D D:  D  t1. b) Una sustitución es un par de la forma v/t. F2: fórmulas con el mismo predicado) /* F1 y F2 son las fórmulas que se quiere unificar */ D:  conjunto de las discrepancias entre F1 y F2 :   /* inicialmente la sustitución está vacía –nula– */ unificable:  cierto /* iterar mientras haya discrepancias y posibilidad de superarlas */ mientras D   y unificable hacer */ buscar la primera discrepancia y sacarla del conjunto */ t1. b) Las fórmulas Q(x. * El término puede ser una constante. o informa de su no-unificabilidad. entonces se dice que son fórmulas unificables. que hace idénticas ambas expresiones. Cuando dos fórmulas con el mismo predicado no tienen ninguna discrepancia.f(x). t2 /* intentar superar la discrepancia */ si t1 es una variable y t2 es un término que no es una función de t1 o al revés.a. Cuando un par de fórmulas F1 y F2 de un único predicado tienen un unificador que las hace idénticas. una variable o una función que no lo sea de v. Así.b) presentan la discrepancia <x.b) presentan las discrepancias <x. se escribe F. si éste no existe: Algoritmo cálculo_del_unificador (F1. si  es un unificador de F1 y de F2. Para denotar que el unificador  se aplica a la fórmula F. o cuando se quiere mecanizar el método. c) Un unificador () es una secuencia de sustituciones que unifica** dos expresiones.a>. es necesario dar toda una serie de definiciones que os serán útiles: a) Unificar significa determinar si dos expresiones pueden llegar a ser idénticas aplicando las sustituciones adecuadas de sus variables.z>. una discrepancia es un par de términos que son diferentes pero que ocupan la misma posición en el predicado. entonces F1  F2.

t2 término:  el término de t1. FUOC • PID_00149519 52 Lógica de predicados entonces /* la discrepancia es superable */ variable:  la variable de t1.g(x. F1  P(x. .a) y F2  P(f(z). El conjunto de discrepancias es D  { <x.u>.w> }.y). cuyas trazas mostraremos.w). F2:  F2 D:  D sino unificable :  falso fsi sino unificable :  falso fsi fsi fmientras si unificable entonces finalizar el algoritmo con respuesta:  es el unificador que se buscaba 2. <a.f(z)>.y). Inicialmente   { }. El algoritmo es aplicable porque son fórmulas con el mismo predicado. 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. las fórmulas unificadas quedan: F1 sino finalizar el algoritmo con respuesta: las fórmulas no son unificables fsi falgoritmo Ejemplos de aplicación del algoritmo de unificación Unos cuantos ejemplos de aplicación del algoritmo de unificación. Por tanto. <g(x.u.w).g(x. a) Traza 1.y). nos servirán para ilustrar su funcionamiento.a) y P(f(z).u. Queremos unificar las fórmulas P(x.

<w/g(y)> }. el unificador es   { <x/f(z)>.w> }.y).f(w)). Queremos unificar las fórmulas Q(a.y).a). la única discrepancia es <a.f(w)> }.f(g(y))). se intenta la unificación de las dos funciones.g(f(z). En el caso de las funciones f(a) y f(h(b)). y el conjunto de discrepancias. y queda   { <x/f(z))>. Esta discrepancia no es de la forma variable/término ni de la forma función/función. <w/a> }.h(b)>.u>. que se saca del conjunto y queda vacío.u>. y la sustitución que hay que llevar a cabo para solucionarla es w/a.<x/h(a.g(y)).w>.x.g(f(z).w. Así.g(f(z). Así.y).g(f(z). y queda   { <x/f(z)>. El conjunto de discrepancias es D  { <f(a).. con lo cual las fórmulas quedan F1  Q(a. las fórmulas quedan F1  Q(a. F2  P(f(z). Ésta no es una discrepancia de la forma término/variable.w).a).h(a. las dos funciones no son unificables y.h(z. La sustitución que hay que hacer para solucionarla es <x/f(z)>. F2  Q(a. <u/g(f(z).w) y D  { <a. Se elimina del conjunto y éste queda D  { <g(x. El unificador se aplica a las fórmulas y a D. • Iteración 2: la primera discrepancia del conjunto da lugar a la sustitución <x/h(a. • Iteración 3: la primera discrepancia del conjunto es a.f(h(b))> }. Con esto.f(g(y))). que se puede solucionar con la sustitución <w/g(y)>.y)>.y). • Final: las dos fórmulas son unificables. En este caso.f(w)> }. • Iteración 1: la primera discrepancia da lugar a la sustitución <z/a>. Como podéis ver. es posible intentar unificarlas. y queda lo siguiente: F1  P(f(z). el conjunto de discrepancias es D  { <a. • Iteración 1: la única discrepancia de este conjunto no es de la forma variable/término ni de la forma función/función.y)> }.a) y D  { }. consecuentemente.f(g(y))) y Q(z.u. La discrepancia es de la forma término/variable. <u/g(f(z). c) Traza 3. <f(g(y)). En este caso. <w/a> }. Queremos unificar las fórmulas S(f(a)) y S(f(h(b))).a).<x/h(a.w) y D  { <g(f(z). <w/g(y)> }. <a.f(y. y queda lo siguiente: F1  P(f(z).z)) y R(x. la discrepancia es <g(y). Este unificador se añade al final del que se construía para las dos fórmulas. • Iteración 1: la única discrepancia del conjunto es de la forma función/función.<f(g(y)). y la sustitución que hay que hacer para solucionarla es <u/g(f(z). y el resultado de la unificación es el siguiente: P(f(z). el unificador es   { <z/a>. el conjunto de discrepancias es D  { <f(y.h(z. y queda lo siguiente: F1  P(f(z).w).y). • Iteración 3: la última discrepancia del conjunto es <f(g(y)). Este unificador se aplica a las fórmulas y a D. • Iteración 2: la primera discrepancia del conjunto es <g(f(z). d) Traza 4. b) Traza 2. La discrepancia es de la forma variable (x)/término (f(z)).f(w)> } . • Final: ambas fórmulas son unificables. Dado que la función es la misma en ambos casos.g(f(z). no hay ninguna sustitución que la pueda solucionar. . Esta sustitución se añade al final de . <u/g(f(z). Por tanto. D  { <f(g(y)).y). <x. Esta sustitución se añade al final de .f(g(y))). • Final: las fórmulas no son unificables. La discrepancia es de la forma término/variable. sino que se trata de una discrepancia de la forma función/función. D  { <x.f(z)>.h(a.a> }.w> }. y queda   { <x/f(z)> }.y).f(w)>.z>.y)>. y el resultado de la unificación es el siguiente: Q(a.h(a.y).u>.h(a. el unificador de f(g(y)) y f(w) es { <w/g(y)> }.w). Queremos unificar las fórmulas R(x.w> }.f(w)). F2  P(f(z).x.g(f(z).a).w)>. El unificador se aplica a las fórmulas y a D (sólo hay que sustituir x por f(z)).f(w)). no hay una sustitución que solucione la discrepancia original.w> }.a).w)>. F2  Q(a.w).w)>.y). Consecuentemente. y queda   { <z/a>.h(a. • Final: las fórmulas no son unificables.w)>.z). Se saca del conjunto y éste queda D  { <a.w)>. Esta sustitución se añade al final de .y)>. FUOC • PID_00149519 53 Lógica de predicados • Iteración 1: la primera discrepancia del conjunto es <x. y el conjunto de discrepancias. F2  P(f(z). <a.

Un programa Prolog es una colección de reglas (también denominadas predicados). Sintácticamente. de la programación en Prolog.1. FUOC • PID_00149519 54 Lógica de predicados 6.. . La programación lógica 6.1.<parte-derecha>. palabras como predicado o cláusula tienen un significado ligeramente diferente del que se les ha dado hasta ahora. Por esta razón. Cada regla especifica una relación entre objetos. fórmulas) que describen una determinada situación. los intérpretes de estos lenguajes implementan un demostrador automático. una regla de un programa Prolog se compone de una o más cláusulas. El programador debe especificar todas las propiedades y todas las relaciones que son relevantes por lo que respecta a los objetos que participan en la situación que se describe. <parte-izquierda> :. .2. Un programa escrito en un lenguaje de programación de los denominados lógicos es una colección de sentencias lógicas (típicamente.2. La programación lógica ofrece los mecanismos necesarios para poder describir un algoritmo en términos de propiedades y de relaciones lógicas entre objetos.. La lógica de predicados “implementada”: Prolog 6.. 6. ¿Qué es la programación lógica? La programación lógica es el punto donde confluyen la lógica y la informática. Elementos básicos: cláusulas y reglas El lenguaje de programación lógica más conocido y utilizado es el Prolog (Programming in the logic). Ejecutar un programa lógico consiste en determinar si una conclusión dada se sigue de las sentencias lógicas especificadas. La forma general de una cláusula es la siguiente: En el contexto..

. Y)  padre (X. Las cláusulas de Prolog no son más que implicaciones escritas con una sintaxis particular. efectivamente. para la misma regla del ejemplo que acabamos de ver. a progenitor (Z. podemos escribir: X Y Z [progenitor (Z. vemos que ésta es la siguiente: X Y Z [progenitor (Z. Y) “X es el abuelo de Y”. Y). es una cláusula (una vez eliminados los cuantificadores). Z). Z) “X es el padre de Z”. . Si volvemos a la fórmula del ejemplo que acabamos de ver. Y) :.madre (X.. Y)]. Y). Si trasladamos la expresión anterior a la notación del lenguaje de fórmulas. Así. Y)  padre (X. progenitor (X.<parte-derecha>. En Prolog las variables se representan con letras mayúsculas o. respectivamente: a) Una regla con una única cláusula: abuelo (X. y las comas hacen el papel de conjunciones. entonces X es el abuelo de Y’. . Y) :.padre (X. Y) :. b) Una regla que consta de dos cláusulas: progenitor (X. Z)  abuelo (X. padre (X. A continuación presentamos dos ejemplos en los que se definirán dos reglas de un programa Prolog que contendrán una cláusula o dos. y calculamos la FNS.. podríamos decir lo siguiente: asignamos a abuelo (X.progenitor (Z.. Y)]. con cadenas de caracteres que comienzan con una letra mayúscula. mientras que <parte-derecha> puede no serlo (puede contener conjunciones).. es fácil entender por qué se denominan cláusulas las construcciones de la forma <parte-izquierda> :. que. para no alejarnos excesivamente de la notación del Prolog. FUOC • PID_00149519 55 Lógica de predicados donde <parte-izquierda> debe ser simple (no contener conectivas). Z). Y) :. Si utilizamos la notación a la que estamos acostumbrados. Y).progenitor (Z. tenemos que: abuelo (X. Y) “Z es un progenitor de Y” y a padre (X. Finalmente. Z)  abuelo (X. Y). padre (X. más concretamente. El símbolo :– puede leerse como una implicación invertida (). utilizamos símbolos de predicado de más de una letra y representamos las variables con letras mayúsculas. que quiere decir que ‘si Z es un progenitor de Y y X es el padre de Z. Notad que.

enrique). mientras que las derechas representan subobjetivos. Ejemplos de hechos • padre (rafael. Y) :. sea verdadera) la parte izquierda. es un conjunto de implicaciones de la forma: B1 BnA C1 CpA donde A. • padre (josé. • madre (margarita. tenemos la cláusula que presentamos a continuación: progenitor (X. según se entiende en Prolog. La forma habitual de entender las cláusulas Prolog es la siguiente: la parte derecha especifica las condiciones que se deben cumplir (que deben ser verdaderas) para que se dé (es decir. y representan aquellas propiedades y relaciones que se dan de forma incondicional. Esta cláusula quiere decir que ‘para que X sea un progenitor de Y. Las cláusulas que no tienen parte izquierda se denominan hechos. FUOC • PID_00149519 56 Lógica de predicados Una regla. margarita). rafael). • madre (margarita. Con frecuencia se dice que las partes izquierdas representan objetivos. . Bi y Ci son predicados y donde las variables están cuantificadas universalmente. Y). enrique). Las cadenas que comienzan con una letra mayúscula son variables. mercedes). Un objetivo queda conseguido cuando se han conseguido todos los subobjetivos asociados. Así. • padre (eliseo. es necesario que X sea el padre de Y’. En Prolog las constantes se representan con cadenas de caracteres que comienzan con una letra minúscula.padre (X. continuando con el ejemplo anterior.

que suelen ser los caracteres ?– o algo similar.abuelo (eliseo. 2) Considera que el usuario pide que se valide la conclusión*. Un ejemplo de consulta. Entonces: ?. tenemos lo siguiente: ?. Ante una consulta. Típicamente. rafael). rafael). que parafraseamos como ‘¿Es Eliseo el padre de Rafael?’*. NO ?c) No es necesario que las consultas se refieran a hechos explicitados.no deben ser introducidos por el usuario. es el siguiente: * Los caracteres ?.padre (eliseo. el intérprete responde NO: ?.2. YES ?- * En el ejemplo que acabamos de exponer la conclusión sería padre (eliseo. tenemos que: a) El intérprete respondería YES. Asumiendo que las reglas y los hechos conocidos por el intérprete son los que se han utilizado antes como ejemplo. 3) Intenta validar la conclusión e informa de si ha sido posible hacerlo. . La validación de razonamientos entra en juego: consultas Las cláusulas y los hechos son elementos computacionalmente pasivos. describen propiedades y relaciones.2. rafael). Dado el ejemplo que nos ocupa. lo cual indica que la conclusión es correcta. FUOC • PID_00149519 57 Lógica de predicados 6. es decir. josé).padre (enrique. En Prolog los elementos activos se denominan consultas.padre (eliseo. pero no provocan que se calcule (compute) nada. el intérprete obra de la manera siguiente: 1) Considera todas las reglas y todos los hechos introducidos previamente como premisas. ?. enrique). YES ?b) Cuando la conclusión no se puede validar. las consultas se introducen cuando el intérprete muestra su prompt.

se debe demostrar. necesita conseguir el antecedente. enrique) y sustituye Z1 por rafael. Z1). es el siguiente: 1) El intérprete descubre la cláusula siguiente: abuelo (X. debe demostrar que Z1 es el padre de Enrique.. es capaz de responder que la conclusión es válida. Y1) :. enrique). también se podría haber utilizado.padre (X. enrique) y. en primer lugar. padre (X1.progenitor (Z1. Y) y la reescribe como progenitor (X2. . Z1). ¿Cómo lo hace? Aplica el método de resolución para validar la conclusión.progenitor (Z. que Z1 es un progenitor de Enrique y.. Como se quiere demostrar abuelo (eliseo..padre (X. el intérprete “toma nota” de que la cláusula: progenitor (X. es necesario. a pesar de ello. enrique). En este intento descubre el hecho padre (rafael. 2) El intérprete intenta demostrar progenitor (Z1. después. Ante esta cláusula se entiende que. enrique). y queda la cláusula siguiente: abuelo (eliseo. En este intento descubre la cláusula progenitor (X. después. Además. Y) :. El proceso.padre (X2. Y) :. Z). que explicaremos basándonos en el ejemplo en cuestión. FUOC • PID_00149519 58 Lógica de predicados En el caso del ejemplo. 3) El intérprete intenta demostrar padre (Z1. sustituye X2 por Z1 e Y2 por enrique. enrique) :. . Esto es como decir que para conseguir el objetivo de demostrar que Eliseo es el abuelo de Enrique. conseguir los subobjetivos de demostrar que Z1 es un progenitor de Enrique y. Y). el intérprete no conoce ningún hecho como abuelo (eliseo. veréis que lo único que hace el intérprete es intentar llegar al consecuente de una implicación: primero. y queda: progenitor (Z1. enrique) :. A continuación. conseguir los de demostrar que Eliseo es el padre de Z1.. Y) :. Y) tiene una alternativa.como . Y2) :. padre (eliseo. Con Si entendéis :.madre (X. que el padre de Z1 es Eliseo. el intérprete sustituye X1 por eliseo e Y1 por enrique. para demostrar que el abuelo de Enrique es Eliseo. enrique). En este punto entiende que para demostrar que Z1 es un progenitor de Enrique.. en primer lugar.progenitor (Z1. Y). Cambia los nombres de las variables y la reescribe así: abuelo (X1. padre (X. enrique). Y2). Esto es lo mismo que decir que la decisión de utilizar la cláusula progenitor (X. Y1). Y) :.padre (Z1.

pero este no sirve para demostrar padre (eliseo. enrique) :. enrique) y. Prolog implementa el método de resolución La resolución que ejecuta un intérprete de Prolog es equivalente a la que se ha estudiado en esta asignatura.progenitor (Z. Aquí es importante darse cuenta de la sustitución que se hace. efectivamente. rafael). enrique).2. 6. Como queda demostrado que padre (rafael. Las cláusulas y los hechos. porque todas las apariciones de la variable Z1 serán sustituidas por rafael. que es el hecho siguiente: padre (eliseo. FUOC • PID_00149519 59 Lógica de predicados esta sustitución queda demostrado que padre (Z1. enrique).progenitor (Z1. ya se ha demostrado progenitor (rafael. En el punto anterior. rafael). rafael). y este hecho es el mismo que se quiere demostrar. ya se ha reescrito de la manera siguiente: abuelo (eliseo. rafael) para completar la demostración de abuelo (eliseo. No obstante. enrique). sólo queda demostrar padre (eliseo. enrique) :. Z).padre (X. enrique). Y) :. Recordad que hemos explicado el método de resolución mediante el algoritmo de unificación en el subapartado 5. que explicitamos a continuación: • abuelo (X. Y) :. El mismo ejemplo que se acaba de ver servirá para demostrar que. la cláusula: Abuelo (eliseo. enrique). enrique). un intérprete de Prolog no hace más que ejecutar una forma particular del algoritmo de resolución que conocemos. enrique). Y). padre (eliseo. 5) Ahora el intérprete intenta demostrar padre (eliseo.4 de este módulo didáctico. Z1). el intérprete responde YES. 6) Dado que los dos subobjetivos que había que demostrar se han demostrado. Descubre el hecho que padre (rafael. padre (eliseo. . Y). rafael). por tanto. • progenitor (X.3. hay una alternativa.progenitor (rafael. también queda demostrado el hecho siguiente: progenitor (rafael. padre (X. 4) En este punto.

La cláusula que se tenga que eliminar será la que se encuentra en negrita en el gráfico de la página siguiente. Y)  progenitor (X. FUOC • PID_00149519 60 Lógica de predicados • progenitor (X. rafael). Enrique) es la conclusión. • madre (Margarita. Enrique). Rafael). Enrique) } Con el conjunto de apoyo { abuelo (Eliseo. enrique). Y) :. . Z)  abuelo (X. padre(X. Enrique).Y). mientras que la consulta abuelo (Eliseo.Y). Y)]. mercedes). Rafael). Mercedes). • padre (Rafael. • X Y Z [padre (X. Y)  progenitor (X. A diferencia de la forma en que se hacía en el módulo anterior. Y). Margarita). padre (Eliseo. • padre (Eliseo. • madre (margarita. padre (José. • padre (José. se harán las eliminaciones en el mismo orden en el que las haría un intérprete de Prolog. no son más que un conjunto de premisas como las siguientes: • X Y Z [progenitor (Z. • madre (margarita. Y)]. Margarita).Y)  progenitor(X. Enrique). margarita).Y) progenitor(X. • X Y Z [madre (X. madre (Margarita. madre(X. • madre (Margarita.Z)  abuelo(X. • padre (josé. abuelo (Eliseo. Y)].madre (X. Enrique) }. Mercedes). Todo esto da lugar al conjunto de cláusulas siguientes: S  { progenitor(Z. padre (Rafael. • padre (rafael. enrique). Enrique). madre (Margarita.Y). en lugar de intentar eliminar el literal de más a la derecha.Y)   padre(X. Y)  padre (X. • padre (eliseo.

debe demostrar.Y) Cambiar el nombre de las variables padre(X2.Z1) padre(X. tiene la respuesta que podéis observar (XEliseo?). para demostrar que el abuelo de Enrique es Eliseo. enrique).enrique)  progenitor(Z1. Para el ejemplo que nos ocupa.Y) padre(X.Y1) padre(X1.enrique) padre(rafael.Z)  abuelo(X. * Y. * Esta consulta expresada en el lenguaje de fórmulas quedaría como x abuelo (X.Y2) Sustituir X2 por Z1 e Y2 por enrique padre(Z1.Z1) padre(Z1. después. abuelo (eliseo. FUOC • PID_00149519 61 Lógica de predicados Si observáis la cláusula del recuadro. que el padre de Z1 es Eliseo.enrique) Sustituir Z1 por rafael padre(eliseo.Y) Cambiar el nombre de las variables progenitor(Z1. las capacidades del método de resolución.Z1)  abuelo(X1. X  eliseo? La consulta. en primer lugar. La misma analogía se puede hacer con las otras cláusulas troncales. veréis que se corresponde con aquella situación en la que el intérprete acaba de descubrir que.abuelo (X.enrique) padre(eliseo. que Z1 es un progenitor de Enrique y. . enrique) progenitor(Z.enrique) progenitor(Z1.rafael) padre(rafael. que se puede parafrasear como ‘¿Hay algún X que sea el abuelo de Enrique?’.enrique) padre(eliseo. por tanto.Z1)  abuelo(eliseo.rafael) padre(eliseo.rafael)  Un intérprete de Prolog demuestra todas sus capacidades* con consultas que incluyen variables. Esto quiere decir dos cosas: a) Que se ha podido demostrar que hay algún X que es el abuelo de Enrique.Y2)  progenitor(X2.enrique) padre(eliseo. en el cual se basa.Y)  progenitor(X. tenemos lo siguiente: ?. Enrique).enrique) padre(eliseo.Y1) Sustituir X1 por eliseo e Y1 por enrique progenitor(Z1.

si después de la respuesta del intérprete el usuario escribe .abuelo (X. Xjosé?. Utilizando el replanteamiento de la última decisión para explorar todas las alternativas posibles. YES. gracias a la sustitución de variables.. entonces el resultado es como el siguiente: ?. El método de resolución sirve para validar razonamientos y. para responder a determinadas cuestiones. FUOC • PID_00149519 62 Lógica de predicados b) Que durante el proceso de demostración la variable X ha sido sustituida por la constante Eliseo y que. por tanto. . El intérprete ha “calculado” que Eliseo es el abuelo de Enrique. enrique) Xeliseo?. Eliseo es el abuelo de Enrique. el intérprete es capaz de determinar que sustituyendo X por José también puede demostrar la conclusión. Sin embargo.

 FUOC • PID_00149519

63

Lógica de predicados

Resumen

Este módulo didáctico se ha iniciado con la constatación de la limitación expresiva del lenguaje de la lógica de enunciados. Esta limitación es paliada por el lenguaje de fórmulas, del cual el de enunciados es un subconjunto. Hemos presentado los elementos básicos de este nuevo lenguaje: los predicados, los términos –variables y constantes– y los cuantificadores. Y también la forma que tienen de relacionarse entre sí. Inmediatamente después, el lenguaje de fórmulas se ha puesto al servicio de la formalización de frases, expresadas en lenguaje natural. La deducción natural se ha ampliado con cuatro nuevas reglas que permiten introducir y eliminar cuantificadores. La presencia de estos operadores proporciona a este método de validación una complejidad que no tenía en el caso de la lógica de enunciados y que, parcialmente, puede ser paliada por la utilización de reglas derivadas y equivalencias deductivas. Para poder refutar razonamientos de invalidez segura, o casi segura, se ha estudiado la manera de encontrar contraejemplos. Antes ha sido necesario adaptar el concepto de interpretación a la mayor complejidad del lenguaje de fórmulas. En el campo de la manipulación algebraica, la forma normal de Skolem adquiere el relieve de la forma normal conjuntiva. Para calcular esta forma normal, hay que eliminar los cuantificadores existenciales. El proceso para llevar a término esta eliminación recibe el nombre de eskolemización. Después hemos vuelto al método de resolución. Éste, utilizando las formas normales de Skolem y apoyándose en la sustitución de variables por términos, permite validar y refutar razonamientos expresados en el lenguaje de fórmulas. Cuando es complicado calcular las sustituciones, el algoritmo de unificación describe minuciosamente lo que se debe hacer. Finalmente, Prolog y la programación lógica muestran cómo la implementación del método de resolución es un punto donde lógica e informática confluyen.

 FUOC • PID_00149519

65

Lógica de predicados

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 cualquiera). 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 explí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”).

c (constante): “Carlos”. A(x): “x es alegre”. utilizando única y exclusivamente los predicados siguientes: H(x): “x es hombre”. O(x): “x es un objeto”. P(x): “x es un pastor”. i) Ana es una mujer noble que es propietaria de todos los perros que no son propiedad de ningún hombre. C(x.y): “x tiene y”). P(x): “x es un presentador”. cada animal inteligente sería propiedad de alguna mujer. a (constante): “Ana”. d) Hay un pastor que sólo tiene ovejas negras (no tiene más que ovejas negras).y): “x tiene y” (“x es propietario de y”). 7. F(x): “x está federado”. sólo tiene de negras.y): “x tiene y” –“y es de x”–. I(x): “x es una institución”.y): “x aparece en y”). pero no hay ningún presentador que admire a todos los espectadores (E(x): “x es un espectador”.y): “x e y están casados”. ovejas. E(x): “x es un deportista”. b) Si un pastor tiene ovejas. h) Hay un pastor que es el propietario de todas las ovejas negras.y): “x aparece en y”). . I(x): “x es muy inteligente”. N(x): “x es negro”. b) Si Carlos es propietario de Bobby. A(x): “x es un seguro”. S(x): “x es un secreto”. A(x. d) Hay un escaño donde se han sentado todos los diputados (Dominio: un conjunto donde hay escaños y diputados).y): “x admira a y” –“y es admirado por x”–).y): “x vive en y”. C(x): “x es un catálogo”.y): “x tiene y” (“x es propietario de y”). T(x. j) Todos los animales que viven en un zoológico sienten nostalgia de la libertad (A(x): “x es un animal”. e) Si todos los propietarios de Bobby son inteligentes. S(x): “x es socio del club”). C(x): “x es caro”. f) Todos los deportistas federados tienen un seguro (Dominio: el conjunto de todos los deportistas. C(x): “x es un catálogo”. d) Todos los animales nobles e inteligentes son propiedad de Carlos. h) Si no hay subvenciones. g) Todos los deportistas federados tienen un seguro (Dominio: un conjunto no vacío cualquiera. Ana también lo es. A(x. g) Cuando un miembro de la pandilla se encuentra mal. entonces tiene alguna negra. h) Hay hombres y mujeres que son propietarios de animales. Z(x): “x es un zoológico”.y): “x desconoce y”). G(x): “x es perro”. f) Si se es pastor. hay que tener ovejas negras para tener ovejas alegres.y): “x es vecino de y”. F(x): “x está federado”. F(x): “x funciona correctamente”).y): “x compra y”. i) Ciertos espectadores admiran a todos los presentadores. a) Los perros nobles son animales inteligentes. 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). ninguna institución funciona correctamente (S(x): “x es una subvención”. f) Si todos los perros fuesen nobles. A(x. entonces tiene alguna alegre. m) Cada persona misteriosa tiene algún secreto que sus vecinos desconocen (P(x): “x es una persona misteriosa”. g) Cada hombre casado con una mujer inteligente es propietario de un perro noble. e) Hay un pastor que. B(x. 8. I(x): “x es inteligente”. e) Sólo las personas muy inteligentes son socias del club (Dominio: el conjunto de todas las personas. entonces Ana está casada con algún hombre noble. pero que no son inteligentes. b (constante): “Bobby”. b) En cada empresa trabaja un administrativo poco honrado (Dominio: un conjunto no vacío cualquiera). N(x): “x siente nostalgia de la libertad”). j) Todos los hombres casados con mujeres que no son propietarias de ningún animal inteligente tienen un perro noble. D(x): “x es mujer”. T(x. 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”. Formalizad las frases que se dan a continuación. A(x): “x es animal”. l) Hay personas que compran todos los objetos que aparecen en todos los catálogos (P(x): “x es una persona”. h) Cuando un miembro de la pandilla se encuentra mal. Antes de hacer la formalización. todos se ponen de mal humor (Dominio: el conjunto formado por todos los miembros de la pandilla). todos se ponen de mal humor (Dominio: un conjunto de personas cualquiera). f) Los informáticos sólo entienden a los informáticos (Dominio: un conjunto cualquiera de personas). N(x): “x es noble”. T(x. c) Hay que ser propietario de un perro noble para ser un hombre inteligente. V(x. c) Cada diputado se sienta en un escaño (Dominio: un conjunto no vacío cualquiera). e) Hay periodistas que conocen todos los secretos de los famosos (Dominio: un conjunto no vacío cualquiera). Formalizad las frases que se dan a continuación utilizando única y exclusivamente los predicados siguientes: O(x): “x es una oveja”. FUOC • PID_00149519 66 Lógica de predicados d) No todos los productos caros son de calidad (P(x): “x es un producto”. T(x. B(x. Q(x): “x es de calidad”). g) Hay una oveja que es propiedad de todos los pastores. c) Si un pastor no tiene ninguna oveja negra. Formalizad las frases siguientes en los dominios indicados. 6. V(x. T(x): “x tiene un seguro”). D(x.y): “x compra y”. a) Hay pastores que no tienen ovejas.

 FUOC • PID_00149519 67 Lógica de predicados 9. P(2)  F. x (H(x)  M(x))  z (H(z)  F(z)).y)  y x P(x. R(1. y M(y)  z H(z) c) x (H(x)  D(x)).2 }.1)  V. 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. x y R(x.2)  V.y)  x C(x).x)) x y P(x. x (O(x)  S(x))  x (C(x)  S(x)  N(x)) b) x (H(x)  M(x)).1)  F. (H(a)  M(a)). decid si alguna de estas tres interpretaciones es un contraejemplo: I1: <{ 1 }. x y Q(x.1)  V.1)  F. Q(2. x C(x)  x A(x) c) x A(x)  y B(y)  z (A(z)  B(z)) d) x {O(x)  y [G(y)  A(x.y)  C(y)). Validad por deducción natural los razonamientos siguientes: a) x y [M(x)  G(x. A(2)  F.1)  V.y)]. Q(1. P(2. 2 }.y) j) x [P(x)  y (G(y)  T(x. si la hay. 2 }. P(2. P(2)  V.y)]. G(a. Q(1. P(2.y))  M(x)]. M(a). a) x (C(x)  N(x)  P(x)). Q(2.x)  x y P(x. D(a)  H(a) d) x (H(x)  D(x)). {a  1}> Considerando sólo estas tres interpretaciones.2)  V }. P(1. y M(y)  z H(z). > I2: <{ 1. x [P(x)  y (C(y)  A(x. C(2)  F. { P(1. R(1. { P(1.1)  V. Demostrad.2 }.1)  V.2)  V }. C(1)  F. M(a)  H(a) b) x (H(x)  M(x)). 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.2)  F }. por ejemplo.z))  x (C(x)  P(x)) f) x [y P(x. R(2. z (C(z)  F(a.b)  M(a) b) x A(x)  y B(y). d) x (H(x)  D(x)).2)  V. 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.y))]  x (M(x)  C(x)).1)  F. a) x (H(x)  M(x)). Dado el razonamiento x y (A(x)  R(x. R(2. Q(2.y)]}. R(1. > Considerando sólo estas tres interpretaciones.2)  F }. Plantead la demostración como una reducción al absurdo y utilizad las leyes de De Morgan tantas veces con sea necesario. una interpretación en un dominio de dos elementos que no sea un contraejemplo. { A(1)  V.y). una interpretación en un dominio de un solo elemento que sea un contraejemplo. x y (P(x. x (B(x)  C(x)).y)  P(x. { P(1)  F. x (P(x)  G(x))  x {O(x)  y [P(y)  A(x.y)  x P(x).b)  M(a)  z P(z) 10. decid si alguna de estas tres interpretaciones es un contrajemplo: I1: <{ 1 }. 13. > es o no un contraejemplo del mismo. Dado el razonamiento x [P(x)  y Q(x.2)  F }.1)  F. C(2)  V. > I3: <{ 1. A(a).2)  F. C(1)  V. R(1. P(1. { P(1)  V. P(a. decid si alguna de estas tres interpretaciones es un contraejemplo: I1: < { 1.x)) y x (Q(x)  P(y.z)]. Q(2. 11. C(1)  V.y))]. R(2. {a  1}> I3: <{ 1. Q(1.b). y x P(x. P(2. R(2. { A(1)  V. Q(1.y)  z S(x.y)  x z S(x.z) g) x P(x.2)  F. c) Dad. que los siguientes razonamientos son correctos. 2 }.x). Demostrad con las reglas de la deducción natural que los razonamientos siguientes son correctos. { P(1. ¿hay algo que pueda afirmarse sobre la validez del razonamiento? 14.1)  F. 2 }.2)  F. y D(y)  z H(z) e) x (M(x)  H(x)). c) x (H(x)  M(x)  F(x)). { a  1 }> I2: <{ 1.2)  V }.1)  V. y D(y)  z H(z) e) x [C(x)  P(x)]  x y [M(x)  C(y)  F(x.2)  V. Q(1.1)  V }.1)  F.y)  P(y.2)  V }.2)  F.1)  V.2)  V. h) x [P(x)  y (M(y)  A(x. G(b)  T(a. > I3: < { 1. si la hay. { P(1)  V. x H(x)  x M(x) f) x (H(x)  M(x)  F(x)). { Q(1)  V. Q(2)  V. Q(1.y).1)  V }. P(1. Dado el razonamiento x P(x. P(2. R(1.1)  F. A(2)  V.y)] . P(2. x (C(x)  O(x)  P(x)). Q(2. { A(1)  V. 2 }. Plantead la demostración como una reducción al absurdo e intentad hacerla sin utilizar las leyes de De Morgan.1)  F.2)  F }. 2 }. > I2: < { 1. P(1. > Considerando sólo estas tres interpretaciones.x)): a) Indicad si la interpretación <{ 1. Atención. ¿hay algo que pueda afirmarse sobre la validez del razonamiento? 15. No sería correcto aplicar la regla E para obtener. utilizando las reglas de la deducción natural.y)]} 12. Dado el razonamiento x y (Q(x)  P(y. Q(2.1)  V. ¿hay algo que pueda afirmarse sobre la validez del razonamiento? . P(2)  F. ¿Puede afirmarse alguna cosa respecto de la validez del razonamiento? b) Dad. Plantead la demostración como una reducción al absurdo y utilizad las leyes de De Morgan y todas las equivalencias deductivas que os sean necesarias.

y))]. 17.z) ii) x [Q(x)  R(x)]  y z T(y.t.y))] g) x [P(x)  y (C(y)  A(x.y). Por lo tanto.a))  R(z)  T(f(z).y).y)  z t u [S(z.g(z). G(b)  T(a.a)]  z [R(z)  T(f(z).y)  z t u [S(z.y)] ii) x y [(Q(x)  R(y))  T(x.y).y)  S(f(x.z)  Q(t))]} ii) x { R(x)  y z [T(y.z)] e) i) x [C(x)  y T(x. x (B(x)  C(x)).y)] } b) x [P(x)  y Q(x.u)  R(x)  Q(y)]} ii) x y { T(x.x)) x y P(x.y)  P(y.a)  Q(b.y)  u [S(f(x.y)  z S(x. Encontrad la forma normal de Skolem de las fórmulas: a) x { P(x)  y [O(y)  T(x. todo el mundo es responsable.z)].z)  Q(t))]} iii) x { R(x)z[T(f(x).f(x. M(a)  x P(x) c) x (P(x)  Q(x)).f(y)) vi) y [(Q(a)  R(a))  T(y. x y (P(x.t.y)] iii) x y [Q(x)  R(y)  T(x. se han cometido errores.y)]  z R(z) c) x [P(x)  y Q(x. Algunos funcionarios también lo son. Por lo tanto.z)]  [R(x)  T(f(x). Los razonamientos que se dan a continuación no son correctos.f(x))  z R(z)] iii) x [(C(x)  T(x. d) Todos los marcianos tienen un desintegrador.y)  z Q(z) ii) x T(x.y)]  z [R(z)  t T(t.y)] d) i) y [C(y)  x T(x.u)  Q(y)]} 19.y))] x (C(x)  M(x)) h) x P(x. x C(x)  x A(x) f) x D(x).f(x.y))  M(x)].f(y)))  (R(a)  T(y. Sólo los aptos pueden ser recomendados.y)] iii) x [T(x.u) d) x { P(x)  y [O(y)  T(x.z)  Q(g(z)))]} iv) x z { R(x)  T(f(x).f(x))  z R(z)] v) x z [C(x)  T(x. hay marcianos que no tienen ningún desintegrador. Utilizad el método de resolución para descubrir si los siguientes razonamientos son o no correctos: a) x y P(x. x [P(x)  y (M(y)  A(x.y)  O(y)  N(y)] } 18.y) b) x [P(x)  y(G(y)  T(x.y)  z T(y.u)  (R(x)  Q(y))]} iii) x y { T(x.f(x.z)  t (S(x.t.y)  y x P(x.t.y).y)] ii) y x [T(x.b).u) } f) x { P(x)  y [T(x.z)  S(x.y)]  z u R(z.a)  Q(a) c) i) y x [T(x.y)]  z [O(z)  N(z)  T(x.x).g(z).z) v) [Q(a)  R(a)]  y T(y.y)] b) i) y x T(x.u)  (R(x)  Q(y))]} v) x y u {[T(x.z))] iii) [C(a)  x T(x. y x P(x.f(y)))] g) i) x {R(x)  y z [T(y.z)  Q(g(z))]} v) x z {[R(x)  T(f(x).z)]  u Q(x. De esto se desprende que todos los examinados son recomendados. Los desintegradores no existen.z) e) x A(x)  y B(y). b) Hay mujeres responsables.z)  Q(g(z))]} h) i) x y {T(x.z) iv) x [Q(x)  R(x)]  y z T(y. Formalizadlos y dad un contraejemplo para cada uno. x (R(x)  P(x))  x(Q(x)  R(x)) d) x [y P(x.y)]  z [R(z)  t T(t.u)  R(x)]  [T(x.z)] } e) x { P(x)  y [R(x.y))]  x [P(x)  y (D(y)  T(x.z)  [ S(x. Al obtener la forma normal de Skolem de las siguientes fórmulas.y)  z Q(z.f(x)))  z R(z)] iv) x [C(x)  T(x.g(z). a) Los políticos son inteligentes.y). x [P(x)  y (D(y)  T(x.y) .z) iii) x[Q(x) R(x)]  y z T(y.y).z)] ii) y [C(y)  x T(x.f(x. a) i) x y [Q(x)  R(y)  T(x.y)  z R(z)] ii) x [C(x)  T(x.f(x))  R(z)] f) i) x [Q(x)  R(x)]  y z T(y. Encontradlos y corregidlos (los números romanos indican los diferentes pasos que se dan). Consiguientemente.u)  (R(x)  Q(y))]} iv) x y u { T(x.y)  z Q(z.f(y))] vii)y [(Q(a)  T(y.y)  x z S(x. FUOC • PID_00149519 68 Lógica de predicados 16.y).y)  S(f(x.z)  (S(x.z)  t (S(x. hay políticos que son funcionarios.z)] iv) x z [(C(a)  T(x. c) Sólo los que se han examinado pueden ser aptos.y)  [S(f(x.y).

a) S  { A(x. Como conclusión podemos decir que ningún astrólogo es amigo de ningún físico. FUOC • PID_00149519 69 Lógica de predicados 20.f(x)) } b) S  { C(x)  B(a. 21. d) Todo número que puede dividirse por treinta y dos se puede dividir por cuatro. Setenta y tres no es divisible por dos. Es posible que las siguientes aplicaciones del método de resolución contengan errores.c). C(b). b) Hay pacientes que sienten admiración por todos los médicos. hay traductores. e) Si hay lingüistas. Consiguientemente. Todas las novelas son escritas por algún escritor (cada novela es escrita por algún escritor). todos los escritores lingüistas escriben algún escrito narrativo.x). Hoy no se ve a Alberto demasiado feliz. Decid de qué errores se trata. si los hay. no hay ningún médico que sea curandero. Pues bien. B(f(x). Las cláusulas en negrita son el conjunto de apoyo. B(x. A(b. Si hay traductores. Los números divisibles por cuatro son pares.y)  B(y. a) Ningún astrólogo es amigo de ningún científico. No hay ningún paciente que admire a ningún curandero. Formalizad los razonamientos siguientes y validadlos utilizando el método de resolución. setenta y tres no puede dividirse por treinta y dos. A(x. c) Alberto es feliz si a todos sus amigos les gusta la música. todos los escritores escriben novelas (cada escritor escribe alguna novela). Las novelas son escritos narrativos. Así pues. y cómo se arreglarían.x). Todos los físicos son científicos.z) } El razonamiento que da lugar al conjunto S no es correcto porque empezando con la cláusula del apoyo no puede llegarse a  y las premisas son consistentes porque del conjunto { C(x) B(a.f(x)).f(x)). C(b) } no puede obtenerse la cláusula vacía. . Los números que no son divisibles por dos no son pares. Debe de ser que a algún amigo suyo no le gusta la música.

A(z). D(x. C(a). A(x). A(b)  D(b. ya que x e y son dos variables diferentes y por lo tanto la discrepancia es irresoluble. C(u)  B(u).a. d) {A(x)  B(a).z)  B(y).y.f(x)). A(y)  B(y)  F(x.f(x)). FUOC • PID_00149519 70 Lógica de predicados c) { B(x)  F(x. A(a)  F(c.c)} .z) } No se puede continuar porque la cláusula A(x) no puede resolverse contra A(a)  A(y).

y4. 2. a) b) c) d) e) f) g) h) i) j) k) Correcta.t6)).x2)  Q(a)  y3 R(a.z) es una fórmula. c) x1(y2 T(x1.y) es una fórmula atómica y y P(x. La variable z3 es libre. d) x1 y2 (z3 R(x1. porque las constantes no se pueden cuantificar.z) también lo es.z) es una fórmula.x3. finalmente. x z P(x. H(x): “x es honrado” x (P(x)  H(x)) c) H(x): “x es honrado” x H(x) d) P(x): “x es una persona”. porque la conjunción debe “conectar” dos fórmulas y x no es una fórmula.x3). porque el cuantificador universal. La variable y4 es libre.z) es una fórmula y. Son deductivamente equivalentes.y2.z3. Incorrecta. Incorrecta. b) x [A(x)  (M(x)  C(x))] O también: x [A(x)  (C(x)  M(x))]. tampoco lo es z. La variable x3 es libre. porque T es un predicado ternario. entonces: z P(x. Entonces x z P(x.x1))  T(x3. Incorrecta. Observad que la condición que se expresa es de necesidad.y5. También es correcto: x [P(x)  G(x)  N(x)]  y [T(y)  G(y)  N(y)]. Dado que z P(x. porque a y b son constantes y no fórmulas.t4)  x5 P(x5. a y b son constantes y x es una variable.z) no lo hace. 4. a) x [P(x)  T(x)  G(x)  N(x)]. Para esta solución se utilizarán subíndices para indicar qué variables son “la misma variable”. entonces. Son deductivamente equivalentes.y) son fórmulas correctas. FUOC • PID_00149519 71 Lógica de predicados Solucionario Ejercicios de autoevaluación 1. Incorrecta.z3)  x4 Q(x4)  z5 P(x1. Incorrecta.x1)). 3.t4)  Q(y2)).z) también lo es. debe preceder una variable y en P(z.y2). f) x [H(x)  D(x)  C(x)]. x z tampoco es ninguna fórmula. a) H(x): “x es honrado” x H(x) b) P(x): “x es una persona”.x1. la utilización de subíndices no se contempla en la escritura de fórmulas. e) x [C(x)  B(x)  F(x)  T(x)] O también: x [C(x)  B(x)  (F(x)  T(x))] Son equivalentes. La variable t4 es libre. e) x1 (x2 Q(x2)  P(x1.y2. porque P(x. O también: x [H(x)  D(x)  C(x)] Son equivalentes. La variable t6 es libre. Correcta.y3)  T(y4.y2). Correcta. Incorrecta. 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. H(x): “x es honrado” x (P(x)  H(x)) .z3.a. 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. de hecho cualquier cuantificador. f) x1 y2 z3 (t4 R(x1. z P(x. Correcta. g) x1 (x2 P(x2. La variable x3 es libre.z5)).y) y x y P(x. b) x1 Q(a)  y2 P(x3.z) también lo es. Correcta. porque P(x. La variables x3 es libre. porque y Q(y) no es un término. z no es una fórmula y. a) x1 Q(x1)  y2 P(x3. en consecuencia. Se trata sólo de un recurso utilizado en este ejercicio con el propósito de hacer su solución más clara.y2.t4)  y5 T(x1. ¡Atención!. porque igual que en el caso anterior.

j) P(x): “x es una persona”. H(x): “x es honrado”. H(x): “x es honrado”.y): “x trata a y”: a: “Juan”.y): “x se trata con y” x (H(x)  y T(x.a) o) T(x.y): “x trata con y” x (H(x)  y T(x.y): “x trata con y” x (H(x)  y (T(x.y): “x se trata con y” x (H(x)  y (T(x. P(a)  H(a) g) H(x): “x es honrado”.y)  H(y))) Observad que hemos entendido que “gente” es sinónimo de “personas”. a: “Juan” x T(a. H(x): “x es honrado”. T(x.y): “x trata a y”. Si creemos que sí que lo es y que hay que explicitarlo.y))) Observad que hemos entendido que “nadie” quiere decir “ninguna persona”.y)) h) P(x): “x es una persona”. a: “Juan” x (P(x)  H(x)  T(a. 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))  P(a)  H(a) 5. T(x.y): “x se trata con y” x (P(x)  H(x)  y (T(x. b: “María” T(a. a: “Juan” H(a) Observad que esta formalización no “afirma” que Juan sea una persona.y))) Observad que hemos entendido que “todo el mundo” quiere decir “todas las personas”. ni mucho menos que sea honrado. Si quisiéramos mantener la misma semántica del punto anterior habría que formalizar: x (P(x)  H(x)  T(a. T(x.y): “x trata con y” x (P(x)  H(x)  y (P(y)  T(x. a: “Juan” H(a) f) H(x): “x es honrado”.b)  T(b.y): “x trata a y”.y)  H(y))) l) H(x): “x es honrado”. T(x. T(x.y): “x se trata con y” x (P(x)  H(x)  y (P(y)  T(x. H(x): “x es honrado”. x B(x)  y N(y)  z (B(z)  N(z)) y x B(x)  y N(y)  z (B(z)  N(z)) . i) H(x): “x es honrado”. n) T(x.x)) Esta formalización no “afirma” que Juan sea una persona. T(x. H(x): “x es honrado”. T(x.x) p) P(x): “x es una persona”.y)) m) P(x): “x es una persona”. FUOC • PID_00149519 72 Lógica de predicados e) H(x): “x es honrado”.y)  P(y)  H(y))) k) H(x): “x es honrado”. T(x. a: “Juan”. entonces: P(x): “x es una persona”.

y)] } l) x { P(x)  y [O(y)  z (C(z)  A(y. pero no todos los reales son racionales”. e) x (S(x)  I(x)). S(x.y): “x se sienta en y” x [D(x)  y (E(y)  S(x. no sería correcta: x (H(x)  D(x)  T(x)).x))] También habría sido correcto no distinguir entre “ser administrativo” y “ser poco honrado”.y))] d) D(x): “x es un diputado”.y))] f) I(x): “x es un informático”. i) x [E(x)  y (P(y)  A(x. c) x (Q(x)  R(x))  y (R(y)  Q(y))  z (R(z)  Q(z)) También sería correcta: x (Q(x)  R(x))  y (R(y)  Q(y))  z (R(z)  Q(z)).x))] e) P(x): “x es un periodista”.y)  z (V(z. T(x. Observad que la frase expresa una condición necesaria: ser muy inteligente es necesario para ser socio del club. P(x): “x es poco honrado”.y)] } m)x { P(x)  y [S(y)  T(x. b) E(x): “x es una empresa”.y))] h) x S(x)  y (I(y)  F(y)) También serían correctas: x S(x)  x (I(x)  F(x)) y x S(x)  y (I(y)  F(y)). la formalización sería: x [E(x)  y (H(y)  T(y. E(x. C(x.y)] } 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”. FUOC • PID_00149519 73 Lógica de predicados b) x (H(x)  D(x)  T(x)) También serían correctas: x (H(x)  T(x))  y (D(y)  T(y)) y x (H(x)  T(x))  x (D(x)  T(x)). A(x): “x es un administrativo”.y))] } 6.y))  N(x)] k) x { P(x)  y[O(y)  z (C(z)  A(y. a) C(x): “x es catalán”.y): “x se sienta en y” (o “x se ha sentado en y”) x [E(x)  y (D(y)  S(y. Observad que la frase dada es una implicación y que cada parte de la implicación es una fórmula cuantificada. M(x): “x come escudella” x (M(x)  C(x)) También sería correcto: x (C(x)  M(x)).y))] j) x [A(x)  y (Z(y)  V(x. la formalización x (C(x)  M(x)) no sería correcta.y)  I(y))] . También sería correcto: x (I(x)  S(x)).z))  C(x. En cambio.z))  B(x.y): “x conoce y” x { P(x)  y [S(y)  z (F(z)  T(y. E(x): “x es un escaño”. S(x. Observad que “Sólo algunos números reales son racionales” se ha interpretado como “Hay reales que son racionales. E(x): “x es un escaño”.y): “x es de y”. S(x): “x es un secreto”.y))]  x [P(x)  y (E(y)  A(x. f) x (F(x)  T(x)) g) x [E(x)  F(x)  y (A(y)  T(x.x))] c) D(x): “x es un diputado”. Entonces.z))  B(x. Entonces.y): “x trabaja en y” x [E(x)  y (A(y)  P(y)  T(y. la formalización habría sido: x [P(x)  y (M(y)  C(x. utilizando un solo predicado H(x): “x es un administrativo poco honrado”. d) Observad que la forma más sencilla de formalizar esta frase es negar la formalización de “Todos los productos caros son de calidad”: x (P(x)  C(x)  Q(x)) También sería correcto: x (P(x)  C(x)  Q(x)). F(x): “x es famoso”. T(x. Dado que la frase expresa una condición necesaria (hay que ser catalán para comer escudella).y): “x entiende y” x [I(x)  y (E(x.x)  D(z.

M(x): “x se encuentra mal”. H(x): “x se pone de mal humor” x M(x)y H(y) También es correcto: xM(x)  xH(x).t)) } 9. o también: x [(H(x)  D(x))  y (A(y)  T(x.z))] } c) x { P(x)  [y (O(y)  N(y)  T(x. y)  O(y)  N(y)] } e) x { P(x)  y [T(x. a) x [G(x)  N(x)  A(x)  I(x)] b) T(c.y))  z (O(z)  A(z)  T(x. b) (1) (2) (3) (4) (5) (6) x (H(x)  M(x)) y M(y) M(a) H(a)  M(a) H(a) z H(z) P P E 2 E 1 MT 3.x)] e) x [T(x. por lo tanto.y))  z (O(z)  N(z)  T(x.y))  z (O(z)  A(z)  T(x. 4 I 5 Observad que en el paso 4 se elige la constante a para eliminar el cuantificador universal porque con cualquier otro término no sería posible aplicar la regla MT en el paso 5.b)  T(a. a) x { P(x)  y [O(y)  T(x. FUOC • PID_00149519 74 Lógica de predicados g) M(x): “x se encuentra mal”.x))] g) x [H(x)  y (D(y)  I(y)  C(x. 3 . Observad que hemos interpretado que “Todos se ponen de mal humor” quiere decir “Todos los miembros de la pandilla”. 3 Observad que el paso 3 es correcto porque x está cuantificada universalmente y.x)] } h) x { P(x)  y [O(y)  N(y)  T(x.y))  I(x)] i) N(a)  D(a)  x [G(x)  y (H(y)  T(y.x)] f) x [G(x)  N(x)]  x [A(x)  I(x)  y (D(y)  T(y. c) (1) (2) (3) (4) x (H(x)  D(x)) D(a) H(a)  D(a) H(a) P P E 1 SD 2. 7.x))  T(a.y))  (H(x)  I(x))] d) x [A(x)  N(x)  I(x)  T(c. a) (1) (2) (3) (4) x (H(x)  M(x)) M(a) H(a)  M(a) H(a) P P E 1 MT 2.b)  I(x)]  x [H(x)  N(x)  C(a.y))  I(x)].y))  z (G(z)  T(x. H(x): “x se pone de mal humor” x (C(x)  M(x))  y (C(y)  H(y)). También es correcto: x (C(x)  M(x))  x (C(x)  H(x)). z))] } g) x { O(x)  y [P(y)  T(y.z)  N(z))] h) x [H(x)  y (A(y)  T(x.z))  C(x.y)] } 8.y)]  t (G(t)  N(t)  T(x.b) c) x [H(x)  I(x)  y (G(y)  N(y)  T(x. y)  O(y)  N(y)] } f) x { P(x)  [y (O(y)  N(y)  T(x.x)] j) x { H(x)  y [D(y)  z (A(z)  I(z)  T(y.y))  I(x)]  x [D(x)  y (A(y)  T(x.y))] O también: x [y (G(y)  N(y)  T(x.y)] } b) x { P(x)  [y (O(y)  T(x. h) C(x): “x es miembro de la pandilla”. z))] } d) x { P(x)  y [T(x. puede ser sustituida por cualquier término.

z ha sido utilizada para eliminar el cuantificador universal de 1. FUOC • PID_00149519 75 Lógica de predicados d) (1) (2) (3) (4) (5) (6) x (H(x)  D(x)) y D(y) D(a) H(a)  D(a) H(a) z H(z) P P E 2 E 1 SD 3. pero se podría haber utilizado cualquier otro término. 7 I 8 Observad que. 3. 4 . 4 x A(x) x A(x) x A(x) A(a) A(a) P H E 2 E 1 I 2. 4 I 5 Observad que hay que eliminar primero el cuantificador existencial y después el universal. 4 I 5 En este caso el paso 4 es incorrecto. porque se utiliza una constante que ya ha aparecido antes. en lo que respecta al orden en el que los cuantificadores se han eliminado. 4 E 5 I 6 Observad que el paso 7 es correcto porque la variable z era arbitraria: en el paso 3. 5 E 3 SD 6. La siguiente demostración no sería correcta: (1) (2) (3) (4) (5) (6) x (H(x)  D(x)) y D(y) H(a)  D(a) D(a) H(a) z H(z) P P E 1 E 2 ¡incorrecto! SD 3. se ha seguido la misma estrategia que en el punto d. f) (1) (2) (3) (4) (5) (6) (7) (8) (9) x (H(x)  M(x)  F(x)) y (H(y)  M(y)) H(a)  M(a) H(a)  M(a)  F(a) H(a) M(a)  F(a) M(a) F(a) z F(z) P P E 2 E 1 E 3 E 4. e) (1) (2) (3) (4) (5) (6) (7) x (M(x)  H(x)) x H(x) M(z)  H(z) H(z) M(z) M(z) x M(x) P P E 1 E 2 MT 3. g) (1) (2) (3) (4) (5) h) (1) (2) (3) (4) (5) x A(x) x A(x) x A(x) A(a) A(a) P H E 1 E 2 I 2. 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. 3.

a) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) b) (1) (2) (3) (4) (5) (6) (7) (8) (9) z H(z) x (H(x)  M(x)) y M(y) z H(z) M(a) H(a)  M(a) H(a) M(a) M(a) P P H E 2 E 1 E 3 E 5. 12 I 9.y))  M(a) M(a) (P(a)  y (G(y)  T(a. ha sido necesario utilizar la constante a para.y) P E 1 E 2 I 3 I 4 Tened presente que. 8 x (C(x)  N(x)  P(x)) x (C(x)  O(x)  P(x)) x (O(x)  S(x)) C(a)  O(a)  P(a) C(a)  N(a)  P(a) P(a) (C(a)  N(a)) C(a)  N(a) C(a) N(a) O(a)  S(a) O(a) S(a) C(a)  S(a)  N(a) x (C(x)  S(x)  N(x)) P P P E 2 E 1 E 4 MT 5.t) x P(x. 6 ED 7 E 4 SD 8. 10.y) P(a.y)) P(a) z P(z) P P E 1 E 2 MT 3.y))  M(x)] G(b)  T(a. es necesario reflexionar sobre qué término (¿una variable?. antes de eliminar un cuantificador universal. FUOC • PID_00149519 76 Lógica de predicados i) (1) (2) (3) (4) (5) j) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) x [P(x)  y (G(y)  T(x. 6 it 4 I3.y)) G(b)  T(a. 10. 13 I 14 . ¿una constante?.y) y P(a.b)  M(a) P(a)  y (G(y)  T(a. 9 E 3 E 4 E 11. ¿qué constante?) hay que utilizar para su eliminación.y))) P(a)  y (G(y)  T(a. por ejemplo. 4 ED 5 E 2 I 7 SD 6. 7. En este caso. 8 I 9 x y P(x. poder disponer de M(a) y luego aplicar la regla MT.t) y x P(x.b) y (G(y)  T(a.

11 I 12 it 2 I 3. también sería correcta: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) d) (1) (2) (3) (4) (5) (6) (7) x (H(x)  D(x)) y D(y) y D(y) D(a) H(a)  D(a) H(a) z H(z) P P ED 2 E 3 E 1 SD 4. FUOC • PID_00149519 77 Lógica de predicados c) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) z (H(z)  F(z)) z (H(z)  F(z)) x (H(x)  M(x)  F(x)) x (H(x)  M(x)) z (H(z)  F(z)) z (H(z)  F(z)) (H(a)  F(a)) H(a)  F(a) H(a)  M(a)  F(a) H(a) M(a)  F(a) F(a) M(a) H(a)  M(a) x (H(x)  M(x)) x (H(x)  M(x)) P P H ED 3 E 4 ED 5 E 1 E 6 E 7. 5 I 6 H(u)  F(u) z (H(z)  F(z)) F(u)  H(u) H(u)  F(u) x (H(x)  M(x)  F(x)) x (H(x)  M(x)) x (H(x)  M(x)) (H(u)  M(u)) H(u)  M(u) H(u) H(u)  F(u) H(u)  F(u) M(u) H(u)  M(u)  F(u) F(u) M(u)  F(u) (M(u)  F(u)) H(u) P P ED 2 E 3 ED 4 H I 6 ED 7 H E 1 H I 9. 16 I 17 . 13 I 11. 14 E 15 La siguiente demostración. 8. 14 ED 15 E 5. 11 ED 12 MT 10. que no es una reducción al absurdo. 8 E 6 SD 9. 10 I 8. 13.

a) y P(t.y)  z S(t. 12.z) x z S(x. 13 Observad lo siguiente: • La primera premisa es una implicación ( es su conectiva principal).b) F(a. No sería correcto pasar de x y [M(x)  C(y)  F(x.y) x y P(x.z) P P E 2 E 3 I 4 E 1 E 5.y)  z S(x. 4 E 5 E 6 it 2 E 7.y)] M(a) z (C(z)  F(a. 7 E 8 x [y P(x.z)) x (C(x)  P(x)) x y [M(x)  C(y)  F(x. • En el paso 6. • La fórmula x y [M(x)  C(y)  F(x.b) M(a) C(b)  F(a.y) x P(x.b)] por eliminación del cuantificador existencial.x) x y P(x.y)   . la constante utilizada al aplicar E ha sido b. La constante a no podía utilizarse porque ya había aparecido antes. Después puede aplicarse la regla E a este resultado. Por esta razón el cuantificador que se elimina es el universal (paso 6).y)] y [M(a)  C(y)  F(a.z) z S(t.y) x y P(x.y) P(a.z)] y x P(x. Por este motivo es lícito aplicarle la regla E cuando se dispone de su antecedente (paso 5).b) P P P H E 1. 8 E 3 E 9 E 10.y)] M(a)  C(b)  F(a. 11 E 9 I 4.y) x y P(x.b) C(b)  F(a.y) x P(x. f) (1) (2) (3) (4) (5) (6) (7) (8) g) (1) (2) (3) (4) (5) (6) (7) (8) (9) x y P(x.a) P(a.y) x y P(x. 6 I 7 Observad que los puntos 3 y 4 se podrían haber resumido en uno solo porque: x y P(x.y) y P(t.y)] a x [M(x)  C(b)  F(x.y) y P(a. FUOC • PID_00149519 78 Lógica de predicados e) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) x (C(x)  P(x)) x [C(x)  P(x)]  x y [M(x)  C(y)  F(x.a) P(t.a) P H ED 2 ED 3 E 4 E 5 E 1 I 2.b) C(b) F(a.y)] está cuantificada universalmente (es el resultado de cuantificar universalmente una fórmula cuantificada existencialmente). 6.

b)  P(a.y))] x [P(x)  y (C(y)  A(x. 16.b) M(a) P P P E 1 E 4 MT 2.y))] x [P(x)  y (C(y)  A(x.b) (M(a)  G(a. 14 E 13.y))] x [P(x)  y (C(y)  A(x.y))] x [P(x)  y (C(y)  A(x.y))] x [P(x)  y (C(y)  A(x.y)] M(a)  G(a. 6 I 7 ED 8 MT 1.y))]        11.b) G(a.y))] x [P(x)  y (C(y)  A(x. 17 E 18 Observad que el paso 7 es.y)) P(b) y (C(y)  A(b.a) C(a) M(a) A(b. 5 ED 6 SD 7.y)  P(x. FUOC • PID_00149519 79 Lógica de predicados h) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) (18) (19) x (M(x)  C(x)) x (M(x)  C(x)) x [P(x)  y (M(y)  A(x. 15 I 3.y))] P(b)  y (C(y)  A(b.y)) x [P(x)  y (C(y)  A(x. la interiorización de la negación de la segunda premisa: x [P(x)  y (C(y)  A(x.b)) M(a)  G(a.y))] x [P(x)  y (C(y)  A(x.y)] P(a.a) M(a)  A(b. a) (1) (2) (3) (4) (5) (6) (7) (8) b) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) x A(x)  y B(y) x (B(x)  C(x)) x C(x) x C(x) B(u)  C(u) C(u) B(u) y B(y) y B(y) x A(x) x A(x) P P P ED 3 E 2 E 4 MT 5.y)) y (M(y)  A(b. en el fondo.a) A(b.y)  P(a. 3        . 9 ED 10 x y [M(x)  G(x. 9 E 6 E 10 E 11 E 5 E 5 E 12.a) P P H ED 3 E 4 E 1 ED 2 E 7 E 6 E 8.b) y [M(a)  G(a.y)) C(a)  A(b.y))] x (M(x)  C(x)) x (M(x)  C(x)) M(a)  C(a) P(b)  y (M(y)  A(b.

1) y la conclusión es equivalente a Q(1)  P(1. es equivalente a: y [(Q(1)  P(y. a) En el dominio { 1.y)] P(b)  A(a. 10 I 11 E 4 I 12.2))  (Q(2)  P(2. 7 E 8 E 4 E 10 I 2. 16 z (A(z)  B(z)) z (A(z)  B(z)) x A(x)  y B(y) z (A(z)  B(z)) z (A(z)  B(z)) z (A(z)  B(z)) A(u)  B(u) A(u) x A(x) y B(y) B(a) A(a)  B(a) B(a) P H ED 2 ED 3 E 4 E 5 I 6 E 1.y)] } P P H E 3 E 4 E 5 E 2 E 6 E 7. que es equivalente a: [(Q(1)  P(1. y su valor en la interpretación dada es: [(V  V)  (V  F)]  [(V  F)  (V  V)]  V En lo que respecta a la conclusión.1).b) G(b)  A(a.y)] } x { O(x)  y [G(y)  A(x. en el dominio { 1. 13 I 14 it 1 I 3.b) y [G(y)  A(a.y)] } O(a)  y [P(y)  A(a.1))  (Q(1)  P(2.y)] } x { O(x)  y [P(y)  A(x.x))]. la premisa del razonamiento es equivalente a Q(1)  P(1.y)] y [P(y)  A(a. la premisa del razonamiento es equivalente a: x [(Q(x)  P(1. b) En un dominio de un solo elemento.x))  (Q(x)  P(2.y)] O(a) O(a)  y [G(y)  A(a.1))]  [(Q(2)  P(1. FUOC • PID_00149519 80 Lógica de predicados c) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) d) (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) x { O(x)  y [G(y)  A(x.1))  (Q(2)  P(2.2))].2))]  [(Q(1)  P(2.y)] x { O(x)  y [G(y)  A(x. Y esto nos permite afirmar que el razonamiento no es válido.y)] } x (P(x)  G(x)) x { O(x)  y [P(y)  A(x. 15. la interpretación es un contraejemplo del razonamiento porque hace ciertas sus premisas y falsa la conclusión. Dado que se . por ejemplo { 1 }. y su valor en la interpretación dada es: [(V  V)  (V  F) ]  [(V  F)  (V  V)]  F De este modo. 2 }.1))  (Q(2)  P(y.1))  (Q(2)  P(1.2))] que es equivalente a: [(Q(1)  P(1. 8 E 6 I 9. 11 E 12 12. 2 }.b) P(b)  G(b) P(b) G(b) A(a.2))]. 9.

Q(2)  F. Ahora bien. c) Una interpretación no es un contraejemplo si hace falsa alguna de las premisas o cierta la conclusión (o las dos cosas simultáneamente). P(1.1)  P(2. Q(2)  F. no es un contraejemplo. 7.2))  (P(2.1)  C(1))  (A(2)  R(2. pero la primera y la segunda interpretación no lo hacen. 2 } podemos reescribir la primera premisa como P(1.1). { P(1. en consecuencia.y) y Q(a. P(1.1)  P(2. La tercera interpretación sí que es un contraejemplo por lo siguiente.2))]  [(Q(1)  P(2.1)  V. P(2. 2 }. en consecuencia.1)  C(1))  (A(1)  R(1.1)  F.2)  V }. el razonamiento no es correcto porque la siguiente interpretación sí que es un contraejemplo: <{ 1.1)  V. 5 E 6 E 2 E 8 I3. P(1. P(2.2)  C(2))  (A(2)  R(2.1))  (Q(2)  P(1. tampoco puede afirmarse que sea correcto porque quizá hay otra interpretación que sí sea un contraejemplo.1). 2 }.2)  V. FUOC • PID_00149519 81 Lógica de predicados trata del mismo enunciado. 2 }. bastará con hacer que uno de los disyuntandos sea cierto. Esto quiere decir que el razonamiento no tiene contraejemplos en los dominios de tamaño 1. Dado que es una disyunción. En consecuencia. El hecho de no encontrar un contraejemplo no nos permite afirmar nada sobre la validez o invalidez del razonamiento.1)  F. Se trata de que sea cierto el enunciado: [(Q(1)  P(1.2). También en el dominio { 1. P(2. podemos demostrar que el razonamiento es válido por otros medios: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) x P(x) x [P(x)  y Q(x.y) x P(x) P(a) P(a)  y Q(a.1)  F. tampoco es un contraejemplo. que és vàlid. 9 15. una interpretación que no es un contraejemplo es: <{ 1. Dado que ninguna de las tres interpretaciones es un contraejemplo. P(1.2)  V }. Intentaremos encontrar una interpretación que haga cierta la conclusión.y) Q(a. De este modo.y) Q(a.2))].2)). P(1.2)  F.2)). De hecho. Tomamos el primero (Q(1)  P(1. • La primera premisa se puede reescribir: (A(1)  R(1. entonces.2)  V }. 2 }. La tercera interpretación hace falsa este enunciado y. { Q(1)  F.1))  (Q(2)  P(2.b) y Q(a.2)  C(2)). podemos reescribir la conclusión del razonamiento como: (P(1. En el dominio { 1. > 14.b) P P H E 3 E 1 E 4. La segunda interpretación hace cierto este enunciado y. ninguna de las tres es un contraejemplo. Las tres interpretaciones hacen falsa la segunda premisa y. es imposible hacer cierto el primero y falso el segundo. y su valor en la tercera interpretación es: (V  F  F)  (V  F  F)  (F  V  F)  (F  V  F)  V • La segunda premisa se puede reescribir A(1) y es cierta en la tercera interpretación. podemos afirmar que el razonamiento no tiene ningún contraejemplo en un dominio de un solo elemento. P(2. el razonamiento equivale a: P(1.1))  (Q(2)  P(1. Una manera de hacerlo cierto es que: Q(1)  F y Q(2)  F. P(2. { Q(1)  F. > 13.1)  P(1.1)  P(1. Ahora bien. > y otra es: <{ 1. P(1. Un contraejemplo debe hacer falsa la conclusión.1)  V. no puede afirmarse que el razonamiento sea incorrecto. .1)  P(1. P(2.y)] x y Q(x. En el dominio { 1 }.2)  V.

x (F(x)  I(x))  x (P(x)  F(x)) En un dominio de un solo elemento. como mínimo. puede ser A(1)  V. b) D(x): “x es una mujer”. Por ejemplo: <{ 1.1)  R(1. I(x): “x es inteligente”. { P(1)  F. R(2)  F }. { 1 }. De esta forma haremos cierta la premisa y falsa la conclusión). el razonamiento es equivalente a: P(1)  I(1). 16. 2 }. { D(1)  V. A(1)  V. x (R(x)  A(x))  x (E(x)  R(x)) En un dominio de un solo elemento.2)  R(2. > C on A(1) = F también se consigue que la primera premisa sea cierta. R(x): “x puede ser (es) recomendado” x (A(x)  E(x)). > es un contraejemplo. D(2)  V. a) P(x): “x es un político”. I(1)  V. .1)  R(2. podemos rescribir este razonamiento: A(1)  E(1). En un dominio de dos elementos. { E(1)  V. R(1)  F }. F(1)  V }. La única posibilidad es E(1)  V y R(1)  F. De este modo. por ejemplo {1}. A(x): “x puede ser (es) apto”. podemos afirmar que es incorrecto. sí que hay contraejemplos (buscamos una situación en la que no todos los elementos del dominio sean “responsable”. Para hacer cierto A(1)  E(1) cuando E(1)  V. podemos reescribir la tercera premisa como: R(1. pero que uno de ellos –una mujer– sí que lo sea. R(1)  V. un contraejemplo del razonamiento es: <{ 1 }.2) Y su valor en la tercera interpretación es F  F  V  V  V. un contraejemplo. Dado que el razonamiento tiene. > c) E(x): “x se ha examinado”. F(x): “x es funcionario” x (P(x)  I(x)). R(1)  A(1)  E(1)  R(1) Un contraejemplo debe hacer falso E(1)  R(1). R(x): “x es responsable” x (D(x)  R(x))  x R(x) En un dominio de un solo elemento el razonamiento no tiene ningún contraejemplo porque: D(1)  R(1)  R(1) es un razonamiento correcto. F(1)  I(1)  P(1)  F(1) Hacemos la tabla de verdad: P(1) V V V V F F F F I(1) V V F F V V F F F(1) V F V F V F V F P(1)  I(1) V V F F V V V V V F F F F F(1)  I(1) V F P(1)  F(1) V Descubrimos que la interpretación <{ 1 }. FUOC • PID_00149519 82 Lógica de predicados • Finalmente.

y))  R(b)] y [(P(a)  R(b))  (Q(a.y)]  z R(z) (P(a)  y Q(a.f(x))]  z R(z.y)]} iii) P(a)  y [O(y)  T(a.z)]} x {(P(x)  y [O(y)  T(x.z)])  u Q(x.y))]. independientemente de lo que sea T(1.u) x [P(x)  y Q(x.z)]} x { (P(x)  y [O(y)  T(x.y)  O(y)  N(y)]} x {P(x)  y [T(x. En cada apartado. Debería ser: x T(x. D(x): “x es un desintegrador”. D(1)  M(1)  (D(1)  T(1.u) x [P(x)  Q(x.y)  R(b))] x [P(x)  y Q(x. T(x.y)  [O(f(x))  N(f(x))  T(x.y)  z T(y.y)]  z u R(z. 17.y)  N(y))] 18.y)]  z u R(z.y)]  z R(z) x [P(x)  y Q(x. Si M(1)  F entonces la conclusión es falsa y la primera premisa cierta.y)] y finalmente se obtendría: x y [(Q(x)  T(x.f(x.y))] En un dominio de un solo elemento el razonamiento se puede reescribir: M(1)  D(1)  T(1. f(x))]} x y { P(x)  O(y)  T(x. los números romanos indican los pasos que se efectúan: a) i) x {P(x)  y [O(y)  T(x. x D(x)  x[M(x)  y (D(y)  T(x.g(x))] x {P(x)  y [T(x.z)]} x {(P(x)  y [O(y)  T(x.g(z)) x z [P(x)  Q(x.y)  O(y))  (T(a.y))] b) i) ii) iii) iv) v) vi) c) i) ii) iii) iv) v) d) i) ii) iii) iv) v) vi) x {P(x)  y [O(y)  T(x.y)])  [O(f(x))  N(f(x))  T(x.f(x))  R(z.y))  (R(y)  T(x.1)  F }. un contraejemplo del razonamiento es: <{ 1 }.y))])  Q(x.y)  T(x.y)  T(y.y))] b) Se ha utilizado la misma constante para cuantificadores existenciales distintos.z)]  u Q(x.y))  Q(x.g(z))] e) i) ii) iii) iv) v) f) i) ii) iii) iv) v) x {P(x)  y [R(x. >.y)]  z u R(z.y)]  z [O(z)  N(z)  T(x. a) En el último paso la interiorización de la negación (aplicación de De Morgan) no se ha hecho correctamente.y)  N(f(x))]   [P(x)  O(y)  T(x. T(1.z)])  u Q(x.y)])  z [O(z)  N(z)  T(x.y)  O(f(x))]   [P(x)  O(y)  T(x.y)  z T(y.1)) Un contraejemplo debe hacer cierto D(1) y la única posibilidad es D(1)  F.y)  T(y.y))  R(b) y [(P(a)  Q(a.f(x.1).y)  z T(y.y)] iv) y [P(a)  (O(y)  T(a.a)  Q(b) .y)  (O(y)  N(y))]} y [P(a)  (T(a. La conclusión del razonamiento debe ser falsa. FUOC • PID_00149519 83 Lógica de predicados d) M(x): “x es un marciano”.y)]  z R(z) x [P(x)  y Q(x.f(x))] } x [P(x)  y Q(x.y)  (O(y)  N(y))] y {P(a)  [T(a. De este modo. D(1)  F.u)} x {(P(x)  y [R(x.u)} x { (P(x)  y [R(x. f(x))]} x y {[ P(x)  O(y)  T(x.y)]} ii) x {P(x)  y [O(y)  T(x.y)])  z [O(z)  N(z)  T(x.1). Debería ser x y [(Q(x)  R(y))  T(x.g(x))} x y [P(x)  R(x.u)} x {(P(x)  y [R(x. { M(1)  F.y)  (O(y)  N(y))]} P(a)  y [T(a.u) x [P(x)  y Q(x.y): “x tiene y” x [M(x)  y (D(y)  T(x.

y))  z R(z)] iii) x [C(x)  y T(x.y)  [S(f(x.z))) } h) El error se halla en el tercer paso.z)))] }.a)  R(z)  T(f(z).u)  Q(y)] } 19. P(x. Al final se obtendría: x z { (R(x)  T(f(x).y). de modo que la variable z se debería sustituir por una función de x.y).g(x.z) iv) x [Q(x)  R(x)]  y z T(y.z))  (R(x)  T(f(x).y)  z R(z)] v) x y z [C(x)  T(x.u)  (R(x)  Q(y))] } v) x y u { [T(x. FUOC • PID_00149519 84 Lógica de predicados c) El error se halla en el tercer paso: la segunda aparición de la variable y dentro de la fórmula está afectada por el mismo cuantificador que la primera.f(y)))  (R(x)  T(y.y).y).g(x.z))] e) En el segundo paso la eliminación del cuantificador existencial se ha hecho prematuramente. Debería ser: ii) x [(C(x)  y T(x.y)  R(z)] f) En el tercer paso se ha aplicado mal la interiorización de la negación (De Morgan) porque x A(x).y).b) } El razonamiento es correcto.  . Tendría que ser: x A(x)  iii) x [Q(x)  R(x)]  y z T(y.y)  S(f(x.z)  Q(g(x. la variable t debe sustituirse por una función de x y de z.y)  S(f(x. Debería ser: x { R(x)  z [T(f(x).z).b) { P(a.y)  z R(z)] iv) x [C(x)  y T(x.f(y)) vi) x y [(Q(x)  T(y.z)  Q(g(x. 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 variable la función debe ser nueva).y))  x P(x.z)  (S(x.z) v) x [Q(x) R(x)]  y T(y.g(x. a) • FNS(x y P(x.y))  y P(a. Además.u)  R(x)]  [T(x.a)  Q(f(x).y). la matriz de la fórmula no está en FNC.y).z))  (T(x. Tendría que ser: x [T(x. Las dos apariciones deben sustituirse por la misma constante. Debería ser: x z [(C(a)  R(z)  T(f(z). Primero se tendría que haber eliminado la implicación.f(y)))] g) El tercer paso es incorrecto: el cuantificador t está bajo el alcance de dos cuantificadores universales: x y z. Por este motivo. sino en FND.z).g(x.g(x.y).g(x. Tendría que ser: iii) x y { T(x.y) • FNS(y x P(x.a)] d) En el último paso.z)  S(x. el cuantificador z está dentro del alcance del cuantificador x.y)  u [S(f(x.y).u)  (R(x)  Q(y))] } iv) x y u { T(x.

R(a) }. M(a).y))  x P(x. .y)  z S(x.z)])  x y (P(x.y)  S(x.z) } El razonamiento es correcto. d) • FNS(x [y P(x. FUOC • PID_00149519 85 Lógica de predicados b) • FNS(x [P(x)  y (G(y)  T(x.y)  M(x)) • FNS(G(b)  T(a.z))  z S(b.a).y)  S(x. P(x. G(b).b))  G(b)  T(a. El razonamiento no es correcto. S(b.y)  M(x).a) • FNS(x z S(x. La ausencia del literal Q descarta las cláusulas que contienen este predicado y reducen el conjunto a { R(x)  P(x). 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).y))  M(x)]) x y (P(x)  G(y)  T(x.f(x)). Las dos cláusulas que han quedado no se pueden resolver entre sí. R(a) } De este conjunto de cláusulas no podrá obtenerse la cláusula vacía. Q(a). T(a.z) { P(x.b).b) • FNS(M(a))  M(a) • FNS(x P(x))  x P(x) { P(x)  G(y)  T(x. P(x) } El razonamiento es correcto.f(x))) • FNS(y x P(x.

 FUOC • PID_00149519

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))] {D(x), P(x)  D(f(x)), P(x)  T(x,f(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_00149519

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)) { P(x,x), P(x,y)  P(y,x), P(x,f(x)) } El razonamiento no es correcto. Empezando con la cláusula P(x,f(x)), no es posible resolver porque: • 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))] • FNS(x [T(x)  y (C(y)  A(x,y))])  x y (T(x)  C(y)  A(x,y)) • FNS(x (F(x)  C(x)))  x (F(x)  C(x)) • FNS(x [T(x)  y (F(y)  A(x,y))])  T(a)  F(b)  A(a,b) { T(x)  C(y)  A(x,y), F(x)  C(x), T(a), F(b), A(a,b) }

 FUOC • PID_00149519

88

Lógica de predicados

b) P(x): “x es un paciente”; M(x): “x es un médico”; C(x): “x es curandero”; A(x,y): “x admira (siente admiración por él) a y” x { P(x)  y [M(y)  A(x,y)] }, x { P(x)  y [C(y)  A(x,y)] }  x [M(x)  C(x)] • FNS(x { P(x)  y [M(y)  A(x,y)] }) y [P(a)  (M(y)  A(a,y))] • FNS(x { P(x)  y [C(y)  A(x,y)]) x y (P(x)  C(y)  A(x,y)) • FNS(x [M(x)  C(x)])  M(b)  C(b) { P(a), M(y)  A(a,y), P(x)  C(y)  A(x,y), M(b), C(b) }

c) F(x): “x es feliz”; M(x): “A x le gusta la música”; A(x,y): “x es amigo de y”; a (constante): “Alberto” x (A(x,a)  M(x))  F(a), F(a)  x (A(x,a)  M(x)) • FNS(x (A(x,a)  M(x))  F(a))  (A(b,a)  F(a))  (M(b)  F(a)) • FNS(F(a))  F(a) • FNS(x (A(x,a)  M(x)))  x (A(x,a)  M(x)) { A(b,a)  F(a), M(b)  F(a), F(a), A(x,a)  M(x) }

El razonamiento también podía formalizarse así: F: “Alberto es feliz”; M(x): “A x le gusta la música”; A(x): “x es amigo de Alberto”. x (A(x)  M(x))  F, F  x (A(x)  M(x))

x T(x) y { E(y)  z [N(z)  W(y. . D(x.4).y): “x escribe y” x L(x)  y T(y). cuatro.2)  P(x).f(y)). x (D(x.x))] • FNS(x {E(x)  L(x)  y [M(y)  W(x. W(x. E(x): “x es escritor”.y)] } • FNS(x L(x)  y T(y))  x (L(x)  T(a)) • FNS(x T(x)  y { E(y)  z [N(z)  W(y.32)  D(x. M(y)  W(b.2). D(x.2)  P(x)). T(x)  E(y)  N(f(y)). respectivamente. N(x): “x es una novela”.z)] })  x y [(T(x)  E(y)  N(f(y)))  (T(x)  E(y)  W(y.4)). x (N(x)  M(x)).2)  D(73. N(x)  E(g(x)). E(b). Observad también que no se han utilizado las cláusulas de la cuarta premisa “Todas las novelas son escritas por algún escritor”. P(x): “x es par”.4)  P(x)). T(x): “x es traductor”.x)]})  x [(N(x)  E(g(x)))  (N(x)  W(g(x).x). FUOC • PID_00149519 89 Lógica de predicados d) 2. T(x)  E(y)  W(y.4)  P(x). M(x): “x es un escrito narrativo”. x (D(x. 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.f(y)))] • FNS(x (N(x)  M(x)))  x (N(x)  M(x)) • FNS(x { N(x)  y [E(y)  W(y.z)] }. x { N(x)  y [E(y)  W(y. N(x)  W(g(x).y)] })  y [E(b)  L(b)  (M(y)  W(b. D(x. Esto quiere decir que la conclusión no depende de ello y que esta información es superflua para este razonamiento. no hemos permitido no seguir la convención habitual según la cual las constantes se deben designar por letras minúsculas del principio del alfabeto latino. Lo mismo cuando se ha utilizado T(x)  E(y)  W(y.y): “x es divisible por y”.32) } Aclaración formal Para mayor claridad. L(b). D(73.32)  D(x. 73: constantes que designan los elementos dos. treinta y dos y setenta y tres.y) } Véase el árbol de resolución de la página siguiente.x)] }  x { E(x)  L(x)  y [M(y)  W(x. D(73. N(x)  M(x). x (D(x. f(y)) y L(x)  T(a). 4.y))] { L(x)  T(a). 32. D(73. e) L(x): “x es lingüista”.32) { D(x.

 FUOC • PID_00149519 90 Lógica de predicados 21.f(x)). La situación es exactamente la misma si se empieza con la segunda cláusula de apoyo. a) Las cláusulas A(x. Si se descartan las cláusulas de apoyo para verificar la posibilidad de que las premisas del razonamiento sean inconsistentes.f(x)) y A(b. que no permite llegar a encontrar la cláusula vacía. se obtiene el conjunto formado por las dos primeras cláusulas. con lo cual la primera cláusula queda A(b. Empezando con la primera cláusula de apoyo se llega a A(x. .f(b)). La segunda discrepancia es <f(b).f(x)) y a partir de este punto no se puede continuar. c> y no se puede resolver.c) no se pueden resolver entre sí porque no pueden unificarse: la primera discrepancia <x. b> se puede resolver sustituyendo x por b. El conjunto de cláusulas dado no permite llegar a . porque ésta es precisamente A(x.

z) no es la misma que la de C(x)  B(a. dos) para las discrepancias variable/variable. La variable x de B(x. Esto quiere decir que si es necesario sustituir x por a en B(x. la afirmación de que A(x) no se puede resolver contra A(a)  A(y) es incorrecta.z).f(x)). c) Hay dos errores en la resolución: primero. cuando en el segundo paso se ha sustituido y por c el resultado debería haber sido A(c)  B(c)  F(x. esta sustitución no debe aplicarse a la variable x de la otra cláusula. Y es que cuando se aplica una sustitución. Y segundo. Para enmendar el error sólo hay que recordar que es útil cambiar el nombre de las variables de las cláusulas troncales para evitar coincidencias con las laterales. deben sustituirse todas las ocurrencias de la variable involucrada. FUOC • PID_00149519 91 Lógica de predicados b) El problema radica en la forma en que se ha calculado y aplicado la sustitución. Siempre hay una solución (de hecho. Un árbol de resolución correcto sería: . Sólo hay que sustituir x por y o y por x.f(x)).

El resultado de resolver A(b)  B(a) contra A(b)  B(a) es un teorema (que fuerza el replanteamiento de la última decisión). Prolog Lenguaje de programación. cuantificador operador propio de la lógica de predicados. Las variables cuantificadas existencialmente son sustituidas por constantes y funciones de Skolem. cuando sólo se puede aplicar a uno. eskolemización Eliminación de los cuantificadores existenciales de una fórmula. Afecta a las variables. Más informalmente se puede decir que se trata de un enunciado parametrizado. Es el más conocido de los lenguajes de programación denominados lógicos. fórmula Elemento del lenguaje formal de la lógica de predicados. el razonamiento es correcto: Glosario algoritmo de unificación Algoritmo que permite calcular las sustituciones que hay que aplicar a dos fórmulas para hacerlas idénticas. Las constantes no se poden cuantificar. De todas formas. predicado Aplicación desde algún dominio hacia los enunciados. FUOC • PID_00149519 92 Lógica de predicados d) La última aplicación de la regla de resolución no se ha hecho de forma correcta porque se ha aplicado simultáneamente a dos literales. constante Representación (referencia) de un elemento distinguido de un dominio. Hay dos tipos de cuantificadores: el universal ( y el existencial (). .

 FUOC • PID_00149519 93 Lógica de predicados propiedad Predicado unario. Madrid: Tecnos. Bibliografía complementaria Deaño. Suppes. Barcelona: Reverté. Madrid: Alianza Editorial (Alianza Universidad Textos. Introducción a la lógica formal (ed. Sancho. L. P. Madrid: Díaz de Santos. (1995). relación Predicado binario. J. variable Referencia a un objeto no especificado de un dominio. Lógica matemática y computabilidad. Lógica simbólica (ed. Lógica formal para informáticos. una variable o una función (de Skolem). original 1974). . (1996).. original 1974). Madrid: Díaz de Santos. Bibliografía Bibliografía básica Arenas. término Referencia a un objeto de un dominio. A. Introducción a la lógica matemática. Hill. (1986). (1993). 11). S. Garrido. M. Un término puede ser una constante. (1990).

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->