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