Lógica de predicados (c) Ricardo Aler 1
Representación en lógica
Lógica proposicional: puede representar mundos definidos por
proposiciones que pueden ser verdaderas o falsas.
Lógica de predicados (o lógica de primer orden): asume que el
mundo está constituido por objetos con determinadas
propiedades
Lógica de segundo orden (se pueden decir cosas sobre los
propios predicados o las funciones). Ejemplo: Si f = g entonces
para cualquier x ocurre que f(x) = g(x).
Lógica temporal: asume que el mundo está compuesto de
sucesos que ocurren en un orden temporal
Lógica multivaluada, probabilı́stica, etc: las proposiciones
pueden ser ciertas, falsas o desconocidas; o bien pueden tener
una probabilidad de ser ciertas, o bien un grado de certeza.
Lógica de predicados (c) Ricardo Aler 2
Elementos de lógica proposicional
Las proposiciones (p, q, r, . . . )
Las conectivas para conectarlas:
• ¬ (NO)
• ∨ (O), ∧ (Y)
• → (implicación)
Ejemplos
• Llueve
• (¬ nieva ∧ llueve) ∨ hay-hielo
• ...
Lógica de predicados (c) Ricardo Aler 3
Reglas de inferencia
Reglas de equivalencia:
• ¬ (p ∧ q ) = (¬ p) ∨ (¬ q)
• ¬ (p ∨ q ) = (¬ p) ∧ (¬ q)
• ¬¬p=p
Inferencia (o deducción):
• p,q; por tanto p ∧ q
• modus ponens (p → q y p; por tanto q)
Lógica de predicados (c) Ricardo Aler 4
Deducción en lógica proposicional
Deducción: Sea A = {p,q∨s,¬r,. . . } un conjunto de
proposiciones que se suponen ciertas (axiomas). z es deducible
de A si:
• z∈A
• Existe alguna regla de inferencia que permite deducir z a
partir de A
• Existe alguna proposición p deducida de A y una regla de
inferencia que toma p y A y deduce z
Lógica de predicados (c) Ricardo Aler 5
Lógica proposicional (conclusión)
Ventaja: es decidible (en tiempo finito es posible saber si una
proposición es deducible o no de los axiomas)
Problema: representación no muy potente. Para decir que todos
los seres humanos son mortales habrı́a que decir: Pedro es
mortal, Juan es mortal, Pepe es mortal, . . .
Lógica de predicados (c) Ricardo Aler 6
Lógica de predicados
Elementos:
Términos: Constantes (a, b, pepe, . . . ), variables (x, y, . . . ) y
funciones (f(x,y), pierna-de(pepe))
Predicados, los cuales representan:
• Relaciones: Hermano-de, Mas-grande-que, Parte-de,
Despues-de, . . .
• Igualdad: =
• Propiedades: Rojo, Redondo, . . .
Fórmulas atómicas: Encima(a,b), Rojo(x), x=y
Cuantificadores (∀ y ∃)
Conectivas: ∨, ∧, ¬, →
Lógica de predicados (c) Ricardo Aler 7
Fórmulas bien formadas (fbf): átomos unidos por conectivas y
cuantificados
Ejemplos
• ∀ x,y (Encima(x,y) → Debajo(y,x))
• ∀ x (Mamı́fero(x) → Animal(x))
• ∀ x y (Mayor(x,y) → ¬ (x = y))
• ...
Lógica de predicados (c) Ricardo Aler 8
Lógica de predicados (cont.)
Inferencia: Todas las de lógica proposicional + instanciación
universal (si tenemos ∀ X P(X) entonces se puede deducir P(a),
donde a es una constante).
Desventaja: es semi-decidible (si algo no se puede deducir de
los axiomas, el proceso de deducción no termina nunca)
Ventaja: representación más potente: ∀ x (Persona(X) →
Mortal(X))
Lógica de predicados (c) Ricardo Aler 9
Lógica de predicados
Ejemplo:
D. Vito Corleone es el padrino de la principal mafia neoyorquina
y su hijo, Michael Corleone, es su principal lugarteniente (o
capo). Entre las aficiones de Michael se cuenta el tiro con colt
45. Aparte, se sabe que odia la pizza. Sonny Corleone es otro de
los hijos del padrino. Por su parte, D. Vito tiene cierta alergia a
que la policı́a se meta en sus negocios por lo que viene
sobornando al capitán Mc Cluskey desde hace cierto tiempo.
Pero en un momento dado, el capitán Mc Cluskey decide
traicionar al padrino. Poco tiempo después Mc Cluskey aparece
muerto en una callejuela de Nueva York con dos disparos en la
cabeza.
Lógica de predicados (c) Ricardo Aler 10
1. Vito Corleone es el Padrino
2. Vito Corleone es el padre de Michael Corleone
3. Vito Corleone es el padre de Sonny Corleone
4. Michael Corleone es capo
5. Michael Corleone usa un Colt-45
6. Un Colt 45 es una pistola
7. Mc Cluskey es policı́a
8. Vito Corleone paga a Mc Cluskey
9. Mc Cluskey traicionó a Vito Corleone
Lógica de predicados (c) Ricardo Aler 11
Representacion en calculo de predicados
1. Es-Padrino (Vito-Corleone)
2. Es-Padre (Vito-Corleone, Michael-Corleone)
3. Es-Padre (Vito-Corleone, Sonny-Corleone)
4. Es-Capo (Michael-Corleone)
5. Usa-Arma (Michael-Corleone, Colt-45)
6. Es-Pistola (Colt-45)
7. Es-Policı́a (Mc-Cluskey)
8. Paga-a (Vito-Corleone, Mc-Cluskey)
9. Traiciona (Mc-Cluskey, Vito-Corleone)
Lógica de predicados (c) Ricardo Aler 12
Predicados y argumentos
Predicado: Verbo describiendo un acontecimiento o adjetivo
describiendo un objeto. Ejemplo: Es-Padrino.
Argumento: Parámetro de un predicado. Ejemplo:
(Vito-Corleone)
Aridad: Número de argumentos de un predicado
Lógica de predicados (c) Ricardo Aler 13
La representación no es única
Es-Un (Vito-Corleone, padrino) = Es-Padrino (Vito-Corleone)
Es-Un (Michael-Corleone, capo) = Es-Capo (Michael-Corleone)
Es-Un (Colt-45, pistola) = Pistola (Colt-45)
Es-Un (Mc-Cluskey, Policı́a) = Policia (Mc-Cluskey)
Lógica de predicados (c) Ricardo Aler 14
La conectiva ¬ (NO)
Michael Corleone odia la pizza
Odia (Michael-Corleone, pizza)
¬ Gusta (Michael-Corleone, pizza)
Lógica de predicados (c) Ricardo Aler 15
La conectiva ∧ (Y)
Es-Padrino (Vito-Corleone) ∧ Es-Padre (Vito-Corleone,
Michael-Corleone) ∧ Es-Padre (Vito-Corleone, Sonny-Corleone) ∧
Es-Capo (Michael-Corleone) ∧ Usa-Arma (Michael-Corleone,
Colt-45) ∧ Es-Pistola (Colt-45) ∧ Es-Policı́a (Mc-Cluskey) ∧
Paga-a (Vito-Corleone, Mc-Cluskey) ∧ Traiciona (Mc-Cluskey,
Vito-Corleone)
La conectiva ∧ es conmutativa
Lógica de predicados (c) Ricardo Aler 16
Conectiva ∨ (O)
Michael Corleone es el padrino o Sonny Corleone es el padrino
Es-Padrino (Michael-Corleone) ∨ Es-Padrino (Sonny-Corleone)
La conectiva ∨ es conmutativa
Lógica de predicados (c) Ricardo Aler 17
La implicación →
Si a Michael no le gusta la pizza entonces no es italiano
¬ Gusta (Michael-Corleone, Pizza) → ¬ Italiano
(Michael-Corleone)
En general SI Antecedente ENTONCES Consecuente
Antecedente → Consecuente
Lógica de predicados (c) Ricardo Aler 18
Variables, cuantificador existencial
Alguien ha asesinado a Mc Cluskey con una pistola:
∃ x Asesinato (x, Mc-Cluskey, pistola)
x es una variable, un individuo indefinido, por contraposicion a
una constante como Mc Cluskey.
El cuantificador existencial indica que al menos hay una
persona que ha asesinado a Mc Cluskey.
Si quisieramos poner que sólo una persona ha asesinado a Mc
Clusckey: ∃! x Asesinato(x, Mc-Cluskey).
Lógica de predicados (c) Ricardo Aler 19
Cuantificador universal
Si a alguien no le gusta la pizza entonces no es italiano
∀ x (¬ Gusta (x, pizza) → ¬ Italiano (x))
El cuantificador universal y el existencial no son conmutativos:
Para cualquier persona asesinada hay un asesino y un arma
con la que se cometió el asesinato:
∀ X ∃ Y,Arma (Asesinada(X) → Asesinato (Y,X, Arma))
No es igual a:
∃ Y,Arma ∀ X (Asesinada(X) → Asesinato (Y,X, Arma))
Hay un asesino y un arma de tal manera que
todas las personas que han sido asesinadas,
lo han sido por ese asesino y con esa arma:
Lógica de predicados (c) Ricardo Aler 20
Inferencia I
Instanciación universal:
∀ X P(x)
P(a)
Generalización existencial
P(a)
∃ x P(x)
Lógica de predicados (c) Ricardo Aler 21
Inferencia II (Modus Ponens)
En general, el modus ponens sigue la regla:
P→Q
P
Q
(∀x (P(x) ∧ Q(x)) → (∃ y Q(y)))
(∀x (P(x) ∧ Q(x)))
(∃ y Q(y))
Lógica de predicados (c) Ricardo Aler 22
Inferencia III (Modus ponens con unificación)
Unificación: encontrar los valores de las variables que hacen que la
parte izquierda de la implicación sea igual a P(a).
∀ X (P(X) → Q(X))
P(a)
X=a
P(a) → Q(a)
P(a)
Q(a)
Lógica de predicados (c) Ricardo Aler 23
Inferencia IV (Modus ponens de varias fbf ’s)
∀ X,Y (P(X) ∧ Q(Y) → R(Y))
P(a)
Q(b)
∀ X,Y (P(X) ∧ Q(Y) → R(Y))
P(a) ∧ Q(b)
X=a, Y=b
P(a) ∧ Q(b) → R(b)
P(a) ∧ Q(b)
R(b)
Lógica de predicados (c) Ricardo Aler 24
Modus Ponens (ejemplo)
Fórmulas de partida:
∀ x (¬ Gusta (x, pizza) → ¬ Italiano (x))
¬ Gusta (Schwarzenegger, pizza)
Unificación. Sustitución σ = (x=Schwarzenegger)
¬ Gusta (Scharzenegger, pizza) → ¬ Italiano (Schwarzenegger)
¬ Gusta (Schwarzenegger, pizza)
Fórmula deducida: ¬ Italiano (Schwarzenegger)
Lógica de predicados (c) Ricardo Aler 25
Ejemplo mundo de los bloques
Predicados:
Sobre (X,Y)
Debajo (X,Y)
Ejemplo:
A
C
Sobre (a,b)
Sobre (b,c)
Sobre (c,mesa)
Lógica de predicados (c) Ricardo Aler 26
Mas-arriba
Mas-arriba (a,b) B
Mas-arriba (a,c)
Mas-arriba (a,mesa)
Mas-arriba (b,c)
...
Definición del predicado Más-arriba:
1. R1: ∀ X,Y (Sobre (X,Y) → Mas-arriba (X,Y))
2. R2: ∀ X,Y,Z (Sobre (X,Z) ∧ Mas-arriba (Z,Y) → Mas-arriba
(X,Y))
Lógica de predicados (c) Ricardo Aler 27
Deducción hacia adelante
¿Mas-arriba (A,mesa)?
Sobre (c,mesa)
∀ X,Y (Sobre (X,Y) → Mas-arriba (X,Y))
σ = (X=c,Y=mesa)
Sobre (c,mesa)
Sobre (c,mesa) → Mas-arriba (c,mesa)
Mas-arriba (c,mesa)
Lógica de predicados (c) Ricardo Aler 28
Mas-arriba (c,mesa)
Sobre(b,c)
∀ X,Y,Z (Sobre (X,Z) ∧ Mas-arriba (Z,Y) → Mas-arriba (X,Y))
Mas-arriba (c,mesa) ∧ Sobre(b,c)
∀ X,Y,Z (Sobre (X,Z) ∧ Mas-arriba (Z,Y) → Mas-arriba (X,Y))
σ = (X=b,Z=c,Y=mesa)
Mas-arriba (c,mesa) ∧ Sobre(b,c)
Sobre (b,c) ∧ Mas-arriba (c,mesa) → Mas-arriba (b,mesa)
Mas-arriba (b,mesa)
Lógica de predicados (c) Ricardo Aler 29
Mas-arriba (b,mesa)
Sobre (a,b)
∀ X,Y,Z (Sobre (X,Z) ∧ Mas-arriba (Z,Y) → Mas-arriba (X,Y))
Mas-arriba (b,mesa) ∧ Sobre (a,b)
∀ X,Y,Z (Sobre (X,Z) ∧ Mas-arriba (Z,Y) → Mas-arriba (X,Y))
σ = (X=a,Z=b,Y=mesa)
Mas-arriba (b,mesa) ∧ Sobre (a,b)
Sobre (a,b) ∧ Mas-arriba (b,mesa) → Mas-arriba (a,mesa)
Mas-arriba (a,mesa)
Lógica de predicados (c) Ricardo Aler 30
Algoritmo de deducción hacia atrás
Sólo con cláusulas de Horn:
Hechos: Padre(pepe, juan).
Reglas:
• Todas las variables cuantificadas universalmente
• No hay “not”s en la parte derecha de la regla
• En la parte derecha sólo hay un átomo
• Ej: (Hermano(X,Y) ∧ Hermano(Y,Z) → Hermano(X,Z))
Las conclusiones tienen las variables cuantificadas
existencialmente
• Ejemplo: ¿∃ z Hermano(pepe,Z)?
Lógica de predicados (c) Ricardo Aler 31
Algoritmo de deducción hacia atrás II
Crear el nodo raı́z del árbol con la conclusión a obtener
Ver si la fórmula unifica con algún hecho
Si no, buscar todas las reglas cuya parte derecha se pueda
unificar con la conclusión
Elegir una de ellas (caso de que ésta regla falle más adelante,
habrá que volver atrás y elegir la siguiente)
Unificar la parte derecha de la regla con la conclusión y generar
tantas hojas en el árbol como condiciones tenga la regla
Continuar el algoritmo en profundidad
Lógica de predicados (c) Ricardo Aler 32
Deducción hacia atrás. R1: ∀ X,Y (Sobre (X,Y) → Mas-arriba (X,Y))
¿Mas-arriba(a,mesa)?
R1, X=A, Y=mesa
Sobre(a,mesa)
NO
Lógica de predicados (c) Ricardo Aler 33
Implicación R2: ∀ X,Y,Z (Sobre (X,Z) ∧ Mas-arriba (Z,Y)
→ Mas-arriba (X,Y))
¿Mas-arriba(a,mesa)?
R1, X=A, Y=mesa R2, X=a, Y=mesa
Sobre(a,mesa) Sobre(a,Z) Mas-arriba(Z,mesa)
NO
Lógica de predicados (c) Ricardo Aler 34
Dar valor a Z
¿Mas-arriba(a,mesa)?
R1, X=A, Y=mesa R2, X=a, Y=mesa
Sobre(a,mesa) Sobre(a,Z) Mas-arriba(Z,mesa)
NO
Z=b
Sobre(a,b) Mas-arriba(b,mesa)
SI
Lógica de predicados (c) Ricardo Aler 35
Implicación R1: ∀ X,Y (Sobre (X,Y) → Mas-arriba (X,Y))
¿Mas-arriba(a,mesa)?
R1, X=b, Y=mesa R2, X=a, Y=mesa
Sobre(a,mesa) Sobre(a,Z) Mas-arriba(Z,mesa)
NO
Z=b
Sobre(a,b) Mas-arriba(b,mesa)
SI
R1, X=b, Y=mesa
Sobre(b,mesa)
NO
Lógica de predicados (c) Ricardo Aler 36
Implicación R2: ∀ X,Y,Z (Sobre (X,Z) ∧ Mas-arriba (Z,Y)
→ Mas-arriba (X,Y))
¿Mas-arriba(a,mesa)?
R1, X=b, Y=mesa R2, X=a, Y=mesa
Sobre(a,mesa) Sobre(a,Z) Mas-arriba(Z,mesa)
NO
Z=b
Sobre(a,b) Mas-arriba(b,mesa)
SI
R2, X=b, Y=mesa
R1, X=b, Y=mesa
Sobre(b,mesa) Sobre(b,Z) Mas-arriba(Z,mesa)
NO
Lógica de predicados (c) Ricardo Aler 37
Z=c
¿Mas-arriba(a,mesa)?
R1, X=b, Y=mesa R2, X=a, Y=mesa
Sobre(a,mesa) Sobre(a,Z) Mas-arriba(Z,mesa)
NO
Z=b
Sobre(a,b) Mas-arriba(b,mesa)
SI
R2, X=b, Y=mesa
R1, X=b, Y=mesa
Sobre(b,mesa) Sobre(b,Z) Mas-arriba(Z,mesa)
NO Z=c
Sobre(b,c) Mas-arriba(c,mesa)
SI
Lógica de predicados (c) Ricardo Aler 38
R1: ∀ X,Y (Sobre (X,Y) → Mas-arriba (X,Y))
¿Mas-arriba(a,mesa)?
R1, X=b, Y=mesa R2, X=a, Y=mesa
Sobre(a,mesa) Sobre(a,Z) Mas-arriba(Z,mesa)
NO
Z=b
Sobre(a,b) Mas-arriba(b,mesa)
SI
R2, X=b, Y=mesa
R1, X=b, Y=mesa
Sobre(b,mesa) Sobre(b,Z) Mas-arriba(Z,mesa)
NO Z=c
Sobre(b,c) Mas-arriba(c,mesa)
SI
R1, X=c, Y=mesa
Sobre(c,mesa)
Lógica de predicados (c) Ricardo Aler 39
Deducción hacia adelante
¿Mas-arriba(a,mesa)?
R2, X=a, Y=mesa, Z=b
Sobre(a,b) Mas-arriba(b,mesa)
R2, X=b, Y=mesa, Z=c
Sobre(b,c) Mas-arriba(c,mesa)
R1, X=c, Y=mesa
Sobre(c,mesa)
Lógica de predicados (c) Ricardo Aler 40
Ejemplo (Febrero 1997)
Representar en Cálculo de Predicados las siguientes relaciones de
parentesco: Progenitor, Hermano, Tio, Primo, Cuñado y Casado.
No se considerarán distinciones de sexo; es decir, la relación
hermano y hermana son la misma relación.
Lógica de predicados (c) Ricardo Aler 41
Predicados
Progenitor(x,y) ⇀
↽ “x” es el progenitor de “y” (Padre o Madre)
Hermano(x,y) ⇀
↽ “x” e “y” son hermanos
Hijo(x,y) ⇀
↽ “x” es el hijo de “y”
Tio(x,y) ⇀
↽ “x” es el tio de “y”
Primo(x,y) ⇀
↽ “x” e “y” son primos
Cuñado(x,y) ⇀
↽ “x” e “y” son cuñados
Casado(x,y) ⇀
↽ “x” e “y” están casados
Lógica de predicados (c) Ricardo Aler 42
Relaciones básicas
Hijo (x,y) → Progenitor (y,x)
Progenitor (x,y) → Hijo (y,x)
Hijo (x,y) ∧ Hijo(z,y) ∧ x <> z → Hermano (x,z)
Hermano (x,z) → Hermano (z,x)
Casado (z,y) ∧ Hermano (x,z) → Cuñado (x,y)
Cuñado (x,y) → Cuñado (y,x)
Hermano (x,z) ∧ Hijo (y,x) → Tio(z,y)
Hijo (x,y) ∧ Hijo (z,w) ∧ Hermano (y,w) → Primo (x,z)
Lógica de predicados (c) Ricardo Aler 43
Enunciado ejemplo (cont.)
Con la misma representación anterior recoger la información que se
da a continuación y realizar las inferencias (en dicha
representación) que sean necesarias:
Sea una sociedad ficticia que tiene las siguientes normas:
Nadie se puede casar con ningún primo de su cuñado
Si alguien está soltero y su primo tiene una hija, tiene que
casarse con ella obligatoriamente
Si alguien está soltera, y el cuñado de su tia tiene un hijo, tiene
que casarse con él
Lógica de predicados (c) Ricardo Aler 44
Predicados extra:
Casado(x,y) ⇀
↽ x está casado con y
Soltero(x) ⇀
↽ x está soltero
Casarse(x,y) ⇀
↽ x tiene que casarse obligatoriamente con y
Lógica de predicados (c) Ricardo Aler 45
Las reglas de la sociedad ficticia son:
Nadie se puede casar con ningún primo de su cuñado
"x" no se puede casar con "y"
si "y" es primo de "z" y "z" y "x" son cu~
nados
Primo(z,y) ∧ Cuñado(x,z) → ¬Casarse(x,y)
Si alguien está soltero y su primo tiene una hija,
tiene que casarse con ella obligatoriamente
Si "x" está soltero y tiene un primo "y"
que a su vez tiene una hija "z"
entonces "x" se tiene que casar con "z"
Soltero(x) ∧ Primo(x,y) ∧ Hijo(z,y) → Casarse(x,z)
Lógica de predicados (c) Ricardo Aler 46
Última regla:
Si alguien está soltera, y el el cuñado de su tia tiene un hijo,
tiene que casarse con él
Si "y" está soltera y tiene una tia "x" que es cu~
nada de "z"
y "z" tiene un hijo "t"
entonces "y" se tiene que casar con "t"
Soltero(y) ∧ Tio(x,y) ∧ Cuñado(x,z) ∧ Hijo(t,z) → Casarse(y,t)
Lógica de predicados (c) Ricardo Aler 47
Enunciado ejemplo (cont.)
Además se da la siguiente situación:
Marta es madre de Felisa, su padre es Felix. Marta tiene solo una
hermana, Lucı́a. Lucı́a está casada con Alejandro, y tienen un hijo
llamado Alberto. Marta y Felix también están casados y tienen un
hijo llamado Nicolás. Alberto que se casó hace 2 años tiene una
niña llamada Encarna. Tanto Felisa como Nicolás y Encarna están
solteros. A Nicolás le han dicho que tiene que casarse con su
hermana Felisa y también con Encarna, ¿Es eso cierto?.
Lógica de predicados (c) Ricardo Aler 48
Relaciones
Marta es madre de Felisa Progenitor(Marta,Felisa)
su padre es Felix Progenitor(Felix,Felisa)
Marta tiene solo una hermana Hermano(Marta,Lucı́a)
Lucı́a está casada con Alejandro Casado(Lucı́a,Alejandro)
y tienen un hijo llamado Alberto Hijo(Alberto,Lucı́a)
Hijo(Alberto,Alejandro)
Marta y Felix también están casados Casado(Marta,Felix)
y tienen un hijo llamado Nicolás Hijo(Nicolás,Marta)
Hijo(Nicolás,Felix)
Lógica de predicados (c) Ricardo Aler 49
Relaciones (cont.)
Alberto que se casó hace 2 años ∃ x Casado(Alberto,x)
tiene una niña llamada Encarna Hijo(Encarna,Alberto)
Tanto Felisa Soltero(Felisa)
como Nicolás Soltero(Nicolás)
y Encarna están solteros Soltero(Encarna)
Lógica de predicados (c) Ricardo Aler 50
Ejemplo deducción
A Nicolás le han dicho que tiene que casarse con su hermana Felisa
y también con Encarna, ¿Es eso cierto?.
Las afirmaciones que hay que deducir son las siguientes:
1. Casarse(Nicolás,Felisa)
2. Casarse(Nicolás,Encarna)
Lógica de predicados (c) Ricardo Aler 51
¿Casarse(Nicolás,Felisa)?
Casarse (Nicolas, Felisa)
Soltero(y) ∧ tio(x,y) ∧ Cuñado(x,z) ∧ hijo(t,z) → Casarse(y,t)
σ = (y=Nicolas, t=Felisa)
Casarse (Nicolas, Felisa)
Soltero(Nicolas) ∧ tio(x,Nicolas) ∧ Cuñado(x,z) ∧ hijo(Felisa,z)
→ Casarse(Nicolas,Felisa)
Soltero(Nicolas) es cierto
¿tio(x,Nicolas)?
¿Cuñado(x,z)?
¿hijo(Felisa,z)?
Lógica de predicados (c) Ricardo Aler 52
¿tio(x,Nicolas)?
No está en la base de hechos. Apliquemos una regla.
Hermano (x,z) ∧ Hijo (y,x) → Tio(z,y)
σ = (z=x, y=Nicolas)
Renombramos ”x.a ”x1”, para que no coincidan
Hermano (x1,z) ∧ Hijo (y,x1) → Tio(z,y)
Tio(x,Nicolas)
Hermano (x1,x) ∧ Hijo (Nicolas,x1) → Tio(x,Nicolas)
¿Hermano (x1,x)?
¿Hijo (Nicolas,x1)?
Lógica de predicados (c) Ricardo Aler 53
¿Hermano (x1,x)? ∧ ¿Hijo (Nicolas,x1)?
¿Hay alguna substitución para x1 y x que los haga ciertos?
En la base de hechos tenemos que:
Hijo(Nicolás,Marta)
Hijo(Nicolás,Felix)
por tanto x1=Marta ó x1=Felix harı́an cierto Hijo(Nicolas,x1).
Tenemos además que Hermano(Marta,Lucı́a). Por tanto, si
x1=Marta y x=Lucı́a, entonces;
Hermano (x1,x) ∧ Hijo (Nicolas,x1) es cierto.
Lógica de predicados (c) Ricardo Aler 54
¿Casarse(Nicolas,Felisa)?
Soltero(y),tio(x,y),Cunado(x,z),hijo(t,z) -> Casarse(y,t)
y=Nicolas, t=Felisa
Soltero(Nicolas) tio(x,Nicolas) Cuñado(x,z) Hijo(Felisa,z)
SI y=Nicolas,z=x
Hermano (x1,z), Hijo (y,x1) -> Tio(z,y)
Hermano(x1,x) Hijo(Nicolas,x1) Cuñado(Lucia,z)
x1=Marta,x=Lucia
Hermano(Marta,Lucia) Hijo(Nicolas,Marta)
Lógica de predicados (c) Ricardo Aler 55
¿Cuñado(Lucı́a,z) ∧ ¿Hijo(Felisa,z)?
¿Casarse(Nicolas,Felisa)?
Soltero(y),tio(x,y),Cuñado(x,z),hijo(t,z) -> Casarse(y,t)
y=Nicolas, t=Felisa
Soltero(Nicolas) tio(x,Nicolas) Cuñado(x,z) Hijo(Felisa,z)
SI y=Nicolas,z=x
Hermano (x1,z), Hijo (y,x1) -> Tio(z,y)
Hermano(x1,x) Hijo(Nicolas,x1) Cuñado(Lucia,z)
x=Lucia,y=z
x1=Marta,x=Lucia Casado (z1,y),Hermano (x,z1) -> Cuñado (x,y)
Hermano(Marta,Lucia) Hijo(Nicolas,Marta) Casado(z1,z) Hermano(Lucia,z1)
SI SI
Lógica de predicados (c) Ricardo Aler 56
¿Casarse(Nicolas,Felisa)?
Soltero(y),tio(x,y),Cuñado(x,z),hijo(t,z) -> Casarse(y,t)
y=Nicolas, t=Felisa
Soltero(Nicolas) tio(x,Nicolas) Cuñado(x,z) Hijo(Felisa,z)
SI y=Nicolas,z=x
Hermano (x1,z), Hijo (y,x1) -> Tio(z,y) Hijo(Felisa,Felix)
SI (Progenitor(Felix,Felisa))
Hermano(x1,x) Hijo(Nicolas,x1) Cuñado(Lucia,z)
x=Lucia,y=z
x1=Marta,x=Lucia Casado (z1,y),Hermano (x,z1) -> Cuñado (x,y)
Hermano(Marta,Lucia) Hijo(Nicolas,Marta) Casado(z1,z) Hermano(Lucia,z1)
SI SI
z1=Marta
Casado(Marta,z) Hermano(Lucia,Marta)
z=Felix SI (Hermano(Marta,Lucia))
Casado(Marta,Felix)
SI
Lógica de predicados (c) Ricardo Aler 57
∀ y ∃ no son conmutativos
Para cualquier persona asesinada hay un asesino y un arma
con la que se cometió el asesinato:o
∀ X ∃ Y,Arma (Asesinada(X) → Asesinato (Y,X, Arma))
No es igual a:
∃ Y,Arma ∀ X (Asesinada(X) → Asesinato (Y,X, Arma))
Hay un asesino y un arma de tal manera que
todas las personas que han sido asesinadas,
lo han sido por ese asesino y con esa arma
Lógica de predicados (c) Ricardo Aler 58
“∃” en el antecedente
∀ X (∃ Y Hermano (X,Y)) → ¬ Hijo-unico (X))
es equivalente a:
∀ X,Y (Hermano (X,Y) → ¬ Hijo-unico (X))
ó:
Hermano (X,Y) → ¬ Hijo-unico (X)
Lógica de predicados (c) Ricardo Aler 59
Ejercicio
Dos cruces están conectados si hay un tramo de calle que va de uno
a otro.
Un cruce es alcanzable desde otro si hay algún concatenación de
tramos que los conecte.
Dos tramos de calle están conectados si convergen en el mismo
cruce.
Lógica de predicados (c) Ricardo Aler 60
Solución
Dos cruces están conectados
si hay un tramo de calle que va de uno a otro.
∀ X,Y (Cruce(X) ∧ Cruce (Y) ∧ (∃ Z Tramo (Z) ∧ (
(origen-tramo (Z,X) ∧ final-tramo (Z,Y)) ∨
(origen-tramo (Z,Y) ∧ final-tramo (Z,X)))
→ Conectado(X,Y))
Sacando el ∃ fuera de la parte izquierda:
∀ X,Y,Z (Cruce(X) ∧ Cruce (Y) ∧ Tramo (Z) ∧ (
(origen-tramo (Z,X) ∧ final-tramo (Z,Y)) ∨
(origen-tramo (Z,Y) ∧ final-tramo (Z,X)))
→ Conectado(X,Y))
Lógica de predicados (c) Ricardo Aler 61
Un cruce es alcanzable desde otro
si hay alguna concatenación de tramos
que los conecte.
∀ X,Y (Cruce(X) ∧ Cruce (Y) ∧ Conectado (X,Y)
→ Alcanzable (X,Y))
∀ X,Y,Z (Cruce(X) ∧ Cruce (Y) ∧ Cruce (Z) ∧
Conectado (X,Z) ∧ Alcanzable (Z,Y)
→ Alcanzable (X,Y))
Lógica de predicados (c) Ricardo Aler 62
Dos tramos de calle están conectados
si convergen en el mismo cruce.
∀ X,Y (Tramo(X) ∧ Tramo(Y) ∧
∃ Z (Cruce (Z) ∧ (
(Tramo-origen (X,Z) ∧ Tramo-origen (Y,Z)) ∨
(Tramo-destino (X,Z) ∧ Tramo-origen (Y,Z)) ∨
(Tramo-origen (X,Z) ∧ Tramo-destino (Y,Z)) ∨
(Tramo-destino (X,Z) ∧ Tramo-destino (Y,Z))))
Lógica de predicados (c) Ricardo Aler 63
Sacando el ∃ fuera:
∀ X,Y,Z (Tramo(X) ∧ Tramo(Y) ∧ Cruce (Z) ∧ (
(Tramo-origen (X,Z) ∧ Tramo-origen (Y,Z)) ∨
(Tramo-destino (X,Z) ∧ Tramo-origen (Y,Z)) ∨
(Tramo-origen (X,Z) ∧ Tramo-destino (Y,Z)) ∨
(Tramo-destino (X,Z) ∧ Tramo-destino (Y,Z))))
Lógica de predicados (c) Ricardo Aler 64
Definiendo Converge:
∀ X,Y,Z (Tramo(X) ∧ Tramo(Y) ∧ Cruce (Z) ∧ Converge (X,Y,Z)
→ Alcanzable (X,Y))
((Tramo-origen (X,Z) ∧ Tramo-origen (Y,Z)) ∨
(Tramo-destino (X,Z) ∧ Tramo-origen (Y,Z)) ∨
(Tramo-origen (X,Z) ∧ Tramo-destino (Y,Z)) ∨
(Tramo-destino (X,Z) ∧ Tramo-destino (Y,Z)))
→ Converge (X,Y,Z)