Las leyes asociativas indican que, al combinar varias proposiciones con el mismo operador, la forma de agruparlas no cambia el valor lógico.
Las leyes asociativas permiten cambiar la agrupación de proposiciones cuando todas se combinan con el mismo operador lógico.
Estas leyes se aplican a la conjunción y a la disyunción. Son útiles para reorganizar expresiones largas sin cambiar su valor de verdad.
Las leyes asociativas son:
En ambos casos, cambia la agrupación, pero no cambia el resultado lógico final.
Si tres proposiciones se combinan con AND, el resultado será verdadero solo cuando las tres sean verdaderas. No importa si agrupamos primero p ∧ q o q ∧ r.
Ambas expresiones significan que se deben cumplir p, q y r.
La conjunción de tres proposiciones solo es verdadera cuando todas son verdaderas.
| p | q | r | (p ∧ q) ∧ r | p ∧ (q ∧ r) |
|---|---|---|---|---|
| V | V | V | V | V |
| V | V | F | F | F |
| V | F | V | F | F |
| F | V | V | F | F |
| F | F | F | F | F |
La tabla está resumida, pero muestra el comportamiento clave: las columnas finales coinciden.
Si tres proposiciones se combinan con OR, el resultado será verdadero cuando al menos una sea verdadera. La agrupación no cambia esa regla.
Ambas expresiones significan que alcanza con que se cumpla p, q o r.
La disyunción de tres proposiciones solo es falsa cuando todas son falsas.
| p | q | r | (p ∨ q) ∨ r | p ∨ (q ∨ r) |
|---|---|---|---|---|
| V | F | F | V | V |
| F | V | F | V | V |
| F | F | V | V | V |
| F | F | F | F | F |
| V | V | V | V | V |
Las columnas finales coinciden en todos los casos representados.
Con valores booleanos puros, las agrupaciones equivalentes producen el mismo resultado.
const p = true;
const q = false;
const r = true;
console.log(((p && q) && r) === (p && (q && r)));
console.log(((p || q) || r) === (p || (q || r)));
Gracias a la asociatividad, una cadena de operadores iguales puede escribirse sin paréntesis.
En JavaScript:
const registroValido = edadValida && emailValido && passwordValida;
const tieneRolPermitido = esAdmin || esEditor || esSupervisor;
La asociatividad se aplica cuando se repite el mismo operador. No permite cambiar libremente agrupaciones que mezclan AND y OR.
Cuando hay operadores distintos, debemos usar precedencia, paréntesis y otras leyes como la distributiva.
Estas dos expresiones pueden producir resultados distintos:
Con p = F, q = V y r = V:
Por eso no debemos aplicar asociatividad cuando se mezclan operadores distintos.
La asociatividad cambia agrupaciones. La conmutatividad cambia el orden.
| Ley | Qué permite cambiar | Ejemplo |
|---|---|---|
| Conmutativa | Orden | p ∧ q ≡ q ∧ p |
| Asociativa | Agrupación | (p ∧ q) ∧ r ≡ p ∧ (q ∧ r) |
La asociatividad permite reagrupar expresiones para aplicar otras leyes.
En este ejemplo usamos asociatividad, conmutatividad e idempotencia.
En lógica pura, la agrupación no cambia el valor de una cadena de AND u OR. En JavaScript, si las expresiones llaman funciones, hay que considerar evaluación de cortocircuito y efectos secundarios.
const resultado = validarSesion() && verificarPermiso() && registrarAcceso();
Desde la lógica booleana, las agrupaciones son equivalentes. Desde el comportamiento del programa, importa qué funciones se ejecutan y en qué orden.
Las leyes asociativas permiten cambiar la forma de agrupar conjunciones o disyunciones sin alterar el valor lógico. Son útiles para simplificar expresiones largas y combinarlas con otras leyes.
En el próximo tema estudiaremos las leyes distributivas.