Formal Verification of Transcendental Fixed- and Floating-point Algorithms using an Automatic Theorem Prover
Open Access
- 30 June 2022
- journal article
- research article
- Published by Association for Computing Machinery (ACM) in Formal Aspects of Computing
- Vol. 34 (2) , 1-22
Abstract
We present a method for formal verification of transcendental hardware and software algorithms that scales to higher precision without suffering an exponential growth in runtimes. A class of implementations using piecewise polynomial approximation to compute the result is verified using MetiTarski, an automated theorem prover, which verifies a range of inputs for each call. The method was applied to commercial implementations from Cadence Design Systems with significant runtime gains over exhaustive testing methods and was successful in proving that the expected accuracy of one implementation was overly optimistic. Reproducing the verification of a sine implementation in software, previously done using an alternative theorem-proving technique, demonstrates that the MetiTarski approach is a viable competitor. Verification of a 52-bit implementation of the square root function highlights the method’s high-precision capabilities.Keywords
This publication has 41 references indexed in Scilit:
- Floating-point arithmetic in the Coq systemInformation and Computation, 2012
- MPFRACM Transactions on Mathematical Software, 2007
- Algorithm and architecture for logarithm, exponential, and powering computationIEEE Transactions on Computers, 2004
- QEPCAD BACM SIGSAM Bulletin, 2003
- 114 MFLOPS logarithmic number system arithmetic unit for DSP applicationsIEEE Journal of Solid-State Circuits, 1995
- BKM: a new hardware algorithm for complex elementary functionsIEEE Transactions on Computers, 1994
- Hardware efficient algorithms for trigonometric functionsIEEE Transactions on Computers, 1993
- What every computer scientist should know about floating-point arithmeticACM Computing Surveys, 1991
- An accurate elementary mathematical library for the IEEE floating point standardACM Transactions on Mathematical Software, 1991
- On the numerical determination of the best approximations in the Chebyshev senseNumerische Mathematik, 1960