Skip to main content

Polynomial function intervals for floating-point software verification

Abstract

The focus of our work is the verification of tight functional properties of numerical programs, such as showing that a floating-point implementation of Riemann integration computes a close approximation of the exact integral. Programmers and engineers writing such programs will benefit from verification tools that support an expressive specification language and that are highly automated. Our work provides a new method for verification of numerical software, supporting a substantially more expressive language for specifications than other publicly available automated tools. The additional expressivity in the specification language is provided by two constructs. First, the specification can feature inclusions between interval arithmetic expressions. Second, the integral operator from classical analysis can be used in the specifications, where the integration bounds can be arbitrary expressions over real variables. To support our claim of expressivity, we outline the verification of four example programs, including the integration example mentioned earlier. A key component of our method is an algorithm for proving numerical theorems. This algorithm is based on automatic polynomial approximation of non-linear real and real-interval functions defined by expressions. The PolyPaver tool is our implementation of the algorithm and its source code is publicly available. In this paper we report on experiments using PolyPaver that indicate that the additional expressivity does not come at a performance cost when comparing with other publicly available state-of-the-art provers. We also include a scalability study that explores the limits of PolyPaver in proving tight functional specifications of progressively larger randomly generated programs.

This is a preview of subscription content, access via your institution.

References

  1. 1.

    Ada Reference Manual, ISO/IEC 8652:2007(E) Ed. 3. Ada Europe (2007). http://www.adaic.org/standards/05rm/html/RM-TTL.html

  2. 2.

    Abramowitz, M., Stegun, I.A.: Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables, ninth dover printing, tenth gpo printing edn. Dover, New York (1964)

    Google Scholar 

  3. 3.

    Akbarpour, B., Paulson, L.C.: Metitarski: an automatic theorem prover for real-valued special functions. J. Autom. Reason. 44(3), 175–205 (2010)

    Article  MATH  MathSciNet  Google Scholar 

  4. 4.

    Amey, P.: Correctness by construction: better can also be cheaper. CrossTalk Mag. 24–28 (2002)

  5. 5.

    Barnes, J.: The spark way to correctness is via abstraction. Ada Lett. XX(4), 69–79 (2000). doi:10.1145/369264.369271

    Article  Google Scholar 

  6. 6.

    Barnes, J.: High Integrity Software: The SPARK Approach to Safety and Security, 2 edn. Addison-Wesley, London and Boston (2003)

    Google Scholar 

  7. 7.

    Barnes, J., Chapman, R., Johnson, R., Widmaier, J., Cooper, D., Everett, B.: Engineering the tokeneer enclave protection software. In: Proceedings of IEEE International Symposium on Secure Software Engineering (2006)

  8. 8.

    Boldo, S.: Floats & Ropes: a case study for formal numerical program verification. In: 36th International Colloquium on Automata, Languages and Programming, Lecture Notes in Computer Science - ARCoSS, vol. 556, pp 91–102. Springer, Rhodos (2009)

    Google Scholar 

  9. 9.

    Boldo, S.: How to compute the area of a triangle: a formal revisit. In: Proceedings of the 21th IEEE Symposium on Computer Arithmetic. Austin (2013). http://hal.inria.fr/hal-00790071

  10. 10.

    Boldo, S., Filliâtre, J.C., Melquiond, G.: Combining coq and gappa for certifying floating-point programs. In: Calculemus ’09/MKM ’09: Proceedings of the 16th Symposium, 8th International Conference. Held as Part of CICM ’09 on Intelligent Computer Mathematics, pp. 59–74. Springer, Berlin (2009). doi:10.1007/978-3-642-02614-0_10

  11. 11.

    Boldo, S., Lelay, C., Melquiond, G.: Improving real analysis in Coq: a user-friendly approach to integrals and derivatives. In: Hawblitzel, C., Miller, D. (eds.) Proceedings of the The Second International Conference on Certified Programs and Proofs. Lecture Notes in Computer Science, vol. 7679, pp. 289–304.Kyoto, Japan (2012) . doi:10.1007/978-3-642-35308-6_22. http://hal.inria.fr/hal-00712938

  12. 12.

    Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: The ASTREÉ analyzer. In: Sagiv, S. (ed.) ESOP. Lecture Notes in Computer Science, vol. 3444, pp 21–30. Springer, Berlin (2005)

    Google Scholar 

  13. 13.

    Cuoq, P., Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., Yakobowski, B.: Frama-c: a software analysis perspective. In: Proceedings of the 10th International Conference on Software Engineering and Formal Methods, SEFM’12, pp 233–247. Springer, Berlin (2012) . doi:10.1007/978-3-642-33826-7_16

    Google Scholar 

  14. 14.

    Daumas, M., Melquiond, G.: Certification of bounds on expressions involving rounded operators. ACM Trans. Math. Softw. 37(1), 1–20 (2010). doi:10.1145/1.644001.1644003

    Article  MathSciNet  Google Scholar 

  15. 15.

    Delmas, D., Goubault, E., Putot, S., Souyris, J., Tekkal, K., Védrine, F.: Towards an industrial use of fluctuat on safety-critical avionics software. In: Proceedings of the 14th International Workshop on Formal Methods for Industrial Critical Systems, FMICS ’09, pp 53–69. Springer, Berlin (2009)

    Chapter  Google Scholar 

  16. 16.

    Duracz, J.: Verification of floatin point programs. Ph.D. thesis, Aston University (2010)

  17. 17.

    Duracz, J., Konečný, M.: PolyPaver development portal. http://code.google.com/p/polypaver/. Accessed 28 April 2013

  18. 18.

    Duracz, J.A., Farjudian, A., Konečný, M.: Enclosure constraints for floating point software verification. In: Proceedings of CFV 2009 in Grenoble (2009)

  19. 19.

    Duracz, J.A., Konečný, M.: Polynomial function enclosures and floating point software verification. In: Proceedings of CFV 2008 in Sydney, pp 56–67 (2008)

  20. 20.

    Filliâtre, J.C., Paskevich, A.: Why3–Where programs meet provers. In: ESOP’13 22nd European Symposium on Programming, LNCS, Vol. 7792. Springer, Rome (2013). http://hal.inria.fr/hal-00789533

    Google Scholar 

  21. 21.

    Fränzle, M., Herde, C., Teige, T., Ratschan, S., Schubert, T.: Efficient solving of large non-linear arithmetic constraint systems with complex boolean structure. J. Satisf. Boolean Model. Comput. 1, 209–236 (2007)

    Google Scholar 

  22. 22.

    Goubault, E., Putot, S.: Static analysis of numerical algorithms. In: Yi, K. (ed.) SAS. Lecture Notes in Computer Science, vol. 4134, pp 18–34. Springer, Berlin (2006)

    Google Scholar 

  23. 23.

    Granvilliers, L., Benhamou, F.: Algorithm 852: RealPaver: an interval solver using constraint satisfaction techniques. ACM Trans. Math. Softw. 32(1) (2006). http://www.lina.sciences.univ-nantes.fr/Publications/2006/GB06

  24. 24.

    Kaucher, E.: Interval analysis in the extended interval space ir. Comput. Suppl. 2, 33–49 (1980)

    Article  MathSciNet  Google Scholar 

  25. 25.

    Makino, K., Berz, M.: Efficient control of the dependency problem based on taylor model methods. Reliab. Comput. 5, 3–12(10) (1999). http://www.ingentaconnect. com/content/klu/reom/1999/00000005/00000001/00204749

  26. 26.

    Mason, J.C., Handscomb, D.C.: Chebyshev Polynomials. CRC Press, Boca Raton (2002)

    Book  Google Scholar 

  27. 27.

    Neher, M., Jackson, K.R., Nedialkov, N.S.: On taylor model based integration of odes. SIAM J. Numer. Anal. 45(1), 236–262 (2007). doi:10.1137/050638448

    Article  MATH  MathSciNet  Google Scholar 

  28. 28.

    Neumaier, A.: Taylor forms–use and limits. Reliab. Comput. 9(1), 43–79 (2003)

    Article  MATH  MathSciNet  Google Scholar 

  29. 29.

    Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, New York (1999)

    Book  MATH  Google Scholar 

  30. 30.

    Owre, S., Rushby, J.M., Shankar, N.: PVS: a prototype verification system. In: Kapur, D. (ed.) 11th International Conference on Automated Deduction (CADE), Lecture Notes in Artificial Intelligence, vol. 607, pp 748–752. Springer, Saratoga (1992). http://www.csl.sri.com/papers/cade92-pvs/

    Google Scholar 

  31. 31.

    ProVal team: Proval web portal. http://proval.lri.fr/index.en.html. Accessed 1 Sept 2011 (2011)

  32. 32.

    Putot, S., Goubault, E., Martel, M.: Static analysis-based validation of floating-point computations. LNCS 2991, 306–313 (2004). http://www.springeronline.com/3-540-21260-4

    Google Scholar 

  33. 33.

    Ratschan, S.: Efficient solving of quantified inequality constraints over the real numbers. ACM Trans. Comput. Logic 7(4), 723–748 (2006)

    Article  MathSciNet  Google Scholar 

  34. 34.

    Ratschan, S., et al.: RSolver. http://rsolver.sourceforge.net. Software Package (2004)

Download references

Author information

Affiliations

Authors

Corresponding author

Correspondence to Jan Duracz.

Additional information

This research has been sponsored by Altran Praxis Ltd and EPSRC grant EP/C01037X/1.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Duracz, J., Konečný, M. Polynomial function intervals for floating-point software verification. Ann Math Artif Intell 70, 351–398 (2014). https://doi.org/10.1007/s10472-014-9409-7

Download citation

Keywords

  • Non-linear numerical constraint solving
  • Theorem proving
  • Floating-point software verification
  • Polynomial intervals
  • Validated computation
  • Interval arithmetic