Skip to main content

Pitfalls of a Full Floating-Point Proof: Example on the Formal Proof of the Veltkamp/Dekker Algorithms

  • Conference paper
Automated Reasoning (IJCAR 2006)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 4130))

Included in the following conference series:

Abstract

Some floating-point algorithms have been used for decades and proved decades ago in radix-2, providing neither Underflow, nor Overflow occurs. This includes the Veltkamp algorithm, used to split a float into an upper part and a lower part and the Dekker algorithm, used to compute the exact error of a floating-point multiplication.

The aim of this article is to show the difficulties of a strong justification of the validity of these algorithms for a generic radix and even when Underflow or Overflow occurs. These cases are usually dismissed even if they should not: the main argument in radix 2 of the first algorithm fails in other radices. Nevertheless all results still hold here under mild assumptions. The proof path is interesting as these cases are hardly looked into and new methods and results had to be developed.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Davis, P.J.: Fidelity in mathematical discourse: Is one and one really two? Amer. Math. Monthly 79, 252–263 (1972)

    Article  MATH  MathSciNet  Google Scholar 

  2. Lamport, L., Melliar-Smith, P.M.: Synchronizing clocks in the presence of faults. Journal of the ACM 32(1), 52–78 (1985)

    Article  MATH  MathSciNet  Google Scholar 

  3. Rushby, J., von Henke, F.: Formal verification of algorithms for critical systems. In: Conference on Software for Critical Systems, New Orleans, Louisiana (1991)

    Google Scholar 

  4. Carreño, V.A., Miner, P.S.: Specification of the IEEE-854 floating-point standard in HOL and PVS. In: International Workshop on Higher Order Logic Theorem Proving and its Applications, Aspen Grove, Utah (1995) (supplemental proceedings)

    Google Scholar 

  5. Russinoff, D.M.: A mechanically checked proof of correctness of the amd k5 floating point square root microcode. Formal Methods in System Design 14(1), 75 (1999)

    Article  Google Scholar 

  6. Jacobi, C.: Formal Verification of a Fully IEEE Compliant Floating Point Unit. PhD thesis, Saarland University, Saarbrucken, Germany (2002)

    Google Scholar 

  7. Harrison, J.: A machine-checked theory of floating point arithmetic. In: 12th International Conference on Theorem Proving in Higher Order Logics, Nice (1999)

    Google Scholar 

  8. Harrison, J.: Formal verification of floating point trigonometric functions. In: Hunt, W.A., Johnson, S.D. (eds.) Proceedings of the Third International Conference on Formal Methods in Computer-Aided Design, Austin, Texas, pp. 217–233 (2000)

    Google Scholar 

  9. The Coq Development Team, LogiCal Project, INRIA: The Coq Proof Assistant: Reference Manual, Version 8.0 (2004)

    Google Scholar 

  10. Daumas, M., Rideau, L., Théry, L.: A generic library of floating-point numbers and its application to exact computing. In: 14th International Conference on Theorem Proving in Higher Order Logics, Edinburgh, Scotland, pp. 169–184 (2001)

    Google Scholar 

  11. Veltkamp, G.W.: Algolprocedures voor het berekenen van een inwendig product in dubbele precisie. RC-Informatie 22, Technische Hogeschool Eindhoven (1968)

    Google Scholar 

  12. Veltkamp, G.W.: ALGOL procedures voor het rekenen in dubbele lengte. RC-Informatie 21, Technische Hogeschool Eindhoven (1969)

    Google Scholar 

  13. Dekker, T.J.: A floating point technique for extending the available precision. Numerische Mathematik 18(3), 224–242 (1971)

    Article  MATH  MathSciNet  Google Scholar 

  14. Priest, D.M.: Algorithms for arbitrary precision floating point arithmetic. In: 10th Symposium on Computer Arithmetic, Grenoble, France, pp. 132–144 (1991)

    Google Scholar 

  15. Shewchuk, J.R.: Adaptive precision floating-point arithmetic and fast robust geometric predicates. In: Discrete and Computational Geometry, vol. 18 (1997)

    Google Scholar 

  16. Stevenson, D., et al.: A proposed standard for binary floating point arithmetic. IEEE Computer 14(3), 51–62 (1981)

    MathSciNet  Google Scholar 

  17. Stevenson, D., et al.: An American national standard: IEEE standard for binary floating point arithmetic. ACM SIGPLAN Notices 22(2), 9–25 (1987)

    Google Scholar 

  18. Floating-Point Working Group of the Microprocessor Standards Subcommittee of the Standards Committee of the IEEE Computer Society, F.P.W.G.: IEEE standard for floating-point arithmetic (2006) (Work in progress)

    Google Scholar 

  19. Cody, W.J., Karpinski, R., et al.: A proposed radix and word-length independent standard for floating point arithmetic. IEEE Micro. 4(4), 86–100 (1984)

    Article  Google Scholar 

  20. Harrison, J.: Verifying the accuracy of polynomial approximations in HOL. In: Proceedings of the 10th International Conference on Theorem Proving in Higher Order Logics, Murray Hill, New Jersey, pp. 137–152 (1997)

    Google Scholar 

  21. Muller, J.M.: On the definition of ulp(x). Technical Report LIP RR2005-09 INRIA RR-5504, Laboratoire de l’Informatique du Parallélisme (2005)

    Google Scholar 

  22. Sterbenz, P.H.: Floating point computation. Prentice-Hall, Englewood Cliffs (1974)

    Google Scholar 

  23. Linnainmaa, S.: Software for doubled-precision floating-point computations. ACM Transactions on Mathematical Software 7(3), 272–283 (1981)

    Article  MATH  MathSciNet  Google Scholar 

  24. Boldo, S., Daumas, M.: Representable correcting terms for possibly underflowing floating point operations. In: Symposium on Computer Arithmetic, Spain (2003)

    Google Scholar 

  25. Ogita, T., Rump, S.M., Oishi, S.: Accurate sum and dot product. SIAM Journal on Scientific Computing 26(6), 1955–1988 (2005)

    Article  MATH  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Boldo, S. (2006). Pitfalls of a Full Floating-Point Proof: Example on the Formal Proof of the Veltkamp/Dekker Algorithms. In: Furbach, U., Shankar, N. (eds) Automated Reasoning. IJCAR 2006. Lecture Notes in Computer Science(), vol 4130. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11814771_6

Download citation

  • DOI: https://doi.org/10.1007/11814771_6

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-37187-8

  • Online ISBN: 978-3-540-37188-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics