Hay muchos procesos constructivos que nos sirven para definir o construir una funcion en terminos de otras funciones dadas. Un ejemplo de esto es la composicion de funciones, la cual dadas dos funciones nos permite construir su composicion, a saber . Otro ejemplo es el contructor de predicados que dados dos predicados -mixtos y , con el mismo dominio, nos define el predicado Otro constructor muy importante que utilizaremos mucho es aquel que a partir de funciones , , tales que para , nos define la nueva funcion , la cual cumple Veremos a continuacion que estos constructores preservan la computabilidad efectiva en el sentido que si las funciones iniciales son -efectivamente computables, entonces la construida tambien lo es.
3.9. Si y son predicados -efectivamente computables, entonces , y lo son tambien.
Dadas funciones -mixtas , con , diremos que la funcion es obtenida por composicion a partir de las funciones . Para probar que la composicion preserva la computabilidad efectiva necesitaremos el siguiente lema.
3.10. Supongamos que son funciones -mixtas, con . Supongamos ademas que . Entonces hay y tales que
-
- es de tipo
- es de tipo , para cada
- es de tipo , para cada
Mas aun, en tal caso la funcion es de tipo y:
Proof. Notese que y (por que?). Ya que tenemos que hay unicos y tales que es de tipo . Ya que y , tenemos que
-
- , para cada
- , para cada
Ya que tenemos que , por lo cual los conjuntos deberan ser todos de un mismo tipo, digamos de tipo . Es decir que es de tipo , para cada y es de tipo , para cada .
Las ultimas observaciones del lema son directas de las definiciones de y de composicion de funciones
Ahora si podemos probar facilmente que se preserva la computabilidad efectiva cuando componemos
3.11. Si , con , son -efectivamente computables, entonces lo es.
Proof. Si , entonces claramente es -efectivamente computable. Supongamos entonces que . Por el lema anterior hay y tales que
-
- es de tipo
- es de tipo , para cada
- es de tipo , para cada
Sean procedimientos efectivos los cuales computen las funciones , respectivamente. Usando estos procedimientos es facil definir un procedimiento efectivo el cual compute a .
Recordemos que si , , son funciones tales que para , entonces es la funcion
3.12. Sean y . Supongamos , , son funciones -efectivamente computables tales que para . Entonces es -efectivamente computable.
Proof. Haremos el caso y . Sean y procedimientos efectivos que computen a y , respectivamente. Sea el procedimiento efectivo siguiente:
- Conjunto de datos de entrada de igual a
- Conjunto de datos de salida de contenido en
- Funcionamiento:
Etapa 1
Hacer
Etapa 2
Correr el procedimiento una cantidad de pasos. En caso de que termine guardar la salida en la variable e ir a Etapa 5. Si no termina ir a Etapa 3.
Etapa 3
Correr el procedimiento una cantidad de pasos. En caso de que termine guardar la salida en la variable e ir a Etapa 6. Si no termina ir a Etapa 4.
Etapa 4
Hacer e ir a Etapa 2
Etapa 5
Dar como salida el contenido de y terminar.
Dejamos al lector corroborar que el procedimiento computa a la funcion .