Vous êtes sur la page 1sur 33

Trabajo para Beca de Excelencia 2009

Computaci on
Autor:
Alejandro Serrano
Tutor:
Roberto Moriy on
19 de abril de 2009
2

Indice general
1. Codicaciones y diagonalizacion 5
1.1. Codicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2. Diagonalizaci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2. Funciones recursivas. Teora de la recursion 11
2.1. Funciones recursivas primitivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1. Ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.2. Clausura por minimizacion acotada . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.3. Incompletitud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2. Funciones -recursivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.1. Eliminacion de la recursi on primitiva . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3. Primeros resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4. Conjuntos recursivos y recursivamente enumerables . . . . . . . . . . . . . . . . . . . . . . 20
2.5. Indecibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.6. Teoremas de la recursi on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.7. Funciones con oraculo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3. Sistemas de ecuaciones 29
3.1. Denabilidad por sistemas de ecuaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2. Equivalencia con las funciones recursivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3
4
1
Codicaciones y diagonalizacion
1.1. Codicaciones
Mucha de las ideas sobre computabilidad tienen en comun el tener al mismo nivel al conjunto de numeros
naturales, N, y al de ciertas proposiciones o relaciones que se reeren a los mismos. Para ello se suele seguir
un proceso denominado genericamente aritmetizaci on, que consiste en expresar esas proposiciones as mismo
mediante un numero natural. No obstante, obtener un numero natural para cada caso de forma biunvoca
suele ser una tarea complicada, por lo que se suele trabajar con secuencias de numeros naturales. Veremos
que esto no inuye para nada, ya que existen maneras computacionalmente validas de pasar de una secuencia
de numeros naturales a un solo numero, y viceversa.
Empezaremos una funci on que nos permite llevar N N en N:
J(x, y) =
(x + y)
2
+ 3x + y
2
Es facil comprobar que esta funci on esta bien denida: ya que (x +y)
2
+3x +y = (x +y)(x +y +1) +2x,
J(x, y) sera siempre un numero natural, como queramos.
Veamos que para cada z N existe un unico par (x, y) tal que z = J(x, y): sean z, x, y N que
cumplen la ecuacion original:
2z = x
2
+ y
2
+ 2xy + 3x + y
4 2z = 4x
2
+ 4y
2
+ 8xy + 12x + 4y
8z + 1 = 4x
2
+ 4y
2
+ 8xy + 4x + 4y + 1 + 8x
8z + 1 = (2x + 2y + 1)
2
+ 8x
Por tanto tenemos que
(2x + 2y + 1)
2
8z + 1 < (2x + 2y + 3)
2
2x + 2y + 1

8z + 1 < 2x + 2y + 3
As pues,

8z + 1 puede ser bien 2x +2y +1 o bien 2x +2y +2, y de aqu obtenemos que

8z + 1 +1
es 2x + 2y + 2 o 2x + 2y + 3. De aqu concluimos que
x + y + 1 =

8z + 1 + 1
2
x + y =

8z + 1 + 1
2
1 = Q
1
(z)
Si introducimos esta ultima igualdad en la ecuacion original obtenemos
3x + y = 2z
_

8z + 1 + 1
2
1
_
2
= Q
2
(z)
5
Las dos ultimas ecuaciones nos proporcionan un sistema de dos ecuaciones lineales compatible determinado,
por lo que podemos concluir que para cada z existe como mucho un par (x, y) que satisface la ecuacion
que dene J.
De hecho, podemos explicitar los correspondientes x e y que resultan de estas ecuaciones:
x =
Q
2
(z) Q
1
(z)
2
= K(z)
y = Q
1
(z)
Q
2
(z) Q
1
(z)
2
= L(z)
De este modo hemos comprobado que existen funciones K y L que cumplen x = K(J(x, y)), y = L(J(x, y)).
Nos queda comprobar que cualquier z simboliza un par de numero naturales: sea z N y r el mayor
numero tal que
1 + 2 + + r z
y denamos x = z (1 +2 + +r ). Claramente este x sera menor que r , puesto que si no la eleccion del
segundo no habra sido la correcta. Si ahora hacemos y = r x podemos comprobar que
z = [1 + 2 + + (x + y)] + x
=
(x + y)(x + y + 1) + x
2
= J(x, y)
Estos tres hechos nos proporcionan una prueba para el siguiente
Teorema. Existen funciones (recursivas) J(x, y), K(z), L(z) que cumplen
J(K(z), L(z)) = z,
K(J(x, y)) = x,
L(J(x, y)) = y.
Corolario. Si K(z) = K(z

) y L(z) = L(z

), entonces z = z

.
Demostracion. z = J(K(z), L(z)) = J(K(z

), L(z

)) = z

Cabe preguntarse de donde se obtiene esta funci on de codicacion. Para contestarla, en primer lugar
imagemos N N escrita en forma de matriz rectangular como se muestra en la gura:
(0, 0) (0, 1) (0, 2) (0, 3)
(1, 0) (1, 1) (1, 2)
(2, 0) (2, 1)
(3, 0)
Notese que todos los elementos de una diagonal como la marcada tienen la misma suma.
Ahora establecemos un orden entre las parejas siguiendo el orden de las diagonales: primero las diagonales
que suman 0, luego las que suman 1 . . . Dentro de una misma diagonal establecemos que va antes la pareja
que tenga una primera componente menor. Esto es, establecemos una relaci on de orden tal que
(x, y) < (x

, y

) (x + y < x

+ y

) (x + y = x

+ y

x < x

)
Como hay z + 1 parejas cuya suma es z, la posici on de la pareja (x, y) en esta ordenacion sera
_
x+y1

i =0
i + 1
_
+ x =
(x + y)(x + y + 1)
2
+ x =
(x + y)
2
+ 3x + y
2
que es justo la funci on J que denimos en un principio.
Ahora estableceremos una forma de representar una secuencia de n numeros naturales, usando las
propiedades de divisibilidad de los enteros.
6
Lema. Sea v divisible por los numeros 1, 2, . . . , n. Entonces los numeros 1 +v(i +1) para i = 1, 2, . . . , n
son primos dos a dos.
Demostracion. Sea m
i
= 1 +v(i + 1). Como v es divisible por 1, 2, . . . , n, cualquier divisor de m
i
distinto
de 1 debe ser mayor que n.
Por otra parte, supongamos que existe un d tal que d|m
i
y d|m
j
, i > j . Entonces d|(i +1)m
j
(j +1)m
i
,
de lo que se deduce que d|i j . Pero i j n. Por tanto d = 1.
Teorema. Sean a
0
, a
1
, . . . , a
n
una secuencia nita de enteros. Entonces existen enteros u u v tal que
R(u, 1 + v(i + 1)) = a
i
, i = 0, 1, . . . , n.
Demostracion. Sea A el mayor de los enteros a
0
, a
1
, . . . , a
n
y sea v = 2A n!. Sea m
i
= 1 + v(i + 1).
Entonces, por el lema anterior, los m
i
son primos dos a dos. Ademas a
i
< v < m
i
.
Por el Teorema Chino del Resto
1
existe un numero u tal que
u a
i
(m od m
i
), i = 0, 1, . . . , n
Esto es,
R(u, m
i
) = R(a
i
, m
i
), i = 0, 1, . . . , n
Pero a
i
< m
i
. Luego R(a
i
, m
i
) = a
i
. De este modo tenemos que
R(u, 1 + v(i + 1)) = R(u, m
i
) = R(a
i
, m
i
) = a
i
Teorema. Existe una funci on (recursiva) (a, i ) tal que, si a
0
, a
1
, . . . , a
n
son enteros cualesquiera, existe
un a tal que ( a, i ) = a
i
, i = 0, 1, . . . , n.
Demostracion. Por el teorema anterior, existen numeros u y v tal que R(u, 1 + v(i + 1)) = a
i
. Denamos
(a, i ) = R(K(a), 1 + (i + 1)L(a)) y sea a = J(u, v). Entonces
( a, i ) = R(K(J(u, v)), 1 + (i + 1)L(J(u, v)))
= R(u, 1 + v(i + 1))
= a
i
, i = 0, 1, . . . , n
Existe otra codicacion clasica de secuencias de numeros naturales; pero que no posee alguna de las
propiedades que hacen interesante la que acabamos de ver, como veremos en el captulo de funciones
recursivas. En esta codicacion, si tenemos la secuencia x
0
, x
1
, . . . , x
n
, el numero que las representa es
x
1
, . . . , x
n
= p
n
0
p
x1
1
p
x2
2
p
xn
n
= p
n
0

n

i =1
p
x
i
i
donde p
i
representa al (i 1)-esimo numero primo.
Junto a denimos las siguientes funciones de decodicaci on:
(x)
n
= mn
yx
(p
y
n
| x p
y+1
n
x)
len(x) = (x)
0
Seq(x) (n x) [n > 0 (x)
n
= 0 n < len(x)]
Llamamos a (x)
i
la i -esima componente de x, a len(x) la longitud de x y a Seq(x) la condici on de secuencia
(es decir, x codica a una secuencia de forma valida si y solo si Seq(x) se cumple).
1
Sean a
1
, a
2
, . . . , a
k
n umeros cualesquiera, y sean m
1
, m
2
, . . . , m
k
primos dos a dos. Entonces existe un x tal que x
a
i
(m od m
i
), i = 1, 2, . . . , k.
7
Dados x e y, si se cumple Seq(x) Seq(y), podemos denir la concatenacion de x e y:
x y = x
1
, . . . , x
n
, y
1
, . . . , y
m

= p
len(x)+len(y)
0
p
x1
1
p
x
len(x)
len(x)
p
y1
len(x)+1
p
y
len(y)
len(x)+len(y)
= p
len(x)+len(y)
0

len(x)

i =1
p
x
i
i

len(y)

j =1
p
y
j
len(x)+j
Finalmente, diremos que x es una subsecuencia inicial de y si:
x y Seq(x) Seq(y) (u y)(Seq(u) x u = y)
x < y x y x = y
1.2. Diagonalizacion
La diagonalizacion es otro de los metodos basicos, junto con la aritmetizaci on, que usaremos para probar
(y muchas veces para refutar) armaciones sobre computabilidad. La idea central del procedimiento es, dado
un conjunto S y una funci on d : S S, disinta de la identidad,
I Escribimos los elementos de S como una matriz bidimensional innita:
a
0,0
a
0,1
a
0,2

a
1,0
a
1,1
a
1,2

a
2,0
a
2,1
a
2,2

.
.
.
.
.
.
.
.
.
.
.
.
II Obtenemos la denominada diagonal transformada de elementos de S:
d(a
0,0
) d(a
1,1
) d(a
2,2
) . . .
la cual diere de todas las las y columnas, ya que al menos tiene un elemento distinto a cada una de
ellas, puesto que supusimos que d no era la identidad;
III Usamos la diagonal transformada en nuestra demostracion.
Veamos como se aplica este metodo para demostrar un teorema de la teora de conjuntos:
Teorema (de Cantor
2
para N). P(N) no es numerable.
Demostracion. En primer lugar, escribiremos cada X P(N) como una secuencia de 0 y 1. Si en tal
secuencia el caracter i -esimo vale 1, signica que i 1 X. En caso contrario, si tal caracter resulta ser
0, entonces concluiremos i 1 X. Se puede demostrar, aunque no lo haremos aqu, que esto es una
biyecci on entre N

y P(N).
Supongamos que P(N) es numerable. Entonces podemos escribir en algun orden (el que sea es poco
importante para la prueba) las secuencias de todos los subconjuntos de N, lo cual nos genera una matriz
rectangular innita:
X
0
c
X0
(0) c
X0
(1) c
X0
(2)
X
1
c
X1
(0) c
X1
(1) c
X1
(2)
X
2
c
X2
(0) c
X2
(1) c
X2
(2)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
Georg Cantor (1845-1918), matematico aleman nacido en Rusia. Aunque trabajo en analisis en temas como la representa-
cion en funciones trigonometricas, fue en la teora de conjuntos donde no solo consiguio sus mas celebrados resultados, como
el teorema que nos ocupa, sino que sento las races de esa teora como fundamentacion de las matematicas. Se ocup o tambien
de temas como los n umeros transnitos, aunque estos desataron muchas crticas en su epoca, lo que llev o a Cantor a varias
depresiones a lo largo de su vida.
8
donde c
Y
es la funci on caracterstica del conjunto Y .
Ahora tomemos la diagonal y escribamos una nueva secuencia de forma que la posici on i -esima sea justo
la contraria que el elemento (i , i ) de la matriz construida. Por su construccion, esta secuencia representara un
conjunto que no estaba en nuestra enumeracion original (puesto que diere de cada uno de los X
j
en la
pertenencia o no del numero j ). Esto contradice nuestra asuncion de que en la lista estaban todos los
subconjuntos de N. Por tanto, P(N) no es numerable.
9
10
2
Funciones recursivas. Teora de la recursi on
En este captulo hablaremos de las funciones recursivas, que forman una de las bases para formalizar
la idea de algoritmo computable o efectivo. Esta idea fue desarrollada inicialmente por Kleene
1
, pero con
el transcurso del tiempo ha desarrollado una teora propia y bastante extensa, denominada teora de la
recursi on, que estudia todo lo concerniente a las funciones y los conjuntos de numeros naturales.
2.1. Funciones recursivas primitivas
Como se puede deducir de su nombre, en las funciones recursivas juega un papel fundamental el poder
denir el valor de una aplicacion en un punto mediante los valores de la misma en otros puntos. No obstante
siempre necesitaremos un caso base y una serie de funciones elementales para comenzar. En su estudio
Kleene us o las siguientes funciones base:
Funci on cero: simplemente vale 0 sea cual sea su argumento;
0(x) = 0
Funci on sucesor: le asigna a cada numero el sucesor en el sentido de los axiomas de los numero
naturales, es decir, el que le sigue directamente en la ordenacion usual de los mismos. Aunque no es
del todo correcto, esta funci on se suele describir como
S(x) = x + 1
Funciones de proyeccion: permiten obtener uno de los terminos del conjunto que se le ha pasado
como argumento. Notese que estas funciones forman una familia innita, puesto que hay una para
cada numero de parametros de entrada, y dentro de cada ellas, una por cada argumento que se
selecciona:
U
n
i
(x
1
, . . . , x
n
) = x
i
Junto a estas funciones base, hemos de darnos una serie de reglas que nos digan como combinar las
funciones:
Denici on (Regla de composici on). Sean g
1
, . . . , g
m
funciones N
n
N, y h : N
m
N. Entonces la
composici on de estas funciones se dene como
f : N
n
N
x h(g
1
(x), . . . , g
m
(x))
1
Stephen Cole Kleene (1909-1994), matematico estadounidense. Estudiante de Church, se le considera junto a este y otros
matematicos como Turing y Post el fundador de la computaci on teorica. Su trabajo abarca multitud de facetas de este campo:
invento las expresiones regulares, estudi o caractersiticas de los automatas y los lenguajes, investigo las funciones recursivas
que ahora nos ocupan . . . De hecho existen numerosos conceptos relacionados con estos temas que llevan su nombre, como la
clausura de Kleene, las algebras de Kleene o la jerarqua de Kleene. Fue un gran defensor del intuicionismo matematico.
11
Denici on (Regla de recursi on primitiva). Sean g : N
n
N y h : N
n+2
N. Entonces se puede denir
una nueva funci on f : N
n+1
N tal que
f (x, 0) = g(x)
f (x, y + 1) = h(x, y, g(x, y))
Notese que en el caso de que n = 0, recuperamos la denicion habitual de recursi on:
f (0) = k
f (y + 1) = h(y, f (y))
Denici on. La clase de las funciones recursivas primitivas es la menor clase de funciones que contiene las
funciones base y es cerrada por las reglas de composici on y recursi on primitiva.
Denici on. Un conjunto A (resp. un predicado P) se dice recursivo primitivo si su correspondiente funci on
caracterstica c
A
(resp. c
P
) es recursiva primitiva.
2.1.1. Ejemplos
Veremos aqu algunos ejemplos de funciones que podemos obtener usando unicamente estas reglas
de recursi on primitiva. La primera de ellas es la funci on constante K(x) = k. Para obtenerla, usamos k
composiciones de funciones, en cada una de las cuales vamos aplicando la funci on sucesor a la que habamos
obtenido antes:
K
1
(x) = S(0(x))
K
j
(x) = S(K
j 1
(x)), j = 2, . . . , k 1
K(x) = S(K
k1
(x))
La funcion suma se suele denir de manera recursiva
s(x, 0) = x
s(y, S(y)) = S(s(x, y))
lo cual correspondera a usar composici on y recursi on primitiva con h(x, y, z) = S(U
3
3
(x, y, z)):
s(x, 0) = U
1
1
(x)
s(x, S(y)) = S(U
3
3
(x, y, s(x, y)) = S(s(x, y))
Y del mismo modo tenemos todas estas funciones:
Predecesor Producto
P(x) =
_
x 1 x > 0
0 x = 0
_
p(x, 0) = 0
p(x, S(y)) = p(x, y) + x
Sustracci on propia Sustracci on absoluta
sp(x, y) =
_
x y x > y
0 x y
|x y| =
_

_
x y x > y
0 x = y
y x x < y
Signo Signo complementado
sg(x) =
_
1 x > 0
0 x = 0
s g(x) =
_
0 x > 0
1 x = 0
Maximo Mnimo
max(x, y) =
_
x x > y
y x y
mn(x, y) =
_
x x < y
y x y
12
Tambien son recursivas primitivas las sumas y los productos acotados:

y0
f (x, y) = f (x, 0)

yz+1
f (x, y) =
_

yz
f (x, y)
_
+ f (x, z + 1)

y0
f (x, y) = f (x, 0)

yz+1
f (x, y) =
_

yz
f (x, y)
_
f (x, z + 1)
Esto nos permite denir los operadores logicos basicos:
P 1 c
P
P Q c
P
c
P
(y z)P(x, y)

yz
c
P
(x, y)
2.1.2. Clausura por minimizaci on acotada
Hasta el momento hemos creado funciones a partir de otras funciones componiendolas, y predicados a
partir de otros predicados con los operadores logicos. No obstante, algunas veces queremos que la salida
de una funci on sea el menor numero que cumple cierta propiedad. Aqu nos enfrentaremos con una version
mas sencilla, denominada minimizacion acotada, en la cual buscamos la soluci on en un espacio acotado:
y
z
R(x, y) =
_
el menor y tal que R(x, y) si (y z)R(x, y)
0 en caso contrario
Es sencillo ver que si g(x, y) es la funci on caracterstica del predicado R(x, y)(z < y)R(x, y) (recursiva
primitiva si c
R
lo es), podemos denir la minimizacion acotada como
y
z
R(x, y) =

yz
y g(x, y)
Con todas estos ejemplos podemos ver que nuestra codicacion por numeros primos se puede denir de
un modo recursivo primitivo, una condici on indispensable si queremos usarla en nuestras funciones sin que
estas pierdan su caracter recursivo primitivo. Primero deniremos las nociones de divisibilidad y primalidad:
x | y (z y)x z = y
Pr i mo(x) x 2 (y x)(x | y = y = 1 y = x)
Para denir la secuencia de numeros primos, hemos de observar que p
x+1
p
x
! + 1 (por el argumento de
Euclides). Ademas, el factorial se puede denir recursivamente, ya que es el producto acotado de la funci on
identidad. Tenemos as:
p
0
= 2
p
x+1
= y
ypx !+1
(Pr i mo(y) y > p
x
)
Y de un modo similar podemos denir la funci on de decodicaci on:
(x)
n
= y
x
(p
y
n
| x (p
y+1
n
x))
13
Segun nuestra denicion de recursi on primitiva, el valor de una funci on en un punto solo puede depen-
der del valor en su inmediato predecesor. Sin embargo, podemos extendernos a usar todos los elementos
precedentes sin necesidad de cambiar nuestra denicion, es decir, la clase de funciones recursivas es cerrada
por recursiones f (x, y + 1) que no solo involucran al ultimo valor f (x, y), sino cualquier numero (o incluso
todos) de los valores {f (x, z)}
zy
. Formalmente:
Proposicion. Sea

f la funci on de historia de f

f (x, y) = f (x, 0), . . . , f (x, y)


Entonces, si g y h son primitivas recursivas, la funci on f
f (x, 0) = g(x)
f (x, y + 1) = h(x, y,

f (x, y))
es recursiva primitiva.
Demostracion. Es suciente ver que

f es recursiva primitiva, puesto que entonces f tambien lo es debido
a la identidad:
f (x, y) =
_

f (x, y)
_
y+1
Para ello denimos

f de la siguiente manera:

f (x, 0) = f (x, 0) = g(x, 0)

f (x, y + 1) =

f (x, y) f (x, y + 1)
=

f (x, y) h(x, y,

f (x, y))
lo que hace de ella recursiva primitiva ya que

f (x, y +1) solo usa el ultimo valor

f (x, y), y las funciones de
concatenacion y decodicaci on son recursivas primitivas.
2.1.3. Incompletitud
Aunque existen multitud de funciones recursivas primitivas, existen algunas funciones que encajan en
nuestra idea intuitiva de recursividad y que no son de esta clase. La mas clasica es la funci on de Ackermann:
A(0, x) = x + 1
A(n + 1, 0) = A(n, 1)
A(n + 1, x + 1) = A(n, A(n + 1, x))
Proposicion. Para toda funci on recursiva primitiva f : N
n
N existe algun k N tal que
x N
n
A(k, |x|) > f (x)
Demostracion. Por induccion. Las funciones base lo cumplen trivialmente:
0(x), S(x) < A(0, x) x N
U
n
i
(x) < A(0, |x|) n > 0, 0 < i < n, x N
n
Supongamos ahora que h se dene a partir de f y g, que cumplen la hipotesis de induccion f ( y) <
A(k, | y|) y g(x) < A(k

, |x|). Sea

k = max(k, k

). Entonces tenemos
h(x) = f (g(x)) < A(k, |g(x)|) < A(k, A(k

, |x|)) < A(

k, A(

k + 1, |x|) = A(

k + 1, |x| + 1)
donde usamos que la funci on de Ackermann es creciente en ambos argumentos.
14
Supongamos ahora que f se dene a partir de una funci on g por la regla:
f (0) = m
f (S(y)) = g(y, f (y))
donde g(x) < A(k, |x|). Sea

k = max(k, m). Veremos que la desigualdad del enunciado se cumple con

k +1
en vez de con k. Lo haremos por induccion sobre x. Para x = 0, esto se cumple trivialmente:
f (0) = m < A(m, 0) < A(

k + 1, 0)
Ahora aplicamos la hipotesis de induccion a f (x + 1):
f (x + 1) = g(x, f (x)) < A(k, max(x, f (x)) < A(k, max(x, A(

k + 1, x)))
< A(k, A(

k + 1, x)) < A(

k, A(

k + 1, x)) = A(

k + 1, x + 1)
En el caso de que f tenga como dominio N
n
la demostracion es similar.
Corolario. La funci on de Ackermann no es recursiva primitiva.
Demostracion. Supongamos que f = A y que k es el valor que acota en los terminos de la proposicion
anterior. Entonces, para x = (k, k + 1) tendramos
A(k, k + 1) > A(k, k + 1)
por lo que hemos llegado a una contradicci on, y A no puede ser recursiva primitiva.
2.2. Funciones -recursivas
Para completar el vaco de las funciones recursivas primitivas, se introduce una nueva regla de generaci on
de funciones:
Denici on (Regla de minimizacion o -recursion). Sea R(x, y) un predicado. Entonces se puede denir
una funci on f : N
n
N tal que
f (x) = yR(x, y) = mn{y | R(x, y)}
Alternativamente, sea g : N
n+1
N. Entonces se puede denir una nueva funci on f : N
n
N tal que
f (x) = y(g(x, y) = 0) = mn{y | g(x, y) = 0 z < y, g(x, z) esta denida}
Denici on. La clase de funciones -recursivas o recursivas parciales es la menor clase de funciones que
contiene las funciones base y es cerrada por composici on, recursi on primitiva y minimizacion.
Denici on. Un conjunto A (resp. un predicado P) se dice recursivamente enumerable si su funci on carac-
terstica
c(x) =
_
1 si x A (resp. P(x))
indenida en caso contrario
es recursiva parcial.
Notese que mediante la minimizacion penetramos el mundo de las funciones parciales (es decir, que no
estan denidas en todo N
n
), ya que puede no existir ningun elemento y que cumpla la relaci on R dada o
que sea un cero de la funci on g dada. Extendemos de forma natural las nociones de composici on y recursi on
primitiva para que si en algun momento un elemento pasa a estar indenido toda la expresion pase a estarlo.
No obstante, una forma de restringirnos a las funciones totales es la siguiente:
Denici on. Un predicado P se dice regular si (x)(y)R(x, y).
15
Denici on. La clase de funciones recursivas totales es la menor clase la menor clase de funciones que
contiene las funciones base y es cerrada por composici on, recursi on primitiva y minimizacion, donde los
predicados de esta ultima son regulares.
Denici on. Un conjunto A (resp. un predicado P) se dice recursivo si su funci on caracterstica
c(x) =
_
1 si x A (resp. P(x))
0 en caso contrario
es recursiva total.
2.2.1. Eliminaci on de la recursi on primitiva
Resulta cuanto menos curioso que si cambiamos las funciones basicas a otro conjunto no mucho mas
complicado que el visto hasta ahora, podemos denir las funciones recursivas sin hacer uso de la recursi on
primitiva.
Teorema. La clase de las funciones recursivas es la menor clase de funciones que contiene la suma, el
producto, las proyecciones U
n
i
y la funci on caracterstica de igualdad , y que es cerrada por composici on y
minimizacion.
Demostracion. Sea C la clase denida en el enunciado. Claramente todas las funciones de C son recursivas,
por lo que unicamente tenemos que mostrar que las funciones cero 0 y sucesor S estan en C y que esta
clase es cerrada por recursi on primitiva.
Comenzamos con las funciones base:
0
n
(x) = y(U
n+1
n+1
(x, y) = 0)
1(x) = y((0
2
(x, y), U
2
2
(x, y)) = 0) = y((0, y) = 0) = 1
S(x) = U
1
1
+ 1(x)
Ahora, para ver la clausura por recursi on primitiva, usaremos una codicacion que nos permite guardar
los valores de una funci on f dada por
f (x, 0) = g(x)
f (x, y + 1) = h(x, y, f (x, y))
como
t(x, y) = z[(z, 0) = g(x) (i < y)((z, i + 1) = h(x, i , (z, i )))]
de forma similar a como hicimos con la funci on de historia, ya que entonces
f (x, y) = (t(x, y), y)
Tal funci on es justamente la denida en el captulo de codicaciones. Nos queda ver que podemos
denirla dentro de nuestra clase C. Para ello iremos viendo que es posible denir ciertas operaciones inter-
medias:
Negacion: sea c
R
la funci on caracterstica de la relaci on R. Entonces c
R
(x) = (c
R
(x), 0).
Disyunci on y conjunci on: sean c
R
y c
S
funciones caractersticas de las relaciones R y S. Entonces
c
RS
(x) = ((c
R
(x), c
S
(x), 0), 0). Usando las leyes de De Morgan tenemos que c
RS
= c
(RS)
.
Minimizaci on sobre predicados: yR(x, y) = y(c
R
(x, y) = 1) = y(c
R
(x, y) = 0).
Minimizaci on acotada: en esta prueba usaremos una version ligeramente distinta a la habitual
y
z
R(x, y) =
_
yR(x, y) si (y < z)R(x, y)
z en caso contrario
que podemos expresar como
y
z
R(x, y) = y(R(x, y) y = z)
16
Cuanticadores acotados: Para el existencial tomamos
(y < z)R(x, y) (y
<z
R(x, y)) = z
Y a partir de este, podemos denir el universal como
(y < z)R(x, y) (y < z)R(x, y)
Usando estos elementos, ya podemos denir cada una de las funciones basicas que forman nuestra ,
tal y como lo hicimos en el captulo anterior:
J tiene la forma explcita
J(x, y) =
(x + y)
2
+ 3x + y
2
donde solo nos queda ver que podemos denir la funci on
z
2
:
z
2
= y(2y = z 2y + 1 = z)
K y L pueden expresarse con minimizacion y predicados:
K(z) = x(y < z + 1)(z = J(x, y))
L(z) = y(x < z + 1)(z = J(x, y))
Finalmente necesitamos la operacion de resto de una divisi on:
resto(x, y) = z
<y
(q < x + q)(x = qy + z)
Con esto podemos denir , mediante la cual podemos simular la recursi on primitiva, tal y como queramos
demostrar.
2.3. Primeros resultados
A partir de ahora usaremos una notaci on mas convencional en las funciones recursivas. Si es una
funci on, escribiremos (x) para indicar que esta denida para esos argumentos de entrada, en cuyo
caso diremos que converge, y (x) y para indicar que converge y que el resultado es exactamente y.
Escribiremos (x) y diremos que diverge para x si la funci on no esta denida para esos parametros.
Denotaremos x y al hecho de que dos valores sean iguales en el sentido de ser ambas indenidas o
tener ambas el mismo valor. Con estas nociones, podemos establecer un orden parcial de inclusion entre las
funciones recursivas parciales:
x((x) = (x) (x)
Teorema (de la Forma Normal para funciones). Existe una funci on recursiva primitiva U y para cada n 1
un predicado recursivo primitivo T
n
tal que para cada funci on recursiva y de n variables existe un numero
e (el ndice de ) tal que:
I (x) yT
n
(e, x, y)
II (x) U(yT
n
(e, x, y))
Demostracion. La idea principal es asociar numeros a funciones y computaciones de manera que T
n
(e, x, y)
signique: y es el valor de la funci on codicada por e sobre los valores x. De esta manera yT
n
(e, x, y)
nos devolvera un valor de esa computaci on el cual U decodicara.
Corolario. es recursiva total es recursiva parcial y denida en todo su dominio.
17
Demostracion. Claramente si una funci on es recursiva total es recursiva parcial y denida siempre (ya que
las minimizaciones tienen asegurado el encontrar un elemento). Ahora, si es recursiva partical entonces
para algun e se cumple que
(x) U(yT
n
(e, x, y))
Si es total entonces x
1
. . . x
n
((x) ) y por el teorema anterior
x
1
. . . x
n
yT
n
(e, x, y)
y por tanto T
n
(e, x, y) es regular. As, es recursiva total.
Con estas sencillas deniciones ya estamos preparados para hacer nuestro primer uso de la diagonaliza-
cion:
Teorema. Existe una funci on total que no es recursiva.
Demostracion. Supongamos una enumeracion de todas las funciones recursivas. Entonces denimos la
funci on
f (x) =
_

x
(x) + 1 si
x
(x)
0 si
x
(x)
Esta funci on diere de todas las funciones de la lista en al menos un valor, por lo que no estaba en la lista,
contradiciendo nuestra suposicion.
A partir de este teorema, podemos considerar cada numero e como el ndice de la funci on recursiva
parcial dada por
U(y(T
n
(e, x, y))
No debemos preocuparnos si cada e representa una funci on bien formada, con cierto numero de parametros...
ya que en todo caso el operador hara que la operacion este indenida, lo cual esta dentro de los lmites
de este tipo de funciones.
Denici on. I Denotaremos
n
e
o {e}
n
a la funci on recursiva dada por el ndice e con n variables:

n
e
(x) {e}
n
(x) U(yT
n
(e, x, y))
II Denotaremos
n
e,s
o {e}
n
s
a la aproximacion de
n
e
a nivel s, esto es:

n
e,s
(x) {e}
n
s
(x)
_

n
e
(x) si (y < s)T
n
(e, x, y)
en otro caso
Intuitivamente, esto consiste en considerar el transcurso de computaci on de
n
e
y cortarlo en el paso s.
Notese que si
n
e,s
(x) entonces tanto las entradas como las salidas deben ser menores que s, por las
propiedades de las funciones de codicacion.
Veamos ahora un teorema que nos muestra la doble vida de los naturales en esta teora: se usan
tanto como ellos mismos, como para codicar funciones. Esto sera muy util cuando queramos construir
autorreferencias o manipular expresiones (como en una maquina universal).
Teorema (de Enumeraci on). La sucesi on {
n
e
}
eN
es una enumeracion recursiva parcial de todas las fun-
ciones recursivas parciales de n argumentos, en el sentido de que
I para cada e,
n
e
es una funci on recursiva parcial de n variables,
II si es una funci on recursiva parcial de n variables, entonces existe un e tal que
n
e
,
III existe una funci on recursiva parcial de n + 1 variables tal que (e, x)
n
e
(x).
18
Demostracion. Se sigue del Teorema de la Forma Normal y de la denicion de
n
e
. Para la denicion de ,
simplemente tomamos
(e, x) U(yT
n
(e, x, y))
Aunque no vamos a entrar en muchos detalles sobre los ndices, conviene dar un par de resultados que
nos resultaran utiles mas adelante.
Lema (de Relleno). Dado un ndice de una funci on recursiva parcial, podemos generar un numero innito
de ndices adicionales que representan a la misma funci on.
Demostracion. Dado unndice e, podemos generar mas anadiendo a la descripcion codicada por e cualquier
numero nito de ecuaciones redundantes.
Teorema (de Parametrizaci on, de Iteracion, o S
m
n
). Dados m y n existe una funci on recursiva primitiva y
biyectiva S
m
n
(e, x
1
, . . . , x
n
) tal que

S
m
n
(e,x1,...,xn)
(y
1
, . . . , y
m
)
e
(x
1
, . . . , x
n
, y
1
, . . . , y
m
)
Demostracion. Supongamos que tenemos una descripcion codicada en e de una funci on recursiva parcial
(x
1
, . . . , x
n
, y
1
, . . . , y
m
. De ella queremos obtener una descripcion de la funci on
(y
1
, . . . , y
m
) (x
1
, . . . , x
n
, y
1
, . . . , y
m
)
Una primera opcion sera tomar la descripcion original y anadirle la ecuacion mostrada, pero entonces
estara denida ambiguamente, dependiendo de los valores x
1
, . . . , x
n
que aparezcan en la denicion. Lo
que queremos es denir una nueva funci on por cada valor jo de x
1
, . . . , x
n
. Para ello, usamos las funciones
constantes K
x1
, . . . , K
xn
correspondiente a cada valor. Por tanto, hemos de buscar la funci on cuya descripcion
es la codicada por e seguida de la ecuacion
(y
1
, . . . , y
m
) (K
x1
, . . . , K
xn
, y
1
, . . . , y
m
)
Esta descripcion depende uniformemente en e y los valores dados a x
1
, . . . , x
n
. Su ndice es por tanto una
funci on S
m
n
(e, x
1
, . . . , x
m
) y puede hacerse recursiva primitiva usando el sistema de codicaciones, lo cual
ademas le da un caracter biyectivo.
Estos dos teoremas lo que nos muestran ademas es que los numeros que codican operaciones pueden ser
usados dentro de las mismas operaciones, dando lugar a un concepto similar al de submaquinas dentro de
las maquinas de Turing. Es decir, nos permite trabajar con funciones dentro de nuestras mismas funciones.
De hecho, existe un teorema que nos muestra que podemos denir una funci on que funciona igual que una
maquina de Turing universal, es decir, como un ordenador:
Teorema. Existe una funci on recursiva parcial, denominada funci on universal parcial, que genera todas
las funciones recursivas parciales de cualquier numero de variables, en el sentido de que por cada funci on
recursiva parcial de n variables existe un e tal que
(x
1
, . . . , x
n
) (e, x1, . . . , x
n
)
Demostracion. Usando la notaci on empleada en la demostracion del Teorema de la Forma Normal, sea
(e, x) U(y(T(y) (y)
1,1
= e (y)
1,2
= x))
Entonces por denicion
T
n
(e, x, y) T(y) (y)
1,1
= e (y)
1,2
= x))
Luego para cada n se tiene que
(e, x
1
, . . . , x
n
)
n
e
(x
1
, . . . , x
n
)
19
2.4. Conjuntos recursivos y recursivamente enumerables
En esta seccion veremos algunas propiedades de los conjuntos y relaciones denibles a partir de las
funciones que estamos considerando. En primer lugar, daremos una denicion alternativa:
Denici on. I Diremos que una relaci on P es recursivamente enumerable si es el dominio de una funci on
recursiva parcial.
II Diremos que un conjunto A es recursivamente enumerable si el predicado
A
(x) x A lo es.
Denici on. Denotaremos W
n
e
y W
n
e,s
los dominios de
n
e
y
n
e,s
respectivamente.
Teorema (de la Forma Normal para relaciones). Una relaci on n-aria P es recursivamente enumerable si y
solo si existe una relaci on n + 1-aria R tal que
P(x) yR(x, y)
esto es, si y solo si existe un numero e (el ndice de P) tal que
P(x) W
n
e
(x) yT
n
(e, x, y)
Demostracion. Si P es recursivamente enumerable, entonces es el dominio de alguna funci on recursiva
parcial
e
, es decir, P = W
e
. Entonces, por el Teorema de la Forma Normal para funciones:
W
e
(x)
e
(x) yT
n
(e, x, y)
Para el otro lado, si P(x) yR(x, y) con R recursivo, entonces P es el dominio de la funci on recursiva
parcial (x) yR(x, y).
Aunque hemos denido los conjuntos en terminos de dominios de funciones, existen varios resultados
que nos muestran que es posible usar otras deniciones alternativas para los mismos.
Teorema (de la Graca). Sea una funci on parcial y f una funci on total. Entonces:
I es recursiva parcial si y solo si su graca es recursivamente enumerable;
II f es recursiva total si y solo si graca es recursiva.
Demostracion. La graca de una funci on esta formada por los pares G

(x, z) (x) z.
Por otro lado, si es recursiva parcial, entonces
e
para algun e, y se sigue que
G

(x, z)
e
(x) z U(yT
n
(e, x, y)) z
y[T
n
(e, x, y) (t < y)T
n
(e, x, t) U(y) = z]
y por tanto G

es recursivamente enumerable.
Para el otro lado, si G

es recursivamente enumerable, entonces G

(x, z) yR(x, z, y) para


alguna relaci on recursiva R. Por tanto
(x) zyR(x, z, y)
Y codicando z e y en un solo numero t = z, y tenemos
(x) (tR(x, (t)
1
, (t)
2
))
1
Si f es recursiva, la prueba es mas sencilla. En primer lugar, podemos dar G
f
en terminos de su funci on
caracterstica
c
G
f
(x, z) =
_
1 si f (x) = z
0 en caso contrario
Para el otro lado: supongamos que G
f
es recursivo. Como f (x) = zG
f
(x, z), y f es total, es decir,
xzG
f
(x, z), vemos que f esta denida por minimizacion sobre un predicado regular, por lo que es recursivo.
20
Proposicion (Propiedad de Uniformidad). I Si P es recursivamente enumerable existe una funci on recur-
siva parcial tal que
yP(x, y) = (x) P(x, (x))
II Si P es recursivamente enumerable y regular, existe una funci on recursiva f tal que
xP(x, f (x))
Demostracion. Es similar a la del teorema anterior. Como P es recursivamente enumerable, existe una R
recursiva tal que
P(x, y) zR(x, y, z)
Por tanto, es suciente con tomar de forma que
(x) (tR(x, (t)
1
, (t)
2
))
1
Si P es regular, tal y siempre existe, por lo que es recursiva total.
Notese que si P es recursiva, podemos tomar como funci on uniformizadora para este teorema simplemen-
te yP(x, y). Pero si P es recursivamente enumerable no regular, este teorema no tiene por que cumplirse.
Teorema (Caracterizacion de los conjuntos recursivamente enumerables). Son equivalentes:
I A es recursivamente enumerable;
II A es la imagen de una funci on recursiva parcial ;
III A = o A es la imagen de una funci on recursiva f .
Demostracion.
i = ii Si A es recursivamente enumerable, entonces A = W
e
para algun e. Sea
(x) x
e
(x)
Entonces el dominio de
e
es igual a la imagen de y es recursiva parcial ya que se puede denir,
por ejemplo, como (x) x +0
e
(x) (donde usamos que si uno de los terminos de una funci on no
esta denida, no lo esta la funci on entera).
ii = iii Sea A = y el dominio de una funci on recursiva parcial
e
. Sea a A, queremos hacer
f (x) =
_
z si
e
(x)
e
(x) z
a en otro caso
Tal como esta, f no es recursiva, puesto que no hay un modo recursivo de saber si un funci on
converge en un punto. Para evitar aguardar a que un valor indenido converja, vamos ejecutando la
computaci on por pasos, y cuando obtenemos la convergencia en uno, lo incluimos en una funci on de
historia. Para los valores para los que aun no hay soluci on, usaremos a como salida, para que f sea
total. As podemos denir la funci on recursiva
f (J(x, s)) =
_
z si
e,s
(x)
e,s
(x) z
a en otro caso
iii = i Si A = , entonces A es el dominio de la funci on que no esta denida en ningun punto, la cual es
claramente recursiva parcial. Si por contra A es la imagen de una f recursiva, queremos una funci on
recursiva parcial con dominio A, es decir
(x) z(f (z) = x)
Para ello basta tomar (x) x(f (z) = x).
21
Proposicion. Son equivalentes
I A es recursivo;
II A = o A es la imagen de una funci on recursiva f no decreciente.
Demostracion. Si A es recursivo y no vaco, sea a su menor elemento, y
f (0) = a
f (n + 1) =
_
n + 1 si n + 1 A
f (n) en otro caso
Para el otro lado, si A es nito entonces es recursivo. Si A es innito y la imagen de una funci on recursiva
f no decreciente, pasa saber si z A buscamos el menor x tal que f (x) > z (que existe puesto que A es
innito). Como f es no decreciente, entonces
z A z {f (0), . . . , f (x)}
Teorema (de Post). Un conjunto es recursivo si y solo si el conjunto y su complementario son recursivamente
enumerables.
Demostracion. Si A es recursivo, entonces tanto A como

A son recursivamente enumerables. Esto podemos
verlo, por ejemplo, dando funciones cuyos dominios sean A y

A:
(x)
_
1 si c
A
(x) = 1
en otro caso
(x)
_
0 si c
A
(x) = 0
en otro caso
Ahora supongamos que tanto A como

A son recursivamente enumerable y que ambos son no vacos (si
no, uno es y el otro N, que son recursivos como buscabamos). Por tanto, existen funciones f y g tal que
A = {f (0), f (1), . . . }

A = {g(0), g(1), . . . }
Estas dos listas son disjuntas. Ademas, para saber si un x esta en A o en

A es suciente con generar ambas
listas simultaneamente, hasta que x aparezca en una de ellas. Formalmente, existen relaciones R y Q tal
que
x A yR(x, y) x

A yQ(x, y)
Como tenemos que xy(R(x, y) Q(x, y)) la funci on
f (x) = y(R(x, y) Q(x, y))
es recursiva, y unicamente uno de los R(x, f (x)) o Q(x, f (x)) se da. As, A es recursivo, ya que
c
A
(x) =
_
1 si R(x, f (x))
0 en otro caso
Proposicion. Todo conjunto innito y recursivamente enumerable tiene un subconjunto innito y recursivo.
Demostracion. Sea A innito y la imagen de una funci on recursiva f . Denimos g recursiva y creciente
como
g(0) = f (0)
g(n + 1) = f (y(f (y) > g(n)))
As, la imagen de g es recursiva y un subconjunto innito de A por construccion.
22
2.5. Indecibilidad
Cuando hemos estudiado los conjuntos recursivos y los recursivamente enumerables, hemos visto que los
primeros son un subconjunto de los primeros. De alguna forma, un conjunto recursivo viene con una forma
de decidir si un elemento dado pertenece al conjunto o no, mientras que si este es recursivamente enumerable
solo podemos asegurar la pertenencia, ya que si un elemento no pertenece al conjunto, entraremos en una
computaci on que no terminara nunca. Pero en nuestro tiempo nito de vida no podemos distinguir si es
que tal elemento no pertenece o que simplemente la computaci on es demasiado larga. Por eso es natural
hacerse la pregunta: existen conjuntos recursivamente enumerables no recursivos?
La respuesta a esta pregunta es armativa, y da lugar a un conjunto de problemas denominados indecidi-
bles. El mas famoso de ellos, y que dio pie al estudio de la computaci on teorica, es el Entscheidungsproblem
propuesto por Hilbert, que se preguntaba si existe algun modo efectivo de decidir si una armaci on so-
bre la artimetica era verdadera o falsa. Nosotros empezaremos con algo mas sencillo, mas concretamente
deniendo un conjunto K tal que
x K x W
x

x
(x)
Teorema. K es recursivamente enumerable no recursivo.
Demostracion. Por el Teorema de Enumeraci on, existe una funci on recursiva parcial tal que (x)
x
(x).
Entonces x K (x) , por lo que K es recursivamente enumerable.
Para ver que K no es recursivo veremos dos pruebas diferentes:
I Si K fuese recursivo, entonces la funci on
(x) =
_
0 si x

K
en otro caso
sera recursiva parcial. Entonces se tendra que
e
y
e
(e) e

K, lo que contradice nuestra
denicion de K.
II Si K fuese recursivo, entonces

K sera recursivamente enumerable. Pero x

K x W
x
, luego

K
difere en el elemento x-esimo del x-esimo conjunto recursivamente enumerable, por lo que no puede ser
recursivamente enumerable.
Veremos aqu un par de resultados mas sobre indecibilidad, dejando el grueso para el captulo dedicado
al mismo.
Teorema (Indecibilidad del Problema de la Parada). El conjunto K
0
denido por
x, e K
0
x W
e

e
(x)
es recursivamente enumerable no recursivo.
Demostracion. Como antes, K
0
es recursivamente enumerable por el Teorema de Enumeraci on. Pero si K
0
fuese recursivo, tambien lo sera K, ya que
x K x, x K
0
Antes del siguiente teorema, necesitamos conocer la nocion de conjunto ndice:
Denici on. Un conjunto A es el conjunto ndice de una clase A de funciones recursivas parciales si
A = {x :
x
A}
En estas condiciones escribimos A = A.
23
Denici on. Una clase de funciones recursivas se dice completamente recursiva si su conjunto ndice es
recursivo.
Teorema (de Rice). Una clase de funciones recursivas parciales A es completamente recursivo si y solo si
es trivial (es decir, es vaco o es el conjunto de todas las funciones recursivas parciales).
Demostracion. Si A = entonces su conjunto ndice es , y si A es el conjunto de todas estas funciones,
su conjunto ndice es N.
Sea ahora A no trivial, entonces existiran a y b tal que
a
A y
b
A. Si la funci on no denida en
ningun sitio no esta en A, sea f una funci on recursiva tal que

f (x)
=
_

a
si x K
en otro caso
Entonces x K
f (x)
A f (x) A, donde A = A. Por tanto A no es recursivo, porque en
caso contrario tambien lo sera K.
Si la funci on completamente no denida esta en A usamos un argumento simetrico, pero con
b
y
viendo que

A es no recursivo.
2.6. Teoremas de la recursi on
En esta seccion veremos como sacar partido al metodo de la diagonalizacion para construir funciones
con diversas caractersticas que, en ultima instancia, nos llevara a tener una nueva forma de denir funciones
recursivas como puntos jos.
Teorema (del Punto Fijo). Dada una funci on recursiva f , existe un e tal que e y f (e) representan a la
misma funci on, es decir

e

f (e)
W
e
= W
f (e)
Demostracion. Usaremos el metodo diagonal: sea {a
i ,j
}
i ,j N
una matriz de elementos de S y d : S S
la funci on de transformacion de la diagonal (como vimos en el primer captulo). Entonces si la diagonal
transformada es una la de la matriz, d tiene un punto jo, es decir, hay un a S tal que d(a) = a.
Sea d(
e
)
f (e)
. Lo que buscamos es un punto jo de d, para as tener un e tal que d(
e
)
e
.
Para ello, sea S el conjunto de las funciones recursivas parciales. Como f
a
para algun a, los valores de
d tienen la forma
a(e)
. Consideramos la matriz cuyas entradas sean a
i ,j
=

i
(j )
donde si
i
(j ) entonces
a
i ,j
es la funci on completamente indenida.
Si ahora aplicamos d a la diagonal, obtendremos la secuencia

f (0(0))

f (1(1))
. . .
que es una secuencia recursiva de funciones recursivas parciales, y por tanto sera una la de la matriz. Por
tanto, existe un punto jo de d.
Ahora, para explicitar el punto jo, observamos que debe ser un elemento de la secuencia transformada
que se encuentre en la diagonal. Sea g una funci on recursiva tal que

g(e)

f (e (e))
la cual existe por los Teoremas de Enumeraci on y Parametrizaci on. Si b es el ndice de g, entonces g(b) =

b
(b) es un punto jo de f , puesto que

g(b)

f (
b
(b))

f (g(b))
Conviene hacer unas de aclaraciones sobre la prueba:
I Aunque
g(e)

f (e (e))
, g(e) no tiene por que coincidir con f (
e
(e)): la segunda puede no estar
denida si
e
(e) no lo esta, en cuyo caso g(e) es un ndice de la funci on indenida.
24
II f no tiene por que inducir una aplicacion tal que

e

i
=
f (e)

f (i )
III Este teorema puede generalizarse de varias maneras. Una de ellas es Teorema del Punto Fijo Doble, que
nos asegura que si f y g son recursivas de dos variables, existen numeros a y b tales que

a

f (a,b)
y
b

g(a,b)
Teorema (Segundo de la Recursion
2
). Si es una funci on recursiva parcial, entonces existe un ndice e
tal que

e
(x) (e, x)
Demostracion. Sea h una funci on recursiva. Como la funci on (h(z), x) es recursiva parcial tendra unndice
a que dependera de h. Por el Teorema de Parametrizaci on
(h(z), x)
S
1
1
(a,z)
(x)
En particular, esto se cumple si h(z) = S
1
1
(z, z) con un a apropiado:
(S
1
1
(z, z), x)
S
1
1
(a,z)
(x)
Si tomamos e = S
1
1
(a, a) tendremos lo que buscamos:
(e, x) (S
1
1
(a, a), x)
S
1
1
(a,a)
(x)
e
(x)
El Teorema del Punto Fijo nos asegura que es posible denir un numero nito de funciones recursivas
parciales de forma simultanea y autorreferenciandose, es decir, buscando puntos jos. De hecho, se da el
siguiente hecho:
Teorema. La clase de las funciones recursivas parciales es la menor clase de funciones que contiene a las
funciones iniciales y la funci on predecesor, y es cerrada por composici on, denicion por casos y denicion
por punto jo.
Demostracion. Sea C la clase del enunciado. Claramente todas las funciones en C son recursivas parciales,
por el Torema del Punto Fijo y porque la denicion por casos se puede denir de forma recursiva primitiva.
Para el otro lado, tenemos que ver que C es cerrada por recursi on primitiva y minimizacion. Para el
primero, si tenemos una funci on dada por
f (x, 0) = g(x)
f (x, y + 1) = h(x, y, f (x, y))
podemos denirla como el punto jo de la ecuacion
f (x, y) =
_
g(x) si y = 0
h(x, y 1, f (x, y 1)) en otro caso
que usa solo las funciones y reglas permitidas.
Para la minimizacion, si f (x) = y[g(x, y) = 0], podemos denir h como el punto jo de
h(x, y) =
_
0 si g(x, y) = 0
h(x, y + 1) + 1 en otro caso
Entonces f (x) = h(x, 0).
2
Este es el nombre clasico por su orden de aparicion en Introducci on a la Metamatematica de Kleene.
25
Para poder probar el Primer Teorema de la Recursion, necesitamos introducir algunos conveptos adicio-
nales:
Denici on. Un funcional (en ingles, functional) es una funci on cuyos parametros pueden ser bien naturales,
bien funciones de naturales, y cuyo resultado es un numero.
Diremos que un funcional es restringido si sus parametros funcionales toman valores solo entre las
funciones totales.
Diremos que un funcional es total si su valor esta denido siempre que todos sus argumentos funcionales
sean totales.
Denici on. Un funcional F(
1
, . . . ,
n
, x) se dice recursivo parcial si puede obtenerse a partir de las funcio-
nes iniciales extendidas con
1
, . . . ,
n
usando las reglas de composici on, recursi on primitiva y minimizacion.
Denici on. Diremos que una relaci on sobre funciones y numeros es recursiva si lo es su funci on caractersti-
ca, que en este caso sera un funcional como los denidos arriba.
Proposicion (Propiedad de Sustituci on). Si F(, z) y G(, x) son funcionales recursivos parciales, tambien
lo es
H(, z) G(z.F(, z), x)
Teorema (de la Forma Normal para funcionales recursivos parciales). Existe una funci on U recursiva pri-
mitiva y para cada n 1 predicados recursivos T
m,n
tal que para cada funcional F recursivo parcial de m
variables funcionales y n numericos existe un e tal que:
I F( , x) yT
m,n
(e, x, , y)
II F( , x) U(yT
m,n
(e, x, , y))
Teorema (de la Forma Normal para funcionales restringidos recursivos parciales). Existe una funci on U
recursiva primitiva y para cada m, n 1 predicados recursivos T
m,n
de variables numericas unicamente tal
que para cada funcional F restringido recursivo parcial de m variables funcionales y n numericos existe un
e tal que:
I F(g, x) yT
m,n
(e, x, g
1
(y), . . . , g
m
(y), y)
II F(g, x) U(yT
m,n
(e, x, g
1
(y), . . . , g
m
(y), y))
Corolario. Si F(, x) es un funcional recursivo parcial y F(, x) y, entonces:
I para alguna funci on nita u , F(u, x) y (F es compacto);
II si a , entonces F(, x) y (F es monotono).
Demostracion. Por la denicion de T
m,n
, un valor de F se computa usando una aproximacion nita de ,
por lo que se da la compacidad. La monotona se sigue de que una aproximacion de tambien es una
aproximacion de una extensi on de la misma.
A partir de estos hechos, podemos preguntarnos si podemos denir una funci on mediante las condi-
ciones que debera cumplir, lo cual en general podremos expresar con un funcional. Es decir
(x) F(, x)
Una funci on que satisface una ecuacion de este tipo se llama un punto jo de F. Como demuestra el
siguiente teorema, esta es una forma valida de construir funciones.
Teorema (Primero de la Recursion). Todo funcional F(, x) recursivo parcial tiene un punto jo, y tal
punto jo es recursivo. Esto, existe una funci on recursiva parcial tal que:
I x((x) F(, x))
II x((x) F(, x)) =
26
Demostracion. Generaremos una sucesi on de funciones por induccion

n+1
(x) F(
n
, x)
donde
0
es la funci on no denida en ningun punto. Veamos que
n

n+1
.
Por induccion: el caso base es la funci on indenida, que siempre cumple que
0
f . Ahora, si
n

n+1
, sea
n+1
(x) F(
n
, x) y. Por monotona tenemos que F(
n+1
, x) y. As,
n+2
(x) y y

n+1

n+2
.
Consideremos ahora el lmite de {
i
}, al que llamaremos
(x) y n(
n
(x) y)
Veamos que es un punto jo de F: si (x) entonces para algun n tendremos que
(x)
n+1
(x) F(
n
, x)
Como
n
por monotona tendremos que (x) F(, x).
Si F(, x) entonces por compacidad solo necesitamos un numero nito de valores de en la compu-
tacion, y por tanto
n
para un valor sucientemente grande de n nos valdra. As
F(, x) F(
n
, x)
n+1
(x) (x)
Ademas, es el menor punto jo de F. Supongamos que F(, x) (X) para todo x. Por induccion
sobre n tenemos que
n
y por tanto : tenemos que
0
por ser la funci on indenida, y si

n
por monotona se cumplira que

n+1
(x) F(
n
, x) F(, x) (x)
y por tanto .
2.7. Funciones con oraculo
Para nalizar con este captulo, introduciremos la nocion de oraculo. Basicamente, un oraculo es al-
guna forma por la que obtenemos informacion para nuestra computaci on que excede los lmites marcados
normalmente. Formalmente:
Denici on. Si es una funci on (total o parcial), denimos la clase de funciones recursivas parciales en
como la menor clase de funciones que contiene las funciones iniciales y y es cerrada por composici on,
recursi on primitiva y minimizacion.
Denici on. Sea A un conjunto. Las funciones recursivas parciales en A se dene como la clase de funciones
recursivas parciales en c
A
.
Notese que con esta denicion nuestras habituales funciones recursivas parciales son las recursivas
parciales en .
Denici on. Dada dos funciones f y g diremos que
I f es Turing-reducible a g, y escribiremos f
T
g, si f es recursiva en g;
II f es Turing-equivalente a g, f
T
g, si f
T
g y g
T
f .
Intuitivamente esto nos da una forma de medir la insolubilidad de un problema. Si cierto problema es
Turing-reducible a otro, quiere decir que usando el segundo como oraculo podremos resolver el primero.
As pues, tal problema es mas sencillo que del que depende.
De hecho, esta idea se formaliza en los grados de Turing, que no son otra cosa que los conjuntos
cociente de la relaci on de Turing-equivalencia. Tales conjuntos tienen un orden parcial inducido por la
Turing-reducibilidad.
Existen as mismo otros muchas nociones de reducibilidad en la Teora de la Recursion, como la reduci-
bilidad muchos-a-uno, uno-a-uno, por tabla de verdad... que no veremos aqu.
27
28
3
Sistemas de ecuaciones
Dentro de las matematicas normalmente denimos funciones y objetos en terminos de un conjunto de
ecuaciones que deben cumplir. En este captulo examinamoss como podemos llevar esta forma de expresion
a contener una nocion similar a la de recursividad. En particular veremos el formalismo de Herbrand
1
-
Godel
2
, propuesto por este ultimo anos antes de que Turing, Kleene y Church presentasen sus respectivas
deniciones de funci on computable.
3.1. Denabilidad por sistemas de ecuaciones
Denici on. El lenguaje L que usaremos para las ecuaciones consta de:
I Smbolos: de igualdad =, parentesis, comas, las constantes 0 para el numero cero y S para la operacion
de sucesor, variables x
0
, x
1
, . . . para numeros y constantes f
n
0
, f
n
1
, . . . para funciones n-arias;
II Numerales: 0 es un numeral, y en general si a es un numeral, S(0) es un numeral. Para evitar recargar
la notaci on escribiremos n por el numeral S
(n)
(0);
III Terminos: la constante 0, las variables y las funciones 0-arias son terminos. Ademas, si t, t
1
, . . . , t
n
son
terminos, tambien lo son S(t) y f
n
i
(t
1
, . . . , t
n
);
IV Ecuaciones: son de la forma t = s, donde t es de la forma f
n
i
(t
1
, . . . , t
n
) y los diversos t
i
no contie-
nen ninguna funci on excepto quizas la de sucesor. Estas ecuaciones no tienen el signicado normal de
igualdad, sino mas bien el de denicion de una funci on (t) segun la regla del lado derecho (s);
V Sistemas de ecuaciones: cualquier conjunto nito de ecuaciones forma un sistema de ecuaciones.
Escribiremos E(f
1
, . . . , f
n
; z) para representar un sistema cuyas variables numericas estan en z y cuyas
variables funcionales estan entre f
1
, . . . , f
n
.
En primer lugar consideraremos sistemas de ecuaciones que denen funciones de manera unica con
respecto a una sola letra (que supondremos f
1
):
Denici on. Una funci on f es denible por un sistema de ecuaciones si existe un sistema E tal que:
I existe un conjunto de funciones que satiface las ecuaciones de E:
(f
1
. . . f
n
)(z)E(f
1
, . . . , f
n
; z)
II esta soluci on determina de forma unica f
1
como f :
(f
1
, . . . , f
n
) [ (z)E(f
1
, . . . , f
n
; z) = (x)(f
1
(x) = f (x)) ]
1
Vida y obra de Herbrand
2
Vida y obra de Godel
29
La primera de las condiciones es necesaria para evitar sistemas de ecuaciones sin soluci on que haran verda-
dera la segunda condici on trivialmente.
No obstante, esta denicion tiene un problema: pedimos que las condiciones se cumplan para todo z
para que exista cada valor concreto f (x). Sin embargo en una computaci on real solo usamos una cantidad
nita de informacion (esto es lo que nos permite, por ejemplo, denir un funci on mediante punto jo). Por
esta raz on modicaremos esta primera idea de denibilidad:
Denici on. Una funci on f se dice nitamente denible por un sistema de ecuaciones si existe un sistema
E tal que:
I (f
1
, . . . , f
n
)(z)E(f
1
, . . . , f
n
; z)
II para cada x existe un conjunto nito de z
1
, . . . , z
p
tal que la sustituci on de estos en las ecuaciones de
E determina el valor de f (x):
(f
1
, . . . , f
n
) [ E(f
1
, . . . , f
n
; z
1
) E(f
1
, . . . , f
n
; z
p
) = f
1
(

x) =

f () x ]
Veamos un ejemplo de esta denicion. Sea E el siguiente sistema de ecuaciones:
_
f (0) = 1
f (x + 1) = 3 f (x)
g(x) = f (g(x + 1))
Este sistema dene f (x) = 3
x
y g(x) = 1. No obstante f esta nitamente denida mientras que g no lo
esta, ya que necesitamos un conjunto innito de ecuaciones
g(0) = 3
g(1)
= 3
3
g(2)
= . . .
para el cual hay un conjunto innito de soluciones.
Para concluir queremos dar una ultima vuelta de tuerca a este concepto y dar reglas explcitas que nos
permitan obtener el valor de una funci on en un punto a partir del sistema que lo dene. De este modo
llegamos a la ultima nocion de computabilidad de este captulo:
Denici on. Una funci on f n-aria es computable Herbrand-Godel si existe un sistema de ecuaciones E nito
tal que si f
n
i
es la letra mas a la izquierda en la ultima ecuacion de E entonces f (a
1
, . . . , a
n
) = b se da si y
solo si la ecuacion f
n
i
( a
1
, . . . , a
n
) =

b) puede derivarse a partir de E a partir de las siguientes reglas:
I Sustituci on de una variable por un numeral en cada lugar en la que la primera se encuentre;
II Reemplazo en la parte derecha de una ecuacion un termino f
m
j
( c
1
, . . . , c
m
) por un numeral

d siempre
que f
m
j
( c
1
, . . . , c
m
) =

d ya haya sido derivado.
Entonces diremos que E dene f con respecto a f
n
i
.
Notese que las nociones de denibilidad nita y computabilidad Herbrand-Godel no son intercambiables.
Por ejemplo si tenemos el sistema
f (x) = 0 f (x) = h(x) g(x) = h(x)
la funci on g(x) = 0 es denible nitamente por el sistema pero no es computable Herbrand-Godel, ya que
necesitaramos aplicar una sustituci on que no esta permitida por las reglas de Herbrand-Godel.
Del otro lado tambien hay ejemplos. Vease el sistema
f (0) = 0 f (S(x)) = S(f (S(x))) g(x) = f (0)
En el la funci on g(x) = 0 es computable Herbrand-Godel, ya que solo necesitamos el valor f (0) de todos los
de f . Sin embargo, no podemos denirla nitamente porque para ello necesitaramos encontrar una funci on
f que satifaciera f (z) = f (z) + 1 para z > 0.
30
3.2. Equivalencia con las funciones recursivas
Veremos en esta seccion que las nociones de nitamente denible y computable Herbrand-Godel nos
permiten expresar exactamente las funciones recursivas.
Teorema. Toda funci on recursiva es nitamente denible por un sistema de ecuaciones.
Demostracion.
I Funciones iniciales
0, S y U
n
i
se pueden denir nitamente como:
f
1
0
(x
0
) =

0
f
1
0
(x
0
) = S(x
0
)
f
n
0
(x
1
, . . . , x
n
) = x
i
II Composicion
Supongamos que g
i
(x), i = 1, . . . , m y h estan nitamente denidas por E
i
y E con respecto a f
n
i
y
f
m
m+1
respectivamente (si no lo estuvieran, simplemente cambiamos la notaci on para adecuarlas a este
supuesto. Entonces
f (x) = h(g
1
(x), . . . , g
m
(x))
esta nitamente denido por el sistema formado por la union de los E
i
junto a E y la ecuacion
f
n
0
(x
1
, . . . , x
n
) = f
m
m+1
(f
n
1
(x
1
, . . . , x
n
), . . . , f
n
m
(x
1
m. . . , x
n
))
III Recursion primitiva
Si g y h estan denidos nitamente por E
1
y E
2
con respecto a f
n
0
y f
n+2
0
, entonces
f (x, 0) = g(x)
f (x, y + 1) = h(x, y, f (x, y))
esta nitamente denido por E
1
E
2
junto a
f
n+1
0
(x
1
, . . . , x
n
,

0) = f
n
0
(x
1
, . . . , x
n
)
f
n+1
0
(x
1
, . . . , x
n
, S(x
n+1
)) = f
n+2
0
(x
1
, . . . , x
n
, x
n+1
, f
n+1
0
(x
1
, . . . , x
n
, x
n+1
))
IV Minimizaci on
Sea g nitamente denido por E
1
con respecto a f
n+1
0
y
f (x) = y(g(x, y) = 0)
Entonces sea E igual a E
1
junto a las ecuaciones que denen la suma y el producto (las cuales son
recursivas primitivas, por lo que ya hemos demostrado que se pueden denir), las funciones
f
1
0
(

0) =

0 f
1
0
(S(x
0
)) =

1
f
1
1
(

0) =

1 f
1
1
(S(x
0
)) =

0
y las traducciones formales de
f
n+1
1
(x
1
, . . . , x
n
, x
n+1
) = f
1
0
(f
n+1
0
(x
1
, . . . , x
n
, x
n+1
)) f
n+1
1
(x
1
, . . . , x
n
, S(x
n+1
))
+ f
1
1
(f
n+1
0
(x
1
, . . . , x
n
, x
n+1
)) x
n+1
f
n
0
(x
1
, . . . , x
n
) = f
n+1
1
(x
1
, . . . , x
n
,

0)
31
En estas circunstancias E dene f con respecto a f
n
0
ya que dene
h(x, y) =
_
y sig(x, y) = 0
h(x, y + 1) en otro caso
con respecto a f
n+1
1
y luego dene f (x) = h(x, 0) con respecto a f
n
0
.
Podemos ver que
h(x, 0) = y(g(x, y) = 0)
ya que si tal valor es z entonces
h(x, 0) = h(x, 1) = = h(x, z) = z
Teorema. Toda funci on recursiva es computable Herbrand-Godel.
Demostracion. Consideramos la misma prueba que para funciones nitamente denibles por un sistema de
ecuaciones. Nos queda probar que si existe un valor este podra ser deducido del sistema de ecuaciones
(completitud), lo cual es claro por la construccion que hemos hecho en el citado teorema; y que este es
el unico valor que puede deducirse (consistencia). Esto ultimo se prueba por induccion estructural, aunque
solo daremos la demostracion para la recursi on primitiva.
Usando la misma notaci on que en el teorema para funciones nitamente denibles, supongamos que
hemos derivado
f
n+1
0
( x
1
, . . . , x
n
, y) =

b
Entonces existen dos casos: si y =

0 entonces como la regla de reemplazo solo nos permite reemplazar en
la parte derecha de las ecuaciones y solo existe una ecuacion con f
n+1
0
( x
1
, . . . , x
n
,

0) en la parte izquierda,
se sigue que
f
n+1
0
( x
1
, . . . , x
n
,

0) = f
n
0
( x
1
, . . . , x
n
)
f
n
0
( x
1
, . . . , x
n
) =

b
fueron derivadas anteriormente. Por tanto la consistencia se sigue para f
n
0
por la hipotesis de induccion.
Si por contra y = S( z), hemos tenido que derivar una ecuacion del estilo
f
n+1
0
( x
1
, . . . , x
n
, S( z)) = f
n+2
0
( x
1
, . . . , x
n
, z, f
n+1
0
( x
1
, . . . , x
n
, z))
Por denicion no puede haber ninguna ecuacion con la parte izquierda como la parte derecha de tal ecuacion.
Ademas la regla de reemplazo solo nos permite intercambiar funciones seguidas de numerales. Por tanto
han tenido que derivarse ecuaciones como
f
n+1
0
( x
1
, . . . , x
n
, z) = a f
n+2
0
( x
1
, . . . , x
n
, z, a) =

b
En cuyo caso la hipotesis de induccion vuelve a aplicarse.
Teorema. Toda funci on computable Herbrand-Godel es recursiva.
Demostracion. Podemos denir una f ormula T
n
(e, x
1
, . . . , x
n
, y) recursiva primitva que indique que y codi-
ca una derivaci on, por medio de las reglas de sustituci on y reemplazo a partir del sistema de ecuaciones
codicado por e, de una ecuacion de la forma f
n
i
( x
1
, . . . , x
n
) = z, donde f
n
i
es la funci on mas a la izquierda
de la ultima ecuacion del sistema codicado por e.
Ahora sea U una funci on recursiva primitiva tal que si y codica una derivaci on, entonces U(y) es el
valor del numeral en la parte derecha de la ultima ecuacion codicada por y.
Si f es computable Herbrand-Godel a partir del sistema de ecuaciones codicado por e, f es recursiva
ya que
f (x
1
, . . . , x
n
) = U(yT
n
(e, x
1
, . . . , x
n
, y))
32
Teorema. Toda funci on nitamente denible por un sistema de ecuaciones es recursiva.
Demostracion. La prueba se basa en denir unas T
n
y U como en el teorema anterior. No obstante ahora las
reglas seran las permitidas para la logica habitual con igualdad y los axiomas de los numeros naturales.
33

Vous aimerez peut-être aussi