- La aritmética de Peano (PA) puede expresar procesos de cálculo mecánicos, por lo que es posible demostrar en PA la terminación de cada sucesión individual de Goodstein
- Mediante la forma normal de Cantor y la notación hereditaria de base, se pueden expresar las sucesiones de Goodstein y su carácter descendente, lo que permite construir demostraciones de longitud finita
- A través de la inducción (inducción fuerte / inducción transfinita), es posible extender las demostraciones por separado hasta ordinales de cierto orden
- PA puede demostrar que para todo número natural n, “G(n) llega a 0”, pero no puede dar una demostración total del teorema completo de Goodstein (para todo n)
- Con PA también es posible implementar suficientemente la codificación del cálculo, estructuras de datos (List, Pair, etc.) e incluso del propio lenguaje de programación (Lisp), así como la codificación de su propio proceso de demostración
Introducción y contexto del problema
- Este texto describe que la aritmética de Peano (PA) puede demostrar que la sucesión de Goodstein “llega a 0 para cada n (G(n) terminates)”
- Aunque esto puede parecer obvio para un lógico, se explica desde la perspectiva de la codificación del cálculo para que pueda entenderlo un programador
- Para cada caso de una sucesión de Goodstein, es posible construir dentro de PA una rutina concreta de demostración
Ordinals y sucesiones de Goodstein
- Se generan ordinales (Sets as Ordinals) al estilo de Von Neumann
- 0 es el conjunto vacío, 1 es {0}, 2 es {0,1}, ω es {0,1,2,…}, ω+1 es {0,1,2,…,ω}, etc., con un orden bien definido
- La sucesión de Goodstein se describe mediante notación hereditaria en base usando la forma normal de Cantor
- Ejemplo: ω^ω es ((1,ω)), es decir, ((1,(1,1)))
- El orden < se determina por comparación lexicográfica de los ordinales/coficientes de cada término
Inducción e inducción transfinita
- Inducción en la aritmética de Peano: si vale para 0 y si vale para n→n+1, entonces vale para todos los números naturales
- La inducción fuerte también puede demostrarse en PA
- Inducción transfinita: en ZFC y sistemas similares puede extenderse a ordinales infinitos, y puede aplicarse a números escritos en forma normal de Cantor
- Teorema 1: toda sucesión descendente en forma normal de Cantor es siempre finita
- Teorema 2: puede usarse inducción transfinita para números en forma normal de Cantor
Inducción transfinita en PA y longitud de las demostraciones de sucesiones de Goodstein
- PA puede generar una demostración de la terminación de la sucesión de Goodstein para cualquier n
- La demostración puede construirse según la altura de torre m=O(log* n) (logaritmo iterado) de la forma normal de Cantor
- Combinando m demostraciones por etapa, la longitud total de la demostración es O(m^2), o puede reducirse a O(m log m) si se introduce una notación especial (ω[m])
- Sin embargo, la demostración del teorema completo de Goodstein (para todo n) es imposible en PA (no se puede hacer inducción transfinita hasta ε0)
- Si fuera posible, también podría demostrarse la consistencia de PA, lo que entraría en conflicto con el segundo teorema de incompletitud de Gödel
Codificación de programas y estructuras de datos en PA
- PA puede codificar suficientemente cálculo/programas/estructuras de datos (números, pares, listas y cualquier otra estructura)
- Se pueden implementar diversas funciones de la siguiente manera:
- lógica y operaciones básicas (+, *, pow, //, %, min, max, etc.)
- pattern matching y bifurcación condicional (
if, cond, etc.)
- codificar un número como dos números (par) o expandir repetidamente desde un par hacia estructuras más complejas como listas (listas recursivas, árboles, texto, etc.)
- Gracias a esta codificación de estructuras de datos, incluso es posible construir un intérprete para una máquina virtual arbitraria o un lenguaje de programación (como Lisp)
Bootstrap hacia Lisp y codificación
- Usando Lisp como ejemplo, se explica cómo implementar operaciones numéricas y lógicas básicas, estructuras de datos e intérpretes de lenguajes de programación
- La estructura de Lisp (mapeo de instrucciones/argumentos, formas especiales, macro, etc.) puede implementarse en PA con combinaciones apropiadas de funciones
- Más aún, dentro de PA pueden codificarse e implementarse simbólicamente el propio proceso de demostración de PA, los procedimientos de prueba lógica y estructuras autorreferenciales
Codificación de la propia lógica dentro de PA
- En lógica matemática, el proceso de prueba de la lógica de primer orden puede codificarse como datos numéricos de PA
- Cada paso de una demostración / proposición / regla de inferencia / verificación de prueba válida puede reconocerse y procesarse mediante una serie de funciones numéricas y procesamiento de listas
- Esta codificación metateórica y autorreferencial se conecta con la incompletitud de Gödel y con la demostración del problema de la parada
Conclusión
- El cálculo, las estructuras de datos, los programas e incluso los procesos de prueba lógica pueden codificarse, demostrarse e interpretarse suficientemente dentro de PA
- Por lo tanto, cualquier sucesión individual de Goodstein (para n, la terminación de G(n)) puede demostrarse concretamente dentro de PA
- Sin embargo, una demostración de que “PA demuestra el teorema de Goodstein dentro de PA” para el teorema completo (todos los n) es imposible debido a los límites de la lógica
- Desde la perspectiva de un programador, PA es una base lógica completa capaz de codificar el cálculo mismo
1 comentarios
Comentarios de Hacker News
(defun not (x) (if x false true)). En cuanto alguien empieza a usar paréntesis, por instinto me pongo a revisar si están bien cerrados. Luego me reí muchísimo cuando más adelante menciona que "es fácil programar en una computadora si los paréntesis están balanceados". Ese chiste me pareció realmente muy bueno, y también me llamó la atención el comentario en la sección "Basic Number Theory":; After a while, you stop noticing that stack of closing parens.. No veía Lisp desde hace tiempo y el texto me pareció muy divertido.\omega.epsilon_0. EDIT: ¿quizá incluso bastaría con solo "PA es consistente"?Con(PA), sino tampoco cualquier fórmula cuantificada universalmente basta. Véase esta respuesta relacionada en Math StackExchange. Respecto de tu primera pregunta, me da curiosidad cómo se codifica la omega-consistencia como fórmula de PA; no se me ocurre de inmediato.N. Supongo que una afirmación más fuerte como la omega-consistencia sí excluiría esos casos.epsilon_0) demostraría a su vez PA. Yo pensaba que PA+"PA es consistente" bastaría para demostrar inducción transfinita hastaepsilon_0.X. Lo importante no es la existencia de modelos no estándar, sino el hecho de que el modelo estándar de los naturales es un modelo de PA. Así que si "PA demuestra que demuestra X", efectivamente se genera una prueba correspondiente a un natural finito estándar, y con ese número puede construirse dentro de PA una prueba real deX.forall n, G(n)" y "PA demuestraforall n, Provable(G(n))". No soy muy fuerte en lógica, así que agradecería si alguien pudiera explicar de manera concreta por qué demostrarforall n, Provable(P(n))no permite demostrarProvable(forall n, P(n)).will-returnyopposite-return, lo cual coincide con la prueba estándar del problema de la detención. Si consideras el casoopposite-return(opposite-return, opposite-return), entonces si PA demuestra queopposite-returnretorna, también demuestra que en realidad no retorna; y, a la inversa, si demuestra que no retorna, entonces demuestra que retorna. Si PA adoptara una afirmación más fuerte del estilo "todo lo demostrable es realmente demostrable", eso llevaría directamente al segundo teorema de incompletitud de Gödel, es decir, a que PA sería inconsistente. Por eso hay que distinguir necesariamente entre "PA demuestra" y "PA demuestra que demuestra".Natconstruida conzero/succ(como se ve en Lean o Rocq). La otra persona se preguntaba cosas como "¿de verdad basta con esto?", "¿hacen falta los axiomas de Peano?", "¿hay algo más primitivo que un tipo de dato inductivo?". Me hizo pensar que conviene recordar con frecuencia que la aritmética de Peano no debe darse por obvia en esencia, sino verse como una decisión de diseño entre otras posibles.Π,Σ,=,Ω).