Abstract
In this paper we consider the problem of formally verifying hardware that is specified to compute reciprocal, reciprocal square root, and power-of-two functions on floating point numbers to within a given relative error. Such specifications differ from the common case in which any given input is specified to have exactly one correct output. Our approach is based on symbolic simulation with binary decision diagrams, and involves two distinct steps. First, we prove a lemma that reduces the relative error specification to several inequalities that involve reasoning about natural numbers only. The most complex of these inequalities asserts that the product of several naturals is less-than/greater-than another natural. Second, we invoke one of several customized algorithms that decides the inequality, without performing the expensive symbolic multiplications directly. We demonstrate the effectiveness of our approach on a next-generation IntelĀ® processor design and report encouraging time and space metrics for these proofs.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Aagaard, M.D., Jones, R.B., Seger, C.-J.H.: Formal verification using parametric representations of Boolean constraints. In: Design Automation Conference (DAC 1999) (July 1999)
Bryant, R.E.: Graph-based algorithms for boolean function manipulation. IEEE Transactions on ComputersĀ C-35(8), 677ā691 (1986)
Bryant, R.E.: On the complexity of VLSI implementations and graph representations of Boolean functions with application to integer multiplication. IEEE Trans. Comput.Ā 40(2), 205ā213 (1991)
Darringer, J.A.: The application of program verification techniques to hardware verification. In: Proceedings of the 16th Design Automation Conference, DAC 1979, Piscataway, NJ, USA, pp. 375ā381. IEEE Press (1979)
Goldberg, D.: What every computer scientist should know about floating point arithmetic. ACM Computing SurveysĀ 23(1), 5ā48 (1991)
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)
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, NY 10017, USA (1985)
Kaivola, R., Ghughal, R., Narasimhan, N., Telfer, A., Whittemore, J., Pandav, S., SlobodovĆ”, A., Taylor, C., Frolov, V., Reeber, E., Naik, A.: Replacing testing with formal verification in intel\(^{\scriptsize\circledR}\) coreTM i7 processor execution engine validation. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol.Ā 5643, pp. 414ā429. Springer, Heidelberg (2009)
Minato, S.-I., Somenzi, F.: Arithmetic Boolean expression manipulator using BDDs. Formal Methods in System DesignĀ 10(2-3), 221ā242 (1997)
OāLeary, J., Kaivola, R., Melham, T.: Relational STE and theorem proving for formal verification of industrial circuit designs. In: Jobstmann, B., Ray, S. (eds.) Formal Methods in Computer-Aided Design (FMCAD 2013), pp. 97ā104. IEEE (October 2013)
Parks, M.: Number-theoretic test generation for directed rounding. IEEE Trans. Comput.Ā 49(7), 651ā658 (2000)
Paruthi, V.: Large-scale application of formal verification: From fiction to fact. In: Formal Methods in Computer-Aided Design (FMCAD 2010), pp. 175ā180 (2010)
Sawada, J.: Automatic verification of estimate functions with polynomials of bounded functions. In: Formal Methods in Computer-Aided Design (FMCAD 2010), pp. 151ā158 (2010)
Seger, C.J., Jones, R.B., OāLeary, J.W., Melham, T., Aagaard, M.D., Barrett, C., Syme, D.: An industrially effective environment for formal hardware verification. Trans. Comp.-Aided Des. Integ. Cir. Sys.Ā 24(9), 1381ā1405 (2006)
Seger, C.-J.H., Bryant, R.E.: Formal verification by symbolic evaluation of partially-ordered trajectories. Formal Methods in System DesignĀ 6(2), 147ā189 (1995)
SlobodovĆ”, A., Davis, J., Swords, S., Hunt, W.A.: A flexible formal verification framework for industrial scale validation. In: Singh, S., Jobstmann, B., Kishinevsky, M., Brandt, J. (eds.) MEMOCODE, pp. 89ā97. IEEE (2011)
Stewart, D.: Formal for everyone - Challenges in achievable multicore design and verification. In: Cabodi, G., Singh, S. (eds.) Formal Methods in Computer-Aided Design (FMCAD 2012), p. 186. IEEE (October 2012), http://www.cs.utexas.edu/Ā hunt/FMCAD/FMCAD12/FormalForEveryone_DStewart _ARM.pdf
Thathachar, J.: On the limitations of ordered representations of functions. In: Vardi, M.Y. (ed.) CAV 1998. LNCS, vol.Ā 1427, pp. 232ā243. Springer, Heidelberg (1998)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
Ā© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Bingham, J., Leslie-Hurd, J. (2014). Verifying Relative Error Bounds Using Symbolic Simulation. In: Biere, A., Bloem, R. (eds) Computer Aided Verification. CAV 2014. Lecture Notes in Computer Science, vol 8559. Springer, Cham. https://doi.org/10.1007/978-3-319-08867-9_18
Download citation
DOI: https://doi.org/10.1007/978-3-319-08867-9_18
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-08866-2
Online ISBN: 978-3-319-08867-9
eBook Packages: Computer ScienceComputer Science (R0)