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.
Similar content being viewed by others
References
Ada Reference Manual, ISO/IEC 8652:2007(E) Ed. 3. Ada Europe (2007). http://www.adaic.org/standards/05rm/html/RM-TTL.html
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)
Akbarpour, B., Paulson, L.C.: Metitarski: an automatic theorem prover for real-valued special functions. J. Autom. Reason. 44(3), 175–205 (2010)
Amey, P.: Correctness by construction: better can also be cheaper. CrossTalk Mag. 24–28 (2002)
Barnes, J.: The spark way to correctness is via abstraction. Ada Lett. XX(4), 69–79 (2000). doi:10.1145/369264.369271
Barnes, J.: High Integrity Software: The SPARK Approach to Safety and Security, 2 edn. Addison-Wesley, London and Boston (2003)
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)
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)
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
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
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
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)
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
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
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)
Duracz, J.: Verification of floatin point programs. Ph.D. thesis, Aston University (2010)
Duracz, J., Konečný, M.: PolyPaver development portal. http://code.google.com/p/polypaver/. Accessed 28 April 2013
Duracz, J.A., Farjudian, A., Konečný, M.: Enclosure constraints for floating point software verification. In: Proceedings of CFV 2009 in Grenoble (2009)
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)
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
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)
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)
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
Kaucher, E.: Interval analysis in the extended interval space ir. Comput. Suppl. 2, 33–49 (1980)
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
Mason, J.C., Handscomb, D.C.: Chebyshev Polynomials. CRC Press, Boca Raton (2002)
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
Neumaier, A.: Taylor forms–use and limits. Reliab. Comput. 9(1), 43–79 (2003)
Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer, New York (1999)
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/
ProVal team: Proval web portal. http://proval.lri.fr/index.en.html. Accessed 1 Sept 2011 (2011)
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
Ratschan, S.: Efficient solving of quantified inequality constraints over the real numbers. ACM Trans. Comput. Logic 7(4), 723–748 (2006)
Ratschan, S., et al.: RSolver. http://rsolver.sourceforge.net. Software Package (2004)
Author information
Authors and Affiliations
Corresponding author
Additional information
This research has been sponsored by Altran Praxis Ltd and EPSRC grant EP/C01037X/1.
Rights and permissions
About this article
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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10472-014-9409-7