Vous êtes sur la page 1sur 43

Fundamentos de Programacion Logica

Paradigmas de Lenguajes de Programacion


(transparencias de Eduardo Bonelli)

Departamento de Computaci
on, FCEyN, UBA

15 de mayo de 2012
Programacion Logica

I Se basa en el uso de la l
ogica como un lenguaje de
programacion
I Se especifican
I ciertos hechos y reglas de inferencia
I un objetivo (goal) a probar
I Un motor de inferencia trata de probar que el objetivo es
consecuencia de los hechos y reglas
I Es declarativo: se especifican hechos, reglas y objetivo sin
indicar como se obtiene este u
ltimo a partir de los primeros
Prolog

I Lenguaje de programaci on basado en este esquema que fue


introducido a fines de 1971 (cf. The Birth of Prolog,
A. Colmerauer y P. Roussel, www.lif-sud.univ-mrs.fr/colmer/)
I Los programas se escriben en un subconjunto de la logica de
primer orden
I El mecanismo teorico en el que se basa es el metodo de
resolucion
I Para motivar y comprender este mecanismo primero lo vamos
a estudiar en el ambito de la l
ogica proposicional
Prolog

Ejemplo de programa

habla(ale,ruso).
habla(juan,ingles).
habla(maria,ruso).
habla(maria,ingles).
seComunicaCon(X,Y):-habla(X,L),habla(Y,L),X\=Y
Nuestro enfoque

1. Logica proposicional (Clase 1/3)


2. Metodo de resoluci
on para l
ogica proposicional (Clase 1/3)
3. Repaso de logica de primer orden (Clase 1/3)
4. Metodo de resoluci
on para l
ogica de primer orden (Clase 2/3)
5. Clausulas de Horn y resoluci
on SLD, programacion logica
(Clase 3/3)
Sintaxis de la logica proposicional

Dado un conjunto V de variables proposicionales, podemos definir


inductivamente al conjunto de formulas proposicionales (o
proposiciones) Prop de la siguiente manera:
1. Una variable proposicional P0 , P1 , . . . es una proposicion
2. Si A, B son proposiciones, entonces:
I A es una proposici
on
I A B es una proposici
on
I A B es una proposici
on
I A B es una proposici
on
I A B es una proposici on
Ejemplos: A B, (A B) (A A)
Valuaciones

I Una valuacion es una funcion v : V {T, F} que asigna


valores de verdad a las variables proposicionales
I on A si v |= A donde:
Una valuacion satisface una proposici

v |= P sii v (P) = T
v |= A sii v 6|= A (i.e. no v |= A)
v |= A B sii v |= A o v |= B
v |= A B sii v |= A y v |= B
v |= A B sii v 6|= A o v |= B
v |= A B sii (v |= A sii v |= B)
Tautologas y satisfactibilidad

Una proposicion A es
I una tautologa (o valida) si v |= A para toda valuacion v
I on v tal que v |= A
satisfactible si existe una valuaci
I insatisfactible si no es satisfactible
Un conjunto de proposiciones S es
I on v tal que para todo A S,
satisfactible si existe una valuaci
se tiene v |= A
I insatisfactible si no es satisfactible
Ejemplos

Tautologas
I AA
I A A
I (A B) (B A)

Proposiciones insatisfactibles
I (A B) (A B) A
I (A B) A B
Tautologas e insatisfactibilidad

Teorema
Una proposicion A es una tautologa sii A es insatisfactible

Dem.
. Si A es tautologa, para toda valuacion v , v |= A.
Entonces, v 6|= A (i.e. v no satisface A).
. Si A es insatisfactible, para toda valuacion v ,
v 6|= A. Luego v |= A.

Notar
Este resultado sugiere un metodo indirecto para probar que una
proposicion A es una tautologa, a saber probar que A es
insatisfactible
Forma normal conjuntiva (FNC)

I Un Literal es una variable proposicional P o su negacion P


I Una proposicion A esta en FNC si es una conjuncion
C1 . . . Cn
donde cada Ci (llamado clausula) es una disyuncion
Bi1 . . . Bini
y cada Bij es un literal
I Una FNC es una conjunci
on de disyunciones de literales
Forma normal conjuntiva

Ejemplos
I (P Q) (P Q) esta en FNC
I (P Q) (P Q) no esta en FNC
I (P Q) P no esta en FNC

Teorema
Para toda proposicion A puede hallarse una proposicion A0 en FNC
que es logicamente equivalente a A.

Nota
A es logicamente equivalente a B sii A B es una tautologa
Notacion conjuntista para FNC

I Dado que tanto como


1. son conmutativos (i.e. (A B) (B A))
2. son asociativos (i.e. ((A B) C ) (A (B C )))
3. son idempotentes (i.e. (A A) A)
Podemos asumir que
1. Cada clausula Ci es distinta
2. Cada clausula puede verse como un conjunto de literales
distintos
Notacion conjuntista para FNC

Consecuentemente para una FNC podemos usar la notacion

{C1 , . . . , Cn }

donde cada Ci es un conjunto de literales

{Bi1 , . . . , Bini }

Por ejemplo, la FNC (P Q) (P Q) se anota

{{P, Q}, {P, Q}}


Paradigma logico

Logica proposicional

Resolucion
Introduccion
Resolventes
El metodo de resoluci
on

Logica de primer orden


Validez por refutacion

Principio de demostraci
on por refutaci
on:

Probar que A es valido mostrando que A es insatisfactible

I Hay varias tecnicas de demostraci


on por refutacion
I Tableaux semantico (1960)
I Procedimiento de Davis-Putnam (1960)
I Resoluci
on (1965)
I Nos vamos a concentrar en Resoluci
on
Resolucion

I Introducido por Alan Robinson en 1965


A machine-oriented logic based on the resolution
principle, J. of the ACM (12).
I Es simple de implementar
I Se extiende a logica de primer orden (los otros tambien)
I Popular en el ambito de demostraci
on automatica de teoremas
I Tiene una u
nica regla de inferencia: la regla de resolucion
I Si bien no es imprescindible, es conveniente asumir que las
proposiciones estan en forma normal conjuntiva
Principio fundamental del metodo de resolucion

I Se basa en el hecho de que la siguiente proposicion es una


tautologa
(A P) (B P) (A P) (B P) (A B)
I En efecto, el conjunto de clausulas

{C1 , . . . , Cm , {A, P}, {B, P}}

es logicamente equivalente a

{C1 , . . . , Cm , {A, P}, {B, P}, {A, B}}


Resolucion

I En consecuencia, el conjunto de clausulas

{C1 , . . . , Cm , {A, P}, {B, P}}

es insatisfactible sii

{C1 , . . . , Cm , {A, P}, {B, P}, {A, B}}

es insatisfactible
I La clausula {A, B} se llama resolvente de las clausulas {A, P}
y {B, P}
I El resolvente de las clausulas {P} y {P} es la clausula vaca
y se anota 2
Regla de resolucion

I Dado un literal L, el opuesto de L (escrito L) se define como:


I P si L = P
I P si L = P
I Dadas dos clausulas C1 , C2 , una clausula C se dice resolvente
un literal L, L C1 , L C2 , y
de C1 y C2 sii, para alg

C = (C1 {L}) (C2 {L})

Ejemplo
Las clausulas {A, B} y {A, B} tienen dos resolventes: {A, A}
y {B, B}. Las clausulas {P} y {P} tienen a la clausula vaca
como resolvente
Regla de resolucion

{A1 , . . . , Am , Q} {B1 , . . . , Bn , Q}
{A1 , . . . , Am , B1 , . . . , Bn }

Ejemplo
El resultado de aplicar la regla de resoluci
on a
{{P, Q}, {P, Q}, {P, Q}, {P, Q}}
es {{P, Q}, {P, Q}, {P, Q}, {P, Q}, {P}}
El metodo de resolucion

El proceso de agregar el resolvente C de dos clausulas C1 , C2 que


pertenecen a un conjunto S a S (i.e. de aplicar la regla de
resolucion a S) se llama un paso de resoluci
on.
Nota:
I Asumiremos que el resolvente C que se agrega a S no
perteneca ya a S
I Pasos de resolucion preservan insatisfactibilidad
S es insatisfactible sii S {C } es insatisfactible
El metodo de resolucion

I Un conjunto de clausulas se llama una refutacion si contiene a


la clausula vaca (i.e. a 2).
I El metodo de resoluci
on trata de construir una secuencia de
conjuntos de clausulas, obtenidas usando pasos de resolucion
hasta llegar a una refutaci
on.
S1 S2 . . . Sn1 Sn 3 2
I En ese caso se sabe que el conjunto inicial de clausulas es
insatisfactible dado que
1. cada paso de resolucion preserva insatisfactibilidad
2. el ultimo conjunto de clausulas es insatisfactible (contiene la
clausula vaca)
Ejemplo

Objetivo: mostrar que el conjunto de clausulas


{{P, Q}, {P, Q}, {P, Q}, {P, Q}} es insatisfactible.

1. {{P, Q}, {P, Q}, {P, Q}, {P, Q}}


2. {{P, Q}, {P, Q}, {P, Q}, {P, Q}, {P}}
3. {{P, Q}, {P, Q}, {P, Q}, {P, Q}, {P}, {Q}}
4. {{P, Q}, {P, Q}, {P, Q}, {P, Q}, {P}, {Q}, {P}}
5. {{P, Q}, {P, Q}, {P, Q}, {P, Q}, {P}, {Q}, {P}, 2}
Ejemplo

Objetivo: mostrar que el conjunto de clausulas


{{A, B, C }, {A, B, C }, {A, B}, {A}} es insatisfactible.

1. {{A, B, C }, {A, B, C }, {A, B}, {A}}


2. {{A, B, C }, {A, B, C }, {A, B}, {A}, {A, B}}
3. {{A, B, C }, {A, B, C }, {A, B}, {A}, {A, B}, {A}}
4. {{A, B, C }, {A, B, C }, {A, B}, {A}, {A, B}, {A}, 2}
Ejemplo

Objetivo: mostrar que el conjunto de clausulas


S = {{A, B, C }, {A}, {B}} es insatisfactible.

I No podemos aplicar ning


un paso de resoluci
on a S
I Por lo tanto, no puede llegarse a una refutacion a partir S
I S debe ser satisfactible
I En efecto, tomar por ejemplo v (A) = v (B) = T
Terminacion de la regla de resolucion

I La aplicacion reiterada de la regla de resoluci


on siempre
termina (suponiendo que el resolvente que se agrega es nuevo)
I En efecto, notar que
1. El resolvente (i.e. la clausula nueva que se agrega) se forma
con los literales distintos que aparecen en el conjunto de
clausulas de partida S
2. Hay una cantidad finita de literales en el conjunto de clausulas
de partida S
I En el peor de los casos, la regla de resoluci
on podra generar
una nueva clausula por cada combinaci on diferente de literales
distintos de S
Correccion y completitud

Teorema
Dado un conjunto finito S de clausulas,

S es insatisfactible sii tiene una refutacion


Recapitulando

Para probar que A es una tautologa hacemos lo siguiente:


1. Calculamos la forma normal conjuntiva de A
2. Aplicamos el metodo de resoluci
on
3. Si hallamos una refutaci
on:
I A es insatisfactible,
I Y, por lo tanto, A es una tautologa
4. Si no hallamos ninguna refutaci
on:
I A es satisfactible,
I Y, por lo tanto, A no es una tautologa
Paradigma logico

Logica proposicional

Resolucion

Logica de primer orden


Sintaxis
Semantica
Teorema de Church
Logica de primer orden

Esta seccion es un repaso de l


ogica de primer orden. Veremos:
I Sintaxis: lenguaje de primer orden, terminos, formulas
atomicas, formulas, variables libres/ligadas, sentencias
I Semantica: Estructura de primer orden, asignacion,
satisfactibilidad, validez
I Teorema de Church
Lenguaje de primer orden

Un lenguaje de primer orden (LPO) L consiste en:


1. Un conjunto numerable de smbolos de funci on con aridad
n > 0 (indica el n
umero de argumentos) f0 , f1 , . . .
2. Un conjunto numerable de constantes c0 , c1 , . . .
3. Un conjunto numerable de smbolos de predicado con aridad
n 0, P0 , P1 , . . .. La aridad indica el n
umero de argumentos
que toma (si n = 0, es una variable proposicional)

Ejemplo: Lenguaje de primer orden para la aritmetica


on: S, +, ; Smbolos de
Constantes: 0; Smbolos de funci
predicado: <.
Terminos de primer orden

Sea V = {x0 , x1 , . . .} un conjunto numerable de variables y L un


LPO. El conjunto de L-terminos se define inductivamente como:
1. Toda constante de L y toda variable es un L-termino
2. Si t1 , . . . , tn L-terminos y f es un smbolo de funcion de
aridad n, entonces f (t1 , . . . , tn ) L-terminos

Ejemplo: Aritmetica (cont.)


S(0), +(S(0), S(S(0))), (S(x1 ), +(x2 , S(x3 )))
Formulas atomicas

Sea V un conjunto numerable de variables y L un LPO. El


conjunto de L-formulas at
omicas se define inductivamente como:
1. Todo smbolo de predicado de aridad 0 es una L-formula
atomica
2. Si t1 , . . . , tn L-terminos y P es un smbolo de predicado de
aridad n, entonces P(t1 , . . . , tn ) es una L-f
ormula atomica

Ejemplo: Aritmetica (cont.)


< (0, S(0)), < (x1 , +(S(0), x2 ))
Formulas de primer orden

Sea V un conjunto numerable de variables y L un LPO. El


conjunto de L-formulas se define inductivamente como:
1. Toda L-formula at
omica es una L-f
ormula
2. Si A, B L-formulas, entonces
(A B), (A B), (A B), (A B) y A son L-formulas
3. Para toda variable xi y cualquier L-f
ormula A, xi .A y xi .A
son L-formulas
Variables libres y ligadas

Las variables pueden ocurrir libres o ligadas.


I Los cuantificadores ligan variables
I Usamos FV (A) y BV (A) para referirnos a las variables libres y
ligadas, resp., de A
I FV (A) y BV (A) se pueden definir por induccion estructural
en A

Ejemplo
Si A = x.(R(x, y ) P(x)), entonces FV (A) = {y } y
BV (A) = {x}
Variables libres y ligadas

I Una formula A se dice rectificada si


I FV (A) y BV (A) son disjuntos y
I Cuantificadores distintos de A ligan variables distintas
I Toda formula se puede rectificar (renombrando variables
ligadas) a una formula l
ogicamente equivalente
Sentencias

Una sentencia es una f


ormula cerrada (i.e. sin variables libres).
I Muchos resultados se formulan para sentencias
I Esto no implica una perdida de generalidad ya que toda
formula es logicamente equivalente a su clausura universal
Estructura de primer orden

Dado un lenguaje de primer orden L, una estructura para L, M, es


un par M = (M, I ) donde
I M (dominio) es un conjunto no vaco
I I (funcion de interpretaci
on) asigna funciones y predicados
sobre M a smbolos de L de la siguiente manera:
1. Para toda constante c, I (c) M
2. Para todo f de aridad n > 0, I (f ) : M n M
3. Para todo predicado P de aridad n 0, I (P) : M n {T, F}
Satisfactibilidad

Asignacion
Sea M una estructura para L. Una asignaci
on es una funcion
s:VM
I on y a M, usamos la notacion s[x a]
Si s es una asignaci
para denotar la asignaci
on que se comporta igual que s salvo
en el elemento x, en cuyo caso retorna a

Satisfactibilidad
La relacion s |=M A establece que la asignaci
on s satisface la
formula A en la estructura M
I on s |=M A de manera informal
Vamos a definir la relaci
usando induccion estructural en A
Satisfactibilidad

La relacion s |=M A se define inductivamente como:

s |=M P(t1 , . . . , tn ) sii PM (s(t1 ), . . . , s(tn ))


s |=M A sii s 6|=M A
s |=M (A B) sii s |=M A y s |=M B
s |=M (A B) sii s |=M A o s |=M B
s |=M (A B) sii s 6|=M A o s |=M B
s |=M (A B) sii (s |=M A sii s |=M B)
s |=M xi .A sii s[xi a] |=M A para todo a M
s |=M xi .A sii s[xi a] |=M A para alg
un a M
Validez

I Una formula A es satisfactible en M sii existe una asignacion


s tal que
s |=M A
I Una formula A es satisfactible sii existe un M tal que A es
satisfactible en M. En caso contrario se dice que A es
insatisfactible.
I Una formula A es valida en M sii
s |=M A, para toda asignaci
on s
I Una formula A es valida sii es valida en toda estructura M.
I Nota: A es valida sii A es insatisfactible.
Teorema de Church

No existe un algoritmo que pueda determinar si una formula de


primer orden es valida
I Como consecuencia el metodo de resoluci on que veremos para
la logica de primer orden no es un procedimiento efectivo (i.e.
un algoritmo)
I Es un procedimiento de semi-decisi on:
I si una sentencia es insatisfactible hallara una refutacion,
I pero si es satisfactible puede que no se detenga

Vous aimerez peut-être aussi