Skip to main content

Floating point verification in HOL light: The exponential function

  • Conference paper
  • First Online:
Algebraic Methodology and Software Technology (AMAST 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1349))

Abstract

Since they often embody compact but mathematically sophisticated algorithms, operations for computing the common transcendental functions in floating point arithmetic seem good targets for formal verification using a mechanical theorem prover. We discuss some of the general issues that arise in verifications of this class, and then present a machine-checked verification of an algorithm for computing the exponential function in IEEE-754 standard binary floating point arithmetic. We confirm (indeed strengthen) the main result of a previously published error analysis, though we uncover a minor error in the hand proof and are forced to confront several subtle issues that might easily be overlooked informally.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  • Barratt, M. (1989) Formal methods applied to a floating-point system. IEEE Transactions on Software Engineering, 15, 611–621.

    Google Scholar 

  • Benedetti, R. and Risler, J.-J. (1990) Real algebraic and semi-algebraic sets. Hermann, Paris.

    Google Scholar 

  • Brock, B., Kaufmann, M., and Moore, J. S. (1996) ACL2 theorems about commercial microprocessors. See Srivas and Camilleri (1996), pp. 275–293.

    Google Scholar 

  • Dutertre, B. (1996) Elements of mathematical analysis in PVS. See von Wright, Grundy, and Harrison (1996).(1996), pp. 141–156.

    Google Scholar 

  • Goldberg, D. (1991) What every computer scientist should know about floating point arithmetic. ACM Computing Surveys, 23, 5–48.

    Google Scholar 

  • Gordon, M. J. C. (1989) Mechanizing programming logics in higher order logic. In Birtwistle, G. and Subrahmanyam, P. A. (eds.), Current Trends in Hardware Verification and Automated Theorem Proving, pp. 387–439. Springer-Verlag.

    Google Scholar 

  • Gordon, M. J. C. and Melham, T. F. (1993) Introduction to HOL: a theorem proving environment for higher order logic. Cambridge University Press.

    Google Scholar 

  • Harrison, J. (1996a) HOL light: A tutorial introduction. See Srivas and Camilleri (1996), pp. 265–269.

    Google Scholar 

  • Harrison, J. (1996b) Theorem proving with the real numbers. Technical Report 408, University of Cambridge Computer Laboratory.

    Google Scholar 

  • Harrison, J. (1997a) Floating point verification in HOL Light: The exponential function. Technical Report 428, University of Cambridge Computer Laboratory.

    Google Scholar 

  • Harrison, J. (1997b) Verifying the accuracy of polynomial approximations in HOL. In Gunter, E. L. and Felty, A. (eds.), Theorem Proving in Higher Order Logics: 10th International Conference, TPHOLs'97, Volume 1275 of Lecture Notes in Computer Science, Murray Hill, NJ, pp. 137–152. Springer-Verlag.

    Google Scholar 

  • Miner, P. S. (1995) Defining the IEEE-854 floating-point standard in PVS. Technical memorandum 110167, NASA Langley Research Center, Hampton, VA 23681-0001, USA.

    Google Scholar 

  • Miner, P. S. and Leathrum, J. F. (1996) Verification of IEEE compliant subtractive division algorithms. See Srivas and Camilleri (1996), pp. 64–78.

    Google Scholar 

  • Moore, J. S., Lynch, T., and Kaufmann, M. (1996) A mechanically checked proof of the correctness of the kernel of the AMD5K86 floating-point division algorithm. Unpublished; available on the Web as http://devil.ece.utexas.edu:80/∼lynch/divide/divide.html.

    Google Scholar 

  • Pratt, V. R. (1995) Anatomy of the Pentium bug. In Mosses, P. D., Nielsen, M., and Schwartzbach, M. I. (eds.), Proceedings of the 5th International Joint Conference on the theory and practice of software development (TAPSOFT'95), Volume 915 of Lecture Notes in Computer Science, Aarhus, Denmark, pp. 97–107. Springer-Verlag.

    Google Scholar 

  • Srivas, M. and Camilleri, A. (eds.) (1996) Proceedings of the First International Conference on Formal Methods in Computer-Aided Design (FMCAD'96), Volume 1166 of Lecture Notes in Computer Science. Springer-Verlag.

    Google Scholar 

  • Tang, P. T. P. (1989) Table-driven implementation of the exponential function in IEEE floating-point arithmetic. ACM Transactions on Mathematical Software, 15, 144–157.

    Google Scholar 

  • von Wright, J., Grundy, J., and Harrison, J. (eds.) (1996) Theorem Proving in Higher Order Logics: 9th International Conference, TPHOLs'96, Volume 1125 of Lecture Notes in Computer Science, Turku, Finland. Springer-Verlag.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Michael Johnson

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Harrison, J. (1997). Floating point verification in HOL light: The exponential function. In: Johnson, M. (eds) Algebraic Methodology and Software Technology. AMAST 1997. Lecture Notes in Computer Science, vol 1349. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0000475

Download citation

  • DOI: https://doi.org/10.1007/BFb0000475

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63888-9

  • Online ISBN: 978-3-540-69661-2

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics