Skip to main content
Log in

Verifying the SRT Division Algorithm Using Theorem Proving Techniques

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

    We’re sorry, something doesn't seem to be working properly.

    Please try refreshing the page. If that doesn't work, please contact support so we can address the problem.

Abstract

We verify the correctness of an SRT division circuit similar to the one in the Intel Pentium processor. The circuit and its correctness conditions are formalized as a set of algebraic relations on the real numbers. The main obstacle to applying theorem proving techniques for hardware verification is the need for detailed user guidance of proofs. We overcome the need for detailed proof guidance in this example by using a powerful theorem prover called Analytica. Analytica uses symbolic algebra techniques to carry out the proofs in this paper with much less guidance than existing general purpose theorem provers require for algebraic reasoning.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. R. Alur and T. Henzinger (Eds.), Computer-Aided Verification (CAV '96), volume 1102 of Lecture Notes in Computer Science, Springer-Verlag, 1996.

  2. APT Data Services, “Pentium bug fiasco costs Intel dear,” Computer Business Review, Jan. 1995.

  3. D.E. Atkins, “Higher-radix division using estimates of the divisor and partial remainders,” IEEE Transactions on Computers, Vol. C-17,No. 10, pp. 925–934, Oct. 1968.

    Google Scholar 

  4. W.W. Bledsoe, “The UT natural deduction prover,” Technical Report ATP-17B, Mathematical Department, University of Texas at Austin, TX, 1983.

    Google Scholar 

  5. W.W. Bledsoe, P. Bruell, and R. Shostak, “A prover for general inequalities,” Technical Report ATP-40A, Mathematical Department, University of Texas at Austin, TX, 1979.

    Google Scholar 

  6. R.S. Boyer and J.S. Moore, A Computational Logic Handbook, Academic Press, 1988.

  7. E.M. Clarke and S.M. German, Personal communication to H. Ruess, N. Shankar, and M.K. Srivas, 1995.

  8. E.M. Clarke, S.M. German, and X. Zhao, “Verifying the SRT division algorithm using theorem proving techniques,” in R. Alur and T. Henzinger (Eds.), Computer-Aided Verification (CAV '96), volume 1102 of Lecture Notes in Computer Science, Springer-Verlag, 1996.

  9. E.M. Clarke, M. Khaira, and X. Zhao, “Word level symbolic model checking—Avoiding the pentium FDIV error,” Design Automation Conference, June 1996.

  10. E.M. Clarke and X. Zhao, “Analytica: A theorem prover for mathematica,” The Journal of Mathematica, Vol. 3,No. 1, 1993.

  11. J.H. Gallier, Logic for Computer Science: Foundations of Automatic Theorem Proving, Harper & Row, 1986.

  12. S.M. German, “Verification of arithmetic hardware using a symbolic algebra system,” Lecture Notes, March 1995.

  13. S.M. German and Y. Wang, “Verification of parameterized hardware designs,” in Proceedings of International Conference on Computer Design, 1985.

  14. J. Joyce and C. Seger, “The HOL-Voss system: Model-checking inside a general-purpose theorem prover,” in Proceedings of the 6th International Workshop on Higher Order Logic Theorem Proving and its Applications, HUG '93, LNCS 780, Springer-Verlag, 1993.

  15. J. O'Leary, M. Leeser, J. Hickey, and M. Aagaard, “Non-restoring integer square root: A case study in design by principled optimization,” in Proceedings of the Theorem Provers in Circuit Design '94, LNCS 901, Springer-Verlag, 1995.

  16. V. Pratt, “Anatomy of the Pentium bug,” in Proceedings of TAPSOFT '95: Theory and Practice of Software Development, LNCS 915, Springer-Verlag, 1995.

  17. S. Rajan, N. Shankar, and M.K. Srivas, “An integration of model checking with automated proof checking,” in Proceedings of the Seventh Workshop on Computer-Aided Verification, 1995.

  18. H. Ruess, N. Shankar, and M.K. Srivas, “Modular verification of SRT division,” preliminary version in T. Henzinger (Eds.), Computer-Aided Verification (CAV '96), volume 1102 of Lecture Notes in Computer Science, Springer-Verlag, 1996 [1]}, final version in this journal.

  19. E. Sacks, “Hierarchical inequality reasoning,” Technical Report, MIT Laboratory for Computer Science, 1987.

  20. H.P. Sharangpani and M.L. Barton, “Statistical analysis of floating point flaw in the Pentium processor (1994),” Technical Report, Intel Corporation, Nov. 1994.

  21. R. Shostak, “On the sup-inf method for proving Presburger formulas,” Journal of the Association for Computing Machinery, Vol. 24, pp. 529–543, 1977.

    Google Scholar 

  22. G.S. Taylor, “Compatible hardware for division and square root,” in Proceedings of the 5th IEEE Symposium on Computer Arithmetic, May 1981.

  23. D. Verkest, L. Claesen, and H. De Man, “A proof of the nonrestoring division algorithm and its implementation on an ALU,” Formal Methods in System Design, Vol. 4, pp. 5–31, Jan. 1994.

    Google Scholar 

  24. S. Wolfram, Mathematica: A System for Doing Mathematics by Computer, Wolfram Research Inc., 1988.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Clarke, E.M., German, S.M. & Zhao, X. Verifying the SRT Division Algorithm Using Theorem Proving Techniques. Formal Methods in System Design 14, 7–44 (1999). https://doi.org/10.1023/A:1008665528003

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1008665528003

Keywords

Navigation