+ All Categories
Home > Documents > Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf ·...

Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf ·...

Date post: 06-Aug-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
44
Jaime Sánchez Hernández Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid email: [email protected] Programaci´ on L´ ogica Jaime S´ anchez Hern´ andez Universidad Complutense de Madrid Departamento de Sistemas Inform´ aticos y Programaci´on Curso 2011-2012 Febrero de 2013 1 / 138 Jaime Sánchez Hernández Departamento de Sistemas Informáticos y Computación Universidad Complutense de Madrid email: [email protected] Horario, tutor´ ıas, m´ etodo, examenes etodo: clases te´ oricas y de problemas Material de la asignatura (transparencias, ejercicios...) http://gpd.sip.ucm.es/jaime/pl IMPORTANTE: las transparencias no son un manual completo de la asignatura (se completan con las clases, bibliograf´ ıa, ejercicios, etc) 2 / 138
Transcript
Page 1: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 2: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 3: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 4: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 5: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 6: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 7: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 8: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 9: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 10: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 11: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 12: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 13: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 14: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 15: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 16: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 17: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 18: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 19: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 20: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 21: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 22: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 23: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 24: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 25: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 26: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 27: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 28: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 29: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 30: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 31: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 32: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 33: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 34: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 35: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 36: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 37: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 38: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 39: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 40: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 41: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 42: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 43: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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

Page 44: Jaime S anchez Hern andez Horario, tutor as, m etodo ...gpd.sip.ucm.es/jaime/pl/fundamentos.pdf · Universidad Complutense de Madrid Departamento de Sistemas Inform aticos y Programaci

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


Recommended