Expresión explícita mu-recursiva para la función de Ackerman

15

¿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.

Artem Pelenitsyn
fuente
1
En realidad, esto no es tan difícil como puede parecer al principio. El truco consiste en dejar que el operador busque un cálculo de la función Ackerman, es decir, la tabla de valores hasta la entrada, y luego verifique que la tabla siga la definición de la función. Lo que se necesita es codificar / decodificar secuencias finitas y verificar la tabla. La codificación / decodificación se define explícitamente en muchos libros de texto, la verificación puede realizarse mediante un cuantificador universal acotado sobre una relación simple entre las entradas de la tabla. El cuantificador universal acotado puede expresarse como multiplicación acotada,μ
Kaveh
y una definición explícita de multiplicación acotada en términos de -recursion también se puede encontrar en los libros de texto. μ
Kaveh
@Kaveh sí, la misma idea implementada en "Una introducción a los teoremas de Godel" de P. Smith. Las codificaciones y la aplicación del operador de minimización se dan allí. La parte difícil es cómo generar la "tabla" como la nombre. Smith lo esquió. Así que parece que tendré que pensarlo mejor en lugar de esperar soluciones aquí;) Al menos, gracias por su aprobación del enfoque general.
Artem Pelenitsyn
La tabla es solo una secuencia finita donde las entradas se indexan por el resultado de una función de emparejamiento. donde R ( c , x , y )μC:X<Lminorte(C)y,z<X,X= <y,z> →C<y,z>=R(C,X,y)R(C,X,y)es la rhs de la ecuación para . UNCk(X,y)
Kaveh

Respuestas:

13

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 ( kUN(metro,X)UN(metro1,UN(metro2,...,UN(metrok,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:pag(z,pag(k,pag(metrok,...,pag(metro2,metro1)...)pag(z,0 0)k=0 0

;mi(pag(z,0 0))=pag(z,0 0)

;mi(pag(z,pag(k,pag(0 0,C))))=pag(z+1,pag(k-1,C))

mi(pag(0 0,pag(k,pag(metro+1,C))))=pag(1,pag(k,pag(metro,C)))

.mi(pag(z+1,pag(k,pag(metro+1,C))))=pag(z,pag(k+1,pag(metro+1,pag(metro,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 0,metro,X)=pag(X,pag(1,metro))mi(norte+1,metro,X)=mi(mi(norte,metro,X))

μmipag(z,0 0)zUN(metro,X)

Klaus Draeger
fuente
¡Gracias! Una pregunta más (tal vez bastante ingenua, lo siento): las definiciones similares a la coincidencia de patrones (f (0) = ..., f (n + 1) = ...) se usan ampliamente, pero dudo que realmente estén permitidas por el definición de función mu-recursiva. ¿Son ellos?
Artem Pelenitsyn
F(X,y)F(0 0,y)=sol(y)F(X+1,y)=h(X,y)UN(X,y) bastante si desea desglosar esto en el conjunto básico de operaciones. π1,π2
Klaus Draeger
mimi(s)=F1(π1(s),π2(s))F1(z,0 0)=pag(z,0 0)F1(z,metro+1)=F2(z,π1(metro+1),π2(metro+1))F2...
7

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.

si(metro,norte,w)UN(metro,norte)=wsi(metro,norte,w)=2metrowwdebería ser lo suficientemente bueno, pero eso depende de su elección del esquema de codificación. Dado que la verificación de los valores de la tabla puede describirse mediante una fórmula acotada, es primitiva recursiva.

sol(metro,norte,w)UN(metro,norte)=μwsol(metro,norte,w)

si(metro,norte,w)μμ

François G. Dorais
fuente
1
Hola françois Es bueno verte en teoría.
Kaveh
Hola kaveh ¡Es bueno finalmente poder responder algo aquí!
François G. Dorais