End-to-End Formal Verification of a Fast and Accurate Floating-Point Approximation - Archive ouverte HAL
Pré-Publication, Document De Travail Année : 2024

End-to-End Formal Verification of a Fast and Accurate Floating-Point Approximation

Résumé

Designing an efficient yet accurate floating-point approximation of a mathematical function is an intricate and error-prone process. This warrants the use of formal methods, especially formal proof, to achieve some degree of confidence in the implementation. Unfortunately, the lack of automation or its poor interplay with the more manual parts of the proof makes it way too costly in practice. This article revisits the issue by proposing a methodology and some dedicated automation, and applies them to the use case of a faithful binary64 approximation of exponential. The peculiarity of this use case is that the target of the formal verification is not a simple modeling of an external code, it is an actual floating-point function defined in the logic of the Coq proof assistant, which is thus usable inside proofs once its correctness has been fully verified. This function presents all the attributes of a state-of-the-art implementation: bit-level manipulations, large tables of constants, obscure floating-point transformations, exceptional values, etc. This function has been integrated into the proof strategies of the CoqInterval library, bringing a 20x speedup with respect to the previous implementation.
Fichier principal
Vignette du fichier
article.pdf (668.38 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-04515714 , version 1 (21-03-2024)
hal-04515714 , version 2 (10-07-2024)
hal-04515714 , version 3 (17-09-2024)

Identifiants

  • HAL Id : hal-04515714 , version 1

Citer

Florian Faissole, Paul Geneau de Lamarlière, Guillaume Melquiond. End-to-End Formal Verification of a Fast and Accurate Floating-Point Approximation. 2024. ⟨hal-04515714v1⟩
149 Consultations
194 Téléchargements

Partager

More