Affiliation:
1. ELIAUS-UPVD, Perpignan cedex, France
2. LIP-CNRS-INRIA-ENS Lyon, Orsay Cedex, France
Abstract
Gappa is a tool designed to formally verify the correctness of numerical software and hardware. It uses interval arithmetic and forward error analysis to bound mathematical expressions that involve rounded as well as exact operators. It then generates a theorem and its proof for each verified enclosure. This proof can be automatically checked with a proof assistant, such as Coq or HOL Light. It relies on a large companion library of facts that we have developed. This Coq library provides theorems dealing with addition, multiplication, division, and square root, for both fixed- and floating-point arithmetics. Gappa uses multiple-precision dyadic fractions for the endpoints of intervals and performs forward error analysis on rounded operators when necessary. When asked, Gappa reports the best bounds it is able to reach for a given expression in a given context. This feature can be used to identify where the set of facts and automatic techniques implemented in Gappa becomes insufficient. Gappa handles seamlessly additional properties expressed as interval properties or rewriting rules in order to establish more intricate bounds. Recent work showed that Gappa is suited to discharge proof obligations generated for small pieces of software. They may be produced by third-party tools and the first applications of Gappa use proof obligations written by designers or obtained from traces of execution.
Publisher
Association for Computing Machinery (ACM)
Subject
Applied Mathematics,Software
Cited by
79 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Arfa: An Agile Regime-Based Floating-Point Optimization Approach for Rounding Errors;Proceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis;2024-09-11
2. Numerical Fuzz: A Type System for Rounding Error Analysis;Proceedings of the ACM on Programming Languages;2024-06-20
3. Floating-Point TVPI Abstract Domain;Proceedings of the ACM on Programming Languages;2024-06-20
4. Formally Verified Interval Arithmetic and Its Application to Program Verification;Proceedings of the 2024 IEEE/ACM 12th International Conference on Formal Methods in Software Engineering (FormaliSE);2024-04-14
5. A Holistic Approach to Automatic Mixed-Precision Code Generation and Tuning for Affine Programs;Proceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming;2024-02-20