Skip to main content
Log in

Modular Verification of SRT Division

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

Abstract

We describe a formal specification and mechanized verification in PVS of the general theory of SRT division along with a specific hardware realization of the algorithm. The specification demonstrates how attributes of the PVS language (in particular, predicate subtypes) allow the general theory to be developed in a readable manner that is similar to textbook presentations, while the PVS \(table\) construct allows direct specification of the implementation's quotient lookup table. Verification of the derivations in the SRT theory and for the data path and lookup table of the implementation are highly automated and performed for arbitrary, but finite precision; in addition, the theory is verified for general radix, while the implementation is specialized to radix 4. The effectiveness of the automation stems from the tight integration in PVS of rewriting with decision procedures for equality, linear arithmetic over integers and rationals, and propositional logic. This example demonstrates that the resources of an expressive specification language and of a general-purpose theorem prover are not inimical to highly automated verification in this domain, and can contribute to clarity, generality, and reuse.

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.A. Henzinger (Eds.), Computer-Aided Verification, CAV '96, volume 1102 of Lecture Notes in Computer Science, New Brunswick, NJ, Springer-Verlag, 1996.

    Google Scholar 

  2. 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 

  3. W.W. Bledsoe, “The SUP-INF method in Presburger arithmetic,” Technical Report Memo ATP-18, The University of Texas at Austin, Math Department, Dec. 1974.

  4. R.E. Bryant, “Bit-level analysis of an SRT divider circuit,” in Proceedings of the 33rd Design Automation Conference, Las Vegas, NV, pp. 661–665, June 1996.

  5. R.E. Bryant and Y.-A. Chen, “Verification of arithmetic circuits with binary moment diagrams,” in Proceedings of the 32nd Design Automation Conference, San Francisco, CA, pp. 535–541, June 1996.

  6. Y.-A. Chen, E. Clarke, P.-H. Ho, Y. Hoskote, T. Kam, M. Khaira, J. O'Leary, and X. Zhao, “Verification of all circuits in a floating-point unit using word-level model checking,” in M. Srivas and A. Camilleri (Eds.), Formal Methods in Computer-Aided Design (FMCAD '96), volume 1166 of Lecture Notes in Computer Science, Palo Alto, CA, Springer-Verlag, pp. 19–33, 1996.

    Google Scholar 

  7. S.-K. Chin, “Verified functions for generating signed-binary arithmetic hardware,” IEEE Transactions on Computer-Aided Design, Vol. 11,No. 12, pp. 1529–1558, Aug. 1992.

    Google Scholar 

  8. E.M. Clarke, M. Fujita, and X. Zhao, “Hybrid decision diagrams: Overcoming the limitations of MTBDDs and BMDs,” Technical Report CMU-CS–95–159, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA 15213, April 1995.

    Google Scholar 

  9. E.M. Clarke and S.M. German, Personal Communication, 1995.

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

    Google Scholar 

  11. E.M. Clarke, M. Khaira, and X. Zhao, “Word level symbolic model checking—Avoiding the Pentium FDIV error,” in Proceedings of the 33rd Design Automation Conference, Las Veqas, NV, pp. 645–648, June 1996.

  12. D. Cyrluk, S. Rajan, N. Shankar, and M.K. Srivas, “Effective theorem proving for hardware verification,” in R. Kumar and T. Kropf (Eds.), Theorem Provers in Circuit Design (TPCD '94), volume 910 of Lecture Notes in Computer Science, Bad Herrenalb, Germany, Springer-Verlag, pp. 203–222, Sept. 1994.

    Google Scholar 

  13. S.M. German, Towards Automatic Verification of Arithmetic Hardware, Lecture Notes, March 1995.

  14. M. Gordon, R. Milner, and C. Wadsworth, Edinburgh LCF: A Mechanized Logic of Computation, volume 78 of Lecture Notes in Computer Science, Springer-Verlag, 1979.

  15. G. Kamhi, O. Weissberg, L. Fix, Z. Binyamini, and Z. Shtadler, “Automatic datapath extraction for efficient usage of HDDs,” in O. Grumberg (Ed.), Computer-Aided Verification, CAV '97, volume 1254 of Lecture Notes in Computer Science, Haifa, Israel, Springer-Verlag, pp. 95–106, June 1997.

    Google Scholar 

  16. D. Kapur and M. Subramaniam, “Mechanically verifying a family of multiplier circuits,” in R. Alur and T.A. Henzinger (Eds.), Computer-Aided Verification, CAV '96, volume 1102 of Lecture Notes in Computer Science, New Brunswick, NJ, Springer-Verlag, pp. 135–146, 1996.

    Google Scholar 

  17. M. Leeser and J. O'Leary, “Verification of a subtractive radix-2 square root algorithm and implementation,” in Proc. of ICCD'95, IEEE Computer Society Press, pp. 526–531, 1995.

  18. O.L. McSorley, “High-speed arithmetic in binary computers,” in Proc. of IRE, pp. 67–91, 1961.

  19. P.S. Miner and J.F. Leathrum, Jr., “Verification of IEEE compliant subtractive division algorithms,” in M. Srivas and A. Camilleri (Eds.), Formal Methods in Computer-Aided Design (FMCAD '96), volume 1166 of Lecture Notes in Computer Science, Palo Alto, CA, Springer-Verlag, pp. 64–78, 1996.

    Google Scholar 

  20. J.S. Moore, T. Lynch, and M. Kaufmann, “A mechanically checked proof of the correctness of the kernel of the AMD5K 86 floating-point division algorithm,” IEEE Transactions on Computers, 1997, to appear.

  21. S.F. Oberman and M.J. Flynn, “Design issues in division and other floating-point operations,” IEEE Transactions on Computers, Feb. 1997.

  22. S. Owre, J. Rushby, and N. Shankar, “Integration in PVS: Tables, types, and model checking,” in Ed Brinksma (Ed.), Tools and Algorithms for the Construction and Analysis of Systems (TACAS '97), volume 1217 of Lecture Notes in Computer Science, Enschede, The Netherlands, Springer-Verlag, pp. 366–383, April 1997.

    Google Scholar 

  23. S. Owre, J. Rushby, N. Shankar, and F. von Henke, “Formal verification for fault-tolerant architectures: prolegomena to the design of PVS,” IEEE Transactions on Software Engineering, Vol. 21,No. 2, pp. 107–125, Feb. 1995.

    Google Scholar 

  24. D.L. Parnas, “Using mathematical models in the inspection of critical software,” in M.G. Hinchey and J.P. Bowen (Eds.), Applications of Formal Methods, International Series in Computer Science, chap. 2, Prentice Hall, pp. 17–31, 1995.

  25. V. Pratt, “Anatomy of the pentium bug,” in P.D. Mosses, M. Nielsen, and M.I. Schwartzbach (Eds.), TAPSOFT'95: Theory and Practice of Software Development, number 915 in Lecture Notes in Computer Science, Springer-Verlag, pp. 97–107, May 1995.

  26. J.E. Robertson, “A new class of digital division methods,” IRE Trans. on Electron. Computers, Vol. EC-7, pp. 218–222, 1958.

    Google Scholar 

  27. H. Rueß, “Hierarchical verification of two-dimensional high-speed multiplication in PVS: A case study,” in M. Srivas and A. Camilleri (Eds.), Formal Methods in Computer-Aided Design (FMCAD '96), volume 1166 of Lecture Notes in Computer Science, Palo Alto, CA, Springer-Verlag, pp. 79–93, 1996.

    Google Scholar 

  28. H. Rueß, N. Shankar, and M.K. Srivas, “Modular verification of SRT division,” in R. Alur and T.A. Henzinger (Eds.), Computer-Aided Verification, CAV '96, volume 1102 of Lecture Notes in Computer Science, New Brunswick, NJ, Springer-Verlag, pp. 123–134, 1996.

    Google Scholar 

  29. D.M. Russinoff, “A mechanically checked proof of the correctness of the AMD K5 floating-point square root algorithm,” this Journal.

  30. R.E. Shostak, “On the SUP-INF method for proving Presburger formulas,” Journal of the ACM, Vol. 24,No. 4, pp. 529–543, Oct. 1977.

    Google Scholar 

  31. M. Srivas and A. Camilleri (Eds.), Formal Methods in Computer-Aided Design (FMCAD '96), volume 1166 of Lecture Notes in Computer Science, Palo Alto, CA, Springer-Verlag, 1996.

    Google Scholar 

  32. Standard for Binary Floating-Point Arithmetic, 1985. ANSI/IEEE Std 754–1985.

  33. Standard for Radix-Independent Floating-Point Arithmetic, 1987. ANSI/IEEE Std 854–1987.

  34. G.S. Taylor, “Compatible hardware for division and square root,” in Proceedings of the 5th Symposium on Computer Arithmetic, IEEE Computer Society Press, pp. 127–134, 1981.

  35. K.D. Tochter, “Techniques of multiplication and division for automatic binary computers,” Quart. J. Mech. Appl. Match, Vol. 3, pp. 364–384, 1958.

    Google Scholar 

  36. 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. 3, pp. 5–31, Jan. 1994.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Ruess, H., Shankar, N. & Srivas, M.K. Modular Verification of SRT Division. Formal Methods in System Design 14, 45–73 (1999). https://doi.org/10.1023/A:1008617612073

Download citation

  • Issue Date:

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

Navigation