Results 1 -
3 of
3
Combining Coq and Gappa for Certifying Floating-Point Programs ⋆
"... Abstract. Formal verification of numerical programs is notoriously difficult. On the one hand, there exist automatic tools specialized in floatingpoint arithmetic, such as Gappa, but they target very restrictive logics. On the other hand, there are interactive theorem provers based on the LCF approa ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
Abstract. Formal verification of numerical programs is notoriously difficult. On the one hand, there exist automatic tools specialized in floatingpoint 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. 1
Formal veri cation of numerical programs: from C annotated programs to Coq proofs ⋆ Sylvie Boldo
, 2010
"... Abstract. Numerical programs may require a high level of guarantee. This can be achieved by applying formal methods, such as machinechecked proofs. But these tools handle mathematical theorems while we are interested in C code. To achieve this high level of con dence on C programs, we use a chain of ..."
Abstract
- Add to MetaCart
Abstract. Numerical programs may require a high level of guarantee. This can be achieved by applying formal methods, such as machinechecked proofs. But these tools handle mathematical theorems while we are interested in C code. To achieve this high level of con dence on C programs, we use a chain of tools: Frama-C, its Jessie plugin, Why and Coq. This requires the C program to be annotated: this means that each function must be precisely speci ed, and we will prove the correctness of the program by proving both that it meets its speci cations and that it does not fail. Examples will be given to illustrate the features of this approach. 1

