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

  • Sylvie Boldo
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4130)


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.


Theorem Prove Extended Format Formal Proof Proof Assistant High Order Logic 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Davis, P.J.: Fidelity in mathematical discourse: Is one and one really two? Amer. Math. Monthly 79, 252–263 (1972)MATHCrossRefMathSciNetGoogle Scholar
  2. 2.
    Lamport, L., Melliar-Smith, P.M.: Synchronizing clocks in the presence of faults. Journal of the ACM 32(1), 52–78 (1985)MATHCrossRefMathSciNetGoogle Scholar
  3. 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. 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. 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)CrossRefGoogle Scholar
  6. 6.
    Jacobi, C.: Formal Verification of a Fully IEEE Compliant Floating Point Unit. PhD thesis, Saarland University, Saarbrucken, Germany (2002)Google Scholar
  7. 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. 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. 9.
    The Coq Development Team, LogiCal Project, INRIA: The Coq Proof Assistant: Reference Manual, Version 8.0 (2004)Google Scholar
  10. 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. 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. 12.
    Veltkamp, G.W.: ALGOL procedures voor het rekenen in dubbele lengte. RC-Informatie 21, Technische Hogeschool Eindhoven (1969)Google Scholar
  13. 13.
    Dekker, T.J.: A floating point technique for extending the available precision. Numerische Mathematik 18(3), 224–242 (1971)MATHCrossRefMathSciNetGoogle Scholar
  14. 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. 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. 16.
    Stevenson, D., et al.: A proposed standard for binary floating point arithmetic. IEEE Computer 14(3), 51–62 (1981)MathSciNetGoogle Scholar
  17. 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. 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. 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)CrossRefGoogle Scholar
  20. 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. 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. 22.
    Sterbenz, P.H.: Floating point computation. Prentice-Hall, Englewood Cliffs (1974)Google Scholar
  23. 23.
    Linnainmaa, S.: Software for doubled-precision floating-point computations. ACM Transactions on Mathematical Software 7(3), 272–283 (1981)MATHCrossRefMathSciNetGoogle Scholar
  24. 24.
    Boldo, S., Daumas, M.: Representable correcting terms for possibly underflowing floating point operations. In: Symposium on Computer Arithmetic, Spain (2003)Google Scholar
  25. 25.
    Ogita, T., Rump, S.M., Oishi, S.: Accurate sum and dot product. SIAM Journal on Scientific Computing 26(6), 1955–1988 (2005)MATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Sylvie Boldo
    • 1
  1. 1.INRIA Futurs – PCRI, LRIOrsay CedexFrance

Personalised recommendations