Función de Ackermann

Definición

Función doblemente recursiva de dos variables, propuesta por Wilhelm Ackermann (1928):

Resultados cerrados (demostrados por inducción en cascada)

(m)(A(m,z))
0(z+1)
1(z+2)
2(2z+3)
3(2^{z+3}-3)
4torre de potencias de 2, (z+2) veces, menos 3

Cada fila se demuestra por inducción sobre (z) usando el resultado ya probado de la fila anterior como hipótesis auxiliar dentro del paso inductivo.

Por qué crece tan rápido

A partir de (m=3)–(4) el crecimiento deja de ser exponencial simple y se vuelve una torre de exponenciales. Por ejemplo, (A(4,1)=65533) y (A(4,2)=2^{65536}-3) (19 729 dígitos). Se usa históricamente como ejemplo de función no primitiva-recursiva.

Propiedad con inducción sobre dos variables

Se demuestra con una inducción sobre (x) que contiene, dentro de su paso inductivo, una segunda inducción sobre (y).

Uso en ternas de Hoare

Una vez demostrado (A(1,z)=z+2), se puede usar como lema dentro de una verificación de programas:

combinando el axioma de asignación con la regla de consecuencia.

Relaciones

Procedencia