Professional Documents
Culture Documents
de Herbrand Negacin
Introduccin
La programacin lgica es uno de los paradigmas de programacin
ms alejados del imperativo.
ANLISIS LGICO
Un sistema de demostracin de teoremas funciona como un
PROGRAMACIN LGICA mecanismo computacional.
La programacin lgica es declarativa: un programa es una declaracin
Francisco Hernndez Quiroz de qu se desea, y no una receta de cmo obtenerlo.
En la prctica, no siempre se puede alcanzar este ideal, por cuestiones
Departamento de Matemticas de eficiencia.
Facultad de Ciencias, UNAM
E-mail: fhq@ciencias.unam.mx La fundamentacin semntica de la programacin lgica son los
Pgina Web: www.matematicas.unam.mx/fhq modelos de Herbrand.
Un problema difcil en programacin lgica es el de la negacin. Aqu
Facultad de Ciencias se presentarn dos enfoques distintos del tema.
El lenguaje Prolog es un compromiso entre los principios de la
programacin lgica y la eficiencia de implementacin.
Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 1 / 34 Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 2 / 34
Unificacin Clusulas def. Resolucin M. de Herbrand Negacin Unificacin Clusulas def. Resolucin M. de Herbrand Negacin
Sustituciones Un algoritmo para umg Sustituciones Un algoritmo para umg
Unificacin Ejemplos
Los trminos
f12 (x, f12 (c, z)) y f12 (c, f12 (y, x))
son unificados por la sustitucin
La unificacin es un caso especial de sustitucin.
[x, y, z := c, c, c],
Definicin
pues
Sean E y F dos expresiones (ya sean dos frmulas atmicas o dos trminos
f12 (x, f12 (c, z))[x,y,z:=c,c,c] = f12 (c, f12 (c, c)) = f12 (c, f12 (y, x))[x,y,z:=c,c,c] .
funcionales). Un unificador de E y F es una sustitucin tal que
A las frmulas atmicas
E = F .
P12 (f12 (x, y), c) y P12 (z, y)
las unifica la sustitucin
[z, y := f12 (x, c), c]
P12 (f12 (x, y), c)[z,y:=f 2 (x,c),c] = P12 (f12 (x, c), c) = P12 (z, y)[z,y:=f 2 (x,c),c] .
1 1
Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 3 / 34 Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 4 / 34
Unificacin Clusulas def. Resolucin M. de Herbrand Negacin Unificacin Clusulas def. Resolucin M. de Herbrand Negacin
Sustituciones Un algoritmo para umg Sustituciones Un algoritmo para umg
no tienen un unificador.
En cambio, en otros casos tenemos ms de uno, como con las frmulas La composicin de dos sustituciones se define as:
P12 (x, y) y P12 (y, x) = [x1 , . . . , xn := t1 , . . . , tn ]
con los unificadores = [y1 , . . . , ym := s1 , . . . , sm ]
= = ([x1 , . . . , xn := t1 , . . . tn ] [xi := ti | xi = ti ])
[x := y], [y := x] y [x, y := c, c] :
([y1 , . . . , ym := s1 , . . . , sm ] [yi := si | yi dom()])
Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 5 / 34 Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 6 / 34
Unificacin Clusulas def. Resolucin M. de Herbrand Negacin Unificacin Clusulas def. Resolucin M. de Herbrand Negacin
Sustituciones Un algoritmo para umg Sustituciones Un algoritmo para umg
Sean
def [x, y, w := z, f11 (x), v]
def [z, x, v := y, c, w] Definicin
dos sustituciones. Entonces Sean E y F dos expresiones y sea el conjunto de sus unificadores. Un
unificador de mxima generalidad (umg) es una sustitucin tal que
= [x, y, w := z , f11 (x) , v ] ([z, x, v := y, c, w] [x := c]) para toda se tiene que = .
= ([x, y, w := y, f11 (c), w] [w := w]) [z, v := y, w]
= [x, y, z, v := y, f11 (c), y, w]
Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 7 / 34 Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 8 / 34
Unificacin Clusulas def. Resolucin M. de Herbrand Negacin Unificacin Clusulas def. Resolucin M. de Herbrand Negacin
Sustituciones Un algoritmo para umg Sustituciones Un algoritmo para umg
Ejemplos Diferencias
Definicin
(a) Sean E y F dos expresiones. El conjunto diferencia de E y F , denotado
En el ejemplo de las expresiones P12 (x, y) y P12 (y, x), los dos primeros por d(E, F ), se define as:
unificadores propuestos son de mxima generalidad, pues
d(E, F ) = si E = F
[x := y][x, y := c, c] = [x, y := c, c] d(fmn (t1 , . . . , tn ), fmn (t10 , . . . , tn0 ) = d(t1 , t10 ) d(tn , tn0 ))
[x := y][y := x] = [y := x] d(Pmn (t1 , . . . , tn ), Pmn (t10 , . . . , tn0 ) = d(t1 , t10 ) d(tn , tn0 ))
[y := x][x, y := c, c] = [x, y := c, c] d(E, F ) = {E : F } en cualquier otro caso
[y := x][x := y] = [x := y]
(b) Una sustitucin reductora de d(E, F ) es una sustitucin x := t derivada
de algn par Ei : Fi d(E, F ) tal que x = Ei y t = Fi (o viceversa) y x no
aparece en t.
(c) d(E, F ) es reductible sii se puede derivar una sustitucin reductora de
todo par t : t 0 d(E, F ).
Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 9 / 34 Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 10 / 34
Unificacin Clusulas def. Resolucin M. de Herbrand Negacin Unificacin Clusulas def. Resolucin M. de Herbrand Negacin
Sustituciones Un algoritmo para umg Sustituciones Un algoritmo para umg
Unificaremos las expresiones f12 (x, f22 (a, y)) y f12 (a, f22 (x, z)):
El algoritmo es muy simple: cnstruyase una sucesin de pares de
expresiones y otra sucesin de sustituciones: d(f12 (x, f22 (a, y)), f12 (a, f22 (x, z))) = {x : a, a : x, y : z}
0 = [x := a]
(E0 , F0 ) = (E, F )
1 = 0
(En+1 , Fn+1 ) = (En n , Fn n )
2 2 2 2
(f1 (x, f2 (a, y))0 , f1 (a, f2 (x, z))0 ) = (f12 (a, f22 (a, y)), f12 (a, f22 (a, z))
0 =
d(f12 (a, f22 (a, y)), f12 (a, f22 (a, z)) = {y : z}
n+1 = n n
1 = [y := z]
donde i es una sustitucin reductora de Ei y Fi . La sucesin h(E0 , F0 ), . . . i 2 = 1 1 = [x := a, y := z]
es finita y al final se llega a uno de dos casos: (a) d(En , Fn ) = , o (b) el 2 2 2 2
(f1 (a, f2 (a, y))1 , f1 (a, f2 (a, z)1 ) = (f12 (a, f22 (a, z), f12 (a, f22 (a, z))
conjunto d(En , Fn ) es irreductible.
y como los dos ltimos trminos son iguales, el umg buscado es 2 .
Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 11 / 34 Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 12 / 34
Unificacin Clusulas def. Resolucin M. de Herbrand Negacin Unificacin Clusulas def. Resolucin M. de Herbrand Negacin
x1 , . . . , xm . y1 , . . . , yk . 1 n ,
Unificacin Clusulas def. Resolucin M. de Herbrand Negacin Unificacin Clusulas def. Resolucin M. de Herbrand Negacin
Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 15 / 34 Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 16 / 34
Unificacin Clusulas def. Resolucin M. de Herbrand Negacin Unificacin Clusulas def. Resolucin M. de Herbrand Negacin
Resolucin
Para hacer ms transparentes los programas lgicos, en adelante nuestro La resolucin es una regla de inferencia que permite demostrar
lenguaje lgico incluir smbolos que hagan obvia su interpretacin. teoremas por medio de refutacin.
El programa anterior se puede rescribir as:
Supngase que se tiene un programa lgico y se quiere demostrar
1. Fib(0, s(0)) que una frmula atmica se sigue de .
2. Fib(s(0), s(0)) Entonces se incluye como premisa la meta (es decir, ).
3. Fib(s(s(x)), y + z) Fib(x, y), Fib(s(x), z). Una demostracin por resolucin nos permitir derivar frmulas hasta
que, en caso de xito, lleguemos a una contradiccin y entonces se
afirmar que se sigue de .
Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 17 / 34 Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 18 / 34
Unificacin Clusulas def. Resolucin M. de Herbrand Negacin Unificacin Clusulas def. Resolucin M. de Herbrand Negacin
1 , . . . , n , 1 , . . . , k
Resolucin
1 , . . . , n , 1 , . . . , k
1 , . . . , n 0 , 1 , . . . , k
Las dos premisas son resolventes y la conclusin es la resolucin.
1 , . . . , n , 1 , . . . , k
`R denota los teoremas de resolucin y Res es nombre de la regla. Prog
significa clusula del programa lgico. donde es un umg de y 0 y las variables que aparecen en la primera
Por ejemplo, q r p, q, r `R p: premisa no aparecen en la segunda.
5 q, r Resolucin 4, 1
6FranciscoHernndez
r Quiroz Resolucin Anlisis
5, 2 Lgico Programacin lgica 19 / 34 Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 20 / 34
Unificacin Clusulas def. Resolucin M. de Herbrand Negacin Unificacin Clusulas def. Resolucin M. de Herbrand Negacin
Unificacin Clusulas def. Resolucin M. de Herbrand Negacin Unificacin Clusulas def. Resolucin M. de Herbrand Negacin
Unificacin Clusulas def. Resolucin M. de Herbrand Negacin Unificacin Clusulas def. Resolucin M. de Herbrand Negacin
Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 29 / 34 Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 30 / 34
Unificacin Clusulas def. Resolucin M. de Herbrand Negacin Unificacin Clusulas def. Resolucin M. de Herbrand Negacin
cwa() = { | 6`R }.
CWA nos dice que debemos considerar un programa lgico como un mundo
cerrado sin intereferencia de otras clusulas que no pertenecen al
programa.
Si el hecho no es derivable del programa, y considerando que ste
describe el mundo
Francisco Hernndez Quiroz por completo, Anlisis
concluiremos
Lgico que . Programacin lgica 31 / 34 Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 32 / 34
Unificacin Clusulas def. Resolucin M. de Herbrand Negacin Unificacin Clusulas def. Resolucin M. de Herbrand Negacin
Desafortunadamente, el teorema siguiente plantea un problema Otra perspectiva, ms modesta, es la llamada negacin por fracaso o
(computacionalmente) insuperable: NF .
Si para un programa P y una frmula especfica es posible
Teorema
determinar de manera computable que P 6`R , entonces se aceptar
Dado un programa y una frmula , la pregunta `R es indecidible, es .
decir, no existe un algoritmo que la conteste en todos los casos. Desafortunadamente, los detalles tcnicos se dejarn para un curso
ms avanzado.
Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 33 / 34 Francisco Hernndez Quiroz Anlisis Lgico Programacin lgica 34 / 34