🧮 Computational Mathematics

Inicio · Parte 00 — Pensamiento matemático desde cero

019 — Comprobación y contraejemplos

cero-absoluto clase 19 de 20 4 horas demostración counterexample

Un contraejemplo refuta una afirmación universal; ninguna cantidad de confirmaciones la demuestra.

Fórmulas

¬(∀x P(x)) ⟺ ∃x ¬P(x)
n² + n + 41 es primo para n = 0..39, compuesto para n = 40

Desarrollo

La asimetría entre verificar y demostrar es el contenido de esta clase, y es la lección más transferible de toda la parte. Una afirmación universal —«para todo n se cumple P(n)»— no queda demostrada por muchos casos favorables, pero queda refutada por uno solo desfavorable. Verificar y demostrar son operaciones de coste y de valor radicalmente distintos.

El polinomio de Euler n² + n + 41 es el ejemplo canónico. Produce números primos para n = 0, 1, 2, ..., 39: cuarenta confirmaciones consecutivas, más de las que cualquiera revisaría antes de convencerse. Y falla en n = 40, donde vale 40² + 40 + 41 = 1681 = 41². La razón es visible en retrospectiva: al sustituir n = 41 (o 40) aparece el factor 41 explícitamente.

Trasladado al software, esto es exactamente la relación entre pruebas y corrección: «los tests pasan» significa que no se encontró contraejemplo en los casos probados, no que el código sea correcto. Dijkstra lo formuló en 1970 con una frase que resume la clase: las pruebas pueden mostrar la presencia de errores, nunca su ausencia.

La estrategia práctica que se deriva es contraintuitiva y muy eficaz: al evaluar una afirmación propia, buscar activamente el caso que la rompa en lugar de acumular casos que la confirmen. Los casos límite —cero, negativos, vacío, uno, el máximo representable— son donde viven los contraejemplos.

Ejemplo trabajado

La conjetura de Euler y su caída.

n:   0  1  2  3  ...  38  39   |  40
n²+n+41: 41 43 47 53 ... 1523 1601  |  1681

n = 0..39  → los 40 valores son primos
n = 40     → 1681 = 41 × 41       ✗ COMPUESTO

Regla:  40 confirmaciones no demuestran
        1 contraejemplo refuta

Nótese que el contraejemplo no requiere teoría avanzada: requiere seguir probando cuando ya «parecía» cierto.

Qué calcula el laboratorio

Una conjetura plausible destruida por un único contraejemplo.

python classes/part-00-pensamiento-matematico-desde-cero/019-comprobacion-y-contraejemplos/lab.py
compmath run 019

Salidas del laboratorio (6)

Muestra de la ejecución real

{
  "conjetura": "n^2 + n + 41 es primo para todo n natural",
  "casos_favorables_consecutivos": 40,
  "primer_contraejemplo_n": 40,
  "valor_en_el_contraejemplo": 1681,
  "factor": 41,
  "leccion": "40 confirmaciones no demuestran; 1 contraejemplo refuta"
}

Errores comunes

Dónde se usa

Diseño de pruebas, validación de modelos y evaluación de resultados publicados. En la parte 10 reaparece como la lógica de las pruebas de hipótesis: no se demuestra H₁, se rechaza H₀."

Idea rectora de la parte

Redondear es una decisión de modelado, no un accidente de la calculadora.

Error a evitar

Sumar porcentajes como si fueran cantidades absolutas.

Conexión con IA

Toda métrica de un modelo (accuracy, loss, learning rate) es una razón, un porcentaje o una escala. Interpretarlas mal es el primer error de un practicante de IA.

Bibliografía de la clase

Archivos de la clase