11. Implicación lógica

La implicación lógica relaciona una condición con una consecuencia. Se expresa como “si p, entonces q” y es fundamental para entender reglas, inferencias y estructuras condicionales.

11.1 Introducción

La implicación lógica es un operador que conecta dos proposiciones. Se escribe p → q y se lee "si p, entonces q".

La proposición p recibe el nombre de antecedente. La proposición q recibe el nombre de consecuente.

11.2 Idea principal

Una implicación afirma que cuando se cumple el antecedente, también debe cumplirse el consecuente.

p → q significa: si p es verdadera, entonces q debe ser verdadera.

Ejemplo:

  • p: El pago fue aprobado.
  • q: Se genera el pedido.
  • p → q: Si el pago fue aprobado, entonces se genera el pedido.

11.3 Antecedente y consecuente

Identificar antecedente y consecuente ayuda a analizar correctamente una implicación.

Implicación Antecedente Consecuente
Si llueve, la calle se moja Llueve La calle se moja
Si el usuario es admin, puede editar El usuario es admin Puede editar
Si hay stock, se permite la compra Hay stock Se permite la compra
Si la contraseña es incorrecta, se rechaza el login La contraseña es incorrecta Se rechaza el login

11.4 Tabla de verdad

La implicación solo es falsa en un caso: cuando el antecedente es verdadero y el consecuente es falso.

p q p → q
V V V
V F F
F V V
F F V
Una implicación falla cuando promete una consecuencia para un caso que sí ocurre, pero esa consecuencia no se cumple.

11.5 Por qué es verdadera cuando p es falsa

Este punto suele resultar extraño al principio. En lógica formal, la implicación p → q no afirma que p ocurra. Afirma qué debe pasar si p ocurre.

Si el antecedente no ocurre, la regla no fue violada.

"Si el pago fue aprobado, entonces se genera el pedido" no queda incumplida cuando el pago no fue aprobado.

11.6 Implicación y condicionales en programación

En programación, una estructura if suele representar una idea parecida a una implicación: si se cumple una condición, se ejecuta una consecuencia.

const pagoAprobado = true;

if (pagoAprobado) {
  console.log("Generar pedido");
}

La condición pagoAprobado funciona como antecedente. La acción de generar el pedido funciona como consecuencia.

11.7 Expresar una implicación como fórmula booleana

La implicación p → q es equivalente a ¬p ∨ q.

p → q equivale a ¬p ∨ q

En JavaScript puede expresarse así:

const p = true;
const q = false;

const implicacion = !p || q;

console.log(implicacion);

El resultado es false porque el antecedente es verdadero y el consecuente es falso.

11.8 Ejemplo: regla de acceso

Supongamos esta regla: si un usuario es administrador, entonces puede acceder al panel.

const esAdmin = true;
const puedeAccederPanel = true;

const reglaCumplida = !esAdmin || puedeAccederPanel;

console.log(reglaCumplida);

La regla solo se incumple cuando esAdmin es verdadero y puedeAccederPanel es falso.

11.9 Implicación no significa causalidad

En lógica, p → q describe una relación de verdad entre proposiciones. No siempre significa que p cause físicamente q.

En programación, muchas reglas se expresan como implicaciones aunque no indiquen causa, sino obligación, permiso o restricción.

  • Si el usuario es menor de edad, debe tener autorización.
  • Si la compra supera cierto monto, el envío es gratis.
  • Si el formulario tiene errores, no se envía.

11.10 Recíproca, inversa y contrarrecíproca

A partir de una implicación p → q se pueden formar otras proposiciones relacionadas.

Nombre Forma Lectura
Implicación original p → q Si p, entonces q
Recíproca q → p Si q, entonces p
Inversa ¬p → ¬q Si no p, entonces no q
Contrarrecíproca ¬q → ¬p Si no q, entonces no p

La implicación original es lógicamente equivalente a su contrarrecíproca, pero no necesariamente a su recíproca ni a su inversa.

11.11 Ejemplo con contrarrecíproca

Consideremos la implicación:

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

Su contrarrecíproca es:

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

Ambas formas expresan la misma relación lógica. Esta idea será útil al estudiar demostraciones y reglas de inferencia.

11.12 Validar una regla con datos

Una implicación puede usarse para revisar si ciertos datos cumplen una regla.

const edad = 16;
const tieneAutorizacion = true;

const esMenor = edad < 18;
const reglaCumplida = !esMenor || tieneAutorizacion;

if (reglaCumplida) {
  console.log("Regla cumplida");
} else {
  console.log("Un menor necesita autorización");
}

La regla "si es menor, entonces debe tener autorización" solo falla cuando esMenor es verdadero y tieneAutorizacion es falso.

11.13 Implicaciones en reglas de negocio

Regla Antecedente Consecuente
Si el pago fue aprobado, se emite la factura Pago aprobado Se emite la factura
Si no hay stock, no se permite la compra No hay stock No se permite la compra
Si el usuario es premium, obtiene descuento Usuario premium Obtiene descuento
Si la sesión expiró, debe iniciar sesión otra vez La sesión expiró Debe iniciar sesión otra vez

11.14 Errores comunes

  • Creer que p → q afirma que p es verdadera.
  • Confundir una implicación con su recíproca.
  • Interpretar toda implicación como una causa física.
  • Olvidar que la implicación solo es falsa cuando p es verdadera y q es falsa.
  • Escribir una regla de negocio sin identificar claramente antecedente y consecuente.

11.15 Qué debes recordar de este tema

  • La implicación se escribe p → q y se lee "si p, entonces q".
  • p es el antecedente y q es el consecuente.
  • Solo es falsa cuando el antecedente es verdadero y el consecuente es falso.
  • p → q equivale a ¬p ∨ q.
  • La implicación original es equivalente a su contrarrecíproca.

11.16 Conclusión

La implicación lógica permite expresar reglas del tipo "si ocurre esto, entonces debe ocurrir aquello". Es clave para entender condiciones, validaciones, inferencias y demostraciones.

En el próximo tema estudiaremos el bicondicional o equivalencia lógica.