Computation and Formal Verification of SRT
Quotient and Square Root Digit Selection Tables

David M. Russinoff

Abstract

We present a comprehensive, self-contained, and mechanically verified proof of correctness of a maximally redundant SRT design for floating-point division and square root extraction, supported by verified procedures that (a) test the admissibility of a proposed digit selection table, (b) determine the minimal dimensions of an admissible table for a given arbitrary radix, and (c) generate these tables. For square root extraction, we also provide a verified procedure for generating an initial approximation that meets the accuracy requirement of the algorithm and also ensures that the digit selection index derived from successive partial roots remains static throughout the computation. A radix-8 instantiation of these algorithms has been implemented in the floating-point unit of the AMD processor code-named Steamroller. To ensure their correctness, all of our results and procedures have been formalized and mechanically checked by the ACL2 prover. We present evidence of the value of this approach by comparing it to that of a more conventional published paper that reports similar results, which are shown to be fatally flawed.

Full paper: ps, pdf (appeared in IEEE Transactions on Computers as the featured article of May 2013)