Abstract
A large portion of software is used for numerical computation in mathematics, physics and engineering. Among the aspects that make verification in this domain difficult is the need to quantify numerical errors, such as roundoff errors and errors due to the use of approximate numerical methods. Much of numerical software uses self-stabilizing iterative algorithms, for example, to find solutions of nonlinear equations.
To support such algorithms, we present a runtime verification technique that checks, given a nonlinear equation and a tentative solution, whether this value is indeed a solution to within a specified precision.
Our technique combines runtime verification approaches with information about the analytical equation being solved. It is independent of the algorithm used for finding the solution and is therefore applicable to a wide range of problems. We have implemented our technique for the Scala programming language using our affine arithmetic library and the macro facility of Scala 2.10.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Ayad, A., Marché, C.: Multi-prover verification of floating-point programs. In: Fifth International Joint Conference on Automated Reasoning (2010)
Baek, W., Chilimbi, T.M.: Green: a framework for supporting energy-conscious programming using controlled approximation. In: Proc. 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation (2010)
Burmako, E., Odersky, M., Vogt, C., Zeiger, S., Moors, A.: Sip 16: Self-cleaning macros (2012), http://scalamacros.org/documentation/specification.html
Dahlquist, G., Björck, A.: Numerical Methods in Scientific Computing. Society for Industrial and Applied Mathematics (2008)
Darulova, E., Kuncak, V.: Trustworthy numerical computation in Scala. In: Proc. 2011 ACM International Conference on Object Oriented Programming Systems Languages and Applications (2011)
de Figueiredo, L.H., Stolfi, J.: Self-Validated Numerical Methods and Applications. In: IMPA/CNPq, Brazil (1997)
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: Alpuente, M., Cook, B., Joubert, C. (eds.) FMICS 2009. LNCS, vol. 5825, pp. 53–69. Springer, Heidelberg (2009)
Demmel, J.W., Hida, Y., Kahan, W., Li, X.S., Mukherjee, S., Riedy, E.J.: Error Bounds from Extra Precise Iterative Refinement. Technical report, EECS Department, University of California, Berkeley (2005)
Griewank, A.: A mathematical view of automatic differentiation. Acta Numerica 12, 321–398 (2003)
Hida, Y., Xiaoye, S.L., Bailey, D.H., Kaiser, A.: Quad Double computation package (2012), http://crd-legacy.lbl.gov/~dhbailey/mpdist/
Krawczyk, R.: Newton-Algorithmen zur Bestimmung von Nullstellen mit Fehlerschranken. Computing 4, 187–201 (1969)
Moore, R.: Interval Analysis. Prentice-Hall (1966)
Nguyen, H.D., Revol, N.: Solving and Certifying the Solution of a Linear System. Reliable Computing (2011)
Odersky, M., Spoon, L., Venners, B.: Programming in Scala: A Comprehensive Step-by-step Guide. Artima Incorporation (2008)
Quarteroni, A., Saleri, F., Gervasio, P.: Scientific Computing with MATLAB and Octave, 3rd edn. Springer (2010)
Rump, S.M.: INTLAB - INTerval LABoratory. In: Developments in Reliable Computing. Kluwer Academic Publishers (1999)
Rump, S.M.: Verification methods: rigorous results using floating-point arithmetic. In: Proc. 2010 International Symposium on Symbolic and Algebraic Computation, pp. 3–4 (2010)
Woodford, C., Phillips, C.: Numerical Methods with Worked Examples, vol. 2. Springer (2012)
Zhu, Z.A., Misailovic, S., Kelner, J.A., Rinard, M.: Randomized accuracy-aware program transformations for efficient approximate computations. In: Proc. 39th ACM SIGPLAN-SIGACT Symp. Principles of Programming Languages (2012)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Darulova, E., Kuncak, V. (2013). Certifying Solutions for Numerical Constraints. In: Qadeer, S., Tasiran, S. (eds) Runtime Verification. RV 2012. Lecture Notes in Computer Science, vol 7687. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-35632-2_27
Download citation
DOI: https://doi.org/10.1007/978-3-642-35632-2_27
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-35631-5
Online ISBN: 978-3-642-35632-2
eBook Packages: Computer ScienceComputer Science (R0)