Está en la página 1de 14

64

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN

Metodologa
Trabaje con lenguajes de primer orden progresivamente ms complejos. Primero, slo cuanticadores y predicados mondicos (luego didicos, etc.) Introduzca posteriormente el uso de funciones para referirse a ciertos sujetos, es decir, como trminos (aparte de las variables y constantes). Por ltimo, introduzca la igualdad en su lenguaje. En cada una de estas etapas, procure cuidar la correcta generacin e interpretacin de frmulas (as como de sus rboles sintcticos). Y ponga un especial cuidado en encontrar tanto interpretaciones que satisfagan sus expresiones como interpretaciones que no las satisfagan (si es posible). Por ltimo, en los sistemas basados en Resolucin y Tableaux recuerde, de la lgica de proposiciones, que facilitan la identicacin de conjuntos de frmulas insatisfacibles. Ahora, en estos procesos es importante no introducir espreamente la insatisfacibilidad por una incorrecta manipulacin de los pasos intermedios. En particular, tenga cuidado con los procesos que requieren una particularizacin de un caso general: si no se siguen las restricciones sobre la eleccin de esos sujetos particulares (constantes, trminos unicables ...) puede armarse como insatisfacible un conjunto de frmulas que no lo era. O perderse indenidamente en intentos vanos de conrmacin, incluso aunque s pueda llegarse sintcticamente a la misma.

2.1
2.1.1

Sintaxis
Lenguajes de primer orden

Alfabetos Todos los lenguajes de Lgica de Primer Orden utilizan un conjunto comn de smbolos. Adems de este conjunto, cada lenguaje utiliza algunos smbolos propios. Los smbolos propios de cada lenguaje determinan qu constantes, funciones y relaciones considera. Denicin 2.1 (Alfabeto) El alfabeto de un lenguaje de Primer Orden incluye: smbolos comunes: variables: Var = {x1 , x2 , x3 . . .} conectivas: {, , , , , , } cuanticadores: {, } smbolos de puntuacin: parntesis y comas (smbolo de igualdad: {}) smbolos propios: su conjunto de constantes: C = {c1 , c2 , . . .} su conjunto de funciones: F = { f1 , f2 , . . .} su conjunto de relaciones: R = {R1 , R2 , . . .}
Notacin Se denomina A al conjunto de smbolos comunes, S al de smbolos propios y AS al alfabeto resultante. Cada eleccin de S determina un lenguaje: se denotar como L(S) L(R , F , C ). Los conjuntos C , F y R se escogen independientemente: un lenguaje puede o no contener constantes, o funciones o relaciones. Un lenguaje sin relaciones propias debe, al menos, utilizar la relacin de igualdad.

2.1. Sintaxis

65

Toda funcin y toda relacin tienen asignado un nmero n. Una funcin o relacin n-dica o n-aria se aplica sobre una n-tupla de trminos: R(t1 , . . . , tn ). No todos los lenguajes utilizan la relacin de igualdad. Por su especial tratamiento semntico convena excluirla del conjunto R . En los lenguajes con igualdad, se utilizar excepcionalmente la notacin inja (t1 t2 ) en vez de la preja (t1 , t2 ). Al cuanticador (lase para todo) se le denomina universal y al cuanticador (existe), existencial. En las exposiciones tericas, cuando son muy pocos los smbolos requeridos, se utilizan como constantes las letras iniciales del alfabeto latino {a, b, c, d , . . .}, las letras nales como variables {. . . , u, v, w, x, y, z} y letras intermedias { f , g, h, . . .} como funciones. Para las relaciones se usarn letras maysculas.

Ejemplo 2.2 Para representar y analizar el conjunto de nmeros naturales se requieren, al menos, una constante y una funcin. La constante ja el primer nmero (el que no es sucesor de otro) y la funcin proporciona el sucesor de cada nmero. Para desarrollar una teora sobre grafos basta un lenguaje con una nica relacin binaria (la relacin entre nodos). En principio, no se precisa de smbolos constantes ni de funciones. Las ecuaciones son relaciones de igualdad entre trminos: t1 t2 . La lgica ecuacional estudia este fragmento de la lgica de primer orden, donde la nica relacin precisa es la de igualdad. Los trminos se construyen a partir de variables, constantes y funciones. Lenguajes Suponga jado un cierto alfabeto AS . Todas las deniciones y resultados que siguen se restringen a ese alfabeto. As, los trminos y frmulas sern expresiones sobre este alfabeto; y las constantes, funciones y relaciones requeridas en su denicin deben pertenecer a este alfabeto. En las escasas ocasiones en que se consideren varios alfabetos, se avisar explcitamente. Denicin 2.3 (Trmino) Un trmino es una expresin obtenida por aplicacin de las siguientes reglas: 1. cada constante c es un trmino 2. cada variable x es un trmino 3. si f es una funcin n-aria y t1 , . . . , tn son trminos, entonces f (t1 , . . . , tn ) es un trmino
Notacin El conjunto de todos los trminos se denotar como Term.

Denicin 2.4 (Frmula atmica) Una frmula atmica es una expresin de la forma: R(t1 , . . . , tn ) , donde R es un smbolo relacional n-ario y t1 , . . . , tn son trminos En los lenguajes con igualdad tambin es una frmula atmica (t1 t2 ), donde t1 y t2 son trminos. Asimismo en los lenguajes que utilicen los smbolos y (que se pueden entender como conectivas 0-arias), ambas frmulas sern frmulas atmicas.
Notacin Al conjunto de todas las frmulas atmicas se le denominar Atom.

Denicin 2.5 (Frmula) Una frmula es una expresin obtenida por aplicacin de las siguientes reglas:

66

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN

1. toda frmula atmica es una frmula 2. si es una frmula entonces () es una frmula 3. si y son frmulas entonces ( ) es una frmula, para toda conectiva binaria 4. si es un frmula y x una variable entonces (x) y (x) son frmulas
Notacin El conjunto de todas las frmulas se denotar como Form.

(x( R(x, c) P( f (y)) ))


y

( R(x, c) P( f (y)) )
c    ?? ?? ??

c    

R(x, c)

?? ?? ?? ?

P( f (y) ) c

?? ?? ??

f (y)
y

89:; ?>=< ?? c ?  ??  ??   89:; ?>=< 89:; ?>=< P? R ? ?? c ? ??  ?  ?? ??  ? ?  

89:; ?>=< y x

fy y

y
(a) rbol sintctico (b) rbol, ms esquemtico

Figura 2.1: Frmula de Primer Orden: rbol sintctico Ejemplo 2.6 En la gura (g. 2.1) se representa el rbol sintctico de la frmula (x(R(x, c) P( f (y)). Se han marcado echas ascendentes para resaltar el proceso de generacin: x (variable) y c (constante) son trminos; si R es un smbolo relacional didico, R(x, c) es una frmula atmica. y es un trmino; si f es un smbolo mondico de funcin, f (y) es un trmino; si P es un smbolo relacional mondico, P( f (y)) es una frmula atmica. el condicional de dos frmulas es una frmula: (R(x, c) P( f (y))) la cuanticacin de una frmula es una frmula: (x(R(x, c) P( f (y)))) En la subgura derecha se han enmarcado con un crculo los nodos que representan una frmula. El resto de los nodos representan trminos. Ejemplo 2.7 Todas las expresiones siguientes son trminos, no frmulas: x, z, c, f (x), f (c), g(x, y), g(x, c), g( f (y), x), h(x, c, g(x, y), f (z)). Trate de expresar el rbol sintctico de este ltimo trmino. Los trminos son los sujetos, los individuos citados en nuestras frases formales. Sobre ellos no se podr armar si son verdaderos o falsos, slo tendr sentido determinar quines son. Ejemplo 2.8 Todas las expresiones siguientes son frmulas:

2.1. Sintaxis

67

P(x), Q(y), (P(x) (Q(y))), ((P(c) R(x, y)) Q(y)) (P( f (x)) (Q( f (c)))), R(g(x, f (y)), f (c)) x(P(x) (Q(y))), x(P(x) y(Q(y))), yxR(g(x, f (y)), f (c)) Asegrese de que puede expresar el rbol sintctico de cualquiera de estas frmulas. Los anidamientos relativos de los parntesis facilitan la determinacin de los nodos hijo.

2.1.2

Induccin y recursin

Cada lenguaje de primer orden tiene una estructura inductiva. Ya se consider esta estructura en el estudio de los lenguajes proposicionales. Recuerde que permita enunciar deniciones de manera concisa, recursiva, sobre el conjunto innito de frmulas. Tambin facilitaba un mecanismo de prueba, por induccin estructural, de propiedades de estas frmulas. Estrictamente, en los lenguajes de primer orden hay dos conjuntos inductivos: el de trminos y el de frmulas. Denicin 2.9 (Principio de induccin estructural) Para demostrar que todos los trminos de un lenguaje de primer orden tienen la propiedad P basta demostrar que: 1. toda variable tiene la propiedad P 2. toda constante del alfabeto tiene la propiedad P 3. si los trminos t1 , . . . , tn tienen la propiedad P y f es una funcin n-aria del alfabeto, entonces f (t1 , . . . , tn ) tiene la propiedad P Para demostrar que todas las frmulas tienen la propiedad P basta demostrar que: 1. toda frmula atmica tiene la propiedad P 2. si la frmula tiene la propiedad P, entonces () tiene la propiedad P 3. si las frmulas y tienen la propiedad P, entonces ( ) tiene la propiedad P 4. si la frmula tiene la propiedad P y x es una variable, entonces tanto (x) como (x) tienen la propiedad P El Principio de Induccin estructural puede demostrarse a partir del conocido Principio de Induccion sobre nmeros naturales: aplicndolo sobre la longitud de cada expresin, sobre su nmero de smbolos. Entre las propiedades de inters que pueden demostrarse inductivamente resaltaremos la unicidad en la descomposicin sintctica de un trmino y de una frmula. Teorema 2.10 (Anlisis sintctico nico) Cada trmino pertenece a una y slo una de las siguientes categorias: 1. es una variable 2. es una constante de AS 3. es de la forma f (t1 , . . . , tn ) para una funcin n-aria f de AS y trminos t1 , . . . , tn ) unvocamente determinados

68

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN

Cada frmula pertenece a una y slo una de las siguientes categorias: 1. es atmica 2. es de la forma (), para una determinada 3. es de la forma ( ), para , y conectiva binaria determinadas 4. es de la forma (x), o de la forma (x) para cuanticador, variable y frmula determinados Este resultado permite escribir el rbol de un trmino o de una frmula, garantizando que tendr estructura de rbol y que a cada frmula le corresponde exactamente uno. Observe que en el ejemplo (ej. 2.6), para generar una frmula, se parta de varios nodos inconexos y se ascenda, intentando construir un rbol. Ahora, de arriba abajo, el proceso de anlisis garantiza que, si la expresin es un trmino o una frmula, se produce un rbol.

2.1.3

Subfrmulas

Denicin 2.11 (Subfrmulas) Dada una frmula , el conjunto de todas sus subfrmulas se dene recursivamente como: {} {} sub f orm() {} sub f orm() sub f orm() sub f orm() = { } sub f orm() {} sub f orm() , atmica , = () , = ( ) , = (x) , = (x)

Las subfrmulas de una frmula dada son todas las que aparecen en su rbol sintctico, incluida ella misma. Observe que no todos los nodos de este rbol representan frmulas: cada frmula atmica tiene por subrbol el rbol de todos sus trminos. Ejemplo 2.12 En la gura (g. 2.2), la frmula analizada a la izquierda, tiene 4 subfrmulas: todas las de sus nodos salvo los trminos x, c, f (y), y. La frmula analizada a la derecha tiene 5 subfrmulas, todas las de sus nodos salvo los trminos: x, y, y. Esta denicin (def. 2.11) es un ejemplo de denicin recursiva sobre el conjunto de frmulas. En particular, dene una funcin sub f orm : Form P (Form) de frmulas en subconjuntos de frmulas. Observe que la denicin de sub f orm() requiere 5 funciones previas que facilitan la imagen de segn se encuentre en una de los 5 categoras en que puede estar. En realidad, son ms las categoras: todas la conexiones binarias se han condensado en una lnea y las dos opciones de frmulas atmicas tambin. Una funcin recursiva que, por ejemplo, calcule el nmero de conjunciones de una frmula necesita diferenciar en dos la lnea nica dedicada a conectivas binarias. Ya se ha garantizado que una frmula pertence a una y slo una de esas categoras. Adems, el Principio de Recursin estructural garantiza que, para una eleccin dada de esas funciones previas en cada categora, la funcin f : Form X est bien denida y es nica. Y esto, sea cual sea el conjunto X . Puede intentar denir recursivamente una funcin del conjunto de frmulas Form sobre un conjunto de 2 equipos de ftbol o sobre los 3 colores de un semforo.

2.1. Sintaxis

69

(x(R(x, c) P( f (y)))) (R(x, c) P( f (y)))


     ?? ?? ?? 1 

(x((R(x, y)) (yP(y)))) ((R(x, y)) (yP(y)))


     ?? ?? ?? 1 

    

R(x, c)

?? ?? ?? ?1

P( f (y)) c

?? ?? ?? 1

f (y) y


    

R(x, y)

?? ?? ?? ?1

(yP(y))

?? ?? ?? 1

P(y) y


(a)

(b)

Figura 2.2: Dos frmulas de Primer Orden: subfrmulas Ejemplo 2.13 La funcin numsub f : Form N calcula el nmero de subfrmulas de una dada: , atmica 1 1 + numsub f () , = () | (x) | () numsub f () = 1 + numsub f () + numsub f () , = ( )

2.1.4

Eliminacin de parntesis

La sintaxis descrita, con todo el rigor necesario, permite: 1. evitar un lenguaje ambiguo, donde una frmula se pueda descomponer en ms de una forma distinta 2. comprobar la correcta denicin de conceptos 3. describir procedimientos para el clculo efectivo de estas deniciones (subfrmulas, variables libres, etc.) y de otras, relativas a la interpretacin de las frmulas. Todo esto es an ms crtico si se pretenden disear sistemas automticos que utilicen las lgicas descritas. Como contrapartida, el exceso de parntesis diculta la comprensin de un lector, de un agente lgico humano. Los convenios de precedencia, como los jados para la lgica proposicional, permiten eliminar parntesis sin caer en la ambigedad: en caso de duda, el convenio es todo lo que se necesita para deshacerla. 1. Se prescindir de los parntesis externos de la frmula. Tambin de los que rodean a una expresin cuanticada (xP(x)) y a una frmula negada (P(x)). Asimismo se prescinde de los parntesis que delimitan los trminos de una relacin R(x, y, z). Se podra prescindir de los que delimitan los trminos de una funcin g(x, y), pero preferimos conservarlos. 2. En caso de duda, se aplicarn primero los cuanticadores y las negaciones, despus las conjunciones y disyunciones, y luego los condicionales y bicondicionales. No se establece precedencia entre conjunciones y disyunciones o entre condicionales y bicondicionales.

70

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN

3. Gracias a la propiedad asociativa de la conjuncin, en una expresin ambigua 1 2 3 no importar (a efectos semnticos) si se ha evaluado como (1 2 ) 3 o como 1 (2 3 ). Luego, en una conjuncin de n frmulas se eliminarn los parntesis. Lo mismo ocurre para la disyuncin. Ejemplo 2.14 Con este convenio, una expresin como xPx Qx es una abreviatura de la frmula ((xP(x)) Q(x)) y no de (x(P(x) Q(x))) Px Qy es una abreviatura de la frmula ((P(x)) Q(y)) y no de ((Px Q(y))) xPx Qx Rxyz Sxy es una abreviatura de la frmula (((((xP(x)) Q(x)) R(x, y, z)) S(x, y)))

2.1.5

Variables libres

No es difcil denir una funcin que produzca todas las variables de una frmula dada. Para ello basta denir el conjunto de las variables de una frmula en funcin de los conjuntos de variables de sus frmulas componentes. Al llegar a las frmulas atmicas, sus variables son las que hayan aparecido en sus trminos. Ejemplo 2.15 La funcin vart : Term P (Var) calcula el conjunto de variables que aparecen en un trmino: / ,t = c 0 {x} ,t = x vart (t ) = vart (t1 ) . . . vart (tn ) , t = f (t1 , . . . , tn ) La funcin var : Form P (Var) calcula el conjunto de variables que aparecen en una frmula: vart (t1 ) vart (t2 ) = (t1 t2 ) vart (t1 ) . . . vart (tn ) = R(t1 , . . . , tn ) var() = var () = () | (x) | (x) var() var() = ( ) mbito de un cuanticador Si una frmula es de la forma (x) o (x) se dice que es el mbito de ese cuanticador. En la gura (g. 2.3a), toda la frmula condicional que ocurre como subrbol de x determina el mbito de este cuanticador. En la gura (g. 2.3b) hay dos cuanticadores: el mbito de y es la frmula atmica Py, y est incluido en el mbito de x. Los mbitos de los cuanticadores (sus respectivos subrboles) no se solapan: se anidan, como en el ejemplo de la gura (g. 2.3b) o son disjuntos, como en ((xPx) (yQy)). Apariciones libres y ligadas Todas las apariciones de una variable x, en el mbito de un cuanticador para esa variable, (x) o (x), se denominan ligadas. As, en una frmula sin cuanticadores ninguna variable ser ligada. Y todo cuanticador liga, a lo sumo, las apariciones de una variable en su mbito. En la gura (g. 2.3b) hay 5 frmulas distintas. Vemos cul es el comportamiento de las variables en esas frmulas: en las frmulas atmicas R(x, y) y P(y) ninguna aparicin de variable es ligada

2.1. Sintaxis

71

en la frmula (yPy) la aparicin de y es ligada en la frmula disyuntiva (R(x, y) (yPy)) slo es ligada la ltima aparicin de la variable y en la frmula (x(R(x, y) (yPy))) todas las apariciones son ligadas salvo la de la primera y Observe que a cada (sub)frmula le corresponde un nodo del rbol sintctico. Para determinar si una variable est ligada en esa (sub)frmula basta ascender desde el nodo de esa variable hasta el nodo de esa (sub)frmula: si se encuentra en esa rama un cuanticador aplicable a esa variable, entonces est ligada en esa (sub)frmula.

x
 ? ??  ??   ??     1 R? P? ??  ??? ??  ??  ??  ?  1  1

x ?


f y


     R?  ??? ??   ?1 

?? ?? ?? 1

y ?

?? ?? ?? 1

P y


(a)

(b)

Figura 2.3: mbitos y variables libres Si la aparicin de una variable no es ligada, se la denomina libre. Una aparicin es ligada o libre; pero, como se observa en la frmula raz de 2.3, una variable puede tener apariciones libres y ligadas en una misma frmula: (x(R(x, y) (yPy))) Una variable se denomina libre en una frmula si todas sus apariciones en esa frmula son libres. En la frmula precedente ni x ni y son variables libres. Denicin 2.16 (Variables libre) El conjunto de variables libres de una frmula se dene como la siguiente funcin, libres : Form P (Var), de frmulas en conjuntos de variables: var(t1 ) var(t2 ) = (t1 t2 ) var ( t ) . . . var ( t ) = R(t1 , . . . , tn ) 1 n libres() = () libres() = libres ( ) libres ( ) = ( ) libres() {x} = (x) | (x) Denicin 2.17 (Sentencia) Una frmula sin variables libres se denomina sentencia. En una sentencia toda variable est en el mbito de un cuanticador para esa variable.

72

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN

2.1.6

Sustituciones

Una frmula de primer orden tiene siempre estructura de rbol. El desarrollo de este rbol, desde la frmula inicial, llega necesariamente a las subfrmulas elementales: las subfrmulas atmicas. Un ejemplo de frmula atmica es Q(x, a) Q(x, g(a)); en general: un predicado n-ario aplicado a n trminos. Cada uno de estos trminos (de estos sujetos del predicado) admite asimismo un desarrollo en rbol. Un trmino puede ser simplemente una variable (y), o una constante (b) o una funcin k-aria aplicada a k trminos: f (a, x, g(b, x)). Observe que uno de los tres trminos sobre los que se aplica la funcin f es, a su vez, otra funcin binaria g aplicada sobre dos trminos. La operacin sintctica que se propone en esta seccin se aplicar slo sobre trminos. Ms especcamente, sustituir trminos que sean variables por otros trminos. El lector ya ha utilizado sustituciones y reemplazos de frmulas, no de trminos. Por ejemplo, cuando reemplaza un condicional por la frmula equivalente antecedente consecuente. En cada caso, este proceso de sustitucin deba ajustarse a unas normas, a unas restricciones. Como contrapartida, se garantizaba que el resultado obtenido segua manteniendo cierta propiedad determinada, si sta exista en la frmula inicial. La sustitucin de variables por trminos tambin se ajustar a ciertas restricciones: las que se necesiten para que sea til. En particular, la utilidad bsica consistir en descubrir, por manipulacin sintctica, si un mismo predicado (aplicado a trminos distintos) se est reriendo, implcitamente, a los mismos elementos del universo. Sustituciones de variables Denicin 2.18 (Sustituciones) Una sustitucin v es una funcin v : Var Term, del conjunto de variables en el conjunto de trminos. Observe que esta denicin depende del lenguaje L(C , F , R ) empleado. Si no existen constantes ni funciones en el lenguaje, los nicos trminos posibles son los formados por una variable. En este caso, se trata de sustituir una variable por otra. Ejemplo 2.19 Considere un lenguaje L(C , F , R ) tal que el conjunto de constantes del lenguaje es C = {a, b} y el conjunto de funciones es F = {g} (donde g es binaria). Una sustitucin v ja, para cada variable, qu trmino de este lenguaje le corresponde. Por ejemplo: . . . v (v) = a, v (w) = a, v (x) = y, v (y) = g(x, z), v (z) = g(g(b, y), g(a, g(z, w))), . . .

Los puntos suspensivos anteriores responden al hecho de que en todo lenguaje de primer orden (salvo que se indique lo contrario) el nmero de variables es innito. La sustitucin v asigna a cada una de ellas un trmino. Ejemplo 2.20 La sustitucin del ejemplo anterior no estaba bien denida: no se especicaba la imagen de cada variable (salvo de unas pocas). La forma ms sencilla de jar la imagen de las restantes es precisar que no se modican. Es decir, que v (u) = u, que cada una de estas variables se sustituye por s misma.

2.1. Sintaxis

73

En este caso, basta enumerar las variables que s se modican. Una sustitucin como la del ejemplo anterior se denotar como: v = [v/a, w/a, x/y, y/g(x, z), z/g(g(b, y), g(a, g(z, w)))] entendiendo que, para el resto de variables, v (u) = u. Para este ejemplo, tan slo 5 variables se sustituyen por un trmino distinto de s mismas. Cuando el nmero de estas variables sea nito se dir que la sustitucin tiene un soporte nito. Sustituciones en trminos Dado un trmino como f (x, a) y una sustitucin v tal que v (x) = b, el resultado de aplicar tal sustitucin es f (b, a). Es decir, dado un trmino de entrada, una sustitucin determina un nico trmino de salida. Se puede ampliar cada funcin v (de variables en trminos) a otra funcin t (de trminos en trminos). Denicin 2.21 (Sustituciones: extensin a trminos) Sea v : Var Term una sustitucin, se dene entonces recursivamente una funcin t : Term Term tal que: xt = v (x), para cada variable x del lenguaje ct = c, para cada constante c del lenguaje [ f (t1 , . . . , tn )]t = f (t1 t , . . . , tn t ) para cada funcin n-aria f del lenguaje.
Notacin Escribiremos (trmino) o, ms adelante, (frmula) , para designar la imagen de la sustitucin, en lugar de (trmino) (frmula) . En particular, escribiremos x para referirnos al trmino imagen de la variable x. Desafortunadamente, cada texto utiliza una notacin particular para denotar sustituciones. As, en unos se usa (trmino) y en otros (trmino) . Adems, la sustitucin de la variable x por el trmino t se puede encontrar como: [x/t ] [t /x] (x t ) tx , entre otras notaciones.

Ejemplo 2.22 Sea la sustitucin sobre variables v = [x/ f (y, a), y/z]. Entonces, para cada uno de los cuatro siguientes trminos su imagen es: wt = w, donde w es una variable distinta de x e y at = a, donde a es una constante (h(a, x, w))t = h(at , xt , wt ) = h(a, f (xv , a), wv ) = h(a, f (y, a), w) (h(a, f (x, y), w)t = h(at , ( f (x, y))t , wt ) = h(a, f (xv , yv ), wv ) = h(a, f ( f (y, a), z), w) Trate de visualizar, de dos maneras, una sustitucin sobre trminos sobre el rbol de un trmino (an no de una frmula). Primero, de forma recursiva, desde la raz a los nodos hoja. Alternativamente, efectuando la sustitucin sobre las nodos hoja y propagndola hasta el nodo raz. Composicin de sustituciones Los modernos procesadores de texto permiten (casi) simular este proceso de sustitucin. Dado un texto como f (x, b, g(x, c)) se puede requerir la sustitucin en todas las apariciones de la variable x por la cadena g(x, b). El resultado sera f (g(x, b), b, g(g(x, b), c)). Observe que: la sustitucin afecta a todas las apariciones de x en el texto original, no se modican las nuevas apariciones de x (si las hubiera) introducidas por la sustitucin.

74

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN

Una nica sustitucin que afecta varias variables Si el texto inicial hubiera sido f (x, b, g(x, z)) se poda haber requerido simultneamente la sustitucin de las x por g(z, b) y la de las z por a. Se habra obtenido entonces la cadena f (g(z, b), b, g(g(z, b), a)). Esta operacin no se encuentra generalmente en un procesador de texto. Supone aplicar una nica sustitucin t , pero t asigna a cada variable el trmino que debe sustituirla. Y la sustitucin de cada variable se produce simultneamente, sin interrelacin entre ellas. No se sustituyen primero las x y luego, sobre ese resultado, se produce la sustitucin de las z (las originales y las que aparecen tras sustituir x). Compruebe, sobre la cadena ejemplo, que este proceso conduce a otro resultado. Una sustitucin tras otra Si se dispone de dos sustituciones 1 y 2 se pueden componer. Dada una cadena de entrada, se puede aplicar una de ellas (p.ej.,1 ), sustituyendo simultneamente todas las variables de la cadena por el trmino asignado por 1 . Despus, sobre el resultado nal, se producen las sustituciones jadas por 2 . Denicin 2.23 (Composicin de sustituciones) Si 1 y 2 son sustituciones sobre trminos, la composicin = 1 2 es otra composicin sobre trminos denida como: t = t [1 2 ] = (t 1 )[2 ] = ((t 1 )2 ) donde t es un trmino. Es decir, sustituya en t primero (y simultneamente) cada variables por su trmino sustituyente jado en 1 . Y, sobre la cadena resultante, sustituya simltneamente cada variable (aunque hayan aparecido tras la sustitucin anterior) por su trmino en 2 . El resultado es bviamente otro trmino, al que denominaremos t 1 2 . En la denicin se ha denominado a esta nueva sustitucin para resaltar que efectivamente es una nica sustitucin, aunque construida a partir de dos previas. Generalmente, a esta nueva sustitucin se le denomina simplemente 1 2 , nombre que explicita su gnesis. El trmino correspondiente a t por esta nica sustitucin (compuesta a partir de las anteriores) es t t [1 2 ]. Observe que, con nuestra notacin postja para composiciones, en x1 2 es 1 la que se aplica primero (la ms prxima a la cadena original). sta misma composicin, en notacin preja, se escribira como 2 1 x. Ejemplo 2.24 Dadas las sustituciones 1 = [x/ f (z, a), y/w], 2 = [x/b, z/g(w)], aplicando la denicin previa: x[1 2 ] = (x1 )[2 ] = f (z, a)[2 ] = f (z2 , a2 ) = f (g(w), a) y[1 2 ] = (y1 )[2 ] = w[2 ] = w2 = w z[1 2 ] = (z1 )[2 ] = z[2 ] = z2 = g(w) w[1 2 ] = (w1 )[2 ] = w[2 ] = w2 = w h(a, y, x)[1 2 ] = ((h(a, y, x))1 )[2 ] = h(a, w, f (z, a))[2 ] = h(a2 , w2 , ( f (z, a))2 ) = h(a, w, f (g(w), a)) De los resultados previos se sigue que la sustitucin 1 2 es: 1 2 = [x/ f (g(w), a), y/w, z/g(w)] En general:

2.1. Sintaxis

75

1. cualquier variable, como w, que no se sustituya ni en 1 ni en 2 tampoco se ver alterada por 1 2 . Es decir, w1 2 = w 2. todas las variables sustituidas en 1 resultarn sustituidas en 1 2 . Observe cmo se llega tanto a x1 2 = f (g(w), a) como a y1 2 = w 3. todas las variables sustituidas en 2 que no lo fueran en 1 , tambin sern sustituidas en 1 2 . Observe cmo se llega a z1 2 = g(w) Obviamente, una vez que se dispone de la denicin de esta nueva sustitucin = 1 2 = 1 2 = [x/ f (g(w), a), y/w, z/g(w)] se puede aplicar directamente sobre cualquier trmino: h(a, y, x)[1 2 ] = (h(a, y, x)) = h(a, y, x) = h(a, w, f (g(w), a)) Proposicin 2.25 Sean 1 y 2 dos sustituciones con soporte nito, tales que 1 = [x1 /t1 , . . . , xn /tn ] y 2 = [y1 /u1 , . . . , yk /uk ]. Entonces, la sustitucin compuesta 1 2 tiene soporte nito, y viene denida por: 1 = [x1 /(t1 2 ), . . . , xn /(tn 2 ), z1 /(z1 2 ), . . . , zm /(zm 2 )] donde x1 , . . . , xn son todas las variables modicadas por la primera sustitucin y z1 , . . . , zm son slo algunas de las variables y1 , . . . , yk , en particular, aquellas variables nuevas, no incluidas entre las x1 , . . . , xn . En el ejemplo previo, las variables modicadas por la primera sustitucin eran x e y. Y las variables slo modicadas por la segunda se limitaban a z. Observe qu trminos se asignan a cada una. Proposicin 2.26 La composicin de sustituciones es asociativa: (1 2 )3 = 1 (2 3 ) En general, la composicin no es conmutativa. Es decir, habitualmente 1 2 producir una sustitucin distinta a 2 1 (salvo excepciones). Ejemplo 2.27 Sean las sustituciones: 1 = [x/ f (y), y/w, ], 2 = [x/g(w), z/b], 3 = [y/b, w/ f (c), v/w] entonces: 1 2 = [x/ f (y), y/w, z/b] y (1 2 )3 = [x/ f (b), y/ f (c), z/b, w/ f (c), v/w]

76 Sustituciones en frmulas

Captulo 2. LGICA DE PREDICADOS DE PRIMER ORDEN

Cuando se produce la sustitucin de las variables de un trmino el resultado es otro trmino. Esto nos llev a extender el concepto de sustitucin hasta una funcin de trminos en trminos. De igual forma, cuando se sustituyen las variables de una frmula, el resultado es otra frmula. De ah, que la simple sustitucin denida inicialmente pueda ser extendida como funcin de frmulas en frmulas. Ahora bien, una vez que somos capaces de calcular cualquier sustitucin, nos limitaremos a utilizar slo unas pocas. Aquellas que nos garanticen un buen comportamiento. En particular: 1. tan slo sustituiremos las apariciones libres de las variables 2. las apariciones de las variables que aporte cada trmino sustituyente deben resultar libres en la frmula nal Este camino formal tiene una recompensa valiosa: Las sustituciones de variables en frmulas, con las restricciones mencionadas, producen nuevas frmulas que son tan satisfacibles (positiva o negativamente) como las de partida. Este resultado ser fundamental para decidir relaciones de consecuencia via insatisfacibilidad. En concreto, esta es la estrategia que se utiliza en sistemas deductivos tales como los basados en Resolucin o los basados en Tablas Semnticas. Sustituir slo en apariciones libres Las deniciones siguientes tienen por objetivo incluir esta restriccin en la propia denicin de sustitucin en una frmula. Denicin 2.28 Sea t una sustitucin sobre trminos. Se puede entonces extender, recursivamente, a una funcin de frmulas en frmulas: 1. 2. (Q(t1 , . . . , tn )) = Q(t1 t , . . . , tn t ) = , = ,

3. (X ) = (X ) 4. (X Y ) = (X Y ), para toda conectiva binaria 5. (xX ) = x(X x ), (xX ) = x(X x )

Donde x es una sustitucin sobre frmulas igual a salvo el hecho de que no modica la variable x. Ejemplo 2.29 Sea la sustitucin = [x/ f (y), y/b]. Entonces (x(Qx Rxy)) = x((Qx Rxy)x ) = x((Qx)x (Rxy)x ) = x(Qx Rxb) (Qx xRxy) = (Qx) (xRxy) = Q( f (y)) x((Rxy)x ) = Q( f (y)) xRxb (x(Qx yRxy)) = x((Qx yRxy)x ) = x((Qx)x (y(Rxy))x ) = x(Qx y((Rxy)xy )) = x(Qx yRxy)

2.2. Semntica

77

Observe que se ha incorporado, en la propia denicin de sustitucin sobre frmulas, la primera de las restricciones: dada una sustitucin, aplquese slo sobre las apariciones libres de las variables.
Notacin Suponga una frmula . Resaltaremos, cuando interese, que existen apariciones libres de, p.ej., las variables x e y, mediante la notacin (x, y). Se denotar como (x/t1 , y/t2 ) la frmula resultado de aplicar una sustitucin a que sustituye las x libres por t1 y las y libres por t2 . Usualmente, la notacin (x, y) no requiere que estas dos sean las nicas variables con apariciones libres. A veces no es preciso enumerar todas, cuando lo que realmente es signicativo para la demostracin o el desarrollo es que al menos esas dos tengan apariciones libres.

En una frmula del tipo x no existen variables x libres. As, ninguna sustitucin, tal y como se ha denido, modicar las x. Por otro lado, las apariciones de x que estuvieran ligadas por el cuanticador resultan apariciones libres en la subfrmula (si slo se considera sta, sin el cuanticador previo). Ms adelante, dada una frmula como x y una sustitucin, se le pedir que la efecte sobre y observar en los ejemplos que s se modican las x. Observe, en esos casos, que se requiere la sustitucin sobre la frmula y no sobre la frmula x. Ejercicio 2.30 Aplique la sustitucin = [x/ f (y), y/w] sobre las frmulas: Px Qy Px yQy xPx yQy Producir slo apariciones libres La utilidad de esta restriccin (como de la anterior) se entender cuando se explique la semntica de las frmulas de Primer Orden. Denicin 2.31 (Sustitucin libre para una frmula) Una sustitucin se denomina libre para una frmula cuando todas las apariciones de variables introducidas por la sustitucin en esa frmula resultan libres. Ejemplo 2.32 La sustitucin [z/ f (x)] no es libre para la frmula Rz x(Px yRxyz) porque algunas de las apariciones de la variable x que introduce ocurren en el mbito de un cuanticador x.

2.2
2.2.1

Semntica
Introduccin

La interpretacin en Lgica de Proposiciones Para decidir si una frmula proposicional es verdadera se requiere interpretarla. La interpretacin se produce sobre un objeto matemtico: sobre una asignacin, sobre una funcin del conjunto de letras proposicionales en {0, 1}. Basta una asignacin para que, de cualquier frmula, se decida su valor de verdad. Es decir, basta una asignacin para que se compruebe si esa interpretacin de la frmula la satisface. La denicin recursiva de satisfaccin facilita esta decisin, por muy compleja que sea la frmula.

También podría gustarte