25. Leyes conmutativas

Las leyes conmutativas indican que, en conjunciones y disyunciones, cambiar el orden de las proposiciones no cambia el valor lógico de la expresión.

25.1 Introducción

En algunas operaciones, el orden de los elementos no cambia el resultado. En lógica proposicional, esto ocurre con la conjunción y la disyunción.

Las leyes conmutativas permiten intercambiar el orden de las proposiciones sin modificar el valor de verdad de la expresión.

25.2 Las dos leyes conmutativas

Las leyes conmutativas son:

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

Esto significa que el orden de las proposiciones no altera el resultado de AND ni de OR.

25.3 Conmutatividad de la conjunción

La expresión p ∧ q equivale a q ∧ p. Ambas solo son verdaderas cuando p y q son verdaderas.

p q p ∧ q q ∧ p
V V V V
V F F F
F V F F
F F F F

Las columnas finales coinciden en todas las filas.

25.4 Conmutatividad de la disyunción

La expresión p ∨ q equivale a q ∨ p. Ambas son verdaderas cuando al menos una de las proposiciones es verdadera.

p q p ∨ q q ∨ p
V V V V
V F V V
F V V V
F F F F

También aquí las columnas finales coinciden en todos los casos.

25.5 Comparación con aritmética

La conmutatividad también aparece en aritmética. La suma y la multiplicación son conmutativas, pero la resta y la división no lo son.

Operación ¿Es conmutativa? Ejemplo
Suma a + b = b + a
Multiplicación a × b = b × a
Conjunción p ∧ q ≡ q ∧ p
Disyunción p ∨ q ≡ q ∨ p

25.6 Conmutatividad en JavaScript

Con valores booleanos puros, && y || son conmutativos desde el punto de vista lógico.

const p = true;
const q = false;

console.log((p && q) === (q && p));
console.log((p || q) === (q || p));

Ambas comparaciones devuelven true.

25.7 Reordenar para mejorar claridad

La ley conmutativa permite elegir el orden que haga más clara una condición.

const cuentaActiva = true;
const tienePermiso = true;

const puedeOperar = cuentaActiva && tienePermiso;

También podría escribirse:

const puedeOperar = tienePermiso && cuentaActiva;

El resultado lógico es el mismo. La elección depende de qué orden comunique mejor la regla.

25.8 Orden natural de una regla

Aunque el resultado lógico no cambie, el orden puede ayudar a leer mejor una condición.

Regla Orden recomendado
Comprar si hay stock y el pago fue aprobado hayStock && pagoAprobado
Editar si es admin o editor esAdmin || esEditor
Enviar si el formulario es válido y no está cargando formularioValido && !cargando

25.9 Cuidado con cortocircuito

En lógica pura, el orden no cambia el valor final. En JavaScript, el orden puede afectar qué expresiones se evalúan debido al cortocircuito.

const usuario = null;

if (usuario !== null && usuario.activo) {
  console.log("Usuario activo");
}

Reordenar esta condición puede producir un error, porque usuario.activo no debe evaluarse si usuario es null.

25.10 Cuidado con funciones

Si una condición llama funciones con efectos secundarios, cambiar el orden puede cambiar el comportamiento práctico del programa.

if (validarSesion() && registrarIntento()) {
  console.log("Operación autorizada");
}

Aunque AND sea conmutativo en lógica, reordenar llamadas a funciones puede modificar qué se ejecuta primero.

25.11 Operadores que no son conmutativos

No todos los operadores lógicos tienen esta propiedad. La implicación no es conmutativa.

p → q no equivale necesariamente a q → p

Ejemplo:

Si un número es múltiplo de 4, entonces es par.
Si un número es par, entonces es múltiplo de 4.

La primera afirmación es verdadera, pero la segunda no siempre lo es.

25.12 Aplicación en simplificación

La conmutatividad ayuda a reordenar expresiones para aplicar otras leyes.

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

Primero reordenamos usando conmutatividad. Luego simplificamos usando idempotencia.

25.13 Ejemplo práctico

Una condición puede tener elementos repetidos en distinto orden:

const puedeEditar = tienePermiso && cuentaActiva && tienePermiso;

Usando conmutatividad e idempotencia, se simplifica a:

const puedeEditar = tienePermiso && cuentaActiva;

25.14 Errores comunes

  • Aplicar conmutatividad a la implicación.
  • Reordenar condiciones en JavaScript sin considerar cortocircuito.
  • Reordenar llamadas a funciones con efectos secundarios.
  • Creer que cambiar el orden siempre mejora la legibilidad.
  • No aprovechar la conmutatividad para detectar repeticiones y simplificar.

25.15 Qué debes recordar de este tema

  • p ∧ q ≡ q ∧ p.
  • p ∨ q ≡ q ∨ p.
  • AND y OR son conmutativos en lógica proposicional.
  • La implicación no es conmutativa.
  • En JavaScript, hay que considerar cortocircuito y efectos secundarios antes de reordenar condiciones.

25.16 Conclusión

Las leyes conmutativas permiten cambiar el orden de proposiciones en conjunciones y disyunciones sin alterar el valor lógico. Son útiles para reorganizar, simplificar y hacer más legibles las expresiones.

En el próximo tema estudiaremos las leyes asociativas.