Sie sind auf Seite 1von 32

Sistema Deductivo de árboles para lógica de primer orden

Recordemos el procedimiento de construcción de árboles en lógica proposicional:

1º Como origen del árbol colocamos la fórmula ¬A, es decir, la negación de la conclusión.
2º Como sucesor inmediato de A colocamos una de las premisas, digamos B0, como sucesor
inmediato de ésta colocamos otra premisa, B1, y así sucesivamente hasta agotar las premisas.
(Estamos asumiendo aquí que el conjunto de premisas es finito. Más adelante veremos una
forma general de proceder que funciona también si el conjunto de premisas es infinito).
3º A continuación vamos aplicando un serie de reglas que nos indican cómo prolongar las ramas del
árbol. La idea básica es elegir una fórmula del árbol y de acuerdo con lo que establezca la
regla correspondiente al tipo de fórmula de que se trate (eso depende de la forma de esa
fórmula, o sea, de si es una conjunción, una disyunción, etc.) añadir ciertas fórmulas al final
de cada una de las ramas abiertas en las que está la fórmula en cuestión. Eso puede implicar
que la rama se bifurque dividiéndose en dos o no.
4º Una rama esta cerrada cuando contiene a la vez una fórmula y su negación. Mientras eso no
ocurre, la rama está abierta. Como se indica en el punto anterior, las ramas cerradas se
consideran acabadas: ya no se prolongan. Solo hay que prolongar las ramas abiertas, en
tanto en cuanto haya en ellas alguna fórmula a la que todavía no se ha aplicado la regla
correspondiente.
5º Un árbol está terminado cuando ocurre una de las dos siguientes cosas: a) todas las ramas están
cerradas, o b) se han aplicado ya todas las reglas posibles a todas las fórmulas del árbol.
6º A es deducible de Γ cuando al hacer el árbol correspondiente todas las ramas se cierran. No lo es
si el árbol correspondiente, una vez terminado, tiene alguna rama abierta.

En el punto 2º hemos establecido que, tras la negación de la conclusión, colocamos una


detrás de otras todas las premisas. Esto, como hemos observado, sólo es útil si el conjunto de
premisas es finito, pues si no lo fuera nunca acabaríamos de introducir premisas en el árbol y, por
consiguiente, nunca aplicaríamos ninguna regla (con lo que en realidad no haríamos nada). Por eso
conviene proponer otra forma de construir árboles más general, que tendrá particular importancia
más adelante, cuando demostremos la corrección y completitud de este sistema deductivo. La idea
básica es alternar la introducción de premisas en el árbol con la aplicación de reglas: tras ¬A
colocaríamos una premisa, luego aplicaríamos una regla a una de las fórmulas que ya tenemos,
luego añadiríamos otra premisa al final de todas las ramas abiertas, luego aplicaríamos otra regla,
introduciríamos otra premisa, etc. Si esto se hace sistemáticamente, en caso de no cerrarse todas las
ramas, acabaríamos teniendo un árbol infinito en el que, progresivamente y de forma alternativa se
han introducido todas las premisas en todas las ramas y se han aplicado todas las reglas posibles a
todas las fórmulas, con lo que tendríamos un árbol terminado aunque infinito.

En cuanto a las reglas proposicionales para prolongar las ramas, son las siguientes:
Reglas de árboles para la lógica proposicional
A∧B ¬(A∨B) ¬(A→B) A↔B

A ¬A A
B ¬B ¬B A ¬A
B ¬B
Conjunción Negación de Negación de la Bicondicional
la Disyunción Implicación
¬¬A ¬(A∧B) A∨B A→B ¬(A↔B)

A
¬A ¬B A B ¬A B A ¬A
¬B B
Doble Negación de Disyunción Implicación Negación del
negación la Conjunción Bicondicional

Lo que ahora necesitamos para extender este método a la lógica de primer orden es añadir
reglas correspondientes a los nuevos tipos de fórmulas que tenemos, es decir, las fórmulas con
cuantificadores y con identidades Sin embargo, por razones que veremos más adelante al hablar de
la completitud, nos conviene considerar por separado la lógica de primer orden sin identidad y con
ella, así que nos vamos a olvidar de momento de la identidad. Por tanto, lo que necesitamos ahora
son cuatro reglas nuevas que nos indiquen qué hay que hacer en una rama del árbol cuando
aparecen fórmulas de cada uno de los cuatro nuevos tipos con los que nos podemos encontrar, esto
es, de los tipos ∀xA, ¬∀xA, ∃xA, ¬∃xA. Para comprender el aspecto que deben tener estas reglas
conviene recordar la idea intuitiva que subyace al método en general, que es la búsqueda de formas
de hacer verdaderas (satisfacer, en el caso de la lógica de primer orden) a la vez las fórmulas de la
rama. Cada regla refleja qué hay que hacer para satisfacer una fórmula en función de la satisfacción
de sus subfórmulas. Así, para satisfacer una fórmula del tipo A∧B hay que satisfacer a la vez A y B,
mientras que para satisfacer A∨B hay que satisfacer o bien A o bien B, y de ahí la bifurcación de la
rama. Pues bien, ahora tenemos que preguntarnos ¿qué hace falta para satisfacer una fórmula del
tipo ∀xA? Evidentemente, la respuesta es “que todos los valores posibles de x satisfagan A”, pero
eso no puede tener una correspondencia exacta en el árbol, porque el árbol consiste en fórmulas y
nada más. Lo más aproximado a decir que todos los objetos satisfacen A estaría expresado por todas
las fórmulas del tipo A[t/x], así que podríamos pensar en añadir al árbol todas las fórmulas de ese
tipo, para todos los términos t. Pero eso plantea un inconveniente: las fórmulas de ese tipo son
infinitas, de forma que hay que pensarlo mejor. En realidad, las cosas son más fáciles: Puesto que,
en el fondo, lo que se busca al construir el árbol es ir encontrando contradicciones que permitan ir
cerrando ramas, podemos pensar que si una fórmula del tipo A[t/x] puede sernos útil será porque
lleve, antes o después, a alguna contradicción con otra fórmula de la rama, así que podemos pensar
que lo útil es utilizar los términos t que aparezcan (libres, en el caso de ser variables; para no ser
reiterativos, sobreentendereemos en lo sucesivo esta apostilla) en alguna otra fórmula de la rama.
Efectivamente, eso resulta ser suficiente: basta con asegurarse de que para todo término t que
aparezca en la rama antes o después, se añade la fórmula A[t/x]. Pero hay que tener cuidado con ese
“antes o después”: efectivamente, a lo largo de la construcción del árbol pueden ir apareciendo
términos nuevos, y para cada uno de ellos hay que añadir la correspondiente fórmula A[t/x]. Por
tanto, la estrategia es la siguiente: cuando nos encontramos con una fórmula de la forma ∀xA
añadimos a la rama todas las fórmulas del tipo A[t/x] para todos los términos t que estaban
previamente en la rama y cada vez que aparezca una constante nueva en la rama añadimos la
fórmula correspondiente. Observemos que eso significa que, a diferencia de lo que ocurría hasta
ahora, que una vez que se había aplicado a una fórmula del árbol la regla correspondiente nos
podíamos olvidar de esa fórmula, de las fórmulas universales no podemos olvidarnos nunca: una
vez que aparecen hay que tenerlas presentes una y otra vez hasta que se terminen todas las ramas en
que aparecen.

En la práctica, una manera de recordar esta necesidad de volver a reconsiderar las fórmulas
universales una y otra vez consiste en reescribirlas al final de la rama cada vez que se usan
(estrictamente hablando, esta repetición es superflua, aunque práctica). Según eso, la regla
correspondiente queda así:

Cuantificador Universal

∀xA

A[t/x] (1)

∀xA (2)

(1) Para todos los términos t que aparecen libres


en la rama
(2) la repetición es superflua; sólo tiene un valor
mnemotécnico.

lo que significa que, ante una fórmula del tipo ∀xA debemos añadir al final de cada una de las
ramas en las que está esa fórmula todas las fórmulas del tipo A[t/x], donde t es un término que
estaba ya en la rama y, a continuación, repetir la fórmula ∀xA, con vistas a añadir más adelante las
fórmulas A[t/x] correspondientes a los nuevos términos que puedan ir apareciendo en la rama (hay
que precisar que si en la rama no aparece ningún término libre, debemos añadir al menos una
fórmula del tipo A[t/x], en cuyo caso da igual cuál quién sea t). Como veremos, esta regla así
formulada es suficiente.

Pensemos ahora en las fórmulas del tipo ¬∀xA. En este caso, para que esta fórmula sea
satisfecha es necesario que algún objeto del dominio no satisfaga A, o sea que algún objeto del
dominio satisfaga ¬A. Eso corresponde a la satisfacción de alguna fórmula del tipo ¬A[t/x], y por
tanto es una fórmula de este tipo la que debe aparecer en la rama. La cuestión ahora es que, para que
se satisfaga ¬∀xA debe haber algún objeto que satisfaga ¬A[t/x], pero no sabemos quién y, en
particular, no podemos afirmar que sea ningún objeto conocido, puesto que podría ser cualquiera.
“Conocido” en términos de una deducción, significa simplemente que aparece en alguna fórmula de
la deducción, así que la cuestión es que no podemos añadir una fórmula del tipo ¬A[t/x] donde t sea
un término que ya aparece en la rama o en alguna premisa (incluso si esta premisa todavía no está
en el árbol): debe ser un término nuevo. Así que la regla correspondiente queda así:

Negación del Cuantificador Universal

¬∀xA

¬A[t/x] (3)

(3) t es un término que no aparece libre ni en las


premisas ni en la rama
Por lo que se refiere al cuantificador existencial, necesitaremos también dos reglas que,
como es de esperar, serán similares a las del universal, teniendo en cuenta la interdefinición entre
ambos cuantificadores. Necesitaremos reglas que nos digan qué hacer con fórmulas del tipo ∃xA y
¬∃xA. Podríamos tratar de razonar como hemos hecho con el cuantificador existencial, pero es más
fácil reducir estas fórmulas a sus equivalentes en términos de cuantificador universal. Así, una
fórmula del tipo ∃xA equivale a ¬∀x¬A, mientras que ¬∃xA equivale a ∀x¬A, lo que sugiere las
siguientes reglas para ∃:

Cuantificador Existencial Negación del Cuantificador Existencial

¬∃xA
∃xA
¬A[t/x] (1)
A[t/x] (3)
¬∀xA (2)

(3) t es un término que no aparece libre ni en las (1) Para todos los términos t que aparecen libres
premisas ni en la rama en la rama
(2) la repetición es superflua; sólo tiene un valor
mnemotécnico.

(la misma precisión que en el caso de las fórmulas del tipo ∀xA vale aquí: si en la rama no aparece
ningún término, debemos añadir al menos una fórmula del tipo ¬A[t/x], da igual cuál sea el término
elegido).

Con esto tenemos ya las cuatro reglas correspondientes a los cuantificadores. Junto con las
que ya conocemos relativas a los operadores proposicionales, nos dan un sistema deductivo correcto
y completo (como demostraremos un poco más adelante) para la lógica de primer orden sin
identidad.

Vamos a ver algún ejemplo del funcionamiento de estas reglas. Sabemos, por ejemplo,
∀xPx⊨∃xPx pero que ∃xPx⊭∀xPx. Coherentemente con eso, podemos ver que ∀xPx⊢∃xPx pero
∃xPx⊬∀xPx. Veamos por qué. Si queremos deducir ∃xPx de ∀xPx haremos el siguiente árbol:
(1) ¬∃xPx (Negación de la conclusión)

(2) ∀xPx (Premisa)

(3) ¬Pc (aplicación de la regla para ¬∃xA)

(4) ¬∃xPx (repetición de (1))

(5) Pc (aplicación de la regla para ∀xA)

(6) ∀xPx (repetición de (2))

Observemos que al aplicar la regla correspondiente a la fórmula ¬∃xPx introducimos la constante c


porque, al no haber ninguna hasta el momento, debemos poner en la rama una fórmula del tipo ¬Pc,
con una constante cualquiera. Después aplicamos la regla correspondiente a la fórmula ∀xPx e
inmediatamente se cierra la rama, puesto que usamos la misma constante que ya teníamos. Sin
embargo, si intentásemos hacer la deducción inversa, las restricciones puestas al uso de las
constantes impiden que se cierre:

(1) ¬∀xPx (Negación de la conclusión)

(2) ∃xPx (Premisa)

(3) ¬Pc (aplicación de la regla para ¬∀xA)

(4) Pd (aplicación de la regla para ∃xA)

Las reglas nos obligan en este caso a usar dos constantes diferentes, lo que impide el cierre de la
rama.

Ahora debemos observar un fenómeno interesante: ¿Qué pasaría si en una rama de un árbol
encontrásemos una fórmula del tipo ∀x∃yRxy? En el árbol correspondiente ocurriría lo siguiente:
∀x∃yRxy (1)

∃yRay (2)

∀x∃yRxy (3)

Rab (4)

∃yRby (5)

∀x∃yRxy (6)

Rbc (7)

∃yRcy (8)

∀x∃yRxy (9)

Rcd (10)

(Etc.)

Si observamos detenidamente este árbol (inconcluso) nos percataremos en seguida de que la


aplicación de las reglas no acabaría nunca en él. (2) sale de 1 sustituyendo x por a, mientras (3) es la
repetición de (1) para, de acuerdo con la regla, volver a reemplazar x por las nuevas constantes que
vayan apareciendo. (4) sale de (2) sustituyendo y por una constante nueva, b. Pero la aparición de b
nos obliga a aplicar la regla a la fórmula (1) -o su repetición (3), que como sabemos es un mero
recordatorio-, lo que da lugar a (5) y la nueva repetición (6). (5), a su vez, exige otra constante
nueva (7), que a su vez nos lleva a una nueva instanciación de la fórmula original (8), lo que nos
llevará a otra constante nueva y así indefinidamente. De esta manera, la aplicación de reglas puede
ser infinita incluso aunque partamos de una única fórmula. Esto constituye una diferencia
importante con lo que ocurría en la lógica proposicional, donde, salvo en caso de que partiéramos
de un conjunto infinito de premisas, los árboles siempre se acababan, tanto si se cerraban todas sus
ramas como si no. Ahora ya no es así: un árbol en el que no todas las ramas se cierren puede ser
infinito, incluso si parte de un conjunto finito de premisas. Esto tiene que ver con el hecho de que la
lógica de primer orden es indecidible. Se dice que una lógica es decidible cuando existe un método
que sirve siempre para establecer, dada cualquier fórmula (de esa lógica) si es válida o no. En la
lógica proposicional, el método de árboles es un método de ese tipo (esto es, un método de
decisión): basta construir un árbol a partir de la negación de la fórmula en cuestión; si se cierran
todas las ramas, la fórmula era válida y, si no, no lo era. El método funciona porque el árbol, en
lógica proposicional, siempre se termina, tanto si se cierran todas las ramas como si no, así que
tenemos la seguridad de que en algún momento (al terminar de construir el árbol) sabremos la
respuesta acerca de la fórmula que nos interesa. Lo que acabamos de ver respecto a los árboles en
lógica de primer orden indica que no sirven como método de decisión, pues en algunos casos no se
acaban nunca, con lo que no siempre nos dan una respuesta. Esto no muestra que la lógica de primer
orden sea indecidible, sino sólo que los árboles no son un método de decisión para ella. Para
concluir que es indecidible (y ciertamente lo es) hacen falta otro tipo de métodos e ideas de las que
nos ocuparemos en su momento.

Vamos a terminar con algunos árboles sencillos. Sabemos, por ejemplo, que
∀x(Px→Qx)⊨∀xPx→∀xQx, pero no a la inversa. Eso, como era de esperar, se traduce en que
∀x(Px→Qx)⊢∀xPx→∀xQx pero ∀xPx→∀xQx⊬∀x(Px→Qx). Veamos los árboles. Empecemos
por el correspondiente a ∀x(Px→Qx)⊢∀xPx→∀xQx:

¬(∀xPx→∀xQx) (1)

∀x(Px→Qx) (2)

∀xPx (3)

¬∀xQx (4)

¬Qa (5)

Pa (6)

Pa→Qa (7)

¬Pa Qa (8)

(1) y (2) son la negación de la conclusión y la premisa. (3) y (4) salen de (1), por la regla de la
negación de la implicación. (5) sale de (4) por la regla de la negación del cuantificador existencial,
y (6) de (3) por la del cuantificador universal. (7) sale de (2) por la misma regla, y (8) de (7) por la
regla de la implicación. Hemos omitido la repetición de las fórmulas universales por innecesaria
pues, como sabemos, su única utilidad es servir de recordatorio de que hay que aplicar la regla con
todas las constantes que vayan apareciendo.

Conviene observar que hemos aplicado la regla del cuantificador universal negado (a la
fórmula (4)) antes de aplicar la regla del cuantificador universal a las fórmulas (2) y (3). Esto es lo
más conveniente: en general, es mejor aplicar las reglas que exigen introducir constantes nuevas (o
sea, las relativas a fórmulas ¬∀xA y ∃xA) antes que las que usan constantes que ya están en la rama,
porque eso suele abreviar el árbol. Igual que en lógica proposicional, el orden en que se apliquen las
reglas es irrelevante. La costumbre de ir aplicando reglas según el orden en que aparecen las
fórmulas en la rama es útil para no olvidarse de ninguna fórmula, pero ni es necesario ni es la
estrategia más eficaz.

Veamos ahora el árbol que corresponde a ∀xPx→∀xQx⊬∀x(Px→Qx):

¬∀x(Px→Qx) (1)

∀xPx→∀xQx (2)

¬(Pa→Qa) (3)

Pa (4)

¬Qa (5)

¬∀xPx ∀xQx (6)

¬Pb Qa (7)

Como siempre, (1) y (2) son la negación de la conclusión y la premisa. (3) procede de (1) aplicando
la regla correspondiente a la negación del cuantificador universal, que exige una constante nueva.
(4) y (5) proceden de (3) por la regla de la negación de la implicación. (6) procede de la implicación
(2) y en (7), Qa procede de la regla del cuantificador universal aplicada a (6), con la constante que
ya teníamos, con lo que la rama se cierra, mientras que ¬Pb procede de aplicar la regla de la
negación del cuantificador universal, lo que nos obliga a usar una constante nueva, b. La rama
izquierda, aunque está abierta, está terminada pues todas las fórmulas que hay en ella se han usado
ya. Observemos que, al no haber ninguna fórmula universal en esa rama, no hay que usar la recién
aparecida constante b en ningún sitio. Queda claro, pues, que ∀x(Px→Qx) no es deducible de
∀xPx→∀xQx.

Veamos otro par de ejemplos. Sabemos que ∃y∀xRxy⊨∀x∃yRxy, pero ∀x∃yRxy⊭∃y∀xRxy.


¿Qué pasa al tratar de hacer los árboles correspondientes? Evidentemente, que el primero se cierra y
el segundo no. Empecemos con el que corresponde a ∃y∀xRxy⊢∀x∃yRxy:
¬∀x∃yRxy (1)

∃y∀xRxy (2)

¬∃yRay (3)

∀xRxb (4)

¬Raa (5)

¬Rab (6)

¬∃yRay (7)

Rab (8)

Rbb (9)

∀xRxb (10)

(1) y (2), una vez más, son la negación de la conclusión y la premisa. (3) sale de (1) por la regla de
la negación del cuantificador universal y (4) de (2) por la del existencial, lo que exige usar una
constante nueva en cada uno de los dos casos. (5) y (6) proceden de (3) por la regla de la negación
del cuantificador existencial, para lo que usamos las dos constantes que ya hay en la rama. En (7)
repetimos (3) (aunque no nos hará falta). Igualmente, (8) y (9) proceden de (4) por la regla del
cuantificador universal, también con las dos constantes que ya tenemos, y 10 es la repetición de (4).
En realidad, la rama estaba ya cerrada al llegar a (8), aunque hemos añadido dos líneas más por
aplicar completamente lo que dice la regla, aunque era ya innecesario. En la práctica, podemos
pensar que las reglas nos autorizan a añadir cosas en las ramas, pero que no nos obligan a añadir
nada. Eso significa que, cuando una rama se cierra, basta con incluir en ella lo mínimo
imprescindible para que aparezca la correspondiente contradicción. Sin embargo, si no se cierra, la
única manera de estar seguro es añadir todo aquello que es posible añadir, es decir, todo lo que las
reglas nos permiten añadir.

Veamos ahora qué ocurre con el árbol que intenta hacer la deducción inversa, es decir, que
intenta deducir ∃y∀xRxy de ∀x∃yRxy:
¬∃y∀xRxy (1)

∀x∃yRxy (2)

¬∀xRxa (3)

∃yRay (4)

¬Rba (5)

Rac (6)

¬∀xRxb (7)

¬∀xRxc (8)

∃yRby (9)

∃yRcy (10)

¬Rdb (11)

¬Rec (12)

Rbf (13)

Rcg (14)

Etc.

(1) y (2) son como siempre. (3) procede de (1) reemplazando y por a, una constante cualquiera
(puesto que no hay ninguna en la rama). (4) procede de (2), usando la constante que ya tenemos. (5)
procede de (3), y (6) de (4) usando constantes nuevas, como corresponde a la regla de la negación
del cuantificador universal y del cuantificador existencial. Pero la aparición de esas dos constantes
nuevas nos obliga a volver a usar las fórmulas (1) y (2), cada una de ellas con las dos constantes
nuevas, lo que da lugar a (7), (8), (9) y (10), que, a su vez, dan lugar respectivamente a las fórmulas
(11), (12), (13) y (14), en cada una de las cuales aparece una nueva constante como consecuencia de
la aplicación de la regla correspondiente. Obviamente, esas constantes deben usarse en una nueva
aplicación de las reglas de la negación del cuantificador existencial y del cuantificador universal
correspondientes a las fórmulas (1) y (2), y así indefinidamente. Está claro que el árbol no se
acabará nunca, pues las reglas nos obligarán a introducir más y más constantes nuevas. Tenemos,
por tanto, un ejemplo sencillo de un árbol que no se acaba nunca. Por cierto, hemos omitido la
repetición de las fórmulas (1) (entre (3) y (4) y (8) y (9)) y (2) (entre (4) y (5) y (10) y (11)) para
abreviar el árbol. Sabemos que repetirlas o no es indiferente, siempre y cuando se recuerde que hay
que aplicar las reglas correspondientes cada vez que aparezca una nueva constante.

Las reglas que hemos presentado constituyen un sistema correcto y completo para la lógica
de primer orden sin identidad. Para lograr un sistema adecuado para la lógica con identidad hay que
añadir dos reglas más, una para las fórmulas de identidad y otra para negaciones de identidades. Son
estas:

Reglas de árboles para la identidad

Identidad Negación de la identidad

t=s t=s ¬t=t


A[t/x] A[s/x]

A[s/x] A[t/x]

La segunda regla es muy simple: indica que toda rama que contenga una fórmula del tipo ¬t=t está
cerrada. La primera, en cambio, tiene una aplicación mucho más compleja: significa que, si en una
rama del árbol aparecen t=s y una fórmula cualquiera en la que aparezca t podemos reemplazar
alguna o algunas de las apariciones de t por apariciones de s, y de la misma manera podemos
reemplazar apariciones de s por apariciones de t. Para que una rama esté completa debemos haber
añadido todas las fórmulas autorizadas por esta regla. Eso significa que, igual que pasaba con las
reglas de ∀xA y ¬∃xA, cualquier aplicación de esta regla no puede considerarse terminada hasta que
no se ha acabado la rama, porque en la medida en que vayan apareciendo nuevas fórmulas que
contengan t o s habrá que aplicar la regla añadiendo todas las que resultan de intercambiar t y s de
todas las maneras posibles (también aquí podríamos usar la repetición de t=s como truco
mnemotécnico). Observemos que la regla, tal como la hemos presentado, nos puede obligar a añadir
una enorme cantidad de fórmulas para que una rama esté terminada: si tenemos a=b y Rab, por
ejemplo, la regla nos obliga a añadir Raa, Rbb y Rba (en realidad, cualquiera de las cuatro fórmulas
nos obliga a añadir las otras tres). La regla se podría formular de otra forma mucho más económica:
si asumimos que los términos están ordenados de alguna manera, la regla se puede limitar a
decirnos que, cuando encontremos t=s y A en la rama (donde A contiene alguno de los dos términos,
o ambos) añadamos A’, que es el resultado de reemplazar en A el que sea posterior de los dos
términos en el orden prefijado por el que es anterior. En nuestro ejemplo, si asumimos que a es
anterior a b, Rab nos obliga a añadir Raa (igual que Rba o Rbb; Raa no nos obliga a añadir nada).
Con todo, la regla habrá que volver a aplicarla si aparecen nuevas fórmulas que contengan uno de
los términos de la identidad.

No nos extenderemos en el uso de estas reglas. Nos limitaremos a señalar que estas reglas
permiten deducir las cuatro propiedades básicas de la identidad: reflexividad, simetría, transitividad
y sustituibilidad de los idénticos. La primera y la última corresponden exactamente a las dos reglas
propuestas (aunque en el orden inverso). Las otras dos se justifican rápidamente, deduciendo
a=b ⊢ b=a y a=b, b=c ⊢a=c:
¬b=a (1) ¬a=c (1)

a=b (2) a=b (2)

¬a=a (3) b=c (3)

a=c (4)

(1) y (4) son las negaciones de las conclusiones, (2), (5) y (6) son las premisas. (3) se obtiene de (2)
y (1) y (7) de (5) y (6) por la primera de las reglas. El primer árbol se cierra por la segunda de las
reglas y el otro por la presencia de dos fórmulas contradictorias, (4) y (7).
Deducción Natural para lógica de primer orden

Comencemos por recordar las ideas básicas de la deducción natural proposicional. El


sistema deductivo llamado deducción natural consiste en un conjunto de reglas que nos permiten ir
obteniendo fórmulas de otras que ya tenemos y, en última instancia, de las premisas. A lo largo del
razonamiento podemos recurrir también al uso de suposiciones: del hecho de que a partir de cierta
suposición se sigan ciertas conclusiones podemos extraer, a su vez, otras conclusiones (siempre de
acuerdo con alguna regla). Cada fórmula de las que aparecen en una deducción natural debe ser de
alguno de los siguientes tipos:

• Una premisa (se indica poniendo un guión a su izquierda o bien escribiendo "Premisa" o
simplemente "P" a su derecha)
• El resultado de aplicar una de las reglas a una o varias de las fórmulas que aparecen
anteriormente en la deducción, excepto aquellas que formen parte de supuestos ya cancelados. A su
derecha se indica cuál es la regla aplicada y los números de las líneas anteriores que justifican la
aplicación de dicha regla.
• Una suposición. Hay que tener presente que toda suposición debe ser cancelada: podemos
razonar con suposiciones siempre y cuando seamos capaces de librarnos de ellas en algún momento,
de tal forma que nuestras conclusiones finales no dependan de las suposiciones efectuadas a lo largo
del razonamiento. La cancelación de una suposición debe hacerse siempre de acuerdo con alguna
regla: veremos que hay reglas que nos permiten afirmar una conclusión cancelando
simultáneamente alguna suposición anterior. Esa será la única manera de cancelar supuestos. Hay
que recordar siempre que una vez cancelada una suposición, las fórmulas que forman el supuesto ya
cancelado (las que aparecen entre la suposición y su cancelación) no pueden ya ser utilizadas para
justificar la aplicación posterior de ninguna regla: es como si no existieran. Los supuestos se indican
en la deducción por medio de una línea vertical rematada por pequeños trazos horizontales que
marcan su inicio y su final de esta manera:
Α

B1

Bn
C

donde el supuesto comienza en B1 y se cancela en B2, y C es la conclusión que se obtiene a partir del
supuesto B1...B2, justificada a partir de este supuesto junto con, quizá, otras fórmulas que aparecen
anteriormente en la deducción.

El conjunto de reglas que utilizamos consiste en lo siguiente: en primer lugar, una regla
(trivial) de repetición, que simplemente nos autoriza a repetir cualquier fórmula anterior (siempre
que no forme parte de un supuesto previo cancelado) y, en segundo lugar, de dos reglas para cada
uno de los operadores lógicos, una de eliminación y otra de introducción. Intuitivamente, la regla de
eliminación de un cierto operador nos dice cómo podemos extraer una conclusión de una fórmula
que contenga ese operador, mientras que la de introducción nos dice cómo podemos deducir una
fórmula que contenga ese operador. Las reglas son las siguientes:
A
Reglas de deducción natural para la lógica proposicional

Regla de Repetición

Rep
A
A

Reglas de Introducción

I∧ I∨1 I∨2 I→ I¬

A A B A A
B A∨B A∨B
A∧B B B∧¬B
A→B ¬A

Reglas de eliminación

E∧1 E∧2 E∨ E→ E¬

A∧B A∧B A∨B A→B ¬¬A


A B A A A
B
C
B

C
C

estas reglas de introducción y eliminación de operadores se les llama a veces reglas primitivas para
distinguirlas de otras muchas reglas, conocidas como reglas derivadas, que pueden añadirse y cuyo
uso es correcto, pero que en realidad son superfluas, puesto que es posible demostrar que todo lo
que se hace con ellas se puede hacer también sin ellas, usando sólo reglas primitivas.

Respecto a las reglas que acabamos de presentar y las deducciones que pueden hacerse con
ellas debemos hacer algunas observaciones:
- En todos los casos, las reglas deben interpretarse del siguiente modo: lo que aparece encima de la
línea horizontal (fórmulas con la estructura requerida, supuestos que empiezan y acaban de
la forma indicada) son los elementos que deben estar presentes en la deducción para poder
aplicar la regla. Lo que aparece debajo de la citada línea es la fórmula que podemos inferir
(y, por tanto, añadir a nuestra deducción) invocando la regla en cuestión., podemos añadir la
fórmula que aparece al final, por debajo. El orden en que aparezcan esas fórmulas o
supuestos requeridos para aplicar la regla es indiferente: basta con que estén ya presentes en
la deducción antes de aplicar la regla.
- Normalmente colocamos todas las premisas al principio de la deducción (en líneas sucesivas),
aunque no es necesario.
- Al final de la deducción todos los supuestos deben haberse cerrado.
- Los supuestos ya cerrados sólo sirven para justificar la aplicación de alguna de las reglas que
requieren la presencia de un supuesto que empieza y acaba de determinada forma. Aparte de
eso, no se pueden usar para nada y, en particular, las fórmulas que forman parte de un
supuesto ya cerrado no pueden invocarse nunca en la aplicación de una regla (por supuesto,
mientras el supuesto no está cerrado, sus fórmulas se pueden usar libremente pero, claro
está, lo que se saque de ellas quedará dentro del propio supuesto). En consecuencia, sólo
tiene sentido abrir y cerrar supuestos con vistas a que formen parte de los requisitos
necesarios para aplicar alguna regla.
- Pueden abrirse tantos supuestos como sean necesarios, incluso unos dentro de otros, pero debe
tenerse presente que, cuando tenemos abiertos simultáneamente varios supuestos, siempre
hay que cerrar primero el último de los que hemos abierto. Gráficamente, son admisibles
figuras de este tipo:
A

D
pero nunca de este otro:
A

Vamos a ver cómo se puede ampliar este sistema deductivo proposicional para convertirlo
en sistema deductivo para la lógica de primer orden. Igual que hicimos con los árboles,
empezaremos por un sistema deductivo para la lógica sin identidad. Si recordamos que lo
característico de este tipo de sistema deductivo es contar con dos reglas para cada operador lógico,
una de introducción y otra de eliminación, está claro que lo que nos falta son las reglas
correspondientes a los cuantificadores. Efectivamente, lo único que necesitamos es añadir una regla
de introducción y otra de eliminación para cada uno de los cuantificadores. Vamos a ver cómo son
estas reglas:

Introducción de ∀ Eliminación de∀

A[t/x] ∀xA
∀xA (1) A[t/x]

(1) El término t no aparece en las premisas, en suposiciones no canceladas ni en ∀xA

Estas reglas recuerdan a nuestros lemas 6 y 7 y, efectivamente, su corrección se basa en dichos


lemas, como queda manifiesto al demostrar la corrección del sistema que estamos exponiendo.
Intuitivamente, la regla de eliminación dice simplemente que, si sabemos que todo cumple A,
podemos afirmar que lo cumple también c, mientras que la de introducción dice que si podemos
establecer que cualquier objeto cumple A, lo deben cumplir todos. El hecho de que cualquier objeto
cumple A está reflejado en el hecho de que hemos podido establecer que lo cumple un c que no
representa ningún objeto en concreto, puesto que en la información que manejamos no se habla de
él para nada. Visto de otra forma, lo que hayamos hecho para llegar a A[c/x] lo podríamos hacer con
cualquier otra constante d para establecer A[d/x], pues no depende para nada de ninguna
información específica sobre c (puesto que no la hay), de forma que igual que hemos deducido que
c cumple A podríamos haber deducido que cualquier otro objeto cumple A, así que es legítimo
concluir que todo lo cumple. En relación con esto, es preciso recalcar que para aplicar la regla de
introducción del cuantificador universal es absolutamente esencial e imprescindible tener en cuenta
las condiciones impuestas a la constante c.

Por lo que se refiere al cuantificador existencial, las reglas que empleamos son las
siguientes:

Introducción de ∃ Eliminación de ∃

A[t/x] ∃xA
∃xA A[t/x]

B
B (2)

(2) El término t no aparece en las premisas, en suposiciones no canceladas, en ∃xA ni en B.


La regla de introducción no encierra ningún misterio: simplemente dice que si sabemos que
algún objeto en concreto cumple A podemos concluir que hay algo que lo cumple. La regla de
eliminación, sin embargo, es notablemente más complicada. Intuitivamente, viene a decir lo
siguiente: si sabemos que hay algo que cumple A , lo que podemos hacer es inventar un nombre, c,
para ese algo que cumple A. Ese nombre, evidentemente, es inventado, así que no debe parecer en
ningún sitio (o, mejor dicho, basta con que no aparezca en las premisas, los supuestos previos no
cancelados ni en la propia A). Lo que estamos haciendo es suponer que el objeto que cumple A se
llama c, y razonar a partir de ahí. Debemos razonar hasta que lleguemos a alguna conclusión B que
no nombre para nada a c (puesto que es un nombre que nos hemos inventado por conveniencia). Esa
conclusión es en realidad la que se puede sacar de ∃xA, puesto que ya no nombra a c y no depende
para nada de la suposición de que el objeto que cumple A se llama c. Por eso, al llegar a una fórmula
B en la que no aparece c podemos cerrar el supuesto y extraer B como conclusión de ∃xA por
eliminación del cuantificador existencial.

La regla de eliminación de ∃ suele ser la más difícil de usar, por lo que conviene recordar los
aspectos fundamentales acerca de su uso: primero, que hay que empezar siempre por elegir una
constante c que cumpla las condiciones requeridas y suponer la fórmula A[c/x]. Segundo, que el
supuesto abierto sólo se puede cerrar una vez que se llega a una fórmula B en la que la constante en
cuestión ya no aparece, y nunca antes. Finalmente, esa fórmula B es la que se escribe después del
supuesto como conclusión de la eliminación de ∃.

Veamos algún ejemplo sencillo de deducción que nos sirva para ilustrar estas reglas:

∀xPx ⊢ ∃xPx

- 1 ∀xPx
2 Pa E∀1
3 ∃xPx I∃2

Tenemos aquí un ejemplo muy simple de aplicación de las reglas de eliminación de ∀ e


introducción de ∃. Ambas reglas son sencillas y no requieren particular cuidado.

∀x(Px→Qx), ∀xPx ⊢ ∀xQx


- 1 ∀x(Px→Qx)
- 2 ∀xPx
3 Pa→Qa E∀1
4 Pa E∀2
5 Qa E→3,4
6 ∀xQx I∀5

En este caso se aplica dos veces la eliminación de ∀ y una vez la introducción. Está última es la que
requiere más cuidado, porque hay que asegurarse de que se cumplen las condiciones impuestas a la
constante sobre la que se generaliza, en este caso a.
∃x(Px∧Qx) ⊢ ∃xPx∧∃xQx

- 1 ∃x(Px∧Qx)
2 Pa∧Qa
3 Pa E∧2
4 ∃xPx I∃3
5 Qa E∧2
6 ∃xQx I∃5
7 ∃xPx∧∃xQx I∧4,6
8 ∃xPx∧∃xQx E∃1,2-7

Aquí aparece ilustrado el uso de la eliminación de ∃. Puesto que la premisa es existencial,


trataremos de hacer la deducción como aplicación de la regla de eliminación de ∃. Para eso,
empezamos abriendo un supuesto que ejemplifica la afirmación existencial con una constante
nueva, a. No es difícil llegar a ∃xPx∧∃xQx, donde ya no aparece la constante a, de forma que
podemos cerrar el supuesto y concluir esa misma fórmula, que era la que buscábamos.

Es ilustrativo tratar de hacer las dos deducciones inversas a la primera y la tercera de las
presentadas más arriba, es decir, tratar de deducir ∀xPx de ∃xPx y ∃x(Px∧Qx) de ∃xPx∧∃xQx.
Ninguna de las dos se puede llevar a cabo, como era de esperar, pero lo interesante es darse cuenta
de por qué no salen: lo que impide llevarlas a cabo son las condiciones impuestas a la constante
correspondiente en las reglas I∀ y E∃. En realidad, la clave de que estas reglas permitan deducir
todas las consecuencias correctas y nada más estriba precisamente en esas condiciones impuestas
sobre las constantes.

Sabemos que los dos cuantificadores son interdefinibles entre sí, puesto que ∀xA equivale a
¬∃x¬A e, igualmente, ∃xA equivale a ¬∀x¬A. Eso se traduce en que cualquier fórmula del tipo ∀xA
puede deducirse de ¬∃x¬A y viceversa, y cualquier fórmula del tipo ∃xA puede deducirse de ¬∀x¬A
y viceversa. Veamos cómo haciendo las deducciones ∀xPx⊢¬∃x¬Px, ¬∃x¬Px⊢∀xPx,
∃xPx⊢¬∀x¬Px y ¬∀x¬Px⊢∃xPx.

∃xPx⊢¬∀x¬Px ¬∃x¬Px⊢∀xPx

- 1 ∃xPx - 1 ¬∃x¬Px
2 Pa 2 ¬Pa
3 ∀x¬Px 3 ∃x¬Px I∃2
4 ¬Pa E∀3 4 ∃x¬Px∧¬∃x¬Px I∧1,3
5 Pa∧¬Pa I∧2,4 5 ¬¬Pa I¬2-4
6 ¬∀x¬Px I¬3-5 6 Pa E¬5
7 ¬∀x¬Px E∃1,2-6 7 ∀xPx I∀6
∀xPx⊢¬∃x¬Px ¬∀x¬Px⊢∃xPx

- 1∀xPx - 1¬∀x¬Px
2 ∃x¬Px 2 ¬∃xPx
3 ¬Pa 3 Pa
4 ∀xPx 4 ∃xPx I∃3
5 Pa E∀4 5 ∃xPx∧¬∃xPx I∧2,4
6 Pa∧¬Pa I∧3,5 6 ¬Pa I¬3-5
7 ¬∀xPx I¬4-6 7 ∀x¬Px I∀6
8 ¬∀xPx E∃2,3-7 8 ∀x¬Px∧¬∀x¬Px I∧1,7
9∀xPx∧¬∀xPx I∧1,8 9 ¬¬∃xPx I¬2-8
10 ¬∃x¬Px I¬2-9 10 ∃xPx E¬9

Vamos a terminar con un ejemplo de deducción más compleja que las que hemos visto hasta
ahora. Se trata de deducir ∃xPx→∃xQx ⊢ ∃x(Px→Qx). La deducción puede ser como sigue:
∃xPx→∃xQx ⊢ ∃x(Px→Qx)

- 1 ∃xPx→∃xQx
2 ¬∃x(Px→Qx)
3 Pa→Qa
4 ∃x(Px→Qx) I∃3
5 ∃x(Px→Qx)∧∃x(Px→Qx) I∧2,4
6 ¬(Pa→Qa) I¬3-5
7 ¬Pa
8 Pa
9 ¬Qa
10 Pa∧¬Pa I∧7,8
11 ¬¬Qa I¬9-10
12 Qa E¬11
13 Pa→Qa I→8-12
14 (Pa→Qa)∧¬(Pa→Qa) I∧6,13
15 ¬¬Pa I¬7-14
16 Pa E¬15
17 Qa
18 Pa
19 Qa Rep17
20 Pa→Qa I→18-19
21 (Pa→Qa)∧¬(Pa→Qa) I∧6,20
22 ¬Qa I¬17-21
23 ∃xPx I∃16
24 ∃xQx E→1,23
25 Qa
26 ¬(Pb∧¬Pb)
27 Qa∧¬Qa I∧22,25
28 ¬¬(Pb∧¬Pb) I¬26-27
29 Pb∧¬Pb E¬28
30 Pb∧¬Pb E∃24,25-29
31 ¬¬∃x(Px→Qx) I¬2,30
32 ∃x(Px→Qx) E¬31

Vamos a tratar de explicar intuitivamente esta deducción que, como se ve, es mucho menos
simple que las anteriores. Está planteada como una reducción al absurdo, así que empezamos por
suponer la negación de la conclusión, ¬∃x(Px→Qx). Para comprender de dónde sale el resto, hay
que tratar de entender intuitivamente el significado de esta fórmula y por qué contradice a la
premisa ∃xPx→∃xQx. ¬∃x(Px→Qx) dice en realidad que todos los objetos cumplen P pero ninguno
cumple Q (porque, si hubiera alguno que no cumpliera P, ese objeto satisfaría Px→Qx,
cumpliéndose entonces ∃x(Px→Qx), y lo mismo pasaría si algún objeto cumpliese Q). Por tanto,
debemos ser capaces de probar que cualquier objeto cumple P y que ningún objeto cumple Q. En
nuestra deducción, probamos Pa (línea 16) y ¬Qa (línea 22). Observemos que esa a es una
constante cualquiera, y que, aunque no lo hacemos explícitamente, podríamos haber inferido ∀xPx
y ∀x¬Qx, porque esa a es una constante cualquiera que no aparece en premisas ni supuestos previos
no cancelados. De Pa inferimos ∃xPx lo que, a partir de la premisa, nos da ∃xQx, que contradice lo
que ya sabemos, que para cualquier constante a podemos probar ¬Qa. De acuerdo con esa idea
general, la deducción procede de la siguiente manera: en (2) negamos la conclusión, ¬∃x(Px→Qx).
Observemos que esto significa que no puede ser, para ningún a, que se de Pa→Qa, y eso es lo que
aprovechamos en la reducción al absurdo (3)-(5) que nos lleva a concluir ¬(Pa→Qa), de donde, a
su vez, deducimos Pa (de (7) a (15)) y ¬Qa (de (17) a (21)) (intuitivamente, la negación de una
implicación equivale a afirmar el antecedente y negar el consecuente). De Pa inferimos ∃xPx y de
ahí, a partir de la premisa (1), ∃xQx. Pero eso contradice el hecho de que para cualquier constante a
podemos probar (como hemos hecho) ¬Qa, lo que nos da la contradicción que nos permite rechazar
el supuesto (2) y obtener la conclusión deseada. Para obtener esta conclusión hacemos una
eliminación del cuantificador existencial ∃xQx suponiendo Qa. La clave aquí es que la constante a
no aparece en las premisas ni en ningún supuesto previo no cancelado (observemos que todos los
supuesto anteriores en que aparece a –(3), (7), (8), (9), (17) y (18)– están ya cancelados).

Reglas para la identidad

El sistema que acabamos de describir constituye un sistema de deducción natural correcto y


completo para la lógica de primer orden sin identidad. Para lograr un sistema adecuado para la
lógica con identidad basta con añadir otras dos reglas, una de introducción y otra de eliminación
para la identidad:

I= E=
Introducción de la Eliminación de la identidad
identidad

t1=t2 t1=t2
t=t
A[t1/x] A[t2/x]
A[t2/x] A[t1/x]

La primera nos pemite introducir cualquier fórmula de autoidentidad en cualquier punto de una
deducción. La segunda nos permite la intersustitución de idénticos en cualquier fórmula. Vamos a
ver cómo se pueden usar para deducir la simetría y la transitividad de la identidad:

- 1 a=b - 1 a=b
2 a=a I= - 2 b=c
3 b=a E=1,2 3 a=c E=1,2

Observemos que en ambas deducciones cuando aplicamos la regla E= la fórmula A en la que


hacemos la sustitución es también una identidad. Observemos también que en la primera deducción
la fórula a=a, que introducimos por I=, podríamos haberla obtenido también por E=, usando a=b
como identidad que justifica la sutitución por una parte (la t1=t2 de la regla) y como fórmula en la
que reemplazamos uno de los idénticos por otro (la A[t2/x] de la regla).
Corrección y Completitud del método de árboles para lógica
de primer orden

Vamos a demostrar que el método de árboles que hemos estudiado para la lógica de primer
orden sin identidad es un sistema deductivo correcto y completo para la lógica de primer orden. Eso
significará demostrar dos resultados fundamentales:

Teorema de corrección del método de árboles para la lógica de primer orden: dado
cualquier conjunto de fórmulas Γ y cualquier fórmula A, si A es deducible de Γ entonces A es
consecuencia de Γ, es decir, si Γ⊢A entonces Γ⊨A.

Teorema de completitud del método de árboles para la lógica de primer orden: dado
cualquier conjunto de fórmulas Γ y cualquier fórmula A, si A es consecuencia de Γ entonces A es
deducible de Γ, es decir, si Γ⊨A entonces Γ⊢A.

Ambos resultados conjuntamente nos indican que el sistema deductivo que empleamos es
adecuado para la relación de consecuencia de la lógica de primer orden: de cualquier conjunto de
premisas deduce exactamente aquellas fórmulas que son consecuencia de ese conjunto de premisas,
ni más ni menos.

Para empezar, modificaremos un poco nuestra forma de construir árboles con dos
propósitos: primero, que sea aplicable cuando el conjunto de premisas Γ es infinito y, segundo, para
garantizar que vamos aplicando todas las reglas posibles, de manera que si el árbol es infinito (o
sea, no se acaba nunca), todas las reglas que se pueden aplicar en él se aplican antes o después.
Respecto a lo primero, si Γ es un conjunto infinito de premisas en vez de colocar todas las premisas
al principio del árbol tras la negación de la conclusión lo que haremos será irlas introduciendo
progresivamente a lo largo de la construcción: primero las enumeramos (las ordenamos según los
números naturales, cosa siempre posible puesto que el conjunto de fórmulas bien formadas es
enumerable) y después las vamos introduciendo progresiva y ordenadamente en el árbol: cada vez
que aplicamos una regla a alguna de las fórmulas que ya tenemos añadimos una nueva premisa a
todas las ramas abiertas del árbol, la primera premisa que no hemos añadido antes. De esa manera,
si las premisas son infinitas pero el árbol no se cierra nunca, iremos añadiendo poco a poco las
premisas y en el árbol infinito habrán ido apareciendo todas ellas en todas las ramas. Respecto a lo
segundo, iremos usando ordenadamente las fórmulas que aparecen en el árbol: aplicaremos siempre
en cada rama la regla correspondiente a la primera de las fórmulas que aparecen en esa rama que no
hemos usado previamente y, además, al aplicar las reglas correspondientes a las fórmulas de tipo
∀xA y ¬∃x¬A repetiremos sistemáticamente al final la fórmula que hemos utilizado (∀xA o ¬∃x¬A),
de forma que nos aseguremos de que la volveremos a usar una y otra vez en todas las ramas no
cerradas, de forma que se irá instanciando progresivamente con todos los términos que vayan
apareciendo en las ramas correspondientes. Por su parte, al aplicar las reglas correspondientes a
fórmulas del tipo ¬∀xA o ∃xA necesitamos añadir una fórmula del tipo ¬A[t/x] o A[t/x] (según el
caso) donde t es un término que no aparece ni en Γ ni en la rama. Si Γ es un conjunto infinito de
premisas podría ocurrir que todos los términos del lenguaje aparezcan en Γ y por tanto que no
tuviéramos ningún término t tal como se requiere. Para solventar este problema siempre podemos
añadir más constantes al lenguaje, más exactamente, añadir una cantidad enumerable de constantes
nuevas de modo que por muchas veces que tengamos que aplicar las reglas de ¬∀xA y ∃xA nunca
nos falte una constante disponible: cada vez que tengamos que usar una fórmula de uno de estos dos
tipos tomaremos la primera constante nueva c que no hayamos usado aún y añadiremos la
correspondiente fórmula A[c/x] o ¬[Ac/x]. De esa manera, en cada momento de la construcción
habremos usado sólo una cantidad finita de constantes nuevas y nos quedará siempre una cantidad
infinita enumerable de ellas disponibles para nuevas aplicaciones de las reglas. Observemos, por
cierto que si expandimos (es la palabra técnica que se usa) el lenguaje -que era enumerable- con una
cantidad enumerable de constantes, el lenguaje expandido resultante sigue siendo enumerable. En
particular, seguimos teniendo una cantidad enumerable de términos.

Ahora podemos hablar de árboles terminados. Un árbol está terminado cuando o bien todas
sus ramas están cerradas o bien se han introducido en él todas las premisas y se han aplicado todas
las reglas posibles. Debe quedar claro que un árbol terminado puede ser finito o infinito, y que
puede ser infinito tanto si el conjunto de premisas es infinito como si es finito. Lo importante es que
en un árbol terminado no cerrado se ha hecho todo lo que se podía hacer. En principio, para las
mismas premisas y conclusión pueden salirnos muchos árboles diferentes, según en qué orden
usemos las fórmulas. En realidad da igual cuál sea el orden en que se usen: los resultados que
vamos a establecer a continuación no dependen de eso. Así que, de hecho, cuando digamos “dado
un árbol completo para tales fórmulas” podríamos decir igualmente “dado cualquier árbol
completo” o “para todo árbol completo”. Incluso si decimos “el árbol para tales fórmulas” puede
sobreentenderse “un árbol cualquiera” puesto que, en realidad, da igual.

Ahora supongamos que estamos construyendo un árbol, que puede no estar aún terminado.
Supongamos que, en un momento dado, encontramos un modelo y una asignación que satisfacen
todas las fórmulas que aparecen en una cierta rama. Obviamente, eso significaría que la rama en
cuestión no está cerrada, porque una rama cerrada debe contener dos fórmulas contradictorias, y
ningún modelo puede satisfacer a la vez a dos fórmulas que se contradicen. Así que la existencia de
un modelo y una asignación capaces de satisfacer toda una rama (completa o incompleta) de un
árbol son garantía suficiente para asegurar que esa rama no está cerrada. Vamos a emplear esa idea
para demostrar el teorema de corrección. Más exactamente, vamos a demostrar lo siguiente:

Lema A: Dados Γ y A, si existen un modelo M y una asignación σ que satisfacen Γ y ¬A,


entonces al construir el árbol que pretende deducir A de Γ, tras cada uno de los paso que damos,
siempre hay una rama (posiblemente incompleta) en lo que llevamos construido del árbol para la
que podemos encontrar un modelo M’ y una asignación σ’ tales que M’,σ’ que satisfacen todas las
fórmulas de Γ y también todas las fórmulas de esa rama, lo cual significa que la rama en cuestión,
hasta ese momento, no está cerrada. Además, en cada caso, la rama en cuestión es prolongación de
la que teníamos en el paso anterior.

Demostración del lema: La construcción de cualquier árbol se hace paso a paso,


ordenadamente y siguiendo unas reglas que ya conocemos. Para demostrar que la afirmación que
hace el lema se cumple en todos los pasos de la construcción del árbol lo hacemos por inducción:
demostramos que se cumple en el primer paso de la construcción del árbol (Base de la inducción) y
que si se cumple en un paso cualquiera, se cumplirá también en el siguiente (Paso de inducción).
Como sabemos que los operadores proposicionales son todos definibles a partir de ¬ y ∧ y que el
cuantificador existencial es definible a partir del universal y la negación podemos asumir que no
hay más operadores lógicos que ¬, ∧ y ∀, lo cual simplifica un poco las cosas sin suponer ninguna
pérdida.

Base: Basta demostrar que el lema se cumple al comenzar el árbol. Pero el comienzo del
árbol consiste en colocar al principio de todo la fórmula ¬A, que, en ese punto, constituye por sí
sola la única rama construida del árbol. Y sabemos que M,σ satisfacen Γ, ¬A, de forma que,
efectivamente, tenemos un modelo y una asignación que satisfacen todas las fórmulas de una de las
ramas del árbol (hasta ese momento, solo ¬A) y Γ, como afirma el lema.

Paso de inducción: Como hemos señalado tenemos que mostrar que si el lema se cumple en
un cierto momento de la construcción del árbol, se sigue cumpliendo después de dar el siguiente
paso, esto es, que después de cada paso que damos sigue habiendo un modelo y una asignación que
satisfacen todas las fórmulas de una rama de las que tenemos hasta entonces y también las fórmulas
de Γ. Así que supongamos que en cierto punto de la construcción del árbol tenemos una rama R y
un modelo y una asignación M’,σ’ que satisfacen Γ y todas las fórmulas de R. Tenemos que mostrar
que después de dar el siguiente paso seguimos teniendo una rama R* (que es una prolongación de
R) y un modelo M* y una asignación σ* que satisfacen todas las fórmulas de R* y las de Γ. Cada uno
de los pasos que damos en la construcción del árbol consiste en una de las siguientes cosas:

a) Añadir a todas las ramas abiertas una premisa, o sea, una fórmula de Γ.
b) Aplicar la regla de la doble negación, lo que significa que en R hay una fórmula del tipo
¬¬B y añadimos a R la fórmula B.
c) Aplicar la regla de la conjunción: en R aparece B∧C y añadimos a R B y C
d) Aplicar la regla de la negación de la conjunción: en R aparece ¬(B∧C) y dividimos R en
dos ramas, una de las cuales contiene ¬B y la otra ¬C.
e) Aplicar la regla del cuantificador universal: en R aparece ∀xB y añadimos a R todas las
fórmulas del tipo A[t/x] para los términos t que están en R y repetimos ∀xA.
f) Aplicar la regla de la negación del cuantificador universal: en R aparece ¬∀xA y añadimos
una fórmula A[c/x], donde c es una constante nueva que no está en R (tampoco en las
premisas, puesto que es una de las constantes nuevas con las que hemos expandido el
lenguaje original, que es en el que están formuladas las premisas)

Pues bien, lo que tenemos que hacer es mostrar que sea cual sea la operación que hemos hecho para
prolongar el árbol a partir de R, seguirá habiendo una rama, un modelo y una asignación tal y como
hemos dicho más arriba. Comprobaremos que tiene que ser así para cada uno de los seis casos
posibles a)-f). Recordemos que partimos de que tenemos una rama R y un modelo y una asignación
M’,σ’ que satisfacen Γ y todas las fórmulas de R.

Caso a) Si lo que hemos hecho para prolongar R es añadir una premisa B∈Γ, la cosa es obvia:
puesto que M’,σ’ satisfacen R y Γ, satisfacen también R+B y Γ. El mismo modelo que
satisfacía R satisfará también su prolongación R* (en todos los casos excepto en f) nos
pasará igual: el modelo que satisface R satisface también su prolongación R*; en el caso f),
sin embargo, el modelo que satisfaga R* no será el mismo que satisfacía a R).

Caso b) Si hemos aplicado la regla de la doble negación, teníamos en R ¬¬B y hemos añadido B. Si
M’,σ’ satisfacían R y Γ, satisfacían también ¬¬B, que estaba en R, así que también
satisfacen B, que es lo que hemos añadido. Así que ,σ satisfacen Γ y la rama R+B.

Caso c) Si hemos aplicado la regla de la conjunción, teníamos en R B∧C y hemos añadido B y C. Si


M’,σ’ satisfacían R y Γ, satisfacían también B∧C, que estaba en R, así que también
satisfacen B y también C, que es lo que hemos añadido. Así que ,σ satisfacen Γ y la rama
R+B+C.

Caso d) Si hemos aplicado la regla de la negación de la conjunción, teníamos en R ¬(B∧C) y eso ha


dado lugar a dos ramas, R+¬B y R+¬C. Como M’,σ’ satisfacían R y Γ, satisfacían también
¬(B∧C), así que tienen que satisfacer o bien ¬B o bien ¬C, y por tanto al menos una de las
dos ramas, R+B o R+C. En todo caso, sigue habiendo una rama satisfecha por M’,σ’, que es
lo que necesitamos.

Caso e) Si hemos aplicado la regla del cuantificador universal, teníamos en R una fórmula del tipo
∀xB y hemos añadido a R una serie de fórmulas de la forma B[t/x] y, de nuevo, ∀xB. Pero
como M’σ’ satisfacían R, satisfacían también ∀xB, por lo que satisfacen también cualquier
fórmula de la forma B[t/x] (véase nuestro lema 6), así que satisfacen la nueva rama, que es
R+B[t’/x]+B[t”/x]...+∀xB.

Caso f) Por último, si hemos aplicado la regla de la negación del cuantificador universal entonces
teníamos en R una fórmula del tipo ¬∀xB y hemos añadido a R una fórmula ¬B[c/x] donde
c es una fórmula que no aparece en la rama ni en las premisas Γ. Recordemos el corolario 8
que ya demostramos anteriormente. Cambiando las letras (para no confundirlas con las que
estamos usando ahora) dice que dado cualquier conjunto de fórmulas Δ y cualquier fórmula
∀xC, si el conjunto Δ∪{¬∀xC} es satisfacible, entonces también lo es el conjunto
Δ∪{¬C[c/x]}, donde c es una constante que no aparece en Δ ni en C. Aplicado al caso que
ahora nos ocupa, si llamamos Δ al conjunto formado por las fórmulas de Γ y las de R,
sabemos que M’,σ’ satisfacen todas esas fórmulas, o sea, las de Δ, y también satisfacen
¬∀xB (puesto que es una de las fórmulas de R). Así, tenemos que Δ∪{¬∀xB} es
satisfacible, de donde, por el corolario 8, concluimos que también es satisfacible el conjunto
Δ∪{¬B[c/x]}, o sea, hay un modelo M* y una asignación σ* que satisfacen las fórmulas de
R más la que hemos añadido, ¬B[c/x], y las premisas Γ. Ese modelo y esa asignación no
tienen por qué ser los mismos que satisfacían a la rama R (o sea, M’ y σ’), pero en todo caso
satisfacen las premisas y la extensión R* de R, que es lo que necesitamos. ■

Con eso termina la inducción y la demostración de nuestro lema A.

Lema B: Dados Γ y A, si existen un modelo M y una asignación σ que satisfacen Γ y ¬A,


entonces el árbol que pretende deducir A de Γ no se cierra nunca, de forma que en el árbol
terminado hay al menos una rama abierta, y por tanto, A no es deducible de Γ.

Demostración: es fácil, a partir del lema A. Si existen M, σ que satisfacen Γ, ¬A entonces,


por el lema anterior, podemos ir encontrando fragmentos cada vez más largos de una misma rama
cada uno de los cuales es satisfecho por un modelo y una asignación. Si se llega a un elemento de
esa rama que no tiene ningún sucesor, entonces esa rama es finita, y como tenemos un modelo y una
asignación que la satisface completamente, está abierta. Si no, la construcción de la rama sigue y
sigue indefinidamente. Pero, como a cada paso que damos tenemos un modelo que satisface toda la
parte de la rama hasta ese punto, la rama no se cierra en ningún momento, así que es una rama
abierta. En todo caso, el árbol no se cierra nunca y, por consiguiente, A no es deducible de Γ. ■

En realidad, el lema anterior se podría completar demostrando que hay un modelo y una
asignación que satisfacen toda la rama abierta: analizando la demostración del lema 1 vemos que
cada uno de los sucesivos modelos que vamos construyendo para satisfacer los fragmentos de rama
que vamos construyendo se obtiene siempre del anterior modificando la interpretación de una
constante cada vez. Por otro lado, las constantes en cuestión son siempre distintas, porque son las
que van apareciendo en la rama como consecuencia de la aplicación de la regla de la negación de
fórmulas universales, que exige constantes nuevas. Así que podríamos construir un modelo final
M* que fuera igual que el original pero que incorporase todos los cambios de interpretación de
constantes que se han ido produciendo a lo largo del proceso. Semejante modelo satisfaría todas las
fórmulas de la rama.

Como consecuencia del lema B obtenemos el teorema de Corrección del método de árboles
para la lógica de primer orden:

Teorema de Corrección: Dados cualquier conjunto de fórmulas Γ y cualquier fórmula A, si


A es deducible de Γ entonces también es consecuencia de Γ. En símbolos, si Γ⊢A entonces Γ⊨A.

Demostración: Efectivamente, no es posible que A se deduzca de Γ pero no sea consecuencia


de Γ, porque si no fuera consecuencia habría un modelo y una asignación que satisfarían Γ pero no
satisfarían A, es decir, un modelo y una asignación que satisfarían Γ y ¬A, lo que, según el lema B,
significa que A no es deducible de Γ. ■

Vayamos ahora con el teorema de completitud. Para poder establecerlo, vamos a demostrar
un lema previo:

Lema C: Dado cualquier árbol terminado que tiene una rama abierta R siempre es posible
encontrar un modelo y una asignación que satisfacen todas las fórmulas de R. Además, el dominio
de ese modelo es finito o a lo sumo infinito enumerable.

Demostración: Supongamos que R es una rama abierta de un árbol terminado. En primer


lugar vamos a definir un modelo M y una asignación σ y después demostraremos que satisfacen
todas las fórmulas de R.

El dominio del modelo, D, consistirá en el conjunto de todos los términos que aparecen
libres en las fórmulas de R, o sea, D={t: t es un término que aparece (libre) en R}. La interpretación
I se define de la siguiente forma: para cada c que aparece en R estipulamos que I(c)=c (observemos
que, en este caso -¡pero sólo en este caso!-, c además de ser una constante es también un elemento
del dominio). A las constantes que no aparezcan en la rama las asignamos cualquier valor en D
arbitrariamente: nos da igual, puesto que al no aparecer entre las fórmulas que queremos satisfacer
(las de R) su valor es irrelevante para nuestros propósitos).

De forma similar, definimos σ de manera que, para cada variable que aparece en R, σ(x)=x
(igual que antes, en este caso x, además de ser una variable, es un elemento de D). A las variables
que no aparecen (libres) en R les damos cualquier valor arbitrario en D (también es indiferente).

Respecto a la interpretación de los símbolos relacionales, lo que vamos a hacer es


interpretarlos de manera que todas las fórmulas atómicas que aparecen en R sean verdaderas y todas
las que no aparecen sean falsas. Para ello, necesitaremos que si Rnt1...tn aparece en R, entonces
〈Iσ(t1)...Iσ(tn)〉∈I(R), y que si Rnt1...tn no aparece en R, entonces 〈Iσ(t1)...Iσ(tn)〉∉I(R). Como en el
modelo que estamos construyendo se cumple que I(c)=c para toda constante c en la rama y σ(x)=x
para toda x libre en la rama, lo anterior se reduce a que si Rnt1...tn aparece en R, entonces
〈t1...tn〉∈I(R), y que si Rnt1...tn no aparece en R, entonces 〈t1...tn〉∉I(R). Así que fijaremos que para
cada símbolo relacional n-ario Rn, I(Rn)={〈t1...tn〉: Rnt1...tn aparece en R}. De esta forma
conseguiremos que el modelo satisfaga exactamente las fórmulas atómicas que están en R, ni más
ni menos.

Y ahora tenemos que demostrar que M,σ satisfacen todas las fórmulas de R. Eso se
demuestra por inducción matemática sobre la complejidad de las fórmulas.

Base: hay que demostrar que las fórmulas atómicas lo cumplen, es decir, que toda fórmula
atómica que está en R es satisfecha por M,σ. Pero eso ya sabemos que se cumple: lo hemos
observado al definir la función de interpretación I para los símbolos relacionales.

Paso de inducción: Tenemos que demostrar que si el lema lo cumplen todas las fórmulas
hasta un cierto grado de complejidad lógica n, entonces lo cumplen también las que son un poco
más complejas, o sea, de complejidad n+1. Así que hacemos la siguiente hipótesis de inducción:
todas las fórmulas cuya complejidad lógica no es mayor que n que están en la rama R son
satisfechas por M,σ. Y a partir de ahí tenemos que demostrar que cualquier fórmula que sea de
complejidad n+1 que está en la rama es también satisfecha por M,σ. Pues bien, una fórmula de
complejidad n+1 puede ser de varios tipos: una conjunción de otras dos, o una fórmula universal o
una negación de algo, en cuyo caso ese algo negado puede ser una fórmula atómica, o una
conjunción de otras dos, o una fórmula universal, así que hay cinco casos posibles que tendremos
que considerar de uno en uno para ver que en todos los casos, si la fórmula en cuestión está en R es
satisfecha por M,σ.

Caso 1: en la rama aparece una fórmula A∧B de complejidad n+1. En este caso, tanto A
como B deben aparecer en R (por aplicación de la regla de la conjunción al construir el árbol:
recordemos que el árbol está terminado y, por consiguiente, se han aplicado todas las reglas
posibles). Tanto A como B son de complejidad menor que n+1 (que es la complejidad de A∧B), así
que, según la hipótesis de inducción, ambas son satisfechas por M,σ, que es lo que había que
establecer.
Caso 2: en la rama aparece una fórmula ∀xA de complejidad n+1. En este caso, puesto que
el árbol está terminado, para todos los términos t que aparecen (libres) en R la fórmula A[t/x]
aparece también en la rama, como consecuencia de la aplicación de la regla del cuantificador
universal, y puesto que las fórmulas A[t/x] son de complejidad n (puesto que ∀xA es de complejidad
n+1) por hipótesis de inducción concluimos que M,σ satisfacen todas esas fórmulas de tipo A[t/x].
Si recordamos que en el modelo M que ahora nos ocupa los elementos de D son precisamente los
términos t que aparecen (libres) en R podemos ver que la satisfacción de todas esas fórmulas A[t/x]
equivale a que todos los elementos de D satisfacen A y, por tanto, a que M,σ satisfacen ∀xA.

Más formalmente, podemos argumentar así: Partimos de que M,σ⊨A[t/x] para todo t libre en R.
Para cada uno de esos t consideremos la asignación σ[t/x]: primero, observemos que t puede ser o
bien la propia x o bien cualquier otro término. En el caso en que t es la propia x, σ[t/x] es la propia σ
(puesto que σ(x)=x=t), así que podemos escribir M,σ[t/x]⊨A[t/x]. En cualquier otro caso, x no está
libre en A[t/x], de modo que a la hora de evaluar esta fórmula, por el lema 2, nos da igual usar σ que
σ[t/x], por lo cual igualmente a partir de M,σ⊨A[t/x] concluimos M,σ[t/x]⊨A[t/x]. Así, en cualquier
caso, para cualquier t en la rama M,σ[t/x]⊨A[t/x]. Ahora bien: para cualquiera de estos t, Iσ[t/x]
(t)=Iσ[t/x](x), así que por el lema 5 tenemos que M,σ[t/x]⊨A[t/x] equivale a M,σ[t/x]⊨A, de donde
para todo t libre en la rama, es decir, para todo elemento t de D, M,σ[t/x]⊨A. Por definición, eso
significa que M,σ⊨∀xA.

Caso 3: en la rama aparece una fórmula ¬Rt1...tn. Este caso es simple: si ¬Rt1...tn está en R,
entonces Rt1...tn no está, puesto que sabemos que R es una rama abierta. Pero como M,σ sólo
satisfacen las fórmulas atómicas que están en R resulta que M,σ⊭Rt1...tn, o sea que M,σ⊨¬Rt1...tn,
que era lo que buscábamos.
Caso 4: en la rama aparece una fórmula ¬(A∧B) de complejidad n+1. En tal caso, por
aplicación de la regla de la negación de la conjunción, o bien ¬A está en R o bien está ¬B. Ambas
son de complejidad menor que n+1, así que les podemos aplicar la hipótesis de inducción: si ¬A está
en R, por hipótesis de inducción M,σ⊨¬A, de donde se sigue fácilmente que M,σ⊨¬(A∧B). Por la
misma razón, si es ¬B la que aparece n R tenemos que M,σ⊨¬B y de ahí que M,σ⊨¬(A∧B).
Caso 5: en la rama aparece una fórmula ¬∀xA de complejidad n+1. En tal caso, también
debe aparecer en la rama alguna fórmula de la forma ¬A[c/x], y como esta fórmula es de
complejidad menor que n+1, por hipótesis de inducción tenemos que M,σ⊨¬A[c/x].
Evidentemente, de aquí se sigue que M,σ no pueden satisfacer ∀xA (es imposible, por el lema 6,
satisfacer a la vez ∀xA y ¬A[c/x]), así que M,σ⊨¬∀xA, que es lo que nos hacía falta establecer.

Con eso termina la inducción: hemos demostrado, por tanto, que el modelo y la asignación
definidos más arriba satisfacen todas las fórmulas de R.

Corolario D: El conjunto formado por todas las fórmulas de una rama abierta de un árbol
completo es siempre satisfacible, y más aún, es satisfacible con un modelo finito o infinito
enumerable (asumiendo que el lenguaje es enumerable).

Demostración: Dada cualquier rama abierta de un árbol terminado, el lema C nos enseña
cómo construir un modelo y una asignación que satisfacen todas sus fórmulas, así que el conjunto
formado por las fórmulas de la rama es satisfacible. Por otro lado, es evidente que si el lenguaje es
enumerable, la cantidad de términos que aparecen en la rama debe ser o bien finita o bien infinita
pero enumerable, y por tanto el dominio del modelo debe ser finito o enumerable, puesto que
consiste en el conjunto de términos que aparecen en la rama. ■

Teorema de Completitud: dado cualquier conjunto de fórmulas Γ y cualquier fórmula A, si


A es consecuencia de Γ entonces A es deducible de Γ, es decir, si Γ⊨A entonces Γ⊢A.

Demostración: Si Γ⊨A entonces tiene que darse también que Γ⊢A porque si no fuera así, es
decir, si Γ⊬A resultaría que el árbol terminado que trata de deducir A de Γ tendría al menos una
rama abierta R (puesto que decir que A no es deducible de Γ significa exactamente eso), y por el
lema C podríamos encontrar M,σ que satisfacen todas las fórmulas de R. Pero esa R tendría que
contener a ¬A (que es el origen del árbol) y a todas las fórmulas de Γ (que se van introduciendo
progresivamente en todas las ramas abiertas del árbol), así que tendríamos un modelo y una
asignación capaces de satisfacer a todas las fórmulas de Γ pero no a A, lo cual es imposible si Γ⊨A.

Los teoremas de corrección y completitud, tomados conjuntamente, nos dicen que las
fórmulas que se pueden deducir de cualquier conjunto de fórmulas Γ son exactamente aquellas que
son consecuencia de Γ, de forma que el método de árboles se ajusta exactamente a la relación de
consecuencia de la lógica de primer orden. En realidad, si miramos el lema B y el corolario D
demostrados anteriormente nos damos cuenta de que cada rama abierta en el árbol (terminado) que
pretende deducir A de Γ se corresponde con un modelo y una asignación que satisfacen Γ pero no A,
esto es, con un contraejemplo a la (supuesta) relación de consecuencia Γ⊨A. Eso indica claramente
cuál es la idea intuitiva que inspira el método de árboles: no es más que un método de búsqueda
sistemática de contraejemplos: si hay una rama abierta habrá un contraejemplo (corolario D), y si
hay un contraejemplo habrá una rama abierta.

En realidad, cuando construimos un árbol para tratar de deducir A de Γ lo que hacemos es


introducir en él las fórmulas ¬A, Γ y aplicar las reglas. Si el árbol tiene ramas abiertas, entonces Γ
{¬A} es un conjunto de formulas satisfacible, y si no hay ramas abiertas entonces es que no es
satisfacible. Visto así, lo que hace el método de árboles es comprobar si un cierto conjunto de
fórmulas es o no satisfacible: si queremos saber si un conjunto Δ es satisfacible o no bastaría con
construir un árbol en el que fuésemos introduciendo las fórmulas de Δ y aplicando reglas (diremos
que este es un árbol para Δ): si todas las ramas se cierran el conjunto será insatisfacible, si no será
satisfacible. Aplicando el corolario D concluimos que todo conjunto de fórmulas que es satisfacible
lo es por medio de un modelo finito o enumerable. Formularemos esto como lema:

Lema E: Un conjunto de fórmulas Δ es satisfacible syss el árbol completo para Δ tiene al


menos una rama abierta.

Un conjunto de fórmulas es consistente cuando no es posible deducir de él una


contradicción, y es inconsistente cuando sí que es posible deducir una contradicción. Es fácil ver
que un conjunto de fórmulas es consistente syss es satisfacible, porque, dada una contradicción
cualquiera C, por los teoremas de corrección y completitud C es deducible de un conjunto de
premisas Γ syss es consecuencia de Γ, y una contradicción sólo puede ser consecuencia de un
conjunto de fórmulas que sea insatisfacible, porque ella misma es insatisfacible. Relacionando esto
con el párrafo anterior podemos decir que todo conjunto consistente de fórmulas es satisfacible por
medio de un modelo que es finito o enumerable.

Sin embargo, podemos afinar un poco más estos resultados y establecer lo siguiente:

Lema F: Todo conjunto de fórmulas de un lenguaje enumerable de primer orden sin


identidad que es satisfacible lo es en un modelo infinito enumerable.

Demostración: no vamos a hacer la demostración completa, pero sí que indicaremos cómo


se demuestra. Para establecer, como hemos hecho más arriba, que todo conjunto satisfacible Δ lo es
en un modelo finito o enumerable podíamos argumentar que si Δ es satisfacible entonces en el árbol
correspondiente habrá una rama abierta y a partir de esa rama podemos construir, por el método del
lema C, un modelo que satisface todas las fórmulas de la rama y, por tanto, todas las de Δ. El
dominio de ese modelo está formado por el conjunto de términos que aparecen en la rama abierta, y
ese conjunto puede ser o bien finito o bien infinito pero enumerable (no puede ser mayor porque el
conjunto de términos es enumerable). Sin embargo, modificando un poco el método de construcción
de árboles podemos demostrar el lema C construyendo un modelo cuyo dominio sea el conjunto de
todos los términos del lenguaje (es decir, un conjunto enumerable) y no sólo de las que aparecen en
la rama. De hecho, basta con aplicar las reglas correspondientes a las fórmulas de tipo ∀xA y ¬∃xA
de modo que cada vez que las apliquemos añadamos a la rama la fórmula A[t/x] o ¬A[t/x] (la que
corresponda) para el primer término t tal que dicha fórmula no está aún en la rama. Eso garantiza
que, si aparece una fórmula de tipo ∀xA en una rama abierta se irán añadiendo progresivamente
todas las fórmulas A[t/x], para todos los términos del lenguaje, y otro tanto con las fórmulas de tipo
¬∃xA. Eso es suficiente para que la demostración del Lema C siga funcionando. ■

A continuación presentaremos un lema general sobre árboles que nos hará falta para
demostrar el teorema de compacidad como consecuencia de los de corrección y completitud que ya
hemos visto. Es el lema conocido como Lema de König. Diremos que un árbol tiene ramificación
finita cuando cada nodo en él tiene sólo una cantidad finita de sucesores inmediatos, y que tiene
ramificación infinita cuando un nodo puede tener infinitos sucesores inmediatos (los nodos son los
elementos del árbol, en nuestro caso las fórmulas que aparecen en él). Los árboles que nosotros
manejamos tienen, obviamente, ramificación finita, porque cada nodo en él puede tener uno o dos
sucesores inmediatos, pero no más: no hay ninguna regla que nos obligue a dividir una rama en
infinitas subramas. Cuando una rama se divide, se divide en dos. Pues bien, el citado lema es así:

Lema de König: Todo árbol con ramificación finita que tiene infinitos nodos tiene al menos
una rama que es infinita. O lo que es igual: todo árbol con ramificación finita cuyas ramas son todas
finitas contiene tan solo una cantidad finita de nodos.

Demostración: Supongamos que tenemos un árbol con ramificación finita y con infinitos
nodos. Dado un nodo cualquiera, distingamos entre sus sucesores inmediatos (los nodos que están
colocados justo debajo de él) y sus sucesores a secas (los nodos que están debajo de él pero no
necesariamente inmediatamente debajo, o sea, sus sucesores inmediatos, los sucesores inmediatos
de sus sucesores inmediatos, y los de estos últimos, etc.). Pues bien, dado un árbol como acabamos
de decir siempre podemos encontrar en él una rama infinita A0, A1, A2... La clave está en ir eligiendo
los nodos de esa rama de tal forma que cada uno de ellos siempre tenga una cantidad infinita de
sucesores. De esa manera, podemos demostrar que es posible elegir nodos Ai para todo i∈ℕ de
forma que constituyan una rama. Intuitivamente, la cosa es como sigue: Puesto que el árbol tiene
infinitos nodos, el origen del árbol tiene infinitos sucesores (todos los demás elementos del árbol
son sucesores suyos). El origen del árbol será la fórmula A0 que buscamos. Ahora, ese origen debe
tener sólo una cantidad finita de sucesores inmediatos, B0...Bn, puesto que se trata de un árbol de
ramificación finita. Alguno de esos sucesores inmediatos de A0 debe tener a su vez infinitos
sucesores, porque si cada uno de ellos tuviera sólo una cantidad finita de sucesores el propio A0
tendría sólo una cantidad finita de sucesores, cosa que sabemos que no es así. La razón es obvia: los
sucesores de A0 son B0...Bn más los sucesores de cada uno de estos. Si B0...Bn son una cantidad finita
y los sucesores de cada uno de ellos son también una cantidad finita, todos juntos no son más que
una cantidad finita. Así que algún Bj debe tener una cantidad infinita de sucesores. Este Bj será
nuestro A1. Repitiendo el razonamiento con A1 elegiremos un A2 que sea sucesor inmediato de A1 y
tenga infinitos sucesores, y luego un A3 que sea sucesor inmediato de A2 y tenga infinitos sucesores,
etc. Los Ai elegidos de esta manera forman una rama infinita del árbol. [La demostración
estrictamente hablando sería una inducción matemática: demostraríamos que para todo n podemos
elegir un An de tal modo que a) cada An tiene infinitos sucesores y b) An+1 es sucesor inmediato de An.
En la base tomaríamos como A0 el origen, que cumple a) y b). En el paso de inducción, suponiendo
que An tiene infinitos sucesores razonaríamos como antes que alguno de sus sucesores inmediatos
debe tener también infinitos sucesores, y ese es el nodo que elegiríamos como An+1, de forma que
cumpliría a) y b)]. ■

Y con lo que tenemos podemos demostrar ya el Teorema de Compacidad:

Teorema de Compacidad (primera versión): Para cualquier conjunto de fórmulas Γ y


cualquier fórmula A, si Γ⊨A entonces existe un subconjunto finito de Γ, Γ’ tal que Γ’⊨A (o sea: si
A es consecuencia de un conjunto de fórmulas Γ entonces es también consecuencia de algún
subconjunto finito de fórmulas de Γ).

Demostración: Supongamos que Γ⊨A. Por el teorema de completitud, Γ⊢A, lo que significa
que el árbol correspondiente tiene todas las ramas cerradas. Como toda rama cerrada es finita, dicho
árbol tiene todas las ramas finitas y, al ser un árbol de ramificación finita, según el Lema de König
contiene sólo un número finito de nodos, o sea, una cantidad finita de fórmulas. Por tanto, sólo
contiene una cantidad finita de fórmulas de Γ, que formarán un subconjunto finito Γ’ de Γ. Pero
entonces lo que hemos hecho realmente es deducir A de Γ’, de forma que Γ’⊢A. Por el teorema de
corrección, eso significa que Γ’⊨A. Como Γ’ es un subconjunto finito de Γ, tenemos lo que
buscábamos. ■

Como sabemos, un conjunto de fórmulas es satisfacible syss hay un modelo y una


asignación que satisfacen simultáneamente todas sus fórmulas. Se dice que un conjunto de fórmulas
es finitamente satisfacible si todos sus subconjuntos finitos son satisfacibles. Según esto, podemos
formular de otra manera el teorema de Compacidad:

Teorema de Compacidad (segunda versión): Todo conjunto de fórmulas finitamente


satisfacible es satisfacible.

Demostración: Se puede demostrar fácilmente la equivalencia entre las dos versiones que
proponemos del teorema pero, aunque sea redundante, demostraremos esta segunda versión también
a partir de los resultados que hemos ido estableciendo más arriba. Así que supongamos que tenemos
un conjunto finitamente satisfacible Γ de fórmulas y vamos a ver que también tiene que ser
satisfacible. Si Γ es finitamente satisfacible quiere decir que todos sus subconjuntos finitos son
satisfacibles. Pues bien, entonces el propio Γ debe ser también satisfacible, pues de lo contrario al
construir un árbol a partir de las fórmulas de Γ todas las ramas tendrían que cerrarse porque si no,
por el lema E, Γ sería satisfacible. Pero, si todas las ramas están cerradas, por el lema de König sólo
contiene una cantidad finita de fórmulas y, por consiguiente, una cantidad finita de fórmulas de Γ,
que forman un subconjunto finito Γ’ de Γ. Pero entonces el árbol para Γ es también un árbol para Γ’
y, como está cerrado, también por el lema E podemos concluir que Γ’ es insatisfacible. Pero eso no
puede ser, porque todos los subconjuntos finitos de Γ son satisfacibles. Así que Γ también es
satisfacible. ■
Completitud de los árboles en el lenguaje con identidad

Con un poco de reflexión podemos darnos cuenta de que nuestro lema F no puede ser
aplicable en el caso del lenguaje con identidad. La razón es fácil: el lema establece que todo
conjunto de fórmulas (del lenguaje sin identidad) satisfacible tiene que ser satisfacible en un modelo
infinito enumerable. Pero esto no ocurre en el lenguaje con identidad: podemos encontrar
fácilmente conjuntos de fórmulas que son satisfacibles en modelos finitos pero no en modelos
infinitos. Basta pensar en la fórmula ∀x∀yx=y. Esta fórmula sólo es verdadera en modelos cuyo
dominio contiene exactamente un elemento: si es verdadera es porque todos los valores posibles
satisfacen x=y, cosa que sólo es posible si no es posible dar valores distintos a x e y, o sea, si hay un
único valor posible (esta fórmula viene a decir “hay un único objeto”, lo mismo, por cierto, que la
fórmula ∃x∀yx=y). Según eso, el conjunto {∀x∀yx=y} es ciertamente satisfacible (en los modelos
de un elemento), pero no es satisfacible en ningún modelo enumerable. El lema F no se puede
cumplir en el lenguaje con identidad.

De este hecho podemos sacar dos conclusiones: primera, que el lenguaje con identidad tiene
mayor poder expresivo que el lenguaje sin identidad y, segundo, que en la demostración de
completitud del lenguaje con identidad tiene que haber alguna diferencia significativa respecto a la
del lenguaje sin identidad. Veamos ambas cosas.

En primer lugar, es imposible que en el lenguaje sin identidad pueda haber una fórmula A
que equivalga a ∀x∀yx=y, (es decir, que sea verdadera exactamente en los modelos de un
elemento), ni siquiera un conjunto de fórmulas Γ que sean satisfacibles precisamente en los modelos
de un elemento, porque si existieran serían satisfacibles y, por el lema F, lo serían también en
modelos enumerables. Así que hay cosas que se pueden decir con identidad pero no sin ella (por
ejemplo “hay un único objeto): el lenguaje con identidad es más expresivo que el lenguaje sin
identidad.

Hay muchos más ejemplos de cosa que no son expresables sin identidad pero sí con ella: por
la misma razón que el lenguaje sin identidad no puede expresar “hay un único objeto” tampoco
puede expresar “hay como mucho dos objetos”, “hay al menos dos objetos” ni “hay exactamente
dos objetos”, ni ninguna afirmación similar con cualquier otro número natural. Sin embargo, todo
eso se puede expresar cuando añadimos la identidad:

• ∃x∃y∀z(z=x∨z=y) expresa “hay como mucho dos objetos”.


• ∃x∃y(¬x=y) expresa “hay al menos dos objetos”. A esta sentencia la llamaremos H2.
• La conjunción de las dos sentencias anteriores sirve para expresar “hay exactamente dos
objetos”.
• ∃x∃y∃z∀v(v=x∨v=y∨v=z) expresa “hay como mucho tres objetos”.
• ∃x∃y∃z(¬x=y∧¬x=z∧¬y=z) expresa “hay al menos dos objetos”. A esta sentencia la
llamaremos H3.
• La conjunción de las dos sentencias anteriores sirve para expresar “hay exactamente tres
objetos”.

Es fácil ver de qué modo podemos escribir sentencias similares que expresen, para cualquier
número n, “hay al menos n objetos”, “hay como mucho n objetos”, “hay exactamente n objetos”.
Basta con generalizar el procedimiento que hemos aplicado al caso de los números dos y tres.

Vemos, pues, que el lenguaje de primer orden con identidad permite expresar una serie de
afirmaciones sobre el tamaño de los modelos que no son expresables sin la identidad. Un poco más
adelante veremos que de todos modos el lenguaje con identidad no es capaz de expresar todo lo que
quisiéramos expresar acerca de esta cuestión. Pero antes nos ocuparemos de la demostración de
completitud en el lenguaje con identidad.

Es posible demostrar la completitud del método de árboles para la lógica de primer orden
con identidad siguiendo las líneas básicas de la demostración que ya conocemos para el caso sin
identidad. Pero, evidentemente, tendrá que haber alguna variación, entre otras cosas porque
sabemos que ahora no puede ser posible demostrar un lema como nuestro anterior lema F.

Veamos dónde fallaría ahora la demostración del lema F. La clave de esa demostración está
en la posibilidad de, dada una rama abierta en un árbol, construir un modelo que satisfaga todas las
fórmulas de la rama haciendo que el dominio sea el conjunto de todos los términos que aparecen en
la rama (y que cada uno se interprete a sí mismo). Si nos aseguramos de que en la rama haya
infinitas constantes (que es lo que hacíamos al demostrar el lema F), el modelo será infinito. Sin
embargo, es obvio que un modelo construido de esa manera no puede funcionar si el lenguaje tiene
identidad. La razón es que todo modelo construido de esa forma tiene que hacer falsas todas las
fórmulas del tipo c=d, si c y d son dos constantes distintas: obviamente, si I(c)=c y I(d)=d, I(c)≠I(d),
así que c=d resultará falsa, esté o no en la rama. Pero, naturalmente, hay ramas abiertas que
contiene identidades. Por tanto, si queremos demostrar el Lema C para el lenguaje sin identidad, es
decir, que para cualquier rama abierta de un árbol completo es posible encontrar un M y una σ que
satisfacen todas sus fórmulas tenemos que construir M y σ de alguna otra manera que nos permita
satisfacer las identidades que aparezcan en la rama. La solución no es difícil, una vez identificado
claramente el problema: cuando no había identidad podíamos dar a cada término una interpretación
diferente y satisfacer todas las fórmulas de la rama, porque nada en la rama podía decir que dos
términos tuvieran que tener la misma interpretación. Al haber identidad, esto ya no es así: si la rama
contiene una fórmula de tipo t=s tenemos que construir el modelo de forma que t y s tengan la
misma interpretación, esto es, que Iσ(t)=Iσ(s). Esa es la clave de la solución.

Observemos lo que pasa en una rama abierta de un árbol terminado que contenga una
fórmula t=s. Por la regla E=, contendrá también s=t (simetría), t=t y s=s, es decir, todas las
identidades que pueden formarse con ambos términos. Igualmente, si contiene t1=t2 y t2=t3 contendrá
también t1=t3 (transitividad) y todas las identidades que se pueden formar con los tres términos. Eso
nos permite identificar fácilmente cuándo dos términos t y t’ tienen que tener la misma
interpretación: exactamente cuando la fórmula t=t’ está en la rama. Así pues, para cada término t en
R podemos definir un conjunto de términos [t], formado por todos los términos que tienen que tener
la misma interpretación que t: si t aparece en alguna identidad en R, [t]={t’: t=t’ aparece en R} y si
no (es decir, si t está en R pero no formando parte de una identidad), [t]={t}.

Ahora, veamos en primer lugar que si s∈[t] entonces [s]=[t], es decir, que los elementos de
[t] están también en [s] y viceversa: efectivamente, para empezar, si s∈[t] es porque t=s está en R,
en cuyo caso s=t también está. Para cualquier otro término u que esté en R, si u∈[t] es porque t=u
está en R, en cuyo caso al estar s=t y t=u por transitividad estará también s=u, por lo que u∈[s], así
que cualquier elemento de [t] está en [s]. Por un razonamiento similar, los elementos de [s] están
todos en [t], así que ambos conjuntos son iguales. Así, cada término pertenece exactamente a uno de
estos conjuntos de términos: lo que hemos hecho es dividir el conjunto de términos en conjuntos
disjuntos, es decir, tenemos una partición de los términos (este razonamiento suele presentarse
mostrando que las fórmulas t=s en definen una relación de equivalencia entre los términos y
presentando [t] como una clase de equivalencia de esa relación).

Cada conjunto [t] corresponde a un conjunto de términos que, según las fórmulas de R,
tienen que tener idéntica interpretación, así que tenemos que hacer que a todos los términos de [t]
les corresponda en el modelo una y la misma interpretación. Por eso colocaremos en D un objeto
por cada uno de los conjuntos [t], que será la interpretación de los términos correspondientes. La
forma más simple de hacer esto es considerar al propio conjunto [t] como objeto y hacer que los
elementos de D sean precisamente los [t]:

D={[t]: t es un término que aparece en R}

Luego, hacemos que para cada constante c I(c)=[c] y para cada variable x σ(x)=[x]. Así, para cada t,
Iσ(t)=[t], de forma que si t=s está en R, [t]=[s], luego Iσ(t)=Iσ(s) y así M,σ⊨s=t y si t=s no está en
R, [t]≠[s], así que M,σ⊭t=s: Por tanto, M,σ satisfacen exactamente las identidades que están en R.

Pero esto no es todo: necesitamos que M,σ satisfagan exactamente las fórmulas atómicas de
R, ni más ni menos. Para las identidades ya lo tenemos resuelto. Nos falta ver qué pasa con las de
tipo Rnt1...tn. Definimos I(Rn) de forma análoga a la que conocemos, con una modificación obvia:

I(Rn)={〈[t1]...[tn]〉: Rnt1...tn aparece en R}

De esta manera, si Rnt1...tn está en R, entonces es satisfecha. Sin embargo, aparentemente esto
podría satisfacer fórmulas que no están en R: supongamos que [s]=[u] y que Rnt1...u...tn está en R.
En ese caso, 〈[t1]...[u]...[tn]〉∈I(Rn) y así M,σ⊨Rnt1...u...tn. Pero, como [s]=[u], eso hace que también
M,σ⊨Rnt1...s...tn. Según eso, al hacer que se satisfaga una fórmula atómica podemos hacer que se
satisfagan muchas otras. ¿No estamos satisfaciendo, entonces, más fórmulas de las que queremos,
es decir, que las que están en R? Pues no, porque todas esas fórmulas que resultan también
satisfechas están en R. Efectivamente, si [s]=[u] es porque s=u está en R, y por aplicación de la
regla E= por cada fórmula en R que contenga una u tendremos otra igual pero con una s en su lugar,
así que si está Rnt1...u...tn está también Rnt1...s...tn. Teniendo eso en cuenta, es fácil ver que M,σ
satisfacen exactamente las fórmulas atómicas que están en R.

La construcción de un modelo M y una asignación σ capaces de satisfacer exactamente las


fórmulas atómicas de R es la única parte de la demostración del lema C que no es igual con
identidad que sin identidad, y acabamos de ver cómo resolverla. El resto de la demostración del
lema es idéntica, así que tenemos demostrado el lema C para el lenguaje con identidad. De ahí se
sigue, sin necesidad de modificar nada, el teorema de completitud. El corolario D también es válido,
aunque ahora hay que tener en cuenta que el tamaño del dominio no es idéntico al del conjunto de
los términos en R sino sólo igual o menor (ahora es posible que a partir de una rama con una
cantidad enumerable de términos nos sala un modelo finito), razón por la cual el lema F ya no
funciona. El lema E, naturalmente, sigue siendo válido.

Añadamos, para concluir, dos cosas. La primera es que la demostración de corrección del
método de árboles que hemos estudiado para el lenguaje sin identidad se adapta fácilmente al
lenguaje con identidad (no entraremos en detalles). La segunda, que a partir de la corrección y la
completitud del método de árboles se demuestra el teorema de compacidad exactamente igual que
en el caso sin identidad.

Das könnte Ihnen auch gefallen