Mathematics">
Nothing Special   »   [go: up one dir, main page]

L Ogica para La Computaci On: II) L Ogica CL Asica de Primer Orden

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 154

Lógica para la Computación

II) Lógica Clásica de Primer Orden

Alfredo Burrieza Muñiz


Manuel Ojeda Aciego
Inmaculada Pérez de Guzmán Molina
Agustı́n Valverde Ramos
i

La razón por la que las personas mienten con frecuencia


es que les falta imaginación
no se dan cuenta de que la verdad, también,
es una cuestión de invención.
(Ortega y Gasset)

Este documento presenta la Lógica Clásica de Primer Orden. En él hemos puesto especial
énfasis en los aspectos algorı́tmicos, en definitiva, en presentar la lógica como el Cálculo de las
Ciencias de la Computación y, en particular, como la base matemática del software.
ii
Índice general

1. Lógica de Primer Orden 1


1.1. Lenguaje L1 de una Lógica de Primer Orden . . . . . . . . . . . . . . . . . . . . 3
1.1.1. Alfabeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2. Fórmulas Bien Formadas . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.3. Árbol Sintáctico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.4. Signo de una ocurrencia de una subfórmula . . . . . . . . . . . . . . . . . 12
1.1.5. Variables Libres y Variables Ligadas . . . . . . . . . . . . . . . . . . . . . 13
1.1.6. Sustitución de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2. Semántica para los Lenguajes de Primer Orden . . . . . . . . . . . . . . . . . . . 19
1.2.1. Semántica de Tarski . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2.2. Satisfacibilidad y Validez . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.2.3. Equivalencia Lógica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.3. Forma Normal Prenexa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.4. Skolemización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.5. Consecuencia Lógica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2. Modelos de Herbrand 51
2.1. Interpretaciones de Herbrand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.2. Teorema de Herbrand y Semidecidibilidad de L1 . . . . . . . . . . . . . . . . . . 56
2.2.1. Árboles Semánticos en L1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.2.2. Teorema de Herbrand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.3. Modelos Finitos y Modelos Infinitos . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.3.1. Compacidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.4. Indecidibilidad de L1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

3. Sistemas Deductivos para L1 73


3.1. Un sistema axiomático para L1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.1.1. El Teorema de la Deducción . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.1.2. Corrección y Completitud de L1 . . . . . . . . . . . . . . . . . . . . . . . 78
3.1.3. Corrección, Completitud y Semidecidibilidad . . . . . . . . . . . . . . . . 80
3.2. Deducción Natural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.3. Teorı́as de Primer Orden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.3.1. Teorı́as con Igualdad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

iii
iv ÍNDICE GENERAL

3.4. Algunas Teorı́as de Primer Orden con Igualdad . . . . . . . . . . . . . . . . . . . 91


3.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

4. Método de las Tablas semánticas 97


4.0.1. Reglas de Extensión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.0.2. Reglas para una Extensión Sistemática . . . . . . . . . . . . . . . . . . . . 101
4.1. Descripción del Método . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
4.2. Corrección y Completitud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.2.1. Tablas semánticas para la Construcción de Modelos . . . . . . . . . . . . 106
4.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

5. Método de Resolución 115


5.1. Resolución básica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.2. Unificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
5.2.1. El Algoritmo de Unificación . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.2.2. El Algoritmo de Unificación (versión 2) . . . . . . . . . . . . . . . . . . . 125
5.3. Resolución de Átomos no básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
5.3.1. Resolución Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
5.3.2. Resolución Lineal Ordenada . . . . . . . . . . . . . . . . . . . . . . . . . . 133
5.4. Cláusulas de Horn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
5.4.1. Programación lógica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
5.4.2. Mı́nimo Modelo de Herbrand para un Programa lógico . . . . . . . . . . . 143
5.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Capı́tulo 1

Lógica de Primer Orden

En el primer libro hemos contemplado el tipo más simple de lenguaje lógico, el de la lógica
proposicional clásica, la cual, a fin de establecer criterios sobre la exactitud de razonamientos,
formaliza la parte más elemental de nuestro lenguaje natural, es concretamente:

sólo se consideran las frases declarativas, llamadas proposiciones o enunciados, a las que es
posible considerar o bien verdaderas o bien falsas y ningún otro valor de verdad (es decir,
es bivaluada y admite el Principio del tercero excluido: A ∨ ¬A siempre es verdadera).
Este valor de verdad queda completamente determinado por el valor de verdad o falsedad
de los enunciados simples que la componen y por las partı́culas no, o, y, si . . . entonces,
si y sólo si, utilizadas como elementos de enlace (es decir, es veritativo-funcional).

La asignación de valores de verdad o falsedad a los enunciados se realiza sin recurrir a


consideraciones de contexto alguno y sin considerar la estructura interna de los enunciados
simples (es decir, se trabaja al nivel más sencillo de análisis: el sujeto y el predicado que
componen internamente un enunciado simple son irrelevantes para la lógica proposicional).

Ası́, si consideramos el razonamiento:


Todo estudiante es inquieto.
Luis es un estudiante.
Por lo tanto, Luis es inquieto.
intuitivamente, no dudamos en afirmar que es un razonamiento correcto, ya que responde a la
forma “Todo A es B” y “C es un A”. Por lo tanto “C es un B”. Sin embargo, puesto que la
lógica proposicional no contempla estructura alguna en los enunciados declarativos simples, su
lenguaje únicamente permite representar las expresiones “Todo estudiante es inquieto”, “Luis es
un estudiante” y “Luis es inquieto”, por sı́mbolos proposicionales p, q y r respectivamente. Por
lo tanto, este razonamiento no es analizado como válido en la lógica proposicional. En efecto,
en el marco de dicha lógica su formalización viene dada por

p
q
r

que no es un razonamiento válido en la lógica proposicional clásica.

1
2 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

Del mismo modo, la lógica proposicional clásica no basta para analizar la corrección de pro-
gramas respecto a una especificación formal. Por ejemplo, la corrección de un programa que
computa el mayor elemento de una lista de números enteros, requiere manejar expresiones del
tipo x < y. Esta expresión “predica” una determinada relación entre x e y, y su verdad o falsedad
depende de los valores de x y de y.
La insuficiencia de la lógica proposicional clásica, es decir, su escasa potencia expresiva, requiere
el desarrollo de una lógica más amplia que permita considerar válidos los razonamientos del tipo
anterior. Necesitamos una lógica que permita captar más detalles del lenguaje natural, que no
sólo contemple las conexiones “externas” entre los enunciados simples, sino que extienda a la
lógica clásica proposicional en dos direcciones:

considere en los enunciados atómicos una determinada estructura interna, la estructura


predicativa, que permita diferenciar “qué se predica” (ser estudiante, ser inquieto. . . ), de
“qué” o “quién” se predica, y

permita expresar que, dado un universo del discurso, una cierta propiedad la satisface un
ente concreto, o bien todos los entes, o la satisface algún ente o no la satisface ningún ente
de dicho universo. 1

El marco mı́nimo para dicho propósito lo proporciona la lógica conocida como Lógica de Predi-
cados de Primer Orden o simplemente como la Lógica de Primer Orden, a la que denotaremos
por L1 .
Wilfred Hodges hace la siguiente reflexión:

. . . la lógica de primer orden es hija de varios padres; al menos tres grupos diferentes
de pensadores han tenido que ver en su concepción y con tres motivos muy diferentes:

Los lógicos tradicionales desde Aristóteles hasta George Boole (1815-1864) se-
guidos, entre otros, por Augustus de Morgan (1806-1871) y Charles S. Peirce
(1839-1914). Para ellos el objetivo central fue proporcionar esquemas de razo-
namientos válidos.
Los teóricos de la demostración, entre los que hemos de incluir Gottlob Fre-
ge (1848-1925), Giuseppe Peano (1858-1932), David Hilbert (1862-1943), Ber-
trand Russell (1872-1970), Jacques Herbrand (1908-1931) y Gerhard Gentzen
(1909-1945). Para ellos el objetivo fue sistematizar el razonamiento matemáti-
co de modo que las hipótesis fueran explicitadas y las etapas fueran descritas
rigurosamente.
Los centrados en la teorı́a de modelos, entre los que cabe destacar Ernest Schröder
(1841-1902), Leopold Löwenheim (1878-1957), Thoralf Skolem (1887-1963),
Kurt Gödel (1906-1978) y Alfred Tarski (1909-1945). Para ellos el objetivo fue
estudiar estructuras matemáticas desde el punto de vista de las leyes que dichas
estructuras obedecen.
1
En definitiva, vamos a estudiar una lógica que permite analizar razonamientos en los que las hipótesis y la
conclusión son frases del lenguaje natural del mismo tipo que las contempladas en la lógica proposicional que hemos
estudiado en el primer libro, pero en la que dispondremos de un lenguaje más rico que nos permitirá expresar la
estructura predicativa de dichas frases.
1.1. LENGUAJE L1 DE UNA LÓGICA DE PRIMER ORDEN 3

Quizás esta mezcla es la causa de su fuerza. Sin embargo, sea cual sea la razón, la
lógica de primer orden es la lógica moderna más simple, más potente y más aplica-
ble. . .

Esta lógica juega en la actualidad un papel destacado en las Ciencias de la Computación,


por sus aplicaciones en especificación y verificación de programas, en la representación del co-
nocimiento en las bases de datos, en inteligencia artificial, etc.
Para quien haya leı́do el primer libro en el que estudiamos la lógica clásica proposicional, ya
conoce de antemano cual será el guión de este libro: Una vez motivada la necesidad de la lógica
de primer orden, describiremos su lenguaje, después su semántica, su teorı́a de la demostración
y, finalmente, nuestro objetivo esencial: la posibilidad o no de automatizar el razonamiento.
En este capı́tulo presentamos:

el lenguaje de la lógica de primer orden y

la semántica de la lógica de primer orden.

1.1. Lenguaje L1 de una Lógica de Primer Orden


Recordemos que un lenguaje lógico viene dado mediante un alfabeto de sı́mbolos y la definición
de un conjunto de cadenas de sı́mbolos de dicho alfabeto llamadas fórmulas bien formadas
(abreviadamente, fbfs).
La lógica de primer orden utiliza una clase de lenguajes que son conocidos como lenguajes de
primer orden, introducidos por Frege en 1879. El alfabeto de estos lenguajes dispone de sı́mbolos
que permiten:

representar elementos arbitrarios del dominio o universo del discurso, por medio de sı́mbo-
los de variable.

representar elementos especı́ficos del universo del discurso, por medio de sı́mbolos de
constante.

representar generadores de elementos del universo del discurso a partir de uno o varios
elementos de dicho universo, por medio de sı́mbolos de función.

expresar que nos referimos a algunos o a todos los elementos del universo del discurso, por
medio de sı́mbolos de cuantificación o cuantificadores.

expresar propiedades o relaciones entre los elementos del universo del discurso, por medio
de sı́mbolos de predicado.

Comenzamos pues introduciendo el alfabeto y el conjunto de fórmulas bien formadas para un


lenguaje de primer orden L1 .

1.1.1. Alfabeto
El alfabeto de un lenguaje de primer orden consta de los siguientes sı́mbolos:

1. las conectivas de la lógica proposicional ¬, →, ∧, ∨ y ↔.


4 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

2. los sı́mbolos lógicos ⊤ y ⊥.

3. los sı́mbolos de cuantificación ∀ (universal) y ∃ (existencial).

4. los sı́mbolos de puntuación “(” y “)”.

5. un conjunto infinito numerable, V = {x, y, z, v, . . . , x1 , y1 , z1 , v1 , . . . , xn , yn , zn , vn , . . .}, de


sı́mbolos de variables.

6. un conjunto numerable (posiblemente vacı́o), C, de sı́mbolos de constante.

7. un conjunto numerable (posiblemente vacı́o), F, de sı́mbolos de función y una función r1


que asigna a cada sı́mbolo de función un elemento de N∗ llamado su aridad (que representa
el número de argumentos).

8. un conjunto numerable y no vacı́o, P, de sı́mbolos de predicado y una función r2 que


asigna a cada sı́mbolo de predicado un elemento de N∗ llamado su aridad (que representa
el número de argumentos).
Los sı́mbolos referidos en 1, 2, 3, 4 y 5 son comunes a todos los lenguajes de primer orden. Por
otra parte la elección de los conjuntos C, F y P proporciona un lenguaje especı́fico de primer
orden y viene determinada por la aplicación que se pretende. Supondremos que los conjuntos
V, C, F y P son disjuntos dos a dos.
Los sı́mbolos de predicado de aridad 1, se denominan propiedades y los sı́mbolos de predicado
de aridad mayor que 1 se denominan relaciones.
r r Consideraremos que la aridad tanto de los sı́mbolos de predicados como de los sı́mbolos de
ee
función es mayor o igual que 1. Podemos hablar ası́ de predicados monádicos o monarios o
de aridad 1 (como “ser ave”, “ser cuadrado”, “ser par”, “ser actriz”) y poliádicos o de aridad
> 1 (como “ser tio de” –binario–; “estar sentado entre . . . y . . . ” –ternario–; “ser dueño de
. . . , . . . y . . . ” –de aridad 4–, etc). Del mismo modo, consideraremos los sı́mbolos de función
monarios o de aridad 1 (como: “la madre de”, “el doble de”, “el lugar de nacimiento de”)
y poliádicos o de aridad > 1 (como “la suma de . . . y . . . ” –binario–; “el dueño de . . . , . . . y
. . . ” –ternario–, etc).

Definición 1.1 La signatura de un lenguaje de primer orden recoge los sı́mbolos no


comunes, propios de cada lenguaje de primer orden, es decir, la signatura es el conjunto de
sı́mbolos
Σ=C∪F ∪P

Hablaremos pues de un lenguaje de primer orden sobre la signatura Σ y lo denotaremos L1 (Σ)


(o bien L1 (C, F, P)).
En definitiva, el alfabeto de una lógica de primer orden con signatura Σ es

aΣ = Σ ∪ V ∪ {¬, ∧, ∨, →, ↔, ∀, ∃, , , (, )}

Usaremos como sı́mbolos:

las primeras letras del alfabeto a, b, c, . . . (posiblemente subindizadas) para representar los
sı́mbolos de constantes.
1.1. LENGUAJE L1 DE UNA LÓGICA DE PRIMER ORDEN 5

las últimas letras del alfabeto x, y, z, . . . (posiblemente subindizadas) para representar los
sı́mbolos de variables.

las letras f, g, h, . . . (posiblemente subindizadas) para representar los sı́mbolos de función.

las letras P, Q, R, . . . (posiblemente subindizadas) para representar los sı́mbolos de predi-


cado.

r r Usando la terminologı́a de los lenguajes de programación, podemos pensar en


ee

- los conectivos, como conjunto de instrucciones,


- los cuantificadores, como llamadas a procedimientos.
- los sı́mbolos de constantes, como constantes.
- los sı́mbolos de variables, como parámetros formales,
- los términos en los que intervienen sı́mbolos de función, como estructuras de datos,
- los sı́mbolos de predicados, como procedimientos.

1.1.2. Fórmulas Bien Formadas


La mayor complejidad, respecto al caso proposicional, de la lógica que deseamos definir, comien-
za a hacerse patente en los pasos requeridos para la descripción del conjunto de fórmulas bien
formadas. Para definir el conjunto de cadenas de sı́mbolos del alfabeto que definen un lengua-
je de primer orden, necesitamos introducir la noción de átomo (ya que, a diferencia del caso
proposicional, el alfabeto no incluye sı́mbolos proposicionales que representen átomos).
Como ya hemos indicado, los átomos deseados han de permitir discernir “qué” se predica y
de “quién” se predica. Si analizamos el alfabeto, el conjunto de sı́mbolos de predicado, P, nos
proporciona el primer objetivo. Sin embargo, todos los sı́mbolos en V, C y F están destinados
a representar elementos del universo del discurso sobre los que se “predica”. Necesitamos pues
describir qué cadenas de sı́mbolos representan elementos del universo del discurso. Para ello
introducimos la noción de término:

Términos:

Definición 1.2 Sea a un alfabeto para la lógica de primer orden y a⋆ el conjunto de las cadenas
sobre a, es decir, el lenguaje universal sobre a.
Para cada sı́mbolo f ∈ F de aridad n, definimos la función Cf : (a∗ )n −→ a∗ mediante:

Cf (t1 , . . . , tn ) = f (t1 , . . . , tn )

El conjunto de los términos sobre a es la clausura inductiva del conjunto V ∪ C para el conjunto
de constructores {Cf | f ∈ F}. Denotaremos por Term el conjunto de términos.
Usualmente, el conjunto de los términos se presenta, más informalmente, de la manera siguiente:
Los términos sobre a son los elementos de a∗ determinados por las siguientes reglas:
1. Las variables y los sı́mbolos de constantes son términos.

2. Si f es un sı́mbolo de función n-aria y t1 , . . . , tn son términos, entonces f (t1 , . . . , tn ) es un


término.
6 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

3. Sólo las cadenas obtenidas aplicando las reglas 1 y 2 son términos.

Definición 1.3 Los términos en los que no ocurren variables se llaman términos básicos.

Ejemplo 1.1 Si f es un sı́mbolo de función monaria (es decir, de aridad 1) y g es un sı́mbolo


de función binaria (es decir, de aridad 2) entonces, las expresiones

f (g(a, x)); g(f (x), g(x, y)) y g(a, g(a, g(a, f (b))))

son términos. El tercero de ellos es un término básico.


Las expresiones h(x, l(y, ) y h(l(y)), donde h es un sı́mbolo de función binaria y l un sı́mbolo de
función monaria no son términos.
r r Los términos son las cadenas de sı́mbolos del alfabeto que representan los “individuos” o “en-
ee
tes” (tanto simples como generados por algún procedimiento o función) a los que nos referimos
en las frases del lenguaje natural, expresiones utilizadas para representar los elementos del
universo del discurso. Por la tanto, no les asignaremos valores de verdad o falsedad, sino que
“predicaremos” sobre ellos, afirmaremos que están relacionadas de un modo determinado.

Los predicados se aplican sobre los términos para formar las fórmulas atómicas.
Definición 1.4 Los átomos o fórmulas atómicas son los elementos de a⋆ de la forma
P (t1 , . . . , tn ), donde P es un sı́mbolo de predicado n-ario y t1 , . . . , tn son términos. Denotaremos
por Atom el conjunto de átomos. Los átomos son las fbfs más simples de L1 (de ahı́ el adjetivo
de “atómica”).

Definición 1.5 Los átomos en los que no intervienen variables se llaman átomos básicos y
son las expresiones más sencillas del lenguaje que son interpretables como aserciones (afirmamos
que una n-upla de objetos están en una determinada relación n-aria).
Tenemos ya todo lo necesario para definir el conjunto de fbfs, esto es, el lenguaje. Los cuantifica-
dores y los conectivos permitirán obtener fbfs complejas a partir de los átomos de modo similar
al caso proposicional.

1.1.2.1. Fórmulas bien formadas


Dado un sı́mbolo de variable x, se definen las funciones

Ux , Ex : a∗ −→ a∗

del siguiente modo:


Ux (A) = (∀x)A y Ex (A) = (∃x)A
El conjunto de las fórmulas bien formadas es la clausura inductiva de Atom ∪ {⊤, ⊥} para el
conjunto de constructores

{C¬ , C∧ , C∨ , C→ , C↔ } ∪ {Ux , Ex | x ∈ V}

De manera menos formal, podemos describir el conjunto de las fbfs, como el conjunto de los
elementos de a∗ determinados por las siguientes reglas:

1. ⊤ y ⊥ son fbfs.
1.1. LENGUAJE L1 DE UNA LÓGICA DE PRIMER ORDEN 7

2. Las fórmulas atómicas son fbfs.

3. Si A y B son fbfs, ¬A, (A ∨ B), (A ∧ B), (A → B) y (A ↔ B) son fbfs.

4. Si A es una fbf y x es un sı́mbolo de variable, (∀x)A y (∃x)A son fbfs.

5. sólo las cadenas obtenidas aplicando las reglas 1, 2, 3 y 4 son fbfs.


Como en el lenguaje de la lógica proposicional, usaremos el convenio de omitir en toda fbf los
paréntesis inicial y final.
Definición 1.6 Dado un conjunto Ω de fbfs, la signatura de Ω es el conjunto ΣΩ = CΩ ∪FΩ ∪PΩ
donde CΩ es el conjunto de sı́mbolos de constantes que intervienen en Ω, FΩ es el conjunto de
sı́mbolos de función que intervienen en Ω y PΩ es el conjunto de sı́mbolos de predicados que
intervienen en Ω.

Notación: En todo lo que sigue usaremos el sı́mbolo Q para representar un sı́mbolo de cuan-
tificación, es decir, un elemento del conjunto {∀, ∃}. Diremos que ∀ y ∃ son sı́mbolos duales de
cuantificación y usaremos Q b para indicar el dual de Q, es decir, b
∀=∃yb ∃ = ∀.
r r Advirtamos que después de un sı́mbolo de cuantificación sólo está permitido un sı́mbolo
ee
de variable y que los argumentos de un sı́mbolo de predicado han de ser términos. Estos
hechos caracterizan a los lenguajes de primer orden, diferenciándolos de los lenguajes de
orden superior. En un lenguaje de primer orden:
sólo se dispone de variables de individuos.
no se puede cuantificar sobre sı́mbolos de función ni sobre sı́mbolos de predicado.
sólo se puede “predicar” sobre individuos.
En un lenguaje de segundo orden, existe un conjunto infinito numerable de sı́mbolos de
variables de predicado y también sı́mbolos de cuantificación universal y existencial sobre
estas variables. Ésto da al lenguaje de segundo orden mayor potencia expresiva; por ejemplo,
la igualdad es definible por la siguiente fórmula debida a Leibnitz

(∀x)(∀y) [(x = y) ↔ (∀P )(P (x) → P (y)) ]

donde, para mayor legibilidad, nos hemos permitido usar el sı́mbolo de predicado binario
“=” con notación infija.

Ejemplo 1.2
1. (∀x)(∀y)(R(x, y) ↔ R(y, x)) es una fbf que expresa que R representa una relación simétri-
ca.

2. (∃x)¬R(x, x) es una fbf que expresa que R representa una relación no reflexiva.

3. (∀x)(∃y)R(x, y) es una fbf que expresa que R representa una relación total.

Ejemplo 1.3
1. El enunciado “Todos los alumnosde esta clase tienen más de 18 años” puede ser expresado
en L1 por: (∀x) C(x) → M (x) , donde C(α) simboliza “α es alumno de esta clase” y
M (α) simboliza “α tiene más de 18 años”.
8 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

2. El enunciado “No todas las aves pueden volar” puede ser formalizado en L1 por:

¬(∀x) A(x) → V (x)

donde A(α) simboliza “α es un ave” y V (α) simboliza “α puede volar”.

3. El enunciado “Hay alumnos de  esta clase que tienen más de 24 años” puede ser formalizado
en L1 por: (∃x) C(x) ∧ E(x) , donde C(α) simboliza “α es alumno de esta clase” y E(α)
simboliza “α tiene más de 24 años”.

4. El razonamiento:

Todo estudiante es inquieto.


Luis es un estudiante.
Por lo tanto, Luis es inquieto.

puede ser formalizado en L1 por :



(∀x) E(x) → I(x)
E(a)

I(a)

donde E(α) simboliza “α es un estudiante”, I(α) simboliza “α es inquieto” y a simboliza


“Luis”.

5. El razonamiento:

El sucesor de todo natural par es impar.


6 es un natural par.
Por lo tanto, el sucesor de 6 es impar.

puede ser formalizado en L1 por:



(∀x) (N (x) ∧ P (x)) → I(s(x))
N (a) ∧ P (a)

I(s(a))

donde N (α) simboliza “α es natural”, P (α) simboliza “α es par”, I(α) simboliza “α es


impar”, s simboliza la función sucesor en N y a simboliza el número “6”.

6. El razonamiento:

Hay quien, aun siendo coherente, sólo se preocupa de sus propios problemas.
Todo el mundo se preocupa por las cuestiones del medio ambiente, a menos que sea
un irresponsable.
Toda persona coherente es responsable.
1.1. LENGUAJE L1 DE UNA LÓGICA DE PRIMER ORDEN 9

Por lo tanto, hay quien es coherente y toma como propio el problema del medio
ambiente 2 .

puede ser formalizado en L1 por:



(∃x) C(x) ∧ (∀y)(Q(x, y) → P (y, x)

(∀x) R(x) → Q(x, a)

(∀x) C(x) → R(x)

(∃x) C(x) ∧ P (a, x)

donde C(α) formaliza “α es coherente”, Q(α, β) formaliza “α se preocupa por β”, P (α, β)
formaliza “α es un problema para β”, R(α) formaliza “α es responsable y a formaliza
“Cuestiones del medio ambiente”.

Una utilidad importante de la lógica de primer orden aparece en la especificación formal de un


trozo de código. La especificación se da escribiendo las condiciones que han de verificarse antes y
después de la ejecución del código. Un lenguaje de programación es un lenguaje de especificación
ejecutable: el código de un programa especifica su comportamiento y puede ser ejecutado sobre
un computador.
El uso de un formalismo como la lógica de primer orden, asegura una definición rigurosa de
las pre y post-condiciones y facilita tareas tales como la descripción de la semántica de un
lenguaje de programación o el comportamiento funcional de un procedimiento o programa. Si
un programa puede ser especificado mediante un lenguaje como el de la lógica de primer orden,
su comportamiento externo como “caja negra” es más claro, ya que su descripción permite la
diferenciación entre los detalles de implementación y los algoritmos y, en consecuencia, facilita
la tarea de verificar si el código ejecuta de acuerdo con su especificación.
Como comentaremos en el último capı́tulo, existen subconjuntos de la lógica de primer orden
que son ejecutables y han dado lugar a lenguajes de programación llamados lenguajes de pro-
gramación lógicos.
Si consideramos el programa
{potencia ≥ 0}
a := 1;
for i := 1 to potencia do a := a∗ base;
respuesta := a
Una especificación mediante la Lógica de primer orden es la siguiente:

{(∀base)(∀potencia)((potencia ≥ 0) → (respuesta = base × potencia))}

donde hemos utilizado sı́mbolos especı́ficos de C, P y F respectivamente, para la constante


“cero”, para los predicados “igual” y “mayor o igual que” y para la función aritmética “×”,
estos últimos utilizados en notación infija en lugar de notación prefija, y hemos permitido las
cadenas “potencia” y “base” como elementos de V. Una vez definido el conjunto de términos y el
2
Advirtamos que, como estamos acostumbrados de nuestro estudio de la lógica clásica proposicional, α y β
son metavariables que se refieren a términos cualesquiera
10 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

lenguaje de la lógica de primer orden como clausuras inductivas, podemos, tal como explicamos
en el libro de lógica proposicional, utilizar el principio de inducción estructural para verificar
propiedades sobre tales conjuntos:

Principio de inducción estructural: Sea L1 (Σ) un lenguaje de primer orden.

Todos los términos de L1 (Σ) tienen la propiedad P con tal de que se cumpla:

1. Toda constante o variable tiene la propiedad P.


2. Si los términos t1 , . . . , tn tienen la propiedad P y f ∈ F es de aridad n, entonces
f (t1 , . . . , tn ) tiene la propiedad P.

Todas las fbfs de L1 (Σ) tienen la propiedad P con tal de que se cumpla:

1. Todos los átomos tienen la propiedad P.


2. Si A tiene la propiedad P, entonces ¬A tiene la propiedad P.
3. Si A y B tienen la propiedad P, entonces A ∗ B ,con ∗ ∈ {∧, ∨, →, ↔}, tiene la
propiedad P.
4. Si A tiene la propiedad P y x ∈ Var, entonces (Qx)A tiene la propiedad P.

Inducción sobre el grado


Del mismo modo, podemos realizar la inducción sobre el grado de un término o fbf.
Definición 1.7 Sea t un término. El grado de t, denotado gr(t), viene dado por lo siguiente:

1. gr(t) = 0, si t es una variable o una constante.

2. gr(t) = 1 + gr(t1 ) + . . . + gr(tn ), si t es de la forma f (t1 , . . . , tn )

El grado de una fbf consiste en el número de operadores lógicos que intervienen en ella:
Definición 1.8 Denotemos el grado de una fbf A mediante gr(A). Entonces definimos:

1. gr(A) = 0, si A es un átomo

2. gr(¬A) = 1 + gr(A)

3. gr(A ◦ B) = 1 + gr(A) + gr(B)

4. gr((Qx)A) = 1 + gr(A)

Consideremos un lenguaje de primer orden L1 (Σ). Entonces:

Todos los términos de L1 (Σ) tienen la propiedad P con tal de que se cumpla:

1. Toda constante o variable tiene la propiedad P.


2. Si todo término de grado menor que f (t1 , . . . , tn ) tiene la propiedad P, entonces
f (t1 , . . . , tn ) tiene la propiedad P.

Todas las fbfs de L1 (Σ) tienen la propiedad P con tal de que se cumpla:
1.1. LENGUAJE L1 DE UNA LÓGICA DE PRIMER ORDEN 11

1. Todos los átomos tienen la propiedad P.


2. Si todas las fbfs de grado menor que A tienen la propiedad P, entonces ¬A tiene la
propiedad P.
3. Si todas las fbfs de grado menor que A ∗ B, con ∗ ∈ {∧, ∨, →, ↔}, tienen la propiedad
P, entonces A ∗ B tiene la propiedad P.
4. Si todas las fbfs de menor grado que (Qx)A tienen la propiedad P, entonces (Qx)A
tiene la propiedad P.

Una vez definido qué entendemos por un lenguaje de primer orden estamos interesados, como
en el caso proposicional, en introducir la noción de subfórmula de una fbf.
Definición 1.9 En esta definición usaremos de nuevo el sı́mbolo “∗” para representar un
conectivo booleano binario arbitrario, es decir, un elemento del conjunto {∨, ∧, →, ↔}.
La función subfórmula, que asigna a cada fbf A el conjunto de todas sus subfórmulas, sub(A),
se define recursivamente como sigue:

sub(A) = {A} si A es un átomo


sub(¬A) = sub(A) ∪ {¬A}
sub(A ∗ B) = sub(A) ∪ sub(B) ∪ {A ∗ B}
sub((Qx)A) = sub(A) ∪ {(Qx)A}

Ejemplo
 1.4 
sub (∃x)(R(x) → (∀y)¬T (x, y) ) =
{((∃x)(R(x) → (∀y)¬T (x, y)), R(x) → (∀y)¬T (x, y), R(x), (∀y)¬T (x, y), ¬T (x, y), T (x, y)}

1.1.3. Árbol Sintáctico


Definición 1.10 El árbol sintáctico para una fbf, A, de L1 , denotado TA , es el a-árbol, donde
a es el alfabeto para L1 , definido recursivamente como sigue:

1. TA es A, si A es un átomo
¬
2. T¬A es TA

@
@
3. TA∗B (donde ∗ ∈ {∧, ∨, →, ↔}) es TA TB
Qx
4. TQxA es TA

Ejemplo 1.5 El árbol sintáctico de la fbf


 
(∃x) R(x) → (∀y)¬T (x, y) ∧ ¬(∃z) (∀u)P (u, z) → (∀v)Q(v, z)
12 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

es

 H
 HH
∃x ¬

→ ∃z
@
@
R(x) ∀y →
@
@
¬ ∀u ∀v

T (x, y) P (u, z) Q(v, z)

Como en el caso proposicional, las subfórmulas de una fbf quedan caracterizadas en términos de
los subárboles del árbol sintáctico de la fbf:
B es una subfórmula de A si y sólo si TB es un subárbol de TA .

1.1.4. Signo de una ocurrencia de una subfórmula


Introducimos ahora la noción de ocurrencias positivas y ocurrencias negativas de una fbf,
B, en una fbf A.
Definición 1.11 La noción de ocurrencia positiva y ocurrencia negativa de una fbf, B,
en una fbf, A, se define recursivamente como sigue:
A ocurre positivamente en A.
A ocurre negativamente en ¬A.
Si B ocurre positivamente en A, entonces B ocurre positivamente en
A ∧ C, C ∧ A, A ∨ C, C ∨ A, C → A, (∃x)A y (∀x)A
donde C es una fbf arbitraria.
Si B ocurre negativamente en A, entonces B ocurre negativamente en
A ∧ C, C ∧ A, A ∨ C, C ∨ A, C → A, (∃x)A y (∀x)A
donde C es una fbf arbitraria.
Si B ocurre positivamente en A, entonces B ocurre negativamente en ¬A y A → C, donde
C es una fbf arbitraria.
Si B ocurre negativamente en A, entonces B ocurre positivamente en ¬A y A → C, donde
C es una fbf arbitraria.
r r Advirtamos que hablamos de “ocurencia” de una subfórmula en una fbf. Por lo tanto, B
ee
puede tener ocurrencias positivas y ocurrencias negativas en A. Basta considerar la fbf A =
P (x) → P (x). Obviamente, se tiene que la primera ocurrencia de P (x) es negativa en A y
la segunda ocurrencia de P (x) es positiva en A.

Ejemplo 1.6 En la fbf


 
A = (∃x) R(x) → (∀y)¬T (x, y) ∧ ¬(∃z) (∀u)P (u, z) → (∀v)Q(v, z)
1.1. LENGUAJE L1 DE UNA LÓGICA DE PRIMER ORDEN 13

1. R(x) → (∀y)T (x, y) , (∀y)¬T (x, y) y ¬(∃z)((∀u)P (u, z) → (∀v)Q(v, z)) ocurren positiva-
mente en A.

2. R(x), T (x, y), (∀u)P (u, z) → (∀v)Q(v, z) y (∀v)Q(v, z) ocurren negativamente en A.

1.1.4.1. Notación
Usaremos las mismas notaciones que en la lógica proposicional: A[B] denota que B es una
subfórmula de A y A[B/C] denota que al menos una ocurrencia de B en A se ha sustituido por
la fbf C.

1.1.5. Variables Libres y Variables Ligadas


Definición 1.12 Dada una fbf (Qx)A, decimos que x es la variable del cuantificador y
que A es el rango del cuantificador (o de la variable cuantificada). Es decir, el rango de un
cuantificador es la fbf a la que se aplica.
r r Obsérvese que la definición dada no exige que x aparezca en el rango de su cuantificación.
ee

En términos del árbol sintáctico de una fbf A:


El rango de una ocurrencia del cuantificador (Qx) en una fbf A, es la subfórmula cuyo
árbol sintáctico tiene como raı́z el nodo sucesor del nodo en TA cuya etiqueta es dicha
ocurrencia de Qx.
Una subfórmula B de A ocurre en el rango de una ocurrencia del cuantificador (Qx), si
la raı́z del árbol sintáctico de B es un descendiente del nodo en TA cuya etiqueta es dicha
ocurrencia de Qx.

Ejemplo 1.7 En la fbf


(∀z) [(∀x) P (x, z) → (∃y)(Q(z) ∧ R(y, z))]
cuyo árbol sintáctico es:
∀z


H
HH
∀x ∃y

P (x, z) ∧
@
@
Q(z) R(y, z)

los rangos de sus cuantificadores son:

P (x, z) para (∀x).

Q(z) ∧ R(y, z) para (∃y).


14 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

(∀x) P (x, z) → (∃y) (Q(z) ∧ R(y, z)) para (∀z).

La fbf R(y, z) ocurre en el rango de los cuantificadores (∃y) y (∀z).


Dada una variable, x, que ocurre en una fbf, A, deseamos distinguir si una determinada ocu-
rrencia de x está o no en el rango de un cuantificador (Qx). Para ello introducimos las siguientes
definiciones:
Definición 1.13 Una ocurrencia de una variable, x, es una ocurrencia ligada si es la variable
de un cuantificador o bien si está en el rango de un cuantificador que la tiene como variable.
Una ocurrencia de una variable, x, es una ocurrencia libre si no es ligada.

Una variable es libre si tiene ocurrencias libres y es ligada si tiene ocu-


rrencias ligadas. 3

r r Nótese que, dada una fbf, A, una misma variable, x, puede ser libre y ligada a la vez en A.
ee

Ejemplo 1.8

1. En la fbf
((∀x)P (x, y, a) ∨ Q(b, f (x, c)) → (∃y)(Q(d, y) ∧ D(y))
las dos primeras ocurrencias de x son ligadas y la tercera libre, mientras que la variable y
es libre en la primera ocurrencia y ligada en las tres restantes.

2. En la fbf
(∀x)P (x, y) → (∃y)(P (x, y) ∧ Q(z))
las dos primeras ocurrencias de x son ligadas mientras que la tercera es libre. La primera
ocurrencia de la variable y es libre, el resto, son ocurrencias ligadas. La única aparición de
la variable z es libre.

Podemos definir el conjunto de las variables libres y de las variables ligadas de una fbf recursi-
vamente como sigue:
Definición 1.14 El conjunto de variables libres de una fbf A, denotado Vlibre (A) se define
recursivamente como sigue:

1. Vlibre (P (t1 , . . . , tn )) = V(t1 ) ∪ · · · ∪ V(tn ), donde V(ti ) denota el conjunto de variables que
intervienen en el término ti .

2. Vlibre (¬A) = Vlibre (A).

3. Vlibre (A ∗ B) = Vlibre (A) ∪ Vlibre (B), donde (∗ ∈ {∧, ∨, →, ↔}.

4. Vlibre ((Qx)A) = Vlibre (A) − {x}.

Definición 1.15 El conjunto de variables ligadas de una fbf A, que denotaremos Vligada (A),
se define recursivamente como sigue:
3
La noción de variable libre en una fbf es fundamental para trabajar en los lenguajes de primer orden. Intui-
tivamente, las variables libres son aquellas que pueden ser sustituidas.
1.1. LENGUAJE L1 DE UNA LÓGICA DE PRIMER ORDEN 15

1. Vligada (P (t1 , . . . , tn )) = ∅.
2. Vligada (¬A) = Vligada (A).
3. Vligada (A ∗ B) = Vligada (A) ∪ Vligada (B), donde ∗ ∈ {∧, ∨, →, ↔}.
4. Vligada ((Qx)A) = Vligada (A) ∪ {x}.

Como hemos indicado, para una fbf A, la intersección de Vlibre (A) y Vligada (A) no necesariamente
es el conjunto vacı́o. Ası́, para la fbf
A = ((∀x) P (x, a, z) ∨ Q(b, f (x, c)) → (∃y)(C(d, y) ∧ D(y))
se tiene que Vlibre (A) = {x, z} y Vligada (A) = {x, y}.

Notación: Para expresar que las variables x1 , . . . , xn son libres en la fbf A escribiremos
A(x1 , . . . , xn ). Con esta notación destacamos que {x1 , . . . , xn } es un subconjunto de Vlibre (A),
pero téngase en cuenta que este subconjunto puede ser propio, es decir, la notación A(x1 , . . . , xn )
no exige que x1 , . . . , xn sean las únicas variables con ocurrencias libres en A, son simplemente
variables que queremos destacar.
Definición 1.16 Una fbf A es cerrada o un enunciado si Vlibre (A) = ∅.
Definición 1.17 Si Vlibre (A) = {x1 , . . . , xn }, se llama cierre universal de A a la fbf
(∀x1 )(∀x2 ) . . . (∀xn )A(x1 , . . . , xn )
Se llama cierre existencial de A a la fbf
(∃x1 )(∃x2 ) . . . (∃x1 )A(x1 , . . . , xn )

Las variables son sı́mbolos que representan a elementos arbitrarios del universo de discurso.
En el desarrollo de algoritmos, transformaciones,etc, necesitaremos “particularizar” las fbfs a
elementos concretos o menos arbitrarios; esto lo haremos mediante la sustitución de variables:

1.1.6. Sustitución de variables


Comenzamos estableciendo qué se entiende por renombramiento de una variable ligada.
Definición 1.18 Sea A una fbf en la que intervienen cuantificadores. Un renombramiento
de una variable ligada x ∈ Vligada(A) es la sustitución de x (la variable renombrada) tanto en
el cuantificador que la tiene como variable, como en su rango, por otra variable (llamada la
variable de renombramiento) que no intervenga en dicho rango.
Ejemplo 1.9 Para la fbf
A = ((∀x) P (x, a, z) ∨ Q(b, f (x, c)) → (∃y)(C(d, y) ∧ D(y))
el renombramiento de x por la variable de renombramiento v, nos proporciona la fbf
A′ = ((∀v)P (v, a, z) ∨ Q(b, f (x, c)) → (∃y)(C(d, y) ∧ D(y))
16 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

r r Es obvio que el proceso de renombramiento en una fbf, A, tan sólo modifica Vligada (A). El
ee
conjunto de las variables libres, Vlibre (A), no se modifica. Ası́, en el ejemplo anterior,

Vlibre (A′ ) = Vlibre (A) = {x, z} y Vligada (A′ ) = {v, y}

Notación:

1. Sea x una variable y sea t1 , t2 términos. Denotaremos mediante [x/t2 ]t1 el término resul-
tante de sustituir en t1 las apariciones de la variable x por el término t2 .

2. Sea x ∈ Vlibres (A). La fbf que se obtiene a partir de la fbf A por sustitución de todas
las ocurrencias libres de la variable x por un término t, la denotaremos por [x/t]A. Si
representamos la fbf A por A(x) para destacar que x tiene ocurrencias libres en A, usaremos
la expresión A(t) para representar a [x/t]A.

Inductivamente:
Definición 1.19

- Si t1 ∈ V y t1 = x, entonces [x/t2 ]t1 = t2 .

- Si t1 ∈ V y t1 6= x, entonces [x/t2 ]t1 = t1 .

- Si t1 ∈ C, entonces [x/t2 ]t1 = t1 .

- Si t1 = f (u1 , . . . , un ), siendo u1 , . . . , un términos cualesquiera, entonces

[x/t2 ]t1 = f ([x/t2 ]u1 , . . . , [x/t2 ]un )

Definición 1.20 Si A es una fbf, x un sı́mbolo de variable y a es un sı́mbolo de constante,


definimos [x/a]A inductivamente como sigue:

- Si A = P (t1 , . . . , tn ) es un átomo, entonces [x/a]A = P ([x/a]t1 , . . . , [x/a]tn ).

- Si A = ¬B, entonces [x/a]A = ¬[x/a]B.

- Si A = B ∗ C, entonces [x/a]A = [x/a]B(∗[x/a]C (donde ∗ ∈ {∧, ∨, →, ↔}-

- Si A = (Qx)B, entonces [x/a]A = A

- Si A = (Qy)B con y 6= x, entonces [x/a]A = (Qy)[x/a]B

Definición 1.21 Dada la fbf A(x) y el término básico (sin variables), t, a la fbf [x/t]A(x) la
denominamos una instancia básica de A(x). El mecanismo de sustituir una variable ligada
por un término básico se denomina “instanciación”. 4

4
Somos conscientes de que esta denominación es desafortunada, quizás deberı́amos haber optado por “concre-
ción” en lugar de “instanciación”. La decisión final ha venido condicionada por el uso habitual que se hace de
esta expresión.
1.1. LENGUAJE L1 DE UNA LÓGICA DE PRIMER ORDEN 17

r r El comportamiento de una variable cuantificada es análogo al de una declaración de variable


ee
local en un procedimiento Pascal y, como tal, no se ve afectada por las asignaciones.

En la práctica, desearemos obtener una fbf B a partir de otra fbf A mediante la sustitución en
A de variables por términos y de modo que el significado de A y B sea el mismono. Aún no
hemos descrito la semántica para los lenguajes de primer orden, pero aún ası́, no dudamos en
afirmar que si sustituimos en la fbf

A = (∀x)(P (x) → Q(y))

la variable y por la variable x, la fbf obtenida

B = (∀x)(P (x) → Q(x))

tiene un significado diferente al de A. Más en general, si sustituimos la variable y, por ejemplo,


por el término f (x, z), obtenemos la fbf

B = (∀x)(P (x) → Q(f (x, z)))

en la que existe una interacción entre el cuantificador (∀x) y su rango, que no existı́a en A. Por
lo tanto, si deseamos no alterar es significado de las fbfs, el mecanismo general para sustituir
una variable por un término, requiere ciertas precauciones que nos aseguren que sustituimos
ocurrencias libres en A por “términos libres” en A. En definitiva, como tendremos ocasión de
comprobar cuando estudiemos la semántica, para evitar este hecho conocido en la bibliografı́a
como conflicto de variables,5 requerimos la siguiente definición:
Definición 1.22 Sea A una fbf, x ∈ Vlibre (A) y t un término en el que intervienen las variables
V(t) = {x1 , . . . , xn }. Se dice que el término t es libre para x en A(x) (o bien que x es
sustituible por t en A(x)) si, para toda variable xi ∈ V(t), se tiene que ninguna ocurrencia
libre de x en A está en el rango de una ocurrencia en A del cuantificador (Qxi ). Es decir, las
ocurrencias de xi surgidas como consecuencia de la sustitución de x por t, son ocurrencias libres
en A(t).

r r Como consecuencia inmediata de la definición, tenemos que:


ee

Un término básico es libre para cualquier variable en cualquier fbf.


Dado un término t, si V(t) ∩ Vligada (A) = ∅, entonces t es libre para toda variable libre
de A.

Ejemplo 1.10

1. y es libre para x en P (x, a).

2. y no es libre para x en (∀y)P (x, y).

3. En la fbf (∀y)P (x, y) → (∃x)Q(x, z, a), el término f (a, y) no es libre para x, pero sı́ es
libre para z.
5
Variable clash en la bibliografı́a inglesa.
18 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

La siguiente definición, establece cómo obtener [x/t]A, diferenciando los casos en que el término
t es o no libre para la variable x en A(x).
Definición 1.23 Si t es libre para x en A(x), la sustitución en A de x por t consiste en sustituir
en A las ocurrencias libres de x por t.
Si t no es libre para x en A(x) y V(t) = {x1 , . . . , xn }, la sustitución en A de x por t consiste en
1. Renombrar en A las variables xi tales que x ocurre en el rango de (Qxi ) por una variable
de renombramiento que no ocurra en t.

2. Sustituir en A las ocurrencias libres de x por t.

Ejemplo 1.11 Dada la fbf



(∀z) P (x) → (∃x)Q(x, z) ∨ (∃y)D(x, y)

El término f (a, y, z) no es libre para x. Para realizar la sustitución de x por el término f (a, y, z)
podemos proceder como sigue:
1. Como x ocurre libre en el rango de (∀z) y (∃y), renombramos la variable y y la variable
z, por ejemplo, por v y u respectivamente (que no ocurren en f (a, y, z)), obteniendo

(∀u)(P (x) → (∃x)Q(x, u)) ∨ (∃v)D(x, v)

2. En segundo lugar, sustituimos las ocurrencias libres de x en A por f (a, y, z). Obtenemos
ası́ la fbf:
(∀u)(P (f (a, y, z)) → (∃x)Q(x, u)) ∨ (∃v)D(f (a, y, z), v)

r r Las variables tienen en lógica un papel análogo al que tienen en análisis o en álgebra. Veamos
ee
algunos ejemplos:
− En la función descrita por f (x) = x + 6, la variable x no designa un objeto, sino el
emplazamiento de un objeto, el lugar del cuerpo de la función en el que ha de colocarse un
argumento para evaluar la función. La variable x está ligada; más precisamente, la primera
ocurrencia de x crea una ligadura, a la que se enganchan las demás ocurrencias de x. No hay
inconveniente alguno en renombrar x, es decir, reemplazar las dos ocurrencias de x por y:
f (y) = y + 6. Pero obviamente, no está permitido reemplazar una ocurrencia solamente:

f (x) = y + 6; f (y) = x + 6
Sk=8
− En la expresión k=1 Aki , la variable i es una variable libre y k es una variable ligada.
Se puede por lo tanto renombrar k, por ejemplo, por j sin alterar su significado, pero no
podemos renombrar k por i.
− Si consideramos la fórmula para evaluar una integral doble según el teorema de Fubini
Z Z !
b h(y)
f (x, y)dx dy.
a g(y)

en la expresión entre paréntesis todas las ocurrencias de x están ligadas (por la ligadura dx),
sin embargo las de y son ocurrencias libres, en el sentido de que no han de ser evaluadas en
la primera etapa.
1.2. SEMÁNTICA PARA LOS LENGUAJES DE PRIMER ORDEN 19

Claramente, no es posible sustituir “arbitrariamente” en la expresión entre paréntesis las


variables libres por otras. Por ejemplo, las expresiones
Z Z ! Z Z !
b h(z) b h(y)
f (x, z)dx dy f (x, y)dx dy
a g(z) a g(y)

no tiene el mismo significado.

Para terminar este apartado, consideremos la fbf

(∀x)(P (x, a) → (∃x)R(x))

en ella existe un cuantificador (Qx) en el rango de un cuantificador (Q′ x), es decir, existe un
anidamiento de cuantificadores con la misma variable de cuantificación. Es posible (y deseable,
como posteriormente nos confirmará la semántica) evitar la situación anterior restringiendo la
regla que permite construir fbfs cuantificadas del siguiente modo:
Definición 1.24 Si x es una variable y A es una fbf sin ocurrencias ligadas de x entonces
(∀x)A y (∃x)A son fbfs.

1.2. Semántica para los Lenguajes de Primer Orden


Como ya conocemos, la semántica de un lenguaje tiene como fin dar significado a las fbfs del
lenguaje a partir de su estructura sintáctica y establecer la noción (semántica) de deducción. En
consecuencia, como señalamos en el segundo capı́tulo del primer volumen, una mayor compleji-
dad del lenguaje implica una estructura más compleja de los modelos. Ası́ pues, dar significado
a las fbfs de un lenguaje de primer orden conlleva una mayor dificultad que la requerida en el
caso proposicional, en el que una interpretación queda determinada sin más que asignar uno de
los valores de verdad {0, 1} a cada sı́mbolo proposicional.
Como ya sabemos, definir la semántica requiere definir una terna (S, D, I), donde S es el conjunto
de valores semánticos, D ⊆ S es el conjunto de valores semánticos destacados e I el conjunto
de interpretaciones.
La lógica de primer orden, como la lógica proposicional, es bivaluada, es decir S = {0, 1} y
el conjunto de valores semánticos destacado es igualmente D = {1}. La mayor dificultad la
encontramos en la tarea de definir el conjunto de interpretaciones, I, es decir, en la definición de
interpretación, en cómo establecer cuándo una fbf es verdadera o falsa. Puesto que el lenguaje
nos permite detallar de qué o quién afirmamos, qué afirmamos y si afirmamos sobre todos los
entes/individuos o de alguno (concreto o arbitrario), necesitamos en primer lugar fijar un dominio
o universo del discurso, U , que determine sobre qué entes/individuos afirmamos y, elegido éste,

1. asignar elementos especı́ficos de U a los sı́mbolos de constantes,

2. asignar funciones n-arias sobre U a los sı́mbolos de función n-arios y

3. asignar relaciones n-arias sobre U a los sı́mbolos de predicados n-arios.

Por otra parte, si la fbf contiene variables libres, debemos especificar qué valores del dominio
representan. Ası́, dada la fbf (∀x)P (x), si consideramos U = N y asignamos a P el significado
20 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

“es par”, podemos asegurar que la fbf es falsa en esta interpretación. Pero nada podemos afirmar
sobre la fbf P (x) si no nos pronunciamos sobre el número natural representado por x. Análo-
gamente, podemos pensar en una interpretación en la que la fórmula 2 + 3 = 5 es verdadera,6
pero no podremos pronunciarnos sobre la verdad o no de la fórmula x + 3 = 4 si no sabemos el
número representado por x.
Ocurre como en un procedimiento con parámetros en un programa PASCAL, el procedimiento

procedure P (X : integer ; Y : integer)

no puede computarse salvo que sea llamado con parámetros actuales, por ejemplo P (10, 35).
Deseamos, pues, disponer de un concepto de interpretación que nos permita:

asignar a toda fbf cerrada o enunciado (sin variables libres) el valor de verdad 0 ó 1,

contemplar una fbf con variables libres como una afirmación sobre el dominio, que es
verdadera o falsa dependiendo de la asignación realizada a las variables libres.

1.2.1. Semántica de Tarski


La semántica que vamos a exponer fue dada por Alfred Tarski en 1936.
De acuerdo con las consideraciones anteriores, el concepto de interpretación para un lenguaje
de primer orden se introduce como sigue:
Definición 1.25 Una interpretación para un lenguaje de primer orden es un par (U, I) donde:

U es un conjunto no vacı́o llamado dominio o universo.

I es una aplicación, que asocia:

- A cada sı́mbolo de constante a un elemento I(a) ∈ U .


- A cada sı́mbolo de predicado n-ario P una relación n-aria sobre U , es decir, I(P ) ⊆ U n . 7
- A cada sı́mbolo de función n-aria f una función n-aria sobre U , es decir, I(f ) : U n −→
U.

r r Antes de continuar, tenemos ya elementos suficientes para darnos cuenta de la complejidad


ee
de la semántica que estamos definiendo: Imaginemos una situación muy simple, imaginemos,
por ejemplo que nuestro lenguaje no tiene ni sı́mbolos de constantes ni sı́mbolos de función,
que tan sólo tiene un sı́mbolo de predicado monario P y dos sı́mbolos de predicados bina-
rios, Q y R, e imaginemos que consideramos un dominio sencillo, tan solo con 4 elementos
U = {u1 , u2 , u3 , u4 } ¿de cuántas interpretaciones I podemos disponer?. Tenemos 24 posibles
interpretaciones posibles para P y nada menos que 216 posibles interpretaciones para cada
uno de los predicados binarios Q y R.
6
En estos ejemplos hemos escrito 2 + 3 = 5 en lugar de = (+(2, 3), 5) permitiéndonos la licencia de usar
notación infija para los predicados y funciones. Nos tomaremos esta libertad cuando consideremos que aumenta
la legibilidad.
7
Ası́, a cada sı́mbolo de predicado monario deberemos asociarle un subconjunto de U , a cada sı́mbolo de
predicado binario deberemos asociarle un conjunto de pares de elementos de U (es decir subconjunto de U × U ),
. . . a cada sı́mbolo de predicado n-ario un conjunto de n-tuplas (u1 , . . . , un ) de elementos de U .
1.2. SEMÁNTICA PARA LOS LENGUAJES DE PRIMER ORDEN 21

A veces hablamos de (U, I) como una “interpretación sobre el dominio U ”.


Dada una interpretación (U, I), al cardinal de U se le llama cardinal de la interpretación.
Dada una interpretación (U, I), las variables tienen el significado esperado, es decir, representan
elementos cualesquiera del dominio. Este significado se recoge mediante la noción de valuación
de variables:
Definición 1.26 Una valuación o asignación de variables (o un entorno) ξ asociada a una
interpretación (U, I) es una aplicación del conjunto de variables V en el dominio U .

ξ : V −→ U

r r En la semántica de los lenguajes de programación, una valuación de variables representa un


ee
estado de la memoria.

Definición 1.27 Dada una interpretación (U, I) y una valuación de variables ξ asociada a
ella, definimos recursivamente una aplicación Iξ , llamada función de significado, que asigna
a cada término t un elemento Iξ (t) ∈ U como sigue:

1. Iξ (c) = I(c) para todo sı́mbolo de constante c.

2. Iξ (x) = ξ(x) para toda variable x.

3. Iξ (f (t1 , . . . , tn )) = I(f )(Iξ (t1 ), . . . , Iξ (tn )).

r r Obsérvese que si un término t es básico (sin variables), el significado en U asignado por una
ee
función de significado Iξ a t no depende del entorno ξ. Ası́, por ejemplo, si g es un sı́mbolo
de función monaria y a es un sı́mbolo de constante, Iξ (f (a)) = I(f )(I(a)). En adelante, por
abuso de notación, si t es un término básico escribiremos I(t) en lugar de Iξ (t). Ası́ pues,
escribiremos I(f (a)) en lugar de Iξ (f (a)).

Ahora, nuestro objetivo es introducir las nociones de satisfacibilidad y de validez. Para ello
requerimos previamente conocer el valor de verdad asignado por una función de valuación a una
fbf.
Definición 1.28 Dada una interpretación (U, I) y una valuación de variables ξ asociada a
(U, I), definimos el valor de verdad de un átomo como sigue: Iξ (⊥) = 0, Iξ (⊤) = 1 y

Iξ (P (t1 , . . . , tn )) = 1 si y sólo si (Iξ (t1 ), . . . , Iξ (tn )) ∈ I(P )

Es decir, Iξ (P (t1 , . . . , tn )) = 1 si la n-upla (Iξ (t1 ), . . . , Iξ (tn )) de elementos de U están en la


relación I(P ) (es decir, en la relación n-aria en U que I asocia a P ).
Esta definición se extiende recursivamente a todas las fbfs del siguiente modo:

Iξ (¬A) = 1 si y sólo si Iξ (A) = 0, es decir, Iξ (¬A) = 1 − Iξ (A)

Iξ (A ∧ B) = 1 si y sólo si Iξ (A) = 1 y Iξ (B) = 1, es decir, Iξ (A ∧ B) = mı́n{Iξ (A), Iξ (B)}

Iξ (A ∨ B) = 1 si y sólo si Iξ (A) = 1 o Iξ (B) = 1, es decir, Iξ (A ∨ B) = máx{Iξ (A), Iξ (B)}


22 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

Iξ (A → B) = 1 si y sólo si Iξ (A) = 0 o Iξ (B) = 1, es decir,

Iξ (A → B) = máx{1 − Iξ (A), Iξ (B)}

La definición para las fbfs (∀x)A y (∃x)A requiere una definición previa que permite expresar
la asignación de valores a una variable concreta.
Definición 1.29 Dos valuaciones de variables ξ y ξ ′ se dicen x-equivalentes si ξ ′ (y) = ξ(y)
para toda variable y 6= x.
Obviamente, dado un sı́mbolo de variable x, la relación de x-equivalencia es una relación de
equivalencia en el conjunto de valuaciones de variables.
Definición 1.30

Iξ ( (∀x)A ) = 1 si y sólo si Iξ ′ (A) = 1 para toda valuación de variables ξ ′ que sea x-


equivalente a ξ, es decir,

Iξ ( (∀x)A ) = inf{Iξ ′ (A) | ξ ′ es x-equivalente a ξ}

Iξ ( (∃x)A) = 1 si y sólo si Iξ ′ (A) = 1 para alguna valuación de variables ξ ′ que sea x-


equivalente a ξ, es decir,

Iξ ( ((∃x)A ) = sup{Iξ ′ (A) | ξ ′ es x-equivalente a ξ}

r r En la sección anterior, hemos analizado el proceso “sintáctico” de sustitución de una variable


ee
por un término en una fbf. ¿qué relación existe entre el significado de una fbf y el significado
de la fbf obtenida tras este proceso?. Como indicamos allı́, en las aplicaciones nos intere-
sará preservar el significado. Por ejemplo, al sustituir x por f (y) en P (x, a) procuramos que
el objeto que asignamos a la variable x y al término f (y) sea el mismo. Tenemos al respecto
el siguiente resultado, cuya demostración se deja al lector:

Teorema 1.1 (Teorema de sustitución)

1. Iξ ([x/t2 ]t1 ) = Iξ ′ (t1 ), siendo ξ ′ x-equivalente a ξ y Iξ (t2 ) = ξ ′ (x).

2. Iξ ([x/t]A) = Iξ ′ (A), siendo ξ ′ x-equivalente a ξ, t está libre para x en A y, además,


Iξ (t) = ξ ′ (x).

1.2.2. Satisfacibilidad y Validez


Definición 1.31
1. Una fbf A se dice satisfacible o modelizable, si existe una interpretación (U, I) y una
valuación de variables ξ asociada a (U, I), tal que Iξ (A) = 1.

2. Una fbf A se dice verdadera en una interpretación (U, I), denotado |=(U,I) A o bien por
I(A) = 1 (si no hay lugar a confusión), si para toda valuación de variables ξ se tiene que
Iξ (A) = 1.
1.2. SEMÁNTICA PARA LOS LENGUAJES DE PRIMER ORDEN 23

3. Una fbf, A, se dice que es válida, denotado |= A, si es verdadera en toda interpretación


(U, I), es decir, si I(A) = 1 para toda interpretación (U, I). Obviamente, ⊤ es válida.

4. Una fbf A se dice insatisfacible o que es una contradicción, si Iξ (A) = 0 para toda
interpretación (U, I) y toda valuación de variables ξ.

5. Un conjunto Ω de fbfs se dice satisfacible o modelizable, si existe alguna interpretación


(U, I) y una valuación de variables ξ asociada a (U, I) tal que Iξ (A) = 1 para toda fbf A
de Ω.

r r El siguiente ejemplo nos advierte de un posible error, confundir los conceptos de fbf verdadera
ee
en una interpretación, I, y fbf satisfacible:
- Para que una fbf A sea verdadera en una interpretación, I, se requiere que para toda
valuación ξ se tenga que Iξ (A) = 1.
- Para que una interpretación, I, satisfaga o modelize a una fbf, A, basta que para alguna
valuación ξ se tenga que Iξ (A) = 1.

Como en la lógica proposicional, es costumbre utilizar indistintamente las expresiones “A es


verdadera en M = (U, I)” y “M es un modelo para A”.
r r Dada una fbf, A o, en general, un conjunto de fbfs, Ω, una interpretación (U, I) y una valua-
ee
ción de variables ξ, el valor de verdad asignado a Ω por Iξ sólo depende de las imágenes por I
de los sı́mbolos de constante, de función y de predicados que intervienen en Ω. Ésto justifica
la siguiente noción de interpretación para una fbf (en la que utilizamos una representación
más transparente):

Definición 1.32 Una interpretación para un conjunto finito de fbfs, Ω (en particular
para una fbf A) es una tupla de la forma

M = (U ; {u1 , . . . , un }; {F1 , . . . , Fm }; {R1 , . . . , Rk })

donde ui son los elementos de U asignados a los sı́mbolos de constantes {a1 , . . . an } que inter-
vienen en Ω, Fi son las funciones sobre U asignadas a los sı́mbolos de funciones {f1 , . . . fm } que
intervienen en Ω y Ri son las relaciones en U asignadas a los sı́mbolos de predicado {P1 , . . . Pk }
que intervienen en Ω.

Ejemplo 1.12 Una interpretación para (∀x)(P (x) → Q(f (x), a)) es

({1, 2, 3}; {a ; 1}; {f ; {(1, 2), (2, 1), (3, 3)}}; {P ; {2}, Q ; {(1, 1), (1, 2)}}) 8

Definición 1.33 Una estructura para una fbf A es una tupla de la forma

(CA , FA , PA ; U ; {u1 , . . . , un }; {F1 , . . . , Fm }; {R1 , . . . , Rk })

donde
8
En definitiva, una interpretación M para un conjunto finito de fbfs Ω, es la restricción de una interpretación
(U, I) al conjunto de sı́mbolos de constantes, de sı́mbolos de funciones y de sı́mbolos de predicado que intervienen
en Ω. En adelante, para expresar el valor de verdad asignado por M a A seguiremos escribiendo I(A).
24 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

Σ = CA ∪ FA ∪ PA es una signatura para A y

M = (U ; {u1 , . . . , un }; {F1 , . . . , Fm }; {R1 , . . . , Rk }) es una interpretación para A.

Definición 1.34 Una estructura para un conjunto finito de fbfs Ω es una tupla de la
forma
(CΩ , FΩ , PΩ ; U ; {d1 , . . . , dn }; {F1 , . . . , Fm }; {R1 , . . . , Rk })
donde

Σ = CΩ ∪ FΩ ∪ PΩ ) es una signatura para Ω

M = (U ; {u1 , . . . un }; {F1 , . . . Fm }; {R1 , . . . Rk }) es una interpretación para Ω.

r r En la lógica proposicional, el cardinal del conjunto de interpretaciones es infinito, concre-


ee
tamente, 2ℵ0 = |{0, 1}||Vprop| , donde Vprop es el conjunto de sı́mbolos proposicionales. Sin
embargo, el número de interpretaciones para una fbf A es siempre finito (2n , si n es el núme-
ro de sı́mbolos proposicionales que intervienen en A). Esta propiedad nos permite representar
los valores de verdad de una fbf (para cada una de sus interpretaciones) mediante las cono-
cidas tablas de verdad y, en consecuencia, afirmar la decidibilidad de la lógica proposicional.
Por el contrario, en la lógica de primer orden, tanto el conjunto de todas las interpretaciones,
como el conjunto de interpretaciones para una fbf es infinito, ya que aunque tres de las
componentes en una interpretación M = (U ; {u1 , . . . un }; {F1 , . . . Fm }; {R1 , . . . Rk }) son de
cardinal finito, nos vemos obligados a contemplar cualquier universo U y, por lo tanto, nos
vemos obligados a contemplar universos U de cualquier cardinal. Por lo tanto, las fbfs se
pueden interpretar sobre un número infinito de dominios U y para cada uno de ellos, tenemos
que considerar cualquier combinación de elecciones para la interpretación de las constantes,
de las funciones y de los predicados.

Ejemplo 1.13

1. Veamos que P (x, 0) es satisfacible. En efecto, sea la interpretación (Z, I) con I(P ) = “ ≤′′ .
Para toda valuación de variables, ξ, tal que ξ(x) ≤ 0 se tiene que Iξ (P (x, 0)) = 1. Sin
embargo, P (x, 0) no es verdadera en (Z, I), ya que para toda valuación, ξ, tal que ξ(x) > 0
se tiene que Iξ (P (x, 0)) = 0.

2. Consideremos ahora P (x) y la interpretación

M = ({1, 2}; ∅; ∅; {P ; {1}})

Puesto que en la fbf sólo interviene el sı́mbolo de variable x, dada una valuación de va-
riables, estamos únicamente interesados en qué valor asigna ésta a x, es decir, en las
valuaciones de variables ξ tales que ξ(x) = 1 y en las valuaciones de variables ξ ′ tales que
ξ ′ (x) = 2. Obviamente, cada valuación x-equivalente a una del primer tipo es del segundo
tipo y viceversa.
Para estas valuaciones se tiene que:

Iξ (P (x)) = 1 ya que 1 = ξ(x) ∈ I(P ) = {1}


Iξ ′ (P (x)) = 0 ya que 2 = ξ ′ (x) 6∈ I(P ) = {1}
1.2. SEMÁNTICA PARA LOS LENGUAJES DE PRIMER ORDEN 25

Por lo tanto, P (x) es satisfacible pero no es verdadera en I, es decir, I(P (x)) = 0.


3. Dada (∀x)(∃y)Q(x, y), consideremos la interpretación
M = ({1, 2}; ∅; ∅; {Q ; {(1, 1), (2, 2)}})
Puesto que en ella sólo intervienen los sı́mbolos de variables x e y, dada una valuación de
variable, ξ, estamos únicamente interesados en qué valor asigna ξ a x e y, es decir, estamos
interesados en las valuaciones de variables
- ξ1 tal que ξ1 (x) = ξ1 (y) = 1
- ξ2 tal que ξ2 (x) = ξ2 (y) = 2
- ξ3 tal que ξ3 (x) = 1 y ξ3 (y) = 2
- ξ4 tal que ξ4 (x) = 2 y ξ4 (y) = 1

ee
r rLas valuaciones de tipo ξ1 y de tipo ξ4 son x-equivalentes.
Las valuaciones de tipo ξ2 y de tipo ξ3 son x-equivalentes.
Las valuaciones de tipo ξ1 y de tipo ξ3 son y-equivalentes.
Las valuaciones de tipo ξ2 y de tipo ξ4 son y-equivalentes.

Intuitivamente es claro que (∀x)(∃y)Q(x, y) es verdadera en la interpretación dada. For-


malmente, necesitamos las siguientes consideraciones:
Iξ1 (Q(x, y)) = 1, ya que (1, 1) = (ξ1 (x), ξ1 (y)) ∈ I(Q) = {(1, 1), (2, 2)}. Por lo tanto,
Iξ1 ((∃y)Q(x, y)) = 1 y al ser ξ1 y ξ3 y-equivalentes también Iξ3 ((∃y)Q(x, y)) = 1.
Iξ2 (Q(x, y)) = 1, ya que (2, 2) = (ξ2 (x), ξ2 (y)) ∈ I(Q) = {(1, 1), (2, 2)}. Por lo tanto,
Iξ2 ((∃y)Q(x, y)) = 1 y al ser ξ2 y ξ4 y-equivalentes también Iξ4 ((∃y)Q(x, y)) = 1
y, en consecuencia, para toda ξi donde i ∈ {1, 2, 3, 4}, se tiene que
Iξi ( (∀x)((∃y)Q(x, y) ) = 1
Por lo tanto, (∀x)(∃y)Q(x, y) es verdadera en la interpretación considerada, es decir,
I( (∀x)(∃y)Q(x, y) ) = 1.

Los siguientes resultados son de gran interés para poder facilitar la manipulación semántica de
las fbfs.
Teorema 1.2 Sea una fbf A y sea M = (U, I) una interpretación de L1 , entonces si ξ y ξ ′ son
dos valuaciones de variables tales que ξ(x) = ξ ′ (x) para toda variable x tal que x ∈ Vlibre (A), se
tiene que
Iξ (A) = 1 si y sólo si Iξ ′ (A) = 1

Demostración: Lo demostramos por inducción sobre el número n de conectivas booleanas y


sı́mbolos de cuantificación en A.
Supongamos que n = 0. Entonces A es un átomo y toda variable en A es libre. Por lo tanto,
puesto que ξ(x) = ξ ′ (x) para toda variable x en A, se tiene que Iξ (A) = Iξ ′ (A).
Supongamos que el resultado es cierto para n < k y lo demostramos para n = k.
Demostramos los casos en que A = ¬B, A = B ∧ C y A = (∀x)B. La demostración para las
otras conectivas booleanas y para ∃ son análogas.
26 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

Sea A = ¬B. Sea M = (U, I) una interpretación de L1 y sean ξ y ξ ′ dos valuaciones


de variables tales que ξ(x) = ξ ′ (x) para toda variable x tal que x ∈ Vlibre (A). Entonces,
Iξ (A) = 1 si y sólo si Iξ (B) = 0 y, puesto que Vlibre (A) = Vlibre (B), se tiene (por hipótesis
de inducción) que, Iξ ′ (B) = Iξ (B). Por lo tanto, Iξ (A) = 1 si y sólo si Iξ ′ (A) = 1.

Sea A = B ∧ C. Sea M = (U, I) una interpretación de L1 y ξ y ξ ′ dos valuaciones de


variables tales que ξ(x) = ξ ′ (x) para toda variable x tal que x ∈ Vlibre (A). Entonces,

Iξ (A) = 1 si y sólo si Iξ (B) = Iξ (C) = 1 y, puesto que Vlibre (A) = Vlibre (B) ∪
Vlibre (C), por la hipótesis de inducción tenemos que, Iξ ′ (B) = Iξ (B) y Iξ ′ (C) =
Iξ (C).

Por lo tanto, Iξ (A) = 1 si y sólo si Iξ ′ (A) = 1.

Sea A = (∀x)B. Sea M = (U, I) una interpretación de L1 y sean ξ y ξ ′ dos valuaciones


de variables tales que ξ(x) = ξ ′ (x) para toda variable x tal que x ∈ Vlibre (A). En este
caso, Vlibre (B) = Vlibre (A) ∪ {x}. Supongamos que Iξ (A) = 1 y veamos que Iξ ′ (A) = 1.
Para ello habrá que comprobar que Iµ′ (B) = 1 para toda valuación de variables µ′ que sea
x-equivalente a ξ ′ :
Sea µ′ una valuación de variables x-equivalente a ξ ′ . Consideremos la valuación de variables
µ como sigue:  ′
µ (y), si y ∈ Vlibre (B)
µ(y) =
ξ′(y), en caso contrario
Veamos que µ es x-equivalente a ξ. Sea y cualquier variable distinta de x, como µ′ es
x-equivalente a ξ ′ , resulta que µ′ (y) = ξ ′ (y). Ahora tenemos dos casos:

• y ∈ Vlibre (B).
Entonces µ(y) = µ′ (y) (por def. de µ), luego µ(y) = ξ ′ (y). Ahora bien, por hipótesis,
ξ y ξ ′ coinciden en los valores asignados a las variables de Vlibre (B), por tanto, µ(y) =
ξ(y).
• y∈
/ Vlibre (B).
Entonces µ(y) = ξ ′ (y) (por def. de µ) y obtenemos el mismo resultado que antes.

A partir de lo anterior resulta, entonces, que Iµ (B) = 1, pues Iξ (A) = 1. Ahora bien puesto
que µ(y) = µ′ (y) para toda y ∈ Vlibre (A), por hipótesis de inducción, Iµ′ (B) = Iµ (B) y
entonces Iµ′ (B) = 1. Por tanto, se tiene que Iξ ′ (A) = 1.
La demostración del inverso es análoga.

Teorema 1.3 Dada una fbf cerrada A y una interpretación M = (U, I), se tiene que I(A) = 1
o bien I(A) = 0

Demostración: Puesto que A no tiene variables libres, dos valuaciones de variables cuales-
quiera ξ y ξ ′ cumplen la hipótesis del teorema anterior. Por lo tanto, Iξ (A) = 1 si y sólo si
Iξ ′ (A) = 1. Ası́ pues, Iξ (A) = 1 para toda valuación de variables ξ o bien Iξ (A) = 0 para toda
valuación de variables ξ, es decir, I(A) = 1 ó I(A) = 0.
1.2. SEMÁNTICA PARA LOS LENGUAJES DE PRIMER ORDEN 27

Teorema 1.4 Dada una fbf A

1. A es válida si y sólo si ¬A es insatisfacible.

2. A(x1 , . . . , xn ) es satisfacible si y sólo si su cierre existencial lo es.

3. A(x1 , . . . , xn ) es válida si y sólo si su cierre universal lo es. 9

Demostración:

1. Es evidente.

2. Bastará probar que A(x) es satisfacible si y sólo si (∃x)A es satisfacible.


Supongamos que A(x) es satisfacible, sea (U, I) una interpretación y ξ una valuación de
variables tal que Iξ (A(x)) = 1. Entonces, Iξ ( ((∃x)A(x) ) = 1 (ya que ξ es x-equivalente a
ξ). Por lo tanto, (∃x)A(x) es satisfacible.
Inversamente, si (∃x)A(x) es satisfacible, entonces existe una interpretación (U, I) y una
valuación de variables ξ tal que Iξ ( (∃x)A(x) ) = 1. Por lo tanto, existe una valuación de
variables ξ ′ x-equivalente a ξ tal que Iξ ′ (A(x)) = 1 y A(x) es satisfacible.

3. Bastará probar que A(x) es válida si y sólo si (∀x)A es válida.


Supongamos que A(x) es válida. Entonces, si (U, I) es una interpretación cualquiera, se
tiene que, Iξ (A(x)) = 1 para toda valuación de variables ξ, luego lo es, en particular, para
las valuaciones x-equivalentes a ξ. Por lo tanto, I((∀xi )A(x)) = 1 y, puesto que (U, I) es
arbitraria, (∀x)A(x) es válida.
Inversamente, supongamos que (∀x)A(x) es válida. Entonces, si (U, I) es una interpretación
cualquiera, se tiene que, Iξ ((∀x)A(x)) = 1 para toda valuación de variables ξ y, por
definición, Iξ ′ (A(x)) = 1 para las valuaciones x-equivalentes a ξ. Por tanto, A(x) es válida.

r r El Teorema 1.4 nos permite afirmar que


ee

Toda la expresividad de la lógica de primer orden se obtiene usando


únicamente fbfs cerradas.
De hecho en un lenguaje de primer orden las fbfs cerradas son las que simbolizan los enun-
ciados del lenguaje natural.

Una vez demostrado el Teorema 1.4 podemos plantearnos redefinir la semántica limitándonos a
la consideración de las fbfs cerradas:
Definición 1.35 Si t1 , . . . , tn son términos básicos y

M = (U ; {u1 , . . . un }; {F1 , . . . Fm }; {R})

es una interpretación para P (t1 . . . , tn ), entonces definimos el valor de verdad de P (t1 . . . , tn )


como sigue:
9
Este resultado es de gran utilidad y nos permite, por ejemplo, escribir ecuaciones algebraicas sin usar los
cuantificadores universales. El lector estará familiarizado a ver expresiones como: x + y = y + x para afirmar que
+ es commutativa, dando por supuesto que nos referimos a cualquier elección de x e y.
28 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

I(P (t1 , . . . , tn )) = 1 si y sólo si (I(t1 ), . . . , I(tn )) ∈ I(P ) = R

Esta definición se extiende recursivamente a todas las fbfs cerradas del siguiente modo:
Si M = (U ; {u1 , . . . un }; {F1 , . . . Fm }; {R1 , . . . Rk }) es una interpretación para el conjunto de fbfs
cerradas {A, B}, entonces, I(⊥) = 0; I(⊤) = 1 y:
1. I(¬A) = 1 si y sólo si I(A) = 0

2. I(A → B) = 1 si y sólo si I(A) = 0 ó I(B) = 1

3. I(A ∧ B) = 1 si y sólo si I(A) = 1 y I(B) = 1

4. I(A ∨ B) = 1 si y sólo si I(A) = 1 ó I(B) = 1

5. I( (∃x)B) = 1 si y sólo si para algún u0 ∈ U , se tiene que

Iu0 ([x/b]B) = 1

donde b es un sı́mbolo de constante que no ocurre en B e Iu0 es la interpretación corres-


pondiente a la extensión de M que asocia u0 a b.

6. I( (∀x)B ) = 1 si y sólo si para todo u0 ∈ U , se tiene que

Iu0 ([x/b]B) = 1

donde b es un sı́mbolo de constante que no ocurre en B e Iu0 se define como en el punto


anterior.
Si nos referimos a las fbfs, podemos retomar las notaciones de la lógica clásica proposicional,
denotar por I el conjunto de interpretaciones, Mod(A) el conjunto de modelos de la fbf cerrada
A y por Mod(Ω) el conjunto de modelos de un conjunto, Ω, de fbfs cerradas. y establecer que
Definición 1.36
Una fbf cerrada A es satisfacible si Mod(A) 6= ∅.

Si Ω es un conjunto de fbfs cerradas, entonces Ω es satisfacible si Mod(Ω) 6= ∅.


Una fbf cerrada A es válida si Mod(A) = I.

Los ejemplos expuestos hasta aquı́ nos muestran que, a diferencia de la lógica clásica proposi-
cional, en la lógica clásica de primer orden, es laborioso analizar la satisfacibilidad o la validez
de una fbf. Incluso en ejemplos tan sencillos como los que hemos considerado, nos sentimos
agobiados por los formalismos. Pero no son los formalismos el único handicap, más adelante
probaremos que los problemas de la satisfacibilidad y la validez no son decidibles en L1 : son tan
sólo semidecidibles, ¡es el precio a pagar por su mayor expresividad!
Por ahora, nos conformaremos con analizar fbfs sencillas haciendo uso de la definición. Pero
incluso para este análisis, en los ejemplos siguientes, nos vamos a permitir expresarnos menos
formalmente.
Ejemplo 1.14 Consideremos el conjunto de fbfs

{P (a), (∀x)((∃y)(P (x) → Q(y, x))}


1.2. SEMÁNTICA PARA LOS LENGUAJES DE PRIMER ORDEN 29

(a) En la interpretación

({a, b, c}; {a ; a}; ∅; {P ; {a, b}, Q ; {(a, b), (a, c), (b, a), (c, a)}})

P (a) es, obviamente, verdadera. Veamos que (∀x)(∃y)(P (x) → Q(y, x)) también lo es.
Informalmente, podemos razonar como sigue:

- Si asignamos a a x, podemos asignar c a y con lo cual P (a) → Q(c, a) es verdadera.


- Si asignamos b a x, podemos asignar a a y con lo cual P (b) → Q(a, b) es verdadera.
- Si asignamos c a x, podemos asignar c a y con lo cual P (c) → Q(c, c) es verdadera.

(b) En la interpretación

(Z; {0}; ∅; {P ; N, Q ; {(m1 , m2 ) | m2 = m1 2 }})

P (a) es, obviamente, verdadera. Veamos que (∀x)(∃y)(P (x) → Q(y, x)) no lo es:
Si asignamos 8 a x, para cualquier asignación de un número entero m a y, se tiene que
8 6= m2 y, por lo tanto, (∀x)(∃y)(P (x) → Q(y, x)) no es verdadera.

(c) En la interpretación

(N; {0}; ∅; {P ; N − {0}, Q ; {(m1 , m2 ) | m1 < m2 }})

P (a) es, obviamente, falsa. Veamos que (∀x)(∃y)(P (x) → Q(y, x)) es verdadera:

- Si asignamos 0 a x, para cualquier asignación de un número natural m a y, P (0) →


Q(m, 0) es verdadera ya que P (0) es falsa.
- Si asignamos m 6= 0 a x, podemos asignar m − 1 a y con lo cual P (m) → Q(m − 1, m)
es verdadera ya que Q(m − 1, m) es verdadera.

r r La lógica de primer orden es una extensión de la lógica proposicional en el siguiente sentido:


ee

Todo enunciado formalizable en Lprop es también formalizable en L1 .


Si la formulación de un enunciado E en Lprop es una fbf válida en Lprop , entonces su
formalización en L1 es también una fbf válida en L1 .

Debido a que la semántica de los conectivos booleanos es la misma que para la lógica proposi-
cional, la noción de tautologı́a es extensible a la lógica de primer orden: Es inmediato que

Si en un esquema de tautologı́a de la lógica clásica proposicional sustituimos cada


metası́mbolo por una fbf del lenguaje de primer orden L1 , obtendremos también una
fbf válida (que llamaremos asimismo tautologı́a).

Tenemos, por lo tanto, el siguiente resultado:

Teorema 1.5 Todo esquema de tautologı́a de la lógica clásica proposicional proporciona un


esquema de tautologı́a en la lógica clásica de primer orden.
30 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

Ejemplo 1.15 La fbf

( (∃x)P (x, a) → (∀y)Q(y)) ↔ (¬(∃x)P (x, a) ∨ (∀y)Q(y))

es una tautologı́a obtenida del esquema válido en la lógica clásica proposicional:

(A → B) ↔ (¬A ∨ B)

Para probar que una fbf, A, en L1 no es válida, se requiere encontrar una interpretación en la
que dicha fbf sea falsa, es decir, un contramodelo para A.
Ejemplo 1.16 La fbf (∀x)(∃y)P (x, y) → (∃y)(∀x)P (x, y) no es válida ya que la interpretación
(N; ∅; ∅; {P ;≤}) es un contramodelo, es decir, un modelo para su negación.

1.2.3. Equivalencia Lógica

Definición 1.37 Sea M = (U, I) una interpretación en L1 . Dos fbfs A y B se dicen M-


equivalentes, denotado A ≡M B si I(A) = I(B), es decir, si para toda valuación de variables ξ
se tiene que Iξ (A) = Iξ (B).

Definición 1.38 Dos fbfs A y B se dice que son lógicamente equivalentes, denotado A ≡ B,
si A ≡M B para toda interpretación M en L1 . Obviamente,

A ≡M B si y sólo si A ↔ B es verdadera en M
A ≡ B si y sólo si A ↔ B es válida

En particular, dos fbfs cerradas A y B son lógicamente equivalentes si Mod(A) = Mod(B).

Los siguientes ejemplos de equivalencias muestran cómo, semánticamente, podemos expresar un


cuantificador en términos del otro:

(∀x)A ≡ ¬(∃x)¬A

(∃x)A ≡ ¬(∀x)¬A

En consecuencia, si O es un conjunto de conectivas completamente expresivo para la lógica


clásica proposicional, se tiene que

O ∪ {∀} y O ∪ {∃}

tienen total expresividad para la lógica clásica de primer orden. En particular,

{∧, ¬, ∀} y {¬, →, ∃}

son conjuntos adecuados de conectivas.


1.2. SEMÁNTICA PARA LOS LENGUAJES DE PRIMER ORDEN 31

r r Conviene hacer de nuevo hincapié en que una frase del lenguaje natural (de las contem-
ee
pladas por la lógica clásica de primer orden), como ocurrı́a en el caso proposicional, puede
ser formalizada por diversas fbfs del lenguaje L1 (más aún, por una infinidad numerable
de fbfs) todas ellas semánticamente equivalentes, es decir, que transmiten la misma infor-
mación. Ası́ pues, “No todas las aves pueden volar” puede ser puede ser formalizada por
¬(∀x) A(x) → V (x) , donde A(α) formaliza
 “α es un ave” y V (α) formaliza “α puede
volar”, o bien por (∃x) A(x) ∧ ¬V (x) , es decir “Existen aves que no pueden volar”.
Por lo tanto, ante una frase del lenguaje natural, nuestro quehacer habrá de centrarse en re-
flexionar cuál es la información que deseamos transmitir para después proceder a formalizarla
mediante L1 .

El siguiente resultado es una particularización del Teorema 1.5:


Teorema 1.6 Todo esquema de equivalencia en la lógica clásica proposicional es un esquema
de equivalencia en la lógica clásica de primer orden.
Por lo tanto, en L1 disponemos de todas las equivalencias básicas de la lógica clásica propo-
sicional: leyes de Morgan, ley de la doble negación, leyes de absorción, leyes de cero y uno,
etc.
Nos queda pues conocer las leyes en L1 que nos muestran la interacción de las conectivas boo-
leanas con los cuantificadores y de los cuantificadores entre sı́ y que son las siguientes:
1. (∃x)(∃y)A(x, y) ≡ (∃y)(∃x)A(x, y)
2. (∀x)(∀y)A(x, y) ≡ (∀y)(∀x)A(x, y)
3. (∀x)(A(x) ∧ B(x)) ≡ (∀x)A(x) ∧ (∀x)B(x)
4. (∃x)(A(x) ∨ B(x)) ≡ (∃x)A(x) ∨ (∃x)B(x)
5. Si x no ocurre en B, (∀x)(A(x) ∨ B) ≡ (∀x)A(x) ∨ B
6. Si x no ocurre en B, (∃x)(A(x) ∧ B) ≡ (∃x)A(x) ∧ B
7. Si ∗ ∈ {∧, ∨} y Q, Q′ ∈ {∀, ∃} y z no ocurre ni en A ni en B, entonces

(Qx)A(x) ∗ (Q′ x)B(x) ≡

(Qx)A(x) ∗ (Q′ z)B([x/z]) ≡ (Qx)(Q′ z)(A(x) ∗ B(z)) ≡ (Q′ z)(Qx)(A(x) ∗ B(z))

Demostración de 5:
El resto de las demostraciones son similares.
Supongamos que x no ocurre en B. 10 Sea (U, I) una interpretación cualquiera de L1 tal que
Iξ ((∀x)(A(x) ∨ B)) = 0. Entonces existe una valuación de variables ξ ′ x-equivalente a ξ tal que
Iξ ′ (A(x) ∨ B) = 0; es decir, Iξ ′ (A(x)) = Iξ ′ (B) = 0. Es claro, entonces, que Iξ ((∀x)A(x)) = 0.
Además, dado que x no ocurre en B, entonces ξ y ξ ′ asignan exactamente los mismos valores a
todas las variables de Varlibre (B), luego –por el Teorema 1.2– tenemos también que Iξ (B) = 0.
Por consiguiente, Iξ ((∀x)A(x)∨B) = 0. La recı́proca se demuestra de forma similar. Esto prueba
que para cualquier interpretación y valuación de variables asociadas a dicha interpretación ambas
fórmulas reciben el mismo valor de verdad. Por tanto, ambas son equivalentes.
10
Se podrı́a admitir que x no ocurriera libre en B.
32 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

Teorema 1.7 Si B es una subfórmula de A y B ≡M C, entonces A ≡M A[B/C], donde A[B/C]


denota que al menos una ocurrencia de B en A se ha sustituido por C.

Demostración: Sea M = (U, I). Si B ≡M C, por definición de ≡M , se tiene que, para toda
valuación ξ, Iξ (B) = Iξ (C).
Tenemos que probar que Iξ (A) = Iξ (A[B/C]) para toda valuación ξ. Lo demostramos por
inducción estructural:

Si A = ⊤ o A = ⊥, entonces A[B/C] = A y el resultado es obvio.

Si A es un átomo, entonces A = B y el resultado es obvio.

Si A = ¬A1 ó A = A1 ∗ A2 , donde ∗ ∈ {∧, ∨, →}, la demostración es como en el caso


proposicional.

Supongamos A = (∀x)A1 . Si B = A, el resultado es obvio. En caso contrario, B es una


subfórmula de A1 y, por hipótesis de inducción, A1 ≡M A1 [B/C]. Por tanto, sólo nos queda
probar que Iξ ( (∀x)A1 ) = Iξ ( (∀x)A1 [B/C] ).
En efecto, Iξ ((∀x)A1 ) = 1 si y sólo si para toda valuación de variables ξ ′ que es x-
equivalente a ξ se tiene que Iξ ′ (A1 ) = 1 si y sólo si (por hipótesis de inducción) Iξ ′ (A1 [B/C]) =
1 si y sólo si Iξ ((∀x)A1 [B/C]) = 1.

Como corolario de este teorema, se tiene el siguiente resultado que generaliza el teorema del
mismo nombre para la lógica clásica proposicional.

Teorema 1.8 (de Equivalencia) Si B es una subfórmula de A y B ≡ C, entonces A ≡


A[B/C].

El paso de A a A[B/C] se denomina transformación de equivalencia.


Las siguientes equivalencias, cuya demostración se deja como ejercicio al lector, justifican las
restricciones que, a nivel sintáctico, hemos establecido para las fbfs:

Lema 1.1 Dada una fbf A y z un sı́mbolo de variable que no ocurre en A(x), entonces:

1. (Qz)A ≡ A

2. (Qx)A(x) ≡ (Qz)A(z)

3. (Qx)(Q′ x)A(x) ≡ (Qx)(Q′ z)A(z) ≡ (Q′ z)A(z)

El teorema de equivalencia permite generalizar la segunda equivalencia y justificar la definición


de renombramiento dada en la Sección 1.1.6:

Corolario 1.1 Si Qx es un cuantificador en la fbf A y la variable z no ocurre en A, la fbf


obtenida a partir de A sustituyendo x por z en Qx y en su rango, es equivalente a A.

En definitiva, la relación “A coincide con B salvo renombramiento” es una relación de equiva-


lencia.
1.3. FORMA NORMAL PRENEXA 33

1.3. Forma Normal Prenexa


Como en el caso proposicional, nos interesa disponer de “representantes canónicos” para las
clases de equivalencia del conjunto cociente L1 /≡ , es decir, disponer de una estructura común
para todas las fbfs, es decir, de un tipo de fbf tal que cualquier fbf sea expresable por (es decir,
semánticamente equivalente a) una de dicho tipo y cuya lectura sea más agradable.
En la lógica clásica de primer orden, las formas normales que se han mostrado especialmen-
te útiles son las formas normales prenexas. Para su descripción necesitaremos las siguientes
definiciones:
Definición 1.39

1. Los átomos junto con sus negaciones se llaman literales. Decimos que los literales P (t1 , . . . , tn )
y ¬P (t1 , . . . , tn ) son literales opuestos.

2. Una fbf se dice que es un cubo si es ⊤, ⊥ o una conjunción finita (posiblemente vacı́a)
de literales.

3. Una fbf se dice que es una cláusula si es ⊤, ⊥ o una disyunción finita (posiblemente
vacı́a) de literales.

4. Una fbf en la que los únicos conectivos booleanos que intervienen son ¬, ∧ y ∨ y en la que
¬ sólo afecta a los átomos se dice que es una forma normal negativa, denotada fnn.

Definición 1.40

1. Una fbf se dice que es una forma normal prenexa, denotada fnp, si es de la forma
(Q1 x1 ) . . . (Qn xn )B donde

(Qi xi ) son cuantificadores con variables distintas.


B es una fbf que no contiene cuantificadores.

Dada una fnp, A = (Q1 x1 ) . . . (Qn xn )B, a la secuencia (Q1 x1 ) . . . (Qn xn ) se le denomina
prefijo de A y a la fbf B se le denomina matriz de A.

2. Una fbf se dice que es una forma normal prenexa disyuntiva, denotada fnpd, si es
⊤, ⊥, o una forma normal prenexa en la que su matriz es una disyunción de cubos.

3. Una fbf se dice que es una forma normal prenexa conjuntiva, denotada fnpc, si es
⊤, ⊥, o una forma normal prenexa en la que su matriz es una conjunción de cláusulas.

Las nociones de cláusula que contiene a otra cláusula y cubo que contiene a otro cubo son las
mismas que para el caso proposicional. Asimismo, se generalizan de modo natural los conceptos
de forma normal conjuntiva restringida y forma normal disyuntiva restringida:
Definición 1.41 Una fnpd se dice restringida, denotada fnpdr, si su matriz cumple los
siguientes requisitos:

ningún cubo contiene un literal y su opuesto.

ningún cubo contiene literales repetidos.


34 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

ningún cubo contiene a otro.

Una fnpc se dice restringida, denotada fnpcr, si su matriz cumple los siguientes requisitos:

Ninguna cláusula contiene un literal y su opuesto.

Ninguna cláusula contiene literales repetidos.

Ninguna cláusula contiene a otra.

Teorema 1.9 Para toda fbf de L1 existe una forma normal prenexa disyuntiva restringida y
una forma normal prenexa conjuntiva restringida equivalentes a ella.

Demostración: La demostración de este teorema proporciona el algoritmo estándar para la


obtención de las formas normales cuya existencia asegura su enunciado.
En efecto, el teorema de equivalencia nos asegura que, dada una fbf cualquiera, A, podemos
obtener a partir de A una fndr o una fncr equivalente, realizando en cada paso una sola de las
siguientes transformaciones de equivalencia y en el siguiente orden:

Paso 1: Hacer uso del Corolario 1.1 y realizar cuantos renombramientos sean necesarios para
que en A todas las variables cuantificadas sean distintas.

Paso 2: Usar las leyes

A ↔ B ≡ (A → B) ∧ (B → A)
A → B ≡ ¬A ∨ B

para eliminar los conectivos ↔ y →.

Paso 3: Usar la ley de doble negación (¬¬A ≡ A), las leyes de Morgan (¬(A ∧ B) ≡ ¬A ∨ ¬B
y ¬(A ∨ B) ≡ ¬A ∧ ¬B) y las leyes

¬(∀x)A ≡ (∃x)¬A
¬(∃x)A ≡ (∀x)¬A

Con los pasos 2 y 3 obtenemos una fbf en la que no interviene → y en la que ¬ afecta
únicamente a los átomos, es decir, obtenemos una fnn.

Paso 4: Usar las leyes 11

(∀x)A ∨ B ≡ (∀x)(A ∨ B)
(∀x)A ∧ B ≡ (∀x)(A ∧ B)
(∃x)A ∨ B ≡ (∃x)(A ∨ B)
(∃x)A ∧ B ≡ (∃x)(A ∧ B)

para transmitir los cuantificadores a la cabeza de la fbf.


11
Puesto que el paso 1 asegura que las variables cuantificadas son todas distintas, en la fbf B no hay ocurrencias
de la variable x.
1.4. SKOLEMIZACIÓN 35

Paso 5: Usar la ley distributiva de ∧ respecto a ∨ (para las fnpdr) o de ∨ respecto a ∧ (para
las fnpcr).

Paso 6: Usar cuantas veces sea posible las leyes (para ∧, o para ∨) de idempotencia, de com-
plementación, de cero y uno y de absorción, para obtener las formas normales restringidas.

Los siguientes ejemplos muestran cómo obtener una fnpcr y una fnpdr equivalente a una fbf
dada.
Ejemplo 1.17 Sea (∃x)[R(x) → ¬(∃y)T (x, y)] ∧ ¬(∃z) [(∀u)P (u, z) → (∀v)Q(v, z)]. Hallemos
una fnpcr y una fnpdr equivalentes a ella:

(∃x)[R(x) → ¬(∃y)T (x, y)] ∧ ¬(∃z) [(∀u)P (u, z) → (∀v)Q(v, z)] ≡


≡ (∃x)[¬R(x) ∨ ¬(∃y)T (x, y)] ∧ ¬(∃z)[¬(∀u)P (u, z) ∨ (∀v)Q(v, z)]
≡ (∃x)[¬R(x) ∨ (∀y)¬T (x, y)] ∧ (∀z)¬[¬(∀u)P (u, z) ∨ (∀v)Q(v, z)]
≡ (∃x)[¬R(x) ∨ (∀y)¬T (x, y)] ∧ (∀z)[(∀u)P (u, z) ∧ ¬(∀v)Q(v, z)]
≡ (∃x)[¬R(x) ∨ (∀y(¬T (x, y)] ∧ (∀z)[(∀u)P (u, z) ∧ (∃v)¬Q(v, z)]
≡ (∃x)(∀y)[¬R(x) ∨ ¬T (x, y)] ∧ (∀z)(∀u)(∃v)[P (u, z) ∧ ¬Q(v, z)]
≡ (∃x)(∀y)(∀z)(∀u)(∃v)[(¬R(x) ∨ ¬T (x, y)) ∧ P (u, z) ∧ ¬Q(v, z)] (fnpc)

Usando la regla de distribución de ∧ respcto de ∨ hubiésemos obtenido la fnpd

(∃x)(∀y)(∀z)(∀u)(∃v)[(¬R(x) ∧ P (u, z) ∧ ¬Q(v, z)) ∨ (¬T (x, y) ∧ P (u, z) ∧ ¬Q(v, z))]


Ejemplo 1.18 Sea (∀x) P (x) → (Q(x) ∨ ¬R(x)) ∧ (∃y)Q(y). Hallemos una fnpcr y una fnpdr
equivalentes a ella.

(∀x) P (x) → (Q(x) ∨ ¬R(x)) ∧ (∃y)Q(y) ≡

≡ (∀x) ¬P (x) ∨ Q(x) ∨ ¬R(x) ∧ (∃y)Q(y)

≡ (∀x)(∃y) (¬P (x) ∨ Q(x) ∨ ¬R(x)) ∧ Q(y) (fnpc)

≡ (∀x)(∃y) ¬P (x) ∧ Q(y)) ∨ (Q(x) ∧ Q(y)) ∨ (¬R(x) ∧ Q(y)) (fnpd)

r r Advirtamos, que la forma prenexa obtenida por el procedimiento descrito no es necesaria-


ee
mente única ya que nada hemos establecido sobre en qué orden extraer los cuantificadores.
Sin embargo, el orden de los cuantificadores en el prefijo de una forma prenexa es importante,
como veremos en la sección siguiente.

1.4. Skolemización
Las formas normales prenexas permiten utilizar los cuantificadores de un modo limitado (solo
en la cabecera de la fbf) sin pérdida de potencia expresiva. Sin embargo, es posible imponer un
uso aún más restringido de la cuantificación que, si bien reduce la potencia expresiva, lo hace
de forma satisfactoria. Concretamente, es posible asociar a toda fbf, A, una fbf, denotada SkA ,
36 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

llamada forma de Skolem asociada a A que es una forma normal prenexa y en cuyo prefijo
sólo existen cuantificadores universales y tal que A y SkA son equisatisfacibles.
Como conocemos por el estudio de la lógica proposicional, esta pérdida de potencia expresiva
no es demasiado grave, más aún, carece de importancia si estamos interesados en sistemas de
demostración (automática o no) por refutación.
En esta sección, presentamos las formas de Skolem y el proceso a seguir para, dada una fbf A,
obtener SkA . Comencemos analizando algunos ejemplos:
Ejemplo 1.19 Si P es un sı́mbolo de predicado binario, dada la fbf:

(∃x)(∀y)P (x, y)

es fácil comprobar que

(∃x)(∀y)P (x, y) es satisfacible si y sólo si (∀y)P (a, y) es satisfacible

para algún sı́mbolo de constante a.


En efecto, (∃x)(∀y)P (x, y) es satisfacible si y sólo si existe una interpretación

M = (U ; ∅; ∅; {P ; R})

tal que I( (∃x)(∀y)P (x, y) ) = 1, es decir, si y sólo si, para algún u0 ∈ U , se tiene que Iu0 ((∀y)P (a, y)) =
1, donde a es un sı́mbolo de constante y Iu0 es la interpretación correspondiente a la extensión
de M que asocia u0 al sı́mbolo de constante a, es decir,

Mu0 = (U ; {a ; d0 }; ∅; {P ; R})

Como consecuencia inmediata del resultado del ejemplo anterior, se tiene que:

Teorema 1.10 Dado un conjunto de fbfs, Ω, se tiene que

Ω ∪ {(∃x)(∀y)P (x, y)} es satisfacible si y sólo si Ω ∪ {(∀y)P (a, y)} es satisfacible

donde a es un sı́mbolo de constante que no ocurre en Ω.

Para convencernos de que la restricción de que a no ocurra en Ω es necesaria, basta considerar,


por ejemplo, los dos conjuntos de fbfs siguientes:

{(∀y)¬P (a, y), (∃x)(∀y)P (x, y)} es satisfacible.

{(∀y)¬P (a, y), (∀y)P (a, y)} es insatisfacible.

r r Hasta aquı́, no hemos hecho más que reflejar una práctica habitual en matemáticas: Después
ee
de afirmar la existencia de objetos x que satisfacen una propiedad P (x), continuamos con la
expresión “ sea a alguno de estos x tal que P (a) es cierto”.

¿Podemos eliminar todos los cuantificadores existenciales de esta forma tan sencilla? La respues-
ta, como nos muestra el ejemplo siguiente, es negativa.
1.4. SKOLEMIZACIÓN 37

Ejemplo 1.20

Ω = {(∀x)(∀y)(¬P (x, y) ∨ ¬P (f (x), y)), (∀x)(∃y)P (x, y)} es satisfacible.


En efecto, la interpretación en L1

M = {{1, 2}; ∅; {f ; {(1, 2), (2, 1)}}; {P ; {(1, 2), (2, 1)}}}

satisface Ω.

Para cualquier sı́mbolo de constante a el conjunto de fbfs


Ω′ = {(∀x)(∀y)(¬P (x, y) ∨ ¬P (f (x), y)), (∀x)P (a, y)} es insatisfacible.
Las dos posibles interpretaciones que hay que considerar son

M1 = {{1, 2}; {a ; 1}; {f ; {(1, 2), (2, 1)}}; {P ; {(1, 2), (2, 1)}}}

M2 = {{1, 2}; {a ; 2}; {f ; {(1, 2), (2, 1)}}; {P ; {(1, 2), (2, 1)}}}
y ninguna de ellos satisface Ω′ .

r r Seguramente, el lector no se habrá sorprendido de esta respuesta negativa, ya que si P es un


ee
sı́mbolo de predicado binario, con la fbf (∀x)(∃y)P (x, y) afirmamos que “para cada x existe
un y que está relacionado con x por P ”. En esta situación, la práctica matemática habitual
es introducir una definición y = Φ(x) y afirmar que para cualquier x se tiene que P (x, Φ(x)).
Este es el modo de proceder adecuado. En efecto, como probaremos en esta sección, se tiene
que

(∀x)(∃y)P (x, y) es satisfacible si y sólo si (∀x)P (x, Φ(x)) es satisfacible

para algún sı́mbolo de función Φ.

Pasemos ya a presentar la generalización de las técnicas utilizadas en estos ejemplos.


Definición 1.42 Una fbf A se dice que es una forma normal de Skolem si es una forma
prenexa en cuyo prefijo sólo aparecen cuantificadores universales.
Dada una fbf cerrada A, se llama forma normal de Skolem asociada a A, denotada SkA , a
toda forma normal de Skolem obtenida del modo siguiente:

1. Obtener por el procedimiento introducido en la sección anterior una forma normal prenexa,
A′ , equivalente a A.

2. Obtener nuevas formas prenexas a partir de A′ aplicando repetidamente el siguiente método


hasta que no haya cuantificadores existenciales en el prefijo:

a) Si x es una variable cuantificada existencialmente y en el prefijo de la matriz no existe


ningún cuantificador universal que preceda a (∃x), entonces
- Elegir un sı́mbolo de constante a que no ocurra en la matriz.
- Sustituir x por a en la matriz.
- Eliminar (∃x) en el prefijo.
38 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

b) Si x es una variable cuantificada existencialmente y (∀xn1 ), . . . , (∀xnk ) son los cuan-


tificadores universales que preceden a (∃x) en el prefijo de la fnp, entonces
- Elegir un sı́mbolo de función f que no ocurra en la matriz.
- Sustituir x por f (xn1 , . . . , xnk ) en la matriz.
- Eliminar (∃x) en el prefijo.

El proceso descrito para eliminar los cuantificadores existenciales se denomina skolemización


(por el lógico noruego Thoralf Skolem). Cada aplicación de 2.a o 2.b se denomina etapa de
skolemización y los sı́mbolos de constante y de función introducidos en el proceso se denominan
constantes de Skolem y funciones de Skolem, respectivamente.

A continuación presentamos dos ejemplos de fbfs A a las que se asocia una forma normal de
Skolem SkA .
Ejemplo 1.21 Consideremos la fbf

A = (∃y)(∀x)(∀z)(∀u)(∃t) (P (x, y) → Q(a, z, u)) ∧ (P (x, u) → R(t, z))

Una forma normal de Skolem para A es



(∀x)(∀z)(∀u) (P (x, b) → Q(a, z, u)) ∧ (P (x, u) → R(f (x, z, u), z))

Ejemplo 1.22 Considérese la fbf


 
(∀x) P (x) → Q(x) → (∀y)P (y) → (∀z)Q(z)

eliminando los conectivos →, obtenemos la fbf


 
¬(∀x) ¬P (x) ∨ Q(x) ∨ ¬(∀y)P (y) ∨ (∀z)Q(z)

restringiendo el ámbito de ¬ sólo a los átomos, obtenemos la fbf


 
(∃x) P (x) ∧ ¬Q(x) ∨ (∃y)¬P (y) ∨ (∀z)Q(z)

y extrayendo los cuantificadores obtenemos la fbf



(∃x)(∃y)(∀z) (P (x) ∧ ¬Q(x)) ∨ ¬P (y) ∨ Q(z)

finalmente, la eliminación de (∃y) y de (∃x) mediante dos etapas de skolemización nos hace
incluir dos sı́mbolos de constante a y b resultando la fbf

(∀z) (P (a) ∧ ¬Q(a)) ∨ ¬P (b) ∨ Q(z)
1.4. SKOLEMIZACIÓN 39

r r Advirtamos que, como avanzamos en la sección anterior, el orden de extracción de los cuan-
ee
tificadores al obtener una forma prenexa equivalente a la fbf dada, influye en la complejidad
de la forma normal de Skolem obtenida. En efecto, puesto que no hemos establecido el orden
de extracción de los cuantificadores, en el ejemplo anterior, podrı́amos haber obtenido la
siguiente forma prenexa

(∀z)(∃x)(∃y) (P (x) ∧ ¬Q(x)) ∨ ¬P (y) ∨ Q(z)

La forma de Skolem asociada es ahora mucho más compleja, puesto que requiere introducir
dos sı́mbolos de función monaria, por ejemplo f y g, obteniendo la fbf

(∀z) (P (f (z)) ∧ ¬Q(f (z))) ∨ ¬P (g(z)) ∨ Q(z)

Es importante, pues, añadir al método para obtener una fnp equivalente a una fbf dada, que la
extracción de los cuantificadores se realiza dando prioridad a los cuantificadores existenciales.

La aplicación de las etapas de skolemización descritas en la Definición 1.42 conlleva ciertas


restricciones para la fbf A a la que se aplica. Ası́ pues, para aplicar 2.a es preciso que en la fbf
A no intervengan todos los sı́mbolos de constante del lenguaje de primer orden considerado (en
su signatura), y para aplicar 2.b es preciso que en la fbf A no intervengan todos los sı́mbolos
de función del lenguaje de primer orden considerado (en su signatura). Por ello, no podemos
afirmar que para todo lenguaje de primer orden L1 y toda fbf A de L1 , mediante sucesivas etapas
de skolemización, se obtiene una forma de Skolem a partir de A.
Podemos solucionar el problema (creado por la restricción necesaria al asociar a cada fbf A de
lenguaje de primer orden L1 una forma de Skolem) sin más que ampliar el lenguaje L1 añadiendo
a éste un número suficiente de sı́mbolos de constante y de sı́mbolos de función. La definición
siguiente introduce el concepto de extensión estándar para un lenguaje de primer orden.
Definición 1.43 Dado un lenguaje L1 de primer orden, definimos L+ 1 como la extensión de
L1 obtenida añadiendo a su alfabeto un conjunto infinito numerable C + de nuevos sı́mbolos de
constante y, para cada natural n ∈ N∗ , un conjunto infinito numerable Fn+ de nuevos sı́mbolos
de función n-arias.

Definición 1.44 Contemplando toda fbf A de L1 como un enunciado de L+ 1 , un proceso de


skolemización para A consiste en aplicar reiteradamente y partiendo de una forma normal
prenexa equivalente a A, cuantas etapas de skolemización en L+
1 sean necesarias hasta obtener
una forma normal de Skolem, SkA .
Descrito el procedimiento sintáctico de skolemización de una fbf A, pasamos a establecer la
relación semántica entre A y una forma normal de Skolem asociada SkA . Con este objetivo, el
primer resultado es el siguiente teorema cuya demostración es una consecuencia directa de la
definición de la semántica.

Teorema 1.11 Sean L1 y L+ ′


1 lenguajes de primer orden tales que sus alfabetos a y a verifican:

a ⊂ a′

a′ \ a consta únicamente de sı́mbolos de constante y de sı́mbolos de función.

Entonces, dada una fbf, A, de L1 se tiene que

A es satisfacible en L1 si y sólo si A es satisfacible en L+


1.
40 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

Podemos ya establecer el resultado fundamental de esta sección.


Teorema 1.12 Si A es una fbf de L1 y SkA una forma de Skolem asociada a A, entonces
A es satisfacible en L1 si y sólo si SkA es satisfacible en L+
1.

Demostración: Basta probar el resultado para cada una de las etapas de skolemización.
Sea A = (∃x1 ) . . . (∃xn )(∃y)B(x1 , . . . , xn , y) y a un sı́mbolo de constante que no in-
terviene en A. Por la conmutatividad de los cuantificadores existenciales se tiene que
A ≡ (∃y)(∃x1 ) . . . (∃xn )B(x1 , . . . , xn , y). Por lo tanto, basta demostrarlo para una fbf del
tipo A = (∃x)B(x).
Si M = (U, I) es una interpretación en L1 y ξ es una valuación de variables tal que
Iξ ( (∃y)B(y) ) = 1, entonces existe una valuación de variables ξ ′ que es y-equivalente a ξ y
tal que Iξ ′ (B(y)) = 1.
Ahora, si ξ ′ (y) = u, definimos M′ = (U, I ′ ) tal que I ′ difiere de I únicamente en la
interpretación de a y tal que I ′ (a) = u. Entonces, Iξ ′ (B[y/a]) = 1 y, en consecuencia,
B[y/a] es satisfacible.
La demostración del inverso es similar y se deja al lector.
Como en el ı́tem anterior, bastará demostrarlo para
A = (∀x1 ) . . . (∀xn )(∃y)B(x1 , . . . , xn , y)

Sea M = (U, I) una interpretación en L1 y ξ una valuación de variables tal que


Iξ ((∀x1 ) . . . (∀xn )(∃y)B(x1 , . . . , xn , y)) = 1

Sea (u1 , . . . , un ) ∈ U n y sea ξ ′ una valuación de variables tal que ξ ′ (z) = ξ(z) si z ∈
/
{x1 , . . . , xn } y tal que
ξ ′ (x1 ) = u1 , . . . , ξ ′ (xn ) = un

Tenemos, pues, que Iξ ′ ((∃y)B(x1 , . . . , xn , y)) = 1. Luego existe una valuación de variables
′′
ξ que es y-equivalente a ξ ′ y tal que verifica la condición Iξ ′′ (B(x1 , . . . , xn , y)) = 1.
Sea f un sı́mbolo de función n-ario que no aparece en B (esto es posible debido a la
ampliación de L1 a L+ ′ ′ ′
1 ). Ahora, definimos M = (U, I ) tal que I difiere de I únicamente

en la interpretación de f y tal que I (f ) se define como sigue:
′′
I ′ (f )(u1 , . . . , un ) = ξ (y)
′′
es decir, Iξ′ ′ (f (x1 , . . . , xn )) = ξ (y), ası́ como Iξ′ ′′ (B(x1 , . . . , xn , y)) = 1, pues las interpre-
′′
taciones (U, I) y (U, I ′ ) comparten el mismo dominio, ası́ que ξ ′ y ξ son valuaciones de
variables asociadas a (U, I ′ ) igualmente.

Por el teorema de sustitución, resulta finalmente que Iξ′ ′ (B(x1 , . . . , xn , f (x1 , . . . , xn )) = 1


y, teniendo en cuenta que u1 , . . . , un eran elementos cualesquiera de U , resulta que
Iξ′ ((∀x1 ) . . . (∀xn )B(x1 , . . . , xn , f (x1 , . . . , xn )) = 1
y en consecuencia, que (∀x1 ) . . . (∀xn )B(x1 , . . . , xn , f (x1 , . . . , xn )) es satisfacible.
La demostración del inverso es similar y se deja al lector.
1.4. SKOLEMIZACIÓN 41

Terminamos esta sección con la definición de una clase de fbfs que, como en el caso proposicional,
es usada frecuentemente en el campo de la demostración automática y en la programación lógica.

Definición 1.45 Una fbf A se dice que está en forma clausal si es una forma normal de
Skolem y su matriz es una forma normal conjuntiva.
Como en el caso proposicional, usaremos una notación más concisa escribiendo la matriz como
conjunto de cláusulas y omitiendo los cuantificadores (ya que sabemos que todos son universales)
Ejemplo 1.23 La forma clausal

(∀x)(∀y)(∀z) P (x) ∧ (Q(f (x, y) ∨ P (g(z))) ∧ (¬Q(x, z) ∨ ¬P (a))

se representa por el conjunto de cláusulas

{P (x), Q(f (x, y) ∨ P (g(z)), ¬Q(x, z) ∨ ¬P (a)}

El siguiente teorema es un corolario inmediato del Teorema 1.12.

Teorema 1.13 Para toda fbf A de L1 existe una forma clausal ACl tal que A y ACl son equi-
satisfacibles.

Ejemplo 1.24

1. Para la fbf (∃x)(∀y)(∀z)(∃u)(∀v)(∃w)P (x, y, z, u, v, w), una forma clausal equisatisfacible


es
(∀y)(∀z)(∀v)P (a, y, z, f (y, z), v, g(y, z, v))
es decir, {P (a, y, z, f (y, z), v, g(y, z, v))}

2. Para la fbf (∀x)(∃y)(∃z) (¬P (x, y) ∧ Q(x, z)) ∨ R(x, y, z) , una fnpcr equivalente es

(∀x)(∃y)(∃z) (¬P (x, y) ∨ R(x, y, z)) ∧ (Q(x, z) ∨ R(x, y, z)

y una forma clausal equisatisfacible es



(∀x) (¬P (x, f (x)) ∨ R(x, f (x), g(x))) ∧ (Q(x, g(x)) ∨ R(x, f (x), g(x))

es decir,
{¬P (x, f (x)) ∨ R(x, f (x), g(x)), Q(x, g(x)) ∨ R(x, f (x), g(x))}

r r Como ya hemos indicado en el Ejemplo 1.22, el análisis de la transformación a forma clausal,


ee
nos delata la importancia del orden de extracción de los cuantificadores en el proceso de
obtener una forma prenexa equivalente a A. Ası́, por ejemplo, para la fbf
 
A = (∃x) R(x) → (∀y)¬T (x, y) ∧ ¬(∃z) (∀u)P (u, z) → (∀v)Q(v, z)

podemos obtener una fnn equivalente:

(∃x)(¬R(x) ∨ (∀y)¬T (x, y)) ∧ (∀z)((∀u)P (u, z) ∧ (∃v)¬Q(v, z))


42 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

y extraer los cuantificadores en el orden de ocurrencia en la fbf obteniendo la fbf equivalente

(∃x)(∀y)(∀z)(∀u)(∃v)((¬R(x) ∨ ¬T (x, y)) ∧ P (u, z) ∧ ¬Q(v, z))

La forma clausal obtenida al skolemizar, requiere introducir un sı́mbolo de constante y un


sı́mbolo de función ternaria (por ejemplo, los sı́mbolos a y f ):

{¬R(a) ∨ ¬T (a, y), P (u, z), ¬Q(f (y, z, u), z)}

Ahora bien, si damos prioridad a la extracción de los cuantificadores existenciales obtenemos

(∃x)(∀z)(∃v)(∀y)(∀u)((¬R(x) ∨ ¬T (x, y)) ∧ P (u, z) ∧ ¬Q(v, z))

Ahora el proceso para obtener una forma clausal requiere introducir un sı́mbolo de constante
y un sı́mbolo de función monaria (por ejemplo, los sı́mbolos a y g):

{¬R(a) ∨ ¬T (a, y), P (u, z), ¬Q(g(z), z)}

Para terminar este capı́tulo, introducimos la noción central en nuestro estudio, establecemos
qué entendemos por razonamiento correcto en la semántica de L1 .

1.5. Consecuencia Lógica


La noción de consecuencia lógica en la lógica clásica de primer orden desempeña el mismo papel
que en el caso proposicional, y su definición para fbfs arbitrarias hace uso de la noción de
valuación de variables.
Definición 1.46 Dado un conjunto Ω de fbfs y una fbf C, se dice que C es consecuencia lógi-
ca, o se deriva, o se infiere semánticamente de Ω, denotado Ω |= C, si para toda interpretación
M = (U, I) y toda valuación de variables ξ se tiene que

Si Iξ (Ai ) = 1 para toda fbf Ai ∈ Ω entonces Iξ (C) = 1.

r r En la lógica clásica proposicional la definición de consecuencia lógica asegura que si no existe


ee
ninguna interpretación que hace a A verdadera y a B falsa entonces A |=Lprop B; en L1
necesitamos exigir algo más, como nos advierte este ejemplo: Es claro que
No existe ninguna interpretación de L1 para la cual P (x) sea verdadera
y (∀x)P (x) falsa,
sin embargo, (∀x)P (x) no es consecuencia lógica de P (x) ya que no se cumple que para
toda interpretación M = (U, I) y toda valuación de variables ξ si Iξ (P (x)) = 1 entonces
I((∀x)P (x)) = 1. Sin embargo, si nos limitamos a formular la definición en términos de
enunciados (es decir, de fbfs cerradas), la definición no difiere de la dada en el caso proposi-
cional:
Dado un conjunto Ω de fbfs cerradas y una fbf, C, entonces C es consecuencia lógica de Ω
si todo modelo para Ω es un modelo para A, es decir,

Si M es un modelo de Ω entonces M es un modelo para C

La definición de consecuencia lógica para la lógica de primer orden fue dada por primera vez
por Tarski, aunque algunos trabajos previos de Bolzano y Hilbert hacen uso de ella.
1.5. CONSECUENCIA LÓGICA 43

De nuevo, como en el caso proposicional, el significado de ∅ |= A coincide con el de |= A.


Asimismo, si nos limitamos a fbfs cerradas, se tiene la equivalencia siguiente:

Ω, A |= B si y sólo si Ω |= A → B

en particular,

A1 , A2 , . . . , An |= A si y sólo si |= (A1 ∧ A2 ∧ · · · ∧ An ) → A
si y sólo si |= A1 → (A2 → (A3 · · · → (An → A) . . .))

y también, tenemos

Las fbfs A y B son lógicamente equivalentes si y sólo si A |= B y B |= A

A1 , A2 , . . . , An |= A si y sólo si A1 ∧ A2 ∧ · · · ∧ An ∧ ¬A es insatisfacible

El siguiente ejemplo muestra algunas inferencias lógicas de interés.


Ejemplo 1.25 En L1 son válidas las siguientes inferencias:

1. (∀x)A(x) |= (∃x)A(x)

2. (∃x)(∀y)A(x, y) |= (∀y)(∃x)A(x, y)

3. (∀x)A(x) ∨ (∀x)B(x) |= (∀x)(A(x) ∨ B(x))

4. (∃x)(A(x) ∧ B(x)) |= (∃x)A(x) ∧ (∃x)B(x)

5. (∃x)A(x) → (∀x)B(x) |= (∀x)(A(x) → B(x))

6. (∀x)(A(x) → B(x)) |= (∀x)A(x) → (∀x)B(x)

7. (∀x)(A(x) → B(x)) |= ((∃x)(A(x) → (∃x)B(x)

8. (∀x)(A(x) → B(x)) |= (∀x)A(x) → (∃x)B(x)


44 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

1.6. Ejercicios
1. Diga cuáles de las siguientes cadenas de sı́mbolos son fórmulas de un lenguaje de primer orden.
Para aquellas que sean fórmulas, construya su árbol sintáctico.

(∃x)(P (x) → Q(x, y)), (∃x)P (x) → Q(x, y), (∃x)P (y),

(∃x)(P (f (x)) ∨ ¬f (P (x))), (∀P )(P (x, y) → P (y, x))

2. Demuestre que toda fbf en la que no intervienen las conectivas ¬, →, o ↔ es satisfacible.


3. Diga si las siguientes afirmaciones son ciertas o no razonando la respuesta
a) La fórmula (∃x)Q(z) es una fórmula bien formada
b) Las fórmulas abiertas no son fórmulas bien formadas.
c) Una variable puede aparecer libre y ligada en una fórmula
d ) [f (x)/g(y)] P (f (x), y) = P (g(y), y)
e) [y/g(y)]P (y, y) = P (g(y), g(y))
4. Utilice inducción completa sobre el grado de A para demostrar la siguiente propiedad:
Si a es una constante que no aparece en A, entonces x es libre en A si y solo si [x/a]A 6= A.
5. Formalizar en L1 las siguientes frases:
a) Elena es una estudiante de COU y comparte inquietudes con Isa, que es estudiante de Logo-
pedia. Carlos y David también comparten inquietudes y ambos practican el ciclismo.
b) No todas las aves saben volar.
c) Los elefantes son más pesados que los ratones.
d ) A todo alumno le gusta alguna de las asignaturas que cursa.
e) Hay alumnos a los que les gusta todas las asignaturas que cursa.
f ) No hay asignatura que no le agrade a ningún alumno.
g) Hay asignaturas que le gustan a todos los alumnos.
h) No todos los gatos son pardos.
i) Todo natural cuadrado perfecto es o múltiplo de 4 ó el sucesor de un múltiplo de 4.
j ) Un conjunto es subconjunto de otro si y sólo si todo elemento del primero es elemento del
segundo.
k ) Si la suma de dos números naturales es par, también es par la suma de sus cuadrados.
l ) Todo héroe encuentra a un malvado a quien dar una lección y a un honrado a quien proteger.
m) El conjunto de los números primos es infinito.
n) La adición y la multiplicación de números reales son operaciones asociativas y conmutativas.
ñ) Todo número entero mayor que 1 que sólo es divisible por 1 y por sı́ mismo es primo.
6. Formalizar en L1 los razonamientos siguientes:
a) El padre de Juan es poeta y autor de libros de poesı́a. Hay poetas que no publican libro
alguno. Quien tiene un padre poeta, sólo compra libros de poesı́a si su padre ha publicado
algún libro. Por lo tanto, Juan compra libros de poesı́a.
b) No es cierto que cualquier filósofo sea más sabio que cualquier quı́mico. Los filósofos son más
sabios que los aficionados a los crucigramas. Por lo tanto, si ningún quı́mico es filósofo, hay
quien no es filósofo ni aficionado a los crucigramas.
1.6. EJERCICIOS 45

c) Todo el que plagia el trabajo ajeno es un inepto. De todos es sabido que los expertos en
programación no son ineptos y que algunos expertos en programación dominan las técnicas
de la programación paralela. Por lo tanto, algunos de los que dominan las técnicas de la
programación paralela, no plagian el trabajo ajeno.
d ) Todas las enfermedades infecciosas son controlables. Quien padece una enfermedad controla-
ble, o no se preocupa por la enfermedad o se automedica. Luis es un deportista que nunca
se automedica, pero que padece una enfermedad infecciosa. Por lo tanto, hay deportistas que
no se preocupan por la enfermedad que padecen.
e) Todo estudiante que deja la adquisición de conocimientos sobre una materia para la semana
antes del examen, tiene una disculpa interesante. Hay estudiantes aburridos cuyas disculpas
son aburridas. No hay aburridos interesantes. Ası́ pues, de lo dicho se concluye que no hay
quien preocupándose de adquirir conocimientos sobre una materia durante todo el curso, sea
aburrido.
f ) Las sustancias radioactivas tienen vida corta o un valor medicinal. Ningún isótopo del uranio
que sea radioactivo tiene vida corta. Por tanto, si todos los isótopos del uranio son radioac-
tivos, todos los isótopos del uranio tienen un valor medicinal.
7. Probar las siguientes equivalencias:
(∃y)(∀x)(P (x) ∧ Q(y)) ≡ (∀x)(∃y)(P (x) ∧ Q(y))
 
(∀x)(∃y) P (y) ∧ (Q(x) → R(y)) ≡ (∃y)(∀x) P (y) ∧ (Q(x) → R(y))
8. Dada la fbf  
A = ¬(∀x) (∃y)P (x, y) ∨ ¬(∀z)Q(z, x) ∧ (∀t) R(t) → S(t)
a) Obtener el conjunto de las subfórmulas de A.
b) Obtener el conjunto de las subfórmulas que ocurren positivamente en A.
c) Obtener el conjunto de las subfórmulas que ocurren negativamente en A.
9. Sean las fbfs:
a) (∀x)P (y) → ¬P (x).
b) (∀x)(∀y)(Q(x, y, z) → (P (y) → ¬R(x))).
c) (∀x)¬(∀y)P (x) → S(x, y).
d ) (∀x)(∀y)(P (x) → S(x, y)) → ¬(∀y)Q(x, y, z).
Determinar para cada ocurrencia de un sı́mbolo de variable si es libre o ligada.
10. Hallar Vlibres para cada una de las fbfs siguientes:
a) (∀x)P (x, y) → P (x, a)
b) (∀x)(P (x, y) → P (x, a))

c) (∀x) (∃y)P (x, g(a, y)) → (∃z)P (y, z)
11. Especificar para cada una de las fbfs siguientes si el término f (x, z) es libre para x:
a) (∀y)(P (x, y) → P (y, a))
b) Q(z) → ¬(∀x)(∀y)R(x, y, a)
c) (∀x)Q(x) → (∀y)P (x, y)
d ) (∀y)(P (f (x, y), x) → E(z, g(x, y)))
12. Dados los términos h(x, y) y g(a, f (y, z)), determinar si son libres para cada una de las variable x,
y y z en las fbfs siguientes:
46 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN


a) (∀z) P (z, y, a) ∧ (∀x)Q(g(x, z))
b) (∀x)R(f (x, a), y) → ¬R(f (x, a), z)
c) P (f (x, a), x, b) → ¬P (f (y, b), z, b)
13. Dados los términos f (x, u) y f (x, f (z, u)), determinar si son libres para cada una de las variable
x, y y u en las fbfs siguientes:

a) (∀x)P (x, y, z) → (∀z)P (z, x, u)
b) (∀y)P (y, f (x, y), z) → (R(x) → Q(u))
14. Evalúe las siguientes sustituciones
a) [x/f (y)]((∀x)P (x) → Q(x));
b) [y/f (y)]((∀x)(¬P (y) ∨ (∃y)Q(x, y)))
15. Hallar [x/f (x, z)]A para cada uno de los siguientes casos:
a) A = (∀y)P (y, f (x, y)) → Q(x)
b) A = (∀x)(∀z)(Q(z) → Q(x))
c) A = (∀y)Q(g(y)) → (∀z)R(x, y, z)
d ) A = (∀y)R(x, g(x), y) → (∀z)Q(f (x, z))
16. La composición de sustituciones no es conmutativa, y por eso una composición como [y/s] ◦ [x/t] se
evalua sobre una fórmula sustituyendo secuencialmente las variables: en primer lugar sustituimos
la variable x y posteriormente la variable y. Definimos la sustitución simúltánea de las variables
x1 ,. . . ,xn por los términos t1 ,. . . ,tn respectivamente y se denota como {x1 /t1 , . . . , xn /tn } como la
aplicación que, sobre una fórmula A sustituye simultáneamente todas las apariciones libres de las
variables x1 ,. . . ,xn por los términos t1 ,. . . ,tn respectivamente.
Evalúe la sustitución {x/g(y), y/g(x)}A(x, y) y deduzca que

{x/g(y), y/g(x)} 6= [x/g(y)] ◦ [y/g(x)]


{x/g(y), y/g(x)} 6= [y/g(x)] ◦ [x/g(y)]

17. Evalúe las siguientes sustituciones:


a) {x/f (x), y/a}A(x, f (y))
b) {x/f (y), y/a}A(x, f (y))
c) {x/g(y), y/g(x)}A(g(x), g(x))
d ) [x/g(y)] ◦ [y/g(x)]A(g(x), g(x))
e) [y/g(x)] ◦ [x/g(y)]A(g(x), g(x))
18. Calcular las siguientes composiciones:
a) [z/b] ◦ [y/g(z, a)] ◦ [x/f (y)]
b) [z/f (x, a)] ◦ [y/x] ◦ [x/a]
c) [z/a] ◦ [y/f (z)] ◦ [x/g(z, y)]
19. Probar que si A es una fbf cerrada también lo es [x/a]A
20. Dada una fbf A, definir en términos de su árbol sintáctico los siguientes conceptos:

a) Ocurrencia positiva de una fbf B en A.


1.6. EJERCICIOS 47

b) Ocurrencia negativa de una fbf B en A.


c) Ocurrencia libre de una variable v en A.
d ) Ocurrencia ligada de una variable v en A.

21. Sea Σ = ({a, b, c}, {f, g}, {P, Q}) la signatura del conjunto de fbfs
Ω = {P (a), P (b), P (c), P (f (a)), P (f (b)), P (f (c)), P (g(a, b)), P (g(a, c)), P (g(b, c)), P (g(f (b), c)),
P (g(f (c), f (b))), (∀x)Q(x, x), (∃x)Q(x, f (x))}
Sea (U, I) una interpretación para L1 donde U = C ∗ , C es el alfabeto de la lengua española y
- I(a) = “la”
- I(b) = “ma”
- I(c) = “ireo”
- I(f )(d) = d si |d| = 1 y, en otro caso, el resultado de eliminar la primera letra en d. Por
ejemplo, I(f )(“hasta”) = “asta”.
- I(g) asocia a cada par (d, d′ ) la concatenación de d y d′ . Por ejemplo, I(g)(“por”, “cal”) =
“porcal”.
- I(P ) consiste en el conjunto de palabras de la lengua española. Por ejemplo, “topo” ∈ I(P ),
“opot” ∈/ I(P ).
- I(Q) consiste en el conjunto de pares (d, d′ ) tales que d es una subcadena de d′ . Por ejemplo,
(“amo”, “gamo”) ∈ I(Q), (“repta”, “paleta”) 6∈ I(Q).
Hallar I(A) para toda fbf A ∈ Ω.
22. Considere la siguiente interpretación (U, I): con U = N: I(a) = 0, I(f )(n, m) = n+m, I(g)(n, m) =
n · m e I(P ) es la relación de igualdad. Interprete las siguientes fbfs y determine si (U, I) es un
modelo para ellas:
(∀x)P (g(x, a), x) (∀x)(∀y)(P (f (x, a), y) → P (f (y, a), x))
(∀x)(∀y)(∃z)P (f (x, y), z) (∃x)P (f (x, x), g(x, x))

23. Considere la fórmula

A = (∀x)(∀y)((P (y, x) ∧ (P (x, a) ∨ E(x, a))) → (P (a, f (x, y)) ∨ E(a, f (x, y)))

y la interpretación (U, I) con U = Z; I(a) = 0; I(f )(n, m) = n · m,

I(P ) = {(n, m) | n < m}; I(E) = {(n, m) | n = m}.

Determine si I es un modelo de A.
24. Sea Σ = ({a}, {f }, {P, E}) la signatura para la fbf
A = (∀x)(∀y)((P (y, x) ∧ (P (x, a) ∨ E(x, a))) → (P (a, f (x, y)) ∨ E(a, f (x, y)))

a) Sea (U, I) una interpretación para L1 donde U = Z y


1) I(a) = 0.
2) I(f ) es el producto de números enteros.
3) I(P ) es la relación < en Z.
4) I(R) es la relación de igualdad en Z.
Describir en lenguaje natural la información contenida en A por esta interpretación y hallar
I(A).
b) Sea (U ′ , I ′ ) una interpretación para L1 donde U ′ = Z3 = {0, 1, 2} y
48 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

1) I ′ (a) = 2.
2) I ′ (f ) es la suma en Z3
3) I ′ (P ) = ≡3 , la relación de congruencia módulo 3.
4) I ′ (E) es la relación R definida como (n, m) ∈ I ′ (R) si y sólo si n + 1 ≡3 m.
Describir en lenguaje natural la información contenida en A por esta interpretación y hallar
I ′ (A).

25. Describa, si es posible, un modelo para las siguientes fórmulas

(∀x)(P (x) → P (f (x))) (∀x)(Q(x, y) → Q(y, x))

26. Sea t un término básico, A una fbf, M = (U, I) una interpretación para L1 , x un sı́mbolo de
variable y ξ una valuación de variables asociada a (U, I).
Probar que para toda valuación ξ ′ que sea x-equivalente a ξ con ξ ′ (x) = I(t) se tiene que

Iξ′ (A) = Iξ ([x/t]A)

27. Dadas la fbfs siguientes:


a) (∀x)(∀y)P (x, y) → (∀x)(∀y)P (y, x)
b) P (x, y) → P (y, x)
c) P (f (x)) → P (x)
d ) (∀x)P (x) → P (f (x))
Determinar para cada una de ellas si es
i) válida.
ii) Verdadera en una interpretación pero no válida.
iii) Satisfacible pero no verdadera en ninguna interpretación.
iv) Insatisfacible.
28. Para cada una de las siguientes condiciones
i) válida.
ii) Verdadera en una interpretación pero no válida.
iii) Satisfacible pero no verdadera en ninguna interpretación.
iv) Insatisfacible.
Construir una fbf que las satisfaga.
29. Sea (U, I) una interpretación para L1 y A un fbf. Probar que si ξ y ξ ′ son valuaciones de variables
tales que ξ(x) = ξ ′ (x) para toda variable x de A se tiene que Iξ (A) = 1 si y sólo si Iξ′ (A) = 1
30. Probar que la fbf P (x) → (∀x)P (x) es verdadera en toda interpretación M = (U, I) tal que U
consta de exactamente un elemento.
31. Demuestre que si c es una constante que no aparece en A(x), entonces (∀x)A(x) es válida si y solo
si A(c) es válida.
32. Probar, haciendo uso de la definición de la semántica, que
a) (∀x)P (x) → P (a) es válida.
b) (∃x)P (x) → P (a) no es válida.
1.6. EJERCICIOS 49

c) (∀x)P (x) ∧ (∃y)¬P (y) es insatisfacible.


33. Probar que las siguientes fbfs son válidas
a) (∀x)A → (∃x)A
b) (∀x)(A ∧ B) ↔ ((∀x)A ∧ (∀x)B)
c) ((∀x)A ∨ (∀x)B) → (∀x)(A ∨ B)
34. Probar que
a) (∀x)P (x) ∧ (∃y)¬P (y) es insatisfacible.
b) (∀x)P (x) → (∃y)P (y) es válida.
c) P (a) → ¬(∃x)P (x) es satisfacible pero no válida.
d ) (∀x)P (x) ∨ (∃y)¬P (y) es válida.
e) Si en B no aparece la variable x y Q ∈ {∀, ∃}, entonces
1) (Qx)(A → B) ≡ ((Qx)Ab → B)
2) B → (Qx)A ≡ (Qx)(B → A(x))
35. Dar un modelo para el siguiente conjunto de fbfs

Ω = {(∀x)(P (x) → Q(x)), (∃x)P (x), (∃x)¬P (x)}

36. Determinar cuáles de los siguientes conjuntos de fbfs son satisfacibles y, para cada uno de ellos,
dar un modelo:
a) {(∀x)(∃y)P (x, y), (∀x)¬P (x, x)}
b) {(∃x)(∀y)P (x, y), (∀x)¬P (x, x)}
c) {(∀x)(P (x) ∨ Q(x)), ¬(∃x)P (x), ¬Q(a)}
d ) {(∃x)(P (x), (∀x)(P (x) → Q(x)), (∀x)¬Q(x)}
e) {(∀x)(P (x) → (∃y)Q(x, y)), (∀x)(∀y)(Q(x, y) → R(y)), P (a) ∧ ¬R(a)}
37. Probar que {∧, ∨} y {↔, ∃} no son conjuntos adecuados de conectivas en L1 .
38. Si Mod(X) denota el conjunto de los modelos de la fbf X, expresar en términos de Mod(A) y
Mod(B) los siguientes conjuntos
a) Mod(A ∧ B)
b) Mod(A ∨ B)
c) Mod(A ∧ ¬B)
d ) Mod(A → B)
39. Sean A y B dos fbfs tales que Vlibres (A) = Vlibres (B) y sean A′ y B ′ sus cierres universales. Probar
que

A ≡ B si y sólo si A′ ≡ B ′

40. (Principio de dualidad) Demuestra que si en una equivalencia lógica en la que no intervienen las
conectivas → ni ↔ se intercambian ∧ y ∨; ∀ y ∃ se obtiene otra equivalencia lógica.
41. Obtener una forma normal prenexa lógicamente equivalente a la fbf A siguiente

(∀x) P (x) ∧ (∃y)(¬Q(x, y) ∨ (∀z)R(x, z)) ∧ ((∃y)¬R(x, u) ∨ Q(x, y))
50 CAPÍTULO 1. LÓGICA DE PRIMER ORDEN

42. Obtener una forma normal prenexa lógicamente equivalente para las fbfs siguientes
a) (∀x)P (x) → (∃x)Q(x)
b) (∀x)(∀y)[(∃x)(P (x, z) ∧ P (y, z)) → (∃u)Q(x, y, u)]
c) (∀x)[P (x) ∧ (∀y)(∃w)(¬Q(x, y) → (∀z)R(a, x, y))]
d ) (∀x)(∀y)[(∃z)P (x, y, z) ∧ ((∃u)(Q(x, u) → (∃v)Q(y, v))]
43. Transformar en forma clausal las fbfs siguientes
a) (∃x)P (x) → ( (∀x)(Q(x) ∨ S(x)) → (∀x)(∃y)R(x, y) )
b) (∀x)[¬P (x, a) → (∃y)(P (y, g(x)) ∧ (∀z)(P (z, g(x)) → P (y, z)))]
c) (∀x)(∀y)[(∃z)P (z) ∧ (∃u)(Q(x, u) → (∃v)q(y, v))]
44. Demostrar que son válidas las inferencias lógicas del Ejemplo 1.25
45. Demostrar que |= es un operador de consecuencia, es decir, si utilizamos la notación

|=: 2L1 −→ 2L1

para la aplicación tal que para cada Ω ∈ 2L1 se tiene que |= (Ω) es el conjunto de fbfs que son
consecuencia lógica de Ω, entonces |= satisface las siguientes propiedades:
(i) Ω ⊆ |= (Ω) (Inclusión)
(ii) |= (|= (Ω)) ⊆ |= (Ω) (Transitividad)
(iii) Si Ω ⊆ Γ, entonces |= (Ω) ⊆ |= (Γ) (Monotonı́a)
46. Dado un conjunto de fbfs Γ, una constante c y una fbf A con a lo sumo una variable libre x,
demuestre las siguientes afirmaciones:
a) si Γ |= A[x/c ], entonces Γ |= (∃x)A.
b) si Γ |= (∀x)A, entonces Γ |= A[x/c ]
c) si se tiene que
Γ |= (∃x)A,
Γ ∪ {A[x/c ]} |= B y
c no aparece en Γ ni en A ni en B,
entonces Γ |= B.
d ) si Γ |= A[x/c ] y c no aparece en Γ ni en A, entonces Γ |= (∀x)A.
47. Demuestre las siguientes equivalencias e inferencias
a) (∃x)(A(x) → B(x)) ≡ ((∀x)A(x) → (∃x)B(x))
b) (∀x)(A(x) → B(x)) |= ((∀x)A(x) → (∀x)B(x))
c) (∀x)(A(x) → B(x)) |= ((∀x)A(x) → (∃x)B(x))
d ) (∀x)(A(x) → B(x)) |= ((∃x)A(x) → (∃x)B(x))
e) (∃x)B(x) → (∀x)A(x) → (∀x)(A(x) → B(x))
Capı́tulo 2

Modelos de Herbrand

En este capı́tulo estudiamos un resultado fundamental de la lógica clásica de primer orden que,
como veremos, tiene especial interés en la semántica de los lenguajes de programación lógica:
El estudio de la satisfacibilidad de un conjunto de fbfs de la lógica clásica de primer
orden se puede reducir al estudio de la satisfacibilidad de un conjunto de cláusulas
básicas (es decir, cláusulas en las que no intervienen variables) que, en consecuencia,
puede ser contemplado como un conjunto de cláusulas de la lógica proposicional.

Comencemos con el siguiente análisis: Como venimos insistiendo, el conjunto de posibles in-
terpretaciones M = (U, I) en la lógica clásica de primer orden, incluso el conjunto de posibles
interpretaciones para una fbf, es extremadamente complejo, ya que requiere la elección del domi-
nio o universo del discurso, U , y para cada dominio U nos encontramos con la amplia variabilidad
para I, es decir, las interpretaciones para el conjunto de sı́mbolos de constantes, para el conjunto
de sı́mbolos de función y para el conjunto de sı́mbolos de predicados.
Es pues poco razonable afrontar a las bravas la tarea de determinar si una fbf A es o no válida,
incluso limitándonos a formas normales, pues necesitarı́amos comprobar que A es verdadera en
toda interpretación M = (U, I).
Afortunadamente, se dispone de una teorı́a que simplifica drásticamente el conjunto de inter-
pretaciones que se necesita considerar, esta teorı́a se debe a Jacques Herbrand y, como veremos,
permite el estudio de la demostración automática de teoremas limitándonos a considerar inter-
pretaciones con dominios uniformes. Además, lo que es más importante, estas interpretaciones
se definen sintácticamente en términos de los sı́mbolos del lenguaje, con la simplicidad que ello
conlleva.
Los resultados estudiados en este capı́tulo son quizás los más relevantes de la lógica; sin ellos
no hubiera sido posible abordar la tarea de obtener razonadores automáticos aceptablemente
eficientes y, en consecuencia, de hacer de la lógica una herramienta útil para las Ciencias de la
Computación.
Comenzamos introduciendo el concepto básico en esta teorı́a, el dominio uniforme anunciado
anteriormente.
Definición 2.1 Dado un lenguaje de primer orden L1 (C, F, P), se llama universo de Her-
brand de L1 (C, F, P), denotado HL1 :
al conjunto de términos básicos de L1 (C, F, P), si C 6= ∅ y, en caso contrario,
52 CAPÍTULO 2. MODELOS DE HERBRAND

al conjunto de términos básicos del lenguaje cuya signatura es ({c}, F, P) donde c es un


sı́mbolo de constante adicional, denominada constante de Herbrand.

Puesto que estamos interesados en la teorı́a de Herbrand en relación a su contribución a la


demostración automática de teoremas, más concretamente, en los sistemas de demostración por
refutación, y puesto que (como hemos visto en el capı́tulo anterior) para toda fbf, A, existe una
forma clausal equisatisfacible con A, desarrollaremos la teorı́a de Herbrand para el estudio de la
satisfacibilidad de conjuntos de cláusulas.

2.1. Interpretaciones de Herbrand


Comencemos definiendo el universo de Herbrand para un conjunto de cláusulas:
Definición 2.2 Sea Ω un conjunto de cláusulas, CΩ el conjunto de sı́mbolos de constantes que
intervienen en Ω y FΩ el conjunto de sı́mbolos de función que intervienen en Ω.
El universo o dominio de Herbrand para Ω, denotado HΩ , se define del modo siguiente:

Si CΩ 6= ∅, entonces HΩ es la clausura inductiva libremente generada del conjunto CΩ para


FΩ , es decir, el conjunto de términos básicos descritos por las siguientes reglas:

1. Si a es un sı́mbolo de constante que ocurre en Ω, entonces a ∈ HΩ .


2. Si f es un sı́mbolo de función n-aria que ocurre en Ω, y t1 , . . . , tn ∈ HΩ entonces
f (t1 , . . . , tn ) ∈ HΩ .

Si CΩ = ∅, HΩ es la clausura inductiva libremente generada del conjunto {c} para FΩ ,


donde c es la constante de Herbrand; es decir, HΩ es el conjunto de términos básicos
descritos por las siguientes reglas:

1. c ∈ HΩ
2. Si f es un sı́mbolo de función n-aria que ocurre en Ω y t1 , . . . , tn ∈ HΩ entonces
f (t1 , . . . , tn ) ∈ HΩ

Obviamente, por definición, HΩ es a lo sumo infinito numerable y se tiene que

HΩ es finito si y sólo si FΩ = ∅

r r La idea básica de Herbrand es que, para interpretar Ω, no es preciso considerar conjuntos


ee
arbitrarios como dominios (es decir, la primera componente de (U, I)), sino que basta con-
siderar los individuos sobre los que “habla” Ω, es decir, los individuos determinados por
los elementos de la signatura de Ω. De este modo, Herbrand pone sobre el tapete el hecho
de que la naturaleza de los objetos de un dominio de interpretación es irrelevante. Lo que
verdaderamente importa son las relaciones que hay entre dichos objetos. En su caso propor-
ciona una interpretación de “corte sintáctico”, donde los sı́mbolos del lenguaje se interpretan
refiriéndose a expresiones del propio lenguaje. La restricción que impone es que usa sólo
términos cerrados (pero el hecho se puede generalizar) 1 .
1
En definitiva, la interpretación en una estructura de Herbrand consiste en realizar sustituciones por términos
cerrados e interpretar los términos cerrados como ellos mismos
2.1. INTERPRETACIONES DE HERBRAND 53

Como para todo conjunto inductivo libremente generado, si Ω es finito y HΩ es infinito, podemos
considerar HΩ como una unión numerable de conjuntos finitos:
[
HΩ = Hi,Ω
i∈N

donde

1. H0,Ω = CΩ si CΩ 6= ∅ y H0,Ω = {c} si CΩ = ∅.

2. Para i > 0 definimos Hi+1,Ω como la unión de Hi,Ω y el conjunto de términos de la forma
f (t1 , . . . , tn ) para todo sı́mbolo de función n-aria que ocurre en Ω y toda n-upla de términos
(t1 , . . . , tn ) en Hi,Ω .

De esta forma, podemos decir que el mérito de Herbrand es haber logrado tender un puente
entre lo finito y lo infinito gracias a la idea de contemplar un dominio infinito (numerable)
como una sucesión de dominios finitos. Esta sucesión puede contemplarse como una sucesión de
aproximaciones a este dominio infinito.
¿Qué ocurre con la segunda componente de (U, I)? también en esta componente podemos limi-
tarnos a considerar el conjunto de enunciados atómicos sobre los individuos representados por
los elementos de HΩ . Este conjunto se describe mediante la siguiente definición:
Definición 2.3 Sea Ω un conjunto de cláusulas y PΩ el conjunto de sı́mbolos de predicados que
intervienen en Ω. La base de Herbrand de Ω, denotada BΩ , se define como el conjunto de
átomos básicos generados por PΩ y HΩ , es decir, el conjunto de átomos de la forma siguiente:
Si P ∈ PΩ es un sı́mbolo de predicado n-ario y t1 , . . . , tn ∈ HΩ , entonces P (t1 , . . . , tn ) ∈ BΩ .

Definición 2.4 Dado un conjunto de cláusulas, Ω, se llama instancia básica de una cláusula
C ∈ Ω a una cláusula obtenida reemplazando las variables de C por elementos de HΩ .

r r Si Ω es un conjunto finito de cláusulas, la definición de base de Herbrand nos permite pensar


ee
como en el caso proposicional: cada elemento de BΩ puede ser considerado como un átomo
implı́citamente referido en Ω, cada uno de los cuales puede contemplarse como un sı́mbolo
proposicional. La diferencia es que el conjunto de sı́mbolos proposicionales que intervienen
en una fórmula o en un conjunto finito de fórmulas de la lógica proposicional es siempre
finito y el conjunto de átomos implı́citamente referido en un conjunto finito de cláusulas
Ω de L1 (C, F , P) puede ser infinito numerable o finito (según intervenga o no en Ω algún
sı́mbolo de función).
Establecida esta analogı́a, recordemos que, puesto que una interpretación I para un conjunto
finito de fórmulas, Ω, en la lógica clásica proposicional es una asignación de valores de verdad
para los sı́mbolos proposicionales p1 , . . . , pk que intervienen en Ω, podemos representar I
mediante el subconjunto de {p1 , . . . , pk } a los que I asigna el valor de verdad 1. Ası́, por
ejemplo, si es {p, q, r, s} el conjunto de sı́mbolos proposicionales que intervienen en Ω y la
interpretación I para Ω es tal que I(p) = I(q) = I(s) = 1 y I(r) = 0 podemos usar la
representación I = {p, q, s}.
Estas consideraciones conducen a la definición siguiente.

Definición 2.5 Sea Ω un conjunto de cláusulas. Una interpretación para Ω se dice que es una
interpretación de Herbrand, denotada MH,Ω si es de la forma (HΩ , IH,Ω ) cuyo dominio es
54 CAPÍTULO 2. MODELOS DE HERBRAND

el universo de Herbrand para Ω y donde IH,Ω asocia cada sı́mbolo de constante y a cada sı́mbolo
de función el propio sı́mbolo, es decir,

IH,Ω (a) = a y IH,Ω (f ) = f

en definitiva, si (HΩ , IH,Ω ) es una interpretación de Herbrand, para todo término básico t se
tiene que
IH,Ω (t) = t.

r r Herbrand afirma que basta interpretar sintácticamente tanto los sı́mbolos de constante como
ee
los sı́mbolos de función; ası́, por ejemplo, tenemos que

IH,Ω (f )(f (a)) = f (f (a))

Destaquemos también que, por definición, una valuación de variables ξ asociada a una in-
terpretación de Herbrand es también una sustitución (ya que asigna a cada variable un
término).

Por su propia definición, dos interpretaciones de Herbrand para Ω sólo difieren en la interpreta-
ción de los sı́mbolos de predicado. En consecuencia:
Toda interpretación de Herbrand queda determinada por un subconjunto de la base de
Herbrand, BΩ , concretamente: el conjunto de átomos básicos a los que IH,Ω asigna
el valor de verdad 1. En consecuencia, el cardinal del conjunto de interpretaciones
de Herbrand para Ω es el cardinal del conjunto de subconjuntos de BΩ , es decir, 2ℵ0 .

Definición 2.6 Un modelo de Herbrand para un conjunto de cláusulas, Ω, es una inter-


pretación de Herbrand para Ω tal que, para toda cláusula en Ω, se verifica que si Cib es una
instancia básica de Ci entonces IH,Ω (Cib ) = 1.
En la definición anterior hemos tenido en cuenta que Ω no es más que una notación abreviada de
una forma clausal (es decir, de una forma normal de Skolem cuya matriz es una forma normal
conjuntiva) en la que hemos omitido los cuantificadores debido a que conocemos que todos son
universales, y hemos escrito la matriz como conjunto de cláusulas.
Ejemplo 2.1 Para Ω = {P (x) ∨ Q(x), R(f (y))} se tiene que
1. En Ω no interviene ningún sı́mbolo de constante, por lo tanto,

HΩ = {c, f (c), f (f (c)), . . . , f n (c), . . .}

donde c es la constante de Herbrand.

2. BΩ = {P (f n (c)), Q(f k (c)), R(f l (c)) | n, k, l ∈ N}.

La interpretación de Herbrand IH,Ω = {P (f n (c)), R(f k (c)) | n, k ∈ N} es un modelo de Herbrand


para Ω.
La siguiente interpretación es un modelo para Ω pero no es una interpretación de Herbrand:

({1, 2}; {a ; 1}; {f ; {(1, 2), (2, 2)}}; {P ; {1}, Q ; {2}, R ; {2}})
2.1. INTERPRETACIONES DE HERBRAND 55

Ejemplo 2.2

1. Para Ω1 = {P (a) ∨ ¬Q(b, x) ∨ R(y), ¬P (b) ∨ ¬Q(z, u)} se tiene que

- HΩ1 = {a, b}.


- BΩ1 = {P (a), P (b), Q(a, a), Q(a, b), Q(b, a), Q(b, b), R(a), R(b)}.

El cardinal del conjunto de interpretaciones de Herbrand para Ω1 es el cardinal del conjunto


de subconjuntos de BΩ1 , es decir, 28 .
La interpretación de Herbrand IH,Ω1 = {P (a)} es un modelo de Herbrand para Ω1 ya que
al ser P (a) verdadera, también lo es P (a) ∨ ¬Q(b, x) ∨ R(y) y puesto que P (b) es falsa
(porque P (b) 6∈ {P (a)}) se tiene que ¬P (b) ∨ ¬Q(z, u) es verdadera.

2. Para Ω2 = {P (x, f (y)) ∨ ¬Q(y, x), ¬P (z, u) ∨ Q(u, u)} se tiene que

- HΩ2 = {c, f (c), f (f (c)), . . . , f n (c), . . .}.


- BΩ2 = {P (f n (c), f m (c)), Q(f k (c), f l (c)) | n, m, k, l ∈ N}.

Por lo tanto, el cardinal del conjunto de interpretaciones de Herbrand para Ω2 es 2ℵ0 .


Veamos que la interpretación de Herbrand

IH,Ω2 = {P (f n (c), f m (c)), Q(f k (c), f k (c)) | n, m.k. ∈ N}

es un modelo de Herbrand para Ω2 :

- Puesto que, para todo n y m en N, P (f n (c), f m (c)) es verdadera, tenemos que la


cláusula P (x, f (y)) ∨ ¬Q(y, x) es verdadera.
- Puesto que, para todo k en N, Q(f k (c), f k (c)) es verdadera, también es verdadera la
cláusula ¬P (z, u) ∨ Q(u, u).

Podemos ya establecer el resultado fundamental que nos muestra la utilidad de los modelos de
Herbrand.

Teorema 2.1 Sea Ω un conjunto de cláusulas, entonces Ω tiene un modelo si y sólo


si tiene un modelo de Herbrand.

Demostración: Supongamos que M = (U, I) es una interpretación que satisface a Ω. De-


finimos la interpretación de Herbrand asociada a M, denotada MH,Ω como la interpretación
∗ ), donde I ∗
(HΩ , IH,Ω H,Ω es el siguiente subconjunto de BΩ :


IH,Ω = {P (t1 , . . . , tn ) ∈ BΩ | (I(t1 ), . . . , I(tn )) ∈ I(P )}

Veamos que IH,Ω satisface Ω:
Por ser (U, I) un modelo para Ω, si C es una cláusula de Ω y Var (C) = {x1 , . . . , xn } se tiene
que I((∀x1 ) . . . (∀xn )C(x1 , . . . , xn )) = 1. Por lo tanto, para toda n-upla de términos básicos
(t1 , . . . , tn ) se tiene que I(C(t1 , . . . , tn )) = 1, es decir, para toda cláusula C ∈ Ω y para toda
instancia básica C b de C se tiene que I(C) = 1 y por lo tanto existe un literal básico lib en C b
56 CAPÍTULO 2. MODELOS DE HERBRAND

∗ , se tiene que I ∗ (lb ) = 1. Consecuentemente,


tal que I(lib ) = 1. Ahora, por definición de IH,Ω H,Ω i

IH,Ω satisface Ω.
El inverso es obvio ya que todo modelo de Herbrand es un modelo.
Ejemplo 2.3 Para Ω = {P (x), Q(y, f (a))} se tiene que:
- HΩ = {a, f (a), f (f (a)), . . . , f n (a), . . .}.
- BΩ = {P (f n (a)) | n ∈ N} ∪ {Q(f n (a), f m (a)) | n ∈ N, m ∈ N∗ }.
Una interpretación para Ω que no es una interpretación de Herbrand es
(D, I) = ({1, 2}; {a ; 2}; {f ; {(1, 2), (2, 1)}}; {P ; {1}, Q ; {(1, 2), (2, 2)}})
La interpretación de Herbrand para Ω asociada a esta interpretación es
IH,Ω = {P (f 2n+1 (a)) | n ∈ N} ∪ {Q(f n (a), f 2k (a)) | n ∈ N, k ∈ N}

ya que para t, t ∈ HΩ se tiene que
1. I(P )(t) = 1 si y sólo si t ∈ {P (f 2n+1 (a)) | n ∈ N∗ }
′ ′
2. I(Q)(t, t ) = 1 si y sólo si (t, t ) ∈ {Q(f n (a), f 2k (a)) | n ∈ N, k ∈ N∗ }

r r El Teorema 2.1 no es cierto si Γ es un conjunto de fórmulas arbitrarias en lugar de un conjunto


ee
de cláusulas. En efecto, un modelo para Γ = {P (a), (∃x)¬P (x)}, es, por ejemplo, M =
(N, {4}, ∅, {n ∈ N | n = 2k}). Sin embargo, puesto que BΓ = {P (a)}, las dos interpretaciones
de Herbrand para Ω son ∅ y {P (a)} y ninguna de ellas es un modelo para Γ.

Como venimos destacando, la teorı́a de Herbrand nos ha permitido eliminar la variabilidad de


la primera componente en (U, I) y limitarnos a un único dominio que puede ser finito o infinito
numerable. Respecto a la segunda componente, si el dominio de Herbrand tiene n elementos, el
número de posibles interpretaciones de Herbrand es también finito, concretamente, su número
de elementos es 2n . Pero si el dominio de Herbrand es infinito numerable, el cardinal del con-
junto de interpretaciones de Herbrand es infinito no numerable, concretamente, 2ℵ0 . ¿Podemos
pues decir que hemos avanzado de modo significativo de cara a poder gestionar el conjunto de
interpretaciones? Mostrar que la respuesta es afirmativa es el objetivo de la siguiente sección.

2.2. Teorema de Herbrand y Semidecidibilidad de L1


La búsqueda de un procedimiento de decisión para verificar la validez de una fórmula de la lógica
de primer orden, fue el objetivo de no pocos matemáticos durante muchos años. El primero del
que se tiene constancia, fue Leibnitz (1646-1716). A principios de este siglo lo replanteó Peano
(1858-1932) y, se convirtió en prioritario desde 1917, cuando Hilbert lo propuso entre un conjunto
de 23 problemas no resueltos hasta la fecha.
Este problema era conocido como un problema de decisión.2 En 1936, Alonzo Church de-
mostró que no puede existir un procedimiento de decisión completo para L1 . Este resultado se
conoce como teorema de Church. El mismo año, como comentamos en el capı́tulo 2 del primer
volumen, Alan Turing demostró que el problema de la decidibilidad para calL1 es equivalente a
un problema referente a las máquinas de Turing y cuyo enunciado es como sigue:
2
Entscheidungsproblem, en el original alemán.
2.2. TEOREMA DE HERBRAND Y SEMIDECIDIBILIDAD DE L1 57

Sea M T una máquina de Turing y sea α una entrada a M T . ¿Existe un algoritmo


para determinar si M T parará o no?
La respuesta a este problema, conocido como el problema de la parada, es que no existe tal
algoritmo.
Para profundizar sobre esta cuestión de la semidecidibilidad de la lógica clásica de primer orden
y su repercusión en su uso computacional existen una amplı́a bibliografı́a. No nos resistimos a
mencionar el trabajo del profesor Carlos Areces 3 al que llama La Bella y la Bestia:
La lógica de primer orden es un lenguaje hermoso. Como lógica, es una gran candi-
data a ser la “Bella” de esta historia. Es un lenguaje elegante, simple de caracterizar
y de buen comportamiento teórico. Pero cuando la miramos desde un punto de vista
computacional, por ejemplo, si queremos usarla como lenguaje de especificación del
conocimiento básico de un robot, entonces se transforma en la “Bestia”. Ya que no
existe un algoritmo que nos permita decidir si una fórmula de la lógica clásica de
primer orden es satisfacible (es decir, si la fórmula tiene al menos algún modelo,
cualquiera que sea éste). Aún el problema de saber si una fórmula de primer orden
es satisfacible en un modelo dado es difı́cil. Es decir, aún si nos dicen “aquı́ esta
la sentencia φ, y aquı́ está el modelo M = (D, I) (!finito!); por favor, dı́game si
φ es cierta en M . Ese problema (que se llama “chequeo de modelos”) no tiene una
solución eficiente: puede requerir espacio polinomial y tiempo exponencial (es un pro-
blema en PSpace). En una aplicación, un comportamiento de tiempo exponencial es
usualmente inaceptable. Para entender por qué, miremos un ejemplo. Supongamos
que la fórmula φ tiene 5 operadores, y que el modelo M no es demasiado grande,
digamos 10 elementos. Entonces, dependiendo de la estructura exacta de φ y de M ,
chequear que φ es cierta en M nos puede llevar !105 pasos! Veamos, si cada paso
nos toma un segundo de computación entonces:

105 = 100, 000 pasos o segundos ∼ 28 horas.

Bueno, es cierto que un segundo es mucho tiempo para una computadora, y que en
ese tiempo es posible que realice miles de operaciones y no una sola operación co-
mo dijimos arriba. Consigamos entonces una supercomputadora que pueda realizar
un millón de pasos por segundo. Quizás ahora ¿no tendrı́amos problemas? No lo
tendrı́amos en el ejemplo que consideramos antes (que resolverı́amos en sólo 0,1 se-
gundos), pero consideremos una fórmula de tamaño 10, y un modelo de 25 elementos.
Entonces:

2510 = 95.367.431.640.625 pasos∼95.367.431 segundos∼ 26.490 horas.

Contemos como contemos y no importa lo rápida que sea nuestra computadora,


problemas que requieran tiempo exponencial, siempre tendrán instancias demasia-
do difı́ciles de resolver.
Pero las noticias no son tan malas como parecen. No todas las fórmulas de la lógica
de primer orden son tan difı́ciles como los ejemplos que discutimos más arriba. Re-
cordemos que decir que un determinado problema está en una clase de complejidad
3
INRIA Lorraine. web: www.loria.fr/ areces
58 CAPÍTULO 2. MODELOS DE HERBRAND

C (como PSpace o ExpTime) quiere decir que existe alguna instancia del problema
que requiere tanto espacio o tiempo. Podrı́an haber muchas otras instancias mucho
mas simples.
Y aquı́ es donde el tema se pone interesante. Seguramente en una aplicación dada
no usaremos todo el poder expresivo de la lógica clásica de primer orden. ¿Quizás es
posible elegir fragmentos más simples y que de todas formas tengan la expresividad
necesaria para nuestra aplicación?

En efecto, ciertos fragmentos de la lógica clásica de primer orden son decidibles. Por ejemplo, la
clase de las fórmulas válidas de L1 en la que no intervienen sı́mbolos de función y en la que todos
los sı́mbolos de predicado que intervienen son monarios. También lo es el conjunto de fbfs con a
lo sumo 2 variables, es decir, en las que pueden aparecer a los sumo los sı́mbolos de variable x1
y x2 (tanto si consideramos la lógica clásica de primer orden con igualdad o sin ella), denotado
LP O2 .4
La mayorı́a de las clases decidibles son clases de fórmulas prenexas que se definen sintácticamente
mediante restricciones sobre la estructura del prefijo, restricciones sobre su matriz o restricciones
sobre ambos. Destaquemos algunas:

1. Sea A una fórmula en fnp en la que no intervienen sı́mbolos de función. Entonces, existe
un procedimiento de decisión para la satisfacibilidad de A si el prefijo de A tiene una de
las formas siguientes:

a) (∀y1 ) . . . (∀yk ), es decir, no tiene ningún sı́mbolo de cuantificación existencial.


b) (∃x1 ) . . . (∃xn ), es decir, no tiene ningún sı́mbolo de cuantificación universal.
c) (∃x1 ) . . . (∃xn )(∀y1 ) . . . (∀yk ), es decir, ningún sı́mbolo de cuantificación universal pre-
cede a un sı́mbolo de cuantificación existencial.
d) sólo tiene un sı́mbolo de cuantificación existencial.
e) (∃x1 ) . . . (∃xn )(∀y1 )(∀y2 )(∃z1 ) . . . (∃zk ), es decir, tiene a lo sumo dos cuantificadores
universales que no están separados por ningún sı́mbolo de cuantificación existencial.
f ) (∃x1 ) . . . (∃xn )(∀y)(∃z1 ) . . . (∃zk ), es decir, tiene un solo sı́mbolo de cuantificación uni-
versal.5

2. Sea A una fórmula en fnpc. Entonces existe un procedimiento de decisión para la satisfa-
cibilidad de A si la matriz de A es de una de las siguientes formas:

a) Todas las cláusulas son unitarias, es decir, de un sólo literal.


b) Todos los átomos son positivos o todos los átomos son negativos.
c) Todos los predicados son monarios.
4
Sin embargo, LP Ok , con k ≤ 3 es indecidible.
5
Sin embargo, los siguientes fragmentos son indecidibles:
1) (∀x1 ) . . . (∀xn )(∃y1 ) . . . (∃yk ), es decir, los cuantificadores existenciales están precedidos de tres sı́mbolos de
cuantificación universal.
2) (∀x1 )(∀x2 )(∀x3 )(∃y1 ) . . . (∃yk ), es decir, ningún sı́mbolo de cuantificación existencial precede a un sı́mbolo
de cuantificación universal.
2.2. TEOREMA DE HERBRAND Y SEMIDECIDIBILIDAD DE L1 59

Sin embargo, la situación no es completamente negativa para L1 existen procedimientos llamados


de semidecisión como establece el Teorema de Church:

Teorema 2.2 La Lógica Clásica de Predicados de Primer Orden no es decidible pero sı́ es
semidecidible, es decir, existen algoritmos tales que: dada una fórmula A, si esta fórmula es
válida, el algoritmo determina su validez tras una secuencia finita de pasos; si la fórmula no es
válida, el algoritmo puede finalizar con esta conclusión tras una secuencia finita de pasos o no
terminar.

Como vemos en el enunciado, la limitación radica en que no tenemos asegurada la finalización


del algoritmo si su entrada es una fórmula que no es válida; a estos procedimientos también se
conocen como semi-algoritmos. En la práctica, esto supone que, en muchos casos, no sabre-
mos distinguir entre fórmulas no-validas que provocan una ejecución indefinida del algoritmo y
fórmula válidas que requieren mucho tiempo de ejecución.
Los tres métodos de demostración que estudiamos en este curso, Tablas Semánticas, Método de
Gilmore y Resolución, son por lo tanto, semi-algoritmos.

2.2.1. Árboles Semánticos en L1


El concepto de árbol semántico introducido en el primer volumen para la lógica proposicional
puede ser extendido a L1 como sigue:
Definición 2.7 Sea ∆ = {P1 , P2 , . . . , Pn , . . .} una sucesión de átomos básicos. Un árbol
semántico respecto de ∆ es un árbol binario que satisface las condiciones siguientes:

Cada arco está etiquetado con un literal Pi o ¬Pi donde Pi ∈ ∆.

Cada arco de profundidad k está etiquetado con el literal Pk o con el literal ¬Pk donde
Pk ∈ ∆.

Los literales que etiquetan dos arcos que nacen del mismo nodo son opuestos.

Cada Pi ∈ ∆ ocurre en cada rama a lo sumo una vez (bien como etiqueta Pi o bien como
etiqueta ¬Pi ).

Si ∆ es finito, todo árbol semántico respecto de ∆ es finito. Si ∆ es infinito, existen árboles


semánticos finitos e infinitos (infinitos de ramificación finita, concretamente, infinitos binarios)
respecto de ∆.
A cada nodo N de un árbol semántico se le asocia una interpretación de Herbrand parcial
(asignación de valores de verdad a un subconjunto de átomos básicos, es decir, un subconjunto
de la base de Herbrand) que a cada átomo P le asigna:

El valor 1 si un arco del camino que une N con la raı́z está etiquetado por el literal P .

El valor 0 si un arco del camino que une N con la raı́z está etiquetado por el literal ¬P ,

ningún valor si ni P ni ¬P ocurren en el camino que une N con la raı́z.


60 CAPÍTULO 2. MODELOS DE HERBRAND

! !!•aa
aa
!!
P (a) ¬P (a)
! aa
! !! aa
a•
I1H (P (a)) =1H

 HH I8H (P (a)) = 0
P (b) H¬PH
(b)
I2H (P (b)) = 1  HH I5H (P (a)) = 1
I2H (P (a)) = 1 • • I5H (P (b)) = 0
@ @
Q(a, b) @ ¬Q(a, b) Q(a, b) @ ¬Q(a, b)
@@• @@•
• •
I3H (P (a)) = 1 I4H (P (a)) = 1 I6H (P (a)) = 1 I7H (P (a)) = 1
I3H (P (b)) = 1 I4H (P (b)) = 1 I6H (P (b)) = 0 I7H (P (b)) = 0
I3H (Q(a, b)) = 1 I4H (Q(a, b)) = 0 I6H (Q(a, b)) = 1 I7H (Q(a, b)) = 0

Figura 2.1: Ejemplo de árbol semántico.

Ejemplo 2.4 El árbol de la Figura 2.1 es un árbol semántico respecto a ∆ = {P (a), P (b), Q(a, b)}.

Definición 2.8 Sea Ω un conjunto de cláusulas y sea ∆ = {P1 , P2 , . . . , Pn , . . .} una enumeración


de los átomos de la base de Herbrand BΩ (que siempre existe, pues BΩ es a lo sumo numerable).
Un árbol semántico para Ω respecto de ∆ es completo si la interpretación de Herbrand asociada
a cada hoja asigna valores de verdad a todos los Pi ∈ ∆.
Obviamente, se tiene el resultado siguiente

Teorema 2.3 Un árbol semántico completo para Ω respecto de ∆ es finito si y sólo si en Ω no


intervienen sı́mbolos de función.

Como consecuencia, si en Ω no intervienen sı́mbolos de función, es decir, si HΩ es finito po-


demos extender de modo natural el método de Quine visto en el primer volumen para el caso
proposicional.
Ejemplo 2.5 Consideremos el razonamiento:

H1 : (∀x)(P (x) → Q(x))


H2 : (∀x)(Q(x) → R(x))
C : (∀x)(P (x) → R(x))

Para analizarlo hemos de analizar la insatisfacibilidad de la forma clausal

Ω = {¬P (x) ∨ Q(x), ¬Q(x) ∨ R(x), P (a), ¬R(a)}

Puesto que HΩ = {a} y BΩ = {P (a), Q(a), R(a)} el número de interpretaciones de Herbrand


para Ω es 23 = 8 y el conjunto de instancias básicas es:

Ω′ = {¬P (a) ∨ Q(a), ¬Q(a) ∨ R(a), P (a), ¬R(a)}

Por lo tanto, podemos aplicar el método de Quine obteniendo el árbol semántico:


2.2. TEOREMA DE HERBRAND Y SEMIDECIDIBILIDAD DE L1 61

!!•aa
R(a) !!! aa ¬R(a)
! aa
!! aa
•! 
a
•H I2H (A) =?
 HH
I1H (A) = 0 P (a) H¬P (a)
 H
H
I3H (A) =? • H•
@
@ ¬Q(a) I4H (A) = 0
Q(a)
@
@•

I5H (A) = 0 I6H (A) = 0

donde A = (¬P (a) ∨ Q(a)) ∧ (¬Q(a) ∨ R(a)) ∧ P (a) ∧ ¬R(a). Por lo tanto, el razonamiento es
válido.
Veamos qué ocurre cuando HΩ es infinito.
Definición 2.9 Un nodo N de un árbol semántico para Ω respecto de una enumeración ∆ =
{P1 , P2 , . . . , Pn , . . .} de los átomos de BΩ se denomina nodo fallo si la interpretación parcial de
Herbrand IH asociada a N es tal que I(Cib ) = 0 para alguna instancia básica de una cláusula Ci
de Ω, pero ninguna de las interpretaciones parciales de Herbrand asociadas a sus ascendientes
posee esta propiedad.
Un nodo fallo nos proporciona una interpretación (parcial) de Herbrand IH que hace falsa a Ω.
Por lo tanto, no es preciso considerar las extensiones de I. De aquı́ la definición siguiente.
Definición 2.10 Un árbol semántico respecto de ∆ = {P1 , P2 , . . . , Pn , . . .} se dice cerrado si
todas sus hojas son nodos fallo.

Definición 2.11 Un nodo N de un árbol semántico respecto de la sucesión de átomos ∆ =


{P1 , P2 , . . . , Pn , . . .} se denomina un nodo inferencia si sus dos descendientes inmediatos son
nodos fallo.

Ejemplo 2.6 Dado Ω = {P (x), ¬P (x)∨Q(f (x)), ¬Q(f (a))}, la figura muestra un árbol semánti-
co cerrado para Ω respecto de la sucesión

∆ = {P (a), Q(a), P (f (a)), Q(f (a)), . . .}

!!•aa
P (a) !!! aa
¬P (a)
! aa
!! aa
•!
(∗) H a•
 H
HH¬Q(f (a)) I4H (P (a)) = 0
Q(f (a)) HH

• H•
I2H (¬Q(f (a)) = 0 I3H (¬P (a) ∨ Q(f (a)) = 0

En este árbol sólo el nodo marcado con (∗) es un nodo inferencia.


62 CAPÍTULO 2. MODELOS DE HERBRAND

2.2.2. Teorema de Herbrand


Llegamos a uno de los teoremas más destacados de la lógica de primer orden debido a que
es la base de la mayorı́a de los demostradores automáticos de teoremas existentes. Su interés
radica en que proporciona un modo sistemático de analizar todas las posibles interpretaciones
de Herbrand mediante el uso de un árbol semántico.
Teorema 2.4 (de Herbrand) Un conjunto Ω de cláusulas es insatisfacible si y sólo si, aso-
ciado a cada árbol semántico completo, existe un árbol semántico cerrado finito.

Demostración: Supongamos que Ω es insatisfacible. Sea T un árbol semántico completo para


Ω. Para cada rama ρ de A, sea IρH el conjunto de todos los literales positivos que etiquetan
los arcos de ρ. Entonces IρH es una interpretación de Herbrand para Ω y puesto que Ω es
insatisfacible, existe una cláusula C en Ω y una instancia básica C b de C tal que IρH (C b ) = 0.
Puesto que el número de literales de C b es finito, existe un nodo N en la rama ρ tal que la
interpretación parcial de Herbrand a él asociada hace falsa a C b , pero ninguna de las interpre-
taciones parciales de Herbrand asociadas a sus ascendientes posee esta propiedad. Por lo tanto,
existe un nodo fallo N en la rama ρ que es o bien N o bien un ascendiente de N . Este hecho
lo tenemos asegurado para toda rama, por lo tanto, toda rama de T tiene un nodo fallo y en
consecuencia, existe un árbol semántico cerrado T ′ para Ω. Por otra parte, T ′ es finito; de no
ser ası́, por el lema de König, existe al menos una rama infinita en T ′ , es decir, sin nodos fallos,
lo cual es imposible.
Inversamente, si a todo árbol semántico completo T para Ω le corresponde un árbol semántico
cerrado, entonces toda rama contiene un nodo fallo, es decir, toda interpretación de Herbrand
falsifica a Ω. Por lo tanto, por el Teorema 2.1, Ω es insatisfacible.

El teorema de Herbrand admite otro enunciado equivalente que no utiliza el concepto de árbol
semántico y que es mencionado habitualmente en la literatura como teorema fundamental
de Herbrand:
Teorema 2.5 Un conjunto de cláusulas, Ω, es insatisfacible si y sólo si existe un conjunto finito
de instancias básicas de cláusulas de Ω que es insatisfacible.

Demostración: Sea Ω insatisfacible y T un árbol semántico completo para Ω. Por el teorema


anterior, existe un árbol cerrado finito T ′ asociado a T . Sea Ω′ el conjunto de todas las instancias
básicas de cláusulas que son falsas en los nodos fallos de T ′ . Ω′ es finito por serlo el número de
nodos fallos de T ′ . Por otra parte, puesto que Ω′ es falso en toda interpretación de Herbrand
para Ω′ , por el Teorema 2.1, Ω′ es insatisfacible.
Inversamente, sea Ω′ un conjunto finito de instancias básicas de cláusulas de Ω tal que Ω′ es
insatisfacible. Probemos que Ω es insatisfacible. En caso contrario, existirı́a un modelo M para
Ω y, por el Teorema 2.1, existirı́a un modelo de Herbrand para Ω que serı́a asimismo un modelo
para Ω′ .

Podrı́amos decir, que el teorema de Herbrand permite desarrollar la semántica de la lógica de pri-
mer orden utilizando únicamente medios sintácticos. Por otra parte, el teorema fundamental de
Herbrand es un teorema de compacidad sintáctica y, como veremos a continuación, proporciona
un semialgoritmo para el estudio de la satisfacibilidad en la lógica de primer orden:
2.2. TEOREMA DE HERBRAND Y SEMIDECIDIBILIDAD DE L1 63

2.2.2.1. Semialgoritmo para SAT en L1


Dado un conjunto Ω de fórmulas de L1 ,
Transformar Ω en un conjunto equisatisfacible de cláusulas Γ; esto es, pasar a forma clausal.

Generar una enumeración del conjunto de instancias básicas de las cláusulas de Γ

∆ = {C1 , . . . , Cn , . . .}

Examinar si este conjunto es insatisfacible utilizando el semialgoritmo siguiente que es


esencialmente el método introducido por Gilmorey que es una extensión del algoritmo de
Quine para la lógica proposicional. Su funcionamiento es idéntico al de Quine considerando
los elementos de la base de Herbrand para definir las evaluaciones parciales de las fórmulas:

2.2.2.2. El Semialgoritmo de Gilmore


1. Para todo n, los arcos del árbol semántico de nivel n serán etiquetados con Cn y ¬Cn .

2. Un árbol semántico respecto a ∆ se construye usando el siguiente criterio:

Si todas las posibles extensiones de la interpretación parcial de Herbrand aso-


ciada a un nodo N , asignan el mismo valor de verdad a Γ no es preciso construir
el subárbol del árbol semántico completo respecto a ∆ que tiene a N como raı́z.
En su lugar, se etiquetará N con el valor de verdad que la interpretación parcial
asociada a él asigna a ∆.

3. Siguiendo este procedimiento,

Si se obtiene un árbol cerrado, entonces Γ, y por lo tanto Ω, es insatisfacible.


Si se obtiene un árbol en el que alguna de sus hojas está etiquetada con una etiqueta
de la forma IiH (∆) = 1 entonces Γ, y por lo tanto Ω, es satisfacible.

En definitiva, si Ω es insatisfacible, podemos comprobar su insatisfacibilidad en un número finito


de etapas; pero si es satisfacible, el proceso puede no terminar ya que podrı́a tener sólo modelos
de Herbrand infinitos.
El siguiente ejemplo nos muestra que existen fbfs para las que el análisis de su satisfacibilidad
requiere un árbol infinito.
Ejemplo 2.7 La fórmula

A = P (a) ∧ (∀x)((P (x) → P (f (x)) → (∀x)P (x)

es satisfacible. En efecto, (N, {a ; 0}, {f ; {(n, n + 1)}, {P ; R}) es un modelo para A. Sin
embargo, como veremos, A no es válida:
Una forma clausal simultáneamente satisfacible con ¬A es

Ω = {P (a), ¬P (x) ∨ P (f (x)), ¬P (b)}

El dominio de Herbrand es {f n (a) | n ∈ N} ∪ {f n (b) | n ∈ N}. La base de Herbrand para Ω es


{P (f n (a)) | n ∈ N} ∪ {P (f n (b)) | n ∈ N}. Por lo tanto existen 2ℵ0 interpretaciones.
64 CAPÍTULO 2. MODELOS DE HERBRAND

La interpretación de Herbrand {P (f n (a)) | n ∈ N} satisface Ω. Por lo tanto, ¬A es satisfacible


y en consecuencia, A no es válida. Probemos que cualquier otra interpretación de Herbrand que
satisfaga a Ω ha de contener a {P (f n (a)) | n ∈ N} y por lo tanto es infinita. En efecto, toda
interpretación de Herbrand que satisface a Ω ha de contener P (a) y no ha de contener a P (b) y,
la segunda cláusula en Ω (la cláusula ¬P (x) ∨ P (f (x))) obliga a que si P (f n (a)) pertenece a un
modelo de Herbrand para Ω, también P (f n (a)) ha de pertenecer a dicho modelo. Por lo tanto,
no podremos encontrar ningún árbol finito que nos permita concluir el análisis para Ω ya que:
- No existe un árbol cerrado porque no es insatisfacible.
- No podemos encontrar ninguna rama finita que nos confirme la satisfacibilidad.

Ejemplo 2.8 Vamos a estudiar la validez de una inferencia utilizando el principio de refutación
y el algoritmo de Gilmore sobre la base de Herbrand de la fórmula obtenida tras hallar una
fórmula en forma normal de Skolem a partir de la refutación:

(∀x)(∃x)P (x) → Q(x)) |= (∀y)(∀x)(P (x) → Q(y))

⇔ {(∀x)(∃x)P (x) → Q(x)), ¬(∀y)(∀x)(P (x) → Q(y))} es insatisficible,

⇔ {(∀x)(∀y)(P (y) → Q(x)), (∃y)(∃x)¬(P (x) → Q(y))} es insatisficible,

⇔ {(∀x)(∀y)(P (y) → Q(x)), ¬(P (b) → Q(a))} es insatisficible,

⇔ S = (∀x)(∀y)(P (y) → Q(x)) ∧ ¬(P (b) → Q(a)) es insatisficible.

Dado que S no contiene funciones, el universo de Herbrand está formado simplemente por las
constantes, HS = {a, b}, y la base de herbrand es finita, BS = {P (a), Q(a), P (b), Q(b)}.
Llamemos A1 = (∀x)(∀y)(P (y) → Q(x)) y A2 = ¬(P (b) → Q(a)).
Para entender mejor el árbol que construimos a continuación, es conveniente observar que los
modelos de Herbrand de A1 = (∀x)(∀y)(P (y) → Q(x)) coinciden con los de la fórmula

(P (a) → Q(a)) ∧ (P (a) → Q(b)) ∧ (P (b) → Q(a)) ∧ (P (b) → Q(b));

las dos fórmulas no son lógicamente equivalentes, pero sı́ son equivalentes en el universo de
Herbrand.

Ejemplo 2.9 Aunque el universo de Herbrand sea infinito, si la inferencia es válida, siempre
podremos encontrar un árbol finito que lo demuestre.

(∀x)P (x), (∀x)(P (x) → Q(f (x))) |= Q(f (a)) ⇔


⇔ S = (∀x)P (x) ∧ (∀x)(P (x) → Q(f (x))) ∧ ¬Q(f (a)) es insatisfacible

El universo de Herbrand es

HS = {a, f (a), f (f (a), f (f (f (a))), . . . }

y la base de Herbrand es

BS = {P (a), Q(a), P (f (a)), Q(f (a)), P (f (f (a))), Q(f (f (a))), . . . }.


2.3. MODELOS FINITOS Y MODELOS INFINITOS 65

Llamemos A1 = (∀x)P (x), A2 = (∀x)(P (x) → Q(f (x))) y A3 = ¬Q(f (a)) para construir el
árbol de Gilmore.

Ejemplo 2.10 El razonamiento

(∃x)(P (x) ∧ (∀y)(D(y) → L(x, y)))


(∀x)(P (x) → (∀y)(Q(y) → ¬L(x, y)))
(∀x)(D(x) → ¬Q(x))

es válido si y solo si el siguiente conjunto es insatisfacible:

{(∃x)(P (x) ∧ (∀y)(D(y) → L(x, y))),


(∀x)(P (x) → (∀y)(Q(y) → ¬L(x, y))),
¬(∀x)(D(x) → ¬Q(x))}

Este conjunto es insatisfable si y solo si lo es el siguiente conjunto de fórmulas en forma normal


prenexa:

{(∃x)(∀y)(P (x) ∧ (D(y) → L(x, y))),


(∀x)(∀y)(P (x) → (Q(y) → ¬L(x, y))),
(∃x)¬(D(x) → ¬Q(x))}

Y este es insatisfacible si y solo si lo es el siguiente conjunto formado por fórmulas en forma


normal de Skolem:

{(∀y)(P (a) ∧ (D(y) → L(a, y))),


(∀x)(∀y)(P (x) → (Q(y) → ¬L(x, y))),
¬(D(b) → ¬Q(b))}

El universo de Herbrand es HS = {a, b} y la base de Herbrand

BS = {P (a), P (b), Q(a), Q(b), D(a), D(b), L(a, a), L(a, b), L(b, a), L(b, b)}

Construimos el árbol de Gilmore para A1 ∧ A2 ∧ A3 , en donde


Además del Teorema 2.4, el Teorema 2.1 tiene otras consecuencias muy destacables, como las
que consideraremos en el resto de este capı́tulo que sirven para confirmar la importancia de la
aportación de Herbrand.

2.3. Modelos Finitos y Modelos Infinitos


Un análisis superficial de la semántica de la lógica de primer orden, nos podrı́a llevar a la
conclusión de que al considerar interpretaciones con dominios de mayor cardinal, aumentamos
la posibilidad de encontrar modelos para una fórmula.
Podrı́amos realizar este análisis a través de los siguientes ejemplos:
1. La fórmula (∃x)P (x) ∧ (∃x)¬P (x) no tiene ningún modelo cuyo dominio conste de un solo
elemento, pero es fácil dar ejemplos de modelos cuyos dominios constan de dos elementos.
66 CAPÍTULO 2. MODELOS DE HERBRAND

2. La fórmula (∃x)(P (x)∧Q(x))∧(∃x)(P (x)∧¬Q(x))∧(∃x)(¬P (x)∧¬Q(x)) no tiene ningún


modelo cuyo dominio conste de dos elementos, pero es fácil dar ejemplos de modelos cuyos
dominios constan de tres elementos.
3. Podrı́amos seguir dando ejemplos de fbfs que no tienen modelos cuyo dominio conste de
n elementos, pero para las que es fácil dar modelos cuyos dominios consten de n + 1
elementos.
4. Análogamente, el conjunto de fbfs
{(∀x)(∃y)R(x, y), ¬(∃x)R(x, x), (∀x)(∀y)(∀z)((R(x, y) ∧ R(y, z)) → R(x, z))}
no tiene ningún modelo finito pero es fácil dar ejemplos de modelos cuyo dominio es N.
El siguiente paso serı́a dar una fórmula que no tiene ningún modelo infinito numerable, pero
para la que existen modelos cuyo dominio es de cardinal infinito no numerable. Como veremos,
el teorema de Löwenheim nos previene de este error: sólo hemos de clarificar si una fbf (o un
conjunto de fbfs) es satisfacible o no. En caso de ser satisfacible, como veremos en esta sección
(Teorema 2.7), podemos asegurar que tiene un modelo a lo sumo infinito numerable.
Definición 2.12 Un conjunto de fórmulas Γ de L1 se dice que tiene la propiedad de modelo
finito si cumple que
Γ es satisfacible si y sólo si existe un modelo (U, I) para Γ con U finito

Teorema 2.6 Todo conjunto finito Γ de fórmulas en forma prenexa de la forma


(∀x1 ) . . . (∃xn )(∀y1 ) . . . (∀yk )M (x1 , . . . , xn , y1 , . . . , yk )
(en la que no intervienen sı́mbolos de función) tiene la propiedad de modelo finito.

Demostración: Basta considerar el Teorema 2.1 y que el universo de Herbrand para el conjunto
de cláusulas simultáneamente insatisfacible con Γ generado por el procedimiento introducido en
la Sección 1.4 es finito.
En cuanto a los modelos infinitos, tenemos los resultados siguientes.
Teorema 2.7 (de Löwenheim) Si una fórmula A es satisfacible entonces tiene un modelo
numerable.

Demostración: Basta considerar una forma clausal simultáneamente satisfacible a A y apli-


car el Teorema 2.1, que asegura la existencia de un modelo de Herbrand que es obviamente
numerable.

Teorema 2.8 (de Löwenheim-Skolem) Si un conjunto Ω de fórmulas es satisfacible enton-


ces admite un modelo numerable

Demostración: Puesto que todo lenguaje de primer orden es numerable, cualquier conjunto Ω
considerado es numerable. Si Ω es infinito numerable, sea Ω = {Ai | i ∈ N}, podemos considerar
para cada fórmula Ai ∈ Ω una forma clausal Γi simultáneamente satisfacible con Ai y tal que los
conjuntos de constantes y de funciones de Skolem asociados a ellas son disjuntos dos a dos. Por lo
tanto, podemos considerar el conjunto Γ = {Γi | i ∈ N} que es simultáneamente satisfacible con
Ω. Ahora, el Teorema 2.1 asegura la existencia de un modelo de Herbrand, que es obviamente
numerable.
2.4. INDECIDIBILIDAD DE L1 67

2.3.1. Compacidad
Como un corolario destacado más, en esta sección estudiamos el teorema de compacidad, que
caracteriza la satisfacibilidad de un conjunto infinito de fórmulas.
Teorema 2.9 (de compacidad) Un conjunto de fbfs de L1 , Ω, es satisfacible si y sólo si es
finitamente satisfacible, es decir, todo subconjunto finito es satisfacible.

Demostración: Si Ω es satisfacible entonces, obviamente, es finitamente satisfacible.


Inversamente, supongamos que Ω es finitamente satisfacible. Entonces, Ω es satisfacible, ya que,
en caso contrario, por el teorema fundamental de Herbrand, si Ωb es el conjunto de instancias
básicas de los elementos de Ω, existirı́a un subconjunto finito de Ωb insatisfacible. Sea este
conjunto Γb y sea Γ el subconjunto de Ω tal que toda cláusula en Γb es una instancia básica de
una cláusula de Γ. Puesto que Γb es finito, Γ es también finito y, por la hipótesis de satisfacibilidad
finita de Ω, se tiene que Γ es satisfacible.
Ahora, por el Teorema 2.1, el conjunto Γb′ de instancias básicas de Γ es también satisfacible.
Finalmente, puesto que Γb ⊆ Γb′ , se tiene que Γb es satisfacible, contra la hipótesis de partida
sobre este conjunto.
Como en el caso proposicional, se tiene el siguiente resultado que es una versión equivalente del
teorema de compacidad.
Teorema 2.10 Ω |= A si y sólo si existe un subconjunto finito Ω0 de Ω tal que Ω0 |= A.
En la Sección 2.2 hemos hecho referencia a la equivalencia del problema de la decidibilidad para
L1 y el problema de la parada referente a las máquinas de Turing. Terminaremos este capı́tulo
estableciendo una nueva relación con el problema de la decidibilidad para L1 , esta vez con el
problema de convergencia de Post.

2.4. Indecidibilidad de L1
El problema siguiente se conoce como problema de la correspondencia de Post:
Dada una secuencia [(a1 , b1 ), . . . , (ak , bk )] de pares de palabras no vacı́as sobre el
alfabeto {0, 1}, encontrar una secuencia de ı́ndices [i1 , . . . , in ] tal que ai1 . . . ain =
bi 1 . . . bi n .
A una secuencia de este tipo se le denomina una solución del problema de correspondencia
[(a1 , b1 ), . . . , (ak , bk )].
Ejemplo 2.11 Para el problema de correspondencia
[(1, 101), (10, 00), (011, 11), (1001, 111)]
una solución es la secuencia 1, 3, 2, 3 ya que a1 a3 a2 a3 = 101110011 = b1 b3 b2 b3

Teorema 2.11 (de Post) El problema de la correspondencia de Post es indecidible, es decir,


no existe ningún algoritmo que, dado como entrada un sistema de correspondencia
[(a1 , b1 ), . . . , (ak , bk )]
termine con salida SI, si el sistema tiene solución, y con salida NO, si el sistema no tiene
solución.
68 CAPÍTULO 2. MODELOS DE HERBRAND

Definición 2.13 Sean ∆1 y ∆2 dos conjuntos de palabras sobre un alfabeto finito Γ. Decimos
que ∆1 es reducible a ∆2 si existe una aplicación Φ : Γ∗ −→ Γ∗ tal que:

(i) Φ es decidible, es decir existe un algoritmo que proporciona Φ(γ) para toda entrada γ ∈ Γ∗ .

(ii) Para toda palabra γ ∈ Γ∗ se tiene que:

γ ∈ ∆1 si y sólo si Φ(γ) ∈ ∆2

la función Φ se llama una función de reducción de ∆1 a ∆2 .

De la definición anterior se tiene que:

Si ∆1 es reducible a ∆2 y ∆2 es decidible, entonces ∆1 también es decidible.

El teorema de Post y una reducción del problema de correspondencia de Post al problema de


la validez de las fbfs en L1 permite demostrar el teorema siguiente. Un estudio detallado queda
fuera de los lı́mites del curso.

Teorema 2.12 (de indecidibilidad de Church) Sea L1 un lenguaje de primer orden cuya
signatura es Σ = ({c}, {f, g}, {P }) donde f y g son sı́mbolos de funciones monarias y P es un
sı́mbolo de predicado binario. Entonces el conjunto de fórmulas válidas es un conjunto indecidi-
ble.
2.5. EJERCICIOS 69

2.5. Ejercicios
1. Dado un lenguaje de primer orden L1 con signatura ({c}, ∅, {P }), donde P es un sı́mbolo de
predicado monario, determinar su universo de Herbrand, HL1 .
2. Sea A(x1 , . . . , xn ) una fbf en la que no intervienen ni sı́mbolos de función ni sı́mbolos de cuanti-
ficación. Demostrar que (∀x1 ) . . . (∀xn )A(x1 , . . . , xn ) tiene un modelo si y sólo si tiene un modelo
cuyo dominio consta de un único elemento.
3. Dada la fórmula A = (∃x)(P (x) → (∀y)P (y)),
a) Hallar un conjunto de cláusulas, Ω, simultáneamente satisfacible con A.
b) Hallar HΩ y BΩ .
c) Probar que A es válida.

4. Dada la fórmula A = (∃x)P (x) → Q(a) ∧ ¬(∀y)R(y) ∧ (∃y)D(y)
a) Hallar un conjunto de cláusulas Ω simultáneamente satisfacible con A.
b) Hallar HΩ y BΩ .
c) Dar, si existe, un modelo de Herbrand para Ω.
5. Hallar HΩ y BΩ para un conjunto de cláusulas simultáneamente satisfacible con el conjunto de fbfs

{(∃z)((∀y)(y > z) → (∃x)(x2 > 3)), (∀x)(∃y)(y = x2 )}

6. Hallar BΩ para un conjunto de cláusulas equisatisfacible con la fórmula ¬A, siendo


 
A = (∀x)(∀y)(∀z) (P (x, y) ∧ P (y, z)) → Q(x, z) ∧ (∀x)(∃y)P (x, y) → (∀x)(∃y)Q(x, y)

7. Para cada una de las fórmulas siguientes


a) (∀x)(P (x) → (∃y)R(y))

b) (∀x)(∀y) (∃z)P (z) ∧ (∃u)(Q(x, u) → (∃v)Q(y, v))

c) (∃x) ¬(∃y)P (y) → (∃z)(Q(z) → R(x))

(i) Transformarla en forma clausal.


(ii) Determinar su universo y base de Herbrand.

8. Sea Ω = {P (x) ∨ Q(x), R(f (y))}


a) Determinar el universo y la base de Herbrand para Ω.
b) Construir un árbol semántico completo para Ω.
c) Dar un modelo de Herbrand para Ω.
9. Sea Ω = {P (x), ¬P (x) ∨ Q(x, a), ¬Q(y, a)}
a) Dar el universo y la base de Herbrand para Ω.
b) Construir un árbol semántico completo para Ω.
c) Construir un árbol semántico cerrado para Ω.
10. Encontrar un conjunto insatisfacible Ωb de instancias básicas de cláusulas de Ω para cada uno de
los dos conjuntos de cláusulas
a) Ω = {P (x, a, g(x, b)), ¬P (f (y), z, g(f (a), b))}
70 CAPÍTULO 2. MODELOS DE HERBRAND

b) Ω = {P (x), Q(x, f (x)) ∨ ¬P (x), ¬Q(g(y), z)}


11. Demostrar que la fbf

(∀x)(∀y)(P (x, y) ↔ S(x)) → (∀y)(P (x, y) → S(x))

es válida siguiendo el siguiente proceso:

a) Encontrar un conjunto de cláusulas Ω simultáneamente insatisfacible con A.


b) Encontrar, mediante el método de Gilmore, un conjunto finito insatisfacible Ωb de instancias
básicas de cláusulas de Ω.

12. Demostrar que la fbf


 
(∀x) (∀y)(P (x, y) → ¬P (y, x)) ∧ (∃y)P (x, y) ∧ (∀x)(∀y)(∀z) (P (x, y) ∧ P (y, z)) → P (x, z)

no tiene modelos finitos.


13. Demostrar por inducción estructural que si MH = (H, IH ) es un modelo de Herbrand, para una
fórmula A entonces para todo término t que interviene en A (no necesariamente básico) se tiene
que
IHξ (t) = IH (ξ(t))
donde ξ en el segundo término de la igualdad se entiende como una sustitución.
14. Para cada una de las fórmulas siguientes
a) (∀x)(∀y)(P (f (x), x) ∧ R(y, f (y)))
b) (∀x)(P (a, f (x)) → R(f (x), b))
c) (∀x)(P (x, f (b)) → R(f (x), b))
d ) (∀x)(P (x, f (b)) → (∃y)R(x, y))
e) (∀x)(P (x, f (b)) → (∀y)R(x, y))

(i) Transformarla en forma clausal.


(ii) Dada la interpretación de Herbrand

IH = {P (f n (a), b) | n ∈ N} ∪ {R(f n (a), f m (b)) | n, m ∈ N}

determinar si IH es o no un modelo de cada una de las formas clausales obtenidas en el ı́tem


anterior.

15. Para cada una de las fórmulas siguientes


a) (∀x)(Q(x) → R(x, f (x)))
b) (∀x)(Q(x) → (∃y)R(x, y))
c) (∃x)(Q(x) ∧ R(x, f (x)))

(i) Transformarla en forma clausal.


(ii) Dada la interpretación de Herbrand

IH = {Q(f n (a)) | n ∈ N} ∪ {R(a, f m (b)) | n, m ∈ N∗ }

determinar si IH es o no un modelo de cada una de las formas clausales obtenidas en el ı́tem


anterior.
2.5. EJERCICIOS 71

16. Dada la fórmula A = (∃x)(P (x) → (∀y)P (y)), halle un conjunto Ω de fórmulas en forma normal de
Skolem tal que Ω sea satisfacible si y solo si lo es A. Determine el universo y la base de Herbrand
de Ω y estudie la satisfacibilidad y la validez de A utilizando el método de Gilmore.
17. Estudie la validez de la siguientes inferencias utilizando el método de Gilmore:

 (∃x)(P (x) ∧ (∀y)(D(y) → L(x, y)))
a) (∀x)(P (x) → (∀y)(Q(y) → ¬L(x, y)))

(∀x)(D(x) → ¬Q(x))

 (∀x)(∀y)(∀z)((P (x, y) ∧ P (y, z)) → A(x, z))
b) (∀x)(∃y)P (y, x)

(∀x)(∃y)A(y, x)
72 CAPÍTULO 2. MODELOS DE HERBRAND
Capı́tulo 3

Sistemas Deductivos para L1

En este capı́tulo introducimos la extensión a la lógica de primer orden de los sistemas deductivos
considerados para la lógica proposicional en el primer volumen, es decir:

un sistema axiomático, y

un sistema de deducción natural.

Puesto que, como hemos analizado, la lógica de primer orden es una extensión de la lógica
proposicional, tan sólo requeriremos (en ambos casos) añadir a los axiomas y/o reglas de infe-
rencias de los sistemas proposicionales nuevos axiomas y/o reglas de inferencias para regir el
comportamiento de los cuantificadores.

3.1. Un sistema axiomático para L1


Del mismo modo que en el caso proposicional, escogeremos para L1 el sistema debido a Lukasiewicz
al que denotaremos L1 . Este sistema es correcto y completo y estas dos propiedades las tendremos
presentes en todo el desarrollo de la sección.
Axiomas:

Ax 1. A → (B → A)

Ax 2. (A → (B → C)) → ((A → B) → (A → C))

Ax 3. (¬A → ¬B) → (B → A)

Ax 4. (∀x)A(x) → A(t), donde t es libre para x en A(x).

Ax 5. (∀x)(A → B(x)) → (A → (∀x)B(x)), donde x ∈


/ Vlibre (A).

r r Advirtamos, en relación con los nuevos axiomas introducidos, que:


ee

Los tres primeros axiomas son los axiomas del sistema de Lukasiewicz para la lógica
proposicional.
(∀x)(P (x) → Q(x)) → (P (x) → Q(t)) no es una instancia del Axioma 4, ya que la
sustitución de x por t no se ha realizado correctamente.
74 CAPÍTULO 3. SISTEMAS DEDUCTIVOS PARA L1

(∀x)(∃y)P (x, y) → (∃y)P (y, y) no es una instancia del Axioma 4, porque y no es libre
para x en (∃y)P (x, y).
Si en el Axioma 4 consideramos t = x tenemos como esquema de axiomas
(∀x)A(x) → A(x)

Reglas de inferencia:
A, A → B
Modus Ponens (MP):
B
A
Generalización (Gen):
(∀x)A
ee
rr Es importante advertir la diferencia entre el Axioma 4 y la regla de generalización: El
Axioma 4 asegura que de (∀x)A(x) se infiere en un único paso A(t) (si t es libre para
x en A(x)), por su parte, la regla de generalización (puesto que L1 es, como veremos,
correcto) recogerá el hecho de que “si A es válida entonces también lo es (∀x)A(x)” .
Veamos que la restricción en el Axioma 4 es necesaria: Si no exigimos que t sea libre
para x en A(x), la fbf siguiente serı́a un axioma
(∀x)(∃y)P (x, y) → (∃y)P (y, y)
Sin embargo, esta fbf no es válida; para comprobarlo, consideremos una interpretación
(U, I) cuyo dominio U tenga al menos dos elementos y tal que I(P ) = {(u, u′ ) ∈ U × U |
u 6= u′ }, entonces se tiene que I((∀x)(∃y)P (x, y)) = 1 y se tiene que I((∃y)P (y, y)) = 0.
Por lo tanto, el sistema no serı́a correcto ya que no todos los axiomas serı́an fbfs válidas.
Análogamente, si quitamos la restricción en el Axioma 5 de que x no sea una variable
libre en A, tendrı́amos como axioma, por ejemplo, la fbf
(∀x)(P (x) → P (x)) → (P (x) → (∀x)P (x))
¡Pero esta fbf no es válida. En efecto, en la interpretación (U, I) con dominio U = Z y
tal que I(P ) =“ser par” , se tiene I((∀x)(P (x) → P (x))) = 1; sin embargo, I(P (x) →
(∀x)P (x)) 6= 1 ya que, si tomamos la asignación de variables ξ definida por ξ(x) = 2
para todo sı́mbolo de variable x, se tiene Iξ (P (x)) = 1 y si tomamos la asignación de
variables ξ ′ definida por ξ ′ (x) = 3 y ξ ′ (y) = 2 para todo sı́mbolo de variable y 6= x,
tenemos que Iξ ((∀x)P (x)) = 0 y Iξ (P (x) → (∀x)P (x)) = 0. Por lo tanto, el sistema no
serı́a correcto.

Definición 3.1 Una fbf A se dice que es un teorema de L1 , si existe una secuencia finita de
fbfs, A1 , A2 , . . . , An tal que:
Cada Ai , donde 1 ≤ i ≤ n, es un axioma, o una fbf obtenida mediante la aplicación de
(MP) a partir de dos fórmulas anteriores en la secuencia o bien obtenida mediante la
aplicación de (Gen) a una fórmula anterior en la secuencia.
An es A.
La secuencia A1 , A2 , . . . , An se dice que es una demostración de A en L1 . Obviamente, todo
axioma es un teorema.
Definición 3.2 Dado un conjunto Ω de fórmulas, se dice que A es deducible o derivable en
L1 a partir de Ω, denotado Ω ⊢ A, si existe una secuencia finita de fórmulas A1 , A2 , . . . , An tal
que:
3.1. UN SISTEMA AXIOMÁTICO PARA L1 75

Cada Ai , donde 1 ≤ i ≤ n, es un axioma, una fórmula de Ω, o una fbf obtenida mediante


la aplicación de (MP) a partir de dos fórmulas anteriores en la secuencia o bien obtenida
mediante la aplicación de (Gen) a una fórmula anterior en la secuencia.
An es A.
La secuencia A1 , A2 , . . . , An se dice que es una deducción o derivación de A a partir de Ω en
L1 .
Es obvio, por definición, que toda demostración de una fbf A es una deducción de A desde
Ω = ∅, por ello se denota ⊢ A para expresar que A es un teorema.
Como señalamos en la lógica proposicional, un hecho destacable en el problema de la deducción
es la posibilidad de utilizar nuevas reglas de inferencia: Si A es deducible de A1 , A2 , . . . , An
entonces la relación
A1 , A2 , . . . , An
A
puede ser usada como nueva regla de inferencia (regla derivada) en las deducciones en L1 .
Ejemplo 3.1 (Regla de Particularización)
Como hemos desatacado, disponemos de una deducción para A(t) a partir de (∀x)A(x) donde
t es libre para x en A(x), por lo tanto esta deducción puede ser usada como regla derivada en
otras deducciones en L1 .
Veamos una deducción de (∀x)A(x) ⊢ A(t):
(1) (∀x)A(x) hipótesis
(2) (∀x)A(x) → A(t) Ax. 4
(3) A(t) MP(1,2)

Puesto que L1 incluye todos los axiomas de la lógica proposicional y la regla de inferencia (MP),
tenemos obviamente el siguiente resultado
Teorema 3.1 Si A es una fbf de L1 que es un esquema de teorema de L, es decir, si A es una
tautologı́a de L1 , entonces A es un teorema de L1 y puede ser demostrada usando Ax.1, Ax.2,
Ax.3 y (MP).

Demostración: La fbf A se obtiene a partir de un teorema B en L mediante la sustitución


(uniforme) de cada sı́mbolo de proposición en B por una fbf de L1 . Por lo tanto, B tiene una
demostración en L. Sea Γ tal demostración. Ahora, en cada una de las fórmulas de Γ, realizamos
las sustituciones siguientes:
- Para los sı́mbolos proposicionales que no intervienen en B, las mismas que las realizadas
para obtener A a partir de B.
- Para los sı́mbolos proposicionales que no intervienen en B, la sustitución de este sı́mbolo
por una fbf arbitraria de L1 .
De esta forma, obtenemos una demostración de A en L1 en la que sólo se utilizan Ax.1, Ax.2,
Ax.3 y (MP).
Como consecuencia del teorema anterior, disponemos de un extenso conjunto de teoremas, el
conjunto de todos los esquemas de fórmulas válidas de L.
76 CAPÍTULO 3. SISTEMAS DEDUCTIVOS PARA L1

3.1.1. El Teorema de la Deducción


Como en la lógica proposicional, desearı́amos disponer en L1 de un teorema de la deducción,
(como herramienta fundamental para facilitar las demostraciones).
Aún con ciertas restricciones, el resultado disponible en el caso proposicional:

Si Ω, A ⊢ B entonces Ω ⊢ A → B

es también cierto en el sistema L1 . Las restricciones (necesarias como nos muestra el siguiente
ejemplo) habrán de ser impuestas, como era de esperar, en el uso de la regla de generalización.
Ejemplo 3.2 Si no imponemos restricciones, puesto que tenemos A ⊢ (∀x)A, el teorema de
la deducción permitirı́a concluir que ⊢ A → (∀x)A. Claramente, no deseamos esto, ya que el
esquema A → (∀x)A no es un esquema válido.
En efecto, sea A = P (x) y sea (U, I) una interpretación con U = Z, I(P ) = “es igual a 0” ,
veamos que P (x) → (∀x)P (x) no es verdadera en esta interpretación; para ello basta encontrar
una asignación de variables, ξ, tal que Iξ (P (x) → (∀x)P (x)) = 0. Podemos considerar ξ tal
que ξ(x) = 0, con lo que Iξ (P (x)) = 1. Por otra parte existen valuaciones ξ ′ x-equivalentes a ξ
tales que Iξ ′ (P (x)) = 0. Por lo tanto, Iξ ′ ((∀x)P (x)) = 0 y Iξ ′ (P (x) → (∀x)P (x)) = 0. Ası́ pues
P (x) → (∀x)P (x) no es válida.

Pasemos ya a enunciar el teorema de la deducción disponible en L1 :

Teorema 3.2 (de la deducción) Si Ω ∪ {A} ⊢ B y en la deducción de B no se utiliza la


regla de generalización con respecto a ninguna variable libre de A, entonces Ω ⊢ A → B. En
particular:

Si A es una fbf cerrada y Ω ∪ {A} ⊢ B, entonces Ω ⊢ A → B.

Demostración: Lo demostramos por inducción sobre la longitud m de la deducción de B a


partir de Ω ∪ {A}.
Para m = 1: B es un axioma o bien B = A o bien B ∈ Ω y demostramos que Ω ⊢ A → B
siguiendo paso a paso la demostración del caso proposicional.
Paso inductivo: Supongamos m > 1 y que el resultado es cierto para k < m, es decir, si C es una
fbf y Ω ∪ {A} ⊢ C y en su deducción, de longitud k < m, no se utiliza la regla de generalización
con respecto a variables libres en A, entonces Ω ⊢ A → C.
Si B es un axioma, o bien B = A, o bien B ∈ Ω, o bien se obtiene de dos fbfs anteriores en la
secuencia mediante la aplicación de (MP), demostramos que Ω ⊢ A → B siguiendo paso a paso
la demostración del caso proposicional.
Hemos pues de centrarnos en el caso en que B se obtiene de una fórmula E anterior en la
secuencia mediante la aplicación de (Gen). En este caso B = (∀x)E, Ω ∪ {A} ⊢ E y existe una
deducción de E desde Ω ∪ {A} con longitud menor que m. Por hipótesis de inducción, se tiene
que Ω ⊢ A → E. Por otra parte, por hipótesis, x no es libre en A (ya que a ella se refiere la
aplicación de (Gen) en la deducción de B a partir de Ω ∪ {A}).
Por lo tanto, obtenemos una deducción de A → B a partir de Ω del siguiente modo:
3.1. UN SISTEMA AXIOMÁTICO PARA L1 77

(1) ... ...


(. . .) ... ...
(n) A→E ...
(n + 1) (∀x)(A → E) Gen(n)
(n + 2) (∀x)(A → E) → (A → (∀x)E) Ax,5 (ya que x ∈
/ Vlibre (A))
(n + 3) A → (∀x)E MP(n + 1, n + 2)
donde (1),. . . ,(n) es una deducción de A → E a partir de Ω.

Corolario 3.1 La regla de silogismo hipotético (SH)

{A → B, B → C} ⊢ A → C

es una regla derivada en L1 .

Demostración: Lo probamos haciendo uso del metateorema de la deducción, es decir, proba-


mos que
{A → B, B → C, A} ⊢ C
Una deducción de C desde {A → B, B → C, A} es:

(1) A→B Hip.


(2) B→C Hip.
(3) A Hip.
(4) B MP(1,3)
(5) C MP(2,4)

El inverso del teorema de la deducción es cierto sin restricción alguna:


Teorema 3.3 Si A y B son fbfs y Ω es un conjunto de fbfs
Si Ω ⊢ A → B, entonces Ω ∪ {A} ⊢ B

Demostración: La demostración es la misma que en el caso proposicional.

Los siguientes ejemplos ilustran el uso del teorema de la deducción para probar dos teoremas
del sistema L1 .
Ejemplo 3.3 Veamos que la fbf (A → (∀x)B) → (∀x)(A → B) es un teorema de L1 . Conside-
remos la siguiente deducción:

(1) A → (∀x)B Hip.


(2) (∀x)B → B Ax.4
(3) A→B SH(1,2)
(4) (∀x)(A → B) Gen(3)

Hemos probado que A → (∀x)B ⊢ (∀x)(A → B). Puesto que x no es libre en (∀x)(A → B),
aplicando el teorema de la deducción se concluye que la fórmula (A → (∀x)B) → (∀x)(A → B)
es un teorema.
78 CAPÍTULO 3. SISTEMAS DEDUCTIVOS PARA L1

Ejemplo 3.4 Veamos que la fbf (∀x)(A → B) → ((∀x)A → (∀x)B) es un teorema.

(1) (∀x)(A → B) Hip.


(2) (∀x)A Hip.
(3) (∀x)(A → B) → (A → B) Ax.4
(4) A→B MP(1,3)
(5) (∀x)A → A Ax.4
(6) A MP(2,5)
(7) B MP(4,6)
(8) (∀x)B Gen(7)

Hemos probado que (∀x)(A → B), (∀x)A ⊢ (∀x)B. Como (∀x)A es cerrada, por el teorema de
la deducción se tiene (∀x)(A → B) ⊢ (∀x)A → (∀x)B. Aplicando nuevamente el teorema de la
deducción, concluimos la prueba de que la fórmula (∀x)(A → B) → ((∀x)A → (∀x)B) es un
teorema.

Ejemplo 3.5 Veamos que la fbf (∀x)(∀y)A(x, y) → (∀y)(∀x)A(x, y) es un teorema:

(1) (∀x)(∀y)A(x, y) Hip.


(2) (∀x)(∀y)A(x, y) → (∀y)A(x, y) Ax.4
(3) (∀y)A(x, y) MP(1,2)
(4) (∀y)A(x, y) → A(x, y) Ax.4
(5) A(x, y) MP(3,4)
(6) (∀x)A(x, y) Gen(5)
(7) (∀y)(∀x)A(x, y) Gen(6)

Por lo tanto, (∀x)(∀y)A(x, y) ⊢ (∀y)(∀x)A(x, y). Como (∀x)(∀y)A(x, y) es cerrada, por el teore-
ma de la deducción se tiene

⊢ (∀x)(∀y)A(x, y) → (∀y)(∀x)A(x, y)

3.1.2. Corrección y Completitud de L1


Como ya hemos comentado al inicio de capı́tulo, el sistema L1 goza de las propiedades de
corrección y completitud:

Teorema 3.4 (Corrección de L1 ) Todo teorema de L1 es una fbf válida, es decir

Si ⊢ A entonces |= A

Demostración: Por el Teorema 3.1, sabemos que los Axiomas 1, 2 y 3 son fbfs válidas.
El Axioma 4 es válido: Sea M = (U, I) una interpretación y ξ una valuación de variables
arbitraria asociada a M.
Tenemos que probar que, si el término t es libre para la variable x en la fórmula A, se tiene que
Iξ ((∀x)A(x) → A(t)) = 1.
Si Iξ ((∀x)A(x)) = 0 entonces Iξ ((∀x)A(x) → A(t)) = 1. Si Iξ ((∀x)A(x)) = 1 entonces, para toda
valuación de variables ξ ′ x-equivalente a ξ, se tiene que Iξ ′ (A(x)) = 1. En particular, podemos
3.1. UN SISTEMA AXIOMÁTICO PARA L1 79

elegir ξ ′ de modo que ξ ′ (x) = ξ(t). Por lo tanto, por ser t libre para x en A, Iξ (A(t)) = 1 y,
consecuentemente, Iξ ((∀x)A(x) → A(t)) = 1. Ası́ pues, I((∀x)A(x) → A(t)) = 1.
El Axioma 5 es válido: Es inmediato ya que, puesto que si una variable x no es libre en A,
se tiene que (∀x)(A → B(x)) ≡ (A → (∀x)B(x)).
Por último, es obvio que tanto (MP) como (Gen) respetan la validez, es decir:

- Si A y A → B son válidas, B también es válida.

- Si A es válida, entonces (∀x)A es válida.

Finalmente, probada la validez de los axiomas y que las reglas de inferencia preservan la validez,
mediante un argumento inductivo muy sencillo terminamos la demostración de que todo teorema
de L1 es una fbf válida.

Teorema 3.5 (Completitud de L1 ) Toda fbf válida es un teorema de L1 , es decir

Si |= A entonces ⊢ A

La primera demostración de la completitud de un sistema de demostración para la lógica de


primer orden fue dada por Gödel en 1930 en su Tesis Doctoral. De aquı́ que este resultado sea
citado en la bibliografı́a como el Teorema de Completitud de Gödel. Posteriormente, en 1949,
Henkin aportó otra demostración.
La demostración de este teorema escapa a los objetivos de este libro. En su lugar demostraremos
una propiedad más débil:

Teorema 3.6 (de consistencia) L1 es consistente, es decir, no existe ninguna fórmula A tal
que ⊢ A y ⊢ ¬A.

Demostración: Consideremos la función

h : L1 −→ Lprop

definida como sigue: Para cada fórmula A de L1 , h(A) es la fórmula de la lógica clásica proposi-
cional, Lprop , obtenida al eliminar en A todos los cuantificadores y todos los términos y además
sustituir los sı́mbolos de predicado por el correspondiente sı́mbolo en minúscula de Lprop (junto
con la eliminación de las comas y paréntesis asociados a los cuantificadores, términos y átomos).
Por ejemplo:

h(P (f (x)) ∧ ¬(Q(x, a) → R(x, z))) ; p ∧ ¬(q → r)

Veamos que si A es un teorema de L1 , entonces h(A) es una tautologı́a de Lprop . Para ello
tendremos probar que:

- h(A) es una tautologı́a para todo axioma de de L1

- Si aplicamos una regla de inferencia a fbfs tales que sus imágenes por h son tautologı́as,
entonces la imagen por h de la fbf proporcionada por la regla de inferencia también es una
tautologı́a:
80 CAPÍTULO 3. SISTEMAS DEDUCTIVOS PARA L1

Para los esquemas de Axiomas 1, 2 y 3 es inmediato ya que en ellos no intervienen sı́mbolos


de cuantificación.
h((∀x)(A(x) → A(t))) = a ; a, es válida en Lprop .
h((∀x)(A → B(x)) → (A → (∀x)B(x))) ; (a → b) → (a → b), es válida en Lprop .
Si h(A) y h(A → B) son tautologı́as, puesto que h(A → B) = h(A) → h(B), se tiene que
h(B) es una tautologı́a.
Si h(A) es una tautologı́a, h((∀x)A) ; h(A) es una tautologı́a.
Ahora es inmediato probar que L1 es consistente. En caso contrario, existirı́a una fbf A tal que
⊢ A y ⊢ ¬A y por lo tanto, puesto que h(¬A) = ¬h(A) se tendrı́a que h(A) y ¬h(A) serı́an
tautologı́as en Lprop , lo cual es imposible.
Por último, y por argumentos análogos a los utilizados en el caso proposicional, es decir, los
teoremas de corrección y completitud, el teorema de compacidad y teorema de la deducción, se
tiene:
Teorema 3.7 Dados un conjunto Ω de fbfs cerradas y una fbf cerrada A,
Ω |= A si y sólo si Ω ⊢ A

3.1.3. Corrección, Completitud y Semidecidibilidad


En la Sección 2.2 mostramos la semidecidibilidad de L1 en términos semánticos. Ahora, puesto
que disponemos de un sistema correcto y completo para L1 , podemos establecerla de forma
equivalente en términos del sistema axiomático, es decir, mostrando un semialgoritmo para
determinar si una fbf es o no un teorema de L1 . Más aún,
La semidecidibilidad de la lógica de primer orden, es una consecuencia
de la existencia de sistemas de demostración correctos y completos para
esta lógica.
En efecto, puesto que el conjunto de fbfs de L1 es numerable, también lo es el conjunto de
demostraciones posibles en L1 (ya que toda demostración en L1 es una secuencia finita de fbfs
de L1 ). En consecuencia, podemos proceder del modo siguiente:
1. Enumeramos todas las demostraciones en L1 , por ejemplo, de menor a mayor longitud y
las de igual longitud según el orden lexicográfico. Sea esta enumeración
∆ = {D1 , . . . , Dn , . . .}

2. Si una fbf A es válida, puesto que L1 es completo, ha de existir una demostración Di ∈ ∆


para A.
3. Si una fbf A no es válida, puesto que L1 es correcto, no existe ningún elemento Di ∈ ∆ tal
que Di es una demostración para A. Pero, puesto que ∆ es infinito, nuestra búsqueda no
termina.
Es evidente, que la eficiencia de este procedimiento deja mucho que desear. Por otra parte,
el semialgoritmo dado en la Sección 2.2 nos permite parar la búsqueda para algunas fbfs no
válidas, concretamente, aquellas para la que encontremos un nodo en el árbol semántico cuya
interpretación asociada falsifica a A.
3.2. DEDUCCIÓN NATURAL 81

3.2. Deducción Natural


El teorema de la deducción para L1 motiva, como en el caso proposicional, la introducción de
los sistemas de deducción natural, en los que las deducciones adquieren protagonismo sobre
las demostraciones y en los que las conclusiones se derivan desde un conjunto de hipótesis, sin
utilizar axiomas, sólo mediante reglas de inferencia.
La filosofı́a y caracterı́sticas de estos sistemas es la misma que la expuesta para la lógica clásica
proposicional, Lprop : Las reglas de inferencia son de dos tipos, reglas de introducción y reglas
de eliminación de conectivos y de cuantificadores, denotadas (∗, i) y (∗, e) respectivamente,
donde ∗ representa un conectivo arbitrario o un cuantificador. Cada regla consta de una o más
hipótesis y una conclusión y se representa por

hipótesis

Conclusión

Como en todo sistema de deducción natural, DN, introducimos la definición siguiente:


Definición 3.3 Dado un conjunto, Ω, de fbfs, se dice que una fórmula A es deducible o
derivable de Ω, denotado Ω ⊢DN A, si existe una secuencia finita de fbfs, A1 , A2 , . . . , An , tal
que:

Cada Ai , donde 1 ≤ i ≤ n, es una fórmula de Ω o se obtiene de fórmulas anteriores de la


secuencia mediante la aplicación de alguna regla de inferencia.

An es A.

La secuencia A1 , . . . , An se dice que es una deducción o derivación tipo Gentzen de A a


partir de Ω.

Definición 3.4 Una fórmula A es un teorema si es derivable desde el conjunto vacı́o de


fórmulas. Escribiremos ⊢DN A para expresar que A es un teorema.
Consideraremos un sistema de deducción natural que es extensión del dado para la lógica propo-
sicional y que, es asimismo correcto y completo. Como para el sistema axiomático de Lukasiewicz,
no demostraremos la completitud.
Las reglas de introducción y de eliminación para los conectivos booleanos son las mismas que
en el caso proposicional, es decir:

A
A∧B A∧B
(∧, i) B (∧, e1 ) (∧, e2 )
A B
A∧B

A A
(→, i) B (→, e) A→B
A→B B
82 CAPÍTULO 3. SISTEMAS DEDUCTIVOS PARA L1

A∨B
A B A B
(∨, i1 ) (∨, i2 ) (∨, e)
A∨B A∨B C C
C

B
A ¬¬A
(¬, i) (¬e)
¬B A
¬A
Disponemos además de reglas de introducción y eliminación de cada uno de los cuantificadores:

3.2.0.1. Eliminación de ∀: La regla (∀, e)

(∀x)A(x)
donde t es un término libre para x en A(x).
A(t)
La lectura de esta regla es la siguiente:

Si sabemos que todo elemento del dominio es A, entonces sabemos que, en particular,
todo elemento expresado por t es A.

Para probar la corrección de (∀, e) tenemos que probar que, si t es un término libre para x en
A(x), entonces (∀x)A(x) → A(t) es válida. Pero este esquema es el Axioma 4 del sistema L1
dado en la sección anterior y su corrección la hemos probado en el Teorema 3.4.
Como para el Axioma 4 del sistema de Lukasiewicz, si no aseguramos las restricciones impuestas
a t, podemos llegar a conclusiones erróneas como nos muestra el siguiente ejemplo:
Ejemplo 3.6 La aplicación incorrecta de (∀, e) nos llevarı́a a deducir

⊢DN (∀x)¬(∀y)P (x, y) → ¬(∀y)P (y, y)

1. Subderivación

(1.1) (∀x)¬(∀y)P (x, y) hipótesis


(2.1) ¬(∀y)P (y, y) (1) y (∀, e) (Aplicación incorrecta)

2. (∀x)¬(∀y)P (x, y) → ¬(∀y)P (y, y) (1) y (→, i)

La aplicación de (∀, e) es incorrecta porque y no es libre para x en ¬(∀y)P (x, y)

3.2.0.2. Introducción de ∀: La regla (∀, i)

A(x)
(∀x)A(x)
donde x es un sı́mbolo de variable que satisface las siguientes condiciones:
3.2. DEDUCCIÓN NATURAL 83

1. x no ocurre libre en ninguna hipótesis.

2. x no ocurre libre en ninguna de las hipótesis adicionales de las subderivaciones aún no


finalizadas.
Estas restricciones aseguran que x puede ser considerado como un elemento arbitrario, es decir,
con esta regla recogemos el siguiente tipo de razonamiento:
Si sabemos que un elemento arbitrario es A, podemos afirmar que todo elemento es A.
Para probar la corrección de (∀, i) tenemos que probar que si x ∈
/ Vlibre (B) se tiene que la fbf
(∀x)(B → A(x)) → (B → (∀x)A(x)) es válida. Pero éste es el Axioma 5 del sistema L1 y su
corrección la hemos probado en el Teorema 3.4.
Los siguientes ejemplos nos muestran aplicaciones de (∀, e) y (∀, i).
Ejemplo 3.7 Demostramos que ⊢DN (∀x)(∀y)P (x, y) → (∀y)(∀x)P (x, y)
1. Subderivación

(1.1) (∀x)(∀y)P (x, y) hipótesis


(1.2) (∀y)P (x, y) (1.1) y (∀, e)
(1.3) P (x, y) (1.2) y (∀, e)
(1.4) (∀x)P (x, y) (1.3) y (∀, i)
(1.5) (∀y)(∀x)P (x, y) (1.4) y (∀, i)

2. (∀x)(∀y)P (x, y) → (∀y)(∀x)P (x, y) (1) y (→, i)

Ejemplo 3.8 Demostramos que (∀x)(P (x) ∧ Q(x)) ⊢DN (∀x)P (x) ∧ (∀x)Q(x)
1. (∀x)(P (x) ∧ Q(x)) hipótesis

2. P (x) ∧ Q(x) (1) y (∀, e)

3. P (x) (2) y (∧, e)

4. Q(x) (2) y (∧, e)

5. (∀x)P (x) (3) y (∀, i)

6. (∀x)Q(x) (4) y (∀, i)

7. (∀x)P (x) ∧ (∀x)Q(x) (5) y (6) y (∧, i)

Ejemplo 3.9 Demostramos que (∀x)(P (x) → Q(x)) ⊢DN (∀x)P (x) → (∀x)Q(x)
1. (∀x)(P (x) → Q(x)) hipótesis

2. Subderivación

(1.1) (∀x)P (x) hipótesis Adicional


(1.2) P (x) → Q(x) (1) y (∀, e)
84 CAPÍTULO 3. SISTEMAS DEDUCTIVOS PARA L1

(1.3) P (x) (1.1) y (∀, e)


(1.4) Q(x) (1.2), (1.3) y (→, e)
(1.5) (∀x)Q(x) (1.4) y (∀, i)

3. (∀x)P (x) → (∀x)Q(x) (2) y (→, i)

Si no nos aseguramos de las restricciones impuestas a x en la regla (∀, i), podemos llegar a
conclusiones erróneas como nos muestra el siguiente ejemplo:
Ejemplo 3.10 La aplicación incorrecta de (∀, i) nos llevarı́a a probar

⊢DN P (a, a) → (∀x)P (x, a)

1. Subderivación

(1.1) P (x, a) hipótesis Adicional


(1.2) (∀x)P (x, a) (1.1) y (∀, i) (Aplicación incorrecta)

2. P (x, a) → (∀x)P (x, a) (1) y (→, i)

3. (∀x)(P (x, a) → (∀x)P (x, a)) (2) y (∀, i)

4. P (a, a) → (∀x)P (x, a)) (3) y (∀, e)

3.2.0.3. Introducción de ∃: La regla (∃, i)

A[x/t]
(∃x)A(x)
donde t es un término libre para x en A(x). La lectura de esta regla es como sigue:

Si sabemos que el elemento del dominio expresado por t es A, en particular, sabemos


que existen elementos del dominio que son A.

Para probar la corrección de (∃, i) tenemos que probar que A(t) → (∃y)A(x) es válida. Puesto
que (∃x)A(x) ≡ ¬(∀x)¬A(x), se tiene que

A(t) → (∃x)A(x) ≡ ¬(∃x)A(x) → ¬A(t) ≡ (∀x)¬A(x) → ¬A(t)

Por lo tanto, la justificación es la misma que para (∀, e).

Ejemplo 3.11 (∀x)P (x, a) ⊢DN (∃x)P (a, x)

1. (∀x)P (x, a) hipótesis

2. P (a, a) (1) y (∀, e)

3. (∃x)P (a, x) (2) y (∃, i)


3.2. DEDUCCIÓN NATURAL 85

3.2.0.4. Eliminación de ∃: La regla (∃e)


Esta regla hace uso de una subderivación
(∃x)A(x)
A(x)
B
B
donde x es un sı́mbolo de variable tal que
no ocurre libre en ninguna hipótesis.
no ocurre libre en las hipótesis adicionales de la subderivaciones aún no finalizadas nece-
sarias para derivar B (salvo en A(x)).
x no ocurre libre en B
Estas restricciones aseguran que x representa un elemento arbitrario, es decir, con esta regla
recogemos el siguiente tipo de razonamiento:
Si sabemos que existe un elemento que es A y que el hecho de que un elemento
arbitrario sea A nos asegura B, entonces podemos afirmar B.
La corrección de esta regla requiere probar que (A(x) → B) → ((∃x)A(x) → B) es válida, es
decir, que (∀x)(A(x) → B) → ((∃x)A(x) → B) es válida, lo cual es de comprobación inmediata
a partir de la definición de la semántica.
Ejemplo 3.12 (∀x)(P (x) → Q(x)), (∃x)P (x) ⊢DN (∃x)Q(x)
1. (∀x)(P (x) → Q(x)) hipótesis
2. (∃x)P (x) hipótesis
3. Subderivación
(3.1) P (x) hipótesis adicional
(3.2) P (x) → Q(x) (1) y (∀, e)
(3.3) Q(x) (3.1), (3.2) y (→, e)
(3.4) (∃x)Q(x) (3.3) y (∃, i)
4. (∃x)Q(x) (2), (3) y (∃, e)

Ejemplo 3.13 ⊢DN (∀x)P (x) → (∃x)P (x)


1. Subderivación
(1.1) (∀x)P (x) hipótesis adicional
(1.1) P (x) (1.1) y (∀, e)
(2.2) (∃x)P (x) (1.2) y (∃, i)
2. (∀x)P (x) → (∃y)P (x) (1) y (→, i)

Como en los sistemas axiomáticos podemos introducir Reglas derivadas:


86 CAPÍTULO 3. SISTEMAS DEDUCTIVOS PARA L1

3.2.0.5. La regla derivada N ∀:

¬(∀x)A(x)
(∃x)¬A(x)

Demostración:

1. ¬(∀x)A(x) hipótesis

2. Subderivación

(2.1) ¬(∃x)¬A(x) hipótesis adicional


(2.2) Subderivación
(2.2.1) ¬A(x) hipótesis adicional
(2.2.2) (∃x)¬A(x) (2.2.1) y (∃, i)
(2.2.3) ¬¬(∃x)¬A(x) (2.2.2) y regla derivada de L
(2.3) ¬¬A(x) (1.2) y (¬, i)
(2.4) A(x) (1.3) y (¬, e)
(2.5) (∀x)A(x) (1.4) y (∀, i)
(2.6) ¬¬(∀x)A(x) (1.5) y regla derivada de L

3. ¬¬(∃x)¬A(x) (1), (2) y (¬, i)

4. (∃x)¬A(x) (3) y (¬, e)

Análogamente se obtienen las siguientes reglas derivadas cuya demostración se deja al lector.

3.2.0.6. La regla derivada ∃N :

(∃x)¬A(x)
¬(∀x)A(x)

3.2.0.7. La regla derivada N ∃:

¬(∃x)A(x)
(∀x)¬A(x)

3.2.0.8. La regla derivada ∀N :

(∀x)¬A(x)
¬(∃x)A(x)

Ejemplo 3.14 Comprobemos que ⊢DN ¬(∃x)(P (x) ∧ ¬P (x))

1. Subderivación
3.3. TEORÍAS DE PRIMER ORDEN 87

(1.1) P (x) hipótesis adicional


(1.2) P (x) (1.1) y Rep

2. P (x) → P (x) (1) y (→, i)

3. Subderivación

(3.1) P (x) ∧ ¬P (x) hipótesis adicional


(3.2) ¬(P (x) → P (x)) (3.1) y regla derivada de L

4. ¬(P (x) ∧ ¬P (x)) (2), (3) y (¬, i)

5. (∀x)¬(P (x) ∧ ¬P (x)) (2) y (∀, i)

6. ¬(∃x)(P (x) ∧ ¬P (x)) (3) y (∀N )

3.3. Teorı́as de Primer Orden


En la práctica, la lógica de primer orden rara vez se usa en toda su generalidad. La mayorı́a de
las veces estamos interesados en razonamientos sobre dominios particulares; y al pronunciarnos
sobre aspectos formales de un determinado tipo de dominios, se requiere un lenguaje de primer
orden con sólo un número reducido de constantes individuales, de letras de función y de letras
de predicado. Este hecho se recoge formalmente con la noción de teorı́a de primer orden, cuyo
objetivo no es más que la adaptación de la lógica de primer orden a dominios especı́ficos. Estos
dominios pueden ser más o menos abstractos: dominios de la Fı́sica, de la Astronomı́a, de la
Filosofı́a, etc. De este modo, la lógica de primer orden usada en toda su generalidad describe lo
que tienen en común todos estos dominios.
Comenzamos introduciendo este concepto semánticamente.
Definición 3.5 Una teorı́a de primer orden es un conjunto T de fbfs cerradas en un lenguaje
de primer orden L1 tal que:

1. T es satisfacible.

2. T es cerrado para la relación de consecuencia lógica, es decir, si A ∈ L1 y T |= A entonces


A∈T.

Teorema 3.8 Sea I0 un conjunto no vacı́o de interpretaciones para un lenguaje de primer orden
L1 y sea FI0 el conjunto de fbfs en L1 tales que toda interpretación (U, I) ∈ I0 es un modelo de
FI0 . Entonces FI0 es una teorı́a de primer orden.

Demostración: Por definición, FI0 es satisfacible ya que toda interpretación (U, I) ∈ I0 es


un modelo de FI0 .
Si FI0 |= A se tiene que toda interpretación (U, I) ∈ I0 es un modelo para la fórmula A, por lo
tanto A ∈ FI0 .
88 CAPÍTULO 3. SISTEMAS DEDUCTIVOS PARA L1

Definición 3.6 Si I0 es un conjunto no vacı́o de interpretaciones para un lenguaje de primer


orden L1 , llamamos a FI0 la teorı́a de primer orden para I0 .
Intuitivamente, podemos pensar en una teorı́a como en el conjunto de todas las afirmaciones que
deseamos realizar sobre algún fenómeno. En la práctica este conjunto es más fácil de manejar
si destacamos un subconjunto consistente en las afirmaciones más significativas y desde las que
pueden ser “derivadas” el resto de las afirmaciones. Este es el objetivo de las teorı́as axiomáticas
de primer orden que pasamos a describir.
Definición 3.7 Una teorı́a axiomática de primer orden T consta de:

1. Un lenguaje de primer orden (usualmente con un número reducido de constantes indivi-


duales, de letras de función y de letras de predicado).

2. Los esquemas de axiomas del sistema de Lukasiewicz L1 , llamados axiomas lógicos, que
son independientes de la signatura especı́fica y que, como hemos analizado, son válidos en
toda interpretación M.

3. Un conjunto finito de axiomas o esquemas de axiomas llamados axiomas propios que


son fbfs cerradas válidas en determinadas interpretaciones.

- Las reglas de inferencia (MP) y (Gen) del sistema L1 .

Una teorı́a de primer orden sin axiomas propios se denomina un cálculo de predicados de primer
orden. Por lo tanto, el calculo de predicados es universal en el sentido de que sus axiomas y
reglas de inferencia son comunes a todas las teorı́as de primer orden.
Definición 3.8 Un modelo para una teorı́a axiomática de primer orden T , es una interpre-
tación para la que todos los axiomas de T son válidos.
Puesto que las reglas de inferencia (MP) y (Gen) respetan la validez, podemos afirmar que:

Todo teorema de una teorı́a de 1er orden, T , es válido en todo modelo de T .

Definición 3.9 Sea I0 es un conjunto no vacı́o de interpretaciones para un lenguaje de primer


orden L1 . Una teorı́a axiomática T de primer orden axiomatiza completamente a FI0 o es
completa respecto a FI0 si
⊢T A si y sólo si A ∈ FI0

Ejemplo 3.15 Definamos una teorı́a que describa todos los conjuntos estrictamente ordenados.
La signatura de tal teorı́a será tal que

No tiene sı́mbolos de constantes.

No tiene sı́mbolos de función.

El único sı́mbolo de predicados es un sı́mbolo de predicado binario, denotado <, que


usaremos en notación infija.

En consecuencia, el lenguaje es muy simple:


3.3. TEORÍAS DE PRIMER ORDEN 89

Los únicos términos son las variables.

Todos los átomos son de la forma x < y, donde x e y son sı́mbolos de variables.

La semántica de < se recoge mediante los siguientes axiomas propios:

Ax.1 (∀x)¬(x < x) Irreflexiva



Ax.2 (∀x)(∀y)(∀z) (x < y ∧ y < z) → x < z Transitiva

Un modelo para esta teorı́a se denomina estructura de orden parcial estricto.

3.3.1. Teorı́as con Igualdad


Llamamos teorı́a de primer orden con igualdad, y la denotamos T = , a toda teorı́a de primer
orden que satisfaga las dos condiciones siguientes:

1. Incluye en su signatura un sı́mbolo de predicado binario al que se denota E y cuyo sig-


nificado se pretende que sea la identidad, es decir, que toda interpretación M = (U, I) le
asigne como significado
I(E) = {(u, u) | u ∈ U }
Por lo tanto, E es un sı́mbolo de predicado con un carácter especial, ya que no le ocurre
como a los sı́mbolos de predicados utilizados hasta ahora en nuestro desarrollo, cuyo signi-
ficado varı́a de una a otra interpretación; muy al contrario, su comportamiento es similar
al de los sı́mbolos ∧, ¬, ∀, . . . , es decir es una constante lógica.

2. Para recoger la semántica de E, esta teorı́a dispone de los siguientes axiomas propios:

(E1 ) (∀x)E(x, x) reflexiva


(E2 ) (∀x)(∀y)(E(x, y) → E(y, x)) simétrica
(E3 ) (∀x)(∀y)(∀z)((E(x, y) ∧ E(y, z)) → E(x, z)) transitiva
(E4 ) E(t, u) → E(f (t1 , . . . , ti−1 , t, ti+1 , . . . , tn ), f (t1 , . . . , ti−1 , u, ti+1 , . . . , tn )), donde f es
un sı́mbolo de función n-ario y t, u, t1 , . . . , tn son términos.
(E5 ) E(t, u) → (P (t1 , . . . , ti−1 , t, ti+1 , . . . , tn ) → P (t1 , ti−1 , u, ti+1 , tn )), donde P es un
sı́mbolo de predicado n-ario y t, u, t1 . . . , tn son términos.

Sin embargo, como nos muestra el siguiente ejemplo, los axiomas (E1 )–(E5 ) no garantizan que
en todo modelo de T = la interpretación de E sea “la identidad” sino tan sólo una “relación de
equivalencia” .
Ejemplo 3.16 Consideremos el lenguaje de primer orden cuya signatura consiste en un sı́mbolo
de función binario f y un sı́mbolo de predicado binario E. Consideremos la interpretación

M = (Z, ∅, {f ; +}, {E ;≡2 })

donde ≡2 denota la relación “congruencia módulo 2” en Z (es decir, x ≡2 y si y sólo si x − y es


múltiplo de 2). Esta interpretación es un modelo para todos los axiomas (E1 )–(E5 ). En efecto:

(E1 ) (∀x)(x ≡2 x)
90 CAPÍTULO 3. SISTEMAS DEDUCTIVOS PARA L1

(E2 ) (∀x)(∀y)(x ≡2 y → y ≡2 x)

(E3 ) (∀x)(∀y)(∀z) (x ≡2 y ∧ y ≡2 z) → x ≡2 z
(E4 ) t ≡2 u → ((x + t) ≡2 (x + u))
(E5 ) t ≡2 u → (x ≡2 t → x ≡2 u)

Definición 3.10 Un modelo M = (U, I) de una teorı́a de primer orden con igualdad T = en el
que la interpretación de E es la identidad de U se dice que es un modelo normal.

Teorema 3.9 Si T = es una teorı́a de primer orden con igualdad que es consistente, entonces
T = tiene un modelo normal.

Demostración: Puesto que T = es consistente, debe tener un modelo M = (U, I). Puesto que
M satisface (E1 ), (E2 ) y (E3 ), se tiene que I(E) es una relación de equivalencia en U . Denotemos
por [u] la clase de equivalencia a la que pertenece d. Consideremos la interpretación (U/I(E), I ⋆ )
donde
1. I ⋆ (a) = [I(a)] para cada sı́mbolo de constante a.
2. I ⋆ (f )([u1 ], . . . , [un ]) = [I(f )(u1 , . . . , un )] para cada sı́mbolo de función n-aria f .
3. ([u1 ], . . . , [un ]) ∈ I ⋆ (P ) si y sólo si (u1 , . . . , un ) ∈ I(P ) para cada sı́mbolo de predicado
n-ario P .
El lector puede comprobar que esta interpretación es también un modelo para T = , y que en ella
I ⋆ (E) es la identidad en U/I(E); por lo tanto, es un modelo normal para T = .
En adelante usaremos = para E y 6= para ¬E.
En las teorı́as de primer orden con igualdad, podemos ampliar la potencia expresiva del len-
guaje: Hasta ahora disponı́amos del sı́mbolo de cuantificación ∀ para expresar que “todos” los
individuos de un dominio poseen cierta propiedad o están en una cierta relación y del sı́mbo-
lo de cuantificación ∃ para expresar que “al menos” un individuo de un dominio posee cierta
propiedad o está en una cierta relación. En una teorı́a de primer orden con igualdad podemos
expresar:
“existe exactamente 1 individuo que es P ” :

(∃x) P (x) ∧ (∀y)(P (y) → (y = x))
“hay al menos dos individuos tales que poseen la propiedad P ” :
(∃x)(∃y)(P (x) ∧ P (y) ∧ (x 6= y))
“existen exactamente 2 individuos que poseen la propiedad P ”

(∃x)(∃y) P (x) ∧ P (y) ∧ y 6= x ∧ (∀z)(P (z) → ((z = x) ∨ (z = y)))
“hay a lo sumo 2 individuos tales que P ”

(∀x)(∀y)(∀z) (P (x) ∧ P (y) ∧ P (z)) → ((x = y) ∨ (y = z) ∨ (x = z))
“hay al menos tres individuos tales que poseen la propiedad P ” :
(∃x)(∃y)(∃z)(P (x) ∧ P (y) ∧ P (z) ∧ (x 6= y) ∧ (x 6= z) ∧ (y 6= z))
Ası́ podemos seguir tanto como deseemos.
3.4. ALGUNAS TEORÍAS DE PRIMER ORDEN CON IGUALDAD 91

r r En la definición de la semántica de la lógica de primer orden (con o sin igualdad) hemos


ee
supuesto que dado un modelo (U, I), la interpretación de todo sı́mbolo de función (si existe)
es una función total, es decir, si f es un sı́mbolo de función n-aria, I(f ) está definida para
toda n-upla (u1 , . . . , un ) ∈ U n ¿Qué ocurre con las funciones parciales que con frecuencia son
requeridas? Podrı́amos optar por extender la definición para contemplar funciones parciales,
pero esta opción acarrea no pocas complicaciones. Por ello, la opción más adecuada es utilizar
sı́mbolos de relaciones, en lugar de sı́mbolos de función para representar funciones parciales
y añadir un axioma que asegure que se trata de una función. Ası́, por ejemplo, si queremos
formalizar la función “vivienda habitual”, podemos usar un sı́mbolo de predicado binario,
V (x, y), leı́do “la vivienda habitual de x es y” y, para asegurar que “cada individuo tiene una
sola vivienda habitual”, añadir el axioma

(∀x)(∀y)(∀z) (V (x, y) ∧ V (x, z)) → y = z
Un modo alternativo de tratar esta cuestión es añadir un elemento ♯ al universo U , y con-
templar que,
para toda función n-aria φ : U n −→ U , se tiene que φ(u1 , . . . , un ) = ♯, si ui = ♯ para
algún i tal que 1 ≤ i ≤ n.
para todo predicado n-ario P ⊆ U , se tiene que (u1 , . . . , un ) 6∈ P, si ui = ♯ para algún i
tal que 1 ≤ i ≤ n.
para toda valuación de variables ξ, se tiene que ξ(x) 6= ♯ para toda variable x ∈ V.
Con esta opción, si f es un sı́mbolo de función monaria e I(f ) : U −→ U es la función que
asigna a cada u ∈ U su vivienda habitual, expresamos que “Luis no tiene vivienda habitual”
por la fbf ¬(∃x)(f (Luis) = x)

3.4. Algunas Teorı́as de Primer Orden con Igualdad


Cadenas: Su signatura contiene
Un sı́mbolo de constante, denotado ǫ, para representar la cadena vacı́a.
Un conjunto numerable de sı́mbolos de constantes para representar los caracteres del al-
fabeto:
{a, b, c, . . . , a1 , b1 , c1 , . . . , an , bn , cn , . . .}
El sı́mbolo de función binario k para representar la operación de concatenación, que usa-
remos en notación infija.
Un sı́mbolo de predicado binario ⊑ para representar la relación de subcadena, que usaremos
en notación infija.
El sı́mbolo de predicado binario = que usaremos en notación infija.
La semántica de k y ⊑ se recoge mediante los siguientes axiomas propios:
1. (∀x)(x = ǫkx)
2. (∀x)(x ⊑ x)
3. (∀x)(∀y)(x = y → (akx = aky))
4. (∀x)(∀y)(x = y → (xka = yka))
5. (∀x)(∀y)(∀z)(∀u)((y = zku ∧ x ⊑ z) → x ⊑ y)
6. (∀x)(∀y)(∀z)(∀u)((y = zku ∧ x ⊑ u) → x ⊑ y)
92 CAPÍTULO 3. SISTEMAS DEDUCTIVOS PARA L1

Orden parcial: Pretende describir todos los conjuntos parcialmente ordenados; por lo tanto,
su signatura satisface las siguientes propiedades:

No tiene sı́mbolos de constantes ni sı́mbolos de función.

Los únicos sı́mbolos de predicados son = y un sı́mbolo de predicado binario, denotado ≤,


que usaremos en notación infija.
La semántica de ≤ se recoge mediante los siguientes axiomas propios:

1. (∀x)(x ≤ x)
2. (∀x)(∀y)((x ≤ y ∧ y ≤ x) → x = y)
3. (∀x)(∀y)(∀z)((x ≤ y ∧ y ≤ z) → x ≤ z)

Un modelo para esta teorı́a se denomina una estructura de orden parcial.

Aritmética de primer orden: Su signatura consta de

Un sı́mbolo de constante: a (para el 0).

Un sı́mbolo de función monaria: f11 (para “sucesor” ) y dos sı́mbolos de funciones binarias:
f12 (para “suma” ) y f22 (para “producto” ).

El único sı́mbolo de predicados es el sı́mbolo de predicado binario =.

Denotamos por N al sistema de primer orden con igualdad que tiene como esquemas de axiomas
propios (E1 )–(E5 ) y además

(N1 ) (∀x)¬(f11 (x) = a)

(N2 ) (∀x)(∀y)(f11 (x) = f11 (y) → x = y)

(N3 ) (∀x)(f12 (x, a) = x)

(N4 ) (∀x)(∀y)(f12 (x, f11 (y)) = f11 (f12 (x, y))

(N5 ) (∀x)¬(f22 (x, a) = a)

(N6 ) (∀x)(∀y)(f22 (x, f11 (y)) = f12 (f22 (x, y), x)

(N7 ) Para toda fbf A(x) tenemos

A(a) → ((∀x)(A(x) → A(f11 (x))) → (∀x)A(x))

A partir de (N7 ) y (MP) obtenemos la siguiente regla derivada, a la que se denomina regla de
inducción, (Ind):
A(a), (∀x)(A(x) → A(f11 (x))) ⊢ (∀x)A(x))
3.5. EJERCICIOS 93

Teorı́a de grupos: Su signatura consta de

Un sı́mbolo de constante: e.

Un sı́mbolo de función binaria: ∗.

El único sı́mbolo de predicados es un sı́mbolo de predicado binario, denotado =, que


usaremos de forma infija.

Sus esquemas de axiomas propios son (E1 )–(E5 ) y los siguientes esquemas:

1. (∀x)(∀y)(∀z)[((x ∗ y) ∗ z) = (x ∗ (y ∗ z))]

2. (∀x)(e ∗ x = x)

3. (∀x)(∃y)(y ∗ x = e)

Un modelo para esta teorı́a en el que la interpretación de = es la identidad se denomina una


estructura de grupo.

3.5. Ejercicios
1. Justificar las siguiente regla derivada (conocida como Regla Existencial ) para el sistema de Lukasiewicz:
Si t es libre para x en la fórmula A, entonces

A(t) ⊢ (∃x)A(x)

2. Justificar las siguiente regla derivada para el sistema de Lukasiewicz:

A(x) ⊢ (∀x)(B(x) → A(x)

3. Justificar en el sistema de Lukasiewicz que si A y B son fbfs y x ∈


/ Vlibre (B), entonces:

⊢ (∀x)(A → B) → (∃x)A → B)

4. Justificar en el sistema de Lukasiewicz:


a) ⊢ (∀x)A → (∃x)A.
b) ⊢ (∃x)(A(x) → B(x)) → ((∀x)A(x) → (∃x)B(x))
c) ⊢ (∀x)(∀y)(P (x, y) → Q(x)) → (∀y)(∀x)(P (x, y) → Q(x))
5. Justificar en el sistema de Lukasiewicz:
a) Si x ∈
/ Vlibre (B) entonces ⊢ ((∃x)A → B) → (∀x)(A → B).
b) (∀x)(A → B) → ((∀x)A(x) → (∃x)B)
c) (∀x)(A → B) → ((∃x)A(x) → (∃x)B)
6. Justificar en el sistema de deducción natural DN las reglas derivadas ∃N , N ∃ y ∀N .
7. Justificar en el sistema de deducción natural DN
a) ⊢DN ((∀x)(P (x) → Q(x)) ∧ (∀x)(P (x) → R(x))) → (∀x)(P (x) → (Q(x) ∧ R(x)))
b) ⊢DN ((∀x)(P (x) ∧ (∃x)Q(x)) → (∃x)(P (x) ∧ Q(x))
94 CAPÍTULO 3. SISTEMAS DEDUCTIVOS PARA L1

8. Justifica en el sistema de deducción natural DN

a) (∀x)(∃y)(P (x) → R(x, y)) ⊢DN (∀x)(P (x) → (∃y)R(x, y))


b) (∀x)(P (x) → (∃y)R(x, y)) ⊢DN (∀x)(∃y)(P (x) → R(x, y))

9. Probar en la teorı́a de orden parcial estricto

a) (∀x)(∀y)(R(x, y) → ¬R(y, x))



b) (∀x)(∀y) (∀y)(R(x, y) ∧ R(y, z) → ¬R(z, x)

10. En el lenguaje de la teorı́a del orden parcial, definir los predicados

a) x es el máximo .
b) x es maximal.
c) no existe ningún elemento entre x e y.
d ) x es el sucesor inmediato de y.

11. Probar en N :

a) 1 + 1 = 2
b) Probar que (∀x)(0 + x = x)

12. Probar en la teorı́a de cadenas que abc ⊑ aabca es un teorema.


13. Considerar la siguiente teorı́a de cajas [?] para razonar acerca de un mundo consistente en tres
cajas a, b y c y una mesa m. Cada caja puede estar directamente sobre la mesa o bien apilada sobre
otra caja. Para ello necesitamos sı́mbolos de predicados para formalizar la relación “x está encima
de y” y la relación “x está sobre y” .
Por lo tanto, la signatura consta de

Cuatro sı́mbolos de constantes: a, b y c y m.


Dos sı́mbolos de predicados Enc y S.

Los axiomas son



(Ax1 ) (∀x)(∀y)(∀z) (Enc(x, y) ∧ Enc(y, z)) → Enc(x, z)

para destacar que encima tiene la propiedad transitiva, y

(Ax2 ) (∀x)(∀y)(S(x, y) → Enc(x, y))

para destacar que si una caja está sobre algo, entonces está por encima de ese algo.
Elegimos una configuración de las cajas, a saber, a y c están sobre la mesa y b está sobre a. En
consecuencia, elegimos los tres axiomas siguientes:

(Ax3 ) S(a, m)
(Ax4 ) S(c, m)
(Ax5 ) S(b, a)

Usar esta teorı́a para razonar formalmente sobre el mundo que acabamos de describir. Concreta-
mente:

a) Probar que b está encima de la mesa, es decir, ⊢ Enc(b, m).


3.5. EJERCICIOS 95

b) Extender la teorı́a para expresar que una caja está cerrada si tiene otra caja sobre ella, y
abierta en otro caso. Probar que b está abierta.
c) Extender la teorı́a para incluir la idea de que dos objetos están al mismo nivel si están sobre
el mismo objeto, y luego demostrar que a y c están al mismo nivel.
d) Extender la teorı́a de c) para incluir la idea de que dos cajas están al mismo nivel si los
objetos sobre los que se apoyan están al mismo nivel. Añadir dos nuevas cajas d y e, la caja
d sobre la mesa y e sobre d; después demostrar que b y e están al mismo nivel.
14. Considerar la siguiente teorı́a, denominada teorı́a de un acto vil [?], diseñada para representar un
mundo en el que se ha cometido un crimen. El escenario es el siguiente:
Sólo Tomás y Helenio tienen llaves. Alguien robó el dinero abriendo la caja fuerte. La
única forma de abrir la caja fuerte es con la llave.
La signatura consta de
Dos sı́mbolos de constantes: a para denotar Tomás y b para denotar Helenio.
Tres sı́mbolos de predicados:
a) R(x) para expresar x robó el dinero.
b) C(x) para expresar x abrı́a la caja fuerte.
c) Ll(x) para expresar x tenı́a una llave.
Los axiomas necesarios para formalizar la situación son

(Ax1 ) ((∀x)(C(x) → Ll(x))


(Ax2 ) (∃x)(R(x) ∧ C(x))
(Ax3 ) ((∃x)(R(x) ∧ C(x))
(Ax4 ) (∀x)(Ll(x) → ((x = t) ∨ (x = h)))

Usar esta teorı́a para razonar formalmente sobre el mundo que acabamos de describir. Concreta-
mente:
a) Probar que bien Helenio o bien Tomás robó dinero, es decir, ⊢ R(a) ∨ R(b).
b) Extender la teorı́a para incluir la afirmación de la inocencia de Tomás, y demostrar la culpa-
bilidad de Helenio.
96 CAPÍTULO 3. SISTEMAS DEDUCTIVOS PARA L1
Capı́tulo 4

Método de las Tablas semánticas

En el capı́tulo anterior hemos introducido los sistemas de deducción para la lógica de primer orden, en
este tema y en el siguiente abordamos la posibilidad de automatización de las demostraciones en esta
nueva lógica.
Como hemos analizado en los Capı́tulos 2 y 3, para la lógica de primer orden, la demostración automática
de teoremas sólo puede aspirar a encontrar procedimientos de semidecisión, es decir, procedimientos que
aseguran su terminación sólo si la fórmula o inferencia a la que se aplican es válida. Como en el caso
proposicional, la mayor parte de los trabajos en este área se basan en dos métodos de refutación:
1. método de las tablas semánticas o de construcción de modelos.
2. método de resolución.
En este capı́tulo extendemos a la lógica de primer orden el primero de ellos.
Introducimos el método como extensión del expuesto para la lógica proposicional, ası́ pues, presentamos
la formulación del método debida a Jeffrey.
Como tal sistema de refutación, para verificar la validez de una fórmula A, el método de tablas semánticas
determina si ¬A es satisfacible. Para ello 1 el método organiza la búsqueda sistemática de un modelo
para A. Si la búsqueda tiene éxito, A no es válida, pero si la búsqueda fracasa, entonces A es válida.
Similarmente, si se trata de comprobar la validez de la inferencia de una fórmula A a partir de un conjunto
de hipótesis Γ, entonces el método determina la satisfacibilidad de Γ ∪ {¬A} buscando sistemáticamente
un modelo para dicho conjunto. Si la búsqueda tiene éxito, la inferencia es válida, en caso contrario, no
es válida.
Por lo tanto, tendremos que extender el método visto para el caso proposicional, de modo que incluya
una búsqueda de instanciaciones de fórmulas cuantificadas.
Definición 4.1 Dado el conjunto de fbfs Ω = {A1 , . . . , An } cuya satisfacibilidad se quiere comprobar, se
organizan las fórmulas de Ω en un árbol de una sola rama con razón A1 y tal que cada Ai con 2 ≤ i ≤ n
es sucesor inmediato de Ai−1 , es decir,

A1
A2
..
.
An

Llamamos a este árbol árbol inicial asociado a Ω.


1
Al igual que en el caso proposicional
98 CAPÍTULO 4. MÉTODO DE LAS TABLAS SEMÁNTICAS

El árbol inicial asociado a Ω se irá ampliando sucesivamente mediante reglas de extensión basadas tan
sólo en la estructura sintáctica de las fbfs.
Para la descripción del método utilizaremos, como en el caso proposicional, la notación uniforme de
Smullyan, es decir, agruparemos las fórmulas no literales cuya conectiva principal es una conectiva boo-
leana en fbfs de tipo α (o de comportamiento conjuntivo) y de tipo β (o de comportamiento disyuntivo).
Las siguientes tablas muestran las fbfs de tipo α y las fbfs de tipo β junto con sus componentes.

α α1 α2
β β1 β2
A∧B A B
A∨B A B
¬(A ∨ B) ¬A ¬B
¬(A ∧ B) ¬A ¬B
¬(A → B) A ¬B
A→B ¬A B
¬¬A A A

Para clasificar las fbfs cuantificadas, introducimos dos nuevos tipos de fórmulas: fbfs de tipo δ (o
cuantificadas existencialmente) y fórmulas de tipo γ (o cuantificadas universalmente).
Las siguientes tablas muestran las fórmulas de tipo δ y de tipo γ junto con sus componentes.

δ δ(t) γ γ(t)
¬(∀x)A(x) ¬A(t) ¬(∃x)A(x) ¬A(t)
(∃x)A(x) A(t) (∀x)A(x) A(t)

donde t es un término arbitrario.

4.0.1. Reglas de Extensión


El árbol inicial asociado a un conjunto de fórmulas Ω, denotado TΩ , es extendido sucesivamente, para
obtener árboles asociados a Ω, mediante las reglas denotadas (α), (β), (δ) y (γ) que describimos a
continuación: 2 :

(α) Si ρA denota la rama determinada por el nodo hoja A y una α-fórmula ocurre en ρA , extendemos
dicha rama añadiendo:
(a) Dos nodos etiquetados con sus componentes α1 , α2 si α1 6= α2 .
(b) Un nodo etiquetado con la componente común si α1 = α2 .
y marcamos la α-fórmula como ya usada:
.. ..
. .
α α X
−→
.. ..
. .
A A

α1

α2
(β) Si ρA denota la rama determinada por el nodo hoja A y una β-fórmula ocurre en ρA , extendemos
dicha rama añadiendo:
2
Las reglas (α) y (β) son las mismas que en el caso proposicional
99

(a) Dos nodos (como descendiente izquierdo y derecho) etiquetados con sus componentes β1 y β2
respectivamente, si β1 6= β2 .
(b) Un nodo etiquetado con la componente común , si β1 = β2 .
y marcamos la β−fórmula
.. como ya usada: ..
. .

β β X
.. ..
. −→ .

A A
@
@
β1 β2

Las reglas (δ) y (γ) requieren considerar, como hicimos en la Definición 1.42 sobre skolemización y por
idénticos motivos, la extensión de L1 :
Definición 4.2 Dado un lenguaje L1 de primer orden, definimos L+ 1 como la extensión de L1 obtenida
añadiendo a su alfabeto un conjunto infinito numerable C ′ de nuevos sı́mbolos de constante a los que
llamaremos parámetros.

(δ) Si ρA denota la rama determinada por el nodo hoja A y una fórmula δ(x) ocurre en ρA , extendemos
dicha rama añadiendo δ(a), donde a es un parámetro que no aparece previamente en la rama, y
marcamos la δ-fórmula:
.. ..
. .

δ(x) δ(x) X
.. −→ ..
. .
A A

δ(a)
(γ) Si ρA denota la rama determinada por el nodo hoja A y una fórmula γ(x) ocurre en ρA , extendemos
dicha rama añadiendo γ(t) donde t es un término básico que aparece previamente en la rama.
.. ..
. .

γ(x) γ(x)
.. −→ ..
. .
A A

γ(t)

ee
rr
La definición de las reglas γ y δ corroboran la idea de que las γ-fórmulas son de tipo universal
y la δ-fórmulas son de tipo existencial.
Conviene resaltar que la regla δ (para fbfs de carácter existencial) permite eliminar la cuan-
tificación sustituyendo la variable cuantificada por un nuevo sı́mbolo de constante (concre-
tamente, un parámetro) y marcando como usada la fbf δ(x). Por el contrario, una aplicación
de la regla γ (para fbfs de carácter universal) permite sustituir la variable cuantificada por
100 CAPÍTULO 4. MÉTODO DE LAS TABLAS SEMÁNTICAS

un término que apareció anteriormente (es decir, sobre el que ya estamos interesado) pero
no estará permitido marcar la fbf γ(x).
La regla γ es, por lo tanto, la única que no sustituye la fbf por otras más simples: añade
una más simple pero mantiene la de partida. La razón es que, claramente, con [x/t]A(x)
no cubrimos toda la información contenida en (∀x)A(x); puede ser necesario en una etapa
posterior instanciar (∀x)A(x) con algún otro término t′ y expandir la rama con A(t′ ). De
esta forma aseguramos que las fbfs cuantificadas universalmente se podrán instanciar con
términos básicos que aún no han sido introducidos.

Definición 4.3 Sea Ω = {A1 , . . . , A2 } un conjunto de fbfs. Un árbol T se dice que es un árbol para Ω,
si existe una secuencia de árboles T1 , . . . , Tn tal que:
T1 es el árbol inicial asociado a Ω, es decir, el árbol de una sola rama:

A1

A2
..
.
An

Cada árbol Ti , donde 2 ≤ i ≤ n, es un árbol asociado a Ω que es extensión inmediata de Ti−1 ,


es decir, Ti se obtiene de Ti−1 por aplicación de una regla de extensión a uno de sus nodos.
Tn = T .

ee
rr
En adelante, en los ejemplos, añadiremos un subı́ndice a las marcas X, que nos indique el
orden de aplicación de las reglas.

Ejemplo 4.1 Si no exigimos que cada aplicación de la regla δ introduzca una nueva constante, podrı́amos
cometer el error de concluir que la fórmula

A = (∀x)(P (x) ∨ Q(x)) → ((∀x)P (x) ∨ (∀x)Q(x))

es válida:
¬[(∀x)(P (x) ∨ Q(x)) → ((∀x)P (x) ∨ (∀x)Q(x))] X1
(∀x)(P (x) ∨ Q(x)) X5 [x/a])
¬((∀x)P (x) ∨ (∀x)Q(x)) X2
¬(∀x)P (x) X3 [x/a]
¬(∀x)Q(x) X4 [x/a] (Hemos utilizado de nuevo a)
¬P (a)
¬Q(a)
P (a) ∨ Q(a) X6
@
@
P (a) Q(a)
× ×
101

Sin embargo, A no es válida ya que la interpretación

M = ({a, b}, ∅, ∅, {P ; {b}, Q ; {a}})

no es un modelo para A.

Ejemplo 4.2 Aún aplicando correctamente la regla δ, si se aplica la regla γ marcamos la fórmula,
podrı́amos cometer el error de concluir que dada la fórmula

A = (∀x)(P (x) ∨ Q(x)) → ((∀x)P (x) ∨ (∀x)Q(x))

la interpretación M = ({a, b}, ∅, ∅, {Q ; {a}}) es un modelo para ¬A:

¬[(∀x)(P (x) ∨ Q(x)) → ((∀x)P (x) ∨ (∀x)Q(x))] X1


(∀x)(P (x) ∨ Q(x)) X5 [x/a]
¬((∀x)P (x) ∨ (∀x)Q(x)) X2
¬(∀x)P (x) X3 [x/a]
¬(∀x)Q(x) X4 [x/b]
¬P (a)
¬Q(b)
P (a) ∨ Q(a) X6
@
@
P (a) Q(a)
×

La imposibilidad de marcar una γ-fórmula una vez que ha sido usada plantea varios problemas: ¿Cómo
se define el concepto de rama completa? Este concepto es necesario para describir el método, puesto que
si se extiende directamente la definición proposicional, olvidando el tratamiento especial necesario para
las γ-fórmulas, no es posible demostrar que toda rama abierta de un árbol completo es satisfacible. La
solución a este problema pasa por definir un método sistemático de búsqueda.

4.0.2. Reglas para una Extensión Sistemática


A continuación describimos las reglas para construir tablas semánticas de un modo sistemático para que,
como hemos indicado, podamos asegurar que cada rama abierta es satisfacible.
Comenzamos la construcción mediante el árbol inicial de la fórmula o inferencia que se quiere verificar;
este es el primer paso.
Suponiendo que hemos terminado el n-ésimo paso, describimos el (n + 1)-ésimo paso como sigue:

Si el árbol obtenido en el n-ésimo paso es un árbol cerrado, el método termina con salida es
VÁLIDA
Si el árbol obtenido en el n-ésimo paso es tal que para cada rama abierta toda fórmula no atómica
ha sido marcada, entonces el método termina con salida NO es VÁLIDA.
En otro caso, consideramos un nodo A de profundidad minimal que aún no haya sido usado y que
aparezca en alguna rama abierta. La extensión de la tabla se realiza para cada rama abierta ρX
(con nodo hoja etiquetado con X) como se indica a continuación:
1. Si A es del tipo α la rama ρX se extiende añadiendo α1 y α2 .
102 CAPÍTULO 4. MÉTODO DE LAS TABLAS SEMÁNTICAS

2. Si A es del tipo β la rama ρX se bifurca en dos ramas añadiendo dos nodos etiquetados con
β1 y β2 respectivamente.
3. Si A es del tipo δ la rama ρX se extiende marcando A y añadiendo un nodo δ(a), donde a es
un parámetro que no aparece previamente en la rama.
4. Finalmente, y este es el caso delicado, si A es del tipo γ se marca A y se extiende la rama
añadiendo dos nodos etiquetados con γ(t) y A respectivamente, donde t es un término básico
que aparece previamente en ρX (o un parámetro arbitrario, si no existe tal término).

ee
rr
Nótese que para conservar la universalidad de las γ-fórmulas se repite el nodo γ, pero a
mayor profundidad; esto permite usar todas las γ-fórmulas que aparezcan de modo rotativo
y permite marcar el nodo como usado.

Como en el caso proposicional, las demostraciones son árboles cerrados:


Definición 4.4 Sea T un árbol para Ω.
Una rama de T se dice que es cerrada, si en ella ocurren un átomo P y su negación ¬P ; en cuyo
caso decimos que el método es con cierre atómico. O más en general, si en ella ocurren una
fórmula B y su negación ¬B; en cuyo caso decimos que el método es con cierre no atómico.
Una rama de T se dice que es abierta si no es cerrada.
Un árbol T se dice cerrado si todas sus ramas son cerradas.

Definición 4.5 Una rama abierta ρ de un árbol T para Ω se dice completa si satisface las siguientes
condiciones:
1. Si una fórmula α ocurre en la rama ρ, también sus componentes α1 y α2 ocurren en ρ.
2. Si una fórmula β ocurre en la rama ρ, o la componente β1 o la componente β2 ocurre en ρ.
3. Si una fórmula δ ocurre en la rama ρ, una componente δ(a) ocurre en ρ para algún parámetro a.
4. Si una fórmula γ ocurre en la rama ρ, las componentes γ(t) ocurren en ρ para todo término básico.
Un árbol T para Ω se dice terminado si toda rama es cerrada o completa.
Definición 4.6 Llamaremos refutación para un conjunto Ω de fbfs a cualquier árbol cerrado para Ω. Una
fórmula C se dice que se deriva o infiere del conjunto de fórmulas {H1 , . . . , Hn }, si existe una refutación
para {H1 , . . . , Hn , ¬C}. En particular, una fórmula A se dice demostrable si existe una refutación para
{¬A}.
Una rama ρ se dice satisfacible si el conjunto de las fbfs que etiquetan los nodos ρ es satisfacible. Un
árbol T para Ω se dice satisfacible si alguna de sus ramas es satisfacible.

4.1. Descripción del Método


Siguiendo a Jeffrey,en la Figura ?? mostramos un diagrama de flujo para la construcción de un árbol de
refutación.
En la figura ?? aparece el diagrama de flujo del algoritmo de las tablas semánticas. Debemos tener en
cuenta las siguientes observaciones.
1. No se puede realizar ningún proceso de normalización previo al algoritmo; las fórmulas deben
incluirse tal y como aparecen en el problema inicial. Naturalmente, esto no es una limitación
del algoritmo, pero uno de los objetivos del curso es entender las caracterı́sticas de cada método
y algoritmo y el poder trabajar con todo tipo de fórmulas es una caracterı́stica de las tablas
semánticas que debemos explotar.
4.1. DESCRIPCIÓN DEL MÉTODO 103

Negación de la fórmula o bien


Hip.1, Hip.2, . . . , Hip n, negación de la conclusión

Aplicar (α) ó (β) siguiendo el diagrama proposicional


¿Hay alguna rama abierta?

SI NO
ES VÁLIDA

¿ocurren δ ó γ-fórmulas en algún nodo?

SI NO

NO ES VÁLIDA

¿Es aplicable (δ) a algún nodo?


SI NO
Aplı́quese

¿Es aplicable (γ) ?


SI NO
Aplı́quese
104 CAPÍTULO 4. MÉTODO DE LAS TABLAS SEMÁNTICAS

2. Tal y como se refleja en el diagrama, el orden de prioridad de las extensiones es α, γ y β. Este orden
está determinado por cuestiones de eficiencia; dejamos para el final la extensión β, responsable de
la generación de nuevas ramas.
3. Las extensiones δ se hacen cuando no haya fórmulas α, γ o β sin marcar: se elige una fórmula δ,
se aplica la δ regla y se vuelve a aplicar la regla γ con la nueva constante introducida.
4. El orden de expansión de las fórmulas y de los términos usados en las extensiones γ no condiciona
la corrección del método, pero sı́ el tamaño de la tabla construida. En las implementaciones del
algoritmo es necesario establecer un orden, pero en la aplicación manual podremos elegir libremente
las fórmulas y términos, aunque respetando siempre los criterios de prioridad.

Teorema 4.1 Toda refutación para un conjunto Ω de fbfs es un árbol finito.

Demostración: Puesto que, por construcción, nunca realizamos extensiones sobre una rama cerrada,
tenemos asegurado que toda rama cerrada es finita. Por lo tanto, el lema de König asegura el resultado.

En la lógica clásica proposicional, la aplicación sistemática de las reglas a nodos no marcados no se


prolonga indefinidamente, y consecuentemente, cualquier árbol da lugar a un árbol terminado en un
número finito de aplicaciones. Sin embargo, en la construcción de un árbol en la lógica clásica de primer
orden, la aplicación de las reglas puede prolongarse indefinidamente y generar árboles infinitos que, por
el lema de König, tendrán ramas infinitas. El siguiente ejemplo ilustra esta afirmación. En él mostramos
un árbol infinito para una fórmula satisfacible.
Ejemplo 4.3 La fórmula A = (∀x)(∃y)P (x, y) es satisfacible, ya que (N, {<}) es un modelo para esta
fórmula. Sin embargo, si A es la entrada al método, la ejecución da lugar a un árbol infinito:

(∀x)(∃y)P (x, y) X1 [x/a]


(∃y)P (a, y) X2
(∀x)(∃y)P (x, y) X3 [x/b]
P (a, b)
(∃y)P (b, y) X4
(∀x)(∃y)P (x, y) X5 [x/c]
P (b, c)
(∃y)P (c, y) X6
:
:

4.2. Corrección y Completitud


Como ya era de esperar, la adecuada definición de las reglas de extensión asegura la corrección del
método. Por su parte, la construcción sistemática del árbol nos permite asegurar su completitud. El
siguiente teorema es el resultado semántico básico del método:

Teorema 4.2 Si T es un árbol satisfacible para Ω entonces todo árbol para Ω obtenido al aplicar a T
cualquier regla de extensión es también satisfacible.

Demostración: Sea T un árbol satisfacible para Ω y sea ρ una rama satisfacible de T . Supongamos que
T ′ ha sido obtenido al aplicar una regla de extensión a un nodo de la rama ρ′ de T que está etiquetado
con una fbf A. Entonces,
4.2. CORRECCIÓN Y COMPLETITUD 105

1. Si ρ = ρ′ , ρ es una rama de T ′ y por lo tanto T ′ es satisfacible.


2. Si ρ 6= ρ′ , podemos distinguir los siguientes casos:
a) Para los casos en los que A es una α-fórmula o una β-fórmula, la demostración es consecuencia
(como en el caso proposicional) de las equivalencias α ≡ α1 ∧ α2 y β ≡ β1 ∨ β2 .
b) Si A es una δ-fórmula entonces, T ′ ha sido obtenido al añadir al nodo hoja de ρ un nodo
etiquetado con la componente δ(a) de A. Sea M = (U, I) un modelo para ρ, entonces M
es un modelo para δ(a). Supongamos que δ = (∃x)B(x) (la demostración para el caso en
que δ(x) = ¬(∀x)B(x) ≡ (∃x)¬B(x) es análoga ). Sea ξ una valuación de variables tal que
Iξ (B(x)) = 1. Puesto que a no ocurre en ρ, podemos extender M a una interpretación M′
que coincide con M salvo que I(a) = ξ(x). Obviamente, M′ es un modelo para ρ ∪ δ(a). Por
lo tanto, T ′ es satisfacible.
c) Si A es una γ-fórmula, entonces T ′ ha sido obtenido al añadir al nodo hoja de ρ dos nodos
etiquetados, respectivamente, con γ y con la componente γ(t) de A. Sea M = (U, I) un modelo
para ρ, entonces M es un modelo para γ(t). Supongamos que γ = (∀x)B(x) (la demostración
para el caso en que γ(x) = ¬(∃x)B(x) ≡ (∀x)¬B(x) es análoga ). Puesto que todo modelo
para γ(x) es un modelo para γ(t), M es también un modelo para ρ ∪ {γ, γ(t)}. Por lo tanto,
T ′ es satisfacible.

Teorema 4.3 (Existencia de modelo) Toda rama completa y abierta ρ de un árbol T para un conjunto
de fbfs Ω es satisfacible.

Demostración: Sean T ermbρ y Pρ el conjunto de términos básicos y el conjunto de sı́mbolos de predicado


respectivamente que intervienen en las fórmulas que etiquetan los nodos de ρ. Sea F BF ρ el conjunto de
fórmulas que etiquetan los nodos de ρ y Atomρ , en particular, el conjunto de átomos que etiquetan los
nodos de ρ. Definamos una interpretación, (U ρ , I ρ ), construida a partir de la rama ρ como sigue:
1. U ρ = T ermbρ .
2. I ρ es una aplicación tal que:
para cada término t ∈ T ermbρ , I ρ (t) = t;
para cada sı́mbolo de predicado n-ario P ∈ P ρ tal que: I ρ (P ) = {(t1 , . . . , tn ) | P (t1 , . . . , tn ) ∈
Atomρ }.
Probaremos ahora que toda fórmula de F BF ρ es verdadera en Mρ . En efecto, por reducción al absurdo,
supongamos que existe al menos una fórmula F BF ρ que es falsa en Mρ . Elijamos la de menor grado (o
una de ellas, si hay más de una) con dicha propiedad, sea A tal fórmula. Es decir, se cumple:
(H) I ρ (A) = 0 y para toda B ∈ F BF ρ tal que gr(B) < gr(A), se tiene que I ρ (B) = 1.
A no puede ser un literal, dada la definición de I ρ :
-Si A = P (t1 , . . . , tn ), entonces I ρ (P (t1 , . . . , tn )) = 1, pues (ti , . . . , tn ) ∈ I ρ (P ).
/ I ρ (P ); de lo contrario, P (t1 , . . . , tn ) ∈ Atomρ y la rama ρ
-Si A = ¬P (t1 , . . . , tn ), entonces (ti , . . . , tn ) ∈
estarı́a cerrada. Luego I (P (t1 , . . . , tn )) = 0, es decir, I ρ (¬P (t1 , . . . , tn )) = 1.
ρ

Por tanto, A tiene que ser una α, una β, una δ o una γ. Veamos que tampoco puede darse ninguno de
estos casos.
Si A fuera una α, dado que ρ es una rama completa y abierta se tiene que α1 y α2 ∈ F BF ρ . Como
gr(α1 ), gr(α2 ) < gr(α), entonces por la hipótesis (H), I ρ (α1 ) = I ρ (α1 ) = 1. Entonces I ρ (α) = 1. Pero
esto contradice (H), que establece que I ρ (A) = I ρ (α) = 0. Ası́ pues, A no puede ser una α.
Si A fuera una β, dado que ρ es una rama completa y abierta se tiene que β1 ∈ F BF ρ o bien β2 ∈ F BF ρ .
Dado que gr(β1 ), gr(β2 ) < gr(β), por (H) tendrı́amos que si β1 ∈ F BF ρ , entonces I ρ (β1 ) = 1 y si
106 CAPÍTULO 4. MÉTODO DE LAS TABLAS SEMÁNTICAS

β2 ∈ F BF ρ , entonces I ρ (β2 ) = 1. En cualquier caso, I ρ (β) = 1. Pero esto contradice la hipótesis (H), la
cual establece que I ρ (A) = I ρ (β) = 0. Ası́ pues, A tampoco puede ser una β.
Si A fuera una δ, dado que ρ es una rama completa y abierta se tiene que δ(a) ∈ F BF ρ , para alguna
constante a. Dado que gr(δ(a)) < gr(δ), por la hipótesis (H) resulta que I ρ (δ(a)) = 1. Entonces I ρ (δ) = 1.
Pero esto contradice (H), que establece que I ρ (A) = I ρ (δ) = 0.
Si A fuera una γ, dado que ρ es una rama completa y abierta se tiene que γ(t) ∈ F BF ρ , para todo
término t ∈ T ermbρ . Dado que gr(γ(t)) < gr(γ) para todo t ∈ T ermbρ , por la hipótesis (H) resulta que
I ρ (γ(t)) = 1 para todo t ∈ T ermbρ . Entonces I ρ (γ) = 1. Pero esto contradice (H), que establece que
I ρ (A) = I ρ (γ) = 0.
Hemos recorrido las posibles formas de A y en ningún caso puede ser I ρ (A) = 0. Por tanto, toda fórmula
de F BF ρ es verdadera en Mρ . De esto se sigue que ρ tiene un modelo y, por tanto, el árbol tiene una
rama satisfacible. Esto concluye la prueba.

Teorema 4.4 (Corrección y completitud)


1. Si existe una refutación para {H1 , . . . , Hn , ¬C}, entonces H1 , . . . , Hn |= C.
2. Si H1 , . . . , Hn |= C entonces existe una refutación para {H1 , . . . , Hn , ¬C}. Más aún, si {H1 , . . . , Hn , ¬C}
es insatisfacible, entonces la construcción sistemática debe terminar en un número finito de pasos.

Demostración:
1. Suponemos que existe una refutación para {H1 , . . . , Hn , ¬C}. Deseamos probar H1 , . . . , Hn |= C,
es decir que {H1 , . . . , Hn , ¬C} es insatisfacible. Lo probamos por reducción al absurdo:
Si Ω = {H1 , . . . , Hn , ¬C} fuera satisfacible, por el Teorema 4.2, todo árbol asociado a Ω es satis-
facible, es decir, todo árbol para Ω tendrı́a una rama abierta, lo cual es imposible por hipótesis.
2. Suponemos H1 , . . . , Hn |= C. Deseamos probar que existe una refutación para {H1 , . . . , Hn , ¬C}.
Lo probamos por reducción al absurdo:
Si no existiera una refutación para Ω = {H1 , . . . , Hn , ¬C}, y si T es un árbol asociado a Ω, T tiene
una rama abierta ρ tal que tras la aplicación de reglas a sus nodos sigue proporcionando una rama
abierta. Ahora bien, la construcción sistemática, nos asegura que para todo nodo N en ρ si A es
la etiqueta de N y A no está marcada, el método aplicará en algún momento de su ejecución una
regla a A.
En particular, si A es una γ-fórmula y t es un término básico que ocurre en ρ, existe un descendiente
N ′ de N etiquetado con γ(t). En definitiva, construirı́amos una rama abierta y completa y, por
el Teorema 4.3 de existencia de modelo, Ω = {H1 , . . . , Hn , ¬C} serı́a satisfacible en contra de la
hipótesis.

4.2.1. Tablas semánticas para la Construcción de Modelos


Igual que en el caso proposicional, los métodos de demostración son realmente algoritmos de satis-
facibilidad con los que buscamos determinar un modelo de la fórmula o fórmulas de entrada. Si estamos
interesados en estudiar la validez de una fórmula o de un razonamiento, aplicaremos en primer lugar el
principio de refutación.
En una lógica clásica de primer orden, la busqueda de un modelo supone:
Determinar una dominio M : este dominio contendrá, al menos, las constantes que aparecen en el
conjunto inicial, pero puede contener más elementos.
A cada átomo básico construido sobre el dominio M le tenemos que asignar un valor de verdad,
I(A) ∈ {0, 1}. Como en el caso proposicional, en la mayorı́a de los problemas determinaremos una
interpretación parcial, es decir, bastará con asignar valores de verdad a algunos átomos básicos.
4.2. CORRECCIÓN Y COMPLETITUD 107

Para acercarnos intuitivamente a la búsqueda de modelos, veamos el siguiente ejemplo resuelto a nivel
semántico.
Ejemplo 4.4 Vamos a buscar un modelo de la fórmula

¬((∀x)P (x) ∨ (∀x)Q(x)) → (∀x)(P (x) ∨ Q(x)))

I((∀x)P (x) ∨ (∀x)Q(x)) → (∀x)(P (x) ∨ Q(x))) = 0 ✔(1)


I((∀x)P (x) ∨ (∀x)Q(x)) = 1 ✔(4)
I(∀x)(P (x) ∨ Q(x))) = 0 ✔(2) : a
I(P (a) ∨ Q(a)) = 0 ✔(3)
I(P (a)) = 0
I(Q(a)) = 0
I((∀x)P (x)) = 1 (5) : a I((∀x)Q(x)) = 1 (6) : a
I(P (a)) = 1 I(Q(a)) = 1
(Absurdo) (Absurdo)
En este caso, concluimos que es imposible encontrar ningún modelo.
En la lı́nea que hemos utilizado en segundo lugar y que aparece marcada con “✔(2):a”, hemos
utilizado el siguiente hecho: para conseguir que I((∀x)(P (x) ∨ Q(x))) = 0, necesitamos que haya
un elemento en el dominio, al que llamamos a, que verifique I(P (a) ∨ Q(a)) = 0. Como el caso
proposicional, la busqueda del modelo se hace transmitiendo la evaluación a las subfórmulas, pero
en este caso, además, necesitamos determinar el valor de estas subfórmulas para elementos concretos
del dominio.
En la lı́nea I((∀x)P (x)) = 1, usada en quinto lugar y etiquetada con “(5):a”, necesitamos decir
que “todos” los átomos P (t) son verdaderos en la interpretación que estamos construyendo. Dado
que no podemos hacer esto, ya que ni siquiera sabemos cuál puede ser finalmente el dominio, lo
que hemos hecho ha sido proceder parcialmente, es decir, utilizamos los elementos del dominio que
hemos introducido hasta ese momento. A diferencia del caso proposicional, en que cada fórmula
era usada solo una vez, este tipo de fbfs de primer orden deberán ser usadas para cada elemento
nuevo que añadamos.

Más formalmente, el teorema de existencia de modelos, Teorema 4.3, asegura que en un árbol terminado
para un conjunto Ω de fbfs, cada rama abierta ρ, proporciona un modelo para Ω, concretamente, el
modelo de Herbrand respecto de L+ 1 determinado por la interpretación I tal que I(A) = 1 si A ocurre en
ρ e I(A) = 0 si ¬A ocurre en ρ.
Ejemplo 4.5 La fórmula A = (∃x)(∀y)R(x, y) → (∃x)R(x, a) es válida.

¬[(∃x)(∀y)R(x, y) → (∃x)R(x, a)] X1


(∃x)(∀y)R(x, y) X3
¬(∃x)R(x, a) X2
¬R(a, a)
¬(∃x)R(x, a) X4 [x, a]
(∀y)R(b, y) X5
¬R(b, a)
¬(∃)R(x, a) [x/a, b]
R(b, a)
(∀y)R(b, y) [y/b]
×
108 CAPÍTULO 4. MÉTODO DE LAS TABLAS SEMÁNTICAS

Ejemplo 4.6 La fórmula A = (∀x)(P (x) → Q(x)) → ((∀x)P (x) → (∀x)Q(x)) es válida.

¬[(∀x)(P (x) → Q(x)) → ((∀x)P (x) → (∀x)Q(x))] X1


(∀x)(P (x) → Q(x)) X4 [x/a]
¬((∀x)P (x) → (∀x)Q(x)) X2
(∀x)P (x) X5 [x/a]
¬(∀x)Q(x) X3
¬Q(a)
P (a) → Q(a) X6
(∀x)(P (x) → Q(x))
P (a)
(∀x)P (x)
@
@
¬P (a) Q(a)
× ×

Ejemplo 4.7 La fórmula A = ¬[((∃x)P (x) ∨ R(a)) ∧ (∀y)Q(y)] no es válida.

¬¬[((∃x)P (x) ∨ R(a)) ∧ (∀x)Q(y)] X1


((∃x)P (x) ∨ R(a)) ∧ (∀y)Q(y) X2
(∃x)P (x) ∨ R(a) X3
(∀y)Q(y) X4 [x/a]

 HH
(∃x)P (x) X5 R(a)
Q(a) Q(a)
(∀y)Q(y) [x, a] X6 (∀y)Q(y) [x, a]
P (b)
Q(b)
(∀y)Q(y) [x/a, b]

donde cada rama abierta nos proporciona un modelo para la fórmula ¬A.

Ejemplo 4.8 La inferencia

(∀x)(∃y)P (y, x), (∀u)(∀v)(P (u, v) → Q(u, v)) |= (∀z)(∃t)Q(t, z) es válida.

En este ejemplo, para hacer más simple el gráfico, en lugar de marcar las γ-fórmulas y repetirlas tras
su uso, hemos indicado a su derecha el orden en que han sido utilizadas, detallando las sustituciones
4.2. CORRECCIÓN Y COMPLETITUD 109

realizadas.
(∀x)(∃y)P (y, x) ((2)[x/a]; (8)[x/b])
(∀u)(∀v)(P (u, v) → Q(u, v)) ((3)[u/a]; (9)[u/b])
¬(∀z)(∃t)Q(t, z) X1
¬(∃t)Q(t, a) ((4)[t/a]; (10)[t/b])
((∃y)P (y, a) X7
(∀v)(P (a, v) → Q(a, v)) ((5)[v/a]; (11)[v/b])
¬Q(a, a)
P (a, a) → Q(a, a) X6
@@
¬P (a, a) Q(a, a)
×
P (b, a)
(∃y)P (y, b)
(∀v)(P (b, v) → Q(b, v)) ((12)[v/a]; (13)[v/b])
¬Q(b, a)
P (a, b) → Q(a, b) X14
P (b, a) → Q(b, a) X15
P (b, b) → Q(b, b)
@
@
¬P (a, b) Q(a, b)
@@ @@
¬P (b, a) Q(b, a) ¬P (b, a) Q(b, a)
× × × ×

Ejemplo 4.9 Vamos a estudiar la validez del siguiente razonamiento usando el método de Gilmore y el
de las Tablas semánticas.
El padre del padre de una persona es su abuelo, toda persona tiene un padre; por lo tanto
todo el mundo tiene un abuelo.
Leyendo la relación P (x, y) como “x es padre de y” y la relación A(x, y) como “x es abuelo de y” podemos
escribir la siguiente formalización:

(∀x)(∀y)(∀z)((P (x, y) ∧ P (y, z)) → A(x, z))


(∀x)(∃y)P (y, x)
(∀x)(∃y)A(y, x)

Este razonamiento es válido si y solo si el siguiente conjunto es satisfacible:

{(∀x)(∀y)(∀z)((P (x, y) ∧ P (y, z)) → A(x, z)), (∀x)P (f (x), x), ∀y¬A(y, a)}

Su dominio de Herbrand es
HS = {a, f (a), f (f (a)), f (f (f (a))), . . . }
y la base de Herbrand

BS = {P (t1 , t2 ); t1 , t2 ∈ HS } ∪ {A(t1 , t2 ); t1 , t2 ∈ HS }

Construimos el árbol de Gilmore para A1 ∧ A2 ∧ A3 con:

A1 = (∀x)(∀y)(∀z)((P (x, y) ∧ P (y, z)) → A(x, z)),


A2 = (∀x)P (f (x), x), A3 = (∀y)¬A(y, a)
110 CAPÍTULO 4. MÉTODO DE LAS TABLAS SEMÁNTICAS

La tabla semántica que demuestra igualmente la validez del razonamiento se muestra a continuación. La
diferencia de tamaño entre los dos árboles no debe conducir a conclusiones erróneas sobre la complejidad
de los métodos. Debe tenerse en cuenta que, por una parte, el método de Gilmore requiere un proceso de
normalización previo y que, además, en ambos casos hemos elegido un orden óptimo para las sucesivas
extensiones de los árboles.
Es interesante comparar las dos soluciones. En las dos, hemos necesitado tres elementos para lograr las
inconsistencias: a, b y c en las tablas y a, f (a) y f (f (a)) en el árbol de Gilmore. Además, en ambos casos,
el significado de los mismos en el modelo es el mismo: b es el padre de a y c es el padre de b, ası́ como
f (a) es el padre de a y f (f (a)) es el padre de f (a).
4.3. EJERCICIOS 111

4.3. Ejercicios
1. Aplicar el método de las tablas semánticas para analizar la validez o no de las siguientes fbfs:
a) (∃x)((∃yP (y) → P (x))
b) (∀x)(∃y)P (x, y) → (∃z)(∀t)P (t, z)
c) (∃x)(P (x) → Q(x)) → ((∃xP (x) → (∃x)Q(x))
d ) (∀x)(P (x) → Q(x)) → ((∀x)P (x) → (∀x)Q(x))
e) (∀x)[P (x) → (∃y)(Q(y) ∧ R(y, x))] ↔ (∃x)[Q(x) ∧ (∀y)(P (y) → R(x, y))]
f ) (∀x)(P (x) ∧ Q(x)) → ((∀x)P (x) ∧ (∀x)Q(x))
g) ((∀x)P (x) ∧ (∀x)Q(x)) → (∀x)(P (x) ∧ Q(x))
2. Aplicar el método de las tablas semánticas para analizar la validez o no de las siguientes fbfs:
a) (∀x)(P (x) ∨ Q(x)) → ((∀x)P (x) ∨ (∀x)Q(x))
b) ((∀x)P (x) → (∀x)Q(x)) → (∀x)(P (x) → Q(x))
c) (∃x)(∀y)R(x, y) → (∀y)(∃x)R(x, y)
d ) (∃x)(P (x) → (∀x)P (x))
e) (∀x)(∀y)(P (x) ∧ P (y)) → (∃x)(∃y)(P (x) ∨ P (y))
f ) (∀x)(∀y)(P (x) ∧ P (y)) → (∀x)(∀y)(P (x) ∨ P (y))
g) (∀x)(∃y)(∀z)(∃w)(R(x, y) ∨ R(w, z))
3. Aplicar el método de las tablas semánticas para analizar la validez o no de la siguiente inferencia

(∀x)(∃y)P (x, y)
(∀x)¬P (x, x)

(∃x)(∃y)(∃z)¬ (P (x, y) ∧ P (y, z)) → P (x, z)

4. Estudie la validez de la siguientes inferencias utilizando Tablas semánticas:



(∀x)((∃y)(S(x, y) ∧ M (y)) → (∃y)(I(y) ∧ E(x, y)))
a)
¬(∃x)I(x) → (∀x)(∀y)(S(x, y) → ¬M (y))

 (∀x)(G(x) → M (x))
b) (∀x)(M (x) → F (x))

¬(∀x)(¬G(x) → ¬F (x))
5. Aplicar el método de las tablas semánticas para analizar la validez o no del siguiente razonamiento:

(∃x)(∀y)P (x, y)
(∃x)(∃y)(P (x, y) → Q(x, y))
(∃x)(∀y)Q(x, y)

6. Aplicar el método de las tablas semánticas para analizar la validez o no del siguiente razonamiento:

(∀x)(∀y)(∀z)((P (x, y) ∧ P (y, z)) → A(x, z))


(∀x)(∃y)P (y, x)
(∀x)(∃y)A(y, x)

7. Tras skolemizar, probar usando el método de las tablas semánticas para probar la satisfacibilidad
o no de los siguientes conjuntos de fbfs
112 CAPÍTULO 4. MÉTODO DE LAS TABLAS SEMÁNTICAS

a) {(∀x)(∃y)(Q(y) ∨ ¬P (x, y)), ¬(∃z)Q(z), (∀v)(∀u)(P (b, v) ∨ P (a, u)}


b) {(∀x)(Q(f (x)) ∨ ¬P (x, f (x))), (∀z¬Q(z), (∀v)(∀u)(P (b, v) ∨ P (a, u)}
8. Aplicar el método de las tablas semánticas para analizar la validez o no del razonamiento siguiente:

Todos los hombres son mamı́feros.


Todos los mamı́feros son vertebrados.

Todos los vertebrados son hombres.

9. Aplique el método de las tablas semánticas para analizar la validez del razonamiento siguiente:
El padre del padre de una persona es su abuelo, toda persona tiene un padre; por lo
tanto todo el mundo tiene un abuelo.
10. Aplique el método de las tablas semánticas para analizar la validez o no del razonamiento siguiente:

Ningún vendedor de coches usados compra un coche usado para uso familiar.
Algunos de los que compran un coche usado para uso familiar son deshonestos.

Por lo tanto, algunas personas deshonestas no son vendedores de coches usados

11. Aplicar el método de las tablas semánticas para analizar la validez o no de los siguientes razona-
mientos:
a) Todo estudiante es honesto, Juan no es honesto; por lo tanto Juan no es estudiante.
b) Todo atleta es fuerte, todo el que es fuerte e inteligente triunfará en su carrera, Pedro es un
atleta, Pedro es inteligente; por lo tanto Pedro triunfará en su carrera.
c) Todo aquel que ama a alguien ama a Dios, no hay nadie que no ame a nadie; por lo tanto
todo el mundo ama a Dios.
d ) El padre del padre de una persona es su abuelo, toda persona tiene un padre; por lo tanto
todo el mundo tiene un abuelo.
12. Estudie la validez de la siguientes inferencias utilizando Tablas semánticas:

 (∀x)(C(x) → (W (x) ∧ R(x)))
a) (∃x)(C(x) ∧ O(x))

(∃x)(O(x) ∧ R(x))

(∀y)(S(y) → C(y))
b)
(∀x)((∃y)(S(y) ∧ V (x, y)) → (∃z)(C(z) ∧ V (x, z)))

 ¬(∀x)(F (x) → (∀y)(G(y) → H(x)))
c) (∃x)F (x) ∧ (∃x)¬(F (x) ∨ G(x))

(∀x)(F (x) → H(x))

 (∀x)(G(x) ∨ (∃y)H(y))
d) ¬(∃x)G(x)

¬(∃x)¬H(x)

 (∀x)(F (x) → G(x))
e) ¬(∃x)(F (x) ∧ G(x))

¬(∃x)F (x)

(∀x)(H(x) → A(x))
f)
(∀x)((∃y)(H(y) ∧ T (x, y)) → (∃y)(A(y) ∧ T (x, y)))
4.3. EJERCICIOS 113


 (∃x)(F (x) ∧ ¬G(x))


 (∀x)(F (x) → H(x))
g) (∀x)(J(x) ∧ (K(x) → F (x)))



 (∃x)(H(x) ∧ ¬G(x)) → (∀x)(K(x) → ¬H(x))

(∀x)(J(x) → ¬K(x))

F (a)
h)
(∀x)(F (x) → G(x)) ↔ (∀x)((F (x) ∧ G(x)) ∨ (¬F (x) ∧ G(a)))

 (∀x)(∃y)P (x, y)
i) (∀x)¬P (x, x)

(∃x)(∃y)(∃z)¬((P (x, y) ∧ P (y, z)) → P (x, z))

 (∃x)(∀y)P (x, y)
j) (∃x)(∃y)(P (x, y) → Q(x, y))

(∃x)(∀y)Q(x, y)
114 CAPÍTULO 4. MÉTODO DE LAS TABLAS SEMÁNTICAS
Capı́tulo 5

Método de Resolución

Como comentamos en el estudio de la lógica proposicional, el sistema de demostración automática más


conocido y más utilizado en los sistemas de programación lógica es, sin duda, el método de resolución
introducido por Robinson. En este capı́tulo presentamos la extensión del método proposicional que, como
venimos reiterando, para la lógica de primer orden es un semialgoritmo.
Como en el caso proposicional, la extensión que vamos a definir,
para verificar la validez de una fbf, A, considera como entrada el conjunto de cláusulas correspon-
dientes a una forma clausal simultáneamente satisfacible con ¬A y determina si tal conjunto de
cláusulas es o no insatisfacible;
para verificar la validez de una inferencia
H1
H2
..
.
Hn
C
considera como entrada el conjunto de cláusulas correspondientes a una forma clausal simultánea-
mente satisfacible a H1 ∧ · · · ∧ Hn ∧ ¬C respectivamente, y determina si tal conjunto de cláusulas
es o no insatisfacible.
También como en el caso proposicional, la base semántica del método de resolución que vamos a definir
es el siguiente resultado: Dado un conjunto Ω de cláusulas básicas, se tiene que:
Ω es insatisfacible si y sólo si Ω |= 2
donde 2 representa la cláusula vacı́a (disyunción vacı́a de literales).
Destaquemos que:
no hemos puesto restricción al cardinal de Ω, sobre el que sabemos que a lo sumo es infinito
numerable;
las cláusulas básicas son afirmaciones del lenguaje natural del tipo contemplado en la lógica clásica
proposicional
En definitiva, nuestro problema consiste en extender el método de Resolución estudiado en la lógica
clásica proposicional para que contemple la posibilidad de analizar la satisfacibilidad de un conjunto
infinito numerable de cláusulas. Pero ¿qué sentido tiene considerar |Ω| = ℵ0 ? ¿Tiene sentido considerar
un razonamiento con un conjunto infinito numerable de hipótesis? En efecto, sólo vamos a contemplar
razonamiento en L1 con un número finito de hipótesis, pero leamos con cuidado nuestra afirmación anterior
y destaquemos que hablamos de un conjunto infinito numerable de cláusulas básicas y recordemos que

115
116 CAPÍTULO 5. MÉTODO DE RESOLUCIÓN

Un conjunto de cláusulas, Ω ⊂ L1 , es satisfacible si y sólo si el conjunto Ωb de sus


instancias básicas es satisfacible
Recordemos también que, basta que en Ω intervenga un sı́mbolo de función para que Ωb sea
infinito numerable. Ası́, para un Ω tan simple como Ω = {P (f (x)))}, tenemos que

Ωb = {P (a), P (f (a)), P (f 2 (a)), . . . P (f n (a)), . . .}

En definitiva, no podemos olvidar que la forma clausal Ω = {P (f (x)))} representa la fbf (∀)P (f (x) y, en
general,
Si C una cláusula y {x1 , . . . , xn } es el conjunto de variables que interviene en C
entonces: Una interpretación M es un modelo para C si y sólo si M es un modelo
para (∀x1 ) . . . (∀xn )C(x1 , . . . , xn ).
¿Disponemos de algún resultado especı́fico sobre la satisfacibilidad de un conjunto infinito de cláusulas
básicas? Afortunadamente sı́: disponemos del teorema de Compacidad de Herbrand, que nos asegura
que: si Ω es un conjunto de cláusulas y Ωb el conjunto de instancias básicas de Ω, entonces

Ωb es satisfacible si y sólo si existe un subconjunto finito Ωb0 ⊆ Ωb que es satisfacible.

Ası́ que podemos empezar planteándonos la primera extensión obvia del método para analizar la satisfa-
cibilidad de un conjunto de cláusulas básicas.

5.1. Resolución básica


Definición 5.1 Dos cláusulas básicas C1 y C2 se dicen resolubles respecto a un átomo A, si A
ocurre en C1 y su opuesto ¬A ocurre en C2 . Si C1 y C2 son resolubles respecto a A, llamamos resolvente
de C1 y C2 respecto de A , denotada RA (C1 , C2 ), a la cláusula

RA (C1 , C2 ) = (C1 − {A}) ∨ (C2 − {¬A})

donde C1 − {A} y C1 − {¬A} representan las cláusulas obtenidas al eliminar A y ¬A en C1 y C2 , respec-


tivamente.
La regla de resolución es la siguiente:
Si C1 y C2 son resolubles respecto a A entonces

C1
C2
RA (C1 , C2 )

Ejemplo 5.1

1. RP (a) (¬P (a) ∨ Q(a, b) ∨ ¬R(f (c)), P (a) ∨ Q(a, b) ∨ S(b, g(d, e))) = Q(a, b) ∨ ¬R(f (c)) ∨ S(b, g(d, e))
2. RQ(a,b) (¬P (a) ∨ Q(a, b) ∨ ¬R(f (c)), P (a) ∨ ¬Q(a, b) ∨ S(b, g(d, e))) =
¬P (a) ∨ ¬R(f (c)) ∨ P (a) ∨ S(b, g(d, e))
3. RP (a) (P (a), ¬P (a)) = 2
4. RR(f (c)) (Q(a, b) ∨ R(f (c)), ¬P (a) ∨ ¬R(f (c))) = Q(a, b) ∨ ¬P (a)
5. RP (a) (Q(a, b) ∨ R(f (c)), ¬P (a) ∨ ¬R(f (c))) No existe
5.1. RESOLUCIÓN BÁSICA 117

La justificación semántica de la regla de resolución para cláusulas básicas es la misma que en el caso
proposicional 1 y, como consecuencia trivial, se tiene:

Teorema 5.1 (Corrección del principio de resolución) Dado un conjunto de cláusulas básicas Ω,
si C1 , C2 ∈ Ω son resolubles entonces

Ω es satisfacible si y sólo si Ω ∪ {Rl (C1 , C2 )} lo es.

Definición 5.2 Dado un conjunto de Ω de cláusulas básicas y una cláusula básica C, se dice que C es
deducible por resolución a partir de Ω, denotado Ω ⊢R C, si existe una secuencia de cláusulas básicas
C1 , C2 , · · · , Cn tal que
1. Cada Ci (1 ≤ i ≤ n) es o bien una cláusula de Ω o bien una resolvente de dos cláusulas anteriores
en la secuencia.
2. Cn = C.
La secuencia Ci (1 ≤ i ≤ n) se dice que es una deducción por resolución de C a partir de Ω.
A una deducción por resolución de 2 a partir de Ω se le denomina una refutación por resolución de
Ω.

Ejemplo 5.2 Demos una refutación por resolución del siguiente conjunto finito de cláusulas básicas:

Ω = {P (a) ∨ Q(a, b), ¬Q(a, b) ∨ R(f (c)), ¬P (a) ∨ R(f (c)), ¬R(f (c))}

1. ¬P (a) ∨ R(f (c)) de Ω


2. ¬R(f (c)) de Ω
3. ¬P (a) RR(f (c)) (1, 2)
4. ¬Q(a, b) ∨ R(f (c)) de Ω
5. ¬Q(a, b) RR(f (c)) (2, 4)
6. P (a) ∨ Q(a, b) de Ω
7. Q(a, b) RP (a) (3, 6)
8. 2 RQ(a,b) (5, 7)

El modo habitual de representar las deducciones por resolución a partir de un conjunto Ω de cláusulas
es mediante un árbol binario, llamado árbol de resolución:
Definición 5.3 Un árbol de resolución para un conjunto de cláusulas básicas Ω es un árbol caracte-
rizado como sigue:
1. cada nodo no hoja tiene dos descendientes inmediatos.
2. cada nodo hoja está etiquetado por una cláusula de Ω.
3. cada nodo no hoja está etiquetado por una resolvente de las etiquetas de sus descendientes inme-
diatos.

Por definición, resulta obvio el siguiente teorema:

Teorema 5.2 Si C es la etiqueta de la raı́z de un árbol de resolución para Ω, entonces Ω ⊢R C.


1
Basta advertir que dicha regla no es más que la expresión en términos de ¬ y ∨ de la ley del silogismo
hipotético: Para cualesquiera tres fbfs básicas A, B y C

A ∨ B, ¬A ∨ C |= B ∨ C
118 CAPÍTULO 5. MÉTODO DE RESOLUCIÓN

Si C es 2, el árbol se dice que es un árbol de refutación para Ω.


Ejemplo 5.3 A continuación se presenta un árbol de refutación para el conjunto finito de cláusulas
básicas
Ω = {P (a) ∨ Q(a, b), ¬Q(a, b) ∨ R(f (c)), ¬P (a) ∨ R(f (c)), ¬R(f (c))}

P (a) ∨ Q(a, b) ¬P (a) ∨ R(f (c)) ¬R(f (c)) ¬Q(a, b) ∨ R(f (c)) ¬R(f (c))
@ @ @
@ @ @
@ @ @
¬P (a) ¬Q(a, b)
@
@
Q(a, b)@
@
@
@
@
@@
2
En general, para todo conjunto insatisfacible de cláusulas, Ω, existen refutaciones distintas para Ω. El
siguiente árbol muestra una nueva refutación para el conjunto de cláusulas del ejemplo anterior

¬P (a) ∨ R(f (c)) ¬R(f (c)) P (a) ∨ Q(a, b) ¬Q(a, b) ∨ R(f (c)) ¬R(f (c))
@
@
¬P (a)@
@
@
Q(a, b) @
@
@
R(f (c)) @
@
@@
2

Los ejemplos que hemos visto muestran la extensión del método de resolución para el caso de un conjunto
finito de cláusulas Ω y, como era de esperar, tal extensión es inmediata ¿Pero como operar en el caso de
un conjunto infinito de cláusulas Ω? Desearı́amos disponer de herramientas que nos permitan eludir la
ingente tarea de ir generando todos los subconjuntos finitos de Ωb . 2 Éste fue el objetivo de Robinson al
definir el método de resolución para L1 y a describirlo dedicamos el resto del capı́tulo.
Volvamos a nuestro problema, analizar la satisfacibilidad de un conjunto de cláusulas en L1 :
No tendremos problema para asegurar que Ω1 = {P (a), ¬P (a)} es insatisfacible ¿Pero que decimos del
conjunto Ω2 = {P (x), ¬P (y)}? Según lo que venimos analizando, Ω2 es satisfacible si y solo si Ωb2 es
satisfacible. Pero

Ωb2 = {P (c), ¬P (c), P (f (c)), ¬P (f (c)), . . . P (f n (c)), ¬P (f n (c)), . . .}3

que es claramente insatisfacible.


Veamos otro ejemplo
2 b
Recordemos que, puesto que |Ωb | = ℵ0 , se tiene que 2Ω = ℵ1
3
donde c es la constante de Herbrand
5.1. RESOLUCIÓN BÁSICA 119

Ejemplo 5.4 Consideremos el razonamiento

P (a)
(∀x)(P (x) → P (f (x)))
(∀x)P (x)

Una forma clausal simultáneamente satisfacible con H1 ∧ H2 ∧ ¬C es


Ω = {P (a), ¬P (x) ∨ P (f (x)), ¬P (b)}
y el conjunto de instancias básicas para Ω es
Ωb = {P (a), ¬P (b), ¬P (f n (a) ∨ P (f n+1 (a)), ¬P (f n (b)) ∨ P (f n+1 (b)) | n ∈ N∗ }
Si buscamos una refutación por resolución de Ωb , podemos proceder como sigue:

1. P (a) de Ωb
2. ¬P (b) de Ωb
3. ¬P (a) ∨ P (f (a)) de Ωb
4. P (f (a)) RP (a) (1, 3)
5. ¬P (f (a)) ∨ P (f 2 (a)) de Ωb
6. P (f 2 (a)) RP (f (a)) (4, 5)
7. ... ...
...

Se puede generar la cláusula P (f n (a)) para todo n ∈ N∗ , pero ninguna otra cláusula. Por tanto el conjunto
de cláusulas es satisfacible.
En el ejemplo anterior, la simplicidad de Ωb nos ha permitido concluir la satisfacibilidad pero, desafor-
tunadamente, no existe un método general y eficiente para generar todas las instancias básicas de un
conjunto de cláusulas de L1 . Como hemos indicado, la idea de Robinson consiste en trabajar directamen-
te con las cláusulas sin tener que manejar explı́citamente las instancias básicas. Profundizamos ahora en
esta idea:
Si Ω consta de un par de cláusulas de L1 , por ejemplo, Ω = {P (x) ∨ Q(x), ¬P (f (y)) ∨ R(x, x)}, se tiene
que estas dos cláusulas

C1 = P (x) ∨ Q(x)
C2 = ¬P (f (y)) ∨ R(x, z)

no son resolubles en el sentido anterior (no contiene un literal y su negado), pero si consideramos las
siguientes instancias básicas de C1 y C2 :

C1b = P (f (a)) ∨ Q(f (a))


C2b = ¬P (f (a)) ∨ R(f (a), z)

éstas sı́ son resolubles y nos proporcionan como resolvente la cláusula Q(f (a)) ∨ R(f (a), z). Por lo tanto,
tendremos que modificar la definición de cláusulas resolubles de modo que podamos asegurar que dos
cláusulas C1 y C2 son resolubles si y sólo si existe una cláusula C1′ , instancia de C1 , y una cláusula C2′ ,
instancia de C2 , tales que C1′ y C2′ son resolubles. La idea de Robinson de trabajar directamente con
cláusulas con variables requiere considerar un mecanismo, debido a Herbrand, llamado “unificación”. Los
siguientes ejemplos nos ayudarán a comprender de qué se trata.
En el ejemplo anterior, hemos usado instancias básicas C1′ y C2′ . Ahora bien, puesto que al considerar
instancias de las cláusulas se ha podido llegar a un par resoluble, serı́a conveniente obtener la resolvente
120 CAPÍTULO 5. MÉTODO DE RESOLUCIÓN

más general posible, ası́ podrı́amos permitir que alguna de sus instancias se pueda resolver posteriormente
con alguna otra cláusula de Ω. Un ligero análisis permite encontrar una sustitución más general, [x/f (y)],
que también proporciona un par resoluble de cláusulas C1′ y C2′ :

C1′ = P (f (y)) ∨ Q(f (y))


C2′ = ¬P (f (y)) ∨ R(f (y), z)

obteniéndose como resolvente la cláusula Q(f (y)) ∨ R(f (y), z)


Ejemplo 5.5 Si consideramos el conjunto de cláusulas

Ω = {P (x, a, y), ¬P (f (u), v, w) ∨ Q(v, g(a, x)), ¬Q(z, g(a, f (b)))}

las instancias obtenidas al realizar las sustituciones [x/f (b)], [y/a], [u/b], [v/a] y [w/a] se obtienen las
instancias básicas C1b , C2b y C3b :

C1b = P (f (b), a, a)
C2b = ¬P (f (b), a, a) ∨ Q(a, g(a, f (b))
C3b = ¬Q(z, g(a, f (b)))

En primer lugar, podemos ahora resolver C1b y C2b obteniendo Q(a, g(a, f (b))). Si ahora consideramos
la instancia obtenida al realizar la sustitución en la tercera cláusula [z/a], es decir, ¬Q(a, g(a, f (b))) la
resolvente de esta cláusula con Q(a, g(a, f (b))) es la cláusula vacı́a.
En general, todas las instancias con las sustituciones [x/f (t1 )], [y/t2 ], [u/t1 ], [v/a], [w/t2 ] y [z/a] donde
t1 , t2 ∈ HΩ nos permitirı́an generar rápidamente la cláusula vacı́a.

En el desarrollo de los ejemplos anteriores se han usado explı́citamente dos conceptos de interés: “sus-
titución” y “resolvente más general”. Implı́citamente, se ha usado el concepto de unificación debido a
Herbrand y que, como hemos indicado, es una herramienta fundamental en la extensión del método de
resolución al caso general. Pasamos ya a introducir estos conceptos.

5.2. Unificación
La unificación ha adquirido mucha significación en el contexto de las Ciencias de la Computación debido
a su gran espectro de aplicaciones; entre éstas encontramos el estudio de bases de datos, procesamiento
del lenguaje natural, sistemas expertos, lenguajes de manipulación de textos, sistemas de planificación,
sistemas de representación del conocimiento, lenguajes de programación lógica, sistemas de reescritura y
el álgebra computacional.
Comenzamos introduciendo la noción de sustitución (finita),4 si no hay lugar a confusión simplemente
diremos sustitución:
Definición 5.4 Sea Term el conjunto de términos de L1 . Una sustitución finita es una aplicación
θ : V → T erm que coincide con la aplicación identidad salvo en un número finito de variables, es decir,
tal que θ(x) = x salvo para un número finito de elementos x de V.
Si no hay lugar a confusión, nos referiremos a una sustitución finita σ simplemente como sustitución y
6 xi :
la representaremos mediante el conjunto de variables xi tal que σ(xi ) =

θ = {x1 /t1 , x2 /t2 , . . . , xn /tn }


4
En la Sección 1.1.6 se definió la sustitución de las variables libres de una fórmula por un término; lo que ahora
se define es otro tipo de sustitución, dentro del contexto de unificación.
5.2. UNIFICACIÓN 121

El conjunto de variables {x1 , . . . , xn } se llama dominio de θ (y se denotará dom(θ)), mientras que el


rango de θ (denotado ran(θ)) es el conjunto de variables que aparecen en los términos ti .
Una sustitución θ = {v1 /t1 , . . . , vn /tn } es básica si los términos t1 , . . . , tn son básicos.
Una sustitución θ = {x1 /t1 , . . . , xn /tn } es de renombramiento si los términos t1 , . . . , tn son todos
sı́mbolos de variables.

Dada una sustitución θ, la extendemos a Term del siguiente modo: θ(t) es el término obtenido sustituyendo
en t cada variable x por θ(x).
La aplicación de la sustitución θ a un término t se denotará por θt, y el término obtenido se dirá que es
una instancia de t. En particular, si θ es una sustitución básica, diremos que θt es una instancia básica
de t.
Si θ1 y θ2 son dos sustituciones, la composición de θ1 y θ2 , se denotará como θ2 ◦ θ1 . La operación ◦ es
asociativa y tiene como elemento unidad a la sustitución vacı́a ǫ.
Dadas dos sustituciones θ1 y θ2 definidas por

θ1 = {x1 /t1 , x2 /t2 , . . . , xn /tn }


θ2 = {y1 /u1 , y2 /u2 , . . . , yk /uk }

la composición θ2 ◦ θ1 viene dada por

{x1 /θ2 (t1 ), . . . , xn /θ2 (tn ), yi1 /θ2 (yi1 ), . . . , yim /θ2 (yim )}

Ejemplo 5.6
1. Si θ1 = {x/y} y θ2 = {y/a} entonces θ2 ◦ θ1 = {x/a, y/a}.
2. Si θ1 = {y/f (x), z/b} y θ2 = {x/a} entonces θ2 ◦ θ1 = {x/a, y/f (a), z/b}.
3. Si θ1 = {x/y, y/f (b), z/b} y θ2 = {y/x} entonces θ2 ◦ θ1 = {y/f (b), z/b}.
4. Si θ1 = {x/y, y/f (b), z/b} y θ2 = {x/a} entonces θ2 ◦ θ1 = {x/y, y/f (b), z/b}.

La extensión de una sustitución finita al conjunto Atom de los átomos de L1 se realiza de forma obvia:

θP (t1 , . . . , tn ) = P (θt1 , . . . , θtn ) .

Ejemplo 5.7 Dados el átomo P (x, y, z, u) y las sustituciones

θ1 = {x/f (y), y/a, z/v} y θ2 = {x/b, v/f (z), z/g(a)}

se tiene:
1. θ1 P (x, y, z, u)) = P (f (y), a, v, u)
2. θ2 ◦ θ1 P (x, y, z, u) = θ2 P (f (y), a, v, u)) = P (f (y), a, f (g(a)), u)

Definición 5.5 Diremos que un conjunto de términos {t1 , . . . , tn } es unificable si existe una sustitución
θ tal que θt1 = θt2 = . . . = θtn . Asimismo, diremos que un conjunto de átomos con el mismo predica-
do, {P (t11 , . . . , t1n ), . . . , P (tn1 , . . . , tm i i
n )}, es unificable si existe una sustitución θ tal que θP (t1 , . . . , tn ) =
j j
θP (t1 , . . . , tn ) para cualesquiera i y j tales que i, j ∈ {1, . . . , m}. En ambos casos diremos que θ es un uni-
ficador, del conjunto {t1 , . . . , tn } en el caso de términos, o del conjunto {P (t11 , . . . , t1n ), . . . , P (tm m
1 , . . . , tn )}
en el caso de unificación de átomos.
122 CAPÍTULO 5. MÉTODO DE RESOLUCIÓN

Ejemplo 5.8
1. Los átomos P (f (x), a) y P (y, f (w)) no son unificables ya que y y f (x) son unificables pero a y
f (w) no lo son.
2. Los átomos P (f (x), z) y P (y, a) son unificables y θ = {x/a, y/f (a), z/a} es un unificador. En efecto
θ(P (f (x), z)) = θ(P (y, a)) = P (f (a), a)

Definición 5.6 Dado un conjunto de términos {t1 , . . . , tn }, diremos que un unificador θ de {t1 , . . . , tn }
es de máxima generalidad (denotado umg) si para cualquier otro unificador σ de {t1 , . . . , tn } se tiene
que σ = λ ◦ θ para alguna sustitución λ.
Intuitivamente, un unificador de máxima generalidad realiza el menor número de sustituciones y las más
generales posibles, es decir, mantiene el mayor número posible de variables.
Ejemplo 5.9 Las sustituciones
θ1 = {x/a, z/f (a, a), y/u, v/b} y θ2 = {v/b, y/u, z/f (a, x)}
son unificadores del conjunto de términos {h(f (a, x), f (y, b)), h(z, f (u, v))}.
En efecto,
θ1 (h(f (a, x), f (y, b))) = θ1 (h(z, f (u, v))) = h(f (a, a), f (u, b)) y
θ2 (h(f (a, x), f (y, b))) = θ2 (h(z, f (u, v))) = h(f (a, x), f (u, b)).
además, θ2 es más general que θ1 en el sentido de que θ1 = {x/a} ◦ θ2
No existe un único unificador de máxima generalidad para dos términos dados t y s; sin embargo, dos
umgs para t y s son tales que uno de ellos se obtiene a partir del otro mediante la composición con una
sustitución de renombramiento:
Teorema 5.3 Si θ1 y θ2 son umgs para un conjunto de términos T entonces, existen dos sustituciones
de renombramiento λ1 y λ2 tales que λ1 ◦ θ1 = θ2 y λ2 ◦ θ2 = θ1 .

Demostración: Por definición de umg, existen dos sustituciones λ1 y λ2 tales que λ1 ◦ θ1 = θ2 y


λ2 ◦ θ2 = θ1 de donde, en particular, tenemos θ1 = λ2 ◦ λ1 ◦ θ1 .
Supongamos que λ1 realiza alguna sustitución xi /ti donde ti no es una variable. En este caso, para algún
t ∈ T , la longitud del término λ1 ◦ θ1 (t) será estrictamente mayor que la de θ1 (t) y, puesto que ninguna
sustitución disminuye la longitud del término a la que es aplicada, no podrı́amos tener que θ1 = λ2 ◦λ1 ◦θ1 .
Por lo tanto, λ1 es una sustitución de renombramiento. El razonamiento para λ2 es el mismo.
En la próxima sección se presenta el algoritmo de unificación de Robinson que, dado un conjunto de
átomos, determina si es o no unificable y, si lo es, proporciona un umg para tal conjunto. Damos además
una versión más del algoritmo para un conjunto de ecuaciones de términos

5.2.1. El Algoritmo de Unificación


Antes de presentar el algoritmo necesitamos algunas definiciones previas.
Definición 5.7 El conjunto de discrepancias de un conjunto no vacı́o de términos T , denotado
Dis(T ), (o de un conjunto no vacı́o A de átomos con el mismo predicado, denotado Dis(A)) se obtiene
localizando la posición del primer sı́mbolo (de izquierda a derecha) en el cual no todos los términos
(átomos) coinciden, y extrayendo de cada término de T (de cada átomo de A) el subtérmino que comienza
en esa posición. El conjunto de estos subtérminos es el conjunto de discrepancias de T (de A).
Ejemplo 5.10
Dis({P (f (x), h(y), a), P (f (x), z, a), P (f (x), h(y), b)}) = {h(y), z}.
Dis(P (x, f (y, z)), P (x, g(h(k(x)))) = {f (y, z), g(h(k(x)))}
5.2. UNIFICACIÓN 123

5.2.1.1. Algoritmo de unificación


Paso 1 Sea k = 0, Tk = σk T y σk = ǫ.
Paso 2 Si Tk es unitario, detener el algoritmo con la salida: “σk es el unificador más general para T ”.
En otro caso, hallar el conjunto de discrepancias, Disk , de Tk .
Paso 3 Si existen términos xk y tk en Disk tales que xk es una variable que no ocurre en tk , ir al paso
4. En otro caso, detener el algoritmo con la salida: T no es unificable.
Paso 4 Sea σk+1 = (xk /tk ) ◦ σk y sea Tk+1 = (xk /tk )Tk .
Paso 5 Hacer k = k + 1 y volver al paso 2.

Este algoritmo siempre termina para cualquier conjunto finito no vacı́o de términos (de átomos), pues
en caso contrario se generarı́a una secuencia infinita σ0 T, σ1 T, . . . de conjuntos finitos y no vacı́os con la
propiedad de que cada uno de ellos tiene una variable menos que el anterior (es decir, σk T contiene xk
pero σk+1 T no), lo cual es imposible porque T (respectivamente A) sólo puede contener un número finito
de variables.
ee
rr
El algoritmo anterior es no determinista ya que en el paso (3) pueden existir varias elecciones
de xk y tk . Tiene un paso sumamente ineficiente, la verificación sistemática de la no ocurrencia
de una variable en un término (en la bibliografı́a inglesa: occurs check ).
En las implementaciones del algoritmo para sistemas de programación lógica, esta com-
probación simplemente se omite, aun a riesgo de perder la corrección del algoritmo y, en
consecuencia, con la posibilidad de obtener un resultado erróneo.

Teorema 5.4 (de unificación) Si T es un conjunto no vacı́o y unificable de términos, entonces el


algoritmo de unificación siempre termina en el paso 2 y σk es un umg para T . además, σk es tal que,
para cualquier otro unificador θ de T se tiene que θ = θ ◦ σk y por lo tanto, el algoritmo nos proporciona
un umg idempotente.

Demostración: Si T es unificable, y el algoritmo termina con la salida: “σk es el unificador más general
para T ”, es evidente que σk es un unificador; nos falta probar que σk es un umg, es decir, que para
cualquier otro unificador θ existe una sustitución λ tal que θ = λ ◦ σk .
Sea θ un unificador para T . Demostremos por inducción que para cada k natural θ = θ ◦ σk :

- Para k = 0 se tiene que σ0 = ǫ. Por lo tanto, tenemos θ = θ ◦ ǫ.


- Supongamos ahora que θ = θ ◦ σk y consideremos la sustitución {xk /tk }. Bastará probar que
θ ◦ {xk /tk } = θ. Para ello es suficiente que coincidan en todo sı́mbolo de variable:
Si x 6= xk , entonces es claro que {xk /tk }x = x y por lo tanto θ ◦ {xk /tk }(x) = θ(x)
Para x = xk , se tiene {xk /tk }x = tk y por lo tanto θ ◦ {xk /tk }(xk ) = θ(tk ). Ahora bien,
puesto que θ es un unificador de T y xk y tk están en Disk (Tk ), ha de ser θ(xk ) = tk y por
lo tanto, θ(tk ) = θ(xk ) y también en este caso θ ◦ {xk /tk }(xk ) = θ(xk ).

Ejemplo 5.11 Para los átomos P (a, x, f (g(y))) y P (z, f (z), f (u)) la ejecución es como sigue:
k = 0; σ0 = ǫ; D0 = Dis(P (a, x, f (g(y))), P (z, f (z), f (u))) = {a, z}
σ1 = {z/a}.

σ1 (P (a, x, f (g(y)))) = P (a, x, f (g(y)))


σ1 (P (z, f (z), f (u))) = P (a, f (a), f (u))
124 CAPÍTULO 5. MÉTODO DE RESOLUCIÓN

D1 = Dis(P (a, x, f (g(y))), P (a, f (a), f (u))) = {x, f (a)}


σ2 = {x/f (a)} ◦ {z/a} = {z/a, x/f (a)}.

σ2 (P (a, x, f (g(y)))) = P (a, f (a), f (g(y)))


σ2 P (a, f (a), f (u))) = P (a, f (a), f (u))

D2 = Dis(P (a, f (a), f (g(y))), P (a, f (a), f (u))) = {g(y), u}


σ3 = {u/g(y)} ◦ {z/a, x/f (a)} = {z/a, x/f (a), u/g(y)}.

σ3 (P (a, x, f (g(y)))) = P (a, f (a), f (g(y)))


σ3 (P (a, f (a), f (u))) = P (a, f (a), f (g(y)))

D3 = Dis(P (a, f (a), f (g(y))), P (a, f (a), f (g(y)))) = ∅

“σ3 es un umg”

Ejemplo 5.12 Para los átomos Q(f (a), g(x)) y Q(y, y) la ejecución es como sigue:
k = 0; σ0 = ǫ; D0 = Dis(Q(f (a), g(x)), Q(y, y)) = {f (a), y}
σ1 = {y/f (a)}.

σ1 (Q(f (a), g(x))) = Q(f (a), g(x))


σ1 (Q(y, y)) = Q(f (a), f (a))

D1 = Dis(Q(f (a), g(x)), Q(f (a), f (a))) = {g(x), f (a)}

“No son unificables”

Ejemplo 5.13 Para los átomos P (a, x, h(g(z))) y P (z, h(y), h(y)) la ejecución es como sigue:
k = 0; σ0 = ǫ; D0 = Dis(P (a, x, h(g(z))), P (z, h(y), h(y))) = {a, z}
σ1 = {z/a}.

σ1 (P (a, x, h(g(z)))) = P (a, x, h(g(a)))


σ1 (P (z, h(y), h(y))) = P (z, h(y), h(y))

D1 = {x, h(y)}
σ2 = {x/h(y)} ◦ {z/a} = {z/a, x/h(y)}.

σ2 (P (a, x, h(g(a)))) = P (a, h(y), h(g(a)))


σ2 (P (z, h(y), h(y))) = P (a, h(y), h(y))

D2 = {g(a), y}
σ3 = {y/g(a)} ◦ {z/a, x/h(y)} = {z/a, x/h(g(a)), y/g(a)}.

σ3 (P (a, h(y), h(g(a)))) = P (a, h(g(a)), h(g(a)))


σ3 (P (a, h(y), h(y))) = P (a, h(g(a)), h(g(a)))

D3 = ∅
5.2. UNIFICACIÓN 125

“σ3 es un umg”

El concepto de unificación puede verse como el análogo a la resolución de ecuaciones en una teorı́a
algebraica, algo tan antiguo como la misma Matemática; en definitiva, la teorı́a de la unificación no
es más que la extensión de este estudio a un contexto más abstracto. Por esta razón, incluimos en esta
sección una segunda versión del algoritmo de unificación que, dado un conjunto de ecuaciones de términos,
determina si es o no unificable y, si lo es, proporciona un umg para tal conjunto.

5.2.2. El Algoritmo de Unificación (versión 2)


Antes de presentar esta segunda versión del algoritmo necesitamos algunas definiciones previas que nos
facilitarán su enunciado.
Definición 5.8 Una ecuación es una expresión de la forma s = t donde tanto s como t son términos.
Un conjunto de ecuaciones de la forma {x1 = t1 , . . . , xn = tn } donde las xi son variables distintas que
no aparecen en ninguno de los términos ti se dice que está en forma resuelta.
Por abuso de lenguaje se suele hablar de ecuaciones entre átomos con el mismo sı́mbolo de predicado,
cuando realmente de lo que se está hablando es del conjunto de ecuaciones entre términos que determina
la igualdad entre ambos átomos.
Supongamos que una ecuación entre átomos determina un conjunto E de ecuaciones entre términos,
entonces cada conjunto de ecuaciones en forma resuelta equivalente a E (en el sentido de tener los
mismos conjuntos de unificadores) determina un unificador del par de átomos.
El algoritmo de unificación que se presenta a continuación halla, dado un conjunto unificable de ecuacio-
nes, otro conjunto en forma resuelta equivalente al dado (en el sentido de que tienen los mismos conjuntos
de unificadores). Si el conjunto dado resulta no ser unificable, el algoritmo se detiene con un error. El
algoritmo presentado a continuación es correcto y completo, y está basado en el algoritmo original de
Herbrand:

5.2.2.1. Algoritmo de unificación


Dado un conjunto de ecuaciones E, se elige una ecuación de E a la cual le sea aplicable alguno de los
siguientes pasos:
1. Si la ecuación es de la forma f (t1 , . . . , tn ) = f (s1 , . . . , sn ) entonces se reemplaza esta ecuación por
las ecuaciones
t1 = s 1 , . . . , t n = s n

2. Si la ecuación es de la forma f (t1 , . . . , tn ) = g(s1 , . . . , sm ) con f 6= g entonces el algoritmo termina


con un error de conflicto de nombres.
3. Si la ecuación es de la forma x = x, entonces se elimina.
4. Si la ecuación es de la forma t = x donde x es una variable y t no lo es, entonces se reemplaza por
x = t.
5. Si la ecuación es de la forma x = t con x distinto de t y además x aparece en alguna otra ecuación
del conjunto entonces:

- Si x ∈ V(t) se termina con error de existencia de ciclos.


- En otro caso se reemplaza x por t en todas las demás ecuaciones.

El algoritmo termina cuando se llega a un error o no se puede aplicar ningún paso a ninguna ecuación.
126 CAPÍTULO 5. MÉTODO DE RESOLUCIÓN

ee
rr
El algoritmo anterior es, obviamente, no determinista y como la versión primera, tiene un
paso sumamente ineficiente, la verificación sistemática de la no ocurrencia de una variable
en un término.

Teorema 5.5 El algoritmo de unificación aplicado a un conjunto de ecuaciones proporciona en un núme-


ro finito de pasos un conjunto equivalente en forma resuelta si y sólo si el conjunto de entrada es resoluble.
En caso contrario terminará con error.

Demostración:
Terminación Cualquier aplicación de los pasos 1. ó 3. disminuye estrictamente el número de ocurrencias
de variables y funciones que aparecen en las ecuaciones. El paso 4. sólo se puede aplicar un número
finito de veces antes de aplicar otro paso, y su aplicación no incrementa este número total. Después
de un número finito de aplicaciones de los pasos 1., 3. y 4. o el algoritmo termina o existe una
aplicación del paso 5.
La aplicación del paso 5. puede terminar o bien detectando un error y terminando la ejecución
o bien eliminando todas las ocurrencias de una variable en el miembro de la derecha de todas
las ecuaciones. En consecuencia, para cada variable el paso 5. sólo puede ser ejecutado una vez;
puesto que sólo hay un número finito de variables en el conjunto de ecuaciones, este paso sólo se
ejecutará un número finito de veces.
Según lo anterior, puesto que cada paso se ejecuta a lo sumo una cantidad finita de veces, el
algoritmo termina para todo conjunto de ecuaciones de entrada.
Corrección Supongamos que el algoritmo no ha terminado con error y que nos ha devuelto un conjunto
de ecuaciones E ′ , veamos que E es resoluble y que E ′ es un conjunto de ecuaciones en forma
resuelta equivalente a E.
Es fácil convencerse de que cada paso del algoritmo conserva las soluciones del conjunto de ecuacio-
nes. Esto se debe a que estamos tratando con la igualdad sintáctica (por ejemplo, f (u) = f (v) tiene
las mismas soluciones que u = v) y con la igualdad matemática (por eso si x = t podemos reem-
plazar x por t en el resto de las ecuaciones sin afectar el conjunto de soluciones). En consecuencia,
el conjunto de salida es equivalente al conjunto de entrada.
Los miembros de la derecha de las ecuaciones de E ′ son variables, ya que en otro caso se podrı́a
aplicar el paso 1., 2. ó 4. Todas estas variables son diferentes y no aparecen a la derecha de las
ecuaciones, ya que en tal caso se podrı́a aplicar el paso 5. Por lo tanto E ′ está en forma resuelta;
puesto que E es equivalente a E ′ entonces E es resoluble.
Supongamos ahora que el algoritmo termina con error, veamos que E no es resoluble.
Por el razonamiento anterior tenemos que el conjunto de ecuaciones que tenemos en la detección
del error es equivalente a E.
Si el error ocurrió en el paso 2, el conjunto E no es resoluble puesto que ninguna sustitución
de las variables va a conseguir unificar los sı́mbolos de función externos.
Si el error ocurrió en el paso 5, el conjunto E no es resoluble porque x = t no es resoluble.
Esto se debe a que la aplicación de cualquier sustitución básica a x produce en el miembro de
la derecha un término estrictamente mayor que en el de la izquierda, por lo que la identidad
sintáctica no es posible.

En todo lo que sigue sólo consideraremos conjuntos finitos de cláusulas de L1 , es decir, formas clausales.
Supondremos también que las cláusulas no contienen literales repetidos. Para este fin, cuando aparezca
una cláusula con literales repetidos, para cada uno de ellos se eliminan todas sus ocurrencias salvo la
ocurrencia situada más a la izquierda.
5.3. RESOLUCIÓN DE ÁTOMOS NO BÁSICOS 127

5.3. Resolución de Átomos no básicos


Una vez conocido el algoritmo de unificación, podemos considerar la extensión del principio de resolución
para la lógica de primer orden. En la definición del principio de resolución para fbfs de L1 , usaremos el
unificador más general proporcionado por el algoritmo de unificación.
Definición 5.9 Sean C1 y C2 dos cláusulas sin variables en común, y sean A ∈ C1 y B ∈ C2 tales
que A unifica con ¬B con umg σ. En tal caso se dice que C1 y C2 es un par resoluble y se define la
resolvente binaria de C1 y C2 respecto a A mediante σ a la cláusula C definida como sigue

C = (σC1 − {σA}) ∪ (σC2 − {σB})

Del mismo modo que en el caso básico, las cláusulas C1 y C2 se denominan cláusulas paternas de C.
Es preciso destacar que en la definición de resolvente, es posible varios literales a la vez. Esta caracterı́stica
del método para la lógica de primer orden se conoce con el nombre de factorización. Consideremos, por
ejemplo, el conjunto de cláusulas Ω = {P (x) ∨ P (y), ¬P (x) ∨ ¬P (y)}. Este conjunto es insatisfacible. En
efecto,

(∀x)(∀y)[(P (x) ∨ P (y)) ∧ (¬P (x) ∨ ¬P (y))] ≡


(∀x)(∀y)(P (x) ∨ P (y)) ∧ (∀x)(∀y)(¬P (x) ∨ ¬P (y)) ≡
((∀x)P (x) ∨ (∀y)P (y)) ∧ ((∀x)¬P (x) ∨ (∀y)¬P (y)) ≡ ⊥

Sin embargo, ninguna demostración por resolución que elimina únicamente un literal cada vez puede
producir 2. Este hecho motiva la definición siguiente.
Definición 5.10 Si dos o más literales (con el mismo signo) de una cláusula C son unificables con umg
σ entonces σC se dice que es un factor de C.

Definición 5.11 Una resolvente para las cláusulas C1 y C2 es una de las siguientes resolventes binarias:
1. Una resolvente binaria de C1 y C2 .
2. Una resolvente binaria de C1 y un factor de C2 .
3. Una resolvente binaria de un factor de C1 y C2 .
4. Una resolvente binaria de un factor de C1 y un factor de C2 .

Ejemplo 5.14 Podemos resolver las cláusulas


C1 = Q(x) ∨ ¬R(x) ∨ P (x, y) ∨ P (f (z), f (z)) y
C2 = ¬S(u) ∨ ¬R(w) ∨ ¬P (f (a), f (a)) ∨ ¬P (f (w), f (w))
considerando como umg para el conjunto de átomos

{P (x, y), P (f (z), f (z)), P (f (a), f (a)), P (f (w), f (w))}

es θ = {x/f (a), y/f (a), z/a, w/a}. Hallamos la resolvente mediante θ y obtenemos la cláusula

Q(f (a)) ∨ ¬R(f (a)) ∨ ¬S(u) ∨ ¬R(a)

Definición 5.12 Dados un conjunto Ω de cláusulas y una cláusula C de L1 , se dice que C es deducible
por resolución a partir de Ω, denotado Ω ⊢R C, si existe una secuencia de cláusulas C1 , C2 , · · · , Cn tal
que
128 CAPÍTULO 5. MÉTODO DE RESOLUCIÓN

1. Cada Ci (1 ≤ i ≤ n) es o bien una cláusula de Ω o bien una resolvente de dos cláusulas anteriores
en la secuencia.
2. Cn = C.
La secuencia Ci (1 ≤ i ≤ n) se dice que es una deducción por resolución de C a partir de Ω.
Una deducción por resolución de 2 a partir de Ω se dice una refutación por resolución de Ω.
Veamos que la exigencia de que C1 y C2 no tengan variables en común es necesaria. Consideremos,
por ejemplo, el conjunto de cláusulas {P (f (x)), ¬P (x)}. Puesto que este conjunto representa a la fbf
(∀x)P (f (x)) ∧ (∀x)¬P (x), se trata de un conjunto de cláusulas insatisfacible; sin embargo, P (f (x)) y
P (x) no son unificables, porque no podemos hacer la sustitución x/f (x); esto se resuelve renombrando
las variables para obtener (∀x)P (f (x)) ∧ (∀y)¬P (y), es decir, el conjunto de cláusulas {P (f (x)), ¬P (y)},
cuyo umg es {y/f (x)}. Veamos otro ejemplo.

Ejemplo 5.15 Una refutación para el conjunto de cláusulas

Ω = {P (x, a, y), ¬P (f (u), v, w) ∨ Q(v, g(a, x)), ¬Q(z, g(a, f (t)))}

es la siguiente secuencia
1. P (x, a, y) de Ω.
2. ¬P (f (u), y, w) ∨ Q(v, g(a, x)) de Ω.
3. ¬Q(z, g(a, f (t))) de Ω.
4. Q(v, g(a, f (u))) de 1. y 2. (con umg σ = {x/f (u), y/a, w/a})
5. 2 de 3. y 4. (con umg σ = {z/v, t/u})

En el ejemplo anterior no ha sido preciso renombrar variables. Sin embargo, como nos muestra el siguiente
ejemplo, puede suceder que este renombramiento sea necesario.
Ejemplo 5.16 Consideremos el conjunto de cláusulas

Ω = {P (x, a, y), ¬P (f (x), v, w) ∨ Q(v, g(a, x)), ¬Q(z, g(a, f (t)))}

En este caso, P (x, a, y) y ¬P (f (x), v, w) ∨ Q(v, g(a, x)) no son unificables ya que x ocurre en f (x).
Evitaremos esta situación renombrando x en la segunda cláusula, por ejemplo por u. De esta forma,
obtenemos el conjunto de cláusulas del ejemplo 5.15 para el que, como hemos visto, no existe ningún
problema.
Nuestro propósito es demostrar ahora que el principio de resolución con unificación es completo; esto es,
que un conjunto de cláusulas S es insatisfacible si y sólo si la cláusula vacı́a es deducible usando la regla
de resolución. Para ello necesitaremos el siguiente lema, que permitirá tomar como punto de partida una
refutación por resolución básica y contemplar su extensión a una resolución general.

Lema 5.1 (de extensión) Si C1′ y C2′ son instancias de C1 y C2 respectivamente, y si C ′ es una
resolvente de C1′ y C2′ entonces existe una resolvente C de C1 y C2 tal que C ′ es una instancia de C.

Demostración: Renombremos, si es necesario, las variables de modo que C1 y C2 tengan variables


distintas. Sean L′1 y L′2 los literales sobre los que se resuelve C1′ y C2′ , y sea

C ′ = (γC1′ − γL′1 ) ∪ (γC2′ − γL′2 )

donde γ es un umg de L1 y L2 . Puesto que las cláusulas Ci′ son instancias de las cláusulas Ci , existe
una sustitución θ tal que Ci′ = θCi . Sean Li 1 , . . . , Li ri los literales de Ci que corresponden a Li , es decir,
5.3. RESOLUCIÓN DE ÁTOMOS NO BÁSICOS 129

aquellos que θLi 1 = · · · = θLi ri = L′i . Si ri > 1 obtengamos un umg λi para el conjunto {Li 1 , . . . , Li ri }
y sea Li = λi Li 1 . En tal caso Li es un literal del factor λi Ci de Ci . Si ri = 1 sea entonces λi = id y
Li = Li 1 . Sea λ = λ1 ∪ λ2 . Con esta definición de Li tenemos que L′i es una instancia de Li ; puesto que
L′1 y L′2 son unificables también tenemos que L1 y L2 son unificables. Sea σ un umg de L1 y L2 :

C = (σ(λC1 ) − σL1 ) ∪ (σ(λC2 ) − σL2 )


= (σ(λC1 ) − σ(λ{L1 1 , . . . , L1 r1 })) ∪ (σ(λC2 ) − σ(λ{L2 1 , . . . , L2 r2 }))
= ((σ ◦ λ)C1 − (σ ◦ λ){L1 1 , . . . , L1 r1 }) ∪ ((σ ◦ λ)C2 − (σ ◦ λ){L2 1 , . . . , L2 r2 })

C es una resolvente de C1 y C2 ; además, es claro que C ′ es una instancia de C, puesto que

C′ = (γC1′ ) − γL′1 ) ∪ (γC2′ ) − γL′2 )


= (γ(θC1 ) − γ(θ{L1 1 , . . . , L1 r1 })) ∪ (γ(θC2 ) − γ(θ{L2 1 , . . . , L2 r2 }))
= ((γ ◦ θ)C1 − (γ ◦ θ){L1 1 , . . . , L1 r1 }) ∪ ((γ ◦ θ)C2 − (γ ◦ θ){L2 1 , . . . , L2 r2 })

y σ ◦ λ es más general que γ ◦ θ.

Teorema 5.6 (Completitud del principio de resolución) Un conjunto de cláusulas S es insatisfa-


cible si y sólo si la cláusula vacı́a 2 es deducible por resolución a partir del conjunto S.

Demostración: Supongamos que S es insatisfacible. Sea A = {A1 , A2 , . . . , } el conjunto de átomos


(básicos) de S. Sea T un árbol semántico completo para A. Por el teorema de Herbrand, T tiene un árbol
semántico cerrado y finito T ′ .
Si T ′ sólo consta del nodo raı́z entonces 2 debe estar en S, pues ninguna otra cláusula se puede hacer
falsa en la raı́z de un árbol semántico. En este caso, el teorema es obviamente cierto.
Si T ′ tiene más de un nodo entonces debe tener al menos un nodo inferencia: si esto no ocurre entonces
todo nodo tendrı́a al menos un descendente que no es nodo fallo y tendrı́a mos una rama infinita en T ′ , lo
que no puede ser puesto que T ′ es finito. Sea N un nodo inferencia en T ′ y sean N1 y N2 sus descendientes
(que son nodos fallo), sea también

I(N ) = {m1 , m2 , . . . , mn }
I(N1 ) = {m1 , m2 , . . . , mn , mn+1 }
I(N2 ) = {m1 , m2 , . . . , mn , ¬mn+1 }

Puesto que N1 y N2 son nodos fallo pero N no lo es, deben existir dos instancias básicas C1′ y C2′ de
las cláusulas C1 y C2 tales que C1′ y C2′ son falsas en I(N1 ) e I(N2 ) respectivamente, pero no en I(N ).
Por lo tanto, C1′ debe contener a ¬mn+1 y C2′ debe contener a mn+1 . Sea L′1 = ¬mn+1 y L′2 = mn+1 ;
resolviendo respecto de los literales L′1 y L′2 obtenemos la resolvente

C ′ = (C1′ − L′1 ) ∪ (C2′ − L′2 )

Ahora C ′ debe ser falsa en I(N ) puesto que tanto (C1′ − L′1 ) como (C2′ − L′2 ) son falsas en I(N ). Por el
lema de extensión, existe una resolvente C de C1 y C2 tal que C ′ es una instancia básica de C. Sea T ′′
el árbol semántico cerrado para (S ∪ {C}), obtenido de T ′ eliminando toda la parte que existe bajo el
primer nodo en el que la resolvente C ′ es falsificada. Claramente, el número de nodos de T ′′ es menor
que el de T ′ . Aplicando este mismo proceso a T ′′ podemos obtener otra resolvente de las cláusulas de
(S ∪ {C}) que, añadida a (S ∪ {C}) nos permite encontrar un árbol todavı́a más pequeño. Este proceso se
aplica tantas veces como sea necesario hasta obtener un árbol que sólo tenga el nodo raı́z. Esto es posible
sólo cuando 2 es deducible, por lo tanto existe una deducción de 2 a partir de S.
Para la demostración del recı́proco supongamos que existe una deducción de 2 a partir de S. Sean
R1 , R2 , . . . , Rk las resolventes de tal deducción. Supongamos que S es satisfacible, entonces existe un
130 CAPÍTULO 5. MÉTODO DE RESOLUCIÓN

modelo M de S. Sin embargo, si un modelo satisface las cláusulas resolubles C1 y C2 también satisface
a su resolvente; por lo tanto M satisface a R1 , R2 , . . . , Rk , lo cual es imposible puesto que una de estas
cláusulas es 2. Por lo tanto S es insatisfacible.

Ejemplo 5.17 Apliquemos el método al conjunto de cláusulas

Ω = {P (x) ∨ Q(x) ∨ R(x, f (x)), ¬P (z) ∨ Q(z) ∨ S(f (z)), T (a), P (a),
¬R(a, y) ∨ T (y), ¬T (u) ∨ ¬Q(u), ¬T (w) ∨ ¬S(w)}

1. P (x) ∨ Q(x) ∨ R(x, f (x)) de Ω.


2. ¬P (z) ∨ Q(z) ∨ S(f (z)) de Ω.
3. T (a) de Ω.
4. P (a) de Ω.
5. ¬R(a, y) ∨ T (y) de Ω.
6. ¬T (u) ∨ ¬Q(u) de Ω.
7. ¬T (w) ∨ ¬S(w) de Ω.
8. ¬Q(a) de 3 y 6 (con umg σ = {u/a}).
9. Q(a) ∨ S(f (a)) de 2 y 4 (con umg σ = {z/a}).
10. S(f (a)) de 8 y 9.
11. Q(a) ∨ R(a, f (a)) de 1 y 4 (con umg σ = {x/a}).
12. R(a, f (a)) de 8 y 11.
13. T (f (a)) de 5 y 12 (con umg σ = {y/f (a)}.
14. ¬S(f (a)) de 7 y 13 (con umg σ = {w/f (a)}
15. 2 10 y 14.

Ejemplo 5.18 Consideremos el razonamiento



(∀x) C(x) → (W (x) ∧ R(x))
(∃x)(C(x) ∧ Q(x))
(∃x)(Q(x) ∧ R(x))

Una forma clausal para Ω es:

Ω = {¬C(x) ∨ W (x), ¬C(y) ∨ R(y), ¬Q(z) ∨ ¬R(z), C(a), Q(a)}

y una refutación para Ω es la siguiente secuencia


1. ¬C(x) ∨ W (x) de Ω.
2. ¬C(y) ∨ R(y) de Ω.
3. ¬Q(z) ∨ ¬R(z) de Ω.
4. C(a) de Ω.
5. Q(a) de Ω.
6. R(a) de 2. y 4. (con umg σ = {y/a}).
7. ¬Q(a) de 3. y 6. (con umg σ = {z/a}).
5.3. RESOLUCIÓN DE ÁTOMOS NO BÁSICOS 131

8. 2 de 5. y 7.

En los ejemplos anteriores la búsqueda de una refutación se ha realizado de modo arbitrario, sin embargo,
es obvio es necesario una sistematización para esta búsqueda. El modo más simple (conceptualmente
hablando) de sistematizar la búsqueda de una refutación o bien la de asegurar que no existe, se basa en la
generación sucesiva de todas las posibles resolventes a partir del conjunto Ω de partida. más precisamente:
Dado un conjunto de cláusulas Ω, denotamos por R(Ω) la unión de Ω y el conjunto de todas las resolventes
de cláusulas de Ω (resolventes obtenidas utilizando sólo cláusulas de Ω). Para todo n ∈ N, definimos Rn (Ω)
como sigue:

R0 (Ω) = Ω
Rn+1 (Ω) = R(Rn (Ω))

Por definición, es claro que Rn (Ω) ⊆ Rn+1 (Ω).


El método propuesto construye sucesivamente R1 (Ω), R2 (Ω) . . . Si existe un k ∈ N tal que 2 ∈ Rk (Ω)
entonces, Ω es insatisfacible. En caso contrario, Ω es satisfacible.
Este algoritmo, denominado resolución por saturación es, obviamente, completo en el sentido de que
siempre que el conjunto de cláusulas sea insatisfacible se va a generar la cláusula vacı́a. Su nombre se
debe a que, para todo n se va generando todas las posibles resolventes del conjunto Rn (Ω), es decir, el
conjunto Rn (Ω) se “satura por resolución”.
Es evidente que el proceso de saturación va a generar multitud de cláusulas innecesarias para la obtención
de la cláusula vacı́a, por lo que el proceso se puede y se debe depurar.
El siguiente ejemplo muestra una aplicación del método de saturación con una primera estrategia de
depuración.

Ejemplo 5.19 Comprobamos que el conjunto de cláusulas Ω = {P ∨ Q, P ∨ R, ¬Q ∨ ¬R, ¬P } (donde


P , Q y R son átomos de L1 ) es insatisfacible, usando el método de resolución por saturación:

1. P ∨ Q
2. P ∨ R
3. ¬Q ∨ ¬R
4. ¬P

5. P ∨ ¬R (por 1 y 3)
6. Q (por 1 y 4)
7. P ∨ ¬Q (por 2 y 3)
8. R (por 2 y 4)
R(Ω) = Ω ∪ {P ∨ ¬R, Q, P ∨ ¬Q, R}

9. P (por 1 y 7)
10.
— P (por 2 y 5)
10. ¬R (por 3 y 6)
11. ¬Q (por 3 y 8)
— ¬R
12. (por 4 y 5)
— ¬Q
12. (por 4 y 7)
12.
— P (por 5 y 8)
132 CAPÍTULO 5. MÉTODO DE RESOLUCIÓN

12.
— P (por 6 y 7)
2
R (Ω) = R(Ω) ∪ {P, ¬R, ¬Q}

12.
— P (por 1 y 11)
12.
— P (por 2 y 10)
12. 2 (por 4 y 9)

Las lı́neas tachadas indican que las resolventes generadas se eliminan por estar ya en la secuencia.

Una primera estrategia consiste en la no inclusión de las resolventes que ya están en Si . Esto conlleva
un menor gasto en la generación de cada nivel pero, en cualquier caso, el tiempo gastado al calcular las
resolventes que después se van a eliminar no es recuperable.
Como en el caso proposicional, existen otros refinamientos mucho más depurados del método de resolución
que se presentan en la siguiente sección; todos ellos incluyen como simplificación la eliminación de aquellas
cláusulas generadas por resolución que o bien contienen un literal y su opuesto o contienen otra cláusula
ya generada.

5.3.1. Resolución Lineal


Presentamos a continuación el refinamiento conocido como resolución lineal propuesto independientemen-
te por Loveland y Luckham, y como caso particular, la mejora de este refinamiento, debida a Kowalski y
Kuenner, llamado resolución lineal ordenada.
El nombre de resolución lineal se debe a que las deducciones se construyen como un tipo de razonamiento
en cadena, es decir, para generar 2 se comienza con una cláusula, se resuelve ésta con otra cláusula y
la resolvente obtenida con otra cláusula y ası́ sucesivamente. Este razonamiento en cadena es similar al
que se realiza en matemáticas para demostrar una igualdad: comenzamos con el miembro de la izquierda
de la igualdad y se aplica alguna propiedad para obtener una expresión equivalente, esta transformación
se realiza repetidamente hasta que, finalmente, llegamos a la expresión del miembro de la derecha de la
igualdad.
Definición 5.13 Sea Ω un conjunto de cláusulas y C0 ∈ Ω. Una deducción lineal de una cláusula C a
partir de Ω con cabeza C0 , es una secuencia de cláusulas del tipo

C0 , B0 , C1 , B1 , . . . , Cn−1 , Bn−1 , Cn

tal que

1. C0 ∈ Ω.

2. Para todo i = 1, . . . , n − 1, Ci es una resolvente de Ci−1 y Bi−1 .

3. Para todo i = 1, 2, . . . , n, Bi ∈ Ω o Bi = Cj para algún j con j < i.

4. Cn = C.

El modo habitual de representar este tipo de deducciones es mediante un árbol binario, llamado árbol de
resolución lineal, de la forma
5.3. RESOLUCIÓN DE ÁTOMOS NO BÁSICOS 133

C0 B0

C1 B1

C2 Bn−2
..
.
Bn−1
Cn−1

Las cláusulas Ci se denominan cláusulas centrales y las Bi cláusulas laterales. Si C = 2, el árbol se


denomina un árbol de refutación lineal para Ω con cabeza C0 .

Ejemplo 5.20 Un árbol de refutación lineal para Ω = {P ∨ Q, ¬P ∨ Q, ¬Q ∨ ¬R, ¬Q ∨ R} (donde P , Q


y R son átomos de L1 ) con cabeza P ∨ Q es,

P ∨Q ¬P ∨ Q

Q ¬Q ∨ R

R ¬Q ∨ ¬R

¬Q Q

Las cláusulas laterales son ¬P ∨ Q, ¬Q ∨ R, ¬Q ∨ ¬R de Ω y Q. Ésta es, además, una cláusula central.

El método de resolución lineal es correcto y completo, es decir, un conjunto de cláusulas Ω es insatisfacible


si y sólo si existe una refutación lineal para Ω, para la demostración puede consultarse [?].
En la práctica etiquetamos los arcos no sólo con la cláusula lateral sino también explicitando el umg
utilizado para obtener la siguiente cláusula central.

5.3.2. Resolución Lineal Ordenada


Este tipo de resolución constituye una mejora de la resolución lineal. Dos son las ideas básicas en las que
se apoya este método:
Considera las cláusulas como secuencia de literales en lugar de como conjunto de literales, llamándo-
las cláusulas ordenadas.
134 CAPÍTULO 5. MÉTODO DE RESOLUCIÓN

La introducción de la ordenación de las literales aumenta, como veremos, la eficiencia de la resolu-


ción lineal de manera considerable.
Guarda la información del literal respecto del que se resuelve.
En resolución lineal, al resolver respecto de un literal, éste simplemente se elimina; cuando, en
realidad, la información que aporta el literal eliminado es sumamente útil.
En el proceso de construir resolventes, la resolución lineal ordenada introduce las siguientes consideracio-
nes:
1. sólo permite resolver dos cláusulas ordenadas C1 y C2 respecto al último literal de C1 .
2. guarda la información del literal resuelto, manteniéndolo encuadrado en la resolvente.
3. en toda resolvente, se elimina todo literal encuadrado que no va seguido de algún literal no encua-
drado.
ee
rr
Los literales encuadrados se mantienen en las fórmulas simplemente como etiquetas infor-
mativas acerca de las literales respecto de las que ya se ha resuelto, pero no participan en la
resolución.

Ejemplo 5.21 Presentamos tres ejemplos de resolución lineal ordenada de dos cláusulas dadas:
1. La resolvente de P ∨ ¬Q ∨ R y P ∨ ¬R ∨ T es P ∨ ¬Q ∨ R ∨ T .
2. La resolvente de P ∨ ¬Q ∨ R y P ∨ ¬R es P ∨ ¬Q, obtenida mediante las siguientes simplificaciones:

a) El resultado serı́a P ∨ ¬Q ∨ R ∨ P , pero al estar P repetida se mantiene sólo la ocurrencia


más a la izquierda.
b) Ahora tendrı́a mos P ∨ ¬Q ∨ R , donde se elimina el literal encuadrado por no tener ningún
literal sin encuadrar a su derecha.
3. La resolvente de P ∨ ¬Q ∨ R y Q ∨ ¬R es P ∨ ¬Q ∨ R ∨ Q.

Con relación a la resolución lineal, la resolución lineal ordenada no sólo reduce el número de resolventes por
considerar debido al hecho de resolver únicamente respecto del último literal, sino que además incorpora
una nueva estrategia de eficiencia considerando un determinado tipo de cláusulas respecto de las cuales
sólo se requiere resolver con cláusulas centrales.
Definición 5.14 Una cláusula ordenada se denomina cláusula ordenada reducible si su último literal
es el opuesto de algún literal enmarcado de dicha cláusula. Si C es una cláusula ordenada reducible, la
cláusula ordenada obtenida al eliminar el último literal de C se denomina cláusula reducida de C.
Si la cláusula Ci por resolver es reducible, se puede demostrar que sólo será necesario resolver con cláusulas
centrales y existe una cláusula central Cj tal que R(Ci , Cj ) es la reducida de Ci .
Disponemos ya de los elementos necesarios para definir la deducción en la resolución lineal ordenada.

Definición 5.15 Sea Ω un conjunto de cláusulas ordenadas y C0 ∈ Ω. Una deducción lineal ordenada
de una cláusula C a partir de Ω con cabeza C0 es una secuencia de cláusulas ordenadas

C0 , B0 , C1 , B1 , . . . , Cn−1 , Bn−1 , Cn

tal que
1. Para todo i = 0, 1, 2, . . . , n − 1, Bi ∈ Ω o Bi = Cj para algún j con j < i.
2. Para todo i = 2, . . . , n, si Ci−1 es reducible, entonces Ci es la reducida de Ci−1 y en caso contrario,
Ci es la resolvente ordenada de Ci−1 y Bi con Bi ∈ Ω.
5.3. RESOLUCIÓN DE ÁTOMOS NO BÁSICOS 135

3. Cn = C.

Como en el caso de la resolución lineal, la secuencia de cláusulas ordenadas

C0 , B0 , C1 , B1 , . . . , Cn−1 , Bn−1 , Cn

se representa
C0 B0

C1 B1

C2 . Bn−2
..
Cn−1 Bn−1

En el caso en que C = 2, este árbol se dice que es un árbol de refutación lineal ordenada para Ω.
Ejemplo 5.22 Un árbol de refutación lineal ordenada para

Ω = {P ∨ Q, ¬P ∨ Q, ¬Q ∨ ¬R, ¬Q ∨ R}

con cabeza P ∨ Q es el que mostramos a continuación:


P ∨Q ¬Q ∨ ¬R

P ∨ Q ∨ ¬R ¬Q ∨ R

P ∨ Q ∨ ¬R ∨ ¬Q (. . . P ∨ Q)

P ¬P ∨ Q

P ∨Q ¬Q ∨ R

P ∨ Q ∨R ¬Q ∨ ¬R

P ∨ Q ∨ R ∨ ¬Q (. . . P ∨ Q)

Los puntos suspensivos en el árbol de refutación indican que la correspondiente cláusula lateral no se
requiere, puesto que se ha aplicado una reducción (en la cláusula central aparece un literal encuadrado y
su opuesto sin encuadrar).

El método de resolución lineal ordenada es correcto y completo, es decir, un conjunto Ω de cláusulas


ordenadas es insatisfacible si y sólo si existe una refutación lineal ordenada para Ω.
136 CAPÍTULO 5. MÉTODO DE RESOLUCIÓN

5.3.2.1. Algoritmo de resolución lineal ordenada


Pasamos a describir un modo sistemático para encontrar una refutación lineal ordenada o bien asegurar
que no existe, es decir, a dar una descripción algorı́tmica del método:
Dado un conjunto Ω de cláusulas, se elige una cláusula cabeza C0 ∈ Ω. Elegida C0 , se toman de Ω
todas las cláusulas laterales resolubles con C0 . Sean R1 , . . . , Rk las correspondientes resolventes. Cada
Ri (1 ≤ i ≤ k) es una cláusula central de una deducción a partir de Ω con cabeza C0 . Si alguna Ri
es 2 entonces Ω es insatisfacible. En caso contrario, para cada i, buscamos todas las cláusulas laterales
resolubles con Ri y continuamos de este modo, etapa por etapa, hasta generar 2 o bien desarrollar todas
las posibles deducciones a partir de Ω con cabeza C0 . En este último caso, eliminamos C0 de Ω y repetimos
el proceso para Ω − {C0 }.
En cuanto a su representación gráfica, las deducciones lineales ordenadas no se suelen representar como
árboles sino como se indica a continuación:

C0 •
B0
C1 •
B1
C2 •
..
.
Cn−1 •
Bn−1
Cn •

y para cada proceso de cabeza C0 , se utiliza un árbol con raı́z etiquetada con la cláusula cabeza C0 . El
árbol se genera (primero en anchura o primero en profundidad) de forma que cada nivel de profundidad
representa una etapa. Las ramas del árbol ası́ generado son, por lo tanto, deducciones lineales ordenadas
de cabeza C0 .
Ejemplo 5.23 Dado el conjunto Ω formado por las siguientes cláusulas

¬R(x, y) ∨ ¬D(y) ∨ ¬H(f (x), y) ∨ S(x)


¬P (x) ∨ D(x)
R(x, g(y))
H(f (x), g(y))
¬S(g(a))
P (x) ∨ S(x)
P (x) ∨ D(y) ∨ H(b, x)

verificar su insatisfacibilidad usando resolución lineal ordenada.


Puesto que las cláusulas de Ω no son básicas, el primer paso que hay que dar consiste en el renombramiento
de todas las variables, para evitar posibles conflictos de nombres al utilizar el algoritmo de unificación.
ee
rr
Este renombramiento siempre es posible, puesto que el conjunto de cláusulas representa la
conjunción de todas ellas que, además están cuantificadas universalmente. Las equivalencias

(∀x)(A(x) ∧ B(x)) ≡ (∀x)A(x) ∧ (∀x)B(x) ≡ (∀x)A(x) ∧ (∀y)B(y)

justifican el renombramiento.
5.4. CLÁUSULAS DE HORN 137

Tras renombrar tenemos un conjunto Ω′ simultáneamente satisfacible con Ω con las siguientes cláusulas
¬R(x, y) ∨ ¬D(y) ∨ ¬H(f (x), y) ∨ S(x)
¬P (z) ∨ D(z)
R(u, g(v))
H(f (w), g(r))
¬S(g(a))
P (s) ∨ S(s)
P (t) ∨ D(q) ∨ H(b, t)
donde q, r, s, t, u, v, w, x, y, z son sı́mbolos de variables y a y b sı́mbolos de constantes.
En la Figura 5.1 aparece un árbol de refutación lineal ordenada para el conjunto Ω′ , donde en cada arco
del árbol aparece la cláusula lateral respecto de la que se resuelve y las sustituciones proporcionadas por
el unificador de mayor generalidad.

5.4. Cláusulas de Horn


El método de resolución aumenta considerablemente su eficiencia si se restringe el tipo de cláusulas a
las que se aplica. El tipo más destacado, por su papel jugado en la Programación Lógica, es el de las
cláusulas de Horn estudiadas por primera vez por Alfred Horn en 1951. En esta sección, estudiamos las
cláusulas de Horn y damos una breve visión de su uso en el lenguaje Prolog.
Definición 5.16 Una cláusula de Horn es una cláusula con a lo sumo un literal positivo.
Una cláusula de Horn se dice un hecho o cláusula unidad5 si consiste exactamente en un literal
positivo, es decir, si es de la forma P (t1 , . . . , tn ). En una forma clausal el hecho P (t1 , . . . , tn ) representa
a su cierre universal, es decir, a la fórmula (∀x1 ) . . . (∀xk )P (t1 , . . . , tn ).
Una cláusula de Horn se dice una regla si contiene un literal positivo y literales negativos. Si C es una
regla, Q el literal positivo y ¬P1 , . . . , ¬Pn los literales negativos que intervienen en C, entonces

C ≡ (P1 ∧ . . . ∧ Pn ) → Q

P1 ∧ . . . ∧ Pn se denomina cola de la cláusula y Q la cabeza de la cláusula. En una forma clausal la regla


(P1 ∧ . . . ∧ Pn ) → Q, representa a su cierre universal (∀x1 ) . . . (∀xk )((P1 ∧ . . . ∧ Pn ) → Q).
Ejemplo 5.24 Por ejemplo, la cláusula ¬P (x) ∨ ¬Q(y, a) ∨ R(x, y) es equivalente a la fbf (P (x) ∧
Q(y, a)) → R(x, y), esta fórmula modeliza la regla “si P (x) y Q(y, a) entonces R(x, y)”.
Definición 5.17 Una cláusula de Horn se dice definida o cláusula de programa si es un hecho o
una regla.
Una cláusula de Horn se dice un objetivo si todos los literales son negativos.
Puesto que la resolución es un sistema de demostración por refutación, la conjunción de objetivos indi-
viduales se añadirá a la conjunción de las hipótesis como una cláusula no definida, es decir, una cláusula
sin literales positivos. Por esta razón a las cláusulas no definidas se les denominan objetivos:
En una forma clausal, el objetivo ¬P1 ∨ . . . ∨ ¬Pn , representa a su cierre universal

(∀x1 ) . . . (∀xk )(¬P1 ∨ . . . ∨ ¬Pn )

y por tanto,

(∀x1 ) . . . (∀xk )(¬P1 ∨ . . . ∨ ¬Pn ) ≡ (∀x1 ) . . . (∀xk )¬(P1 ∧ . . . ∧ Pn )


≡ ¬(∃x1 ) . . . (∃xk )(P1 ∧ . . . ∧ Pn )
5
Unit clause en la bibliografı́a inglesa.
138 CAPÍTULO 5. MÉTODO DE RESOLUCIÓN

¬R(x, y) ∨ ¬D(y) ∨ ¬H(f (x), y) ∨ S(x)

¬S(g(a))
x/g(a)

¬R(g(a), y) ∨ ¬D(y) ∨ ¬H(f (g(a)), y)

H(f (w), g(r))


w/g(a), y/g(r)

¬R(g(a), g(r)) ∨ ¬D(g(r))


¬P (z) ∨ D(z) P (t) ∨ D(q) ∨ H(b, t)
z/g(r) q/g(r)

¬R(g(a), g(r)) ∨ ¬D(g(r)) ∨ ¬P (g(r))

P (s) ∨ S(s)
P (t) ∨ D(q) ∨ H(b, t)
s/g(r)
t /g(r)

¬R(g(a), g(r)) ∨ ¬D(g(r)) ∨ ¬P (g(r)) ∨ S(g(r))

¬S(g(a))
r/a

¬R(g(a), g(a))

R(u, g(r))
u/g(a), r/a

Figura 5.1:
5.4. CLÁUSULAS DE HORN 139

En definitiva, la fórmula que deseamos saber si se deduce o no de un conjunto de cláusulas definidas es


de la forma (∃x1 ) . . . (∃xk )(P1 ∧ . . . ∧ Pn ).
Si vamos a usar resolución sobre cláusulas de Horn, será conveniente observar que la resolvente de dos
cláusulas de Horn también es una cláusula de Horn. más formalmente, tenemos el siguiente lema.
Lema 5.2 Las cláusulas de Horn son cerradas por resolución.
Un programa lógico es una base de conocimiento o conjunto de cláusulas de programa, consideradas
como hipótesis. La regla de resolución se aplica a las hipótesis para deducir conclusiones. Ası́ pues, si
P = {H1 , . . . , Hn } es un programa, ante la pregunta
¿la conjunción de objetivos individuales O1 ∧ O2 , . . . ∧ On es consecuencia lógica de P?
el método de resolución procederá como sigue:
1. Considera el conjunto de cláusulas Ω = {H1 , . . . , Hn , ¬O1 ∨ ¬O2 ∨ . . . ∨ ¬On }
2. Elige la cláusula objetivo ¬O1 ∨ ¬O2 ∨ . . . ∨ ¬On como cláusula cabeza e inicia el proceso de
resolución lineal ordenada
3. Si se obtiene 2 la respuesta es afirmativa.
Puesto que las cláusulas objetivo son negativas, se traducen en una pregunta al programa que es una
conjunción de literales positivos, es decir, si {x1 , . . . , xm } es el conjunto de las variables que intervienen
en la cláusula objetivo ¬P1 (t11 , . . . t1n ) ∨ . . . ∨ ¬Pk (tk1 , . . . tkn ), entonces
(∀x1 ) . . . (∀xm )(¬P1 (t11 , . . . t1n ) ∨ . . . ∨ ¬Pk (tk1 , . . . tkn ))
se traduce en la pregunta
(∃x1 ) . . . (∃xm )P1 (t11 , . . . t1n ) ∧ . . . ∧ Pk (tk1 , . . . tkn ))
En definitiva, en caso afirmativo, obtendremos una sustitución que demuestra que la respuesta
(∃x1 ) . . . (∃xm )P1 (t11 , . . . t1n ) ∧ . . . ∧ Pk (tk1 , . . . tkn ))
es correcta.
El Teorema de Herbrand nos asegura que si P ∪ {¬C} es insatisfacible, existe una respuesta correcta
definida por una sustitución básica. Especı́ficamente, la respuesta definida a una pregunta existencial
(∃x)A(x) a una base de conocimiento o programa Ω, es un término básico t tal que Ω |= [x/t]A(x).
Como nos muestra el siguiente ejemplo, no siempre es posible deducir una respuesta definida en el sentido
de Prolog:
Ejemplo 5.25 Sea Ω = {P (a) ∨ P (b)} y la pregunta definida (∃x)P (x). Existen términos básicos t1 = a
y t2 = b tales que {P (a) ∨ P (b)} |= [x/t1 ]P (x) ∨ [x/t2 ]P (x), pero no existe ningún término básico t tal
que Ω |= [x/t]P (x).
En la práctica, para soslayar este problema, se suele considerar falsa la información que no puede ser
deducida de un programa. Este uso se conoce en programación lógica como6 negación como fallo o
hipótesis del mundo cerrado. Ésta no es la solución óptima, ya que identifica lo falso con lo no demostrable.
Sin embargo, el uso de esta técnica con cláusulas de Horn es la base del lenguaje Prolog. En definitiva,
podemos expresar este hecho como sigue:
Si P es un programa y A una pregunta tal que P 6⊢R A entonces, concluimos que P ⊢R ¬A
Si el objetivo es múltiple, es decir, si intentamos probar que P ⊢R P1 ∧ . . . ∧ Pn , la aplicación del método
de resolución lineal ordenada P ∪ {¬P1 ∨ . . . ∨ ¬Pn } se recoge en programación lógica como una función
de selección que selecciona sucesivamente los objetivos por considerar.7
6
Negation as failure y closed world assumption en la bibliografı́a inglesa.
7
La variante del algoritmo de resolución usada en Prolog se llama resolución SLD: “Selección Lineal de
programas Definidos”, debido al uso de una función de selección, de resolución lineal y de cláusulas definidas.
140 CAPÍTULO 5. MÉTODO DE RESOLUCIÓN

5.4.1. Programación lógica


Aunque con mejoras para aumentar la eficiencia, un intérprete de programación lógica es esencialmente
un demostrador de teoremas por resolución. La programación lógica es un formalismo computacional que
combina dos principios básicos:

1. El uso de la lógica para expresar conocimiento;

2. El uso de la inferencia lógica para procesar conocimiento.

En un contexto de resolución de problemas, el primer principio supone la representación de las hipótesis


y las conclusiones. El objetivo general en dicho contexto es inferir a partir de las hipótesis dadas la
conclusión deseada, de un modo computacionalmente viable.
La programación lógica, como programación declarativa, permite expresar el conocimiento explı́citamente,
es decir independientemente de la máquina. De este modo, permite modificar detalles de implementación
sin afectar a la corrección lógica del programa. Por tanto, es más compacto, flexible e inteligible. máquina
Como indica Hogger, entre las razones para apostar por la programación lógica, podemos destacar las
siguientes:

1. Puesto que se trata de una programación basada en conocimiento, permite caracterizaciones sim-
ples y precisas de relaciones entre los programas y los resultados computados por ellos; entre los
programas y sus especificaciones y entre diversos programas.

2. Permite al programador olvidarse de cómo va a ser realizada la computación y concentrarse en


qué problema ha de resolver el programa, es decir, concentrarse en dar una especificación clara,
simple y abstracta del problema (la responsabilidad del cómo, pasa al traductor del lenguaje). Ası́,
un programa lógico es una especificación ejecutable.

3. Proporciona un paradigma uniforme para la tecnologı́a del software: un solo paradigma sirve para
construir y manipular programas, especificaciones, bases de datos y herramientas software asocia-
das.

4. Puede ser modificada o extendida de modo natural para recoger formas especiales de conocimiento
tales como conocimiento de orden superior o metanivel.

La tarea de escribir un programa toma como punto de partida una especificación que describe con mayor
o menor detalle cómo ha de comportarse un programa. Esta especificación puede ser una declaración
informal en lenguaje natural de los requisitos que ha de satisfacer el programa; o puede ser formal, es
decir, un documento técnico que recoge de forma precisa el comportamiento exacto que ha de tener el
programa.
La ventaja de las especificaciones formales son evidentes a posteriori, es decir, cuando después de escribir
el programa, deseamos examinar si su comportamiento se ajusta a la especificación.
Si la especificación utiliza la lógica, podemos expresar las relaciones entre bloques simples del programa
y los comportamientos de éstos para, posteriormente, a partir del modo de combinación de estos bloques,
utilizar las técnicas de la lógica para determinar el comportamiento del programa total.
Los primeros trabajos sobre verificación de programas utilizando la lógica se deben a Floyd y Hoare. Pero
el avance más significativo se debe al trabajo de Z. Manna y A. Pnueli, que utiliza la lógica temporal para
especificación y verificación de programas paralelos. En este trabajo, se utiliza la lógica tanto para expresar
hechos del programa como para describir su comportamiento. De este modo, la lógica puede usarse para
establecer si las declaraciones sobre el comportamiento del programa se derivan de las declaraciones que
constituyen el programa.
Si consideramos el desarrollo del método en forma de árbol de resolución, el abandono de una rama para
continuar la búsqueda por la siguiente rama se denomina backtracking.
5.4. CLÁUSULAS DE HORN 141

5.4.1.1. Prolog
Prolog es un lenguaje de programación lógica; se utiliza cuando queremos que el ordenador resuelva
problemas que puedan expresarse en términos de objetos y relaciones entre ellos.
Este formalismo de programación añade al sistema lógico central (es decir, a la conjunción: “lógica en
forma clausal y resolución”) un tipo particular de estrategia de control con el propósito de obtener
una implementación eficiente. Como paradigma declarativo, se caracteriza porque el análisis lógico de los
programas no considera aspectos de comportamientos. En este caso, se habla de Prolog puro.
No obstante, el término Prolog tiene además otras connotaciones referidas a estrategias de control,
por ejemplo, añade primitivas no lógicas dando lugar a un nuevo formalismo conocido como Prolog
impuro. Muchas de estas primitivas contemplan aspectos de comportamientos a expensas de “corromper”
el formalismo lógico básico.
En sı́ntesis, la programación en Prolog consiste en:
1. Declarar algunos hechos sobre los objetos y sus relaciones
2. Definir algunas reglas sobre los objetos y sus relaciones.
3. Hacer “preguntas” sobre los objetos y sus relaciones.
Cuando se hace una pregunta a Prolog, éste efectuará una búsqueda por toda la base de conocimiento
(colección de hechos y reglas) introducida previamente. Buscará hechos que coincidan con el hecho en
cuestión. Si no lo encuentra, intentará encontrar la respuesta mediante las reglas. En definitiva,
Prolog = Proceso de obtención de respuesta en cláusulas de Horn.
+ Sistema de gestión de archivos de cláusulas.
+ Cláusulas predefinidas (aritméticas, etc).
+ Funciones para controlar el proceso de búsqueda.
+ Funciones para controlar el proceso de unificación
En Prolog las cláusulas se escriben en forma procedural :8

T : − P, Q, R, S

es decir: Para resolver T es preciso resolver P , Q, R y S

Ejemplo 5.26 Dado el programa


S(x) : − Q(y), R(x, y)
Q(x) : − P (x)
P (b)
R(a, b)
Al que realizamos la pregunta: ¿S(a)? La resolución procede como sigue:
1. S(x) : − Q(y), R(x, y)
2. Q(x) : − P (x)
3. P (b) : −
4. R(a, b) : −
8
El término procedural es una palabra inglesa, en español lo correcto serı́a procedimental, es decir, en forma de
procedimiento.
142 CAPÍTULO 5. MÉTODO DE RESOLUCIÓN

5. : − S(a)
6. : − Q(y), R(a, y) de 1. y 5. para el umg x/a.
7. : − P (y), R(a, y) de 2. y 6. para el umg x/y.
8. : − R(a, b) de 3. y 7. para el umg y/b.
9. 2 de 4. y 8.

Por lo tanto la respuesta será que S(a) se deriva del programa.


En 6, al resolver 1. y 5., el objetivo S(a) ha sido reemplazado por los subobjetivos Q(y) y R(a, y); en
7., al resolver 2. y 6., el subobjetivo Q(y) ha sido sustituido por el subobjetivo P (y) y, por lo tanto, los
nuevos subobjetivos son P (y) y R(a, y); en 8., al resolver 3. y 7., el subobjetivo P (y) ha sido alcanzado
y, por lo tanto, el único subobjetivo es ahora R(a, b) que se alcanza en 4.. Este reemplazamiento sucesivo
de un objetivo por los subobjetivos que determina la resolución es conocido como backward chaining
(encadenamiento hacia atrás).

Ejemplo 5.27 Dado el programa


S(x) : − Q(y), R(x, y)
S(x) : − T (y)
Q(x) : − P (x)
P (b) : −
T (c) : −
Al que realizamos la pregunta: ¿S(x)? La resolución procede como sigue:
1. S(x) : − Q(y), R(x, y)
2. S(x) : − T (y)
3. Q(x) : − P (x)
4. P (b) : −
5. T (c) : −
6. : − S(x)
7. : − T (x) de 2. y 6.
8. 2 De 5. y 7. para el umg x/c.

Por lo tanto la respuesta será que S(c) se deriva del programa.


Si hubiéramos partido en primer lugar de la cláusula S(x) ∨ ¬Q(y) ∨ ¬R(x, y) en lugar de la cláusula
S(x) ∨ ¬T (x) la ejecución hubiera sido la siguiente:

1. S(x) : − Q(y), R(x, y)


2. S(x) : − T (y)
3. Q(x) : − P (x)
4. P (b) : −
5. T (c) : −
6. : − S(x)
7. : − Q(y), R(x, y) de 1. y 6. para el umg x/c.
5.4. CLÁUSULAS DE HORN 143

8. : − P (y), R(x, y) de 3. y 7. para el umg x/y.


9. : − R(x, b) de 4. y 8. para el umg y/b.

Como ¬R(x, b) no encuentra ninguna cláusula resoluble con ella, la rama se poda y se realiza un back-
tracking para ejecutar con la cláusula S(x) ∨ ¬T (x) .

5.4.2. Mı́nimo Modelo de Herbrand para un Programa lógico


Al escribir un programa lógico P, tenemos en mente un significado para cada uno de los sı́mbolos en la
signatura elegida, en definitiva, tenemos en mente una interpretación que es un modelo para todos los
hechos y reglas de P. La formalización en L1 de este modelo se denomina modelo de Herbrand mı́nimo
9
. y, como veremos, contiene exactamente los átomos básicos que se derivan de P por resolución. Como
hemos indicado, P puede contener más información pero ésta no puede ser derivada de P.

Teorema 5.7 Dado un programa lógico P la intersección de todos los modelos de Herbrand para P es
el mı́nimo modelo de Herbrand para P.

Demostración: Probemos en primer lugar que todo programa lógico es satisfacible, es decir, tiene un
modelo de Herbrand. En efecto, consideremos MH,Ω = (HΩ , IH,Ω ) donde

IH,Ω = {P | P ∈ BP y el átomo del cual P es instancia básica ocurre en P}

es un modelo de Herbrand para P.


La demostración se completa sin más que considerar que, obviamente, la intersección de modelos de
Herbrand para P es un modelo de P.

Teorema 5.8 Dado un programa lógico P el mı́nimo modelo de Herbrand para P es el conjunto de todos
los átomos básicos que son consecuencia lógica de P.

b
Demostración: Sea ConTAtom (P) el conjunto de todos los átomos básicos que son consecuencia semánti-
ca de P y sea mmH (P) = i∈I MiH,P la intersección de todos los modelos de Herbrand para P. Tenemos
que probar que
ConbAtom (P) = mmH (P)
Por definición de consecuencia semántica, es obvio que

ConbAtom (P) ⊆ mmH (P)

Inversamente, sea P ∈ mmH (P). Tenemos que probar que cualquier modelo M de P es un modelo de P .
Por definición de P , esto es cierto si M = (D, I) es un modelo de Herbrand. Supongamos que M = (D, I)
no es un modelo de Herbrand. Como vimos en la demostración del Teorema 2.1, {Q ∈ BH,P | I(Q) = 1}
es un modelo de Herbrand para P y puesto que P es verdadera para todo modelo de Herbrand de P, se
tiene que I(P ) = 1. Por lo tanto,
mmH (P) ⊆ ConbAtom (P)

9
Puesto que los modelos de Herbrand son subconjuntos de la base de Herbrand, la relación de inclusión
conjuntista, ⊆, establece un orden en el conjunto de los modelos de Herbrand. Existe entonces un modelo de
Herbrand minimal al que se denomina modelo mı́nimo de Herbrand de P
144 CAPÍTULO 5. MÉTODO DE RESOLUCIÓN

5.4.2.1. Construcción del mı́nimo modelo de Herbrand


Definición 5.18 Sea P un programa lógico y sea

Φcon : 2BH,P −→ 2BH,P

el operador de consecuencia semántica definido como se indica para cualquier Γ ⊆ BH,P :

Φcon (Γ) = {Q | ¬R1 ∨ . . . ∨ ¬Rn ∨ Q es una instancia básica de una cláusula de P y R1 , . . . , Rn ∈ Γ}

El mı́nimo modelo de Herbrand Mmı́n


H,P se construye recursivamente como sigue:
Φ0con = ∅;
Φn+1 n
con = Φcon (Φcon ); para n ≥ 0
T n=∞ n
Mmı́n
H,P = n=0 Φcon

Ejemplo 5.28 Sea P = {P (a), P (b), ¬P (x) ∨ P (f (x))}. Entonces Mmı́n


H,P se construye como sigue:
0
OPcon = ∅;
1
OPcon = {P (a), P (b)}
2
OPcon = {P (f (a)), P (f (b))}
Mmı́n n n
H,P = {P (f (a) | n ∈ N} ∩ {P (f (b) | n ∈ N}
5.5. EJERCICIOS 145

5.5. Ejercicios
1. Definir por inducción estructural la noción de sustitución finita sobre el conjunto Term de términos
de L1 .
2. Dado el átomo P (x, y, z, t) y las sustituciones

θ1 = {x/f (y), y/g(w), z/v}; θ2 = {x/a, y/b, w/f (y), v/z, t/c}

donde x, y, z, t, v y w son sı́mbolos de variables y a, b y c son sı́mbolos de constantes. Hallar

(θ2 ◦ θ1 )P (x, y, z, t)

3. Hallar, si existe, un unificador para cada uno de los siguientes conjuntos de átomos
a) {P (x, f (y), z), P (g(a), f (w), u), P (v, f (b), c)}
b) {Q(h(x, y), w), Q(h(g(v), a), f (v)), Q(h(g(v), a), f (b))}
4. Hallar el conjunto de discrepancias para los conjuntos de términos:
a) {f (x, x), f (y, g(y))}
b) {f (x, g(y)), f (h(y), g(h(z)))}
c) {f (h(x), g(x)), f (g(x), h(x))}
5. Hallar, si existe, un umg para cada uno de los siguientes pares de átomos
a) P (x, a) y P (b, c)
b) P (f (x), y)) y P (f (a), z)
c) P (f (x), y)) y P (b, z)
d ) P (x, a) y P (b, a)
e) P (x, f (a, x)), P (b, y)
f ) Q(x, f (g(a, x), z)) y Q(b, f (g(a, f (w, c)), h(y, x)))
g) P (f (y, g(z)), h(b)) y P (f (h(b), g(z)), y)
h) P (a, f (b, f (c, x))) y P (a, y)
i) R(x, f (g(a, y), z)) y R(b, f (g(a, f (w, c)), h(y, x)))
j ) Q(x, f (a, f (y, c))) y Q(z, f (z, f (f (a, c), w)))
k ) Q(f (a), g(x)) y Q(y, y)
l ) P (a, x, h(g(z))) y P (z, h(y), h(y))
6. Determine si las siguientes cláusulas tienen factores y en tal caso determı́nelos:

P (x) ∨ Q(y) ∨ P (f (x) P (x) ∨ P (a) ∨ Q(f (x)) ∨ Q(f (a))


P (x, y) ∨ P (a, f (a)) P (a) ∨ P (b) ∨ P (x)
P (x) ∨ P (f (y)) ∨ Q(x, y)

7. Hallar todas las resolventes para cada uno de los siguientes pares de cláusulas
a) ¬P (x) ∨ Q(x, b) y P (a) ∨ Q(a, b)
b) ¬P (x) ∨ Q(x, x) y ¬Q(a, f (a))
c) ¬P (x, y, u) ∨ ¬P (y, z, v) ∨ ¬P (x, v, w) ∨ P (u, z, w), y P (g(x, y), x, y)
d ) ¬P (v, z, v) ∨ P (w, z, w) y P (w, h(x, x), w)
146 CAPÍTULO 5. MÉTODO DE RESOLUCIÓN

e) P (x, y) ∨ P (y, z) y ¬P (a, f (a))


f ) P (x, x) ∨ ¬Q(x, f (x)) y Q(x, y) ∨ R(y, z)
g) P (x, y) ∨ ¬P (x, x) ∨ Q(x, f (x), z) y P (x, z) ∨ ¬Q(f (x), x, z)
h) P (x, f (x), z) ∨ P (u, w, w) y ¬P (z, y, z) ∨ ¬P (z, z, z)
i) ¬P (x, y) ∨ ¬P (f (a), g(u, b)) ∨ Q(x, u) y
P (f (x), g(a, b) ∨ ¬Q(f (a), b) ∨ ¬Q(a, b)
8. Expresar en L1 y demostrar por resolución la siguiente propiedad de las relaciones binarias:
Si una relación es simétrica, transitiva y total (es decir, para todo elemento existe otro relacionado
con él) entonces también es reflexiva.
9. Transformar en fórmula clausal la fbf

(∀x)(∀y)((¬P (x) ∨ ¬P (f (a)) ∨ Q(y)) ∧ P (y) ∧ ¬P (g(b, x)) ∧ ¬Q(b))

y analizar mediante resolución lineal ordenada su satisfacibilidad.


10. Aplicar resolución lineal ordenada para analizar la satisfacibilidad o no del conjunto

{(∀x) (E(x) ∧ ¬V (x)) → (∃y)(S(x, y) ∧ C(y)) ,

(∃z) P (z) ∧ E(z) ∧ (∀u)(S(z, u) → P (u))
(∀v)P (v) → (∃t)¬V (t), (∀r)(¬P (r) ∨ ¬C(r))}

11. Aplicar resolución lineal ordenada para analizar la satisfacibilidad o no del conjunto de cláusulas

{P (x) ∨ Q(x) ∨ R(x, f (x)), ¬P (z) ∨ Q(z) ∨ S(f (z)), T (a), P (a),
R(a, y) ∨ T (y), ¬T (u) ∨ ¬Q(u), ¬T (w) ∨ ¬S(w)}

12. Probar mediante resolución lineal ordenada la corrección del razonamiento:


(∀x)(C(x) → (W (x) ∧ R(x)))
(∃x)(C(x) ∧ Q(x))
(∃x)(Q(x) ∧ R(x))

13. Estudie la insatisfacibilidad del siguiente conjunto de cláusulas:

M (a, s(c), s(b))


P (a)
M (x, x, s(x))
¬M (x, y, z) ∨ M (y, x, z)
¬M (x, y, z) ∨ D(x, z)
¬P (x) ∨ ¬M (y, z, u) ∨ ¬D(x, u) ∨ D(x, y) ∨ D(x, z)
¬D(a, b)

14. Estudie la insatisfacibilidad del siguiente conjunto de cláusulas

P (y, a) ∨ P (f (y), y)
P (y, a) ∨ P (y, f (y))
¬P (x, y) ∨ P (f (y), y)
¬P (x, y) ∨ P (y, f (y))
¬P (x, y) ∨ ¬P (y, a)
5.5. EJERCICIOS 147

15. Estudie la insatisfacibilidad del siguiente conjunto de cláusulas:

¬P (x, y, u) ∨ ¬P (y, z, v) ∨ ¬P (x, v, w) ∨ P (u, z, w)


P (g(x, y), x, y)
P (x, h(x, y), y)
¬P (k(x), x, k(x))

16. Para cada una de las fórmulas siguientes, A: determine una fórmula en forma normal de Skolem
equisatisfacible con A y determine su universo y base de Herbrand; determine una fórmula en forma
normal de Skolem equisatisfacible con ¬A y determine su universo y base de Herbrand.
a) (∀x)P (x) → (∃x)Q(x)
b) (∀x)(P (x) → (∃y)R(y))
c) (∀x)(P (x) → (∃y)Q(x, y))
d ) (∃x)(¬(∃y)P (y) → (∃z)(Q(z) → R(x)))
e) (∀x)(∀y) (∃z)P (z) ∧ (∃u)(Q(x, u) → (∃v)Q(y, v)))

f ) (∀x)(∀y) (∃z)(P (x, z) ∧ P (y, z)) → (∃u)Q(x, y, u)
g) (∀x)(∀y)(∀z)((P (x, y) ∧ P (y, z)) → Q(x, z)) ∧ ((∀x)(∃y)P (x, y) → (∀x)(∃y)Q(x, y))
17. Dado el razonamiento:
  
(∀x) (∃y) E(x) ∧ C(x, y) → S(x) ∧ (∀z)(C(z, x) → S(z))
 
(∀x)(∀y) (P (x) ∧ C(y, x)) → R(y)
———————————————————————————
  
(∀x) P (x) ∧ (∃y)(E(y) ∧ C(x, y)) → (∀z) C(z, x) → (R(z) ∧ S(z))

Encontrar un conjunto Ω de cláusulas tal que el razonamiento es válido si y sólo si Ω es insatisfacible.


18. Probar haciendo uso del método de resolución la corrección del siguiente razonamiento:
Si el profesor es feliz si a todos sus alumnos les agrada estudiar lógica, entonces él es
feliz si no tiene alumnos.
19. Probar haciendo uso del método de resolución la corrección del siguiente razonamiento:
Hay pacientes a los que les agradan todos los médicos. A ningún paciente le agrada
ningún charlatán. Por lo tanto, ningún médico es charlatán.
20. Aplicar resolución lineal ordenada para analizar la validez o no del razonamiento siguiente:

Todos los hombres son mamı́feros.


Todos los mamı́feros son vertebrados.

Todos los vertebrados son hombres.

21. Aplicar resolución lineal ordenada para analizar la validez o no del razonamiento siguiente:

Ningún vendedor de coches usados compra un coche usado para uso familiar.
Algunos de los que compran un coche usado para uso familiar son deshonestos.

Por lo tanto, algunas personas deshonestas no son vendedores de coches usados.

22. Aplicar resolución lineal ordenada para analizar la validez o no de los siguientes razonamientos:
a) Todo estudiante es honesto, Juan no es honesto; por lo tanto Juan no es estudiante.
148 CAPÍTULO 5. MÉTODO DE RESOLUCIÓN

b) Todo atleta es fuerte, todo el que es fuerte e inteligente triunfará en su carrera, Pedro es un
atleta, Pedro es inteligente; por lo tanto Pedro triunfará en su carrera.
c) Todo aquel que ama a alguien ama a San Francisco, no hay nadie que no ame a nadie; por lo
tanto todo el mundo ama a San Francisco.
23. Dado el programa Prolog:
Comprende(lógica-comput-I,x) :− Atiende(x, clases)
Atiende(x, clases) :− Responsable(x)
Responsable(carlos)
a) Inferir de este programa que Carlos comprende la asignatura.
b) ¿Se puede inferir de este programa que Carlos no es responsable?
c) ¿Qué objetivos atómicos se puede inferir de este programa?

También podría gustarte