Ejemplos
1. Cualquier función constante es extensional.
2. Sea g la función construída como sigue: Dado i, calculamos el i-ésimo programa
g(i) será el código del programa obtenido al ``instanciar'' las primeras tres variables por los valores consecutivos 1,2,3 y renombrar las demás variables:
Es evidente que g es extensional.
3. La función sucesor no es extensional: Si Pi y Pj son dos programas que calculan una misma función, no necesariamente Pi+1 y Pj+1 han de calcular una misma función.
Observación 6.1
Toda función extensional g define un operador entre funciones recursivas:
Teorema 6.1 (Débil de Recursión)
Si g es extensional entonces
posee un punto fijo.
Demostración: Sea M la siguiente matriz consistente de funciones recursivas,
Si
entonces la función
ffi(j) coincidirá con la función divergente en todo punto:
.
M es efectivamente computable. De hecho, dados i,j procedamos como sigue:
1.
con Rep calculamos Pi,
2.
con eval calculamos k=Pi(j),
3.
tras calcular k, con Rep calculamos Pk.
Sea PM el programa-while que implementa el procedimiento anterior. Entonces
PM(i,j)=mij.
M es diagonalmente completa: Sea Q tal que
Q(j)=PM(j,j). Q es evidentemente ``realizable'' como un programa-while y consecuentemente
.
Así pues
midj=Pid(j)=Q(j)=PM(j,j)=mjj.
M es cerrado por renglones bajo :
Dado i sea PM,i;g el programa tal que
.
Existe entonces
tal que
Ph(i)=PM,i;g. Entonces para cualquier j se tiene
Del Lema Diagonal de Punto Fijo se sigue que
posee un punto fijo.
Teorema 6.2 (De Recursión)
Si g es cualquier función recursiva entonces
posee un punto fijo, es decir
Demostración: Dados i1,i2 diremos que fi1se relaciona con fi2 según g,
,
si existe k tal que
Se tiene que
.
Como M es además diagonalmente completa tenemos que algún elemento en su diagonal mii se relaciona consigo mismo. Así pues existe k tal que
fk=mii=fg(k). Siguiente:Construcción de virusUn nivel arriba:Virus en programas-while Anterior:Matrices infinitasGuillermo Morales-Luna
2000-07-10