Lógica para Las Ciencias Informáticas 2016
Lógica para Las Ciencias Informáticas 2016
Lógica para Las Ciencias Informáticas 2016
2016
Licenciatura en Sistemas
Formas Normales
1
Lógica para las Ciencias Informáticas
2016
Cláusulas
Def: Una expresión, término o cláusula se dice fija si no contiene
variables.
Def: Una FBF de está en forma clausal si es una sentencia descripta
por la siguiente pseudo-gramática:
Cláusulas
Obs: Notemos que al igual que en L seguimos interpretando a las
cláusulas como una disyunción de los elementos que la forman
cláusula “” | “{” literal “}” | “{” literal “}” cláusula
es equivalente a
cláusula “” | literal | literal “” cláusula
y una sentencia
sentencia “{” cláusula “}” | “{” cláusula “}” sentencia
es equivalente a
sentencia cláusula | cláusula “” sentencia
2
Lógica para las Ciencias Informáticas
2016
Forma Prenexa
Def: Una FBF está en forma prenexa si cada variable está
cuantificada y todos los cuantificadores preceden a una
sentencia sin cuantificadores.
El conjunto de cuantificadores se denomina prefijo y la
sentencia que le sigue, y que representa su alcance, se
denomina matriz.
Por ejemplo, la fórmula bien formada
(((x)A(x) (y)B(y)) (z)C(z))
se transforma en
Prefijo Matriz
5
Forma Prenexa
Obs: Dada una FBF arbitraria existe un procedimiento para obtener
una FBF equivalente en forma prenexa.
Los pasos son los siguientes:
1. 1. A B se transforma en (A B) (B A)
A B se transforma en A B
2. Se reubican los cuantificadores a la izquierda de los
conectivos lógicos. Observemos que luego de aplicar las
reglas en 1. solo quedan “”, “”, “” en ella.
a. (x) A se transforma en (x)A
b. (x) A se transforma en (x)A
Ahora se renombran las variables ligadas de manera que
variables diferentes tengan nombres diferentes. Por ejemplo,
(x)(A(x) B(x)) (x)C(x)
se transformará en
(x)(A(x) B(x)) (y)C(y)
6
3
Lógica para las Ciencias Informáticas
2016
Forma Prenexa
Luego
c. ( ... (x)A … ) se transforma en (x)( ... A … )
d. ( ... (x)A … ) se transforma en (x)( ... A … )
e. ( ... (x)A … ) se transforma en (x)( ... A … )
f. ( ... (x)A … ) se transforma en (x)( ... A … )
esta notación simplificada describe una conjunción (o
disyunción) genérica donde uno de sus miembros contiene el
cuantificador mencionado en la regla de transformación.
Notemos que no se producen capturas de variables por el
cuantificador que se reubica, dado que las variables de la
fórmula han sido renombradas convenientemente.
Por ejemplo,
A(x) (y)B(y) C(z)
se transforma en
(y)(A(x) B(y) C(z))
7
Forma Prenexa
3. Si existieran variables libres clausuramos universalmente la FBF
agregando cuantificadores universales al comienzo de la misma.
4
Lógica para las Ciencias Informáticas
2016
Forma de Skolem
Skolemización
Sea A una FBF en forma prenexa y supongamos que el prefijo de
A contiene un cuantificador existencial (x).
10
5
Lógica para las Ciencias Informáticas
2016
Forma de Skolem
12
6
Lógica para las Ciencias Informáticas
2016
Resolución
en P
13
Computación
Recordemos que el mecanismo lógico de computación es el
cálculo de resolventes a través de la eliminación de literales
complementarios.
14
7
Lógica para las Ciencias Informáticas
2016
Resolución
En la lógica proposicional, se utiliza la eliminación de
literales complementarios entre cláusulas para obtener
resolventes.
15
p( a ) p(a)
p( a ) p( b)
p( x ) p(x)
p( x ) p(y)
p(f(a)) p(x)
p(f(f(a))) p(f(x))
p(f(f(a))) p(g(x))
16
8
Lógica para las Ciencias Informáticas
2016
La Variable Lógica
Una variable lógica representa un individuo no especificado,
pero único.
17
Substituciones
18
9
Lógica para las Ciencias Informáticas
2016
Substituciones y Unificación
19
Términos
Los términos son designadores de individuos (constantes
individuales).
Por definición:
• Una constante y una variable son términos.
• Un término compuesto está formado por un functor, i.e. una
letra funcional, con una aridad determinada y la lista de
términos de longitud correspondiente a la aridad del functor:
fkn(t1, t2, ..., tn)
20
10
Lógica para las Ciencias Informáticas
2016
Términos fijos
D D
21
D D
22
11
Lógica para las Ciencias Informáticas
2016
Substituciones
Def: Una substitución es un conjunto finito , posiblemente
vacío, de pares de la forma (ti, xi), donde xi es una variable y ti
es un término, y además:
1. Si xi xk si i k
2. xi no aparece en tk cualesquiera sean i y k.
23
Substituciones
Obs: Las dos condiciones
1. Si xi xk si i k
2. xi no aparece en tk para cualquier i y k.
aseguran que si dos substituciones 1 y 2 son iguales como
conjuntos entonces tendrán el mismo efecto al aplicarse sobre
cualquier expresión.
12
Lógica para las Ciencias Informáticas
2016
Substituciones
Obs: Una substitución puede aplicarse a un término o FBF y
usaremos la palabra expresión para referirnos a esto.
25
Substituciones
Def: Sean [(t1, x1), (t2, x2), ..., (tn, xn)] una substitución
arbitraria y [(s, v)] una substitución unitaria con la
característica de que v xi y xi no aparece en s cualquiera sea
i, 1 i n. Entonces, definimos la composición de y de la
siguiente manera:
13
Lógica para las Ciencias Informáticas
2016
Substituciones Unificadoras
Par de literales Substitución
Obs: Recordemos que la notación [t1 /x1, t2 /x2, ..., tn /xn] es una
notación alternativa para [(t1, x1), (t2, x2), ..., (tn, xn)]
27
Substituciones Unificadoras
Def: Sea { L1, L2, ..., Ln } un conjunto de expresiones
(términos o FBFs) y una substitución. Decimos que es
unificado por si L1 L2 ... Ln. La substitución recibe
el nombre de substitución unificadora o simplemente unificador.
14
Lógica para las Ciencias Informáticas
2016
Substituciones Unificadoras
29
Substituciones Unificadoras
30
15
Lógica para las Ciencias Informáticas
2016
Conjunto de Desacuerdo
Def: Sea { L1, L2, ..., Ln } un conjunto de expresiones (términos o
FBFs del mismo tipo). El conjunto de desacuerdo de es el conjunto
de subexpresiones bien formadas de las expresiones de que
comienzan en la primera posición, comenzando desde la izquierda,
en la que no todas las expresiones coinciden.
Ejemplos: p(x, f(x, g(y)), v)
p(x, f(x, z), w)
Si { p(x, f(x, g(y)), v), p(x, f(x, z), w) } vemos que
p(x, f(x, g(y)), v), p(x, f(x, z), w) la parte roja coincide y
entonces su conjunto de desacuerdo es { g(y), z }.
Si { p(x, f(y,z)), p(x, a), p(x, g(h(k(x)))) } vemos que
p(x, f(y, z)), p(x, a), p(x, g(h(k(x)))) la parte roja coincide
entonces su conjunto de desacuerdo es { f(y, z), a, g(h(k(x))) }.
31
Conjunto de Desacuerdo
Obs: Dado { L1, L2, ..., Ln } un conjunto de expresiones
(términos o FBF, pero del mismo tipo) el conjunto de
desacuerdo de es o bien el conjunto en cuyo caso el
conjunto es no unificable, o bien el conjunto vacío en cuyo
caso tiene un solo elemento, o bien contiene un
elemento de cada uno de los miembros de .
32
16
Lógica para las Ciencias Informáticas
2016
Orden Lexicográfico
Introduciremos un orden lexicográfico entre los elementos
del lenguaje del Cálculo de Predicados, suponiendo que
trabajamos con FBFs en la forma de Skolem:
1. Variables 1ro. ordenadas por subíndice, luego alfabéticamente.
2. Constantes.
3. Letras funcionales ordenadas primero por el superíndice, i.e. su
aridad, y dentro de las que tienen la misma aridad por
subíndice, luego alfabéticamente.
4. Letras predicativas ordenadas primero por aridad (superíndice)
y dentro de las que tienen la misma aridad por subíndice, luego
alfabéticamente.
5. Conectivos lógicos en el siguiente orden: “”, “”, “”, “”, “”
33
Procedimiento de
Unificación
34
17
Lógica para las Ciencias Informáticas
2016
18
Lógica para las Ciencias Informáticas
2016
Ejemplo 1
Sea { p(a, x, f(g(y))), p(z, f(z), f(w))}
1ra Iteración: 1 , 1 , D1(1) {z, a }, s1 z y t1 a, luego
2 1[ (a, z) ], es decir 2 [ (a, z) ]
2da Iteración: 2 2, i.e. 2 [ (a, z) ]
2 { p(a, x, f( g(y))), p(a, f(a), f(w))}
D2(2) { x, f(a) }, s2 x y t2 f(a), luego 3 2[ (f(a), x) ],
es decir 3 [ (a, z), (f(a), x) ]
3ra Iteración: 3 3, 3 [ (a, z), (f(a), x) ]
3 { p(a, f(a), f(g(y))), p(a, f(a), f(w))}
D3(3) {w, g(y)}, s3 w y t3 g(y), luego 4 3[ (g(y), w) ],
es decir 4 [ (a, z), (f(a), x), (g(y), w) ]
4ta Iteración: 4 4, 4 [ (a, z), (f(a), x), (g(y), w) ],
es decir 4 { p(a, f(a), f(g(y)))}
Terminando en el unificador más general 4 [(a, z), (f(a), x), (g(y), w)]
37
Ejemplo 2
Sea {h(x, f(g(a, x))) ; h(f(y), f(g(a, f(c)))) }
1ra Iteración: 1 , 1 , D1(1) {x, f(y) }, s1 x y t1 f(y),
luego 2 1[ (f(y), x) ], es decir 2 [ (f(y), x) ]
38
19
Lógica para las Ciencias Informáticas
2016
Bibliografía
39
20