Desde el punto de vista de la implementación, su definición es ineficiente, porque en cada paso hay que decidir si se aplica el a−a=0 que requiere que se compruebe si los dos argumentos de − son iguales, y esto llevará mucho tiempo si los argumentos son grandes.
Una implementación más eficiente es:
a−0=a0−S(b)=0(or leave this undefined)S(a)−S(b)=a−b
Aquí puedes decidir en tiempo constante cuál de los tres casos se aplica: ¿el segundo argumento es cero? Si es así aplica la primera regla, si no, ¿es el primer argumento cero? Si lo es, aplica la segunda regla; si no, aplica la tercera.
Deje el caso intermedio sin definir si desea una sustracción ordinaria, pero defínalo como 0 si desea la llamada "sustracción truncada" en la que a−b=0 cuando a<b .
Para la división, es mejor dividirla en operaciones de números enteros. Para cada a y b hay un cociente entero q y un resto entero r tal que a=qb+r y 0≤r<b ; si r=0 entonces b divide a exactamente y q=a÷b . Calcular el cociente y el resto de números enteros en aritmética Peano no es difícil. El cociente es:
0÷S(b)=0S(a)÷S(b)=S((ab)÷S(b))
Donde se denota la sustracción truncada. Entonces el resto es simplemente a−b⋅(a÷b) .