Abstract
Two methods of programming BDD-based symbolic algorithms in the Hol98 proof assistant are presented. The goal is to provide a platform for implementing intimate combinations of deduction and algorithmic verification, like model checking. The first programming method uses a small kernel of ML functions to convert between BDDs, terms and theorems. It is easy to use and is suitable for rapid prototying experiments. The second method requires lower-level programming but can support more efficient calculations. It is based on an LCF-like use of an abstract type to encapsulate rules for manipulating judgements ρ t ↦ b meaning “logical term t is represented by BDD b with respect to variable order ρ”. The two methods are illustrated by showing how to perform the standard fixed-point calculation of the BDD of the set of reachable states of a finite state machine.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
Mark D. Aagaard, Robert B. Jones, and Carl-Johan H. Seger. Combining theorem proving and trajectory evaluation in an industrial environment. In Design Automation Conference (DAC), pages 538–541. ACM/IEEE, July 1998.
Mark D. Aagaard, Robert B. Jones, and Carl-Johan H. Seger. Lifted-FL: A Pragmatic Implementation of Combined Model Checking and Theorem Proving. In Theorem Proving in Higher Order Logics (TPHOLs99), number 1690 in Lecture Notes in Computer Science, pages 323–340. Springer-Verlag, 1999.
Randall E. Bryant. Symbolic boolean manipulation with ordered binary-decision diagrams. ACM Computing Surveys, 24(3):293–318, September 1992.
E. Charniak, C. K. Riesbeck, and D. V. McDermott. Artificial Intelligence Programming. Lawrence Erlbaum Associates, 1980.
M. J. C. Gordon, R. Milner, and C. P. Wadsworth. Edinburgh LCF: A Mechanised Logic of Computation, volume 78 of Lecture Notes in Computer Science. Springer-Verlag, 1979.
Mike Gordon. Programming combinations of deduction and BDD-based symbolic calculation. Technical Report 480, University of Cambridge Computer Laboratory, December 1999.
Mike Gordon and Ken Friis Larsen. Combining the Hol98 proof assistant with the BuDDy BDD package. Technical Report 481, University of Cambridge Computer Laboratory, December 1999.
Scott Hazelhurst and Carl-Johan H. Seger. Symbolic trajectory evaluation. In Thomas Kropf, editor, Formal Hardware Verification, chapter 1, pages 3–78. Springer-Verlag, 1997.
J. Joyce and C. Seger. The HOL-Voss System: Model-Checking inside a General-Purpose Theorem-Prover. In J. J. Joyce and C.-J. H. Seger, editors, Higher Order Logic Theorem Proving and its Applications: 6th International Workshop, HUG’93, Vancouver, B.C., August 11–13 1993, volume 780 of Lecture Notes in Computer Science, pages 185–198. Spinger-Verlag, 1994.
Edmund M. Clarke Jr. and Orna Grumberg. Model Checking. The MIT Press, 1999.
Trevor W. S. Lee, Mark R. Greenstreet, and Carl-Johan Seger. Automatic verification of asynchronous circuits. Technical Report UBC TR 93-40, The University of British Columbia, November 1993.
K. L. McMillan. A methodology for hardware verification using compositional model checking. Technical report, Cadence Berkeley Labs, April 1999. Available at http://www-cad.eecs.berkeley.edu/~kenmcmil/.
Kenneth L. McMillan. Symbolic Model Checking. Kluwer Academic Publishers, 1993.
John O’Leary, Xudong Zhao, Robert Gerth, and Carl-Johan H. Seger. Formally verifying IEEE compliance of floating-point hardware. Intel Technology Journal, First Quarter 1999. Online at http://developer.intel.com/technology/itj/.
S. Rajan, N. Shankar, and M.K. Srivas. An integration of model-checking with automated proof checking. In Pierre Wolper, editor, Computer-Aided Verification, CAV’ 95, volume 939 of Lecture Notes in Computer Science, pages 84–97, Liege, Belgium, June 1995. Springer-Verlag.
Carl-Johan H. Seger. Voss-a formal hardware verification system: User’s guide. Technical Report UBC TR 93-45, The University of British Columbia, December 1993.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gordon, M.J.C. (2000). Reachability Programming in HOL98 Using BDDs. In: Aagaard, M., Harrison, J. (eds) Theorem Proving in Higher Order Logics. TPHOLs 2000. Lecture Notes in Computer Science, vol 1869. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44659-1_12
Download citation
DOI: https://doi.org/10.1007/3-540-44659-1_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67863-2
Online ISBN: 978-3-540-44659-0
eBook Packages: Springer Book Archive