Automatic Verification of Floating-Point Accumulation Networks
David K. Zhang, Alex Aiken
TL;DR
This work tackles the challenging verification of floating-point accumulation networks (FPANs), which arise in compensated summation and multi-term expansions. It introduces SELTZO, a six-parameter abstraction that captures sign, exponent, and mantissa bit-pattern structure to enable linear-inequality reasoning about FPANs, reducing P(F) to a SMT-friendly S_{P,F} in Presburger arithmetic. The authors demonstrate automatic, computer-verified proofs for tight error bounds on FPANs, including a new double-double addition algorithm madd that is faster and more accurate than the previous ddadd, with relative error bounded by about 2u^2. The approach yields orders-of-magnitude speedups over floating-point theories and scales across formats, enabling automated discovery and certification of new FPANs. Collectively, the work advances reliable high-precision floating-point algorithms by combining a novel abstraction, automatic verification, and improved addition techniques with practical impact for numerical libraries and scientific computing.
Abstract
Floating-point accumulation networks (FPANs) are key building blocks used in many floating-point algorithms, including compensated summation and double-double arithmetic. FPANs are notoriously difficult to analyze, and algorithms using FPANs are often published without rigorous correctness proofs. In fact, on at least one occasion, a published error bound for a widely used FPAN was later found to be incorrect. In this paper, we present an automatic procedure that produces computer-verified proofs of several FPAN correctness properties, including error bounds that are tight to the nearest bit. Our approach is underpinned by a novel floating-point abstraction that models the sign, exponent, and number of leading and trailing zeros and ones in the mantissa of each number flowing through an FPAN. We also present a new FPAN for double-double addition that is faster and more accurate than the previous best known algorithm.
