Académique Documents
Professionnel Documents
Culture Documents
Indice
Definicin de lenguaje de primer orden _______________________________________ 3
Sintaxis _____________________________________________________________________ 3
Semntica ___________________________________________________________________ 5
Consecuencia lgica ___________________________________________________________ 8
Consecuencia sintctica _______________________________________________________ 10
Sintaxis
Def:
(nj > 0)
(nk 0)
El valor ni, que est ligada a los smbolos de funcin (functores) y de predicados,
representa la aridad de cada uno de ellos (la cantidad de parmetros que recibe), y
representa un nmero natural.
Por convencin, las variables se escribirn con mayscula -a menos que estn
relacionados con un cuantificador como se ver ms adelante-, y las constantes, los
smbolos de funcin y predicados se escribirn con minscula.
Def:
bautismo(hijo(connie))
Def:
(disyuncin)
(implicacin material)
(doble implicacin material)
(cuantificador existencial)
Def:
Vars : T (V)
Vars(x)
= {x}
Vars(c)
=
Vars(f(t1, ..., tn)) = Vars(t1) ... Vars(tn)
(si xV)
(si cC)
(si t1T y ... y tnT y <f, n>L)
Def:
FV : F (V)
FV(p(t1, ..., tn))
FV((P))
FV((PQ))
FV((PQ))
FV((PQ))
FV((PQ))
FV(((x) P))
FV(((x) P))
Semntica
Se define una estructura adecuada para el lenguaje como:
Def:
Def:
(si vV)
(si cC)
(si t1T y ... y tnT y <f, n>L)
Donde en las dos ltimas definiciones [Q/x]P representa el reemplazo de todas las
variables x que aparecen libres en P por el trmino Q.
Una interpretacin de frmulas es una asignacin semntica de cada frmula a un
determinado valor de verdad verdadero o falso (elemento del conjunto {f, v}) a
partir de una interpretacin de trminos dada.
Notar que en la definicin de interpretacin de frmulas, los conectivos , y
representan en la parte izquierda de la definicin conectivos sintcticos
constructores de frmulas, mientras que en la parte derecha de la definicin
Def:
Def:
Def:
Def:
Def:
menor_igual(cero, x)))
es vlida slo para una estructura adecuada del lenguaje donde el dominio D
corresponde a un conjunto que incluye a los nmeros naturales, la constante cero se
mapea al elemento 0 correspondiente al nmero natural cero, el predicado
es_numero_natural se mapea a la relacin que indica si un valor corresponde a un
nmero natural y el predicado menor_igual se mapea a la relacin que indica si
dados dos nmeros naturales el primero es menor o igual al segundo. Bajo otras
estructuras adecuadas no se garantiza que esta frmula sea vlida.
Sin embargo, la siguiente frmula
((x)(ignifugo(x)
ignifugo(x)))
Consecuencia lgica
Def:
Def:
Def:
Def:
Dicho de otra forma, vale que sii toda interpretacin de frmulas que es
modelo de (es modelo de todas las frmulas de ), tambin es modelo de .
Vale la pena notar que los conceptos semnticos de modelos y de consecuencia
lgica son anlogos aunque parezcan contradictorios: cuanto ms modelos existan
para , tendr a menos frmulas como consecuencia lgica; por el lado contrario,
cuanto menos modelos existan para , tendr a ms frmulas como consecuencia
lgica. En los casos extremos, si es inconsistente (no posee modelos), cualquier
frmula ser consecuencia lgica; si toda interpretacin es modelo de (todas sus
frmulas son vlidas), slo las frmulas que son vlidas sern consecuencia
lgica de .
Prop:
Prop:
P (P)
(PQ) P y Q
(PQ) P o Q
(PQ) P o Q
(PQ) P sii Q
((x) P) [w/x]P para todo wD
((x) P) [w/x]P para algn wD
Ejemplo:
{((x)(hombre(x) mortal(x))), hombre(pedro)} mortal(pedro)
Aqu se puede ver que toda interpretacin que sea modelo de ((x)
(hombre(x) mortal(x))) y de hombre(pedro), tambin ser modelo de
mortal(pedro), porque si existiera una interpretacin que no sea modelo de
mortal(pedro) y que sea modelo de una de las frmulas ((x) (hombre(x)
mortal(x))) o hombre(pedro), no puede ser modelo de la otra frmula.
{((x)(hombre(x) superhom(x) mortal(x))), hombre(pedro)} mortal(pedro)
Aqu se puede ver que existe una interpretacin que es modelo de
hombre(pedro), que es modelo de superhom(pedro), que es modelo de ((x)
(hombre(x) superhom(x) mortal(x))), y que no es modelo de
mortal(pedro).
Importante:
Uno de los grandes objetivos de la computacin es poder llegar a deducir cundo
una frmula de un lenguaje de primer orden es consecuencia lgica de un conjunto
de frmulas. Sin embargo la visin semntica de la consecuencia lgica a travs de
las interpretaciones primero de variables y trminos, y luego de frmulas hace
inviable la combinatoria de generacin de interpretaciones posibles, y ms an
cuando el conjunto dominio de la estructura adecuada pueda ser infinito. Con
motivo de este problema, es necesario lograr otra estrategia para que un sistema
computacional pueda llegar a implementar la consecuencia lgica.
Consecuencia sintctica
Def:
P, (PQ)
Q
Modus tollens:
Q, (PQ)
P
Eliminacin universal:
((x) P)
[a/x]P
Insercin existencial:
P
((x) [x/a]P)
Insercin conjuncin:
P, Q
(PQ)
Deduccin disyuncin:
P
(PQ)
En los casos de arriba, la frmula [a/x]P representa una frmula que es la frmula
P reemplazando las apariciones libres de la variable x por el trmino constante a. La
frmula [x/a]P es un abuso de notacin para indicar que representa a la frmula P
que contiene trminos constantes a, reemplazando todas las apariciones de estos
trminos constantes a por una variable x que no aparece libre en la frmula P.
Las reglas de inferencia tambin pueden escribirse como frmulas del lenguaje.
Deber ocurrir que las frmulas equivalentes a las reglas de inferencia utilizadas por
el sistema deben cumplir con la propiedad de correctitud (en ingls soundness).
Esto significa que estas frmulas deben ser universalmente vlidas desde el punto
de vista semntico.
10
Prop:
Importante:
Los sistemas computacionales utilizan tcnicas de deduccin para llegar a la
conclusin de que una frmula es consecuencia de un conjunto de frmulas. Todos
utilizan tcnicas sintcticas basadas en inferencias para intentar llegar a probar la
consecuencia sintctica a travs de reglas de inferencia, teoremas y
encadenamientos como alternativa a la consecuencia lgica que est basada en
interpretaciones y modelos, que son inviables de implementar.
Ejemplo:
{((x)(hombre(x) mortal(x))), hombre(pedro)} mortal(pedro)
Las reglas de inferencia utilizadas con el encadenamiento de conclusiones es el
siguiente:
((x) (hombre(x) mortal(x)))
(hombre(pedro) mortal(pedro))
,
mortal(pedro)
hombre(pedro)
I interpretacin de frmulas
P ((P))
((PQ)) ((P)(Q))
((PQ)) ((P)(Q))
(P(QR)) ((PQ)(PR))
(P(QR)) ((PQ)(PR))
(((x) P)) ((x) (P))
(((x) P)) ((x) (P))
11
(si xFV(P))
(si xFV(P))
Notar que las estas definiciones de equivalencias entre frmulas son sintcticas y
cumplen con la propiedad de correctitud (soundness) pese a ser definidas
originalmente en trminos semnticos.
Otras propiedades importantes que cumple la consecuencia sintctica son las
siguientes:
P {Q} P
{P} Q (PQ)
P, {P} Q Q
P P se deduce de un subconjunto finito de
P {P} es insatisfacible
(monotona)
(teorema de la deduccin)
(encadenamiento de conclusiones)
(compacidad)
(reduccin al absurdo)
(correctitud/soundness)
12
(completitud/completeness)
13
Clusulas
Se define el conjunto de las clusulas (S) como un subconjunto de frmulas
(SF) correspondientes a sentencias (frmulas sin variables libres) cuyo formato es
el siguiente:
(x1)(x2)...(xn)(p1p2...pmq1q2...qk)
(m, k 0)
donde p1, p2, ..., pm, q1, q2, ..., qk corresponden a frmulas atmicas. Las frmulas
escritas como clusulas se dice que se encuentran en forma clausal o forma
normal de Sklem.
Dicho de otra forma, una clusula se compone de una disyuncin de literales
(donde los literales pueden ser positivos -frmulas atmicas- o negativos -frmulas
atmicas negadas-) donde todas las variables contenidas se encuentras ligadas por
los cuantificadores universales externos. El orden de los cuantificadores universales
externos es irrelevante, ya que el intercambio del orden de los mismos no altera el
significado de la clusula. Notar que uno de los componentes importantes de las
frmulas de la lgica de primer orden que no aparece es el cuantificador existencial.
A partir de la definicin de clusulas como frmulas, se pueden encontrar
frmulas equivalentes, de la siguiente forma:
(x1)(x2)...(xn)(p1p2...pmq1q2...qk)
(x1)(x2)...(xn)((p1p2...pm)(q1q2...qk))
(x1)(x2)...(xn)(p1p2...pm q1q2...qk)
As es que una clusula corresponde a una implicacin donde los literales
negativos corresponden al antecedente (el antecedente sera la conjuncin de los
literales negativos sin la negacin) y los literales positivos corresponden al
consecuente (el consecuente sera la disyuncin de los literales positivos). Aqu se
introduce el smbolo con el significado de es implicado por e inverso al de la
implicacin material ya conocido . Este nuevo smbolo es muy utilizado dentro
del contexto de las clusulas.
14
15
16
17
Sustituciones
Def:
Dado un conjunto de pares {<xi, ti>}i (con xiV, tiT i) donde se cumple
adems que i xiti y ij xixj si ij, se define una sustitucin como el conjunto
{xiti}i (no confundir con el smbolo de la implicacin material de las frmulas).
La sustitucin correspondiente al conjunto vaco se la llama sustitucin vaca y
se la denota con el smbolo .
Def:
x
x
c
f(t1, ..., tn)
=
=
=
=
x
t
c
f(t1, ..., tn)
(xV, (xt))
(xV, (xt))
(cC)
(t1T y ... y tnT y <f, n>L)
Def:
Def:
Wcordoba} =
= (t)
(tT)
18
Def:
(asociatividad)
(existencia de elemento neutro )
(no conmutatividad)
Dada una sustitucin y dos trminos t y s (t, sT), se dice que la sustitucin
es un unificador de t y s si se cumple lo siguiente:
t = s
Un ejemplo de unificadores de dos trminos es el siguiente:
Trmino 1: juan
Unificadores: no poseen
Trmino 2: luisa
Trmino 1: hijo(raul)
Unificadores:{Yhijo(raul)}
Trmino 2: Y
Trmino 2: hijo(hermano(Z))
Trmino 1: hijo(X)
Unificadores: {Xhermano(Z)}
{Xhermano(paula), Zpaula}
{Xhermano(primo(Y,R)), Z primo(Y,R)}
Trmino 1: padres(Y,X)
Trmino 2: padres(aldo,hermano(Y))
Unificadores: {Yaldo, Xhermano(aldo)}
Trmino 1: padres(Y,primo(X))
Unificadores: no poseen
Trmino 2: padres(aldo,hermano(Y))
Trmino 1: padres(Y,X)
Unificadores: no poseen
Trmino 2: hermanos(Z,T)
19
Trmino 1: padres(X,X)
Trmino 2: padres(hijo(R),hijo(hijo(W)))
Unificadores: {Xhijo(hijo(W)), Rhijo(W)}
{Xhijo(hijo(rolex)), Rhijo(rolex), Wrolex}
{Xhijo(hijo(titulo(pepsi,C))), Rhijo(titulo(pepsi,C)),
Wtitulo(pepsi,C) }
Trmino 1: padres(X,X)
Unificadores: no poseen
Trmino 2: padres(Z,hijo(Z))
verificar por qu
Dada una sustitucin y dos trminos t y s (t, sT), se dice que la sustitucin
es el unificador ms general de t y s si se cumple lo siguiente:
es un unificador de t y s
es un unificador de t y s sustitucin / =
( es unificador)
( es el ms general)
20
X
X
X
X
c
c
f(t1,t2,...,tn)
unifica con
unifica con
unifica con
unifica con
X
Y
c
f(s1,s2,...,sn)
unifica con c
unifica con X
unifica con X
f(t1,t2,...,tn)
- t1
- t21
- t312
con la sustitucin
con la sustitucin {XY} {YX}
con la sustitucin {Xc}
con la sustitucin {Xf(s1,s2,...,sn)}
(si XVar(s1)Var(s2)...Var(sn))
con la sustitucin
con la sustitucin {Xc}
con la sustitucin {Xf(t1,t2,...,tn)}
(si XVar(t1)Var(t2)...Var(tn))
con la sustitucin 12...n si
con la sustitucin 1
con la sustitucin 2
con la sustitucin 3
con la sustitucin n
Ver que en la obtencin de los unificadores entre dos trminos, las variables a
sustituir pueden llegar a aplicar tanto para las variables contenidas del primer
trmino como para las del segundo.
Ms adelante se mencionar sobre la necesidad de la definicin de sustituciones,
aplicaciones de sustituciones, y unificadores.
21
(reduccin al absurdo/refutacin)
usa(raul,casio)
22
23
24
25
Una clusula se dice que es una clusula goal si no posee ningn literal positivo
(como las clusulas en general, pueden poseer 0, 1 ms literales negativos). Por
definicin, las clusulas goal no son clusulas de Horn.
Def:
Prop:
Def:
..., uz
( u1, u2, ..., ue-1, q1, q2, ..., qk, ue, ..., uz) mgu(r,t)
La primera clusula goal que aparece en el proceso de demostracin de si una
frmula tomica P es consecuencia sintctica de un conjunto de clusulas (de Horn
o programa lgico) , es su negacin descripta como clusula (P) a travs del
mtodo de refutacin ya mencionado anteriormente. Esta primera clusula goal (la
original), se puede usar como resoluto para que resuelva con una clusula de Horn
del programa lgico, obteniendo como resolvente una nueva clusula goal, que en
algn otro momento se podr usar como resoluto junto con una clusula de Horn del
programa lgico, obteniendo como resolvente otra nueva clusula goal, y as
sucesivamente hasta llegar (o no) a la clusula nula (que tambin es una clusula
26
goal). Las clusulas goal obtenidas como resolventes (junto a la clusula goal
original) se van acumulando para poder ser usadas como resolutos en posibles
prximas resoluciones a futuro en la misma demostracin para obtener nuevos
resolventes.
De esta forma se van encadenando los resolventes obtenidos desde el goal
original hasta la clusula nula, si es que se obtiene de resolvente. A este tipo de
encadenamiento de resultados durante la demostracin se lo denomina backward
chaining (encadenamiento hacia atrs, porque los resolventes se aplican en el
sentido contrario a las implicaciones, simulando un modus tollens ms general),
goal-directed o top-down, encadenando resultados partiendo desde lo que se quiere
demostrar (goal original) hasta los hechos del programa lgico que permitan obtener
como resolvente la clusula nula. Este mtodo de encadenamiento backward
chaining, goal-directed o top-down est garantizado por la naturaleza de la
resolucin SLD.
El mtodo de encadenamiento contrario sera partir de los hechos del programa
lgico y encadenando hacia adelante utilizando resolucin de Robinson (pero no
SLD) hasta llegar al tomo a demostrar (goal). A este tipo de encadenamiento de
resultados durante la demostracin se lo denomina forward chaining
(encadenamiento hacia adelante) o bottom-up.
La resolucin y estrategia SLD, adems de ser correcta, tambin lo es completa,
si se combina con ciertos otros criterios adicionales.
Otros componentes de la estrategia de resolucin que funcionan combinados con
la estrategia SLD (aunque realmente no forman parte de la estrategia SLD) son los
siguientes:
Criterio de seleccin de prxima clusula goal resoluto: De todas las
clusulas goal obtenidas como resolventes en la demostracin, se deber
elegir cul ser la prxima que se tome como candidata a resoluto de la
prxima resolucin. Un criterio conocido es tomar la clusula goal ms
reciente (la generada como resolvente de la ltima resolucin). Si este
criterio se combina con la utilizacin de backtracking ante la clusula goal
que falla ante una resolucin, tenemos un recorrido en profundidad (depthfirst) en lo que sera el rbol de refutacin o rbol de demostracin. Otro
criterio combinado dentro de esta categora podra ser un recorrido a la
ancho (breadth-first) en lo que sera el rbol de refutacin o rbol de
demostracin. Notar que el criterio de resolucin de recorrido en
profundidad del rbol de refutacin puede no ser completo, ya que puede
caer en un encadenamiento de derivacin que conforma una rama infinita y
nunca llegar a la clusula nula, mietras que si pudiera elegir por otro
encadenamiento s podra llegar.
Criterio de seleccin de prxima clusula de Horn resoluto: Habiendo ya
seleccionado una clusula goal como candidata a resoluto, se deber elegir
Apunte Lgica de Primer Orden, Clusulas y Resolucin
27
28
Ejemplos de resolucin
A continuacin se presentan varios ejemplos de resolucin utilizando el rbol de
refutacin para la demostracin de un tomo a partir de un programa lgico. El
mtodo y estrategia de resolucin combinados son los comentados antes. En el rbol
de refutacin, cada nodo conforma una clusula goal. Cada nodo hijo representa la
clusula goal resolvente de la clusula goal resoluto representada en el nodo padre,
y una clusula de Horn que se indica en el arco entre dos nodos. En el arco entre el
nodo padre y el nodo hijo se describe adems de cul es la clusula de Horn resoluto
perteneciente al programa lgico, la sustitucin asociada (en realidad el mgu) que
aplica tanto sobre la clusula goal padre como sobre la clusula de Horn del
programa lgico para obtener esa clusula goal resolvente como nodo hijo. En cada
nodo-clusula goal se subraya cul es el literal negativo que se utiliza para resolver
segn el mtodo de resolucin (siempre ser el primero de la clusula goal). Para
cada nodo-clusula goal se describirn en el rbol todos los posibles nodos
resolventes como nodos hijos posibles. El nodo raz corresponde a la clusula goal
original (el tomo negado a demostrar a partir del programa lgico). Llegar al nodo
correspondiente a la clusula (goal) nula indica la demostracin exitosa por
refutacin. La respuesta (positiva) de esta demostracin deber ser acompaada por
la composicin sucesiva de todas las sustituciones aplicadas desde el nodo raz en
todos los arcos de la rama hasta llegar al nodo de la clusula goal nula, filtrando
solamente por aquellas variables que hayan aparecido en el goal original (la clusula
goal del nodo raz). Las variables de importancia en las sustituciones aplicadas
aparecen en negrita. En estos ejemplos, siempren se renombran las variables de las
clusulas de Horn en cada resolucin agregndole un nmero incremental como
postfijo, para evitar conflictos en las sustituciones con variables que puedan tener el
mismo nombre en la clusula goal resoluto.
29
hijo(pedro,carlos) ,
hijo(juan,pedro) ,
hijo(ernesto,pedro) ,
hijo(alberto,ignacio) ,
padre(X,Y)hijo(Y,X) ,
abuelo(X,Y)padre(X,Z), padre(Z,Y)
(R1)
(R2)
(R3)
(R4)
(R5)
(R6)
(R7)
Demostrar si P padre(pedro,ernesto)
padre(pedro,ernesto)
R6 {X1pedro, Y1ernesto}
hijo(ernesto, pedro)
R4
Demostrar si P (X)abuelo(carlos,X)
abuelo(carlos,X)
R7 {X1carlos, Y1X}
padre(carlos,Z1), padre(Z1,X)
R6 {X2carlos, Y2Z1}
hijo(Z1,carlos), padre(Z1,X)
R1 {Z1raul}
R2 {Z1pedro}
padre(raul,X)
padre(pedro,X)
R6 {X3raul, Y3X}
R6 {X4pedro, Y4X}
hijo(X,raul)
hijo(X,pedro)
R3 {X
juan}
R4 {X
ernesto}
{Xjuan}
{Xernesto}
30
(R1)
(R2)
Demostrar si P (X)(Y)concat(X,Y,cons(a,cons(b,empty)))
concat(X,Y,cons(a,cons(b,empty)))
R1 {X
empty,
X1cons(a,cons(b,empty)),
Y
cons(a,cons(b,empty))}
R2 {X
cons(a,YS2), X2Y, Y2a, ZS2cons(b,empty)}
concat(YS2,Y,cons(b,empty))
{Xempty, Ycons(a,cons(b,empty))}
R1 {YS2
empty, X3cons(b,empty),
Y
cons(b,empty)}
R2 {YS2
cons(b,YS4), X4Y, Y4b, ZS4empty}
concat(YS4,Y,empty)
{Xcons(a,empty), Ycons(b,empty)}
R1 {YS4
empty, X5empty, Y
empty}
{X cons(a,cons(b,empty)), Y empty}
31
32
33
Bibliografa
- Kowalski, R. (1979): Logic for problem solving. Elsevier Science Publishing.
- Sterling L., Shapiro E. (1994): The Art of Prolog: Advanced programming
techniques. MIT Press.
- Nilsson U., Mauszyski J. (2000): Logic, Programming and Prolog (second
edition). Linkpings Universitet.
- Clocksin W. F., Mellish C. S. (2003): Programming in Prolog. Springer.
34