English
Related papers

Related papers: Verifying Floating-Point Programs in Stainless

200 papers

Deductive verification has been successful in verifying interesting properties of real-world programs. One notable gap is the limited support for floating-point reasoning. This is unfortunate, as floating-point arithmetic is particularly…

Programming Languages · Computer Science 2021-01-22 Rosa Abbasi Boroujeni , Jonas Schiffl , Eva Darulova , Mattias Ulbrich , Wolfgang Ahrendt

We give a process for verifying numerical programs against their functional specifications. Our implementation is capable of automatically verifying programs against tight error bounds featuring common elementary functions. We demonstrate…

Logic in Computer Science · Computer Science 2022-07-05 Junaid Rasheed , Michal Konečný

We present the design, implementation, and foundation of a verifier for higher-order functional programs with generics and recursive data types. Our system supports proving safety and termination using preconditions, postconditions and…

Logic in Computer Science · Computer Science 2020-03-25 Jad Hamza , Nicolas Voirol , Viktor Kunčak

High confidence in floating-point programs requires proving numerical properties of final and intermediate values. One may need to guarantee that a value stays within some range, or that the error relative to some ideal value is well…

Numerical Analysis · Computer Science 2008-01-04 Florent De Dinechin , Christoph Quirin Lauter , Guillaume Melquiond

Current critical systems commonly use a lot of floating-point computations, and thus the testing or static analysis of programs containing floating-point operators has become a priority. However, correctly defining the semantics of common…

Programming Languages · Computer Science 2025-10-20 David Monniaux

Formal verification of floating-point arithmetic remains challenging due to non-linear arithmetic behavior and the tight coupling between control and datapath logic. Existing approaches often rely on high-level C models for equivalence…

Logic in Computer Science · Computer Science 2026-03-05 Hansa Mohanty , Vaisakh Naduvodi Viswambharan , Deepak Narayan Gadde

Verification of programs using floating-point arithmetic is challenging on several accounts. One of the difficulties of reasoning about such programs is due to the peculiarities of floating-point arithmetic: rounding errors, infinities,…

Programming Languages · Computer Science 2022-06-23 Roberto Bagnara , Abramo Bagnara , Fabio Biselli , Michele Chiari , Roberta Gori

Reasoning about floating-point arithmetic is notoriously hard. While static and dynamic analysis techniques or program repair have made significant progress, more work is still needed to make them relevant to real-world code. On the…

Programming Languages · Computer Science 2026-03-11 Andrea Gilot , Tobias Wrigstad , Eva Darulova

Test instability in a floating-point program occurs when the control flow of the program diverges from its ideal execution assuming real arithmetic. This phenomenon is caused by the presence of round-off errors that affect the evaluation of…

Programming Languages · Computer Science 2020-01-10 Laura Titolo , Mariano Moscato , Cesar A. Muñoz

We describe a new SMT bit-blasting API for floating-points and evaluate it using different out-of-the-shelf SMT solvers during the verification of several C programs. The new floating-point API is part of the SMT backend in ESBMC, a…

Logic in Computer Science · Computer Science 2020-04-30 Mikhail R. Gadelha , Lucas C. Cordeiro , Denis A. Nicole

Scientific computing programs often undergo aggressive compiler optimization to achieve high performance and efficient resource utilization. While performance is critical, we also need to ensure that these optimizations are correct. In this…

Programming Languages · Computer Science 2025-09-12 Mohit Tekriwal , John Sarracino

Gradual verification soundly combines static checking and dynamic checking to provide an incremental approach for software verification. With gradual verification, programs can be partially specified first, and then the full specification…

Programming Languages · Computer Science 2025-12-01 Doruk Alp Mutlu

We present the formal verification of a low-power x86 floating-point multiplier. The multiplier operates iteratively and feeds back intermediate results in redundant representation. It supports x87 and SSE instructions in various precisions…

Logic in Computer Science · Computer Science 2011-10-24 Peter-Michael Seidel

This paper introduces several techniques that improve the scalability of the deductive verification of data-level programs working on arrays and matrices. First of all, we introduce a technique to rewrite expressions with (nested)…

Software Engineering · Computer Science 2026-05-14 Lars B. van den Haak , Anton Wijs , Marieke Huisman

Program verification techniques typically focus on finding counter-examples that violate properties of a program. Constraint programming offers a convenient way to verify programs by modeling their state transformations and specifying…

Artificial Intelligence · Computer Science 2020-03-02 Heytem Zitoun , Claude Michel , Laurent Michel , Michel Rueher

In this work, we verify the mutable LongMap from the Scala standard library, a hash table using open addressing within a single array, using the Stainless program verifier. As a reference implementation, we write an immutable map based on a…

Software Engineering · Computer Science 2024-01-31 Samuel Chassot , Viktor Kunčak

Numerical accuracy of floating point computation is a well studied topic which has not made its way to the end-user in scientific computing. Yet, it has become a critical issue with the recent requirements for code modernization to harness…

Mathematical Software · Computer Science 2018-11-12 Christophe Denis , Pablo De Oliveira Castro , Eric Petit

Geometric predicates are at the core of many algorithms, such as the construction of Delaunay triangulations, mesh processing and spatial relation tests. These algorithms have applications in scientific computing, geographic information…

Numerical Analysis · Mathematics 2023-08-01 Tinko Bartels , Vissarion Fisikopoulos , Martin Weiser

Achieving high code coverage is essential in testing, which gives us confidence in code quality. Testing floating-point code usually requires painstaking efforts in handling floating-point constraints, e.g., in symbolic execution. This…

Programming Languages · Computer Science 2017-04-17 Zhoulai Fu , Zhendong Su

Floating point arithmetic allows us to use a finite machine, the digital computer, to reach conclusions about models based on continuous mathematics. In this article we work in the other direction, that is, we present examples in which…

Numerical Analysis · Mathematics 2017-10-05 Walter F. Mascarenhas
‹ Prev 1 2 3 10 Next ›