A Proof of GMP Square Root
Abstract
We present a formal proof (at the implementation level) of an efficient algorithm proposed by Paul Zimmermann \cite{Zimmermann2000} to compute square roots of arbitrary large integers. This program, which is part of the GNU Multiple Precision Arithmetic Library (GMP) is completely proven within the Coq system. Proofs are developed using the Correctness tool to deal with imperative features of the program. The formalization is rather large (more than 13000 lines) and requires some advanced techniques for proof management and reuse.