2. Objetivo:
• Presentar la Lógica de Primer Orden (LPO)
como método formal de representación del
conocimiento e inferencia.
• Estudiar los métodos de inferencia
automáticos aplicables a la LPO (en concreto, el
método de resolución por refutación).
3. Representación e inferencia en LPO
Idea:
La lógica como sistema de representación del
conocimiento y de obtención de
consecuencias
Cálculo en LPO
Fórmulas atómicas
Fórmulas
Conectores
4. Fórmulas atómicas
Términos
autor(quijote, cervantes)
escritor(cervantes) autor(quijote, Quién)
autor(quijote, mejor(novelista, españa))
Predicado: Un predicado es un símbolo cuyo valor
se encuentra en el dominio lógico (verdadero o
falso) y representa alguna cualidad semántica, en
un cierto contexto, acerca de las relaciones entre
objetos o entidades
5. Conectores
Permiten construir fórmulas complejas a partir de
fórmulas o expresiones más sencillas:
Negación : ¬
Disyunción : ∨ (or)
Conjunción : ∧ (and)
Implicación : →
Equivalencia : ↔
6. Negación: Genera una fórmula que posee valores lógicos
contrarios a los de la fórmula sobre la que se aplica.
Estrictamente no es un conector, pues no conecta dos
fórmulas sino que transforma una.
¬ autor(hamlet, cervantes)
Disyunción: Genera una fórmula que es cierta si alguna
de las que conecta es cierta.
estado(bombilla, encendida) ∨ estado(bombilla, apagada)
Conjunción: Genera una fórmula que es cierta si las os
fórmulas que conecta son ciertas.
color(coche, rojo) ∧ color(camisa, azul)
7. Implicación: Genera una fórmula que es cierta siempre
salvo cuando el antecedente es cierto y el consecuente
falso.
p → q es equivalente a ¬p ∨ q
p q p→q ¬p ¬p ∨ q
0 0 1 1 1
0 1 1 1 1
1 0 0 0 0
1 1 1 0 1
está(cielo, azul) → ¬ lloverá(hoy)
¬ está(cielo, azul) ∨ ¬ lloverá(hoy)
8. Equivalencia o doble implicación: Genera una fórmula
que es cierta sólo si las dos componentes poseen el
mismo valor.
p ↔ q es equivalente a (p → q) ∧ (q → p)
p q p→q q→p (p → q) ∧ (q → p)
0 0 1 1 1
0 1 1 0 0
1 0 0 1 0
1 1 1 1 1
llueve(hoy) ↔ está(cielo, nublado)
9. Equivalencias
Complemento: p∨¬p≡1
Doble negación: ¬(¬p)≡p
Conmutativa: p∨q≡q∨p
p∧q≡q∧p
Distributiva: p ∨ (q ∧ r) ≡ (p ∨ q) ∧ (p ∨ r)
p ∧ (q ∨ r) ≡ (p ∧ q) ∨ (p ∧ r)
Asociativa: p ∨ (q ∨ r) ≡ (p ∨ q) ∨ r
p ∧ (q ∧ r) ≡ (p ∧ q) ∧ r
Leyes de De Morgan: ¬ (p ∨ q) ≡ ¬ p ∧ ¬ q
¬ (p ∧ q) ≡ ¬ p ∨ ¬ q
Ley del contrapositivo: p→q≡¬q→¬p
10. Establecen el ámbito de
Cuantificadores existencia de las variables
Cuantificador Universal (∀):
Establece que la fórmula es siempre válida para
cada valor posible de la variable X. La variable X se
dice entonces cuantificada universalmente.
“Todo cuerpo con masa cae”
∀X ( [cuerpo(X) ∧ posee(X,masa)] → cae(X) )
Cuantificador Existencial (∃):
Establece que como mínimo existe un valor de la
variable cuantificada que hace cierta la fórmula. La
variable se dice cuantificada existencialmente.
“Alguien descubrió la penicilina”
∃ X ( descubrió( X, penicilina )
12. Forma Prenex de una fórmula
Una fórmula se dice que está en forma prenex si todos los
cuantificadores se encuentran al principio de la fórmula.
Algunas equivalencias útiles para alcanzar una forma
normal
¬ [ ∃X p(X) ] ≡ ∀X [¬ p(X) ]
¬ [ ∀X p(X) ] ≡ ∃X [¬ p(X) ]
∀X [ p(X) ∧ q(X) ] ≡ [ ∀X p(X) ] ∧ [ ∀X q(X) ]
∃X [ p(X) ∨ q(X) ] ≡ [ ∃X p(X) ] ∨ [ ∃X q(X) ]
13. Reglas de Inferencia
Especialización Universal: siempre es posible deducir la verificación de
un caso concreto a partir de un cuantificador universal.
∀X p(X) ⇒ p(a)
Sustitución: permite la sustitución de cualquier proposición en una
fórmula por otra equivalente.
Modus ponens:
Axioma: p → q
Axioma: p
Teorema: q
Modus tollens:
Axioma: p → q
Axioma: ¬q
Teorema: ¬p
∧ Introducción: p∧q puede ser inferida de p y q.
∧ Eliminación: p puede ser inferida de p∧q.
∨ Introducción: p ∨ q puede ser inferida de p o de q.
14. Lo que queremos hacer ...
Teorema + Axiomas
+
Teorema + Axiomas (como cláusulas)
+
Método de resolución por refutación
Unificación
Demostración automática de teoremas
15. IMPORTANTE:
La demostración automática de teoremas lógicos es un
procedimiento que involucra una mera actividad
sintáctica, o de relación entre símbolos, ignorándose
completamente el contenido semántico que resulta de
la interpretación de las fórmulas.
16. Cláusula
Es una fórmula que sólo contiene operadores disyuntivos
y posiblemente negaciones sobre los átomos.
Este tipo de fórmulas pueden ser expresadas por una
única implicación. Así la fórmula:
a1 ∨ a2 ∨ ... ∨ an ∨ b1 ∨ b2 ∨ ... ∨ bm
se puede transformar en :
¬(¬ a1 ∧ ¬ a2 ∧ ... ∧ ¬ an ) ∨ b1 ∨ b2 ∨ ... ∨ bm
¬ a1 ∧ ¬ a2 ∧ ... ∧ ¬ an → b1 ∨ b2 ∨ ... ∨ bm
17. Cláusulas de Horn.
Aquellas cuyo consecuente tiene un único predicado.
a1 ∧ a2 ∧ ... ∧ an → b
Ventajas de una representación basada en cláusulas de
Horn
• La demostración de teoremas o resolución de un conjunto
de cláusulas de Horn es más sencilla en general.
• Las cláusulas de Horn admiten una interpretación directa
en términos de un lenguaje de programación, lo que no es
posible con cláusulas generales.
18. Transformación a cláusulas
Para ilustrar el proceso paso a paso emplearemos la
siguiente fómula compleja como ejemplo:
∀X{p(X) →{∀Y[p(Y) → p(f(X,Y))]∧ ¬∀Y[q(X,Y) → p(Y)]}}
1. Eliminar los símbolos de implicación, sustituyendo p → q
por ¬p ∨ q.
Tras este primer paso, nuestra fómula se transforma en:
∀X{¬p(X) ∨ {∀Y[¬ p(Y) ∨ p(f(X,Y))] ∧ ¬∀Y[¬ q(X,Y) ∨ p(Y)]}}
19. 2. Mover las negaciones hasta las fórmulas atómicas, para
ello se emplean las leyes de Morgan y las transformaciones
de cuantificadores existenciales y universales.
¬ (p ∨ q) ≡ ¬ p ∧ ¬ q
¬ (p ∧ q) ≡ ¬ p ∨ ¬ q
¬ [ (∃ X) p(X) ] ≡ (∀X) [¬ p(X) ]
¬ [ (∀X) p(X) ] ≡ (∃ X) [¬ p(X) ]
Aplicándolo sobre el ejemplo:
∀X{¬p(X) ∨ {∀Y[¬ p(Y) ∨ p(f(X,Y))] ∧ ¬∀Y[¬ q(X,Y) ∨ p(Y)]}}
∀X{¬ p(X) ∨ {∀Y[¬ p(Y) ∨ p(f(X,Y))] ∧ ∃Y[q(X,Y) ∧ ¬ p(Y)]}}
20. 3. Renombrar variables, en aquellos casos en los que varias
variables se hayan nombrado de igual forma. En nuestro
caso esto ocurre con la variable Y que renombramos como Z
en su segunda ocurrencia.
Así nuestro ejemplo se transforma en:
∀X{¬ p(X) ∨ {∀Y[¬ p(Y) ∨ p(f(X,Y))] ∧ ∃Y[q(X,Y) ∧ ¬ p(Y)]}}
∀X{¬ p(X) ∨ {∀Y[¬ p(Y) ∨ p(f(X,Y))] ∧ ∃Z[q(X,Z) ∧ ¬ p(Z)]}}
21. 4. Eliminar los cuantificadores existenciales. Las variables
cuantificadas por este tipo de cuantificadores serán
sustituidas por un tipo de función comodín denominada
función de Skolem (proceso de skolemización).
P.e. ∃Z q(X,Z) se transforma en q(X, g(X))
en donde g(X) es la función de Skolem para este caso.
Nótese que no sólo se eliminan los cuantificadores
existenciales sino también las variables ligadas a los mismos.
La función de Skolem introducida debe ser nueva en el
universo de discurso, y además deberá ser función de todas
las variables cuantificadas universalmente cuyos ámbitos
incluyan el ámbito del cuantificador existencial que se
pretende eliminar.
22. Así nuestro ejemplo se transforma en:
∀X{¬ p(X) ∨ {∀Y[¬ p(Y) ∨ p(f(X,Y))] ∧ ∃Z[q(X,Z) ∧ ¬ p(Z)]}}
∀X{¬ p(X) ∨ {∀Y[¬ p(Y) ∨ p(f(X,Y))] ∧ [q(X, g(X)) ∧ ¬ p(g(X))]}}
Si el cuantificador existencial no se encuentra en el ámbito de
ningún cuantificador universal, se usará una función de
Skolem sin argumentos. Como en el siguiente ejemplo:
∃Z q(Z) se transforma en q(a)
Donde el símbolo constante a referencia a la entidad que
sabemos existe. Evidentemente a debe ser un símbolo que
no haya sido empeado con anterioridad.
23. 5. Desplazar los cuantificadores universales, de manera que
queden al comienzo de la fórmula (forma prenex. Estre
proceso puede ser realizado por cuanto no existen ya
variables distintas con el mismo nombre.
∀X{¬ p(X) ∨ {∀Y[¬ p(Y) ∨ p(f(X,Y))] ∧ [q(X, g(X)) ∧ ¬ p(g(X))]}}
∀X ∀Y{¬ p(X) ∨ { [¬ p(Y) ∨ p(f(X,Y))] ∧ [q(X, g(X)) ∧ ¬ p(g(X))]}}
6. Convertir los operadores conjuntivos en los más externos,
para lo que se emplean las leyes distributivas. A la forma
resultante se le denomina forma normal conjuntiva.
Este paso se ejecuta sobre el ejemplo en dos pasos:
24. Partiendo de la última expresión,
∀X∀Y{¬ p(X) ∨ { [¬ p(Y) ∨ p(f(X,Y))] ∧ [q(X, g(X)) ∧ ¬ p(g(X))]}}
se aplica primero la ley distributiva:
∀X∀Y{ {¬ p(X) ∨ [¬ p(Y) ∨ p(f(X,Y))]} ∧
{¬ p(X) ∨ [q(X, g(X)) ∧ ¬ p(g(X))]}}
Aplicando de nuevo la ley distributiva y la asociativa:
∀X∀Y{ [¬ p(X) ∨ ¬ p(Y) ∨ p(f(X,Y))] ∧
[¬ p(X) ∨ q(X, g(X)) ] ∧
[¬ p(X) ∨ ¬ p(g(X))]}
25. 7. Eliminar los cuantificadores universales. Se trata de
una eliminación convencional, no teórica, pues se asume
que toda variable que aparezca está cuantificada
universalmente. La función de Skolem adquiere sentido,
dado que al no aparecer otras variables que las
universales, pueden eliminarse sus cuantificadores por
convenio. En nuestro ejemplo:
∀X∀Y{ [¬ p(X) ∨ ¬ p(Y) ∨ p(f(X,Y))] ∧
[¬ p(X) ∨ q(X, g(X)) ] ∧
[¬ p(X) ∨ ¬ p(g(X))]}
[¬ p(X) ∨ ¬ p(Y) ∨ p(f(X,Y))] ∧
[¬ p(X) ∨ q(X, g(X)) ] ∧
[¬ p(X) ∨ ¬ p(g(X))]
26. 8. Eliminar los conectores conjuntivos.
Dado que la fómula se corresponde con una conjunción
de subfómulas, éstas deberán verificarse por separado
para que se verifique la fórmula principal.
Esto produce, en nuestro caso, el siguiente conjunto de
fórmulas:
[¬ p(X) ∨ ¬ p(Y) ∨ p(f(X,Y))] ∧
[¬ p(X) ∨ q(X, g(X)) ] ∧
[¬ p(X) ∨ ¬ p(g(X))]
¬ p(X) ∨ ¬ p(Y) ∨ p(f(X,Y))
¬ p(X) ∨ q(X, g(X))
¬ p(X) ∨ ¬ p(g(X))
27. Unificación y sustitución
El proceso de unificación determina las condiciones y posibilidades
de sustitución de un predicado por otro. Por ejemplo, en el caso de
los siguientes axiomas:
p(X) → q(X)
p(a)
la demostración de q(a) es consecuencia de la regla de
especialización Universal aplicada a:
p(X) → q(X)
para producir
p(a) → q(a)
También puede interpretarse como que se ha procedido a realizar la
sustitución de p(X) por p(a), previa unificación de X con a.
El proceso de sustitución de términos, denominado Unificación, para
lograr que dos expresiones sean idénticas es fundamental en el
proceso de demostración de teoremas en la LPO.
28. Unificación y sustitución
Un proceso de unificación puede ser representado mediante un
operador θ constituido por un conjunto de pares de términos
ordenados por:
θ = { v1→ t1, v2→ t2, ..., vn→ tn}
donde el par vi→ ti, indica que la variable vi es sustituida por el
término ti.
Así el predicado p se transforma mediante la sustitución indicada por
θ en p(... , vk, ...) θ = p(... , tk, ...).
NOTA: También es muy habitual la notación equivalente
θ = { v1/ t1, v2/ t2, ..., vn/ tn}
29. Unificación y sustitución
Ejemplos:
Definir las sustituciones necesarias para unificar el predicado
p(X, f(Y), b)
con cada uno de los siguientes predicados:
P1: p(g(Z), f(a), b) θ1 = { X → g(Z), Y → a }
P2: p(X, f(a), b) θ2 = { Y → a }
P3: p(Z, f(U), b) θ3 = { X → Z, Y → U }
P4: p(c, f(a), b) θ4 = { X → c, Y → a }
30. Resolución por refutación
Si queremos demostrar un teorema dado en base a un
conjunto de axiomas que suponemos consistente, podemos
hacerlo mostrando que el conjunto formado por la negación
del teorema y el conjunto de axiomas es inconsistente.
Si tal inconsistencia se demuestra será porque el teorema
era cierto.
Un sistema lógico se dice inconsistente si dos
expresiones V y ¬V son simultáneamente válidas en
él.
Se han desarrollado procedimientos efectivos capaces de
demostrar la inconsistencia de un sistema lógico. Sin
embargo, no existen tales procedimientos para demostrar
su consistencia.
31. Decidibilidad y Consistencia
Si A es un conjunto de cláusulas lógicas consistentes,
denominadas Axiomas, y T es otra cláusula, denominada
Teorema, entonces si T es una consecuencia lógica de A
se debe verificar:
1. El conjunto A ∪ T es consistente
2. El conjunto A ∪ ¬T es inconsistente
Sólo la segunda propiedad es verificable de forma efectiva,
de donde se deduce intuitivamente un procedimiento de
demostración de teoremas que consiste en demostrar la
inconsistencia de A ∪ ¬T . A este procedimiento se le
denomina de Resolución por Refutación del Teorema.
32. Cláusula resolvente
Sean dos cláusulas, que denominaremos cláusulas padres, que
contengan respectivamente, una misma proposición, negada y sin
negar, cada una de ellas. Como es el caso de la proposición p 1 en el
siguiente ejemplo:
p1 v p2 v ... v pn
¬ p1 v q2 v ... v qm
Ambas cláusulas forman parte de un sistema que se asume consistente
y, por tanto, son ciertas. Puede construirse entonces una nueva
cláusula, denominada cláusula resolvente a partir de la disyunción de
ambas eliminando la proposición que aparece doblemente. Esto es:
(p1 v p2 v ... v pn) v (¬ p1 v q2 v ... v qm)
≡ (p1 v ¬ p1) v (p2 v ... v pn v q2 v ... v qm)
≡ p2 v ... v pn v q2 v ... v qm
33. Cláusula resolvente
La nueva cláusula (cláusula resolvente) debe ser cierta por cuanto las
cláusulas padre forman un conjunto de cláusulas consistente con lo que
el conjunto que resulta de añadir la cláusula resolvente al conjunto de
cláusulas anterior sigue siendo consistente.
Los siguientes son algunos ejemplos de la aplicación del método de la
cláusula resolvente:
(¬ p v q) v p ≡q (modus ponens)
(p v q) v (¬ p v q) ≡q
(¬ p v p) ≡ nil (inconsistencia)
(¬ p v q) v (¬ q v r) ≡¬pvr (encadenamiento de reglas)
(p v ¬ q) v (¬ p v q) ≡qv¬q (tautología)
Nótese que en el último caso, también podría resolverse sobre q y
obtendríamos como cláusula resolvente p v ¬ p. Lo que no es correcto
es resolver doblemente sobre p y q y obtener un resolvente nulo.
34. Cláusula resolvente
(p v ¬ q) v (¬ p v q) ≡qv¬q (tautología)
Una forma de ver que la doble resolución es un error es considerar el
caso sencillo anterior cuando se resuelve doblemente. En ese caso
obtendríamos la cláusula nula, indicando una inconsistencia. Sin
embargo, podemos comprobar que ambas cláusulas son consistentes
cuando ambos predicados son verdaderos, lo que indica que la
conclusión de inconsistencia que se deriva de la doble resolución es
incorrecta.
La idea que subyace en el método de resolución se basa en que la
fórmula ((p v α) ∧ (¬ p v β)) → (α v β) es una tautología (demostrarlo
empleando una tabla de verdad).
Por el contrario, puede comprobarse que la fórmula similar que debería
sustentar la doble resolución, ((p v r v α) ∧ (¬ p v ¬ r v β)) → (α v β) ,
donde r es q o ¬ q, no es válida.
35. Resolución por Refutación
La resolución por refutación consiste esencialmente en aplicar el
método de la cláusula resolvente para eventualmente alcanzar el
resolvente nulo. Si esto es posible se habrá demostrado la
inconsistencia del conjunto formado por los axiomas (cuya validez está
garantizada) y el teorema negado, en cuyo caso el teorema se
considera demostrado.
¬avb ¬bvc a ¬c
¬avc
c
nil
36. Resolución por Refutación
Para poder aplicar el método de la cláusula resolvente a predicados y
no sólo a proposiciones es preciso primeramente unificar las cláusulas
para conseguir que los términos de los predicados complementarios
sean idénticos.
Ejemplo: Sean las siguientes cláusulas padre.
p(X, f(a)) ∨ p(X, f(Y)) ∨ q(Y)
¬ p(Z, f(a)) ∨ ¬ q(Z)
Se puede encontrar un resolvente empleando bien p o bien q como
predicados complementarios. Si elegimos p, el unificador será:
{ p(X, f(a)), p(Z, f(a)) } con la sustitución θ = { X → Z }
que produce la cláusula resolvente:
p(Z, f(Y)) ∨ q(Y) ∨ ¬ q(Z)
37. Resolución por Refutación
Otra forma de generar una cláusula resolvente más sencilla consiste en
eliminar alguna de las realizaciones del mismo predicado p en alguna
de las cláusulas padre. Por ejemplo, encontrando un unificador y
absorbiendo una de las realizaciones.
p(X, f(a)) ∨ p(X, f(Y)) ∨ q(Y)
¬ p(Z, f(a)) ∨ ¬ q(Z)
Así : { p(X, f(a)), p(X, f(Y)) } con la sustitución θ = { Y → a }
convierte las cláusulas padre en:
p(X, f(a)) ∨ q(a)
¬ p(Z, f(a)) ∨ ¬ q(Z)
Aplicando el unificador θ = { Z → X } resolviendo, obtenemos como
resolvente:
q(a) ∨ ¬ q(X)
38. Resolución por Refutación
Una idea clave:
Si el par de cláusulas padre se toma de un
conjunto de cláusulas consistentes, entonces,
dado que la cláusula resolvente es una
consecuencia lógica de las anteriores, también es
consistente el conjunto resultante de añadir el
resolvente al conjunto original.
39. Resolución por Refutación
Idea sobre la que se desarrolla el algoritmo:
Hasta que se encuentre la cláusula nula se exploran pares de
cláusulas padre, incluyendo - en caso de fracaso - el resolvente en el
conjunto de cláusulas.
El proceso para si:
1. El resolvente generado es nulo: se ha demostrado el teorema.
2. Si no existe ningún par de cláusulas que puedan producir un
resolvente, entonces no se puede demostrar la inconsistencia del
conjunto y se dice que el conjunto no es completo. Esto significa
que el teorema no es una consecuencia lógica de los axiomas y, por
tanto, se puede suponer falso.
40. Algoritmo: Resolución por Refutación
0. Se supone que tanto los axiomas como la negación del teorema
han sido transformados en cláusulas.
1. Incluir en el conjunto de cláusulas TRABAJO el conjunto de
axiomas y el teorema negado.
2. Repetir hasta que se produzca la cláusula nula, o no se encuentre
ningún resolvente:
2.a Encontrar en TRABAJO un par de cláusulas que puedan
resolverse y obtener el resolvente. Eliminar los elementos
duplicados.
2.b Descartar la cláusula si contiene un predicado y su negación.
2.c Si el resolvente no está en TRABAJO, añadirlo.
3. Si se ha encontrado la cláusula nula, el teorema es cierto. En caso
contrario, el teorema se supone falso.
41. Ejemplo:
Axiomas
A.1 “Cualquiera que puede leer es un ilustrado”
∀X(r(X) → l(X))
A.2 “Los delfines no son ilustrados”
∀X(d(X) → ¬ l(X))
A.3 “Algunos delfines son inteligentes”
∃X(d(X) ∧ i(X))
Teorema.
T. “Algunos que son inteligentes, no pueden leer”
∃X(i(X) ∧ ¬ r(X))
42. Ejemplo: Paso a cláusulas
Axiomas
A.1 ∀X(r(X) → l(X)) ¬ r(X) ∨ l(X)
A.2 ∀X(d(X) → ¬ l(X)) ¬ d(Y) ∨ ¬ l(Y)
A.3 ∃X(d(X) ∧ i(X)) d(a)
i(a)
Teorema.
T. ∃X(i(X) ∧ ¬ r(X)) ¬ i(Z) ∨ r(Z)
donde a es una constante de Skolem
44. El proceso de resolución puede simplificarse si ,
previamente o durante el proceso se realizan determinadas
eliminaciones de cláusulas, lo que equivale a una poda del
árbol de exploración.
1. Eliminación de tautologías. Eliminación de cláusulas tales que
puedan ser reducidad a una tautología.
p(A) ∨ q(B) ∨ ¬ q(B)
2. Eliminación por absorción. Por definición, una cláusula {Li} absorbe
a otra {Mi} si existe una sustitución s tal que {Li}s es un subconjunto de
{Mi}.
p(X) elimina a p(Y) ∨ q(U)
p(X) elimina a p(a)
p(X) elimina a p(b) ∨ q(Z)
p(X) ∨ q(W) elimina a p(f(a,b)) ∨ q(g(T)) ∨ r(V)
3. Eliminación procedimental. Cuando un predicado puede ser
evaluado (debido a mecanismos extralógicos o de tipo procedimental)
y se evalúa a cierto entonces es posible eliminar la cláusula que lo
contiene. Si se evalúa a falso, entonces simplemente se puede
eliminar ese predicado de la cláusula.
45. Sistemas de Deducción
S.D. Hacia-Delante:
Se parte de los axiomas y se trata de llegar al
teorema por aplicación de reglas de inferencia.
Evidentemente, ésto sólo será posible si el
teorema es una consecuencia lógica de los
axiomas.
S.D. Hacia-Atrás:
Se parte del teorema y, por aplicación de reglas de
inferencia, se intenta llegar a unos hechos
completamente ciertos.
46. Hechos, Reglas y Objetivos
Los elementos que intervienen en la deducción son:
Reglas: Son aquellos axiomas que contienen una
implicación, con antecedentes y consecuentes
Hechos: Se denominan así a los axiomas que no
contienen una implicación. Son elementos sin
condiciones.
Meta u Objetivo: Designa al teorema a demostrar.
47. Hechos, Reglas y Objetivos
Nomenclatura de Kowalsky:
Reglas: b1 ∨ b2 ∨ b3 ∨ ... ∨ bm ← a1 ∧ a2 ∧ ... ∧ an
Hechos: b1 ∨ b2 ∨ b3 ∨ ... ∨ bm ←
Meta u Objetivo: ← a1 ∧ a2 ∧ ... ∧ an
donde ai y ∧ bj representan predicados lógicos
48. Hechos, Reglas y Objetivos
Se puede simplificar esta nomenclatura si se admite la
sustitución de operadores por comas que el antecedente
representarán conjunciones y el consecuente
disyunciones. Si nos restrigimos, además, a considerar
sólo cláusulas de Horn:
Reglas: b ← a1 , a2 , ... , an
Hechos: b ←
Meta u Objetivo: ← a1 , a2 , ... , an
49. Deducción progresiva o Hacia-Delante
1. Formular el problema en términos de hechos, reglas y objetivos como
cláusulas de Horn, y añadirlos a una base de datos inicialmente vacía.
2. Hasta que el objetivo esté vacío o no existan sustituciones aplicables.
2.1 Partiendo de algún hecho disponible, encontrar una regla con un
antecedente, o un subobjetivo, que pueda ser sustituido, previa
unificación, con el hecho en cuestión
a1 ←
c ← a1 , a2 , ... , an
← a1 , o2 , ... , om
2.2 Añadir a la base de datos, la siguiente regla o subobjetivo, donde
θ es la unificación más general de la sustitución:
(c ← a2 , ... , an) θ
(← o2 , ... , om ) θ
3. Si el objetivo está vacío, entonces el objetivo es cierto y las posibles
respuestas vienen dadas por la secuencia de unificaciones. En otro
caso, el objetivo no se puede verificar.
50. Deducción regresiva o Hacia-Atrás
1. Formular el problema en términos de hechos, reglas y objetivos como
cláusulas de Horn, y añadirlos a una base de datos inicialmente vacía.
2. Hasta que el objetivo esté vacío o no existan sustituciones aplicables.
2.1 Partiendo del objetivo, encontrar algún hecho o consecuente de
regla que pueda que pueda ser sustituido, previa unificación, con
algún subobjetivo
p←
p ← a1 , a2 , ... , an
← p , o2 , ... , om
2.2 Añadir a la base de datos, el siguiente objetivo, donde θ es la
unificación más general de la sustitución:
(← o2 , ... , om ) θ
(← a1 , a2 , ... , an , o2 , ... , om ) θ
3. Si el objetivo está vacío, entonces el objetivo es cierto y las posibles
respuestas vienen dadas por la secuencia de unificaciones. En otro
caso, el objetivo no se puede verificar.