Document

**Published in:** LIPIcs, Volume 309, 15th International Conference on Interactive Theorem Proving (ITP 2024)

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 20× speedup with respect to the previous implementation.

Florian Faissole, Paul Geneau de Lamarlière, and Guillaume Melquiond. End-To-End Formal Verification of a Fast and Accurate Floating-Point Approximation. In 15th International Conference on Interactive Theorem Proving (ITP 2024). Leibniz International Proceedings in Informatics (LIPIcs), Volume 309, pp. 14:1-14:18, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2024)

Copy BibTex To Clipboard

@InProceedings{faissole_et_al:LIPIcs.ITP.2024.14, author = {Faissole, Florian and Geneau de Lamarli\`{e}re, Paul and Melquiond, Guillaume}, title = {{End-To-End Formal Verification of a Fast and Accurate Floating-Point Approximation}}, booktitle = {15th International Conference on Interactive Theorem Proving (ITP 2024)}, pages = {14:1--14:18}, series = {Leibniz International Proceedings in Informatics (LIPIcs)}, ISBN = {978-3-95977-337-9}, ISSN = {1868-8969}, year = {2024}, volume = {309}, editor = {Bertot, Yves and Kutsia, Temur and Norrish, Michael}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ITP.2024.14}, URN = {urn:nbn:de:0030-drops-207420}, doi = {10.4230/LIPIcs.ITP.2024.14}, annote = {Keywords: Program verification, floating-point arithmetic, formal proof, automated reasoning, mathematical library} }

Document

**Published in:** LIPIcs, Volume 195, 6th International Conference on Formal Structures for Computation and Deduction (FSCD 2021)

We present a call-by-need λ-calculus that enables strong reduction (that is, reduction inside the body of abstractions) and guarantees that arguments are only evaluated if needed and at most once. This calculus uses explicit substitutions and subsumes the existing strong-call-by-need strategy, but allows for more reduction sequences, and often shorter ones, while preserving the neededness.
The calculus is shown to be normalizing in a strong sense: Whenever a λ-term t admits a normal form n in the λ-calculus, then any reduction sequence from t in the calculus eventually reaches a representative of the normal form n. We also exhibit a restriction of this calculus that has the diamond property and that only performs reduction sequences of minimal length, which makes it systematically better than the existing strategy. We have used the Abella proof assistant to formalize part of this calculus, and discuss how this experiment affected its design.

Thibaut Balabonski, Antoine Lanco, and Guillaume Melquiond. A Strong Call-By-Need Calculus. In 6th International Conference on Formal Structures for Computation and Deduction (FSCD 2021). Leibniz International Proceedings in Informatics (LIPIcs), Volume 195, pp. 9:1-9:22, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2021)

Copy BibTex To Clipboard

@InProceedings{balabonski_et_al:LIPIcs.FSCD.2021.9, author = {Balabonski, Thibaut and Lanco, Antoine and Melquiond, Guillaume}, title = {{A Strong Call-By-Need Calculus}}, booktitle = {6th International Conference on Formal Structures for Computation and Deduction (FSCD 2021)}, pages = {9:1--9:22}, series = {Leibniz International Proceedings in Informatics (LIPIcs)}, ISBN = {978-3-95977-191-7}, ISSN = {1868-8969}, year = {2021}, volume = {195}, editor = {Kobayashi, Naoki}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.FSCD.2021.9}, URN = {urn:nbn:de:0030-drops-142477}, doi = {10.4230/LIPIcs.FSCD.2021.9}, annote = {Keywords: strong reduction, call-by-need, evaluation strategy, normalization} }

Document

**Published in:** Dagstuhl Seminar Proceedings, Volume 6021, Reliable Implementation of Real Number Algorithms: Theory and Practice (2006)

I will report on a recent effort by Guillaume Melquiond, HervÃƒÂ© Br"onnimann
and myself to push forward a proposal to include interval arithmetic in the
next C++ ISO standard. The goals of the standardization are to produce a
unified specification which will serve as many uses of intervals as possible,
together with hoping for very efficient implementations, closer to the
compilers. I will describe how the standardization process works, explain
some of the design choices made, and list some of the other questions arising
in the process. We welcome any comment on the proposal.

Sylvain Pion, Hervé Brönnimann, and Guillaume Melquiond. A Proposal to add Interval Arithmetic to the C++ Standard Library. In Reliable Implementation of Real Number Algorithms: Theory and Practice. Dagstuhl Seminar Proceedings, Volume 6021, pp. 1-25, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2006)

Copy BibTex To Clipboard

@InProceedings{pion_et_al:DagSemProc.06021.4, author = {Pion, Sylvain and Br\"{o}nnimann, Herv\'{e} and Melquiond, Guillaume}, title = {{A Proposal to add Interval Arithmetic to the C++ Standard Library}}, booktitle = {Reliable Implementation of Real Number Algorithms: Theory and Practice}, pages = {1--25}, series = {Dagstuhl Seminar Proceedings (DagSemProc)}, ISSN = {1862-4405}, year = {2006}, volume = {6021}, editor = {Peter Hertling and Christoph M. Hoffmann and Wolfram Luther and Nathalie Revol}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/DagSemProc.06021.4}, URN = {urn:nbn:de:0030-drops-7189}, doi = {10.4230/DagSemProc.06021.4}, annote = {Keywords: Interval arithmetic, C++, ISO standard} }

X

Feedback for Dagstuhl Publishing

Feedback submitted

Please try again later or send an E-mail