Tema 2: Lógica de predicados (L1)

Diapositivas: 2. LógicaPredicados_2026-2027 · Tema anterior: Tema 1 - Lógica proposicional


Por qué hace falta

La lógica proposicional se queda corta. "Todos los perros son buenos. Fido es un perro. Por tanto, Fido es bueno" es un razonamiento claramente correcto, pero en L0 serían tres proposiciones sin relación (pp, qq y rr), y {p,q}⊨r\{p, q\} \models r no se puede demostrar. Las proposiciones no permiten hablar de individuos ni de sus propiedades o relaciones.

La lógica de predicados mantiene las conectivas y añade constantes, variables, funciones, predicados y cuantificadores.


Sintaxis

Alfabeto

ElementoQué representaEjemplos
Constantes (a,b,ca, b, c…)Objetos concretosJuan, Asturias, 2
Variables (X,YX, Y…)Objetos cualesquieraXX, YY
Funciones (f,gf, g…)Referirse a un objeto a partir de otrospadreDe(XX), sumaDe(2, 3)
Predicados (p,q,rp, q, r…)Propiedades y relaciones (dan V o F)esBueno(XX), viveEn(XX, YY)
ConectivasComo en L0¬,∧,∨,→,↔\lnot, \land, \lor, \to, \leftrightarrow
CuantificadoresCómo se interpretan las variables∀\forall (para todo), ∃\exists (existe)

La aridad es el número de argumentos de una función o de un predicado.

Términos y fórmulas

  • Término: una constante, una variable o una función aplicada a términos. Ejemplos: Juan, XX, sumaDe(3, sumaDe(2, 2)). Un término designa un objeto; no es ni verdadero ni falso.
  • Fórmula atómica: un predicado aplicado a términos. Ejemplos: q(X,Y)q(X, Y), viveEn(Juan, XX). Esto sí es verdadero o falso.
  • Literal: una fórmula atómica o su negación.
  • Fórmulas compuestas: con las conectivas, como en L0, y además, si GG es fórmula y XX una variable, ∀X G\forall X\, G y ∃X G\exists X\, G también lo son.

Prioridad: ¬\lnot, ∀\forall y ∃\exists tienen la máxima prioridad, al mismo nivel. Después ∧\land, ∨\lor, →\to y ↔\leftrightarrow, como en L0.

Variables libres y ligadas

  • En ∀X F\forall X\, F o ∃X F\exists X\, F, FF es el ámbito (alcance) del cuantificador.
  • Una aparición de una variable está ligada si está dentro del ámbito de un cuantificador sobre esa variable, y libre si no.
  • Si una variable está dentro de varios cuantificadores sobre ella, la liga el más cercano.
  • Fórmula cerrada (sentencia): no tiene ninguna variable libre.

Ejemplo: en ∀X∀Y (p(X,Y)∧q(X,Z)→r(X))\forall X \forall Y\,(p(X,Y) \land q(X,Z) \to r(X)), XX e YY están ligadas y ZZ está libre, así que la fórmula no es cerrada.


Formalizar con cuantificadores

  1. Elegir constantes, funciones y predicados (y escribir qué significan).
  2. Traducir cada frase.
FraseFórmula
Todos los pp son qq∀X (p(X)→q(X))\forall X\,(p(X) \to q(X))
Solo los pp son qq∀X (q(X)→p(X))\forall X\,(q(X) \to p(X))
Algún pp es qq∃X (p(X)∧q(X))\exists X\,(p(X) \land q(X))
Ningún pp es qq∀X (p(X)→¬q(X))\forall X\,(p(X) \to \lnot q(X)), o bien ¬∃X (p(X)∧q(X))\lnot\exists X\,(p(X) \land q(X))
Algún pp no es qq∃X (p(X)∧¬q(X))\exists X\,(p(X) \land \lnot q(X)), o bien ¬∀X (p(X)→q(X))\lnot\forall X\,(p(X) \to q(X))

Semántica

Una interpretación II de una fórmula consiste en:

  • Un dominio DD: un conjunto no vacío de objetos.
  • Para cada constante cc, un objeto cI∈Dc^I \in D.
  • Para cada función ff de aridad nn, una aplicación fI:Dn→Df^I: D^n \to D.
  • Para cada predicado PP de aridad nn, una aplicación PI:Dn→{V,F}P^I: D^n \to \{V, F\}.

La misma fórmula puede ser verdadera en una interpretación y falsa en otra. Por ejemplo, ∀X (p(X)∧q(X)→r(f(X)))∧q(a)\forall X\,(p(X) \land q(X) \to r(f(X))) \land q(a) puede hablar de jugadores de póker o de números impares.

Reglas semánticas de los cuantificadores (las conectivas funcionan igual que en L0):

  • (∀X G(X))I=V(\forall X\, G(X))^I = V si GI(d)=VG^I(d) = V para todo d∈Dd \in D.
  • (∃X G(X))I=V(\exists X\, G(X))^I = V si GI(d)=VG^I(d) = V para algún d∈Dd \in D.

Clasificación y equivalencias

Las definiciones de fórmula válida, satisfacible e insatisfacible, equivalencia y consecuencia lógica son las mismas que en L0, cambiando "todas las filas de la tabla" por "todas las interpretaciones". También se mantienen todas las equivalencias de L0. Además:

LeyEquivalencia
Gran De Morgan¬∀X G(X)≡∃X ¬G(X)\lnot\forall X\, G(X) \equiv \exists X\, \lnot G(X) y ¬∃X G(X)≡∀X ¬G(X)\lnot\exists X\, G(X) \equiv \forall X\, \lnot G(X)
Mismo cuantificador∀X∀Y G≡∀Y∀X G\forall X \forall Y\, G \equiv \forall Y \forall X\, G y ∃X∃Y G≡∃Y∃X G\exists X \exists Y\, G \equiv \exists Y \exists X\, G
Gran distributividad∀X (G∧H)≡∀X G∧∀X H\forall X\,(G \land H) \equiv \forall X\, G \land \forall X\, H y ∃X (G∨H)≡∃X G∨∃X H\exists X\,(G \lor H) \equiv \exists X\, G \lor \exists X\, H
Distributividad restringida (si XX no aparece en HH)H∧∀X G≡∀X (H∧G)H \land \forall X\, G \equiv \forall X\,(H \land G), y lo mismo con ∨\lor y con ∃\exists

Resolución general

Es la misma idea que en L0: se prueba Γ⊨G\Gamma \models G por refutación, viendo que Γ∪{¬G}\Gamma \cup \{\lnot G\} es inconsistente. El método es correcto y completo. Se necesita pasar todo a forma clausal, y hay dos problemas nuevos: los cuantificadores (se resuelve con Skolem) y las variables (se resuelve con la unificación).

Forma normal de Skolem (FNS)

Una sentencia está en FNS si:

  1. todos los cuantificadores están al principio;
  2. no hay cuantificadores existenciales;
  3. el núcleo está en FNC.

Toda sentencia FF se puede pasar a FNS. La fórmula obtenida no es equivalente, pero sí equisatisfacible: es satisfacible si y solo si lo era FF. Para la resolución basta, porque lo que interesa es si el conjunto es inconsistente.

Pasos:

  1. Eliminar ↔\leftrightarrow y →\to (como en L0).
  2. Meter las negaciones hasta los átomos (De Morgan, doble negación y Gran De Morgan).
  3. Renombrar variables para que cada cuantificador tenga la suya: ∀X p(X)∨∀X q(X)≡∀X p(X)∨∀Y q(Y)\forall X\, p(X) \lor \forall X\, q(X) \equiv \forall X\, p(X) \lor \forall Y\, q(Y).
  4. Sacar todos los cuantificadores al principio, sin cambiar su orden (distributividad restringida).
  5. Eliminar los ∃\exists (skolemización):
    • Si un ∃Y\exists Y no tiene ningún ∀\forall delante, YY se cambia por una constante de Skolem nueva: ∃Y∀X p(Y,X)\exists Y \forall X\, p(Y, X) pasa a ∀X p(a,X)\forall X\, p(a, X).
    • Si tiene ∀X1,…,Xm\forall X_1, \dots, X_m delante, YY se cambia por una función de Skolem nueva de esas variables: ∀X∃Y p(X,Y)\forall X \exists Y\, p(X, Y) pasa a ∀X p(X,f(X))\forall X\, p(X, f(X)). El YY depende de cuál sea el XX.
  6. Pasar el núcleo a FNC (distributivas).

Forma clausal: se quitan los cuantificadores (todos son ∀\forall y se sobreentienden) y cada cláusula de la FNC se escribe por separado.

Sustitución y unificación

¿Por qué no basta la resolución de L0? {∀X p(X), ¬p(a)}\{\forall X\, p(X),\ \lnot p(a)\} es inconsistente, pero p(X)p(X) y ¬p(a)\lnot p(a) no son literales complementarios "tal cual". Hay que particularizar XX en aa.

  • Una sustitución θ={V1/t1,…,Vn/tn}\theta = \{V_1/t_1, \dots, V_n/t_n\} cambia cada variable ViV_i por el término tit_i en toda la expresión. Ejemplo: con θ={X/g(Y)}\theta = \{X/g(Y)\}, p(X,W,f(X))p(X, W, f(X)) pasa a ser p(g(Y),W,f(g(Y)))p(g(Y), W, f(g(Y))).
    • Una variable no se puede sustituir por un término que la contenga: X/f(X)X/f(X) no vale.
  • Composición θ1θ2\theta_1\theta_2: se aplica θ2\theta_2 a los términos de θ1\theta_1 y se añaden los pares de θ2\theta_2 cuyas variables no estén en θ1\theta_1.
  • Unificar es encontrar una sustitución que deje varias expresiones idénticas. El unificador más general (umg) es el que particulariza lo mínimo.
    • umg{p(X,a), p(Y,a)}={Y/X}\text{umg}\{p(X, a),\ p(Y, a)\} = \{Y/X\}. {X/b,Y/b}\{X/b, Y/b\} también unifica, pero particulariza de más.
    • umg{p(X,f(b),a), p(a,f(Y),a)}={X/a,Y/b}\text{umg}\{p(X, f(b), a),\ p(a, f(Y), a)\} = \{X/a, Y/b\}.
    • {p(X), q(a)}\{p(X),\ q(a)\}: predicados distintos, no unifican.

Algoritmo de unificación:

  1. Empezar con la sustitución vacía.
  2. Recorrer las expresiones de izquierda a derecha hasta el primer desacuerdo (el primer símbolo distinto).
  3. Si el desacuerdo es entre dos términos que no son variables con distinto símbolo de función, o entre una variable y un término que la contiene: no son unificables.
  4. Si no, formar {X/t}\{X/t\} con la variable XX y el término tt del desacuerdo, componerlo con la sustitución que se lleva y aplicarlo.
  5. Repetir hasta que las expresiones sean idénticas. La sustitución acumulada es el umg.

Regla de resolución general

De C1=G∨¬E1C_1 = G \lor \lnot E_1 y C2=H∨E2C_2 = H \lor E_2, donde E1E_1 y E2E_2 son del mismo predicado y unificables con σ=umg(E1,E2)\sigma = \text{umg}(E_1, E_2):

Res(C1,C2)=Gσ∨Hσ\text{Res}(C_1, C_2) = G\sigma \lor H\sigma

Se unifican los dos literales, se tachan y se aplica σ\sigma a lo que queda. También se pueden unificar varios literales de golpe (σ=umg(E1∪E2∪E3)\sigma = \text{umg}(E_1 \cup E_2 \cup E_3)).

Algoritmo: igual que en L0, pero renombrando las variables de una de las dos cláusulas antes de resolver (si las dos tienen variables) y aplicando el umg. Se para al obtener □\square (refutable: el razonamiento es correcto) o cuando no se puede seguir.

Estrategias

El algoritmo es no determinista: su eficacia depende de qué par de cláusulas y qué literales se eligen en cada paso.

  • A lo ancho: calcular todas las resolventes de cada nivel. Es completo, pero muy costoso.
  • Conjunto soporte: resolver siempre usando al menos una cláusula que venga de la negación de la conclusión o de una resolvente suya. Su versión más importante es la resolución SLD, la que usa Prolog.

Deducción natural

Se usan las mismas reglas que en L0 y se añaden dos por cuantificador:

CuantificadorIntroducciónEliminación
∀\forallSi para un tt libre (arbitrario) se llega a A(t)A(t), se deduce ∀x A(x)\forall x\, A(x)De ∀x A(x)\forall x\, A(x) se deduce A(a)A(a) para cualquier término aa
∃\existsDe A(a)A(a) se deduce ∃x A(x)\exists x\, A(x)De ∃x A(x)\exists x\, A(x): se abre una caja suponiendo A(t)A(t) con tt libre. Si dentro se llega a BB sin tt, se deduce BB