36. Introducción a funciones booleanas

Una función booleana toma valores de verdad como entrada y produce un valor de verdad como salida. Son la base matemática de la lógica digital, las condiciones en programación y los circuitos computacionales.

36.1 Introducción

Hasta ahora hemos estudiado funciones cuyo dominio e imagen eran conjuntos numéricos o finitos generales. En informática, muchas decisiones se reducen a respuestas binarias: sí o no, encendido o apagado, verdadero o falso.

Las **funciones booleanas** formalizan este comportamiento. Son un caso particular de función discreta donde el dominio y el codominio son el conjunto de **valores de verdad** {0, 1} o, equivalentemente, {Falso, Verdadero}.

36.2 Valores de Verdad

El conjunto booleano tiene exactamente dos elementos:

B = {0, 1} o B = {F, V} 0 ≡ Falso · 1 ≡ Verdadero

En programación, JavaScript representa estos valores con los literales false y true. Al operar aritméticamente, true se convierte en 1 y false en 0.

Una función booleana de n variables es una aplicación:

f : Bⁿ → B

Es decir, recibe una tupla de n bits y devuelve un único bit de salida.

36.3 Funciones Booleanas como Funciones Discretas

Vista desde el marco del curso, una función booleana cumple todas las propiedades de una función discreta:

  • Dominio finito: Para n variables, el dominio tiene 2ⁿ combinaciones de entrada.
  • Imagen finita: Solo hay dos salidas posibles (0 o 1).
  • Unicidad: Cada combinación de entradas produce exactamente una salida.

Por ejemplo, la función AND de dos variables es la función f : B² → B definida por la tabla:

p q | f(p,q) = p ∧ q 0 0 | 0 0 1 | 0 1 0 | 0 1 1 | 1

36.4 Operaciones Booleanas Básicas

Las funciones booleanas elementales actúan como bloques de construcción para expresiones más complejas:

  • NOT (¬p): niega la entrada. ¬0 = 1, ¬1 = 0.
  • AND (p ∧ q): vale 1 solo si ambas entradas son 1.
  • OR (p ∨ q): vale 1 si al menos una entrada es 1.
  • XOR (p ⊕ q): vale 1 si las entradas son distintas.
  • Implicación (p → q): es falsa solo cuando p = 1 y q = 0.

Cualquier función booleana compleja puede expresarse combinando estas operaciones mediante fórmulas lógicas.

36.5 Simulador: Evaluador Booleano

Selecciona una operación lógica y asigna valores a p y q. El simulador muestra el flujo desde las entradas hasta la salida f(p, q), iluminando en verde el resultado verdadero y en rojo el falso.

Evaluador de Funciones Booleanas Salida: 0
p: q:
AND(0, 0) = 0. Solo es verdadero cuando ambas entradas son 1.

36.6 Funciones Booleanas en Programación

En JavaScript, los operadores lógicos evalúan expresiones booleanas. Una función que devuelve true o false es, matemáticamente, una función booleana.

// Funciones booleanas como funciones de JavaScript
const AND = (p, q) => p && q;
const OR  = (p, q) => p || q;
const NOT = (p)     => !p;
const XOR = (p, q) => Boolean(p) !== Boolean(q);
const IMPL = (p, q) => !p || q;

// Evaluar en todas las combinaciones (dominio B²)
function tablaVerdadBinaria(func, nombre) {
  console.log(`${nombre}:`);
  for (const p of [false, true]) {
    for (const q of [false, true]) {
      const r = func(p, q);
      console.log(`  p=${p}, q=${q} → ${r}`);
    }
  }
}

tablaVerdadBinaria(AND, "AND");
// AND:
//   p=false, q=false → false
//   p=false, q=true → false
//   p=true, q=false → false
//   p=true, q=true → true

// Uso práctico: condición compuesta
function puedeAcceder(esAdmin, tienePermiso, cuentaActiva) {
  return OR(AND(esAdmin, cuentaActiva), AND(tienePermiso, cuentaActiva));
}

console.log(puedeAcceder(true, false, true));  // true
console.log(puedeAcceder(false, false, true)); // false

36.7 Errores Comunes

  • Confundir AND con OR: AND exige que todas las condiciones sean verdaderas; OR basta con que una lo sea.
  • Tratar la implicación como equivalencia: p → q no significa que p y q tengan el mismo valor; es falsa únicamente en el caso (1, 0).
  • Mezclar bits (0/1) con operadores sin normalizar: En JavaScript, 0 && 1 devuelve 0 (falsy), no el booleano false; conviene usar Boolean() si se necesita tipo estricto.
  • Olvidar que NOT es función unaria: Opera sobre un solo argumento; no confundir ¬p con ¬(p ∧ q).

36.8 Qué debes recordar de este tema

  • Una función booleana mapea combinaciones de bits a un bit: f : Bⁿ → B.
  • Los valores de verdad son 0 (Falso) y 1 (Verdadero).
  • Las operaciones básicas son **NOT**, **AND**, **OR**, **XOR** e **implicación**.
  • Son funciones discretas con dominio finito de tamaño 2ⁿ.
  • En programación se implementan con operadores lógicos y funciones que devuelven booleanos.

36.9 Conclusión

Las funciones booleanas conectan la teoría de funciones discretas con la lógica que gobierna computadoras y programas. Cada condición if, cada compuerta lógica en hardware y cada filtro de consulta con criterios binarios es, en el fondo, una función booleana.

En el próximo tema profundizaremos en las **tablas de verdad y funciones booleanas**, aprendiendo a representar sistemáticamente cualquier función de n variables y a analizar expresiones lógicas equivalentes.