7. Demostración por contradicción

La demostración por contradicción supone temporalmente que la afirmación buscada es falsa. Si esa suposición obliga a aceptar una imposibilidad, la afirmación original debe ser verdadera.

7.1 Introducción

Hay afirmaciones cuya prueba directa resulta poco natural. En esos casos podemos adoptar una estrategia indirecta: suponer que lo que queremos demostrar no es cierto y estudiar las consecuencias lógicas de esa suposición.

Si las consecuencias incluyen una contradicción —por ejemplo, que un número sea simultáneamente par e impar, o que un valor sea menor y mayor que otro bajo las mismas condiciones— la suposición inicial no puede ser verdadera. Por lo tanto, la afirmación original se mantiene.

7.2 Principio lógico

Una contradicción es una proposición de la forma R y ¬R. En la lógica clásica, una contradicción no puede ser verdadera. Por eso, si una hipótesis H conduce necesariamente a una contradicción, concluimos que ¬H.

Para demostrar P:

1. Suponer ¬P.
2. Deducir consecuencias de ¬P.
3. Llegar a una contradicción R y ¬R.
4. Concluir que ¬P es falsa.
5. Por lo tanto, P es verdadera.

7.3 Qué puede ser una contradicción

TipoEjemplo
Propiedad y su negaciónn es par y n es impar.
Desigualdades incompatiblesx < 4 y x ≥ 4.
Violación de una definiciónUn máximo que tiene un elemento mayor.
Violación de una hipótesis conocidaUn arreglo declarado ordenado contiene a[i] > a[i + 1].
Resultado imposibleUn entero positivo estrictamente menor que 1.

La contradicción debe ser genuina y debe derivarse mediante pasos válidos. No basta con llegar a un resultado sorprendente o poco intuitivo.

7.4 Contradicción y contraposición

Ambas técnicas son indirectas, pero no son iguales. En contraposición, para demostrar P → Q se demuestra ¬Q → ¬P. En contradicción se supone la negación de lo que se quiere probar y se busca un absurdo.

MétodoSuposición inicialObjetivo intermedio
Contraposición¬QDerivar ¬P.
Contradicción¬P, si se busca probar PDerivar una imposibilidad.

En algunos problemas se pueden usar ambas. Elegiremos la que produzca una cadena de razonamiento más transparente.

7.5 Ejemplo: no existe un entero máximo

Demostraremos que no existe un entero que sea mayor o igual que todos los enteros.

Supongamos que existe un entero máximo M.
Como los enteros son cerrados bajo la suma, M + 1 es un entero.
Además, M + 1 > M.

Esto contradice que M sea mayor o igual que todos los enteros.
Por lo tanto, no existe un entero máximo.

La prueba usa una propiedad estructural de los enteros: siempre podemos sumar uno y obtener otro entero mayor.

7.6 Ejemplo computacional: siempre hay un entero mayor

El código ilustra la idea para un valor concreto. Ningún programa puede enumerar todos los enteros, pero puede mostrar cómo construir uno mayor a partir de cualquiera dado.

function enteroMayor(n) {
  return n + 1;
}

const candidato = 1000;
console.log(`Candidato: ${candidato}`);
console.log(`Entero mayor: ${enteroMayor(candidato)}`); // 1001

7.7 Ejemplo: la raíz cuadrada de 2 es irracional

Este es un ejemplo clásico de contradicción. Una versión completa requiere algunos resultados previos sobre fracciones irreducibles y paridad. Demostraremos que no puede escribirse √2 como cociente de dos enteros.

Supongamos que √2 = p/q, con p y q enteros sin factores comunes y q ≠ 0.
Entonces 2 = p²/q², por lo que p² = 2q².
Así p² es par; por contraposición, p es par. Sea p = 2k.
Sustituyendo: 4k² = 2q², luego q² = 2k².
Por lo tanto q también es par.

p y q son ambos pares, contradicción con que la fracción era irreducible.
Entonces √2 es irracional.

La potencia de esta prueba no está en calcular decimales de √2, sino en demostrar que ninguna fracción de enteros puede representarla exactamente.

7.8 Ejemplo: no hay un racional entre ciertas condiciones

La contradicción también sirve para probar imposibilidades dentro de un dominio. Por ejemplo, no existe un número entero x que satisfaga simultáneamente x > 3 y x < 4.

Supongamos que existe un entero x con 3 < x < 4.
Como x es entero y x > 3, debe cumplirse x ≥ 4.
Pero también suponemos x < 4.

Tenemos x ≥ 4 y x < 4, una contradicción.
Por lo tanto, no existe tal entero x.

El dominio importa: entre 3 y 4 sí existen números reales, como 3,5. La contradicción depende de que x sea entero.

7.9 Existencia y unicidad

Muchas demostraciones deben establecer que un objeto existe y que es único. La contradicción suele ayudar con la unicidad: suponemos que hay dos objetos distintos que cumplen la misma propiedad y mostramos que necesariamente son iguales.

Por ejemplo, un arreglo no vacío tiene un único valor máximo como número, aunque ese valor pueda aparecer en más de una posición. Si dos valores m y M fueran ambos máximos, entonces m ≥ M y M ≥ m; por lo tanto m = M.

Para demostrar unicidad:
1. Suponer que existen dos objetos con la propiedad.
2. Usar la propiedad para compararlos.
3. Concluir que deben ser iguales.
4. Contradicción si se los suponía distintos.

7.10 Contradicción en grafos

La técnica es muy útil para propiedades de grafos. Para demostrar que un árbol no contiene ciclos, podemos usar la definición de árbol como grafo conexo con un único camino simple entre cada par de vértices.

Supongamos que un árbol contiene un ciclo. Tomemos dos vértices distintos del ciclo. Podemos ir de uno al otro siguiendo el ciclo por un lado o por el otro, obteniendo dos caminos simples diferentes. Esto contradice la unicidad del camino en un árbol.

Suposición: el árbol tiene un ciclo.
Consecuencia: existen dos caminos simples entre ciertos vértices.
Contradicción: en un árbol el camino simple es único.
Conclusión: un árbol no tiene ciclos.

7.11 Contradicción en algoritmos: búsqueda binaria

La búsqueda binaria sobre un arreglo ordenado descarta la mitad de los elementos en cada paso. Para justificar que puede descartar una mitad, usamos una idea de contradicción.

Si el elemento buscado es menor que el elemento central, supongamos que aparece en la mitad derecha. Como el arreglo está ordenado, todos los elementos de esa mitad son mayores o iguales que el central, y por lo tanto mayores que el buscado. Eso contradice que allí aparezca el buscado.

arreglo ordenado y buscado < centro
Suposición: buscado está a la derecha del centro.
A la derecha todos los valores son ≥ centro > buscado.
Contradicción: el buscado no puede estar allí.

7.12 Búsqueda binaria con salida

function busquedaBinaria(numeros, buscado) {
  let izquierda = 0;
  let derecha = numeros.length - 1;

  while (izquierda <= derecha) {
    const centro = Math.floor((izquierda + derecha) / 2);

    if (numeros[centro] === buscado) return centro;
    if (buscado < numeros[centro]) derecha = centro - 1;
    else izquierda = centro + 1;
  }

  return -1;
}

const numeros = [3, 7, 11, 15, 21, 28, 35];
console.log(busquedaBinaria(numeros, 21)); // 4
console.log(busquedaBinaria(numeros, 18)); // -1

El algoritmo solo es correcto bajo la precondición de que el arreglo esté ordenado. Sin esa condición, el razonamiento que descarta una mitad deja de ser válido.

7.13 Contradicción y restricciones de programas

Los programas robustos verifican que no se alcancen estados imposibles. Si una variable representa un mes, su valor debe estar entre 1 y 12. Si llegamos a un valor fuera de ese rango, algo contradice la especificación del sistema.

function nombreDelMes(mes) {
  const meses = ["enero", "febrero", "marzo", "abril", "mayo", "junio",
    "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"];

  if (!Number.isInteger(mes) || mes < 1 || mes > 12) {
    return "mes inválido";
  }

  return meses[mes - 1];
}

console.log(nombreDelMes(4)); // abril
console.log(nombreDelMes(13)); // mes inválido

Una validación no es una demostración formal por sí sola, pero expresa en código las restricciones que la prueba debe respetar.

7.14 El principio de explosión

En lógica clásica, a partir de una contradicción puede derivarse cualquier proposición. Este hecho, llamado principio de explosión, explica por qué una teoría con contradicciones no puede usarse de manera confiable: si aceptamos a la vez P y ¬P, perdemos la capacidad de distinguir conclusiones válidas de inválidas.

En ingeniería de software hay una analogía práctica: si las invariantes internas de un programa se rompen, los resultados posteriores pueden dejar de tener significado. Por eso es importante validar entradas y detectar estados imposibles cuanto antes.

7.15 Plantilla de demostración por contradicción

Queremos demostrar P.

Supongamos, para obtener una contradicción, que ¬P es verdadera.
Entonces [desarrollo a partir de definiciones, hipótesis y teoremas].
Se obtiene R y ¬R, lo cual es imposible.
Por lo tanto, la suposición ¬P es falsa.
En consecuencia, P es verdadera.

La frase «para obtener una contradicción» aclara que la suposición es temporal. La conclusión debe señalar explícitamente cuál fue la incompatibilidad obtenida.

7.16 Cuándo conviene usarla

Tipo de afirmaciónUtilidad de contradicción
No existe un objeto con cierta propiedadMuy alta: suponer que existe suele generar un conflicto.
Un objeto es únicoAlta: asumir dos objetos distintos puede forzar igualdad.
Propiedad de una estructuraAlta: una configuración prohibida contradice una definición.
Propiedad algebraica simpleA menudo innecesaria: la prueba directa puede ser mejor.
Implicación con una negación sencillaEvaluar también contraposición.

7.17 Errores frecuentes

  • Suponer una afirmación falsa sin relacionarla con la negación exacta de lo que se quiere probar.
  • Llegar a un resultado inesperado, pero no a una contradicción lógica real.
  • Usar una contradicción que depende de una propiedad no demostrada.
  • Olvidar mencionar cuál es la incompatibilidad final.
  • Confundir contradicción con contraposición.
  • Aplicar el método cuando una demostración directa sería mucho más sencilla.

7.18 Qué debes recordar de este tema

  • La demostración por contradicción supone la negación de la afirmación buscada.
  • Una contradicción es una situación lógicamente imposible, como P y ¬P.
  • Es muy útil para demostrar inexistencia, unicidad y propiedades estructurales.
  • La contradicción debe derivarse con pasos válidos a partir de la suposición temporal.
  • En programación ayuda a razonar sobre estados imposibles, precondiciones e invariantes.
  • La búsqueda binaria ilustra cómo una contradicción justifica descartar candidatos.

7.19 Conclusión

La contradicción es una técnica poderosa porque convierte una afirmación difícil en el análisis de las consecuencias de negarla. Cuando esa negación destruye una propiedad conocida o fuerza una imposibilidad, la afirmación queda demostrada.

En el próximo tema estudiaremos la inducción matemática, el método fundamental para demostrar propiedades que dependen de todos los números naturales.