Abstract
In this paper we present a general library to reason about floating-point numbers within the Coq system. Most of the results of the library are proved for an arbitrary floating-point format and an arbitrary base. A special emphasis has been put on proving properties for exact computing, i.e. computing without rounding errors.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
David H. Bailey, Robert Krasny, and Richard Pelz. Multiple precision, multiple processor vortex sheet roll-up computation. In Proceedings of the Sixth SIAM Conference on Parallel Processing for Scientific Computing, pages 52–56, Philadelphia, Pennsylvania, 1993.
Geoff Barrett. Formal Methods Applied to a Floating-Point Number System. IEEE Transactions on Software Engineering, 15(5):611–621, 1989.
Yves Bertot, Gilles Dowek, André Hirschowitz, Christine Paulin, and Laurent Théry, editors. Theorem Proving in Higher Order Logics: 12th International Conference, TPHOLs’99, number 1690 in LNCS, Nice, France, September 1999. Springer-Verlag.
Gerd Bohlender, Wolfgang Walter, Peter Kornerup, and David W. Matula. Semantics for exact floating point operations. In Peter Kornerup and David W. Matula, editors, Proceedings of the 10th Symposium on Computer Arithmetic, pages 22–26, Grenoble, France, 1991. IEEE Computer Society Press.
C. Burnikel, R. Fleischer, K. Mehlhorn, and S. Schirra. Efficient exact geometric computation made easy. In Proceedings of the 15th Annual ACM Symposium on Computational Geometry, pages 341–350, Miami, Florida, 1999.
William J. Cody. Static and dynamic numerical characteristics of floating point arithmetic. IEEE Transactions on Computers, 22(6):598–601, 1973.
William J. Cody, Richard Karpinski, et al. A proposed radix and word-length independent standard for floating point arithmetic. IEEE Micro, 4(4):86–100, 1984.
Marc Daumas. Multiplications of floating point expansions. In Israel Koren and Peter Kornerup, editors, Proceedings of the 14th Symposium on Computer Arithmetic, pages 250–257, Adelaide, Australia, 1999.
Marc Daumas and Claire Finot. Division of Floating-Point Expansions with an application to the computation of a determinant. Journal of Universal Computer Science, 5(6):323–338, 1999.
Marc Daumas and Philippe Langlois. Additive symmetric: the non-negative case. Theoretical Computer Science, 2002.
T. J. Dekker. A Floating-Point Technique for Extending the Available Precision. Numerische Mathematik, 18(03):224–242, 1971.
Jean-Christophe Filliâtre. Proof of Imperative Programs in Type Theory. In International Workshop, TYPES’ 98, Kloster Irsee, Germany, number 1657 in LNCS. Springer-Verlag, March 1998.
David Goldberg. What every computer scientist should know about floating point arithmetic. ACM Computing Surveys, 23(1):5–47, 1991.
Michael J. C. Gordon and Thomas F. Melham. Introduction to HOL: a theorem proving environment for higher-order logic. Cambridge University Press, 1993.
Tobjörn Granlund. The GNU multiple precision arithmetic library, 2000. Version 3.1.
John Harrison. A Machine-Checked Theory of Floating Point Arithmetic. In Gilles Dowek, André Hirschowitz, Christine Paulin, and Laurent Théry, editors. Theorem Proving in Higher Order Logics: 12th International Conference, TPHOLs’99, number 1690 in LNCS, Nice, France, September 1999. Springer-Verlag. Bertot et al. [3]}, pages 113–130.
Nicholas J. Higham. Accuracy and stability of numerical algorithms. SIAM, 1996.
Gérard Huet, Gilles Kahn, and Christine Paulin-Mohring. The Coq Proof Assistant: A Tutorial: Version 6.1. Technical Report 204, INRIA, 1997.
V. Karamcheti, C. Li, I. Pechtchanski, and Chee Yap. A core library for robust numeric and geometric computation. In Proceedings of the 15th Annual ACM Symposium on Computational Geometry, pages 351–359, Miami, Florida, 1999.
Richard Karpinski. PARANOIA: a floating-point benchmark. Byte, 10(2):223–235, 1985.
Matt Kaufmann, Panagiotis Manolios, and J Strother Moore. Computer-Aided Reasoning: An Approach. advances in formal methods. Kluwer Academic Publishers, 2000.
Donald E. Knuth. The art of computer programming: Seminumerical Algorithms. Addison Wesley, 1973. Second edition.
Michael A. Malcolm. Algorithms to reveal properties of floating-Point Arithmetic. Communications of the ACM, 15(11):949–951, 1972.
Micaela Mayero. The Three Gap Theorem: Specification and Proof in Coq. Technical Report 3848, INRIA, 1999.
Paul S. Miner. Defining the IEEE-854 floating-point standard in pvs. Technical Memorandum 110167, NASA, Langley Research Center, 1995.
Ole Møller. Note on quasi double-precision. BIT, 5(4):251–255, 1965.
Ole Møller. Quasi double-precision in floating point addition. BIT, 5(1):37–50, 1965.
Douglas M. Priest. On Properties of Floating Point Arithmetics: Numerical Stability and the Cost of Accurate. Phd, U.C. Berkeley, 1993.
John F. Reiser and Donald E. Knuth. Evading the drift in floating point addition. Information Processing Letter, 3(3):84–87, 1975.
John M. Rushby, Natajaran Shankar, and Mandayam Srivas. PVS: Combining specification, proof checking, and model checking. In CAV’ 96, volume 1102 of LNCS. Springer-Verlag, July 1996.
David M. Russinoff. A Mechanically Checked Proof of IEEE Compliance of the AMD K5 Floating-Point Square Root Microcode. Formal Methods in System Design, 14(1):75–125, January 1999.
Jonathan Richard Shewchuk. Adaptive Precision Floating-Point Arithmetic and Fast Robust Geometric Predicates. Discrete & Computational Geometry, 18(03):305–363, 1997.
Mike J. Spivey. Understanding Z: A Specification Language and its Formal Semantics. Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, 1988.
Pat H. Sterbenz. Floating point computation. Prentice Hall, 1974.
David Stevenson et al. An american national standard: IEEE standard for binary floating point arithmetic. ACM SIGPLAN Notices, 22(2):9–25, 1987.
Markus Wenzel. A Generic Interpretative Approach to Readable Formal Proof Documents. In Gilles Dowek, André Hirschowitz, Christine Paulin, and Laurent Théry, editors. Theorem Proving in Higher Order Logics: 12th International Conference, TPHOLs’99, number 1690 in LNCS, Nice, France, September 1999. Springer-Verlag. Bertot et al. [3]}, pages 167–184.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Daumas, M., Rideau, L., Théry, L. (2001). A Generic Library for Floating-Point Numbers and Its Application to Exact Computing. In: Boulton, R.J., Jackson, P.B. (eds) Theorem Proving in Higher Order Logics. TPHOLs 2001. Lecture Notes in Computer Science, vol 2152. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44755-5_13
Download citation
DOI: https://doi.org/10.1007/3-540-44755-5_13
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42525-0
Online ISBN: 978-3-540-44755-9
eBook Packages: Springer Book Archive