¿Puede indicar cómo construir la función Ackerman (en realidad estoy interesado en una versión propuesta por Rózsa Péter y Raphael Robinson) a través de operadores mu-recursivos estándar? Probé documentos originales de Péter y Robinson, pero el papel de Péter usa un idioma diferente al inglés y los documentos de Robinson "Recursion and Double Recursion" y "Primitive Recursive Functions" tampoco ayudan: el primero de ellos parece más relevante, pero es útil. llamado operador de doble recursión para definir la función de Ackerman, por lo que en este caso se busca la definición explícita del operador en términos mu-recursivos.
P. Smith se acerca más a la respuesta en "Una introducción a los teoremas de Godel" (CUP, 2007) (29.4 La función de Ackermann-Peter es μ-recursiva), pero se le ocurre lo siguiente: "hacer que el argumento sea hermético es bastante tedioso aunque no difícil. No hay nada que aprender de explicar los detalles aquí: así que no lo haremos ”.
También probé el libro de Rózsa Péter "Funciones recursivas" (1967, Academic press). Hay muchas variantes para operadores de recursión que se ofrecen allí. Por lo general, uno se reduce a otro. Creo que hay un tipo de operador de recursión que se ajusta a la definición de la función de Ackerman y la secuencia de pasos que lo reducen a operadores primarios de reducción y minimización, pero me encontré incapaz de investigar todo el proceso.
fuente
Respuestas:
Romper la función de Ackermann hasta los operadores elementales realmente sería bastante largo, pero aquí hay un bosquejo:
Tenga en cuenta que cuando calcula recursiva, en cualquier punto del cálculo está tratando con una expresión de la forma A ( m 1 , A ( m 2 , ... , A ( m k , z ) ... ) . una función de emparejamiento biyectivo p con inversa ( π 1 , π 2 ) , podemos codificar este estado como p ( z , p ( kA ( m , x ) A ( m1, A ( m2, ... , A ( mk, z) ... ) pag ( π1, π2) (solo p ( z , 0 ) en caso de que k = 0 ). Luego podemos definir la función de evaluación de un paso, dado un estado:p ( z, p ( k , p ( mk, ... , p ( m2, m1) ... ) p ( z, 0 ) k = 0
;e ( p ( z, 0 ) ) = p ( z, 0 )
;e ( p ( z, p ( k , p ( 0 , c ) ) ) ) = p ( z+ 1 , p ( k - 1 , c ) )
.e ( p ( z+ 1 , p ( k , p ( m + 1 , c ) ) ) ) = p ( z, p ( k + 1 , p ( m + 1 , p ( m , c ) ) ) )
Luego obtiene la función de evaluación de n pasos usando recursividad primitiva:
y E ( n + 1 , m , x ) = e ( E ( n , m , x ) ) .mi( 0 , m , x ) = p ( x , p ( 1 , m ) ) mi( n + 1 , m , x ) = e ( E( n , m , x ) )
fuente
Esta es una variante de la idea publicada por Kaveh, pero estoy publicando de todos modos, ya que le permite barrer muchos detalles desagradables debajo de la alfombra sin hacer ningún movimiento manual.
fuente