Abstract
This chapter describes our work on formal verification of floating-point algorithms using the HOL Light theorem prover.
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
Aagaard, M.D., Harrison, J. (eds.): TPHOLs 2000. LNCS, vol. 1869. Springer, Heidelberg (2000)
Aigner, M., Ziegler, G.M.: Proofs from The Book, 2nd edn. Springer, Heidelberg (2001)
Appel, K., Haken, W.: Every planar map is four colorable. Bulletin of the American Mathematical Society 82, 711–712 (1976)
Baker, A.: A Concise Introduction to the Theory of Numbers. Cambridge University Press, Cambridge (1985)
Boldo, S.: Preuves formelles en arithmétiques à virgule flottante. PhD thesis, ENS Lyon (2004), Available on the Web from: http://www.ens-lyon.fr/LIP/Pub/Rapports/PhD/PhD2004/PhD2004-05.pdf
Brown, W.S.: A simple but realistic model of floating-point computation. ACM Transactions on Mathematical Software 7, 445–480 (1981)
Bryant, R.E.: Graph-based algorithms for Boolean function manipulation. IEEE Transactions on Computers C-35, 677–691 (1986)
Burch, J.R., Clarke, E.M., McMillan, K.L., Dill, D.L., Hwang, L.J.: Symbolic model checking: 1020 states and beyond. Information and Computation 98, 142–170 (1992)
Church, A.: A formulation of the Simple Theory of Types. Journal of Symbolic Logic 5, 56–68 (1940)
Clarke, E.M., Emerson, E.A.: Design and synthesis of synchronization skeletons using branching-time temporal logic. In: Kozen, D. (ed.) Logic of Programs 1981. LNCS, vol. 131, pp. 52–71. Springer, Heidelberg (1982)
Clenshaw, C.W., Olver, F.W.J.: Beyond floating point. Journal of the ACM 31, 319–328 (1984)
Cornea, M., Harrison, J., Tang, P.T.P.: Scientific Computing for Itanium Based Systems. Intel Press, Hillsboro (2002)
Cornea-Hasegan, M.: Proving the IEEE correctness of iterative floating-point square root, divide and remainder algorithms. Intel Technology Journal 1998-Q2, 1–11 (1998), available on the Web as: http://developer.intel.com/technology/itj/q21998/articles/art_3.htm
Cousineau, G., Mauny, M.: The Functional Approach to Programming. Cambridge University Press, Cambridge (1998)
Davis, M., Logemann, G., Loveland, D.: A machine program for theorem proving. Communications of the ACM 5, 394–397 (1962)
Dekker, T.J.: A floating-point technique for extending the available precision. Numerical Mathematics 18, 224–242 (1971)
Dulong, C.: The IA-64 architecture at work. IEEE Computer 64(7), 24–32 (1998)
Erdös, P.: Beweis eines Satzes von Tschebyshev. Acta Scientiarum Mathematicarum (Szeged) 5, 194–198 (1930)
Goldberg, E., Novikov, Y.: BerkMin: a fast and robust Sat-solver. In: Kloos, C.D., Franca, J.D. (eds.) Design, Automation and Test in Europe Conference and Exhibition (DATE 2002), Paris, France, pp. 142–149. IEEE Computer Society Press, Los Alamitos (2002)
Gordon, M.J.C.: Representing a logic in the LCF metalanguage. In: Néel, D. (ed.) Tools and notions for program construction: an advanced course, pp. 163–185. Cambridge University Press, Cambridge (1982)
Gordon, M.J.C., Melham, T.F.: Introduction to HOL: a theorem proving environment for higher order logic. Cambridge University Press, Cambridge (1993)
Gordon, M.J.C., Milner, R., Wadsworth, C.P.: Edinburgh LCF: A Mechanised Logic of Computation. LNCS, vol. 78. Springer, Heidelberg (1979)
Harrison, J.: HOL Light: A tutorial introduction. In: Srivas, M., Camilleri, A. (eds.) FMCAD 1996. LNCS, vol. 1166, pp. 265–269. Springer, Heidelberg (1996)
Harrison, J.: Proof style. In: Giménez, E. (ed.) TYPES 1996. LNCS, vol. 1512, pp. 154–172. Springer, Heidelberg (1998)
Harrison, J.: Theorem Proving with the Real Numbers. Springer, Heidelberg (1998) Revised version of author’s PhD thesis
Harrison, J.V.: A machine-checked theory of floating point arithmetic. In: Bertot, Y., Dowek, G., Hirschowitz, A., Paulin, C., Théry, L. (eds.) TPHOLs 1999. LNCS, vol. 1690, pp. 113–130. Springer, Heidelberg (1999)
Harrison, J.V.: Formal verification of floating point trigonometric functions. In: Johnson, S.D., Hunt Jr., W.A. (eds.) FMCAD 2000. LNCS, vol. 1954, pp. 217–233. Springer, Heidelberg (2000)
Harrison, J.: Formal verification of IA-64 division algorithms. In: Aagaard, Harrison (eds.) [1], pp. 234–251
Harrison, J.: Formal verification of square root algorithms. Formal Methods in System Design 22, 143–153 (2003)
Harrison, J.: Isolating critical cases for reciprocals using integer factorization. In: Bajard, J.-C., Schulte, M. (eds.) Proceedings, 16th IEEE Symposium on Computer Arithmetic, Santiago de Compostela, Spain, pp. 148–157. IEEE Computer Society, Los Alamitos (2003), currently available from symposium Web site at: http://www.dec.usc.es/arith16/papers/paper-150.pdf
Holm, J.E.: Floating-Point Arithmetic and Program Correctness Proofs. PhD thesis, Cornell University (1980)
IEEE. Standard for binary floating point arithmetic. ANSI/IEEE Standard 754-1985, The Institute of Electrical and Electronic Engineers, Inc., 345 East 47th Street, New York 10017, USA (1985)
Jacobi, C.: Formal Verification of a Fully IEEE Compliant Floating Point Unit. PhD thesis, University of the Saarland (2002), available on the Web as: http://engr.smu.edu/~seidel/research/diss-jacobi.ps.gz
Kaivola, R., Aagaard, M.D.: Divider circuit verification with model checking and theorem proving. In: Aagaard, Harrison (eds.) [1], pp. 338–355
Linnainmaa, S.: Analysis of some known methods of improving the accuracy of floating-point sums. BIT 14, 167–202 (1974)
Loveland, D.W.: Mechanical theorem-proving by model elimination. Journal of the ACM 15, 236–251 (1968)
Markstein, P.: IA-64 and Elementary Functions: Speed and Precision. Prentice-Hall, Englewood Cliffs (2000)
Markstein, P.W.: Computation of elementary functions on the IBM RISC System/6000 processor. IBM Journal of Research and Development 34, 111–119 (1990)
Møller, O.: Quasi double-precision in floating-point addition. BIT 5, 37–50 (1965)
Moore, J.S., Lynch, T., Kaufmann, M.: A mechanically checked proof of the correctness of the kernel of the AMD5 K 86 floating-point division program. IEEE Transactions on Computers 47, 913–926 (1998)
Moskewicz, M.W., Madigan, C.F., Zhao, Y., Zhang, L., Malik, S.: Chaff: Engineering an efficient SAT solver. In: Proceedings of the 38th Design Automation Conference (DAC 2001), pp. 530–535. ACM Press, New York (2001)
Muller, J.-M.: Elementary functions: Algorithms and Implementation. Birkhäuser, Basel (1997)
Muller, J.-M.: On the definition of ulp(x). Research Report 2005-09, ENS Lyon (2005)
O’Leary, J., Zhao, X., Gerth, R., Seger, C.-J.H.: Formally verifying IEEE compliance of floating-point hardware. Intel Technology Journal 1999-Q1, 1–14 (1999), available on the Web as: http://developer.intel.com/technology/itj/q11999/articles/art/_5.htm
Pratt, V.R.: Anatomy of the Pentium bug. In: Mosses, P.D., Schwartzbach, M.I., Nielsen, M. (eds.) CAAP 1995, FASE 1995, and TAPSOFT 1995. LNCS, vol. 915, pp. 97–107. Springer, Heidelberg (1995)
Priest, D.M.: On Properties of Floating Point Arithmetics: Numerical Stability and the Cost of Accurate Computations. PhD thesis, University of California, Berkeley (1992), available on the Web as: ftp://ftp.icsi.berkeley.edu/pub/theory/priest-thesis.ps.Z
Queille, J.P., Sifakis, J.: Specification and verification of concurrent programs in CESAR. In: Dezani-Ciancaglini, M., Montanari, U. (eds.) Programming 1982. LNCS, vol. 137, pp. 195–220. Springer, Heidelberg (1982)
Quinn, K.: Ever had problems rounding off figures? The stock exchange has. Wall Street Journal (November 8, 1983)
Remes, M.E.: Sur le calcul effectif des polynomes d’approximation de Tchebichef. Comptes Rendus Hebdomadaires des Séances de l’Académie des Sciences 199, 337–340 (1934)
Rusinoff, D.: A mechanically checked proof of IEEE compliance of a register-transfer-level specification of the AMD-K7 floating-point multiplication, division, and square root instructions. LMS Journal of Computation and Mathematics 1, 148–200 (1998), available on the Web via: http://www.onr.com/user/russ/david/k7-div-sqrt.html
Sawada, J.: Formal verification of divide and square root algorithms using series calculation. In: Borrione, D., Kaufmann, M., Moore, J. (eds.) 3rd International Workshop on the ACL2 Theorem Prover and its Applications, pp. 31–49. University of Grenoble (2002)
Seger, C.-J.H., Bryant, R.E.: Formal verification by symbolic evaluation of partially-ordered trajectories. Formal Methods in System Design 6, 147–189 (1995)
Stålmarck, G., Säflund, M.: Modeling and verifying systems and software in propositional logic. In: Daniels, B.K. (ed.) Safety of Computer Control Systems, 1990 (SAFECOMP 1990), Gatwick, UK, pp. 31–36. Pergamon Press, Oxford (1990)
Sterbenz, P.H.: Floating-Point Computation. Prentice-Hall, Englewood Cliffs (1974)
Story, S., Tang, P.T.P.: New algorithms for improved transcendental functions on IA-64. In: Koren, I., Kornerup, P. (eds.) Proceedings, 14th IEEE symposium on on computer arithmetic, Adelaide, Australia, pp. 4–11. IEEE Computer Society, Los Alamitos (1999)
Tang, P.T.P.: Table-lookup algorithms for elementary functions and their error analysis. In: Kornerup, P., Matula, D.W. (eds.) Proceedings of the 10th Symposium on Computer Arithemtic, pp. 232–236 (1991)
Weis, P., Leroy, X.: Le langage Caml. InterEditions (1993), see also the CAML Web page: http://pauillac.inria.fr/caml/
Wijngaarden, A.v.: Numerical analysis as an independent science. BIT 6, 68–81 (1966)
Wilkinson, J.H.: Rounding Errors in Algebraic Processes. National Physical Laboratory Notes on Applied Science, vol. 32. Her Majesty’s Stationery Office (HMSO), London (1963)
Wirth, N.: Systematic Programming: An Introduction. Prentice-Hall, Englewood Cliffs (1973)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Harrison, J. (2006). Floating-Point Verification Using Theorem Proving. In: Bernardo, M., Cimatti, A. (eds) Formal Methods for Hardware Verification. SFM 2006. Lecture Notes in Computer Science, vol 3965. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11757283_8
Download citation
DOI: https://doi.org/10.1007/11757283_8
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-34304-2
Online ISBN: 978-3-540-34305-9
eBook Packages: Computer ScienceComputer Science (R0)