Polynomial function intervals for floating-point software verification

  • Jan Duracz
  • Michal Konečný


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.


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


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ada Reference Manual, ISO/IEC 8652:2007(E) Ed. 3. Ada Europe (2007).
  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)CrossRefzbMATHMathSciNetGoogle Scholar
  4. 4.
    Amey, P.: Correctness by construction: better can also be cheaper. CrossTalk Mag. 24–28 (2002)Google Scholar
  5. 5.
    Barnes, J.: The spark way to correctness is via abstraction. Ada Lett. XX(4), 69–79 (2000). doi: 10.1145/369264.369271 CrossRefGoogle 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)Google Scholar
  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).
  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.
  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 CrossRefMathSciNetGoogle 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)CrossRefGoogle Scholar
  16. 16.
    Duracz, J.: Verification of floatin point programs. Ph.D. thesis, Aston University (2010)Google Scholar
  17. 17.
    Duracz, J., Konečný, M.: PolyPaver development portal. 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)Google Scholar
  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)Google Scholar
  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). 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).
  24. 24.
    Kaucher, E.: Interval analysis in the extended interval space ir. Comput. Suppl. 2, 33–49 (1980)CrossRefMathSciNetGoogle 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)CrossRefGoogle 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 CrossRefzbMATHMathSciNetGoogle Scholar
  28. 28.
    Neumaier, A.: Taylor forms–use and limits. Reliab. Comput. 9(1), 43–79 (2003)CrossRefzbMATHMathSciNetGoogle Scholar
  29. 29.
    Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, New York (1999)CrossRefzbMATHGoogle 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). Google Scholar
  31. 31.
    ProVal team: Proval web portal. 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). 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)CrossRefMathSciNetGoogle Scholar
  34. 34.
    Ratschan, S., et al.: RSolver. Software Package (2004)

Copyright information

© Springer International Publishing Switzerland 2014

Authors and Affiliations

  1. 1.School of Information Science, Computer and Electrical EngineeringHalmstad UniversityHalmstadSweden
  2. 2.School of Engineering and Applied ScienceAston UniversityBirminghamUK

Personalised recommendations