Considérese la función f(x,y)
que se define a continuación:
![]()
![]()
![]()
![]()
donde la función pegar(z,x) añade como primer elemento (es
decir, por la izquierda) el valor x
al vector codificado en el número de Gödel
z.
a)
¿Se
hace un uso apropiado de la función resta
en esta definición? Justificar la
respuesta.
b)
Describe
con tus palabras el cómputo realizado por esta función.
c)
Demostrar
que esta función es WHILE-calculable
(utilizar notación extendida de WHILE).
Dado un número natural n demostrar que es m-REC la función que devuelve
el número de Gödel del vector formado
por todos los divisores de n.
Se puede hacer uso de la
función pegar(z,x), descrita en el problema 1 y de todas las definidas en clase.
Dada la siguiente función:
![]()
demostrar que es m-recursiva haciendo uso de
las funciones
que realiza la suma
de x e y, y
que es la función
asociada (o característica) del predicado “ser x mayor que y”.
Dado un número natural N, que representa la godelización de un vector de naturales, demostrar que la siguiente función es WHILE-calculable:
![]()
para ello se puede hacer uso de
los programas WHILE:
, que calcula el número de Cantor de un par de números
naturales, y
y
que devuelven la
primera y segunda componentes de un número de Cantor. Se puede utilizar la
notación extendida de WHILE.
Dados w y z, números de Cantor
que codifican vectores de n
elementos, demostrar que es m-recursiva la función barajar(w,z). Esta función tiene
como entrada 2 números de Cantor y devuelve el número de Cantor que codifica al
vector resultante de mezclar los 2 de entrada, de forma que el primer elemento
del vector resultante es el primer elemento de w, el segundo es el primero de z,
el tercero es el segundo de w, y así
hasta completar los 2n elementos.
Se podrá hacer
uso de la función
que calcula el número
de Cantor de un par de números naturales.
Nota: un árbol binario completo es aquel al que no
le falta ninguna rama hasta un nivel de profundidad dado.
Dados w y z, números de Cantor
que codifican vectores de n
elementos, demostrar que es m-recursiva la función barajar(w,z). Esta función tiene
como entrada 2 números de Cantor y devuelve el número de Cantor que codifica al
vector resultante de mezclar los 2 de entrada, de forma que el primer elemento
del vector resultante es el primer elemento de w, el segundo es el primero de z,
el tercero es el segundo de w, y así
hasta completar los 2n elementos.
Se podrá hacer
uso de la función
que calcula el número
de Cantor de un par de números naturales, la función extraer(z,k) que devuelve el elemento k-ésimo del vector codificado en el
número de Cántor z, raiz2(x) que devuelve la raiz
cuadrada de x y par(x) que decide si x es par (devuelve 1 si lo es y 0 si no
lo es).
Nota: para demostrar que es m-recursiva no se puede
aportar un programa WHILE y exponer el Teorema de Equivalencia.
Definimos la
función filtro(t,V) del siguiente modo:
Dados un tÎN y VÎN,
siendo V la godelización de un vector
ÎNn,
la función devuelve un número que representa la godelización de todos los vi<t, en el mismo orden en que se encuentran en V.
Ejemplo:
filtro(1,V)=F
V: godelización de {1,6,2,0,3}
F: godelización de {6,2,3}
Si el resultado fuese la godelización de 6, 2 y 3, en cualquier otro orden, no sería correcto.
Demostrar que la función filtro Î F(WHILE).
Demostrar que la función filtro Î PRIM.
Siendo V un vector con un número par de elementos, z es el número que resulta de codificar V de acuerdo con la figura.
|
|
método: generar un vector que tenga como
último elemento la cantorización del primero y último, como penúltimo la
cantorización del segundo y penúltimo, y así hasta completar todos los elementos
del vector original, a continuación cantorizar el vector resultante. |
1)
Demostrar que es REC la función ACantor(z) que recibe un número según el
esquema anterior y devuelve el número de Cantor del vector V contenido en z.
2) Demostrar que es REC la función Hay3(z) que recibe un número según el
esquema anterior y devuelve 1 si existe un elemento con el valor 3 en el vector
V contenido en z y 0 en caso contrario.
Se podrá hacer uso de todas las funciones de Cantor
expuestas durante el curso y de las funciones aritméticas más conocidas (suma,
resta, potencia, raíz, etc.).