A Mechanically Checked Proof of Correctness of the AMD K5 Floating Point Square Root Microcode
Formal Methods in System Design
More on Squaring and Multiplying Large Integers
IEEE Transactions on Computers
Inductive Definitions in the system Coq - Rules and Properties
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
Defining the IEEE-854 Floating-Point Standard in PVS
Defining the IEEE-854 Floating-Point Standard in PVS
Verification of non-functional programs using interpretations in type theory
Journal of Functional Programming
Dependent Types, Theorem Proving, and Applications for a Verifying Compiler
Verified Software: Theories, Tools, Experiments
Formal Verification of Exact Computations Using Newton's Method
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
Formally certified stable marriages
Proceedings of the 48th Annual Southeast Regional Conference
IJCAR'06 Proceedings of the Third international joint conference on Automated Reasoning
Formal study of plane delaunay triangulation
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Designing and proving correct a convex hull algorithm with hypermaps in Coq
Computational Geometry: Theory and Applications
Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security
Hi-index | 0.00 |
We present a formal proof (at the implementation level) of an efficient algorithm proposed by P. Zimmermann in 1999 to compute square roots of arbitrarily large integers. This program, which is part of the GNU Multiple Precision Arithmetic Library, 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 13,000 lines) and requires some advanced techniques for proof management and reuse.