22. Leyes de identidad

Las leyes de identidad muestran que ciertas combinaciones con verdadero o falso no modifican el valor de una proposición.

22.1 Introducción

Las leyes de identidad son equivalencias lógicas que permiten simplificar expresiones. Se basan en la idea de valor neutro: un valor que, al combinarse con una proposición, no cambia su resultado.

En lógica proposicional, verdadero es el valor neutro de la conjunción y falso es el valor neutro de la disyunción.

22.2 Las dos leyes de identidad

Las leyes de identidad son:

p ∧ V ≡ p
p ∨ F ≡ p

La primera dice que una proposición combinada con verdadero mediante AND conserva su valor. La segunda dice que una proposición combinada con falso mediante OR conserva su valor.

22.3 Identidad de la conjunción

La expresión p ∧ V equivale a p. Esto ocurre porque una conjunción solo exige que ambas partes sean verdaderas; si una parte ya es siempre verdadera, el resultado depende únicamente de p.

p V p ∧ V
V V V
F V F

La columna final coincide con la columna de p.

22.4 Identidad de la disyunción

La expresión p ∨ F equivale a p. Esto ocurre porque una disyunción con falso no agrega ningún caso verdadero nuevo.

p F p ∨ F
V F V
F F F

La columna final también coincide con la columna de p.

22.5 Comparación con aritmética

La idea de identidad aparece también en aritmética. El 0 es neutro para la suma y el 1 es neutro para la multiplicación.

Contexto Operación Identidad
Aritmética Suma x + 0 = x
Aritmética Multiplicación x × 1 = x
Lógica Conjunción p ∧ V ≡ p
Lógica Disyunción p ∨ F ≡ p

22.6 Leyes de identidad en JavaScript

En JavaScript podemos observar estas equivalencias usando valores booleanos.

const p = false;

console.log((p && true) === p);
console.log((p || false) === p);

Ambas comparaciones devuelven true, porque las expresiones son equivalentes a p.

22.7 Simplificación con AND

Si una condición contiene una conjunción con true, esa parte puede eliminarse.

const emailVerificado = true;

const condicionOriginal = emailVerificado && true;
const condicionSimplificada = emailVerificado;

console.log(condicionOriginal === condicionSimplificada);

La versión simplificada es más clara y expresa la misma lógica.

22.8 Simplificación con OR

Si una condición contiene una disyunción con false, esa parte puede eliminarse.

const esAdmin = false;

const condicionOriginal = esAdmin || false;
const condicionSimplificada = esAdmin;

console.log(condicionOriginal === condicionSimplificada);

22.9 Uso en condiciones dinámicas

A veces aparecen valores neutros al construir condiciones de forma dinámica. Por ejemplo, cuando se empieza con una condición base que luego se combina con otras.

let cumpleFiltros = true;

const filtrarPorCategoria = true;
const categoriaCoincide = false;

if (filtrarPorCategoria) {
  cumpleFiltros = cumpleFiltros && categoriaCoincide;
}

console.log(cumpleFiltros);

El valor inicial true funciona como identidad para ir acumulando condiciones con AND.

22.10 Identidad al acumular alternativas

Cuando acumulamos alternativas con OR, el valor inicial natural es false.

let coincideAlgunaRegla = false;

const esAdmin = false;
const esEditor = true;

coincideAlgunaRegla = coincideAlgunaRegla || esAdmin;
coincideAlgunaRegla = coincideAlgunaRegla || esEditor;

console.log(coincideAlgunaRegla);

El valor inicial false no cambia el resultado hasta que alguna alternativa sea verdadera.

22.11 Diferencia con leyes de dominación

Las leyes de identidad no deben confundirse con las leyes de dominación.

Tipo Equivalencia Resultado
Identidad p ∧ V ≡ p El resultado depende de p
Identidad p ∨ F ≡ p El resultado depende de p
Dominación p ∧ F ≡ F El resultado queda fijado en falso
Dominación p ∨ V ≡ V El resultado queda fijado en verdadero

22.12 Aplicación en simplificación

Las leyes de identidad permiten eliminar partes redundantes de una expresión.

(p ∧ V) ∨ F ≡ p ∨ F ≡ p

Paso a paso:

  1. p ∧ V se simplifica a p.
  2. p ∨ F se simplifica a p.

22.13 Ejemplo práctico

Supongamos una condición generada durante una refactorización:

const cuentaActiva = true;

if ((cuentaActiva && true) || false) {
  console.log("La cuenta está activa");
}

Aplicando leyes de identidad, puede simplificarse a:

if (cuentaActiva) {
  console.log("La cuenta está activa");
}

22.14 Errores comunes

  • Confundir p ∧ V con V.
  • Confundir p ∨ F con F.
  • No detectar valores neutros dentro de expresiones largas.
  • Eliminar valores sin revisar el operador que los acompaña.
  • Confundir identidad con dominación.

22.15 Qué debes recordar de este tema

  • p ∧ V ≡ p.
  • p ∨ F ≡ p.
  • Verdadero es el valor neutro de AND.
  • Falso es el valor neutro de OR.
  • Las leyes de identidad permiten simplificar condiciones sin cambiar su significado.

22.16 Conclusión

Las leyes de identidad muestran cómo ciertos valores no alteran una proposición. Son herramientas simples pero útiles para simplificar expresiones y entender el comportamiento de AND y OR.

En el próximo tema estudiaremos las leyes de dominación.