35. Modus Tollens

Modus Tollens es una regla de inferencia que permite negar el antecedente de una implicación cuando sabemos que su consecuente no se cumple.

35.1 Introducción

Modus Tollens es una regla de inferencia válida que trabaja con implicaciones. Su idea central es: si una condición debería producir una consecuencia, pero la consecuencia no ocurre, entonces la condición tampoco ocurrió.

Es muy útil en depuración, verificación de reglas y razonamiento por descarte.

35.2 Forma lógica

La forma de Modus Tollens es:

p → q
¬q
∴ ¬p

La primera premisa es una implicación. La segunda niega el consecuente. La conclusión niega el antecedente.

35.3 Lectura en lenguaje natural

Si p, entonces q.
No ocurre q.
Por lo tanto, no ocurre p.

La conclusión es válida porque, si p hubiera ocurrido, q tendría que haber ocurrido según la primera premisa.

35.4 Ejemplo cotidiano

Si llueve, la calle se moja.
La calle no está mojada.
Por lo tanto, no llovió.

Si aceptamos la regla general y observamos que la consecuencia no ocurrió, podemos negar el antecedente.

35.5 Ejemplo de programación

Si el usuario es administrador, puede acceder al panel.
El usuario no puede acceder al panel.
Por lo tanto, el usuario no es administrador.

Forma lógica:

p → q
¬q
∴ ¬p

35.6 Tabla de validez

Para que Modus Tollens fuera inválido, tendría que existir un caso donde p → q y ¬q sean verdaderas, pero ¬p sea falsa.

p q p → q ¬q ¬p
V V V F F
V F F V F
F V V F V
F F V V V

La única fila donde p → q y ¬q son verdaderas también tiene ¬p verdadera.

35.7 Relación con la contrarrecíproca

Modus Tollens se apoya en la equivalencia entre una implicación y su contrarrecíproca.

p → q ≡ ¬q → ¬p

Si sabemos que ¬q ocurre, entonces mediante la contrarrecíproca podemos concluir ¬p.

35.8 Modus Tollens en depuración

En depuración de programas, Modus Tollens aparece con frecuencia.

Si la condición era verdadera, el bloque debía ejecutarse.
El bloque no se ejecutó.
Por lo tanto, la condición no era verdadera.

Este razonamiento ayuda a buscar por qué cierto flujo no ocurrió.

35.9 Ejemplo en JavaScript

const esAdmin = false;
const puedeAccederPanel = false;

if (!puedeAccederPanel) {
  console.log("No se cumple la condición suficiente de administrador");
}

Si la regla del sistema garantiza que todo administrador puede acceder al panel, entonces no poder acceder permite descartar que sea administrador.

35.10 Diferencia con negar el antecedente

Modus Tollens no debe confundirse con este patrón inválido:

p → q
¬p
∴ ¬q

Ejemplo inválido:

Si el usuario es administrador, puede editar.
El usuario no es administrador.
Por lo tanto, no puede editar.

La conclusión no es necesaria, porque podría editar por ser editor.

35.11 Condición suficiente y no necesaria

En p → q, p es suficiente para q, pero no necesariamente es la única causa o requisito posible para q.

Si ser administrador permite editar, eso no implica que solo los administradores puedan editar.

Por eso negar p no permite negar q.

35.12 Caso práctico: validación de flujo

Supongamos esta regla:

Si el pago fue aprobado, se genera el pedido.

Si observamos que el pedido no se generó, y la regla es confiable, podemos concluir que el pago no fue aprobado.

p → q
¬q
∴ ¬p

35.13 Modus Tollens y pruebas

Una prueba puede usar este razonamiento para detectar fallos.

function generarPedido(pagoAprobado) {
  return pagoAprobado ? "pedido-generado" : "sin-pedido";
}

const resultado = generarPedido(false);

console.log(resultado !== "pedido-generado");

Si la consecuencia esperada no aparece, revisamos si el antecedente realmente se cumplió.

35.14 Errores comunes

  • Confundir Modus Tollens con negar el antecedente.
  • Concluir ¬q a partir de ¬p.
  • No verificar cuál es el antecedente y cuál es el consecuente.
  • Usar Modus Tollens cuando la regla p → q no está garantizada.
  • Olvidar que puede haber varias condiciones suficientes para una misma consecuencia.

35.15 Qué debes recordar de este tema

  • Modus Tollens tiene la forma p → q, ¬q ∴ ¬p.
  • Niega el antecedente al negar el consecuente.
  • Es una regla de inferencia válida.
  • No debe confundirse con negar el antecedente.
  • Es útil para depurar, descartar causas y verificar reglas condicionales.

35.16 Conclusión

Modus Tollens permite razonar por descarte dentro de una implicación: si la consecuencia no ocurrió, entonces el antecedente suficiente tampoco ocurrió.

En el próximo tema estudiaremos el silogismo hipotético.