Función 91 de McCarthy

Definición

Función propuesta por John McCarthy (1970) como ejemplo clásico de verificación de programas recursivos:

Por qué es un ejemplo relevante

La rama recursiva llama a f dos veces anidadas (recursión doble) y el argumento interno puede crecer antes de que la recursión toque el caso base. No es evidente, solo con la definición, que la recursión termine ni que produzca siempre el mismo valor.

Resultado principal

Se demuestra con el principio de inducción modificado, bajando desde el techo (k=100): el paso inductivo separa dos casos según si (x+11) supera 100 o no, y en ambos usa que la propiedad ya vale para valores mayores que (x).

Implementación (C#)

public static int mc91( int n )
{
    if (n > 100) return n - 10;
    else         return mc91( mc91( n + 11 ) );
}

Relaciones

Procedencia