Download Índice General 1 Resolución en lógica de proposiciones

Document related concepts

Resolución (lógica) wikipedia , lookup

Forma normal conjuntiva wikipedia , lookup

Literal (lógica matemática) wikipedia , lookup

Problema de satisfacibilidad booleana wikipedia , lookup

Algoritmo DPLL wikipedia , lookup

Transcript
Resolución
1
Resolución en lógica de proposiciones
En este apartado se definen los principales conceptos del principio de resolución, pero
sólo a nivel de lógica de proposiciones.
R ESOLUCIÓN
Definición 1 (Resolución binaria, resolvente binario, cláusulas padre) Sean C1 y C2
dos cláusulas con λ ∈ C1 y ¬λ ∈ C2 dos literales complementarios. El procedimiento
de resolución procede como sigue:
César Ignacio García Osorio
1. Borrar λ de C1 y ¬λ de C2 , para dar las cláusulas C1 y C2 .
2. Formar la disyunción C de C1 y C2 .
Índice General
3. Eliminar los posibles literales redundantes de C , para obtener C = (C1 −{λ})∪
(C0 − {¬λ}).
1
Resolución en lógica de proposiciones
1.1 Refutación por resolución . . . . . . . . . . . . . . . . . . . . . . .
2
5
2
Resolución en lógica de predicados
2.1 Refutación por resolución . . . . . . . . . . . . . . . . . . . . . . .
6
9
3
Completitud de la resolución
10
La cláusula resultante C se llama resolvente de C1 y C2 respecto a λ1 , y se denota
por resλ (C1 , C2 ). Las cláusulas C1 y C2 se dice que son las cláusulas padre del resolvente. Esta forma básica de la regla de inferencia resolución también es conocida con
el nombre de resolución binaria, ya que sólo están involucradas dos cláusulas.
4
Agenda
13
Ejemplo 1
Resumen
En este capítulo de presenta los fundamentos teóricos del principio de resolución. El principio de resolución supuso uno de los avances más importantes en
el campo de la demostración automática de teoremas. En este principio ya no se
trabaja de forma explícita con las H-interpretaciones. En vez de generar conjunto
de instancias básicas del conjunto de cláusula original, se trabaja directamente
con las cláusulas. .
Sean las cláusulas C1 = {P }
es:
resλ (C1 , C2 ) =
=
=
y C2 = {¬P, Q}, su resolvente con respecto a P
({P } − {P }) ∪ ({¬P, Q} − {¬P })
∪ {Q}
{Q}.
Si se reescriben las cláusulas como fórmulas bien formadas se comprueba que,
en este ejemplo, la regla de resolución equivale a aplicar la regla modus ponens
sobre las fórmulas originales:
C
¬P → Q
Q
El principio de resolución también puede verse como una extensión de la regla
del literal único de Davis y Putnam.
La resolución tiene la importante propiedad de que cuando dos cláusulas padres
son ciertas bajo una interpretación, su resolvente es también cierto bajo la misma interpretación, por tanto: la resolución es una regla de inferencia sólida . El siguiente
teorema prueba la solidez de la resolución para la lógica de proposiciones.
1
A λ y a ¬λ se les denomina literales de resolución o literales resolventes (del ingles literals resolved
upon).
César I. G. Osorio
2
LSI – Univ. de Burgos
Resolución
Resolución
Teorema 1 Solidez de la resolución en lógica de proposiciones Sean C1 y C2 dos
cláusulas que se pueden resolver y sea C su resolvente, entonces C es consecuencia
lógica de C1 y C2 (C1 , C2 |= C)
Demostración: Si C1 y C2 se pueden resolver existe λ tal que λ ∈ C1 y ¬λ ∈ C2
y se puede escribir:
C1 = {λ} ∪ C1
C2 = {¬λ} ∪ C2
C = C1 ∪ C2
con C1 y C2 cláusulas. Si C1 y C2 son ciertas bajo una interpretación I, se pretende
demostrar que C también es cierta bajo I. Se tiene que λ o ¬λ (uno de los dos) debe ser
falso bajo I. Supóngase que λ es falso bajo I. Entonces C1 no puede ser una cláusula
unitaria, ya que de serlo seria falsa bajo I. Por tanto, C1 debe ser cierto bajo I. De
modo que el resolvente C, es decir C1 ∪ C2 es cierto en I. Análogamente si ¬λ es falso
en I, entonces C2λ debe ser cierto en I. Lo que significa que C1 ∪ C2 debe ser cierto en
I. Con lo que el teorema queda demostrado. En el caso particular de que C1 y C2 sean
cláusulas unitarias se tiene que
C1 = {λ}
C2 = {¬λ}
C=
• Suponemos que Cj es cierto para todo j < i
Si Ci ∈ S, Ci es cierto.
Si Ci ∈
/ S, existen los enteros j < i, k < i y la cláusula λ tales que
Ci = resλ (Cj , Ck ) y entonces Ci es cierto por el teorema 1
Del teorema anterior se deduce que si S es un conjunto de cláusulas inconsistente
entonces existe una derivación por resolución de la cláusula vacía a partir de S. Mas
adelante se verá que si se deriva por resolución la cláusula vacía a partir de un conjunto
de cláusulas S, es porque S es insatisfacible.
A continuación se presentan varios ejemplos en los que se muestra como el principio de resolución puede usarse para probar la insatisfacibilidad de un conjunto de
cláusulas.
Ejemplo 2
Considérese el conjunto de cláusulas:

(1) ¬P ∨ Q 
(2) ¬Q
=S

(3) P
{λ}, {¬λ} |= esto explica el convenio de considerar como inconsistente.
de (1) y (2) se obtiene el resolvente
Definición 2 (Derivación (por resolución), refutación ) Sea S un conjunto de cláusulas y C una cláusula. Una derivación (por resolución) de C a partir de S (S C),
es una secuencia finita de cláusulas C1 , C2 , . . . , Cn , n ≥ 1, tales que Cn = C y para
cada Ck se verifica una de las dos condiciones siguientes:
(4) ¬P
de (4) y (3) se obtiene el resolvente
• Ck es una cláusula de S (Ck ∈ S)
(5) • existen enteros i < k, j < k y un literal λ tales que Ck = resλ (Ci , Cj ). En otras
palabras Ck es un resolvente cuyas cláusulas padre le preceden en la secuencia.
Si Cn = , entonces la derivación se llama refutación (o prueba) de S, e indica
que S es insatisfacible como se muestra en el corolario del siguiente teorema.
Teorema 2 Solidez de la derivación por resolución en lógica de proposiciones Sea
S un conjunto de cláusulas y C una cláusula, si existe una derivación por resolución
de la cláusula C a partir de las cláusulas de S (S C), entonces C es consecuencia
lógica de S (S |= G).
Demostración: Hay que demostrar que si las cláusulas de S son ciertas, entonces
también lo será la cláusula C. Sea C1 , C2 , . . . , Cn = C la derivación por resolución
de la cláusula C a partir de S, la demostración se realizará por inducción sobre las
cláusulas de la derivación. Partimos de que S es cierto y vamos a ver que también lo
es C.
• Por ser S cierto también lo es C1 , ya que (C1 ∈ S).
César I. G. Osorio
3
LSI – Univ. de Burgos
Como se ha derivado por resolución de S, de acuerdo con teorema 2 es
consecuencia lógica de S, y como se verá más adelante esto implica que S es
insatisfacible. Esta no es la única refutación posible de S 2 . En general un conjunto
de cláusulas puede tener más de una refutación3 .
Ejemplo 3
Para el conjunto
(1) P ∨ Q
(2) ¬P ∨ Q
(3) P ∨ ¬Q
(4) ¬P ∨ ¬Q
2







=S
También es posible obtener la derivación por resolución: ¬P ∨ Q, ¬Q, P , Q (de 1 y 3), (de 2 y
4).
3
Como se verá más adelante esto es una de las causas de la ineficiencia de los programas de razonamiento automático. A lo largo de su ejecución se generan cláusulas de más de una refutación, lo ideal
sería generar únicamente las cláusulas de una de ellas, esto el lo que buscan las reglas de inferencia y
las estrategias: disminuir el número de cláusulas generadas la mínimo necesario para generar una única
refutación.
César I. G. Osorio
4
LSI – Univ. de Burgos
Resolución
1.1
¬P ∨ Q
P∨Q
Refutación por resolución
P ∨ ¬Q
Resolución
3. Repetir hasta que se obtenga la cláusula vacía o no se generen nuevas cláusulas:
¬ P ∨ ¬Q
a) Seleccionar dos cláusulas que se puedan resolver, formando su resolvente.
b) Si el resolvente no es la cláusula vacía, añadirlo a S.
¬Q
Q
Como la lógica de proposiciones es decidible, el procedimiento siempre para si le
asignamos suficientes recursos. Cuando termina hay dos posibilidades:
i) Se ha generado la cláusula vacía, lo que significa que S es inconsistente, es decir,
S0 ∪ {¬t} es inconsistente, luego S0 |= t y t es un teorema de T (sistema formal
completo).
ii) No se generan nuevos resolventes, lo que significa que S es consistente, es decir
S0 ∪{¬t} es consistente, luego S0 |= t y t no es un teorema de T (sistema formal
sólido).
Figura 1: Grafo/árbol de derivación
se puede generar los siguientes resolventes
(5) Q
de (1) y (2)
(6) ¬Q de (3) y (4)
(7) de (5) y (6)
Como se ha derivado , S es insatisfacible.
Una derivación como la anterior puede ser representada en un grafo llamado grafo
de derivación, que se muestra en la figura 1. En el caso de una refutación, los vértices
en el grafo de derivación están restringidos a ser aquellas cláusulas que intervienen
directa o indirectamente en la refutación en la refutación. Este grafo de derivación
toma la forma de un árbol y usualmente se usa el termino árbol de derivación para
designarlo. Las hojas de este árbol son las cláusulas del conjunto original, y la raíz del
árbol es la cláusula vacía (o, si en vez de una refutación se trata de una derivación,
la cláusula derivada).
1.1
Refutación por resolución
A continuación se verán los pasos que hay que dar para probar un teorema de una
teoría mediante el uso de la refutación y de la resolución como regla de inferencia.
La refutación por resolución consiste en realizar una demostración por refutación
empleando la resolución como única regla de inferencia.
Para probar que t es un teorema de una teoría T sobre un sistema formal axiomático
sólido y completo, se usa el siguiente procedimiento:
1. Convertir los axiomas de T a forma normal conjuntiva. Crear el conjunto S0 con
todas las fórmulas obtenidas.
2. Negar t y convertirlo a forma normal conjuntiva. Añadir las cláusulas obtenidas
a S0 , obteniendo S.
César I. G. Osorio
5
LSI – Univ. de Burgos
Si no se exige un sistema formal sólido y completo, el procedimiento sólo demuestra la consistencia o inconsistencia de S.
El principio de resolución es una regla de inferencia potente. En la siguiente sección se definirá este principio para la lógica de primer orden. Se verá además la completitud del principio de resolución, es decir si un conjunto de cláusulas es insatisfacible se podrá derivar la cláusula vacía utilizando la resolución.
2
Resolución en lógica de predicados
El mismo principio de resolución aplicable a la lógica de proposiciones, es aplicable a
la de predicados. Para poder aplicar el principio de resolución a la lógica de predicados
se necesita, sin embargo, introducir el concepto de unificación. Básicamente la unificación es un algoritmo que permite calcular la sustitución de variables por términos
que hace que dos expresiones sean sintácticamente iguales. La unificación se explica
en detalle en el anexo I, que es conveniente haber leído para entender lo que aquí se
explica, no obstante se va a dar una idea general de como se usa este concepto en la
obtención de resolventes a través de un par de ejemplos.
Ejemplo 4
Se tienen la fórmulas:
(∀x)(∀y)(¬P (x, g(y)) ∨ Q(x))
(∀v)P (a, v)
Se quiere aplicar la regla de inferencia modus ponens pero tal como están la
fórmulas no podemos, pero como se tiene el mismo predicado y los cuantificadores universales, se pueden manipular las fórmulas para conseguir la aplicación de
la regla de inferencia.
César I. G. Osorio
6
LSI – Univ. de Burgos
Resolución
Resolución
La manipulación consistirá en la sustitución de las variables por términos mediante el uso de la regla de inferencia de instanciación universal. Se sustituye la
variable x de la primera fórmula por el termino a y la variable v de la segunda
por el termino g(y), para obtener la fórmulas
¬P (a, g(y)) ∨ Q(a)
P (a, g(y))
sobre las que si se puede aplicar la regla de inferencia modus ponens para concluir
finalmente:
Definición 3 (Resolvente binario, cláusulas padre, literales de resolución) Sean C1
y C2 dos cláusulas que no tienen variables comunes5 . Sean L1 ∈ C1 y L2 ∈ C2
dos literales de manera que L1 y ¬L2 sean unificables con unificador más general θ.
Se denomina resolvente binario de C1 y C2 (respecto a L1 y L2 ) y se denota, por
resL1 ,L2 (C1 , C2 ) a la cláusula:
resL1 ,L2 (C1 , C2 ) = (C1 θ − {L1 }θ) ∪ (C2 θ − {L2 }θ)
Las cláusulas C1 y C2 se llaman cláusulas padres de resL1 ,L2 (C1 , C2 ). Y los literales
L1 y L2 se llaman literales de resolución (literals resolved upon).
Q(a)
Ejemplo 5
Ejemplo 6
Sea el conjunto de cláusulas:
(1)
(2)
(3)
(4)
A continuación se definen los conceptos relativos al principio de resolución para la
lógica de primer orden (algunos de ellos son similares, pero otros son nuevos para la
lógica de predicados).
Sean C1 = P (x) ∨ Q(x) y C2 = ¬P (a) ∨ R(x). Como x aparece en las dos
cláusulas se renombra la variable en C2 para tener C2 = ¬P (a) ∨ R(y). Los
literales de resolución son L1 = P (x) y L2 = ¬P (a). Como L1 y ¬L2 son
unificables con unificador más general θ = {a/x} se tiene que
P (x1 ) ∨ Q(x1 , y1 )
¬P (a) ∨ Q(x2 , f (y2 ))
P (b) ∨ Q(x3 , y3 )
¬P (y4 ) ∨ ¬Q(x4 , f (y4 ))
a partir de este conjunto de cláusulas se puede obtener una serie de “resolventes”
si se combina la resolución con la sustitución de variables por términos4 .
resL1 ,L2 (C1 , C2 ) =
=
=
=
(C1 θ − {L1 }θ) ∪ (C2 θ − {L2 }θ)
({P (a), Q(a)} − {P (a)}) ∪ ({¬P (a), R(y)} − {¬P (a)})
{Q(a)} ∪ {R(y)}
{Q(a), R(y)}
por tanto Q(a) ∨ R(y) es un resolvente binario de C1 y C2 .
(5)
P (a) ∨ Q(a, f (y2 ))
(6)
(7)
(8)
(9)
¬P (a) ∨ Q(a, f (y2 ))
Q(a, f (y2 ))
P (b) ∨ Q(x3 , f (y4 ))
¬P (b) ∨ ¬Q(x3 , f (y4 ))
(10)
(11)
(12)
(13)
¬Q(x3 , f (b))
Q(a, f (b))
¬Q(a, f (b))
de (1) al sustituir la variable x1 por el termino constante a,
y la variable y1 por el termino f (y2 )
de (2) al sustituir la variable x2 por el termino constante a
de (1) y (2) aplicando la resolución
de (3) al sustituir la variable y3 por el termino f (y4 )
de (4) al sustituir la variable y4 por el termino b, y la variable x4 por el termino x3
de (8) y (9) aplicando la resolución
de (7) al sustituir la variable y2 por el termino b
de (10) al sustituir la variable x3 por el termino a
de (11) y (12) aplicando la resolución
como finalmente se obtiene la cláusula vacía a partir de S, S es inconsistente.
Ejemplo 7
Sean C1 = P (x, x) y C2 = ¬P (y, f (y)), como P (x, x) y ¬P (y, f (y)) no son
unificables C1 y C2 no se pueden resolver.
Definición 4 (Factor, factor unitario, factorización) Si dos o más literales (con el
mismo signo) de una cláusula C tienen un unificador más general θ, entonces Cθ se
llama factor de C. Si Cθ es una cláusula unitaria, Cθ se llama factor unitario de C. Al
proceso de obtener el factor de una cláusula se le denomina factorización.
Ejemplo 8
Sea C = P (x) ∨ P (f (y)) ∨ ¬Q(x). Los literales primero y segundo son unificables con unificador más general θ = {f (y)/x}. Por tanto, Cθ = P (f (y)) ∨
¬Q(f (y)) es un factor de C.
Como se ve las cláusulas del ejemplo no tienen variables comunes. Si el conjunto inicial de cláusulas tuviera cláusulas con variables comunes, lo habitual es renombrar la variables comunes para deshacer
esta situación, a esta operación de renombrado se la llama normalización por separado. Esta operación
es posible ya que las variables son mudas y sólo tienen relevancia en la cláusula en la que aparecen,
es decir, una variable llamada x que aparece en una cláusula no tiene nada que ver con una variable
llamada x que aparezca en otra cláusula.
Definición 5 (Resolvente) Sean C1 y C2 dos cláusulas que no tienen variables comunes. Se denomina resolvente de las cláusulas (padre) C1 y C2 a cualquiera de los
siguientes resolventes binarios:
César I. G. Osorio
César I. G. Osorio
4
7
LSI – Univ. de Burgos
5
Si tuvieran variables comunes, habría que renombrar las variables para que eso no sucediera (ver
nota anterior).
8
LSI – Univ. de Burgos
Resolución
2.1
Refutación por resolución
Resolución
1. resolvente binario de C1 y C2 .
procedure Resolución(S)
cláusulas← S;
while ∈
/ cláusulas do
{Ci , Cj }←SeleccionarClausulasAResolver(cláusulas);
resolvente←Resolver(Ci , Cj );
cláusulas←cláusulas ∪{resolvente};
end_while
end
2. resolvente binario de C1 y un factor de C2 .
3. resolvente binario de un factor de C1 y C2 .
4. resolvente binario de un factor de C1 y un factor de C2 .
Ejemplo 9
Sean C1 = P (x) ∨ P (f (y)) ∨ R(g(y)) y C2 = ¬P (f (g(a))) ∨ Q(b). Un factor de C1 es C1 = P (f (y)) ∨ R(g(y)). Un resolvente binario de C1 y C2 es
R(g(g(a))) ∨ Q(b). De modo que R(g(g(a))) ∨ Q(b) es un resolvente de C1 y
C2 .
Las condiciones de terminación para la lógica de predicados son como se ve algo
diferentes, esto es debido al hecho de que la lógica de predicados no es decidible. Las
posibilidades que se tienen son:
Ejemplo 10
Sean C1 = P (x)∨P (y) y C2 = ¬P (u)∨¬P (v). Un factor de C1 es C1 = P (x) y
un factor de C2 es C2 = ¬P (u). El resolvente binario de C1 y C2 es , por tanto
es un resolvente de C1 y C2 . Claramente el conjunto {C1 , C2 } es inconsistente
pero la resolución binaria sin la factorización no permite obtener la cláusula vacía.
i) Se ha generado la cláusula vacía:
Los teoremas teorema 1 y teorema 2 vistos para la lógica de proposiciones se cumplen también para la de predicados pero utilizando la operación de resolución aquí
definida. La demostración de estos teoremas se traslada de forma inmediata a la lógica
de predicados. Del mismo modo es valida la definición de derivación y de refutación
pero como antes considerando la operación de resolución definida en la definición 5.
ii) No se generan nuevos resolventes:
2.1
S inconsistente, S0 ∪ {¬t} inconsistente, luego S0 |= t y t es un teorema de T
(sistema formal completo).
S es consistente, S0 ∪ {¬t} consistente, luego S0 |= t y t no es un teorema de T
(sistema formal sólido).
iii) Se agotan los recursos asignados: no se puede concluir nada
– S consistente: se pueden generar infinitos resolventes sin obtener .
Refutación por resolución
– S inconsistente: podemos generar sin más que aumentar los recursos.
El procedimiento de refutación por resolución visto para la lógica de proposiciones
también se puede utilizar para la lógica de predicados. Para probar que t es un teorema de una teoría T sobre un sistema formal axiomático sólido y completo, se usa el
siguiente procedimiento:
1. Convertir los axiomas de T a forma clausulada. Llama S0 al conjunto formado
con todas las cláusulas obtenidas.
2. Negar t y convertirlo a forma clausulada. Añadir las cláusulas obtenidas a S0 ,
obteniendo S.
3. Repetir hasta que se obtenga la cláusula vacía, no se generen nuevas cláusulas o
se consuman los recursos asignados:
a) Seleccionar dos cláusulas que se puedan resolver, formando su resolvente.
b) Si el resolvente no es la cláusula vacía, añadirlo a S. Si se obvian las dos
condiciones de finalización relativa al consumo de recursos y a la imposibilidad de generación de cláusulas, este último paso se puede poner en una
notación más próxima a los lenguaje de programación como:
César I. G. Osorio
9
LSI – Univ. de Burgos
3
Completitud de la resolución
En el teorema 1 se afirmaba que la resolución era una regla de inferencia sólida (si
un conjunto S de cláusulas es insatisfacible se va a poder derivar la cláusula vacía a
partir de S utilizando la resolución como única regla de inferencia). Aquí se verá que
además es una regla de inferencia completa (si se deriva la cláusula vacía a partir de
un conjunto de cláusulas S utilizando la resolución como regla de inferencia, S es
insatisfacible). Para ello son necesarias las definiciones de los conceptos de número de
ocurrencias de literales en una forma cláusulas y de número de literales en exceso, y
la demostración del teorema de completitud básica. Además es necesario el teorema
de “lifting” que nos permite pasar del resultado de completitud para cláusulas básicas
a la completitud para cláusulas no básicas.
Definición 6 (Número de ocurrencias de literales) Se denomina número de ocurrencias de literales en una forma clausulada a la suma de ocurrencias de literales de cada
cláusula.
César I. G. Osorio
10
LSI – Univ. de Burgos
Resolución
Resolución
Definición 7 (Número de literales en exceso ) Se denomina número de literales en
exceso de una forma clausulada al número de ocurrencias de literales menos el número
de cláusulas.
Teorema 4 Lema de “lifting” Sean C1 y C2 dos cláusulas que no tienen variables
comunes y C1 y C2 particularizaciones básicas de C1 y C2 respectivamente. Si C es
un resolvente de C1 y C2 , entonces existe un resolvente C de C1 y C2 tal que C es una
particularización básica de C.
Demostración: En primer, lugar si fuera necesario, se renombran las variables de
C1 y C2 para que no haya variables en común. Sean L1 y L2 los literales de resolución
y
C = (C1 γ − {L1 }γ) ∪ (C2 γ − {L2 }γ)
Ejemplo 11
Ejemplo 1.11 Sea el conjunto de cláusulas S = {P ∨ Q, ¬P ∨ R, Q} se tienen
que:
• su número de literales es: 2 + 2 + 1 = 5.
• su número de literales en exceso es: 5 − 3 = 2.
Teorema 3 Teorema de completitud básica Sea S un conjunto finito de cláusulas
básicas. Si S es insatisfacible, existe una derivación por resolución de la cláusula vacía
a partir de S.
Demostración: Sea S un conjunto inconsistente de cláusulas básicas.
i) Si ∈ S, se deriva trivialmente de S.
ii) Si ∈
/ S, la existencia de la derivación de a partir de S se demuestra por inducción sobre el número de literales en exceso de S. Sea n el número de literales
en exceso de S.
– Si n = 0, todas las cláusulas de S son unitarias, como se tiene que ∈
/
S la única forma de que S sea inconsistente es que existan dos literales
complementarios, a partir de los cuales se obtiene .
– Se supone que el teorema se cumple para n = k−1(k > 0). Para n = k > 0
existe al menos una cláusula C con más de un literal ( ∈
/ S), se selecciona
un literal λ ∈ C, se forma C = C − {λ} y se crean dos nuevas forma
clausuladas.
S1 = (S − {C}) ∪ {C }
S2 = (S − {C}) ∪ {{λ}}
Si S es inconsistente, S1 y S2 son inconsistentes6 . Como el número de
literales en exceso de S1 y S2 es menor que n, por la hipótesis de inducción
podemos derivar la cláusula vacía tanto de S1 como de S2 .
Considérese la derivación a partir de S1 .
∗ Si C no se usa en esta derivación, se tiene una derivación de a partir
de S.
∗ Si C se usa, se realiza la siguiente construcción:
1. Añadir λ en C y sus descendientes en la derivación a partir de S1 .
2. Si sigue perteneciendo a la secuencia, ya esta. En caso contrario,
en vez de la cláusula se tendrá la cláusula {λ}. Añadiendo la
derivación de a partir de S2 a esta derivación de {λ}, se tendrá
una derivación de a partir de S.
6
Esto se sigue por un razonamiento similar al que se vio para la reglas de Davis y Putnam
César I. G. Osorio
11
LSI – Univ. de Burgos
donde γ es un unificador más general de L1 y L2 . Dado que C1 y C2 son instancias de
C1 y de C2 , existe la sustitución θ tal que C1 θ = C1 y C2 θ = C2 . Sean L11 , L2i , . . . , Lri i
los literales de Ci correspondientes al literal Li (es decir L1i θ = L2i θ = . . . = Lri i θ),
para i = 1, 2. Si ri > 1, se obtiene el unificador más general λi de {L1i , L2i , . . . , Lri i } y
sea Li = L1i λi , para i = 1, 27 . Se tiene que Li es un literal en el factor Ci λi de Ci . Si
ri = 1, se hace que λi sea λi = y Li = L1i λi . Sea λ = λ1 ∪ λ2 8 , entonces claramente
Li es una instancia de Li 9 . Dado que L1 y ¬L2 son unificables, también lo son L1 y
¬L2 . Sea σ el unificador más general de L1 y ¬L2 , y
C = ((C1 λ)σ − L1 σ) ∪ ((C2 λ)σ − L2 σ)
= ((C1 λ)σ − ({L11 , L21 , . . . , Lr11 }λ)σ) ∪ ((C2 λ)σ − ({L12 , L22 , . . . , Lr22 }λ)σ)
= (C1 (λ ◦ σ) − ({L11 , L21 , . . . , Lr11 }(λ ◦ σ)) ∪ (C2 (λ ◦ σ) − ({L12 , L22 , . . . , Lr22 }(λ ◦ σ))
C es un resolvente de C1 y C2 . Claramente, C es una instancia de C puesto que
C = (C1 γ − L1 γ) ∪ (C2 γ − L2 γ)
r2
1
2
= ((C1 θ)γ − ({L11 , L21 , . . . , Lr1
1 }θ)γ) ∪ ((C2 θ)γ − ({L2 , L2 , . . . , L2 }θ)γ)
= (C1 (θ ◦ γ) − ({L11 , L21 , . . . , Lr11 }(θ ◦ γ)) ∪ (C2 (θ ◦ γ) − ({L12 , L22 , . . . , Lr22 }(θ ◦ γ))
y (λ◦σ) es más general que (θ ◦γ)10 , con lo que se completa la demostración del lema.
Teorema 5 Teorema de “lifting” Sea S una forma clausulada y S un conjunto de
particularizaciones básicas de cláusulas de S. si existe una derivación por resolución
de la cláusula C a partir de S , existe una derivación por resolución de la cláusula C a
partir de S y C es una particularización básica de C.
L1i λi , L2i λi , . . . , Lri i λi son el mismo literal ya que λi es el unificador más general.
Esta operación es una simple unión sin mas, dado que al haber renombrado las variables de C1 y
de C2 las variables ligadas de las sustituciones de λ1 y λ2 no van a ser las mismas. Se tiene por tanto
que L1i λ = L1i λi = Li , para i = 1, 2.
9
Recuérdese que Li se ha construido a partir de los literales L1i , L2i , . . . , Lri i , mediante la unificación
de los mismos.
10
(λ ◦ σ) es más general que (θ ◦ γ) ya que la aplicación de (θ ◦ γ) sobre C1 y C2 da como resultado
instancias básicas, mientras que la aplicación de (λ ◦ σ) no tiene por que (por otro lado recuérdese que
σ es un unificador más general). Por ser (λ ◦ σ) más general que (θ ◦ γ) debe existir una sustitución µ
tal que (θ ◦ γ) = (θ ◦ γ) ◦ µ, y por tanto C = Cµ .
7
8
César I. G. Osorio
12
LSI – Univ. de Burgos
Resolución
Resolución
REFERENCIAS
Finalmente se esta en condiciones de enunciar el teorema de completitud que junto
con el teorema 2 nos permiten asegurar la solidez y completitud del procedimiento de
refutación por resolución.
[WOB91] Larry Wos, Ewing Overbeek, Ross adn Lusk, y Jim Boyle. Automated
Reasoning: Introduction and Aplications. McGraw-Hill, 1991.
Teorema 6 Teorema de completitud Sea S un conjunto finito de cláusulas. Si S es
insatisfacible, existe una derivación por resolución de la cláusula vacía a partir de S.
Demostración: Si S es insatisfacible, por el teorema de Herbrand, existe un conjunto de particularizaciones básicas de S, S que es insatisfacible (subconjunto de su
expansión de Herbrand). Si S es insatisfacible, el teorema de completitud básica garantiza que existe una derivación por resolución de la cláusula vacía a partir de S . Por
el teorema de lifting, podemos convertir esta derivación en una derivación de a partir
de S.
4 Agenda
Este capítulo junto con el anterior es uno de los más importantes. Si en el capítulo
anterior se daban la parte más importante de los conceptos teóricos para asentar los
principios en los que se basa la demostración automática de teoremas, en este capítulo aparece una regla de inferencia que hace que la demostración sea algo práctico. El
principio de resolución supone un cambio cualitativo en la forma de resolver los problemas de demostración automática de teoremas. Antes de formularse este principio
la demostración pasaba por la generación a partir del conjunto de cláusulas inicial de
conjuntos de cláusulas básicas, entonces se utilizaba este conjunto para intentar probar
la satisfacibilidad o insatisfacibilidad del conjunto original. Con la regla de resolución
se pasa a trabajar directamente con el conjunto dado. Además la eficiencia es mucho
mayor. Sin con la introducción de las H-interpretaciones se había eliminado en parte la
dependencia semántica de las fórmulas de la lógica de primer orden, al tener que considerar únicamente una interpretación especifica, con el principio de resolución esta
dependencia es mucho menor al no considerar ninguna interpretación de forma explícita. Por otra parte el principio de resolución ha sido la base del desarrollo de otras
reglas de inferencia posteriores todavía más eficientes. Si hoy en día la demostración
automática de teoremas es algo factible, es gracias al principio de resolución.
Referencias
[CCT73]
Chin-Liang Chang y Lee Richard Char-Tung. Symbolic Logic and Mechanical Theorem Proving. Computer science classics. Academic Press,
1973.
[LVDG91] Peter Lucas y Linda Van Der Gaag. Principles of expert systems. AddisonWesley, 1991.
César I. G. Osorio
13
LSI – Univ. de Burgos
César I. G. Osorio
14
LSI – Univ. de Burgos