Los axiomas de Peano: compilación y, por ahora, final.

En esta entrada recopilo todo lo que he venido escribiendo en estos últimos meses sobre los axiomas de Peano, a la vez que agrego varios resultados más.

Los axiomas de Peano
Estos axiomas se refieren a ciertos objetos a los que llamaremos números naturales y tienen como elementos primitivos al número 0, que es un número natural, a la función sucesor, que indicamos con la letra S, y a las operaciones de suma y producto. Los axiomas son:

Axioma 0: El sucesor de un número natural es siempre un número natural, la suma y el producto de dos números naturales es siempre un número natural.
Axioma 1: Para todo n, $S(n)\neq 0$.
Axioma 2: Si S(n) = S(m) entonces n = m.
Axioma 3: n + 0 = n.
Axioma 4: n + S(m) = S(n + m).
Axioma 5: n.0 = 0.
Axioma 6: n.S(m) = n.m + n.
Axioma 7 (Esquema de inducción): Para cada fórmula P(n), si puede probarse que vale P(0) y también que vale "P(n) $\Rightarrow $ P(S(n))" entonces P(n) vale para todo n.

Teoremas:
Estos son algunos teoremas que se deducen de los axiomas de Peano.

Teorema 1: 0 + n = n.
Demostración: 
Aplicamos el esquema de inducción.
Para n = 0 la afirmación vale por el axioma 3.
Tenemos que probar que "0 + n = n $\Rightarrow $ 0 + S(n) = S(n)". Veamos que es así:
Si 0 + n = n entonces 0 + S(n) = S(0 + n) = S(n).

Teorema 2: n + S(m) = m + S(n).
Demostración:
Hacemos inducción en m.
Para m = 0 la afirmación vale porque:
n + S(0) = S(n + 0) = S(n) = 0 + S(n), esto último por el teorema 1.
Veamos que n + S(m) = m + S(n) implica n + S(S(m)) = S(m) + S(n).
S(m) + S(n) =
= S(m + S(n))     (ax. 4)
= S(n + S(m))     (hipótesis)
n + S(S(m))     (ax. 4).

Teorema 3: n + m = m + n
(Es decir, la suma es conmutativa).
Demostración:
Fijamos n y hacemos inducción en m.
Para m = 0 vale ya que n + 0 = n = 0 + n, por axioma 3 y teorema 1.
Tenemos que probar que n + m = m + n implica n + S(m) = S(m) + n, veamos que es así:
n + S(m) =
= S(n + m)     (ax. 4)
= S(m + n)     (hipótesis)
m + S(n)     (ax. 4)
= S(m) + n     (teo. 2).

Teorema 4: (n + m) + k = n + (m + k)
(Es decir, la suma es asociativa).
Demostración:
Fijamos n y m, y hacemos inducción en k.
Para k = 0 vale ya que:
(n + m) + 0 = n + m = n + (m + 0).
Tenemos que probar que (n + m) + k = n + (m + k) implica (n + m) + S(k) = n + (m + S(k)). Veamos que es así:
(n + m) + S(k) =
= S((n + m) + k)     (ax. 4)
= S(n + (m + k))     (hipótesis)
n + S(m + k)     (ax. 4)
n + (m + S(k))    (ax. 4).

Teorema 5: 0.n = 0
(Recuérdese que el axioma 5 afirma que n.0 = 0).
Demostración:
Hacemos inducción en n. Para n = 0 vale por el axioma 5. Tenemos que probar que 0.n = 0 implica 0.S(n) = 0. Veámoslo: 0.S(n) = 0.n + 0 = 0 + 0 = 0.

Teorema 6: S(n).m = n.m + m
Demostración:
Fijamos n y hacemos inducción en m. Para m = 0 vale porque: S(n).0 = 0 = 0 + 0 = n.0 + 0.
Tenemos que probar que S(n).m = n.m + m implica S(n).S(m) = n.S(m) + S(m). Veámoslo:
S(n).S(m) =
= S(n).m + S(n)     (por el ax. 6)
= (n.m + m) + S(n)     (hipótesis)
n.m + (m + S(m))     (teo. 4)
n.m + (S(m) + n)     (teo. 2)
n.m + (n + S(m))     (teo. 3)
= (n.m + n) + S(m)     (teo. 4)
n.S(m) + S(m)     (ax. 6)

Teorema 7: n.m = m.n (el producto es conmutativo).
Demostración:
Fijamos n y hacemos inducción en m. Para m = 0 vale porque n.0 = 0 = 0.n.
Tenemos que probar que n.m = m.n implica n.S(m) = S(m).n. Veámoslo:
n.S(m) =
n.m + n     (ax. 6)
m.n + n     (hipótesis)
= S(m).n     (teo. 6).

Teorema 8: n.(m + k) = n.m + n.k.
(Es decir, vale la propiedad distributiva).
Demostración:
Fijamos n y m, y hacemos inducción en k. Para k = 0 vale por los axiomas 3 y 5.
Tenemos que probar que n.(m + k) = n.m + n.k implica n.(m + S(k)) = n.m + n.S(k). Veámoslo:
n.m + n.S(k) =
n.m + (n.k + n)     (ax. 6)
= (n.m + n.k) + n     (teo. 4)
n.(m + k) + n     (hipótesis)
n.S(m + k)     (ax. 6)
n.(m + S(k))    (ax. 4)

Teorema 9: (n.m).k = n.(m.k).
(Es decir, el producto es asociativo).
Demostración:
Fijamos n y m, y hacemos inducción en k. Para k = 0 vale por el axioma 5.
Tenemos que probar que si (n.m).k = n.(m.k). entonces (n.m).S(k) = n.(m.S(k)).
Veámoslo:
(n.m).S(k) =
= (n.m).k + n.m     (ax.6)
n.(m.k) + n.m     (hipótesis)
n.(m.k + m)     (teo. 8)
n.(m.S(k))     (ax. 6).

Definición: 1 = S(0).

Teorema 10: $1\neq 0$.
(Es consecuencia inmediata del axioma 1.)

Teorema 11: n + 1 = S(n).
Demostración:
n + 1 = 
= n + S(0)  (definición)
= S(+ 0)  (Ax. 4)
= S(n)   (Ax. 3)

Teorema 12: 1.n = n.
Demostración:
Por inducción. Para n = 0 vale por el axioma 5. 
Veamos que 1.n = n implica 1.S(n) = S(n).
1.S(n) = 
= 1.n + 1  (Ax. 6)
n  + 1  (por hipótesis)
= S(n)  (Teo. 11).

Definiciones:
2 = S(1)
3 = S(2)
4 = S(3)
5 = S(4)
etc.

Veamos ahora un nuevo teorema:

Teorema 13: Si $n\neq 0$ entonces existe m tal que S(m) = n.
Demostración:
El enunciado que queremos demostrar equivale a $\forall n (n=0 \vee \exists m(S(m)=n))$, y este último enunciado se prueba fácilmente por inducción. En efecto, para n = 0 vale, y supuesto que vale para n entonces es claro que también vale para S(n) ya que si n = S(m) entonces S(n) = SS(m).

Teorema 13 bis: Si $n\neq 0$ entonces n se obtiene aplicando al 0 la función S sucesivamente una cantidad finita de veces.
Demostración:
Por inducción. Para n = 0 vale (el antecedente de la implicación es falso). Supuesto que vale para n es inmediato que vale para S(n) ya que si n = SS...S(0) entonces S(n) = SSS...S(0) (una S más).

Teorema 13 ter: Si una afirmación vale para 0, S(0), SS(0), SSS(0), SSSS(0),... entonces la afirmación vale para todo n.
Demostración:
Sea n cualquiera, entonces, por el teorema anterior, o bien n = 0, o bien n = SS...S(0), en cualquiera de los dos casos, por hipótesis, la afirmación vale para n.

¿Cree usted que las tres versiones del teorema 13 son válidos?

Sucede que el enunciado y la demostración del primer teorema respetan las restricciones que impone la lógica de primer orden, mientras que los otros dos no las respetan (se enmarcan en la lógica de segundo orden). ¿Es importante esta distinción? En parte sí, porque el teorema de Gödel sólo vale en teorías basadas en la lógica de primer orden. De hecho, si se acepta la validez del teorema "13 ter" entonces el teorema de Gödel pasa a ser directamente falso (o, si se quiere, es falso si se acepta en la matemática ese tipo de razonamiento). Por así decirlo, la validez del teorema de Gödel termina en la delgada línea que separa el teorema 13 del teorema 13 bis. Vuelvo a preguntar: ¿cree usted que los tres teoremas son válidos?

Una primera conclusión es (o debería ser) que el teorema de Gödel involucra ciertas sutilezas que impiden que sea discutido a la ligera, y que refutan cualquier análisis que no tome en cuenta adecuadamente sus complejidades técnicas.

Por otra pare, yo sí creo que los tres teoremas son válidos, por lo que esta situación me convence (al menos a mí) de que la lógica que usan naturalmente los matemáticos no es (a diferencia de los que los lógicos suelen sostener) la lógica de primer orden, sino la lógica de segundo orden. La "verdadera lógica", digo yo, es la de segundo orden, la otra es una lógica muy apta para ser estudiada, pero no es la que usamos realmente para razonar.

¿Es falso entonces el teorema de Gödel? No, el teorema de Gódel sigue siendo válido en la teorías basadas en la lógica de primer orden, es decir, tiene una aplicación específica que, según yo lo veo, no alcanza a toda la matemática en su conjunto.

Teorema 14: Si n + m = 0 entonces n = 0 y m = 0.
Demostración:
Si $m\neq 0$ entonces, por el teorema 13, m = Sk para algún k, luego n + Sk = 0. Deducimos así, por el axioma 4, que S(n + k) = 0, pero esto es un absurdo porque contradice el axioma 1. Luego, debe ser m = 0; fácilmente, del axioma 3, se sigue que n = 0.

Teorema 15: Si n + m = n + k entonces m = k.
Demostración:
Lo hacemos por inducción en n. Para n = 0 es fácil ver que vale (por el axioma 3).
Paso inductivo:
Supongamos que Sn + m = Sn + k, entonces, por el axioma 3 y el teorema 3, tenemos que S(n + m) = S(n + k). Luego, por axioma 2, n + m = n + k, y por hipótesis inductiva m = k.

Otros teoremas que pueden probarse, las demostraciones que faltan se dejan como ejercicio para los lectores:

Teorema 16: Si n.m = 0 entonces n = 0 o m = 0.
Demostración:
La afirmación es equivalente a: Si n.m = 0 y $m\neq 0$ entonces n = 0. Probémoslo.
Si $m\neq 0$ entonces, por el teorema 13, existe k tal que S(k) = m. Luego:
0 = n.S(k) = n.k + n (por axioma 6).
Entonces n.k + n = 0 y, por el teorema 14, deducimos que n = 0, como queríamos probar.

Comentario: ¿No podríamos haber dicho que n.m = n + n + n + ... + n (m veces) para luego aplicar directamente el teorema 14? Una vez más, este razonamiento, perfectamente aceptable en la "matemática de todos los días", no lo es, en cambio, en el contexto de la lógica de primer orden (que es la que presupone el teorema de Gödel),

Teorema 17: Si n.m = n.k y $n\neq 0$ entonces m = k.
Demostración:
La afirmación  a demostrar es:
Para todo m vale: Para todo n y k, si n.m = n.k y $n\neq 0$ entonces m = k.
Probémosla por inducción en m.
Para m = 0, hay que probar que si n.0 = n.k y $n\neq 0$ entonce k = 0; esto se deduce del teorema anterior.
Supuesto que vale para m vamos a probarlo para S(m). Tenemos entonces que n.S(m) = n.k.
Comencemos observando que $k\neq 0$, en efecto, si k = 0 entonces n.S(m) = 0, de donde se deduce que n = 0 o S(m) = 0, lo cual es absurdo. Por lo tanto, existe r tal que S(r) = k, y entonces:
n.S(m) = n.k
n.S(m) = n.S(r)
n.m + n = n.r + n
n.m = n.r   (Teo. 15)
m = r   (Hipótesis inductiva)
S(m) = S(r)
S(m) = k, que es lo que queríamos probar.

Teorema 18: Si n + m = 1 y $n\neq 0$ entonces m = 0.
(De este teorema se deduce inmediatamente que si la suma de dos números naturales es 1 entonces uno de de ellos es 0 y el otro es 1.)
Demostración:
Supongamos, por el absurdo, que $m\neq 0$, entonces existe k tal que S(k) = m. En consecuencia:
n + m = 1
n + S(k) = 1
S(n + k) = 1
S(n + k) = S(0)
n + k = 0
Entonces, por el teorema 14, n = 0, lo que contradice la hipótesis.

Teorema 19: Si n.m = 1 entonces n = m = 1.

Teorema 20: 1 + 1 = 2.
Demostración:
1 + 1 = 1 + S(0) = S(1 + 0) = S(1) = 2.

Teorema 21: $1\neq 2$.
Demostración:
Si 2 = 1 entonces S(S(0)) = S(0), luego (por el axioma 2), S(0) = 0, lo que contradice el axioma 1.

Teorema 22: No existe n tal que 2.n = 1.
Demostración:
Supongamos que sí. Luego:
2.n = 1
(1 + 1).n = 1   (teo. 20)
n + n = 1  (teo. 8 y 12)
Por el teorema 18, se sigue que n = 0 o n = 1,
Si n = 0, llegamos a que 0 = 1, lo que contradice el teorema 10.
Si n = 1, llegamos a que 2 = 1, lo que contradice el teorema 21.
Deducimos así que n no existe.

Teorema 23: Si n + m = 2 y $n\neq 0$ y $m\neq 0$ entonces n = m = 1.

Teorema 24: 2 es primo, es decir, si n.m = 2 y $m\neq 1$ entonces m = 2.

Teorema 25: $4\neq 2$.

(*) Teorema 26: n = SS....S(0), donde la S se repite n veces.

Como en el caso del teorema 13, bordeamos aquí las ideas del teorema de Gödel. El teorema 26 ni siquiera puede enunciarse en la lógica de primer orden de los axiomas de Peano, por lo que "escapa" a los métodos de demostración que supone el teorema de Gödel. De hecho, si intentan demostrarlo, verán que se debe hacer inducción, no sólo en n en tanto "número natural", sino también en n en tanto "cantidad de veces que aparece la letra S". ¿Pero acaso no son la misma cosa? ¿Los números naturales no son cantidades? En el contexto de los axiomas de Peano la respuesta es no, "número" no es "cantidad", sino que "número" es "símbolo que cumple los axiomas". Es por eso que, a mi modesto entender, como dije más arriba, la lógica de primer orden (tan defendida por los lógicos matemáticos) es insuficiente para abarcar la riqueza del razonamiento matemático.

Es también interesante notar que en la lógica de primer orden sí puede demostrarse que
1 = S(0)
2 = SS(0)
3 = SSS(0)
etc.

Es decir, puede probarse cada instancia del teorema 26, pero no el teorema en toda su generalidad.

Teorema 27: 3 es primo.

Teorema 28: 2.2 = 4 (luego, 4 no es primo).
Demostración:
2.2 = 2.S(1) = 2.1 + 2 = 2 + 2.
2 + 2 = 2 + S(1) = S(2 + 1) = S(S(2)) = S(3) = 4.

Teorema 29: Si $n\neq m$ entonces existe k tal que n + k = m o m + k = n.

Definición: $n\leq m$ si y sólo si existe k tal que n + k = m.
n < m si y sólo si $n\leq m$ y $n\neq m$.

Teorema 30: Para todo n y m vale que $n\leq m$ o $m\leq n$.

Teorema 31: Si $n\leq m$ y $m\leq n$ entonces n = m.

Teorema 32: Si $n\leq m$ entonces $Sn\leq Sm$.

Teorema 33: Si $n\leq m$ y $m\leq k$ entonces $n\leq k$.

Teorema 34: Para todo n, $0\leq n$.

Teorema 35: Para todo n, no existe k tal que n < k < Sn.

Teorema 36: Si n entonces $Sn\leq m$.

Teorema 37: Si $n\leq m$ entonces para todo k, $n + k\leq m + k$.

Teorema 38: Si $n\leq m$ entonces para todo k, $nk\leq mk$.

Fin (por ahora).

Adenda a "¿La mente humana?"

Con respecto a la entrada ¿La mente humana?, hace unos días recibí un mensaje privado de Hernán Echegoyemberry en el que, y se lo agradezco, me menciona que había allí un error de tipeo que cambiaba completamente el sentido de una frase; error que, merced a esa observación, ya fue corregido.

La frase en cuestión dice: "el teorema de Gödel implica que hay problemas que no son resolubles algorítmicamente". Ahora bien, en referencia a ella, en su mensaje privado Hernán agrega: eso aplica más para el teorema de Turing pero se entiende el punto. Quiero aprovechar este comentario de Hernán para hacer un agregado a la entrada original, un agregado que en aquel momento preferí omitir para no desviarme del tema central.

Es verdad que se le atribuye a Alan Turing (con justicia hay que decir) el descubrimiento de que existen problemas matemáticos que no son resolubles algorítmicamente; concretamente Turing probó que el Halting Problem es irresoluble. Pero no es menos cierto que la existencia de problemas matemáticos que no son resolubles algorítmicamente también se deduce (como dije en la entrada original) del teorema de incompletitud de Gödel. Veamos...

El teorema de Gödel dice que no es posible dar un sistema de axiomas para la Aritmética que sea al mismo tiempo consistente, recursivo y completo. "Consistente" significa que no existe un enunciado P tal que tanto P como su negación sean demostrables. "Recursivo" significa que existe un algoritmo que reconoce si un enunciado es, o no, un axioma. "Completo" es que para todo enunciado P, o bien él, o bien su negación, es demostrable.

Supongamos ahora que propongo como sistema de axiomas a todos los enunciados aritméticos verdaderos. No es difícil probar que este sistema es consistente y completo (ambas características se deducen del hecho de que todos los enunciados verdaderos, y sólo los verdaderos, resultan ser demostrables). Por el teorema de Gödel, entonces, el sistema no puede ser recursivo. En otras palabras, no existe un algoritmo que permita decidir si un enunciado es, o no, un axioma; es decir: no existe un algoritmo que permita decidir si un enunciado aritmético es, o no, verdadero. El problema de determinar la verdad de un enunciado aritmético no es resoluble algorítmicamente.

Ahora bien, si Gödel demostró su teorema en 1931 y el trabajo de Turing es de 1937 ¿por qué se le atribuye a Turing el descubrimiento? Porque en su artículo Gödel propone una definición posible de la idea de algoritmo "aritmético", pero reconoce que no está claro que su definición abarque todos los algoritmos posibles (de hecho, según se vio después, no los abarca). El gran mérito de Turing fue el haber dado una definición (una "modelización matemática", según la idea de la entrada anterior) de la idea de algoritmo lo suficientemente amplia como para abarcar (hasta donde se sabe) a todos los algoritmos posible. Es por eso que, recién después del trabajo de Turing pudo darse por demostrado la existencia de problemas no resolubles algorítmicamente; y fue asimismo después del trabajo de Turing (según Gödel reconoció en una posdata a su artículo) que pudo establecerse el alcance real del teorema de Gödel.

Un último comentario: así como la definición que dio Gödel para la idea de algoritmo resultó ser insuficiente, en el sentido de que hay algoritmos que la definición de Gödel no abarca, del mismo modo nada asegura que no haya algoritmos que queden "fuera" de la definición de Turing, aunque hasta el día de hoy nadie ha sido capaz de dar ni siquiera la insinuación de un ejemplo concreto.

¿La mente humana?

El año pasado Miguel Ángel, administrador del excelente y bien conocido blog Gaussianos, tuvo la gentileza de invitarme a escribir allí una entrada sobre el teorema de Gödel, la que puede leerse haciendo clic aquí. En los comentarios a esa entrada (y también en los comentarios a esta otra) surgió la cuestión de si el teorema de Gödel permite, o no, demostrar que existe una diferencia esencial entre la mente humana y una computadora. En otras palabras ¿la mente humana es "computable", o no?

En esos comentarios sostuve la postura de que el teorema de Gödel no permite demostrar que la mente humana no es computable (a pesar de que lo contrario ha sido afirmado muchas veces por pensadores muy respetables). Algunos de mis interlocutores en aquel intercambio entendieron que yo estaba afirmando que no hay una diferencia esencial entre mente y computadora, cuando en realidad simplemente estaba afirmado que el teorema de Gödel no permite demostrar que esa diferencia existe. (En el mismo sentido, afirmar que el teorema de Gödel no permite demostrar la conjetura de Goldbach no es lo mismo que afirmar que la conjetura de Goldbach sea falsa).

Ahora bien... ¿por qué el teorema de Gödel no permite demostrar que la mente humana no es computable?

El teorema de Gódel es un teorema matemático que habla de entes matemáticos (ciertos conjuntos de enunciados) y que dice que si esos objetos cumplen ciertas hipótesis específicas entonces esos entes verifican ciertas propiedades claramente enunciadas. El punto a destacar aquí es que el teorema de Gödel es un teorema matemático que habla de ciertos objetos matemáticos. Por lo tanto, para que el teorema sea aplicable a una situación cualquiera, ésta debe haber sido, previamente, modelizada matemáticamente.

El teorema de Gódel, por ejemplo, permite demostrar que existen problemas matemáticos bien definidos que no puede ser resueltos algorítmicamente. ¿Por qué? Porque existe una definición matemática del concepto de algoritmo: matemáticamente, un "algoritmo" es una "máquina de Turing". En otras palabras, las máquinas de Turing modelizan matemáticamente el concepto de algoritmo. Si se acepta que este modelo es correcto (es decir, si se acepta que verdaderamente el concepto intuitivo de algoritmo está bien representado por la idea de máquina de Turing) entonces debe aceptarse que el teorema de Gödel implica que hay problemas que no son resolubles algorítmicamente  Si hubiera algoritmos no representables por máquinas de Turing entonces esa conclusión no estaría justificada.

Creo que ahora puede verse hacia dónde voy... Para que el teorema de Gödel pueda decir algo acerca de la mente humana debería existir, previamente, una definición matemática (un modelo matemático) de la mente. Debería haber una definición que nos diga (o nos permita demostrar) qué puede hacer, o qué no puede hacer la menta humana. Todas las supuestas demostraciones de que mente humana no es computable suelen caer en la falacia de atribuirle a la mente, sin ninguna justificación, aquellas propiedades que el razonamiento necesita que verifique. (El razonamiento típico dice: un algoritmo no puede hacer H, pero la mente sí, luego mente y computadora son diferente. Pero.. ¿por qué la mente puede hacer H? Respuesta: porque sí.)

¿Cómo podría definirse matemáticamente la mente? Por ejemplo, podríamos decir que la mente es una máquina de Turing con un oráculo que resuelve el halting problem. Desde luego, si aceptáramos esta definición entonces podríamos deducir inmediatamente que existe una diferencia esencial entre mente y computadora, pero... ¿esa que hemos dado es una definición aceptable de la mente? La respuesta, creo, es "claramente no". Y mientras no haya una definición matemática, aceptable, del concepto de "mente humana" el teorema de Gödel no podrá (legítimamente, al menos) decir nada al respecto.

"Dénme un punto de apoyo y moveré el mundo", dicen que dijo Arquímedes. Parafraseando a Arquímedes, Gödel podría haber dicho; "Dénme una definición matemática de la mente y les diré si es computable o no".