Una tautología es una expresión lógica que siempre resulta verdadera, sin importar los valores de verdad de sus proposiciones simples.
Al evaluar una expresión lógica mediante una tabla de verdad, podemos observar su columna final. Si esa columna contiene solo valores verdaderos, la expresión es una tautología.
Las tautologías son importantes porque representan verdades lógicas: expresiones que son verdaderas por su estructura, no por el valor particular de sus variables.
Una tautología es una proposición compuesta que resulta verdadera para todas las combinaciones posibles de valores de sus proposiciones simples.
La expresión p ∨ ¬p afirma que p es verdadera o p no es verdadera. En lógica clásica, esto siempre se cumple.
| p | ¬p | p ∨ ¬p |
|---|---|---|
| V | F | V |
| F | V | V |
Como la columna final siempre es verdadera, p ∨ ¬p es una tautología.
La tautología p ∨ ¬p se relaciona con el principio del tercero excluido: una proposición es verdadera o falsa, sin una tercera posibilidad dentro de la lógica clásica.
La expresión p → p también es una tautología. Afirma que si p ocurre, entonces p ocurre.
| p | p → p |
|---|---|
| V | V |
| F | V |
Veamos la expresión:
Si se cumplen p y q, entonces necesariamente se cumple p.
| p | q | p ∧ q | (p ∧ q) → p |
|---|---|---|---|
| V | V | V | V |
| V | F | F | V |
| F | V | F | V |
| F | F | F | V |
La columna final contiene solo valores verdaderos, por lo tanto es una tautología.
Para reconocer una tautología mediante tablas de verdad:
Las tautologías se relacionan con la validez de los argumentos lógicos. Muchas formas válidas de razonamiento pueden expresarse como tautologías.
Más adelante veremos esto al estudiar reglas de inferencia como Modus Ponens y Modus Tollens.
Podemos comprobar una tautología evaluando todas las combinaciones posibles.
const valores = [true, false];
for (const p of valores) {
const expresion = p || !p;
console.log({ p, expresion });
}
La expresión p || !p devuelve true para ambos valores posibles de p.
En programación, una condición tautológica puede ser una señal de código innecesario.
const activo = false;
if (activo || !activo) {
console.log("Esto siempre se ejecuta");
}
La condición siempre es verdadera, por lo que el if no está tomando una decisión real.
Una expresión tautológica puede aparecer accidentalmente al combinar permisos.
const esAdmin = false;
if (esAdmin || !esAdmin) {
console.log("Acceso permitido");
}
Esta condición permitiría el acceso siempre. Si la intención era proteger una acción, la regla está mal formulada.
Que una expresión sea siempre verdadera no significa que sea útil como condición en un programa. En lógica puede servir para demostrar una ley; en código, puede indicar una condición redundante.
| Contexto | Uso de una tautología |
|---|---|
| Lógica matemática | Demostrar leyes y formas válidas |
| Programación | Detectar condiciones redundantes o errores de diseño |
| Pruebas | Evitar verificaciones que siempre pasan |
Dos expresiones A y B son equivalentes si el bicondicional A ↔ B es una tautología.
Por ejemplo, para comprobar que p → q equivale a ¬p ∨ q, podemos verificar que:
sea verdadera en todas las filas de su tabla de verdad.
Las tautologías muestran expresiones que siempre resultan verdaderas por su estructura lógica. Son fundamentales para estudiar equivalencias, leyes lógicas y argumentos válidos.
En el próximo tema estudiaremos las contradicciones.