Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Trabajo final de Lógica Matemática Sobre el décimo problema de Hilbert Juan Camilo Garzón Upegui Profesor: Juan Diego Vélez Universidad Nacional de Colombia sede Medellı́n Mayo 11 de 2016 1. Introducción “Dada una ecuación Diofántica (i.e ecuación algebraica ó polinómica de varias variables con coeficientes en Z y soluciones en Z) idear un proceso con el cual se pueda determinar, en un número finito de operaciones, si la ecuación es resoluble en Z.” Éste fue el planteamiento del décimo problema presentado por Hilbert, en el congreso internacional de Matemáticas en Parı́s, año 1900. El problema consiste en hallar un algoritmo de la forma: (input) : D(x1 , ..., xm ) = 0 99K f initos  (output) : ( pasos Si 99K D(x1 , ..., xm ) = 0 tiene solucion en los enteros N o 99K D(x1 , ..., xm ) = 0 N o tiene solucion en los enteros Donde D(x1 , ..., xm ) = 0 es una ecuación Diofántica de variables x1 , ..., xm ∈ Z. Yuri Matiyasévich probó en 1970 la imposibilidad del décimo problema de Hilbert: Ningún algoritmo es capaz de determinar la resolubilidad de cualquier ecuación Diofántica. Tenemos entonces que el décimo problema de Hilbert es un ejemplo de un problema de decisión, que en general consiste de contables subproblemas individuales, para los cuales se debe dar una respuesta “Si” ó “No”. Cada subproblema individual esta especificado por una cantidad finita de información. En el caso del décimo problema de Hilbert esta información es el polinomio: D(x1 , ..., xm ) = 0. 1 2. 2.1. Solución negativa del problema vı́a máquinas de Turing Conceptos preliminares La prueba clásica de Cantor para demostrar que la unión contable de conjuntos contables es contable, está basada en el siguiente orden lineal de todas las parejas de números naturales: h0, 0i , h0, 1i , h1, 0i , h0, 2i , h1, 1i , h2, 0i , h0, 3i , ..., h3, 0i ... Tomaremos ventaja de el hecho de que el número de la tupla ha, bi (número de posición de ésta tupla en la lista anterior, comenzando en cero), esta dado por el polinomio: (a+b)2 +3a+b Cantor(a, b) = . 2 Podemos ahora entonces definir las funciones Diofánticas Elma(c) y Elmb(c) que, dado el número de una pareja, producen su primer y segundo elemento respectivamente:   a = Elma(c) ⇐⇒ ∃y (a + y)2 + 3a + y = 2c ,   b = Elmb(c) ⇐⇒ ∃x (x + b)2 + 3x + b = 2c . El número de las parejas se puede generalizar para tripletas, 4-tuplas, etc. Por ejemplo podemos definir: Cantor1 (a1 ) = a1 Cantorn+1 (a1 , ..., an+1 ) = Cantorn (a1 , ..., an−1 , Cantor(an , an+1 )). A ésta recurrencia la llamaremos “El número de Cantor” de la tupla ha1 , ..., an i. Analogamente a como definimos arriba las funciones Elma(c) y Elmb(c), tenemos las funciones Diofánticas Elemn,m (c), cuyo resultado es el m-ésimo elemento de la n-tupla con número de Cantor igual a c :  a n= Elemn,m (c) ⇐⇒ n  ∃x1 , ..., xm−1 , xm+1 , ..., xn 22 Cantorn (x1 , ..., xm−1 , a, xm+1 , ..., xn ) = 22 c . El factor 22 es introducido porque los coeficientes de Cantorn no son enteros. n Introduciremos ahora una construcción adecuada de máquinas de Turing, que utilizaremos para nuestros propositos mas adelante. Las máquinas de Turing son computadoras abstractas que, aunque se pueden definir en términos puramente matemáticos de la teorı́a axiomática de conjuntos, se suelen describir por conveniencia, como si fuesen dispositivos fı́sicos. Recordemos entonces que una máquina de Turing está formada por una memoria en forma de cinta dividida en celdas, que en ocasiones se le asigna una celda inicial (la que esta más a la izquierda) y una secuencia de celdas infinita hacia la derecha. También se puede considerar dicha cinta sin celda inicial (infinitas celdas a la izquierda y derecha, como la 2 estudiada en clase). Esto significa que a diferencia de los computadores fı́sicos actuales, las máquinas de Turing poseen una memoria infinita y nunca presentarán un diagnostico del tipo “Memoria Insuficiente”. Cada celda podrá estar vacı́a ó podrá contener un único sı́mbolo de un conjunto finito de sı́mbolos A = {α1 , ..., αω }, llamado alfabeto. Diferentes máquinas pueden tener diferentes alfabetos. En este caso consideraremos la cinta con una celda inicial la cual se posicionará en el extremo izquierdo de la cinta (no habrán celdas a la izquierda de la celda inicial), y estará marcada con el sı́mbolo “⋆” solo para denotarla. Igualmente usaremos el sı́mbolo “Λ” para denotar una celda vacı́a. También usaremos el sı́mbolo λ para denotar una celda vacı́a, a partir de la cual, todas las celdas siguientes hacia la derecha serán vacı́as ó contendrán el mismo sı́mbolo λ. Estos sı́mbolos estarán presentes en cualquier alfabeto que se considere para las máquinas de Turing con las que trabajaremos. Los sı́mbolos en las celdas de la cinta serán leı́dos-escaneados por una cabeza-lector que, en cada momento discreto de tiempo, escaneará únicamente una celda. Esta cabeza podrá moverse a través de la cinta a la izquierda ó a la derecha, celda por celda. En cada momento, la máquina (especı́ficamente la cabeza) estará en un estado qi ∈ Q = {q1 , ..., qn }, de los cuales habrá un estado inicial en el que comienza la máquina (cabeza), por convención es el estado q1 . Al estado en el cual se encuentra la máquina al momento en que termina de escanear todas las celdas (de un conjunto de instrucciones) y se detiene (no hay mas acciones por realizar en las instrucciones), se le llama estado final. La acción siguiente de la máquina estará totalmente determinada por su estado actual y el sı́mbolo escaneado en ese momento por la cabeza. En cada paso la cabeza puede cambiar el sı́mbolo que se encuentra en la celda actual o dejar el que estaba, puede moverse a la izquierda ó a la derecha una celda, y puede pasar a otro estado o quedarse en el que esta. Las acciones están definidas por un conjunto de instrucciones de la forma: qi αj 7−→ αA(i,j) D(i, j)qQ(i,j) Donde a la expresión qi αj la llamaremos “lado izquierdo de la instrucción” (izquierda de 7→), y a la expresión αA(i,j) D(i, j)qQ(i,j) “lado derecho de la instrucción” (derecha de 7→). Todas las instrucciones están compuestas por: a) qi es el estado actual de la máquina, diferente del estado final. b) αj es el sı́mbolo que se esta escaneando. Si se está en la celda inicial, αj = ⋆. Si la celda esta vacı́a, αj = Λ. c) αA(i,j) es el sı́mbolo que se escribirá, remplazando al que se escaneo “αj ”. Donde αA(i,j) ∈ A (el caso donde αA(i,j) = αj también se puede dar). d) D(i, j) representa el movimiento de la cabeza, que se puede dar de tres maneras: (i) L99K la cabeza se mueve una celda hacia la izquierda. (ii) R99K la cabeza se mueve una celda hacia la derecha. (iii) S99K la cabeza se queda quieta. 3 e) qQ(i,j) es el nuevo estado de la máquina, el cual depende de i y j (el caso qQ(i,j) = qi también se puede dar). Siguiendo la convención, si αj = ⋆ entonces αA(i,j) = ⋆ y ademas D(i, j) 6= L. Por otro lado si αj 6= ⋆ entonces αA(i,j) 6= ⋆. Dado un conjunto de instrucciones, la máquina se detendrá si hay un estado final qQ(i,j) que luego de ejecutarse, no quedarán más instrucciones para seguir. Es posible que no se alcance nunca un estado final, y la máquina continúe ejecutando instrucciones indefinidamente. La información de entrada (input), está determinada por el contenido inicial de la cinta y la posición de la cabeza. El resultado de la computación (output), esta determinada cuando la máquina se detenga, con un contenido en la cinta determinado, la posición final de la cabeza, y el estado final. El interpretar el “input” y el “output” son eventos externos a la máquina de Turing. Por ejemplo, los números naturales se pueden escribir en la cinta en notación binaria usando dos sı́mbolos α y β los cuales serán 1 ó 0, por lo que la misma máquina, en ambos casos, computará dos funciones diferentes. Nuestro interés ahora es representar números naturales en la máquina de Turing. Para esto adoptaremos algunas convenciones para representar estos números en la cinta. Usaremos notación unitaria (ó binaria) para representar un numero natural m que ocupará m + 1 celdas consecutivas. La primera de las celdas (la que está más a la izquierda) contendrá siempre el sı́mbolo “0”, mientras que las demás contendrán el sı́mbolo “1”. Naturalmente la celda siguiente (a la derecha) de la ultima celda de la representación de m no podrá contener el sı́mbolo “1”, pues serı́a entonces la representación de m + 1 y no de m. De igual manera, dada una tupla de números naturales ha1 , ..., an i se podrá representar escribiendo cada natural ai como lo describimos anteriormente, comenzando en la segunda celda de la cinta (La primera contiene ⋆) con a1 y consecutivamente, sin dejar espacios, continuar con los otros hasta terminar con an , las demás celdas podrán ser vacı́as o contener el sı́mbolo “λ”. La representación de una tupla de naturales que no tiene celdas con el sı́mbolo “λ” la llamaremos representacion canonica de la tupla. ⋆ 0 1 1 0 1 0 0 1 1 1 λ Λ ··· La figura anterior es una representación de la tupla h2, 1, 0, 3i. Consideraremos ahora máquinas que tendrán dos posibles estados finales, q2 y q3 , los cuales serán interpretados como “SI” para el estado q2 , y “NO” para el estado q3 . Para nuestros propósitos, construiremos máquinas simples que tendrán un mismo alfabeto en común: 4 {⋆, 0, 1, 2, 3, λ} . Las celdas que contengan el sı́mbolo “λ” jugaran el papel de proxies para las celdas vacı́as, en el siguiente sentido: solo celdas vacı́as y celdas con el sı́mbolo “λ” se podrán situar a la derecha de una celda que contenga el sı́mbolo “λ”, y para cualquier estado qi , las instrucciones con lado izquierdo qi λ y qi Λ tendrán el mismo lado derecho. Dadas dos máquinas M1 y M2 es posible construir una nueva máquina M a partir de éstas de la siguiente manera: i) En todas las instrucciones de la máquina M1 , el estado final q2 es remplazado por qk+1 donde k es el numero de estados de la máquina M1 y el estado final q3 es remplazado por q2 . ii) En todas las instrucciones de la máquina M2 , todo estado no-final (diferente del estado final) qi , es remplazado por qk+i y el estado final q2 es remplazado por q1 . iii) El conjunto de instrucciones de la nueva máquina M consiste de las instrucciones de las dos máquinas dadas M1 y M2 , modificadas como se ha descrito. La máquina de Turing construida de ésta manera será denotada (en inglés): M և while M1 do M2 od La cual se puede representar gráficamente como lo muestra la siguiente imagen: La acción de ésta máquina consiste en realizar en turnos las acciones de las máquinas M1 y M2 como se constituyeron originalmente, hasta que una de ellas entra en el estado final q3 . Ésta notación introducida se asemeja a un primitivo lenguaje de programación. De hecho, cada “programa” denota una particular máquina de Turing. Otro método para construir una maquina M a partir de dos máquinas dadas M1 y M2 es: i) En todas las instrucciones de la máquina M1 , el estado final q2 es remplazado por qk+1 donde k es el numero de estados de la máquina M1 (cabe recordar que los estados finales pueden ocurrir sólo en el lado derecho de las instrucciones). 5 ii) En todas las instrucciones de la máquina M2 , todo estado no-final (diferente del estado final) qi , es remplazado por qk+i (en particular, q1 es remplazado por qk+1 ). iii) El conjunto de instrucciones de la nueva máquina M consiste de las instrucciones de las dos máquinas dadas M1 y M2 , modificadas como se ha descrito. Para denotar ésta máquina M usaremos alguna de las siguientes notaciones: 1) M1 ; M2 2) M1 and M2 3) if M1 then M1 Se puede ver que la composición de máquinas descritas de ésta manera es una operación asociativa, y no hay ambigüedad en la notacion M1 ; M2 ; M3 . Una vista gráfica de ésta composición es la siguiente: Ahora construiremos algunos ejemplos de máquinas, que utilizaremos más adelante, describiendo su conjunto de instrucciones. LLamaremos LEF T a la máquina con las siguientes instrucciones: q1 ⋆ 7−→ ⋆Sq2 q1 0 7−→ 0Lq2 q1 1 7−→ 1Lq2 q1 2 7−→ 2Lq2 q1 3 7−→ 3Lq2 q1 λ 7−→ λLq2 q1 Λ 7−→ λLq2 La cual hará la acción de mover la cabeza de la máquina una celda a la izquierda, a menos que ésta estuviera escaneando la primera celda marcada con “⋆”. 6 Llamaremos RIGHT a la máquina con instrucciones: q1 ⋆ 7−→ ⋆Rq2 q1 0 7−→ 0Rq2 q1 1 7−→ 1Rq2 q1 2 7−→ 2Rq2 q1 3 7−→ 3Rq2 q1 λ 7−→ λSq2 q1 Λ 7−→ λSq2 La cual moverá la cabeza una celda a la derecha a menos que ésta estuviera escaneando una celda vacı́a o una celda con simbolo “λ”. Denotaremos como W RIT E(0) a la máquina con instrucciones: q1 ⋆ 7−→ ⋆Sq2 q1 0 7−→ 0Sq2 q1 1 7−→ 0Sq2 q1 2 7−→ 0Sq2 q1 3 7−→ 0Sq2 q1 λ 7−→ 0Sq2 q1 Λ 7−→ 0Sq2 La cual cambiará el sı́mbolo de la celda escaneada por el sı́mbolo “0” a menos que la celda escaneada sea la primera, marcada con “⋆”. Similarmente se definen las máquinas W RIT E(1), W RIT E(2), W RIT E(3), y W RIT E(λ), las cuales tendrán las mismas instrucciones anteriores pero cambiando en el lado derecho de cada instrucción el simbolo “0” por los sı́mbolos “1”, “2”, “3” y “λ” respectivamente. Definimos como READ(0) a la máquina con instrucciones: q1 ⋆ 7−→ ⋆Sq3 q1 0 7−→ 0Sq2 q1 1 7−→ 1Sq3 q1 2 7−→ 2Sq3 q1 3 7−→ 3Sq3 q1 λ 7−→ λSq3 q1 Λ 7−→ λSq3 La cual determina si la celda escaneada por la cabeza, contiene o no el sı́mbolo “0”, y se detendrá en el estado q2 ó q3 según sea la respuesta, que por convención, definimos como “Si” ó “No” respectivamente. Similarmente se definen las máquinas READ(1), READ(2), READ(3) y READ(⋆), las cuales determinan la presencia de los sı́mbolos “1”, “2”, “3” y “⋆” respectivamente. 7 La máquina READ(λ) tendrá las instrucciones: q1 ⋆ 7−→ ⋆Sq3 q1 0 7−→ 0Sq3 q1 1 7−→ 1Sq3 q1 2 7−→ 2Sq3 q1 3 7−→ 3Sq3 q1 λ 7−→ λSq2 q1 Λ 7−→ λSq2 Ahora consideraremos dos máquinas que practicamente no harán cambios en la cinta. Llamaremos ST OP a la máquina cuyas instrucciones son: q1 ⋆ 7−→ ⋆Sq3 q1 0 7−→ 0Sq3 q1 1 7−→ 1Sq3 q1 2 7−→ 2Sq3 q1 3 7−→ 3Sq3 q1 λ 7−→ λSq3 q1 Λ 7−→ λSq3 Las cuales llevan la máquina directamente a el estado final q3 desde el estado q1 , sin mover la cabeza de la máquina. Por otro lado llamaremos N EV ERST OP a la máquina con instrucciones: q1 ⋆ 7−→ ⋆Sq1 q1 0 7−→ 0Sq1 q1 1 7−→ 1Sq1 q1 2 7−→ 2Sq1 q1 3 7−→ 3Sq1 q1 λ 7−→ λSq1 q1 Λ 7−→ λSq1 La cual nunca cambia de estado y por ende nunca se detiene. Definamos ahora algunas máquinas compuestas por otras ya construidas. La acción de la máquina READN OT (0) և while READ(0) do ST OP od es la opuesta a la acción de la máquina READ(0), pues ésta reconoce la ausencia del simbolo “0” en la celda observada por la cabeza. Analogamente se definen READN OT (1), READN OT (2), READN OT (3), READN OT (⋆) y READN OT (λ) remplazando en la máquina anterior READ(0) por READ(1), READ(2), READ(3), READ(⋆) y READ(λ) respectivamente. 8 La máquina ST AR և while READN OT (⋆) do LEF T od ubica la cabeza en la primera celda (marcada por “⋆”). La máquina V ACAN T և ST AR; while READN OT (⋆) do RIGHT od Ubica la cabeza en la primera celda (de izquierda a derecha), que contenga el sı́mbolo “λ” si ésta existe, de lo contrario la ubica en la primera celda vacı́a. las máquinas separadas por “;” indican que la segunda comienza en el modo que terminó la primera La máquina JU M P և while READN OT (0) do RIGHT od mueve la cabeza a la derecha hasta alcanzar la primera celda que contenga el sı́mbolo “0”; si todas las celdas que contienen al simbolo “0” están a la izquierda de la cabeza, la máquina nunca se detendrá. La secuencia de máquinas F IN D se define por la relación de recurrencia: F IN D(1) և ST AR; JU M P F IN D(k + 1) և F IN D(k); RIGHT ; JU M P . La máquina F IN D(k) ubica la cabeza en la celda que contiene el simbolo “0”, que inicia la representación del elemento ak de la tupla ha1 , ..., an i. (las máquinas separadas por “;” comienzan en el modo en que termino la anterior, a la izquierda de “;”). La máquina N EW և V ACAN T ; W RIT E(0) transforma la tupla ha1 , ..., an i en la tupla ha1 , ..., an , 0i. La máquina IN C և V ACAN T ; W RIT E(1) transforma la tupla ha1 , ..., an i en la tupla a1 , ..., an−1 , an + 1 . La máquina M ARK(2) և while RIGHT ; READ(1) do W RIT E(2) od Remplaza apariciones consecutivas de el sı́mbolo “1” por el sı́mbolo “2”. Ésta maquina es usada tipicamente después de una de las máquinas F IN D; asi, la maquina F IN D(k);M ARK(2) selecciona el elemento ak de la tupla ha1 , ..., an i. La máquina M ARK(3) և while RIGHT ; READ(1) do W RIT E(3) od Se comporta de manera similar. 9 La máquina T HEREIS(2) և ST AR ; while READN OT (2) do if READN OT (λ) then RIGHT od determina si el sı́mbolo “2” aparece en alguna celda de la cinta; si es ası́, ésta para en el estado q2 ; de lo contrario ésta se detiene en el estado q3 . Nuestra desición de construir máquinas de tal manera que una celda que contiene el sı́mbolo “2” no puede estar situada a la derecha de una celda conteniendo el sı́mbolo “λ”, es esencial para que la máquina T HEREIS(2) esté bien definida. La máquina T HEREW AS(2) և if T HEREIS(2) then W RIT E(1) no solo determina la presencia de el sı́mbolo “2”, sino que también, habiendo encontrado una celda conteniendo éste sı́mbolo, lo remplaza con el sı́mbolo “1”. Las máquinas T HEREIS(3) y T HEREW AS(3) son definidas y actuarán de manera analoga a T HEREIS(2) y T HEREW AS(2) respectivamente. Las máquinas T HEREW AS(2) y T HEREW AS(3) restauran el sı́mbolo “1” para solo una celda. En contraste, la máquina: REST ORE և while T HEREIS(2) do T HEREW AS(2) od; while T HEREIS(3) do T HEREW AS(3) od restaura todos los sı́mbolos “1” que las máquinas M ARK(2) y M ARK(3) habı́an remplazado anteriormente por “2” ó “3”. Para k 6= l la máquina N OT GREAT ER(k, l) և F IN D(k); M ARK(2); F IN D(l); M ARK(3); while T HEREIS(2) and T HEREIS(3) do T HEREW AS(2); T HEREW AS(3) od; while T HEREIS(2) do REST ORE; ST OP od; REST ORE compara ak y al y se detiene en el estado q2 ó q3 dependiendo de cual de las dos desigualdades ak ≤ al ó ak > al se cumple. Similarmente las máquinas EQU AL(k, l) և N OT GREAT ER(k.l) and N OT GREAT ER(l, k) y N OT EQU AL(k, l) և while EQU AL(k.l) do ST OP od determinan si ak y al son iguales. 10 2.2. El décimo problema de Hilbert es indecidible Diremos que un conjunto es Diofántico si es un conjunto de números naturales, de pares de números naturales, o de forma más general, de n-tuplas de números naturales ha1 , ..., an i que tienen definiciones Diofánticas. Dicho de otro modo, si existe una ecuación (o sistema) Diofántica cuya solución sea el conjunto de n-tuplas de números naturales ∆ ∋ ha1 , ..., an i entonces ∆ es un conjunto Diofántico. Tanto un sistema de ecuaciones Diofánticas simultaneas como una ecuación Diofántica individual, pueden definir un conjunto Diofántico, porque el sistema: p1 = 0, p2 = 0, ..., pk = 0 Es equivalente a la ecuación individual: p21 + ... + p2k = 0. Definiremos ahora el concepto de ecuación Diofántica universal. La resolución de cualquier ecuación Diofántica dada, puede reducirse a solucionar la ecuación universal escogiéndo los valores sustituibles para los parámetros. La ecuación universal permitirá construir un conjunto Diofántico cuyo complemento no es Diofántico. Una ecuación Diofántica “Universal” tiene la forma de una familia de ecuaciones U (a1 , ..., an , k1 , ..., km , y1 , ..., yw ) = 0 (*) cuyos elementos parámetricos son a1 , ..., an y sus parámetros de “código” k1 , ..., km . La ecuación anterior es llamada “Universal” si para cualquier ecuación Diofántica dada con n parámetros D(a1 , ..., an , x1 , ..., xr ) = 0 (**) D existen números k1D , ..., km tales que la ecuación anterior tiene una solución en x1 , ..., xr para precisamente aquellos valores de los parámetros a1 , ..., an para los que la ecuación D U (a1 , ..., an , k1D , ..., km , y1 , ..., yw ) = 0 (***) tiene una solución en y1 , ..., yw . En otras palabras, podemos decir que la ecuación (***) provee otra representación de el conjunto Diofántico definido por (**). Ası́ que toda ecuación universal da lugar a una codificación de los conjuntos Diofánticos de una cierta D dimension fija; esto es, la tupla hk1D , ..., km i puede ser considerada un “código de el conjunto” definido por la ecuación (**). Podemos también tratar la ecuación (*) como una ecuación en la cual todos los parámetros a1 , ..., an , k1 , ..., km son elementos paramétricos; es decir, la ecuación (*) define un conjunto Diofántico de (m+n)-tuplas de números naturales llamado, naturalmente, “conjunto Diofántico universal”. Con las ecuaciones Diofánticas universales es posible construir un ejemplo de un conjunto Diofántico cuyo complemento no es Diofántico. La existencia de tales conjuntos implica que no se puede extender el arsenal de herramientas de la lógica y de la teorı́a axiomática de conjuntos, para construir conjuntos Diofánticos (conformados por ∧ , ∃ , ∨). añadiendo ya sea, negación ¬, ó el cuantificador universal ∀. 11 Llamaremos H0 al conjunto definido por la ecuación universal U0 (t, y1 , ..., ym ) = 0. De acuerdo con ésta definición, H0 es justamente el conjunto de codigos de aquellos parámetros libres de ecuaciones Diofánticas que tienen solución. En esta terminologı́a, el décimo problema de Hilbert es precisamente el problema de proveer un metodo para decidir si un numero dado a pertenece al conjunto H0 . El polinomio U0 esta definido por la ecuación U0 (k, y1 , ..., ym ) = U1 (0, k, y1 , ..., ym ) luego resolver la ecuación U0 (t, y1 , ..., ym ) = 0 se reduce a resolver U1 (p, q, y1 , ..., ym ) = 0 con p = 0 y q = t. Con la intención de probar que H0 , el complemento de H0 no es Diofántico, se puede establecer una relación inversa; se puede probar que resolver la ecuación U0 (p, q, y1 , ..., ym ) = 0 para cualquier parámetro p y q, se puede reducir a resolver U0 (t, y1 , ..., ym ) = 0 para un valor apropiado de t ( ver secciones 4.3, 4.5 y 4.6 del libro “Y.V. Matiyasévich, Hilbert’s Tenth Problem”). Decimos que un conjunto ℜ es recursivamente numerable si existe un algoritmo que se detendrá si su entrada (input) es un elemento de ℜ, pero seguirá corriendo indefinidamente si su entrada no pertenece a ℜ. Resulta evidente que los conjuntos Diofánticos son, por definición, recursivamente numerables. Dada una ecuación o sistema Diofántico, pueden formarse secuencialmente todas las tuplas posibles de valores de las incógnitas y después, para un valor dado de los parámetros, comprobar una tras otra las tuplas, para detectar si si son o no solución de la ecuación o sistema. Luego la propia ecuación o sistema que define el conjunto Diofántico define el algoritmo que avala la numerabilidad recursiva del conjunto. Por lo tanto: “∆ conjunto Diofántico ⇒ ∆ conjunto recursivamente numerable”. La imposibilidad de resolver el décimo problema de Hilbert es consecuencia de que el reciproco también es cierto: “ℜ conjunto recursivamente numerable ⇒ ℜ conjunto Diofántico”. Este resultado se conoce de dos formas: como el teorema de Matiyasévich, por que fue Yuri Matiyasévich el que consiguió el desarrollo final que permitió demostrar el resultado; y como teorema MRDP, nombre que agrupa a los matemáticos que consiguieron el desarrollo completo, comenzando por Matiyasévich, y continuando con Julia Robinson, Martin Davis y Hilary Putnam. Dado que existe un conjunto recursivamente numerable que no es computable (su función caracterı́stica es computable total. i.e la función caracterı́stica, la cual es un predicado, toma valor “1” (cierto) para todos los elementos del conjunto y “0” (falso) para el resto), la irresolubilidad del décimo problema de Hilbert es una consecuencia inmediata. De hecho puede decirse más; Existe un polinomio P (a, x1 , ..., xn ) con coeficientes enteros, tal que 12 el conjunto de valores de a para el que la ecuación P (a, x1 , ..., xn ) = 0 tiene soluciones en los naturales no es computable. Ası́ pues, no sólo no existe un algoritmo general para detectar la resolubilidad de las ecuaciones Diofánticas, sino que también puede demostrarse que nisiquiera existe un algoritmo particular para la familia de ecuaciones con un único parámetro. Dada una ecuación Diofántica paramétrica: D(a1 , ..., an , x1 , ..., xm+1 ) = 0, se puede construir una máquina de Turing M que eventualmente se detendrá, comenzando con una representación de la tupla ha1 , ..., an i, si y solo si la ecuación anterior tiene solución en las variables x1 , ..., xm+1 . Diremos que una ecuación es “semidecidible” si, en caso de que ésta sea soluble, ello se podrá revelar de manera puramente mecánica. De aquı́ concluimos que las ecuaciones Diofánticas son semidecidibles. De manera más general diremos que un conjunto M de n-tuplas de números naturales es “Turing-semidecidible” si existe una máquina de Turing M que, comenzando en el estado q1 , con una cinta que contiene la representación canónica de la tupla ha1 , ..., an i, y con la cabeza escaneando la primera celda (más a la izquierda) de la cinta, eventualmente se detendrá si y solo si ha1 , ..., an i ∈ M. En este caso diremos que M semidecide M. Omitiendo la prueba formal, se tiene que todo conjunto Diofántico es Turing-semidecidible. Por otro lado también se tiene el reciproco: “T odo conjunto T uring-semidecidible es Diof antico”. La prueba se omite por extensa (ver secciones 5.4 y 5.5 del libro “Y.V. Matiyasévich, Hilbert’s Tenth Problem”). Ahora introduciremos otra noción que nos permitirá reformular el enunciado del décimo problema de Hilbert de manera más precisa. Diremos que un conjunto M de n-tuplas de números naturales es “Turing-decidible”, si existe una máquina M que, comenzando en el estado q1 , con la cabeza escaneando la celda más a la izquierda (la que contiene a ⋆), de una cinta que contiene la representación canonica de la tupla ha1 , ..., an i; eventualmente se detendrá en el estado q2 si ha1 , ..., an i ∈ M ó en el estado q3 si ha1 , ..., an i ∈ / M. Es natural preguntarse que relación hay entre conjuntos Turing-semidecidibles y Turingdecidibles. Es fácil ver que si el conjunto M es Turing-decidible, entonces éste es también Turingsemidecidible. De hecho, si M es una máquina de Turing que confirma la decidibilidad de M, entonces la máquina: while M do ST OP od; N EV ERST OP semidecide el conjunto M. 13 Ésta máquina ejecuta N EV ERST OP inmediatamente después de haber sido ejecutada while M do ST OP od (i.e desde la posición en la que queda la maquina while M do ST OP od). Es fácil ver también que si un conjunto es Turing-decidible entonces su complemento es también Turing-semidecidible. Para esto, basta considerar la máquina: while M do N EV ERST OP od. No es tan evidente que el reciproco también es cierto: “si M y su complemento son T uring − semidecidibles, entonces M es T uring − decidible”. Para visualizar ésto consideremos dos máquinas M2 y M3 que semideciden al conjunto M y a su complemento, respectivamente. Podemos construir una tercera máquina M que simule las operaciones de las máquinas M2 y M3 en su cinta, operando en turno los pasos sucesivos de cada máquina. (Naturalmente, simular cada paso de M2 ó M3 requiere que la máquina M ejecuta varios pasos). Eventualmente, una de las dos máquinas M2 ó M3 se detendrá, y entonces la máquina M entrará en el estado final q2 ó q3 respectivamente. Los detalles técnicos envueltos en ésta construcción de una máquina M que simula simultáneamente a dos máquinas dadas, son complicados. Sin embargo, aprovechando la equivalencia establecida anteriormente entre la clase de conjuntos Turing-semidecidibles con la clase de conjuntos Diofánticos, se puede dar una prueba corta. En lugar de simular máquinas de Turing, podemos construir un par de ecuaciones Diofánticas: D2 (a1 , ..., an , x1 , ..., xm ) = 0 y D3 (a1 , ..., an , x1 , ..., xm ) = 0, que, respectivamente, definen el conjunto M y su complemento (sin pérdida de generalidad, podemos asumir que ambas ecuaciones tienen el mismo número de variables). Las dos ecuaciones pueden combinarse en una sola ecuación: (D22 (a1 , ..., an , x1 , ..., xm ) + (1 − ym )2 ) · (D32 (a1 , ..., an , x1 , ..., xm ) + ym ) = 0, la cual tiene solución para cualquier valor de los parámetros, y además, ha1 , ..., an i ∈ M si y solo si ym = 1 en ésta solución. Sea M la máquina N EW ; while M1 do M2 ; IN C od construida con la ecuación (D22 (a1 , ..., an , x1 , ..., xm ) + (1 − ym )2 ) · (D32 (a1 , ..., an , x1 , ..., xm ) + ym ) = 0, sustituida por la ecuación D(a1 , ..., an , x1 , ..., xm+1 ) = 0. 14 La cual actúa comenzando (usando la máquina N EW ) por transformar la tupla ha1 , ..., an i en la tupla ha1 , ..., an , 0i. Si la máquina M1 determina que 0 es el número de Cantor de una solución de la ecuación D(a1 , ..., an , x1 , ..., xm+1 ) = 0, entonces la máquina M inmediatamente se detiene. De lo contrario, las máquinas M2 y IN C actúan para construir la tupla ha1 , ..., an , 1i, y la máquina M1 procede a determinar si 1 es el número de Cantor de una solución, y ası́ sucesivamente. Si la ecuación D(a1 , ..., an , x1 , ..., xm+1 ) = 0 tiene una solución, entonces la máquina M eventualmente se detendrá; de lo contrario si no tiene solución, la máquina M continuará indefinidamente sin detenerse. (la construcción de las máquinas M1 y M2 anteriormente mencionadas se explican en la sección 5.4 del libro “Y.V. Matiyasévich, Hilbert’s Tenth Problem”). Cuando M se detenga, la cinta contendrá la representacion de una tupla de la forma ha1 , ..., an , y0 , x1 , y1 , ..., xm , ym , 1, z1 , ..., zk i. Una máquina que decida a M, puede ser definida como M ; EQU AL(l, l + 1) donde l = n + 1 + 2m. Ésta máquina determina si la ecuación ym = 1 se cumple, por que la constante 1 y el valor ym son los l-ésimo y l + 1-ésimo elementos respectivamente, en la tupla anterior. Ahora podemos reformular el décimo problema de Hilbert de una manera más explı́cita: “¿Es el conjunto de códigos de todas las ecuaciones Diofánticas solubles (sin parámetros), un conjunto Turing-decidible?”. Éste conjunto lo habı́amos denotado por H0 y vimos que se podı́a probar que H0 , el complemento de H0 , no es un conjunto Diofántico. Lo cual implica que el conjunto H0 no es Turing-decidible. En otras palabras: “Es imposible construir una máquina de Turing que, comenzando con la representación de un número k en la cinta, ésta se detendrá después de un número finito de pasos en el estado q2 si la ecuación con código k es resoluble, ó en el estado q3 si no tiene solución.” Vimos que el conjunto H0 es Diofántico por definición, éste hecho muestra que las máquinas de Turing son incapaces de decidir si las ecuaciones que pertenecen a una familia particular de ecuaciones Diofánticas, tienen ó no tienen solución; menos aún para ecuaciones Diofánticas arbitrarias. 15 3. Tesis de Church y algunos comentarios Anteriormente establecimos dos importantes resultados: “La clase de conjuntos Diofánticos es identica a la clase de conjuntos Turing-semidecidibles” y “El décimo problema de Hilbert es Turing-indecidible” Sin embargo, estos resultados bastante técnicos plantean una serie de nuevas preguntas. Mientras que la definición de conjunto Diofántico es bastante natural, en la del ejemplo de Turing-semidecidible, se podrı́a usar la notación binaria en lugar de unaria para representar números. la cinta podrı́a ser infinita en ambas direcciones en lugar de en una sola dirección. en lugar de una sola cabeza, puede haber varias, cada una ejecutando su propio conjunto de instrucciones, mientras el intercambio de información acerca de sus respectivas celdas escaneadas. Además, puede haber varias cintas. de hecho, la memoria no tiene por qué incluso ser lineal; se podrı́a, por ejemplo, tomar la forma de un plano dividido en celdas cuadradas. para cada modificación del concepto de máquina de Turing, uno puede introducir un concepto correspondiente de semidecidibilidad y plantear la cuestión de cómo este concepto se relaciona con conjuntos Diofánticos. La reformulación del décimo problema de Hilbert mencionada anteriormente podrı́a ser criticado, ya que se basa en un método muy especial para la codificación de las ecuaciones diofánticas. Serı́a más natural escribir en la cinta el número de incógnitas, el grado y los coeficientes de una ecuación en unario o alguna notación posicional. Hilbert no impone ninguna restricción en el método deseado para resolver el décimo problema. Por lo tanto, con alguna notación apropiada para los polinomios, alguien habrı́a tenido éxito en la construcción de una máquina de decisión, que sin duda habrı́a proporcionado una solución positiva del décimo problema de Hilbert. Ası́, en qué medida puede la Turingindecidibilidad, establecida anteriormente, ser considerada para constituir una solucion negativa? Para cada modificación del concepto de las máquinas de Turing (o cualquier otro dispositivo informático abstracto) y para cada método de representación de los datos iniciales sobre la cinta, se podrı́a tratar de obtener resultados como los dos mencionados al inicio de ésta sección. esto podrı́a hacerse directa o indirectamente. Mucho antes de la aparición de las primeras nociones matemáticamente rigurosas de los dispositivos informáticos abstractos tales como las máquinas de Turing, existı́a la noción intuitiva de un algoritmo como método garantizado para la solución de problemas mecanicos de una especie determinada. Un ejemplo clásico es el algoritmo de Euclides para encontrar el máximo común divisor de dos enteros positivos. Los datos iniciales para un algoritmo (en el sentido intuitivo) se seleccionan de entre un conjunto numerable, y esencialmente, sin pérdida de generalidad, sólo vamos a considerar situaciones en las que los datos iniciales se componen de números naturales o tuplas de números naturales de longitud fija. 16 El resultado de la realización de un algoritmo es también un objeto de la clase apropiada. Podrı́amos haber optado por considerar solamente los algoritmos cuyas salidas son números naturales, pero está más en el espı́ritu del tema de este documento, considerar algoritmos con las dos salidas“Sı́” y “No”. De manera correspondiente, junto con el concepto intuitivo de algoritmo, surgen dos conceptos relacionados, a saber, los conceptos intuitivos de conjunto decidible y semidecidible. Un conjunto M de n-tuplas es decidible (en el sentido intuitivo) si existe un algoritmo (también en el sentido intuitivo) que se detiene en cada n-tupla de números naturales y da los informes de “Sı́” ó “No” en función de si la n-tupla pertenece o no al conjunto. Del mismo modo, para decir que M es semidecidible, necesitarı́amos un algoritmo que informara “Sı́” para cada n-tupla en M y que informe “No” ó dejar de detenerse si la tupla no pertenece a M. La teorı́a de la computabilidad, en su totalidad, podrı́a ser expuesta en términos de conjuntos decidibles y semidecidibles, al igual que podemos eliminar la noción de las funciones matemáticas y tratar sólo con sus gráficas. Entre decidibilidad intuitiva y semidecidibilidad existe la misma relación que entre Turing-decidibilidad y Turing-semidecidibilidad. Un conjunto es decidible si y sólo si tanto él como su complemento son semidecidibles. ¿Cómo está relacionado el concepto formal de Turing-(semi)decidibilidad con el de (semi)decidibilidad en el sentido intuitivo? Una relacı́on es evidente: conjuntos Turing-(semi)decidibles son reconocidos por muchos matemáticos como (semi)decidibles en el sentido intuitivo. El reciproco es conocido como LA TESIS DE CHURCH: Cada conjunto de n-tuplas que sea (semi)decidible en el sentido intuitivo también es Turing-(semi)decidible. Aquı́ hemos encontrado algo que raramente se encuentra en las matemáticas, una tesis. ¿Qué es?. No es un teorema, ya que no tiene ninguna prueba. No es una conjetura, ya que no puede tener una prueba. nisiquiera es un axioma, que seamos libres de aceptar o rechazar. Todo esto es debido al hecho de que la tesis de Church no es una declaración matemática precisa, porque se relaciona la noción rigurosa de Turing-(semi)decidibilidad con la idea no rigurosa de (semi)decidibilidad en el sentido intuitivo. Por un lado la tesis de Church, puede servir como una estrella guı́a: tan pronto como se haya establecido el concepto de (semi)decidibilidad en el sentido intuitivo, nuestra oportunidad de encontrar la máquina de Turing correspondiente debe ser considerada muy alta. De hecho, los matemáticos profesionales por lo general se contentan con establecer (semi)decidibilidad intuitiva y no enfocarse en pruebas formales. Por otra parte, la tesis de Church juega un papel en las matemáticas similar al que juega en otros lugares la ley de conservación de la energı́a. Es decir, siempre y cuando no se encuentre una excepción a la ley, no es razonable que disponerse a construir una máquina de movimiento perpetuo. Del mismo modo, una vez que la indeterminación de un conjunto de Turing se haya demostrado, no hay que gastar el tiempo en busca de un método universal para el reconocimiento de los elementos de ese conjunto. En particular, de acuerdo con la tesis de Church, los resultados al inicio de ésta sección nos dan el derecho moral de poner fin a la caza. (Llevada a cabo hasta ahora en vano) de un ”proceso”del tipo que Hilbert pidió en su décimo problema. 17 Alan Turing introdujo los dispositivos informáticos abstractos que ahora llevan el nombre de él en su paper clásico de [1936]. Una noción muy similar también fue introducida por Emil L. Post en [1936]. Desde ese momento numerosas modificaciones de la Turing-Post máquina se han propuesto. La versión utilizada anteriormente en éste documento se eligı́o para que fuera especialmente adecuada para la simulación de ecuaciones Diofánticas. Varios autores han propuesto otros enfoques para hacer la noción general de algoritmo preciso. (Una exposición de la historia de la teorı́a de la computabilidad (en Rusia el sujeto se refiere a menudo como la teorı́a de algoritmos) se puede encontrar en Uspenskil y Semenov [1987].) Todos estos enfoques llevó a nociones equivalentes de conjuntos decidibles y conjuntos semidecidables (estos últimos son más a menudo llamados “recursivamente numerables”). Alonzo Church [1936] fue el primero en darse cuenta de que una sola y, a primera vista, muy especial definición, puede ser adecuada para la noción fundamental de la computabilidad. La tesis de Church tiene muchas formulaciones equivalentes en función de la elección de un particular tipo de dispositivo informático abstracto. A la formulación dada anteriormente a veces se le llama la tesis de Turing. Kolmogorov y Uspenskil [1958], quienes intentaron dar una definición más general de un dispositivo de computación abstracta que satisface el requisito de que cada paso debe ser elemental, y haya demostrado su equivalencia con los modelos más tradicionales de dispositivos informáticos, en particular, a las máquinas de Turing. Los primeros documentos destinados a probar la insolubilidad algorı́tmica del décimo problema de Hilbert apareció en la década de 1950. Incluso en ese momento, no habı́a dificultad en probar que todos los conjuntos diofánticos son semidecidibles.(Para cualquier definición estándar de la última noción). En este mismo tiempo Martin Davis [1953], expone la hipótesis audaz de que lo contrario también es cierto, es decir, que cada conjunto semidecidible es Diofántico, y por lo tanto que la noción de la teorı́a de números de conjunto Diofántico, coincide con la noción de conjunto semidecidible de la teorı́a de computabilidad. < Tomado del libro; Matiyiasevich, Y. V. [1993]; Hilbert’s tenth problem. MIT press. > 18 4. Bibliografı́a [1] Yuri V. Matiyasevich, with a foreword by Martin Davis; Hilbert’s Tenth Problem, MIT Press, Cambridge, Massachusetts, [1993]. ISBN 0-262-13295-8 [2] Yuri Matiyasevich, Martin Davis, and Julia Robinson; Hilbert’s tenth problem. Diophantine equations: positive aspects of a negative solution, volume 28 of Pro. of Sym. in Pure Mathematics, pages 323-378, Providence, Rhode Island. AMS 19