39. Introducción a la lógica de predicados

La lógica de predicados permite hablar de objetos, propiedades, relaciones y cantidades. Extiende la lógica proposicional para expresar afirmaciones más precisas.

39.1 Introducción

La lógica proposicional trata proposiciones completas como unidades indivisibles. Por ejemplo, puede representar "Ana es estudiante" como una proposición p.

La lógica de predicados va más allá: permite analizar la estructura interna de esas afirmaciones, identificando objetos, propiedades y relaciones.

39.2 Limitación de la lógica proposicional

La lógica proposicional puede representar afirmaciones completas, pero no expresa con detalle quién tiene una propiedad o cuántos elementos cumplen una condición.

"Ana es estudiante" puede representarse como p, pero esa representación no muestra que Ana es el objeto y ser estudiante es la propiedad.

39.3 Qué agrega la lógica de predicados

La lógica de predicados permite representar:

  • Objetos individuales.
  • Propiedades de objetos.
  • Relaciones entre objetos.
  • Variables.
  • Cuantificadores como "todos" y "existe".

39.4 Predicados

Un predicado expresa una propiedad o relación que puede aplicarse a uno o más objetos.

Estudiante(Ana)

Esta expresión puede leerse como "Ana es estudiante". El predicado es Estudiante y el objeto es Ana.

39.5 Predicados con variables

Un predicado puede usar variables para representar objetos no especificados.

Estudiante(x)

Esta expresión se lee como "x es estudiante". Todavía no es una proposición completa hasta que sepamos qué valor tiene x o agreguemos un cuantificador.

39.6 Ejemplos de predicados

Lenguaje natural Forma con predicados Tipo
Ana es usuaria activa Activa(Ana) Propiedad
El producto tiene stock TieneStock(producto) Propiedad
Ana compró el producto Compro(Ana, producto) Relación
Un pedido pertenece a un cliente Pertenece(pedido, cliente) Relación

39.7 Cuantificadores

Los cuantificadores permiten expresar cuántos objetos cumplen una propiedad.

Cuantificador Símbolo Lectura
Universal Para todo
Existencial Existe al menos uno

39.8 Ejemplo con cuantificador universal

La frase:

Todos los usuarios administradores tienen permiso de edición.

Puede representarse de forma aproximada como:

∀x (Administrador(x) → PuedeEditar(x))

Se lee: para todo x, si x es administrador, entonces x puede editar.

39.9 Ejemplo con cuantificador existencial

La frase:

Existe un producto sin stock.

Puede representarse como:

∃x Producto(x) ∧ SinStock(x)

Se lee: existe al menos un x tal que x es producto y x está sin stock.

39.10 Relación con programación

En programación, muchas estructuras trabajan con predicados de forma práctica. Una función que devuelve verdadero o falso sobre un objeto puede verse como un predicado.

function estaActivo(usuario) {
  return usuario.activo;
}

La función estaActivo expresa una propiedad de un usuario.

39.11 Cuantificadores en código

Los métodos de arreglos también reflejan ideas de cuantificación.

const usuarios = [
  { nombre: "Ana", activo: true },
  { nombre: "Luis", activo: true }
];

const todosActivos = usuarios.every(usuario => usuario.activo);
const existeActivo = usuarios.some(usuario => usuario.activo);

every se relaciona con "para todo". some se relaciona con "existe al menos uno".

39.12 Predicados y bases de datos

Las consultas a bases de datos también usan condiciones parecidas a predicados.

SELECT *
FROM usuarios
WHERE activo = true;

La condición activo = true funciona como un predicado aplicado a cada registro.

39.13 Por qué es importante

La lógica de predicados permite expresar reglas más ricas que la lógica proposicional.

  • Todos los usuarios activos pueden ingresar.
  • Existe un pedido pendiente.
  • Cada producto pertenece a una categoría.
  • Algunos clientes tienen descuentos especiales.

Estas frases son frecuentes en programación, bases de datos y sistemas expertos.

39.14 Errores comunes

  • Tratar un predicado con variable libre como si ya fuera una proposición completa.
  • Confundir "todos" con "algunos".
  • No definir el conjunto de objetos sobre el que se habla.
  • Usar cuantificadores sin aclarar qué variable afectan.
  • Confundir una propiedad de un objeto con una relación entre objetos.

39.15 Qué debes recordar de este tema

  • La lógica de predicados analiza objetos, propiedades y relaciones.
  • Un predicado expresa una propiedad o relación.
  • Las variables permiten hablar de objetos no especificados.
  • Los cuantificadores permiten expresar "todos" o "existe al menos uno".
  • En programación, funciones booleanas, filtros y consultas se relacionan con predicados.

39.16 Conclusión

La lógica de predicados amplía la lógica proposicional al permitir hablar de objetos, propiedades, relaciones y cantidades. Es una herramienta fundamental para expresar reglas más cercanas a los problemas reales.

En el próximo tema estudiaremos predicados y variables con más detalle.