An axiomatic basis for computer programming
Communications of the ACM
Using Reflection to Build Efficient and Certified Decision Procedures
TACS '97 Proceedings of the Third International Symposium on Theoretical Aspects of Computer Software
A Machine-Checked Theory of Floating Point Arithmetic
TPHOLs '99 Proceedings of the 12th International Conference on Theorem Proving in Higher Order Logics
A Generic Library for Floating-Point Numbers and Its Application to Exact Computing
TPHOLs '01 Proceedings of the 14th International Conference on Theorem Proving in Higher Order Logics
The Three Gap Theorem (Steinhaus Conjecture)
TYPES '99 Selected papers from the International Workshop on Types for Proofs and Programs
Interactive Theorem Proving and Program Development
Interactive Theorem Proving and Program Development
Assisted verification of elementary functions using Gappa
Proceedings of the 2006 ACM symposium on Applied computing
Combining ACL2 and an automated verification tool to verify a multiplier
ACL2 '06 Proceedings of the sixth international workshop on the ACL2 theorem prover and its applications
Formal Verification of Floating-Point Programs
ARITH '07 Proceedings of the 18th IEEE Symposium on Computer Arithmetic
CC(X): Semantic Combination of Congruence Closure with Solvable Theories
Electronic Notes in Theoretical Computer Science (ENTCS)
Proving Bounds on Real-Valued Functions with Computations
IJCAR '08 Proceedings of the 4th international joint conference on Automated Reasoning
Kahan's Algorithm for a Correct Discriminant Computation at Last Formally Proven
IEEE Transactions on Computers
Floats and Ropes: A Case Study for Formal Numerical Program Verification
ICALP '09 Proceedings of the 36th Internatilonal Collogquium on Automata, Languages and Programming: Part II
The Why/Krakatoa/Caduceus platform for deductive program verification
CAV'07 Proceedings of the 19th international conference on Computer aided verification
IJCAR'06 Proceedings of the Third international joint conference on Automated Reasoning
Floats and Ropes: A Case Study for Formal Numerical Program Verification
ICALP '09 Proceedings of the 36th Internatilonal Collogquium on Automata, Languages and Programming: Part II
Towards program optimization through automated analysis of numerical precision
Proceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization
Formally verified conditions for regularity of interval matrices
AISC'10/MKM'10/Calculemus'10 Proceedings of the 10th ASIC and 9th MKM international conference, and 17th Calculemus conference on Intelligent computer mathematics
Verified squared: does critical software deserve verified tools?
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proofs of numerical programs when the compiler optimizes
Innovations in Systems and Software Engineering
Validating QBF validity in HOL4
ITP'11 Proceedings of the Second international conference on Interactive theorem proving
Trustworthy numerical computation in Scala
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Validating QBF invalidity in HOL4
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Wave Equation Numerical Resolution: A Comprehensive Mechanized Proof of a C Program
Journal of Automated Reasoning
Efficient search for inputs causing high floating-point errors
Proceedings of the 19th ACM SIGPLAN symposium on Principles and practice of parallel programming
Hi-index | 0.00 |
Formal verification of numerical programs is notoriously difficult. On the one hand, there exist automatic tools specialized in floating-point arithmetic, such as Gappa, but they target very restrictive logics. On the other hand, there are interactive theorem provers based on the LCF approach, such as Coq, that handle a general-purpose logic but that lack proof automation for floating-point properties. To alleviate these issues, we have implemented a mechanism for calling Gappa from a Coq interactive proof. This paper presents this combination and shows on several examples how this approach offers a significant speedup in the process of verifying floating-point programs.