La respuesta de Robin Chapman es muy oportuna. Esta es una respuesta teórica que señala una sutileza en la pregunta.
En primer lugar, recordemos que las funciones recursivas primitivas son la clase más pequeña de funciones sobre $\mathbb{N}$ eso:
- Incluye la función constante cero, la función sucesora y todas las funciones de proyección;
- es cerrado bajo composición;
- y se cierra bajo la recursión primitiva.
Llamemos a esta clase de funciones $\operatorname{PR}(\emptyset)$ . Para cualquier conjunto $A$ de funciones de teoría de números, podemos definir una clase más general $\operatorname{PR}(A)$ como la clase más pequeña de funciones que satisface las propiedades anteriores y también incluye cada función en $A$ .
Si cada función en $A$ es computable, entonces cada función en $\operatorname{PR}(A)$ es computable. Además, si cada función en $A$ es total entonces cada función en $\operatorname{PR}(A)$ es total.
Sería trivial, suponiendo que $A$ es finito (o, más generalmente, sólo explícitamente enumerado), para crear un lenguaje de programación tal que cada programa en el lenguaje calcule una función en $\operatorname{PA}(A)$ y cada función de este tipo tiene un programa en el lenguaje. El lenguaje simplemente tiene primitivas para todas las funciones en $A$ y para las funciones recursivas primitivas básicas, junto con los operadores para la composición y la recursión primitiva.
Por lo tanto, una respuesta a "Tengo curiosidad por saber cuánto podemos computar con un formalismo que garantice la detención" es "Para cualquier función total computable existe tal formalismo" y, más generalmente, esto es cierto para cualquier secuencia efectiva de funciones totales computables.
Lo principal que un sistema de este tipo no puede es una función universal, siempre que el sistema tenga algunas propiedades básicas de cierre.
Apéndice
Ya que varias personas han señalado lo mismo, puedo añadir algo de valor a la respuesta incluyendo la prueba estándar de mi observación sobre las funciones universales. Una función universal de dos lugares, para algún sistema, es una función $g(i,k)$ tal que para cada función de un lugar $f(k)$ en el sistema hay algún número natural $e$ con $\lambda k .f(k) = \lambda k. g(e,k)$ . Supongamos que $g$ es una función de este tipo; defina una función $h$ como $h(k) = g(k,k) + 1$ . Entonces $h$ tiene algún índice $e$ . Así, $g(e,e) = h(e)$ por la definición de $g$ et $e$ y $h(e) = g(e,e) + 1$ por la construcción de $h$ . Esto es imposible, por lo que cualquier sistema de funciones totales que me permita formar las funciones como $h$ no puede tener una función universal $g$ .
En particular, para cualquier clase de funciones $A$ y cualquier función $g(j,i)$ en $\operatorname{PA}(A)$ la función $h(n) = g(n,n)+1$ está en $\operatorname{PR}(A)$ . Así que esta clase no tendrá una función universal siempre que cada función en $A$ es total. Por supuesto, si dejas que $A$ sea el conjunto de todas las funciones parcialmente computables, entonces $\operatorname{PR}(A)$ es también el conjunto de todas las funciones parciales computables y, por tanto, contiene una función universal (que no es total).
Desde este punto de vista, la limitación no está en si se pueden incluir funciones computables particulares; la limitación está en la estructura interna de cualquier clase efectiva particular de funciones.