Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Programacion Logica
Jaime Sanchez Hernandez
Universidad Complutense de MadridDepartamento de Sistemas Informaticos y Programacion
Curso 2011-2012
Febrero de 2013
1 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Horario, tutorıas, metodo, examenes
Metodo: clases teoricas y de problemas
Material de la asignatura (transparencias, ejercicios...)http://gpd.sip.ucm.es/jaime/pl
IMPORTANTE: las transparencias no son un manualcompleto de la asignatura (se completan con las clases,bibliografıa, ejercicios, etc)
2 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Contenidos
1 Fundamentos de la programacion logica.
0. Repaso de la logica de predicados1. Unificacion y resolucion.2. Clausulas de Horn. Resolucion SLD.
2 Programacion en Prolog.
1 Espacios de busqueda Prolog.2 Programacion logica con numeros, listas y arboles.3 Control en Prolog.4 Manipulacion de terminos. Predicados metalogicos.5 Tecnicas avanzadas de programacion en Prolog.
Utilizaremos el entorno SWI-PROLOG (Open Source; Linux,Windows, MacOS X): http://www.swi-prolog.org/
3 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Bibliografıa
L. Sterling, E. Shapiro. The Art of Prolog. AdvancedProgramming Techniques. The MIT Press, 2a Edicion, 1994.
K. Doets. From Logic to Logic Programming. The MIT Press,1994.
W. F. Clocksin, C.S. Mellish. Programming in Prolog usingthe ISO Standard. Springer Verlag, 5a Edicion, 2003.
A. Apt. From Logic Programming to Prolog. Prentice Hall,1997.
Otros libros interesantes (avanzados):
U. Schoning. Logic for Computer Scientists. Birkhauser, 1989.
W. F. Clocksin. Clause and Effect. Prolog Programming forthe Working Programmer. Springer, 4a Edicion, 2001.
R. A. O’Keefe. The Craft of Prolog. MIT, 2a Edicion, 1994.4 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
En programacion logica...
no hay tipos de datos en el sentido habitual
≡ dominio de valores + operaciones
(ni enteros, ni reales...)
no hay bucles (ni for, ni while, ni repeat...)
no hay funciones, ni procedimientos
no hay ni siquiera asignacion!!
... “por debajo” no hay una arquitectura de Von Newman(memoria de almacenamiento para datos y programa, flujo deejecucion...)
¿Que nos queda? : la logica
5 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
¿Y que se puede hacer en programacion logica?
Todo: pueden computarse todas las funciones computables (ypuede demostrarse con relativa facilidad).
Tambien puede hacerse esto mismo con maquinas de Turing, conmaquinas de registros ilimitados... o en codigo maquina.
Pero, ¿es sencillo resolver problemas en programacion logica?
Sı, con el adiestramiento necesario. En general es mas sencillo queen lenguajes imperativos, el desarrollo de programas es mas rapido,mas fiable y, en opinion de muchos, mas elegante. Tambien escierto que por regla general, los programas son mas ineficientes (ellenguaje esta menos proximo a la arquitectura de la maquina).
6 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Orıgenes
A partir del trabajo de Herbrand y otros en 1930, J. AlanRobinson publico “el principio de resolucion” en 1965.
En los anos 70 hay un gran interes en la construccion dedemostradores automaticos.
En 1972 Robert Kowalski y Alan Colmenauer se plantearonutilizar la logica como lenguaje de programacion.
Ası surgio PROLOG= PROgramming in LOGic.
La programacion logica utiliza un fragmento de la logica depredicados y unificacion y resolucion como mecanismo de computo.
7 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Logica de predicados (breve repaso)
8 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Sintaxis
conjunto (infinito numerable) de variables V: X ,Y ,Z . . . ∈ V
signatura Σ =< SF , SP >
conjunto de sımbolos de funcion SF : f , g , h . . . ∈ SF
Escribimos f ∈ SF n o f n para indicar que f tiene aridad n(opera sobre n argumentos). Si n = 0 hablaremos deconstantes (a, b, c ∈ SF 0)
conjunto de sımbolos de predicado SP: p, q, r . . . ∈ SP
Escribimos p ∈ SPn o pn para indicar la aridad como antes,pero ahora exigimos n > 0
Ademas utilizamos sımbolos auxiliares: parentesis, comas,puntos, etc
9 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Terminos y formulas
Terminos TΣ(V)
t ≡ X | f (t1, . . . , tn)
siendo X ∈ V, f ∈ SF n y t1, . . . , tn ∈ TΣ(V).
En particular, las constantes a ∈ FS0 tambien son terminos.
Formulas LΣ
ϕ ≡ > | ⊥ | p(t1, . . . , tn) | ¬ψ | ψ1 ∧ ψ2 | ψ1 ∨ ψ2 |
ψ1 → ψ2 | ψ1 ↔ ψ2 | ∀X .ψ | ∃X .ψ
siendo p ∈ SPn, t1, . . . , tn ∈ TΣ(V), X ∈ V, ψ,ψ1, ψ2 ∈ LΣ.Las de la forma p(t1, . . . , tn) se llaman formulas atomicas.
Estas dos definiciones son recursivas. ¿Cuales son los casos base ycuales los recursivos? (¿conocemos la induccion estructural?)
10 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Terminos y formulas. Ejemplos
Suponemos Σ =< {c0, f 1, g 2}, {p3, q2} >
Terminos:X c f (X ) g(X ,Y ) g(c , g(X ,Y )) f (g(c , f (c)))
¿Por que f (q(X ,Y )) no es un termino?
Formulas
Atomicas:q(c , f (c)) p(X ,Y , g(c , g(X ,Y ))) q(f (f (Y )), g(g(c , c), f (Y )))No atomicas:q(X ,Y ) ∨ p(f (c), c , c) ∀X .q(X , c) ∨ ∃Z .p(Z ,Z ,X )
¿Por que q(q(X ,Y ), c) no es una formula?
Dada una signatura Σ, ¿cuantos terminos pueden construirse?, ¿ycuantas formulas?
11 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Ambito de los cuantificadores
Dada una formula ∀X .ϕ o ∃X .ϕ diremos que el ambito delcuantificador es ϕ.
¿Cual es el ambito de los cuantificadores en las siguientesformulas?
∀X .∃Y .(r(X , f (Y )) ∧ ∀Z .¬(r(Z ,Z ) ∨ q(Y )))
∀X .(∃Y .r(X ,Y )→ ∀Z .(q(Z ) ∨ r(Y ,Y )))
¿Puede cuantificarse mas de una vez la misma variable en unaformula?
∀X .(p(X ,Y )→ ∃X .r(X ,Y ,Y ))
Para evitar confusiones, renombramiento:
∀X .(p(X ,Y )→ ∃Z .r(Z ,Y ,Y ))
12 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Variables libres y ligadas
La aparicion de una variable X dentro de una formula ϕ sedice ligada si esta afectada por un cuantificador, o con masprecision: X aparece ligada en ϕ si esta dentro de unasubformula de ϕ de la forma ∀X .ψ o ∃X .ψ.
La aparicion de X en ϕ es libre si no esta ligada, i.e., si noesta afectada por ningun cuantificador.
Ejemplo:
∃X .p( X︸︷︷︸ligada
, f ( Y︸︷︷︸libre
)) ∨ ∀Y .q( Y︸︷︷︸ligada
, g( X︸︷︷︸libre
))
Una variable X esta libre en ϕ si todas las apariciones de X enϕ son libres.
Una variable X esta ligada en ϕ si alguna de las aparicionesde X en ϕ es ligada.
13 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
¿Puede una misma variable aparecer ligada y libre en la mismaformula?
ϕ ≡ ∀X .r( X︸︷︷︸ligada
, Y︸︷︷︸libre
) ∧ ∀Y .p( X︸︷︷︸libre
, Y︸︷︷︸ligada
,Z )
Para evitar confusiones, renombramiento:
ϕ′ ≡ ∀X ′.r(X ′,Y ) ∧ ∀Y ′.p(X ,Y ′,Z )
¿Son iguales ϕ y ϕ′?
“Iguales” no son... parece que tendran el mismo significado, peropara verlo tendrıamos que dar semantica o significado a lasformulas.
Nos interesara especialmente la semantica de las sentencias:formulas cerradas, i.e., sin variables libres.
14 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
La logica como (un) lenguaje de representacionde conocimiento
La logica de predicados permite expresar “sentencias” del lenguajenatural.
“Algunos mamıferos leen a Quevedo”
Definimos PS = {mamifero1, leerQuevedo1}, FS = ∅ con elsignificado “intuitivo”:
mamifero(X ) ::= X es un mamıferoleerQuevedo(X ) ::= X lee a Quevedo
Y formalizamos:
∃X .(mamifero(X ) ∧ leerQuevedo(X ))
15 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
O de otro modo: PS = {mamifero1, leer 2}, FS = {a} con elsignificado “intuitivo”:
mamifero(X ) ::= X es un mamıfero
leer(X ,Y ) ::= X lee a Y
a ::= Quevedo
Formalizamos:
∃X .(mamifero(X ) ∧ leer(X , a))
16 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Otro ejemplo: “El producto de cualquier numero n por 1 es n”
(Esta es una sentencia “matematica”, pero esta expresada enlenguaje natural).
Definimos SP = {=2}, SF = {10, ∗2} con el significado intuitivo:
= predicado binario de igualdad (ser iguales)
1 ::= el “uno” de matematicas
∗ ::= el “producto” en matematicas
y formalizamos
∀X .X ∗ 1 = X
En este ejemplo se pone de manifiesto que las matematicas estan“empapadas” en la logica (la logica puede expresar propiedadesmatematicas... incluso puede expresar cosas acerca de la logicamisma!).
17 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Semantica de la logica de predicados
Hemos definido el lenguaje de la logica de predicados, hemos dadolas reglas sintacticas para construir los distintos elementos de dicholenguaje:
los terminos pueden representar valores de nuestro universo
las formulas, especialmente las sentencias (formulas sinvariables libres), permiten expresar propiedades de loselementos de ese universo
Pretendemos que este lenguaje nos permita razonar acerca de laverdad o falsedad de las propiedades que expresa y que nospermita hacer deduciones acerca del universo que representa...tenemos que dotar a este lenguaje de significado, de semantica.
18 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Ejemplo
Supongamos V = {X1,X2, . . .} y la signatura:
SF = {c0, suc1, suma2} SP = {par 1,menorOigual2}
Sabemos (por construccion sintactica):
suc(suc(c)) ∈ TΣ(V),suma(suc(c), suma(X , suc(c))) ∈ TΣ(V)
par(suc(suc(c))) ∈ LΣ, ∀X .par(suma(X ,X )) ∈ LΣ,∀X .∃Y .menorOigual(suma(X ,X ), suma(Y ,Y )) ∈ LΣ
¿Como se puede razonar que los primeros son terminos y lassegundas formulas? ¿Son sentencias las segundas? ¿Se podrıahacer un programa para reconocer terminos y formulas?
¿Tienen algun significado estos terminos o estas formulas?
19 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Semantica declarativa
Ahora es la logica la que recurre a las matematicas: definimos unaestructura
A = (DA, {f A}f ∈SF , {pA}p∈SP)
donde:
DA es el dominio (conjunto cualquiera de valores)
para cada sımbolo de funcion f ∈ SF n tenemos una funcion(en el sentido matematico habitual)f A : DA× n. . . ×DA → DA
para cada sımbolo de predicado p ∈ SPn tenemos una relacionpA ⊆ DA× n. . . ×DA
20 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Ejemplo (cont):
Para la signatura de nuestro ejemplo
SF = {c0, suc1, suma2} SP = {par 1,menorOigual2}
definimos:
A = (IN, {cA, sucA, sumaA}, {parA,menorOigualA})
donde:
cA : INcA = 0
sucA : IN→ INsucA(n) = n + 1
sumaA : IN× IN→ INsumaA(n,m) = n + m
parA ⊆ INparA = {n ∈ IN | n es par}
menorOigualA ⊆ IN× INmenorOigualA = {(n,m) | n,m ∈ IN, n ≤ m}
21 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Ejemplo (cont):
Notese que las funciones y relaciones que hemos asociado a lossımbolos son arbitrarias: podriamos haber definido parA = {1, 3}
Lo importante es que al definir tales funciones y relaciones ahorapodemos interpretar o dar significado a terminos, formulas ysentencias:
suc(suc(c)), de acuerdo con lo anterior “significa” 2
∀X .par(suma(X ,X )) es “cierto” (significa >)
... pero, ¿cual es el significado del terminosuma(suc(c), suma(X , suc(c))) o de la formulamenorOigual(c , suma(X , c))?
Para los terminos y las formulas abiertas tenemos que dar unvalor a las variables libres.
22 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Valoraciones e interpretaciones
Una valoracion en A es una funcion:
υ : V → DA
(a cada variable le asocia un valor del dominio DA
Y con esto (ahora sı) podremos dar significado a todas lasconstrucciones de nuestro lenguaje.
Una interpretacion I es una estructura junto con unavaloracion para las variables:
I = (A, υ)
23 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Significado de un termino en una interpretacion
El significado de un termino t en una interpretacion I = (A, υ) sedefine sobre la estructura de los terminos como:
[[X ]]Aυ = υ(X )
[[f (t1, . . . , tn)]]Aυ = f A([[t1]]Aυ, . . . , [[tn]]Aυ)
Por ejemplo, si definimos υ(Xi ) = i tendremos:
[[suc(X7)]]Aυ = sucA([[X7]]Aυ) = sucA(υ(X7)) = sucA(7) = 7+1 = 8
[[suma(suc(X7),X8)]]Aυ = sumaA([[suc(X7)]]Aυ, [[X8]]Aυ) =
sumaA(sucA([[X7]]Aυ), υ(X8)) = sumaA(sucA(7), 8) =
sumaA(7 + 1, 8) = sumaA(8, 8) = 16
24 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Significado de una formula
De manera analoga definimos el valor veritativo de una formula ϕen una interpretacion I = (A, υ):
[[>]]Aυ = cierto
[[⊥]]Aυ = falso
[[p(t1, . . . , tn)]]Aυ =
{cierto si ([[t1]]Aυ, . . . , [[tn]]Aυ) ∈ pA
falso e.o.c.
[[¬ϕ]]Aυ =
{cierto si [[ϕ]]Aυ =falsofalso e.o.c.
[[ϕ ∨ ψ]]Aυ =
{falso si [[ϕ]]Aυ = [[ψ]]Aυ =falsocierto e.o.c.
[[ϕ ∧ ψ]]Aυ =
{cierto si [[ϕ]]Aυ = [[ψ]]Aυ =ciertofalso e.o.c.
25 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Significado de una formula (cont)
• [[∀X .ϕ]]Aυ =
{cierto si para todo d ∈ DA se tiene [[ϕ]]Aυ[X/d ] =ciertofalso e.o.c.
• [[∃X .ϕ]]Aυ =
{cierto si existe d ∈ DA tal que [[ϕ]]Aυ[X/d ] =ciertofalso e.o.c.
donde υ[X/d ] es una valoracion definida como:
υ[X/d ](Y ) =
{d si X = Yυ(Y ) e.o.c.
(La notacion [X/d ] es una sustitucion. Mas adelante lasestudiaremos en detalle, pero por el momento basta la definicionanterior).¿Como se define [[ϕ→ ψ]]Aυ y [[ϕ↔ ψ]]Aυ?
26 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Ejemplo
Calculemos el valor veritativo de la sentencia ∀X .par(suma(X ,X ))en la interpretacion vista anteriormente:
sera cierto
sii para todo n ∈ IN. [[par(suma(X ,X ))]]Aυ[X/n] =cierto
sii para todo n ∈ IN. [[suma(X ,X )]]Aυ[X/n] ∈ parA
sii para todo n ∈ IN.sumaA([[X ]]Aυ[X/n], [[X ]]Aυ[X/n]) ∈ parA
sii para todo n ∈ IN. sumaA(υ[X/n](X ), υ[X/n](X )) ∈ parA
sii para todo n ∈ IN. sumaA(n, n) ∈ parA
sii para todo n ∈ IN. n + n ∈ parA
sii para todo n ∈ IN. 2n ∈ {m ∈ IN | m es par}y esto ultimo es cierto (es una propiedad matematicaconocida)
27 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Modelos, satisfactibilidad, . . .
Dada una interpretacion I = (A, υ), si [[ϕ]]Aυ = cierto se dice
A satisface ϕ en el estado υ o que I satisface ϕ o bien
I es un modelo de ϕ y se nota como:
A |= ϕυ
(En el caso de que [[ϕ]]Aυ = falso se dice que I no satisface ϕy se denota como A 6|= ϕυ)
Una formula es satisfactible si admite un modelo, einsatisfactible en otro caso.
Dos formulas ϕ y ψ son logicamente equivalentes (y se escribeϕ ≈ ψ) sii [[ϕ]]Aυ = [[ψ]]Aυ para toda interpretacionI = (A, υ)
ϕ es logicamente valida sii I |= ϕ para toda interpretacion I28 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Consecuencia logica
Dadas las formulas ϕ1, . . . , ϕn, ψ ∈ LΣ se dice que ψ es unaconsecuencia logica de {ϕ1, . . . , ϕn} y se escribe:
{ϕ1, . . . , ϕn}︸ ︷︷ ︸hipoteis o premisas
|= ψ︸︷︷︸conclusion
sii para toda interpretacion I = (A, υ) se tiene:
I |= ϕ1, . . . , I |= ϕn ⇒ I |= ψ
Teorema
{ϕ1, . . . , ϕn} |= ψ ⇔ {ϕ1, . . . , ϕn,¬ψ} es insatisfactible
29 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Ejemplo
Consideremos la argumentacion:
Algunos mamıferos leen a QuevedoTodos los lectores de Quevedo disfrutan
∴ Algunos mamıferos disfrutan
Formalizada:ϕ1 ≡ ∃X .(mamifero(X ) ∧ lee(X , q))ϕ2 ≡ ∀X .(lee(X , q)→ disfruta(X ))
∴ ψ ≡ ∃X .(mamifero(X ) ∧ disfruta(X ))
¿{ϕ1, ϕ2} |= ψ?, es decir, ¿cualquier interpretacion (A, υ) quesatisfaga ϕ1 y ϕ2 satisface ψ? Como todas las formulas soncerradas lo que hay que probar es:
A |= ϕ1, A |= ϕ2 ⇒ A |= ψ
30 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Ejemplo (cont)
A |= ϕ1 quiere decir (vease definicion de pagina 38) queexiste un a ∈ DA tal que mamiferoA(a) y lee(a, qA)
A |= ϕ2 quiere decir que cualquier b ∈ DA que verifiqueleeA(b, cA) verifica tambien disfrutaA(b). En particular setendra disfrutaA(a)
Ası hemos encontrado un a ∈ DA que verifica mamiferoA(a) ydisfrutaA(a)
Por lo tanto (pag. 38) A |= ∃X .(mamifero(X ) ∧ disfruta(X ))
Este “metodo” de demostracion es tedioso... ademas queremos unmecanismo “automatizable”.
31 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Formas normales en logica de predicados
Para manipular predicados de manera automatica (en unordenador) nos interesa que estos tengan un formato uniforme.
Interesa ademas que este formato sea lo mas simple posible.
La justificacion de fondo es que necesitamos tenerlos en formanormal con el fin de poder utilizar el mecanismo de resolucion(que veremos mas adelante).
32 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Formas normales conjuntivas
Algunos conceptos nuevos:
Un literal es cualquier formula atomica (literal positivo) onegacion de una formula atomica (literal negativo).
Una clausula disyuntiva es cualquier disyuncion de literales.
Una formula esta en forma normal conjuntiva (FNC) si es unaconjuncion de clausulas disyuntivas.
Por ejemplo, la siguiente formula esta en FNC:
(r(a,X , f (a))︸ ︷︷ ︸lit. pos.
∨¬p(Y )︸ ︷︷ ︸lit. neg.︸ ︷︷ ︸
disyuncion
) ∧ (q(g(X ,Y ), a)︸ ︷︷ ︸lit. pos.
∨¬r(X ,Y ,Z )︸ ︷︷ ︸lit. neg.︸ ︷︷ ︸
disyuncion
)
︸ ︷︷ ︸conjuncion
33 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Formas prenexas y de Skolem
Una formula ϕ ∈ LΣ esta en forma prenexa si es de la forma
ϕ ≡ Q1X1.Q2X2. . . . .QnXn.ψ
donde Q1, . . . ,Qn ∈ {∃, ∀} y ψ no tiene cuantificadores.Diremos que Q1X1.Q2X2. . . . .QnXn. es el prefijo y ψ el nucleode la forma prenexa.
Una formula ϕ ∈ LΣ esta en forma normal de Skolem siesta en forma prenexa y en su prefijo solo hay cuantificadoresuniversales.
Una formula ϕ ∈ LΣ esta en forma normal conjuntiva y deSkolem si esta en forma normal de Skolem y su nucleo esta enFNC.
Por ejemplo:
∀X .∀Y .∀Z .((r(a,X , f (a))∨¬p(Y ))∧(q(g(X ,Y ), a)∨¬r(X ,Y ,Z )))
34 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Existencia de FNC’s de Skolem
Antes de nada:
ϕ y ψ son equisatisfactibles si y solo si
ϕ es satisfactible ⇔ ψ es satisfactible
Y ahora el resultado que buscamos:
Teorema
Para toda ϕ ∈ LΣ existe una sentencia SKO(ϕ) en forma normalconjuntiva y de Skolem tal que ϕ y SKO(ϕ) son equisatisfactibles.
La demostracion de este teorema es constructiva: nos proporcionaun metodo efectivo para obtener esa sentencia SKO(ϕ)
35 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Obtencion de FNC’s de Skolem
Paso 1: eliminar de ϕ todas las conectivas → y ↔ utilizandolas equivalencias logicas:
ϕ→ ψ ≈ ¬ϕ ∨ ψϕ↔ ψ ≈ (¬ϕ ∨ ψ) ∧ (¬ψ ∨ ϕ)
Paso 2: renombrar las variables ligadas (de dentro haciaafuera) para evitar la “captura de variables” de modo que
ninguna variable tenga apariciones libres y ligadastodos los cuantificadores se refieran a variables distintas
Paso 3: hacer el cierre existencial de todas las variables libres
Si Y1, . . . ,Yn son las variables libres de ϕ, el cierre existenciales ∃Y1. . . . .∃Yn.ϕ
36 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Obtencion de FNC’s de Skolem (cont.)
Paso 4: obtener una forma normal prenexa utilizando lasequivalencias logicas:
¬∃X .ϕ ≈ ∀X .¬ϕ
¬∀X .ϕ ≈ ∃X .¬ϕ
QX .ϕ ∧ ψ ≈ QX .(ϕ ∧ ψ), con Q ∈ {∃,∀} y X 6∈ var(ψ)
QX .ϕ ∨ ψ ≈ QX .(ϕ ∨ ψ), con Q ∈ {∃,∀} y X 6∈ var(ψ)
ϕ ∧ ψ ≈ ψ ∧ ϕ
ϕ ∨ ψ ≈ ψ ∨ ϕ
37 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Obtencion de FNC’s de Skolem (cont.)
Paso 5: eliminar los cuantificadores existenciales aplicando latransformacion siguiente hasta que no queden cuantificacionesexistenciales:
∀X1. . . . .∀Xn.∃Y .QY1. . . . .QYm.ϕ (n ≥ 0)⇓
∀X1. . . . .∀Xn.QY1. . . . .QYm.ϕ[Y /f (X1, . . . ,Xn)]
donde f es un nuevo sımbolo de funcion de aridad n (lasignatura Σ se amplıa con nuevos sımbolos de funcion detalle tecnico).
(en el caso n = 0 la funcion, sera en realidad una constante).
Paso 6: transformar el nucleo en una forma normal conjuntiva,utilizando:
ϕ ∨ (ψ ∧ χ) ≈ (ϕ ∨ ψ) ∧ (ϕ ∨ χ)(ψ ∧ χ) ∨ ϕ ≈ (ψ ∨ ϕ) ∧ (χ ∨ ϕ)
38 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
FNC’s de Skolem
A la vista del algoritmo anterior...
¿como se obtiene una sentencia (formula cerrada) a partir deuna formula?, i.e., ¿donde quedan ligadas las variables libresde la formula original?
¿por que se obtiene una sentencia equisatisfactible y no unalogicamente equivalente?, ¿en que paso(s) se pierde laequivalencia logica?
¿por que no se pierde la equisatisfactibilidad en dichos pasos?
Notese que una sentencia en FNC de Skolem esta unıvocamentedeterminada por su nucleo.
39 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Ejemplo de obtencion de FNC de Skolem
ϕ ≡ ∀X .q(X ,Y ) ∨ ∃X .p(X )→∀Z .r(X ,Y ,Z ) ∧ ∃X .q(X ,Y )
⇓ paso 1, eliminacion de →
¬(∀X .q(X ,Y ) ∨ ∃X .p(X )) ∨ (∀Z .r(X ,Y ,Z ) ∧ ∃X .q(X ,Y ))
⇓ paso 2, renombramiento
¬(∀X1.q(X1,Y ) ∨ ∃X2.p(X2)) ∨ (∀Z .r(X ,Y ,Z ) ∧ ∃X3.q(X3,Y ))
⇓ paso 3, cierre existencial
∃X .∃Y .¬(∀X1.q(X1,Y )∨∃X2.p(X2))∨(∀Z .r(X ,Y ,Z )∧∃X3.q(X3,Y ))
40 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Ejemplo de obtencion de FNC de Skolem (cont.)
∃X .∃Y .¬(∀X1.q(X1,Y )∨∃X2.p(X2))∨(∀Z .r(X ,Y ,Z )∧∃X3.q(X3,Y ))
⇓ paso 4, forma prenexa
∃X .∃Y .(∃X1.¬q(X1,Y )∧∀X2.¬p(X2))∨(∀Z .r(X ,Y ,Z )∧∃X3.q(X3,Y ))
⇓ paso 4, forma prenexa cont
∃X .∃Y . ∃X1.∀X2.∀Z .∃X3︸ ︷︷ ︸en cualquier orden
.(¬q(X1,Y )∧¬p(X2))∨(r(X ,Y ,Z )∧q(X3,Y ))
41 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Ejemplo de obtencion de FNC de Skolem (cont.)
∃X .∃Y .∃X1.∀X2.∀Z .∃X3.(¬q(X1,Y )∧¬p(X2))∨(r(X ,Y ,Z )∧q(X3,Y ))
⇓ paso 5, eliminacion de ∃{
X/a Y /b X1/cX3/f (X2,Z )
∀X2.∀Z .(¬q(c, b) ∧ ¬p(X2)) ∨ (r(a, b,Z ) ∧ q(f (X2,Z ), b))
⇓ paso 6, FNC
SKO(ϕ) ≡ ∀X2.∀Z . (¬q(c , b) ∨ r(a, b,Z ))∧ (¬p(X2) ∨ r(a, b,Z ))∧ (¬q(c , b) ∨ q(f (X2,Z ), b))∧ (¬p(X2) ∨ q(f (X2,Z ), b))
42 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Formas clausadas
Sea una formula ϕ y su FNC de Skolem
SKO(ϕ) ≡ ∀X1. . . . .∀Xn.((ψ1 ∨ . . . ∨ ψn) ∧ . . . ∧ (φ1 ∨ . . . ∨ φm))
La forma clausada de ϕ, FC (ϕ) es el conjunto
{{ψ1, . . . , ψn}︸ ︷︷ ︸clausula
, . . . , {φ1, . . . , φm}︸ ︷︷ ︸clausula
}
SKO(ϕ) esta unıvocamente determinada por su nucleo: lascuantificaciones estan implıcitas, i.e., todas las variables de lasclausulas (que aparecen como variables libres) estan implıcitamentecuantificadas universalmente.
43 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Notacion de Kowalski para formas clausadas
Segun hemos visto que cada clausula es un conjunto de literales(positivos o negativos), que puede expresarse de la forma:
{ϕ1, . . . , ϕn,¬ψ1, . . . ,¬ψm}donde ahora los ϕi y ψj son todos literales positivos (lasnegaciones se ponen explıcitamente. En notacion de Kowalski, estaclausula se escribe como:
ϕ1, . . . , ϕn︸ ︷︷ ︸consecuente
← ψ1, . . . , ψm︸ ︷︷ ︸antecedente
Notese que las “comas” de la izquierda deben interpretarse como∨, mientras que las de la derecha se interpretan como ∧... ¿porque?Hay tres tipos de clausulas especiales:
Γ←︸︷︷︸hechos
← ∆︸ ︷︷ ︸objetivos
←︸︷︷︸logicamente equivalente a ⊥
44 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
Logica de predicados
Ejemplo
Para la formula del ejemplo anterior (pag. 53):
ϕ ≡ ∀X .q(X ,Y ) ∨ ∃X .p(X )→ ∀Z .r(X ,Y ,Z ) ∧ ∃X .q(X ,Y )
obtenıamos la FNC de Skolem:
∀X2.∀Z . (¬q(c , b) ∨ r(a, b,Z )) ∧ (¬p(X2) ∨ r(a, b,Z ))∧ (¬q(c , b) ∨ q(f (X2,Z ), b)) ∧ (¬p(X2) ∨ q(f (X2,Z ), b))
La forma clausada en notacion de Kowalski es:
r(a, b,Z ) ← q(c , b)r(a, b, z) ← p(X2)
q(f (X2,Z ), b) ← q(c , b)q(f (X2,Z ), b) ← p(X2)
(Este formato es mucho mas manejable para la manipulacionautomatica, como veremos)
45 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Se buscan modelos
Recordemos como se definıan las estructuras (pag. 32) y losmodelos (pag. 41) en logica de predicados.
La definicion de estas estructuras admite conjuntos arbitrarioscomo universo: no hay una pauta para determinar los valoresdel dominio; y tampoco las funciones y relaciones que sedefinen asociadas a los sımbolos de la signatura.
En consecuencia, tampoco tenemos pauta para encontrar losmodelos para las formulas (pag. 41).
Pero hay unas estructuras canonicas que facilitaran labusqueda de modelos: las estructuras de Herbrand.
46 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Universo de Herbrand
Sea ϕ una sentencia en FNC de Skolem. El universo deHerbrand para ϕ, Uϕ es el conjunto de terminos cerrados (sinvariables) que pueden construirse con los sımbolos deconstante y funcion de ϕ. En concreto:
Todo sımbolo de constante que aparece en ϕ esta en Uϕ. Si ϕno tiene ningun sımbolo de constante, se anade uno cualquieraa (para evitar que Uϕ = ∅);Para todo sımbolo de funcion f n que aparece en ϕ y todoconjunto de terminos t1, . . . , tn ∈ Uϕ, se tienef (t1, . . . , tn) ∈ Uϕ.
Por ejemplo:
Si ϕ = ∀X .∀Y .p(X , f (Y )) entoncesUϕ = {a, f (a), f (f (a)), . . .} = {f n(a) | n ≥ 0}Si ϕ = ∀X .∀Y .q(c, f (X ), h(Y , b)) entoncesUϕ = {c, b, f (c), f (b), h(c, c), h(c, b), h(b, c), h(b, b), f (f (c)), f (f (b)), f (h(c, c)), . . .}
47 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Estructura de Herbrand
Sea ϕ una sentencia en FNC de Skolem. Toda estructura:
Hϕ = (DHϕ , {f Hϕ | f ∈ SF aparece en ϕ},{pHϕ | p ∈ SP aparece en ϕ})
tal que:
DHϕ = Uϕ
f Hϕ(t1, . . . , tn) = f (t1, . . . , tn) para todo f ∈ SF n queaparece en ϕ y t1, . . . , tn ∈ Uϕ
es una estructura de Herbrand.
La idea es que las constantes y las funciones esten autodefinidas(solo son sımbolos, sin otro significado que el del propio sımbolo:la sintaxis coincide con la semantica).Notese que la eleccion de pHϕ sigue siendo arbitraria.
48 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Ejemplo
Para ϕ = ∀X .∀Y .p(X , f (Y )) tenemos Hϕ = (Uϕ, {aHϕ , f Hϕ }, {pH
ϕ })donde:
aHϕ = a
f Hϕ (t) = f (t) para todo t ∈ Uϕ
pHϕ ⊆ (Uϕ × Uϕ)
Para ϕ = ∀X .∀Y .q(c, f (X ), h(Y , b)) tenemos:
Hϕ = (Uϕ, {cHϕ , b
Hϕ , f
Hϕ , hH
ϕ }, {qHϕ })
donde:
bHϕ = b cH
ϕ = c
f Hϕ (t) = f (t) para todo t ∈ Uϕ
hHϕ (t, s) = h(t, s) para todo t, s ∈ Uϕ
qHϕ ⊆ (Uϕ × Uϕ × Uϕ)
49 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Base de Herbrand
Dada una sentencia ϕ en FNC y de Skolem, la base de HerbrandBϕ para ϕ es el conjunto de todos los atomos cerrados construidoscon sımbolos de predicado de ϕ con elementos del universo deHerbrand como argumentos:
Bϕ = {p(t1, . . . , tn) | p ∈ SPn que aparece en ϕ y t1, . . . , tn ∈ Uϕ}
Por ejemplo, para ϕ = ∀X .∀Y .p(X , f (Y )) tenemos
Bϕ = {p(a, a), p(a, f (a)), p(f (a), a), p(f (a), f (a)), . . .}
50 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Satisfactibilidad y modelos de Herbrand
Teorema
Dada una sentencia ϕ en FNC y de Skolem se tiene
ϕ es satisfactible ⇔ ϕ tiene un modelo de Herbrand
¿Por que es importante este teorema?
Por definicion (pag. 41) decıamos que una formula era satisfactiblesi tenıa un modelo. Este teorema nos permite restringir labusqueda de esos modelos a modelos de Herbrand.
51 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Ejemplo
Supongamos:
ϕ ≡ ∀X .∀Y .∀Z .( suma(c ,X ,X )∧(suma(X ,Y ,Z )→ suma(suc(X ),Y , suc(Z )))
(... ¿que estamos formalizando aquı?)
Tenemos
ψ ≡ SKO(ϕ) ≡ ∀X .∀Y .∀Z .( suma(c ,X ,X )∧(¬suma(X ,Y ,Z ) ∨ suma(suc(X ),Y , suc(Z )))
Uψ = {c, suc(c), suc(suc(c)), . . .}Hψ = ({c , suc(c), suc(suc(c)), . . .}, {sucHψ}, {sumaHψ})
tal que: sucHψ(t) = suc(t), para todo t ∈ Uψ
52 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Ejemplo (cont.)
Notese que todo t ∈ Uψ sera de la forma
t = suc(suc(. . . (suc(c)) . . .))
Abreviamos suc2(c) = suc(suc(c)) y analogo parasuc3(c), suc4(c), . . . , sucn(c), . . .
La base de Herbrand sera el conjunto:
Bϕ = {suma(sucn(c), sucm(c), suck (c)) | n,m, k ≥ 0}
Por ejemplo:
suma(suc2(c), suc3(c), suc5(c)) ∈ Bϕ
pero tambien suma(suc2(c), suc4(c), c) ∈ Bϕ
En el modelo nos interesa el subconjunto de Bϕ formado por loselementos de la forma suma(sucm(c), sucn(c), suck (c)) que hagancierta ψ (que intuitivamente seran los que cumplan n + m = k).
53 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Ejemplo (cont.)
Ahora buscamos un modelo de Herbrand de ψ.
La estructura de Herbrand ha definido todos los elementos de Hψexcepto el sımbolo de predicado sumaHψ . Lo definimos delsiguiente modo:
sumaHψ = {(sucm(c), sucn(c), suck (c)) | m + n = k}Veamos que Hψ es un modelo de ψ. De hecho, no tenemos quedefinir ninguna valoracion, porque ψ es cerrada (no contienevariables libres). Olvidandonos de la valoracion tenemos que probar:
Hψ |= ψ
es decir,
Hψ |= ∀X .∀Y .∀Z .suma(c,X ,X )∧(¬suma(X ,Y ,Z)∨suma(suc(X ),Y , suc(Z)))
54 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Ejemplo (cont.)
Calculemos el valor veritativo de ψ en la estructura Hψ:
[[ψ]]Hψ = cierto sii
para todo u1, u2, u3 ∈ Uψ.[[suma(c , u1, u1) ∧(¬suma(u1, u2, u3) ∨ suma(suc(u1), u2, suc(u3))]]Hψ = ciertosii
para todo u1, u2, u3 ∈ Uψ se tiene[[suma(c , u1, u1)]]Hψ = cierto y[[¬suma(u1, u2, u3) ∨ suma(suc(u1), u2, suc(u3))]]Hψ = ciertosii
para todo u1, u2, u3 ∈ Uψ se tiene (c , u1, u1) ∈ sumaHψ y(u1, u2, u3) 6∈ sumaHψ ∨ (suc(u1), u2, suc(u3)) ∈ sumaHψ sii
para todo n1, n2, n3 ∈ IN se tiene 0 + n1 = n1 yn1 + n2 = n3 ⇒ (n1 + 1) + n2 = n3 + 1
cierto
55 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Instancias basicas
Sea ϕ una sentencia en FNC y de Skolem de la forma:
ϕ ≡ ∀X1. . . .∀Xn. C1 ∧ . . . ∧ Cm
donde cada Ci es una clausula (disyuncion de literales).
Definimos el conjunto de instancias basicas de ϕ como:
IB(ϕ) = {Ci [X1/t1, . . . ,Xn/tn]︸ ︷︷ ︸sustitucion
| t1, . . . , tn ∈ Uϕ}
Por ejemplo, para la formulaψ ≡ ¬suma(X ,Y ,Z ) ∨ suma(suc(X ),Y , suc(Z )) tenemos:
IB(ψ) = { ¬suma(c, c, c) ∨ suma(suc(c), c, suc(c)),¬suma(suc2(c), suc4(c), suc6(c) ∨ suma(suc3(c), suc4(c), suc7(c)), . . .¬suma(suc1(c), suc5(c), suc3(c)) ∨ suma(suc2(c), suc5(c), suc4(c)), . . .}
56 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Acotando el problema de la satisfactibilidad
Teorema (Godel-Herbrand-Skolem)Dada una sentencia ϕ en FNC y de Skolem:
ϕ es satisfactible ⇔ IB(ϕ) es satisfactible
... ¿por que es interesante este resultado?
Porque traslada el problema de la satisfactibilidad de la logica depredicados a la logica proposicional: IB(ϕ) es una formula sinvariables, ni cuantificadores abordable en logica proposicional.
Pero, a la vista del Teorema de la pagina 42, mas que lasatisfactibilidad nos interesa la insatisfactibilidad de cara a probarla validez de argumentaciones.
En este sentido, tenemos el teorema de la pagina siguiente...
57 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Acotando el problema de la insatisfactibilidad
Teorema (Herbrand)Dada una sentencia ϕ en FNC y de Skolem:
ϕ es insatisfactible ⇔ existe un subconjunto finitode IB(ϕ) que es insatisfactible
La importancia de este teorema esta en que no solo traslada elproblema a la logica proposicional, lo cual es una tremendasimplificacion, sino que permite abordarlo en el ambito de lafinitud es un paso mas para aproximar la logica a laprogramacion logica
58 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Un ejemplo
Consideremos la formula ψ con la que venimos trabajando:
ψ ≡ ∀X .∀Y .∀Z .( suma(c,X ,X )∧(¬suma(X ,Y ,Z) ∨ suma(suc(X ),Y , suc(Z)))
Y una nueva formula:φ ≡ suma(suc(c), suc2(c), suc3(c))
Intuitivamente parece razonable pensar que {ψ} |= φ, o de maneraequivalente (teorema de la pag. 42) {ψ,¬φ} es insatisfactible, oequivalentemente ψ ∧ ¬φ es insatisfactiblePor el teorema anterior basta con encontrar un subconjunto finitode IB(ψ ∧ ¬φ) que sea (proposicionalmente) insatisfactible. Facil:
{ suma(c, suc2(c), suc2(c)),suma(suc(c), suc2(c), suc3(c)) ∨ ¬suma(c, suc2(c), suc2(c)),¬suma(suc(c), suc2(c), suc3(c)) } ...por que es insatisfactible?
59 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
A pesar de todo...(incursiones en computabilidad)
Esta demostrado que:
El problema de la satisfactibilidad para la logica de predicadoses indecidible: dada una formula ϕ, la pregunta ¿es ϕsatisfactible? es indecidible.
El problema de la insatisfactibilidad para la logica depredicados es semi-decidible:existe un algoritmo P tal que dada una formula ϕ:
Si P para actuando sobre ϕ entonces ϕ es insatisfactible
(Este algoritmo se basa en la teorıa de Herbrand).
60 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
De la logica a la programacion logica
Unificacion
Resolucion
61 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Estado del arte
Sabemos:
Como representar conocimiento mediante argumentaciones y como formalizarestas argumentaciones en el lenguaje de la logica.
Como transformar las formulas logicas en clausulas.
Demostrar validez de una argumentacion es refutar (demostrar lainsatisfactibilidad) de un conjunto de formulas:
premisas + negacion de la conclusion
(... quiza sepamos algo de tableaux?)
Queremos saber:
Un metodo para construir refutaciones utilizando la formaclausal.
Una forma de plasmar ese metodo en un algoritmo concreto.
Muchas mas cosas... ... pero, comencemos con la unificacion.
62 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Sustituciones
Una sustitucion σ es un conjunto de ligaduras de la forma:
σ = {X1/t1, . . . ,Xn/tn}
donde X1, . . . ,Xn ∈ V, t1, . . . , tn ∈ TΣ(V), Xi 6= Xj para todoi 6= j y Xi 6= ti para todo i ∈ {1..n}
Aplicar una sustitucion σ = {X1/t1, . . . ,Xn/tn} a un terminot se denota como tσ o t[X1/t1, . . . ,Xn/tn] y consiste enreemplazar (simultaneamente) en t cada una de lasapariciones de X1 por t1,. . . , cada una de las apariciones deXn por tn (analogo para formulas). Las sustituciones puedencomponerse: tσθ = (tσ)θ
Una sustitucion σ es idempotente sii σσ = σ.
¿Es idempotente σ = {X/f (X )}? ¿Y θ = {X/f (Y ),Y /a}?63 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Unificadores
Un sistema de ecuaciones S = {s1 = t1, . . . , sn = tn} (consi , ti ∈ TΣ(V)) es unificable sii existe una sustitucion σ talque s1σ = t1σ, . . . , snσ = tnσ.En tal caso se dice que σ es un unificador para S .
Dado un sistema de ecuaciones S , diremos que σ es ununificador de maxima generalidad (u.m.g) para S sii σ es ununificador para S y para todo θ unificador de S existe unasustitucion τ tal que θ = στ (σ es mas general que θ).
Por ejemplo, si S = {f (X ,Y ) = f (Z , a), g(Z ) = W }
σ = {X/Z ,Y /a,W /g(Z )} θ = {X/b,Y /a,Z/b,W /g(b)}
ambos son unificadores de S , σ es un u.m.g. y θ no lo es... ¿porque?
64 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Sistemas de ecuaciones en forma resuelta
Un sistema de ecuaciones esta en forma resuelta si es de laforma
{X1 = t1, . . . ,Xn = tn}
siendo Xi ∈ V para todo i ∈ {1..n}, Xi 6= Xj para todo i 6= j yXi no aparece en tj para todo i , j ∈ {1..n}
Si el sistema de ecuaciones esta en forma resuelta representala sustitucion [X1/t1, . . . ,Xn/tn] y esta sustitucion esidempotente... ¿por que?
Ahora nos interesa un algoritmo de unificacion que tome comoentrada un sistema de ecuaciones y obtenga un sistema deecuaciones en forma resuelta que represente un u.m.g. para elsistema de entrada; o bien que produzca fallo en el caso de que elsistema inicial no sea unificable.
65 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Algoritmo de unificacion de Martelli-Montanari
Aplicar alguna de las siguientes reglas mientras sea posible:
1 S ∪ {X = X} S
2 S ∪{f (t1, . . . , tn)= f (s1, . . . , sn)} S ∪{t1 =s1, . . . , tn =sn}
3 S ∪ {f (t1, . . . , tn) = g(s1, . . . , sm)} FALLO,si f 6= g (o n 6= m)
4 S ∪ {X = t} S [X/t] ∪ {X = t},si X 6∈ var(t), X ∈ var(S), X 6= t
5 S ∪ {X = t} FALLO, si X ∈ var(t)
6 S ∪ {t = X} S ∪ {X = t}, si t 6∈ V
Este algoritmo proporciona u.m.g.’s idempotentes
66 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Ejemplo
{f (X ,Y ) = f (Z , g(b)), g(Z ) = g(W ), h(Y ) = X} 2 {X = Z ,Y = g(b),Z = W , h(Y ) = X} 6 {X = Z ,Y = g(b),Z = W ,X = h(Y )} 4 {X = Z ,Y = g(b),Z = W ,Z = h(Y )} 4 {X = Z ,Y = g(b),Z = W ,Z = h(g(b))} 4 {X = W ,Y = g(b),Z = W ,W = h(g(b))} 4 {X = h(g(b)),Y = g(b),Z = h(g(b)),W = h(g(b))}
No se pueden aplicar mas reglas, hemos terminado.Si sobre el sistema inicial aplicamos la sustitucionσ = [X/h(g(b)),Y /g(b),Z/h(g(b)),W /h(g(b))] obtenemos:
{f (X ,Y )= f (Z , g(b)), g(Z)=g(W ), h(Y )=X}σ={f (h(g(b)), g(b))= f (h(g(b)), g(b)), g(h(g(b)))=g(h(g(b))), h(g(b))=h(g(b))}
67 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Unificador para un conjunto de literales
Dado un conjunto finito de literales Γ (formulas atomicas osus negaciones), una sustitucion σ es unificador de Γ sii paratodo L, L′ ∈ Γ, Lσ = L′σ.
Una sustitucion σ es un u.m.g. para Γ si es unificador para Γ yes mas general que cualquier otro unificador (pag. 82).
Teorema (J.A. Robinson 1965)Dado un conjunto de literales Γ existe un algoritmo que decide si Γes o no unificable, y en caso afirmativo devuelve un u.m.g. para Γque ademas es idempotente.
La propia demostracion proporciona el algoritmo... veamos
68 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Algoritmo de unificacion para conjuntos de literales
En Γ todos los literales han de ser positivos o negativos (si no,directamente no serıa unificable)
Ademas todos los literales deben tener en cabeza el mismosımbolo de predicado (si no, no serıa unificable)
Ası pues, se trata de encontrar un u.m.g. para
{p(t11 , . . . , t
1n), . . . , p(tM
1 , . . . , tMn )}
o para{¬p(t1
1 , . . . , t1n), . . . ,¬p(tM
1 , . . . , tMn )}
En definitiva, se trata de encontrar un u.m.g. para el sistema
{t ji = tk
i | i ∈ {1..n}, j , k ∈ {1..M}}para lo cual se puede utilizar el algoritmo deMartelli-Montanari, que proporciona un u.m.g. idempotente.
69 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Ejemplo
Buscamos un umg paraΓ = {p(f (Z , g(a,Y )), h(Z )), p(f (f (U,V ),W ), h(f (a, b)))}
Planteamos el sistema correspondiente y aplicamos el algoritmo deMartelli-Montanari:
S = {f (Z , g(a,Y )) = f (f (U,V ),W ), h(Z ) = h(f (a, b))}
2 {Z = f (U,V ), g(a,Y ) = W , Z = f (a, b)}
4 {Z = f (U,V ), g(a,Y ) = W , f (U,V ) = f (a, b)}
2 {Z = f (U,V ), g(a,Y ) = W , U = a, V = b}
6 {Z = f (U,V ), W = g(a,Y ), U = a, V = b}
4 {Z = f (a, b), W = g(a,Y ), U = a, V = b}
El umg buscado es [Z/f (a, b), W /g(a,Y ), U/a, V /b]
70 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Un ejemplo de fallo
Γ = {p(f (X ,Y ), g(X ,Y )), p(f (h(U),V ), g(U, h(V )))}Planteamos sistema y aplicamos algoritmo de MM:
S = {f (X ,Y ) = f (h(U),V ), g(X ,Y ) = g(U, h(V ))}
2 {X = h(U), Y = V , X = U, Y = h(V )}
4 {X = h(U), Y = V , h(U) = U, Y = h(V )}
6 {X = h(U), Y = V , U = h(U), Y = h(V )}
5 FALLO
Esto es lo que se llama fallo de “occur-check”.
71 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Resolucion general (hacia el “metodo”)
Sean dos clausulas C1 y C2 de la forma (en notacion de Kowalski)(Γi ,∆j son conjuntos de literales y + es la concatenacion)
C1 ≡ Γ1 ← ∆1 + L1, . . . , Ln C2 ≡ L′1, . . . , L′m + Γ2 ← ∆2
tales que
var(C1) ∩ var(C2) = ∅ (si no renombramiento)
{L1, . . . , Ln, L′1, . . . , L
′m} son unificables
Un resolvente (general) C3 = resol(C1,C2) se obtiene como:
C1 ≡ Γ1 ← ∆1 + L1, . . . , Ln C2 ≡ L′1, . . . , L
′m + Γ2 ← ∆2
C3 ≡ (Γ1 + Γ2 ← ∆1 + ∆2)θθ = umg({L1, . . . , Ln, L
′1, . . . , L
′m})
72 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Derivaciones y refutaciones
Dado un conjunto de clausulas S definimos la relacion ↪→ como
S ↪→ S ∪ {resol(C1,C2)} siendo C1,C2 ∈ S
Una clausula C es derivable por resolucion general a partir deS si existe k ∈ IN tal que
S ↪→ S1 ↪→ k. . . ↪→ Sk
de modo que C ∈ Sk . En ese caso escribiremos S `RG C .
S es refutable mediante resolucion general si S `RG ⊥ (esdecir se obtiene la clausula vacıa ←). En este caso lasecuencia de resolventes constituye una refutacion.
73 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Poniendo todo en marcha
formalizacion + teoremas + FNC’s de Skolem + resolucion +unificacion
74 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Ejemplo
Consideremos la argumentacion de la pag 43:
Algunos mamıferos leen a QuevedoTodos los lectores de Quevedo disfrutan
∴ Algunos mamıferos disfrutan
y su formalizacion:ϕ1 ≡ ∃X .(mam(X ) ∧ lee(X , q))ϕ2 ≡ ∀X .(lee(X , q)→ dis(X ))
∴ ψ ≡ ∃X .(mam(X ) ∧ dis(X ))
Por el teorema de la pagina 42 tenemos:
{ϕ1, ϕ2} |= ψ ⇔ {ϕ1, ϕ2,¬ψ} es insatisfactible
75 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Ejemplo (cont.)
Buscamos una refutacion de {ϕ1, ϕ2,¬ψ}:Primero ¬ψ ≡ ∀X .(¬mam(X ) ∨ ¬dis(X ))
Ahora ponemos las formulas en FNC’s de Skolem:
SKO({ ∃X .(mam(X ) ∧ lee(X , q)),∀X .(lee(X , q)→ dis(X )),∀X .(¬mam(X ) ∨ ¬dis(X ))})
={mam(a) ∧ lee(a, q)),¬lee(X , q) ∨ dis(X )),¬mam(X ) ∨ ¬dis(X ))}
La forma clausal es:{{mam(a)}, {lee(a, q))}, {¬lee(X , q) ∨ dis(X ))}, {¬mam(X ) ∨ ¬dis(X ))}}
Y en notacion de Kowalski:
mam(a)←lee(a, q)←
dis(X )← lee(X , q)← mam(X ), dis(X )
76 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Ejemplo (cont.)
Refutemos por resolucion general:
Programa:
mam(a)←lee(a, q)←dis(X )← lee(X , q)← mam(X ), dis(X )
mam(a)← ← mam(X ), dis(X )
← dis(a)
θ1 = [X/a]
dis(Y )← lee(Y , q) (renombr.)
θ2 = [Y /a]← lee(a, q) lee(a, q)←
←θ3 = [ ]
77 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Otro ejemplo
Todas las portenas alegres son amigas de algun marinero.Ningun porteno feliz esta casado con una portena triste.Los portenos casados con amigas de marineros son cornudos o marineros.Los marineros casados son infelices.
∴ Los portenos casados con portenas con cornudos o infelices.
Formalizada:ϕ1 ≡ ∀X .((pa(X ) ∧ al(X ))→ ∃Y .(mr(Y ) ∧ am(X ,Y )))ϕ2 ≡ ∀X .∀Y .((po(X ) ∧ fl(X ) ∧ pa(Y ) ∧ cs(X ,Y ))→ al(Y ))ϕ3 ≡ ∀X .∀Y .∀Z .((po(X )∧cs(X ,Y )∧am(Y ,Z)∧mr(Z))→(cr(X )∨mr(X )))ϕ4 ≡ ∀X .∀Y .((mr(X ) ∧ cs(X ,Y ))→ ¬fl(X ))
∴ ψ ≡ ∀X .∀Y .((po(X ) ∧ cs(X ,Y ) ∧ pa(Y ))→ (cr(X ) ∨ ¬fl(X )))
78 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Ejemplo (cont.)
FNC’s de Skolem:
SKO(ϕ1) ≡ ∀X .((¬pa(X ) ∨ ¬al(X ) ∨mr(f (X )))∧ (¬pa(X ) ∨ ¬al(X ) ∨ am(X , f (X ))))
SKO(ϕ2) ≡ ∀X .∀Y .(¬po(X )∨¬fl(X )∨¬pa(Y )∨¬cs(X ,Y )∨al(Y ))SKO(ϕ3) ≡ ∀X .∀Y .∀Z .(¬po(X )∨¬cs(X ,Y )∨¬am(Y ,Z )∨¬mr(Z )∨cr(X )∨mr(X ))SKO(ϕ4) ≡ ∀X .∀Y .(¬mr(X ) ∨ ¬cs(X ,Y )) ∨ ¬fl(X ))
Negacion de la conclusion:
¬ψ ≡ ∃X .∃Y .¬((po(X ) ∧ cs(X ,Y ) ∧ pa(Y ))→ (cr(X ) ∨ ¬fl(X )))≡ ∃X .∃Y .(po(X ) ∧ cs(X ,Y ) ∧ pa(Y )) ∧ ¬cr(X ) ∧ fl(X )))
SKO(¬ψ) ≡ po(a) ∧ cs(a, b) ∧ pa(b) ∧ ¬cr(a) ∧ fl(a)
79 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Ejemplo (cont.)
Forma clausal (not de Kowalski):
C1 ≡ mr(f (X ))← pa(X ), al(X )
C2 ≡ am(X , f (X ))← pa(X ), al(X )
}(de SKO(ϕ1))
C3 ≡ al(Y )← po(X ), fl(X ), pa(Y ), cs(X ,Y ) (de SKO(ϕ2))
C4 ≡ cr(X ),mr(X )← po(X ), cs(X ,Y ), am(Y ,Z ),mr(Z ) (de SKO(ϕ3))
C5 ≡← mr(X ), cs(X ,Y ), fl(X ) (de SKO(ϕ4))
C6 ≡ po(a)←C7 ≡ cs(a, b)←C8 ≡ pa(b)←C9 ≡← cr(a)
C10 ≡ fl(a)←
(de SKO(¬ψ))
80 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Ejemplo
C4 ≡ cr(X ),mr(X )← po(X ), cs(X ,Y ),am(Y ,Z),mr(Z)
C1 ≡ mr(f (X1))← pa(X1), al(X1)
cr(X ),mr(X )← po(X ), cs(X ,Y ), am(Y , f (X1)),pa(X1), al(X1)
θ1 = [Z/f (X1)]
C2 ≡ am(X2, f (X2))← pa(X2), al(X2)
cr(X ),mr(X )← po(X ), cs(X ,Y ), pa(Y ), al(Y )
θ2 = [ X2/Y ,X1/Y ]
C3 ≡ al(Y3)← po(X3), fl(X3),pa(Y3), cs(X3,Y3)
cr(X ),mr(X )← po(X ), cs(X ,Y ), pa(Y ),po(X3), fl(X3), cs(X3,Y )
θ3 = [Y3/Y ]
C5 ≡← mr(X4), cs(X4,Y4), fl(X4)
cr(X )← po(X ), cs(X ,Y ), pa(Y ), po(X3),fl(X3), cs(X3,Y ), cs(X ,Y4), fl(X )
θ4 = [ X4/X ]
81 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Ejemplo (cont)
cr(X )← po(X ), cs(X ,Y ), pa(Y ), po(X3),fl(X3), cs(X3,Y ), cs(X ,Y4), fl(X )
C7 ≡ cs(a, b)←
cr(a)← po(a), pa(b), fl(a)
θ5 = [X/a,Y /b,X3/a,Y4/b]
C6 ≡ po(a)←
cr(a)← pa(b), fl(a) C8 ≡ pa(b)←
cr(a)← fl(a) C10 ≡ fl(a)←
cr(a)← C9 ≡← cr(a)
←
82 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Ejemplo (cont.)
Con esto tenemos una refutacion, que es una demostracion(deduccion) de nuestra argumentacion, pero ademas:
Hemos obtenido una secuencia de sustituciones θ1, . . . , θ5.Si planteamos el sistema de ecuaciones asociado a ellastenemos:
{Z = f (X1),X2 = Y ,X1 = Y ,Y3 = Y ,X4 = X ,X = a,Y = b,X3 = a,Y4 = b}
Si lo resolvemos mediante el algoritmo MM:
{Z = f (b),X2 = b,X1 = b,Y3 = b,X4 = a,X = a,Y = b,X3 = a,Y4 = b}
Que corresponde a la sustitucion:
θ = {Z/f (b),X2/b,X1/b,Y3/b,X4/a,X/a,Y /b,X3/a,Y4/b}
83 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Ejemplo (cont.)
Si aplicamos la sustitucion
θ = {Z/f (b),X2/b,X1/b,Y3/b,X4/a,X/a,Y /b,X3/a,Y4/b}
a los renombramientos de las clausulas utilizadas obtenemos unconjunto de instancias basicas que son proposicionalmenteinsatisfactibles:
C1θ ≡ mr(f (b))← pa(b), al(b)C2θ ≡ am(b, f (b))← pa(b), al(b)C3θ ≡ al(b)← po(a), fl(a), pa(b), cs(a, b)C4θ ≡ cr(a),mr(a)← po(a), cs(a, b), am(b, f (b)),mr(f (b))C5θ ≡← mr(a), cs(a, b), fl(a)C6θ ≡ po(a)←C7θ ≡ cs(a, b)←C8θ ≡ pa(b)←C9θ ≡← cr(a)C10θ ≡ fl(a)← ...de verdad son proposicionalmente insatisfactibles??
84 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Otro ejemplo
Pedro es miope.Cuando alguien es miope, o su padre o su madre tambien es miope.Todo el mundo ama a su padre y a su madre.
∴ Algun miope es amado por alguien.
Formalizada:ϕ1 ≡ miope(p)ϕ2 ≡ ∀X .(miope(X )→ (miope(padre(X )) ∨miope(madre(X ))))ϕ3 ≡ ∀X .(ama(X , padre(X )) ∧ ama(X ,madre(X )))
∴ ψ ≡ ∃X .(miope(X ) ∧ ∃Y .ama(Y ,X ))
... demostrar la validez
85 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Otro ejemplo mas
Un dragon es feliz si todos sus hijos pueden volar.Los dragones verdes pueden volar.Un dragon es verde si es hijo de algun dragon verde.
∴ Los dragones verdes son felices.
Formalizada:ϕ1 ≡ ∀X .(∀Y .(hijo(Y ,X )→ vol(Y ))→ fel(X ))ϕ2 ≡ ∀X .(ver(X )→ vol(X ))ϕ3 ≡ ∀X .(∃Y .(hijo(X ,Y ) ∧ ver(Y ))→ ver(X ))
∴ ψ ≡ ∀X .(ver(X )→ fel(X ))
... demostrar la validez
86 / 138
Jaime Sánchez HernándezDepartamento de Sistemas Informáticos y Computación
Universidad Complutense de Madridemail: [email protected]
De la logica a la programacion logica Poniendo todo en marcha
Correccion y completitud de la resolucion general
LemaDadas tres clausulas C , C1 y C2, si C = resol(C1,C2) entonces
{∀C1, ∀C2} |= ∀C
donde ∀C representa el cierre universal de C (analogo para C1 yC2), i.e., la cuantificacion universal de todas las variables de C .
Teorema (Correccion y completitud de la RG)Dado un conjunto de clausulas S se tiene:
S es insatisfactible ⇔ S `RG←
87 / 138
Top Related