Skip to main content

Floats and Ropes: A Case Study for Formal Numerical Program Verification

  • Conference paper
Automata, Languages and Programming (ICALP 2009)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5556))

Included in the following conference series:

Abstract

We present a case study of a formal verification of a numerical program that computes the discretization of a simple partial differential equation. Bounding the rounding error was tricky as the usual idea, that is to bound the absolute value of the error at each step, fails. Our idea is to find out a precise analytical expression that cancels with itself at the next step, and to formally prove the correctness of this approach.

This work was funded by the French national research organization (ANR), by the CerPAN (ANR-05-BLAN-0281-04) and F\(\oint\)st (ANR-08-BLAN-0246-01) projects.

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. IEEE: IEEE Standard for Floating-Point Arithmetic. IEEE Std. 754-2008 (2008)

    Google Scholar 

  2. Wilkinson, J.H.: Rounding Errors in Algebraic Processes. Prentice-Hall, Upper Saddle River (1963)

    MATH  Google Scholar 

  3. Higham, N.J.: Accuracy and stability of numerical algorithms. SIAM, Philadelphia (2002)

    Book  MATH  Google Scholar 

  4. Even, G., Seidel, P., Ferguson, W.E.: A Parametric Error Analysis of Goldschmidt’s Division Algorithm. In: 16th IEEE Symposium on Computer Arithmetic (2003)

    Google Scholar 

  5. Goubault, E., Putot, S.: Static analysis of numerical algorithms. In: Yi, K. (ed.) SAS 2006. LNCS, vol. 4134, pp. 18–34. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

  7. Bertot, Y., Castéran, P.: Interactive Theorem Proving and Program Development. Coq’Art: The Calculus of Inductive Constructions. Springer, Heidelberg (2004)

    Book  MATH  Google Scholar 

  8. 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 

  9. Boldo, S.: Preuves formelles en arithmétiques á virgule flottante. PhD thesis, École Normale Supérieure de Lyon (2004)

    Google Scholar 

  10. Filliâtre, J.C., Marché, C.: Multi-Prover Verification of C Programs. In: Sixth International Conference on Formal Engineering Methods, pp. 15–29. Springer, Heidelberg (2004)

    Google Scholar 

  11. Filliâtre, J.-C., Marché, C.: The Why/Krakatoa/Caduceus platform for deductive program verification. In: Damm, W., Hermanns, H. (eds.) CAV 2007. LNCS, vol. 4590, pp. 173–177. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  12. Boldo, S., Filliâtre, J.-C.: Formal verification of floating-point programs. In: 18th IEEE Symposium on Computer Arithmetic, Montpellier, France, pp. 187–194 (2007)

    Google Scholar 

  13. Bécache, E.: Étude de schémas numériques pour la résolution de léquation des ondes. In: ENSTA (2003)

    Google Scholar 

  14. Askey, R., Gasper, G.: Certain rational functions whose power series have positive coefficients. The American Mathematical Monthly 79, 327–341 (1972)

    Article  MathSciNet  MATH  Google Scholar 

  15. Andrews, G.E., Askey, R., Roy, R.: Special functions. Cambridge University Press, Cambridge (1999)

    Book  MATH  Google Scholar 

  16. Boldo, S., Filliâtre, J.-C., Melquiond, G.: Combining Coq and Gappa for Certifying Floating-Point Programs. In: 16th Symposium on the Integration of Symbolic Computation and Mechanised Reasoning (2009)

    Google Scholar 

  17. Bertot, Y., Gonthier, G., Biha, S.O., Pasca, I.: Canonical big operators. In: Mohamed, O.A., Muñoz, C., Tahar, S. (eds.) TPHOLs 2008. LNCS, vol. 5170, pp. 86–101. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Boldo, S. (2009). Floats and Ropes: A Case Study for Formal Numerical Program Verification. In: Albers, S., Marchetti-Spaccamela, A., Matias, Y., Nikoletseas, S., Thomas, W. (eds) Automata, Languages and Programming. ICALP 2009. Lecture Notes in Computer Science, vol 5556. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02930-1_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-02930-1_8

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-02929-5

  • Online ISBN: 978-3-642-02930-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics