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.
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.
Una implicación afirma que cuando se cumple el antecedente, también debe cumplirse el consecuente.
Ejemplo:
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 |
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 |
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.
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.
La implicación p → q es equivalente 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.
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.
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.
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.
Consideremos la implicación:
Su contrarrecíproca es:
Ambas formas expresan la misma relación lógica. Esta idea será útil al estudiar demostraciones y reglas de inferencia.
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.
| 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 |
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.