@MISC{Moore96correctnessof, author = {J Strother Moore and Tom Lynch and Matt Kaufmann}, title = {Correctness of the AMD K}, year = {1996} }

Share

OpenURL

Abstract

We describe a mechanically checked proof of the correctness of the kernel of the
oating point division algorithm used on the AMD5 K 86 microprocessor. The kernel is a non-restoring division algorithm that computes the
oating point quotient of two double extended precision oating point numbers, p and d (d 6 = 0), with respect to a rounding mode, mode. The algorithm is dened in terms of
oating point addition and multiplication. First, two Newton-Raphson iterations are used to compute a
oating point approximation of the reciprocal of d. The result is used to compute four
oating point quotient digits in the 24,,17 format (24 bits of precision and 17 bit exponents) which are then summed using appropriate rounding modes. We prove that if p and d are 64,,15 (possibly denormal)
oating point numbers, d 6 = 0 and mode species one of six rounding procedures and a desired precision 0 < n 64, then the output of the algorithm is p=d rounded according to mode. We prove that every intermediate result is a
oating point number in the format required by the resources allocated to it. Our claims have been mechanically checked using the ACL2 theorem prover. 1