38. Álgebra booleana aplicada

El álgebra booleana proporciona leyes algebraicas para transformar y simplificar expresiones lógicas sin construir tablas de verdad completas. Es la herramienta central del diseño lógico, la optimización de condiciones y el razonamiento formal.

38.1 Introducción

En el tema anterior aprendimos a verificar equivalencias mediante tablas de verdad. Ese método es exhaustivo pero repetitivo. El **álgebra booleana** ofrece un atajo: reglas de reescritura que preservan el valor de verdad y permiten simplificar expresiones de forma directa.

Estas leyes son el fundamento del diseño de circuitos digitales, de la optimización de predicados en bases de datos y de la refactorización de condiciones complejas en código.

38.2 El Álgebra de Boole

Un **álgebra de Boole** es una estructura matemática sobre un conjunto con dos operaciones binarias (∧, ∨) y una unaria (¬) que satisfacen un conjunto de axiomas. En nuestro caso, el conjunto es B = {0, 1}.

Las operaciones corresponden a:

  • (AND): producto lógico.
  • (OR): suma lógica.
  • ¬ (NOT): complemento.

Elementos especiales: 0 es el elemento neutro de ∨ y absorbente de ∧; 1 es el neutro de ∧ y absorbente de ∨.

38.3 Leyes Fundamentales

Las leyes más usadas en la manipulación de expresiones booleanas son:

Ley Forma
Conmutativap ∧ q = q ∧ p  ·  p ∨ q = q ∨ p
Asociativa(p ∧ q) ∧ r = p ∧ (q ∧ r)  ·  (p ∨ q) ∨ r = p ∨ (q ∨ r)
Distributivap ∧ (q ∨ r) = (p ∧ q) ∨ (p ∧ r)  ·  p ∨ (q ∧ r) = (p ∨ q) ∧ (p ∨ r)
Identidadp ∧ 1 = p  ·  p ∨ 0 = p
Complementop ∧ ¬p = 0  ·  p ∨ ¬p = 1
Idempotenciap ∧ p = p  ·  p ∨ p = p
Absorciónp ∨ (p ∧ q) = p  ·  p ∧ (p ∨ q) = p
Doble negación¬(¬p) = p

38.4 Leyes de De Morgan

Las leyes de **De Morgan** describen cómo distribuir la negación sobre AND y OR. Son esenciales para simplificar expresiones negadas y convertir entre formas normales:

¬(p ∧ q) = ¬p ∨ ¬q ¬(p ∨ q) = ¬p ∧ ¬q

Ejemplo aplicado: la condición de programación !(a && b) puede reescribirse como !a || !b sin cambiar su comportamiento, gracias a la primera ley de De Morgan.

38.5 Simulador: Aplicar Leyes Booleanas

Selecciona una ley del álgebra booleana y observa la transformación de la expresión. El simulador verifica la equivalencia comparando las salidas en las cuatro combinaciones de p y q. Pulsa **Aplicar Ley** para revelar la expresión simplificada y la tabla de verificación.

Transformador con Verificación de Equivalencia Pendiente
Ley de De Morgan: ¬(p ∧ q) se transforma en ¬p ∨ ¬q. Pulsa "Aplicar Ley".

38.6 Álgebra Booleana en Programación

Las leyes booleanas permiten refactorizar condiciones para mejorar legibilidad o reducir evaluaciones, siempre preservando la semántica.

// De Morgan en condiciones compuestas
function alertaOriginal(a, b) {
  return !(a && b);
}

function alertaSimplificada(a, b) {
  return !a || !b;  // ¬(a ∧ b) = ¬a ∨ ¬b
}

// Absorción: p ∨ (p ∧ q) = p
function permisoOriginal(esAdmin, tieneRol, activo) {
  return esAdmin || (esAdmin && tieneRol && activo);
}

function permisoSimplificado(esAdmin, tieneRol, activo) {
  return esAdmin || (tieneRol && activo);
  // Si esAdmin es true, la expresión original ya era true
}

// Implicación como OR: p → q  ≡  ¬p ∨ q
const implica = (p, q) => !p || q;

function verificarLey(fn1, fn2) {
  const casos = [[false,false],[false,true],[true,false],[true,true]];
  return casos.every(([p, q]) => Boolean(fn1(p,q)) === Boolean(fn2(p,q)));
}

console.log("De Morgan OK:", verificarLey(
  (a, b) => !(a && b),
  (a, b) => !a || !b
));
// De Morgan OK: true

38.7 Errores Comunes

  • Aplicar De Morgan sin negar cada operando: ¬(p ∧ q) es ¬p ∨ ¬q, no ¬p ∧ ¬q.
  • Confundir distributiva booleana con aritmética: En booleanos, ∧ distribuye sobre ∨ y viceversa; en aritmética solo la multiplicación distribuye sobre la suma.
  • Simplificar sin verificar equivalencia: Toda transformación debe preservar el valor de verdad; conviene comprobar con casos de prueba o tabla de verdad.
  • Olvidar el complemento al negar: Al pasar de ¬(p ∨ q) a forma AND, ambos literales deben negarse: ¬p ∧ ¬q.

38.8 Qué debes recordar de este tema

  • El álgebra booleana permite transformar expresiones lógicas usando leyes algebraicas.
  • Las leyes de **De Morgan** intercambian ∧ por ∨ (y viceversa) al negar.
  • Identidad, complemento, idempotencia y absorción son herramientas de simplificación frecuentes.
  • Toda reescritura válida produce una expresión **lógicamente equivalente**.
  • En programación, estas leyes ayudan a refactorizar condiciones complejas.

38.9 Conclusión

El álgebra booleana cierra el estudio formal de la lógica proposicional desde el punto de vista algebraico. Dominar sus leyes evita depender siempre de tablas de verdad y prepara el terreno para el diseño de hardware y software basado en compuertas lógicas.

En el próximo tema veremos las **funciones discretas en circuitos digitales**, conectando estas leyes algebraicas con compuertas físicas AND, OR y NOT que implementan funciones booleanas en electrónica.