20. Equivalencias lógicas fundamentales

Dos expresiones son lógicamente equivalentes cuando siempre producen el mismo valor de verdad. Las equivalencias permiten transformar, simplificar y verificar expresiones lógicas.

20.1 Introducción

En lógica matemática, muchas expresiones diferentes pueden tener el mismo comportamiento. Aunque estén escritas de forma distinta, pueden producir exactamente los mismos valores de verdad en todos los casos.

Cuando eso ocurre, decimos que las expresiones son lógicamente equivalentes.

20.2 Definición

Dos expresiones lógicas A y B son equivalentes si tienen el mismo valor de verdad para todas las combinaciones posibles de sus variables.

A ≡ B significa que A y B son lógicamente equivalentes.

También puede decirse que A ↔ B es una tautología.

20.3 Verificar con tabla de verdad

Para comprobar una equivalencia, construimos una tabla de verdad y comparamos las columnas finales de ambas expresiones.

Ejemplo:

p → q ≡ ¬p ∨ q
p q p → q ¬p ∨ q
V V V V
V F F F
F V V V
F F V V

Como las columnas finales coinciden en todas las filas, las expresiones son equivalentes.

20.4 Para qué sirven las equivalencias

Las equivalencias lógicas permiten transformar expresiones sin cambiar su significado.

  • Simplificar condiciones complejas.
  • Reescribir expresiones para que sean más legibles.
  • Demostrar leyes lógicas.
  • Comparar dos reglas aparentemente distintas.
  • Optimizar expresiones booleanas en programación y circuitos digitales.

20.5 Doble negación

La doble negación indica que negar dos veces una proposición devuelve la proposición original.

¬(¬p) ≡ p
const activo = true;

console.log(!!activo === activo);

20.6 Ley de identidad

Las leyes de identidad muestran que combinar una proposición con valores neutros no cambia su valor.

Equivalencia Lectura
p ∧ V ≡ p p y verdadero equivale a p
p ∨ F ≡ p p o falso equivale a p

20.7 Ley de dominación

Las leyes de dominación muestran que algunos valores determinan por completo el resultado.

Equivalencia Lectura
p ∧ F ≡ F p y falso siempre es falso
p ∨ V ≡ V p o verdadero siempre es verdadero

20.8 Ley idempotente

Repetir una proposición con el mismo operador no cambia su valor.

p ∧ p ≡ p
p ∨ p ≡ p
const tienePermiso = true;

console.log((tienePermiso && tienePermiso) === tienePermiso);
console.log((tienePermiso || tienePermiso) === tienePermiso);

20.9 Ley conmutativa

En conjunción y disyunción, el orden de las proposiciones no cambia el resultado.

p ∧ q ≡ q ∧ p
p ∨ q ≡ q ∨ p

En JavaScript, para expresiones booleanas puras, p && q y q && p tienen el mismo resultado lógico. En código real hay que considerar efectos secundarios, pero lógicamente son equivalentes.

20.10 Ley asociativa

La forma de agrupar conjunciones o disyunciones repetidas no cambia el valor final.

(p ∧ q) ∧ r ≡ p ∧ (q ∧ r)
(p ∨ q) ∨ r ≡ p ∨ (q ∨ r)

Esto permite reorganizar expresiones largas sin alterar su significado lógico.

20.11 Ley distributiva

La distributividad permite transformar expresiones que mezclan conjunción y disyunción.

p ∧ (q ∨ r) ≡ (p ∧ q) ∨ (p ∧ r)
p ∨ (q ∧ r) ≡ (p ∨ q) ∧ (p ∨ r)

Estas leyes se usan mucho en simplificación lógica y álgebra booleana.

20.12 Leyes de De Morgan

Las leyes de De Morgan permiten distribuir una negación sobre conjunciones o disyunciones, cambiando el operador.

¬(p ∧ q) ≡ ¬p ∨ ¬q
¬(p ∨ q) ≡ ¬p ∧ ¬q

Estas leyes son tan importantes que las estudiaremos con detalle en el próximo tema.

20.13 Equivalencias en JavaScript

Las equivalencias ayudan a reescribir condiciones para mejorar su claridad.

const edad = 16;

const forma1 = !(edad >= 18);
const forma2 = edad < 18;

console.log(forma1 === forma2);

Ambas formas expresan la misma condición: no es mayor de edad.

20.14 Tabla resumen

Ley Equivalencia
Doble negación ¬¬p ≡ p
Identidad p ∧ V ≡ p, p ∨ F ≡ p
Dominación p ∧ F ≡ F, p ∨ V ≡ V
Idempotencia p ∧ p ≡ p, p ∨ p ≡ p
Conmutativa p ∧ q ≡ q ∧ p, p ∨ q ≡ q ∨ p
Asociativa (p ∧ q) ∧ r ≡ p ∧ (q ∧ r)
De Morgan ¬(p ∧ q) ≡ ¬p ∨ ¬q

20.15 Errores comunes

  • Creer que dos expresiones son equivalentes porque coinciden en un solo caso.
  • No comprobar todas las filas de la tabla de verdad.
  • Aplicar una ley lógica cambiando el operador incorrectamente.
  • Olvidar que en programación pueden existir efectos secundarios aunque dos formas sean equivalentes en lógica pura.
  • Confundir equivalencia lógica con igualdad textual de expresiones.

20.16 Qué debes recordar de este tema

  • Dos expresiones son equivalentes si siempre tienen el mismo valor de verdad.
  • Las equivalencias pueden verificarse con tablas de verdad.
  • Las leyes lógicas permiten transformar expresiones sin cambiar su significado.
  • Las equivalencias son útiles para simplificar condiciones y razonar sobre programas.
  • Las leyes de De Morgan son equivalencias fundamentales que estudiaremos en detalle.

20.17 Conclusión

Las equivalencias lógicas son herramientas para transformar expresiones manteniendo su comportamiento. Son esenciales para simplificar condiciones, demostrar leyes y comparar reglas.

En el próximo tema estudiaremos las leyes de De Morgan.