Dado un número entero distinto de cero a y $b\Bbb N$ queremos calcular $a^b$ . Consideremos el siguiente algoritmo recursivo $\operatorname{POW}(a,b)$ .
Si $b=0$ devolución $1$
En caso contrario, si b es impar, devuelve $a\cdot(\operatorname{POW}(a,\lfloor b/2\rfloor))^2$ .
En caso contrario (es decir, si $b>0$ y $b$ es par), devuelve $(\operatorname{POW}(a,\lfloor b/2\rfloor))^2$ .
Y queremos demostrar que POW está en lo cierto. Es decir, demostrar que POW se detiene y devuelve $a^b$ .
Para la prueba: Sea $p(b)$ sea el predicado $\operatorname{POW}(a,b)$ se detiene y regresa $a^b$ . Es fácil demostrar el caso base que es: cuando $b=0$ observamos que $\operatorname{POW}(a,0)$ se detiene y regresa $1$ que es igual a $a^0$ . Pero no estoy seguro de cómo continuar el paso inductivo.
¿Puede alguien darme alguna pista?