Modus Tollens es una regla de inferencia que permite negar el antecedente de una implicación cuando sabemos que su consecuente no se cumple.
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.
La forma de Modus Tollens es:
La primera premisa es una implicación. La segunda niega el consecuente. La conclusión niega el antecedente.
La conclusión es válida porque, si p hubiera ocurrido, q tendría que haber ocurrido según la primera premisa.
Si aceptamos la regla general y observamos que la consecuencia no ocurrió, podemos negar el antecedente.
Forma lógica:
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.
Modus Tollens se apoya en la equivalencia entre una implicación y su contrarrecíproca.
Si sabemos que ¬q ocurre, entonces mediante la contrarrecíproca podemos concluir ¬p.
En depuración de programas, Modus Tollens aparece con frecuencia.
Este razonamiento ayuda a buscar por qué cierto flujo no ocurrió.
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.
Modus Tollens no debe confundirse con este patrón inválido:
Ejemplo inválido:
La conclusión no es necesaria, porque podría editar por ser editor.
En p → q, p es suficiente para q, pero no necesariamente es la única causa o requisito posible para q.
Por eso negar p no permite negar q.
Supongamos esta regla:
Si observamos que el pedido no se generó, y la regla es confiable, podemos concluir que el pago no fue aprobado.
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ó.
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.